v1.7.0
Aug 4, 2026
General changes
- Restore visible focus after keyboard close in Safari and Firefox (#5093)
- Type
rendercallback props based on the rendered element (#5104) - Reduce popup bundle size (#5233)
- Reduce store bundle size (#5250)
- Keep unpositioned popups at the viewport origin (#5299)
- Correct layout and passive effect timing (#5337)
- Remove redundant lifecycle synchronization (#5341)
- Prevent stale cleanup from clearing registered part IDs (#5340)
- Complete popup unmounting after a canceled exit transition (#5401)
- Fix rendered trigger ID ownership (#5110)
- Prevent unwanted flip with capped scrollable content (#5120)
- Fix
collisionPaddingoff-by-one on the biased side (#5143) - Reduce shared popup bundle size (#5192)
- Mount popup subtrees synchronously when opening in React 17 (#5309)
- Fix auto-resize origin for left-anchored popups (#5370)
- Avoid redundant re-renders during lazy flipping (#5372)
- Strip implementation-only types from published
.d.tsfiles (#5165) - Fix
usePreviousValueequality comparison (#5264)
Accordion
- Remove the implicit
dirattribute from<Accordion.Root>(#5117)
Alert Dialog
- Prevent
<AlertDialog.Root>from reopening after remounting with a reused handle (#5109)
Autocomplete
- Respect locale when filtering (#5195)
- Add
input-pressto change event details (#5356) - Add
cancel-opento change event details (#5376) - Reset list scroll position on filter (#5231)
- Remove dead code and deduplicate handlers (#5194)
- Fix listbox separator semantics (#5399)
Avatar
- Show
<Avatar.Fallback>immediately whendelay={0}(#5147)
Button
- Fix keyboard click handling for custom elements (#4838)
Checkbox
- Remove redundant validation input ref (#5188)
- Stop internal input clicks from reaching ancestors (#5176)
- Reduce bundle size (#5223)
Checkbox Group
- Focus invalid checkbox (#5216)
- Align form values with native submission (#5218)
- Reduce bundle size (#5223)
Combobox
- Add
input-pressto change event details (#5356) - Add
cancel-opento change event details (#5376) - Stop filtering grouped items after limit (#5086)
- Remove leaky value registry (#5198)
- Set initial highlight in inline combobox (#5230)
- Return highlight to selected item on query clear (#5232)
- Expose
expandedstate for inline comboboxes (#5332) - Keep portalled popup content open (#5334)
- Reset list scroll position on filter (#5231)
- Fix hovered item stealing highlight when the list scrolls in Safari (#5265)
- Inherit the disabled state from
<Combobox.Root>in<Combobox.Item>(#5365) - Widen trigger slip-out release tolerance (#5159)
- Remove dead code and deduplicate handlers (#5194)
- Fix listbox separator semantics (#5399)
Composite
- Fix nested list reorder detection (#5156)
- Always skip natively disabled items during list navigation (#5185)
- Fix scroll alignment for RTL direction in
scrollIntoViewIfNeeded(#5234) - Simplify keyboard bookkeeping (#5249)
Dialog
- Fix touch outside-press dismissal without a backdrop (#5096)
- Prevent
<Dialog.Root>from reopening after remounting with a reused handle (#5109) - Fix scroll lock handoff with external overlays (#4665)
- Reduce bundle size (#5193)
Drawer
- Prevent
<Drawer.Root>from reopening after remounting with a reused handle (#5109) - Fix unreliable swipe-to-open gestures (#5105)
- Fix popup flashing fully open for a frame on swipe area re-grab (#5112)
- Deduplicate swipe math to reduce bundle size (#5181)
- Fix scroll handling when focus moves while the virtual keyboard is open (#5179)
- Fix cross-axis scroll blocked on iOS below the touchmove slop (#5257)
- Fix snap point jump when pinned pointer moves leave the drag offset unchanged (#5308)
- Fix Shadow DOM swipe gestures (#5360)
Field
- Keep invalid state on disabled fields (#5116)
- Reduce bundle size (#5225)
- Fix
data-dirtytracking for null-valued controls (#5290)
Fieldset
- Reduce bundle size (#5225)
Form
Menu
- Ignore pinch-zoom shifting (#4485)
- Cancel stale submenu hover-open when Chrome drops mouseleave (#5153)
- Fix exit animation not running on uncheck of item (#5252)
- Fix duplicate
onOpenChangecalls when closing a submenu (#5178) - Fix VoiceOver announcement when opening a submenu (#5342)
- Propagate disabled state to items (#5363)
- Open submenus on Android TalkBack press (#5384)
- Prevent
<Menu.Root>from reopening after remounting with a reused handle (#5149) - Widen trigger slip-out release tolerance (#5159)
Meter
Navigation Menu
Number Field
OTP Field
- Keep focus on the invalid field when
autoSubmitis blocked (#5089)
Popover
- Prevent
<Popover.Root>from reopening after remounting with a reused handle (#5149) - Reduce bundle size (#5193)
Preview Card
- Prevent
<PreviewCard.Root>from reopening after remounting with a reused handle (#5149)
Progress
Radio Group
- Remove unnecessary ARIA attributes from
<Radio.Root>(#5213) - Stop internal input clicks from reaching ancestors (#5176)
- Align form values with native submission (#5238)
- Reduce bundle size (#5223)
Scroll Area
- Fix thumb-drag divide-by-zero and per-scroll re-render (#5099)
- Fix scrollbar visibility during touch scrolling on iOS (#5157)
- Add WebKit overscroll feedback to
<ScrollArea.Thumb>(#5145) - Reduce bundle size (#5217)
- Prevent scroll snapping while dragging the thumb (#5259)
- End thumb drag when the primary button is no longer held (#5374)
Select
- Fix hovered item stealing highlight when the list scrolls in Safari (#5265)
- Inherit the disabled state from
<Select.Root>in<Select.Item>(#5365) - Widen trigger slip-out release tolerance (#5159)
- Do not force-mount the popup on programmatic value changes (#5119)
- Remove dead code and deduplicate handlers (#5194)
- Fix listbox separator semantics (#5399)
Slider
- Fix assorted issues (#5097)
- Reduce bundle size (#5222)
- Exclude the prehydration script from client bundles (#5003)
Switch
Tabs
- Position pre-hydration indicator inside streamed Suspense (#5171)
- Exclude the prehydration script from client bundles (#5003)
- Reduce bundle size (#5221)
Toast
- Fix remaining toast timer calculation (#5261)
- Reduce bundle size (#5219)
- Render content passed through the
renderprop in<Toast.Title>,<Toast.Description>, and<Toast.Action>(#5210) - Fix re-adding a closing toast (#5258)
- Fix swipe direction locking for two-axis swipes (#5295)
- Fix
<Toast.Provider>prop effect ordering (#5338)
Toggle Group
- Reduce bundle size (#5224)
Toolbar
- Reduce bundle size (#5221)
Tooltip
- Prevent
<Tooltip.Root>from reopening after remounting with a reused handle (#5149)