Skip to content

Move dialogs onto Reka UI primitives - #104

Draft
jwahdatehagh wants to merge 1 commit into
codex/reka-2-10-qualityfrom
codex/reka-dialog-accessibility
Draft

Move dialogs onto Reka UI primitives#104
jwahdatehagh wants to merge 1 commit into
codex/reka-2-10-qualityfrom
codex/reka-dialog-accessibility

Conversation

@jwahdatehagh

Copy link
Copy Markdown
Member

Summary

  • replace the handwritten native/compat dialog behavior with Reka Dialog primitives for modal focus containment, inert background behavior, Escape/outside policies, focus restoration, and accessible title/description wiring
  • implement global confirmations with AlertDialog so cancellation receives safe initial focus and form nesting cannot submit accidentally
  • preserve v-model:open, slots, compat, clickOutside, closable, large, fallthrough attributes, and transition-complete closed behavior
  • add a shared per-target dialog stacking root that orders nested dialogs locally without overtaking the global toast z-index
  • add interaction, axe, dynamic-attribute, compatibility, transition, stacking, and confirmation regressions

Compatibility

This keeps the wrapper API but intentionally changes the default surface from native <dialog> to a Reka-managed <div role="dialog">. Consumers styling dialog[open] or dialog::backdrop should use .dialog[data-state="open"] and .dialog-overlay. In compat mode, the overlay now precedes the article within .dialog-layer. The Changeset and component documentation call out these selector migrations.

Validation

  • pnpm test
  • pnpm typecheck
  • pnpm lint
  • pnpm format:check
  • pnpm build
  • git diff --check
  • two independent review passes; all P0/P1 findings resolved

Stack

This is stacked on #102, which upgrades Reka UI to 2.10.3 and adds the component interaction/a11y harness and repository quality gates. Review this PR as the single commit after #102.

Follow-up

Concurrent useConfirm() calls still share the existing singleton contract and can supersede one another. A queue or explicit rejection policy should be designed separately rather than hidden inside this primitive migration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant