@fluentui/react-color-picker 9.1.2 → 9.2.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 +21 -2
- package/lib/components/AlphaSlider/useAlphaSliderStyles.styles.raw.js +56 -0
- package/lib/components/AlphaSlider/useAlphaSliderStyles.styles.raw.js.map +1 -0
- package/lib/components/ColorArea/useColorAreaStyles.styles.raw.js +107 -0
- package/lib/components/ColorArea/useColorAreaStyles.styles.raw.js.map +1 -0
- package/lib/components/ColorPicker/useColorPickerStyles.styles.raw.js +22 -0
- package/lib/components/ColorPicker/useColorPickerStyles.styles.raw.js.map +1 -0
- package/lib/components/ColorSlider/useColorSliderStyles.styles.raw.js +192 -0
- package/lib/components/ColorSlider/useColorSliderStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/AlphaSlider/useAlphaSliderStyles.styles.raw.js +75 -0
- package/lib-commonjs/components/AlphaSlider/useAlphaSliderStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/ColorArea/useColorAreaStyles.styles.raw.js +126 -0
- package/lib-commonjs/components/ColorArea/useColorAreaStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/ColorPicker/useColorPickerStyles.styles.raw.js +38 -0
- package/lib-commonjs/components/ColorPicker/useColorPickerStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/ColorSlider/useColorSliderStyles.styles.raw.js +211 -0
- package/lib-commonjs/components/ColorSlider/useColorSliderStyles.styles.raw.js.map +1 -0
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,31 @@
|
|
|
1
1
|
# Change Log - @fluentui/react-color-picker
|
|
2
2
|
|
|
3
|
-
This log was last generated on Thu,
|
|
3
|
+
This log was last generated on Thu, 17 Jul 2025 13:45:36 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## [9.2.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-color-picker_v9.2.0)
|
|
8
|
+
|
|
9
|
+
Thu, 17 Jul 2025 13:45:36 GMT
|
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-color-picker_v9.1.3..@fluentui/react-color-picker_v9.2.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-tabster to v9.26.0 ([PR #34862](https://github.com/microsoft/fluentui/pull/34862) by beachball)
|
|
16
|
+
|
|
17
|
+
## [9.1.3](https://github.com/microsoft/fluentui/tree/@fluentui/react-color-picker_v9.1.3)
|
|
18
|
+
|
|
19
|
+
Fri, 27 Jun 2025 13:39:41 GMT
|
|
20
|
+
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-color-picker_v9.1.2..@fluentui/react-color-picker_v9.1.3)
|
|
21
|
+
|
|
22
|
+
### Patches
|
|
23
|
+
|
|
24
|
+
- Bump @fluentui/react-tabster to v9.25.3 ([PR #34734](https://github.com/microsoft/fluentui/pull/34734) by beachball)
|
|
25
|
+
|
|
7
26
|
## [9.1.2](https://github.com/microsoft/fluentui/tree/@fluentui/react-color-picker_v9.1.2)
|
|
8
27
|
|
|
9
|
-
Thu, 26 Jun 2025 14:
|
|
28
|
+
Thu, 26 Jun 2025 14:11:55 GMT
|
|
10
29
|
[Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-color-picker_v9.1.1..@fluentui/react-color-picker_v9.1.2)
|
|
11
30
|
|
|
12
31
|
### Patches
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { makeStyles, mergeClasses } from '@griffel/react';
|
|
2
|
+
import { tokens } from '@fluentui/react-theme';
|
|
3
|
+
import { useColorSliderStyles_unstable } from '../ColorSlider/useColorSliderStyles.styles';
|
|
4
|
+
const TRANSPARENT_IMAGE_URL = 'https://fabricweb.azureedge.net/fabric-website/assets/images/transparent-pattern.png';
|
|
5
|
+
export const alphaSliderClassNames = {
|
|
6
|
+
root: 'fui-AlphaSlider',
|
|
7
|
+
rail: 'fui-AlphaSlider__rail',
|
|
8
|
+
thumb: 'fui-AlphaSlider__thumb',
|
|
9
|
+
input: 'fui-AlphaSlider__input'
|
|
10
|
+
};
|
|
11
|
+
export const alphaSliderCSSVars = {
|
|
12
|
+
sliderDirectionVar: `--fui-AlphaSlider--direction`,
|
|
13
|
+
sliderProgressVar: `--fui-AlphaSlider--progress`,
|
|
14
|
+
thumbColorVar: `--fui-AlphaSlider__thumb--color`,
|
|
15
|
+
railColorVar: `--fui-AlphaSlider__rail--color`
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Styles for the root slot
|
|
19
|
+
*/ const useStyles = makeStyles({
|
|
20
|
+
rail: {
|
|
21
|
+
border: `1px solid ${tokens.colorNeutralStroke1}`,
|
|
22
|
+
backgroundImage: `linear-gradient(var(${alphaSliderCSSVars.sliderDirectionVar}), transparent, var(${alphaSliderCSSVars.railColorVar})), url(${TRANSPARENT_IMAGE_URL})`
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* Styles for the thumb slot
|
|
27
|
+
*/ const useThumbStyles = makeStyles({
|
|
28
|
+
thumb: {
|
|
29
|
+
backgroundColor: tokens.colorNeutralBackground1,
|
|
30
|
+
'::before': {
|
|
31
|
+
backgroundColor: `var(${alphaSliderCSSVars.thumbColorVar})`
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
horizontal: {
|
|
35
|
+
transform: 'translateX(-50%)',
|
|
36
|
+
left: `var(${alphaSliderCSSVars.sliderProgressVar})`
|
|
37
|
+
},
|
|
38
|
+
vertical: {
|
|
39
|
+
transform: 'translateY(50%)',
|
|
40
|
+
bottom: `var(${alphaSliderCSSVars.sliderProgressVar})`
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
/**
|
|
44
|
+
* Apply styling to the AlphaSlider slots based on the state
|
|
45
|
+
*/ export const useAlphaSliderStyles_unstable = (state)=>{
|
|
46
|
+
'use no memo';
|
|
47
|
+
const styles = useStyles();
|
|
48
|
+
const thumbStyles = useThumbStyles();
|
|
49
|
+
state.root.className = mergeClasses(alphaSliderClassNames.root, state.root.className);
|
|
50
|
+
state.input.className = mergeClasses(alphaSliderClassNames.input, state.input.className);
|
|
51
|
+
state.rail.className = mergeClasses(alphaSliderClassNames.rail, styles.rail, state.rail.className);
|
|
52
|
+
state.thumb.className = mergeClasses(alphaSliderClassNames.thumb, thumbStyles.thumb, state.vertical ? thumbStyles.vertical : thumbStyles.horizontal, state.thumb.className);
|
|
53
|
+
state.thumb.className = mergeClasses(alphaSliderClassNames.thumb, thumbStyles.thumb, state.vertical ? thumbStyles.vertical : thumbStyles.horizontal, state.thumb.className);
|
|
54
|
+
useColorSliderStyles_unstable(state);
|
|
55
|
+
return state;
|
|
56
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AlphaSlider/useAlphaSliderStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { useColorSliderStyles_unstable } from '../ColorSlider/useColorSliderStyles.styles';\nimport type { AlphaSliderSlots, AlphaSliderState } from './AlphaSlider.types';\n\nconst TRANSPARENT_IMAGE_URL = 'https://fabricweb.azureedge.net/fabric-website/assets/images/transparent-pattern.png';\n\nexport const alphaSliderClassNames: SlotClassNames<AlphaSliderSlots> = {\n root: 'fui-AlphaSlider',\n rail: 'fui-AlphaSlider__rail',\n thumb: 'fui-AlphaSlider__thumb',\n input: 'fui-AlphaSlider__input',\n};\n\nexport const alphaSliderCSSVars = {\n sliderDirectionVar: `--fui-AlphaSlider--direction`,\n sliderProgressVar: `--fui-AlphaSlider--progress`,\n thumbColorVar: `--fui-AlphaSlider__thumb--color`,\n railColorVar: `--fui-AlphaSlider__rail--color`,\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n rail: {\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n backgroundImage: `linear-gradient(var(${alphaSliderCSSVars.sliderDirectionVar}), transparent, var(${alphaSliderCSSVars.railColorVar})), url(${TRANSPARENT_IMAGE_URL})`,\n },\n});\n\n/**\n * Styles for the thumb slot\n */\nconst useThumbStyles = makeStyles({\n thumb: {\n backgroundColor: tokens.colorNeutralBackground1,\n '::before': {\n backgroundColor: `var(${alphaSliderCSSVars.thumbColorVar})`,\n },\n },\n horizontal: {\n transform: 'translateX(-50%)',\n left: `var(${alphaSliderCSSVars.sliderProgressVar})`,\n },\n vertical: {\n transform: 'translateY(50%)',\n bottom: `var(${alphaSliderCSSVars.sliderProgressVar})`,\n },\n});\n\n/**\n * Apply styling to the AlphaSlider slots based on the state\n */\nexport const useAlphaSliderStyles_unstable = (state: AlphaSliderState): AlphaSliderState => {\n 'use no memo';\n\n const styles = useStyles();\n const thumbStyles = useThumbStyles();\n state.root.className = mergeClasses(alphaSliderClassNames.root, state.root.className);\n state.input.className = mergeClasses(alphaSliderClassNames.input, state.input.className);\n state.rail.className = mergeClasses(alphaSliderClassNames.rail, styles.rail, state.rail.className);\n\n state.thumb.className = mergeClasses(\n alphaSliderClassNames.thumb,\n thumbStyles.thumb,\n state.vertical ? thumbStyles.vertical : thumbStyles.horizontal,\n state.thumb.className,\n );\n\n state.thumb.className = mergeClasses(\n alphaSliderClassNames.thumb,\n thumbStyles.thumb,\n state.vertical ? thumbStyles.vertical : thumbStyles.horizontal,\n state.thumb.className,\n );\n\n useColorSliderStyles_unstable(state);\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","useColorSliderStyles_unstable","TRANSPARENT_IMAGE_URL","alphaSliderClassNames","root","rail","thumb","input","alphaSliderCSSVars","sliderDirectionVar","sliderProgressVar","thumbColorVar","railColorVar","useStyles","border","colorNeutralStroke1","backgroundImage","useThumbStyles","backgroundColor","colorNeutralBackground1","horizontal","transform","left","vertical","bottom","useAlphaSliderStyles_unstable","state","styles","thumbStyles","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,SAASC,6BAA6B,QAAQ,6CAA6C;AAG3F,MAAMC,wBAAwB;AAE9B,OAAO,MAAMC,wBAA0D;IACrEC,MAAM;IACNC,MAAM;IACNC,OAAO;IACPC,OAAO;AACT,EAAE;AAEF,OAAO,MAAMC,qBAAqB;IAChCC,oBAAoB,CAAC,4BAA4B,CAAC;IAClDC,mBAAmB,CAAC,2BAA2B,CAAC;IAChDC,eAAe,CAAC,+BAA+B,CAAC;IAChDC,cAAc,CAAC,8BAA8B,CAAC;AAChD,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYf,WAAW;IAC3BO,MAAM;QACJS,QAAQ,CAAC,UAAU,EAAEd,OAAOe,mBAAmB,CAAC,CAAC;QACjDC,iBAAiB,CAAC,oBAAoB,EAAER,mBAAmBC,kBAAkB,CAAC,oBAAoB,EAAED,mBAAmBI,YAAY,CAAC,QAAQ,EAAEV,sBAAsB,CAAC,CAAC;IACxK;AACF;AAEA;;CAEC,GACD,MAAMe,iBAAiBnB,WAAW;IAChCQ,OAAO;QACLY,iBAAiBlB,OAAOmB,uBAAuB;QAC/C,YAAY;YACVD,iBAAiB,CAAC,IAAI,EAAEV,mBAAmBG,aAAa,CAAC,CAAC,CAAC;QAC7D;IACF;IACAS,YAAY;QACVC,WAAW;QACXC,MAAM,CAAC,IAAI,EAAEd,mBAAmBE,iBAAiB,CAAC,CAAC,CAAC;IACtD;IACAa,UAAU;QACRF,WAAW;QACXG,QAAQ,CAAC,IAAI,EAAEhB,mBAAmBE,iBAAiB,CAAC,CAAC,CAAC;IACxD;AACF;AAEA;;CAEC,GACD,OAAO,MAAMe,gCAAgC,CAACC;IAC5C;IAEA,MAAMC,SAASd;IACf,MAAMe,cAAcX;IACpBS,MAAMtB,IAAI,CAACyB,SAAS,GAAG9B,aAAaI,sBAAsBC,IAAI,EAAEsB,MAAMtB,IAAI,CAACyB,SAAS;IACpFH,MAAMnB,KAAK,CAACsB,SAAS,GAAG9B,aAAaI,sBAAsBI,KAAK,EAAEmB,MAAMnB,KAAK,CAACsB,SAAS;IACvFH,MAAMrB,IAAI,CAACwB,SAAS,GAAG9B,aAAaI,sBAAsBE,IAAI,EAAEsB,OAAOtB,IAAI,EAAEqB,MAAMrB,IAAI,CAACwB,SAAS;IAEjGH,MAAMpB,KAAK,CAACuB,SAAS,GAAG9B,aACtBI,sBAAsBG,KAAK,EAC3BsB,YAAYtB,KAAK,EACjBoB,MAAMH,QAAQ,GAAGK,YAAYL,QAAQ,GAAGK,YAAYR,UAAU,EAC9DM,MAAMpB,KAAK,CAACuB,SAAS;IAGvBH,MAAMpB,KAAK,CAACuB,SAAS,GAAG9B,aACtBI,sBAAsBG,KAAK,EAC3BsB,YAAYtB,KAAK,EACjBoB,MAAMH,QAAQ,GAAGK,YAAYL,QAAQ,GAAGK,YAAYR,UAAU,EAC9DM,MAAMpB,KAAK,CAACuB,SAAS;IAGvB5B,8BAA8ByB;IAC9B,OAAOA;AACT,EAAE"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { makeResetStyles, makeStyles, mergeClasses, shorthands } from '@griffel/react';
|
|
2
|
+
import { tokens } from '@fluentui/react-theme';
|
|
3
|
+
import { createFocusOutlineStyle } from '@fluentui/react-tabster';
|
|
4
|
+
export const colorAreaClassNames = {
|
|
5
|
+
root: 'fui-ColorArea',
|
|
6
|
+
thumb: 'fui-ColorArea__thumb',
|
|
7
|
+
inputX: 'fui-ColorArea__inputX',
|
|
8
|
+
inputY: 'fui-ColorArea__inputY'
|
|
9
|
+
};
|
|
10
|
+
export const colorAreaCSSVars = {
|
|
11
|
+
areaXProgressVar: `--fui-AreaX--progress`,
|
|
12
|
+
areaYProgressVar: `--fui-AreaY--progress`,
|
|
13
|
+
thumbColorVar: `--fui-Area__thumb--color`,
|
|
14
|
+
mainColorVar: `--fui-Area--main-color`
|
|
15
|
+
};
|
|
16
|
+
// Internal CSS variables
|
|
17
|
+
const thumbSizeVar = `--fui-Slider__thumb--size`;
|
|
18
|
+
/**
|
|
19
|
+
* Styles for the root slot
|
|
20
|
+
*/ const useRootStyles = makeResetStyles({
|
|
21
|
+
position: 'relative',
|
|
22
|
+
border: `1px solid ${tokens.colorNeutralStroke1}`,
|
|
23
|
+
background: `linear-gradient(to bottom, transparent, #000), linear-gradient(to right, #fff, transparent), var(${colorAreaCSSVars.mainColorVar})`,
|
|
24
|
+
forcedColorAdjust: 'none',
|
|
25
|
+
display: 'inline-grid',
|
|
26
|
+
touchAction: 'none',
|
|
27
|
+
alignItems: 'start',
|
|
28
|
+
justifyItems: 'start',
|
|
29
|
+
[thumbSizeVar]: '20px',
|
|
30
|
+
minWidth: '300px',
|
|
31
|
+
minHeight: '300px',
|
|
32
|
+
boxSizing: 'border-box',
|
|
33
|
+
marginBottom: tokens.spacingVerticalSNudge
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Styles for the thumb slot
|
|
37
|
+
*/ const useThumbStyles = makeStyles({
|
|
38
|
+
thumb: {
|
|
39
|
+
position: 'absolute',
|
|
40
|
+
width: `var(${thumbSizeVar})`,
|
|
41
|
+
height: `var(${thumbSizeVar})`,
|
|
42
|
+
pointerEvents: 'none',
|
|
43
|
+
outlineStyle: 'none',
|
|
44
|
+
forcedColorAdjust: 'none',
|
|
45
|
+
borderRadius: tokens.borderRadiusCircular,
|
|
46
|
+
border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralForeground4}`,
|
|
47
|
+
boxShadow: tokens.shadow4,
|
|
48
|
+
backgroundColor: `var(${colorAreaCSSVars.thumbColorVar})`,
|
|
49
|
+
transform: 'translate(-50%, 50%)',
|
|
50
|
+
left: `var(${colorAreaCSSVars.areaXProgressVar})`,
|
|
51
|
+
bottom: `var(${colorAreaCSSVars.areaYProgressVar})`,
|
|
52
|
+
'::before': {
|
|
53
|
+
position: 'absolute',
|
|
54
|
+
inset: '0px',
|
|
55
|
+
borderRadius: tokens.borderRadiusCircular,
|
|
56
|
+
boxSizing: 'border-box',
|
|
57
|
+
content: "''",
|
|
58
|
+
border: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralBackground1}`
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
focusIndicator: createFocusOutlineStyle({
|
|
62
|
+
selector: 'focus-within',
|
|
63
|
+
style: {
|
|
64
|
+
outlineWidth: tokens.strokeWidthThick,
|
|
65
|
+
...shorthands.borderWidth(tokens.strokeWidthThick),
|
|
66
|
+
outlineRadius: tokens.borderRadiusCircular
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
});
|
|
70
|
+
/**
|
|
71
|
+
* Styles for the Input slot
|
|
72
|
+
*/ const useInputStyles = makeStyles({
|
|
73
|
+
input: {
|
|
74
|
+
overflow: 'hidden',
|
|
75
|
+
position: 'absolute',
|
|
76
|
+
pointerEvents: 'none',
|
|
77
|
+
top: 0,
|
|
78
|
+
left: 0,
|
|
79
|
+
opacity: 0,
|
|
80
|
+
padding: '0',
|
|
81
|
+
margin: '0',
|
|
82
|
+
width: '100%',
|
|
83
|
+
height: '100%'
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
const useShapeStyles = makeStyles({
|
|
87
|
+
rounded: {
|
|
88
|
+
borderRadius: tokens.borderRadiusMedium
|
|
89
|
+
},
|
|
90
|
+
square: {
|
|
91
|
+
borderRadius: tokens.borderRadiusNone
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
/**
|
|
95
|
+
* Apply styling to the ColorArea slots based on the state
|
|
96
|
+
*/ export const useColorAreaStyles_unstable = (state)=>{
|
|
97
|
+
'use no memo';
|
|
98
|
+
const rootStyles = useRootStyles();
|
|
99
|
+
const thumbStyles = useThumbStyles();
|
|
100
|
+
const inputStyles = useInputStyles();
|
|
101
|
+
const shapeStyles = useShapeStyles();
|
|
102
|
+
state.root.className = mergeClasses(colorAreaClassNames.root, rootStyles, shapeStyles[state.shape || 'rounded'], state.root.className);
|
|
103
|
+
state.thumb.className = mergeClasses(colorAreaClassNames.thumb, thumbStyles.thumb, thumbStyles.focusIndicator, state.thumb.className);
|
|
104
|
+
state.inputX.className = mergeClasses(colorAreaClassNames.inputX, inputStyles.input, state.inputX.className);
|
|
105
|
+
state.inputY.className = mergeClasses(colorAreaClassNames.inputY, inputStyles.input, state.inputY.className);
|
|
106
|
+
return state;
|
|
107
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ColorArea/useColorAreaStyles.styles.ts"],"sourcesContent":["import { makeResetStyles, makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport { createFocusOutlineStyle } from '@fluentui/react-tabster';\nimport type { ColorAreaSlots, ColorAreaState } from './ColorArea.types';\n\nexport const colorAreaClassNames: SlotClassNames<ColorAreaSlots> = {\n root: 'fui-ColorArea',\n thumb: 'fui-ColorArea__thumb',\n inputX: 'fui-ColorArea__inputX',\n inputY: 'fui-ColorArea__inputY',\n};\n\nexport const colorAreaCSSVars = {\n areaXProgressVar: `--fui-AreaX--progress`,\n areaYProgressVar: `--fui-AreaY--progress`,\n thumbColorVar: `--fui-Area__thumb--color`,\n mainColorVar: `--fui-Area--main-color`,\n};\n\n// Internal CSS variables\nconst thumbSizeVar = `--fui-Slider__thumb--size`;\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeResetStyles({\n position: 'relative',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n background: `linear-gradient(to bottom, transparent, #000), linear-gradient(to right, #fff, transparent), var(${colorAreaCSSVars.mainColorVar})`,\n forcedColorAdjust: 'none',\n display: 'inline-grid',\n touchAction: 'none',\n alignItems: 'start',\n justifyItems: 'start',\n [thumbSizeVar]: '20px',\n minWidth: '300px',\n minHeight: '300px',\n boxSizing: 'border-box',\n marginBottom: tokens.spacingVerticalSNudge,\n});\n\n/**\n * Styles for the thumb slot\n */\nconst useThumbStyles = makeStyles({\n thumb: {\n position: 'absolute',\n width: `var(${thumbSizeVar})`,\n height: `var(${thumbSizeVar})`,\n pointerEvents: 'none',\n outlineStyle: 'none',\n forcedColorAdjust: 'none',\n borderRadius: tokens.borderRadiusCircular,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralForeground4}`,\n boxShadow: tokens.shadow4,\n backgroundColor: `var(${colorAreaCSSVars.thumbColorVar})`,\n transform: 'translate(-50%, 50%)',\n left: `var(${colorAreaCSSVars.areaXProgressVar})`,\n bottom: `var(${colorAreaCSSVars.areaYProgressVar})`,\n '::before': {\n position: 'absolute',\n inset: '0px',\n borderRadius: tokens.borderRadiusCircular,\n boxSizing: 'border-box',\n content: \"''\",\n border: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralBackground1}`,\n },\n },\n focusIndicator: createFocusOutlineStyle({\n selector: 'focus-within',\n style: {\n outlineWidth: tokens.strokeWidthThick,\n ...shorthands.borderWidth(tokens.strokeWidthThick),\n outlineRadius: tokens.borderRadiusCircular,\n },\n }),\n});\n\n/**\n * Styles for the Input slot\n */\nconst useInputStyles = makeStyles({\n input: {\n overflow: 'hidden',\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n left: 0,\n opacity: 0,\n padding: '0',\n margin: '0',\n width: '100%',\n height: '100%',\n },\n});\n\nconst useShapeStyles = makeStyles({\n rounded: {\n borderRadius: tokens.borderRadiusMedium,\n },\n square: {\n borderRadius: tokens.borderRadiusNone,\n },\n});\n\n/**\n * Apply styling to the ColorArea slots based on the state\n */\nexport const useColorAreaStyles_unstable = (state: ColorAreaState): ColorAreaState => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const thumbStyles = useThumbStyles();\n const inputStyles = useInputStyles();\n const shapeStyles = useShapeStyles();\n\n state.root.className = mergeClasses(\n colorAreaClassNames.root,\n rootStyles,\n shapeStyles[state.shape || 'rounded'],\n state.root.className,\n );\n\n state.thumb.className = mergeClasses(\n colorAreaClassNames.thumb,\n thumbStyles.thumb,\n thumbStyles.focusIndicator,\n state.thumb.className,\n );\n\n state.inputX.className = mergeClasses(colorAreaClassNames.inputX, inputStyles.input, state.inputX.className);\n\n state.inputY.className = mergeClasses(colorAreaClassNames.inputY, inputStyles.input, state.inputY.className);\n return state;\n};\n"],"names":["makeResetStyles","makeStyles","mergeClasses","shorthands","tokens","createFocusOutlineStyle","colorAreaClassNames","root","thumb","inputX","inputY","colorAreaCSSVars","areaXProgressVar","areaYProgressVar","thumbColorVar","mainColorVar","thumbSizeVar","useRootStyles","position","border","colorNeutralStroke1","background","forcedColorAdjust","display","touchAction","alignItems","justifyItems","minWidth","minHeight","boxSizing","marginBottom","spacingVerticalSNudge","useThumbStyles","width","height","pointerEvents","outlineStyle","borderRadius","borderRadiusCircular","strokeWidthThin","colorNeutralForeground4","boxShadow","shadow4","backgroundColor","transform","left","bottom","inset","content","strokeWidthThick","colorNeutralBackground1","focusIndicator","selector","style","outlineWidth","borderWidth","outlineRadius","useInputStyles","input","overflow","top","opacity","padding","margin","useShapeStyles","rounded","borderRadiusMedium","square","borderRadiusNone","useColorAreaStyles_unstable","state","rootStyles","thumbStyles","inputStyles","shapeStyles","className","shape"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { makeStyles, mergeClasses } from '@griffel/react';
|
|
2
|
+
import { tokens } from '@fluentui/react-theme';
|
|
3
|
+
export const colorPickerClassNames = {
|
|
4
|
+
root: 'fui-ColorPicker'
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Styles for the root slot
|
|
8
|
+
*/ const useStyles = makeStyles({
|
|
9
|
+
root: {
|
|
10
|
+
display: 'flex',
|
|
11
|
+
flexDirection: 'column',
|
|
12
|
+
gap: tokens.spacingVerticalXS
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* Apply styling to the ColorPicker slots based on the state
|
|
17
|
+
*/ export const useColorPickerStyles_unstable = (state)=>{
|
|
18
|
+
'use no memo';
|
|
19
|
+
const styles = useStyles();
|
|
20
|
+
state.root.className = mergeClasses(colorPickerClassNames.root, styles.root, state.root.className);
|
|
21
|
+
return state;
|
|
22
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ColorPicker/useColorPickerStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { ColorPickerSlots, ColorPickerState } from './ColorPicker.types';\nimport { tokens } from '@fluentui/react-theme';\n\nexport const colorPickerClassNames: SlotClassNames<ColorPickerSlots> = {\n root: 'fui-ColorPicker',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXS,\n },\n});\n\n/**\n * Apply styling to the ColorPicker slots based on the state\n */\nexport const useColorPickerStyles_unstable = (state: ColorPickerState): ColorPickerState => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(colorPickerClassNames.root, styles.root, state.root.className);\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","colorPickerClassNames","root","useStyles","display","flexDirection","gap","spacingVerticalXS","useColorPickerStyles_unstable","state","styles","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAG1D,SAASC,MAAM,QAAQ,wBAAwB;AAE/C,OAAO,MAAMC,wBAA0D;IACrEC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYL,WAAW;IAC3BI,MAAM;QACJE,SAAS;QACTC,eAAe;QACfC,KAAKN,OAAOO,iBAAiB;IAC/B;AACF;AAEA;;CAEC,GACD,OAAO,MAAMC,gCAAgC,CAACC;IAC5C;IAEA,MAAMC,SAASP;IACfM,MAAMP,IAAI,CAACS,SAAS,GAAGZ,aAAaE,sBAAsBC,IAAI,EAAEQ,OAAOR,IAAI,EAAEO,MAAMP,IAAI,CAACS,SAAS;IAEjG,OAAOF;AACT,EAAE"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { makeStyles, makeResetStyles, mergeClasses } from '@griffel/react';
|
|
2
|
+
import { tokens } from '@fluentui/react-theme';
|
|
3
|
+
export const colorSliderClassNames = {
|
|
4
|
+
root: 'fui-ColorSlider',
|
|
5
|
+
rail: 'fui-ColorSlider__rail',
|
|
6
|
+
thumb: 'fui-ColorSlider__thumb',
|
|
7
|
+
input: 'fui-ColorSlider__input'
|
|
8
|
+
};
|
|
9
|
+
export const colorSliderCSSVars = {
|
|
10
|
+
sliderDirectionVar: `--fui-Slider--direction`,
|
|
11
|
+
sliderProgressVar: `--fui-Slider--progress`,
|
|
12
|
+
thumbColorVar: `--fui-Slider__thumb--color`,
|
|
13
|
+
railColorVar: `--fui-Slider__rail--color`,
|
|
14
|
+
thumbSizeVar: `--fui-Slider__thumb--size`,
|
|
15
|
+
railSizeVar: `--fui-Slider__rail--size`
|
|
16
|
+
};
|
|
17
|
+
const hueBackground = `linear-gradient(${[
|
|
18
|
+
`var(${colorSliderCSSVars.sliderDirectionVar})`,
|
|
19
|
+
'red',
|
|
20
|
+
'fuchsia',
|
|
21
|
+
'blue',
|
|
22
|
+
'aqua',
|
|
23
|
+
'lime',
|
|
24
|
+
'yellow',
|
|
25
|
+
'red'
|
|
26
|
+
].join(',')})`;
|
|
27
|
+
/**
|
|
28
|
+
* Styles for the root slot
|
|
29
|
+
*/ const useRootStyles = makeResetStyles({
|
|
30
|
+
position: 'relative',
|
|
31
|
+
display: 'inline-grid',
|
|
32
|
+
touchAction: 'none',
|
|
33
|
+
alignItems: 'center',
|
|
34
|
+
justifyItems: 'center',
|
|
35
|
+
[colorSliderCSSVars.thumbSizeVar]: '20px',
|
|
36
|
+
[colorSliderCSSVars.railSizeVar]: '20px',
|
|
37
|
+
minHeight: '32px'
|
|
38
|
+
});
|
|
39
|
+
const useStyles = makeStyles({
|
|
40
|
+
horizontal: {
|
|
41
|
+
minWidth: '200px',
|
|
42
|
+
// 3x3 grid with the rail and thumb in the center cell [2,2] and the hidden input stretching across all cells
|
|
43
|
+
gridTemplateRows: `1fr var(${colorSliderCSSVars.thumbSizeVar}) 1fr`,
|
|
44
|
+
gridTemplateColumns: `1fr 100% 1fr`
|
|
45
|
+
},
|
|
46
|
+
vertical: {
|
|
47
|
+
minHeight: '280px',
|
|
48
|
+
// 3x3 grid with the rail and thumb in the center cell [2,2] and the hidden input stretching across all cells
|
|
49
|
+
gridTemplateRows: `1fr 100% 1fr`,
|
|
50
|
+
gridTemplateColumns: `1fr var(${colorSliderCSSVars.thumbSizeVar}) 1fr`
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
const useChannelStyles = makeStyles({
|
|
54
|
+
hue: {
|
|
55
|
+
backgroundImage: hueBackground
|
|
56
|
+
},
|
|
57
|
+
saturation: {
|
|
58
|
+
backgroundImage: `linear-gradient(to right, #808080, var(${colorSliderCSSVars.railColorVar}))`
|
|
59
|
+
},
|
|
60
|
+
value: {
|
|
61
|
+
backgroundImage: `linear-gradient(to right, #000, var(${colorSliderCSSVars.railColorVar}))`
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
/**
|
|
65
|
+
* Styles for the rail slot
|
|
66
|
+
*/ const useRailStyles = makeStyles({
|
|
67
|
+
rail: {
|
|
68
|
+
pointerEvents: 'none',
|
|
69
|
+
gridRowStart: '2',
|
|
70
|
+
gridRowEnd: '2',
|
|
71
|
+
gridColumnStart: '2',
|
|
72
|
+
gridColumnEnd: '2',
|
|
73
|
+
position: 'relative',
|
|
74
|
+
forcedColorAdjust: 'none',
|
|
75
|
+
outlineWidth: '1px',
|
|
76
|
+
outlineStyle: 'solid',
|
|
77
|
+
outlineColor: tokens.colorTransparentStroke,
|
|
78
|
+
'::before': {
|
|
79
|
+
content: "''",
|
|
80
|
+
position: 'absolute'
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
horizontal: {
|
|
84
|
+
width: '100%',
|
|
85
|
+
height: `var(${colorSliderCSSVars.railSizeVar})`,
|
|
86
|
+
'::before': {
|
|
87
|
+
left: '-1px',
|
|
88
|
+
right: '-1px',
|
|
89
|
+
height: `var(${colorSliderCSSVars.railSizeVar})`
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
vertical: {
|
|
93
|
+
width: `var(${colorSliderCSSVars.railSizeVar})`,
|
|
94
|
+
height: '100%',
|
|
95
|
+
'::before': {
|
|
96
|
+
width: `var(${colorSliderCSSVars.railSizeVar})`,
|
|
97
|
+
top: '-1px',
|
|
98
|
+
bottom: '1px'
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
/**
|
|
103
|
+
* Styles for the thumb slot
|
|
104
|
+
*/ const useThumbStyles = makeStyles({
|
|
105
|
+
thumb: {
|
|
106
|
+
gridRowStart: '2',
|
|
107
|
+
gridRowEnd: '2',
|
|
108
|
+
gridColumnStart: '2',
|
|
109
|
+
gridColumnEnd: '2',
|
|
110
|
+
position: 'absolute',
|
|
111
|
+
width: `var(${colorSliderCSSVars.thumbSizeVar})`,
|
|
112
|
+
height: `var(${colorSliderCSSVars.thumbSizeVar})`,
|
|
113
|
+
pointerEvents: 'none',
|
|
114
|
+
outlineStyle: 'none',
|
|
115
|
+
forcedColorAdjust: 'none',
|
|
116
|
+
borderRadius: tokens.borderRadiusCircular,
|
|
117
|
+
border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralForeground4}`,
|
|
118
|
+
boxShadow: tokens.shadow4,
|
|
119
|
+
backgroundColor: `var(${colorSliderCSSVars.thumbColorVar})`,
|
|
120
|
+
'::before': {
|
|
121
|
+
position: 'absolute',
|
|
122
|
+
inset: '0px',
|
|
123
|
+
borderRadius: tokens.borderRadiusCircular,
|
|
124
|
+
boxSizing: 'border-box',
|
|
125
|
+
content: "''",
|
|
126
|
+
border: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralBackground1}`
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
horizontal: {
|
|
130
|
+
transform: 'translateX(-50%)',
|
|
131
|
+
left: `var(${colorSliderCSSVars.sliderProgressVar})`
|
|
132
|
+
},
|
|
133
|
+
vertical: {
|
|
134
|
+
transform: 'translateY(50%)',
|
|
135
|
+
bottom: `var(${colorSliderCSSVars.sliderProgressVar})`
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
const useShapeStyles = makeStyles({
|
|
139
|
+
rounded: {
|
|
140
|
+
borderRadius: tokens.borderRadiusMedium
|
|
141
|
+
},
|
|
142
|
+
square: {
|
|
143
|
+
borderRadius: tokens.borderRadiusNone
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
/**
|
|
147
|
+
* Styles for the Input slot
|
|
148
|
+
*/ const useInputStyles = makeStyles({
|
|
149
|
+
input: {
|
|
150
|
+
cursor: 'pointer',
|
|
151
|
+
opacity: 0,
|
|
152
|
+
gridRowStart: '1',
|
|
153
|
+
gridRowEnd: '-1',
|
|
154
|
+
gridColumnStart: '1',
|
|
155
|
+
gridColumnEnd: '-1',
|
|
156
|
+
padding: '0',
|
|
157
|
+
margin: '0',
|
|
158
|
+
[`:focus-visible ~ .${colorSliderClassNames.thumb}`]: {
|
|
159
|
+
border: `2px solid ${tokens.colorStrokeFocus2}`,
|
|
160
|
+
outline: `${tokens.strokeWidthThick} solid ${tokens.colorTransparentStroke}`,
|
|
161
|
+
borderRadius: tokens.borderRadiusCircular
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
horizontal: {
|
|
165
|
+
height: `var(${colorSliderCSSVars.thumbSizeVar})`,
|
|
166
|
+
width: '100%'
|
|
167
|
+
},
|
|
168
|
+
vertical: {
|
|
169
|
+
height: '100%',
|
|
170
|
+
width: `var(${colorSliderCSSVars.thumbSizeVar})`,
|
|
171
|
+
'writing-mode': 'vertical-lr',
|
|
172
|
+
direction: 'rtl'
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
/**
|
|
176
|
+
* Apply styling to the ColorSlider slots based on the state
|
|
177
|
+
*/ export const useColorSliderStyles_unstable = (state)=>{
|
|
178
|
+
'use no memo';
|
|
179
|
+
const rootStyles = useRootStyles();
|
|
180
|
+
const styles = useStyles();
|
|
181
|
+
const railStyles = useRailStyles();
|
|
182
|
+
const thumbStyles = useThumbStyles();
|
|
183
|
+
const inputStyles = useInputStyles();
|
|
184
|
+
const shapeStyles = useShapeStyles();
|
|
185
|
+
const channelStyles = useChannelStyles();
|
|
186
|
+
const isVertical = state.vertical;
|
|
187
|
+
state.root.className = mergeClasses(colorSliderClassNames.root, rootStyles, isVertical ? styles.vertical : styles.horizontal, state.root.className);
|
|
188
|
+
state.rail.className = mergeClasses(colorSliderClassNames.rail, railStyles.rail, channelStyles[state.channel || 'hue'], shapeStyles[state.shape || 'rounded'], isVertical ? railStyles.vertical : railStyles.horizontal, state.rail.className);
|
|
189
|
+
state.thumb.className = mergeClasses(colorSliderClassNames.thumb, thumbStyles.thumb, isVertical ? thumbStyles.vertical : thumbStyles.horizontal, state.thumb.className);
|
|
190
|
+
state.input.className = mergeClasses(colorSliderClassNames.input, inputStyles.input, isVertical ? inputStyles.vertical : inputStyles.horizontal, state.input.className);
|
|
191
|
+
return state;
|
|
192
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ColorSlider/useColorSliderStyles.styles.ts"],"sourcesContent":["import { makeStyles, makeResetStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport type { ColorSliderSlots, ColorSliderState } from './ColorSlider.types';\n\nexport const colorSliderClassNames: SlotClassNames<ColorSliderSlots> = {\n root: 'fui-ColorSlider',\n rail: 'fui-ColorSlider__rail',\n thumb: 'fui-ColorSlider__thumb',\n input: 'fui-ColorSlider__input',\n};\n\nexport const colorSliderCSSVars = {\n sliderDirectionVar: `--fui-Slider--direction`,\n sliderProgressVar: `--fui-Slider--progress`,\n thumbColorVar: `--fui-Slider__thumb--color`,\n railColorVar: `--fui-Slider__rail--color`,\n thumbSizeVar: `--fui-Slider__thumb--size`,\n railSizeVar: `--fui-Slider__rail--size`,\n};\n\nconst hueBackground = `linear-gradient(${[\n `var(${colorSliderCSSVars.sliderDirectionVar})`,\n 'red',\n 'fuchsia',\n 'blue',\n 'aqua',\n 'lime',\n 'yellow',\n 'red',\n].join(',')})`;\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeResetStyles({\n position: 'relative',\n display: 'inline-grid',\n touchAction: 'none',\n alignItems: 'center',\n justifyItems: 'center',\n [colorSliderCSSVars.thumbSizeVar]: '20px',\n [colorSliderCSSVars.railSizeVar]: '20px',\n minHeight: '32px',\n});\n\nconst useStyles = makeStyles({\n horizontal: {\n minWidth: '200px',\n // 3x3 grid with the rail and thumb in the center cell [2,2] and the hidden input stretching across all cells\n gridTemplateRows: `1fr var(${colorSliderCSSVars.thumbSizeVar}) 1fr`,\n gridTemplateColumns: `1fr 100% 1fr`,\n },\n\n vertical: {\n minHeight: '280px',\n // 3x3 grid with the rail and thumb in the center cell [2,2] and the hidden input stretching across all cells\n gridTemplateRows: `1fr 100% 1fr`,\n gridTemplateColumns: `1fr var(${colorSliderCSSVars.thumbSizeVar}) 1fr`,\n },\n});\n\nconst useChannelStyles = makeStyles({\n hue: {\n backgroundImage: hueBackground,\n },\n saturation: {\n backgroundImage: `linear-gradient(to right, #808080, var(${colorSliderCSSVars.railColorVar}))`,\n },\n value: {\n backgroundImage: `linear-gradient(to right, #000, var(${colorSliderCSSVars.railColorVar}))`,\n },\n});\n\n/**\n * Styles for the rail slot\n */\nconst useRailStyles = makeStyles({\n rail: {\n pointerEvents: 'none',\n gridRowStart: '2',\n gridRowEnd: '2',\n gridColumnStart: '2',\n gridColumnEnd: '2',\n position: 'relative',\n forcedColorAdjust: 'none',\n outlineWidth: '1px',\n outlineStyle: 'solid',\n outlineColor: tokens.colorTransparentStroke,\n '::before': {\n content: \"''\",\n position: 'absolute',\n },\n },\n\n horizontal: {\n width: '100%',\n height: `var(${colorSliderCSSVars.railSizeVar})`,\n '::before': {\n left: '-1px',\n right: '-1px',\n height: `var(${colorSliderCSSVars.railSizeVar})`,\n },\n },\n\n vertical: {\n width: `var(${colorSliderCSSVars.railSizeVar})`,\n height: '100%',\n '::before': {\n width: `var(${colorSliderCSSVars.railSizeVar})`,\n top: '-1px',\n bottom: '1px',\n },\n },\n});\n\n/**\n * Styles for the thumb slot\n */\nconst useThumbStyles = makeStyles({\n thumb: {\n gridRowStart: '2',\n gridRowEnd: '2',\n gridColumnStart: '2',\n gridColumnEnd: '2',\n position: 'absolute',\n width: `var(${colorSliderCSSVars.thumbSizeVar})`,\n height: `var(${colorSliderCSSVars.thumbSizeVar})`,\n pointerEvents: 'none',\n outlineStyle: 'none',\n forcedColorAdjust: 'none',\n borderRadius: tokens.borderRadiusCircular,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralForeground4}`,\n boxShadow: tokens.shadow4,\n backgroundColor: `var(${colorSliderCSSVars.thumbColorVar})`,\n '::before': {\n position: 'absolute',\n inset: '0px',\n borderRadius: tokens.borderRadiusCircular,\n boxSizing: 'border-box',\n content: \"''\",\n border: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralBackground1}`,\n },\n },\n horizontal: {\n transform: 'translateX(-50%)',\n left: `var(${colorSliderCSSVars.sliderProgressVar})`,\n },\n vertical: {\n transform: 'translateY(50%)',\n bottom: `var(${colorSliderCSSVars.sliderProgressVar})`,\n },\n});\n\nconst useShapeStyles = makeStyles({\n rounded: {\n borderRadius: tokens.borderRadiusMedium,\n },\n square: {\n borderRadius: tokens.borderRadiusNone,\n },\n});\n\n/**\n * Styles for the Input slot\n */\nconst useInputStyles = makeStyles({\n input: {\n cursor: 'pointer',\n opacity: 0,\n gridRowStart: '1',\n gridRowEnd: '-1',\n gridColumnStart: '1',\n gridColumnEnd: '-1',\n padding: '0',\n margin: '0',\n [`:focus-visible ~ .${colorSliderClassNames.thumb}`]: {\n border: `2px solid ${tokens.colorStrokeFocus2}`,\n outline: `${tokens.strokeWidthThick} solid ${tokens.colorTransparentStroke}`,\n borderRadius: tokens.borderRadiusCircular,\n },\n },\n horizontal: {\n height: `var(${colorSliderCSSVars.thumbSizeVar})`,\n width: '100%',\n },\n vertical: {\n height: '100%',\n width: `var(${colorSliderCSSVars.thumbSizeVar})`,\n 'writing-mode': 'vertical-lr',\n direction: 'rtl',\n },\n});\n\n/**\n * Apply styling to the ColorSlider slots based on the state\n */\nexport const useColorSliderStyles_unstable = (state: ColorSliderState): ColorSliderState => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const styles = useStyles();\n const railStyles = useRailStyles();\n const thumbStyles = useThumbStyles();\n const inputStyles = useInputStyles();\n const shapeStyles = useShapeStyles();\n const channelStyles = useChannelStyles();\n const isVertical = state.vertical;\n\n state.root.className = mergeClasses(\n colorSliderClassNames.root,\n rootStyles,\n isVertical ? styles.vertical : styles.horizontal,\n state.root.className,\n );\n\n state.rail.className = mergeClasses(\n colorSliderClassNames.rail,\n railStyles.rail,\n channelStyles[state.channel || 'hue'],\n shapeStyles[state.shape || 'rounded'],\n isVertical ? railStyles.vertical : railStyles.horizontal,\n state.rail.className,\n );\n\n state.thumb.className = mergeClasses(\n colorSliderClassNames.thumb,\n thumbStyles.thumb,\n isVertical ? thumbStyles.vertical : thumbStyles.horizontal,\n state.thumb.className,\n );\n\n state.input.className = mergeClasses(\n colorSliderClassNames.input,\n inputStyles.input,\n isVertical ? inputStyles.vertical : inputStyles.horizontal,\n state.input.className,\n );\n return state;\n};\n"],"names":["makeStyles","makeResetStyles","mergeClasses","tokens","colorSliderClassNames","root","rail","thumb","input","colorSliderCSSVars","sliderDirectionVar","sliderProgressVar","thumbColorVar","railColorVar","thumbSizeVar","railSizeVar","hueBackground","join","useRootStyles","position","display","touchAction","alignItems","justifyItems","minHeight","useStyles","horizontal","minWidth","gridTemplateRows","gridTemplateColumns","vertical","useChannelStyles","hue","backgroundImage","saturation","value","useRailStyles","pointerEvents","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","forcedColorAdjust","outlineWidth","outlineStyle","outlineColor","colorTransparentStroke","content","width","height","left","right","top","bottom","useThumbStyles","borderRadius","borderRadiusCircular","border","strokeWidthThin","colorNeutralForeground4","boxShadow","shadow4","backgroundColor","inset","boxSizing","strokeWidthThick","colorNeutralBackground1","transform","useShapeStyles","rounded","borderRadiusMedium","square","borderRadiusNone","useInputStyles","cursor","opacity","padding","margin","colorStrokeFocus2","outline","direction","useColorSliderStyles_unstable","state","rootStyles","styles","railStyles","thumbStyles","inputStyles","shapeStyles","channelStyles","isVertical","className","channel","shape"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
alphaSliderCSSVars: function() {
|
|
13
|
+
return alphaSliderCSSVars;
|
|
14
|
+
},
|
|
15
|
+
alphaSliderClassNames: function() {
|
|
16
|
+
return alphaSliderClassNames;
|
|
17
|
+
},
|
|
18
|
+
useAlphaSliderStyles_unstable: function() {
|
|
19
|
+
return useAlphaSliderStyles_unstable;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _react = require("@griffel/react");
|
|
23
|
+
const _reacttheme = require("@fluentui/react-theme");
|
|
24
|
+
const _useColorSliderStylesstyles = require("../ColorSlider/useColorSliderStyles.styles");
|
|
25
|
+
const TRANSPARENT_IMAGE_URL = 'https://fabricweb.azureedge.net/fabric-website/assets/images/transparent-pattern.png';
|
|
26
|
+
const alphaSliderClassNames = {
|
|
27
|
+
root: 'fui-AlphaSlider',
|
|
28
|
+
rail: 'fui-AlphaSlider__rail',
|
|
29
|
+
thumb: 'fui-AlphaSlider__thumb',
|
|
30
|
+
input: 'fui-AlphaSlider__input'
|
|
31
|
+
};
|
|
32
|
+
const alphaSliderCSSVars = {
|
|
33
|
+
sliderDirectionVar: `--fui-AlphaSlider--direction`,
|
|
34
|
+
sliderProgressVar: `--fui-AlphaSlider--progress`,
|
|
35
|
+
thumbColorVar: `--fui-AlphaSlider__thumb--color`,
|
|
36
|
+
railColorVar: `--fui-AlphaSlider__rail--color`
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Styles for the root slot
|
|
40
|
+
*/ const useStyles = (0, _react.makeStyles)({
|
|
41
|
+
rail: {
|
|
42
|
+
border: `1px solid ${_reacttheme.tokens.colorNeutralStroke1}`,
|
|
43
|
+
backgroundImage: `linear-gradient(var(${alphaSliderCSSVars.sliderDirectionVar}), transparent, var(${alphaSliderCSSVars.railColorVar})), url(${TRANSPARENT_IMAGE_URL})`
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
/**
|
|
47
|
+
* Styles for the thumb slot
|
|
48
|
+
*/ const useThumbStyles = (0, _react.makeStyles)({
|
|
49
|
+
thumb: {
|
|
50
|
+
backgroundColor: _reacttheme.tokens.colorNeutralBackground1,
|
|
51
|
+
'::before': {
|
|
52
|
+
backgroundColor: `var(${alphaSliderCSSVars.thumbColorVar})`
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
horizontal: {
|
|
56
|
+
transform: 'translateX(-50%)',
|
|
57
|
+
left: `var(${alphaSliderCSSVars.sliderProgressVar})`
|
|
58
|
+
},
|
|
59
|
+
vertical: {
|
|
60
|
+
transform: 'translateY(50%)',
|
|
61
|
+
bottom: `var(${alphaSliderCSSVars.sliderProgressVar})`
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
const useAlphaSliderStyles_unstable = (state)=>{
|
|
65
|
+
'use no memo';
|
|
66
|
+
const styles = useStyles();
|
|
67
|
+
const thumbStyles = useThumbStyles();
|
|
68
|
+
state.root.className = (0, _react.mergeClasses)(alphaSliderClassNames.root, state.root.className);
|
|
69
|
+
state.input.className = (0, _react.mergeClasses)(alphaSliderClassNames.input, state.input.className);
|
|
70
|
+
state.rail.className = (0, _react.mergeClasses)(alphaSliderClassNames.rail, styles.rail, state.rail.className);
|
|
71
|
+
state.thumb.className = (0, _react.mergeClasses)(alphaSliderClassNames.thumb, thumbStyles.thumb, state.vertical ? thumbStyles.vertical : thumbStyles.horizontal, state.thumb.className);
|
|
72
|
+
state.thumb.className = (0, _react.mergeClasses)(alphaSliderClassNames.thumb, thumbStyles.thumb, state.vertical ? thumbStyles.vertical : thumbStyles.horizontal, state.thumb.className);
|
|
73
|
+
(0, _useColorSliderStylesstyles.useColorSliderStyles_unstable)(state);
|
|
74
|
+
return state;
|
|
75
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/AlphaSlider/useAlphaSliderStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { useColorSliderStyles_unstable } from '../ColorSlider/useColorSliderStyles.styles';\nimport type { AlphaSliderSlots, AlphaSliderState } from './AlphaSlider.types';\n\nconst TRANSPARENT_IMAGE_URL = 'https://fabricweb.azureedge.net/fabric-website/assets/images/transparent-pattern.png';\n\nexport const alphaSliderClassNames: SlotClassNames<AlphaSliderSlots> = {\n root: 'fui-AlphaSlider',\n rail: 'fui-AlphaSlider__rail',\n thumb: 'fui-AlphaSlider__thumb',\n input: 'fui-AlphaSlider__input',\n};\n\nexport const alphaSliderCSSVars = {\n sliderDirectionVar: `--fui-AlphaSlider--direction`,\n sliderProgressVar: `--fui-AlphaSlider--progress`,\n thumbColorVar: `--fui-AlphaSlider__thumb--color`,\n railColorVar: `--fui-AlphaSlider__rail--color`,\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n rail: {\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n backgroundImage: `linear-gradient(var(${alphaSliderCSSVars.sliderDirectionVar}), transparent, var(${alphaSliderCSSVars.railColorVar})), url(${TRANSPARENT_IMAGE_URL})`,\n },\n});\n\n/**\n * Styles for the thumb slot\n */\nconst useThumbStyles = makeStyles({\n thumb: {\n backgroundColor: tokens.colorNeutralBackground1,\n '::before': {\n backgroundColor: `var(${alphaSliderCSSVars.thumbColorVar})`,\n },\n },\n horizontal: {\n transform: 'translateX(-50%)',\n left: `var(${alphaSliderCSSVars.sliderProgressVar})`,\n },\n vertical: {\n transform: 'translateY(50%)',\n bottom: `var(${alphaSliderCSSVars.sliderProgressVar})`,\n },\n});\n\n/**\n * Apply styling to the AlphaSlider slots based on the state\n */\nexport const useAlphaSliderStyles_unstable = (state: AlphaSliderState): AlphaSliderState => {\n 'use no memo';\n\n const styles = useStyles();\n const thumbStyles = useThumbStyles();\n state.root.className = mergeClasses(alphaSliderClassNames.root, state.root.className);\n state.input.className = mergeClasses(alphaSliderClassNames.input, state.input.className);\n state.rail.className = mergeClasses(alphaSliderClassNames.rail, styles.rail, state.rail.className);\n\n state.thumb.className = mergeClasses(\n alphaSliderClassNames.thumb,\n thumbStyles.thumb,\n state.vertical ? thumbStyles.vertical : thumbStyles.horizontal,\n state.thumb.className,\n );\n\n state.thumb.className = mergeClasses(\n alphaSliderClassNames.thumb,\n thumbStyles.thumb,\n state.vertical ? thumbStyles.vertical : thumbStyles.horizontal,\n state.thumb.className,\n );\n\n useColorSliderStyles_unstable(state);\n return state;\n};\n"],"names":["alphaSliderCSSVars","alphaSliderClassNames","useAlphaSliderStyles_unstable","TRANSPARENT_IMAGE_URL","root","rail","thumb","input","sliderDirectionVar","sliderProgressVar","thumbColorVar","railColorVar","useStyles","makeStyles","border","tokens","colorNeutralStroke1","backgroundImage","useThumbStyles","backgroundColor","colorNeutralBackground1","horizontal","transform","left","vertical","bottom","state","styles","thumbStyles","className","mergeClasses","useColorSliderStyles_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAeaA,kBAAAA;eAAAA;;IAPAC,qBAAAA;eAAAA;;IA+CAC,6BAAAA;eAAAA;;;uBAvD4B;4BAClB;4CAEuB;AAG9C,MAAMC,wBAAwB;AAEvB,MAAMF,wBAA0D;IACrEG,MAAM;IACNC,MAAM;IACNC,OAAO;IACPC,OAAO;AACT;AAEO,MAAMP,qBAAqB;IAChCQ,oBAAoB,CAAC,4BAA4B,CAAC;IAClDC,mBAAmB,CAAC,2BAA2B,CAAC;IAChDC,eAAe,CAAC,+BAA+B,CAAC;IAChDC,cAAc,CAAC,8BAA8B,CAAC;AAChD;AAEA;;CAEC,GACD,MAAMC,YAAYC,IAAAA,iBAAAA,EAAW;IAC3BR,MAAM;QACJS,QAAQ,CAAC,UAAU,EAAEC,kBAAAA,CAAOC,mBAAmB,CAAC,CAAC;QACjDC,iBAAiB,CAAC,oBAAoB,EAAEjB,mBAAmBQ,kBAAkB,CAAC,oBAAoB,EAAER,mBAAmBW,YAAY,CAAC,QAAQ,EAAER,sBAAsB,CAAC,CAAC;IACxK;AACF;AAEA;;CAEC,GACD,MAAMe,iBAAiBL,IAAAA,iBAAAA,EAAW;IAChCP,OAAO;QACLa,iBAAiBJ,kBAAAA,CAAOK,uBAAuB;QAC/C,YAAY;YACVD,iBAAiB,CAAC,IAAI,EAAEnB,mBAAmBU,aAAa,CAAC,CAAC,CAAC;QAC7D;IACF;IACAW,YAAY;QACVC,WAAW;QACXC,MAAM,CAAC,IAAI,EAAEvB,mBAAmBS,iBAAiB,CAAC,CAAC,CAAC;IACtD;IACAe,UAAU;QACRF,WAAW;QACXG,QAAQ,CAAC,IAAI,EAAEzB,mBAAmBS,iBAAiB,CAAC,CAAC,CAAC;IACxD;AACF;AAKO,MAAMP,gCAAgC,CAACwB;IAC5C;IAEA,MAAMC,SAASf;IACf,MAAMgB,cAAcV;IACpBQ,MAAMtB,IAAI,CAACyB,SAAS,GAAGC,IAAAA,mBAAAA,EAAa7B,sBAAsBG,IAAI,EAAEsB,MAAMtB,IAAI,CAACyB,SAAS;IACpFH,MAAMnB,KAAK,CAACsB,SAAS,GAAGC,IAAAA,mBAAAA,EAAa7B,sBAAsBM,KAAK,EAAEmB,MAAMnB,KAAK,CAACsB,SAAS;IACvFH,MAAMrB,IAAI,CAACwB,SAAS,GAAGC,IAAAA,mBAAAA,EAAa7B,sBAAsBI,IAAI,EAAEsB,OAAOtB,IAAI,EAAEqB,MAAMrB,IAAI,CAACwB,SAAS;IAEjGH,MAAMpB,KAAK,CAACuB,SAAS,GAAGC,IAAAA,mBAAAA,EACtB7B,sBAAsBK,KAAK,EAC3BsB,YAAYtB,KAAK,EACjBoB,MAAMF,QAAQ,GAAGI,YAAYJ,QAAQ,GAAGI,YAAYP,UAAU,EAC9DK,MAAMpB,KAAK,CAACuB,SAAS;IAGvBH,MAAMpB,KAAK,CAACuB,SAAS,GAAGC,IAAAA,mBAAAA,EACtB7B,sBAAsBK,KAAK,EAC3BsB,YAAYtB,KAAK,EACjBoB,MAAMF,QAAQ,GAAGI,YAAYJ,QAAQ,GAAGI,YAAYP,UAAU,EAC9DK,MAAMpB,KAAK,CAACuB,SAAS;IAGvBE,IAAAA,yDAAAA,EAA8BL;IAC9B,OAAOA;AACT"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
colorAreaCSSVars: function() {
|
|
13
|
+
return colorAreaCSSVars;
|
|
14
|
+
},
|
|
15
|
+
colorAreaClassNames: function() {
|
|
16
|
+
return colorAreaClassNames;
|
|
17
|
+
},
|
|
18
|
+
useColorAreaStyles_unstable: function() {
|
|
19
|
+
return useColorAreaStyles_unstable;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _react = require("@griffel/react");
|
|
23
|
+
const _reacttheme = require("@fluentui/react-theme");
|
|
24
|
+
const _reacttabster = require("@fluentui/react-tabster");
|
|
25
|
+
const colorAreaClassNames = {
|
|
26
|
+
root: 'fui-ColorArea',
|
|
27
|
+
thumb: 'fui-ColorArea__thumb',
|
|
28
|
+
inputX: 'fui-ColorArea__inputX',
|
|
29
|
+
inputY: 'fui-ColorArea__inputY'
|
|
30
|
+
};
|
|
31
|
+
const colorAreaCSSVars = {
|
|
32
|
+
areaXProgressVar: `--fui-AreaX--progress`,
|
|
33
|
+
areaYProgressVar: `--fui-AreaY--progress`,
|
|
34
|
+
thumbColorVar: `--fui-Area__thumb--color`,
|
|
35
|
+
mainColorVar: `--fui-Area--main-color`
|
|
36
|
+
};
|
|
37
|
+
// Internal CSS variables
|
|
38
|
+
const thumbSizeVar = `--fui-Slider__thumb--size`;
|
|
39
|
+
/**
|
|
40
|
+
* Styles for the root slot
|
|
41
|
+
*/ const useRootStyles = (0, _react.makeResetStyles)({
|
|
42
|
+
position: 'relative',
|
|
43
|
+
border: `1px solid ${_reacttheme.tokens.colorNeutralStroke1}`,
|
|
44
|
+
background: `linear-gradient(to bottom, transparent, #000), linear-gradient(to right, #fff, transparent), var(${colorAreaCSSVars.mainColorVar})`,
|
|
45
|
+
forcedColorAdjust: 'none',
|
|
46
|
+
display: 'inline-grid',
|
|
47
|
+
touchAction: 'none',
|
|
48
|
+
alignItems: 'start',
|
|
49
|
+
justifyItems: 'start',
|
|
50
|
+
[thumbSizeVar]: '20px',
|
|
51
|
+
minWidth: '300px',
|
|
52
|
+
minHeight: '300px',
|
|
53
|
+
boxSizing: 'border-box',
|
|
54
|
+
marginBottom: _reacttheme.tokens.spacingVerticalSNudge
|
|
55
|
+
});
|
|
56
|
+
/**
|
|
57
|
+
* Styles for the thumb slot
|
|
58
|
+
*/ const useThumbStyles = (0, _react.makeStyles)({
|
|
59
|
+
thumb: {
|
|
60
|
+
position: 'absolute',
|
|
61
|
+
width: `var(${thumbSizeVar})`,
|
|
62
|
+
height: `var(${thumbSizeVar})`,
|
|
63
|
+
pointerEvents: 'none',
|
|
64
|
+
outlineStyle: 'none',
|
|
65
|
+
forcedColorAdjust: 'none',
|
|
66
|
+
borderRadius: _reacttheme.tokens.borderRadiusCircular,
|
|
67
|
+
border: `${_reacttheme.tokens.strokeWidthThin} solid ${_reacttheme.tokens.colorNeutralForeground4}`,
|
|
68
|
+
boxShadow: _reacttheme.tokens.shadow4,
|
|
69
|
+
backgroundColor: `var(${colorAreaCSSVars.thumbColorVar})`,
|
|
70
|
+
transform: 'translate(-50%, 50%)',
|
|
71
|
+
left: `var(${colorAreaCSSVars.areaXProgressVar})`,
|
|
72
|
+
bottom: `var(${colorAreaCSSVars.areaYProgressVar})`,
|
|
73
|
+
'::before': {
|
|
74
|
+
position: 'absolute',
|
|
75
|
+
inset: '0px',
|
|
76
|
+
borderRadius: _reacttheme.tokens.borderRadiusCircular,
|
|
77
|
+
boxSizing: 'border-box',
|
|
78
|
+
content: "''",
|
|
79
|
+
border: `${_reacttheme.tokens.strokeWidthThick} solid ${_reacttheme.tokens.colorNeutralBackground1}`
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
focusIndicator: (0, _reacttabster.createFocusOutlineStyle)({
|
|
83
|
+
selector: 'focus-within',
|
|
84
|
+
style: {
|
|
85
|
+
outlineWidth: _reacttheme.tokens.strokeWidthThick,
|
|
86
|
+
..._react.shorthands.borderWidth(_reacttheme.tokens.strokeWidthThick),
|
|
87
|
+
outlineRadius: _reacttheme.tokens.borderRadiusCircular
|
|
88
|
+
}
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
/**
|
|
92
|
+
* Styles for the Input slot
|
|
93
|
+
*/ const useInputStyles = (0, _react.makeStyles)({
|
|
94
|
+
input: {
|
|
95
|
+
overflow: 'hidden',
|
|
96
|
+
position: 'absolute',
|
|
97
|
+
pointerEvents: 'none',
|
|
98
|
+
top: 0,
|
|
99
|
+
left: 0,
|
|
100
|
+
opacity: 0,
|
|
101
|
+
padding: '0',
|
|
102
|
+
margin: '0',
|
|
103
|
+
width: '100%',
|
|
104
|
+
height: '100%'
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
const useShapeStyles = (0, _react.makeStyles)({
|
|
108
|
+
rounded: {
|
|
109
|
+
borderRadius: _reacttheme.tokens.borderRadiusMedium
|
|
110
|
+
},
|
|
111
|
+
square: {
|
|
112
|
+
borderRadius: _reacttheme.tokens.borderRadiusNone
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
const useColorAreaStyles_unstable = (state)=>{
|
|
116
|
+
'use no memo';
|
|
117
|
+
const rootStyles = useRootStyles();
|
|
118
|
+
const thumbStyles = useThumbStyles();
|
|
119
|
+
const inputStyles = useInputStyles();
|
|
120
|
+
const shapeStyles = useShapeStyles();
|
|
121
|
+
state.root.className = (0, _react.mergeClasses)(colorAreaClassNames.root, rootStyles, shapeStyles[state.shape || 'rounded'], state.root.className);
|
|
122
|
+
state.thumb.className = (0, _react.mergeClasses)(colorAreaClassNames.thumb, thumbStyles.thumb, thumbStyles.focusIndicator, state.thumb.className);
|
|
123
|
+
state.inputX.className = (0, _react.mergeClasses)(colorAreaClassNames.inputX, inputStyles.input, state.inputX.className);
|
|
124
|
+
state.inputY.className = (0, _react.mergeClasses)(colorAreaClassNames.inputY, inputStyles.input, state.inputY.className);
|
|
125
|
+
return state;
|
|
126
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ColorArea/useColorAreaStyles.styles.ts"],"sourcesContent":["import { makeResetStyles, makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport { createFocusOutlineStyle } from '@fluentui/react-tabster';\nimport type { ColorAreaSlots, ColorAreaState } from './ColorArea.types';\n\nexport const colorAreaClassNames: SlotClassNames<ColorAreaSlots> = {\n root: 'fui-ColorArea',\n thumb: 'fui-ColorArea__thumb',\n inputX: 'fui-ColorArea__inputX',\n inputY: 'fui-ColorArea__inputY',\n};\n\nexport const colorAreaCSSVars = {\n areaXProgressVar: `--fui-AreaX--progress`,\n areaYProgressVar: `--fui-AreaY--progress`,\n thumbColorVar: `--fui-Area__thumb--color`,\n mainColorVar: `--fui-Area--main-color`,\n};\n\n// Internal CSS variables\nconst thumbSizeVar = `--fui-Slider__thumb--size`;\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeResetStyles({\n position: 'relative',\n border: `1px solid ${tokens.colorNeutralStroke1}`,\n background: `linear-gradient(to bottom, transparent, #000), linear-gradient(to right, #fff, transparent), var(${colorAreaCSSVars.mainColorVar})`,\n forcedColorAdjust: 'none',\n display: 'inline-grid',\n touchAction: 'none',\n alignItems: 'start',\n justifyItems: 'start',\n [thumbSizeVar]: '20px',\n minWidth: '300px',\n minHeight: '300px',\n boxSizing: 'border-box',\n marginBottom: tokens.spacingVerticalSNudge,\n});\n\n/**\n * Styles for the thumb slot\n */\nconst useThumbStyles = makeStyles({\n thumb: {\n position: 'absolute',\n width: `var(${thumbSizeVar})`,\n height: `var(${thumbSizeVar})`,\n pointerEvents: 'none',\n outlineStyle: 'none',\n forcedColorAdjust: 'none',\n borderRadius: tokens.borderRadiusCircular,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralForeground4}`,\n boxShadow: tokens.shadow4,\n backgroundColor: `var(${colorAreaCSSVars.thumbColorVar})`,\n transform: 'translate(-50%, 50%)',\n left: `var(${colorAreaCSSVars.areaXProgressVar})`,\n bottom: `var(${colorAreaCSSVars.areaYProgressVar})`,\n '::before': {\n position: 'absolute',\n inset: '0px',\n borderRadius: tokens.borderRadiusCircular,\n boxSizing: 'border-box',\n content: \"''\",\n border: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralBackground1}`,\n },\n },\n focusIndicator: createFocusOutlineStyle({\n selector: 'focus-within',\n style: {\n outlineWidth: tokens.strokeWidthThick,\n ...shorthands.borderWidth(tokens.strokeWidthThick),\n outlineRadius: tokens.borderRadiusCircular,\n },\n }),\n});\n\n/**\n * Styles for the Input slot\n */\nconst useInputStyles = makeStyles({\n input: {\n overflow: 'hidden',\n position: 'absolute',\n pointerEvents: 'none',\n top: 0,\n left: 0,\n opacity: 0,\n padding: '0',\n margin: '0',\n width: '100%',\n height: '100%',\n },\n});\n\nconst useShapeStyles = makeStyles({\n rounded: {\n borderRadius: tokens.borderRadiusMedium,\n },\n square: {\n borderRadius: tokens.borderRadiusNone,\n },\n});\n\n/**\n * Apply styling to the ColorArea slots based on the state\n */\nexport const useColorAreaStyles_unstable = (state: ColorAreaState): ColorAreaState => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const thumbStyles = useThumbStyles();\n const inputStyles = useInputStyles();\n const shapeStyles = useShapeStyles();\n\n state.root.className = mergeClasses(\n colorAreaClassNames.root,\n rootStyles,\n shapeStyles[state.shape || 'rounded'],\n state.root.className,\n );\n\n state.thumb.className = mergeClasses(\n colorAreaClassNames.thumb,\n thumbStyles.thumb,\n thumbStyles.focusIndicator,\n state.thumb.className,\n );\n\n state.inputX.className = mergeClasses(colorAreaClassNames.inputX, inputStyles.input, state.inputX.className);\n\n state.inputY.className = mergeClasses(colorAreaClassNames.inputY, inputStyles.input, state.inputY.className);\n return state;\n};\n"],"names":["colorAreaCSSVars","colorAreaClassNames","useColorAreaStyles_unstable","root","thumb","inputX","inputY","areaXProgressVar","areaYProgressVar","thumbColorVar","mainColorVar","thumbSizeVar","useRootStyles","makeResetStyles","position","border","tokens","colorNeutralStroke1","background","forcedColorAdjust","display","touchAction","alignItems","justifyItems","minWidth","minHeight","boxSizing","marginBottom","spacingVerticalSNudge","useThumbStyles","makeStyles","width","height","pointerEvents","outlineStyle","borderRadius","borderRadiusCircular","strokeWidthThin","colorNeutralForeground4","boxShadow","shadow4","backgroundColor","transform","left","bottom","inset","content","strokeWidthThick","colorNeutralBackground1","focusIndicator","createFocusOutlineStyle","selector","style","outlineWidth","shorthands","borderWidth","outlineRadius","useInputStyles","input","overflow","top","opacity","padding","margin","useShapeStyles","rounded","borderRadiusMedium","square","borderRadiusNone","state","rootStyles","thumbStyles","inputStyles","shapeStyles","className","mergeClasses","shape"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
colorPickerClassNames: function() {
|
|
13
|
+
return colorPickerClassNames;
|
|
14
|
+
},
|
|
15
|
+
useColorPickerStyles_unstable: function() {
|
|
16
|
+
return useColorPickerStyles_unstable;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _react = require("@griffel/react");
|
|
20
|
+
const _reacttheme = require("@fluentui/react-theme");
|
|
21
|
+
const colorPickerClassNames = {
|
|
22
|
+
root: 'fui-ColorPicker'
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Styles for the root slot
|
|
26
|
+
*/ const useStyles = (0, _react.makeStyles)({
|
|
27
|
+
root: {
|
|
28
|
+
display: 'flex',
|
|
29
|
+
flexDirection: 'column',
|
|
30
|
+
gap: _reacttheme.tokens.spacingVerticalXS
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
const useColorPickerStyles_unstable = (state)=>{
|
|
34
|
+
'use no memo';
|
|
35
|
+
const styles = useStyles();
|
|
36
|
+
state.root.className = (0, _react.mergeClasses)(colorPickerClassNames.root, styles.root, state.root.className);
|
|
37
|
+
return state;
|
|
38
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ColorPicker/useColorPickerStyles.styles.ts"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { ColorPickerSlots, ColorPickerState } from './ColorPicker.types';\nimport { tokens } from '@fluentui/react-theme';\n\nexport const colorPickerClassNames: SlotClassNames<ColorPickerSlots> = {\n root: 'fui-ColorPicker',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: tokens.spacingVerticalXS,\n },\n});\n\n/**\n * Apply styling to the ColorPicker slots based on the state\n */\nexport const useColorPickerStyles_unstable = (state: ColorPickerState): ColorPickerState => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(colorPickerClassNames.root, styles.root, state.root.className);\n\n return state;\n};\n"],"names":["colorPickerClassNames","useColorPickerStyles_unstable","root","useStyles","makeStyles","display","flexDirection","gap","tokens","spacingVerticalXS","state","styles","className","mergeClasses"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAKaA,qBAAAA;eAAAA;;IAkBAC,6BAAAA;eAAAA;;;uBAvB4B;4BAGlB;AAEhB,MAAMD,wBAA0D;IACrEE,MAAM;AACR;AAEA;;CAEC,GACD,MAAMC,YAAYC,IAAAA,iBAAAA,EAAW;IAC3BF,MAAM;QACJG,SAAS;QACTC,eAAe;QACfC,KAAKC,kBAAAA,CAAOC,iBAAiB;IAC/B;AACF;AAKO,MAAMR,gCAAgC,CAACS;IAC5C;IAEA,MAAMC,SAASR;IACfO,MAAMR,IAAI,CAACU,SAAS,GAAGC,IAAAA,mBAAAA,EAAab,sBAAsBE,IAAI,EAAES,OAAOT,IAAI,EAAEQ,MAAMR,IAAI,CAACU,SAAS;IAEjG,OAAOF;AACT"}
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
colorSliderCSSVars: function() {
|
|
13
|
+
return colorSliderCSSVars;
|
|
14
|
+
},
|
|
15
|
+
colorSliderClassNames: function() {
|
|
16
|
+
return colorSliderClassNames;
|
|
17
|
+
},
|
|
18
|
+
useColorSliderStyles_unstable: function() {
|
|
19
|
+
return useColorSliderStyles_unstable;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _react = require("@griffel/react");
|
|
23
|
+
const _reacttheme = require("@fluentui/react-theme");
|
|
24
|
+
const colorSliderClassNames = {
|
|
25
|
+
root: 'fui-ColorSlider',
|
|
26
|
+
rail: 'fui-ColorSlider__rail',
|
|
27
|
+
thumb: 'fui-ColorSlider__thumb',
|
|
28
|
+
input: 'fui-ColorSlider__input'
|
|
29
|
+
};
|
|
30
|
+
const colorSliderCSSVars = {
|
|
31
|
+
sliderDirectionVar: `--fui-Slider--direction`,
|
|
32
|
+
sliderProgressVar: `--fui-Slider--progress`,
|
|
33
|
+
thumbColorVar: `--fui-Slider__thumb--color`,
|
|
34
|
+
railColorVar: `--fui-Slider__rail--color`,
|
|
35
|
+
thumbSizeVar: `--fui-Slider__thumb--size`,
|
|
36
|
+
railSizeVar: `--fui-Slider__rail--size`
|
|
37
|
+
};
|
|
38
|
+
const hueBackground = `linear-gradient(${[
|
|
39
|
+
`var(${colorSliderCSSVars.sliderDirectionVar})`,
|
|
40
|
+
'red',
|
|
41
|
+
'fuchsia',
|
|
42
|
+
'blue',
|
|
43
|
+
'aqua',
|
|
44
|
+
'lime',
|
|
45
|
+
'yellow',
|
|
46
|
+
'red'
|
|
47
|
+
].join(',')})`;
|
|
48
|
+
/**
|
|
49
|
+
* Styles for the root slot
|
|
50
|
+
*/ const useRootStyles = (0, _react.makeResetStyles)({
|
|
51
|
+
position: 'relative',
|
|
52
|
+
display: 'inline-grid',
|
|
53
|
+
touchAction: 'none',
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
justifyItems: 'center',
|
|
56
|
+
[colorSliderCSSVars.thumbSizeVar]: '20px',
|
|
57
|
+
[colorSliderCSSVars.railSizeVar]: '20px',
|
|
58
|
+
minHeight: '32px'
|
|
59
|
+
});
|
|
60
|
+
const useStyles = (0, _react.makeStyles)({
|
|
61
|
+
horizontal: {
|
|
62
|
+
minWidth: '200px',
|
|
63
|
+
// 3x3 grid with the rail and thumb in the center cell [2,2] and the hidden input stretching across all cells
|
|
64
|
+
gridTemplateRows: `1fr var(${colorSliderCSSVars.thumbSizeVar}) 1fr`,
|
|
65
|
+
gridTemplateColumns: `1fr 100% 1fr`
|
|
66
|
+
},
|
|
67
|
+
vertical: {
|
|
68
|
+
minHeight: '280px',
|
|
69
|
+
// 3x3 grid with the rail and thumb in the center cell [2,2] and the hidden input stretching across all cells
|
|
70
|
+
gridTemplateRows: `1fr 100% 1fr`,
|
|
71
|
+
gridTemplateColumns: `1fr var(${colorSliderCSSVars.thumbSizeVar}) 1fr`
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
const useChannelStyles = (0, _react.makeStyles)({
|
|
75
|
+
hue: {
|
|
76
|
+
backgroundImage: hueBackground
|
|
77
|
+
},
|
|
78
|
+
saturation: {
|
|
79
|
+
backgroundImage: `linear-gradient(to right, #808080, var(${colorSliderCSSVars.railColorVar}))`
|
|
80
|
+
},
|
|
81
|
+
value: {
|
|
82
|
+
backgroundImage: `linear-gradient(to right, #000, var(${colorSliderCSSVars.railColorVar}))`
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
/**
|
|
86
|
+
* Styles for the rail slot
|
|
87
|
+
*/ const useRailStyles = (0, _react.makeStyles)({
|
|
88
|
+
rail: {
|
|
89
|
+
pointerEvents: 'none',
|
|
90
|
+
gridRowStart: '2',
|
|
91
|
+
gridRowEnd: '2',
|
|
92
|
+
gridColumnStart: '2',
|
|
93
|
+
gridColumnEnd: '2',
|
|
94
|
+
position: 'relative',
|
|
95
|
+
forcedColorAdjust: 'none',
|
|
96
|
+
outlineWidth: '1px',
|
|
97
|
+
outlineStyle: 'solid',
|
|
98
|
+
outlineColor: _reacttheme.tokens.colorTransparentStroke,
|
|
99
|
+
'::before': {
|
|
100
|
+
content: "''",
|
|
101
|
+
position: 'absolute'
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
horizontal: {
|
|
105
|
+
width: '100%',
|
|
106
|
+
height: `var(${colorSliderCSSVars.railSizeVar})`,
|
|
107
|
+
'::before': {
|
|
108
|
+
left: '-1px',
|
|
109
|
+
right: '-1px',
|
|
110
|
+
height: `var(${colorSliderCSSVars.railSizeVar})`
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
vertical: {
|
|
114
|
+
width: `var(${colorSliderCSSVars.railSizeVar})`,
|
|
115
|
+
height: '100%',
|
|
116
|
+
'::before': {
|
|
117
|
+
width: `var(${colorSliderCSSVars.railSizeVar})`,
|
|
118
|
+
top: '-1px',
|
|
119
|
+
bottom: '1px'
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
/**
|
|
124
|
+
* Styles for the thumb slot
|
|
125
|
+
*/ const useThumbStyles = (0, _react.makeStyles)({
|
|
126
|
+
thumb: {
|
|
127
|
+
gridRowStart: '2',
|
|
128
|
+
gridRowEnd: '2',
|
|
129
|
+
gridColumnStart: '2',
|
|
130
|
+
gridColumnEnd: '2',
|
|
131
|
+
position: 'absolute',
|
|
132
|
+
width: `var(${colorSliderCSSVars.thumbSizeVar})`,
|
|
133
|
+
height: `var(${colorSliderCSSVars.thumbSizeVar})`,
|
|
134
|
+
pointerEvents: 'none',
|
|
135
|
+
outlineStyle: 'none',
|
|
136
|
+
forcedColorAdjust: 'none',
|
|
137
|
+
borderRadius: _reacttheme.tokens.borderRadiusCircular,
|
|
138
|
+
border: `${_reacttheme.tokens.strokeWidthThin} solid ${_reacttheme.tokens.colorNeutralForeground4}`,
|
|
139
|
+
boxShadow: _reacttheme.tokens.shadow4,
|
|
140
|
+
backgroundColor: `var(${colorSliderCSSVars.thumbColorVar})`,
|
|
141
|
+
'::before': {
|
|
142
|
+
position: 'absolute',
|
|
143
|
+
inset: '0px',
|
|
144
|
+
borderRadius: _reacttheme.tokens.borderRadiusCircular,
|
|
145
|
+
boxSizing: 'border-box',
|
|
146
|
+
content: "''",
|
|
147
|
+
border: `${_reacttheme.tokens.strokeWidthThick} solid ${_reacttheme.tokens.colorNeutralBackground1}`
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
horizontal: {
|
|
151
|
+
transform: 'translateX(-50%)',
|
|
152
|
+
left: `var(${colorSliderCSSVars.sliderProgressVar})`
|
|
153
|
+
},
|
|
154
|
+
vertical: {
|
|
155
|
+
transform: 'translateY(50%)',
|
|
156
|
+
bottom: `var(${colorSliderCSSVars.sliderProgressVar})`
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
const useShapeStyles = (0, _react.makeStyles)({
|
|
160
|
+
rounded: {
|
|
161
|
+
borderRadius: _reacttheme.tokens.borderRadiusMedium
|
|
162
|
+
},
|
|
163
|
+
square: {
|
|
164
|
+
borderRadius: _reacttheme.tokens.borderRadiusNone
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
/**
|
|
168
|
+
* Styles for the Input slot
|
|
169
|
+
*/ const useInputStyles = (0, _react.makeStyles)({
|
|
170
|
+
input: {
|
|
171
|
+
cursor: 'pointer',
|
|
172
|
+
opacity: 0,
|
|
173
|
+
gridRowStart: '1',
|
|
174
|
+
gridRowEnd: '-1',
|
|
175
|
+
gridColumnStart: '1',
|
|
176
|
+
gridColumnEnd: '-1',
|
|
177
|
+
padding: '0',
|
|
178
|
+
margin: '0',
|
|
179
|
+
[`:focus-visible ~ .${colorSliderClassNames.thumb}`]: {
|
|
180
|
+
border: `2px solid ${_reacttheme.tokens.colorStrokeFocus2}`,
|
|
181
|
+
outline: `${_reacttheme.tokens.strokeWidthThick} solid ${_reacttheme.tokens.colorTransparentStroke}`,
|
|
182
|
+
borderRadius: _reacttheme.tokens.borderRadiusCircular
|
|
183
|
+
}
|
|
184
|
+
},
|
|
185
|
+
horizontal: {
|
|
186
|
+
height: `var(${colorSliderCSSVars.thumbSizeVar})`,
|
|
187
|
+
width: '100%'
|
|
188
|
+
},
|
|
189
|
+
vertical: {
|
|
190
|
+
height: '100%',
|
|
191
|
+
width: `var(${colorSliderCSSVars.thumbSizeVar})`,
|
|
192
|
+
'writing-mode': 'vertical-lr',
|
|
193
|
+
direction: 'rtl'
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
const useColorSliderStyles_unstable = (state)=>{
|
|
197
|
+
'use no memo';
|
|
198
|
+
const rootStyles = useRootStyles();
|
|
199
|
+
const styles = useStyles();
|
|
200
|
+
const railStyles = useRailStyles();
|
|
201
|
+
const thumbStyles = useThumbStyles();
|
|
202
|
+
const inputStyles = useInputStyles();
|
|
203
|
+
const shapeStyles = useShapeStyles();
|
|
204
|
+
const channelStyles = useChannelStyles();
|
|
205
|
+
const isVertical = state.vertical;
|
|
206
|
+
state.root.className = (0, _react.mergeClasses)(colorSliderClassNames.root, rootStyles, isVertical ? styles.vertical : styles.horizontal, state.root.className);
|
|
207
|
+
state.rail.className = (0, _react.mergeClasses)(colorSliderClassNames.rail, railStyles.rail, channelStyles[state.channel || 'hue'], shapeStyles[state.shape || 'rounded'], isVertical ? railStyles.vertical : railStyles.horizontal, state.rail.className);
|
|
208
|
+
state.thumb.className = (0, _react.mergeClasses)(colorSliderClassNames.thumb, thumbStyles.thumb, isVertical ? thumbStyles.vertical : thumbStyles.horizontal, state.thumb.className);
|
|
209
|
+
state.input.className = (0, _react.mergeClasses)(colorSliderClassNames.input, inputStyles.input, isVertical ? inputStyles.vertical : inputStyles.horizontal, state.input.className);
|
|
210
|
+
return state;
|
|
211
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ColorSlider/useColorSliderStyles.styles.ts"],"sourcesContent":["import { makeStyles, makeResetStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { tokens } from '@fluentui/react-theme';\nimport type { ColorSliderSlots, ColorSliderState } from './ColorSlider.types';\n\nexport const colorSliderClassNames: SlotClassNames<ColorSliderSlots> = {\n root: 'fui-ColorSlider',\n rail: 'fui-ColorSlider__rail',\n thumb: 'fui-ColorSlider__thumb',\n input: 'fui-ColorSlider__input',\n};\n\nexport const colorSliderCSSVars = {\n sliderDirectionVar: `--fui-Slider--direction`,\n sliderProgressVar: `--fui-Slider--progress`,\n thumbColorVar: `--fui-Slider__thumb--color`,\n railColorVar: `--fui-Slider__rail--color`,\n thumbSizeVar: `--fui-Slider__thumb--size`,\n railSizeVar: `--fui-Slider__rail--size`,\n};\n\nconst hueBackground = `linear-gradient(${[\n `var(${colorSliderCSSVars.sliderDirectionVar})`,\n 'red',\n 'fuchsia',\n 'blue',\n 'aqua',\n 'lime',\n 'yellow',\n 'red',\n].join(',')})`;\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeResetStyles({\n position: 'relative',\n display: 'inline-grid',\n touchAction: 'none',\n alignItems: 'center',\n justifyItems: 'center',\n [colorSliderCSSVars.thumbSizeVar]: '20px',\n [colorSliderCSSVars.railSizeVar]: '20px',\n minHeight: '32px',\n});\n\nconst useStyles = makeStyles({\n horizontal: {\n minWidth: '200px',\n // 3x3 grid with the rail and thumb in the center cell [2,2] and the hidden input stretching across all cells\n gridTemplateRows: `1fr var(${colorSliderCSSVars.thumbSizeVar}) 1fr`,\n gridTemplateColumns: `1fr 100% 1fr`,\n },\n\n vertical: {\n minHeight: '280px',\n // 3x3 grid with the rail and thumb in the center cell [2,2] and the hidden input stretching across all cells\n gridTemplateRows: `1fr 100% 1fr`,\n gridTemplateColumns: `1fr var(${colorSliderCSSVars.thumbSizeVar}) 1fr`,\n },\n});\n\nconst useChannelStyles = makeStyles({\n hue: {\n backgroundImage: hueBackground,\n },\n saturation: {\n backgroundImage: `linear-gradient(to right, #808080, var(${colorSliderCSSVars.railColorVar}))`,\n },\n value: {\n backgroundImage: `linear-gradient(to right, #000, var(${colorSliderCSSVars.railColorVar}))`,\n },\n});\n\n/**\n * Styles for the rail slot\n */\nconst useRailStyles = makeStyles({\n rail: {\n pointerEvents: 'none',\n gridRowStart: '2',\n gridRowEnd: '2',\n gridColumnStart: '2',\n gridColumnEnd: '2',\n position: 'relative',\n forcedColorAdjust: 'none',\n outlineWidth: '1px',\n outlineStyle: 'solid',\n outlineColor: tokens.colorTransparentStroke,\n '::before': {\n content: \"''\",\n position: 'absolute',\n },\n },\n\n horizontal: {\n width: '100%',\n height: `var(${colorSliderCSSVars.railSizeVar})`,\n '::before': {\n left: '-1px',\n right: '-1px',\n height: `var(${colorSliderCSSVars.railSizeVar})`,\n },\n },\n\n vertical: {\n width: `var(${colorSliderCSSVars.railSizeVar})`,\n height: '100%',\n '::before': {\n width: `var(${colorSliderCSSVars.railSizeVar})`,\n top: '-1px',\n bottom: '1px',\n },\n },\n});\n\n/**\n * Styles for the thumb slot\n */\nconst useThumbStyles = makeStyles({\n thumb: {\n gridRowStart: '2',\n gridRowEnd: '2',\n gridColumnStart: '2',\n gridColumnEnd: '2',\n position: 'absolute',\n width: `var(${colorSliderCSSVars.thumbSizeVar})`,\n height: `var(${colorSliderCSSVars.thumbSizeVar})`,\n pointerEvents: 'none',\n outlineStyle: 'none',\n forcedColorAdjust: 'none',\n borderRadius: tokens.borderRadiusCircular,\n border: `${tokens.strokeWidthThin} solid ${tokens.colorNeutralForeground4}`,\n boxShadow: tokens.shadow4,\n backgroundColor: `var(${colorSliderCSSVars.thumbColorVar})`,\n '::before': {\n position: 'absolute',\n inset: '0px',\n borderRadius: tokens.borderRadiusCircular,\n boxSizing: 'border-box',\n content: \"''\",\n border: `${tokens.strokeWidthThick} solid ${tokens.colorNeutralBackground1}`,\n },\n },\n horizontal: {\n transform: 'translateX(-50%)',\n left: `var(${colorSliderCSSVars.sliderProgressVar})`,\n },\n vertical: {\n transform: 'translateY(50%)',\n bottom: `var(${colorSliderCSSVars.sliderProgressVar})`,\n },\n});\n\nconst useShapeStyles = makeStyles({\n rounded: {\n borderRadius: tokens.borderRadiusMedium,\n },\n square: {\n borderRadius: tokens.borderRadiusNone,\n },\n});\n\n/**\n * Styles for the Input slot\n */\nconst useInputStyles = makeStyles({\n input: {\n cursor: 'pointer',\n opacity: 0,\n gridRowStart: '1',\n gridRowEnd: '-1',\n gridColumnStart: '1',\n gridColumnEnd: '-1',\n padding: '0',\n margin: '0',\n [`:focus-visible ~ .${colorSliderClassNames.thumb}`]: {\n border: `2px solid ${tokens.colorStrokeFocus2}`,\n outline: `${tokens.strokeWidthThick} solid ${tokens.colorTransparentStroke}`,\n borderRadius: tokens.borderRadiusCircular,\n },\n },\n horizontal: {\n height: `var(${colorSliderCSSVars.thumbSizeVar})`,\n width: '100%',\n },\n vertical: {\n height: '100%',\n width: `var(${colorSliderCSSVars.thumbSizeVar})`,\n 'writing-mode': 'vertical-lr',\n direction: 'rtl',\n },\n});\n\n/**\n * Apply styling to the ColorSlider slots based on the state\n */\nexport const useColorSliderStyles_unstable = (state: ColorSliderState): ColorSliderState => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const styles = useStyles();\n const railStyles = useRailStyles();\n const thumbStyles = useThumbStyles();\n const inputStyles = useInputStyles();\n const shapeStyles = useShapeStyles();\n const channelStyles = useChannelStyles();\n const isVertical = state.vertical;\n\n state.root.className = mergeClasses(\n colorSliderClassNames.root,\n rootStyles,\n isVertical ? styles.vertical : styles.horizontal,\n state.root.className,\n );\n\n state.rail.className = mergeClasses(\n colorSliderClassNames.rail,\n railStyles.rail,\n channelStyles[state.channel || 'hue'],\n shapeStyles[state.shape || 'rounded'],\n isVertical ? railStyles.vertical : railStyles.horizontal,\n state.rail.className,\n );\n\n state.thumb.className = mergeClasses(\n colorSliderClassNames.thumb,\n thumbStyles.thumb,\n isVertical ? thumbStyles.vertical : thumbStyles.horizontal,\n state.thumb.className,\n );\n\n state.input.className = mergeClasses(\n colorSliderClassNames.input,\n inputStyles.input,\n isVertical ? inputStyles.vertical : inputStyles.horizontal,\n state.input.className,\n );\n return state;\n};\n"],"names":["colorSliderCSSVars","colorSliderClassNames","useColorSliderStyles_unstable","root","rail","thumb","input","sliderDirectionVar","sliderProgressVar","thumbColorVar","railColorVar","thumbSizeVar","railSizeVar","hueBackground","join","useRootStyles","makeResetStyles","position","display","touchAction","alignItems","justifyItems","minHeight","useStyles","makeStyles","horizontal","minWidth","gridTemplateRows","gridTemplateColumns","vertical","useChannelStyles","hue","backgroundImage","saturation","value","useRailStyles","pointerEvents","gridRowStart","gridRowEnd","gridColumnStart","gridColumnEnd","forcedColorAdjust","outlineWidth","outlineStyle","outlineColor","tokens","colorTransparentStroke","content","width","height","left","right","top","bottom","useThumbStyles","borderRadius","borderRadiusCircular","border","strokeWidthThin","colorNeutralForeground4","boxShadow","shadow4","backgroundColor","inset","boxSizing","strokeWidthThick","colorNeutralBackground1","transform","useShapeStyles","rounded","borderRadiusMedium","square","borderRadiusNone","useInputStyles","cursor","opacity","padding","margin","colorStrokeFocus2","outline","direction","state","rootStyles","styles","railStyles","thumbStyles","inputStyles","shapeStyles","channelStyles","isVertical","className","mergeClasses","channel","shape"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-color-picker",
|
|
3
|
-
"version": "9.
|
|
3
|
+
"version": "9.2.0",
|
|
4
4
|
"description": "ColorPicker component for Fluent UI React.",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@fluentui/react-context-selector": "^9.2.2",
|
|
29
29
|
"@fluentui/react-jsx-runtime": "^9.1.2",
|
|
30
30
|
"@fluentui/react-shared-contexts": "^9.24.0",
|
|
31
|
-
"@fluentui/react-tabster": "^9.
|
|
31
|
+
"@fluentui/react-tabster": "^9.26.0",
|
|
32
32
|
"@fluentui/react-theme": "^9.1.24",
|
|
33
33
|
"@fluentui/react-utilities": "^9.22.0",
|
|
34
34
|
"@griffel/react": "^1.5.22",
|