Skip to content

Version Packages (next)#3167

Open
github-actions[bot] wants to merge 1 commit into
v2from
changeset-release/v2
Open

Version Packages (next)#3167
github-actions[bot] wants to merge 1 commit into
v2from
changeset-release/v2

Conversation

@github-actions

@github-actions github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to v2, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

v2 is currently in pre mode so this branch has prereleases rather than normal releases. If you want to exit prereleases, run changeset pre exit on v2.

⚠️⚠️⚠️⚠️⚠️⚠️

Releases

@zag-js/popover@2.0.0-next.1

Major Changes

  • #3167
    cb2ca19 Thanks
    @github-actions! - Breaking: Remove the portalled prop and the
    api.portalled value.

    The popover now auto-detects whether its content is portalled (rendered outside the trigger's DOM subtree) and proxies
    tab order accordingly — so forgetting to set portalled can no longer break keyboard accessibility. Decide portalling
    purely by where you render the content:

    - const service = useMachine(popover.machine, { id, portalled: true })
    - const api = popover.connect(service, normalizeProps)
    - const Wrapper = api.portalled ? Portal : Fragment
    - <Wrapper>
    + <Portal>
        <div {...api.getPositionerProps()}>...</div>
    - </Wrapper>
    + </Portal>

    To render inline, drop the Portal wrapper (previously portalled: false); tab order is still handled automatically.

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [8148d4d]:

    • @zag-js/popper@2.0.0-next.1
    • @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/aria-hidden@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/focus-trap@2.0.0-next.1
    • @zag-js/remove-scroll@2.0.0-next.1

@zag-js/tree-view@2.0.0-next.1

Major Changes

  • #3167
    253a586 Thanks
    @github-actions! - Breaking: Rename getCellProps to getNodeCellProps
    for consistency with the other node-scoped tree-view APIs.

    Migration

    - api.getCellProps(nodeProps)
    + api.getNodeCellProps(nodeProps)

Patch Changes

  • Updated dependencies [1b6233d]:
    • @zag-js/collection@2.0.0-next.1
    • @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

@zag-js/menu@2.0.0-next.1

Minor Changes

  • #3167
    9d7159a Thanks
    @github-actions! - Add the new @zag-js/menubar machine for building
    WAI-ARIA menubars.

    Each top-level item is a standalone menu machine. Pass menubarApi.getMenuContext() to each menu's menubar prop
    so its trigger behaves as a menubar item.

    The menubar coordinates:

    • Roving focus across menu triggers
    • Open/close state and sibling menu switching
    • Nested submenu keyboard behavior
    • Horizontal and vertical orientation
    • Looping focus and disabled state
    import * as menu from "@zag-js/menu"
    import * as menubar from "@zag-js/menubar"
    
    const menubarApi = menubar.connect(menubarService, normalizeProps)
    const menuService = useMachine(menu.machine, { id: "file", menubar: menubarApi.getMenuContext() })

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [8148d4d]:

    • @zag-js/popper@2.0.0-next.1
    • @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/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/focus-visible@2.0.0-next.1
    • @zag-js/rect-utils@2.0.0-next.1

@zag-js/menubar@2.0.0-next.1

Minor Changes

  • #3167
    9d7159a Thanks
    @github-actions! - Add the new @zag-js/menubar machine for building
    WAI-ARIA menubars.

    Each top-level item is a standalone menu machine. Pass menubarApi.getMenuContext() to each menu's menubar prop
    so its trigger behaves as a menubar item.

    The menubar coordinates:

    • Roving focus across menu triggers
    • Open/close state and sibling menu switching
    • Nested submenu keyboard behavior
    • Horizontal and vertical orientation
    • Looping focus and disabled state
    import * as menu from "@zag-js/menu"
    import * as menubar from "@zag-js/menubar"
    
    const menubarApi = menubar.connect(menubarService, normalizeProps)
    const menuService = useMachine(menu.machine, { id: "file", menubar: menubarApi.getMenuContext() })

Patch Changes

  • 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

@zag-js/core@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/preact@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/core@2.0.0-next.1
    • @zag-js/store@2.0.0-next.1
    • @zag-js/types@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1

@zag-js/react@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/core@2.0.0-next.1
    • @zag-js/store@2.0.0-next.1
    • @zag-js/types@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1

@zag-js/solid@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/core@2.0.0-next.1
    • @zag-js/store@2.0.0-next.1
    • @zag-js/types@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1

@zag-js/svelte@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @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/vanilla@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/core@2.0.0-next.1
    • @zag-js/store@2.0.0-next.1
    • @zag-js/types@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1

@zag-js/vue@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/core@2.0.0-next.1
    • @zag-js/store@2.0.0-next.1
    • @zag-js/types@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1

@zag-js/accordion@2.0.0-next.1

Patch Changes

  • 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

@zag-js/angle-slider@2.0.0-next.1

Patch Changes

  • 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
    • @zag-js/rect-utils@2.0.0-next.1

@zag-js/async-list@2.0.0-next.1

Patch Changes

  • #3167
    b2f17f4 Thanks
    @github-actions! - Rename the internal load-more state flag to
    isLoadingMore for consistency with the public API.

  • Updated dependencies []:

    • @zag-js/core@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1

@zag-js/avatar@2.0.0-next.1

Patch Changes

  • 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

@zag-js/carousel@2.0.0-next.1

Patch Changes

  • 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
    • @zag-js/scroll-snap@2.0.0-next.1

@zag-js/cascade-select@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [1b6233d,
    8148d4d]:

    • @zag-js/collection@2.0.0-next.1
    • @zag-js/popper@2.0.0-next.1
    • @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/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/focus-visible@2.0.0-next.1
    • @zag-js/rect-utils@2.0.0-next.1

@zag-js/checkbox@2.0.0-next.1

Patch Changes

  • 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
    • @zag-js/focus-visible@2.0.0-next.1

@zag-js/clipboard@2.0.0-next.1

Patch Changes

  • 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

@zag-js/collapsible@2.0.0-next.1

Patch Changes

  • 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

@zag-js/color-picker@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • #3198
    e4e0b2d Thanks
    @greymoth-jp! - Fix the color channel input committing a partial value when Enter
    is pressed to confirm an IME composition.

  • Updated dependencies [8148d4d]:

    • @zag-js/popper@2.0.0-next.1
    • @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/color-utils@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/combobox@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [1b6233d,
    8148d4d]:

    • @zag-js/collection@2.0.0-next.1
    • @zag-js/popper@2.0.0-next.1
    • @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/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/focus-visible@2.0.0-next.1
    • @zag-js/live-region@2.0.0-next.1

@zag-js/date-input@2.0.0-next.1

Patch Changes

  • 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/date-utils@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/live-region@2.0.0-next.1

@zag-js/date-picker@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [8148d4d]:

    • @zag-js/popper@2.0.0-next.1
    • @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/date-utils@2.0.0-next.1
    • @zag-js/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/live-region@2.0.0-next.1

@zag-js/dialog@2.0.0-next.1

Patch Changes

  • 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/aria-hidden@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/focus-trap@2.0.0-next.1
    • @zag-js/remove-scroll@2.0.0-next.1

@zag-js/dnd@2.0.0-next.1

Patch Changes

  • 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/aria-hidden@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/live-region@2.0.0-next.1
    • @zag-js/rect-utils@2.0.0-next.1

@zag-js/drawer@2.0.0-next.1

Patch Changes

  • 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/aria-hidden@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/focus-trap@2.0.0-next.1
    • @zag-js/remove-scroll@2.0.0-next.1

@zag-js/editable@2.0.0-next.1

Patch Changes

  • 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
    • @zag-js/interact-outside@2.0.0-next.1

@zag-js/file-upload@2.0.0-next.1

Patch Changes

  • 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
    • @zag-js/file-utils@2.0.0-next.1
    • @zag-js/i18n-utils@2.0.0-next.1

@zag-js/floating-panel@2.0.0-next.1

Patch Changes

  • Updated dependencies [8148d4d]:
    • @zag-js/popper@2.0.0-next.1
    • @zag-js/anatomy@2.0.0-next.1
    • @zag-js/core@2.0.0-next.1
    • @zag-js/store@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
    • @zag-js/rect-utils@2.0.0-next.1

@zag-js/gridlist@2.0.0-next.1

Patch Changes

  • Updated dependencies [1b6233d]:
    • @zag-js/collection@2.0.0-next.1
    • @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
    • @zag-js/focus-visible@2.0.0-next.1

@zag-js/hover-card@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [8148d4d]:

    • @zag-js/popper@2.0.0-next.1
    • @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/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/image-cropper@2.0.0-next.1

Patch Changes

  • 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
    • @zag-js/rect-utils@2.0.0-next.1

@zag-js/listbox@2.0.0-next.1

Patch Changes

  • Updated dependencies [1b6233d]:
    • @zag-js/collection@2.0.0-next.1
    • @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
    • @zag-js/focus-visible@2.0.0-next.1

@zag-js/marquee@2.0.0-next.1

Patch Changes

  • 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

@zag-js/navigation-menu@2.0.0-next.1

Patch Changes

  • 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/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/number-input@2.0.0-next.1

Patch Changes

  • 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

@zag-js/pagination@2.0.0-next.1

Patch Changes

  • 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

@zag-js/password-input@2.0.0-next.1

Patch Changes

  • 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

@zag-js/pin-input@2.0.0-next.1

Patch Changes

  • 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

@zag-js/presence@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/core@2.0.0-next.1
    • @zag-js/types@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/progress@2.0.0-next.1

Patch Changes

  • 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

@zag-js/qr-code@2.0.0-next.1

Patch Changes

  • 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

@zag-js/radio-group@2.0.0-next.1

Patch Changes

  • 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
    • @zag-js/focus-visible@2.0.0-next.1

@zag-js/rating-group@2.0.0-next.1

Patch Changes

  • 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

@zag-js/scheduler@2.0.0-next.1

Patch Changes

  • 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/date-utils@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/scroll-area@2.0.0-next.1

Patch Changes

  • 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

@zag-js/select@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [1b6233d,
    8148d4d]:

    • @zag-js/collection@2.0.0-next.1
    • @zag-js/popper@2.0.0-next.1
    • @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/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/focus-visible@2.0.0-next.1
    • @zag-js/live-region@2.0.0-next.1

@zag-js/signature-pad@2.0.0-next.1

Patch Changes

  • 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

@zag-js/slider@2.0.0-next.1

Patch Changes

  • #3167
    b274a15 Thanks
    @github-actions! - - Fixed issue where origin: "center" assumed the
    neutral value was always the midpoint of min/max
    • origin now also accepts a number, so the track can fill from that specific value instead
  • 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

@zag-js/splitter@2.0.0-next.1

Patch Changes

  • 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

@zag-js/steps@2.0.0-next.1

Patch Changes

  • 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

@zag-js/switch@2.0.0-next.1

Patch Changes

  • 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
    • @zag-js/focus-visible@2.0.0-next.1

@zag-js/tabs@2.0.0-next.1

Patch Changes

  • 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

@zag-js/tags-input@2.0.0-next.1

Patch Changes

  • 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/auto-resize@2.0.0-next.1
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/interact-outside@2.0.0-next.1
    • @zag-js/live-region@2.0.0-next.1

@zag-js/timer@2.0.0-next.1

Patch Changes

  • 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

@zag-js/toast@2.0.0-next.1

Patch Changes

  • 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/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/toc@2.0.0-next.1

Patch Changes

  • 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

@zag-js/toggle@2.0.0-next.1

Patch Changes

  • #3167
    d9084a6 Thanks
    @github-actions! - Breaking: Removed data-focus from toggle group and
    toolbar parts. Use native CSS selectors like :focus-visible to style the focused item and :focus-within to 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 expose aria-pressed, and single-select mode no longer renders radio roles or aria-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-pressed instead of aria-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. Use data-pressed to 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

@zag-js/toggle-group@2.0.0-next.1

Patch Changes

  • #3167
    d9084a6 Thanks
    @github-actions! - Breaking: Removed data-focus from toggle group and
    toolbar parts. Use native CSS selectors like :focus-visible to style the focused item and :focus-within to 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 expose aria-pressed, and single-select mode no longer renders radio roles or aria-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-pressed instead of aria-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. Use data-pressed to 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

@zag-js/toolbar@2.0.0-next.1

Patch Changes

  • #3167
    d9084a6 Thanks
    @github-actions! - Breaking: Removed data-focus from toggle group and
    toolbar parts. Use native CSS selectors like :focus-visible to style the focused item and :focus-within to 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 expose aria-pressed, and single-select mode no longer renders radio roles or aria-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-pressed instead of aria-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. Use data-pressed to 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

@zag-js/tooltip@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [8148d4d]:

    • @zag-js/popper@2.0.0-next.1
    • @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
    • @zag-js/focus-visible@2.0.0-next.1

@zag-js/tour@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies [8148d4d]:

    • @zag-js/popper@2.0.0-next.1
    • @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/dismissable@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/focus-trap@2.0.0-next.1
    • @zag-js/interact-outside@2.0.0-next.1

@zag-js/aria-hidden@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/auto-resize@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/collection@2.0.0-next.1

Patch Changes

  • #3167
    1b6233d Thanks
    @github-actions! - Allow nodeToChildren to return undefined/null for
    leaf nodes. The runtime already treats a missing result as "no children", but the type required any[], forcing a
    ?? [] workaround for trees with leaves (e.g. cascade-select).
  • Updated dependencies []:
    • @zag-js/utils@2.0.0-next.1

@zag-js/color-utils@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/utils@2.0.0-next.1

@zag-js/dismissable@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1
    • @zag-js/interact-outside@2.0.0-next.1

@zag-js/dom-query@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/types@2.0.0-next.1

@zag-js/file-utils@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/i18n-utils@2.0.0-next.1

@zag-js/focus-trap@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/focus-visible@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/i18n-utils@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/interact-outside@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/popper@2.0.0-next.1

Patch Changes

  • #3167
    8148d4d Thanks
    @github-actions! - Fix positioner appearing in the top-left corner on first
    open (most visible in the Svelte adapter). The positioner now stays hidden off-screen via a CSS variable fallback in
    transform instead of a positioned-gated opacity. This keeps the framework-managed style static, so reactive
    re-renders no longer clobber the --x/--y variables popper sets.

    As a result, the internal positioned context flag is removed from positioned machines (popover, menu, select, etc.).

    Also fixes cascade-select positioning: it now sets the initial placement before measuring and defers the first
    placement computation (matching the other components), so it positions correctly on open — including defaultOpen.

  • Updated dependencies []:

    • @zag-js/utils@2.0.0-next.1
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/remove-scroll@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/scroll-snap@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/virtualizer@2.0.0-next.1

Patch Changes

  • Updated dependencies []:
    • @zag-js/dom-query@2.0.0-next.1

@zag-js/anatomy@2.0.0-next.1

@zag-js/anatomy-icons@2.0.0-next.1

@zag-js/docs@2.0.0-next.1

@zag-js/store@2.0.0-next.1

@zag-js/types@2.0.0-next.1

@zag-js/utils@2.0.0-next.1

@zag-js/date-utils@2.0.0-next.1

@zag-js/highlight-word@2.0.0-next.1

@zag-js/hotkeys@2.0.0-next.1

@zag-js/json-tree-utils@2.0.0-next.1

@zag-js/live-region@2.0.0-next.1

@zag-js/rect-utils@2.0.0-next.1

@zag-js/stringify-state@2.0.0-next.1

@vercel

vercel Bot commented Jun 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
zag-nextjs Ready Ready Preview Jul 4, 2026 1:38pm
zag-solid Ready Ready Preview Jul 4, 2026 1:38pm
zag-svelte Ready Ready Preview Jul 4, 2026 1:38pm
zag-vue Ready Ready Preview Jul 4, 2026 1:38pm
zag-website Ready Ready Preview Jul 4, 2026 1:38pm

Request Review

@segunadebayo segunadebayo force-pushed the changeset-release/v2 branch from 15dbc4c to 21f4f0e Compare June 5, 2026 15:03
@segunadebayo segunadebayo force-pushed the changeset-release/v2 branch from 21f4f0e to 0385821 Compare June 6, 2026 12:57
@segunadebayo segunadebayo force-pushed the changeset-release/v2 branch from 0385821 to 073299f Compare June 6, 2026 13:28
@segunadebayo segunadebayo force-pushed the changeset-release/v2 branch from 1fecc66 to 2928ecd Compare June 9, 2026 11:45
@segunadebayo segunadebayo force-pushed the changeset-release/v2 branch from c5be8d2 to 7ae5140 Compare July 3, 2026 14:20
@segunadebayo segunadebayo force-pushed the changeset-release/v2 branch from 7ae5140 to 7422ef8 Compare July 3, 2026 16:25
@segunadebayo segunadebayo force-pushed the changeset-release/v2 branch from 7422ef8 to f86c2ba Compare July 4, 2026 12:19
@segunadebayo segunadebayo force-pushed the changeset-release/v2 branch from f86c2ba to 68f18a1 Compare July 4, 2026 13:31
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.

0 participants