November 20, 2024 Release
We’re excited to announce that our Accordion and Disclosure components are now generally available! This includes Disclosure and DisclosureGroup in React Aria, as well as Disclosure and Accordion in React Spectrum. These components now also use the hidden="until-found" API currently supported in Chrome to enable searching collapsed content with ctrl + F.
We are also introducing ToggleButtonGroup in React Aria Components, which supports arrow key navigation with single and multiple selection modes. In addition, Menu now supports the ability to create Section-level selection groups, allowing you to mix actions, single, and multiple selection within the same menu. Menus can also be nested inside Dialog popovers to enable more complex use cases.
Last but not least, React Spectrum and React Aria are now Typescript Strict compliant! This has been an extremely large, multi-year effort and we thank you for your patience. This helps us reduce bugs, particularly related to null checks, resulting in more correct type definitions for our APIs.
As always, thanks to everyone in our community for your feedback and contributions! ❤️
Typescript Strict notice
React Spectrum and React Aria are now Typescript Strict compliant!
Accordion changes
With the GA release of Accordion and Disclosure, take note of the following changes:
- useAccordionand- useAccordionItemfrom- @react-aria/accordionhave been deprecated in favor of- useDisclosurefrom- @react-aria/disclosure
- DisclosureHeaderfrom- @react-spectrum/accordionhas been updated to be- DisclosureTitle
If you're using an older pre-release version of Accordion, see the previous release notes for instructions on how to migrate to the released API.
Section changes
Section in React Aria Components is deprecated in this release. It is replaced by specific components for each parent collection component, e.g. ListBoxSection and MenuSection.
Enhancements#
- Accordion
- Support hidden="until-found"inDisclosureGroup- @reidbarber - PR
 
- Support 
- Dialog
- Add <Button slot="close">support - @devongovett - PR
 
- Add 
- Menu
- Add Section-level selection groups in Menu- @devongovett - PR
- Support nesting MenuinsideDialogpopovers with additional interactive content - @devongovett - PR
 
- Add Section-level selection groups in 
- ToggleButtonGroup
- Add ToggleButtonGroupcomponent to RAC - @devongovett - PR
 
- Add 
- Misc
- Support Devanagari & Bengali decimal numbering systems - @Rocss - PR
- Update NumberParserto supportroundingIncrement- @snowystinger - PR
- Add expandedstate to RAC Tailwind plugin - @neefrehman - PR
- Add pendingstate to RAC Tailwind plugin - @reidbarber - PR
 
Fixes#
- Accordion
- Fix Accordionborders - @reidbarber - PR
- Add box-sizing: content-boxtoAccordionchevron - @reidbarber - PR
 
- Fix 
- Button
- Checkbox
- Fix Checkboxvalidation reset not working - @nwidynski - PR
- Fix TogglePropsvalidate function type - @joshuajaco - PR
- Add Checkboxdefault slot toGridListandTable- @snowystinger - PR
 
- Fix 
- Date and time
- Fix DatePickerwithdefaultValueto persist time zone - @boutahlilsoufiane - PR
- Fix BC era timestamps in fromAbsolute- @KimPeeters and @devongovett - PR, PR
 
- Fix 
- Dialog
- Add data-racattribute toDialog- @amitdahan - PR
 
- Add 
- Select
- Remove iOS HiddenSelectworkaround - @snowystinger - PR
- Set default value for type parameter in SelectProps- @kp047i - PR
 
- Remove iOS 
- Slider
- Tooltip
- Misc
- Support React 19 prerelease - @snowystinger - PR
- Add "use strict";to style macro CommonJS build output - @reidbarber - PR
- Add prefix to style macro class names - @reidbarber - PR
- Fix Typescript Strict Mode remaining issues - @snowystinger and @devongovett - PR, PR
- Add optional property types - @alecmev - PR
 
Docs#
- Add ARIA APG grid link to useTagGroupdocs - @mehm8128 - PR
- Update CodeSandbox templates in useDatePickeranduseDateRangePicker- @yihuiliao - PR
- Fix DisclosureGroupanatomy diagram SVG clipping on mobile - @yihuiliao - PR
- Update contribution guide - @yihuiliao - PR
- Update AccordionandDisclosureGroupdocs - @yihuiliao - PR
- Add Tailwind starter for DisclosureandDisclosureGroup- @reidbarber - PR
- Update Accordion,Disclosure,DisclosureGroupdocs - @yihuiliao - PR
- Fix typo on ProgressBardocs - @mehm8128 - PR
- Add Disclosurehook docs - @reidbarber - PR
- Add Q&A section to contribution guide - @unional - PR
- Fix Tailwind starter Submenu- @reidbarber - PR
- Add Accordionto example apps - @yihuiliao - PR
- Fix disabled Tagstyles in RAC Tailwind starter - @steveoh - PR
Released packages#
 - @adobe/react-spectrum@3.38.0
 - @internationalized/date@3.6.0
 - @internationalized/message@3.1.6
 - @internationalized/number@3.6.0
 - @internationalized/string-compiler@3.2.6
 - @internationalized/string@3.2.5
 - @react-aria/accordion@3.0.0-alpha.36
 - @react-aria/actiongroup@3.7.11
 - @react-aria/aria-modal-polyfill@3.7.13
 - @react-aria/autocomplete@3.0.0-alpha.36
 - @react-aria/breadcrumbs@3.5.19
 - @react-aria/button@3.11.0
 - @react-aria/calendar@3.6.0
 - @react-aria/checkbox@3.15.0
 - @react-aria/collections@3.0.0-alpha.6
 - @react-aria/color@3.0.2
 - @react-aria/combobox@3.11.0
 - @react-aria/datepicker@3.12.0
 - @react-aria/dialog@3.5.20
 - @react-aria/disclosure@3.0.0
 - @react-aria/dnd@3.8.0
 - @react-aria/example-theme@1.0.5
 - @react-aria/focus@3.19.0
 - @react-aria/form@3.0.11
 - @react-aria/grid@3.11.0
 - @react-aria/gridlist@3.10.0
 - @react-aria/i18n@3.12.4
 - @react-aria/interactions@3.22.5
 - @react-aria/label@3.7.13
 - @react-aria/landmark@3.0.0-beta.17
 - @react-aria/link@3.7.7
 - @react-aria/listbox@3.13.6
 - @react-aria/live-announcer@3.4.1
 - @react-aria/menu@3.16.0
 - @react-aria/meter@3.4.18
 - @react-aria/numberfield@3.11.9
 - @react-aria/overlays@3.24.0
 - @react-aria/progress@3.4.18
 - @react-aria/radio@3.10.10
 - @react-aria/searchfield@3.7.11
 - @react-aria/select@3.15.0
 - @react-aria/selection@3.21.0
 - @react-aria/separator@3.4.4
 - @react-aria/slider@3.7.14
 - @react-aria/spinbutton@3.6.10
 - @react-aria/ssr@3.9.7
 - @react-aria/steplist@3.0.0-alpha.12
 - @react-aria/switch@3.6.10
 - @react-aria/table@3.16.0
 - @react-aria/tabs@3.9.8
 - @react-aria/tag@3.4.8
 - @react-aria/test-utils@1.0.0-alpha.3
 - @react-aria/textfield@3.15.0
 - @react-aria/toast@3.0.0-beta.18
 - @react-aria/toggle@3.10.10
 - @react-aria/toolbar@3.0.0-beta.11
 - @react-aria/tooltip@3.7.10
 - @react-aria/tree@3.0.0-beta.2
 - @react-aria/utils@3.26.0
 - @react-aria/virtualizer@4.1.0
 - @react-aria/visually-hidden@3.8.18
 - @react-spectrum/accordion@3.0.0
 - @react-spectrum/actionbar@3.6.2
 - @react-spectrum/actiongroup@3.10.10
 - @react-spectrum/autocomplete@3.0.0-alpha.38
 - @react-spectrum/avatar@3.0.17
 - @react-spectrum/badge@3.1.18
 - @react-spectrum/breadcrumbs@3.9.12
 - @react-spectrum/button@3.16.9
 - @react-spectrum/buttongroup@3.6.17
 - @react-spectrum/calendar@3.5.0
 - @react-spectrum/card@3.0.0-alpha.38
 - @react-spectrum/checkbox@3.9.11
 - @react-spectrum/color@3.0.2
 - @react-spectrum/combobox@3.14.0
 - @react-spectrum/contextualhelp@3.6.16
 - @react-spectrum/datepicker@3.11.0
 - @react-spectrum/dialog@3.8.16
 - @react-spectrum/divider@3.5.18
 - @react-spectrum/dnd@3.5.0
 - @react-spectrum/dropzone@3.0.6
 - @react-spectrum/filetrigger@3.0.6
 - @react-spectrum/form@3.7.10
 - @react-spectrum/icon@3.8.0
 - @react-spectrum/illustratedmessage@3.5.5
 - @react-spectrum/image@3.5.6
 - @react-spectrum/inlinealert@3.2.10
 - @react-spectrum/label@3.16.10
 - @react-spectrum/labeledvalue@3.1.18
 - @react-spectrum/layout@3.6.10
 - @react-spectrum/link@3.6.12
 - @react-spectrum/list@3.9.0
 - @react-spectrum/listbox@3.14.0
 - @react-spectrum/menu@3.21.0
 - @react-spectrum/meter@3.5.5
 - @react-spectrum/numberfield@3.9.8
 - @react-spectrum/overlays@5.7.0
 - @react-spectrum/picker@3.15.4
 - @react-spectrum/progress@3.7.11
 - @react-spectrum/provider@3.10.0
 - @react-spectrum/radio@3.7.11
 - @react-spectrum/s2@0.5.0
 - @react-spectrum/searchfield@3.8.11
 - @react-spectrum/slider@3.7.0
 - @react-spectrum/statuslight@3.5.17
 - @react-spectrum/steplist@3.0.0-alpha.10
 - @react-spectrum/style-macro-s1@3.0.0-alpha.2
 - @react-spectrum/switch@3.5.10
 - @react-spectrum/table@3.15.0
 - @react-spectrum/tabs@3.8.15
 - @react-spectrum/tag@3.2.11
 - @react-spectrum/test-utils@1.0.0-alpha.3
 - @react-spectrum/text@3.5.10
 - @react-spectrum/textfield@3.12.7
 - @react-spectrum/theme-dark@3.5.14
 - @react-spectrum/theme-default@3.5.14
 - @react-spectrum/theme-express@3.0.0-alpha.16
 - @react-spectrum/theme-light@3.4.14
 - @react-spectrum/toast@3.0.0-beta.17
 - @react-spectrum/tooltip@3.7.0
 - @react-spectrum/tree@3.0.0-beta.2
 - @react-spectrum/utils@3.12.0
 - @react-spectrum/view@3.6.14
 - @react-spectrum/well@3.4.18
 - @react-stately/calendar@3.6.0
 - @react-stately/checkbox@3.6.10
 - @react-stately/collections@3.12.0
 - @react-stately/color@3.8.1
 - @react-stately/combobox@3.10.1
 - @react-stately/data@3.12.0
 - @react-stately/datepicker@3.11.0
 - @react-stately/disclosure@3.0.0
 - @react-stately/dnd@3.5.0
 - @react-stately/flags@3.0.5
 - @react-stately/form@3.1.0
 - @react-stately/grid@3.10.0
 - @react-stately/layout@4.1.0
 - @react-stately/list@3.11.1
 - @react-stately/menu@3.9.0
 - @react-stately/numberfield@3.9.8
 - @react-stately/overlays@3.6.12
 - @react-stately/radio@3.10.9
 - @react-stately/searchfield@3.5.8
 - @react-stately/select@3.6.9
 - @react-stately/selection@3.18.0
 - @react-stately/slider@3.6.0
 - @react-stately/steplist@3.0.0-alpha.10
 - @react-stately/table@3.13.0
 - @react-stately/tabs@3.7.0
 - @react-stately/toast@3.0.0-beta.7
 - @react-stately/toggle@3.8.0
 - @react-stately/tooltip@3.5.0
 - @react-stately/tree@3.8.6
 - @react-stately/utils@3.10.5
 - @react-stately/virtualizer@4.2.0
 - @react-types/accordion@3.0.0-alpha.25
 - @react-types/actionbar@3.1.11
 - @react-types/actiongroup@3.4.13
 - @react-types/autocomplete@3.0.0-alpha.27
 - @react-types/avatar@3.0.11
 - @react-types/badge@3.1.13
 - @react-types/breadcrumbs@3.7.9
 - @react-types/button@3.10.1
 - @react-types/buttongroup@3.3.13
 - @react-types/calendar@3.5.0
 - @react-types/card@3.0.0-alpha.31
 - @react-types/checkbox@3.9.0
 - @react-types/color@3.0.1
 - @react-types/combobox@3.13.1
 - @react-types/contextualhelp@3.2.14
 - @react-types/datepicker@3.9.0
 - @react-types/dialog@3.5.14
 - @react-types/divider@3.3.13
 - @react-types/form@3.7.8
 - @react-types/grid@3.2.10
 - @react-types/illustratedmessage@3.3.13
 - @react-types/image@3.4.5
 - @react-types/label@3.9.7
 - @react-types/layout@3.3.19
 - @react-types/link@3.5.9
 - @react-types/list@3.2.22
 - @react-types/listbox@3.5.3
 - @react-types/menu@3.9.13
 - @react-types/meter@3.4.5
 - @react-types/numberfield@3.8.7
 - @react-types/overlays@3.8.11
 - @react-types/progress@3.5.8
 - @react-types/provider@3.8.5
 - @react-types/radio@3.8.5
 - @react-types/searchfield@3.5.10
 - @react-types/select@3.9.8
 - @react-types/shared@3.26.0
 - @react-types/slider@3.7.7
 - @react-types/statuslight@3.3.13
 - @react-types/switch@3.5.7
 - @react-types/table@3.10.3
 - @react-types/tabs@3.3.11
 - @react-types/text@3.3.13
 - @react-types/textfield@3.10.0
 - @react-types/tooltip@3.4.13
 - @react-types/view@3.4.13
 - @react-types/well@3.3.13
 - @spectrum-icons/color@3.5.17
 - @spectrum-icons/express@3.0.0-alpha.21
 - @spectrum-icons/illustrations@3.6.17
 - @spectrum-icons/ui@3.6.11
 - @spectrum-icons/workflow@4.2.16
 - @react-spectrum/codemods@0.3.0
 - @react-aria/optimize-locales-plugin@1.1.3
 - @react-aria/parcel-resolver-optimize-locales@1.2.0
 - @react-spectrum/parcel-transformer-s2-icon@0.2.0
 - @react-spectrum/s2-icon-builder@0.2.0
 - @react-spectrum/ts-plugin@0.1.0
 - react-aria@3.36.0
 - react-aria-components@1.5.0
 - react-stately@3.34.0
 - tailwindcss-react-aria-components@1.2.0