Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .changeset/fix-fieldset-rerender-loop.md

This file was deleted.

6 changes: 0 additions & 6 deletions .changeset/fix-react-activity-import.md

This file was deleted.

52 changes: 0 additions & 52 deletions .changeset/zag-1-43-1.md

This file was deleted.

44 changes: 44 additions & 0 deletions packages/react/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,49 @@
# @ark-ui/react

## [5.38.2] - 2026-08-17

### Fixed

- Fix `Fieldset.Root` re-rendering whenever its subtree mutated, even if helper and error text were unchanged. A nested
`Field.Textarea` with `defaultValue` could turn that into a loop that froze the tab.

- Fix Next.js 15 production builds failing because React's optional `Activity` export was imported statically. Ark now
resolves `Activity` at runtime and falls back to `display-none` when the active React build does not expose it.

- - **Date Picker**
- Fix `translations` requiring every message. It's now `Partial`, so you can override one message and let the rest
fall back to the defaults.
- Fix the view trigger's `aria-label` naming the wrong view. In day view it announced "Switch to year view" while
the trigger actually switches to month view. The trigger also disables itself once there's no further view to
switch to.
- Fix dates between a range's start and end announcing the generic "Choose" label. They now announce "In range".
- **Escape Dismissal**: Fix `Escape` being ignored right after an overlay opens. Handlers registered a frame late, so
the overlay was painted and focus-trapped before it could listen. Under CPU load that gap grew well past one frame
and swallowed the keypress. They now register as soon as the layer mounts.
> Affects Dialog, Drawer, Menu, Popover, and anything else that closes on `Escape`.
- **Floating Panel**
- Fix closing a panel leaving it on the stack, so the next panel now becomes topmost.
- Fix stack order not applying to the positioner, so focusing a panel raises it above its siblings.
- **Focus Visible**: Fix clicking a label adding `data-focus-visible` to the control. Activating the label briefly
moved focus to an overlay container, which was read as virtual focus.
> Affects Checkbox, Radio Group, and Switch.
- **Form Submission**: Fix trigger and close trigger buttons submitting an ancestor form on click. They carried no
`type`, so they defaulted to `type="submit"`.
> Affects Drawer, Navigation Menu, Steps, and Tour.
- **Hover Highlight**: Fix keyboard navigation losing or moving the highlighted item while the pointer rests over
scrollable content. Scrolling the item into view moved the content under the cursor, and the resulting
`pointerleave` (or `pointermove` in Safari) counted as a real hover.
> Affects Cascade Select, Combobox, Listbox, Menu, and Select.
- **Image Cropper**: Fix `fixedCropArea` disabling every keyboard interaction on the crop selection, including the `+`
and `-` zoom shortcuts that still apply in fixed mode. The selection is now always focusable, and arrow keys pan the
image since there's nothing to move or resize.
- **QR Code**: Fix `getDataUrl()` and the download trigger dropping the overlay. The export contained only the QR
matrix, so a logo or badge placed over the code went missing.
- **Splitter**: Fix the resize trigger matching `:focus-visible` after a pointer drag. It still takes focus, so
keyboard resizing keeps working, but no longer shows the focus ring.
- **Tags Input**: Fix an XSS vector in the hidden element that measures input width. It set the tag value with
`innerHTML`, so a value containing markup was parsed and could execute. It now uses `textContent`.

## [5.38.1] - 2026-08-07

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion packages/react/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@ark-ui/react",
"type": "module",
"version": "5.38.1",
"version": "5.38.2",
"description": "A collection of unstyled, accessible UI components for React, utilizing state machines for seamless interaction.",
"keywords": [
"accordion",
Expand Down
38 changes: 38 additions & 0 deletions packages/solid/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
# @ark-ui/solid

## [5.38.2] - 2026-08-17

### Fixed

- - **Date Picker**
- Fix `translations` requiring every message. It's now `Partial`, so you can override one message and let the rest
fall back to the defaults.
- Fix the view trigger's `aria-label` naming the wrong view. In day view it announced "Switch to year view" while
the trigger actually switches to month view. The trigger also disables itself once there's no further view to
switch to.
- Fix dates between a range's start and end announcing the generic "Choose" label. They now announce "In range".
- **Escape Dismissal**: Fix `Escape` being ignored right after an overlay opens. Handlers registered a frame late, so
the overlay was painted and focus-trapped before it could listen. Under CPU load that gap grew well past one frame
and swallowed the keypress. They now register as soon as the layer mounts.
> Affects Dialog, Drawer, Menu, Popover, and anything else that closes on `Escape`.
- **Floating Panel**
- Fix closing a panel leaving it on the stack, so the next panel now becomes topmost.
- Fix stack order not applying to the positioner, so focusing a panel raises it above its siblings.
- **Focus Visible**: Fix clicking a label adding `data-focus-visible` to the control. Activating the label briefly
moved focus to an overlay container, which was read as virtual focus.
> Affects Checkbox, Radio Group, and Switch.
- **Form Submission**: Fix trigger and close trigger buttons submitting an ancestor form on click. They carried no
`type`, so they defaulted to `type="submit"`.
> Affects Drawer, Navigation Menu, Steps, and Tour.
- **Hover Highlight**: Fix keyboard navigation losing or moving the highlighted item while the pointer rests over
scrollable content. Scrolling the item into view moved the content under the cursor, and the resulting
`pointerleave` (or `pointermove` in Safari) counted as a real hover.
> Affects Cascade Select, Combobox, Listbox, Menu, and Select.
- **Image Cropper**: Fix `fixedCropArea` disabling every keyboard interaction on the crop selection, including the `+`
and `-` zoom shortcuts that still apply in fixed mode. The selection is now always focusable, and arrow keys pan the
image since there's nothing to move or resize.
- **QR Code**: Fix `getDataUrl()` and the download trigger dropping the overlay. The export contained only the QR
matrix, so a logo or badge placed over the code went missing.
- **Splitter**: Fix the resize trigger matching `:focus-visible` after a pointer drag. It still takes focus, so
keyboard resizing keeps working, but no longer shows the focus ring.
- **Tags Input**: Fix an XSS vector in the hidden element that measures input width. It set the tag value with
`innerHTML`, so a value containing markup was parsed and could execute. It now uses `textContent`.

## [5.38.1] - 2026-08-07

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion packages/solid/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@ark-ui/solid",
"type": "module",
"version": "5.38.1",
"version": "5.38.2",
"description": "A collection of unstyled, accessible UI components for Solid, utilizing state machines for seamless interaction.",
"keywords": [
"accordion",
Expand Down
38 changes: 38 additions & 0 deletions packages/svelte/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
# @ark-ui/svelte

## [5.23.1] - 2026-08-17

### Fixed

- - **Date Picker**
- Fix `translations` requiring every message. It's now `Partial`, so you can override one message and let the rest
fall back to the defaults.
- Fix the view trigger's `aria-label` naming the wrong view. In day view it announced "Switch to year view" while
the trigger actually switches to month view. The trigger also disables itself once there's no further view to
switch to.
- Fix dates between a range's start and end announcing the generic "Choose" label. They now announce "In range".
- **Escape Dismissal**: Fix `Escape` being ignored right after an overlay opens. Handlers registered a frame late, so
the overlay was painted and focus-trapped before it could listen. Under CPU load that gap grew well past one frame
and swallowed the keypress. They now register as soon as the layer mounts.
> Affects Dialog, Drawer, Menu, Popover, and anything else that closes on `Escape`.
- **Floating Panel**
- Fix closing a panel leaving it on the stack, so the next panel now becomes topmost.
- Fix stack order not applying to the positioner, so focusing a panel raises it above its siblings.
- **Focus Visible**: Fix clicking a label adding `data-focus-visible` to the control. Activating the label briefly
moved focus to an overlay container, which was read as virtual focus.
> Affects Checkbox, Radio Group, and Switch.
- **Form Submission**: Fix trigger and close trigger buttons submitting an ancestor form on click. They carried no
`type`, so they defaulted to `type="submit"`.
> Affects Drawer, Navigation Menu, Steps, and Tour.
- **Hover Highlight**: Fix keyboard navigation losing or moving the highlighted item while the pointer rests over
scrollable content. Scrolling the item into view moved the content under the cursor, and the resulting
`pointerleave` (or `pointermove` in Safari) counted as a real hover.
> Affects Cascade Select, Combobox, Listbox, Menu, and Select.
- **Image Cropper**: Fix `fixedCropArea` disabling every keyboard interaction on the crop selection, including the `+`
and `-` zoom shortcuts that still apply in fixed mode. The selection is now always focusable, and arrow keys pan the
image since there's nothing to move or resize.
- **QR Code**: Fix `getDataUrl()` and the download trigger dropping the overlay. The export contained only the QR
matrix, so a logo or badge placed over the code went missing.
- **Splitter**: Fix the resize trigger matching `:focus-visible` after a pointer drag. It still takes focus, so
keyboard resizing keeps working, but no longer shows the focus ring.
- **Tags Input**: Fix an XSS vector in the hidden element that measures input width. It set the tag value with
`innerHTML`, so a value containing markup was parsed and could execute. It now uses `textContent`.

## [5.23.0] - 2026-08-01

### Added
Expand Down
2 changes: 1 addition & 1 deletion packages/svelte/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@ark-ui/svelte",
"type": "module",
"version": "5.23.0",
"version": "5.23.1",
"description": "A collection of unstyled, accessible UI components for Svelte",
"keywords": [
"accordion",
Expand Down
38 changes: 38 additions & 0 deletions packages/vue/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
# @ark-ui/vue

## [5.38.2] - 2026-08-17

### Fixed

- - **Date Picker**
- Fix `translations` requiring every message. It's now `Partial`, so you can override one message and let the rest
fall back to the defaults.
- Fix the view trigger's `aria-label` naming the wrong view. In day view it announced "Switch to year view" while
the trigger actually switches to month view. The trigger also disables itself once there's no further view to
switch to.
- Fix dates between a range's start and end announcing the generic "Choose" label. They now announce "In range".
- **Escape Dismissal**: Fix `Escape` being ignored right after an overlay opens. Handlers registered a frame late, so
the overlay was painted and focus-trapped before it could listen. Under CPU load that gap grew well past one frame
and swallowed the keypress. They now register as soon as the layer mounts.
> Affects Dialog, Drawer, Menu, Popover, and anything else that closes on `Escape`.
- **Floating Panel**
- Fix closing a panel leaving it on the stack, so the next panel now becomes topmost.
- Fix stack order not applying to the positioner, so focusing a panel raises it above its siblings.
- **Focus Visible**: Fix clicking a label adding `data-focus-visible` to the control. Activating the label briefly
moved focus to an overlay container, which was read as virtual focus.
> Affects Checkbox, Radio Group, and Switch.
- **Form Submission**: Fix trigger and close trigger buttons submitting an ancestor form on click. They carried no
`type`, so they defaulted to `type="submit"`.
> Affects Drawer, Navigation Menu, Steps, and Tour.
- **Hover Highlight**: Fix keyboard navigation losing or moving the highlighted item while the pointer rests over
scrollable content. Scrolling the item into view moved the content under the cursor, and the resulting
`pointerleave` (or `pointermove` in Safari) counted as a real hover.
> Affects Cascade Select, Combobox, Listbox, Menu, and Select.
- **Image Cropper**: Fix `fixedCropArea` disabling every keyboard interaction on the crop selection, including the `+`
and `-` zoom shortcuts that still apply in fixed mode. The selection is now always focusable, and arrow keys pan the
image since there's nothing to move or resize.
- **QR Code**: Fix `getDataUrl()` and the download trigger dropping the overlay. The export contained only the QR
matrix, so a logo or badge placed over the code went missing.
- **Splitter**: Fix the resize trigger matching `:focus-visible` after a pointer drag. It still takes focus, so
keyboard resizing keeps working, but no longer shows the focus ring.
- **Tags Input**: Fix an XSS vector in the hidden element that measures input width. It set the tag value with
`innerHTML`, so a value containing markup was parsed and could execute. It now uses `textContent`.

## [5.38.1] - 2026-08-07

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion packages/vue/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@ark-ui/vue",
"type": "module",
"version": "5.38.1",
"version": "5.38.2",
"description": "A collection of unstyled, accessible UI components for Vue, utilizing state machines for seamless interaction.",
"keywords": [
"accordion",
Expand Down