[Breaking] Add ability to reset to placeholder using ""value. Note that this is only a breaking change if you were using an option with a value of "". – #2174
Fix pointer-events issue when clicking outside – #2177
Fix Portal part types lying about accepting DOM props – #2178
Toast
1.1.5
Fix pointer-events issue when clicking outside – #2177
Tooltip
1.0.7
Fix pointer-events issue when clicking outside – #2177
Fix Portal part types lying about accepting DOM props – #2178
Fix issue with boundary padding calculations – #2185
Add option to always re-position Content on the fly – #2092
This release ensures all of our primitives are ESM compatible. We have also updated to the latest version of Floating UI for all of our popper-positioned primitives.
This release introduces a brand new primitive: Menubar. It also adds support for a highly requested feature for Select: the ability to position the content in a similar way to Popover or DropdownMenu.
Accordion
1.1.0
Add horizontal orientation support with new orientation prop, as well as RTL support with dir– #1850
Context Menu
2.1.1
Fix consistency issue with RTL positioning – #1890
Dropdown Menu
2.0.2
Fix consistency issue with RTL positioning – #1890
Hover Card
1.0.3
Fix consistency issue with RTL positioning – #1890
Fix initial animation playback in Firefox and Safari – #1710
Alert Dialog
1.0.2
Fix issue with textarea elements not being scrollable in Firefox – #1550
Collapsible
1.0.1
Fix initial animation playback in Firefox and Safari – #1710
Context Menu
2.0.1Major
[Breaking] Add support for indeterminate state on ContextMenu.CheckboxItem. Note that this is only a breaking change if you are currently using the CheckboxItem part and your codebase is written in TypeScript. – #1624
Dialog
1.0.2
Fix issue with textarea elements not being scrollable in Firefox – #1550
Dropdown Menu
2.0.1Major
[Breaking] Add support for indeterminate state on DropdownMenu.CheckboxItem. Note that this is only a breaking change if you are currently using the CheckboxItem part and your codebase is written in TypeScript. – #1624
Correctly pair DropdownMenu.Trigger open state with aria-expanded when closed – #1644
Fix issue with eager selection of items when using asChild– #1647
Fix issue with dismissing when the component is used in a separate popup window – #1677
[Breaking] Remove useLabelContext and support for fully custom controls. For native labelling to work, ensure your custom controls are based on native elements such as button or input. – #1686
Improve native behavior by using the native label element – #1686
Navigation Menu
1.1.1
Prevent menu from re-opening with the pointer after being dismissed with escape – #1579
Add delayDuration and skipDelayDuration props to NavigationMenu.Root. Note that by default, triggers now have a brief delay before opening in order to improve UX, this can be modified using the props provided. – #1716
[Breaking] Improve RTL performance. You need to use DirectionProvider if you were relying on dir attribute inheritance from document (or any element). – #1119
Alert Dialog
1.0.0Major
[Breaking] Remove allowPinchZoom prop, now defaults to true– #1514
Improve compatibility with JS animation libraries with forceMount on AlertDialog.Portal– #1075
Fix regressions with page interactivity while/after closing dialog – #1401
Context Menu
1.0.0Major
[Breaking] Improve indirect nesting of context menus. Submenus must now be created using explicit parts. – #1394
[Breaking] Remove allowPinchZoom prop, now defaults to true– #1514
[Breaking] Add new Portal part. To avoid regressions, use this part if you want portalling behavior. Note that z-index isn't managed anymore so you have full control of layering. – #1429
Add collisionBoundary, arrowPadding, sticky, hideWhenDetached props on Content part – #1531
Dialog
1.0.0Major
[Breaking] Remove allowPinchZoom prop, now defaults to true– #1514
Improve compatibility with JS animation libraries with forceMount on Dialog.Portal– #1075
Fix regressions with page interactivity while/after closing dialog – #1401
Dropdown Menu
1.0.0Major
[Breaking] Improve indirect nesting of dropdown menus. Submenus must now be created using explicit parts. – #1394
[Breaking] Remove allowPinchZoom prop, now defaults to true– #1514
[Breaking] Add new Portal part. To avoid regressions, use this part if you want portalling behavior. Note that z-index isn't managed anymore so you have full control of layering. – #1429
[Breaking] Rename collisionTolerance to collisionPadding on Content part and accepts a number or a padding object – #1531
Add data-highlighted attribute to support styling – #1388
Prevent escape key from exiting fullscreen mode in Firefox & Safari – #1423
Add collisionBoundary, arrowPadding, sticky, hideWhenDetached props on Content part – #1531
Hover Card
1.0.0Major
[Breaking] Add new Portal part. To avoid regressions, use this part if you want portalling behavior. Note that z-index isn't managed anymore so you have full control of layering. – #1426
[Breaking] Remove allowPinchZoom prop, now defaults to true– #1514
[Breaking] Add new Portal part. To avoid regressions, use this part if you want portalling behavior. Note that z-index isn't managed anymore so you have full control of layering. – #1425
[Breaking] Rename collisionTolerance to collisionPadding on Content part and accepts a number or a padding object – #1531
Add collisionBoundary, arrowPadding, sticky, hideWhenDetached props on Content part – #1531
Portal
1.0.0Major
[Breaking] Note that z-index isn't managed anymore so you have full control of layering. The prop to provide a custom container evolves from containerRef (ref) to container (element). The data-radix-portal was removed because you can use asChild to control the element. – #1463
[Breaking] Renamed data-state values from active|inactive to checked|unchecked– #1388
[Breaking] Add new Portal part. To avoid regressions, use this part if you want portalling behavior. Note that z-index isn't managed anymore so you have full control of layering. – #1459
Fix position breaking when using asChild on Select.Content– #1245
Improve trigger/content alignment when Select.Content has padding – #1312
Fix trigger/content alignment when there are less than 5 items – #1355
Support trigger/content alignment when no value is provided – #1379
Add data-highlighted attribute to support styling – #1388
Add support for placeholder via placeholder prop on Select.Value– #1384
Resolve value mismatch with underlying native select – #1421
Slot
1.0.0Major
Fix issue with children ordering when using Slottable– #1376
Tabs
1.0.0Major
Add support for lifecycle animation to Tabs.Content– #1346
Toast
1.0.0Major
[Breaking] The default toast order has changed, they now render top to bottom from oldest to newest – #1469
Improve Typescript types when using asChild– #1300
Fix issue with toast reordering when updating React's key prop – #1283
Improve compatability with animation libraries – #1468
Tooltip
1.0.0Major
[Breaking] Add new Portal part. To avoid regressions, use this part if you want portalling behavior. Note that z-index isn't managed anymore so you have full control of layering. – #1427
[Breaking] By default Tooltip.Content will remain open when hovering (WCAG 2.1 Content on Hover compliance). disableHoverableContent can be supplied to Tooltip.Provider to restore previous behavior – #1490
[Breaking]side on Tooltip.Content now defaults to top– #1490
[Breaking]Tooltip.Provider is now required, you must wrap your app to avoid regressions. – #1490
[Breaking]Dialog.Title is now a required part so will throw an error if not used. aria-describedby={undefined} must be passed to Dialog.Content if no description is needed. – #1098
Dropdown Menu
0.1.6
Improve composability with Dialog/AlertDialog– #1097
Prevent clicking trigger to close from immediately reopening in non-modal mode – #1059
Prevent DropdownMenu.TriggerItem click from firing twice – #1057
This release focuses on React 18 support and introduces a number of breaking changes to some packages, mostly related to portalling dialogs.
All primitives
[Breaking] Deprecate IdProvider. Improves support for React 18 going forward and is no longer needed in older versions. Remove from your app to avoid deprecation warnings. – #1006
[Breaking]type=“single”Accordion now has a new collapsible prop which is false by default. This means that the default behavior has now changed. By default a user cannot close all items. – #651
Alert Dialog
0.0.18Major
[Breaking] Allow preventing default in onPointerDownOutside without inadvertently preventing focus – #654
Checkbox
0.0.16Major
[Breaking]onCheckedChange(event) is now onCheckedChange(checked: CheckedState)– #672
Improve compatibility with native form validation – #650
Allow stopping propagation on CheckboxonClick– #672
[Breaking] If you had sideOffset on ContextMenu.Content before, you should now use alignOffset. This is to standardize vertical alignment for both root and sub-menus. – #712
[Breaking]onFocusOutside is now a custom event – #671
Improve support of content and item with no padding – #658
Align with WAI-ARIA spec by focusing first item when opening via keyboard – #694
Dialog
0.0.18Major
[Breaking] Allow preventing default in onPointerDownOutside without inadvertently preventing focus – #654
[Breaking] Remove overflowX and overflowY props – #624
[Breaking] Remove ScrollAreaButtonStart, ScrollAreaButtonEnd and ScrollAreaTrack– #624
[Breaking] Rename scrollbarVisibility prop to type. The values are auto, always, scroll or hover– #624
[Breaking] Rename scrollbarVisibilityRestTimeout prop to scrollHideDelay– #624
[Breaking] Remove trackClickBehavior prop as we've removed built-in animation. Clicking on track always snaps to pointer position – #624
[Breaking]ScrollAreaScrollbarX and ScrollAreaScrollbarY are now <ScrollAreaScrollbar orientation="horizontal" /> and <ScrollAreaScrollbar orientation="vertical" />– #624
Ensure no scrollbars are shown when scrolling is disabled – #624