unstale

npm / reka-ui

reka-ui

What changed in reka-ui 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.

5 breaking1 security48 new APIs and options6 performance15 behavior and defaults171 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.1.1 on npm

reka-ui 2246 changes

Breaking changes 5

  • Changes the payload type of RadioGroupRootEmits to AcceptableValue.

    2.8.2release notes

  • OTP inputs are now enforced sequentially.

    2.8.0release notes

  • DatePicker, DateRangePicker, Calendar, and RangeCalendar now treat weekStartsOn independently of locale.

    2.8.0release notes

  • The select arrow is always shown, leaving display decisions to the select content.

    2.7.0release notes

  • Combobox no longer focuses the trigger element after closing.

    2.7.0release notes

Security 1

New APIs and options 48

Performance 6

  • ListboxItem includes $attrs in its v-memo dependencies, and highlighting avoids scanning the collection.

    2.10.5release notes

  • contains short-circuits on an exact substring match.

    2.10.5release notes

  • Skips work for bubbled animation events.

    2.10.2release notes

  • Skips the label querySelector when aria-label is provided.

    2.10.0release notes

  • Replaces indexOf sorting with a node index map.

    2.10.0release notes

  • Production tree-shaking is improved, which can reduce unused code in production builds.

    2.9.4release notes

Behavior and default changes 15

  • Enhances keyboard navigation with Home, End, PageUp, and PageDown shortcuts.

    2.11.0release notes

  • Adds loop keyboard navigation to Listbox, Select, and Tree.

    2.11.0release notes

  • Enhances keyboard navigation with Home, End, PageUp, and PageDown shortcuts.

    2.11.0release notes

  • Adds loop keyboard navigation to Listbox, Select, and Tree.

    2.11.0release notes

  • Adds loop keyboard navigation to Listbox, Select, and Tree.

    2.11.0release notes

  • StepperIndicator now defaults to rendering as a span.

    2.10.4release notes

  • The default for present is true, so scopes without it still pause ancestor traps.

    2.10.1release notes

  • Type inference is enhanced for useEmitAsProps and useForwardPropsEmits.

    2.10.0release notes

  • Type inference is enhanced for useEmitAsProps and useForwardPropsEmits.

    2.10.0release notes

  • Prioritizes the hour-cycle prop over the internal locale.

    2.8.2release notes

  • Defaults weekStartsOn based on locale in DatePicker, DateRangePicker, Calendar, and RangeCalendar.

    2.8.2release notes

  • Menu supports more value types.

    2.8.0release notes

  • Listbox and Tree now handle estimateSize as a function for the Virtualizer.

    2.7.0release notes

  • Focus the input only when the Combobox is opened.

    2.6.1release notes

  • Allow selecting the end date as the new start date.

    2.6.1release notes

Fixes and other changes 171

  • Clears a stale filter when cancelling a blurred input.

    2.11.0release notes

  • Keeps the visible month when modelValue is replaced with a new object representing the same day.

    2.11.0release notes

  • Keeps the pointer anchor while the menu closes.

    2.11.0release notes

  • Detects outside interactions inside an iframe.

    2.11.0release notes

  • Shares one ref-counted owner for body pointer-events.

    2.11.0release notes

  • Allows touch swipes to start on interactive elements.

    2.11.0release notes

  • Accepts initialFocus and finalFocus elements from another realm.

    2.11.0release notes

  • Lets consumers cancel a swipe dismissal.

    2.11.0release notes

  • Traps focus inside a shadow root.

    2.11.0release notes

  • Respects tabindex order during autofocus.

    2.11.0release notes

  • Corrects emitted event types to match runtime behavior.

    2.11.0release notes

  • Hides half-step indicators consistently during SSR.

    2.11.0release notes

  • Ignores residual mousemove events after the pointer enters an iframe.

    2.11.0release notes

  • Prevents form submission synchronously on Enter.

    2.11.0release notes

  • Synchronizes segments when the value changes externally.

    2.11.0release notes

  • Trigger event handlers now respect defaultPrevented.

    2.11.0release notes

  • Keeps focusable content in the accessibility tree.

    2.11.0release notes

  • Auto-focus is re-keyed on presence when the dialog is force-mounted.

    2.10.5release notes

  • Inside pointerdown drops a stale deferred click listener, and the layer root is treated as inside to prevent dismissal when a FocusScope container is focused.

    2.10.5release notes

  • The content now applies initialFocus and finalFocus.

    2.10.5release notes

  • The focus event target is preserved across nextTick so submenus stay open.

    2.10.5release notes

  • Touch stepper activation is deferred.

    2.10.5release notes

  • The numeric v-model type reflects undefined values.

    2.10.5release notes

  • Tab is no longer trapped inside the inputs in OTP mode.

    2.10.5release notes

  • Space is excluded from typeahead search.

    2.10.5release notes

  • The resize handle hover state resets when the pointer enters an iframe.

    2.10.5release notes

  • Tooltips stop referencing a stale trigger after it is replaced, and hoverable content closes when it covers another trigger.

    2.10.5release notes

  • Keyboard events originating in a text field are left alone.

    2.10.5release notes

  • The day period is derived from the ZonedDateTime's own time zone and from the hour rather than a localized string.

    2.10.5release notes

  • Select and Popover omit aria-controls while their content is not rendered.

    2.10.4release notes

  • Highlight scrolling is deferred until Popper placement, preventing scrolling before the content is positioned.

    2.10.4release notes

  • Outside pointerdown events are ignored while the layer is not present.

    2.10.4release notes

  • Unmounting a branch removes its stale element from the registry.

    2.10.4release notes

  • Clicking the trigger toggles the drawer's open state.

    2.10.4release notes

  • Swipe gestures on scrollable content are locked to one axis.

    2.10.4release notes

  • Focus is moved to the container only after confirming it is orphaned.

    2.10.4release notes

  • The item value is no longer used as a fallback for aria-label.

    2.10.4release notes

  • The open broadcast is received on document instead of window.

    2.10.4release notes

  • Advances segment focus in DOM order in RTL.

    2.10.2release notes

  • Keeps body pointer-events locked when the last scroll lock releases.

    2.10.2release notes

  • Tracks drags in non-dismissable directions so the drawer pulls elastically.

    2.10.2release notes

  • Processes Android soft-keyboard composition live for filters.

    2.10.2release notes

  • Allows backspacing through a formatted unit suffix.

    2.10.2release notes

  • Resets hover state on mouse leave when hoverable.

    2.10.2release notes

  • Validates an empty group silently.

    2.10.2release notes

  • Removes a stale trigger element from totalStepperItems on unmount.

    2.10.2release notes

  • Keeps disabled tags out of the keyboard removal index.

    2.10.2release notes

  • Advances segment focus in DOM order in RTL.

    2.10.2release notes

  • Removes viewport listeners when a toast is dismissed.

    2.10.2release notes

  • Splitter panels using px sizeUnit now receive data-state="collapsed" when collapsed.

    2.10.1release notes

  • Tab can move focus out of a non-modal DropdownMenu.

    2.10.1release notes

  • Enter and Space keydowns are consumed only when no modifier key is held.

    2.10.1release notes

  • Prevents a sub-menu focus fight when it opens on top of its trigger.

    2.10.1release notes

  • Stepping snaps an off-grid value to the nearest grid line.

    2.10.1release notes

  • The parent scope id is forwarded onto the RadioGroupItem control.

    2.10.1release notes

  • Preserves the pointer events lock.

    2.10.0release notes

  • On initial focus, focuses the first day when there is no selected or today cell.

    2.10.0release notes

  • Un-nests the hidden form input to fix nested-interactive accessibility.

    2.10.0release notes

  • Memoizes content subtree updates.

    2.10.0release notes

  • Prevents suppression of the mousedown event.

    2.10.0release notes

  • Toolbar forwards disabled to ToolbarButton and updates the focusable count reactively.

    2.10.0release notes

  • Disconnects ResizeObserver on unmount.

    2.10.0release notes

  • Combobox content stays open when interacting with its associated label.

    2.9.10release notes

  • Modal content now honors disableOutsidePointerEvents.

    2.9.10release notes

  • Body pointer events remain locked when a nested layer closes.

    2.9.10release notes

  • A virtualized list no longer scrolls the page on mount.

    2.9.10release notes

  • On Vue 3.5+, ConfigProvider's useId option takes precedence over Vue's native useId, matching documented behavior and avoiding SSR hydration mismatches when an app provides a stable ID source.

    2.9.10release notes

  • Defers handleBlur close so FocusScope can restore focus.

    2.9.9release notes

  • Resets the time after the value is cleared.

    2.9.9release notes

  • Scopes overlay pointerdown prevention to the overlay itself.

    2.9.9release notes

  • IME composition is handled correctly across input components.

    2.9.9release notes

  • Prevents page scrolling on mount caused by changeHighlight.

    2.9.9release notes

  • Updates NavigationMenu behavior to match Radix UI's navigation menu.

    2.9.9release notes

  • Clears scrollbar registration on unmount so the corner stays in sync.

    2.9.9release notes

  • This attribute is added during focus restoration.

    2.9.8release notes

  • Menu and Listbox no longer flash data-highlighted on mount.

    2.9.8release notes

  • The modelValue prop type now aligns with sibling pickers.

    2.9.8release notes

  • Focus is restored to the trigger after an overlay click.

    2.9.8release notes

  • Changes to disabled and focusable are included in v-memo dependencies.

    2.9.8release notes

  • Dismiss events from inactive content are ignored.

    2.9.8release notes

  • The attribute is removed when the pointer leaves a MenuItem.

    2.9.7release notes

  • Side effects from highlightSelected are skipped during SSR.

    2.9.7release notes

  • Missing shared types are exported to prevent TS2742 errors in consumer projects.

    2.9.7release notes

  • Indicator rendering is deferred until mount to avoid hydration mismatches.

    2.9.7release notes

  • The title and description are announced as text rather than JSON.

    2.9.7release notes

  • Preserve the day when selecting a month.

    2.9.6release notes

  • Change focus after pressing 0 more than once on the hour segment in 12-hour locales.

    2.9.6release notes

  • Export the missing TimeRange type so developers can use it from the package.

    2.9.6release notes

  • Preserve the month when selecting a year.

    2.9.6release notes

  • Prevents /*#__PURE__*/ annotations from appearing inside function declarations.

    2.9.5release notes

  • Fixes date values being passed directly and incorrectly to the input element.

    2.9.4release notes

  • Avoids changing focus prematurely when the previous segment value is 0.

    2.9.4release notes

  • Ignores non-element VNodes among slot children.

    2.9.4release notes

  • Namespaced components are generated automatically during the build.

    2.9.4release notes

  • Normalizes the hidden control.

    2.9.4release notes

  • Avoids changing focus prematurely when the previous segment value is 0.

    2.9.4release notes

  • Autocomplete handles IME composition input.

    2.9.3release notes

  • ColorFieldRoot forwards custom attributes.

    2.9.3release notes

  • addOnBlur no longer adds raw input when an item is selected.

    2.9.3release notes

  • FocusScope no longer moves focus when a DOM mutation occurs before any nodes have focus.

    2.9.3release notes

  • HoverCard closes when a scrollable ancestor is scrolled.

    2.9.3release notes

  • Restores highlightOnHover behavior.

    2.9.3release notes

  • In numeric mode, pasting accepts only numeric text.

    2.9.3release notes

  • SelectItemEmits is now exported for use in TypeScript.

    2.9.3release notes

  • Tooltip closes when a scrollable ancestor is scrolled.

    2.9.3release notes

  • useForwardProps returns Partial<T> so optional boolean props are typed correctly.

    2.9.3release notes

  • Grace area creation guards against a missing hover target.

    2.9.3release notes

  • Removed an HTML comment that broke attrs forwarding in production.

    2.9.2release notes

  • Fixed sub triggers not highlighting on pointermove.

    2.9.2release notes

  • Fixed nested px groups ignoring defaultSize and causing percentage drift.

    2.9.2release notes

  • Added handling for browsers without :popover-open support, including Safari 18.

    2.9.2release notes

  • Adds role="application" to fix NVDA keyboard navigation.

    2.9.1release notes

  • Closes content when focus moves outside while openOnFocus is enabled.

    2.9.1release notes

  • Guards against non-Element targets in isLayerExist.

    2.9.1release notes

  • Triggers pointermove only when the menu is open.

    2.9.1release notes

  • Emits correct units for pixel-sized panels in events.

    2.9.1release notes

  • Restores preventDefault for non-TAB keys in segment keydown handling.

    2.9.1release notes

  • Resolves accessibility issues flagged by axe-core.

    2.9.1release notes

  • Prevents permanent scroll lock on rapid toggle.

    2.9.1release notes

  • Fixes an edge case when useHideOthers is nested in a native popover.

    2.9.1release notes

  • The thumb now receives focus when dragged.

    2.9.0release notes

  • Touch interaction no longer drags the page.

    2.9.0release notes

  • Toast talkback announcements are fixed.

    2.9.0release notes

  • currentElement is synchronized on DOM update.

    2.9.0release notes

  • UseId is fixed for cases with no prefix.

    2.9.0release notes

  • Fixes tab navigation to a selectable date when the selected date or today is outside the allowed date range.

    2.8.2release notes

  • Prevents focus restoration when closing with openOnFocus.

    2.8.2release notes

  • Corrects week-number calculation for ISO 8601 locales.

    2.8.2release notes

  • Fixes tab navigation to a selectable date when the selected date or today is outside the allowed date range, and fixes range synchronization and highlighting.

    2.8.2release notes

  • Tabs renders aria-controls only when TabsContent exists.

    2.8.0release notes

  • NavigationMenu allows aria-label overrides.

    2.8.0release notes

  • Allows input focus when Combobox is used inside Dialog.

    2.8.0release notes

  • Changes the type extension from emits to type.

    2.8.0release notes

  • Adds exports for missing DatePicker types.

    2.8.0release notes

  • Integrates locale handling with the useLocale hook in DatePicker and DateRangePicker.

    2.8.0release notes

  • Fixes DayPeriod returning an incorrect value due to a format mismatch.

    2.8.0release notes

  • Prevents submission during IME composition.

    2.8.0release notes

  • Filters redundant brackets when hideTimeZone is used in TimeField, DateField, and DateRangeField.

    2.8.0release notes

  • Reduces GraceArea padding.

    2.8.0release notes

  • Closes the menu when a top-level link is clicked.

    2.8.0release notes

  • Handles more placeholder edge cases.

    2.8.0release notes

  • Corrects hour display in 12-hour format.

    2.8.0release notes

  • Calls updateHour to handle 12-hour time.

    2.8.0release notes

  • Exports TimeValue and missing DateRangePicker component types.

    2.8.0release notes

  • Fixes the empty ariaLabel for nested components in Tooltip Content.

    2.7.0release notes

  • Fixes invalid as and asChild props on DateRangePicker and DatePicker roots.

    2.7.0release notes

  • Fixes invalid as and asChild props on DateRangePicker and DatePicker roots.

    2.7.0release notes

  • Fixes an accessibility aria attribute in RangeCalendar CellTrigger.

    2.7.0release notes

  • Tooltip resets isPointerInTransit to ensure the trigger always works.

    2.7.0release notes

  • ComboboxCancel resets the model value on clear without requiring an input element.

    2.7.0release notes

  • Combobox now restores the body pointer-event style.

    2.7.0release notes

  • Tabs updates the indicator style when the element size changes.

    2.7.0release notes

  • RangeCalendar now always emits the latest value in update:validModelValue.

    2.7.0release notes

  • Fix props.unmountOnHide not working on an item.

    2.6.1release notes

  • Fix highlighting of elements when options are loaded asynchronously.

    2.6.1release notes

  • Prevent the day value from being incorrectly constrained during input.

    2.6.1release notes

  • Ensure submit always emits the latest value.

    2.6.1release notes

  • Hide the placeholder when the PinInput is focused.

    2.6.1release notes

  • Fix the default value type.

    2.6.1release notes

  • Fix maximum-days highlighting when the selection is out of range.

    2.6.1release notes

  • Correct the scrollbar padding calculation.

    2.6.1release notes

  • Update the thumb position when the content size changes.

    2.6.1release notes

  • Use toValue from Vue instead of VueUse.

    2.6.1release notes

  • Avoid mutating the expanded state.

    2.6.1release notes

  • Calendar and RangeCalendar no longer use the application accessibility role.

    2.6.0release notes

  • Improves NavigationMenu compatibility for disableClickTrigger.

    2.6.0release notes

  • Select now handles form autofill events.

    2.6.0release notes

  • Prevents ListboxContent from receiving focus when ListboxFilter exists.

    2.6.0release notes

  • TagsInput now handles number and bigint values in items.

    2.6.0release notes

  • PinInput now allows inputs to be populated by password manager autofill.

    2.6.0release notes

  • Tooltip now allows an SVG element as its trigger.

    2.6.0release notes