v1.15.0

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

Button

ColorField

ComboBox

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-config for 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 focusing on cancel to fix keyboard navigation when there are no valid drop targets - @reidbarber - PR

GridList

Internationalization

  • Add ESM support for @internationalized/string-compiler - @joshuajaco - PR

ListBox

  • Fix crash when dragging into an empty ListBoxc containing a ListBoxLoadMoreItem - @chirokas - PR

NumberField

  • Fix increment/decrementing buttons via Android TalkBack - @chirokas - PR

Overlays

  • Fix hiding elements inside of opened Modal overlay - @alirezamirian - PR
  • Fix useViewportSize to update after hydration - @ali-idrizi - PR
  • Use ICB size as fallback value for visual viewport - @lixiaoyan - PR

RadioGroup

RangeSlider

  • Allow dragging regardless of usePreventScroll on iOS - @mattvague - PR

Select

  • Fix HiddenSelect initial form value - @joshuajaco - PR
  • Update arrays for multiple select values to be readonly - @lixiaoyan - PR

Table

Tabs

ToggleButtonGroup

  • Fix hover state from showing when disabled - @chirokas - PR

Tree

  • Focus first available item when the previously focused item becomes disabled - @snowystinger - PR

useFilter

  • Add support for @typescript-eslint/unbound-method - @quisido - PR

useFocusRing

usePress

  • Add key to PressEvent - @reidbarber - PR
  • Check hasPointerCapture before releasePointerCapture in usePress - @plesiecki - PR

Utilities

  • Use typeof globalThis to reference global object - @quisido - PR

Virtualizer

  • Add warning to users to set width and height if using Virtualizer - @yihuiliao - PR

Under Construction

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