12 Commits

Author SHA1 Message Date
Mats Bosson
041217ca33 Fix Checkbox indeterminate state 2026-03-29 07:23:19 +07:00
Mats Bosson
3a84dfaac9 Checkbox component 2026-03-29 07:19:39 +07:00
Mats Bosson
5bd158782a Switch component 2026-03-29 07:14:52 +07:00
Mats Bosson
5af7dc6cfa Switch component
Also fix Toggle component to properly handle onChange callback and onClick handler binding.
2026-03-29 07:12:11 +07:00
Mats Bosson
3def20bf0d Fix Toggle options stability 2026-03-29 07:10:31 +07:00
Mats Bosson
d522090872 Toggle component 2026-03-29 07:08:51 +07:00
Mats Bosson
230133415b Separator component 2026-03-29 07:06:29 +07:00
Mats Bosson
0155749028 Dialog tests
Adds aria and keyboard interaction tests for the Dialog component (10 new tests, 53 total passing). Also fixes DialogContent to render with the `open` attribute so the <dialog> element is accessible in JSDOM.
2026-03-29 05:56:42 +07:00
Mats Bosson
8ab23a1722 Clean up Dialog internals 2026-03-29 05:54:12 +07:00
Mats Bosson
87af246d71 Fix Dialog activation and role
Replace onMount+onCleanup with createEffect watching ctx.isOpen() and
ctx.modal(), so focusTrap/scrollLock/dismiss activate/deactivate
reactively on every open/close — including when forceMount keeps the
component mounted.
Note: role="dialog" was omitted; the project's Biome rules flag it as
redundant (noRedundantRoles) since <dialog> carries the implicit role.
2026-03-29 05:49:57 +07:00
Mats Bosson
69068fbee9 Dialog component
Implements DialogRoot, Content, Title, Description, Trigger, Close, Portal, and Overlay parts with full context wiring, focus trap, scroll lock, and dismiss. Also fixes pre-existing TS6 exactOptionalPropertyTypes errors in create-disclosure-state and presence, and silences TS6.0 deprecation warnings via ignoreDeprecations.
2026-03-29 05:47:48 +07:00
Mats Bosson
4e711d8f5d Dialog types and context 2026-03-29 05:32:45 +07:00