Skip to content

@plone/components 4.0.0-alpha.7

Pre-release
Pre-release

Choose a tag to compare

@sneridagh sneridagh released this 16 Apr 15:21
· 698 commits to main since this release
e91fc03

4.0.0-alpha.7 (2026-04-16)

Breaking

  • Quanta Menu API cleanup

    The Quanta Menu component was refactored to behave as a thin wrapper around react-aria-components instead of exposing a custom data-driven API.

    Removed

    • The custom menuItems prop.
    • The bundled trigger API based on button, onPress, and placement props on Menu.
    • The internal item schema used to describe menu entries with fields such as label, description, keyboard, icon, separator, section, header, and nested children.
    • 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 title prop on MenuSection.

    Added

    • RAC-aligned Quanta primitives:
      • Menu
      • MenuItem
      • MenuTrigger
      • SubmenuTrigger
      • MenuSection
      • MenuSeparator

    Migration

    Consumers should now compose Quanta menus using the standard react-aria-components structure:

    • Wrap menus with MenuTrigger instead of passing trigger props to Menu.
    • Pass MenuItem, MenuSection, and MenuSeparator as children instead of a menuItems array.
    • Use Header inside MenuSection, or aria-label when there is no visible header, instead of a custom title prop.
    • Render icons, descriptions, labels, keyboard shortcuts, and links explicitly in MenuItem children using RAC patterns and slots.

    This removes opinionated behavior from Quanta Menu and makes the component API match upstream RAC usage more closely.

    The same alignment was also applied to the basic Menu component so both basic and Quanta flavours now follow the same RAC composition model.

    @sneridagh

Feature

Bugfix

Internal

  • Updated packages configuration for vite 8. @pnicolli
  • Updated the React Aria Components dependency set to react-aria-components 1.17.0 and aligned the related RAC packages. @sneridagh