Skip to content

feat: update React Aria packages to latest - #1910

Open
Stephen Watkins (stephenjwatkins) wants to merge 2 commits into
mainfrom
SHPE-1642-update-react-aria
Open

feat: update React Aria packages to latest#1910
Stephen Watkins (stephenjwatkins) wants to merge 2 commits into
mainfrom
SHPE-1642-update-react-aria

Conversation

@stephenjwatkins

Copy link
Copy Markdown
Member

React Aria 3.51 consolidated the individual @react-aria/* and @react-stately/* packages into the react-aria and react-stately monopackages, so subpath imports no longer resolve. Imports for calendar types/state, i18n, and visually-hidden now come from the main packages. @react-types/grid and @react-stately/list are declared explicitly since GridNode and ListCollection have no main-package equivalent.

Type fixes for upstream signature changes:

  • RangeCalendar's isDateUnavailable now receives the in-progress range's anchor date as a second argument, matching useRangeCalendarState. The single-date components keep the one-argument signature.
  • TabPanelsTabs normalizes selectedKey from null to undefined now that useTabListState no longer accepts null, preserving our public API.

useScrollbar now waits for a live document before initializing OverlayScrollbars. React Aria Components builds collections by rendering children into a detached fragment owned by an inert document, and those elements have no defaultView for OverlayScrollbars to dereference — which crashed every MultiSelect.

React Aria 3.51 consolidated the individual `@react-aria/*` and
`@react-stately/*` packages into the `react-aria` and `react-stately`
monopackages, so subpath imports no longer resolve. Imports for calendar
types/state, i18n, and visually-hidden now come from the main packages.
`@react-types/grid` and `@react-stately/list` are declared explicitly since
`GridNode` and `ListCollection` have no main-package equivalent.

Type fixes for upstream signature changes:

- `RangeCalendar`'s `isDateUnavailable` now receives the in-progress range's
  anchor date as a second argument, matching `useRangeCalendarState`. The
  single-date components keep the one-argument signature.
- `TabPanelsTabs` normalizes `selectedKey` from `null` to `undefined` now that
  `useTabListState` no longer accepts `null`, preserving our public API.

`useScrollbar` now waits for a live document before initializing
OverlayScrollbars. React Aria Components builds collections by rendering
children into a detached fragment owned by an inert document, and those
elements have no `defaultView` for OverlayScrollbars to dereference — which
crashed every MultiSelect.
@stephenjwatkins
Stephen Watkins (stephenjwatkins) marked this pull request as ready for review August 21, 2026 12:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants