@fluentui/react-button 0.0.0-nightly-20250703-1103.1 → 0.0.0-nightly-20250704-0407.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/package.json +10 -10
  3. package/lib/components/Button/useButtonStyles.styles.raw.js +0 -488
  4. package/lib/components/Button/useButtonStyles.styles.raw.js.map +0 -1
  5. package/lib/components/CompoundButton/useCompoundButtonStyles.styles.raw.js +0 -241
  6. package/lib/components/CompoundButton/useCompoundButtonStyles.styles.raw.js.map +0 -1
  7. package/lib/components/MenuButton/useMenuButtonStyles.styles.raw.js +0 -112
  8. package/lib/components/MenuButton/useMenuButtonStyles.styles.raw.js.map +0 -1
  9. package/lib/components/SplitButton/useSplitButtonStyles.styles.raw.js +0 -158
  10. package/lib/components/SplitButton/useSplitButtonStyles.styles.raw.js.map +0 -1
  11. package/lib/components/ToggleButton/useToggleButtonStyles.styles.raw.js +0 -226
  12. package/lib/components/ToggleButton/useToggleButtonStyles.styles.raw.js.map +0 -1
  13. package/lib-commonjs/components/Button/useButtonStyles.styles.raw.js +0 -495
  14. package/lib-commonjs/components/Button/useButtonStyles.styles.raw.js.map +0 -1
  15. package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.styles.raw.js +0 -253
  16. package/lib-commonjs/components/CompoundButton/useCompoundButtonStyles.styles.raw.js.map +0 -1
  17. package/lib-commonjs/components/MenuButton/useMenuButtonStyles.styles.raw.js +0 -129
  18. package/lib-commonjs/components/MenuButton/useMenuButtonStyles.styles.raw.js.map +0 -1
  19. package/lib-commonjs/components/SplitButton/useSplitButtonStyles.styles.raw.js +0 -174
  20. package/lib-commonjs/components/SplitButton/useSplitButtonStyles.styles.raw.js.map +0 -1
  21. package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.styles.raw.js +0 -237
  22. package/lib-commonjs/components/ToggleButton/useToggleButtonStyles.styles.raw.js.map +0 -1
@@ -1,226 +0,0 @@
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
- };
@@ -1 +0,0 @@
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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"}