v1.9.0
Oct 9, 2026
General changes
- Export
CssVariablesandDataAttributestypes (#5243) - Fix stale focused field state (#5345)
- Fix animation waits retaining detached elements (#5719)
- Keep item registration in sync when items change under Strict Mode (#5862)
- Avoid re-rendering inactive triggers on open and close (#5865)
Accordion
- Fix
<Accordion.Trigger>’sdata-valueanddata-indexattributes (#5705) - Apply the native
disabledattribute to<Accordion.Trigger>when using native buttons (#5607) - Expand
hiddenUntilFoundpanels synchronously onbeforematch(#5514)
Alert Dialog
- Don’t associate a programmatically opened popup with a trigger that did not open it (#5641)
Autocomplete
- Fix
autoHighlightfor asynchronous results (#5818) - Pass the originating event to
onItemHighlighted. Pointer events may beMouseEventorPointerEvent; typing reports the reasonnone(#5838) - Decouple automatic unmounting from
actionsRef. CalleventDetails.preventUnmountOnClose()inonOpenChangeto opt out of automatic unmounting (#5734)
Checkbox
- Prefer
aria-labelover associated labels (#5787)
Collapsible
- Apply the native
disabledattribute to<Collapsible.Trigger>when using native buttons (#5607) - Finish closing when the render function removes the panel (#5890)
- Restore animations when a removed panel reopens (#5891)
- Expand
hiddenUntilFoundpanels synchronously onbeforematch(#5514)
Combobox
- Fix stale chip focus after returning to the input (#5879)
- Fix
autoHighlightfor asynchronous results (#5818) - Decouple automatic unmounting from
actionsRef. CalleventDetails.preventUnmountOnClose()inonOpenChangeto opt out of automatic unmounting (#5734) - Fix label focus in Shadow DOM (#5871)
- Pass the originating event to
onItemHighlighted. Pointer events may beMouseEventorPointerEvent; typing reports the reasonnone(#5838) - Reset typeahead state when closing without moving focus (#5816)
- Accept readonly arrays for multiple values (#5710)
- Share item indicator implementation (#5728)
- Improve mount performance of large lists (#5819)
- Combine item store subscriptions (#5863)
Dialog
- Keep parent open when closing a nested dialog in a closed shadow root (#5780)
- Don’t associate a programmatically opened popup with a trigger that did not open it (#5641)
Drawer
- Preserve swipe release velocity after a trailing stationary pointer event (#5658)
- Fix swipe release velocity on 120 Hz input (#5845)
- Remove excess virtual keyboard scroll space (#5768)
- Avoid excess keyboard spacing in Chrome on iOS (#5774)
- Fix native focus scrolling on iOS 27 (#5769)
- Handle CloseWatcher close requests from the cancel event (#5770)
- Add
xandyoptions todata-base-ui-swipe-ignore(#5808) - Scroll instead of swiping when a drag starts on an SVG (#5844)
- Avoid touch event overhead while the drawer is closed (#5864)
- Preserve item taps when dismissing the virtual keyboard (#5882)
- Avoid retaining unmounted drawers in
<Drawer.Provider>(#5921) - Don’t associate a programmatically opened popup with a trigger that did not open it (#5641)
Field
- Avoid warnings when an uncontrolled
<Field.Control>’sdefaultValuechanges (#5881) - Fix label focus in Shadow DOM (#5871)
Menu
- Add menu filtering behavior with
<Menu.FilterProvider>,<Menu.Input>, and theonItemHighlightedcallback (preview) (#5527, #5838, #5840, #5868) - Fix nested menus without a root trigger (#5645)
- Fix event listener cleanup in
<Menu.Trigger>(#5764) - Release parent menu subscriptions when a submenu unmounts (#5833)
- Pass the native event to
onOpenChangewhen an item press closes the menu (#5789) - Close submenu when focus returns through its guard (#5793)
- Toggle submenus on repeated trigger activation (#5824)
- Reset typeahead state when closing without moving focus (#5816)
- Fix focus guard loop when the trigger is the only tabbable element (#5733)
- Fix hover-out animations when switching between detached triggers (#4261)
- Don’t start a viewport transition when the trigger remounts while closed (#5887)
- Keep transition state consistent when reopening a retained popup (#5738)
- Improve mount performance of large lists (#5819)
Number Field
- Fire
<NumberField.ScrubArea>’sonClickonce per click (#5889)
OTP Field
- Fix Safari IME composition over-filling slots (#5098)
Popover
- Fix focus guard loop when the trigger is the only tabbable element (#5733)
- Fix hover-out animations when switching between detached triggers (#4261)
- Don’t start a viewport transition when the trigger remounts while closed (#5887)
- Keep transition state consistent when reopening a retained popup (#5738)
Preview Card
- Don’t start a viewport transition when the trigger remounts while closed (#5887)
Radio Group
- Prefer
aria-labelover associated labels (#5787) - Prevent ignored arrow keys from selecting on refocus (#5643)
- Correct
inputRefforwarding and cleanup (#5775)
Scroll Area
- Remove presentational viewport role (#5813)
Select
- Decouple automatic unmounting from
actionsRef. CalleventDetails.preventUnmountOnClose()inonOpenChangeto opt out of automatic unmounting (#5734) - Fix label focus in Shadow DOM (#5871)
- Reset typeahead state when closing without moving focus (#5816)
- Synchronize root props through the store (#5589)
- Share item indicator implementation (#5728)
- Improve mount performance of large lists (#5819)
- Combine item store subscriptions (#5863)
- Accept readonly arrays for multiple values (#5710)
Slider
- Fix label focus in Shadow DOM (#5871)
- End drags on
touchcancelandpointercancel(#5639) - Fix touch track taps not firing
onValueCommitted(#5779) - Preserve single-element array values on pointer interaction (#5781)
Switch
- Prefer
aria-labelover associated labels (#5787)
Tabs
- Fix selecting tabs with function values (#5886)
Toast
- Keep timers paused during overlapping interactions (#5809)
Tooltip
- Don’t start a viewport transition when the trigger remounts while closed (#5887)