mirror of
https://github.com/stablyai/orca.git
synced 2026-11-13 17:37:40 +00:00
* fix(ui): let toast actions work above a modal instead of looking clickable but dead Radix modals dismiss/refocus on outside pointerdown, so the Toaster already swallowed pointerdown inside toasts; it additionally swallowed click for every control except the close button, making actions like 'Update skill' look live while doing nothing. Keep the pointerdown shield (modal stays open, focus/input intact) and let the click run. * test(e2e): keep a toast mounted and close Settings after the over-modal action * fix(ui): default-deny toast actions above a modal, visibly disabled, with a modal-safe opt-in Restores #32065's lock (close always works; actions that navigate or change settings don't bypass the modal) and fixes the clickable-but-dead look: blocked controls get aria-disabled, a 'Close the dialog to use this' title, and disabled styling, updated live as modals open and close. Background/toast-local actions opt in via modalSafeToastActionLabel or data-toast-modal-safe. * fix(ui): return focus to the modal draft after a toast-opened dialog closes A modal-safe action that opens a trigger-less dialog (Update skill) left focus on body after close, minimize or Escape. captureDialogReturnFocus records the focused element before opening and restores it via onCloseAutoFocus. Also harden Dialog Escape: Radix arms a just-opened sibling dialog's Escape a render late, so an early Escape closed the dialog beneath and dropped its draft. A dialog now ignores Escape while a later-opened modal is open. * fix(ui): hide toast actions above a modal instead of leaving them clickable-looking but dead Replaces the modal-safe opt-in design. Main's close-only capture gate stays as is; a single CSS rule hides every toast control except close while a modal overlay is open, so the message and dismissal remain and actions return once the modal closes. * fix(ui): type the sheet fixture's effect cleanup * test(e2e): dismiss an older star-nag toast over the dialog instead of re-raising one id * fix(ui): toasts sit behind a modal's backdrop until pressed or newly raised Older toasts drop behind an open Dialog/Sheet backdrop, dimmed and inert, so nothing looks clickable that isn't. A press on one, or a toast raised while the modal is open, brings the stack forward; close and actions then work above the modal with its focus and draft intact. Actions run that way are an escape hatch and emit toast_action_over_modal. * test(e2e): read recorded telemetry without a type assertion * test(e2e): read recorded telemetry through a typed global * test(e2e): check the raised Later action once by mouse; keep #32065's per-pointer Dismiss as on main