@plone/components 4.0.0-alpha.7
Pre-release
Pre-release
·
698 commits
to main
since this release
4.0.0-alpha.7 (2026-04-16)
Breaking
-
Quanta Menu API cleanup
The Quanta
Menucomponent was refactored to behave as a thin wrapper aroundreact-aria-componentsinstead of exposing a custom data-driven API.Removed
- The custom
menuItemsprop. - The bundled trigger API based on
button,onPress, andplacementprops onMenu. - The internal item schema used to describe menu entries with fields such as
label,description,keyboard,icon,separator,section,header, and nestedchildren. - Automatic rendering of sections and separators from that custom schema.
- Automatic rendering of text slots, icons, keyboard shortcuts, and similar item content from custom item objects.
- The custom
titleprop onMenuSection.
Added
- RAC-aligned Quanta primitives:
MenuMenuItemMenuTriggerSubmenuTriggerMenuSectionMenuSeparator
Migration
Consumers should now compose Quanta menus using the standard
react-aria-componentsstructure:- Wrap menus with
MenuTriggerinstead of passing trigger props toMenu. - Pass
MenuItem,MenuSection, andMenuSeparatoras children instead of amenuItemsarray. - Use
HeaderinsideMenuSection, oraria-labelwhen there is no visible header, instead of a customtitleprop. - Render icons, descriptions, labels, keyboard shortcuts, and links explicitly in
MenuItemchildren using RAC patterns and slots.
This removes opinionated behavior from Quanta
Menuand makes the component API match upstream RAC usage more closely.The same alignment was also applied to the basic
Menucomponent so both basic and Quanta flavours now follow the same RAC composition model. - The custom
Feature
- Icons for the Somersault editor support. @sneridagh #7921
- Update browserslist. @sneridagh #8106
Bugfix
- Updated to latest RAC 1.16.0. @sneridagh #8018
- Fixed Tabs panel font size. @sneridagh #8076
Internal
- Updated packages configuration for vite 8. @pnicolli
- Updated the React Aria Components dependency set to
react-aria-components1.17.0 and aligned the related RAC packages. @sneridagh