v1.0.0-beta.0
May 29, 2025
View as MarkdownGeneral changes
- Remove proptypes (#1760)
- Unify component export patterns (#1478)
- Default
tabIndexto0on<button>parts (#1939)
Accordion
- Stop event propagation to allow composite components to be used within popups (#1871)
Alert Dialog
- Breaking change: Refine
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Use basic scroll lock on iOS (#1890)
Checkbox
- Set
aria-required, useuseButton(#1777)
Checkbox Group
- Breaking change: Enable submitting checkbox group value as one field.
For parent checkboxes, use
valueinstead ofnameon each<Checkbox.Root>part to link as the values. (#1948) - Fix
validatefn incorrectly running twice (#1959)
Context Menu
- New
ContextMenucomponent (#1665)
Dialog
- Breaking change: Refine
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Use basic scroll lock on iOS (#1890)
Field
- Breaking change: Consolidate
Field.ErrorforceShowintomatchprop. Usematch={true}(or implicit boolean) instead offorceShow. (#1919) - Improve
Labellogic that prevents text selection on double click (#1784) - Fix validation inconsistency (#1779)
- Fix integration of Base UI components (#1755)
- Set
valueMissingto false if only error and not dirtied (#1810) validatewith latest value on blur (#1850)- Revalidate only
requiredon change (#1840) - Run validate function after native validations (#1926)
- Fix
validatefn incorrectly running twice (#1959) - Integrate range sliders with Form and Field (#1929)
Form
- Fix integration of Base UI components (#1755)
- Select inputs on focus (#1858)
- Exclude number formatting from form value (#1957)
- Integrate range sliders with Form and Field (#1929)
Input
Menu
- Breaking change: Refine
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
- Add missing
'use client'toRadioGrouppart (#1851) - Ensure
nullitems are removed from composite lists (#1847) - Avoid
:focus-visiblestyle appearing (#1846) - Better handle dynamic and non-string items (#1861)
- Add
collisionAvoidanceprop (#1849) - Add
finalFocusandcloseDelayprops (#1918) - Use basic scroll lock on iOS (#1890)
Menubar
- New
Menubarcomponent (#1684)
Navigation Menu
- New
NavigationMenucomponent (#1741)
Number Field
validatewith latest value on blur (#1850)- Move scrubbing logic to
ScrubAreacomponent (#1859) - Remove floating point errors when
snapOnStepis disabled (#1857) - Stop event propagation to allow composite components to be used within popups (#1871)
- Exclude number formatting from form value (#1957)
Popover
- Breaking change: Refine
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
- Avoid prop getters when merging props (#1852)
- Add
collisionAvoidanceprop (#1849) - Fix nested
openOnHover(#1938) - Use basic scroll lock on iOS (#1890)
Preview Card
- Breaking change: Refine
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
- Add
collisionAvoidanceprop (#1849)
Radio Group
- Fix composite focus of initially selected radio item (#1753)
- Add
inputRefprops (#1683) - Stop event propagation to allow composite components to be used within popups (#1871)
Select
- Breaking change: Move item anchoring prop to
Positioner. Use<Select.Positioner alignItemWithTrigger={false}>instead of<Select.Root alignItemToTrigger={false}>(note theWithinstead ofTo). (#1713) - Breaking change: Defer mounting until typeahead is needed.
The
placeholderprop is now required. Previously, only SSR needed it to prevent a hydration flash, but client-side rendering now also requires it. (#1906) - Breaking change: Refine
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
- Add
inputRefprops (#1683) - Refactor to
useRenderElement(#1797) - Ensure
nullitems are removed from composite lists (#1847) - Fix
idprop forwarding to hidden input (#1862) - Avoid
:focus-visiblestyle appearing (#1846) - Fix
transitionStatusmapping onItemIndicator(#1925) - Better handle dynamic and non-string items (#1861)
- Use
<Select.ItemText>ref to grab default text content (#1943) - Add
collisionAvoidanceprop (#1849) - Use basic scroll lock on iOS (#1890)
Slider
- Breaking change: Drop
inputIdprop from Thumb. (#1914) - Position thumb based on value instead of pointer location when dragging (#1750)
- Use
useRenderElement(#1772) - Add
inputRefprops (#1683) - Add
localeprop (#1796) - Stop event propagation to allow composite components to be used within popups (#1871)
- set
data-draggingon touchstart and pointerdown (#1874) - Integrate range sliders with Form and Field (#1929)
Toast
- Breaking change: Add
Portalpart. Place<Toast.Viewport>inside of<Toast.Portal>. (#1962) - Breaking change: Avoid removing limited toasts from the DOM.
The
[data-limited]styles in the demos were updated to handle limited toasts remaining in the DOM. They should now be a standalone style as&[data-limited] { opacity: 0 }. (#1953) - Fix swipe jump on iOS (#1785)
Toggle
- Stop event propagation to allow composite components to be used within popups (#1871)
Toolbar
- Stop event propagation to allow composite components to be used within popups (#1871)
Tooltip
- Breaking change: Refine
OpenChangeReason.hoveris nowtrigger-hover;clickis nowtrigger-press;focusis nowtrigger-focus. (#1782) - Fix function dependency handling (#1787)
- Avoid prop getters when merging props (#1852)
- Remove
trackCursorAxistype fromPositioner(#1895) - Apply
pointer-events: nonetoPositionerwhen not hoverable (#1917) - Add
collisionAvoidanceprop (#1849)
useRender
- Breaking change: Performance/refactor:
useRender. An object with arenderElementproperty is no longer returned; instead, the hook returns the element directly (const element = useRender(...)). Therefsoption was also renamed toref. (#1934) - Skip most of useRenderElement logic when unnecessary (#1967)