Skip to content

[menu][context menu] Add SubmenuRoot part #2042

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 16, 2025

Conversation

atomiks
Copy link
Contributor

@atomiks atomiks commented Jun 2, 2025

Closes #2038

Context Menu: https://deploy-preview-2042--base-ui.netlify.app/experiments/context-menu
Menu: https://deploy-preview-2042--base-ui.netlify.app/experiments/menu/complex-nesting

This allows ContextMenu to have a SubmenuTrigger part as it disambiguates a submenu from a new but nested root menu. Also should address cases where a Dialog trigger is a Menu item, with a nested Menu inside.

Copy link

pkg-pr-new bot commented Jun 2, 2025

Open in StackBlitz

npm i https://pkg.pr.new/@base-ui-components/react@2042

commit: 74d5239

Copy link

netlify bot commented Jun 2, 2025

Deploy Preview for base-ui ready!

Name Link
🔨 Latest commit 74d5239
🔍 Latest deploy log https://app.netlify.com/projects/base-ui/deploys/685023799b51b70008c9e976
😎 Deploy Preview https://deploy-preview-2042--base-ui.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@atomiks atomiks force-pushed the feat/menu-submenuroot branch from f132136 to 3d20d00 Compare June 2, 2025 13:00
@mui-bot
Copy link

mui-bot commented Jun 2, 2025

Bundle size report

Total Size Change: 🔺+1.38KB(+0.09%) - Total Gzip Change: 🔺+381B(+0.08%)
Files: 41 total (0 added, 0 removed, 3 changed)

Show details for 41 more bundles

@base-ui-components/react/context-menuparsed: 🔺+997B(+0.89%) gzip: 🔺+265B(+0.72%)
@base-ui-components/reactparsed: 🔺+214B(+0.07%) gzip: 🔺+51B(+0.05%)
@base-ui-components/react/menuparsed: 🔺+172B(+0.15%) gzip: 🔺+65B(+0.17%)
@base-ui-components/react/accordionparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/alert-dialogparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/avatarparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/checkboxparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/checkbox-groupparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/collapsibleparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/dialogparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/direction-providerparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/fieldparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/fieldsetparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/formparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/inputparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/menubarparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/merge-propsparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/meterparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/navigation-menuparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/number-fieldparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/popoverparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/preview-cardparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/progressparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/radioparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/radio-groupparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/scroll-areaparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/selectparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/separatorparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/sliderparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/switchparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/tabsparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/toastparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/toggleparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/toggle-groupparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/toolbarparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/tooltipparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/unstable-no-ssrparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/unstable-use-media-queryparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/use-renderparsed: 0B(0.00%) gzip: 0B(0.00%)
@base-ui-components/react/utilsparsed: 0B(0.00%) gzip: 0B(0.00%)
Base UI checkboxparsed: 0B(0.00%) gzip: 0B(0.00%)

Details of bundle changes

Generated by 🚫 dangerJS against 74d5239

@atomiks atomiks force-pushed the feat/menu-submenuroot branch from 05fb87f to 5c59c32 Compare June 2, 2025 13:03
@atomiks atomiks marked this pull request as ready for review June 2, 2025 13:08
@atomiks atomiks force-pushed the feat/menu-submenuroot branch from 5c59c32 to 4d3e099 Compare June 2, 2025 13:52
@atomiks atomiks force-pushed the feat/menu-submenuroot branch from 7f6e3fb to 23b3285 Compare June 3, 2025 04:04
@michaldudak
Copy link
Member

The Anatomy and Nested menu sections in the docs need an update.

@atomiks atomiks merged commit 441bc81 into mui:master Jun 16, 2025
21 checks passed
@atomiks atomiks deleted the feat/menu-submenuroot branch June 16, 2025 14:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[menu] Nested menu items do not respect closeOnClick={false} if root menu has openOnHover [context menu] Sub root part
3 participants