Update and pin react-remove-scroll dependency version to avoid double scrollbar bugs in edge cases – #2776
Don’t scroll menu items in response to hover – #2451
Make sure that components that close on Escape key press capture the corresponding keyboard event. This way you can call stopPropagation in onEscapeKeyDown if you need more control rendering Radix components within another component that closes on Escape key press.
Make sure that components with roving focus do not interfere with browser or system hotkeys, such as back navigation – #2739
Make sure that components that support hideWhenDetached prop do not allow interactions with hidden content – #2743– #2745
Dialog
1.2.0
Log an error when an accessible title via the Dialog.Title part is missing – #2948
Log a warning when an accessible description via the Dialog.Description part is missing – #2948
Label
2.1.0
Make sure that the component doesn’t interfere when clicking on the spinner of a number input
[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