@fluentui/react-tag-picker 9.6.6 → 9.7.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.
- package/CHANGELOG.md +30 -2
- package/lib/components/TagPickerButton/useTagPickerButtonStyles.styles.raw.js +113 -0
- package/lib/components/TagPickerButton/useTagPickerButtonStyles.styles.raw.js.map +1 -0
- package/lib/components/TagPickerControl/useTagPickerControlStyles.styles.raw.js +223 -0
- package/lib/components/TagPickerControl/useTagPickerControlStyles.styles.raw.js.map +1 -0
- package/lib/components/TagPickerGroup/useTagPickerGroupStyles.styles.raw.js +38 -0
- package/lib/components/TagPickerGroup/useTagPickerGroupStyles.styles.raw.js.map +1 -0
- package/lib/components/TagPickerInput/useTagPickerInputStyles.styles.raw.js +65 -0
- package/lib/components/TagPickerInput/useTagPickerInputStyles.styles.raw.js.map +1 -0
- package/lib/components/TagPickerList/useTagPickerListStyles.styles.raw.js +26 -0
- package/lib/components/TagPickerList/useTagPickerListStyles.styles.raw.js.map +1 -0
- package/lib/components/TagPickerOption/useTagPickerOptionStyles.styles.raw.js +51 -0
- package/lib/components/TagPickerOption/useTagPickerOptionStyles.styles.raw.js.map +1 -0
- package/lib/components/TagPickerOptionGroup/useTagPickerOptionGroupStyles.styles.raw.js +17 -0
- package/lib/components/TagPickerOptionGroup/useTagPickerOptionGroupStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/TagPickerButton/useTagPickerButtonStyles.styles.raw.js +129 -0
- package/lib-commonjs/components/TagPickerButton/useTagPickerButtonStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/TagPickerControl/useTagPickerControlStyles.styles.raw.js +245 -0
- package/lib-commonjs/components/TagPickerControl/useTagPickerControlStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/TagPickerGroup/useTagPickerGroupStyles.styles.raw.js +54 -0
- package/lib-commonjs/components/TagPickerGroup/useTagPickerGroupStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/TagPickerInput/useTagPickerInputStyles.styles.raw.js +81 -0
- package/lib-commonjs/components/TagPickerInput/useTagPickerInputStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/TagPickerList/useTagPickerListStyles.styles.raw.js +42 -0
- package/lib-commonjs/components/TagPickerList/useTagPickerListStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/TagPickerOption/useTagPickerOptionStyles.styles.raw.js +67 -0
- package/lib-commonjs/components/TagPickerOption/useTagPickerOptionStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/TagPickerOptionGroup/useTagPickerOptionGroupStyles.styles.raw.js +33 -0
- package/lib-commonjs/components/TagPickerOptionGroup/useTagPickerOptionGroupStyles.styles.raw.js.map +1 -0
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,40 @@
|
|
|
1
1
|
# Change Log - @fluentui/react-tag-picker
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Thu, 17 Jul 2025 13:45:49 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## [9.7.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tag-picker_v9.7.0)
|
|
8
|
+
|
|
9
|
+
Thu, 17 Jul 2025 13:45:49 GMT
|
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tag-picker_v9.6.7..@fluentui/react-tag-picker_v9.7.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-portal to v9.7.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
|
|
16
|
+
- Bump @fluentui/react-tabster to v9.26.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
|
|
17
|
+
- Bump @fluentui/react-aria to v9.15.4 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
|
|
18
|
+
- Bump @fluentui/react-combobox to v9.16.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
|
|
19
|
+
- Bump @fluentui/react-tags to v9.7.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
|
|
20
|
+
- Bump @fluentui/react-positioning to v9.20.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
|
|
21
|
+
- Bump @fluentui/react-field to v9.4.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
|
|
22
|
+
|
|
23
|
+
## [9.6.7](https://github.com/microsoft/fluentui/tree/@fluentui/react-tag-picker_v9.6.7)
|
|
24
|
+
|
|
25
|
+
Fri, 11 Jul 2025 15:59:24 GMT
|
|
26
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tag-picker_v9.6.6..@fluentui/react-tag-picker_v9.6.7)
|
|
27
|
+
|
|
28
|
+
### Patches
|
|
29
|
+
|
|
30
|
+
- Bump @fluentui/react-combobox to v9.15.7 ([PR #34807](https://github.com/microsoft/fluentui/pull/34807) by beachball)
|
|
31
|
+
- Bump @fluentui/react-tags to v9.6.7 ([PR #34807](https://github.com/microsoft/fluentui/pull/34807) by beachball)
|
|
32
|
+
- Bump @fluentui/react-positioning to v9.19.0 ([PR #34807](https://github.com/microsoft/fluentui/pull/34807) by beachball)
|
|
33
|
+
- Bump @fluentui/react-field to v9.3.7 ([PR #34807](https://github.com/microsoft/fluentui/pull/34807) by beachball)
|
|
34
|
+
|
|
7
35
|
## [9.6.6](https://github.com/microsoft/fluentui/tree/@fluentui/react-tag-picker_v9.6.6)
|
|
8
36
|
|
|
9
|
-
Fri, 04 Jul 2025 10:
|
|
37
|
+
Fri, 04 Jul 2025 10:02:48 GMT
|
|
10
38
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tag-picker_v9.6.5..@fluentui/react-tag-picker_v9.6.6)
|
|
11
39
|
|
|
12
40
|
### Patches
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { makeStyles, mergeClasses, shorthands } from '@griffel/react';
|
|
2
|
+
import { tokens, typographyStyles } from '@fluentui/react-theme';
|
|
3
|
+
export const tagPickerButtonClassNames = {
|
|
4
|
+
root: 'fui-TagPickerButton'
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Styles for the root slot
|
|
8
|
+
*/ const useStyles = makeStyles({
|
|
9
|
+
button: {
|
|
10
|
+
alignItems: 'center',
|
|
11
|
+
minHeight: '32px',
|
|
12
|
+
backgroundColor: tokens.colorTransparentBackground,
|
|
13
|
+
border: 'none',
|
|
14
|
+
boxSizing: 'border-box',
|
|
15
|
+
color: tokens.colorNeutralForeground1,
|
|
16
|
+
columnGap: tokens.spacingHorizontalXXS,
|
|
17
|
+
cursor: 'pointer',
|
|
18
|
+
fontFamily: tokens.fontFamilyBase,
|
|
19
|
+
textAlign: 'left',
|
|
20
|
+
flexGrow: 1,
|
|
21
|
+
'&:focus': {
|
|
22
|
+
outlineStyle: 'none'
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
placeholder: {
|
|
26
|
+
color: tokens.colorNeutralForeground4
|
|
27
|
+
},
|
|
28
|
+
// size variants
|
|
29
|
+
medium: {
|
|
30
|
+
...typographyStyles.caption1,
|
|
31
|
+
padding: `3px ${tokens.spacingHorizontalSNudge} 3px ${`calc(${tokens.spacingHorizontalSNudge} + ${tokens.spacingHorizontalXXS})`}`
|
|
32
|
+
},
|
|
33
|
+
large: {
|
|
34
|
+
...typographyStyles.body1,
|
|
35
|
+
padding: `5px ${tokens.spacingHorizontalMNudge} 5px ${`calc(${tokens.spacingHorizontalMNudge} + ${tokens.spacingHorizontalXXS})`}`
|
|
36
|
+
},
|
|
37
|
+
'extra-large': {
|
|
38
|
+
columnGap: tokens.spacingHorizontalSNudge,
|
|
39
|
+
...typographyStyles.body2,
|
|
40
|
+
padding: `7px ${tokens.spacingHorizontalM} 7px ${`calc(${tokens.spacingHorizontalM} + ${tokens.spacingHorizontalSNudge})`}`
|
|
41
|
+
},
|
|
42
|
+
// appearance variants
|
|
43
|
+
outline: {
|
|
44
|
+
backgroundColor: tokens.colorNeutralBackground1,
|
|
45
|
+
border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`,
|
|
46
|
+
borderBottomColor: tokens.colorNeutralStrokeAccessible
|
|
47
|
+
},
|
|
48
|
+
outlineInteractive: {
|
|
49
|
+
'&:hover': {
|
|
50
|
+
...shorthands.borderColor(tokens.colorNeutralStroke1Hover),
|
|
51
|
+
borderBottomColor: tokens.colorNeutralStrokeAccessible
|
|
52
|
+
},
|
|
53
|
+
'&:active': {
|
|
54
|
+
...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),
|
|
55
|
+
borderBottomColor: tokens.colorNeutralStrokeAccessible
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
underline: {
|
|
59
|
+
backgroundColor: tokens.colorTransparentBackground,
|
|
60
|
+
borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStrokeAccessible}`,
|
|
61
|
+
borderRadius: '0'
|
|
62
|
+
},
|
|
63
|
+
'filled-lighter': {
|
|
64
|
+
backgroundColor: tokens.colorNeutralBackground1,
|
|
65
|
+
border: `${tokens.strokeWidthThin} solid transparent`
|
|
66
|
+
},
|
|
67
|
+
'filled-darker': {
|
|
68
|
+
backgroundColor: tokens.colorNeutralBackground3,
|
|
69
|
+
border: `${tokens.strokeWidthThin} solid transparent`
|
|
70
|
+
},
|
|
71
|
+
invalid: {
|
|
72
|
+
':not(:focus-within),:hover:not(:focus-within)': {
|
|
73
|
+
...shorthands.borderColor(tokens.colorPaletteRedBorder2)
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
invalidUnderline: {
|
|
77
|
+
':not(:focus-within),:hover:not(:focus-within)': {
|
|
78
|
+
borderBottomColor: tokens.colorPaletteRedBorder2
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
disabled: {
|
|
82
|
+
cursor: 'not-allowed',
|
|
83
|
+
backgroundColor: tokens.colorTransparentBackground,
|
|
84
|
+
...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),
|
|
85
|
+
'@media (forced-colors: active)': {
|
|
86
|
+
...shorthands.borderColor('GrayText')
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
disabledText: {
|
|
90
|
+
color: tokens.colorNeutralForegroundDisabled,
|
|
91
|
+
cursor: 'not-allowed'
|
|
92
|
+
},
|
|
93
|
+
hidden: {
|
|
94
|
+
display: 'none'
|
|
95
|
+
},
|
|
96
|
+
visuallyHidden: {
|
|
97
|
+
clip: 'rect(0px, 0px, 0px, 0px)',
|
|
98
|
+
height: '1px',
|
|
99
|
+
margin: '-1px',
|
|
100
|
+
overflow: 'hidden',
|
|
101
|
+
padding: '0px',
|
|
102
|
+
width: '1px',
|
|
103
|
+
position: 'absolute'
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
/**
|
|
107
|
+
* Apply styling to the PickerButton slots based on the state
|
|
108
|
+
*/ export const useTagPickerButtonStyles_unstable = (state)=>{
|
|
109
|
+
'use no memo';
|
|
110
|
+
const styles = useStyles();
|
|
111
|
+
state.root.className = mergeClasses(tagPickerButtonClassNames.root, styles.button, styles[state.size], state.hasSelectedOption && styles.visuallyHidden, state.root.className);
|
|
112
|
+
return state;
|
|
113
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TagPickerButton/useTagPickerButtonStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { TagPickerButtonSlots, TagPickerButtonState } from './TagPickerButton.types';\n\nexport const tagPickerButtonClassNames: SlotClassNames<TagPickerButtonSlots> = {\n root: 'fui-TagPickerButton',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n button: {\n alignItems: 'center',\n minHeight: '32px',\n backgroundColor: tokens.colorTransparentBackground,\n border: 'none',\n boxSizing: 'border-box',\n color: tokens.colorNeutralForeground1,\n columnGap: tokens.spacingHorizontalXXS,\n cursor: 'pointer',\n fontFamily: tokens.fontFamilyBase,\n textAlign: 'left',\n flexGrow: 1,\n\n '&:focus': {\n outlineStyle: 'none',\n },\n },\n\n placeholder: {\n color: tokens.colorNeutralForeground4,\n },\n\n // size variants\n medium: {\n ...typographyStyles.caption1,\n padding: `3px ${\n tokens.spacingHorizontalSNudge\n } 3px ${`calc(${tokens.spacingHorizontalSNudge} + ${tokens.spacingHorizontalXXS})`}`,\n },\n large: {\n ...typographyStyles.body1,\n padding: `5px ${\n tokens.spacingHorizontalMNudge\n } 5px ${`calc(${tokens.spacingHorizontalMNudge} + ${tokens.spacingHorizontalXXS})`}`,\n },\n 'extra-large': {\n columnGap: tokens.spacingHorizontalSNudge,\n ...typographyStyles.body2,\n padding: `7px ${\n tokens.spacingHorizontalM\n } 7px ${`calc(${tokens.spacingHorizontalM} + ${tokens.spacingHorizontalSNudge})`}`,\n },\n\n // appearance variants\n outline: {\n backgroundColor: tokens.colorNeutralBackground1,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`,\n borderBottomColor: tokens.colorNeutralStrokeAccessible,\n },\n outlineInteractive: {\n '&:hover': {\n ...shorthands.borderColor(tokens.colorNeutralStroke1Hover),\n borderBottomColor: tokens.colorNeutralStrokeAccessible,\n },\n\n '&:active': {\n ...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),\n borderBottomColor: tokens.colorNeutralStrokeAccessible,\n },\n },\n underline: {\n backgroundColor: tokens.colorTransparentBackground,\n borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStrokeAccessible}`,\n borderRadius: '0',\n },\n 'filled-lighter': {\n backgroundColor: tokens.colorNeutralBackground1,\n border: `${tokens.strokeWidthThin} solid transparent`,\n },\n 'filled-darker': {\n backgroundColor: tokens.colorNeutralBackground3,\n border: `${tokens.strokeWidthThin} solid transparent`,\n },\n invalid: {\n ':not(:focus-within),:hover:not(:focus-within)': {\n ...shorthands.borderColor(tokens.colorPaletteRedBorder2),\n },\n },\n invalidUnderline: {\n ':not(:focus-within),:hover:not(:focus-within)': {\n borderBottomColor: tokens.colorPaletteRedBorder2,\n },\n },\n disabled: {\n cursor: 'not-allowed',\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),\n '@media (forced-colors: active)': {\n ...shorthands.borderColor('GrayText'),\n },\n },\n\n disabledText: {\n color: tokens.colorNeutralForegroundDisabled,\n cursor: 'not-allowed',\n },\n\n hidden: {\n display: 'none',\n },\n visuallyHidden: {\n clip: 'rect(0px, 0px, 0px, 0px)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0px',\n width: '1px',\n position: 'absolute',\n },\n});\n\n/**\n * Apply styling to the PickerButton slots based on the state\n */\nexport const useTagPickerButtonStyles_unstable = (state: TagPickerButtonState): TagPickerButtonState => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(\n tagPickerButtonClassNames.root,\n styles.button,\n styles[state.size],\n state.hasSelectedOption && styles.visuallyHidden,\n state.root.className,\n );\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","shorthands","tokens","typographyStyles","tagPickerButtonClassNames","root","useStyles","button","alignItems","minHeight","backgroundColor","colorTransparentBackground","border","boxSizing","color","colorNeutralForeground1","columnGap","spacingHorizontalXXS","cursor","fontFamily","fontFamilyBase","textAlign","flexGrow","outlineStyle","placeholder","colorNeutralForeground4","medium","caption1","padding","spacingHorizontalSNudge","large","body1","spacingHorizontalMNudge","body2","spacingHorizontalM","outline","colorNeutralBackground1","strokeWidthThin","colorNeutralStroke1","borderBottomColor","colorNeutralStrokeAccessible","outlineInteractive","borderColor","colorNeutralStroke1Hover","colorNeutralStroke1Pressed","underline","borderBottom","borderRadius","colorNeutralBackground3","invalid","colorPaletteRedBorder2","invalidUnderline","disabled","colorNeutralStrokeDisabled","disabledText","colorNeutralForegroundDisabled","hidden","display","visuallyHidden","clip","height","margin","overflow","width","position","useTagPickerButtonStyles_unstable","state","styles","className","size","hasSelectedOption"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { makeStyles, mergeClasses, shorthands } from '@griffel/react';
|
|
2
|
+
import { tokens } from '@fluentui/react-theme';
|
|
3
|
+
export const tagPickerControlClassNames = {
|
|
4
|
+
root: 'fui-TagPickerControl',
|
|
5
|
+
expandIcon: 'fui-TagPickerControl__expandIcon',
|
|
6
|
+
secondaryAction: 'fui-TagPickerControl__secondaryAction',
|
|
7
|
+
aside: 'fui-TagPickerControl__aside'
|
|
8
|
+
};
|
|
9
|
+
export const tagPickerControlAsideWidthToken = '--fui-TagPickerControl-aside-width';
|
|
10
|
+
/**
|
|
11
|
+
* Styles for the root slot
|
|
12
|
+
*/ const useStyles = makeStyles({
|
|
13
|
+
root: {
|
|
14
|
+
borderRadius: tokens.borderRadiusMedium,
|
|
15
|
+
paddingRight: `calc(${tokens.spacingHorizontalM} + var(${tagPickerControlAsideWidthToken}, 0px))`,
|
|
16
|
+
paddingLeft: tokens.spacingHorizontalM,
|
|
17
|
+
alignItems: 'center',
|
|
18
|
+
columnGap: tokens.spacingHorizontalXXS,
|
|
19
|
+
boxSizing: 'border-box',
|
|
20
|
+
display: 'flex',
|
|
21
|
+
minWidth: '250px',
|
|
22
|
+
position: 'relative',
|
|
23
|
+
flexWrap: 'wrap',
|
|
24
|
+
// windows high contrast mode focus indicator
|
|
25
|
+
':focus-within': {
|
|
26
|
+
outlineWidth: '2px',
|
|
27
|
+
outlineStyle: 'solid',
|
|
28
|
+
outlineColor: 'transparent'
|
|
29
|
+
},
|
|
30
|
+
// bottom focus border, shared with Input, Select, and SpinButton
|
|
31
|
+
'::after': {
|
|
32
|
+
boxSizing: 'border-box',
|
|
33
|
+
content: '""',
|
|
34
|
+
position: 'absolute',
|
|
35
|
+
left: '-1px',
|
|
36
|
+
bottom: '-1px',
|
|
37
|
+
right: '-1px',
|
|
38
|
+
height: `max(2px, ${tokens.borderRadiusMedium})`,
|
|
39
|
+
borderBottomLeftRadius: tokens.borderRadiusMedium,
|
|
40
|
+
borderBottomRightRadius: tokens.borderRadiusMedium,
|
|
41
|
+
borderBottom: `${tokens.strokeWidthThick} solid ${tokens.colorCompoundBrandStroke}`,
|
|
42
|
+
clipPath: 'inset(calc(100% - 2px) 0 0 0)',
|
|
43
|
+
transform: 'scaleX(0)',
|
|
44
|
+
transitionProperty: 'transform',
|
|
45
|
+
transitionDuration: tokens.durationUltraFast,
|
|
46
|
+
transitionDelay: tokens.curveAccelerateMid,
|
|
47
|
+
'@media screen and (prefers-reduced-motion: reduce)': {
|
|
48
|
+
transitionDuration: '0.01ms',
|
|
49
|
+
transitionDelay: '0.01ms'
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
':focus-within::after': {
|
|
53
|
+
transform: 'scaleX(1)',
|
|
54
|
+
transitionProperty: 'transform',
|
|
55
|
+
transitionDuration: tokens.durationNormal,
|
|
56
|
+
transitionDelay: tokens.curveDecelerateMid,
|
|
57
|
+
'@media screen and (prefers-reduced-motion: reduce)': {
|
|
58
|
+
transitionDuration: '0.01ms',
|
|
59
|
+
transitionDelay: '0.01ms'
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
':focus-within:active::after': {
|
|
63
|
+
borderBottomColor: tokens.colorCompoundBrandStrokePressed
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
listbox: {
|
|
67
|
+
boxShadow: `${tokens.shadow16}`,
|
|
68
|
+
borderRadius: tokens.borderRadiusMedium,
|
|
69
|
+
maxHeight: '80vh',
|
|
70
|
+
boxSizing: 'border-box'
|
|
71
|
+
},
|
|
72
|
+
listboxCollapsed: {
|
|
73
|
+
display: 'none'
|
|
74
|
+
},
|
|
75
|
+
// size variants
|
|
76
|
+
medium: {
|
|
77
|
+
minHeight: '32px'
|
|
78
|
+
},
|
|
79
|
+
large: {
|
|
80
|
+
minHeight: '40px'
|
|
81
|
+
},
|
|
82
|
+
'extra-large': {
|
|
83
|
+
minHeight: '44px'
|
|
84
|
+
},
|
|
85
|
+
// appearance variants
|
|
86
|
+
outline: {
|
|
87
|
+
backgroundColor: tokens.colorNeutralBackground1,
|
|
88
|
+
border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`,
|
|
89
|
+
borderBottomColor: tokens.colorNeutralStrokeAccessible
|
|
90
|
+
},
|
|
91
|
+
outlineInteractive: {
|
|
92
|
+
'&:hover': {
|
|
93
|
+
...shorthands.borderColor(tokens.colorNeutralStroke1Hover),
|
|
94
|
+
borderBottomColor: tokens.colorNeutralStrokeAccessibleHover
|
|
95
|
+
},
|
|
96
|
+
'&:active': {
|
|
97
|
+
...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),
|
|
98
|
+
borderBottomColor: tokens.colorNeutralStrokeAccessiblePressed
|
|
99
|
+
},
|
|
100
|
+
'&:focus-within': {
|
|
101
|
+
...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),
|
|
102
|
+
borderBottomColor: tokens.colorNeutralStrokeAccessiblePressed
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
underline: {
|
|
106
|
+
backgroundColor: tokens.colorTransparentBackground,
|
|
107
|
+
borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStrokeAccessible}`,
|
|
108
|
+
borderRadius: '0'
|
|
109
|
+
},
|
|
110
|
+
'filled-lighter': {
|
|
111
|
+
backgroundColor: tokens.colorNeutralBackground1,
|
|
112
|
+
border: `${tokens.strokeWidthThin} solid ${tokens.colorTransparentStroke}`
|
|
113
|
+
},
|
|
114
|
+
'filled-darker': {
|
|
115
|
+
backgroundColor: tokens.colorNeutralBackground3,
|
|
116
|
+
border: `${tokens.strokeWidthThin} solid ${tokens.colorTransparentStroke}`
|
|
117
|
+
},
|
|
118
|
+
invalid: {
|
|
119
|
+
':not(:focus-within),:hover:not(:focus-within)': {
|
|
120
|
+
...shorthands.borderColor(tokens.colorPaletteRedBorder2)
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
invalidUnderline: {
|
|
124
|
+
':not(:focus-within),:hover:not(:focus-within)': {
|
|
125
|
+
borderBottomColor: tokens.colorPaletteRedBorder2
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
disabled: {
|
|
129
|
+
cursor: 'not-allowed',
|
|
130
|
+
backgroundColor: tokens.colorTransparentBackground,
|
|
131
|
+
...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),
|
|
132
|
+
'@media (forced-colors: active)': {
|
|
133
|
+
...shorthands.borderColor('GrayText')
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
const useAsideStyles = makeStyles({
|
|
138
|
+
root: {
|
|
139
|
+
display: 'flex',
|
|
140
|
+
position: 'absolute',
|
|
141
|
+
top: '0',
|
|
142
|
+
right: tokens.spacingHorizontalM,
|
|
143
|
+
height: '100%',
|
|
144
|
+
cursor: 'text'
|
|
145
|
+
},
|
|
146
|
+
// size variants
|
|
147
|
+
medium: {
|
|
148
|
+
minHeight: '32px'
|
|
149
|
+
},
|
|
150
|
+
large: {
|
|
151
|
+
minHeight: '40px'
|
|
152
|
+
},
|
|
153
|
+
'extra-large': {
|
|
154
|
+
minHeight: '44px'
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
export const iconSizes = {
|
|
158
|
+
small: '16px',
|
|
159
|
+
medium: '20px',
|
|
160
|
+
large: '24px'
|
|
161
|
+
};
|
|
162
|
+
const useIconStyles = makeStyles({
|
|
163
|
+
icon: {
|
|
164
|
+
boxSizing: 'border-box',
|
|
165
|
+
color: tokens.colorNeutralStrokeAccessible,
|
|
166
|
+
cursor: 'pointer',
|
|
167
|
+
display: 'flex',
|
|
168
|
+
justifyContent: 'center',
|
|
169
|
+
alignItems: 'center',
|
|
170
|
+
alignSelf: 'flex-start',
|
|
171
|
+
fontSize: tokens.fontSizeBase500,
|
|
172
|
+
// the SVG must have display: block for accurate positioning
|
|
173
|
+
// otherwise an extra inline space is inserted after the svg element
|
|
174
|
+
'& svg': {
|
|
175
|
+
display: 'block'
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
// icon size variants
|
|
179
|
+
medium: {
|
|
180
|
+
fontSize: iconSizes.small,
|
|
181
|
+
marginLeft: tokens.spacingHorizontalXXS,
|
|
182
|
+
minHeight: '32px'
|
|
183
|
+
},
|
|
184
|
+
large: {
|
|
185
|
+
fontSize: iconSizes.medium,
|
|
186
|
+
marginLeft: tokens.spacingHorizontalXXS,
|
|
187
|
+
minHeight: '40px'
|
|
188
|
+
},
|
|
189
|
+
'extra-large': {
|
|
190
|
+
fontSize: iconSizes.large,
|
|
191
|
+
marginLeft: tokens.spacingHorizontalSNudge,
|
|
192
|
+
minHeight: '44px'
|
|
193
|
+
},
|
|
194
|
+
disabled: {
|
|
195
|
+
color: tokens.colorNeutralForegroundDisabled,
|
|
196
|
+
cursor: 'not-allowed'
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
const useSecondaryActionStyles = makeStyles({
|
|
200
|
+
root: {
|
|
201
|
+
display: 'flex'
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
/**
|
|
205
|
+
* Apply styling to the PickerControl slots based on the state
|
|
206
|
+
*/ export const useTagPickerControlStyles_unstable = (state)=>{
|
|
207
|
+
'use no memo';
|
|
208
|
+
const styles = useStyles();
|
|
209
|
+
const iconStyles = useIconStyles();
|
|
210
|
+
const asideStyles = useAsideStyles();
|
|
211
|
+
const secondaryActionStyles = useSecondaryActionStyles();
|
|
212
|
+
state.root.className = mergeClasses(tagPickerControlClassNames.root, styles.root, styles[state.size], styles[state.appearance], !state.disabled && state.appearance === 'outline' && styles.outlineInteractive, state.invalid && state.appearance !== 'underline' && styles.invalid, state.invalid && state.appearance === 'underline' && styles.invalidUnderline, state.disabled && styles.disabled, state.root.className);
|
|
213
|
+
if (state.aside) {
|
|
214
|
+
state.aside.className = mergeClasses(tagPickerControlClassNames.aside, asideStyles.root, asideStyles[state.size], state.aside.className);
|
|
215
|
+
}
|
|
216
|
+
if (state.expandIcon) {
|
|
217
|
+
state.expandIcon.className = mergeClasses(tagPickerControlClassNames.expandIcon, iconStyles.icon, iconStyles[state.size], state.disabled && iconStyles.disabled, state.expandIcon.className);
|
|
218
|
+
}
|
|
219
|
+
if (state.secondaryAction) {
|
|
220
|
+
state.secondaryAction.className = mergeClasses(tagPickerControlClassNames.secondaryAction, secondaryActionStyles.root, state.secondaryAction.className);
|
|
221
|
+
}
|
|
222
|
+
return state;
|
|
223
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TagPickerControl/useTagPickerControlStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport type {\n TagPickerControlInternalSlots,\n TagPickerControlSlots,\n TagPickerControlState,\n} from './TagPickerControl.types';\n\nexport const tagPickerControlClassNames: SlotClassNames<TagPickerControlSlots & TagPickerControlInternalSlots> = {\n root: 'fui-TagPickerControl',\n expandIcon: 'fui-TagPickerControl__expandIcon',\n secondaryAction: 'fui-TagPickerControl__secondaryAction',\n aside: 'fui-TagPickerControl__aside',\n};\n\nexport const tagPickerControlAsideWidthToken = '--fui-TagPickerControl-aside-width' as const;\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n borderRadius: tokens.borderRadiusMedium,\n paddingRight: `calc(${tokens.spacingHorizontalM} + var(${tagPickerControlAsideWidthToken}, 0px))`,\n paddingLeft: tokens.spacingHorizontalM,\n alignItems: 'center',\n columnGap: tokens.spacingHorizontalXXS,\n boxSizing: 'border-box',\n display: 'flex',\n minWidth: '250px',\n position: 'relative',\n flexWrap: 'wrap',\n\n // windows high contrast mode focus indicator\n ':focus-within': {\n outlineWidth: '2px',\n outlineStyle: 'solid',\n outlineColor: 'transparent',\n },\n\n // bottom focus border, shared with Input, Select, and SpinButton\n '::after': {\n boxSizing: 'border-box',\n content: '\"\"',\n position: 'absolute',\n left: '-1px',\n bottom: '-1px',\n right: '-1px',\n height: `max(2px, ${tokens.borderRadiusMedium})`,\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n borderBottom: `${tokens.strokeWidthThick} solid ${tokens.colorCompoundBrandStroke}`,\n clipPath: 'inset(calc(100% - 2px) 0 0 0)',\n transform: 'scaleX(0)',\n transitionProperty: 'transform',\n transitionDuration: tokens.durationUltraFast,\n transitionDelay: tokens.curveAccelerateMid,\n\n '@media screen and (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n transitionDelay: '0.01ms',\n },\n },\n ':focus-within::after': {\n transform: 'scaleX(1)',\n transitionProperty: 'transform',\n transitionDuration: tokens.durationNormal,\n transitionDelay: tokens.curveDecelerateMid,\n\n '@media screen and (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n transitionDelay: '0.01ms',\n },\n },\n ':focus-within:active::after': {\n borderBottomColor: tokens.colorCompoundBrandStrokePressed,\n },\n },\n\n listbox: {\n boxShadow: `${tokens.shadow16}`,\n borderRadius: tokens.borderRadiusMedium,\n maxHeight: '80vh',\n boxSizing: 'border-box',\n },\n\n listboxCollapsed: {\n display: 'none',\n },\n\n // size variants\n medium: {\n minHeight: '32px',\n },\n large: {\n minHeight: '40px',\n },\n 'extra-large': {\n minHeight: '44px',\n },\n\n // appearance variants\n outline: {\n backgroundColor: tokens.colorNeutralBackground1,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStroke1}`,\n borderBottomColor: tokens.colorNeutralStrokeAccessible,\n },\n\n outlineInteractive: {\n '&:hover': {\n ...shorthands.borderColor(tokens.colorNeutralStroke1Hover),\n borderBottomColor: tokens.colorNeutralStrokeAccessibleHover,\n },\n\n '&:active': {\n ...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),\n borderBottomColor: tokens.colorNeutralStrokeAccessiblePressed,\n },\n\n '&:focus-within': {\n ...shorthands.borderColor(tokens.colorNeutralStroke1Pressed),\n borderBottomColor: tokens.colorNeutralStrokeAccessiblePressed,\n },\n },\n underline: {\n backgroundColor: tokens.colorTransparentBackground,\n borderBottom: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralStrokeAccessible}`,\n borderRadius: '0',\n },\n 'filled-lighter': {\n backgroundColor: tokens.colorNeutralBackground1,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorTransparentStroke}`,\n },\n 'filled-darker': {\n backgroundColor: tokens.colorNeutralBackground3,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorTransparentStroke}`,\n },\n invalid: {\n ':not(:focus-within),:hover:not(:focus-within)': {\n ...shorthands.borderColor(tokens.colorPaletteRedBorder2),\n },\n },\n invalidUnderline: {\n ':not(:focus-within),:hover:not(:focus-within)': {\n borderBottomColor: tokens.colorPaletteRedBorder2,\n },\n },\n\n disabled: {\n cursor: 'not-allowed',\n backgroundColor: tokens.colorTransparentBackground,\n ...shorthands.borderColor(tokens.colorNeutralStrokeDisabled),\n '@media (forced-colors: active)': {\n ...shorthands.borderColor('GrayText'),\n },\n },\n});\n\nconst useAsideStyles = makeStyles({\n root: {\n display: 'flex',\n position: 'absolute',\n top: '0',\n right: tokens.spacingHorizontalM,\n height: '100%',\n cursor: 'text',\n },\n // size variants\n medium: {\n minHeight: '32px',\n },\n large: {\n minHeight: '40px',\n },\n 'extra-large': {\n minHeight: '44px',\n },\n});\n\nexport const iconSizes = {\n small: '16px',\n medium: '20px',\n large: '24px',\n};\n\nconst useIconStyles = makeStyles({\n icon: {\n boxSizing: 'border-box',\n color: tokens.colorNeutralStrokeAccessible,\n cursor: 'pointer',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'flex-start',\n fontSize: tokens.fontSizeBase500,\n // the SVG must have display: block for accurate positioning\n // otherwise an extra inline space is inserted after the svg element\n '& svg': {\n display: 'block',\n },\n },\n // icon size variants\n medium: {\n fontSize: iconSizes.small,\n marginLeft: tokens.spacingHorizontalXXS,\n minHeight: '32px',\n },\n large: {\n fontSize: iconSizes.medium,\n marginLeft: tokens.spacingHorizontalXXS,\n minHeight: '40px',\n },\n 'extra-large': {\n fontSize: iconSizes.large,\n marginLeft: tokens.spacingHorizontalSNudge,\n minHeight: '44px',\n },\n disabled: {\n color: tokens.colorNeutralForegroundDisabled,\n cursor: 'not-allowed',\n },\n});\n\nconst useSecondaryActionStyles = makeStyles({\n root: { display: 'flex' },\n});\n\n/**\n * Apply styling to the PickerControl slots based on the state\n */\nexport const useTagPickerControlStyles_unstable = (state: TagPickerControlState): TagPickerControlState => {\n 'use no memo';\n\n const styles = useStyles();\n const iconStyles = useIconStyles();\n const asideStyles = useAsideStyles();\n const secondaryActionStyles = useSecondaryActionStyles();\n state.root.className = mergeClasses(\n tagPickerControlClassNames.root,\n styles.root,\n styles[state.size],\n styles[state.appearance],\n !state.disabled && state.appearance === 'outline' && styles.outlineInteractive,\n state.invalid && state.appearance !== 'underline' && styles.invalid,\n state.invalid && state.appearance === 'underline' && styles.invalidUnderline,\n state.disabled && styles.disabled,\n state.root.className,\n );\n\n if (state.aside) {\n state.aside.className = mergeClasses(\n tagPickerControlClassNames.aside,\n asideStyles.root,\n asideStyles[state.size],\n state.aside.className,\n );\n }\n\n if (state.expandIcon) {\n state.expandIcon.className = mergeClasses(\n tagPickerControlClassNames.expandIcon,\n iconStyles.icon,\n iconStyles[state.size],\n state.disabled && iconStyles.disabled,\n state.expandIcon.className,\n );\n }\n\n if (state.secondaryAction) {\n state.secondaryAction.className = mergeClasses(\n tagPickerControlClassNames.secondaryAction,\n secondaryActionStyles.root,\n state.secondaryAction.className,\n );\n }\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","shorthands","tokens","tagPickerControlClassNames","root","expandIcon","secondaryAction","aside","tagPickerControlAsideWidthToken","useStyles","borderRadius","borderRadiusMedium","paddingRight","spacingHorizontalM","paddingLeft","alignItems","columnGap","spacingHorizontalXXS","boxSizing","display","minWidth","position","flexWrap","outlineWidth","outlineStyle","outlineColor","content","left","bottom","right","height","borderBottomLeftRadius","borderBottomRightRadius","borderBottom","strokeWidthThick","colorCompoundBrandStroke","clipPath","transform","transitionProperty","transitionDuration","durationUltraFast","transitionDelay","curveAccelerateMid","durationNormal","curveDecelerateMid","borderBottomColor","colorCompoundBrandStrokePressed","listbox","boxShadow","shadow16","maxHeight","listboxCollapsed","medium","minHeight","large","outline","backgroundColor","colorNeutralBackground1","border","strokeWidthThin","colorNeutralStroke1","colorNeutralStrokeAccessible","outlineInteractive","borderColor","colorNeutralStroke1Hover","colorNeutralStrokeAccessibleHover","colorNeutralStroke1Pressed","colorNeutralStrokeAccessiblePressed","underline","colorTransparentBackground","colorTransparentStroke","colorNeutralBackground3","invalid","colorPaletteRedBorder2","invalidUnderline","disabled","cursor","colorNeutralStrokeDisabled","useAsideStyles","top","iconSizes","small","useIconStyles","icon","color","justifyContent","alignSelf","fontSize","fontSizeBase500","marginLeft","spacingHorizontalSNudge","colorNeutralForegroundDisabled","useSecondaryActionStyles","useTagPickerControlStyles_unstable","state","styles","iconStyles","asideStyles","secondaryActionStyles","className","size","appearance"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { makeStyles, mergeClasses } from '@griffel/react';
|
|
2
|
+
import { useTagGroupStyles_unstable } from '@fluentui/react-tags';
|
|
3
|
+
import { tokens } from '@fluentui/react-theme';
|
|
4
|
+
import { tagSizeToTagPickerSize } from '../../utils/tagPicker2Tag';
|
|
5
|
+
export const tagPickerGroupClassNames = {
|
|
6
|
+
root: 'fui-TagPickerGroup'
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Styles for the root slot
|
|
10
|
+
*/ const useStyles = makeStyles({
|
|
11
|
+
root: {
|
|
12
|
+
flexWrap: 'wrap',
|
|
13
|
+
boxSizing: 'border-box',
|
|
14
|
+
cursor: 'text'
|
|
15
|
+
},
|
|
16
|
+
// size variants
|
|
17
|
+
medium: {
|
|
18
|
+
padding: `${tokens.spacingVerticalSNudge} 0 ${tokens.spacingVerticalSNudge} 0`,
|
|
19
|
+
gap: tokens.spacingHorizontalXS
|
|
20
|
+
},
|
|
21
|
+
large: {
|
|
22
|
+
padding: `${tokens.spacingVerticalS} 0 ${tokens.spacingVerticalS} 0`,
|
|
23
|
+
gap: tokens.spacingHorizontalSNudge
|
|
24
|
+
},
|
|
25
|
+
'extra-large': {
|
|
26
|
+
padding: `${tokens.spacingVerticalS} 0 ${tokens.spacingVerticalS} 0`,
|
|
27
|
+
gap: tokens.spacingHorizontalSNudge
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
/**
|
|
31
|
+
* Apply styling to the TagPickerGroup slots based on the state
|
|
32
|
+
*/ export const useTagPickerGroupStyles_unstable = (state)=>{
|
|
33
|
+
'use no memo';
|
|
34
|
+
useTagGroupStyles_unstable(state);
|
|
35
|
+
const styles = useStyles();
|
|
36
|
+
state.root.className = mergeClasses(tagPickerGroupClassNames.root, styles[tagSizeToTagPickerSize(state.size)], styles.root, state.root.className);
|
|
37
|
+
return state;
|
|
38
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TagPickerGroup/useTagPickerGroupStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { TagPickerGroupSlots, TagPickerGroupState } from './TagPickerGroup.types';\nimport { useTagGroupStyles_unstable } from '@fluentui/react-tags';\nimport { tokens } from '@fluentui/react-theme';\nimport { tagSizeToTagPickerSize } from '../../utils/tagPicker2Tag';\n\nexport const tagPickerGroupClassNames: SlotClassNames<TagPickerGroupSlots> = {\n root: 'fui-TagPickerGroup',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n flexWrap: 'wrap',\n boxSizing: 'border-box',\n cursor: 'text',\n },\n // size variants\n medium: {\n padding: `${tokens.spacingVerticalSNudge} 0 ${tokens.spacingVerticalSNudge} 0`,\n gap: tokens.spacingHorizontalXS,\n },\n large: {\n padding: `${tokens.spacingVerticalS} 0 ${tokens.spacingVerticalS} 0`,\n gap: tokens.spacingHorizontalSNudge,\n },\n 'extra-large': {\n padding: `${tokens.spacingVerticalS} 0 ${tokens.spacingVerticalS} 0`,\n gap: tokens.spacingHorizontalSNudge,\n },\n});\n\n/**\n * Apply styling to the TagPickerGroup slots based on the state\n */\nexport const useTagPickerGroupStyles_unstable = (state: TagPickerGroupState): TagPickerGroupState => {\n 'use no memo';\n\n useTagGroupStyles_unstable(state);\n const styles = useStyles();\n state.root.className = mergeClasses(\n tagPickerGroupClassNames.root,\n styles[tagSizeToTagPickerSize(state.size)],\n styles.root,\n state.root.className,\n );\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","useTagGroupStyles_unstable","tokens","tagSizeToTagPickerSize","tagPickerGroupClassNames","root","useStyles","flexWrap","boxSizing","cursor","medium","padding","spacingVerticalSNudge","gap","spacingHorizontalXS","large","spacingVerticalS","spacingHorizontalSNudge","useTagPickerGroupStyles_unstable","state","styles","className","size"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAG1D,SAASC,0BAA0B,QAAQ,uBAAuB;AAClE,SAASC,MAAM,QAAQ,wBAAwB;AAC/C,SAASC,sBAAsB,QAAQ,4BAA4B;AAEnE,OAAO,MAAMC,2BAAgE;IAC3EC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYP,WAAW;IAC3BM,MAAM;QACJE,UAAU;QACVC,WAAW;QACXC,QAAQ;IACV;IACA,gBAAgB;IAChBC,QAAQ;QACNC,SAAS,CAAC,EAAET,OAAOU,qBAAqB,CAAC,GAAG,EAAEV,OAAOU,qBAAqB,CAAC,EAAE,CAAC;QAC9EC,KAAKX,OAAOY,mBAAmB;IACjC;IACAC,OAAO;QACLJ,SAAS,CAAC,EAAET,OAAOc,gBAAgB,CAAC,GAAG,EAAEd,OAAOc,gBAAgB,CAAC,EAAE,CAAC;QACpEH,KAAKX,OAAOe,uBAAuB;IACrC;IACA,eAAe;QACbN,SAAS,CAAC,EAAET,OAAOc,gBAAgB,CAAC,GAAG,EAAEd,OAAOc,gBAAgB,CAAC,EAAE,CAAC;QACpEH,KAAKX,OAAOe,uBAAuB;IACrC;AACF;AAEA;;CAEC,GACD,OAAO,MAAMC,mCAAmC,CAACC;IAC/C;IAEAlB,2BAA2BkB;IAC3B,MAAMC,SAASd;IACfa,MAAMd,IAAI,CAACgB,SAAS,GAAGrB,aACrBI,yBAAyBC,IAAI,EAC7Be,MAAM,CAACjB,uBAAuBgB,MAAMG,IAAI,EAAE,EAC1CF,OAAOf,IAAI,EACXc,MAAMd,IAAI,CAACgB,SAAS;IAGtB,OAAOF;AACT,EAAE"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';
|
|
2
|
+
import { typographyStyles, tokens } from '@fluentui/react-theme';
|
|
3
|
+
import { tagPickerInputTokens } from '../../utils/tokens';
|
|
4
|
+
export const tagPickerInputClassNames = {
|
|
5
|
+
root: 'fui-TagPickerInput'
|
|
6
|
+
};
|
|
7
|
+
const useBaseStyle = makeResetStyles({
|
|
8
|
+
backgroundColor: tokens.colorTransparentBackground,
|
|
9
|
+
color: tokens.colorNeutralForeground1,
|
|
10
|
+
fontFamily: tokens.fontFamilyBase,
|
|
11
|
+
boxSizing: 'border-box',
|
|
12
|
+
'&:focus': {
|
|
13
|
+
outlineStyle: 'none'
|
|
14
|
+
},
|
|
15
|
+
'&::placeholder': {
|
|
16
|
+
color: tokens.colorNeutralForeground4,
|
|
17
|
+
opacity: 1
|
|
18
|
+
},
|
|
19
|
+
'&::after': {
|
|
20
|
+
visibility: 'hidden',
|
|
21
|
+
whiteSpace: 'pre-wrap'
|
|
22
|
+
},
|
|
23
|
+
border: 'none',
|
|
24
|
+
minWidth: '24px',
|
|
25
|
+
maxWidth: '100%',
|
|
26
|
+
// by default width is 0,
|
|
27
|
+
// it will be calculated based on the requirement of stretching the component to 100% width
|
|
28
|
+
// see setTagPickerInputStretchStyle method for more details
|
|
29
|
+
width: tagPickerInputTokens.width,
|
|
30
|
+
flexGrow: 1
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Styles for the root slot
|
|
34
|
+
*/ const useStyles = makeStyles({
|
|
35
|
+
// size variants
|
|
36
|
+
medium: {
|
|
37
|
+
...typographyStyles.body1,
|
|
38
|
+
padding: `${tokens.spacingVerticalSNudge} 0 ${tokens.spacingVerticalSNudge} 0`
|
|
39
|
+
},
|
|
40
|
+
large: {
|
|
41
|
+
...typographyStyles.body1,
|
|
42
|
+
padding: `${tokens.spacingVerticalMNudge} 0 ${tokens.spacingVerticalMNudge} 0`
|
|
43
|
+
},
|
|
44
|
+
'extra-large': {
|
|
45
|
+
...typographyStyles.body1,
|
|
46
|
+
padding: `${tokens.spacingVerticalM} 0 ${tokens.spacingVerticalM} 0`
|
|
47
|
+
},
|
|
48
|
+
disabled: {
|
|
49
|
+
color: tokens.colorNeutralForegroundDisabled,
|
|
50
|
+
backgroundColor: tokens.colorTransparentBackground,
|
|
51
|
+
cursor: 'not-allowed',
|
|
52
|
+
'::placeholder': {
|
|
53
|
+
color: tokens.colorNeutralForegroundDisabled
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
/**
|
|
58
|
+
* Apply styling to the TagPickerInput slots based on the state
|
|
59
|
+
*/ export const useTagPickerInputStyles_unstable = (state)=>{
|
|
60
|
+
'use no memo';
|
|
61
|
+
const baseStyle = useBaseStyle();
|
|
62
|
+
const styles = useStyles();
|
|
63
|
+
state.root.className = mergeClasses(tagPickerInputClassNames.root, baseStyle, styles[state.size], state.disabled && styles.disabled, state.root.className);
|
|
64
|
+
return state;
|
|
65
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TagPickerInput/useTagPickerInputStyles.styles.ts"],"sourcesContent":["import { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';\nimport { typographyStyles, tokens } from '@fluentui/react-theme';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { TagPickerInputSlots, TagPickerInputState } from './TagPickerInput.types';\nimport { tagPickerInputTokens } from '../../utils/tokens';\n\nexport const tagPickerInputClassNames: SlotClassNames<TagPickerInputSlots> = {\n root: 'fui-TagPickerInput',\n};\n\nconst useBaseStyle = makeResetStyles({\n backgroundColor: tokens.colorTransparentBackground,\n color: tokens.colorNeutralForeground1,\n fontFamily: tokens.fontFamilyBase,\n boxSizing: 'border-box',\n\n '&:focus': {\n outlineStyle: 'none',\n },\n '&::placeholder': {\n color: tokens.colorNeutralForeground4,\n opacity: 1,\n },\n '&::after': {\n visibility: 'hidden',\n whiteSpace: 'pre-wrap',\n },\n border: 'none',\n minWidth: '24px',\n maxWidth: '100%',\n // by default width is 0,\n // it will be calculated based on the requirement of stretching the component to 100% width\n // see setTagPickerInputStretchStyle method for more details\n width: tagPickerInputTokens.width,\n flexGrow: 1,\n});\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n // size variants\n medium: {\n ...typographyStyles.body1,\n padding: `${tokens.spacingVerticalSNudge} 0 ${tokens.spacingVerticalSNudge} 0`,\n },\n large: {\n ...typographyStyles.body1,\n padding: `${tokens.spacingVerticalMNudge} 0 ${tokens.spacingVerticalMNudge} 0`,\n },\n 'extra-large': {\n ...typographyStyles.body1,\n padding: `${tokens.spacingVerticalM} 0 ${tokens.spacingVerticalM} 0`,\n },\n disabled: {\n color: tokens.colorNeutralForegroundDisabled,\n backgroundColor: tokens.colorTransparentBackground,\n cursor: 'not-allowed',\n '::placeholder': {\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n});\n\n/**\n * Apply styling to the TagPickerInput slots based on the state\n */\nexport const useTagPickerInputStyles_unstable = (state: TagPickerInputState): TagPickerInputState => {\n 'use no memo';\n\n const baseStyle = useBaseStyle();\n const styles = useStyles();\n state.root.className = mergeClasses(\n tagPickerInputClassNames.root,\n baseStyle,\n styles[state.size],\n state.disabled && styles.disabled,\n state.root.className,\n );\n return state;\n};\n"],"names":["makeResetStyles","makeStyles","mergeClasses","typographyStyles","tokens","tagPickerInputTokens","tagPickerInputClassNames","root","useBaseStyle","backgroundColor","colorTransparentBackground","color","colorNeutralForeground1","fontFamily","fontFamilyBase","boxSizing","outlineStyle","colorNeutralForeground4","opacity","visibility","whiteSpace","border","minWidth","maxWidth","width","flexGrow","useStyles","medium","body1","padding","spacingVerticalSNudge","large","spacingVerticalMNudge","spacingVerticalM","disabled","colorNeutralForegroundDisabled","cursor","useTagPickerInputStyles_unstable","state","baseStyle","styles","className","size"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,eAAe,EAAEC,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC3E,SAASC,gBAAgB,EAAEC,MAAM,QAAQ,wBAAwB;AAGjE,SAASC,oBAAoB,QAAQ,qBAAqB;AAE1D,OAAO,MAAMC,2BAAgE;IAC3EC,MAAM;AACR,EAAE;AAEF,MAAMC,eAAeR,gBAAgB;IACnCS,iBAAiBL,OAAOM,0BAA0B;IAClDC,OAAOP,OAAOQ,uBAAuB;IACrCC,YAAYT,OAAOU,cAAc;IACjCC,WAAW;IAEX,WAAW;QACTC,cAAc;IAChB;IACA,kBAAkB;QAChBL,OAAOP,OAAOa,uBAAuB;QACrCC,SAAS;IACX;IACA,YAAY;QACVC,YAAY;QACZC,YAAY;IACd;IACAC,QAAQ;IACRC,UAAU;IACVC,UAAU;IACV,yBAAyB;IACzB,2FAA2F;IAC3F,4DAA4D;IAC5DC,OAAOnB,qBAAqBmB,KAAK;IACjCC,UAAU;AACZ;AAEA;;CAEC,GACD,MAAMC,YAAYzB,WAAW;IAC3B,gBAAgB;IAChB0B,QAAQ;QACN,GAAGxB,iBAAiByB,KAAK;QACzBC,SAAS,CAAC,EAAEzB,OAAO0B,qBAAqB,CAAC,GAAG,EAAE1B,OAAO0B,qBAAqB,CAAC,EAAE,CAAC;IAChF;IACAC,OAAO;QACL,GAAG5B,iBAAiByB,KAAK;QACzBC,SAAS,CAAC,EAAEzB,OAAO4B,qBAAqB,CAAC,GAAG,EAAE5B,OAAO4B,qBAAqB,CAAC,EAAE,CAAC;IAChF;IACA,eAAe;QACb,GAAG7B,iBAAiByB,KAAK;QACzBC,SAAS,CAAC,EAAEzB,OAAO6B,gBAAgB,CAAC,GAAG,EAAE7B,OAAO6B,gBAAgB,CAAC,EAAE,CAAC;IACtE;IACAC,UAAU;QACRvB,OAAOP,OAAO+B,8BAA8B;QAC5C1B,iBAAiBL,OAAOM,0BAA0B;QAClD0B,QAAQ;QACR,iBAAiB;YACfzB,OAAOP,OAAO+B,8BAA8B;QAC9C;IACF;AACF;AAEA;;CAEC,GACD,OAAO,MAAME,mCAAmC,CAACC;IAC/C;IAEA,MAAMC,YAAY/B;IAClB,MAAMgC,SAASd;IACfY,MAAM/B,IAAI,CAACkC,SAAS,GAAGvC,aACrBI,yBAAyBC,IAAI,EAC7BgC,WACAC,MAAM,CAACF,MAAMI,IAAI,CAAC,EAClBJ,MAAMJ,QAAQ,IAAIM,OAAON,QAAQ,EACjCI,MAAM/B,IAAI,CAACkC,SAAS;IAEtB,OAAOH;AACT,EAAE"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { makeStyles, mergeClasses } from '@griffel/react';
|
|
2
|
+
import { tokens } from '@fluentui/react-theme';
|
|
3
|
+
export const tagPickerListClassNames = {
|
|
4
|
+
root: 'fui-TagPickerList'
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Styles for the root slot
|
|
8
|
+
*/ const useStyles = makeStyles({
|
|
9
|
+
root: {
|
|
10
|
+
boxShadow: `${tokens.shadow16}`,
|
|
11
|
+
borderRadius: tokens.borderRadiusMedium,
|
|
12
|
+
maxHeight: '80vh',
|
|
13
|
+
boxSizing: 'border-box'
|
|
14
|
+
},
|
|
15
|
+
collapsed: {
|
|
16
|
+
display: 'none'
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Apply styling to the TagPickerList slots based on the state
|
|
21
|
+
*/ export const useTagPickerListStyles_unstable = (state)=>{
|
|
22
|
+
'use no memo';
|
|
23
|
+
const styles = useStyles();
|
|
24
|
+
state.root.className = mergeClasses(tagPickerListClassNames.root, styles.root, !state.open && styles.collapsed, state.root.className);
|
|
25
|
+
return state;
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TagPickerList/useTagPickerListStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { TagPickerListSlots, TagPickerListState } from './TagPickerList.types';\n\nexport const tagPickerListClassNames: SlotClassNames<TagPickerListSlots> = {\n root: 'fui-TagPickerList',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n boxShadow: `${tokens.shadow16}`,\n borderRadius: tokens.borderRadiusMedium,\n maxHeight: '80vh',\n boxSizing: 'border-box',\n },\n\n collapsed: {\n display: 'none',\n },\n});\n\n/**\n * Apply styling to the TagPickerList slots based on the state\n */\nexport const useTagPickerListStyles_unstable = (state: TagPickerListState): TagPickerListState => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(\n tagPickerListClassNames.root,\n styles.root,\n !state.open && styles.collapsed,\n state.root.className,\n );\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","tagPickerListClassNames","root","useStyles","boxShadow","shadow16","borderRadius","borderRadiusMedium","maxHeight","boxSizing","collapsed","display","useTagPickerListStyles_unstable","state","styles","className","open"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,MAAM,QAAQ,wBAAwB;AAI/C,OAAO,MAAMC,0BAA8D;IACzEC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYL,WAAW;IAC3BI,MAAM;QACJE,WAAW,CAAC,EAAEJ,OAAOK,QAAQ,CAAC,CAAC;QAC/BC,cAAcN,OAAOO,kBAAkB;QACvCC,WAAW;QACXC,WAAW;IACb;IAEAC,WAAW;QACTC,SAAS;IACX;AACF;AAEA;;CAEC,GACD,OAAO,MAAMC,kCAAkC,CAACC;IAC9C;IAEA,MAAMC,SAASX;IACfU,MAAMX,IAAI,CAACa,SAAS,GAAGhB,aACrBE,wBAAwBC,IAAI,EAC5BY,OAAOZ,IAAI,EACX,CAACW,MAAMG,IAAI,IAAIF,OAAOJ,SAAS,EAC/BG,MAAMX,IAAI,CAACa,SAAS;IAEtB,OAAOF;AACT,EAAE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { makeResetStyles, makeStyles, mergeClasses } from '@griffel/react';
|
|
2
|
+
import { useOptionStyles_unstable } from '@fluentui/react-combobox';
|
|
3
|
+
import { typographyStyles } from '@fluentui/react-theme';
|
|
4
|
+
export const tagPickerOptionClassNames = {
|
|
5
|
+
root: 'fui-TagPickerOption',
|
|
6
|
+
media: 'fui-TagPickerOption__media',
|
|
7
|
+
secondaryContent: 'fui-TagPickerOption__secondaryContent'
|
|
8
|
+
};
|
|
9
|
+
const useRootBaseStyle = makeResetStyles({
|
|
10
|
+
display: 'flex',
|
|
11
|
+
alignItems: 'center'
|
|
12
|
+
});
|
|
13
|
+
const useRootStyles = makeStyles({
|
|
14
|
+
secondaryContent: {
|
|
15
|
+
display: 'grid',
|
|
16
|
+
gridTemplateColumns: 'auto 1fr'
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const useSecondaryContentBaseStyle = makeResetStyles({
|
|
20
|
+
gridColumnStart: 2,
|
|
21
|
+
gridRowStart: 2,
|
|
22
|
+
...typographyStyles.caption1
|
|
23
|
+
});
|
|
24
|
+
const useMediaBaseStyle = makeResetStyles({
|
|
25
|
+
gridRowStart: 'span 2'
|
|
26
|
+
});
|
|
27
|
+
/**
|
|
28
|
+
* Apply styling to the TagPickerOption slots based on the state
|
|
29
|
+
*/ export const useTagPickerOptionStyles_unstable = (state)=>{
|
|
30
|
+
'use no memo';
|
|
31
|
+
const rootBaseStyle = useRootBaseStyle();
|
|
32
|
+
const rootStyles = useRootStyles();
|
|
33
|
+
const secondaryContentBaseStyle = useSecondaryContentBaseStyle();
|
|
34
|
+
const mediaBaseStyle = useMediaBaseStyle();
|
|
35
|
+
state.root.className = mergeClasses(tagPickerOptionClassNames.root, rootBaseStyle, state.secondaryContent && rootStyles.secondaryContent, state.root.className);
|
|
36
|
+
useOptionStyles_unstable({
|
|
37
|
+
...state,
|
|
38
|
+
active: false,
|
|
39
|
+
disabled: false,
|
|
40
|
+
focusVisible: false,
|
|
41
|
+
checkIcon: undefined,
|
|
42
|
+
selected: false
|
|
43
|
+
});
|
|
44
|
+
if (state.media) {
|
|
45
|
+
state.media.className = mergeClasses(tagPickerOptionClassNames.media, mediaBaseStyle, state.media.className);
|
|
46
|
+
}
|
|
47
|
+
if (state.secondaryContent) {
|
|
48
|
+
state.secondaryContent.className = mergeClasses(tagPickerOptionClassNames.secondaryContent, secondaryContentBaseStyle, state.secondaryContent.className);
|
|
49
|
+
}
|
|
50
|
+
return state;
|
|
51
|
+
};
|