docs(multi-bank): settle fork 5 — LICE tabs + both move affordances (Phase B closed)

5a: named-banks tab strip is LICE-drawn (matching M5 grid + Design View
segmented switch), with overflow/scroll in scope from B4 start.
5b: move ships as both a bindable "move to bank" menu and drag-between-regions;
copy stays the deliberate secondary act. Drag mis-drop mitigated by drop-target
highlighting and recoverable by design (index-only, reversible).

Phase B now fully settled (all five forks resolved), ready to scope into
implementation waves; only the active-bank indicator placement polish remains.
This commit is contained in:
2026-07-23 13:13:04 -04:00
parent dcbe5d7bdc
commit 2c468bb40c
3 changed files with 113 additions and 42 deletions
+20 -14
View File
@@ -174,32 +174,38 @@ indicated; both full-height toggles collapse the split correctly; sample move/co
affordance works; non-empty delete confirms and offers evacuate; the Design View mode
switch in the header is unaffected.
**Depends on:** B1, B2, B3. (Tab rendering + move-affordance mechanics — fork 5 —
pending Daniel's decision; see Phase B open questions and product notes → *Fork 5*.)
settled 2026-07-23: LICE-drawn tabs + both move affordances; see Phase B open questions
and product notes → *Fork 5 — settled*.)
- [ ] Vertical split: pool grid region (top) + named-banks tab-page region (bottom).
- [ ] Named-banks tab strip: one tab per named bank; empty state when none.
(SWELL-native vs. LICE-drawn — fork 5a, pending.)
- [ ] Named-banks tab strip: **LICE-drawn** (matching the M5 grid + Design View
segmented switch, not SWELL-native — fork 5a); one tab per named bank; empty state
when none. **Verify LICE tab draw against the M5 reference before use.**
- [ ] Tab-strip overflow/scroll affordance — **in scope from the start** (fork 5a): a
naive fixed-width LICE strip breaks down at ~812 tabs, so ship scroll/chevron
overflow with the strip, do not defer it.
- [ ] Pool full-height / banks full-height toggle affordances wired to B3.
- [ ] Active-bank indicator — **visually unmistakable** (settled constraint);
placement (per-region header / single readout / lit-tab) is the residual polish
detail.
- [ ] Create / rename / delete / activate / evacuate affordances driving B3 actions.
- [ ] Delete confirms on a non-empty bank, naming the evacuate alternative.
- [ ] Sample move/copy affordance (drag between regions and/or "send to bank" menu
fork 5b, pending).
- [ ] Sample move affordance **both** (fork 5b): a "move to bank" menu on the current
selection (bindable front-end for the B3 move action) **and** drag-between-regions.
Copy is the deliberate secondary act, offered on the menu.
- [ ] Drag mis-drop mitigation (fork 5b): clear drop-target highlighting on the
destination region/tab during a drag; a mis-drop is recoverable by design (move is
index-only and reversible). **Verify the drag hit-test doesn't collide with the M5
grid's multi-select drag.**
## Phase B open questions
Forks 14 settled by Daniel (2026-07-23): persistence key = fold pool into `banks`,
All five forks settled by Daniel (2026-07-23): persistence key = fold pool into `banks`,
retire legacy key (1a); delete drops members + add evacuate verb (2); move is the
default gesture (3); active-bank/shown-tab distinct with an unmistakable indicator
(4). Folded into CONTEXT.md §Multi-bank + the B1B4 points above. Remaining:
default gesture (3); active-bank/shown-tab distinct with an unmistakable indicator (4);
LICE-drawn tabs + overflow, and both move affordances with drop-highlighting (5).
Folded into CONTEXT.md §Multi-bank + the B1B4 points above. Phase B is fully settled and
ready to scope into implementation waves. One polish detail remains:
- **Fork 5 — tab rendering + move affordance** — (5a) SWELL-native tab control vs.
LICE-drawn tabs matching the grid aesthetic; (5b) drag-between-regions vs.
"send to bank" menu vs. both. Options analysis + pending recommendations in product
notes → *Fork 5*. Verify SWELL tab-control availability + cross-platform parity
against the SWELL headers / SWS reference before choosing native tabs. Decision
pending Daniel. (touches B4)
- **Active-bank indicator placement** — per-region headers vs. single header readout
vs. lit-tab. "Unmistakable" is settled; only placement is open. Polish detail.
(touches B4)