Releases: radix-ng/primitives
Releases · radix-ng/primitives
primitives@0.50.0
0.50.0 (2025-10-13)
🚀 Features
- checkbox: checked as model (ef0e4e1)
❤️ Thank You
- Oleg Pimenov @pimenovoleg
primitives@0.44.0 (@floating-ui/dom)
0.44.0 (2025-10-12)
🚀 Features
- added Tooltip v2 based on floating-ui and Dismissable layer (#367)
- added Popper primitive (#366)
- checkbox: added readonly property (33f8a82)
- experimentalZoneless is on (9b47489)
- radix-storybook: migrated to vite and supported TailwindCSS 4 (#364)
- roving-focus: updated to Signals (#362)
- checkbox: migrated to Signals (#361)
- updated Angular to 20.2, Storybook to 9.1 (#360)
- calendar: add getWeekNumber utility function (#358)
- number-field: support readonly (#357)
🩹 Fixes
- label: htmlFor attribute (937c7fa)
- visually-hidden: prevent causing unnecessary container scroll (d430553)
- core: compatibility for AM/PM switching (4eaabeb)
Checkbox markup/API updates
- Root directive added. The component now has a container directive, rdxCheckboxRoot, which owns state and wiring for its parts (button, input, indicator).
- More semantic anatomy. The checkbox is structured as:
- an interactive control: …
- a native form control:
- a visual indicator: <… rdxCheckboxIndicator />
- This improves accessibility and makes the checkbox participate correctly in forms.
Clear separation of concerns. rdxCheckboxButton handles user interaction, rdxCheckboxInput ensures proper form submission/focus behavior, and rdxCheckboxIndicator renders the checked/indeterminate visuals (icon-library agnostic; example uses lucide-angular).
What`s changes between Tooltip and Tooltip2
- New dependency. Positioning and collision etc. handling now rely on @floating-ui/dom.
- Portal-based rendering. Tooltip content is now mounted via rdxTooltipPortal with a [container] binding to a referenced template (#tooltipContent) that uses rdxTooltipPortalPresence. Previously, content was provided via ….
- New content structure. Content is wrapped with rdxTooltipContentWrapper, and the actual body uses rdxTooltipContent on an element inside the template (not on the template itself anymore).
- Arrow element change. The arrow moved inside the wrapper.
- Close button removed. The explicit close control () is no longer present.
- Directive cleanup. rdxTooltipContentAttributes was removed; related ad-hoc CSS classes (IconButton, TooltipContent, TooltipArrow) were also dropped from the example.
❤️ Thank You
- Oleg Pimenov @pimenovoleg
primitives@0.43.0
0.43.0 (2025-07-16)
🚀 Features
- navigation-menu: add
openOnHoverinput trigger to customize toggling the viewport (#356) - visually-hidden: refactor to signals and updated API (#355)
- new utilites – Focus Guards (b58ce01)
❤️ Thank You
- Josh Sullivan @jpsullivan
- Oleg Pimenov @pimenovoleg
primitives@0.42.0
0.42.0 (2025-07-06)
🚀 Features
- new utilites – FocusScope (#354)
❤️ Thank You
- Oleg Pimenov @pimenovoleg
primitives@0.41.0
0.41.0 (2025-07-04)
🚀 Features
- editable: added new primitive Editable (#353)
- dismissible-layer: added FocusOutside and PointerDownOutside utils (#352)
❤️ Thank You
- Oleg Pimenov @pimenovoleg
primitives@0.40.0
0.40.0 (2025-06-27)
🚀 Features
- time-field: added interval steps (#351)
🩹 Fixes
- update peerDependencies to support Angular 19 and 20 (#350)
- number-field: set value to undefined instead of NaN when clearing (ca96de6)
- createFormatter: respect hourCycle over locale for dayPeriod (#349)
- date-field: increment minutes/seconds on ARROW_UP/ARROW_DOWN (581cc98)
❤️ Thank You
- Josh Sullivan @jpsullivan
- Oleg Pimenov @pimenovoleg
primitives@0.39.5
primitives@0.39.4
primitives@0.39.3
0.39.3 (2025-06-08)
🩹 Fixes
- toggle-group: the model value was not undefined (#343)
- toggle: ensure open does not trigger when disabled (222f23d)
- slider: keys direction PageUp (5b93636)
❤️ Thank You
- Oleg Pimenov @pimenovoleg
- @ayush-seth
primitives@0.39.2
0.39.2 (2025-05-22)
🩹 Fixes
- navigation-menu: prevent accidental menu closing when clicking immediately after hover (#337)
- navigation-menu: clear viewport size when no active content node is present (#336)
❤️ Thank You
- Josh Sullivan @jpsullivan