multi-view: splits + divider resize #30

Closed
opened 2026-06-21 21:41:51 +01:00 by naps62-yolo · 0 comments
Collaborator

Part of the multi-view web epic #37.

Description

Let a pane split horizontally/vertically into a nested binary tree, with mouse-resizable dividers. Each leaf hosts its own live attach.

Acceptance criteria

  • Per-pane ▥/▤ buttons split the focused pane right/down; arbitrary nesting.
  • Closing a pane collapses its parent split into the sibling.
  • Dragging a divider resizes both sides; panes refit (xterm) live.
  • All panes in the tree stay live and streaming simultaneously.

Technical notes

  • Split/resize render + removeLeaf/splitAt mirror prototype/variant-tree.ts (renderNode, wireDivider).
  • Resize-fit is ~free: AttachConnection's ResizeObserver on .attach-body (attach.ts:264) fires on slot resize → fit + Resize.
  • Flex model: flex:<ratio> 1 0 slots, fixed-px divider (see proto.css).
Part of the multi-view web epic #37. ### Description Let a pane split horizontally/vertically into a nested binary tree, with mouse-resizable dividers. Each leaf hosts its own live attach. ### Acceptance criteria - [ ] Per-pane ▥/▤ buttons split the focused pane right/down; arbitrary nesting. - [ ] Closing a pane collapses its parent split into the sibling. - [ ] Dragging a divider resizes both sides; panes refit (xterm) live. - [ ] All panes in the tree stay live and streaming simultaneously. ### Technical notes - Split/resize render + `removeLeaf`/`splitAt` mirror `prototype/variant-tree.ts` (`renderNode`, `wireDivider`). - Resize-fit is ~free: `AttachConnection`'s ResizeObserver on `.attach-body` (`attach.ts:264`) fires on slot resize → fit + `Resize`. - Flex model: `flex:<ratio> 1 0` slots, fixed-px divider (see `proto.css`).
naps62-yolo added a new dependency 2026-06-21 21:42:56 +01:00
naps62-yolo added a new dependency 2026-06-21 21:42:56 +01:00
naps62-yolo added a new dependency 2026-06-21 21:42:56 +01:00
This repo is archived. You cannot comment on issues.
1 Participants
Due Date
No due date set.
Reference: naps62/maestro#30