Repository navigation
feat(ui): two-pane split with a resizable splitter (RIG-4446) - #1780
Merged
trunk-io[bot] merged 2 commits intoOct 7, 2026
Merged
trunk-io[bot] merged 2 commits into
trunk-io[bot] merged 2 commits into
Conversation
A split tab renders both views side by side or stacked, sized by its ratio, with a keyboard- and pointer-resizable separator clamped to 0.2-0.8 and persisted with the layout. The focused pane carries a focus rule. Adds the split-view e2e and a local split-view visual baseline. Co-authored-by: Matt Wilkinson <matt@rigel.build>
This was referenced Oct 6, 2026
Merged
|
Compass engineering docs preview: https://compass-ui-rig-4446-split-pa.compass-eng-docs.pages.dev Deployed from |
…d splitter goes (RIG-4446) Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
marked this pull request as ready for review
October 6, 2026 11:31
mattwilkinsonn
added this pull request to stack #1838
October 7, 2026 00:43
mattwilkinsonn
approved these changes
Oct 7, 2026
|
This pull request was merged into |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is part of a stack containing 7 PRs:
mainTabs T6 of
docs/designs/ui/compass-in-window-tabs/design.md§T6 (RIG-4446), stacked on T5 #1770. A split tab now shows its two views side by side (or stacked) with a resizable splitter.Changes
components/SplitPane.tsx(SplitPane: Component<{ tabId }>): renders one tab's box.view-panel,role=tabpanel, its id andaria-labelledby, and gainsdata-view-idanddata-focused.role=separator, orientation,aria-valuemin/max/now,tabindex=0. Arrow keys on the split axis step 5%; pointer drag uses pointer capture. Both dispatchresize, so the reducer clamps to 0.2–0.8 and the layout effect persists it.design/components/split-pane.css:--cx-*tokens only. 1px--cx-borderdivider, and a 1px--cx-border-focusoutline on the focused pane.App.tsx:<main>renders oneSplitPaneper tab. Panels are found undermainbydata-view-idinstead of a ref map. The focus effect keeps its order (show, move focus if leaving, hide) and also toggles each tab's box.window-layout.tsexportsMIN_RATIO/MAX_RATIO.mountApptakes an optional layout storage.Tests
SplitPane.test.tsx, 9 tests: row and column rendering, no splitter on a single view, arrow-key and drag resize (clamped and persisted), the focused-pane marker, a draft surviving split and close-other, an inactive split tab hiding its splitter. 7 of 9 were red beforeSplitPaneexisted; the other 2 are regression guards.split-view.spec.ts(§T6 acceptance):w von a channel puts two panels side by side, and together they fillmain(±2px). The second pane navigates to an agent, a send from the first pane's composer leaves the second pane on the agent, and the first pane stays focused. The fill check was red with amax-width: 40%panel rule.SplitPane.test.tsxalso covers a drag ending on lost capture or a released button, andtab-keep-alive-style focus checks that removing a focused splitter (close other pane, close tab, next tab) leaves focus in a shown pane.split-view.png: captured locally, as feat(ui): view tab strip with keep-alive and open-in-tab links (RIG-4444) #1755 did under DL-399 (docs(ui): allow local visual baseline captures on branches (RIG-4421, RIG-4447) #1644). The other 13 shots match unchanged.visual-smoke+split-view+tab-strip,--update-snapshots=none: 17 passed.moon run compass-ui:test: 1296 pass, 0 fail. Typecheck, stylelint and biome clean.Known gap
The agent view's 340px log panel does not fit a half-width pane; the view clips it. RIG-4682 tracks making the agent view adapt to narrow panes.
Spec-impact: none.
Ledger-impact: none
Co-authored-by: Matt Wilkinson matt@rigel.build