mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Chart builder: data-aware defaults, one-click hint fixes, canvas preview, fullscreen modal
This commit is contained in:
@@ -11,7 +11,9 @@ authoritative architecture for adding, opening, closing, and rendering modals.
|
||||
- **At most one modal open at a time** (mandated by the product spec). Opening a
|
||||
modal closes any other; the two never overlap.
|
||||
- **Uniform dismissal**: close button, `Escape`, or backdrop click — never a
|
||||
click inside the body.
|
||||
click inside the body. A modal holding in-progress work can opt out of the
|
||||
**backdrop** click (`dismissOnBackdrop: false`) so a stray click can't discard it
|
||||
(the Chart Builder does); close button and `Escape` still dismiss.
|
||||
- **Accessible by default**: focus moves into the modal on open and returns to
|
||||
the trigger on close.
|
||||
- **Unsaved-change safety** for editing modals, with an explicit opt-out for
|
||||
@@ -492,6 +494,13 @@ export function useFocusTrap<T extends HTMLElement = HTMLDivElement>(
|
||||
- Don't dismiss on clicks inside the body, and don't let Escape fire when no
|
||||
modal is open (the handler only exists while a modal renders).
|
||||
|
||||
**Sizing & backdrop opt-out.** The shell picks a **size tier** by modal: a small form
|
||||
(Extract), a large two-pane manager (Datasets), or a near-fullscreen **work surface**
|
||||
(Chart Builder — a config pane plus a chart that wants room). The two larger tiers have a
|
||||
definite height so their inner panes scroll **internally** rather than the modal growing
|
||||
past the viewport. A modal opts a backdrop click out of dismissal with the registry's
|
||||
`dismissOnBackdrop: false` (above).
|
||||
|
||||
---
|
||||
|
||||
## Confirmation & alert dialogs
|
||||
|
||||
Reference in New Issue
Block a user