July 22, 2025 Release
Happy summer! This release adds support for async loading and infinite scrolling, improves form integration and drag and drop interactions, and adds support for additional DOM events and attributes.
The new LoadMoreItem components supported in ListBox, GridList, Table, and Tree enables infinite scrolling. These trigger the loading of additional pages of items and display a loading spinner. Multiple LoadMoreItems can be rendered within a collection too, enabling loading multiple levels of a tree or sections of data from different APIs.
We've also opened up the React Aria Components API to pass through more DOM events and attributes. This improves integration with other libraries, for example making it possible to use another library's menu with a React Aria button.
As always, thanks so much to everyone who contributed to this release!
Enhancements#
- AlertDialog
- Drag and Drop
- Add support for custom drag preview pointer offset - @reidbarber - PR
- Forms
- Add support for form autocomplete to React Aria DateField and DatePicker - @yihuiliao - PR
- Add support for automatic reset after React 19 form actions - @devongovett - PR
- Support associating components with external forms - @devongovett - PR
- Select
- Add
hiddenSelectPropstouseSelect- @snowystinger - PR
- Add
- Tag
- Add
escapeKeyBehaviorprop to React Aria TagGroup - @snowystinger - PR
- Add
- TextField
- Provide
GroupContextin React Aria TextField - @devongovett - PR - Add proper ARIA labeling to Spectrum validation icon - @razvanborsan - PR, @LFDanLu - PR
- Provide
- Toast
- Tree
- Miscellaneous
- Pass through more DOM events and attributes - @devongovett - PR, PR
- Use
inertinstead ofaria-hiddeninariaHideOutside- @devongovett - PR, PR - @LFDanLu - PR - Pass
crossOriginprop in Spectrum Image - @mofojed - PR
Fixes#
- CardView
- Fix A11y warning on Spectrum CardView - @snowystinger - PR
- Drag and Drop
- Fix React 19 StrictMode drag and drop bug - @devongovett - PR
- Date/Time
- FileTrigger
acceptedFileTypesaccepts a readonly array in FileTrigger - @lixiaoyan - PR
- ListView
- Fix Badge text color inside Spectrum ListView - @snowystinger - PR
- Menu
- Fix text alignment for Spectrum Keyboard component - @snowystinger - PR
- Modals
- Warn users of correct state usage for modals - @snowystinger - PR
- NumberField
- RadioGroup
- Fix
RadioGroupkeyboard navigation inFocusScope- @snowystinger - PR
- Fix
- Select/Picker
- Allow
selectedKey={null}to clear value inHiddenSelect- @chirokas - PR - Fix
HiddenSelectcausing page scrolling - @devongovett - PR - Fix keyboard selection in
Selecttypeahead when options include spaces - @snowystinger - PR - Prevent form submission when required
Selecthas more than 300 options - @lucasweng - PR
- Allow
- Tabs
- Fix wrapping with vertical
TabList- @snowystinger - PR - Match id type in
TabandTabPanel- @kidonng - PR
- Fix wrapping with vertical
- TableView
- Miscellaneous
- Include missing
page.css.mapin published npm package - @snowystinger - PR - Check user agent brands - @reidbarber - PR
- Fix
Rectintersection check so that users don't need to provide Virtualizer mocks for tests - @LFDanLu - PR - Fix
createLeafComponentref typing - @snowystinger - PR - Add permission element to focusable elements list - @gabrielchl - PR
- Minimize unnecessary global events in
useHover- @qmhc - PR - Do not dispatch
loadMoreif hook is still in loading state - @jluyau = PR
- Include missing
Docs#
- Remove duplicate "color" in
ColorWheelRenderPropscomment - @GuiEpi - PR - Fix
Calendarexample - @chirokas - PR - Use
lucide-reactfor React Aria example's icons - @reidbarber - PR - Fix TanStack Router example - @brmzkw - PR
- Fix checkbox in dark mode in the Tailwind Starter - @tomer-yechiel - PR
Under Construction#
- Autocomplete
- Tree:
- Support virtualized Tree drag and drop - @reidbarber - PR, PR, PR
- Fix dragging a root item after itself - @chirokas - PR
- Fix reordering top-level items via drag and drop - @reidbarber - PR
Released packages#
- @adobe/react-spectrum@3.43.0
- @internationalized/number@3.6.4
- @react-aria/actiongroup@3.7.19
- @react-aria/aria-modal-polyfill@3.7.15
- @react-aria/autocomplete@3.0.0-beta.6
- @react-aria/breadcrumbs@3.5.27
- @react-aria/button@3.14.0
- @react-aria/calendar@3.9.0
- @react-aria/checkbox@3.16.0
- @react-aria/collections@3.0.0-rc.4
- @react-aria/color@3.1.0
- @react-aria/combobox@3.13.0
- @react-aria/datepicker@3.15.0
- @react-aria/dialog@3.5.28
- @react-aria/disclosure@3.0.7
- @react-aria/dnd@3.11.0
- @react-aria/focus@3.21.0
- @react-aria/form@3.1.0
- @react-aria/grid@3.14.3
- @react-aria/gridlist@3.13.3
- @react-aria/i18n@3.12.11
- @react-aria/interactions@3.25.4
- @react-aria/label@3.7.20
- @react-aria/landmark@3.0.5
- @react-aria/link@3.8.4
- @react-aria/listbox@3.14.7
- @react-aria/live-announcer@3.4.4
- @react-aria/menu@3.19.0
- @react-aria/meter@3.4.25
- @react-aria/numberfield@3.12.0
- @react-aria/overlays@3.28.0
- @react-aria/progress@3.4.25
- @react-aria/radio@3.12.0
- @react-aria/searchfield@3.8.7
- @react-aria/select@3.16.0
- @react-aria/selection@3.25.0
- @react-aria/separator@3.4.11
- @react-aria/slider@3.8.0
- @react-aria/spinbutton@3.6.17
- @react-aria/ssr@3.9.10
- @react-aria/steplist@3.0.0-alpha.20
- @react-aria/switch@3.7.6
- @react-aria/table@3.17.6
- @react-aria/tabs@3.10.6
- @react-aria/tag@3.7.0
- @react-aria/test-utils@1.0.0-beta.0
- @react-aria/textfield@3.18.0
- @react-aria/toast@3.0.6
- @react-aria/toggle@3.12.0
- @react-aria/toolbar@3.0.0-beta.19
- @react-aria/tooltip@3.8.6
- @react-aria/tree@3.1.2
- @react-aria/utils@3.30.0
- @react-aria/virtualizer@4.1.8
- @react-aria/visually-hidden@3.8.26
- @react-spectrum/accordion@3.0.9
- @react-spectrum/actionbar@3.6.10
- @react-spectrum/actiongroup@3.11.0
- @react-spectrum/autocomplete@3.0.0-alpha.46
- @react-spectrum/avatar@3.0.24
- @react-spectrum/badge@3.1.26
- @react-spectrum/breadcrumbs@3.9.20
- @react-spectrum/button@3.17.0
- @react-spectrum/buttongroup@3.6.24
- @react-spectrum/calendar@3.7.4
- @react-spectrum/card@3.0.0-alpha.46
- @react-spectrum/checkbox@3.10.0
- @react-spectrum/color@3.1.0
- @react-spectrum/combobox@3.16.0
- @react-spectrum/contextualhelp@3.6.24
- @react-spectrum/datepicker@3.14.4
- @react-spectrum/dialog@3.9.0
- @react-spectrum/divider@3.5.25
- @react-spectrum/dnd@3.5.8
- @react-spectrum/dropzone@3.0.14
- @react-spectrum/filetrigger@3.0.14
- @react-spectrum/form@3.7.17
- @react-spectrum/icon@3.8.7
- @react-spectrum/illustratedmessage@3.5.12
- @react-spectrum/image@3.6.0
- @react-spectrum/inlinealert@3.2.18
- @react-spectrum/label@3.16.17
- @react-spectrum/labeledvalue@3.2.5
- @react-spectrum/layout@3.6.17
- @react-spectrum/link@3.6.20
- @react-spectrum/list@3.10.4
- @react-spectrum/listbox@3.15.4
- @react-spectrum/menu@3.22.4
- @react-spectrum/meter@3.5.12
- @react-spectrum/numberfield@3.10.0
- @react-spectrum/overlays@5.8.0
- @react-spectrum/picker@3.16.0
- @react-spectrum/progress@3.7.18
- @react-spectrum/provider@3.10.8
- @react-spectrum/radio@3.7.19
- @react-spectrum/s2@0.10.0
- @react-spectrum/searchfield@3.8.19
- @react-spectrum/slider@3.8.0
- @react-spectrum/statuslight@3.5.24
- @react-spectrum/steplist@3.0.0-alpha.18
- @react-spectrum/switch@3.6.4
- @react-spectrum/table@3.17.4
- @react-spectrum/tabs@3.8.23
- @react-spectrum/tag@3.3.3
- @react-spectrum/test-utils@1.0.0-beta.0
- @react-spectrum/text@3.5.18
- @react-spectrum/textfield@3.14.0
- @react-spectrum/theme-dark@3.5.20
- @react-spectrum/theme-default@3.5.20
- @react-spectrum/theme-express@3.0.0-alpha.22
- @react-spectrum/theme-light@3.4.20
- @react-spectrum/toast@3.1.0
- @react-spectrum/tooltip@3.7.8
- @react-spectrum/tree@3.1.4
- @react-spectrum/utils@3.12.7
- @react-spectrum/view@3.6.21
- @react-spectrum/well@3.4.25
- @react-stately/autocomplete@3.0.0-beta.3
- @react-stately/calendar@3.8.3
- @react-stately/checkbox@3.7.0
- @react-stately/collections@3.12.6
- @react-stately/color@3.9.0
- @react-stately/combobox@3.11.0
- @react-stately/data@3.13.2
- @react-stately/datepicker@3.15.0
- @react-stately/disclosure@3.0.6
- @react-stately/dnd@3.6.1
- @react-stately/form@3.2.0
- @react-stately/grid@3.11.4
- @react-stately/layout@4.4.0
- @react-stately/list@3.12.4
- @react-stately/menu@3.9.6
- @react-stately/numberfield@3.10.0
- @react-stately/overlays@3.6.18
- @react-stately/radio@3.11.0
- @react-stately/searchfield@3.5.14
- @react-stately/select@3.7.0
- @react-stately/selection@3.20.4
- @react-stately/slider@3.7.0
- @react-stately/steplist@3.0.0-alpha.16
- @react-stately/table@3.14.4
- @react-stately/tabs@3.8.4
- @react-stately/toast@3.1.2
- @react-stately/toggle@3.9.0
- @react-stately/tooltip@3.5.6
- @react-stately/tree@3.9.1
- @react-stately/utils@3.10.8
- @react-stately/virtualizer@4.4.2
- @react-types/actionbar@3.1.17
- @react-types/actiongroup@3.4.19
- @react-types/autocomplete@3.0.0-alpha.33
- @react-types/avatar@3.0.17
- @react-types/badge@3.1.19
- @react-types/breadcrumbs@3.7.15
- @react-types/button@3.13.0
- @react-types/buttongroup@3.3.19
- @react-types/calendar@3.7.3
- @react-types/card@3.0.0-alpha.38
- @react-types/checkbox@3.10.0
- @react-types/color@3.1.0
- @react-types/combobox@3.13.7
- @react-types/contextualhelp@3.2.20
- @react-types/datepicker@3.13.0
- @react-types/dialog@3.5.20
- @react-types/divider@3.3.19
- @react-types/form@3.7.14
- @react-types/grid@3.3.4
- @react-types/illustratedmessage@3.3.19
- @react-types/image@3.5.0
- @react-types/label@3.9.13
- @react-types/layout@3.3.25
- @react-types/link@3.6.3
- @react-types/list@3.2.30
- @react-types/listbox@3.7.2
- @react-types/menu@3.10.3
- @react-types/meter@3.4.11
- @react-types/numberfield@3.8.13
- @react-types/overlays@3.9.0
- @react-types/progress@3.5.14
- @react-types/provider@3.8.11
- @react-types/radio@3.9.0
- @react-types/searchfield@3.6.4
- @react-types/select@3.10.0
- @react-types/shared@3.31.0
- @react-types/slider@3.8.0
- @react-types/statuslight@3.3.19
- @react-types/switch@3.5.13
- @react-types/table@3.13.2
- @react-types/tabs@3.3.17
- @react-types/text@3.3.19
- @react-types/textfield@3.12.4
- @react-types/tooltip@3.4.19
- @react-types/view@3.4.19
- @react-types/well@3.3.19
- @spectrum-icons/color@3.5.24
- @spectrum-icons/express@3.0.0-alpha.28
- @spectrum-icons/illustrations@3.6.24
- @spectrum-icons/ui@3.6.18
- @spectrum-icons/workflow@4.2.23
- @react-spectrum/codemods@0.7.0
- @react-spectrum/parcel-namer-s2@0.3.1
- @react-aria/parcel-resolver-optimize-locales@1.2.2
- @react-spectrum/parcel-transformer-s2-icon@0.3.1
- @react-spectrum/s2-icon-builder@0.3.1
- react-aria@3.42.0
- react-aria-components@1.11.0
- react-stately@3.40.0