@fluentui/react-menu 9.18.0 → 9.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +15 -2
  2. package/lib/components/MenuDivider/useMenuDividerStyles.styles.raw.js +18 -0
  3. package/lib/components/MenuDivider/useMenuDividerStyles.styles.raw.js.map +1 -0
  4. package/lib/components/MenuGroup/useMenuGroupStyles.styles.raw.js +9 -0
  5. package/lib/components/MenuGroup/useMenuGroupStyles.styles.raw.js.map +1 -0
  6. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.raw.js +23 -0
  7. package/lib/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.raw.js.map +1 -0
  8. package/lib/components/MenuItem/useMenuItemStyles.styles.raw.js +241 -0
  9. package/lib/components/MenuItem/useMenuItemStyles.styles.raw.js.map +1 -0
  10. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.raw.js +33 -0
  11. package/lib/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.raw.js.map +1 -0
  12. package/lib/components/MenuItemLink/useMenuItemLinkStyles.styles.raw.js +40 -0
  13. package/lib/components/MenuItemLink/useMenuItemLinkStyles.styles.raw.js.map +1 -0
  14. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.styles.raw.js +32 -0
  15. package/lib/components/MenuItemRadio/useMenuItemRadioStyles.styles.raw.js.map +1 -0
  16. package/lib/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.raw.js +117 -0
  17. package/lib/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.raw.js.map +1 -0
  18. package/lib/components/MenuList/useMenuListStyles.styles.raw.js +22 -0
  19. package/lib/components/MenuList/useMenuListStyles.styles.raw.js.map +1 -0
  20. package/lib/components/MenuPopover/useMenuPopoverStyles.styles.raw.js +31 -0
  21. package/lib/components/MenuPopover/useMenuPopoverStyles.styles.raw.js.map +1 -0
  22. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.raw.js +42 -0
  23. package/lib/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.raw.js.map +1 -0
  24. package/lib/selectable/useCheckmarkStyles.styles.raw.js +24 -0
  25. package/lib/selectable/useCheckmarkStyles.styles.raw.js.map +1 -0
  26. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.styles.raw.js +36 -0
  27. package/lib-commonjs/components/MenuDivider/useMenuDividerStyles.styles.raw.js.map +1 -0
  28. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.styles.raw.js +27 -0
  29. package/lib-commonjs/components/MenuGroup/useMenuGroupStyles.styles.raw.js.map +1 -0
  30. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.raw.js +41 -0
  31. package/lib-commonjs/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.raw.js.map +1 -0
  32. package/lib-commonjs/components/MenuItem/useMenuItemStyles.styles.raw.js +259 -0
  33. package/lib-commonjs/components/MenuItem/useMenuItemStyles.styles.raw.js.map +1 -0
  34. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.raw.js +51 -0
  35. package/lib-commonjs/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.raw.js.map +1 -0
  36. package/lib-commonjs/components/MenuItemLink/useMenuItemLinkStyles.styles.raw.js +56 -0
  37. package/lib-commonjs/components/MenuItemLink/useMenuItemLinkStyles.styles.raw.js.map +1 -0
  38. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.styles.raw.js +50 -0
  39. package/lib-commonjs/components/MenuItemRadio/useMenuItemRadioStyles.styles.raw.js.map +1 -0
  40. package/lib-commonjs/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.raw.js +136 -0
  41. package/lib-commonjs/components/MenuItemSwitch/useMenuItemSwitchStyles.styles.raw.js.map +1 -0
  42. package/lib-commonjs/components/MenuList/useMenuListStyles.styles.raw.js +38 -0
  43. package/lib-commonjs/components/MenuList/useMenuListStyles.styles.raw.js.map +1 -0
  44. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.styles.raw.js +47 -0
  45. package/lib-commonjs/components/MenuPopover/useMenuPopoverStyles.styles.raw.js.map +1 -0
  46. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.raw.js +61 -0
  47. package/lib-commonjs/components/MenuSplitGroup/useMenuSplitGroupStyles.styles.raw.js.map +1 -0
  48. package/lib-commonjs/selectable/useCheckmarkStyles.styles.raw.js +30 -0
  49. package/lib-commonjs/selectable/useCheckmarkStyles.styles.raw.js.map +1 -0
  50. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,12 +1,25 @@
1
1
  # Change Log - @fluentui/react-menu
2
2
 
3
- This log was last generated on Fri, 11 Jul 2025 15:56:55 GMT and should not be manually modified.
3
+ This log was last generated on Thu, 17 Jul 2025 13:45:41 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
+ ## [9.19.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-menu_v9.19.0)
8
+
9
+ Thu, 17 Jul 2025 13:45:41 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-menu_v9.18.0..@fluentui/react-menu_v9.19.0)
11
+
12
+ ### Minor changes
13
+
14
+ - feat: enable griffel raw styles ([PR #34853](https://github.com/microsoft/fluentui/pull/34853) by martinhochel@microsoft.com)
15
+ - Bump @fluentui/react-aria to v9.15.4 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
16
+ - Bump @fluentui/react-portal to v9.7.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
17
+ - Bump @fluentui/react-positioning to v9.20.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
18
+ - Bump @fluentui/react-tabster to v9.26.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
19
+
7
20
  ## [9.18.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-menu_v9.18.0)
8
21
 
9
- Fri, 11 Jul 2025 15:56:55 GMT
22
+ Fri, 11 Jul 2025 15:59:22 GMT
10
23
  [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-menu_v9.17.6..@fluentui/react-menu_v9.18.0)
11
24
 
12
25
  ### Minor changes
@@ -0,0 +1,18 @@
1
+ import { mergeClasses, makeStyles } from '@griffel/react';
2
+ import { tokens } from '@fluentui/react-theme';
3
+ export const menuDividerClassNames = {
4
+ root: 'fui-MenuDivider'
5
+ };
6
+ const useStyles = makeStyles({
7
+ root: {
8
+ margin: '4px -5px 4px -5px',
9
+ width: 'auto',
10
+ borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke2}`
11
+ }
12
+ });
13
+ export const useMenuDividerStyles_unstable = (state)=>{
14
+ 'use no memo';
15
+ const styles = useStyles();
16
+ state.root.className = mergeClasses(menuDividerClassNames.root, styles.root, state.root.className);
17
+ return state;
18
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MenuDivider/useMenuDividerStyles.styles.ts"],"sourcesContent":["import { mergeClasses, makeStyles } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { MenuDividerSlots, MenuDividerState } from './MenuDivider.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const menuDividerClassNames: SlotClassNames<MenuDividerSlots> = {\n root: 'fui-MenuDivider',\n};\n\nconst useStyles = makeStyles({\n root: {\n margin: '4px -5px 4px -5px',\n width: 'auto',\n borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke2}`,\n },\n});\n\nexport const useMenuDividerStyles_unstable = (state: MenuDividerState) => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(menuDividerClassNames.root, styles.root, state.root.className);\n\n return state;\n};\n"],"names":["mergeClasses","makeStyles","tokens","menuDividerClassNames","root","useStyles","margin","width","borderBottom","strokeWidthThin","colorNeutralStroke2","useMenuDividerStyles_unstable","state","styles","className"],"rangeMappings":";;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,YAAY,EAAEC,UAAU,QAAQ,iBAAiB;AAC1D,SAASC,MAAM,QAAQ,wBAAwB;AAI/C,OAAO,MAAMC,wBAA0D;IACrEC,MAAM;AACR,EAAE;AAEF,MAAMC,YAAYJ,WAAW;IAC3BG,MAAM;QACJE,QAAQ;QACRC,OAAO;QACPC,cAAc,CAAC,EAAEN,OAAOO,eAAe,CAAC,OAAO,EAAEP,OAAOQ,mBAAmB,CAAC,CAAC;IAC/E;AACF;AAEA,OAAO,MAAMC,gCAAgC,CAACC;IAC5C;IAEA,MAAMC,SAASR;IACfO,MAAMR,IAAI,CAACU,SAAS,GAAGd,aAAaG,sBAAsBC,IAAI,EAAES,OAAOT,IAAI,EAAEQ,MAAMR,IAAI,CAACU,SAAS;IAEjG,OAAOF;AACT,EAAE"}
@@ -0,0 +1,9 @@
1
+ import { mergeClasses } from '@griffel/react';
2
+ export const menuGroupClassNames = {
3
+ root: 'fui-MenuGroup'
4
+ };
5
+ export const useMenuGroupStyles_unstable = (state)=>{
6
+ 'use no memo';
7
+ state.root.className = mergeClasses(menuGroupClassNames.root, state.root.className);
8
+ return state;
9
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MenuGroup/useMenuGroupStyles.styles.ts"],"sourcesContent":["import type { SlotClassNames } from '@fluentui/react-utilities';\nimport { mergeClasses } from '@griffel/react';\nimport type { MenuGroupSlots, MenuGroupState } from './MenuGroup.types';\n\nexport const menuGroupClassNames: SlotClassNames<MenuGroupSlots> = {\n root: 'fui-MenuGroup',\n};\n\nexport const useMenuGroupStyles_unstable = (state: MenuGroupState): MenuGroupState => {\n 'use no memo';\n\n state.root.className = mergeClasses(menuGroupClassNames.root, state.root.className);\n\n return state;\n};\n"],"names":["mergeClasses","menuGroupClassNames","root","useMenuGroupStyles_unstable","state","className"],"rangeMappings":";;;;;;;;","mappings":"AACA,SAASA,YAAY,QAAQ,iBAAiB;AAG9C,OAAO,MAAMC,sBAAsD;IACjEC,MAAM;AACR,EAAE;AAEF,OAAO,MAAMC,8BAA8B,CAACC;IAC1C;IAEAA,MAAMF,IAAI,CAACG,SAAS,GAAGL,aAAaC,oBAAoBC,IAAI,EAAEE,MAAMF,IAAI,CAACG,SAAS;IAElF,OAAOD;AACT,EAAE"}
@@ -0,0 +1,23 @@
1
+ import { mergeClasses, makeStyles } from '@griffel/react';
2
+ import { tokens } from '@fluentui/react-theme';
3
+ export const menuGroupHeaderClassNames = {
4
+ root: 'fui-MenuGroupHeader'
5
+ };
6
+ const useStyles = makeStyles({
7
+ root: {
8
+ fontSize: tokens.fontSizeBase200,
9
+ color: tokens.colorNeutralForeground3,
10
+ paddingLeft: '8px',
11
+ paddingRight: '8px',
12
+ fontWeight: tokens.fontWeightSemibold,
13
+ height: '32px',
14
+ display: 'flex',
15
+ alignItems: 'center'
16
+ }
17
+ });
18
+ export const useMenuGroupHeaderStyles_unstable = (state)=>{
19
+ 'use no memo';
20
+ const styles = useStyles();
21
+ state.root.className = mergeClasses(menuGroupHeaderClassNames.root, styles.root, state.root.className);
22
+ return state;
23
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MenuGroupHeader/useMenuGroupHeaderStyles.styles.ts"],"sourcesContent":["import { mergeClasses, makeStyles } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { MenuGroupHeaderSlots, MenuGroupHeaderState } from './MenuGroupHeader.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const menuGroupHeaderClassNames: SlotClassNames<MenuGroupHeaderSlots> = {\n root: 'fui-MenuGroupHeader',\n};\n\nconst useStyles = makeStyles({\n root: {\n fontSize: tokens.fontSizeBase200,\n color: tokens.colorNeutralForeground3,\n paddingLeft: '8px',\n paddingRight: '8px',\n fontWeight: tokens.fontWeightSemibold,\n height: '32px',\n display: 'flex',\n alignItems: 'center',\n },\n});\n\nexport const useMenuGroupHeaderStyles_unstable = (state: MenuGroupHeaderState) => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(menuGroupHeaderClassNames.root, styles.root, state.root.className);\n\n return state;\n};\n"],"names":["mergeClasses","makeStyles","tokens","menuGroupHeaderClassNames","root","useStyles","fontSize","fontSizeBase200","color","colorNeutralForeground3","paddingLeft","paddingRight","fontWeight","fontWeightSemibold","height","display","alignItems","useMenuGroupHeaderStyles_unstable","state","styles","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,YAAY,EAAEC,UAAU,QAAQ,iBAAiB;AAC1D,SAASC,MAAM,QAAQ,wBAAwB;AAI/C,OAAO,MAAMC,4BAAkE;IAC7EC,MAAM;AACR,EAAE;AAEF,MAAMC,YAAYJ,WAAW;IAC3BG,MAAM;QACJE,UAAUJ,OAAOK,eAAe;QAChCC,OAAON,OAAOO,uBAAuB;QACrCC,aAAa;QACbC,cAAc;QACdC,YAAYV,OAAOW,kBAAkB;QACrCC,QAAQ;QACRC,SAAS;QACTC,YAAY;IACd;AACF;AAEA,OAAO,MAAMC,oCAAoC,CAACC;IAChD;IAEA,MAAMC,SAASd;IACfa,MAAMd,IAAI,CAACgB,SAAS,GAAGpB,aAAaG,0BAA0BC,IAAI,EAAEe,OAAOf,IAAI,EAAEc,MAAMd,IAAI,CAACgB,SAAS;IAErG,OAAOF;AACT,EAAE"}
@@ -0,0 +1,241 @@
1
+ import { mergeClasses, makeStyles, makeResetStyles } from '@griffel/react';
2
+ import { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';
3
+ import { createFocusOutlineStyle } from '@fluentui/react-tabster';
4
+ import { tokens, typographyStyles } from '@fluentui/react-theme';
5
+ import { useCheckmarkStyles_unstable } from '../../selectable/index';
6
+ export const menuItemClassNames = {
7
+ root: 'fui-MenuItem',
8
+ icon: 'fui-MenuItem__icon',
9
+ checkmark: 'fui-MenuItem__checkmark',
10
+ submenuIndicator: 'fui-MenuItem__submenuIndicator',
11
+ content: 'fui-MenuItem__content',
12
+ secondaryContent: 'fui-MenuItem__secondaryContent',
13
+ subText: 'fui-MenuItem__subText'
14
+ };
15
+ const useRootBaseStyles = makeResetStyles({
16
+ borderRadius: tokens.borderRadiusMedium,
17
+ position: 'relative',
18
+ color: tokens.colorNeutralForeground2,
19
+ backgroundColor: tokens.colorNeutralBackground1,
20
+ paddingRight: tokens.spacingVerticalSNudge,
21
+ paddingLeft: tokens.spacingVerticalSNudge,
22
+ paddingTop: tokens.spacingVerticalSNudge,
23
+ paddingBottom: tokens.spacingVerticalSNudge,
24
+ boxSizing: 'border-box',
25
+ maxWidth: '290px',
26
+ minHeight: '32px',
27
+ flexShrink: 0,
28
+ display: 'flex',
29
+ alignItems: 'start',
30
+ fontSize: tokens.fontSizeBase300,
31
+ cursor: 'pointer',
32
+ gap: '4px',
33
+ ':hover': {
34
+ backgroundColor: tokens.colorNeutralBackground1Hover,
35
+ color: tokens.colorNeutralForeground2Hover,
36
+ [`& .${iconFilledClassName}`]: {
37
+ display: 'inline'
38
+ },
39
+ [`& .${iconRegularClassName}`]: {
40
+ display: 'none'
41
+ },
42
+ [`& .${menuItemClassNames.icon}`]: {
43
+ color: tokens.colorNeutralForeground2BrandSelected
44
+ },
45
+ [`& .${menuItemClassNames.subText}`]: {
46
+ color: tokens.colorNeutralForeground3Hover
47
+ }
48
+ },
49
+ ':hover:active': {
50
+ backgroundColor: tokens.colorNeutralBackground1Pressed,
51
+ color: tokens.colorNeutralForeground2Pressed,
52
+ [`& .${menuItemClassNames.subText}`]: {
53
+ color: tokens.colorNeutralForeground3Pressed
54
+ }
55
+ },
56
+ // High contrast styles
57
+ '@media (forced-colors: active)': {
58
+ ':hover': {
59
+ backgroundColor: 'Canvas',
60
+ borderColor: 'Highlight',
61
+ color: 'Highlight'
62
+ },
63
+ ...createFocusOutlineStyle({
64
+ style: {
65
+ outlineColor: 'Highlight'
66
+ }
67
+ })
68
+ },
69
+ userSelect: 'none',
70
+ ...createFocusOutlineStyle()
71
+ });
72
+ const useContentBaseStyles = makeResetStyles({
73
+ paddingLeft: '2px',
74
+ paddingRight: '2px',
75
+ backgroundColor: 'transparent',
76
+ flexGrow: 1
77
+ });
78
+ const useSecondaryContentBaseStyles = makeResetStyles({
79
+ paddingLeft: '2px',
80
+ paddingRight: '2px',
81
+ ...typographyStyles.caption1,
82
+ lineHeight: tokens.lineHeightBase300,
83
+ color: tokens.colorNeutralForeground3,
84
+ ':hover': {
85
+ color: tokens.colorNeutralForeground3Hover
86
+ },
87
+ ':focus': {
88
+ color: tokens.colorNeutralForeground3Hover
89
+ }
90
+ });
91
+ const useIconBaseStyles = makeResetStyles({
92
+ width: '20px',
93
+ height: '20px',
94
+ fontSize: '20px',
95
+ lineHeight: 0,
96
+ alignItems: 'center',
97
+ display: 'inline-flex',
98
+ justifyContent: 'center',
99
+ flexShrink: 0
100
+ });
101
+ const useSubmenuIndicatorBaseStyles = makeResetStyles({
102
+ width: '20px',
103
+ height: '20px',
104
+ fontSize: '20px',
105
+ lineHeight: 0,
106
+ alignItems: 'center',
107
+ display: 'inline-flex',
108
+ justifyContent: 'center'
109
+ });
110
+ const useSubtextBaseStyles = makeResetStyles({
111
+ ...typographyStyles.caption2,
112
+ color: tokens.colorNeutralForeground3
113
+ });
114
+ const useStyles = makeStyles({
115
+ checkmark: {
116
+ marginTop: '2px'
117
+ },
118
+ splitItemMain: {
119
+ flexGrow: 1
120
+ },
121
+ splitItemTrigger: {
122
+ borderTopLeftRadius: 0,
123
+ borderBottomLeftRadius: 0,
124
+ paddingLeft: 0,
125
+ '::before': {
126
+ content: '""',
127
+ width: tokens.strokeWidthThin,
128
+ height: '24px',
129
+ backgroundColor: tokens.colorNeutralStroke1
130
+ }
131
+ },
132
+ disabled: {
133
+ color: tokens.colorNeutralForegroundDisabled,
134
+ ':hover': {
135
+ color: tokens.colorNeutralForegroundDisabled,
136
+ backgroundColor: tokens.colorNeutralBackground1,
137
+ cursor: 'not-allowed',
138
+ [`& .${iconFilledClassName}`]: {
139
+ display: 'none'
140
+ },
141
+ [`& .${iconRegularClassName}`]: {
142
+ display: 'inline'
143
+ },
144
+ [`& .${menuItemClassNames.icon}`]: {
145
+ color: tokens.colorNeutralForegroundDisabled
146
+ },
147
+ [`& .${menuItemClassNames.subText}`]: {
148
+ color: tokens.colorNeutralForegroundDisabled
149
+ }
150
+ },
151
+ ':hover:active': {
152
+ color: tokens.colorNeutralForegroundDisabled,
153
+ backgroundColor: tokens.colorNeutralBackground1,
154
+ [`& .${menuItemClassNames.subText}`]: {
155
+ color: tokens.colorNeutralForegroundDisabled
156
+ }
157
+ },
158
+ ':focus': {
159
+ color: tokens.colorNeutralForegroundDisabled
160
+ },
161
+ '@media (forced-colors: active)': {
162
+ color: 'GrayText',
163
+ ':hover': {
164
+ color: 'GrayText',
165
+ backgroundColor: 'Canvas',
166
+ [`& .${menuItemClassNames.icon}`]: {
167
+ color: 'GrayText',
168
+ backgroundColor: 'Canvas'
169
+ },
170
+ [`& .${menuItemClassNames.subText}`]: {
171
+ color: 'GrayText'
172
+ }
173
+ },
174
+ ':hover:active': {
175
+ color: 'GrayText',
176
+ backgroundColor: 'Canvas',
177
+ [`& .${menuItemClassNames.subText}`]: {
178
+ color: 'GrayText'
179
+ }
180
+ },
181
+ ':focus': {
182
+ color: 'GrayText',
183
+ backgroundColor: 'Canvas'
184
+ }
185
+ }
186
+ }
187
+ });
188
+ const useSubTextStyles = makeStyles({
189
+ disabled: {
190
+ color: tokens.colorNeutralForegroundDisabled,
191
+ '@media (forced-colors: active)': {
192
+ color: 'GrayText'
193
+ }
194
+ }
195
+ });
196
+ const useMultilineStyles = makeStyles({
197
+ content: {
198
+ display: 'flex',
199
+ flexDirection: 'column'
200
+ },
201
+ secondaryContent: {
202
+ alignSelf: 'center'
203
+ },
204
+ submenuIndicator: {
205
+ alignSelf: 'center'
206
+ }
207
+ });
208
+ /** Applies style classnames to slots */ export const useMenuItemStyles_unstable = (state)=>{
209
+ 'use no memo';
210
+ const styles = useStyles();
211
+ const rootBaseStyles = useRootBaseStyles();
212
+ const contentBaseStyles = useContentBaseStyles();
213
+ const secondaryContentBaseStyles = useSecondaryContentBaseStyles();
214
+ const iconBaseStyles = useIconBaseStyles();
215
+ const submenuIndicatorBaseStyles = useSubmenuIndicatorBaseStyles();
216
+ const multilineStyles = useMultilineStyles();
217
+ const subtextBaseStyles = useSubtextBaseStyles();
218
+ const subTextStyles = useSubTextStyles();
219
+ const multiline = !!state.subText;
220
+ state.root.className = mergeClasses(menuItemClassNames.root, rootBaseStyles, state.disabled && styles.disabled, state.root.className);
221
+ if (state.content) {
222
+ state.content.className = mergeClasses(menuItemClassNames.content, contentBaseStyles, state.content.className, multiline && multilineStyles.content);
223
+ }
224
+ if (state.checkmark) {
225
+ state.checkmark.className = mergeClasses(menuItemClassNames.checkmark, styles.checkmark, state.checkmark.className);
226
+ }
227
+ if (state.secondaryContent) {
228
+ state.secondaryContent.className = mergeClasses(menuItemClassNames.secondaryContent, secondaryContentBaseStyles, state.disabled && styles.disabled, state.secondaryContent.className, multiline && multilineStyles.secondaryContent);
229
+ }
230
+ if (state.icon) {
231
+ state.icon.className = mergeClasses(menuItemClassNames.icon, iconBaseStyles, state.icon.className);
232
+ }
233
+ if (state.submenuIndicator) {
234
+ state.submenuIndicator.className = mergeClasses(menuItemClassNames.submenuIndicator, submenuIndicatorBaseStyles, state.submenuIndicator.className, multiline && multilineStyles.submenuIndicator);
235
+ }
236
+ if (state.subText) {
237
+ state.subText.className = mergeClasses(menuItemClassNames.subText, state.disabled && subTextStyles.disabled, state.subText.className, subtextBaseStyles);
238
+ }
239
+ useCheckmarkStyles_unstable(state);
240
+ return state;
241
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MenuItem/useMenuItemStyles.styles.ts"],"sourcesContent":["import { mergeClasses, makeStyles, makeResetStyles } from '@griffel/react';\nimport { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';\nimport { createFocusOutlineStyle } from '@fluentui/react-tabster';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport { useCheckmarkStyles_unstable } from '../../selectable/index';\nimport type { MenuItemCheckboxState } from '../MenuItemCheckbox/index';\nimport type { MenuItemSlots, MenuItemState } from './MenuItem.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nexport const menuItemClassNames: SlotClassNames<MenuItemSlots> = {\n root: 'fui-MenuItem',\n icon: 'fui-MenuItem__icon',\n checkmark: 'fui-MenuItem__checkmark',\n submenuIndicator: 'fui-MenuItem__submenuIndicator',\n content: 'fui-MenuItem__content',\n secondaryContent: 'fui-MenuItem__secondaryContent',\n subText: 'fui-MenuItem__subText',\n};\n\nconst useRootBaseStyles = makeResetStyles({\n borderRadius: tokens.borderRadiusMedium,\n position: 'relative',\n color: tokens.colorNeutralForeground2,\n backgroundColor: tokens.colorNeutralBackground1,\n paddingRight: tokens.spacingVerticalSNudge, // 6px\n paddingLeft: tokens.spacingVerticalSNudge,\n paddingTop: tokens.spacingVerticalSNudge,\n paddingBottom: tokens.spacingVerticalSNudge,\n boxSizing: 'border-box',\n maxWidth: '290px',\n minHeight: '32px',\n flexShrink: 0,\n display: 'flex',\n alignItems: 'start',\n fontSize: tokens.fontSizeBase300,\n cursor: 'pointer',\n gap: '4px',\n\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n color: tokens.colorNeutralForeground2Hover,\n\n [`& .${iconFilledClassName}`]: {\n display: 'inline',\n },\n [`& .${iconRegularClassName}`]: {\n display: 'none',\n },\n [`& .${menuItemClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2BrandSelected,\n },\n\n [`& .${menuItemClassNames.subText}`]: {\n color: tokens.colorNeutralForeground3Hover,\n },\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorNeutralBackground1Pressed,\n color: tokens.colorNeutralForeground2Pressed,\n\n [`& .${menuItemClassNames.subText}`]: {\n color: tokens.colorNeutralForeground3Pressed,\n },\n },\n\n // High contrast styles\n '@media (forced-colors: active)': {\n ':hover': {\n backgroundColor: 'Canvas',\n borderColor: 'Highlight',\n color: 'Highlight',\n },\n ...createFocusOutlineStyle({ style: { outlineColor: 'Highlight' } }),\n },\n\n userSelect: 'none',\n ...createFocusOutlineStyle(),\n});\n\nconst useContentBaseStyles = makeResetStyles({\n paddingLeft: '2px',\n paddingRight: '2px',\n backgroundColor: 'transparent',\n flexGrow: 1,\n});\n\nconst useSecondaryContentBaseStyles = makeResetStyles({\n paddingLeft: '2px',\n paddingRight: '2px',\n ...typographyStyles.caption1,\n lineHeight: tokens.lineHeightBase300,\n color: tokens.colorNeutralForeground3,\n ':hover': {\n color: tokens.colorNeutralForeground3Hover,\n },\n ':focus': {\n color: tokens.colorNeutralForeground3Hover,\n },\n});\n\nconst useIconBaseStyles = makeResetStyles({\n width: '20px',\n height: '20px',\n fontSize: '20px',\n lineHeight: 0,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n flexShrink: 0,\n});\n\nconst useSubmenuIndicatorBaseStyles = makeResetStyles({\n width: '20px',\n height: '20px',\n fontSize: '20px',\n lineHeight: 0,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n});\n\nconst useSubtextBaseStyles = makeResetStyles({\n ...typographyStyles.caption2,\n color: tokens.colorNeutralForeground3,\n});\n\nconst useStyles = makeStyles({\n checkmark: {\n marginTop: '2px',\n },\n\n splitItemMain: {\n flexGrow: 1,\n },\n\n splitItemTrigger: {\n borderTopLeftRadius: 0,\n borderBottomLeftRadius: 0,\n paddingLeft: 0,\n '::before': {\n content: '\"\"',\n width: tokens.strokeWidthThin,\n height: '24px',\n backgroundColor: tokens.colorNeutralStroke1,\n },\n },\n disabled: {\n color: tokens.colorNeutralForegroundDisabled,\n ':hover': {\n color: tokens.colorNeutralForegroundDisabled,\n backgroundColor: tokens.colorNeutralBackground1,\n cursor: 'not-allowed',\n [`& .${iconFilledClassName}`]: {\n display: 'none',\n },\n [`& .${iconRegularClassName}`]: {\n display: 'inline',\n },\n [`& .${menuItemClassNames.icon}`]: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n [`& .${menuItemClassNames.subText}`]: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n\n ':hover:active': {\n color: tokens.colorNeutralForegroundDisabled,\n backgroundColor: tokens.colorNeutralBackground1,\n\n [`& .${menuItemClassNames.subText}`]: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n\n ':focus': {\n color: tokens.colorNeutralForegroundDisabled,\n },\n\n '@media (forced-colors: active)': {\n color: 'GrayText',\n ':hover': {\n color: 'GrayText',\n backgroundColor: 'Canvas',\n [`& .${menuItemClassNames.icon}`]: {\n color: 'GrayText',\n backgroundColor: 'Canvas',\n },\n [`& .${menuItemClassNames.subText}`]: {\n color: 'GrayText',\n },\n },\n ':hover:active': {\n color: 'GrayText',\n backgroundColor: 'Canvas',\n [`& .${menuItemClassNames.subText}`]: {\n color: 'GrayText',\n },\n },\n ':focus': {\n color: 'GrayText',\n backgroundColor: 'Canvas',\n },\n },\n },\n});\n\nconst useSubTextStyles = makeStyles({\n disabled: {\n color: tokens.colorNeutralForegroundDisabled,\n\n '@media (forced-colors: active)': {\n color: 'GrayText',\n },\n },\n});\n\nconst useMultilineStyles = makeStyles({\n content: {\n display: 'flex',\n flexDirection: 'column',\n },\n\n secondaryContent: {\n alignSelf: 'center',\n },\n\n submenuIndicator: {\n alignSelf: 'center',\n },\n});\n\n/** Applies style classnames to slots */\nexport const useMenuItemStyles_unstable = (state: MenuItemState): MenuItemState => {\n 'use no memo';\n\n const styles = useStyles();\n const rootBaseStyles = useRootBaseStyles();\n const contentBaseStyles = useContentBaseStyles();\n const secondaryContentBaseStyles = useSecondaryContentBaseStyles();\n const iconBaseStyles = useIconBaseStyles();\n const submenuIndicatorBaseStyles = useSubmenuIndicatorBaseStyles();\n const multilineStyles = useMultilineStyles();\n const subtextBaseStyles = useSubtextBaseStyles();\n const subTextStyles = useSubTextStyles();\n const multiline = !!state.subText;\n state.root.className = mergeClasses(\n menuItemClassNames.root,\n rootBaseStyles,\n state.disabled && styles.disabled,\n state.root.className,\n );\n\n if (state.content) {\n state.content.className = mergeClasses(\n menuItemClassNames.content,\n contentBaseStyles,\n state.content.className,\n multiline && multilineStyles.content,\n );\n }\n\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(menuItemClassNames.checkmark, styles.checkmark, state.checkmark.className);\n }\n\n if (state.secondaryContent) {\n state.secondaryContent.className = mergeClasses(\n menuItemClassNames.secondaryContent,\n secondaryContentBaseStyles,\n state.disabled && styles.disabled,\n state.secondaryContent.className,\n multiline && multilineStyles.secondaryContent,\n );\n }\n\n if (state.icon) {\n state.icon.className = mergeClasses(menuItemClassNames.icon, iconBaseStyles, state.icon.className);\n }\n\n if (state.submenuIndicator) {\n state.submenuIndicator.className = mergeClasses(\n menuItemClassNames.submenuIndicator,\n submenuIndicatorBaseStyles,\n state.submenuIndicator.className,\n multiline && multilineStyles.submenuIndicator,\n );\n }\n\n if (state.subText) {\n state.subText.className = mergeClasses(\n menuItemClassNames.subText,\n state.disabled && subTextStyles.disabled,\n state.subText.className,\n subtextBaseStyles,\n );\n }\n\n useCheckmarkStyles_unstable(state as MenuItemCheckboxState);\n\n return state;\n};\n"],"names":["mergeClasses","makeStyles","makeResetStyles","iconFilledClassName","iconRegularClassName","createFocusOutlineStyle","tokens","typographyStyles","useCheckmarkStyles_unstable","menuItemClassNames","root","icon","checkmark","submenuIndicator","content","secondaryContent","subText","useRootBaseStyles","borderRadius","borderRadiusMedium","position","color","colorNeutralForeground2","backgroundColor","colorNeutralBackground1","paddingRight","spacingVerticalSNudge","paddingLeft","paddingTop","paddingBottom","boxSizing","maxWidth","minHeight","flexShrink","display","alignItems","fontSize","fontSizeBase300","cursor","gap","colorNeutralBackground1Hover","colorNeutralForeground2Hover","colorNeutralForeground2BrandSelected","colorNeutralForeground3Hover","colorNeutralBackground1Pressed","colorNeutralForeground2Pressed","colorNeutralForeground3Pressed","borderColor","style","outlineColor","userSelect","useContentBaseStyles","flexGrow","useSecondaryContentBaseStyles","caption1","lineHeight","lineHeightBase300","colorNeutralForeground3","useIconBaseStyles","width","height","justifyContent","useSubmenuIndicatorBaseStyles","useSubtextBaseStyles","caption2","useStyles","marginTop","splitItemMain","splitItemTrigger","borderTopLeftRadius","borderBottomLeftRadius","strokeWidthThin","colorNeutralStroke1","disabled","colorNeutralForegroundDisabled","useSubTextStyles","useMultilineStyles","flexDirection","alignSelf","useMenuItemStyles_unstable","state","styles","rootBaseStyles","contentBaseStyles","secondaryContentBaseStyles","iconBaseStyles","submenuIndicatorBaseStyles","multilineStyles","subtextBaseStyles","subTextStyles","multiline","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { mergeClasses } from '@griffel/react';
2
+ import { useCheckmarkStyles_unstable } from '../../selectable/index';
3
+ import { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles.styles';
4
+ export const menuItemCheckboxClassNames = {
5
+ root: 'fui-MenuItemCheckbox',
6
+ icon: 'fui-MenuItemCheckbox__icon',
7
+ checkmark: 'fui-MenuItemCheckbox__checkmark',
8
+ content: 'fui-MenuItemCheckbox__content',
9
+ secondaryContent: 'fui-MenuItemCheckbox__secondaryContent',
10
+ subText: 'fui-MenuItemCheckbox__subText'
11
+ };
12
+ export const useMenuItemCheckboxStyles_unstable = (state)=>{
13
+ 'use no memo';
14
+ state.root.className = mergeClasses(menuItemCheckboxClassNames.root, state.root.className);
15
+ if (state.content) {
16
+ state.content.className = mergeClasses(menuItemCheckboxClassNames.content, state.content.className);
17
+ }
18
+ if (state.secondaryContent) {
19
+ state.secondaryContent.className = mergeClasses(menuItemCheckboxClassNames.secondaryContent, state.secondaryContent.className);
20
+ }
21
+ if (state.icon) {
22
+ state.icon.className = mergeClasses(menuItemCheckboxClassNames.icon, state.icon.className);
23
+ }
24
+ if (state.checkmark) {
25
+ state.checkmark.className = mergeClasses(menuItemCheckboxClassNames.checkmark, state.checkmark.className);
26
+ }
27
+ if (state.subText) {
28
+ state.subText.className = mergeClasses(menuItemCheckboxClassNames.subText, state.subText.className);
29
+ }
30
+ useMenuItemStyles_unstable(state);
31
+ useCheckmarkStyles_unstable(state);
32
+ return state;
33
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MenuItemCheckbox/useMenuItemCheckboxStyles.styles.ts"],"sourcesContent":["import { mergeClasses } from '@griffel/react';\nimport { useCheckmarkStyles_unstable } from '../../selectable/index';\nimport { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles.styles';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { MenuItemSlots } from '../index';\nimport type { MenuItemCheckboxState } from './MenuItemCheckbox.types';\n\nexport const menuItemCheckboxClassNames: SlotClassNames<Omit<MenuItemSlots, 'submenuIndicator'>> = {\n root: 'fui-MenuItemCheckbox',\n icon: 'fui-MenuItemCheckbox__icon',\n checkmark: 'fui-MenuItemCheckbox__checkmark',\n content: 'fui-MenuItemCheckbox__content',\n secondaryContent: 'fui-MenuItemCheckbox__secondaryContent',\n subText: 'fui-MenuItemCheckbox__subText',\n};\n\nexport const useMenuItemCheckboxStyles_unstable = (state: MenuItemCheckboxState): MenuItemCheckboxState => {\n 'use no memo';\n\n state.root.className = mergeClasses(menuItemCheckboxClassNames.root, state.root.className);\n\n if (state.content) {\n state.content.className = mergeClasses(menuItemCheckboxClassNames.content, state.content.className);\n }\n\n if (state.secondaryContent) {\n state.secondaryContent.className = mergeClasses(\n menuItemCheckboxClassNames.secondaryContent,\n state.secondaryContent.className,\n );\n }\n\n if (state.icon) {\n state.icon.className = mergeClasses(menuItemCheckboxClassNames.icon, state.icon.className);\n }\n\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(menuItemCheckboxClassNames.checkmark, state.checkmark.className);\n }\n\n if (state.subText) {\n state.subText.className = mergeClasses(menuItemCheckboxClassNames.subText, state.subText.className);\n }\n\n useMenuItemStyles_unstable(state);\n useCheckmarkStyles_unstable(state);\n\n return state;\n};\n"],"names":["mergeClasses","useCheckmarkStyles_unstable","useMenuItemStyles_unstable","menuItemCheckboxClassNames","root","icon","checkmark","content","secondaryContent","subText","useMenuItemCheckboxStyles_unstable","state","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,2BAA2B,QAAQ,yBAAyB;AACrE,SAASC,0BAA0B,QAAQ,uCAAuC;AAKlF,OAAO,MAAMC,6BAAsF;IACjGC,MAAM;IACNC,MAAM;IACNC,WAAW;IACXC,SAAS;IACTC,kBAAkB;IAClBC,SAAS;AACX,EAAE;AAEF,OAAO,MAAMC,qCAAqC,CAACC;IACjD;IAEAA,MAAMP,IAAI,CAACQ,SAAS,GAAGZ,aAAaG,2BAA2BC,IAAI,EAAEO,MAAMP,IAAI,CAACQ,SAAS;IAEzF,IAAID,MAAMJ,OAAO,EAAE;QACjBI,MAAMJ,OAAO,CAACK,SAAS,GAAGZ,aAAaG,2BAA2BI,OAAO,EAAEI,MAAMJ,OAAO,CAACK,SAAS;IACpG;IAEA,IAAID,MAAMH,gBAAgB,EAAE;QAC1BG,MAAMH,gBAAgB,CAACI,SAAS,GAAGZ,aACjCG,2BAA2BK,gBAAgB,EAC3CG,MAAMH,gBAAgB,CAACI,SAAS;IAEpC;IAEA,IAAID,MAAMN,IAAI,EAAE;QACdM,MAAMN,IAAI,CAACO,SAAS,GAAGZ,aAAaG,2BAA2BE,IAAI,EAAEM,MAAMN,IAAI,CAACO,SAAS;IAC3F;IAEA,IAAID,MAAML,SAAS,EAAE;QACnBK,MAAML,SAAS,CAACM,SAAS,GAAGZ,aAAaG,2BAA2BG,SAAS,EAAEK,MAAML,SAAS,CAACM,SAAS;IAC1G;IAEA,IAAID,MAAMF,OAAO,EAAE;QACjBE,MAAMF,OAAO,CAACG,SAAS,GAAGZ,aAAaG,2BAA2BM,OAAO,EAAEE,MAAMF,OAAO,CAACG,SAAS;IACpG;IAEAV,2BAA2BS;IAC3BV,4BAA4BU;IAE5B,OAAOA;AACT,EAAE"}
@@ -0,0 +1,40 @@
1
+ import { makeStyles, mergeClasses } from '@griffel/react';
2
+ import { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles.styles';
3
+ export const menuItemLinkClassNames = {
4
+ root: 'fui-MenuItemLink',
5
+ icon: 'fui-MenuItemLink__icon',
6
+ checkmark: 'fui-MenuItemLink__checkmark',
7
+ content: 'fui-MenuItemLink__content',
8
+ secondaryContent: 'fui-MenuItemLink__secondaryContent'
9
+ };
10
+ /**
11
+ * Styles for the root slot
12
+ */ const useStyles = makeStyles({
13
+ resetLink: {
14
+ textDecorationLine: 'none',
15
+ textDecorationThickness: 'initial',
16
+ textDecorationStyle: 'initial',
17
+ textDecorationColor: 'initial'
18
+ }
19
+ });
20
+ /**
21
+ * Apply styling to the MenuItemLink slots based on the state
22
+ */ export const useMenuItemLinkStyles_unstable = (state)=>{
23
+ 'use no memo';
24
+ useMenuItemStyles_unstable(state);
25
+ const styles = useStyles();
26
+ state.root.className = mergeClasses(menuItemLinkClassNames.root, styles.resetLink, state.root.className);
27
+ if (state.icon) {
28
+ state.icon.className = mergeClasses(menuItemLinkClassNames.icon, state.icon.className);
29
+ }
30
+ if (state.content) {
31
+ state.content.className = mergeClasses(menuItemLinkClassNames.content, state.content.className);
32
+ }
33
+ if (state.secondaryContent) {
34
+ state.secondaryContent.className = mergeClasses(menuItemLinkClassNames.secondaryContent, state.secondaryContent.className);
35
+ }
36
+ if (state.checkmark) {
37
+ state.checkmark.className = mergeClasses(menuItemLinkClassNames.checkmark, state.checkmark.className);
38
+ }
39
+ return state;
40
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MenuItemLink/useMenuItemLinkStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport type { MenuItemLinkSlots, MenuItemLinkState } from './MenuItemLink.types';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles.styles';\nimport { MenuItemState } from '../MenuItem/MenuItem.types';\n\nexport const menuItemLinkClassNames: SlotClassNames<MenuItemLinkSlots> = {\n root: 'fui-MenuItemLink',\n icon: 'fui-MenuItemLink__icon',\n checkmark: 'fui-MenuItemLink__checkmark',\n content: 'fui-MenuItemLink__content',\n secondaryContent: 'fui-MenuItemLink__secondaryContent',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n resetLink: {\n textDecorationLine: 'none',\n textDecorationThickness: 'initial',\n textDecorationStyle: 'initial',\n textDecorationColor: 'initial',\n },\n});\n\n/**\n * Apply styling to the MenuItemLink slots based on the state\n */\nexport const useMenuItemLinkStyles_unstable = (state: MenuItemLinkState): MenuItemLinkState => {\n 'use no memo';\n\n useMenuItemStyles_unstable(state as MenuItemState);\n const styles = useStyles();\n state.root.className = mergeClasses(menuItemLinkClassNames.root, styles.resetLink, state.root.className);\n\n if (state.icon) {\n state.icon.className = mergeClasses(menuItemLinkClassNames.icon, state.icon.className);\n }\n\n if (state.content) {\n state.content.className = mergeClasses(menuItemLinkClassNames.content, state.content.className);\n }\n\n if (state.secondaryContent) {\n state.secondaryContent.className = mergeClasses(\n menuItemLinkClassNames.secondaryContent,\n state.secondaryContent.className,\n );\n }\n\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(menuItemLinkClassNames.checkmark, state.checkmark.className);\n }\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","useMenuItemStyles_unstable","menuItemLinkClassNames","root","icon","checkmark","content","secondaryContent","useStyles","resetLink","textDecorationLine","textDecorationThickness","textDecorationStyle","textDecorationColor","useMenuItemLinkStyles_unstable","state","styles","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAG1D,SAASC,0BAA0B,QAAQ,uCAAuC;AAGlF,OAAO,MAAMC,yBAA4D;IACvEC,MAAM;IACNC,MAAM;IACNC,WAAW;IACXC,SAAS;IACTC,kBAAkB;AACpB,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYT,WAAW;IAC3BU,WAAW;QACTC,oBAAoB;QACpBC,yBAAyB;QACzBC,qBAAqB;QACrBC,qBAAqB;IACvB;AACF;AAEA;;CAEC,GACD,OAAO,MAAMC,iCAAiC,CAACC;IAC7C;IAEAd,2BAA2Bc;IAC3B,MAAMC,SAASR;IACfO,MAAMZ,IAAI,CAACc,SAAS,GAAGjB,aAAaE,uBAAuBC,IAAI,EAAEa,OAAOP,SAAS,EAAEM,MAAMZ,IAAI,CAACc,SAAS;IAEvG,IAAIF,MAAMX,IAAI,EAAE;QACdW,MAAMX,IAAI,CAACa,SAAS,GAAGjB,aAAaE,uBAAuBE,IAAI,EAAEW,MAAMX,IAAI,CAACa,SAAS;IACvF;IAEA,IAAIF,MAAMT,OAAO,EAAE;QACjBS,MAAMT,OAAO,CAACW,SAAS,GAAGjB,aAAaE,uBAAuBI,OAAO,EAAES,MAAMT,OAAO,CAACW,SAAS;IAChG;IAEA,IAAIF,MAAMR,gBAAgB,EAAE;QAC1BQ,MAAMR,gBAAgB,CAACU,SAAS,GAAGjB,aACjCE,uBAAuBK,gBAAgB,EACvCQ,MAAMR,gBAAgB,CAACU,SAAS;IAEpC;IAEA,IAAIF,MAAMV,SAAS,EAAE;QACnBU,MAAMV,SAAS,CAACY,SAAS,GAAGjB,aAAaE,uBAAuBG,SAAS,EAAEU,MAAMV,SAAS,CAACY,SAAS;IACtG;IAEA,OAAOF;AACT,EAAE"}
@@ -0,0 +1,32 @@
1
+ import { mergeClasses } from '@griffel/react';
2
+ import { useCheckmarkStyles_unstable } from '../../selectable/index';
3
+ import { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles.styles';
4
+ export const menuItemRadioClassNames = {
5
+ root: 'fui-MenuItemRadio',
6
+ icon: 'fui-MenuItemRadio__icon',
7
+ checkmark: 'fui-MenuItemRadio__checkmark',
8
+ content: 'fui-MenuItemRadio__content',
9
+ secondaryContent: 'fui-MenuItemRadio__secondaryContent',
10
+ subText: 'fui-MenuItemRadio__subText'
11
+ };
12
+ export const useMenuItemRadioStyles_unstable = (state)=>{
13
+ 'use no memo';
14
+ state.root.className = mergeClasses(menuItemRadioClassNames.root, state.root.className);
15
+ if (state.content) {
16
+ state.content.className = mergeClasses(menuItemRadioClassNames.content, state.content.className);
17
+ }
18
+ if (state.secondaryContent) {
19
+ state.secondaryContent.className = mergeClasses(menuItemRadioClassNames.secondaryContent, state.secondaryContent.className);
20
+ }
21
+ if (state.icon) {
22
+ state.icon.className = mergeClasses(menuItemRadioClassNames.icon, state.icon.className);
23
+ }
24
+ if (state.checkmark) {
25
+ state.checkmark.className = mergeClasses(menuItemRadioClassNames.checkmark, state.checkmark.className);
26
+ }
27
+ if (state.subText) {
28
+ state.subText.className = mergeClasses(menuItemRadioClassNames.subText, state.subText.className);
29
+ }
30
+ useMenuItemStyles_unstable(state);
31
+ useCheckmarkStyles_unstable(state);
32
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/MenuItemRadio/useMenuItemRadioStyles.styles.ts"],"sourcesContent":["import { mergeClasses } from '@griffel/react';\nimport { useCheckmarkStyles_unstable } from '../../selectable/index';\nimport { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles.styles';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { MenuItemSlots } from '../index';\nimport type { MenuItemRadioState } from './MenuItemRadio.types';\n\nexport const menuItemRadioClassNames: SlotClassNames<Omit<MenuItemSlots, 'submenuIndicator'>> = {\n root: 'fui-MenuItemRadio',\n icon: 'fui-MenuItemRadio__icon',\n checkmark: 'fui-MenuItemRadio__checkmark',\n content: 'fui-MenuItemRadio__content',\n secondaryContent: 'fui-MenuItemRadio__secondaryContent',\n subText: 'fui-MenuItemRadio__subText',\n};\n\nexport const useMenuItemRadioStyles_unstable = (state: MenuItemRadioState) => {\n 'use no memo';\n\n state.root.className = mergeClasses(menuItemRadioClassNames.root, state.root.className);\n\n if (state.content) {\n state.content.className = mergeClasses(menuItemRadioClassNames.content, state.content.className);\n }\n\n if (state.secondaryContent) {\n state.secondaryContent.className = mergeClasses(\n menuItemRadioClassNames.secondaryContent,\n state.secondaryContent.className,\n );\n }\n\n if (state.icon) {\n state.icon.className = mergeClasses(menuItemRadioClassNames.icon, state.icon.className);\n }\n\n if (state.checkmark) {\n state.checkmark.className = mergeClasses(menuItemRadioClassNames.checkmark, state.checkmark.className);\n }\n\n if (state.subText) {\n state.subText.className = mergeClasses(menuItemRadioClassNames.subText, state.subText.className);\n }\n\n useMenuItemStyles_unstable(state);\n useCheckmarkStyles_unstable(state);\n};\n"],"names":["mergeClasses","useCheckmarkStyles_unstable","useMenuItemStyles_unstable","menuItemRadioClassNames","root","icon","checkmark","content","secondaryContent","subText","useMenuItemRadioStyles_unstable","state","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,2BAA2B,QAAQ,yBAAyB;AACrE,SAASC,0BAA0B,QAAQ,uCAAuC;AAKlF,OAAO,MAAMC,0BAAmF;IAC9FC,MAAM;IACNC,MAAM;IACNC,WAAW;IACXC,SAAS;IACTC,kBAAkB;IAClBC,SAAS;AACX,EAAE;AAEF,OAAO,MAAMC,kCAAkC,CAACC;IAC9C;IAEAA,MAAMP,IAAI,CAACQ,SAAS,GAAGZ,aAAaG,wBAAwBC,IAAI,EAAEO,MAAMP,IAAI,CAACQ,SAAS;IAEtF,IAAID,MAAMJ,OAAO,EAAE;QACjBI,MAAMJ,OAAO,CAACK,SAAS,GAAGZ,aAAaG,wBAAwBI,OAAO,EAAEI,MAAMJ,OAAO,CAACK,SAAS;IACjG;IAEA,IAAID,MAAMH,gBAAgB,EAAE;QAC1BG,MAAMH,gBAAgB,CAACI,SAAS,GAAGZ,aACjCG,wBAAwBK,gBAAgB,EACxCG,MAAMH,gBAAgB,CAACI,SAAS;IAEpC;IAEA,IAAID,MAAMN,IAAI,EAAE;QACdM,MAAMN,IAAI,CAACO,SAAS,GAAGZ,aAAaG,wBAAwBE,IAAI,EAAEM,MAAMN,IAAI,CAACO,SAAS;IACxF;IAEA,IAAID,MAAML,SAAS,EAAE;QACnBK,MAAML,SAAS,CAACM,SAAS,GAAGZ,aAAaG,wBAAwBG,SAAS,EAAEK,MAAML,SAAS,CAACM,SAAS;IACvG;IAEA,IAAID,MAAMF,OAAO,EAAE;QACjBE,MAAMF,OAAO,CAACG,SAAS,GAAGZ,aAAaG,wBAAwBM,OAAO,EAAEE,MAAMF,OAAO,CAACG,SAAS;IACjG;IAEAV,2BAA2BS;IAC3BV,4BAA4BU;AAC9B,EAAE"}
@@ -0,0 +1,117 @@
1
+ import { makeStyles, makeResetStyles, mergeClasses, shorthands } from '@griffel/react';
2
+ import { tokens } from '@fluentui/react-theme';
3
+ import { useMenuItemStyles_unstable } from '../MenuItem/useMenuItemStyles.styles';
4
+ export const menuItemSwitchClassNames = {
5
+ root: 'fui-MenuItemSwitch',
6
+ icon: 'fui-MenuItemSwitch__icon',
7
+ content: 'fui-MenuItemSwitch__content',
8
+ secondaryContent: 'fui-MenuItemSwitch__secondaryContent',
9
+ switchIndicator: 'fui-MenuItemSwitch__switchIndicator',
10
+ subText: 'fui-MenuItemSwitch__subText'
11
+ };
12
+ export const circleFilledClassName = 'fui-MenuItemSwitch__switchIndicator__circleFilled';
13
+ // Thumb and track sizes used by the component.
14
+ const spaceBetweenThumbAndTrack = 2;
15
+ const trackHeight = 20;
16
+ const trackWidth = 40;
17
+ const thumbSize = trackHeight - spaceBetweenThumbAndTrack;
18
+ const useSwitchIndicatorBaseClassName = makeResetStyles({
19
+ borderRadius: tokens.borderRadiusCircular,
20
+ border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStrokeAccessible}`,
21
+ lineHeight: 0,
22
+ boxSizing: 'border-box',
23
+ fill: 'currentColor',
24
+ flexShrink: 0,
25
+ fontSize: `${thumbSize}px`,
26
+ height: `${trackHeight}px`,
27
+ transitionDuration: tokens.durationNormal,
28
+ transitionTimingFunction: tokens.curveEasyEase,
29
+ transitionProperty: 'background, border, color',
30
+ width: `${trackWidth}px`,
31
+ marginRight: tokens.spacingHorizontalXS,
32
+ '@media screen and (prefers-reduced-motion: reduce)': {
33
+ transitionDuration: '0.01ms'
34
+ },
35
+ color: tokens.colorNeutralStrokeAccessible,
36
+ ':hover': {
37
+ color: tokens.colorNeutralStrokeAccessibleHover,
38
+ borderColor: tokens.colorNeutralStrokeAccessibleHover
39
+ },
40
+ ':hover:active': {
41
+ color: tokens.colorNeutralStrokeAccessiblePressed,
42
+ borderColor: tokens.colorNeutralStrokeAccessiblePressed
43
+ },
44
+ [`& .${circleFilledClassName}`]: {
45
+ transitionDuration: tokens.durationNormal,
46
+ transitionTimingFunction: tokens.curveEasyEase,
47
+ transitionProperty: 'transform',
48
+ '@media screen and (prefers-reduced-motion: reduce)': {
49
+ transitionDuration: '0.01ms'
50
+ }
51
+ }
52
+ });
53
+ const useSwitchIndicatorStyles = makeStyles({
54
+ checked: {
55
+ [`& .${circleFilledClassName}`]: {
56
+ transform: `translateX(${trackWidth - thumbSize - spaceBetweenThumbAndTrack}px)`
57
+ },
58
+ backgroundColor: tokens.colorCompoundBrandBackground,
59
+ color: tokens.colorNeutralForegroundInverted,
60
+ ...shorthands.borderColor(tokens.colorTransparentStroke),
61
+ ':hover': {
62
+ color: tokens.colorNeutralForegroundInverted,
63
+ backgroundColor: tokens.colorCompoundBrandBackgroundHover,
64
+ ...shorthands.borderColor(tokens.colorTransparentStrokeInteractive)
65
+ },
66
+ ':hover:active': {
67
+ color: tokens.colorNeutralForegroundInverted,
68
+ backgroundColor: tokens.colorCompoundBrandBackgroundPressed,
69
+ ...shorthands.borderColor(tokens.colorTransparentStrokeInteractive)
70
+ }
71
+ }
72
+ });
73
+ const useMultilineStyles = makeStyles({
74
+ switch: {
75
+ alignSelf: 'center'
76
+ }
77
+ });
78
+ /**
79
+ * Apply styling to the MenuItemSwitch slots based on the state
80
+ */ export const useMenuItemSwitchStyles_unstable = (state)=>{
81
+ 'use no memo';
82
+ const { checked, subText } = state;
83
+ const multiline = !!subText;
84
+ const switchIndicatorStyles = useSwitchIndicatorStyles();
85
+ const switchIndicatorBaseStyles = useSwitchIndicatorBaseClassName();
86
+ const multilineStyles = useMultilineStyles();
87
+ state.root.className = mergeClasses(menuItemSwitchClassNames.root, state.root.className);
88
+ if (state.content) {
89
+ state.content.className = mergeClasses(menuItemSwitchClassNames.content, state.content.className);
90
+ }
91
+ if (state.secondaryContent) {
92
+ state.secondaryContent.className = mergeClasses(menuItemSwitchClassNames.secondaryContent, state.secondaryContent.className);
93
+ }
94
+ if (state.icon) {
95
+ state.icon.className = mergeClasses(menuItemSwitchClassNames.icon, state.icon.className);
96
+ }
97
+ if (state.subText) {
98
+ state.subText.className = mergeClasses(menuItemSwitchClassNames.subText, state.subText.className);
99
+ }
100
+ if (state.switchIndicator) {
101
+ state.switchIndicator.className = mergeClasses(menuItemSwitchClassNames.switchIndicator, switchIndicatorBaseStyles, checked && switchIndicatorStyles.checked, state.switchIndicator.className, multiline && multilineStyles.switch);
102
+ }
103
+ useMenuItemStyles_unstable({
104
+ ...state,
105
+ components: {
106
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
107
+ ...state.components,
108
+ checkmark: 'span',
109
+ submenuIndicator: 'span'
110
+ },
111
+ checkmark: undefined,
112
+ submenuIndicator: undefined,
113
+ hasSubmenu: false,
114
+ persistOnClick: true
115
+ });
116
+ return state;
117
+ };