docs(product): spec Phase L L4 — dock-panel button layout enhancement

Capture+placement move to a top toolbar; Design View tag/switch verbs to the bottom toolbar; footer gains a narrow Arrange|Design toggle + a Tail button (was a click-zone), with warn Prune set apart at the right. Ungated/extension-side; sequences after the palette revision. Layout only.
This commit is contained in:
2026-07-26 21:59:28 -04:00
parent 6fece8d571
commit fca311b4bd
2 changed files with 131 additions and 5 deletions
+49 -1
View File
@@ -1512,6 +1512,51 @@ it. New layout math goes in a pure geometry module; `bank_grid`/`tab_strip`/`mod
stay the pure source of truth for their own hit-testing. **L2 sequences after M11 merges**
so it inventories the actual landed buttons.
## L4 dock-panel button layout (top / bottom / footer re-home)
L4 is a **second layout pass over the same `bank_panel`** that re-homes the L2 button inventory
around *frequency and intent*. It ships **no new action and changes no capture/placement
behavior** — every button fires an existing registered action; the "capture ≠ placement"
load-bearing principle is untouched (the buttons only *fire* the split acts, they never fuse
them). It is **ungated by Phase S** (the dock panel is on dev) and independent of L3.
**L4 sequences AFTER the in-flight DS-2 palette-revision branch merges to dev** — both rework
`bank_panel` heavily, and landing L4 concurrently would collide the same file. Drawn through the
L1 kit in the DS-2 grey-neutral + three-accent-pastel palette (prune stays `warn`); no palette
or font decisions are re-opened here.
**The new three-zone structure:**
- **Top toolbar = capture + placement.** The capture cluster (capture item, capture track,
batch items, batch razor, capture RT) and the placement cluster (insert, insert-conform) move
from the bottom L2 action bar to a **top** toolbar — the eye's first landing, matching the two
acts the tool exists for. Icon+label buttons with the keybinding as a `micro` sub-label (the
M11 keybinding-help convention), drawn through the kit.
- **Bottom toolbar = Design View tagging + switching.** The space the capture/placement buttons
vacate holds the **Design View action family** as buttons: **tag / untag selected tracks for a
mode, activate Arrange, activate Design, toggle active mode, show-both.** These are the
registered Design View actions today; L4 gives them a button home here.
- **Footer = narrow Arrange|Design toggle · Tail button · … · Prune.** The large top
`[ Arrange | Design ]` segmented toggle **shrinks to just-wide-enough-for-its-text** and moves
into the footer at the **left**, carrying its per-mode membership count as a compact adjacent
label. The **Tail** affordance is converted from a **click-zone to a proper kit button**
(rest/hover/pressed states; click still cycles the tail setting). **Prune** stays the
byte-deleting action — **set apart at the far right, `warn`-colored** — the only file-deleting
affordance, kept isolated so no benign toggle sits next to it.
**Footer affordance order (left → right):** `[Arrange|Design]` toggle · Tail button · … ·
**Prune** (rightmost, set apart, `warn`). The order reads benign/frequent at the left
(view-mode toggle, tail-length control — both "how this panel/capture behaves") → destructive/
rare at the right (Prune, isolated), so a mis-click near the left is cheap and the one
destructive control is spatially and chromatically distinct.
**Pure/shell discipline (unchanged).** All new toolbar-row and footer-strip layout math goes in
pure CTest-covered geometry modules — **extend/mirror `action_bar`** (the toolbar row layout,
now instantiated top and bottom) and **`mode_switch`** (the now-narrow, fit-to-text footer
toggle geometry + hit-test). `bank_grid` and `tab_strip` remain the pure owners of their own
surfaces' hit-testing. The L1 kit draws; the geometry stays pure. **L4 resolves its re-home
against the post-palette-revision `bank_panel`** (build-time inventory once that branch is on
dev).
## The L3 gate + Phase S coordination contract
**L3 (VST editor + embed-strip restyle) is GATED on Phase S landing on dev.** The VST
@@ -1519,7 +1564,10 @@ editor (`IPlugView` LICE surface), the S6 embed strip, and the keyboard strip li
Phase S, which is **not on dev yet** (it exists on the phase-s worktree). L3 cannot be
built on dev until Phase S's editor/embed surfaces (≈ S1 / S6 / S10) merge to dev — **the
Phase L team must not chase these files on dev; they are not there.** Until then L3 is a
planned, blocked point; L1 and L2 are the live Phase L work.
planned, blocked point; L1 and L2 have landed, and **L4 (dock-panel button layout enhancement)
is the live, ungated extension-side Phase L work — it does not touch any Phase S surface, and
sequences after the in-flight palette revision merges to dev** (shared-`bank_panel` collision).
L4 is independent of the L3 gate.
**Coordination contract (load-bearing):** Phase S's S10S13 build their interaction UX with
the **current** drawing and **adopt the L1 kit when it is available — they are NOT gated on