Add scoped overlay hosts

This commit is contained in:
iris committed 2026-09-10 18:49:03 -04:00
1 parent b53a17c436
commit 599d33287c
24 files changed
+910 -60

No files matched your search

-5
View File
@@ -30,11 +30,6 @@ Framework capabilities needed by `RUST.md`'s port plan:
range. The shared `TextSelection` engine already computes the same geometry
for selection highlights; expose one shared primitive rather than giving
the app a second text-layout path.
- [ ] **A modal/dialog primitive.** (**P1**, reused by **P3** and
**P5**.) Needed for the session settings dialog, `UsageDialog`'s
equivalent, and the delete-with-`deleteForeign` confirmation with its
toggle switch. Build once, wherever it is first needed, rather than
once per screen that wants one.
- [ ] **A horizontal gauge/bar widget.** (**P1**.) For
`SessionUsageBar`'s equivalent — a bounded fill reflecting a fraction,
nothing fancier.
+8 -8
View File
@@ -678,8 +678,8 @@ it is both. This is an `app-rust` defect, not an iris framework item.
`AI_SANDBOX_BIG_MB` and `--delay`.
- [ ] **P1d — images, the session settings dialog, attachments,
usage bar.** `SessionImage` thumbnails (the scaled image
widget), the modal primitive and `SessionSettingsDialog`/
`UsageDialog`, `PendingAttachments` over the attachments
widget), the existing overlay facility and
`SessionSettingsDialog`/`UsageDialog`, `PendingAttachments` over the attachments
route (`api.rs` gap), `SessionUsageBar` (the gauge widget).
- [ ] **P1e — keyboard and insets behaviours** from AGENTS.md's
"Things that have bitten", re-verified on the phone build:
@@ -715,11 +715,11 @@ it is both. This is an `app-rust` defect, not an iris framework item.
**iris widgets missing, → `IRIS_TODO.md`'s "Build (for the port)"
section**: the distance-to-unloaded-edge query P1c needs for its
viewport-sized history cushion; per-range text backgrounds for inline
code; a fitted image widget; one modal/dialog primitive reused by the
settings and usage dialogs; and a horizontal gauge for
`SessionUsageBar`. Tappable links already exist. Row accessibility
names are app content applied through iris's existing `.label()` API,
not a missing framework widget.
code; a fitted image widget; and a horizontal gauge for
`SessionUsageBar`. The settings and usage dialogs can use Iris's
existing local overlay hosts. Tappable links already exist. Row
accessibility names are app content applied through iris's existing
`.label()` API, not a missing framework widget.
**Pass condition**: `app/ui-sandbox.sh`'s fixtures driven by
`ui-trace record --do "tap '<label>'"` — a session with the big
@@ -790,7 +790,7 @@ it is both. This is an `app-rust` defect, not an iris framework item.
dimmed, drained of colour and labelled with the operation in progress
without blocking the list's scroll — so it belongs in `src/ui`, not
iris. `uniqueItems` is app logic there too. Iris itself still needs
the modal primitive P1 flagged and a toggle switch for the
a toggle switch for the
delete-with-`deleteForeign` flow.
**Pass condition**: `ui-trace` tap-by-name on all four tabs against