New year, new release, and the shine hasn’t worn off from our new documentation website: we’ve already added new Agent Skills and improved the search experience 😍. This month’s release includes a big update to our compatibility, with DOM customization options via a new render prop for React Aria Components. This feature will help with cases such as rendering Router Link components, or for use with animation libraries. We have also fixed our most upvoted issue: we now constrain dates on blur instead of as you type, allowing more input flexibility and greatly improving the user experience of our date fields.
Thank you to all of our contributors for your bug fixes, features, and feedback. We look forward to another great year ahead!
Change log
General
- Add
renderprop to allow customizing DOM element - @devongovett - PR, PR - Add Agent skills - @reidbarber - PR
Button
- Support passing function via
formActionprop - @stefanprobst - PR
ColorField
ComboBox
- Prevent popover from closing when a section header is clicked - @reidbarber - PR
- Fix correctly resetting
defaultSelectedKey- @chirokas - PR - Fix placeholder strings in the docs - @snowystinger - PR
- Ensure
containsis used as default filter - @alexdametto - PR
Date and Time
- Support entering invalid dates and constrain on blur - @devongovett - PR
- Fix date conversion format for native date input - @yihuiliao - PR
- Fix Modal from closing when dismissing DateRangePicker via outside click - @chirokas - PR
Documentation
- Add subheadings as keywords for searching in docs - @yihuiliao - PR
- Fix
ts-configfor StackBlitz examples - @snowystinger - PR - Add Portuguese to supported locales in docs - @armandabric - PR
- Fix import in locale plugin doc to match plugin referenced in bundler config object - @leiske - PR
Drag and Drop
- Dispatch
focusingon cancel to fix keyboard navigation when there are no valid drop targets - @reidbarber - PR
GridList
- Support
disallowTypeAheadbehavior - @rilescode - PR - Add section docs @yihuiliao - PR, PR, PR
Internationalization
- Add ESM support for
@internationalized/string-compiler- @joshuajaco - PR
Link
- Add
idprop to Link component - @AryanBagade - PR
ListBox
Menu
- Add
shouldCloseOnSelect- @sfc-gh-alisowski - PR - Add focus event types to collection items - @damianstasik - PR
NumberField
Overlays
- Fix hiding elements inside of opened Modal overlay - @alirezamirian - PR
- Fix
useViewportSizeto update after hydration - @ali-idrizi - PR - Use ICB size as fallback value for visual viewport - @lixiaoyan - PR
RadioGroup
- Exclude null type from
validatevalue - @lixiaoyan - PR
RangeSlider
- Allow dragging regardless of
usePreventScrollon iOS - @mattvague - PR
Select
- Fix
HiddenSelectinitial form value - @joshuajaco - PR - Update arrays for multiple select values to be readonly - @lixiaoyan - PR
Table
- Add cell column index in render props - @sebald - PR
- Change
onActiontoonRowActionin docs - @yihuiliao - PR - Restore scroll position when non-virtualized - @BRobin55 - PR, @snowystinger - PR
Tabs
- Exclude
disabledKeysprop from TabPanel - @lixiaoyan - PR - Filter DOM props on TabPanels - @yihuiliao - PR, PR
ToggleButtonGroup
Tree
- Focus first available item when the previously focused item becomes disabled - @snowystinger - PR
useFilter
useFocusRing
- Improve performance - @sfc-gh-tkojima - PR
usePress
- Add
keytoPressEvent- @reidbarber - PR - Check
hasPointerCapturebeforereleasePointerCaptureinusePress- @plesiecki - PR
Utilities
Virtualizer
- Add warning to users to set width and height if using Virtualizer - @yihuiliao - PR
Under Construction
- Shadow DOM
- Use
node.containsfor Shadow DOM usage - @snowystinger - PR, PR
- Use
Released packages
- @internationalized/date@3.11.0
- @internationalized/string-compiler@3.3.0
- @react-aria/actiongroup@3.7.23
- @react-aria/autocomplete@3.0.0-rc.5
- @react-aria/breadcrumbs@3.5.31
- @react-aria/button@3.14.4
- @react-aria/calendar@3.9.4
- @react-aria/checkbox@3.16.4
- @react-aria/collections@3.0.2
- @react-aria/color@3.1.4
- @react-aria/combobox@3.14.2
- @react-aria/datepicker@3.16.0
- @react-aria/dialog@3.5.33
- @react-aria/disclosure@3.1.2
- @react-aria/dnd@3.11.5
- @react-aria/focus@3.21.4
- @react-aria/form@3.1.4
- @react-aria/grid@3.14.7
- @react-aria/gridlist@3.14.3
- @react-aria/i18n@3.12.15
- @react-aria/interactions@3.27.0
- @react-aria/label@3.7.24
- @react-aria/landmark@3.0.9
- @react-aria/link@3.8.8
- @react-aria/listbox@3.15.2
- @react-aria/menu@3.20.0
- @react-aria/meter@3.4.29
- @react-aria/numberfield@3.12.4
- @react-aria/overlays@3.31.1
- @react-aria/progress@3.4.29
- @react-aria/radio@3.12.4
- @react-aria/searchfield@3.8.11
- @react-aria/select@3.17.2
- @react-aria/selection@3.27.1
- @react-aria/separator@3.4.15
- @react-aria/slider@3.8.4
- @react-aria/spinbutton@3.7.1
- @react-aria/steplist@3.0.0-alpha.24
- @react-aria/switch@3.7.10
- @react-aria/table@3.17.10
- @react-aria/tabs@3.11.0
- @react-aria/tag@3.8.0
- @react-aria/textfield@3.18.4
- @react-aria/toast@3.0.10
- @react-aria/toggle@3.12.4
- @react-aria/toolbar@3.0.0-beta.23
- @react-aria/tooltip@3.9.1
- @react-aria/tree@3.1.6
- @react-aria/utils@3.33.0
- @react-aria/virtualizer@4.1.12
- @react-aria/visually-hidden@3.8.30
- @react-stately/calendar@3.9.2
- @react-stately/checkbox@3.7.4
- @react-stately/collections@3.12.9
- @react-stately/color@3.9.4
- @react-stately/combobox@3.12.2
- @react-stately/data@3.15.1
- @react-stately/datepicker@3.16.0
- @react-stately/disclosure@3.0.10
- @react-stately/dnd@3.7.3
- @react-stately/form@3.2.3
- @react-stately/grid@3.11.8
- @react-stately/layout@4.5.3
- @react-stately/list@3.13.3
- @react-stately/menu@3.9.10
- @react-stately/numberfield@3.10.4
- @react-stately/overlays@3.6.22
- @react-stately/radio@3.11.4
- @react-stately/searchfield@3.5.18
- @react-stately/select@3.9.1
- @react-stately/selection@3.20.8
- @react-stately/slider@3.7.4
- @react-stately/steplist@3.0.0-alpha.20
- @react-stately/table@3.15.3
- @react-stately/tabs@3.8.8
- @react-stately/toast@3.1.3
- @react-stately/toggle@3.9.4
- @react-stately/tooltip@3.5.10
- @react-stately/tree@3.9.5
- @react-stately/virtualizer@4.4.5
- @react-types/actionbar@3.1.20
- @react-types/actiongroup@3.4.22
- @react-types/autocomplete@3.0.0-alpha.37
- @react-types/avatar@3.0.20
- @react-types/badge@3.1.22
- @react-types/breadcrumbs@3.7.18
- @react-types/button@3.15.0
- @react-types/buttongroup@3.3.22
- @react-types/calendar@3.8.2
- @react-types/card@3.0.0-alpha.42
- @react-types/checkbox@3.10.3
- @react-types/color@3.1.3
- @react-types/combobox@3.13.11
- @react-types/contextualhelp@3.2.23
- @react-types/datepicker@3.13.4
- @react-types/dialog@3.5.23
- @react-types/divider@3.3.22
- @react-types/form@3.7.17
- @react-types/grid@3.3.7
- @react-types/illustratedmessage@3.3.22
- @react-types/image@3.5.3
- @react-types/label@3.9.16
- @react-types/layout@3.3.28
- @react-types/link@3.6.6
- @react-types/list@3.2.36
- @react-types/listbox@3.7.5
- @react-types/menu@3.10.6
- @react-types/meter@3.4.14
- @react-types/numberfield@3.8.17
- @react-types/overlays@3.9.3
- @react-types/progress@3.5.17
- @react-types/provider@3.8.14
- @react-types/radio@3.9.3
- @react-types/searchfield@3.6.7
- @react-types/select@3.12.1
- @react-types/shared@3.33.0
- @react-types/slider@3.8.3
- @react-types/statuslight@3.3.22
- @react-types/switch@3.5.16
- @react-types/table@3.13.5
- @react-types/tabs@3.3.21
- @react-types/text@3.3.22
- @react-types/textfield@3.12.7
- @react-types/tooltip@3.5.1
- @react-types/view@3.4.22
- @react-types/well@3.3.22
- react-aria@3.46.0
- react-aria-components@1.15.0
- react-stately@3.44.0