Releases

Changelogs for each Base UI release.

View as Markdown

v1.0.0-beta.3

Sep 3, 2025

General changes

  • Breaking change: Base UI event details. Custom event callbacks provide BaseUIEventDetails object as their second parameter. This object contains the source event, reason and methods to customize the behavior (where applicable). For example, onOpenChange(open, event, reason) becomes onOpenChange(open, eventDetails), where eventDetails contains event and reason properties. (#2382)

Alert Dialog

  • Breaking change: Support initialFocus and finalFocus functions. The initialFocus and finalFocus props can be functions that return DOM elements to focus. This is a new feature for finalFocus and a breaking change for initialFocus as the element must be returned directly (not as a ref). (#2536)

Autocomplete

  • New Autocomplete component (#2105)

Checkbox

  • Fix missing validity attributes when wrapped in Field (#2572)

Combobox

  • New Combobox component (#2105)

Context Menu

  • Fix default offsets when align="center" or side differs (#2601)

Dialog

  • Breaking change: Support initialFocus and finalFocus functions. The initialFocus and finalFocus props can be functions that return DOM elements to focus. This is a new feature for finalFocus and a breaking change for initialFocus as the element must be returned directly (not as a ref). (#2536)
  • Restore focus to popup when focused element is removed (#2479)

Field

  • Prevent defaultValue reset on focus for uncontrolled inputs (#2543)
  • Allow onValueChange to fire when defaultValue/value are not set (#2600)

Input

  • Allow onValueChange to fire when defaultValue/value are not set (#2600)

Menu

  • Breaking change: Fix closeParentOnEsc default value. The default value of closeParentOnEsc in Menu.SubmenuRoot is now false. When the Esc key is pressed in a Submenu, the Submenu closes, and the focus correctly moves to the SubmenuTrigger. (#2493)
  • Breaking change: Support initialFocus and finalFocus functions. The initialFocus and finalFocus props can be functions that return DOM elements to focus. This is a new feature for finalFocus and a breaking change for initialFocus as the element must be returned directly (not as a ref). (#2536)
  • Fix menu not opening when inside context menu trigger (#2506)
  • Fix transform-origin variable calculation when Positioner sideOffset is a function (#2511)
  • Fix submenu events (#2483)
  • Fix limitShift offset based on arrow size (#2571)

Navigation Menu

  • Breaking change: Semantic element structure and active page prop. NavigationMenu.List renders <ul> and NavigationMenu.Item renders <li> by default. (#2526)
  • Unshare AbortController instance (#2441)
  • Close on link click by default (#2535)

Number Field

  • Fix duplicate onValueChange calls (#2591)

Popover

  • Breaking change: Support initialFocus and finalFocus functions. The initialFocus and finalFocus props can be functions that return DOM elements to focus. This is a new feature for finalFocus and a breaking change for initialFocus as the element must be returned directly (not as a ref). (#2536)
  • Fix outside click after right clicking in popup (#2508)
  • Fix unexpected close when nested inside two popovers (#2481)
  • Fix transform-origin variable calculation when Positioner sideOffset is a function (#2511)
  • Restore focus to popup when focused element is removed (#2479)
  • Fix limitShift offset based on arrow size (#2571)

Preview Card

  • Fix transform-origin variable calculation when Positioner sideOffset is a function (#2511)
  • Fix limitShift offset based on arrow size (#2571)

Radio Group

  • Return null in form data when no option selected (#2473)

Scroll Area

  • Prevent pointer events from sibling portals triggering hover (#2542)

Select

  • Fix stale items prop (#2397)
  • Fix unexpected close when nested inside two popovers (#2481)
  • Fix onValueChange type inference (#2372)
  • Fix transform-origin variable calculation when Positioner sideOffset is a function (#2511)
  • Reset state when selected item is removed (#2577)
  • Fix data-highlighted and DOM focus item desync (#2569)
  • Fix item click with defaultOpen prop (#2570)
  • Fix scroll arrows not propagating scroll fully to start/end of list (#2523)
  • Fix limitShift offset based on arrow size (#2571)

Slider

  • Breaking change: Instead of the thumb div, the input type="range" element receives focus. Focus styles that were targeting the thumb, should be updated. For example .Thumb:focus-visible should be replaced with .Thumb:has(:focus-visible). The tabIndex prop is moved from Root to Thumb where it gets forwarded to the input. The thumb’s render prop no longer contains the third inputProps argument; the input element is instead merged with children. (#2578)
  • Reduce bundle size (#2551)
  • Fix thumb :focus-visible with mixed keyboard and pointer modality (#2584)
  • Add index prop to Slider.Thumb (#2593)

Tabs

  • Fix tab size rounding (#2488)
  • Fix highlight sync when focus is inside list (#2487)

Tooltip

  • Fix transform-origin variable calculation when Positioner sideOffset is a function (#2511)
  • Fix limitShift offset based on arrow size (#2571)

useRender

  • Add support for data-* attributes (#2524)
  • Add defaultTagName parameter (#2527)

v1.0.0-beta.2

Jul 30, 2025

General changes

  • Fix navigator checks and ensure safe platform retrieval (#2273)
  • Prevent Space key default on keydown (#2295)
  • Check for performance existence on server (#2316)

Accordion

  • Destructure render prop (#2280)
  • Fix keyboard interactions with elements in the panel (#2321)
  • Fix open transitions in Safari/Firefox (#2327)

Alert Dialog

  • Support ShadowRoot containers (#2236)
  • Add forceRender prop to Backdrop part (#2037)
  • Improve outside press behavior with touch input (#2334)

Checkbox

  • Fix focusing form controls with inputRef (#2252)

Collapsible

  • Destructure render prop (#2323)
  • Fix open transitions in Safari/Firefox (#2327)

Dialog

  • Support ShadowRoot containers (#2236)
  • Add forceRender prop to Backdrop part (#2037)
  • Improve outside press behavior with touch input (#2334)
  • Use click event for outside press dismissal (#2275)

Field

  • Deregister fields from Form when unmounting (#2231)

Form

  • Deregister fields from Form when unmounting (#2231)

Menu

  • Support ShadowRoot containers (#2236)
  • Avoid double useRenderElement passes (#2256)
  • Improve outside press behavior with touch input (#2334)
  • Close submenus when focus is lost by shift-tabbing (#2290)

Menubar

  • Fix triggers role (#2317)

Meter

  • Fix ARIA attributes and update docs (#2267)

Navigation Menu

  • Breaking change: Support inlined nesting. Ensure the popup’s width is set to var(--popup-width) unconditionally (without the media query) on the .Popup class. (#2269)
  • Avoid double useRenderElement passes (#2256)
  • Add useButton integration to Trigger (#2296)
  • Fix popup size transitions on iOS (#2387)

Number Field

  • Remove invalid prop (#2315)
  • Fix button disabled state only including root disabled state (#2268)

Popover

  • Support ShadowRoot containers (#2236)
  • Remove ancestor nodes from inside elements for outside press detection (#2339)
  • Improve outside press behavior with touch input (#2334)
  • Use click event for outside press dismissal (#2275)

Preview Card

  • Support ShadowRoot containers (#2236)

Progress

  • Fix ARIA attributes and update docs (#2267)

Radio Group

  • Add aria-required attribute (#2227)
  • Extend state with FieldRoot.State (#2251)
  • Fix focusing form controls with inputRef (#2252)
  • Avoid double useRenderElement passes (#2256)

Scroll Area

  • Disable user-select on scrollbar and non-main button interactions (#2338)

Select

  • Support ShadowRoot containers (#2236)
  • Add value and readOnly to Select.Trigger state (#2237)
  • Add multiple prop (#2173)
  • Allow typeahead while open for multiple mode (#2274)
  • Ensure positionerElement is available in document mouseup (#2276)
  • Fix alignItemWithTrigger fallback scroll jump (#2241)
  • Support conditional multiple prop in types (#2369)
  • Fix multiple ARIA behavior on touch (#2333)
  • Improve outside press behavior with touch input (#2334)

Slider

  • Fix focusing form controls with inputRef (#2252)

Toast

  • Fix promise method timeout option handling (#2294)
  • Make Toast.Viewport an announce container (#2246)

Toggle

  • Avoid double useRenderElement passes (#2256)

Toggle Group

  • Avoid double useRenderElement passes (#2256)

Toolbar

  • Avoid double useRenderElement passes (#2256)

Tooltip

  • Support ShadowRoot containers (#2236)
  • Memoize leftover object in tooltip (#2250)
  • Fix error when combining defaultOpen and disabled (#2374)

v1.0.0-beta.1

Jul 1, 2025

General changes

  • Make error messages consistent (#2049)
  • Do not overwrite event handler when undefined is passed explicitly (#2151)

Accordion

  • Allow content to resize naturally (#2043)
  • Fix transition status mapping (#2169)
  • Fix aria-controls reference (#2170)
  • Fix test warning about mixed animation types (#2180)

Checkbox

  • Breaking change: Support implicit Field.Label. If Field.Label encloses Switch/Checkbox/Radio, the htmlFor/id attributes are no longer explicitly set to associate them. (#2036)
  • Refactor to useRenderElement (#2053)
  • Always set id on the <input> element (#2115)

Checkbox Group

  • Fix onCheckedChange not running when parent checkbox is present (#2155)

Collapsible

  • Allow content to resize naturally (#2043)
  • Fix aria-controls reference (#2170)
  • Fix test warning about mixed animation types (#2180)

Context Menu

  • Breaking change: Add SubmenuRoot part. Nested menus should be defined with Menu.SubmenuRoot instead of Menu.Root to to avoid ambiguity. (#2042)
  • Fix CheckboxItemIndicator export (#2009)

Dialog

  • Fix popup prop merging (#2119)

Field

  • Breaking change: Support implicit Field.Label. If Field.Label encloses Switch/Checkbox/Radio, the htmlFor/id attributes are no longer explicitly set to associate them. (#2036)
  • Enable custom validation based on other form values (#1941)
  • Fix onValueChange value type (#2112)
  • Fix Field.Label focusing trigger (#2118)
  • Fix slider field label (#2154)

Fieldset

  • Refactor to useRenderElement (#2053)

Form

  • Enable custom validation based on other form values (#1941)

Input

  • Fix onValueChange value type (#2112)

Menu

  • Breaking change: Add SubmenuRoot part. Nested menus should be defined with Menu.SubmenuRoot instead of Menu.Root to to avoid ambiguity. (#2042)
  • Unset role from Trigger (#2047)
  • Emit close event on cancel-open (#2067)
  • Fix close toggle when rendering non-native button (#2071)
  • Add highlighted to item State (#2079)
  • Remove highlighted effect (#2162)
  • Cut out internal backdrop to allow interacting with triggers (#2141)
  • Fix active index sync on hover (#2163)
  • Fix focus returning to root when submenus have exit transitions (#2171)

Menubar

  • Fix closeOnClick: false not working in nested menus (#2094)

Navigation Menu

  • Breaking change: Handle layout resize while open (#2070). For large scrollable content, add the max-height style to Content in addition to Popup.
  • Fix positioner height when opening menu using the keyboard arrows (#2060)

Number Field

  • Ensure onValueChange is called with already-formatted parsed value (#1905)
  • Fix revalidation on change (#2174)

Popover

  • Fix close toggle when rendering non-native button (#2071)
  • Cut out internal backdrop to allow interacting with triggers (#2141)

Radio Group

  • Breaking change: Support implicit Field.Label. If Field.Label encloses Radio, the htmlFor/id attributes are no longer explicitly set to associate them. (#2036)
  • Refactor to useRenderElement (#2053)

Scroll Area

  • Ignore data-scrolling during programmatic scroll (#1908)

Select

  • Breaking change: Print raw value in Select.Value. <Select.Value> now prints the raw value by default unless an items prop is specified on Select.Root. See https://base-ui.com/react/components/select#formatting-the-value for more information. (#2087)
  • Performance: avoid re-renders (#1961)
  • Fix close toggle when rendering non-native button (#2071)
  • Fix Field.Label focusing trigger (#2118)
  • Fix programmatic value changes and autofill handling (#2084)
  • Add highlighted to item State (#2079)
  • Cut out internal backdrop to allow interacting with triggers (#2141)
  • Pass value as state (#2153)
  • Extend FieldRoot.State type (#2192)

Slider

  • Use pointer capture when dragging (#2059)
  • Fix slider field label (#2154)

Switch

  • Breaking change: Support implicit Field.Label. If Field.Label encloses Switch, the htmlFor/id attributes are no longer explicitly set to associate them. (#2036)

Tabs

  • Fix indicator positioning when TabsList overflows (#2093)
  • Fix focus going out of sync when selected value is changed externally (#2107)
  • Remove highlighted state (#2164)

Toolbar

  • Set disabled attr on toolbar button when focusableWhenDisabled={false} (#2176)

useRender

  • Make useRender RSC-friendly (#2134)

v1.0.0-beta.0

May 29, 2025

General changes

  • Remove proptypes (#1760)
  • Unify component export patterns (#1478)
  • Default tabIndex to 0 on <button> parts (#1939)

Accordion

  • Stop event propagation to allow composite components to be used within popups (#1871)

Alert Dialog

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus. (#1782)
  • Use basic scroll lock on iOS (#1890)

Checkbox

  • Set aria-required, use useButton (#1777)

Checkbox Group

  • Breaking change: Enable submitting checkbox group value as one field. For parent checkboxes, use value instead of name on each Checkbox.Root part to link as the values. (#1948)
  • Fix validate fn incorrectly running twice (#1959)

Context Menu

  • New ContextMenu component (#1665)

Dialog

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus. (#1782)
  • Use basic scroll lock on iOS (#1890)

Field

  • Breaking change: Consolidate Field.Error forceShow into match prop. Use match={true} (or implicit boolean) instead of forceShow. (#1919)
  • Improve Label logic that prevents text selection on double click (#1784)
  • Fix validation inconsistency (#1779)
  • Fix integration of Base UI components (#1755)
  • Set valueMissing to false if only error and not dirtied (#1810)
  • validate with latest value on blur (#1850)
  • Revalidate only required on change (#1840)
  • Run validate function after native validations (#1926)
  • Fix validate fn 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

  • Fix Input.Props type (#1915)
  • Extend Field.Control.State (#1954)

Menu

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus. (#1782)
  • Fix function dependency handling (#1787)
  • Add missing 'use client' to RadioGroup part (#1851)
  • Ensure null items are removed from composite lists (#1847)
  • Avoid :focus-visible style appearing (#1846)
  • Better handle dynamic and non-string items (#1861)
  • Add collisionAvoidance prop (#1849)
  • Add finalFocus and closeDelay props (#1918)
  • Use basic scroll lock on iOS (#1890)

Menubar

  • New Menubar component (#1684)

Navigation Menu

  • New NavigationMenu component (#1741)

Number Field

  • validate with latest value on blur (#1850)
  • Move scrubbing logic to ScrubArea component (#1859)
  • Remove floating point errors when snapOnStep is 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. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus. (#1782)
  • Fix function dependency handling (#1787)
  • Avoid prop getters when merging props (#1852)
  • Add collisionAvoidance prop (#1849)
  • Fix nested openOnHover (#1938)
  • Use basic scroll lock on iOS (#1890)

Preview Card

  • Breaking change: Refine OpenChangeReason. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus. (#1782)
  • Fix function dependency handling (#1787)
  • Add collisionAvoidance prop (#1849)

Radio Group

  • Fix composite focus of initially selected radio item (#1753)
  • Add inputRef props (#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 the With instead of To). (#1713)
  • Breaking change: Defer mounting until typeahead is needed. The placeholder prop 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. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus. (#1782)
  • Fix function dependency handling (#1787)
  • Add inputRef props (#1683)
  • Refactor to useRenderElement (#1797)
  • Ensure null items are removed from composite lists (#1847)
  • Fix id prop forwarding to hidden input (#1862)
  • Avoid :focus-visible style appearing (#1846)
  • Fix transitionStatus mapping on ItemIndicator (#1925)
  • Better handle dynamic and non-string items (#1861)
  • Use Select.ItemText ref to grab default text content (#1943)
  • Add collisionAvoidance prop (#1849)
  • Use basic scroll lock on iOS (#1890)

Slider

  • Breaking change: Drop inputId prop from Thumb. (#1914)
  • Position thumb based on value instead of pointer location when dragging (#1750)
  • Use useRenderElement (#1772)
  • Add inputRef props (#1683)
  • Add locale prop (#1796)
  • Stop event propagation to allow composite components to be used within popups (#1871)
  • set data-dragging on touchstart and pointerdown (#1874)
  • Integrate range sliders with Form and Field (#1929)

Toast

  • Breaking change: Add Portal part. 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. hover is now trigger-hover; click is now trigger-press; focus is now trigger-focus. (#1782)
  • Fix function dependency handling (#1787)
  • Avoid prop getters when merging props (#1852)
  • Remove trackCursorAxis type from Positioner (#1895)
  • Apply pointer-events: none to Positioner when not hoverable (#1917)
  • Add collisionAvoidance prop (#1849)

useRender

  • Breaking change: Performance/refactor: useRender. An object with a renderElement property is no longer returned; instead, the hook returns the element directly (const element = useRender(...)). The refs option was also renamed to ref. (#1934)
  • Skip most of useRenderElement logic when unnecessary (#1967)

v1.0.0-alpha.8

Apr 17, 2025

Accordion

  • Recalculate panel dimensions on layout resize (#1704)
  • Rework animations and transitions (#1601)

AlertDialog

  • Breaking change: Rename data-has-nested-dialogs to data-nested-dialog-open (#1686)
  • Fix onOpenChange types for event/reason passing (#1721)
  • Use consistent inert attr and map [data-popup-open] back to open (#1650)
  • Fix text selection & right-clicks (#1702)

CheckboxGroup

  • Parent checkbox/nested demos (#1610)

Collapsible

  • Fix ForwardedRef type of CollapsiblePanel (#1595)
  • Recalculate panel dimensions on layout resize (#1704)
  • Rework animations and transitions (#1601)

Dialog

  • Breaking change: Rename data-has-nested-dialogs to data-nested-dialog-open (#1686)
  • Breaking change: Add new trap-focus value to modal prop. Dialogs with modal=false no longer trap focus. (#1571)
  • Fix onOpenChange types for event/reason passing (#1721)
  • Use consistent inert attr and map [data-popup-open] back to open (#1650)
  • Fix text selection & right-clicks (#1702)
  • Allow document to slide input into view on iOS when keyboard opens (#1735)

Field

  • Fix forwarding of name and disabled props (#1616)

Menu

  • Add missing item data attributes docs (#1691)
  • Fix inert prop compatibility in React <19 (#1618)
  • Fix stuck highlight on submenu trigger when submenu opens with keyboard (#1698)
  • Fix onOpenChange types for event/reason passing (#1721)
  • Use consistent inert attr and map [data-popup-open] back to open (#1650)
  • Fix text selection & right-clicks (#1702)

Meter

  • New Meter component (#1435)

NumberField

  • Correct percentage parse handling (#1676)
  • New snapOnStep prop (#1560)

Popover

  • Breaking change: Add new trap-focus value to modal prop (#1571)
  • Fix inert prop compatibility in React <19 (#1618)
  • Fix onOpenChange types for event/reason passing (#1721)
  • Use consistent inert attr and map [data-popup-open] back to open (#1650)
  • Fix text selection & right-clicks (#1702)

Progress

  • Breaking change: Add Progress.Label and locale prop. The getAriaLabel prop was removed as Progress.Label should be used to provide an accessible name. (#1666)

Radio

  • Fix value forwarding and null handling (#1697)

ScrollArea

  • Breaking change: Add Content part. It is now required to include the ScrollArea.Content within ScrollArea.Viewport part when the content is horizontally scrollable. (#1607)
  • Handle visibility change and nesting (#1598)
  • Correct thumb sizing with scrollbar margins (#1606)

Select

  • Breaking change: Improve item highlight performance. The highlighted state is now removed. It’s not possible to customize the data-highlighted attribute anymore. (#1570)
  • Avoid double commit on value change (#1597)
  • Reset selectedIndex when set to null (#1596)
  • Add missing item data attributes docs (#1691)
  • Fix onOpenChange types for event/reason passing (#1721)
  • Use consistent inert attr and map [data-popup-open] back to open (#1650)
  • Fix text selection & right-clicks (#1702)

Slider

  • Correct thumb positioning when control has padding (#1661)
  • Prevent range slider thumbs from being dragged past each other (#1612)
  • Fix incorrect CSS position on vertical slider indicator (#1599)
  • Fix overlapping slider thumbs stuck at min or max (#1732)

Toast

  • New Toast component (#1467)

Tooltip

  • Avoid re-rendering unrelated consumers (#1677)
  • Add disabled prop (#1682)
  • Fix onOpenChange types for event/reason passing (#1721)
  • Use consistent inert attr and map [data-popup-open] back to open (#1650)
  • Fix text selection & right-clicks (#1702)

v1.0.0-alpha.7

Mar 20, 2025

Accordion

  • Fix aria-labelledby on accordion panel (#1544)

AlertDialog

  • Fix selection on outside press on Firefox with modal prop (#1573)
  • Fix non-interactive button disabled state (#1473)
  • actionsRef prop (#1236)

Avatar

  • Support cross origin in useImageLoadingStatus (#1433)
  • Add missing Avatar export (#1428)

Collapsible

  • Update props destructuring to fix Trigger disabled state (#1469)

Dialog

  • Fix selection on outside press on Firefox with modal prop (#1573)
  • Fix non-interactive button disabled state (#1473)
  • actionsRef prop (#1236)

Field

  • Fix FieldControl [data-filled] not reacting to external value changes (#1565)

Menu

  • Ensure submenu triggers respond to clicks when openOnHover=false (#1583)
  • Ensure stickIfOpen is reset to true correctly (#1548)
  • Fix selection on outside press on Firefox with modal prop (#1573)
  • Reset hoverEnabled state on close (#1461)
  • Fix prop merging issues (#1445)
  • Set pointer-events: none style on backdrops when hoverable (#1351)
  • actionsRef prop (#1236)

NumberField

  • Fix ScrubArea on Safari ([#1584])(https://github.com/mui/base-ui/pull/1584/))
  • Fix large/smallStep getting stuck (#1578)
  • Fix parse of numbers with spaces as thousands separators (#1577)
  • Prevent virtual cursor overlapping native one (#1491)
  • Fix disabled state on increment/decrement buttons (#1462)
  • Correct virtual cursor rendering (#1484)
  • Add locale prop (#1488)
  • Improve virtual cursor perf (#1485)

Popover

  • Ensure stickIfOpen is reset to true correctly (#1548)
  • Fix selection on outside press on Firefox with modal prop (#1573)
  • Set pointer-events: none style on backdrops when hoverable (#1351)
  • Fix non-interactive button disabled state (#1473)
  • modal prop (#1459)
  • actionsRef prop (#1236)

PreviewCard

  • Set pointer-events: none style on backdrops when hoverable (#1351)
  • actionsRef prop (#1236)

RadioGroup

  • Fix Form/Field validation integration (#1448)
  • Handle modifier keys (#1529)

Select

  • Fix selection on outside press on Firefox with modal prop (#1573)
  • actionsRef prop (#1236)
  • Improve ScrollArrow behavior (#1564)
  • Ensure switching controlled value to null updates Select.Value label (#1561)
  • Pass value as second argument to function children Select.Value (#1562)
  • Fix focus jump while hovering while navigating with keyboard (#1563)
  • Fix disabled state changing (#1526)

Slider

  • Fix thumb positioning when controlled value violates min/max/step (#1541)
  • Warn when min is not less than max (#1475)
  • Narrow the type of value in callbacks (#1241)

Tabs

  • Fix keyboard navigation involving disabled Tabs (#1449)
  • Handle modifier keys (#1529)

Toolbar

  • Add Toolbar components (#1349)

Tooltip

  • actionsRef prop (#1236)
  • Fix Provider delay=0 not being respected (#1416)

useRender

  • Add public hook (#1418)
  • Refine docs and APIs (#1551)

v1.0.0-alpha.6

Feb 6, 2025

AlertDialog

  • onOpenChangeComplete prop (#1305)
  • Fix jump with scroll-behavior style (#1343)

Avatar

  • Add Avatar component (#1210)

Checkbox

  • Avoid applying hidden attr when keepMounted=true for indicators (#1329)

Dialog

  • Remove modal={open} state (#1352)
  • Support multiple non-nested modal backdrops (#1327)
  • Fix missing ids on Title and Description (#1326)
  • onOpenChangeComplete prop (#1305)
  • Fix jump with scroll-behavior style (#1343)

Field

  • Respect validationMode (#1053)
  • Add filled and focused style hooks (#1341)

Form

  • Fix focusing of invalid field controls on errors prop change (#1364)

Menu

  • Avoid applying hidden attr when keepMounted=true for indicators (#1329)
  • Support submenus with openOnHover prop (#1338)
  • Fix iPad detection when applying scroll lock (#1342)
  • onOpenChangeComplete prop (#1305)
  • Fix jump with scroll-behavior style (#1343)
  • Add OffsetFunction for sideOffset and alignOffset (#1223)
  • Ensure keepMounted is a private param on Positioner (#1410)

Popover

  • onOpenChangeComplete prop (#1305)
  • Add OffsetFunction for sideOffset and alignOffset (#1223)
  • Ensure keepMounted is a private param on Positioner (#1410)

PreviewCard

  • onOpenChangeComplete prop (#1305)
  • Add OffsetFunction for sideOffset and alignOffset (#1223)
  • Ensure keepMounted is a private param on Positioner (#1410)

Progress

  • Add format prop and Value component (#1355)

Radio

  • Avoid applying hidden attr when keepMounted=true for indicators (#1329)

Select

  • onOpenChangeComplete prop (#1305)
  • Fix jump with scroll-behavior style (#1343)
  • Add OffsetFunction for sideOffset and alignOffset (#1223)
  • Ensure keepMounted is a private param on Positioner (#1410)

Slider

  • Fix thumb positioning (#1411)

Tabs

  • Fix being able to activate a disabled tab (#1359)
  • Fix tabs activating incorrectly on non-primary button clicks (#1318)

Tooltip

  • onOpenChangeComplete prop (#1305)
  • Add OffsetFunction for sideOffset and alignOffset (#1223)
  • Ensure keepMounted is a private param on Positioner (#1410)

v1.0.0-alpha.5

Jan 10, 2025

AlertDialog

  • Breaking change: Require Portal part. The AlertDialog must explicitly include the Portal part wrapping the Popup. The keepMounted prop was removed from the Popup. It’s only present on the Portal part. #1222
  • Don’t call onNestedDialogOpen when unmounting a closed nested dialog #1280
  • Fix the nesting of different dialogs #1167
  • Remove useFloating call from the Popup #1300
  • Set pointer-events on InternalBackdrop based on open state #1221
  • Use internal backdrop for pointer modality #1161

Dialog

  • Breaking change: Require Portal part. The Dialog must explicitly include the Portal part wrapping the Popup. The keepMounted prop was removed from the Popup. It’s only present on the Portal part. #1222
  • Don’t call onNestedDialogOpen when unmounting a closed nested dialog #1280
  • Fix the nesting of different dialogs #1167
  • Remove useFloating call from the Popup #1300
  • Set pointer-events on InternalBackdrop based on open state #1221
  • Use internal backdrop for pointer modality #1161

Menu

  • Breaking change: Require Portal part. The Menu must explicitly include the Portal part wrapping the Positioner. The keepMounted prop was removed from the Positioner. It’s only present on the Portal part. #1222
  • Apply aria-hidden to Arrow parts #1196
  • Fix focusableWhenDisabled components #1313
  • Fix openOnHover issues #1191
  • Fix closing the menu when clicking on checkboxitem/radioitem #1301
  • Fix Enter key preventDefault when rendering links #1251
  • Handle pseudo-element bounds in mouseup detection #1250
  • Set pointer-events on InternalBackdrop based on open state #1221
  • Use internal backdrop for pointer modality #1161

NumberField

  • Correctly handle quick touches #1294

Popover

  • Breaking change: Require Portal part. The Popover must explicitly include the Portal part wrapping the Positioner. The keepMounted prop was removed from the Positioner. It’s only present on the Portal part. #1222
  • Apply aria-hidden to Arrow parts #1196
  • Fix PopoverTrigger and TooltipTrigger prop types #1209

PreviewCard

  • Breaking change: Require Portal part. The PreviewCard must explicitly include the Portal part wrapping the Positioner. The keepMounted prop was removed from the Positioner. It’s only present on the Portal part. #1222
  • Apply aria-hidden to Arrow parts #1196
  • Use FloatingPortalLite #1278

Progress

  • Set zero width when value is zero #1204

ScrollArea

  • Differentiate x/y orientation data-scrolling #1188
  • Read DirectionProvider and use logical positioning CSS props #1194

Select

  • Breaking change: Require Portal part. The Select must explicitly include the Portal part wrapping the Positioner. The keepMounted prop was removed from the Positioner. It’s only present on the Portal part. #1222
  • Allow id to be passed to trigger #1174
  • Fallback to standard positioning when pinch-zoomed in Safari #1139
  • Fix focusableWhenDisabled components #1313
  • Fix highlight flash on Safari #1233
  • Handle pseudo-element bounds in mouseup detection #1250
  • Use internal backdrop for pointer modality #1161

Separator

  • Support vertical orientation #1304

Slider

  • Ensure onValueCommitted is called with the same value as latest onValueChange #1296
  • Replace internal map with Composite metadata #1082
  • Set position: relative on range slider indicator #1175
  • Use un-rounded values to position thumbs #1219

Tabs

  • Expose width/height state in tabs indicator #1288

Tooltip

  • Breaking change: Require Portal part. The Tooltip must explicitly include the Portal part wrapping the Positioner. The keepMounted prop was removed from the Positioner. It’s only present on the Portal part. #1222
  • Apply aria-hidden to Arrow parts #1196
  • Fix PopoverTrigger and TooltipTrigger prop types #1209
  • Use FloatingPortalLite #1278

1.0.0-alpha.4

December 17, 2024

Public alpha launch 🐣 Merry Xmas! 🎁