December 20, 2023 Release

Welcome to the last release of the year! After a year of work, we are happy to announce the GA release of React Aria Components ๐ŸŽ‰ This component library, built on top of our React Aria hooks, provides a simpler way to craft world-class accessible components with custom styles. See our new React Aria landing page for all of the details, including interactive examples. To help get you started even faster, we now also have a downloadable Storybook starter kit including an example CSS theme.

Also in this release we are promoting React Spectrum's DropZone to RC, adding the ability to optimize translation files, and fixing plenty of bugs. As always, huge thanks to everyone in our community for their feedback and contributions to make this release and this year possible!

Happy coding and see you in the new year! โ˜ƒ๏ธ

React Aria Components API updates

In this release, we made a few last API updates to React Aria Components as they move along to GA.

  • Temporarily removed nested column support in Tables due to instability.
  • Hover and Focus are now distinct states in ListBox.
  • Hover state has been added to column headers in tables when sorting is allowed.
  • All refs given to a component now go to their outer most element. If you need a ref to the input, you can attach it directly.
  • Styles for Popover, Tooltip, and OverlayArrow are now merged in a different order to allow overriding our default styles.
  • Added a dependency array to help manage the item cache with columns in Tables.

Enhancements#


  • Improve behavior of usePreventScroll on iOS - @devongovett - PR
  • Add data-trigger to Popover to style based on trigger component - @devongovett - PR
  • Add menuWidth & expose align props in ComboBox and SearchAutocomplete - @sookmax - PR
  • RAC Menu button and popover can have same width - @ktabors - PR
  • Generate a starter storybook from the docs - @devongovett - PR
  • Add directory support for FileTrigger - @ryo-manba - PR
  • Provide access to portalContainer of react-aria-components popover element - @BenBeattieHood - PR
  • Add capitalization settings support for useTextField - @ryo-manba - PR
  • Add build plugins to optimize translated strings for unsupported languages - @devongovett - PR
  • Render children in DropIndicators - @devongovett - PR
  • Add support for onScroll event to RAC collection components - @devongovett - PR
  • Add hover state to TableColumnHeader when 'allowSorting' is true - @sookmax - PR
  • Use owner document in FocusScope - @slye-stripe - PR
  • Add 'use client' to components in build for Next.js app directory - @devongovett - PR
  • Support for Avatar in ListBox, Picker, ComboBox, and SearchAutocomplete - @reidbarber - PR

Fixes#


Docs#


Under construction#


Fixes to pre-released components are listed below. Please feel free to try them out, and report any issues you encounter.

React Spectrum Submenus (Alpha)

React Spectrum Steplist (Alpha)

Released packages#


 - @adobe/react-spectrum@3.33.0
 - @internationalized/date@3.5.1
 - @internationalized/number@3.5.0
 - @internationalized/string@3.2.0
 - @react-aria/accordion@3.0.0-alpha.25
 - @react-aria/actiongroup@3.7.1
 - @react-aria/autocomplete@3.0.0-alpha.24
 - @react-aria/breadcrumbs@3.5.9
 - @react-aria/button@3.9.1
 - @react-aria/calendar@3.5.4
 - @react-aria/checkbox@3.13.0
 - @react-aria/color@3.0.0-beta.28
 - @react-aria/combobox@3.8.1
 - @react-aria/datepicker@3.9.1
 - @react-aria/dialog@3.5.9
 - @react-aria/dnd@3.5.1
 - @react-aria/example-theme@1.0.0
 - @react-aria/focus@3.16.0
 - @react-aria/form@3.0.1
 - @react-aria/grid@3.8.6
 - @react-aria/gridlist@3.7.3
 - @react-aria/i18n@3.10.0
 - @react-aria/interactions@3.20.1
 - @react-aria/label@3.7.4
 - @react-aria/landmark@3.0.0-beta.8
 - @react-aria/link@3.6.3
 - @react-aria/listbox@3.11.3
 - @react-aria/menu@3.12.0
 - @react-aria/meter@3.4.9
 - @react-aria/numberfield@3.10.1
 - @react-aria/overlays@3.20.0
 - @react-aria/progress@3.4.9
 - @react-aria/radio@3.10.0
 - @react-aria/searchfield@3.7.0
 - @react-aria/select@3.14.1
 - @react-aria/selection@3.17.3
 - @react-aria/separator@3.3.9
 - @react-aria/slider@3.7.4
 - @react-aria/spinbutton@3.6.1
 - @react-aria/ssr@3.9.1
 - @react-aria/steplist@3.0.0-alpha.1
 - @react-aria/switch@3.6.0
 - @react-aria/table@3.13.3
 - @react-aria/tabs@3.8.3
 - @react-aria/tag@3.3.1
 - @react-aria/textfield@3.14.0
 - @react-aria/toast@3.0.0-beta.8
 - @react-aria/toggle@3.10.0
 - @react-aria/toolbar@3.0.0-beta.1
 - @react-aria/tooltip@3.7.0
 - @react-aria/utils@3.23.0
 - @react-aria/virtualizer@3.9.8
 - @react-aria/visually-hidden@3.8.8
 - @react-spectrum/accordion@3.0.0-alpha.27
 - @react-spectrum/actionbar@3.4.1
 - @react-spectrum/actiongroup@3.10.1
 - @react-spectrum/autocomplete@3.0.0-alpha.27
 - @react-spectrum/avatar@3.0.8
 - @react-spectrum/badge@3.1.9
 - @react-spectrum/breadcrumbs@3.9.3
 - @react-spectrum/button@3.16.0
 - @react-spectrum/buttongroup@3.6.9
 - @react-spectrum/calendar@3.4.4
 - @react-spectrum/card@3.0.0-alpha.28
 - @react-spectrum/checkbox@3.9.1
 - @react-spectrum/color@3.0.0-beta.29
 - @react-spectrum/combobox@3.12.0
 - @react-spectrum/contextualhelp@3.6.6
 - @react-spectrum/datepicker@3.9.1
 - @react-spectrum/dialog@3.8.6
 - @react-spectrum/divider@3.5.9
 - @react-spectrum/dnd@3.3.6
 - @react-spectrum/dropzone@3.0.0-rc.0
 - @react-spectrum/form@3.7.1
 - @react-spectrum/icon@3.7.9
 - @react-spectrum/illustratedmessage@3.4.9
 - @react-spectrum/image@3.4.9
 - @react-spectrum/inlinealert@3.2.1
 - @react-spectrum/label@3.16.1
 - @react-spectrum/labeledvalue@3.1.9
 - @react-spectrum/layout@3.6.1
 - @react-spectrum/link@3.6.3
 - @react-spectrum/list@3.7.5
 - @react-spectrum/listbox@3.12.5
 - @react-spectrum/menu@3.17.0
 - @react-spectrum/meter@3.4.9
 - @react-spectrum/numberfield@3.8.1
 - @react-spectrum/overlays@5.5.3
 - @react-spectrum/picker@3.14.0
 - @react-spectrum/progress@3.7.3
 - @react-spectrum/provider@3.9.3
 - @react-spectrum/radio@3.7.1
 - @react-spectrum/searchfield@3.8.1
 - @react-spectrum/slider@3.6.5
 - @react-spectrum/statuslight@3.5.9
 - @react-spectrum/steplist@3.0.0-alpha.1
 - @react-spectrum/switch@3.5.1
 - @react-spectrum/table@3.12.5
 - @react-spectrum/tabs@3.8.5
 - @react-spectrum/tag@3.2.1
 - @react-spectrum/text@3.5.1
 - @react-spectrum/textfield@3.11.1
 - @react-spectrum/toast@3.0.0-beta.8
 - @react-spectrum/tooltip@3.6.3
 - @react-spectrum/utils@3.11.3
 - @react-spectrum/view@3.6.6
 - @react-spectrum/well@3.4.9
 - @react-stately/calendar@3.4.3
 - @react-stately/checkbox@3.6.1
 - @react-stately/collections@3.10.4
 - @react-stately/color@3.5.1
 - @react-stately/combobox@3.8.1
 - @react-stately/datepicker@3.9.1
 - @react-stately/dnd@3.2.7
 - @react-stately/grid@3.8.4
 - @react-stately/layout@3.13.5
 - @react-stately/list@3.10.2
 - @react-stately/menu@3.6.0
 - @react-stately/numberfield@3.8.0
 - @react-stately/radio@3.10.1
 - @react-stately/select@3.6.1
 - @react-stately/selection@3.14.2
 - @react-stately/slider@3.5.0
 - @react-stately/steplist@3.0.0-alpha.1
 - @react-stately/table@3.11.4
 - @react-stately/tabs@3.6.3
 - @react-stately/tree@3.7.5
 - @react-stately/virtualizer@3.6.6
 - @react-types/autocomplete@3.0.0-alpha.19
 - @react-types/calendar@3.4.3
 - @react-types/card@3.0.0-alpha.22
 - @react-types/combobox@3.10.0
 - @react-types/datepicker@3.7.1
 - @react-types/form@3.7.0
 - @react-types/list@3.2.12
 - @react-types/radio@3.7.0
 - @react-types/select@3.9.1
 - @react-types/table@3.9.2
 - @spectrum-icons/color@3.5.9
 - @spectrum-icons/express@3.0.0-alpha.13
 - @spectrum-icons/illustrations@3.6.9
 - @spectrum-icons/ui@3.6.3
 - @spectrum-icons/workflow@4.2.8
 - @react-aria/optimize-locales-plugin@1.0.0
 - @react-aria/parcel-resolver-optimize-locales@1.0.0
 - react-aria@3.31.0
 - react-aria-components@1.0.0
 - react-stately@3.29.0
 - tailwindcss-react-aria-components@1.0.0