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