close the D-88 anchored-popover sweep (T-286, T-288)
Record the closing amendment on D-88: base blockers fixed, every anchored surface migrated except quick-open (deliberately left bespoke — a persistent centred widget that shares neither ClideMenu nor anchoring). Mark T-286 and T-288 done. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -17,3 +17,4 @@ widget primitives.
|
||||
- **Quick-open / command palette** — bespoke content (centred filter + fuzzy + two-column rows); uses only the `ClideAnchoredOverlay` base.
|
||||
- **Theme picker** — toggle + live-apply list; its own small content (or `ClideMenu` if it ever fits cleanly), on the base.
|
||||
Revised goal: *everything anchored shares `ClideAnchoredOverlay`; content components match the surface.* The blockers to clear first (focus capture racing content autofocus; follower content untappable in the `canSizeOverlay` test harness) live in the base, not in any content component. Tracked by T-288. Raised by the user: "should those then not just be a different shared component from the others?"
|
||||
- **Amendment (2026-06-08) — sweep complete:** The base blockers were fixed (auto-flip reads the real `View` size, not the zeroable `MediaQuery`; the follower drops its `Align` wrapper so non-top-left anchors hit-test; tests use a sized `anchoredHarness`). Migrated: menu bar, permission picker (T-275), theme picker (onto `ClideMenu` — the HC toggle is a `keepOpenOnSelect` item; it fit cleanly), the @-mention and slash typeaheads (onto `ClideTypeahead`, which bridges its live suggestions through a `ValueNotifier` so the popover narrows as you type — the `OverlayEntry` is a separate subtree that would otherwise show the list it opened with). **Quick-open is deliberately NOT migrated:** it is a *persistent* widget that conditionally renders a centred `Positioned` (no `OverlayEntry` lifecycle, no barrier, no anchor) with bespoke two-column rows and intricate keymap-scope/focus/file-load logic — it shares neither `ClideMenu` nor any real anchoring, so wrapping it in `ClideAnchoredOverlay(centered)` would add insert/remove churn to a delicate widget for ~6 lines of trivial centring and no code reuse. The base primitive stands ready if quick-open's shape ever converges. T-286 / T-288 close here.
|
||||
|
||||
Reference in New Issue
Block a user