@zag-js/toggle@2.0.0-next.1
Pre-releaseMinor Changes
-
#3167
d2b9972Thanks
@github-actions! - Addget<Part>State()getters (e.g.getTriggerState,
getContentState,getRootState), extending the existinggetItemStateconvention to every part with derived state.const triggerState = dialog.getTriggerState({ value: "confirm" }) // { value: "confirm", current: true, open: true }
Patch Changes
-
#3167
d9084a6Thanks
@github-actions! - Breaking: Removeddata-focusfrom toggle group and
toolbar parts. Use native CSS selectors like:focus-visibleto style the focused item and:focus-withinto style
the root while focus is inside.Migration
- [data-toggle-group-root][data-focus] { ... } + [data-toggle-group-root]:focus-within { ... } - [data-toggle-group-item][data-focus] { ... } + [data-toggle-group-item]:focus-visible { ... } - [data-toolbar-root][data-focus] { ... } + [data-toolbar-root]:focus-within { ... } - [data-toolbar-item][data-focus] { ... } + [data-toolbar-item]:focus-visible { ... }
Breaking: Updated toggle group to use toggle-button semantics in all selection modes. The root now renders
role="group", items exposearia-pressed, and single-select mode no longer renders radio roles oraria-checked.Migration
If you query toggle group items by radio semantics, update those checks to use button semantics.
- screen.getByRole("radiogroup") + screen.getByRole("group") - screen.getByRole("radio", { checked: true }) + screen.getByRole("button", { pressed: true })
If you style or query checked state, use
aria-pressedinstead ofaria-checked.- [data-toggle-group-item][aria-checked="true"] { ... } + [data-toggle-group-item][aria-pressed="true"] { ... }
Breaking: Removed
data-state="on|off"from toggle and toggle group pressed parts. Usedata-pressedto style
pressed toggles.Migration
- [data-toggle-root][data-state="on"] { ... } + [data-toggle-root][data-pressed] { ... } - [data-toggle-indicator][data-state="on"] { ... } + [data-toggle-indicator][data-pressed] { ... } - [data-toggle-group-item][data-state="on"] { ... } + [data-toggle-group-item][data-pressed] { ... }
-
Updated dependencies []:
- @zag-js/anatomy@2.0.0-next.1
- @zag-js/core@2.0.0-next.1
- @zag-js/types@2.0.0-next.1
- @zag-js/utils@2.0.0-next.1
- @zag-js/dom-query@2.0.0-next.1