Commit 2185136
authored
feat(dom): implement true multi-surface DOM rendering (#115)
Each surface renders as a separate <section> with accessible label and
unique DOM id. Multi-surface screens use --<surfaceName> suffixed DOM
ids for asks, actions, hints, reasons, and feedback outputs to avoid
duplicates. Single-surface screens preserve backward-compatible DOM
output (no suffix, no section wrapper).
Duplicate ask controls across surfaces share underlying state via
reactive subscriptions. Duplicate action buttons execute the same
action. Blocked reasons, aria-describedby, Enter key hints, and
feedback output are scoped per surface copy.
16 new tests cover multi-surface sectioning, id suffixing, item
scoping, shared state (text/checkbox/select), shared actions,
enabled/disabled sync, scoped blocked reasons, scoped aria-describedby,
per-surface feedback, Enter key per surface, semantic id preservation,
and cleanup.1 parent 665f46d commit 2185136
4 files changed
Lines changed: 856 additions & 180 deletions
File tree
- .changeset
- docs/proposals
- packages/dom/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
0 commit comments