@base-ui/react
Version:
Base UI is a library of headless ('unstyled') React components and low-level hooks. You gain complete control over your app's CSS and accessibility features.
1,406 lines (909 loc) • 111 kB
Markdown
# Versions
## v1.7.0
_Aug 4, 2026_
### General changes
- Restore visible focus after keyboard close in Safari and Firefox (#5093) by @lyzno1
- Type `render` callback props based on the rendered element (#5104) by @atomiks
- Reduce popup bundle size (#5233) by @atomiks
- Reduce store bundle size (#5250) by @atomiks
- Keep unpositioned popups at the viewport origin (#5299) by @flaviendelangle
- Correct layout and passive effect timing (#5337) by @atomiks
- Remove redundant lifecycle synchronization (#5341) by @atomiks
- Prevent stale cleanup from clearing registered part IDs (#5340) by @atomiks
- Complete popup unmounting after a canceled exit transition (#5401) by @atomiks
- Fix rendered trigger ID ownership (#5110) by @atomiks
- Prevent unwanted flip with capped scrollable content (#5120) by @atomiks
- Fix `collisionPadding` off-by-one on the biased side (#5143) by @atomiks
- Reduce shared popup bundle size (#5192) by @atomiks
- Mount popup subtrees synchronously when opening in React 17 (#5309) by @atomiks
- Fix auto-resize origin for left-anchored popups (#5370) by @sai6855
- Avoid redundant re-renders during lazy flipping (#5372) by @mdm317
- Strip implementation-only types from published `.d.ts` files (#5165) by @michaldudak
- Fix `usePreviousValue` equality comparison (#5264) by @lyzno1
### Accordion
- Remove the implicit `dir` attribute from `<Accordion.Root>` (#5117) by @chuganzy
### Alert Dialog
- Prevent `<AlertDialog.Root>` from reopening after remounting with a reused handle (#5109) by @michaldudak
### Autocomplete
- Respect locale when filtering (#5195) by @atomiks
- Add `input-press` to change event details (#5356) by @chuganzy
- Add `cancel-open` to change event details (#5376) by @chuganzy
- Reset list scroll position on filter (#5231) by @atomiks
- Remove dead code and deduplicate handlers (#5194) by @atomiks
- Fix listbox separator semantics (#5399) by @sarthakmalik0810
### Avatar
- Show `<Avatar.Fallback>` immediately when `delay={0}` (#5147) by @chuganzy
### Button
- Fix keyboard click handling for custom elements (#4838) by @atomiks
### Checkbox
- Remove redundant validation input ref (#5188) by @nami8824
- Stop internal input clicks from reaching ancestors (#5176) by @atomiks
- Reduce bundle size (#5223) by @atomiks
### Checkbox Group
- Focus invalid checkbox (#5216) by @atomiks
- Align form values with native submission (#5218) by @atomiks
- Reduce bundle size (#5223) by @atomiks
### Combobox
- Add `input-press` to change event details (#5356) by @chuganzy
- Add `cancel-open` to change event details (#5376) by @chuganzy
- Stop filtering grouped items after limit (#5086) by @lyzno1
- Remove leaky value registry (#5198) by @atomiks
- Set initial highlight in inline combobox (#5230) by @atomiks
- Return highlight to selected item on query clear (#5232) by @atomiks
- Expose `expanded` state for inline comboboxes (#5332) by @sarthakmalik0810
- Keep portalled popup content open (#5334) by @obeattie
- Reset list scroll position on filter (#5231) by @atomiks
- Fix hovered item stealing highlight when the list scrolls in Safari (#5265) by @arikchakma
- Inherit the disabled state from `<Combobox.Root>` in `<Combobox.Item>` (#5365) by @chuganzy
- Widen trigger slip-out release tolerance (#5159) by @atomiks
- Remove dead code and deduplicate handlers (#5194) by @atomiks
- Fix listbox separator semantics (#5399) by @sarthakmalik0810
### Composite
- Fix nested list reorder detection (#5156) by @jjenzz
- Always skip natively disabled items during list navigation (#5185) by @atomiks
- Fix scroll alignment for RTL direction in `scrollIntoViewIfNeeded` (#5234) by @sai6855
- Simplify keyboard bookkeeping (#5249) by @atomiks
### Dialog
- Fix touch outside-press dismissal without a backdrop (#5096) by @atomiks
- Prevent `<Dialog.Root>` from reopening after remounting with a reused handle (#5109) by @michaldudak
- Fix scroll lock handoff with external overlays (#4665) by @atomiks
- Reduce bundle size (#5193) by @atomiks
### Drawer
- Prevent `<Drawer.Root>` from reopening after remounting with a reused handle (#5109) by @michaldudak
- Fix unreliable swipe-to-open gestures (#5105) by @atomiks
- Fix popup flashing fully open for a frame on swipe area re-grab (#5112) by @atomiks
- Deduplicate swipe math to reduce bundle size (#5181) by @atomiks
- Fix scroll handling when focus moves while the virtual keyboard is open (#5179) by @atomiks
- Fix cross-axis scroll blocked on iOS below the touchmove slop (#5257) by @atomiks
- Fix snap point jump when pinned pointer moves leave the drag offset unchanged (#5308) by @atomiks
- Fix Shadow DOM swipe gestures (#5360) by @atomiks
### Field
- Keep invalid state on disabled fields (#5116) by @atomiks
- Reduce bundle size (#5225) by @atomiks
- Fix `data-dirty` tracking for null-valued controls (#5290) by @sai6855
### Fieldset
- Reduce bundle size (#5225) by @atomiks
### Form
- Reduce bundle size (#5225) by @atomiks
- Focus the first invalid field in document order (#5287) by @atomiks
### Menu
- Ignore pinch-zoom shifting (#4485) by @atomiks
- Cancel stale submenu hover-open when Chrome drops mouseleave (#5153) by @atomiks
- Fix exit animation not running on uncheck of item (#5252) by @sai6855
- Fix duplicate `onOpenChange` calls when closing a submenu (#5178) by @atomiks
- Fix VoiceOver announcement when opening a submenu (#5342) by @atomiks
- Propagate disabled state to items (#5363) by @chuganzy
- Open submenus on Android TalkBack press (#5384) by @atomiks
- Prevent `<Menu.Root>` from reopening after remounting with a reused handle (#5149) by @michaldudak
- Widen trigger slip-out release tolerance (#5159) by @atomiks
### Meter
- Format clamped values (#5409) by @atomiks
- Reduce bundle size (#5224) by @atomiks
### Navigation Menu
- Fix frozen menu when the open trigger unmounts (#5240) by @DreierF
- Ignore pinch-zoom shifting (#4485) by @atomiks
### Number Field
- Fix keyboard editing with multi-character format symbols (#5111) by @atomiks
- Reduce bundle size (#5220) by @atomiks
### OTP Field
- Keep focus on the invalid field when `autoSubmit` is blocked (#5089) by @lyzno1
### Popover
- Prevent `<Popover.Root>` from reopening after remounting with a reused handle (#5149) by @michaldudak
- Reduce bundle size (#5193) by @atomiks
### Preview Card
- Prevent `<PreviewCard.Root>` from reopening after remounting with a reused handle (#5149) by @michaldudak
### Progress
- Fix custom `min`/`max` semantics to match the indicator (#5095) by @atomiks
- Reduce bundle size (#5224) by @atomiks
### Radio Group
- Remove unnecessary ARIA attributes from `<Radio.Root>` (#5213) by @sai6855
- Stop internal input clicks from reaching ancestors (#5176) by @atomiks
- Align form values with native submission (#5238) by @atomiks
- Reduce bundle size (#5223) by @atomiks
### Scroll Area
- Fix thumb-drag divide-by-zero and per-scroll re-render (#5099) by @atomiks
- Fix scrollbar visibility during touch scrolling on iOS (#5157) by @atomiks
- Add WebKit overscroll feedback to `<ScrollArea.Thumb>` (#5145) by @atomiks
- Reduce bundle size (#5217) by @atomiks
- Prevent scroll snapping while dragging the thumb (#5259) by @atomiks
- End thumb drag when the primary button is no longer held (#5374) by @atomiks
### Select
- Fix hovered item stealing highlight when the list scrolls in Safari (#5265) by @arikchakma
- Inherit the disabled state from `<Select.Root>` in `<Select.Item>` (#5365) by @chuganzy
- Widen trigger slip-out release tolerance (#5159) by @atomiks
- Do not force-mount the popup on programmatic value changes (#5119) by @atomiks
- Remove dead code and deduplicate handlers (#5194) by @atomiks
- Fix listbox separator semantics (#5399) by @sarthakmalik0810
### Slider
- Fix assorted issues (#5097) by @atomiks
- Reduce bundle size (#5222) by @atomiks
- Exclude the prehydration script from client bundles (#5003) by @michaldudak
### Switch
- Stop internal input clicks from reaching ancestors (#5176) by @atomiks
- Reduce bundle size (#5223) by @atomiks
### Tabs
- Position pre-hydration indicator inside streamed Suspense (#5171) by @brijeshb42
- Exclude the prehydration script from client bundles (#5003) by @michaldudak
- Reduce bundle size (#5221) by @atomiks
### Toast
- Fix remaining toast timer calculation (#5261) by @sai6855
- Reduce bundle size (#5219) by @atomiks
- Render content passed through the `render` prop in `<Toast.Title>`, `<Toast.Description>`, and `<Toast.Action>` (#5210) by @m2na7
- Fix re-adding a closing toast (#5258) by @atomiks
- Fix swipe direction locking for two-axis swipes (#5295) by @sai6855
- Fix `<Toast.Provider>` prop effect ordering (#5338) by @atomiks
### Toggle Group
- Reduce bundle size (#5224) by @atomiks
### Toolbar
- Reduce bundle size (#5221) by @atomiks
### Tooltip
- Prevent `<Tooltip.Root>` from reopening after remounting with a reused handle (#5149) by @michaldudak
All contributors of this release in alphabetical order: @arikchakma, @atomiks, @bernardobelchior, @brijeshb42, @chuganzy, @DiegoAndai, @DreierF, @flaviendelangle, @jjenzz, @lyzno1, @m2na7, @mdm317, @michaldudak, @nami8824, @obeattie, @sai6855, @sarthakmalik0810
## v1.6.0
_Jun 18, 2026_
### General changes
- Correct inaccurate prop JSDoc (#5036) by @atomiks
- Update the hook value when store/arguments change (#4866) by @chuganzy
- Restore viewport morphing after reopen for kept-mounted popups (#5010) by @atomiks
- Fix pseudo-element bounds in dev mode (#5000) by @atomiks
### Accordion
- Fix trigger behavior bugs (#4833) by @atomiks
- Remove region role from `Accordion.Root` (#4961) by @chuganzy
- Align keyboard navigation with APG (#4965) by @chuganzy
### Alert Dialog
- Fix programmatic focus return (#4849) by @atomiks
### Autocomplete
- Keep ArrowLeft/ArrowRight on the input caret in grid mode (#4948) by @spokodev
- Document `open` requirement for the `inline` prop (#5069) by @atomiks
### Avatar
- Fix image status edge cases (#4835) by @atomiks
### Checkbox
- Fix parent group cancellation and indeterminate state (#4941) by @atomiks
- Ignore `data-focused` Field attribute when disabled (#4998) by @atomiks
- Fix extra `validate` fn calls (#4911) by @mj12albert
### Checkbox Group
- Fix parent group cancellation and indeterminate state (#4941) by @atomiks
- Fix parent checkbox with custom `validate` fn (#4912) by @mj12albert
- Fix validation with multiple required checkboxes (#4958) by @atomiks
- Forward group ids (#4997) by @atomiks
### Collapsible
- Fix trigger and panel state bugs (#4848) by @atomiks
### Combobox
- Fix chip context error (#4877) by @lyzno1
- Keep ArrowLeft/ArrowRight on the input caret in grid mode (#4948) by @spokodev
- Avoid re-rendering every item on each keystroke (#4964) by @flaviendelangle
- Fix autofill and selected state edge cases (#4972) by @atomiks
- Document `open` requirement for the `inline` prop (#5069) by @atomiks
### Dialog
- Fix confirmation return focus (#5024) by @atomiks
- Fix programmatic focus return (#4849) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Fix non-modal focus-out close and tabindex management (#5030) by @atomiks
### Drawer
- Fix confirmation return focus (#5024) by @atomiks
- Improve swipe dismiss drag performance (#4867) by @atomiks
- Drive swipe gestures natively to stop per-frame re-rasterization (#4980) by @atomiks
- Add virtual keyboard provider (#4353) by @atomiks
- Commit swipe on primary-button release (#5057) by @atomiks
### Field
- Fix form validation bugs (#4873) by @atomiks
- Reflect disabled `Field.Item` state in `Field.Label` (#4916) by @chuganzy
- Reflect disabled `Field.Item` state in `Field.Description` (#4960) by @chuganzy
- Fix valueMissing revalidation (#4995) by @atomiks
- Fix validation bugs (#4894) by @atomiks
### Fieldset
- Fix disabled fieldset form bugs (#4890) by @atomiks
### Form
- Fix form validation bugs (#4873) by @atomiks
### Menu
- Fix submenu trigger interactions (#4892) by @atomiks
- Open submenus on hover after a plain delay (#4990) by @atomiks
- Fix controlled hover leave close (#4893) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
### Menubar
- Fix vertical menu focus behavior (#4922) by @atomiks
### Meter
- Sync value text with indicator (#4904) by @atomiks
### Navigation Menu
- Preserve exit transition when controlled (#4855) by @mattrothenberg
- Fix interaction, value, and styling-hook bugs (#4942) by @atomiks
### Number Field
- Handle unreadable clipboard paste (#4876) by @lyzno1
- Fix committed values and keyboard stepping (#4905) by @atomiks
- Respect Intl rounding options on blur (#4804) by @atomiks
- Fix formatter locale cache (#4999) by @atomiks
- Preserve numeric precision while keeping default display formatting (#5040) by @atomiks
- Fix input and scrub edge cases (#5046) by @atomiks
### OTP Field
- 🚨 **Breaking change:** Unmark preview<br />
the namespace export is renamed `OTPFieldPreview` → `OTPField` and should be imported as: `{ OTPField } from '@base-ui/react/otp-field'` (#5029) by @atomiks
- Avoid password manager bubbles after first input (#4868) by @atomiks
### Popover
- Fix controlled hover leave close (#4893) by @atomiks
- Fix programmatic focus return (#4849) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Fix non-modal focus-out close and tabindex management (#5030) by @atomiks
### Preview Card
- Fix controlled hover leave close (#4893) by @atomiks
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Keep inline preview anchored while open (#4836) by @atomiks
- Close when active trigger unmounts (#4886) by @michaldudak
### Radio Group
- Forward group ids (#4997) by @atomiks
- Fix selection on space key press (#4930) by @chuganzy
- Fix disabled selected form submission (#4926) by @atomiks
- Honor canceled value changes (#4996) by @atomiks
### Scroll Area
- Fix overflow and scrolling state (#4936) by @atomiks
- Add scrolling state to Thumb (#4982) by @aarongarciah
### Select
- Fix autofill and selected state edge cases (#4934) by @atomiks
- Fix dirty state not clearing in multiple mode (#4971) by @atomiks
- Skip disabled items in typeahead and fix multiple-mode serialization (#5025) by @atomiks
### Slider
- Fix extra `validate` fn calls (#4911) by @mj12albert
- Fix interaction edge cases (#4937) by @atomiks
- Fix touchend listener accumulation leak (#5070) by @atomiks
### Switch
- Fix extra `validate` fn calls (#4911) by @mj12albert
### Tabs
- Fix state edge cases (#4935) by @atomiks
- Fix suspended panel activation (#4903) by @atomiks
### Toast
- Fix timer and limit edge cases (#4933) by @atomiks
### Toggle
- Fix grouped cancelation and JSDoc (#4940) by @atomiks
### Toggle Group
- Fix grouped cancelation and JSDoc (#4940) by @atomiks
- Remove invalid `aria-orientation` from `role="group"` element (#4628) by @sernstberger
- Fix disabled state and roving focus bugs (#4968) by @atomiks
### Toolbar
- Do not forward `disabled` to default toolbar button (#4967) by @mj12albert
- Fix disabled state and roving focus bugs (#4968) by @atomiks
### Tooltip
- Fix positioning and viewport edge cases (#4925) by @atomiks
- Fix provider delay group lifecycle (#4887) by @michaldudak
- Reset preventUnmountOnClose on reopen (#4885) by @michaldudak
- Close when active trigger unmounts (#4886) by @michaldudak
All contributors of this release in alphabetical order: @aarongarciah, @atomiks, @chuganzy, @flaviendelangle, @lyzno1, @mattrothenberg, @michaldudak, @mj12albert, @sernstberger, @spokodev
## v1.5.0
_May 19, 2026_
### General changes
- Improve mount performance with interaction splitting, including closed popup mount performance by up to 50% and unmounting performance by up to 85% (#4661) by @atomiks
- Use local document for virtual arrow (#4662) by @lyzno1
- Fix macOS Safari and Firefox minimizing fullscreen when closing popups with <kbd>Esc</kbd> (#4695) by @arturbien
- Drop unnecessary memoization (#4693) by @flaviendelangle
- Do not use `Math.random()` in `useStableCallback()` (#4732) by @michaldudak
- Fix return focus when reference disconnects (#4655) by @atomiks
- Don't steal initial focus if focus already moved inside a popup (#4775) by @stefee
### Alert Dialog
- Fix handle defaults (#4834) by @atomiks
### Autocomplete
- Fix native `FormData` for popup inputs (#4725) by @lunaxislu
### Checkbox
- Submit the associated form when pressing <kbd>Enter</kbd> (#4713) by @michaldudak
### Combobox
- Expose clear visibility state (#4664) by @atomiks
- Fix popup input form submit (#4687) by @atomiks
- Preserve `closeQuery` when closing multiple input-inside-popup combobox (#4715) by @mj12albert
- Fix RTL component behavior (#4840) by @atomiks
- Ignore hidden-input changes while readonly or disabled (#4810) by @lunaxislu
### Dialog
- Consider the controlled `open` prop for open state detection (#4712) by @michaldudak
### Drawer
- Forward `style` prop in `<Drawer.Viewport>` (#4841) by @atomiks
### Field
- Avoid `flushSync` during validation (#4685) by @atomiks
### Form
- Avoid `flushSync` during validation (#4685) by @atomiks
### Menu
- Fix submenu pointer-events scope for `keepMounted` portals (#4723) by @twillhorn
- Support `<Menu.GroupLabel>` in `<Menu.RadioGroup>` (#4826) by @nami8824
- Consider the controlled `open` prop for open state detection (#4712) by @michaldudak
### Navigation Menu
- Fix RTL component behavior (#4840) by @atomiks
- Fix `keepMounted` content sizing (#4817) by @atomiks
### Number Field
- Allow Persian digits in keyboard input (#4719) by @lunaxislu
- Sync pasted input during step interactions (#4824) by @lunaxislu
### OTP Field
- **Breaking change:** Rename `sanitizeValue()` to `normalizeValue()` and allow composing with validation (#4717) by @atomiks
- Avoid `flushSync` during validation (#4685) by @atomiks
- Support <kbd>Ctrl</kbd> and <kbd>Cmd</kbd> shortcuts (#4606) by @atomiks
- Fire `onValueComplete()` for full paste (#4690) by @atomiks
- Fix vertical arrow slot navigation (#4844) by @atomiks
- Ignore hidden input changes while readonly or disabled (#4806) by @lunaxislu
- Prevent locked hidden autofill validation (#4827) by @lunaxislu
- Fix RTL arrow navigation (#4847) by @atomiks
### Popover
- Fix RTL component behavior (#4840) by @atomiks
- Preserve active trigger on close press (#4741) by @mj12albert
- Consider the controlled `open` prop for open state detection (#4712) by @michaldudak
### Preview Card
- Consider the controlled `open` prop for open state detection (#4712) by @michaldudak
- Integrate inline positioning (#2074) by @atomiks
### Scroll Area
- Fix RTL component behavior (#4840) by @atomiks
### Select
- Clear stale item text ref (#4683) by @atomiks
- Add `data-popup-side` to trigger (#4671) by @mj12albert
- Allow mouse selection without highlight (#4699) by @atomiks
- Ignore hidden-input changes while readonly or disabled (#4810) by @lunaxislu
- Fix nested Select requiring extra outside clicks to dismiss parent (#4820) by @mattrothenberg
### Tabs
- Fire `onValueChange()` for automatic tab selection (#4704) by @michaldudak
### Toast
- Re-use `getElementTransform()` and remove local implementation (#4749) by @sai6855
- Fix stuck drag state on release (#4742) by @aeterno-caspian
- Remove memoized selector (#4751) by @atomiks
### Tooltip
- Consider the controlled `open` prop for open state detection (#4712) by @michaldudak
- Fix flickering when nesting tooltip inside another tooltip's trigger (#4501) by @michaldudak
All contributors of this release in alphabetical order: @aeterno-caspian, @arturbien, @atomiks, @flaviendelangle, @Janpot, @lunaxislu, @lyzno1, @mattrothenberg, @michaldudak, @mj12albert, @nami8824, @sai6855, @stefee, @twillhorn
## v1.4.1
_Apr 20, 2026_
### General changes
- Clear highlight on pointer leave when item is clipped by scroll container (#4604) by @atomiks
- Fix `display: contents` tabbability (#4642) by @atomiks
- Fix multi-argument event handler forwarding in `mergeProps` (#4598) by @atomiks
- Mark `date-fns` peer dependencies as optional (#4639) by @LukasTy
### Navigation Menu
- Fix stale popup size on rapid trigger hover (#4646) by @atomiks
All contributors of this release in alphabetical order: @atomiks, @LukasTy
## v1.4.0
_Apr 13, 2026_
### General changes
- Improve `render` prop warning accuracy (#4324, #4363) by @atomiks
- Fix `preventBaseUIHandler` runtime wrapping (#4330) by @atomiks
- Fix Uncaught TypeError: Converting circular structure to JSON (#4452) by @Profesor08
- Expose `form` prop on hidden inputs (#4352) by @atomiks
- Add `suppressHydrationWarning` to hidden inputs (#4482) by @devxoul
- Fix outside-press dismissal in a shared shadow root (#4333) by @atomiks
- Fix `Positioner` not repositioning to a different trigger when reopened with `keepMounted` (#4407) by @mdm317
- Lock scroll of full-width anchored `modal` popups with touch input (#3100) by @atomiks
### Alert Dialog
- Fix detached trigger HMR with recreated handles (#4472) by @atomiks
### Autocomplete
- Fix initial live region announcements (#4286) by @atomiks
### Avatar
- Fix flash when image is cached (#4469) by @mj12albert
### Checkbox
- Fix uncontrolled default initialization (#4535) by @atomiks
- Prevent input state changes in `readOnly` mode (#4551) by @tsbehlman
### Collapsible
- Fix open state when `keepMounted` has no transitions (#4555) by @mj12albert
### Combobox
- Fix clicks in `Chips`/`InputGroup` areas not focusing the input or opening the popup (#4296) by @CiscoFran10
- Fix iOS viewport settling (#4351) by @atomiks
- Fix initial live region announcements (#4286) by @atomiks
- Prevent scroll lock when a controlled value triggers a re-render (#4507) by @ryanrhee
- Fix browser autofill with object values when autofill uses the label (#4560) by @mattrothenberg
- Prevent item taps from blurring the input (#4578) by @atomiks
- Respect rendered chips for keyboard navigation (#4572) by @atomiks
### Dialog
- Fix detached trigger HMR with recreated handles (#4472) by @atomiks
### Drawer
- Fix touch scroll in portaled popups (#4382) by @atomiks
- Fix nested swipe cancel state (#4410) by @atomiks
- Fix interrupted swipe dismiss cleanup (#4467) by @lunaxislu
- Warn when a popup is missing `Viewport` (#4495) by @atomiks
- Prevent dialogs from affecting nested drawer stack (#4493) by @atomiks
### Field
- Fix form error matching in `<Field.Error>` (#4494) by @atomiks
### Menu
- Fix `SubmenuTrigger` not respecting disabled state from `render` (#3858) by @CiscoFran10
- Preserve dialog focus on pointer leave (#4581) by @atomiks
### Navigation Menu
- Remove invalid `aria-orientation` attribute (#4355) by @atomiks
- Add generic `Value` typing (#4328) by @atomiks
- Fix initial trigger switch size snap (#4327) by @atomiks
- Fix top-level trigger pointer events blocking (#4362) by @atomiks
- Fix reverse <kbd>Shift</kbd>+<kbd>Tab</kbd> submenu re-entry (#4464) by @atomiks
- Fix nested inline submenu hover handoff (#4413) by @atomiks
- Fix transition width when reopening (#4587) by @mdm317
### Number Field
- Fix format rounding error on blur (#4557) by @atomiks
### OTP Field
- Add preview `OTPField` component for one-time password and verification code entry (#4365) by @atomiks
### Popover
- Remove stray focus guards around trigger when `modal` (#4350) by @atomiks
- Sync hover open event state (#4526) by @atomiks
### Preview Card
- Fix hover reopen race conditions across close transitions (#4446) by @arturbien
### Select
- Fix browser autofill with object values when autofill uses the label (#4560) by @mattrothenberg
- Preserve touch exit animations (#4325) by @atomiks
- Fix touch reopen highlight (#4356) by @atomiks
- Fix scroll arrows stopping short of the edges (#4447) by @atomiks
- Fix RTL-aligned popup positioning with `alignItemWithTrigger` (#4531) by @atomiks
### Slider
- Fix edge thumb alignment after reveal (#4354) by @atomiks
- Remove extra TalkBack focus targets (#4242) by @atomiks
- Fix keyboard floating-point rounding (#4548) by @atomiks
- Skip client-only prehydration scripts (#4530) by @atomiks
### Switch
- Prevent input state changes in `readOnly` mode (#4551) by @tsbehlman
### Tabs
- Fix `activationDirection` not updating on programmatic value changes (#4347) by @LukasTy
- Fix activation direction on first render (#4532) by @atomiks
- Skip client-only prehydration scripts (#4530) by @atomiks
### Toast
- Keep viewport expanded while touch swiping (#4411) by @atomiks
- Add upsert support to `add` method (#4440) by @atomiks
- Fix timers not resuming after window regains focus (#4438) by @kyrregjerstad
### Toggle Group
- Fix incorrect keyboard nav on cross axis (#4488) by @mj12albert
All contributors of this release in alphabetical order: @arturbien, @atomiks, @CiscoFran10, @devxoul, @flaviendelangle, @kyrregjerstad, @LukasTy, @lunaxislu, @mattrothenberg, @mdm317, @michaldudak, @mj12albert, @Profesor08, @ryanrhee, @sai6855, @tsbehlman
## v1.3.0
_Mar 12, 2026_
### General changes
- Warn when a component function is rendered directly (#4077) by @atomiks
- Reset `openMethod` after close transition (#4128) by @atomiks
- Fire <kbd>Space</kbd> activation on `keydown` in composite widgets (#4053) by @atomiks
- Skip CSS-hidden items during keyboard navigation in composite widgets (#4195) by @atomiks
- Optimize hot paths in `useHover` hooks and `safePolygon` (#4199) by @atomiks
- Snap `--anchor-width` and `--anchor-height` to device pixel grid (#4082) by @flaviendelangle
- Fix outside press dismissal when a component is portaled into a shadow DOM (#4230) by @dmitri-gb
- Fix nested hoverable popups (#4206) by @dmitri-gb
- Apply `data-base-ui-inert` to highest-level node (#3955) by @atomiks
- Fix portable types (#4058) by @cgatian
### Accordion
- Add generic `Value` typing (#4138) by @atomiks
### Autocomplete
- Respect a `null` `filter` prop (#4117) by @atomiks
- Add `InputGroup` part (#3745) by @atomiks
### Avatar
- Remove fallback transition logic and prevent premature image display (#4110) by @atomiks
### Button
- Avoid checking `disabled` twice in `onKeyDown` and `onKeyUp` (#4132) by @flaviendelangle
### Checkbox
- Add automatic `aria-labelledby` support (#4142) by @atomiks
### Combobox
- Avoid applying field attributes to input when it is inside popup (#4154) by @atomiks
- Preserve inline input on `Enter` when nothing is highlighted (#4235) by @atomiks
- Fix ARIA attributes during SSR (#4179) by @atomiks
- Fix wrapping in virtualized grid arrow-key navigation (#4164) by @atomiks
- Add `InputGroup` part (#3745) by @atomiks
- Add support for a visually hidden close button and improve modal focus trapping (#4084) by @atomiks
- Add `Label` part (#4167) by @atomiks
### Context Menu
- Ignore `mouseup` on non-Mac platforms (#3944) by @atomiks
### Drawer
- **Breaking change:** `Drawer` is no longer marked as preview<br />
`Drawer` is now stable and should be imported as `{ Drawer } from '@base-ui/react/drawer'` (#4293) by @atomiks
- Fix React 17 support (#4178) by @atomiks
- Include border in frontmost height variable (#4202) by @atomiks
- Improve touch selection (#4104) by @atomiks
- Preserve cross-axis scrolling during touch gestures (#4187) by @atomiks
- Prevent swipe dismissal when component is controlled (#4133) by @flaviendelangle
- Add `SwipeArea` part (#4102) by @atomiks
- Make `data-base-ui-swipe-ignore` explicit for touch interactions (#4295) by @atomiks
- Disable inheritance for swipe CSS variables (#4099) by @atomiks
### Field
- Fix field validation when `Form` errors or `invalid` prop are present at same time (#4112) by @mj12albert
### Menu
- Prevent `pointerleave` from stealing focus from dialogs (#4125) by @atomiks
- Optimize `pointer-events` for submenu hover interactions (#4231) by @atomiks
- Fix `closeDelay` not being applied to `Menu.SubmenuTrigger` (#4134) by @flaviendelangle
- Implement content transitions with `Viewport` (#4060) by @michaldudak
### Meter
- Fix label announcements in NVDA (#4200) by @mj12albert
### Navigation Menu
- Fix support for nested inline menus (#4198) by @atomiks
- Fix close propagation in nested hover menus (#4285) by @atomiks
- Close parent menus when nested link with `closeOnClick` is clicked (#4276) by @CiscoFran10
- Fix duplicate `aria-orientation` (#4309) by @atomiks
- Fix delayed trigger switches in Safari (#4310) by @atomiks
### Number Field
- Fix increment/decrement press `reason` values in `onValueCommitted` (#4259) by @jijiseong
### Popover
- Trap focus when `<Popover.Close>` is rendered inside and `modal` is `true`, and add support for a visually hidden close button (#4084) by @atomiks
- Fix nested hoverable popups (#3798) by @flaviendelangle
### Preview Card
- Fix nested hoverable popups (#3798) by @flaviendelangle
### Progress
- Fix label announcements in NVDA (#4200) by @mj12albert
### Radio Group
- Add automatic `aria-labelledby` support (#4142) by @atomiks
### Scroll Area
- Fix focus trapping with a non-scrollable viewport (#4220) by @atomiks
- Fix thumb size after remounting (#4107) by @atomiks
### Select
- Fix hidden input `id` fallback (#4135) by @atomiks
- Fix `Value` placeholder not rendering with `Record` items (#4137) by @vcode-sh
- Fire `onClick` during drag-to-select (#3969) by @obeattie
- Fix `items` type definition for groups (#3884) by @aarongarciah
- Fix `alignItemWithTrigger` fallback with browser zoom (#4292) by @atomiks
- Add `Label` part (#4167) by @atomiks
### Slider
- Add `Label` part (#4167) by @atomiks
- Stop committing validation on `touchend` (#4091) by @jijiseong
### Switch
- Add automatic `aria-labelledby` support (#4142) by @atomiks
### Tabs
- Re-render indicator position on tab resize (#4165) by @atomiks
### Toast
- Enable closing all toasts (#3979) by @chuganzy
- Prevent duplicate `onClose` calls for ending toasts (#4280) by @chuganzy
### Tooltip
- Add `closeOnClick` prop (#4140) by @atomiks
All contributors of this release in alphabetical order: @aarongarciah, @atomiks, @cgatian, @chuganzy, @CiscoFran10, @dmitri-gb, @flaviendelangle, @jijiseong, @michaldudak, @mj12albert, @obeattie, @vcode-sh
## v1.2.0
_Feb 12, 2026_
### General changes
- Do not memoize `state` when not needed (#3812) by @flaviendelangle
- Support lazy element in `render` prop (#3856) by @oliviertassinari
- Replace Firefox deprecated mozInputSource check for virtual click detection (#3942) by @CiscoFran10
- Use `WeakRef` for previously focused elements (#3916) by @atomiks
- Fix page scroll jump when input has focus on unmount in Safari (#3925) by @atomiks
- Fix flash at origin before positioning completes in Preact (#3975) by @OliverSpeir
- Reduce style recalculation with classic scrollbars (#3854) by @mdm317
- Fix event handling in useEnhancedClickHandler (#3981) by @sai6855
### Autocomplete
- Fix filter method's `useMemo` dependency (#3862) by @ZeeshanTamboli
- Fix Autocomplete not using its internal filter method when `mode` is `list` (#3936) by @ZeeshanTamboli
- Remove unnecessary double stringification of item in filtering logic (#3945) by @ZeeshanTamboli
- Add `useFilteredItems` hook (#3732) by @guisehn
- Fix popup closing on iOS VoiceOver (#3859) by @atomiks
- Remove `aria-readonly` prop from `Clear` and `Popup` components when `readOnly` (#3907) by @markocupic024
### Avatar
- Add transition attributes (#3939) by @atomiks
### Button
- Capture component stack for `nativeButton` error message (#3861) by @atomiks
### Checkbox
- Cleanup disabled state tracking (#3913) by @atomiks
- Preserve modifier key properties in the change event (#3935) by @mj12albert
- Allow exit animations on `<Checkbox.Indicator>` when `keepMounted={false}` (#3939) by @atomiks
### Combobox
- Fix the type of the ref of the `Icon` part (#3796) by @flaviendelangle
- Avoid clearing selected value if item is not present in items array (#3824) by @atomiks
- Fix highlight change reason in `ChipRemove` (#3980) by @sai6855
- Keep highlight on last deselect (#3923) by @atomiks
- Fix inline filtering after selection in single mode (#3978) by @atomiks
- Clear highlight on inline blur when inline (#3973) by @atomiks
- Prevent opening popup on autofill change (#3924) by @atomiks
- Distinguish `input-press` from `trigger-press` in `onOpenChange` reason (#4015) by @jijiseong
- Fix async items while popup is open (#4034) by @atomiks
- Prevent `Chip` from receiving focus when `disabled` (#4044) by @jijiseong
- Add `useFilteredItems` hook (#3732) by @guisehn
- Fix popup closing on iOS VoiceOver (#3859) by @atomiks
- Remove `aria-readonly` prop from `Clear` and `Popup` components when `readOnly` (#3907) by @markocupic024
- Fix `onClick` `Item` type (#3964) by @atomiks
- Use reactive `domReferenceElement` subscriptions (#4017) by @atomiks
- Add `autoComplete` prop for explicit browser autofill support (#4005) by @mattrothenberg
- Fix inconsistent isItemEqualToValue argument order (#4056) by @atomiks
### Context Menu
- Fix `disabled` prop not working (#3806) by @arturbien
- Fix explicit `collisionAvoidance` with `side: 'flip'` not working (#3877) by @obeattie
### Drawer
- Create new Drawer / Sheet component (#3680) by @atomiks
### Field
- Prevent re-renders when `Field.Control` is uncontrolled (#3820) by @atomiks
- Fix autofocus in SSR environments (#3871) by @mj12albert
- Fix max update depth loop when using `<React.Activity>` (#3931) by @atomiks
- Add transition attributes (#3939) by @atomiks
### Input
- Fix autofocus in SSR environments (#3871) by @mj12albert
- Update ref type to `HTMLElement` (#3866) by @mj12albert
### Menu
- Fix `onClick` `Item` type (#3964) by @atomiks
- Fix submenu stuck glitch (#3783) by @atomiks
- Fix race conditions (#3821) by @atomiks
- Add `<Menu.LinkItem>` part (#3400) by @mj12albert
### Navigation Menu
- Fix forwarded ref types (#3775) by @CrawlerCode
- Add `keepMounted` prop to `Content` part (#3794) by @atomiks
### Number Field
- Fix click handlers on ScrubArea (#3827) by @mj12albert
- Remove `event.isTrusted` (#3920) by @atomiks
- Stop repeat change at bounds (#3915) by @atomiks
- Add `allowOutOfRange` prop (#3919) by @atomiks
- Fix pen pointer handling (#3917) by @atomiks
- Fix missing field state data attributes (#3909) by @mj12albert
### Popover
- Fix missing `aria-owns` element (#3959) by @atomiks
- Use reactive `domReferenceElement` subscriptions (#4017) by @atomiks
- Fix broken scale transition with detached triggers (#3810) by @michaldudak
### Preview Card
- Fix broken scale transition with detached triggers (#3810) by @michaldudak
### Progress
- De-duplicate `formatValue` function (#3805) by @sai6855
### Radio Group
- Preserve modifier key properties in the change event (#3935) by @mj12albert
- Allow exit animations on `<Radio.Indicator>` when `keepMounted={false}` (#3939) by @atomiks
- Rely on individual radio hidden inputs (#3826) by @atomiks
- Add generic `Value` typing to `Radio` (#4033) by @atomiks
### Scroll Area
- Add `data-scrolling` state attribute to `Root` and `Viewport` parts (#3823) by @arturbien
- Fix overflow edge rounding (#3888) by @atomiks
### Select
- Add `finalFocus` prop (#3785) by @markocupic024
- Fix `alignItemWithTrigger` transform with CSS animations (#3831) by @atomiks
- Fix `highlightItemOnHover` not being respected (#3868) by @sarthakmalik0810
- Reset typeahead on external blur (#2618) by @antonfrolovsky
- Fix scroll height loop (#3795) by @atomiks
- Add `autoComplete` prop for explicit browser autofill support (#4005) by @mattrothenberg
- Fix inconsistent isItemEqualToValue argument order (#4056) by @atomiks
### Slider
- Fix missing field state data attributes (#3909) by @mj12albert
- Fix change event cloning (#3960) by @atomiks
### Switch
- Preserve modifier key properties in the change event (#3935) by @mj12albert
### Tabs
- Add transition attributes to `<Tabs.Panel>` part (#3880) by @atomiks
### Toast
- Make `useToastManager` and `createToastManager` generic functions (#3882) by @solastley
- Prevent dismissed promise toast from reopening on updates (#4040) by @atomiks
- Introduce a store (#3464) by @flaviendelangle
### Toggle
- Improve type safety and inference (#3173) by @michaelhazan
### Toggle Group
- Type value as string to match Toggle (#3770) by @markocupic024
- Enable `Home`/`End` key navigation (#3971) by @jijiseong
- Improve type safety and inference (#3173) by @michaelhazan
### Tooltip
- Prevent opening when focusing a disabled Trigger (#3902) by @michaldudak
- Fix broken scale transition with detached triggers (#3810) by @michaldudak
- Fix disabled prop on Triggers (#4049) by @michaldudak
All contributors of this release in alphabetical order: @antonfrolovsky, @arturbien, @atomiks, @CiscoFran10, @CrawlerCode, @flaviendelangle, @guisehn, @jijiseong, @LukasTy, @markocupic024, @mattrothenberg, @mdm317, @michaelhazan, @michaldudak, @mj12albert, @obeattie, @OliverSpeir, @oliviertassinari, @sai6855, @sarthakmalik0810, @solastley, @ZeeshanTamboli
## v1.1.0
_Jan 15, 2026_
### General changes
- Fix `onOpenChangeComplete(true)` timing (#3558) by @atomiks
- Fix touch `openMethod` when tapping outside element bounds on Safari (#3541) by @atomiks
- Fix visually hidden input styles across form components (#3606) by @atomiks
- Fix click and drags outside a nested popup component from closing its parents (#3571) by @atomiks
- Fix forwarded ref types (#3638) by @atomiks
- Fix detached trigger remounting (#3724) by @atomiks
- Include `ref` in `BaseUIComponentProps` (#2813) by @atomiks
- Remove duplicated `disabled` prop (#3650) by @seongminn
- Allow `actionsRef` to be `null` (#3682) by @mj12albert
### Accordion
- Fix keyboard navigation with non-interactive trigger elements (#3684) by @ZeeshanTamboli
### Autocomplete
- Add `data-popup-side` and `data-list-empty` state attributes to `<Autocomplete.Trigger>` (#3491) by @atomiks
- Add `loopFocus` prop (#3592) by @atomiks
- Fix hidden input `id` and `required` props (#3640) by @atomiks
### Button
- Remove discriminated props union (#3643) by @atomiks
### Checkbox
- Fix hidden input `id` and `required` props (#3640) by @atomiks
### Combobox
- Add `data-popup-side` and `data-list-empty` state attributes to `<Combobox.Trigger>` (#3491) by @atomiks
- Add `loopFocus` prop (#3592) by @atomiks
- Add `toolbar` role to `<Combobox.Chips>` to prevent NVDA from entering browse mode (#3647) by @atomiks
- Add `placeholder` prop to `<Combobox.Value>` (#3604) by @atomiks
- Fix controlled `value` prop when `items` change (#3607) by @atomiks
- Fix `multiple` values label resolution in `<Combobox.Value>` (#3314) by @atomiks
- Forward root `id` to visible form element (#3722) by @atomiks
- Do not trigger Field `onBlur` handlers when opening popup (#3609) by @atomiks
### Context Menu
- Avoid creating sibling elements next to trigger (#3645) by @atomiks
### CSP Provider
- Add `CSPProvider` (#3553) by @atomiks
### Dialog
- Fix `Maximum update depth exceeded` error with Suspense (#3700) by @michaldudak
- Fix `<Dialog.Title>` forwardedRef type (#3736) by @ZeeshanTamboli
### Field
- Add `actionsRef` prop (#3395) by @mj12albert
- Add `nativeLabel` prop to `<Field.Label>` (#3723) by @atomiks
- Add missing type export (#3702) by @DiegoAndai
### Form
- Add `actionsRef` prop (#3395) by @mj12albert
### Menu
- Fix focus guard handling (#3654) by @atomiks
- Avoid disabling modality on click after hover-open (#3455) by @atomiks
### Menubar
- Fix submenu outside-press dismiss on touch (#3556) by @atomiks
### Number Field
- Fix Field `data-focused` state (#3563) by @atomiks
- Fix hidden input focus on submit (#3581) by @atomiks
### Popover
- Fix popup auto resize glitches (#3591) by @atomiks
- Fix focus guard handling (#3654) by @atomiks
- Prevent disabling focus management when clicking trigger before hover delay completes (#3572) by @atomiks
- Refactor popup auto resize logic. It is no longer necessary to specify `--positioner-width`/`--positioner-height` CSS variables on `<Popover.Positioner>` when using detached triggers unless the `Viewport` part has been added to the JSX. (#3652) by @atomiks
### Preview Card
- Support detached triggers (#3566) by @michaldudak and @atomiks
### Radio Group
- Fix `value` type (#3582) by @atomiks
- Fix hidden input `id` and `required` props (#3640) by @atomiks
### Scroll Area
- Perf improvements (#3536) by @atomiks
### Select
- Add `placeholder` prop to `<Select.Value>` (#3604) by @atomiks
- Fix support for transform animations when `alignItemWithTrigger` is active (#3532) by @atomiks
- Fix support for `max-height` popup style when `alignItemWithTrigger` is active (#3573) by @atomiks
- Fix `data-filled` state in `multiple` mode (#3608) by @atomiks
- Fix highlight being removed on popup mouseout when `highlightItemOnHover` is disabled (#3492) by @atomiks
- Fix support for individual transform animations when `alignItemWithTrigger` is active (#3637) by @atomiks
- Fix `multiple` values label resolution in `<Select.Value>` (#3314) by @atomiks
- Forward root `id` to visible form element (#3722) by @atomiks
- Do not trigger Field `onBlur` handlers when opening popup (#3609) by @atomiks
### Slider
- Fix `onValueCommitted` not called for range sliders (#3600) by @mj12albert
### Switch
- Add `value` prop (#3676) by @Grafikart
- Fix hidden input `id` and `required` props (#3640) by @atomiks
### Toast
- Fix timers not being rescheduled when updated (#3564) by @atomiks
### Tooltip
- Fix popup auto resize glitches (#3591) by @atomiks
- Fix `trackCursorAxis` handling (#3679) by @atomiks
- Refactor popup auto resize logic. It is no longer necessary to specify `--positioner-width`/`--positioner-height` CSS variables on `<Tooltip.Positioner>` when using detached triggers unless the `Viewport` part has been added to the JSX. (#3652) by @atomiks
### mergeProps
- Make `mergeProps` public (#3642) by @michaldudak and @LukasTy
### useRender
- Export missing types (#3565) by @michaldudak
All contributors of this release in alphabetical order: @albertdugba, @atomiks, @brijeshb42, @chuganzy, @colmtuite, @dav-is, @DiegoAndai, @Grafikart, @Janpot, @LukasTy, @michaldudak, @mj12albert, @oliviertassinari, @seongminn, @updbqn, @ZeeshanTamboli
## v1.0.0
_Dec 11, 2025_
### General changes
- **Breaking change:** Rename packages to use the `@base-ui` org.<br />
The package name has changed from `@base-ui-components/react` to `@base-ui/react`.
(#3462) by @mnajdova
### Combobox
- Respect `itemToStringValue` for `onFormSubmit` (#3441) by @atomiks
- Add `null` as an option for the value prop (#3488) by @mnajdova
### Menu
- Fix submenu opens with 0 delay (#3459) by @atomiks
- Fix focus not returning to trigger on <kbd>Esc</kbd> while pointer rests on popup (#3482) by @atomiks
- Fix always `null` open method (#3486) by @atomiks
- Allow side axis fallback for submenus by default (#3470) by @atomiks
### Navigation Menu
- Fix mount transitions on `Positioner` in Firefox (#3424) by @atomiks
### Number Field
- Fix multiple scrub area support (#3471) by @atomiks
### Popover
- Fix mount transitions on `Positioner` in Firefox (#3424) by @atomiks
- Fix skipped viewport transitions (#3453) by @atomiks
### Select
- Respect `itemToStringValue` for `onFormSubmit` (#3441) by @atomiks
- Add `null` as an option for the value prop (#3488) by @mnajdova
### Tabs
- Fix indicator positioning in transformed containers (#3439) by @atomiks
- Do not initially select a disabled tab (#3475) by @michaldudak
### Toast
- Fix `flushSync` dev error when toast is added (#3443) by @atomiks
- Fix `<Toast.Close>;` emitting `aria-hidden` warning on click (#3469) by @atomiks
### Toggle Group
- More permissive towards falsy toggle values (#3477) by @mj12albert
### Tooltip
- Fix mount transitions on `Positioner` in Firefox (#3424) by @atomiks
- Fix ignored "modal" setting in Popovers experiment (#3474) by @michaldudak
- Fix shared tooltip closing with trigger gaps (#3452) by @atomiks
- Fix skipped viewport transitions (#3453) by @atomiks
All contributors of this release in alphabetical order: @atomiks, @LukasTy, @michaldudak, @mj12albert, @mnajdova, @oliviertassinari, @pondorasti, @romgrk, @ZeeshanTamboli
## v1.0.0-rc.2
_Dec 11, 2025_
This release contains the same code as v1.0.0.
Please refer to that version to see the changes.
## v1.0.0-rc.1
_Dec 11, 2025_
This release contains the same code as v1.0.0.
Please refer to that version to see the changes.
## v1.0.0-rc.0
_Dec 4, 2025_
### General changes
- Fix missing `'use client'` directives (#3408) by @atomiks
### Autocomplete
- Fix `keepHighlight` focus sync (#3399) by @atomiks
### Checkbox
- **Breaking change:** Match native unchecked state in form submission.<br />
The Checkbox will not submit the `"off"` value with a form when unchecked anymore, unless the new `uncheckedValue` prop is set.
(#3406) by @atomiks
### Collapsible
- Remove `render={null}` (#3407) by @mj12albert
### Combobox
- **Breaking change:** Removed the `keepHighlight` prop (#3377) by @atomiks
### Dialog
- Close when pressing focusable element outside (#3380) by @atomiks
- Fix closing after pointer lock exit in Firefox (#3379) by @atomiks
### Menu
- Add `highlightItemOnHover` prop (#3377) by @atomiks
- Do not import client components from MenuStore (#3409) by @michaldudak
### Number Field
- Ensure hidden input participates in form validation (#3374) by @atomiks
- Improve symbol replacement logic (#3376) by @atomiks
- Fix fractional step snapping (#3375) by @atomiks
- Fix parsing numbers with Swiss locale (#3361) by @michaldudak
- Fix pointer lock release when soft clicking in Firefox (#3378) by @atomiks
### Popover
- Close when pressing focusable element outside (#3380) by @atomiks
- Fix modal backdrop on touch (#3383) by @atomiks
- Fix popover glitching when flipped (#3364) by @michaldudak
### Select
- Add `highlightItemOnHover` prop (#3377) by @atomiks
### Switch
- **Breaking change:** Match native off state in form submission.<br />
The Switch will not submit the `"off"` value with a form when unchecked anymore, unless the new `uncheckedValue` prop is set.
(#3406) by @atomiks
### Tabs
- **Breaking change:** Fix Panel `keepMounted` behavior.<br />
The `value` prop is now required on `<Tabs.Tab>` and `<Tabs.Panel>` parts.
(#3372) by @atomiks
### Toast
- Recalculate content height when layout size is fixed (#3359) by @atomiks
- Fix multiple swipe directions on same axis (#3392) by @mj12albert
### Tooltip
- Improve contained triggers performance (#3385) by @michaldudak
All contributors of this release in alphabetical order: @atomiks, @michaldudak, @mj12albert, @oliviertassinari, @pondorasti, @romgrk
## v1.0.0-beta.7
_Nov 27, 2025_
### General changes
- Fix error about `props.ref` access in React <=18 (#3257) by @atomiks
- Prefer non-adaptive anchoring position in `<Positioner>` components and fix `autoFocus` scroll jumps (#3250) by @atomiks
- Make popups' `data-anchor-hidden` state attribute check for anchor presence in layout (#3267) by @atomiks
- Prevent popups from sticking after hover when pressing `<a>` tags inside them (#3318) by @atomiks
- Improve performance when detached triggers are used (#3277)
- Fix iOS VoiceOver voice control accessibility in non-modal popups (#3340)
### Alert Dialog
- Fix trigger registration loop (#3249) by @atomiks
- Fix focus restoration when focused element is hidden with CSS (#3313)
### Checkbox Group
- Fix `aria-describedby` on checkbox group (#3269) by @mj12albert
### Combobox
- Revert overload types to ensure typed wrappers work correctly (#3254) by @atomiks
- Fix ignored `filteredItems` instances (#3272) by @atomiks
- Fix loop when passing `undefined` to `items` prop (#3348)
### Context Menu
- Block mouseup at initial cursor point (#3274) by @atomiks
### Dialog
- Fix trigger registration loop (#3249) by @atomiks
- Fix focus restoration when focused element is hidden with CSS (#3313)
### Form
- Fix cast `ref` type (#3324) by @mj12albert
### Menu
- Fix trigger registration loop (#3249) by @atomiks
- Do not pass `key` to the rendered element (#3255) by @michaldudak
- Fix nested dialog from closing on <kbd>Shift+Tab</kbd> (#3346)
### Navigation Menu
- Fix Safari 18 issue where `<Positioner>` width may be set to 0 on hover (#3309) by @EmilNordling
- Ensure submenu triggers participate in composite list (#3344) by @atomiks
### Number Field
- Fix literal space handling with symbols (#3334) by @atomiks
### Popover
- Fix trigger registration loop (#3249) by @atomiks
- Do not pass `key` to the rendered element (#3255) by @michaldudak
- Fix focus restoration when focused element is hidden with CSS (#3313)
### Select
- Revert overload types to ensure typed wrappers work correctly (#3254) by @atomiks
### Slider
- Fix extra `onValueCommitted` calls (#3312) by @mj12albert
- Fix cast `ref` type (#3324) by @mj12albert
### Tooltip
- Fix trigger registration loop (#3249) by @atomiks
All contributors of this release in alphabetical order: @atomiks, @brijeshb42, @Copilot, @EmilNordling, @michaldudak, @mj12albert, @oliviertassinari, @ZeeshanTamboli
## v1.0.0-beta.6
_Nov 17, 2025_
This is a hotfix release with the following changes:
- Fix for rendering of Alert Dialog, Dialog, Menu, Popover, and Tooltip in React Server Components (#3241) by @michaldudak
- Fix of the types of the refs in the Checkbox, Switch and Radio components (#3246) by @mnajdova
- Fix of the value type error with mergeProps (#3247) by @atomiks
## v1.0.0-beta.5
_Nov 17, 2025_
### General changes
- **Breaking change:** Replace `trackAnchor` with `disableAnchorTracking`.<br />
If you were using `trackAnchor={false}`, be sure to update your usage to `disableAnchorTracking` instead.
(#3188) by @mnajdova
- **Breaking change:** Rename `loop` to `loopFoc