Skip to content

feat(react-menu): add more base hooks and expose them#36087

Open
mainframev wants to merge 4 commits intomicrosoft:masterfrom
mainframev:feat/react-menu-base-exports
Open

feat(react-menu): add more base hooks and expose them#36087
mainframev wants to merge 4 commits intomicrosoft:masterfrom
mainframev:feat/react-menu-base-exports

Conversation

@mainframev
Copy link
Copy Markdown
Contributor

@mainframev mainframev commented May 4, 2026

Exposes a set of headless *Base_unstable hooks across react-menu subcomponents. These hooks omit Tabster, motion, and Griffel-specific concerns.

Previous Behavior

Only useMenu_unstable, useMenuList_unstable, useMenuPopover_unstable, and the various useMenuItem*_unstable hooks were publicly exported. Tabster and motion could not be opted out.

New Behavior

A set of *Base_unstable hooks is now publicly exported across all react-menu subcomponents. The base hooks omit Tabster and motion, leaving behavior, ARIA, and selection state intact.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

📊 Bundle size report

Package & Exports Baseline (minified/GZIP) PR Change
react-charts
AreaChart
401.757 kB
125.687 kB
402.505 kB
125.935 kB
748 B
248 B
react-charts
DeclarativeChart
752.513 kB
219.844 kB
753.261 kB
220.056 kB
748 B
212 B
react-charts
DonutChart
312.17 kB
96.288 kB
312.918 kB
96.488 kB
748 B
200 B
react-charts
FunnelChart
303.717 kB
93.118 kB
304.465 kB
93.319 kB
748 B
201 B
react-charts
GanttChart
384.858 kB
119.954 kB
385.606 kB
120.21 kB
748 B
256 B
react-charts
GaugeChart
311.603 kB
95.74 kB
312.351 kB
95.939 kB
748 B
199 B
react-charts
GroupedVerticalBarChart
392.734 kB
122.697 kB
393.482 kB
122.937 kB
748 B
240 B
react-charts
HeatMapChart
386.937 kB
121.084 kB
387.685 kB
121.344 kB
748 B
260 B
react-charts
HorizontalBarChart
291.9 kB
88.873 kB
292.648 kB
89.141 kB
748 B
268 B
react-charts
Legends
231.437 kB
69.656 kB
232.181 kB
69.885 kB
744 B
229 B
react-charts
LineChart
413.091 kB
128.576 kB
413.839 kB
128.784 kB
748 B
208 B
react-charts
PolarChart
340.566 kB
106.213 kB
341.314 kB
106.44 kB
748 B
227 B
react-charts
ScatterChart
392.473 kB
122.669 kB
393.221 kB
122.923 kB
748 B
254 B
react-charts
VerticalBarChart
429.215 kB
127.535 kB
429.963 kB
127.798 kB
748 B
263 B
react-charts
VerticalStackedBarChart
398.739 kB
124.078 kB
399.487 kB
124.316 kB
748 B
238 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
226.203 kB
67.961 kB
226.951 kB
68.204 kB
748 B
243 B
react-components
react-components: entire library
1.291 MB
323.824 kB
1.292 MB
324.102 kB
734 B
278 B
react-menu
Menu (including children components)
159.634 kB
50.691 kB
160.378 kB
50.927 kB
744 B
236 B
react-menu
Menu (including selectable components)
162.812 kB
51.329 kB
163.556 kB
51.561 kB
744 B
232 B
Unchanged fixtures
Package & Exports Size (minified/GZIP)
react-avatar
Avatar
48.492 kB
15.379 kB
react-avatar
AvatarGroup
17.468 kB
6.999 kB
react-avatar
AvatarGroupItem
61.513 kB
19.251 kB
react-breadcrumb
@fluentui/react-breadcrumb - package
103.889 kB
29.167 kB
react-charts
HorizontalBarChartWithAxis
63 B
83 B
react-charts
SankeyChart
209.97 kB
67.042 kB
react-charts
Sparkline
80.503 kB
26.644 kB
react-components
react-components: Button, FluentProvider & webLightTheme
67.61 kB
19.536 kB
react-components
react-components: FluentProvider & webLightTheme
40.806 kB
13.616 kB
react-datepicker-compat
DatePicker Compat
214.121 kB
62.046 kB
react-dialog
Dialog (including children components)
91.172 kB
28.31 kB
react-headless-components-preview
react-headless-components-preview: entire library
105.261 kB
31.122 kB
react-overflow
hooks only
11.966 kB
4.565 kB
react-persona
Persona
55.447 kB
17.311 kB
react-popover
Popover
123.802 kB
39.735 kB
react-portal-compat
PortalCompatProvider
5.567 kB
2.237 kB
react-table
DataGrid
148.07 kB
44.013 kB
react-table
Table (Primitives only)
38.209 kB
12.782 kB
react-table
Table as DataGrid
119.815 kB
33.806 kB
react-table
Table (Selection only)
66.603 kB
19.023 kB
react-table
Table (Sort only)
65.246 kB
18.638 kB
react-tag-picker
@fluentui/react-tag-picker - package
174.502 kB
54.377 kB
react-tags
InteractionTag
13.742 kB
5.473 kB
react-tags
Tag
29.666 kB
9.433 kB
react-tags
TagGroup
71.009 kB
21.901 kB
react-teaching-popover
TeachingPopover
102.196 kB
32.335 kB
react-timepicker-compat
TimePicker
105.595 kB
35.567 kB
react-tree
FlatTree
136.789 kB
40.787 kB
react-tree
PersonaFlatTree
138.617 kB
41.303 kB
react-tree
PersonaTree
134.677 kB
40.086 kB
react-tree
Tree
132.855 kB
39.62 kB
🤖 This report was generated against f1e6a792f57be18492e2e0e1de7c96df10e91ac3

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

Pull request demo site: URL

@mainframev mainframev force-pushed the feat/react-menu-base-exports branch from 55790fa to 2718a07 Compare May 4, 2026 00:16
@@ -0,0 +1,7 @@
{
Copy link
Copy Markdown

@github-actions github-actions Bot May 4, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🕵🏾‍♀️ visual changes to review in the Visual Change Report

vr-tests-react-components/Charts-DonutChart 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Charts-DonutChart.Dynamic - Dark Mode.default.chromium.png 7530 Changed
vr-tests-react-components/Charts-DonutChart.Dynamic.default.chromium.png 5581 Changed
vr-tests-react-components/Menu Converged - submenuIndicator slotted content 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Menu Converged - submenuIndicator slotted content.default - RTL.submenus open.chromium.png 404 Changed
vr-tests-react-components/Positioning 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Positioning.Positioning end.chromium.png 606 Changed
vr-tests-react-components/Positioning.Positioning end.updated 2 times.chromium.png 315 Changed
vr-tests-react-components/ProgressBar converged 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - High Contrast.default.chromium.png 92 Changed
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness.default.chromium.png 27 Changed
vr-tests-react-components/Skeleton converged 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Skeleton converged.Opaque Skeleton with rectangle - Dark Mode.default.chromium.png 4 Changed

@mainframev mainframev force-pushed the feat/react-menu-base-exports branch from 2718a07 to 29d2565 Compare May 5, 2026 09:05
@mainframev mainframev force-pushed the feat/react-menu-base-exports branch from 29d2565 to 1cdc337 Compare May 5, 2026 09:42
@mainframev mainframev marked this pull request as ready for review May 5, 2026 09:47
@mainframev mainframev requested a review from a team as a code owner May 5, 2026 09:47
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.

1 participant