@fluentui/react-button 0.0.0-nightly-20250703-0405.1 → 0.0.0-nightly-20250703-1103.1

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 (22) hide show
  1. package/CHANGELOG.md +13 -13
  2. package/lib/components/Button/useButtonStyles.styles.raw.js +488 -0
  3. package/lib/components/Button/useButtonStyles.styles.raw.js.map +1 -0
  4. package/lib/components/CompoundButton/useCompoundButtonStyles.styles.raw.js +241 -0
  5. package/lib/components/CompoundButton/useCompoundButtonStyles.styles.raw.js.map +1 -0
  6. package/lib/components/MenuButton/useMenuButtonStyles.styles.raw.js +112 -0
  7. package/lib/components/MenuButton/useMenuButtonStyles.styles.raw.js.map +1 -0
  8. package/lib/components/SplitButton/useSplitButtonStyles.styles.raw.js +158 -0
  9. package/lib/components/SplitButton/useSplitButtonStyles.styles.raw.js.map +1 -0
  10. package/lib/components/ToggleButton/useToggleButtonStyles.styles.raw.js +226 -0
  11. package/lib/components/ToggleButton/useToggleButtonStyles.styles.raw.js.map +1 -0
  12. package/lib-commonjs/components/Button/useButtonStyles.styles.raw.js +495 -0
  13. package/lib-commonjs/components/Button/useButtonStyles.styles.raw.js.map +1 -0
  14. package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.styles.raw.js +253 -0
  15. package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.styles.raw.js.map +1 -0
  16. package/lib-commonjs/components/MenuButton/useMenuButtonStyles.styles.raw.js +129 -0
  17. package/lib-commonjs/components/MenuButton/useMenuButtonStyles.styles.raw.js.map +1 -0
  18. package/lib-commonjs/components/SplitButton/useSplitButtonStyles.styles.raw.js +174 -0
  19. package/lib-commonjs/components/SplitButton/useSplitButtonStyles.styles.raw.js.map +1 -0
  20. package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.styles.raw.js +237 -0
  21. package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.styles.raw.js.map +1 -0
  22. package/package.json +10 -10
@@ -0,0 +1,226 @@
1
+ import { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';
2
+ import { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';
3
+ import { tokens } from '@fluentui/react-theme';
4
+ import { shorthands, mergeClasses, makeStyles } from '@griffel/react';
5
+ import { useButtonStyles_unstable } from '../Button/useButtonStyles.styles';
6
+ export const toggleButtonClassNames = {
7
+ root: 'fui-ToggleButton',
8
+ icon: 'fui-ToggleButton__icon'
9
+ };
10
+ const useRootCheckedStyles = makeStyles({
11
+ // Base styles
12
+ base: {
13
+ backgroundColor: tokens.colorNeutralBackground1Selected,
14
+ ...shorthands.borderColor(tokens.colorNeutralStroke1),
15
+ color: tokens.colorNeutralForeground1Selected,
16
+ ...shorthands.borderWidth(tokens.strokeWidthThin),
17
+ [`& .${iconFilledClassName}`]: {
18
+ display: 'inline'
19
+ },
20
+ [`& .${iconRegularClassName}`]: {
21
+ display: 'none'
22
+ },
23
+ ':hover': {
24
+ backgroundColor: tokens.colorNeutralBackground1Hover,
25
+ ...shorthands.borderColor(tokens.colorNeutralStroke1Hover),
26
+ color: tokens.colorNeutralForeground1Hover
27
+ },
28
+ ':hover:active': {
29
+ backgroundColor: tokens.colorNeutralBackground1Pressed,
30
+ ...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),
31
+ color: tokens.colorNeutralForeground1Pressed
32
+ }
33
+ },
34
+ // High contrast styles
35
+ highContrast: {
36
+ '@media (forced-colors: active)': {
37
+ backgroundColor: 'Highlight',
38
+ ...shorthands.borderColor('Highlight'),
39
+ color: 'HighlightText',
40
+ forcedColorAdjust: 'none',
41
+ ':hover': {
42
+ backgroundColor: 'HighlightText',
43
+ ...shorthands.borderColor('Highlight'),
44
+ color: 'Highlight'
45
+ },
46
+ ':hover:active': {
47
+ backgroundColor: 'HighlightText',
48
+ ...shorthands.borderColor('Highlight'),
49
+ color: 'Highlight'
50
+ },
51
+ ':focus': {
52
+ border: '1px solid HighlightText',
53
+ outlineColor: 'Highlight'
54
+ }
55
+ }
56
+ },
57
+ // Appearance variations
58
+ outline: {
59
+ backgroundColor: tokens.colorTransparentBackgroundSelected,
60
+ ...shorthands.borderColor(tokens.colorNeutralStroke1),
61
+ ...shorthands.borderWidth(tokens.strokeWidthThicker),
62
+ ':hover': {
63
+ backgroundColor: tokens.colorTransparentBackgroundHover
64
+ },
65
+ ':hover:active': {
66
+ backgroundColor: tokens.colorTransparentBackgroundPressed
67
+ },
68
+ ...createCustomFocusIndicatorStyle({
69
+ ...shorthands.borderColor(tokens.colorNeutralStroke1)
70
+ })
71
+ },
72
+ primary: {
73
+ backgroundColor: tokens.colorBrandBackgroundSelected,
74
+ ...shorthands.borderColor('transparent'),
75
+ color: tokens.colorNeutralForegroundOnBrand,
76
+ ':hover': {
77
+ backgroundColor: tokens.colorBrandBackgroundHover,
78
+ ...shorthands.borderColor('transparent'),
79
+ color: tokens.colorNeutralForegroundOnBrand
80
+ },
81
+ ':hover:active': {
82
+ backgroundColor: tokens.colorBrandBackgroundPressed,
83
+ ...shorthands.borderColor('transparent'),
84
+ color: tokens.colorNeutralForegroundOnBrand
85
+ }
86
+ },
87
+ secondary: {
88
+ },
89
+ subtle: {
90
+ backgroundColor: tokens.colorSubtleBackgroundSelected,
91
+ ...shorthands.borderColor('transparent'),
92
+ color: tokens.colorNeutralForeground2Selected,
93
+ ':hover': {
94
+ backgroundColor: tokens.colorSubtleBackgroundHover,
95
+ ...shorthands.borderColor('transparent'),
96
+ color: tokens.colorNeutralForeground2Hover
97
+ },
98
+ ':hover:active': {
99
+ backgroundColor: tokens.colorSubtleBackgroundPressed,
100
+ ...shorthands.borderColor('transparent'),
101
+ color: tokens.colorNeutralForeground2Pressed
102
+ }
103
+ },
104
+ transparent: {
105
+ backgroundColor: tokens.colorTransparentBackgroundSelected,
106
+ ...shorthands.borderColor('transparent'),
107
+ color: tokens.colorNeutralForeground2BrandSelected,
108
+ ':hover': {
109
+ backgroundColor: tokens.colorTransparentBackgroundHover,
110
+ ...shorthands.borderColor('transparent'),
111
+ color: tokens.colorNeutralForeground2BrandHover
112
+ },
113
+ ':hover:active': {
114
+ backgroundColor: tokens.colorTransparentBackgroundPressed,
115
+ ...shorthands.borderColor('transparent'),
116
+ color: tokens.colorNeutralForeground2BrandPressed
117
+ }
118
+ }
119
+ });
120
+ const useRootDisabledStyles = makeStyles({
121
+ // Base styles
122
+ base: {
123
+ backgroundColor: tokens.colorNeutralBackgroundDisabled,
124
+ ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),
125
+ color: tokens.colorNeutralForegroundDisabled,
126
+ ':hover': {
127
+ backgroundColor: tokens.colorNeutralBackgroundDisabled,
128
+ ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),
129
+ color: tokens.colorNeutralForegroundDisabled
130
+ },
131
+ ':hover:active': {
132
+ backgroundColor: tokens.colorNeutralBackgroundDisabled,
133
+ ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),
134
+ color: tokens.colorNeutralForegroundDisabled
135
+ }
136
+ },
137
+ // Appearance variations
138
+ outline: {
139
+ },
140
+ primary: {
141
+ ...shorthands.borderColor('transparent'),
142
+ ':hover': {
143
+ ...shorthands.borderColor('transparent')
144
+ },
145
+ ':hover:active': {
146
+ ...shorthands.borderColor('transparent')
147
+ }
148
+ },
149
+ secondary: {
150
+ },
151
+ subtle: {
152
+ backgroundColor: tokens.colorTransparentBackground,
153
+ ...shorthands.borderColor('transparent'),
154
+ ':hover': {
155
+ backgroundColor: tokens.colorTransparentBackgroundHover,
156
+ ...shorthands.borderColor('transparent')
157
+ },
158
+ ':hover:active': {
159
+ backgroundColor: tokens.colorTransparentBackgroundPressed,
160
+ ...shorthands.borderColor('transparent')
161
+ }
162
+ },
163
+ transparent: {
164
+ backgroundColor: tokens.colorTransparentBackground,
165
+ ...shorthands.borderColor('transparent'),
166
+ ':hover': {
167
+ backgroundColor: tokens.colorTransparentBackgroundHover,
168
+ ...shorthands.borderColor('transparent')
169
+ },
170
+ ':hover:active': {
171
+ backgroundColor: tokens.colorTransparentBackgroundPressed,
172
+ ...shorthands.borderColor('transparent')
173
+ }
174
+ }
175
+ });
176
+ const useIconCheckedStyles = makeStyles({
177
+ // Appearance variations
178
+ subtleOrTransparent: {
179
+ color: tokens.colorNeutralForeground2BrandSelected
180
+ },
181
+ // High contrast styles
182
+ highContrast: {
183
+ '@media (forced-colors: active)': {
184
+ forcedColorAdjust: 'auto'
185
+ }
186
+ }
187
+ });
188
+ const usePrimaryHighContrastStyles = makeStyles({
189
+ // Do not use primary variant high contrast styles for toggle buttons
190
+ // otherwise there isn't enough difference between on/off states
191
+ base: {
192
+ '@media (forced-colors: active)': {
193
+ backgroundColor: 'ButtonFace',
194
+ ...shorthands.borderColor('ButtonBorder'),
195
+ color: 'ButtonText',
196
+ forcedColorAdjust: 'auto'
197
+ }
198
+ },
199
+ disabled: {
200
+ '@media (forced-colors: active)': {
201
+ ...shorthands.borderColor('GrayText'),
202
+ color: 'GrayText',
203
+ ':focus': {
204
+ ...shorthands.borderColor('GrayText')
205
+ }
206
+ }
207
+ }
208
+ });
209
+ export const useToggleButtonStyles_unstable = (state)=>{
210
+ 'use no memo';
211
+ const rootCheckedStyles = useRootCheckedStyles();
212
+ const rootDisabledStyles = useRootDisabledStyles();
213
+ const iconCheckedStyles = useIconCheckedStyles();
214
+ const primaryHighContrastStyles = usePrimaryHighContrastStyles();
215
+ const { appearance, checked, disabled, disabledFocusable } = state;
216
+ state.root.className = mergeClasses(toggleButtonClassNames.root, // Primary high contrast styles
217
+ appearance === 'primary' && primaryHighContrastStyles.base, appearance === 'primary' && (disabled || disabledFocusable) && primaryHighContrastStyles.disabled, // Checked styles
218
+ checked && rootCheckedStyles.base, checked && rootCheckedStyles.highContrast, appearance && checked && rootCheckedStyles[appearance], // Disabled styles
219
+ (disabled || disabledFocusable) && rootDisabledStyles.base, appearance && (disabled || disabledFocusable) && rootDisabledStyles[appearance], // User provided class name
220
+ state.root.className);
221
+ if (state.icon) {
222
+ state.icon.className = mergeClasses(toggleButtonClassNames.icon, checked && (appearance === 'subtle' || appearance === 'transparent') && iconCheckedStyles.subtleOrTransparent, iconCheckedStyles.highContrast, state.icon.className);
223
+ }
224
+ useButtonStyles_unstable(state);
225
+ return state;
226
+ };
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ToggleButton/useToggleButtonStyles.styles.ts"],"sourcesContent":["import { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport { tokens } from '@fluentui/react-theme';\nimport { shorthands, mergeClasses, makeStyles } from '@griffel/react';\nimport { useButtonStyles_unstable } from '../Button/useButtonStyles.styles';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { ButtonSlots } from '../Button/Button.types';\nimport type { ToggleButtonState } from './ToggleButton.types';\n\nexport const toggleButtonClassNames: SlotClassNames<ButtonSlots> = {\n root: 'fui-ToggleButton',\n icon: 'fui-ToggleButton__icon',\n};\n\nconst useRootCheckedStyles = makeStyles({\n // Base styles\n base: {\n backgroundColor: tokens.colorNeutralBackground1Selected,\n ...shorthands.borderColor(tokens.colorNeutralStroke1),\n color: tokens.colorNeutralForeground1Selected,\n\n ...shorthands.borderWidth(tokens.strokeWidthThin),\n\n [`& .${iconFilledClassName}`]: {\n display: 'inline',\n },\n [`& .${iconRegularClassName}`]: {\n display: 'none',\n },\n\n ':hover': {\n backgroundColor: tokens.colorNeutralBackground1Hover,\n ...shorthands.borderColor(tokens.colorNeutralStroke1Hover),\n color: tokens.colorNeutralForeground1Hover,\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorNeutralBackground1Pressed,\n ...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),\n color: tokens.colorNeutralForeground1Pressed,\n },\n },\n\n // High contrast styles\n highContrast: {\n '@media (forced-colors: active)': {\n backgroundColor: 'Highlight',\n ...shorthands.borderColor('Highlight'),\n color: 'HighlightText',\n forcedColorAdjust: 'none',\n\n ':hover': {\n backgroundColor: 'HighlightText',\n ...shorthands.borderColor('Highlight'),\n color: 'Highlight',\n },\n\n ':hover:active': {\n backgroundColor: 'HighlightText',\n ...shorthands.borderColor('Highlight'),\n color: 'Highlight',\n },\n\n ':focus': {\n border: '1px solid HighlightText',\n outlineColor: 'Highlight',\n },\n },\n },\n\n // Appearance variations\n outline: {\n backgroundColor: tokens.colorTransparentBackgroundSelected,\n ...shorthands.borderColor(tokens.colorNeutralStroke1),\n ...shorthands.borderWidth(tokens.strokeWidthThicker),\n\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n },\n\n ...createCustomFocusIndicatorStyle({\n ...shorthands.borderColor(tokens.colorNeutralStroke1),\n }),\n },\n primary: {\n backgroundColor: tokens.colorBrandBackgroundSelected,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForegroundOnBrand,\n\n ':hover': {\n backgroundColor: tokens.colorBrandBackgroundHover,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForegroundOnBrand,\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorBrandBackgroundPressed,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForegroundOnBrand,\n },\n },\n secondary: {\n /* The secondary styles are exactly the same as the base styles. */\n },\n subtle: {\n backgroundColor: tokens.colorSubtleBackgroundSelected,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForeground2Selected,\n\n ':hover': {\n backgroundColor: tokens.colorSubtleBackgroundHover,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForeground2Hover,\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForeground2Pressed,\n },\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackgroundSelected,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForeground2BrandSelected,\n\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForeground2BrandHover,\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n ...shorthands.borderColor('transparent'),\n color: tokens.colorNeutralForeground2BrandPressed,\n },\n },\n});\n\nconst useRootDisabledStyles = makeStyles({\n // Base styles\n base: {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),\n color: tokens.colorNeutralForegroundDisabled,\n\n ':hover': {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),\n color: tokens.colorNeutralForegroundDisabled,\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n\n // Appearance variations\n outline: {\n /* No styles */\n },\n primary: {\n ...shorthands.borderColor('transparent'),\n\n ':hover': {\n ...shorthands.borderColor('transparent'),\n },\n\n ':hover:active': {\n ...shorthands.borderColor('transparent'),\n },\n },\n secondary: {\n /* The secondary styles are exactly the same as the base styles. */\n },\n subtle: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderColor('transparent'),\n\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n ...shorthands.borderColor('transparent'),\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n ...shorthands.borderColor('transparent'),\n },\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderColor('transparent'),\n\n ':hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n ...shorthands.borderColor('transparent'),\n },\n\n ':hover:active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n ...shorthands.borderColor('transparent'),\n },\n },\n});\n\nconst useIconCheckedStyles = makeStyles({\n // Appearance variations\n subtleOrTransparent: {\n color: tokens.colorNeutralForeground2BrandSelected,\n },\n // High contrast styles\n highContrast: {\n '@media (forced-colors: active)': {\n forcedColorAdjust: 'auto',\n },\n },\n});\n\nconst usePrimaryHighContrastStyles = makeStyles({\n // Do not use primary variant high contrast styles for toggle buttons\n // otherwise there isn't enough difference between on/off states\n base: {\n '@media (forced-colors: active)': {\n backgroundColor: 'ButtonFace',\n ...shorthands.borderColor('ButtonBorder'),\n color: 'ButtonText',\n forcedColorAdjust: 'auto',\n },\n },\n\n disabled: {\n '@media (forced-colors: active)': {\n ...shorthands.borderColor('GrayText'),\n color: 'GrayText',\n\n ':focus': {\n ...shorthands.borderColor('GrayText'),\n },\n },\n },\n});\n\nexport const useToggleButtonStyles_unstable = (state: ToggleButtonState): ToggleButtonState => {\n 'use no memo';\n\n const rootCheckedStyles = useRootCheckedStyles();\n const rootDisabledStyles = useRootDisabledStyles();\n const iconCheckedStyles = useIconCheckedStyles();\n const primaryHighContrastStyles = usePrimaryHighContrastStyles();\n\n const { appearance, checked, disabled, disabledFocusable } = state;\n\n state.root.className = mergeClasses(\n toggleButtonClassNames.root,\n\n // Primary high contrast styles\n appearance === 'primary' && primaryHighContrastStyles.base,\n appearance === 'primary' && (disabled || disabledFocusable) && primaryHighContrastStyles.disabled,\n\n // Checked styles\n checked && rootCheckedStyles.base,\n checked && rootCheckedStyles.highContrast,\n appearance && checked && rootCheckedStyles[appearance],\n\n // Disabled styles\n (disabled || disabledFocusable) && rootDisabledStyles.base,\n appearance && (disabled || disabledFocusable) && rootDisabledStyles[appearance],\n\n // User provided class name\n state.root.className,\n );\n\n if (state.icon) {\n state.icon.className = mergeClasses(\n toggleButtonClassNames.icon,\n checked && (appearance === 'subtle' || appearance === 'transparent') && iconCheckedStyles.subtleOrTransparent,\n iconCheckedStyles.highContrast,\n state.icon.className,\n );\n }\n\n useButtonStyles_unstable(state);\n\n return state;\n};\n"],"names":["iconFilledClassName","iconRegularClassName","createCustomFocusIndicatorStyle","tokens","shorthands","mergeClasses","makeStyles","useButtonStyles_unstable","toggleButtonClassNames","root","icon","useRootCheckedStyles","base","backgroundColor","colorNeutralBackground1Selected","borderColor","colorNeutralStroke1","color","colorNeutralForeground1Selected","borderWidth","strokeWidthThin","display","colorNeutralBackground1Hover","colorNeutralStroke1Hover","colorNeutralForeground1Hover","colorNeutralBackground1Pressed","colorNeutralStroke1Pressed","colorNeutralForeground1Pressed","highContrast","forcedColorAdjust","border","outlineColor","outline","colorTransparentBackgroundSelected","strokeWidthThicker","colorTransparentBackgroundHover","colorTransparentBackgroundPressed","primary","colorBrandBackgroundSelected","colorNeutralForegroundOnBrand","colorBrandBackgroundHover","colorBrandBackgroundPressed","secondary","subtle","colorSubtleBackgroundSelected","colorNeutralForeground2Selected","colorSubtleBackgroundHover","colorNeutralForeground2Hover","colorSubtleBackgroundPressed","colorNeutralForeground2Pressed","transparent","colorNeutralForeground2BrandSelected","colorNeutralForeground2BrandHover","colorNeutralForeground2BrandPressed","useRootDisabledStyles","colorNeutralBackgroundDisabled","colorNeutralStrokeDisabled","colorNeutralForegroundDisabled","colorTransparentBackground","useIconCheckedStyles","subtleOrTransparent","usePrimaryHighContrastStyles","disabled","useToggleButtonStyles_unstable","state","rootCheckedStyles","rootDisabledStyles","iconCheckedStyles","primaryHighContrastStyles","appearance","checked","disabledFocusable","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}