npm / @ark-ui/svelte
@ark-ui/svelte
What changed in @ark-ui/svelte 5, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-02.
22 breaking156 new APIs and options1 performance19 behavior and defaults258 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@ark-ui/svelte 5456 changes
Breaking changes 22
Replaced the amPmLabels object prop with separate amLabel and pmLabel props.
The experimental TimePicker component was removed; the notes recommend building a custom picker using Select or a time grid pattern.
Replaced BottomSheet with the new Drawer component.
Tooltip's default closeDelay changes from 500ms to 150ms.
Enter no longer submits the form when an item is highlighted or when allowCustomValue: false will reject the typed value.
Min/max validation preserves entered segments and clamps values segment by segment on blur.
Removed formattedDate; use valueText instead.
Replaced BottomSheet with Drawer, supporting multidirectional swipe, Positioner, and snapToSequentialPoints.
Rejects duplicate files with a FILE_EXISTS error instead of accepting duplicates and removing them together.
Format.Time now accepts separate amLabel and pmLabel props instead of the amPmLabels object.
Now returns { node, indexPath }[] instead of node[].
Regions no longer have an id; select them with [data-live-announcer] instead of #__live-region__.
Speed now reflects real pixel speed based on content size and translation distance, including when content is narrower than the viewport.
Hover Card's default openDelay changes from 700ms to 600ms.
Tooltip's default openDelay changes from 1000ms to 400ms.
Tabbing out of portalled content now moves to the next tabbable element after the trigger instead of looping back into the content.
Controlled paths no longer include the in-progress stroke; it remains in onDraw.currentPath until the stroke ends.
Adds data-current, data-complete and data-incomplete to the item, and moves aria-current="step" to the trigger.
Raises the minimum Svelte peer version to 5.29.0.
Fixes machines missing early prop changes and popups losing styles on re-render.
Uses data-part="nav" instead of data-part="root"; update styles that target the nav through [data-part="root"].
Reads the Toc context from Toc.Root; it no longer accepts useToc props or creates its own Toc, so wrap standalone navigation in Toc.Root.
New APIs and options 156
Angle Slider thumb supports aria-label and falls back to the label element's ID when needed for accessible labeling.
Angle Slider thumb supports aria-labelledby and falls back to the label element's ID when needed for accessible labeling.
The Ark factory component was added for the asChild prop.
The Avatar component was added.
Exports a type for TreeView checked-change details.
Collapsible adds a prop to control the content's height while collapsed.
Collapsible adds a prop to control the content's width while collapsed.
Collection helpers were added.
All components were added to match the React and Vue packages.
Marks the preferred focus target when a Dialog or Drawer opens.
Adds a data attribute for styling the end of a hovered date range.
Adds a data attribute for styling the start of a hovered date range.
Adds a data attribute for styling days within a hovered date range.
Excludes an element from the automatic focus search when a Dialog or Drawer opens.
Added required and invalid props to Date Picker.
Added required and invalid props to Date Picker.
Added ValueText for displaying selected date values with placeholder support and custom formatting.
Adds hover-range state to date picker range selection, including firstInHoveredRange and corresponding data attributes.
Adds hover-range state to date picker range selection, including inHoveredRange and corresponding data attributes.
Adds hover-range state to date picker range selection, including lastInHoveredRange and corresponding data attributes.
File Upload adds defaultAcceptedFiles for programmatic control of accepted files.
Tree View adds checkbox-state support for checkbox trees via defaultCheckedValue, checkedValue, and onCheckedChange.
Signature Pad adds defaultPaths for programmatic control of paths.
Supports multiple triggers with individual values while sharing one Dialog instance.
The Environment component was added.
Added Field.Item with a value to scope controls in multi-control fields.
The Format component was added.
The Highlight component was added.
Exported event types for improved type safety.
Added step validation support.
Exports a type for TreeView load-children error details.
Adds a utility for combining props objects with event handler and className merging.
Adds configurable keyboard stepping with Shift; the default is 10 times step.
Adds configurable keyboard stepping with Alt; the default is step divided by 10.
Adds a callback for the TreeView rename lifecycle before a rename proceeds.
Adds a callback for completion of the TreeView rename lifecycle.
Added a trigger for navigating to the last page.
The Progress component was added.
The QrCode component was added.
Added invalid and required props with corresponding data and aria attributes.
Added invalid and required props with corresponding data and aria attributes.
Exports a type for TreeView rename-complete details.
Exports a type for TreeView rename-start details.
Added Scroll Area overflow CSS variables for scroll fade effects.
Added range state properties to TableCellState.
Added range state properties to TableCellState.
The Timer component was added.
Exposed viewport offset as CSS variables on the toast group element.
Exported Toast types for better type safety.
Extracts reusable browser-download behavior from DownloadTrigger into a hook.
Added a Tags Input prop to allow duplicate tags.
Combobox adds a prop to submit a form immediately on Enter instead of using the default two-step behavior.
Added a focus option to control focus when clearing a Date Picker value.
Added a check for whether the maximum number of dates has been selected.
Added setTime for date-time picker support.
Angle Slider thumb supports aria-label and aria-labelledby, and falls back to the label element's ID for accessible naming.
Added Select autoComplete prop for browser autofill hints.
Added a prop to automatically submit the owning form when all inputs are filled.
File Upload adds bindable accepted files for programmatic control.
Signature Pad adds bindable paths for programmatic control.
Added a parameter for controlling boundary pages at the start and end.
TreeView adds a prop for controlling which nodes can be renamed.
Added support for variable width or height slide items.
Added a component for conditionally rendering content based on autoplay state.
Added a component for displaying current page progress.
Added maxSelectedValues to limit selected values.
Adds a component for external checkbox group state management.
TreeView exports additional detail types, including checked-change and rename lifecycle details.
Tree View adds support for checkbox state in checkbox trees through checkedValue.
Adds collapsedHeight and collapsedWidth props to control content dimensions while the collapsible is collapsed.
Adds a loading prop that sets aria-busy on the list and delays the No results message; result-count announcements are configurable through translations.
Adds modifiers to navigate and onSelect details; onSelect also runs when a link item is modifier-clicked.
Adds configurable translations for announcing result counts after typing, alongside noResults and loading.
Adds a component for displaying content when the Combobox has no items.
Exports a type for composing Combobox root component props.
Added Date Picker support for non-Gregorian calendars via createCalendar.
Marks the element to receive focus when an overlay opens, after initialFocusEl.
Date Picker Content exposes data-inline to distinguish inline date pickers from popover date pickers for styling.
Added Tooltip data-instant attribute for instant animations.
Excludes an element from the overlay's fallback search for the first tabbable element.
Adds a data-scrubbing attribute to Number Input parts.
Adds placement attributes to floating component parts for styling by current placement.
Added data-type to weekend table headers and cells.
Added
requiredandinvalidprops to Date Picker.Adds a prop to hide the automatically rendered timeZoneName segment for ZonedDateTime values.
Adds a component for entering dates with keyboard input.
Tree View adds support for checkbox state in checkbox trees through defaultCheckedValue.
Added a Drawer anatomy part with aria-describedby support on the content element.
Hover Card adds support for the disabled prop.
data-no-drag now supports axis values x or y.
Highlight Word adds an option for whole-word matching using regex word boundaries.
Added
Field.Itemfor scoping controls in multi-control fields.Added target to specify which Field.Item the label should focus when clicked.
Lets callers choose which element receives focus when the panel closes.
Lets callers choose which element receives focus when the panel opens.
Adds control over focus restoration when the panel closes.
Added Format.Time for formatting time values.
Caps output dimensions while preserving aspect ratio and scaling the crop down to fit.
Exported functions for calculating splitter panel layouts.
Pagination adds a prop for generating href attributes when used as links.
Added programmatic highlight navigation to the Listbox API.
Date Picker range selection adds hover-preview state properties and corresponding data attributes, active when the preview does not overlap the selected range.
Exported the event type for improved type safety.
Added input prop to control whether key handling prioritizes text editing or list navigation.
Adds a component for displaying content when the Listbox has no items.
Exports a type for composing Listbox root component props.
Released the Marquee component for continuously scrolling content.
Added a prop to limit selected dates in multiple selection mode.
Adds modifiers to navigate and onSelect details; onSelect also runs when a link item is modifier-clicked or activated with Enter.
Adds configurable keyboard stepping with Shift; defaults to 10 * step, matching previous behavior.
Tree View adds onCheckedChange for checkbox state changes in checkbox trees.
Tree View adds a callback for when loadChildren fails.
Adds a callback for the start of the TreeView rename lifecycle.
Dismissable exposes a custom event handler for parent layers requesting child dismissal; preventing the event keeps the child open.
Added a Number Input callback fired when input loses focus or Enter is pressed.
Added value to OpenChangeDetails for Carousel, Color Picker, Combobox, Date Picker, and Select.
Added a prop to open the calendar when clicking the input field.
Added a trigger for navigating to the first page.
Lets FocusTrap treat lazily resolved portalled content as part of the trap when aria-controls or aria-expanded cannot reach it.
Added a Tags Input placeholder shown only when no tags exist.
Lets callers choose the element that receives focus when the popover closes.
Controls whether focus returns to the trigger when the popover closes; defaults to true.
Added
invalidandrequiredprops with corresponding data and ARIA attributes.Select, Combobox, Listbox, and TreeView export RootComponent types for type-safe compositions.
Added a prop to sanitize pasted values before validation.
Adds support for the ScrollArea component.
Added a prop enabling keyboard navigation in virtualized trees.
Exports a type for composing Select root component props.
Added support for displaying the ISO 8601 week number column in the day view.
Added a Popover positioning option to optionally disable the size middleware.
Adds a larger keyboard step for Shift and PageUp/PageDown; the default is 10 times step.
Added an option for sequential Drawer snap points.
Adds per-panel resize behavior; preserve-pixel-size keeps a panel's pixel size constant when the parent group resizes.
Connects nested splitters so intersecting horizontal and vertical splitters can be dragged in both directions.
Added a component to render an indicator when resizing.
Added validation APIs and callback for Steps.
Added a component for toggling between two visual states with CSS animations using dual presence instances.
Added a Drawer part for swipe-to-open gestures from screen edges.
Added Drawer swipe directions
up,down,left, andright.Added state properties for range boundaries, hovered ranges, and dates outside the range.
Cleans tag values before they are added; defaults to trimming whitespace.
Added Slider thumbCollisionBehavior with none, push, and swap modes.
Exported Toast option and store prop types for improved type safety.
Adds multiple; set it to false to keep only the topmost visible heading active. Clicked items activate immediately, and the reader's section remains active after its heading scrolls out of view.
Adds scrollToTargetFn and data-instant, and uses the dialog role for content.
Added translations props for localizing hardcoded accessibility labels in Clipboard, Navigation Menu, Popover, Select, Timer, and Tree View.
Adds data-checked and data-indeterminate attributes to item and branch controls for checked-state styling.
Adds a TreeView component for inline editing of a node label.
Exports a type for composing TreeView root component props.
FormatByte supports choosing decimal or binary byte units through unitSystem.
Added a hook for localized date formatting using @internationalized/date.
Provides reusable browser-download behavior outside DownloadTrigger.
Added a hook for conditionally showing focus rings.
Added a hook for tracking whether user input is keyboard, pointer, or virtual.
Adds a function for managing collection item selection in single or multiple selection modes.
Adds getNavProps() for rendering Toc.Nav with the navigation props.
Performance 1
Reduced style recalculations when scrolling.
Behavior and default changes 19
Elements referenced by aria-controls are included in the focus trap scope, supporting portalled menus, popovers, and similar components.
Drawer swipes require intentional movement before showing, settle smoothly from the release point, and preserve cross-axis scrolling.
File Upload infers a file's MIME type from its extension when the browser cannot infer it.
Added initial focus management for Drawer non-modal mode.
Focus selection tries initialFocusEl, data-autofocus, the first eligible tabbable element, and then the content root.
Allows non-panel children inside the root, with partial trigger ids to bind handles around fixed elements.
Drawer gestures require intentional movement before showing, settle smoothly from the release point, preserve cross-axis scrolling, and support initial focus in non-modal mode.
Added enterKeyHint showing next on intermediate slots and done on the last.
Pin Input Home and End jump to the first slot or last filled slot.
One component instance can be shared across multiple triggers, each with a value; the component repositions when switching triggers.
Adds Ctrl/Cmd+arrow and up/down arrow navigation, and runs native form validation when Enter is pressed.
Range boundary dates now announce starting and ending context for screen readers.
Accepts CSS units in addition to percentages.
Accepts CSS units in addition to percentages.
Accepts CSS units in addition to percentages.
Sets the input enterKeyHint to done so mobile keyboards show a Done button that adds a tag.
Queues incoming toasts at the visible limit and sorts queued items by priority.
The loading option is now required; a warning is logged if it is not provided.
initialItems now accepts readonly arrays for immutable data compatibility.
Fixes and other changes 258
Fixed Switch api.toggleChecked() not working.
Dialog aria-modal now reflects the modal prop instead of being hardcoded true.
Fixed change event not being emitted after clearing a controlled textarea.
Fixed dragging, page and indicator synchronization, mixed interactions, state validity after option changes, and slidesPerMove progression.
Fixed individual Checkbox props being overridden by CheckboxGroup.
Fixed initial focus when the first node or branch is disabled.
Fixed color not updating when selecting black shades in controlled mode.
Enter no longer submits the form when an item is highlighted or a typed value will be rejected.
Fixed onValueChange returning an empty items array when using a controlled value.
Combobox item disabled state now accounts for the root-level disabled prop.
Fixed focus stealing in controlled open mode and removed problematic aria-hidden behavior.
Fixed callback not being invoked when the collection is filtered to empty.
Fixed selectToday value format, preserved time and timezone when selecting dates, and improved focus management in trigger-only mode.
Fixes segment placeholders for locales with explicit script subtags.
Returns current text when multiple pickers share a visible range, preventing stale values and SSR hydration mismatches.
Hovering outside-month days no longer changes the visible month when outsideDaySelectable is enabled, while end-date hover preview still updates.
Respects minView, maxView, and defaultView when resolving the initial view.
Reopening with only a start date resumes the existing range instead of restarting it.
Date input is writable in locales with multi-character separators.
The native month/year select remains interactive in Firefox when the picker is inside a modal dialog.
Svelte now resolves value before defaultValue, matching React and Solid.
Dismissable layers no longer lose pointer-events in Svelte when spread updates rewrite the style attribute.
lazyMount and unmountOnExit now work for the backdrop.
Fixed closing nested dialogs or popovers incorrectly closing their parent layers.
Fixed the package distribution shipping unresolved
$lib/imports that broke consumer builds in 5.25.0.Fixed window resolution to use environment context in custom environments such as iframes.
Type declarations now include presence properties such as onExitComplete.
Prevents flicker when a controlled drawer is swiped or backdrop-closed while its open setter is asynchronous.
Dismissable layers no longer lose pointer-events in Svelte when spread updates rewrite the style attribute.
The indent and indent background transition in sync with the close animation.
Dragging no longer freezes on release when content mounts lazily and snap points were not yet measured.
Fixes bind:value behavior in Field.Input.
Fixes bind:value behavior in Field.Select.
Fixes bind:value behavior in Field.Textarea.
Exports the FileError type.
Exports the FileMimeType type.
Exports the FileRejection type.
Fixed initialization precedence, independent positioning and sizing, controlled restore behavior, ResizeObserver update depth errors, and Escape cancellation during drag or resize.
Fixed double-click on a minimized title bar incorrectly maximizing.
Closing an overlay no longer steals focus from an element focused by the app in the meantime.
Closing a nested overlay no longer throws when the outer container has no connected focusable element.
The focus ring now appears on the returned-to element after closing with Escape.
Returns the same region shown after rotating or flipping the image.
Returns the correct crop region when the displayed image differs in size from its natural resolution.
Fixed reset destroying the cropper, prop changes not updating instantly, and panning bounds.
Fixed Listbox DOM IDs.
mergeProps no longer throws when props is undefined or null.
Fixed cursor positioning after clicking the label or scrubbing.
Fixed invalid being ignored when the value is out of range.
Passes the LocaleProvider locale to the underlying machine.
Makes blur behavior consistent when the input is cleared and min is greater than zero.
Node details are exposed in onExpandChange, onSelectionChange, and onFocusChange.
Fixed the next trigger not being disabled when count is zero.
Fixes bind:value behavior in PasswordInput.Input.
The data-filled attribute is no longer set on every input on first render.
Dismissable layers no longer lose pointer-events in Svelte when spread updates rewrite the style attribute.
Passes the LocaleProvider locale to the underlying machine.
Closing dialogs, drawers, and popovers no longer leaves body scroll-lock and interaction attributes behind.
Prevents unwanted props from being forwarded to DOM elements.
Fixed autofill not updating the value when the hidden select value changes.
Forwards the dir prop to the DOM.
Controlled paths no longer include an in-progress stroke; it stays in onDraw.currentPath until the stroke ends.
Fixed thumb dragging from the edge in thumbAlignment="contain" mode.
Fixed disabled Splitter showing a resize cursor and allowing dragging.
Keyboard resizing works when a resize trigger receives focus while hovered.
Machine exit actions no longer run when a component is disposed before the machine starts.
Fixed the state_unsafe_mutation warning during component teardown.
Restored offsetLeft/offsetTop calculations for correct indicator positioning in scrollable containers.
Fixed toasts created before the state machine connects not showing.
Toast types now expose parent and index as props and expand and collapse on the store.
Fixed janky scrolling between Tour steps.
Corrected effect cleanup, fixed wait steps, and added step validation on mount.
Adds checked-state data attributes to item and branch controls for styling.
Adds indeterminate-state data attributes to item and branch controls for styling.
Fixed initial focus when the first node or branch is disabled.
Clicking a branch with indeterminate state now checks its child nodes.
Exports the UseListCollectionReturn type.
Fixed formatting to reflect the current year, month, or day view.
Item triggers no longer render redundant aria-disabled attributes.
Fixed querying elements by
aria-controlswhen content is lazy mounted.Adds the missing data-focus attribute to getItemTriggerProps.
Accordion.ItemContext now works.
Thumb maintains consistent positioning relative to the initial click point when dragging from a non-center position.
Scrubbing feels smoother on touch devices.
The branch trigger no longer has the aria-busy attribute when children are not loading.
Menu trigger now keeps aria-expanded="false" when closed.
Combobox now sets aria-selected on selected items rather than highlighted items.
Fixes the missing default export condition that prevented Node.js programs such as PandaCSS from resolving the anatomy entrypoint.
The root now respects the id prop.
bind:ref works with components, allowing access to the underlying DOM element.
Fixes bind:value behavior in Field.Textarea, Field.Input, Field.Select, and PasswordInput.Input.
Fixed controlled carousel page jumps in dialogs, navigation in CSS-transformed containers, and scroll drift when layout shifts.
Fixed dragging after browser tab switches, page scrolling, or mouse-wheel scrolling when
allowMouseDragis enabled.Fixed incorrect page count when Carousel is inside a Portal and DOM layout is incomplete at mount.
Carousel page and indicators stay synchronized after drag release and scrolling settles; rapid mixed interactions are handled more consistently.
Improved page and indicator synchronization, interaction consistency, and state validity when Carousel configuration changes.
Carousel page state remains valid when slide counts, direction, or orientation change.
Syncs the hidden input when initially indeterminate.
Initial indeterminate state works, and api.checkedState returns
boolean | "indeterminate"correctly.The dir prop now uses the provided value instead of being hardcoded to ltr.
Non-inline Color Picker content now has
role="dialog", and its trigger hasaria-haspopup="dialog".Color values set through props or setValue now respect the specified format.
Fixed vertical slider orientation not being preserved on pointer updates.
Pressing Enter to confirm an IME composition no longer commits a partial channel value.
api.setFormat now changes the format.
The format prop now writes changes back to the caller's variable when used with bind:.
Fires onValueChangeEnd when a color is selected with the EyeDropper API.
The highlightedValue prop now writes changes back to the caller's variable when used with bind:.
Uses a live region on Apple devices to announce highlighted options to VoiceOver during arrow-key navigation.
Controlled Drawer with open: true and no onOpenChange now blocks swipe-to-dismiss.
Improved controlled-mode synchronization and callback/item resolution across filtered Combobox, Listbox, and Select collections.
Exposes the toast content generic so CreateToasterReturn<T> can type custom toast data.
Scroll Area parts expose data-dragging.
Scroll Area exposes data-hover for styling.
Added range data attributes to month and year cell triggers.
Improved Date Input focus management.
Fixed a crash when typing the end date first and blurring repeatedly.
Fixed a crash when entering the end date first by checking for null or undefined date properties.
Avoids stale visibleRangeText when multiple pickers share a visible range, which could cause SSR hydration mismatches.
Keyboard selection of an unavailable date now behaves like mouse selection in the month view.
Initial view resolution now respects minView, maxView, and defaultView instead of being hardcoded to day through year.
Date input is writable in locales with multi-character separators.
Accepts locale-native numerals when typing dates.
The placeholderValue prop now writes changes back to the caller's variable when used with bind:.
No longer reads stale display values.
Timezone-naive values now round-trip unchanged with a custom formatter that omits timeZone.
Keeps segment text in sync while replacing a committed date and preserves edits while focus catches up after auto-advance.
Arrow navigation and auto-advance after typing now reach read-only focusable segments.
Defers min/max validation until a segment is fully typed or the input blurs, preserving other entered segments.
Range-mode keyboard navigation moves from the start date's last segment to the end date's first segment.
Time-only formatters now fire onValueChange even when there is no year segment.
Accepts locale-native numerals when typing dates.
Enforces the selection limit on month and year cells in multiple-selection mode.
The controlled open prop now takes precedence over defaultOpen.
onValueChange now fires when only time segments change in CalendarDateTime or ZonedDateTime values.
Reorders dates on blur in range selection, matching other selection paths.
Disabled and read-only pickers no longer react to cell clicks, clear triggers, or presets; read-only navigation remains available.
Keyboard range selection now matches pointer behavior, including restarting on a third date and updating hover previews for keyboard navigation.
Clearing range values resets activeIndex and hoveredValue even when input parts are not rendered.
Progress now shows the indeterminate state when defaultValue is null.
Vue and Svelte now resolve value before defaultValue, matching React and Solid.
Improved shadow DOM support for interaction-outside handling and focus-trap detection.
Exposes api.modal.
Dismissable layers no longer lose pointer-events in Svelte and Vue when spread updates rewrite the style attribute.
Improved non-modal behavior with interactive page content, initial focus management, and aria-modal reflecting modal.
Fixed non-modal Dialog closing on outside click when modal is false.
The triggerValue prop now writes changes back to the caller's variable when used with bind:.
Prevents backdrop flicker during controlled closes when the open setter is asynchronous.
The swipe-progress custom property now moves smoothly from rest to fully dismissed.
The snapPoint prop now writes changes back to the caller's variable when used with bind:.
The triggerValue prop now writes changes back to the caller's variable when used with bind:.
Controlled drawers no longer snap open before the close animation after swipe dismissal.
The edit prop now writes changes back to the caller's variable when used with bind:.
Helper and error text is announced on the focused element for Select, TagsInput, ColorPicker, FileUpload, SignaturePad, RatingGroup and PinInput.
PasswordInput, PinInput, and FileUpload now consume Field context and receive invalid, disabled, readOnly, required, and ids.
The readOnly prop now makes FileUpload read-only.
Programmatic value changes no longer dispatch a synthetic input event that can break controlled state.
Exports the FieldItem component from the top-level package.
Clicking non-interactive dropzone children now opens the file picker.
File Upload exports FileError, FileMimeType, and FileRejection types.
Escape during drag or resize now cancels the operation and restores the original position or size.
Fixed
opentaking precedence overdefaultOpenduring initialization.Fixed maximize/minimize restore reverting to
(0, 0)in controlled mode.Overlay close no longer steals focus from an element focused by the app, nested overlay close no longer throws in the described case, and Escape-returned elements show the focus ring.
Fixed trapping with a single effective tab stop and safer handling of disconnected initialFocus nodes.
Number Input preserves the cursor's relative position while typing in the middle of a formatted value.
Returns the crop corners and output size in natural-image pixels for use with server-side croppers.
Custom trigger elements now work when IDs are shared across floating components, including inside shadow roots.
getCroppedImage() and getCropData() now return the region shown after rotating or flipping the image.
A controlled single-select Combobox now propagates its initial value to inputValue.
Fixed Safari focusin and pointer interaction races affecting nested popovers and selects within popovers.
RootProvider strips options from value before forwarding it and no longer renders children twice.
Presence exit animations now work on subsequent toggles when lazyMount and unmountOnExit are used together.
lazyMount and unmountOnExit now work for backdrops in Dialog, Drawer, NavigationMenu, Tabs, and Tour.
Pressing Enter with no highlighted item no longer calls event.preventDefault().
Listbox.ItemContext is now exported.
Rehydrating defaultValue or value after fetching items now updates valueAsString.
NumberInput and Progress now pass locale from LocaleProvider to the underlying machine.
Carousel autoplay now respects loop: false and stops at the last slide.
In Solid and Svelte, machine exit actions no longer run when a component is disposed before the machine starts.
The paused prop now writes changes back to the caller's variable when used with bind:.
Fixed Firefox flicker and added GPU acceleration.
Tags Input maxLength now applies to the edit input as well.
Context menus no longer flash at the top-left or remain stuck at (0,0) after a touch long-press.
The highlightedValue prop now writes changes back to the caller's variable when used with bind:.
The triggerValue prop now writes changes back to the caller's variable when used with bind:.
Quick diagonal pointer movement toward an open submenu no longer flashes highlights across sibling items.
Removes the aggressive and redundant default aria-label.
Cmd/Ctrl plus arrow keys now produce values on the step grid.
setValue no longer throws when passed a number while formatOptions is set.
Tree View now exposes node details in the callback.
Progress now works when orientation is set to vertical.
Link triggers are marked disabled when they cannot navigate.
Fixed ellipsis display when there is only one page gap.
Pagination link-mode items and triggers render as anchors, so their hrefs navigate correctly.
Makes the visibility trigger keyboard accessible and removes its aria-expanded attribute.
RootProvider no longer spreads the machine value onto the root DOM element or renders children twice.
Number Input omits the input pattern when formatOptions is provided, avoiding native validation conflicts with formatted values.
Fixed a crash when typing the same character in a completed pin input.
Delete and Backspace splice values left rather than leaving empty gaps.
Backspace, click, ArrowRight, same-key skip, and roving tabIndex focus behavior were improved.
Renders as a labelled group.
Drawer positioner uses pointer-events: none in non-modal mode so the page stays interactive.
Fixed nested Popover z-index layering.
Fixed elements becoming stuck in unmountSuspended during rapid state updates.
The progressPercent calculation is fixed for countdown timers.
Fixed inconsistent application of data-focus-visible and data-focus attributes.
Fixed indicator animation on initial render and resize.
Restored offsetLeft/offsetTop calculations for correct indicator positioning in scrollable containers.
Group labels now render as
spanrather than orphan label elements, following the W3C ARIA pattern.Fixed Rating Group becoming unfocusable by keyboard when its value is 0.
RootProvider now merges getRootProps() onto the root element.
Locks the actual scroll container when html, rather than body, scrolls.
The highlightedValue prop now writes changes back to the caller's variable when used with bind:.
The open prop now writes changes back to the caller's variable when used with bind:.
The required state is now set correctly on the Select trigger.
Prevents unwanted props from being forwarded to DOM elements.
HiddenSelect now emits correct values when custom objects are used with itemToValue.
Rehydrating defaultValue or value after fetching items now updates valueAsString.
Fixed inverted year cell selectable state for years outside the visible decade or min/max range.
Fixed selectedItems getting out of sync with value in controlled mode.
Fixed
setPositionandsetSizeso they work independently of drag or resize state.Cmd/Ctrl plus arrow keys now produce values on the step grid.
Thumb offset remains constant from the pointer during dragging to prevent value jumps.
Fixed
onValueChangeEndnot triggering for programmatic value changes.Fixed thumb offset shifts during dragging and value jumps when dragging from an edge in contain alignment.
Fixes abrupt stopping while scrubbing and range thumbs getting stuck when dragged to the same position without minStepsBetweenThumbs.
Made
slidesPerMoveprogression more predictable.A null value is now recognized as controlled instead of falling back to internal state.
Collapsed panels now size to collapsedSize rather than minSize.
Applies data-focus only when the resize trigger is focused, not hovered.
Disabled Splitter no longer shows a resize cursor or allows dragging.
Clicking a resize trigger now focuses it so arrow keys can resize the splitter.
Fixed global cursor styles when Splitter is used in a shadow root.
onResizeStart and onResizeEnd now fire for programmatic resizes.
Validation ensures startMs and targetMs are configured correctly.
Observes the tab list size so the indicator updates when the list resizes without individual triggers changing size.
Fixed indicator animation on initial render and resize.
Fixed indicator position not updating when inactive tabs change size.
Fixed indicator positioning when inactive tabs change size.
Custom values can be added with one Enter press when the integrated combobox has no highlighted item.
Fixed item delete trigger not having data attributes attached.
Native form submission now includes the current tags in FormData after tags are added, removed, or cleared.
Timer configuration now validates startMs and targetMs.
The timer no longer continues beyond targetMs when the window is not visible.
Prevents height flicker when expanding an overlapping toast stack by measuring heights without the scale transform.
Restores role=region on the toast group so its aria-label is valid.
Supports functional store updates and references the title and description only when they render.
A toast store can now be created without arguments.
The activeIds prop now writes changes back to the caller's variable when used with bind:.
Moves aria-labelledby from Root to Nav.
Fixed Tooltip not showing when scrolling with the pointer over its trigger.
Dismissing a tour from a step effect now runs cleanup and can fire the completed status.
Tooltip step positioning no longer resets unexpectedly when the tour closes.
A step action with action: skip now works when clicked.
Step navigation events no longer fire while the tour is inactive, and popper styles are cleaned up when transitioning from tooltip to dialog steps.
Tree traversal for querying the last node is fixed.
Rehydrating defaultValue or value after fetching items now updates valueAsString for Combobox, Select, and Listbox.