December 18, 2023 Release
Welcome to the last release of the year! In this release, we’re promoting React Aria Components from RC to GA 🎉, promoting React Spectrum's Dropzone to RC, adding an option to optimize our included translation files, shipping a storybook based on all our React Aria Components with a starter theme, 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!
In a big year, there are a few accomplishments we wanted to highlight.
- ESM support
- React StrictMode support
- React Aria Components
- React Spectrum new components, Dropzone, InlineAlert, TagGroup, ActionBar, Avatar, Table Col Resizing
- Docs Search
- Built-in support for form validation
- Native links support for collections
- Tailwind plugin for RAC
As a parting holiday gift, check out our new landing page for React Aria Components, replete with interactive examples! 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.
We had to temporarily remove nested column support in Tables due to some last minute use cases which we deemed to be inconsistent. We wouldn't have found these without all of your help using our components. Nested column support will be back, and should be easier to use in the future. Thanks for understanding.
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
TableColumnHeaderwhen '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#
- Additional TS StrictMode support - @yihuiliao - PR
- TS Strict for react-aria Checkbox - @ryo-manba - PR
- TS Strict internationalized - @snowystinger - PR
- TS Strict Checkbox State - @snowystinger - PR
- TS Strict for DropZone and VisuallyHidden - @ktabors - PR
- Update Toast label definition to be a string - @ktabors - PR
- Date components light theme placeholder color contrast - @ktabors - PR
- Selected checkbox fill color when checkbox group is disabled - @yihuiliao - PR
- Propagate isDisabled prop from RAC DatePicker/DateRangePicker to popover Button - @ryo-manba - PR, @snowystinger - PR
- Labelable option to Tab props for aria-label support - @ryo-manba - PR
- Announce change to pending for button - @iamwillpowell - PR, @majornista - PR
- Make order of tailwind variants match default - @devongovett - PR
- Upgrade clsx to v2.0.0 for ESM support - @reidbarber - PR
- RAC support overriding default styles in overlay components - @snowystinger - PR
- Clarifying menuWidth prop lower bound. - @LFDanLu - PR
- Close popover on scroll - @boutahlilsoufiane - PR
- Ensure DismissButton has a height so it works with iOS VO - @devongovett - PR
- Support TooltipTrigger with DialogTrigger - @devongovett - PR
- Ensure all refs go to the outer-most element - @devongovett - PR
- Prevent flicker from all items to filtered collection when combobox is animating closed - @devongovett - PR
- Normalize press handling for Checkbox, Radio, and Switch labels - @devongovett - PR
- Scroll into view when auto focusing regardless of modality - @devongovett - PR
- ActionGroup icon padding when overflow="collapse" and buttonLabelBehavior="hide" - @LFDanLu - PR
- RAC Table caching issues - @devongovett - PR
- Support for focus events in useRadioGroup hooks - @ryo-manba - PR
- Scroll menu with sections on iPad - @LFDanLu - PR
- Table warning in NextJS - @snowystinger - PR
- Escape strings used in query selectors - @reidbarber - PR
- Tailwind CSS plugin in RAC to use require instead of import - @tom-fletcher - PR
- Hover in RAC ListBox and remove onCellAction - @LFDanLu - PR
- Propagate SearchField escape key - @ktabors - PR
- restoreTextSelection on pointerUp event - @sookmax - PR
- Make value and defaultValue valid in number and slider fields - @snowystinger - PR
- Respect Tailwind hoverOnlyWhenSupported, and fix placeholder-shown with Input - @devongovett - PR
- Top margin of a button in a form - @yihuiliao - PR
- TableView resize observer loop limit - @snowystinger - PR
- TableView virtualizer crash - @devongovett - PR
Docs#
- Fix useToast example in docs - @devongovett - PR
- Extract CSS vars from RAC docs into reusable package - @devongovett - PR
- Update React Aria docs to clarify virtualization support - @reidbarber - PR
- Update React Aria docs to introduce components by default - @devongovett - PR
- Docs for useLandmark - @reidbarber - PR
- Fix prop table in docs - @yihuiliao - PR
- Update FileTrigger directory prop name and docs - @yihuiliao - PR
- Fix broken links in the the docs - @ktabors - PR
- Update collections and selection guides for React Aria Components - @devongovett - PR
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)
- TS Strict Mode steplist - @snowystinger - PR
- Steplist CSS improvements / HCM - @snowystinger - PR