Repository navigation
Splitter: N panes with draggable, focusable dividers (WAI-ARIA window splitter) - #503
Merged
Merged
Conversation
… splitter) Paned has two panes, a fixed 10 px clamp and no keyboard. Splitter is the general one: - fixed panes sized by an mvvm.Observable (logical px), flexible panes by an Observable weight; Min and Max per pane; Visible Observable switches a pane (and its divider) off; - a divider moves the pane before it by +d and the one after by -d within their bounds, the other panes keep their pixels; a flexible pair changes its ratio, which survives a window resize; - Collapsible fixed panes go to nothing when dragged below half their Min, and come back on a double-click (a second press within 450 ms, or an EventClick tagged "double"), Enter, or a drag out; the divider stays; - keyboard per the APG pattern: arrows (Shift = 4 steps), Home/End, Enter, Tab between dividers and panes; RoleSeparator with aria-valuemin/max/now and "Resize <pane>" as its name; - the divider line, the accent and the focus ring are at least 3:1 against Background and Surface in both default themes (SplitterColors); - Cursor(x, y) tells the host "col-resize" or "row-resize"; Vertical gives the stacked variant; - OnResized reports, once per finished gesture, the panes the person changed, so a view-model can persist what was chosen and nothing that a layout produced. 100% statement coverage. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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.
Adds
Splitter: N panes (horizontal, orVertical) with a draggable, focusable divider between each neighbouring pair, after the WAI-ARIA APG window-splitter pattern (opened before writing: keyboard Left/Right, Enter collapse/restore, Home/End, roleseparatorwith aria-valuemin/max/now).mvvm.Observable[int](logical px), flexible panes by an Observable weight,Min/Maxper pane,VisibleObservable switches a pane and its divider off.Collapsiblefixed panes collapse when dragged below half their Min and come back on double-click, Enter, or a drag out.OnResized(changed)fires once per finished gesture, so a view-model persists what the person chose and nothing a layout produced.SplitterColors, tested).Cursor(x, y)for the host,RoleSeparator,Handle(j)for accessibility trees.100% statement coverage; README updated. Release as a MINOR (v0.339.0) after merge.
🤖 Generated with Claude Code