This release includes many new components and features!
The new PreviewTrigger component shows a Popover on hover, focus, or long press. Unlike Tooltip, it may include interactive content, useful for hoverable link previews. Keyboard users can tab in and out of the popover, and it's accessible across devices. Includes open delay, safe area handling, and coordinated entry and exit animations.
TokenField (alpha) allows users to enter text with inline tokens, supporting autocomplete and auto-tokenization. Use it to build AI prompt fields, tag inputs, structured search fields, mention inputs, and multi-select comboboxes.
MenuTrigger now supports trigger="contextMenu", enabling accessible context menus via mouse, keyboard, and touch input.
In addition, we have added a simpler API to implement keyboard shortcuts to useKeyboard, and support for interactive components like textfields inside Table rows.
Finally, the React Aria and React Stately hook documentation has been completely rewritten! The new docs use the same styles as our React Aria Components examples, and show how to use both components and hooks together.
As always, thank you to all our contributors!
Changelog
General Changes
- Add new React Aria hooks documentation - @reidbarber - PR, PR
Breadcrumbs
- Prevent passing an empty string to the
hrefattribute when undefined - @snowystinger - PR
Checkbox
- Fix Enter key presses on Checkbox inputs so they no longer block native implicit form submission - @nami8824 - PR
Collections
- Add guide explaining how to update collection structure to documentation - @patrickwehbe - PR
- Support collections in React canary and Next.js 16's app router - @nwidynski - PR
ComboBox
- Document
defaultFilter's defaultcontainsfilter behavior - @patrickwehbe - PR - Accept a readonly array for controlled multiple ComboBox
value- @lixiaoyan - PR
Date and Time
- Export
DayOfWeektype from@internationalized/date- @patrickwehbe - PR - Clamp milliseconds to a valid maximum of 999 - @spokodev - PR
- Resolve locales with an explicit script to language-script strings - @stas-m2muchcoffee - PR
DatePicker
Dialog
- Add
aria-describedbysupport for thealertdialogrole - @costajohnt - PR - Pass the overlay id to
PopoverContextin Dialog - @albertdugba - PR
Drag and drop
- Prefer the ancestor drop target over the nearest-by-distance target in DragManager - @mvanhorn - PR
- Prevent Android Chrome taps from being detected as a drag event - @LFDanLu - PR
DropZone
- Prevent focus from moving to DropZone when clicking its hidden file input - @pradeep-ramola - PR, @snowystinger - PR
Link
- Add
onPressChangeprop touseLink- @snowystinger - PR
Menu
- Add
useContextMenuandtrigger="contextMenu"to MenuTrigger - @devongovett - PR
Meter
Overlays
- Restore focus in
FocusScopecontainment without scrolling- @mvanhorn - PR - Add an
addGlobalScrollListenerutility and close overlays on scroll events inside a shadow DOM - @pzaczkiewicz-athenahealth - PR
PreviewTrigger
- Add PreviewTrigger component - @devongovett - PR
ProgressBar
RadioGroup
- Fix
Enterkey presses on Radio inputs so they no longer block native implicit form submission - @nami8824 - PR
Select
- Restore the default
typefor Select - @snowystinger - PR
Switch
- Delegate label
keydownhandling to the native input for switches so key events behave consistently - @nami8824 - PR
Table
- Support TextFields and other interactive components inside Table rows using
keyboardNavigationBehavior="tab"- @LFDanLu - PR, PR - Floor fractional table column widths so columns don't overflow - @ardittirana - PR
- Fix column resizing getting stuck after a press and hold - @snowystinger - PR
- Restore focus without an infinite loop when no focusable row remains in
useGridState- @RobHannay - PR
TokenField
- Add TokenField component - @devongovett - PR
Tree
- Fix non-selection checkboxes in Tree items - @mvanhorn - PR
- Prevent virtualized grid layouts from disappearing when hidden via
display: none- @LFDanLu - PR - Export
TreeSectionPropsandTreeHeaderPropstypes - @snowystinger - PR
useId
- Prevent
FinalizationRegistryentries from accumulating on every re-render - @reidbarber - PR
useKeyboard
- Adds support for new shortcuts that allow control over stopping prpagation and preventing default - @snowystinger - PR, PR, PR
usePress
Virtualizer
- Add
shouldObserveItemSizeto Virtualizer to force re-layout when items change size - @yihuiliao - PR
Released packages
- @internationalized/date@3.12.3
- @internationalized/string@3.2.10
- @react-types/shared@3.36.1
- @react-aria/optimize-locales-plugin@2.0.1
- react-aria@3.51.0
- react-aria-components@1.20.0
- react-stately@3.49.0