unstale

npm / @radix-ui/react-select

@radix-ui/react-select

What changed in @radix-ui/react-select 2, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.

1 breaking3 new APIs and options1 performance1 tooling19 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli on npm

@radix-ui/react-select 225 changes

Breaking changes 1

  • The Select hidden input now submits an empty string when no value is selected.

    2.3.0release notes

New APIs and options 3

  • Select now supports presence-based exit animations.

    2.3.0release notes

  • Added an unstable part that exposes the previously internal native select so consumers can recompose it explicitly.

    2.3.0release notes

  • Added an unstable part that sets up Select context and state without implicitly rendering the hidden native select, enabling consumers to recompose it explicitly.

    2.3.0release notes

Performance 1

  • Improved tree-shaking lets bundlers drop unused components, improving dead-code elimination.

    2.3.4release notes

Tooling 1

  • The package was republished through CI so it includes a provenance attestation.

    2.3.5release notes

Fixes and other changes 19

  • Fixed a type regression so callback props previously declared as methods accept handlers whose parameter is narrower than the prop's.

    2.4.1release notes

  • Content alignment is fixed when all items are disabled.

    2.4.0release notes

  • Optional types now allow explicit undefined, making the package compatible with TypeScript's exactOptionalPropertyTypes flag.

    2.4.0release notes

  • User-driven changes are no longer treated as programmatic in affected cases, allowing bubbled event handlers to be called.

    2.4.0release notes

  • Programmatically updating a Select value inside a form no longer dispatches a click event from the hidden bubble select that propagates to ancestor onClick handlers.

    2.4.0release notes

  • Fixed a bug caused by incorrect tree-shaking in SWC-minified code.

    2.4.0release notes

  • Radix's internal selection logic no longer fires for disabled items, while consumer-provided event handlers still run.

    2.3.8release notes

  • Reverted breaking changes that caused compatibility issues with React Server Components.

    2.3.7release notes

  • Select values are now updated when the associated form is reset.

    2.3.3release notes

  • Select items no longer intercept Space or Enter keys originating from focusable descendants.

    2.3.3release notes

  • Fixed an infinite re-render loop in React 19 caused by unstable composed ref callback references.

    2.3.2release notes

  • An item with an empty string value can act as a clear option, resetting the selection to the placeholder and restoring native optional-select behavior.

    2.3.1release notes

  • Fixed a bug that could cause typeahead search to focus an element that no longer exists.

    2.3.1release notes

  • Fixed triggers referencing a non-existent element via aria-controls when their content is removed from the DOM.

    2.3.0release notes

  • Fixed iOS text selection and editing on HTML inputs within react-dialog.

    2.3.0release notes

  • Fixed placeholder rendering when a controlled Select is reset to an empty value.

    2.3.0release notes

  • Added the missing __selectScope prop to PopperContent.

    2.3.0release notes

  • SelectValue no longer logs invalid prop errors when used with both asChild and a placeholder.

    2.3.0release notes

  • Select no longer closes unexpectedly after touch-scrolling its content inside an open shadow DOM.

    2.3.0release notes