Skip to content

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

Open
mainframev wants to merge 4 commits into
microsoft: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 into
microsoft: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
402.548 kB
125.863 kB
403.296 kB
126.089 kB
748 B
226 B
react-charts
DeclarativeChart
753.304 kB
220.052 kB
754.052 kB
220.264 kB
748 B
212 B
react-charts
DonutChart
312.961 kB
96.495 kB
313.709 kB
96.697 kB
748 B
202 B
react-charts
FunnelChart
304.508 kB
93.326 kB
305.256 kB
93.534 kB
748 B
208 B
react-charts
GanttChart
385.649 kB
120.152 kB
386.397 kB
120.405 kB
748 B
253 B
react-charts
GaugeChart
312.394 kB
95.948 kB
313.142 kB
96.145 kB
748 B
197 B
react-charts
GroupedVerticalBarChart
393.525 kB
122.894 kB
394.273 kB
123.139 kB
748 B
245 B
react-charts
HeatMapChart
387.728 kB
121.263 kB
388.476 kB
121.496 kB
748 B
233 B
react-charts
HorizontalBarChart
292.691 kB
89.04 kB
293.439 kB
89.287 kB
748 B
247 B
react-charts
Legends
232.228 kB
69.849 kB
232.972 kB
70.071 kB
744 B
222 B
react-charts
LineChart
413.882 kB
128.765 kB
414.63 kB
128.978 kB
748 B
213 B
react-charts
PolarChart
341.357 kB
106.417 kB
342.105 kB
106.641 kB
748 B
224 B
react-charts
ScatterChart
393.264 kB
122.86 kB
394.012 kB
123.116 kB
748 B
256 B
react-charts
VerticalBarChart
430.006 kB
127.714 kB
430.754 kB
127.972 kB
748 B
258 B
react-charts
VerticalStackedBarChart
399.53 kB
124.283 kB
400.278 kB
124.515 kB
748 B
232 B
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
226.994 kB
68.166 kB
227.742 kB
68.407 kB
748 B
241 B
react-components
react-components: entire library
1.292 MB
324.681 kB
1.293 MB
324.946 kB
734 B
265 B
react-menu
Menu (including children components)
160.425 kB
50.891 kB
161.169 kB
51.129 kB
744 B
238 B
react-menu
Menu (including selectable components)
163.603 kB
51.535 kB
164.347 kB
51.761 kB
744 B
226 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
107.577 kB
31.646 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.546 kB
54.381 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.613 kB
35.351 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 0307f02ca1bc383b15fca2c2dc62ba2113fd7c5f

@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/Avatar Converged 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Avatar Converged.badgeMask - RTL.normal.chromium.png 6 Changed
vr-tests-react-components/Avatar Converged.badgeMask.normal.chromium.png 5 Changed
vr-tests-react-components/Charts-DonutChart 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Charts-DonutChart.Dynamic.default.chromium.png 5581 Changed
vr-tests-react-components/Positioning 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Positioning.Positioning end.updated 2 times.chromium.png 70 Changed
vr-tests-react-components/Positioning.Positioning end.chromium.png 14 Changed
vr-tests-react-components/ProgressBar converged 3 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - Dark Mode.default.chromium.png 69 Changed
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - High Contrast.default.chromium.png 135 Changed
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness.default.chromium.png 103 Changed
vr-tests-react-components/TagPicker 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/TagPicker.disabled - Dark Mode.chromium.png 658 Changed

There were 1 duplicate changes discarded. Check the build logs for more information.

@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