@wordpress/components 25.15.0 → 25.16.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 +26 -0
- package/build/border-box-control/border-box-control/component.js.map +1 -1
- package/build/border-box-control/border-box-control/hook.js +3 -1
- package/build/border-box-control/border-box-control/hook.js.map +1 -1
- package/build/border-box-control/types.js.map +1 -1
- package/build/border-control/border-control/component.js +5 -1
- package/build/border-control/border-control/component.js.map +1 -1
- package/build/border-control/border-control/hook.js +18 -15
- package/build/border-control/border-control/hook.js.map +1 -1
- package/build/border-control/border-control-dropdown/component.js +2 -1
- package/build/border-control/border-control-dropdown/component.js.map +1 -1
- package/build/border-control/border-control-style-picker/component.js +21 -49
- package/build/border-control/border-control-style-picker/component.js.map +1 -1
- package/build/border-control/styles.js +15 -27
- package/build/border-control/styles.js.map +1 -1
- package/build/border-control/types.js.map +1 -1
- package/build/box-control/all-input-control.js +35 -29
- package/build/box-control/all-input-control.js.map +1 -1
- package/build/box-control/axial-input-controls.js +40 -54
- package/build/box-control/axial-input-controls.js.map +1 -1
- package/build/box-control/index.js +21 -24
- package/build/box-control/index.js.map +1 -1
- package/build/box-control/input-controls.js +45 -37
- package/build/box-control/input-controls.js.map +1 -1
- package/build/box-control/styles/box-control-styles.js +50 -112
- package/build/box-control/styles/box-control-styles.js.map +1 -1
- package/build/box-control/types.js.map +1 -1
- package/build/box-control/utils.js +123 -8
- package/build/box-control/utils.js.map +1 -1
- package/build/button/index.js +14 -16
- package/build/button/index.js.map +1 -1
- package/build/button/types.js.map +1 -1
- package/build/color-palette/index.native.js +11 -7
- package/build/color-palette/index.native.js.map +1 -1
- package/build/color-picker/hsl-input.js +55 -33
- package/build/color-picker/hsl-input.js.map +1 -1
- package/build/custom-select-control-v2/index.js +3 -2
- package/build/custom-select-control-v2/index.js.map +1 -1
- package/build/mobile/color-settings/palette.screen.native.js +8 -4
- package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build/slot-fill/bubbles-virtually/use-slot-fills.js +1 -1
- package/build/slot-fill/bubbles-virtually/use-slot-fills.js.map +1 -1
- package/build/theme/styles.js +11 -6
- package/build/theme/styles.js.map +1 -1
- package/build/toggle-group-control/toggle-group-control/utils.js +7 -1
- package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
- package/build/tooltip/index.js +35 -8
- package/build/tooltip/index.js.map +1 -1
- package/build/tooltip/types.js.map +1 -1
- package/build-module/border-box-control/border-box-control/component.js.map +1 -1
- package/build-module/border-box-control/border-box-control/hook.js +3 -1
- package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
- package/build-module/border-box-control/types.js.map +1 -1
- package/build-module/border-control/border-control/component.js +5 -1
- package/build-module/border-control/border-control/component.js.map +1 -1
- package/build-module/border-control/border-control/hook.js +18 -15
- package/build-module/border-control/border-control/hook.js.map +1 -1
- package/build-module/border-control/border-control-dropdown/component.js +2 -1
- package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
- package/build-module/border-control/border-control-style-picker/component.js +21 -48
- package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
- package/build-module/border-control/styles.js +14 -24
- package/build-module/border-control/styles.js.map +1 -1
- package/build-module/border-control/types.js.map +1 -1
- package/build-module/box-control/all-input-control.js +38 -28
- package/build-module/box-control/all-input-control.js.map +1 -1
- package/build-module/box-control/axial-input-controls.js +42 -57
- package/build-module/box-control/axial-input-controls.js.map +1 -1
- package/build-module/box-control/index.js +22 -25
- package/build-module/box-control/index.js.map +1 -1
- package/build-module/box-control/input-controls.js +47 -40
- package/build-module/box-control/input-controls.js.map +1 -1
- package/build-module/box-control/styles/box-control-styles.js +45 -105
- package/build-module/box-control/styles/box-control-styles.js.map +1 -1
- package/build-module/box-control/types.js.map +1 -1
- package/build-module/box-control/utils.js +121 -7
- package/build-module/box-control/utils.js.map +1 -1
- package/build-module/button/index.js +14 -16
- package/build-module/button/index.js.map +1 -1
- package/build-module/button/types.js.map +1 -1
- package/build-module/color-palette/index.native.js +11 -7
- package/build-module/color-palette/index.native.js.map +1 -1
- package/build-module/color-picker/hsl-input.js +55 -33
- package/build-module/color-picker/hsl-input.js.map +1 -1
- package/build-module/custom-select-control-v2/index.js +3 -2
- package/build-module/custom-select-control-v2/index.js.map +1 -1
- package/build-module/mobile/color-settings/palette.screen.native.js +8 -4
- package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
- package/build-module/slot-fill/bubbles-virtually/use-slot-fills.js +1 -1
- package/build-module/slot-fill/bubbles-virtually/use-slot-fills.js.map +1 -1
- package/build-module/theme/styles.js +11 -2
- package/build-module/theme/styles.js.map +1 -1
- package/build-module/toggle-group-control/toggle-group-control/utils.js +7 -1
- package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
- package/build-module/tooltip/index.js +34 -9
- package/build-module/tooltip/index.js.map +1 -1
- package/build-module/tooltip/types.js.map +1 -1
- package/build-style/style-rtl.css +6 -4
- package/build-style/style.css +6 -4
- package/build-types/border-box-control/border-box-control/component.d.ts +1 -0
- package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
- package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +3 -3
- package/build-types/border-box-control/stories/index.story.d.ts +2 -1
- package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-box-control/types.d.ts +6 -0
- package/build-types/border-box-control/types.d.ts.map +1 -1
- package/build-types/border-control/border-control/component.d.ts +1 -0
- package/build-types/border-control/border-control/component.d.ts.map +1 -1
- package/build-types/border-control/border-control/hook.d.ts +2 -0
- package/build-types/border-control/border-control/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/component.d.ts +1 -0
- package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
- package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -0
- package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
- package/build-types/border-control/border-control-style-picker/component.d.ts +3 -4
- package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -1
- package/build-types/border-control/stories/index.story.d.ts +12 -6
- package/build-types/border-control/stories/index.story.d.ts.map +1 -1
- package/build-types/border-control/styles.d.ts +0 -2
- package/build-types/border-control/styles.d.ts.map +1 -1
- package/build-types/border-control/types.d.ts +12 -1
- package/build-types/border-control/types.d.ts.map +1 -1
- package/build-types/box-control/all-input-control.d.ts +1 -1
- package/build-types/box-control/all-input-control.d.ts.map +1 -1
- package/build-types/box-control/axial-input-controls.d.ts +1 -1
- package/build-types/box-control/axial-input-controls.d.ts.map +1 -1
- package/build-types/box-control/index.d.ts +1 -1
- package/build-types/box-control/index.d.ts.map +1 -1
- package/build-types/box-control/input-controls.d.ts +1 -1
- package/build-types/box-control/input-controls.d.ts.map +1 -1
- package/build-types/box-control/stories/index.story.d.ts +24 -18
- package/build-types/box-control/stories/index.story.d.ts.map +1 -1
- package/build-types/box-control/styles/box-control-styles.d.ts +49 -23
- package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
- package/build-types/box-control/types.d.ts +12 -12
- package/build-types/box-control/types.d.ts.map +1 -1
- package/build-types/box-control/utils.d.ts +2 -1
- package/build-types/box-control/utils.d.ts.map +1 -1
- package/build-types/button/deprecated.d.ts +1 -1
- package/build-types/button/index.d.ts.map +1 -1
- package/build-types/button/types.d.ts +7 -3
- package/build-types/button/types.d.ts.map +1 -1
- package/build-types/color-picker/hsl-input.d.ts.map +1 -1
- package/build-types/color-picker/styles.d.ts +1 -1
- package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
- package/build-types/date-time/time/styles.d.ts +4 -4
- package/build-types/focal-point-picker/stories/index.story.d.ts +4 -4
- package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +1 -1
- package/build-types/navigation/styles/navigation-styles.d.ts +1 -1
- package/build-types/navigator/navigator-back-button/hook.d.ts +2 -2
- package/build-types/navigator/navigator-button/hook.d.ts +2 -2
- package/build-types/number-control/index.d.ts +1 -1
- package/build-types/number-control/stories/index.story.d.ts +1 -1
- package/build-types/range-control/styles/range-control-styles.d.ts +1 -1
- package/build-types/search-control/index.d.ts +1 -1
- package/build-types/search-control/stories/index.story.d.ts +2 -2
- package/build-types/text-control/index.d.ts +1 -1
- package/build-types/textarea-control/index.d.ts +1 -1
- package/build-types/theme/styles.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-button-group.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control/as-radio-group.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control/utils.d.ts.map +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +1 -1
- package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +1 -1
- package/build-types/toolbar/toolbar-button/index.d.ts +1 -1
- package/build-types/tooltip/index.d.ts +1 -1
- package/build-types/tooltip/index.d.ts.map +1 -1
- package/build-types/tooltip/stories/index.story.d.ts +10 -1
- package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
- package/build-types/tooltip/types.d.ts +3 -0
- package/build-types/tooltip/types.d.ts.map +1 -1
- package/build-types/unit-control/index.d.ts +1 -1
- package/build-types/unit-control/styles/unit-control-styles.d.ts +1 -1
- package/package.json +19 -19
- package/src/border-box-control/border-box-control/component.tsx +0 -1
- package/src/border-box-control/border-box-control/hook.ts +5 -1
- package/src/border-box-control/types.ts +6 -0
- package/src/border-control/border-control/component.tsx +4 -0
- package/src/border-control/border-control/hook.ts +22 -16
- package/src/border-control/border-control-dropdown/component.tsx +2 -1
- package/src/border-control/border-control-style-picker/component.tsx +31 -66
- package/src/border-control/styles.ts +0 -15
- package/src/border-control/types.ts +15 -1
- package/src/box-control/all-input-control.tsx +57 -34
- package/src/box-control/axial-input-controls.tsx +79 -69
- package/src/box-control/index.tsx +47 -54
- package/src/box-control/input-controls.tsx +114 -83
- package/src/box-control/styles/box-control-styles.ts +21 -61
- package/src/box-control/test/index.tsx +126 -18
- package/src/box-control/types.ts +10 -21
- package/src/box-control/utils.ts +43 -8
- package/src/button/README.md +1 -1
- package/src/button/index.tsx +21 -33
- package/src/button/test/index.tsx +122 -0
- package/src/button/types.ts +7 -3
- package/src/circular-option-picker/test/index.tsx +10 -16
- package/src/color-palette/index.native.js +18 -7
- package/src/color-picker/hsl-input.tsx +56 -30
- package/src/color-picker/test/index.tsx +190 -16
- package/src/custom-select-control-v2/index.tsx +5 -2
- package/src/mobile/color-settings/palette.screen.native.js +7 -5
- package/src/palette-edit/test/index.tsx +326 -10
- package/src/slot-fill/bubbles-virtually/use-slot-fills.ts +1 -1
- package/src/tabs/test/index.tsx +3 -1
- package/src/theme/styles.ts +3 -1
- package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +6 -6
- package/src/toggle-group-control/test/index.tsx +73 -36
- package/src/toggle-group-control/toggle-group-control/utils.ts +8 -3
- package/src/tooltip/README.md +4 -0
- package/src/tooltip/index.tsx +46 -8
- package/src/tooltip/stories/index.story.tsx +18 -1
- package/src/tooltip/test/index.tsx +77 -12
- package/src/tooltip/types.ts +4 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/build/border-control/border-control-style-picker/hook.js +0 -41
- package/build/border-control/border-control-style-picker/hook.js.map +0 -1
- package/build/box-control/styles/box-control-visualizer-styles.js +0 -93
- package/build/box-control/styles/box-control-visualizer-styles.js.map +0 -1
- package/build/box-control/unit-control.js +0 -76
- package/build/box-control/unit-control.js.map +0 -1
- package/build-module/border-control/border-control-style-picker/hook.js +0 -32
- package/build-module/border-control/border-control-style-picker/hook.js.map +0 -1
- package/build-module/box-control/styles/box-control-visualizer-styles.js +0 -86
- package/build-module/box-control/styles/box-control-visualizer-styles.js.map +0 -1
- package/build-module/box-control/unit-control.js +0 -68
- package/build-module/box-control/unit-control.js.map +0 -1
- package/build-types/border-control/border-control-style-picker/hook.d.ts +0 -267
- package/build-types/border-control/border-control-style-picker/hook.d.ts.map +0 -1
- package/build-types/box-control/styles/box-control-visualizer-styles.d.ts +0 -46
- package/build-types/box-control/styles/box-control-visualizer-styles.d.ts.map +0 -1
- package/build-types/box-control/unit-control.d.ts +0 -4
- package/build-types/box-control/unit-control.d.ts.map +0 -1
- package/src/border-control/border-control-style-picker/hook.ts +0 -35
- package/src/box-control/styles/box-control-visualizer-styles.ts +0 -75
- package/src/box-control/unit-control.tsx +0 -74
|
@@ -4,6 +4,11 @@ import { createElement, Fragment } from "react";
|
|
|
4
4
|
*/
|
|
5
5
|
import { colord } from 'colord';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* WordPress dependencies
|
|
9
|
+
*/
|
|
10
|
+
import { useState, useEffect, useMemo } from '@wordpress/element';
|
|
11
|
+
|
|
7
12
|
/**
|
|
8
13
|
* Internal dependencies
|
|
9
14
|
*/
|
|
@@ -13,67 +18,84 @@ export const HslInput = ({
|
|
|
13
18
|
onChange,
|
|
14
19
|
enableAlpha
|
|
15
20
|
}) => {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
const colorPropHSLA = useMemo(() => color.toHsl(), [color]);
|
|
22
|
+
const [internalHSLA, setInternalHSLA] = useState({
|
|
23
|
+
...colorPropHSLA
|
|
24
|
+
});
|
|
25
|
+
const isInternalColorSameAsReceivedColor = color.isEqual(colord(internalHSLA));
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!isInternalColorSameAsReceivedColor) {
|
|
28
|
+
// Keep internal HSLA color up to date with the received color prop
|
|
29
|
+
setInternalHSLA(colorPropHSLA);
|
|
30
|
+
}
|
|
31
|
+
}, [colorPropHSLA, isInternalColorSameAsReceivedColor]);
|
|
32
|
+
|
|
33
|
+
// If the internal color is equal to the received color prop, we can use the
|
|
34
|
+
// HSLA values from the local state which, compared to the received color prop,
|
|
35
|
+
// retain more details about the actual H and S values that the user selected,
|
|
36
|
+
// and thus allow for better UX when interacting with the H and S sliders.
|
|
37
|
+
const colorValue = isInternalColorSameAsReceivedColor ? internalHSLA : colorPropHSLA;
|
|
38
|
+
const updateHSLAValue = partialNewValue => {
|
|
39
|
+
const nextOnChangeValue = colord({
|
|
40
|
+
...colorValue,
|
|
41
|
+
...partialNewValue
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Fire `onChange` only if the resulting color is different from the
|
|
45
|
+
// current one.
|
|
46
|
+
// Otherwise, update the internal HSLA color to cause a re-render.
|
|
47
|
+
if (!color.isEqual(nextOnChangeValue)) {
|
|
48
|
+
onChange(nextOnChangeValue);
|
|
49
|
+
} else {
|
|
50
|
+
setInternalHSLA(prevHSLA => ({
|
|
51
|
+
...prevHSLA,
|
|
52
|
+
...partialNewValue
|
|
53
|
+
}));
|
|
54
|
+
}
|
|
55
|
+
};
|
|
22
56
|
return createElement(Fragment, null, createElement(InputWithSlider, {
|
|
23
57
|
min: 0,
|
|
24
58
|
max: 359,
|
|
25
59
|
label: "Hue",
|
|
26
60
|
abbreviation: "H",
|
|
27
|
-
value: h,
|
|
61
|
+
value: colorValue.h,
|
|
28
62
|
onChange: nextH => {
|
|
29
|
-
|
|
30
|
-
h: nextH
|
|
31
|
-
|
|
32
|
-
l,
|
|
33
|
-
a
|
|
34
|
-
}));
|
|
63
|
+
updateHSLAValue({
|
|
64
|
+
h: nextH
|
|
65
|
+
});
|
|
35
66
|
}
|
|
36
67
|
}), createElement(InputWithSlider, {
|
|
37
68
|
min: 0,
|
|
38
69
|
max: 100,
|
|
39
70
|
label: "Saturation",
|
|
40
71
|
abbreviation: "S",
|
|
41
|
-
value: s,
|
|
72
|
+
value: colorValue.s,
|
|
42
73
|
onChange: nextS => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
l,
|
|
47
|
-
a
|
|
48
|
-
}));
|
|
74
|
+
updateHSLAValue({
|
|
75
|
+
s: nextS
|
|
76
|
+
});
|
|
49
77
|
}
|
|
50
78
|
}), createElement(InputWithSlider, {
|
|
51
79
|
min: 0,
|
|
52
80
|
max: 100,
|
|
53
81
|
label: "Lightness",
|
|
54
82
|
abbreviation: "L",
|
|
55
|
-
value: l,
|
|
83
|
+
value: colorValue.l,
|
|
56
84
|
onChange: nextL => {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
l: nextL,
|
|
61
|
-
a
|
|
62
|
-
}));
|
|
85
|
+
updateHSLAValue({
|
|
86
|
+
l: nextL
|
|
87
|
+
});
|
|
63
88
|
}
|
|
64
89
|
}), enableAlpha && createElement(InputWithSlider, {
|
|
65
90
|
min: 0,
|
|
66
91
|
max: 100,
|
|
67
92
|
label: "Alpha",
|
|
68
93
|
abbreviation: "A",
|
|
69
|
-
value: Math.trunc(100 * a),
|
|
94
|
+
value: Math.trunc(100 * colorValue.a),
|
|
70
95
|
onChange: nextA => {
|
|
71
|
-
|
|
72
|
-
h,
|
|
73
|
-
s,
|
|
74
|
-
l,
|
|
96
|
+
updateHSLAValue({
|
|
75
97
|
a: nextA / 100
|
|
76
|
-
})
|
|
98
|
+
});
|
|
77
99
|
}
|
|
78
100
|
}));
|
|
79
101
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["colord","InputWithSlider","HslInput","color","onChange","enableAlpha","
|
|
1
|
+
{"version":3,"names":["colord","useState","useEffect","useMemo","InputWithSlider","HslInput","color","onChange","enableAlpha","colorPropHSLA","toHsl","internalHSLA","setInternalHSLA","isInternalColorSameAsReceivedColor","isEqual","colorValue","updateHSLAValue","partialNewValue","nextOnChangeValue","prevHSLA","createElement","Fragment","min","max","label","abbreviation","value","h","nextH","s","nextS","l","nextL","Math","trunc","a","nextA"],"sources":["@wordpress/components/src/color-picker/hsl-input.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport { colord } from 'colord';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useEffect, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { InputWithSlider } from './input-with-slider';\nimport type { HslInputProps } from './types';\n\nexport const HslInput = ( { color, onChange, enableAlpha }: HslInputProps ) => {\n\tconst colorPropHSLA = useMemo( () => color.toHsl(), [ color ] );\n\n\tconst [ internalHSLA, setInternalHSLA ] = useState( { ...colorPropHSLA } );\n\n\tconst isInternalColorSameAsReceivedColor = color.isEqual(\n\t\tcolord( internalHSLA )\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! isInternalColorSameAsReceivedColor ) {\n\t\t\t// Keep internal HSLA color up to date with the received color prop\n\t\t\tsetInternalHSLA( colorPropHSLA );\n\t\t}\n\t}, [ colorPropHSLA, isInternalColorSameAsReceivedColor ] );\n\n\t// If the internal color is equal to the received color prop, we can use the\n\t// HSLA values from the local state which, compared to the received color prop,\n\t// retain more details about the actual H and S values that the user selected,\n\t// and thus allow for better UX when interacting with the H and S sliders.\n\tconst colorValue = isInternalColorSameAsReceivedColor\n\t\t? internalHSLA\n\t\t: colorPropHSLA;\n\n\tconst updateHSLAValue = (\n\t\tpartialNewValue: Partial< typeof colorPropHSLA >\n\t) => {\n\t\tconst nextOnChangeValue = colord( {\n\t\t\t...colorValue,\n\t\t\t...partialNewValue,\n\t\t} );\n\n\t\t// Fire `onChange` only if the resulting color is different from the\n\t\t// current one.\n\t\t// Otherwise, update the internal HSLA color to cause a re-render.\n\t\tif ( ! color.isEqual( nextOnChangeValue ) ) {\n\t\t\tonChange( nextOnChangeValue );\n\t\t} else {\n\t\t\tsetInternalHSLA( ( prevHSLA ) => ( {\n\t\t\t\t...prevHSLA,\n\t\t\t\t...partialNewValue,\n\t\t\t} ) );\n\t\t}\n\t};\n\n\treturn (\n\t\t<>\n\t\t\t<InputWithSlider\n\t\t\t\tmin={ 0 }\n\t\t\t\tmax={ 359 }\n\t\t\t\tlabel=\"Hue\"\n\t\t\t\tabbreviation=\"H\"\n\t\t\t\tvalue={ colorValue.h }\n\t\t\t\tonChange={ ( nextH: number ) => {\n\t\t\t\t\tupdateHSLAValue( { h: nextH } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<InputWithSlider\n\t\t\t\tmin={ 0 }\n\t\t\t\tmax={ 100 }\n\t\t\t\tlabel=\"Saturation\"\n\t\t\t\tabbreviation=\"S\"\n\t\t\t\tvalue={ colorValue.s }\n\t\t\t\tonChange={ ( nextS: number ) => {\n\t\t\t\t\tupdateHSLAValue( { s: nextS } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t<InputWithSlider\n\t\t\t\tmin={ 0 }\n\t\t\t\tmax={ 100 }\n\t\t\t\tlabel=\"Lightness\"\n\t\t\t\tabbreviation=\"L\"\n\t\t\t\tvalue={ colorValue.l }\n\t\t\t\tonChange={ ( nextL: number ) => {\n\t\t\t\t\tupdateHSLAValue( { l: nextL } );\n\t\t\t\t} }\n\t\t\t/>\n\t\t\t{ enableAlpha && (\n\t\t\t\t<InputWithSlider\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ 100 }\n\t\t\t\t\tlabel=\"Alpha\"\n\t\t\t\t\tabbreviation=\"A\"\n\t\t\t\t\tvalue={ Math.trunc( 100 * colorValue.a ) }\n\t\t\t\t\tonChange={ ( nextA: number ) => {\n\t\t\t\t\t\tupdateHSLAValue( { a: nextA / 100 } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</>\n\t);\n};\n"],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export function CustomSelect({
|
|
|
34
34
|
onChange,
|
|
35
35
|
size = 'default',
|
|
36
36
|
value,
|
|
37
|
-
renderSelectedValue
|
|
37
|
+
renderSelectedValue,
|
|
38
38
|
...props
|
|
39
39
|
}) {
|
|
40
40
|
const store = Ariakit.useSelectStore({
|
|
@@ -45,6 +45,7 @@ export function CustomSelect({
|
|
|
45
45
|
const {
|
|
46
46
|
value: currentValue
|
|
47
47
|
} = store.useState();
|
|
48
|
+
const computedRenderSelectedValue = renderSelectedValue !== null && renderSelectedValue !== void 0 ? renderSelectedValue : defaultRenderSelectedValue;
|
|
48
49
|
return createElement(Fragment, null, createElement(Styled.CustomSelectLabel, {
|
|
49
50
|
store: store
|
|
50
51
|
}, label), createElement(Styled.CustomSelectButton, {
|
|
@@ -52,7 +53,7 @@ export function CustomSelect({
|
|
|
52
53
|
size: size,
|
|
53
54
|
hasCustomRenderProp: !!renderSelectedValue,
|
|
54
55
|
store: store
|
|
55
|
-
},
|
|
56
|
+
}, computedRenderSelectedValue(currentValue), createElement(Ariakit.SelectArrow, null)), createElement(Styled.CustomSelectPopover, {
|
|
56
57
|
gutter: 12,
|
|
57
58
|
store: store,
|
|
58
59
|
sameWidth: true
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Ariakit","createContext","useContext","__","sprintf","Styled","CustomSelectContext","undefined","defaultRenderSelectedValue","value","isValueEmpty","Array","isArray","length","CustomSelect","children","defaultValue","label","onChange","size","renderSelectedValue","props","store","useSelectStore","setValue","nextValue","currentValue","useState","createElement","Fragment","CustomSelectLabel","CustomSelectButton","hasCustomRenderProp","SelectArrow","CustomSelectPopover","gutter","sameWidth","Provider","CustomSelectItem","customSelectContext","SelectItemCheck"],"sources":["@wordpress/components/src/custom-select-control-v2/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\n/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport * as Styled from './styles';\nimport type {\n\tCustomSelectProps,\n\tCustomSelectItemProps,\n\tCustomSelectContext as CustomSelectContextType,\n} from './types';\nimport type { WordPressComponentProps } from '../context';\n\nexport const CustomSelectContext =\n\tcreateContext< CustomSelectContextType >( undefined );\n\nfunction defaultRenderSelectedValue( value: CustomSelectProps[ 'value' ] ) {\n\tconst isValueEmpty = Array.isArray( value )\n\t\t? value.length === 0\n\t\t: value === undefined || value === null;\n\n\tif ( isValueEmpty ) {\n\t\treturn __( 'Select an item' );\n\t}\n\n\tif ( Array.isArray( value ) ) {\n\t\treturn value.length === 1\n\t\t\t? value[ 0 ]\n\t\t\t: // translators: %s: number of items selected (it will always be 2 or more items)\n\t\t\t sprintf( __( '%s items selected' ), value.length );\n\t}\n\n\treturn value;\n}\n\nexport function CustomSelect( {\n\tchildren,\n\tdefaultValue,\n\tlabel,\n\tonChange,\n\tsize = 'default',\n\tvalue,\n\trenderSelectedValue
|
|
1
|
+
{"version":3,"names":["Ariakit","createContext","useContext","__","sprintf","Styled","CustomSelectContext","undefined","defaultRenderSelectedValue","value","isValueEmpty","Array","isArray","length","CustomSelect","children","defaultValue","label","onChange","size","renderSelectedValue","props","store","useSelectStore","setValue","nextValue","currentValue","useState","computedRenderSelectedValue","createElement","Fragment","CustomSelectLabel","CustomSelectButton","hasCustomRenderProp","SelectArrow","CustomSelectPopover","gutter","sameWidth","Provider","CustomSelectItem","customSelectContext","SelectItemCheck"],"sources":["@wordpress/components/src/custom-select-control-v2/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\n/**\n * WordPress dependencies\n */\nimport { createContext, useContext } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport * as Styled from './styles';\nimport type {\n\tCustomSelectProps,\n\tCustomSelectItemProps,\n\tCustomSelectContext as CustomSelectContextType,\n} from './types';\nimport type { WordPressComponentProps } from '../context';\n\nexport const CustomSelectContext =\n\tcreateContext< CustomSelectContextType >( undefined );\n\nfunction defaultRenderSelectedValue( value: CustomSelectProps[ 'value' ] ) {\n\tconst isValueEmpty = Array.isArray( value )\n\t\t? value.length === 0\n\t\t: value === undefined || value === null;\n\n\tif ( isValueEmpty ) {\n\t\treturn __( 'Select an item' );\n\t}\n\n\tif ( Array.isArray( value ) ) {\n\t\treturn value.length === 1\n\t\t\t? value[ 0 ]\n\t\t\t: // translators: %s: number of items selected (it will always be 2 or more items)\n\t\t\t sprintf( __( '%s items selected' ), value.length );\n\t}\n\n\treturn value;\n}\n\nexport function CustomSelect( {\n\tchildren,\n\tdefaultValue,\n\tlabel,\n\tonChange,\n\tsize = 'default',\n\tvalue,\n\trenderSelectedValue,\n\t...props\n}: WordPressComponentProps< CustomSelectProps, 'button', false > ) {\n\tconst store = Ariakit.useSelectStore( {\n\t\tsetValue: ( nextValue ) => onChange?.( nextValue ),\n\t\tdefaultValue,\n\t\tvalue,\n\t} );\n\n\tconst { value: currentValue } = store.useState();\n\n\tconst computedRenderSelectedValue =\n\t\trenderSelectedValue ?? defaultRenderSelectedValue;\n\n\treturn (\n\t\t<>\n\t\t\t<Styled.CustomSelectLabel store={ store }>\n\t\t\t\t{ label }\n\t\t\t</Styled.CustomSelectLabel>\n\t\t\t<Styled.CustomSelectButton\n\t\t\t\t{ ...props }\n\t\t\t\tsize={ size }\n\t\t\t\thasCustomRenderProp={ !! renderSelectedValue }\n\t\t\t\tstore={ store }\n\t\t\t>\n\t\t\t\t{ computedRenderSelectedValue( currentValue ) }\n\t\t\t\t<Ariakit.SelectArrow />\n\t\t\t</Styled.CustomSelectButton>\n\t\t\t<Styled.CustomSelectPopover gutter={ 12 } store={ store } sameWidth>\n\t\t\t\t<CustomSelectContext.Provider value={ { store } }>\n\t\t\t\t\t{ children }\n\t\t\t\t</CustomSelectContext.Provider>\n\t\t\t</Styled.CustomSelectPopover>\n\t\t</>\n\t);\n}\n\nexport function CustomSelectItem( {\n\tchildren,\n\t...props\n}: WordPressComponentProps< CustomSelectItemProps, 'div', false > ) {\n\tconst customSelectContext = useContext( CustomSelectContext );\n\treturn (\n\t\t<Styled.CustomSelectItem\n\t\t\tstore={ customSelectContext?.store }\n\t\t\t{ ...props }\n\t\t>\n\t\t\t{ children ?? props.value }\n\t\t\t<Ariakit.SelectItemCheck />\n\t\t</Styled.CustomSelectItem>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA,OAAO,KAAKA,OAAO,MAAM,gBAAgB;AACzC;AACA;AACA;AACA,SAASC,aAAa,EAAEC,UAAU,QAAQ,oBAAoB;AAC9D,SAASC,EAAE,EAAEC,OAAO,QAAQ,iBAAiB;;AAE7C;AACA;AACA;AACA,OAAO,KAAKC,MAAM,MAAM,UAAU;AAQlC,OAAO,MAAMC,mBAAmB,GAC/BL,aAAa,CAA6BM,SAAU,CAAC;AAEtD,SAASC,0BAA0BA,CAAEC,KAAmC,EAAG;EAC1E,MAAMC,YAAY,GAAGC,KAAK,CAACC,OAAO,CAAEH,KAAM,CAAC,GACxCA,KAAK,CAACI,MAAM,KAAK,CAAC,GAClBJ,KAAK,KAAKF,SAAS,IAAIE,KAAK,KAAK,IAAI;EAExC,IAAKC,YAAY,EAAG;IACnB,OAAOP,EAAE,CAAE,gBAAiB,CAAC;EAC9B;EAEA,IAAKQ,KAAK,CAACC,OAAO,CAAEH,KAAM,CAAC,EAAG;IAC7B,OAAOA,KAAK,CAACI,MAAM,KAAK,CAAC,GACtBJ,KAAK,CAAE,CAAC,CAAE;IACV;IACAL,OAAO,CAAED,EAAE,CAAE,mBAAoB,CAAC,EAAEM,KAAK,CAACI,MAAO,CAAC;EACtD;EAEA,OAAOJ,KAAK;AACb;AAEA,OAAO,SAASK,YAAYA,CAAE;EAC7BC,QAAQ;EACRC,YAAY;EACZC,KAAK;EACLC,QAAQ;EACRC,IAAI,GAAG,SAAS;EAChBV,KAAK;EACLW,mBAAmB;EACnB,GAAGC;AAC2D,CAAC,EAAG;EAClE,MAAMC,KAAK,GAAGtB,OAAO,CAACuB,cAAc,CAAE;IACrCC,QAAQ,EAAIC,SAAS,IAAMP,QAAQ,GAAIO,SAAU,CAAC;IAClDT,YAAY;IACZP;EACD,CAAE,CAAC;EAEH,MAAM;IAAEA,KAAK,EAAEiB;EAAa,CAAC,GAAGJ,KAAK,CAACK,QAAQ,CAAC,CAAC;EAEhD,MAAMC,2BAA2B,GAChCR,mBAAmB,aAAnBA,mBAAmB,cAAnBA,mBAAmB,GAAIZ,0BAA0B;EAElD,OACCqB,aAAA,CAAAC,QAAA,QACCD,aAAA,CAACxB,MAAM,CAAC0B,iBAAiB;IAACT,KAAK,EAAGA;EAAO,GACtCL,KACuB,CAAC,EAC3BY,aAAA,CAACxB,MAAM,CAAC2B,kBAAkB;IAAA,GACpBX,KAAK;IACVF,IAAI,EAAGA,IAAM;IACbc,mBAAmB,EAAG,CAAC,CAAEb,mBAAqB;IAC9CE,KAAK,EAAGA;EAAO,GAEbM,2BAA2B,CAAEF,YAAa,CAAC,EAC7CG,aAAA,CAAC7B,OAAO,CAACkC,WAAW,MAAE,CACI,CAAC,EAC5BL,aAAA,CAACxB,MAAM,CAAC8B,mBAAmB;IAACC,MAAM,EAAG,EAAI;IAACd,KAAK,EAAGA,KAAO;IAACe,SAAS;EAAA,GAClER,aAAA,CAACvB,mBAAmB,CAACgC,QAAQ;IAAC7B,KAAK,EAAG;MAAEa;IAAM;EAAG,GAC9CP,QAC2B,CACH,CAC3B,CAAC;AAEL;AAEA,OAAO,SAASwB,gBAAgBA,CAAE;EACjCxB,QAAQ;EACR,GAAGM;AAC4D,CAAC,EAAG;EACnE,MAAMmB,mBAAmB,GAAGtC,UAAU,CAAEI,mBAAoB,CAAC;EAC7D,OACCuB,aAAA,CAACxB,MAAM,CAACkC,gBAAgB;IACvBjB,KAAK,EAAGkB,mBAAmB,EAAElB,KAAO;IAAA,GAC/BD;EAAK,GAERN,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIM,KAAK,CAACZ,KAAK,EACzBoB,aAAA,CAAC7B,OAAO,CAACyC,eAAe,MAAE,CACF,CAAC;AAE5B"}
|
|
@@ -28,7 +28,6 @@ const HIT_SLOP = {
|
|
|
28
28
|
left: 8,
|
|
29
29
|
right: 8
|
|
30
30
|
};
|
|
31
|
-
const THEME_PALETTE_NAME = 'Theme';
|
|
32
31
|
const PaletteScreen = () => {
|
|
33
32
|
const route = useRoute();
|
|
34
33
|
const navigation = useNavigation();
|
|
@@ -51,10 +50,13 @@ const PaletteScreen = () => {
|
|
|
51
50
|
const [currentValue, setCurrentValue] = useState(colorValue);
|
|
52
51
|
const isGradientColor = isGradient(currentValue);
|
|
53
52
|
const selectedSegmentIndex = isGradientColor ? 1 : 0;
|
|
54
|
-
const allAvailableColors = useMobileGlobalStylesColors();
|
|
55
53
|
const [currentSegment, setCurrentSegment] = useState(segments[selectedSegmentIndex]);
|
|
56
54
|
const isGradientSegment = currentSegment === colorsUtils.segments[1];
|
|
57
55
|
const currentSegmentColors = !isGradientSegment ? defaultSettings.colors : defaultSettings.gradients;
|
|
56
|
+
const allAvailableColors = useMobileGlobalStylesColors();
|
|
57
|
+
const allAvailableGradients = currentSegmentColors.flatMap(({
|
|
58
|
+
gradients
|
|
59
|
+
}) => gradients).filter(Boolean);
|
|
58
60
|
const horizontalSeparatorStyle = usePreferredColorSchemeStyle(styles.horizontalSeparator, styles.horizontalSeparatorDark);
|
|
59
61
|
const clearButtonStyle = usePreferredColorSchemeStyle(styles.clearButton, styles.clearButtonDark);
|
|
60
62
|
const selectedColorTextStyle = usePreferredColorSchemeStyle(styles.colorText, styles.colorTextDark);
|
|
@@ -139,9 +141,11 @@ const PaletteScreen = () => {
|
|
|
139
141
|
const paletteSettings = {
|
|
140
142
|
colors: palette.colors,
|
|
141
143
|
gradients: palette.gradients,
|
|
142
|
-
allColors: allAvailableColors
|
|
144
|
+
allColors: allAvailableColors,
|
|
145
|
+
allGradients: allAvailableGradients
|
|
143
146
|
};
|
|
144
|
-
|
|
147
|
+
// Limit to show the custom indicator to the first available palette
|
|
148
|
+
const enableCustomColor = paletteKey === 0;
|
|
145
149
|
return createElement(ColorPalette, {
|
|
146
150
|
enableCustomColor: enableCustomColor,
|
|
147
151
|
label: palette.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","Text","TouchableWithoutFeedback","__","useState","useContext","usePreferredColorSchemeStyle","ColorControl","PanelBody","BottomSheetContext","useMobileGlobalStylesColors","useRoute","useNavigation","ColorPalette","ColorIndicator","NavBar","SegmentedControls","colorsUtils","styles","HIT_SLOP","top","bottom","left","right","THEME_PALETTE_NAME","PaletteScreen","route","navigation","shouldEnableBottomSheetScroll","label","onColorChange","onGradientChange","onColorCleared","colorValue","defaultSettings","hideNavigation","params","segments","isGradient","currentValue","setCurrentValue","isGradientColor","selectedSegmentIndex","allAvailableColors","currentSegment","setCurrentSegment","isGradientSegment","currentSegmentColors","colors","gradients","horizontalSeparatorStyle","horizontalSeparator","horizontalSeparatorDark","clearButtonStyle","clearButton","clearButtonDark","selectedColorTextStyle","colorText","colorTextDark","isSolidSegment","isCustomGadientShown","setColor","color","onClear","undefined","onCustomPress","navigate","screens","picker","gradientPicker","getClearButton","createElement","onPress","hitSlop","style","clearButtonContainer","getFooter","segmentHandler","selectedIndex","indexOf","addonLeft","colorIndicator","addonRight","footer","flex","maxFontSizeMultiplier","selectable","toUpperCase","selectColorText","BackButton","goBack","Heading","colorPalettes","map","palette","paletteKey","paletteSettings","allColors","enableCustomColor","name","key","activeColor","Fragment","withColorIndicator"],"sources":["@wordpress/components/src/mobile/color-settings/palette.screen.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useContext } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport {\n\tColorControl,\n\tPanelBody,\n\tBottomSheetContext,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\nimport { useRoute, useNavigation } from '@react-navigation/native';\n\n/**\n * Internal dependencies\n */\nimport ColorPalette from '../../color-palette';\nimport ColorIndicator from '../../color-indicator';\nimport NavBar from '../bottom-sheet/nav-bar';\nimport SegmentedControls from '../segmented-control';\nimport { colorsUtils } from './utils';\n\nimport styles from './style.scss';\n\nconst HIT_SLOP = { top: 8, bottom: 8, left: 8, right: 8 };\nconst THEME_PALETTE_NAME = 'Theme';\n\nconst PaletteScreen = () => {\n\tconst route = useRoute();\n\tconst navigation = useNavigation();\n\tconst { shouldEnableBottomSheetScroll } = useContext( BottomSheetContext );\n\tconst {\n\t\tlabel,\n\t\tonColorChange,\n\t\tonGradientChange,\n\t\tonColorCleared,\n\t\tcolorValue,\n\t\tdefaultSettings,\n\t\thideNavigation = false,\n\t} = route.params || {};\n\tconst { segments, isGradient } = colorsUtils;\n\tconst [ currentValue, setCurrentValue ] = useState( colorValue );\n\tconst isGradientColor = isGradient( currentValue );\n\tconst selectedSegmentIndex = isGradientColor ? 1 : 0;\n\tconst allAvailableColors = useMobileGlobalStylesColors();\n\n\tconst [ currentSegment, setCurrentSegment ] = useState(\n\t\tsegments[ selectedSegmentIndex ]\n\t);\n\tconst isGradientSegment = currentSegment === colorsUtils.segments[ 1 ];\n\tconst currentSegmentColors = ! isGradientSegment\n\t\t? defaultSettings.colors\n\t\t: defaultSettings.gradients;\n\n\tconst horizontalSeparatorStyle = usePreferredColorSchemeStyle(\n\t\tstyles.horizontalSeparator,\n\t\tstyles.horizontalSeparatorDark\n\t);\n\tconst clearButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.clearButton,\n\t\tstyles.clearButtonDark\n\t);\n\tconst selectedColorTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.colorText,\n\t\tstyles.colorTextDark\n\t);\n\n\tconst isSolidSegment = currentSegment === segments[ 0 ];\n\tconst isCustomGadientShown = ! isSolidSegment && isGradientColor;\n\n\tconst setColor = ( color ) => {\n\t\tsetCurrentValue( color );\n\t\tif ( isSolidSegment && onColorChange && onGradientChange ) {\n\t\t\tonColorChange( color );\n\t\t} else if ( isSolidSegment && onColorChange ) {\n\t\t\tonColorChange( color );\n\t\t} else if ( ! isSolidSegment && onGradientChange ) {\n\t\t\tonGradientChange( color );\n\t\t}\n\t};\n\n\tfunction onClear() {\n\t\tsetCurrentValue( undefined );\n\n\t\tif ( onColorCleared ) {\n\t\t\tonColorCleared();\n\t\t}\n\t}\n\n\tfunction onCustomPress() {\n\t\tif ( isSolidSegment ) {\n\t\t\tnavigation.navigate( colorsUtils.screens.picker, {\n\t\t\t\tcurrentValue,\n\t\t\t\tsetColor,\n\t\t\t} );\n\t\t} else {\n\t\t\tnavigation.navigate( colorsUtils.screens.gradientPicker, {\n\t\t\t\tsetColor,\n\t\t\t\tisGradientColor,\n\t\t\t\tcurrentValue,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction getClearButton() {\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback onPress={ onClear } hitSlop={ HIT_SLOP }>\n\t\t\t\t<View style={ styles.clearButtonContainer }>\n\t\t\t\t\t<Text style={ clearButtonStyle }>{ __( 'Reset' ) }</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n\n\tfunction getFooter() {\n\t\tif ( onGradientChange ) {\n\t\t\treturn (\n\t\t\t\t<SegmentedControls\n\t\t\t\t\tsegments={ segments }\n\t\t\t\t\tsegmentHandler={ setCurrentSegment }\n\t\t\t\t\tselectedIndex={ segments.indexOf( currentSegment ) }\n\t\t\t\t\taddonLeft={\n\t\t\t\t\t\tcurrentValue && (\n\t\t\t\t\t\t\t<ColorIndicator\n\t\t\t\t\t\t\t\tcolor={ currentValue }\n\t\t\t\t\t\t\t\tstyle={ styles.colorIndicator }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\taddonRight={ currentValue && getClearButton() }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<View style={ styles.footer }>\n\t\t\t\t<View style={ styles.flex }>\n\t\t\t\t\t{ currentValue && (\n\t\t\t\t\t\t<ColorIndicator\n\t\t\t\t\t\t\tcolor={ currentValue }\n\t\t\t\t\t\t\tstyle={ styles.colorIndicator }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ currentValue ? (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ selectedColorTextStyle }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t\tselectable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ currentValue.toUpperCase() }\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ styles.selectColorText }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Select a color above' ) }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t\t<View style={ styles.flex }>\n\t\t\t\t\t{ currentValue && getClearButton() }\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t}\n\treturn (\n\t\t<View>\n\t\t\t{ ! hideNavigation && (\n\t\t\t\t<NavBar>\n\t\t\t\t\t<NavBar.BackButton onPress={ navigation.goBack } />\n\t\t\t\t\t<NavBar.Heading>{ label } </NavBar.Heading>\n\t\t\t\t</NavBar>\n\t\t\t) }\n\n\t\t\t<View style={ styles.colorPalettes }>\n\t\t\t\t{ currentSegmentColors.map( ( palette, paletteKey ) => {\n\t\t\t\t\tconst paletteSettings = {\n\t\t\t\t\t\tcolors: palette.colors,\n\t\t\t\t\t\tgradients: palette.gradients,\n\t\t\t\t\t\tallColors: allAvailableColors,\n\t\t\t\t\t};\n\t\t\t\t\tconst enableCustomColor =\n\t\t\t\t\t\t! isGradientSegment &&\n\t\t\t\t\t\tpalette.name === THEME_PALETTE_NAME;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\tenableCustomColor={ enableCustomColor }\n\t\t\t\t\t\t\tlabel={ palette.name }\n\t\t\t\t\t\t\tkey={ paletteKey }\n\t\t\t\t\t\t\tsetColor={ setColor }\n\t\t\t\t\t\t\tactiveColor={ currentValue }\n\t\t\t\t\t\t\tisGradientColor={ isGradientColor }\n\t\t\t\t\t\t\tcurrentSegment={ currentSegment }\n\t\t\t\t\t\t\tonCustomPress={ onCustomPress }\n\t\t\t\t\t\t\tshouldEnableBottomSheetScroll={\n\t\t\t\t\t\t\t\tshouldEnableBottomSheetScroll\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefaultSettings={ paletteSettings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</View>\n\n\t\t\t{ isCustomGadientShown && (\n\t\t\t\t<>\n\t\t\t\t\t<View style={ horizontalSeparatorStyle } />\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<ColorControl\n\t\t\t\t\t\t\tlabel={ __( 'Customize Gradient' ) }\n\t\t\t\t\t\t\tonPress={ onCustomPress }\n\t\t\t\t\t\t\twithColorIndicator={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<View style={ horizontalSeparatorStyle } />\n\t\t\t{ getFooter() }\n\t\t</View>\n\t);\n};\n\nexport default PaletteScreen;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["View","Text","TouchableWithoutFeedback","__","useState","useContext","usePreferredColorSchemeStyle","ColorControl","PanelBody","BottomSheetContext","useMobileGlobalStylesColors","useRoute","useNavigation","ColorPalette","ColorIndicator","NavBar","SegmentedControls","colorsUtils","styles","HIT_SLOP","top","bottom","left","right","PaletteScreen","route","navigation","shouldEnableBottomSheetScroll","label","onColorChange","onGradientChange","onColorCleared","colorValue","defaultSettings","hideNavigation","params","segments","isGradient","currentValue","setCurrentValue","isGradientColor","selectedSegmentIndex","currentSegment","setCurrentSegment","isGradientSegment","currentSegmentColors","colors","gradients","allAvailableColors","allAvailableGradients","flatMap","filter","Boolean","horizontalSeparatorStyle","horizontalSeparator","horizontalSeparatorDark","clearButtonStyle","clearButton","clearButtonDark","selectedColorTextStyle","colorText","colorTextDark","isSolidSegment","isCustomGadientShown","setColor","color","onClear","undefined","onCustomPress","navigate","screens","picker","gradientPicker","getClearButton","createElement","onPress","hitSlop","style","clearButtonContainer","getFooter","segmentHandler","selectedIndex","indexOf","addonLeft","colorIndicator","addonRight","footer","flex","maxFontSizeMultiplier","selectable","toUpperCase","selectColorText","BackButton","goBack","Heading","colorPalettes","map","palette","paletteKey","paletteSettings","allColors","allGradients","enableCustomColor","name","key","activeColor","Fragment","withColorIndicator"],"sources":["@wordpress/components/src/mobile/color-settings/palette.screen.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text, TouchableWithoutFeedback } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { useState, useContext } from '@wordpress/element';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport {\n\tColorControl,\n\tPanelBody,\n\tBottomSheetContext,\n\tuseMobileGlobalStylesColors,\n} from '@wordpress/components';\nimport { useRoute, useNavigation } from '@react-navigation/native';\n\n/**\n * Internal dependencies\n */\nimport ColorPalette from '../../color-palette';\nimport ColorIndicator from '../../color-indicator';\nimport NavBar from '../bottom-sheet/nav-bar';\nimport SegmentedControls from '../segmented-control';\nimport { colorsUtils } from './utils';\n\nimport styles from './style.scss';\n\nconst HIT_SLOP = { top: 8, bottom: 8, left: 8, right: 8 };\n\nconst PaletteScreen = () => {\n\tconst route = useRoute();\n\tconst navigation = useNavigation();\n\tconst { shouldEnableBottomSheetScroll } = useContext( BottomSheetContext );\n\tconst {\n\t\tlabel,\n\t\tonColorChange,\n\t\tonGradientChange,\n\t\tonColorCleared,\n\t\tcolorValue,\n\t\tdefaultSettings,\n\t\thideNavigation = false,\n\t} = route.params || {};\n\tconst { segments, isGradient } = colorsUtils;\n\tconst [ currentValue, setCurrentValue ] = useState( colorValue );\n\tconst isGradientColor = isGradient( currentValue );\n\tconst selectedSegmentIndex = isGradientColor ? 1 : 0;\n\n\tconst [ currentSegment, setCurrentSegment ] = useState(\n\t\tsegments[ selectedSegmentIndex ]\n\t);\n\tconst isGradientSegment = currentSegment === colorsUtils.segments[ 1 ];\n\tconst currentSegmentColors = ! isGradientSegment\n\t\t? defaultSettings.colors\n\t\t: defaultSettings.gradients;\n\tconst allAvailableColors = useMobileGlobalStylesColors();\n\tconst allAvailableGradients = currentSegmentColors\n\t\t.flatMap( ( { gradients } ) => gradients )\n\t\t.filter( Boolean );\n\n\tconst horizontalSeparatorStyle = usePreferredColorSchemeStyle(\n\t\tstyles.horizontalSeparator,\n\t\tstyles.horizontalSeparatorDark\n\t);\n\tconst clearButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.clearButton,\n\t\tstyles.clearButtonDark\n\t);\n\tconst selectedColorTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.colorText,\n\t\tstyles.colorTextDark\n\t);\n\n\tconst isSolidSegment = currentSegment === segments[ 0 ];\n\tconst isCustomGadientShown = ! isSolidSegment && isGradientColor;\n\n\tconst setColor = ( color ) => {\n\t\tsetCurrentValue( color );\n\t\tif ( isSolidSegment && onColorChange && onGradientChange ) {\n\t\t\tonColorChange( color );\n\t\t} else if ( isSolidSegment && onColorChange ) {\n\t\t\tonColorChange( color );\n\t\t} else if ( ! isSolidSegment && onGradientChange ) {\n\t\t\tonGradientChange( color );\n\t\t}\n\t};\n\n\tfunction onClear() {\n\t\tsetCurrentValue( undefined );\n\n\t\tif ( onColorCleared ) {\n\t\t\tonColorCleared();\n\t\t}\n\t}\n\n\tfunction onCustomPress() {\n\t\tif ( isSolidSegment ) {\n\t\t\tnavigation.navigate( colorsUtils.screens.picker, {\n\t\t\t\tcurrentValue,\n\t\t\t\tsetColor,\n\t\t\t} );\n\t\t} else {\n\t\t\tnavigation.navigate( colorsUtils.screens.gradientPicker, {\n\t\t\t\tsetColor,\n\t\t\t\tisGradientColor,\n\t\t\t\tcurrentValue,\n\t\t\t} );\n\t\t}\n\t}\n\n\tfunction getClearButton() {\n\t\treturn (\n\t\t\t<TouchableWithoutFeedback onPress={ onClear } hitSlop={ HIT_SLOP }>\n\t\t\t\t<View style={ styles.clearButtonContainer }>\n\t\t\t\t\t<Text style={ clearButtonStyle }>{ __( 'Reset' ) }</Text>\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t);\n\t}\n\n\tfunction getFooter() {\n\t\tif ( onGradientChange ) {\n\t\t\treturn (\n\t\t\t\t<SegmentedControls\n\t\t\t\t\tsegments={ segments }\n\t\t\t\t\tsegmentHandler={ setCurrentSegment }\n\t\t\t\t\tselectedIndex={ segments.indexOf( currentSegment ) }\n\t\t\t\t\taddonLeft={\n\t\t\t\t\t\tcurrentValue && (\n\t\t\t\t\t\t\t<ColorIndicator\n\t\t\t\t\t\t\t\tcolor={ currentValue }\n\t\t\t\t\t\t\t\tstyle={ styles.colorIndicator }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\taddonRight={ currentValue && getClearButton() }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\t\treturn (\n\t\t\t<View style={ styles.footer }>\n\t\t\t\t<View style={ styles.flex }>\n\t\t\t\t\t{ currentValue && (\n\t\t\t\t\t\t<ColorIndicator\n\t\t\t\t\t\t\tcolor={ currentValue }\n\t\t\t\t\t\t\tstyle={ styles.colorIndicator }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</View>\n\t\t\t\t{ currentValue ? (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ selectedColorTextStyle }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t\tselectable\n\t\t\t\t\t>\n\t\t\t\t\t\t{ currentValue.toUpperCase() }\n\t\t\t\t\t</Text>\n\t\t\t\t) : (\n\t\t\t\t\t<Text\n\t\t\t\t\t\tstyle={ styles.selectColorText }\n\t\t\t\t\t\tmaxFontSizeMultiplier={ 2 }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Select a color above' ) }\n\t\t\t\t\t</Text>\n\t\t\t\t) }\n\t\t\t\t<View style={ styles.flex }>\n\t\t\t\t\t{ currentValue && getClearButton() }\n\t\t\t\t</View>\n\t\t\t</View>\n\t\t);\n\t}\n\treturn (\n\t\t<View>\n\t\t\t{ ! hideNavigation && (\n\t\t\t\t<NavBar>\n\t\t\t\t\t<NavBar.BackButton onPress={ navigation.goBack } />\n\t\t\t\t\t<NavBar.Heading>{ label } </NavBar.Heading>\n\t\t\t\t</NavBar>\n\t\t\t) }\n\n\t\t\t<View style={ styles.colorPalettes }>\n\t\t\t\t{ currentSegmentColors.map( ( palette, paletteKey ) => {\n\t\t\t\t\tconst paletteSettings = {\n\t\t\t\t\t\tcolors: palette.colors,\n\t\t\t\t\t\tgradients: palette.gradients,\n\t\t\t\t\t\tallColors: allAvailableColors,\n\t\t\t\t\t\tallGradients: allAvailableGradients,\n\t\t\t\t\t};\n\t\t\t\t\t// Limit to show the custom indicator to the first available palette\n\t\t\t\t\tconst enableCustomColor = paletteKey === 0;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\tenableCustomColor={ enableCustomColor }\n\t\t\t\t\t\t\tlabel={ palette.name }\n\t\t\t\t\t\t\tkey={ paletteKey }\n\t\t\t\t\t\t\tsetColor={ setColor }\n\t\t\t\t\t\t\tactiveColor={ currentValue }\n\t\t\t\t\t\t\tisGradientColor={ isGradientColor }\n\t\t\t\t\t\t\tcurrentSegment={ currentSegment }\n\t\t\t\t\t\t\tonCustomPress={ onCustomPress }\n\t\t\t\t\t\t\tshouldEnableBottomSheetScroll={\n\t\t\t\t\t\t\t\tshouldEnableBottomSheetScroll\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefaultSettings={ paletteSettings }\n\t\t\t\t\t\t/>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</View>\n\n\t\t\t{ isCustomGadientShown && (\n\t\t\t\t<>\n\t\t\t\t\t<View style={ horizontalSeparatorStyle } />\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<ColorControl\n\t\t\t\t\t\t\tlabel={ __( 'Customize Gradient' ) }\n\t\t\t\t\t\t\tonPress={ onCustomPress }\n\t\t\t\t\t\t\twithColorIndicator={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<View style={ horizontalSeparatorStyle } />\n\t\t\t{ getFooter() }\n\t\t</View>\n\t);\n};\n\nexport default PaletteScreen;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,IAAI,EAAEC,IAAI,EAAEC,wBAAwB,QAAQ,cAAc;;AAEnE;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;AACpC,SAASC,QAAQ,EAAEC,UAAU,QAAQ,oBAAoB;AACzD,SAASC,4BAA4B,QAAQ,oBAAoB;AACjE,SACCC,YAAY,EACZC,SAAS,EACTC,kBAAkB,EAClBC,2BAA2B,QACrB,uBAAuB;AAC9B,SAASC,QAAQ,EAAEC,aAAa,QAAQ,0BAA0B;;AAElE;AACA;AACA;AACA,OAAOC,YAAY,MAAM,qBAAqB;AAC9C,OAAOC,cAAc,MAAM,uBAAuB;AAClD,OAAOC,MAAM,MAAM,yBAAyB;AAC5C,OAAOC,iBAAiB,MAAM,sBAAsB;AACpD,SAASC,WAAW,QAAQ,SAAS;AAErC,OAAOC,MAAM,MAAM,cAAc;AAEjC,MAAMC,QAAQ,GAAG;EAAEC,GAAG,EAAE,CAAC;EAAEC,MAAM,EAAE,CAAC;EAAEC,IAAI,EAAE,CAAC;EAAEC,KAAK,EAAE;AAAE,CAAC;AAEzD,MAAMC,aAAa,GAAGA,CAAA,KAAM;EAC3B,MAAMC,KAAK,GAAGd,QAAQ,CAAC,CAAC;EACxB,MAAMe,UAAU,GAAGd,aAAa,CAAC,CAAC;EAClC,MAAM;IAAEe;EAA8B,CAAC,GAAGtB,UAAU,CAAEI,kBAAmB,CAAC;EAC1E,MAAM;IACLmB,KAAK;IACLC,aAAa;IACbC,gBAAgB;IAChBC,cAAc;IACdC,UAAU;IACVC,eAAe;IACfC,cAAc,GAAG;EAClB,CAAC,GAAGT,KAAK,CAACU,MAAM,IAAI,CAAC,CAAC;EACtB,MAAM;IAAEC,QAAQ;IAAEC;EAAW,CAAC,GAAGpB,WAAW;EAC5C,MAAM,CAAEqB,YAAY,EAAEC,eAAe,CAAE,GAAGnC,QAAQ,CAAE4B,UAAW,CAAC;EAChE,MAAMQ,eAAe,GAAGH,UAAU,CAAEC,YAAa,CAAC;EAClD,MAAMG,oBAAoB,GAAGD,eAAe,GAAG,CAAC,GAAG,CAAC;EAEpD,MAAM,CAAEE,cAAc,EAAEC,iBAAiB,CAAE,GAAGvC,QAAQ,CACrDgC,QAAQ,CAAEK,oBAAoB,CAC/B,CAAC;EACD,MAAMG,iBAAiB,GAAGF,cAAc,KAAKzB,WAAW,CAACmB,QAAQ,CAAE,CAAC,CAAE;EACtE,MAAMS,oBAAoB,GAAG,CAAED,iBAAiB,GAC7CX,eAAe,CAACa,MAAM,GACtBb,eAAe,CAACc,SAAS;EAC5B,MAAMC,kBAAkB,GAAGtC,2BAA2B,CAAC,CAAC;EACxD,MAAMuC,qBAAqB,GAAGJ,oBAAoB,CAChDK,OAAO,CAAE,CAAE;IAAEH;EAAU,CAAC,KAAMA,SAAU,CAAC,CACzCI,MAAM,CAAEC,OAAQ,CAAC;EAEnB,MAAMC,wBAAwB,GAAG/C,4BAA4B,CAC5DY,MAAM,CAACoC,mBAAmB,EAC1BpC,MAAM,CAACqC,uBACR,CAAC;EACD,MAAMC,gBAAgB,GAAGlD,4BAA4B,CACpDY,MAAM,CAACuC,WAAW,EAClBvC,MAAM,CAACwC,eACR,CAAC;EACD,MAAMC,sBAAsB,GAAGrD,4BAA4B,CAC1DY,MAAM,CAAC0C,SAAS,EAChB1C,MAAM,CAAC2C,aACR,CAAC;EAED,MAAMC,cAAc,GAAGpB,cAAc,KAAKN,QAAQ,CAAE,CAAC,CAAE;EACvD,MAAM2B,oBAAoB,GAAG,CAAED,cAAc,IAAItB,eAAe;EAEhE,MAAMwB,QAAQ,GAAKC,KAAK,IAAM;IAC7B1B,eAAe,CAAE0B,KAAM,CAAC;IACxB,IAAKH,cAAc,IAAIjC,aAAa,IAAIC,gBAAgB,EAAG;MAC1DD,aAAa,CAAEoC,KAAM,CAAC;IACvB,CAAC,MAAM,IAAKH,cAAc,IAAIjC,aAAa,EAAG;MAC7CA,aAAa,CAAEoC,KAAM,CAAC;IACvB,CAAC,MAAM,IAAK,CAAEH,cAAc,IAAIhC,gBAAgB,EAAG;MAClDA,gBAAgB,CAAEmC,KAAM,CAAC;IAC1B;EACD,CAAC;EAED,SAASC,OAAOA,CAAA,EAAG;IAClB3B,eAAe,CAAE4B,SAAU,CAAC;IAE5B,IAAKpC,cAAc,EAAG;MACrBA,cAAc,CAAC,CAAC;IACjB;EACD;EAEA,SAASqC,aAAaA,CAAA,EAAG;IACxB,IAAKN,cAAc,EAAG;MACrBpC,UAAU,CAAC2C,QAAQ,CAAEpD,WAAW,CAACqD,OAAO,CAACC,MAAM,EAAE;QAChDjC,YAAY;QACZ0B;MACD,CAAE,CAAC;IACJ,CAAC,MAAM;MACNtC,UAAU,CAAC2C,QAAQ,CAAEpD,WAAW,CAACqD,OAAO,CAACE,cAAc,EAAE;QACxDR,QAAQ;QACRxB,eAAe;QACfF;MACD,CAAE,CAAC;IACJ;EACD;EAEA,SAASmC,cAAcA,CAAA,EAAG;IACzB,OACCC,aAAA,CAACxE,wBAAwB;MAACyE,OAAO,EAAGT,OAAS;MAACU,OAAO,EAAGzD;IAAU,GACjEuD,aAAA,CAAC1E,IAAI;MAAC6E,KAAK,EAAG3D,MAAM,CAAC4D;IAAsB,GAC1CJ,aAAA,CAACzE,IAAI;MAAC4E,KAAK,EAAGrB;IAAkB,GAAGrD,EAAE,CAAE,OAAQ,CAAS,CACnD,CACmB,CAAC;EAE7B;EAEA,SAAS4E,SAASA,CAAA,EAAG;IACpB,IAAKjD,gBAAgB,EAAG;MACvB,OACC4C,aAAA,CAAC1D,iBAAiB;QACjBoB,QAAQ,EAAGA,QAAU;QACrB4C,cAAc,EAAGrC,iBAAmB;QACpCsC,aAAa,EAAG7C,QAAQ,CAAC8C,OAAO,CAAExC,cAAe,CAAG;QACpDyC,SAAS,EACR7C,YAAY,IACXoC,aAAA,CAAC5D,cAAc;UACdmD,KAAK,EAAG3B,YAAc;UACtBuC,KAAK,EAAG3D,MAAM,CAACkE;QAAgB,CAC/B,CAEF;QACDC,UAAU,EAAG/C,YAAY,IAAImC,cAAc,CAAC;MAAG,CAC/C,CAAC;IAEJ;IACA,OACCC,aAAA,CAAC1E,IAAI;MAAC6E,KAAK,EAAG3D,MAAM,CAACoE;IAAQ,GAC5BZ,aAAA,CAAC1E,IAAI;MAAC6E,KAAK,EAAG3D,MAAM,CAACqE;IAAM,GACxBjD,YAAY,IACboC,aAAA,CAAC5D,cAAc;MACdmD,KAAK,EAAG3B,YAAc;MACtBuC,KAAK,EAAG3D,MAAM,CAACkE;IAAgB,CAC/B,CAEG,CAAC,EACL9C,YAAY,GACboC,aAAA,CAACzE,IAAI;MACJ4E,KAAK,EAAGlB,sBAAwB;MAChC6B,qBAAqB,EAAG,CAAG;MAC3BC,UAAU;IAAA,GAERnD,YAAY,CAACoD,WAAW,CAAC,CACtB,CAAC,GAEPhB,aAAA,CAACzE,IAAI;MACJ4E,KAAK,EAAG3D,MAAM,CAACyE,eAAiB;MAChCH,qBAAqB,EAAG;IAAG,GAEzBrF,EAAE,CAAE,sBAAuB,CACxB,CACN,EACDuE,aAAA,CAAC1E,IAAI;MAAC6E,KAAK,EAAG3D,MAAM,CAACqE;IAAM,GACxBjD,YAAY,IAAImC,cAAc,CAAC,CAC5B,CACD,CAAC;EAET;EACA,OACCC,aAAA,CAAC1E,IAAI,QACF,CAAEkC,cAAc,IACjBwC,aAAA,CAAC3D,MAAM,QACN2D,aAAA,CAAC3D,MAAM,CAAC6E,UAAU;IAACjB,OAAO,EAAGjD,UAAU,CAACmE;EAAQ,CAAE,CAAC,EACnDnB,aAAA,CAAC3D,MAAM,CAAC+E,OAAO,QAAGlE,KAAK,EAAE,GAAiB,CACnC,CACR,EAED8C,aAAA,CAAC1E,IAAI;IAAC6E,KAAK,EAAG3D,MAAM,CAAC6E;EAAe,GACjClD,oBAAoB,CAACmD,GAAG,CAAE,CAAEC,OAAO,EAAEC,UAAU,KAAM;IACtD,MAAMC,eAAe,GAAG;MACvBrD,MAAM,EAAEmD,OAAO,CAACnD,MAAM;MACtBC,SAAS,EAAEkD,OAAO,CAAClD,SAAS;MAC5BqD,SAAS,EAAEpD,kBAAkB;MAC7BqD,YAAY,EAAEpD;IACf,CAAC;IACD;IACA,MAAMqD,iBAAiB,GAAGJ,UAAU,KAAK,CAAC;IAE1C,OACCxB,aAAA,CAAC7D,YAAY;MACZyF,iBAAiB,EAAGA,iBAAmB;MACvC1E,KAAK,EAAGqE,OAAO,CAACM,IAAM;MACtBC,GAAG,EAAGN,UAAY;MAClBlC,QAAQ,EAAGA,QAAU;MACrByC,WAAW,EAAGnE,YAAc;MAC5BE,eAAe,EAAGA,eAAiB;MACnCE,cAAc,EAAGA,cAAgB;MACjC0B,aAAa,EAAGA,aAAe;MAC/BzC,6BAA6B,EAC5BA,6BACA;MACDM,eAAe,EAAGkE;IAAiB,CACnC,CAAC;EAEJ,CAAE,CACG,CAAC,EAELpC,oBAAoB,IACrBW,aAAA,CAAAgC,QAAA,QACChC,aAAA,CAAC1E,IAAI;IAAC6E,KAAK,EAAGxB;EAA0B,CAAE,CAAC,EAC3CqB,aAAA,CAAClE,SAAS,QACTkE,aAAA,CAACnE,YAAY;IACZqB,KAAK,EAAGzB,EAAE,CAAE,oBAAqB,CAAG;IACpCwE,OAAO,EAAGP,aAAe;IACzBuC,kBAAkB,EAAG;EAAO,CAC5B,CACS,CACV,CACF,EACDjC,aAAA,CAAC1E,IAAI;IAAC6E,KAAK,EAAGxB;EAA0B,CAAE,CAAC,EACzC0B,SAAS,CAAC,CACP,CAAC;AAET,CAAC;AAED,eAAevD,aAAa"}
|
|
@@ -19,7 +19,7 @@ export default function useSlotFills(name) {
|
|
|
19
19
|
});
|
|
20
20
|
// The important bit here is that this call ensures that the hook
|
|
21
21
|
// only causes a re-render if the "fills" of a given slot name
|
|
22
|
-
// change
|
|
22
|
+
// change, not any fills.
|
|
23
23
|
return fills.get(name);
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=use-slot-fills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSnapshot","useContext","SlotFillContext","useSlotFills","name","registry","fills","sync","get"],"sources":["@wordpress/components/src/slot-fill/bubbles-virtually/use-slot-fills.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport { useSnapshot } from 'valtio';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SlotFillContext from './slot-fill-context';\nimport type { SlotKey } from '../types';\n\nexport default function useSlotFills( name: SlotKey ) {\n\tconst registry = useContext( SlotFillContext );\n\tconst fills = useSnapshot( registry.fills, { sync: true } );\n\t// The important bit here is that this call ensures that the hook\n\t// only causes a re-render if the \"fills\" of a given slot name\n\t// change
|
|
1
|
+
{"version":3,"names":["useSnapshot","useContext","SlotFillContext","useSlotFills","name","registry","fills","sync","get"],"sources":["@wordpress/components/src/slot-fill/bubbles-virtually/use-slot-fills.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport { useSnapshot } from 'valtio';\n\n/**\n * WordPress dependencies\n */\nimport { useContext } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport SlotFillContext from './slot-fill-context';\nimport type { SlotKey } from '../types';\n\nexport default function useSlotFills( name: SlotKey ) {\n\tconst registry = useContext( SlotFillContext );\n\tconst fills = useSnapshot( registry.fills, { sync: true } );\n\t// The important bit here is that this call ensures that the hook\n\t// only causes a re-render if the \"fills\" of a given slot name\n\t// change, not any fills.\n\treturn fills.get( name );\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,QAAQ;;AAEpC;AACA;AACA;AACA,SAASC,UAAU,QAAQ,oBAAoB;;AAE/C;AACA;AACA;AACA,OAAOC,eAAe,MAAM,qBAAqB;AAGjD,eAAe,SAASC,YAAYA,CAAEC,IAAa,EAAG;EACrD,MAAMC,QAAQ,GAAGJ,UAAU,CAAEC,eAAgB,CAAC;EAC9C,MAAMI,KAAK,GAAGN,WAAW,CAAEK,QAAQ,CAACC,KAAK,EAAE;IAAEC,IAAI,EAAE;EAAK,CAAE,CAAC;EAC3D;EACA;EACA;EACA,OAAOD,KAAK,CAACE,GAAG,CAAEJ,IAAK,CAAC;AACzB"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _styled from "@emotion/styled/base";
|
|
2
|
+
function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
|
|
2
3
|
/**
|
|
3
4
|
* External dependencies
|
|
4
5
|
*/
|
|
@@ -13,12 +14,20 @@ export const colorVariables = ({
|
|
|
13
14
|
colors
|
|
14
15
|
}) => {
|
|
15
16
|
const shades = Object.entries(colors.gray || {}).map(([k, v]) => `--wp-components-color-gray-${k}: ${v};`).join('');
|
|
16
|
-
return [/*#__PURE__*/css("--wp-components-color-accent:", colors.accent, ";--wp-components-color-accent-darker-10:", colors.accentDarker10, ";--wp-components-color-accent-darker-20:", colors.accentDarker20, ";--wp-components-color-accent-inverted:", colors.accentInverted, ";--wp-components-color-background:", colors.background, ";--wp-components-color-foreground:", colors.foreground, ";--wp-components-color-foreground-inverted:", colors.foregroundInverted, ";", shades, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:colorVariables;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
17
|
+
return [/*#__PURE__*/css("--wp-components-color-accent:", colors.accent, ";--wp-components-color-accent-darker-10:", colors.accentDarker10, ";--wp-components-color-accent-darker-20:", colors.accentDarker20, ";--wp-components-color-accent-inverted:", colors.accentInverted, ";--wp-components-color-background:", colors.background, ";--wp-components-color-foreground:", colors.foreground, ";--wp-components-color-foreground-inverted:", colors.foregroundInverted, ";", shades, ";" + (process.env.NODE_ENV === "production" ? "" : ";label:colorVariables;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvdGhlbWUvc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlCSyIsImZpbGUiOiJAd29yZHByZXNzL2NvbXBvbmVudHMvc3JjL3RoZW1lL3N0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHR5cGUgeyBUaGVtZU91dHB1dFZhbHVlcyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgY29sb3JWYXJpYWJsZXMgPSAoIHsgY29sb3JzIH06IFRoZW1lT3V0cHV0VmFsdWVzICkgPT4ge1xuXHRjb25zdCBzaGFkZXMgPSBPYmplY3QuZW50cmllcyggY29sb3JzLmdyYXkgfHwge30gKVxuXHRcdC5tYXAoICggWyBrLCB2IF0gKSA9PiBgLS13cC1jb21wb25lbnRzLWNvbG9yLWdyYXktJHsgayB9OiAkeyB2IH07YCApXG5cdFx0LmpvaW4oICcnICk7XG5cblx0cmV0dXJuIFtcblx0XHRjc3NgXG5cdFx0XHQtLXdwLWNvbXBvbmVudHMtY29sb3ItYWNjZW50OiAkeyBjb2xvcnMuYWNjZW50IH07XG5cdFx0XHQtLXdwLWNvbXBvbmVudHMtY29sb3ItYWNjZW50LWRhcmtlci0xMDogJHsgY29sb3JzLmFjY2VudERhcmtlcjEwIH07XG5cdFx0XHQtLXdwLWNvbXBvbmVudHMtY29sb3ItYWNjZW50LWRhcmtlci0yMDogJHsgY29sb3JzLmFjY2VudERhcmtlcjIwIH07XG5cdFx0XHQtLXdwLWNvbXBvbmVudHMtY29sb3ItYWNjZW50LWludmVydGVkOiAkeyBjb2xvcnMuYWNjZW50SW52ZXJ0ZWQgfTtcblxuXHRcdFx0LS13cC1jb21wb25lbnRzLWNvbG9yLWJhY2tncm91bmQ6ICR7IGNvbG9ycy5iYWNrZ3JvdW5kIH07XG5cdFx0XHQtLXdwLWNvbXBvbmVudHMtY29sb3ItZm9yZWdyb3VuZDogJHsgY29sb3JzLmZvcmVncm91bmQgfTtcblx0XHRcdC0td3AtY29tcG9uZW50cy1jb2xvci1mb3JlZ3JvdW5kLWludmVydGVkOiAkeyBjb2xvcnMuZm9yZWdyb3VuZEludmVydGVkIH07XG5cblx0XHRcdCR7IHNoYWRlcyB9XG5cdFx0YCxcblx0XTtcbn07XG5cbmV4cG9ydCBjb25zdCBXcmFwcGVyID0gc3R5bGVkLmRpdmBcblx0Y29sb3I6IHZhciggLS13cC1jb21wb25lbnRzLWNvbG9yLWZvcmVncm91bmQsIGN1cnJlbnRDb2xvciApO1xuYDtcbiJdfQ== */")];
|
|
17
18
|
};
|
|
18
19
|
export const Wrapper = _styled("div", process.env.NODE_ENV === "production" ? {
|
|
19
20
|
target: "e1krjpvb0"
|
|
20
21
|
} : {
|
|
21
22
|
target: "e1krjpvb0",
|
|
22
23
|
label: "Wrapper"
|
|
23
|
-
})(process.env.NODE_ENV === "production" ?
|
|
24
|
+
})(process.env.NODE_ENV === "production" ? {
|
|
25
|
+
name: "1a3idx0",
|
|
26
|
+
styles: "color:var( --wp-components-color-foreground, currentColor )"
|
|
27
|
+
} : {
|
|
28
|
+
name: "1a3idx0",
|
|
29
|
+
styles: "color:var( --wp-components-color-foreground, currentColor )",
|
|
30
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvdGhlbWUvc3R5bGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdDaUMiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy90aGVtZS9zdHlsZXMudHMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEV4dGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgeyBjc3MgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5cbi8qKlxuICogSW50ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB0eXBlIHsgVGhlbWVPdXRwdXRWYWx1ZXMgfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IGNvbG9yVmFyaWFibGVzID0gKCB7IGNvbG9ycyB9OiBUaGVtZU91dHB1dFZhbHVlcyApID0+IHtcblx0Y29uc3Qgc2hhZGVzID0gT2JqZWN0LmVudHJpZXMoIGNvbG9ycy5ncmF5IHx8IHt9IClcblx0XHQubWFwKCAoIFsgaywgdiBdICkgPT4gYC0td3AtY29tcG9uZW50cy1jb2xvci1ncmF5LSR7IGsgfTogJHsgdiB9O2AgKVxuXHRcdC5qb2luKCAnJyApO1xuXG5cdHJldHVybiBbXG5cdFx0Y3NzYFxuXHRcdFx0LS13cC1jb21wb25lbnRzLWNvbG9yLWFjY2VudDogJHsgY29sb3JzLmFjY2VudCB9O1xuXHRcdFx0LS13cC1jb21wb25lbnRzLWNvbG9yLWFjY2VudC1kYXJrZXItMTA6ICR7IGNvbG9ycy5hY2NlbnREYXJrZXIxMCB9O1xuXHRcdFx0LS13cC1jb21wb25lbnRzLWNvbG9yLWFjY2VudC1kYXJrZXItMjA6ICR7IGNvbG9ycy5hY2NlbnREYXJrZXIyMCB9O1xuXHRcdFx0LS13cC1jb21wb25lbnRzLWNvbG9yLWFjY2VudC1pbnZlcnRlZDogJHsgY29sb3JzLmFjY2VudEludmVydGVkIH07XG5cblx0XHRcdC0td3AtY29tcG9uZW50cy1jb2xvci1iYWNrZ3JvdW5kOiAkeyBjb2xvcnMuYmFja2dyb3VuZCB9O1xuXHRcdFx0LS13cC1jb21wb25lbnRzLWNvbG9yLWZvcmVncm91bmQ6ICR7IGNvbG9ycy5mb3JlZ3JvdW5kIH07XG5cdFx0XHQtLXdwLWNvbXBvbmVudHMtY29sb3ItZm9yZWdyb3VuZC1pbnZlcnRlZDogJHsgY29sb3JzLmZvcmVncm91bmRJbnZlcnRlZCB9O1xuXG5cdFx0XHQkeyBzaGFkZXMgfVxuXHRcdGAsXG5cdF07XG59O1xuXG5leHBvcnQgY29uc3QgV3JhcHBlciA9IHN0eWxlZC5kaXZgXG5cdGNvbG9yOiB2YXIoIC0td3AtY29tcG9uZW50cy1jb2xvci1mb3JlZ3JvdW5kLCBjdXJyZW50Q29sb3IgKTtcbmA7XG4iXX0= */",
|
|
31
|
+
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
32
|
+
});
|
|
24
33
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["css","colorVariables","colors","shades","Object","entries","gray","map","k","v","join","accent","accentDarker10","accentDarker20","accentInverted","background","foreground","foregroundInverted","process","env","NODE_ENV","Wrapper","_styled","target","label"],"sources":["@wordpress/components/src/theme/styles.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\n\n/**\n * Internal dependencies\n */\nimport type { ThemeOutputValues } from './types';\n\nexport const colorVariables = ( { colors }: ThemeOutputValues ) => {\n\tconst shades = Object.entries( colors.gray || {} )\n\t\t.map( ( [ k, v ] ) => `--wp-components-color-gray-${ k }: ${ v };` )\n\t\t.join( '' );\n\n\treturn [\n\t\tcss`\n\t\t\t--wp-components-color-accent: ${ colors.accent };\n\t\t\t--wp-components-color-accent-darker-10: ${ colors.accentDarker10 };\n\t\t\t--wp-components-color-accent-darker-20: ${ colors.accentDarker20 };\n\t\t\t--wp-components-color-accent-inverted: ${ colors.accentInverted };\n\n\t\t\t--wp-components-color-background: ${ colors.background };\n\t\t\t--wp-components-color-foreground: ${ colors.foreground };\n\t\t\t--wp-components-color-foreground-inverted: ${ colors.foregroundInverted };\n\n\t\t\t${ shades }\n\t\t`,\n\t];\n};\n\nexport const Wrapper = styled.div
|
|
1
|
+
{"version":3,"names":["css","colorVariables","colors","shades","Object","entries","gray","map","k","v","join","accent","accentDarker10","accentDarker20","accentInverted","background","foreground","foregroundInverted","process","env","NODE_ENV","Wrapper","_styled","target","label","name","styles","toString","_EMOTION_STRINGIFIED_CSS_ERROR__"],"sources":["@wordpress/components/src/theme/styles.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\nimport { css } from '@emotion/react';\n\n/**\n * Internal dependencies\n */\nimport type { ThemeOutputValues } from './types';\n\nexport const colorVariables = ( { colors }: ThemeOutputValues ) => {\n\tconst shades = Object.entries( colors.gray || {} )\n\t\t.map( ( [ k, v ] ) => `--wp-components-color-gray-${ k }: ${ v };` )\n\t\t.join( '' );\n\n\treturn [\n\t\tcss`\n\t\t\t--wp-components-color-accent: ${ colors.accent };\n\t\t\t--wp-components-color-accent-darker-10: ${ colors.accentDarker10 };\n\t\t\t--wp-components-color-accent-darker-20: ${ colors.accentDarker20 };\n\t\t\t--wp-components-color-accent-inverted: ${ colors.accentInverted };\n\n\t\t\t--wp-components-color-background: ${ colors.background };\n\t\t\t--wp-components-color-foreground: ${ colors.foreground };\n\t\t\t--wp-components-color-foreground-inverted: ${ colors.foregroundInverted };\n\n\t\t\t${ shades }\n\t\t`,\n\t];\n};\n\nexport const Wrapper = styled.div`\n\tcolor: var( --wp-components-color-foreground, currentColor );\n`;\n"],"mappings":";;AAAA;AACA;AACA;;AAEA,SAASA,GAAG,QAAQ,gBAAgB;;AAEpC;AACA;AACA;;AAGA,OAAO,MAAMC,cAAc,GAAGA,CAAE;EAAEC;AAA0B,CAAC,KAAM;EAClE,MAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAAEH,MAAM,CAACI,IAAI,IAAI,CAAC,CAAE,CAAC,CAChDC,GAAG,CAAE,CAAE,CAAEC,CAAC,EAAEC,CAAC,CAAE,KAAO,8BAA8BD,CAAG,KAAKC,CAAG,GAAG,CAAC,CACnEC,IAAI,CAAE,EAAG,CAAC;EAEZ,OAAO,cACNV,GAAG,kCAC+BE,MAAM,CAACS,MAAM,8CACHT,MAAM,CAACU,cAAc,8CACrBV,MAAM,CAACW,cAAc,6CACtBX,MAAM,CAACY,cAAc,wCAE1BZ,MAAM,CAACa,UAAU,wCACjBb,MAAM,CAACc,UAAU,iDACRd,MAAM,CAACe,kBAAkB,OAEpEd,MAAM,SAAAe,OAAA,CAAAC,GAAA,CAAAC,QAAA,oDAAAF,OAAA,CAAAC,GAAA,CAAAC,QAAA,gvDAEV;AACF,CAAC;AAED,OAAO,MAAMC,OAAO,GAAAC,OAAA,QAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAN,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAK,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAnB,GAAA;EAAAoB,QAAA,EAAAC;AAAA,EAEnB"}
|
|
@@ -16,12 +16,18 @@ import { useEffect, useRef } from '@wordpress/element';
|
|
|
16
16
|
* @param valueProp The received `value`
|
|
17
17
|
*/
|
|
18
18
|
export function useComputeControlledOrUncontrolledValue(valueProp) {
|
|
19
|
+
const isInitialRender = useRef(true);
|
|
19
20
|
const prevValueProp = usePrevious(valueProp);
|
|
20
21
|
const prevIsControlled = useRef(false);
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (isInitialRender.current) {
|
|
24
|
+
isInitialRender.current = false;
|
|
25
|
+
}
|
|
26
|
+
}, []);
|
|
21
27
|
|
|
22
28
|
// Assume the component is being used in controlled mode on the first re-render
|
|
23
29
|
// that has a different `valueProp` from the previous render.
|
|
24
|
-
const isControlled = prevIsControlled.current ||
|
|
30
|
+
const isControlled = prevIsControlled.current || !isInitialRender.current && prevValueProp !== valueProp;
|
|
25
31
|
useEffect(() => {
|
|
26
32
|
prevIsControlled.current = isControlled;
|
|
27
33
|
}, [isControlled]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["usePrevious","useEffect","useRef","useComputeControlledOrUncontrolledValue","valueProp","
|
|
1
|
+
{"version":3,"names":["usePrevious","useEffect","useRef","useComputeControlledOrUncontrolledValue","valueProp","isInitialRender","prevValueProp","prevIsControlled","current","isControlled","value","defaultValue","undefined"],"sources":["@wordpress/components/src/toggle-group-control/toggle-group-control/utils.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { usePrevious } from '@wordpress/compose';\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { ToggleGroupControlProps } from '../types';\n\ntype ValueProp = ToggleGroupControlProps[ 'value' ];\n\n/**\n * Used to determine, via an internal heuristics, whether an `undefined` value\n * received for the `value` prop should be interpreted as the component being\n * used in uncontrolled mode, or as an \"empty\" value for controlled mode.\n *\n * @param valueProp The received `value`\n */\nexport function useComputeControlledOrUncontrolledValue(\n\tvalueProp: ValueProp\n): { value: ValueProp; defaultValue: ValueProp } {\n\tconst isInitialRender = useRef( true );\n\tconst prevValueProp = usePrevious( valueProp );\n\tconst prevIsControlled = useRef( false );\n\n\tuseEffect( () => {\n\t\tif ( isInitialRender.current ) {\n\t\t\tisInitialRender.current = false;\n\t\t}\n\t}, [] );\n\n\t// Assume the component is being used in controlled mode on the first re-render\n\t// that has a different `valueProp` from the previous render.\n\tconst isControlled =\n\t\tprevIsControlled.current ||\n\t\t( ! isInitialRender.current && prevValueProp !== valueProp );\n\tuseEffect( () => {\n\t\tprevIsControlled.current = isControlled;\n\t}, [ isControlled ] );\n\n\tif ( isControlled ) {\n\t\t// When in controlled mode, use `''` instead of `undefined`\n\t\treturn { value: valueProp ?? '', defaultValue: undefined };\n\t}\n\n\t// When in uncontrolled mode, the `value` should be intended as the initial value\n\treturn { value: undefined, defaultValue: valueProp };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,WAAW,QAAQ,oBAAoB;AAChD,SAASC,SAAS,EAAEC,MAAM,QAAQ,oBAAoB;;AAEtD;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,uCAAuCA,CACtDC,SAAoB,EAC4B;EAChD,MAAMC,eAAe,GAAGH,MAAM,CAAE,IAAK,CAAC;EACtC,MAAMI,aAAa,GAAGN,WAAW,CAAEI,SAAU,CAAC;EAC9C,MAAMG,gBAAgB,GAAGL,MAAM,CAAE,KAAM,CAAC;EAExCD,SAAS,CAAE,MAAM;IAChB,IAAKI,eAAe,CAACG,OAAO,EAAG;MAC9BH,eAAe,CAACG,OAAO,GAAG,KAAK;IAChC;EACD,CAAC,EAAE,EAAG,CAAC;;EAEP;EACA;EACA,MAAMC,YAAY,GACjBF,gBAAgB,CAACC,OAAO,IACtB,CAAEH,eAAe,CAACG,OAAO,IAAIF,aAAa,KAAKF,SAAW;EAC7DH,SAAS,CAAE,MAAM;IAChBM,gBAAgB,CAACC,OAAO,GAAGC,YAAY;EACxC,CAAC,EAAE,CAAEA,YAAY,CAAG,CAAC;EAErB,IAAKA,YAAY,EAAG;IACnB;IACA,OAAO;MAAEC,KAAK,EAAEN,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE;MAAEO,YAAY,EAAEC;IAAU,CAAC;EAC3D;;EAEA;EACA,OAAO;IAAEF,KAAK,EAAEE,SAAS;IAAED,YAAY,EAAEP;EAAU,CAAC;AACrD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { createElement
|
|
1
|
+
import { createElement } from "react";
|
|
2
2
|
/**
|
|
3
3
|
* External dependencies
|
|
4
4
|
*/
|
|
@@ -9,7 +9,7 @@ import * as Ariakit from '@ariakit/react';
|
|
|
9
9
|
* WordPress dependencies
|
|
10
10
|
*/
|
|
11
11
|
import { useInstanceId } from '@wordpress/compose';
|
|
12
|
-
import { Children } from '@wordpress/element';
|
|
12
|
+
import { Children, useContext, createContext, forwardRef } from '@wordpress/element';
|
|
13
13
|
import deprecated from '@wordpress/deprecated';
|
|
14
14
|
|
|
15
15
|
/**
|
|
@@ -18,12 +18,18 @@ import deprecated from '@wordpress/deprecated';
|
|
|
18
18
|
|
|
19
19
|
import Shortcut from '../shortcut';
|
|
20
20
|
import { positionToPlacement } from '../popover/utils';
|
|
21
|
+
const TooltipInternalContext = createContext({
|
|
22
|
+
isNestedInTooltip: false
|
|
23
|
+
});
|
|
21
24
|
|
|
22
25
|
/**
|
|
23
26
|
* Time over anchor to wait before showing tooltip
|
|
24
27
|
*/
|
|
25
28
|
export const TOOLTIP_DELAY = 700;
|
|
26
|
-
|
|
29
|
+
const CONTEXT_VALUE = {
|
|
30
|
+
isNestedInTooltip: true
|
|
31
|
+
};
|
|
32
|
+
function UnforwardedTooltip(props, ref) {
|
|
27
33
|
const {
|
|
28
34
|
children,
|
|
29
35
|
delay = TOOLTIP_DELAY,
|
|
@@ -31,8 +37,12 @@ function Tooltip(props) {
|
|
|
31
37
|
placement,
|
|
32
38
|
position,
|
|
33
39
|
shortcut,
|
|
34
|
-
text
|
|
40
|
+
text,
|
|
41
|
+
...restProps
|
|
35
42
|
} = props;
|
|
43
|
+
const {
|
|
44
|
+
isNestedInTooltip
|
|
45
|
+
} = useContext(TooltipInternalContext);
|
|
36
46
|
const baseId = useInstanceId(Tooltip, 'tooltip');
|
|
37
47
|
const describedById = text || shortcut ? baseId : undefined;
|
|
38
48
|
const isOnlyChild = Children.count(children) === 1;
|
|
@@ -40,7 +50,7 @@ function Tooltip(props) {
|
|
|
40
50
|
if (!isOnlyChild) {
|
|
41
51
|
if ('development' === process.env.NODE_ENV) {
|
|
42
52
|
// eslint-disable-next-line no-console
|
|
43
|
-
console.error('Tooltip should be called with only a single child element.');
|
|
53
|
+
console.error('wp-components.Tooltip should be called with only a single child element.');
|
|
44
54
|
}
|
|
45
55
|
}
|
|
46
56
|
|
|
@@ -59,17 +69,31 @@ function Tooltip(props) {
|
|
|
59
69
|
});
|
|
60
70
|
}
|
|
61
71
|
computedPlacement = computedPlacement || 'bottom';
|
|
62
|
-
|
|
72
|
+
|
|
73
|
+
// Removing the `Ariakit` namespace from the hook name allows ESLint to
|
|
74
|
+
// properly identify the hook, and apply the correct linting rules.
|
|
75
|
+
const useAriakitTooltipStore = Ariakit.useTooltipStore;
|
|
76
|
+
const tooltipStore = useAriakitTooltipStore({
|
|
63
77
|
placement: computedPlacement,
|
|
64
78
|
showTimeout: delay
|
|
65
79
|
});
|
|
66
|
-
|
|
80
|
+
if (isNestedInTooltip) {
|
|
81
|
+
return isOnlyChild ? createElement(Ariakit.Role, {
|
|
82
|
+
...restProps,
|
|
83
|
+
render: children
|
|
84
|
+
}) : children;
|
|
85
|
+
}
|
|
86
|
+
return createElement(TooltipInternalContext.Provider, {
|
|
87
|
+
value: CONTEXT_VALUE
|
|
88
|
+
}, createElement(Ariakit.TooltipAnchor, {
|
|
67
89
|
onClick: hideOnClick ? tooltipStore.hide : undefined,
|
|
68
90
|
store: tooltipStore,
|
|
69
|
-
render: isOnlyChild ? children : undefined
|
|
91
|
+
render: isOnlyChild ? children : undefined,
|
|
92
|
+
ref: ref
|
|
70
93
|
}, isOnlyChild ? undefined : children), isOnlyChild && (text || shortcut) && createElement(Ariakit.Tooltip, {
|
|
71
|
-
|
|
94
|
+
...restProps,
|
|
72
95
|
className: "components-tooltip",
|
|
96
|
+
unmountOnHide: true,
|
|
73
97
|
gutter: 4,
|
|
74
98
|
id: describedById,
|
|
75
99
|
overflowPadding: 0.5,
|
|
@@ -79,5 +103,6 @@ function Tooltip(props) {
|
|
|
79
103
|
shortcut: shortcut
|
|
80
104
|
})));
|
|
81
105
|
}
|
|
106
|
+
export const Tooltip = forwardRef(UnforwardedTooltip);
|
|
82
107
|
export default Tooltip;
|
|
83
108
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Ariakit","useInstanceId","Children","deprecated","Shortcut","positionToPlacement","TOOLTIP_DELAY","
|
|
1
|
+
{"version":3,"names":["Ariakit","useInstanceId","Children","useContext","createContext","forwardRef","deprecated","Shortcut","positionToPlacement","TooltipInternalContext","isNestedInTooltip","TOOLTIP_DELAY","CONTEXT_VALUE","UnforwardedTooltip","props","ref","children","delay","hideOnClick","placement","position","shortcut","text","restProps","baseId","Tooltip","describedById","undefined","isOnlyChild","count","process","env","NODE_ENV","console","error","computedPlacement","since","alternative","useAriakitTooltipStore","useTooltipStore","tooltipStore","showTimeout","createElement","Role","render","Provider","value","TooltipAnchor","onClick","hide","store","className","unmountOnHide","gutter","id","overflowPadding"],"sources":["@wordpress/components/src/tooltip/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport {\n\tChildren,\n\tuseContext,\n\tcreateContext,\n\tforwardRef,\n} from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport type {\n\tTooltipProps,\n\tTooltipInternalContext as TooltipInternalContextType,\n} from './types';\nimport Shortcut from '../shortcut';\nimport { positionToPlacement } from '../popover/utils';\n\nconst TooltipInternalContext = createContext< TooltipInternalContextType >( {\n\tisNestedInTooltip: false,\n} );\n\n/**\n * Time over anchor to wait before showing tooltip\n */\nexport const TOOLTIP_DELAY = 700;\n\nconst CONTEXT_VALUE = {\n\tisNestedInTooltip: true,\n};\n\nfunction UnforwardedTooltip(\n\tprops: TooltipProps,\n\tref: React.ForwardedRef< any >\n) {\n\tconst {\n\t\tchildren,\n\t\tdelay = TOOLTIP_DELAY,\n\t\thideOnClick = true,\n\t\tplacement,\n\t\tposition,\n\t\tshortcut,\n\t\ttext,\n\n\t\t...restProps\n\t} = props;\n\n\tconst { isNestedInTooltip } = useContext( TooltipInternalContext );\n\n\tconst baseId = useInstanceId( Tooltip, 'tooltip' );\n\tconst describedById = text || shortcut ? baseId : undefined;\n\n\tconst isOnlyChild = Children.count( children ) === 1;\n\t// console error if more than one child element is added\n\tif ( ! isOnlyChild ) {\n\t\tif ( 'development' === process.env.NODE_ENV ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t'wp-components.Tooltip should be called with only a single child element.'\n\t\t\t);\n\t\t}\n\t}\n\n\t// Compute tooltip's placement:\n\t// - give priority to `placement` prop, if defined\n\t// - otherwise, compute it from the legacy `position` prop (if defined)\n\t// - finally, fallback to the default placement: 'bottom'\n\tlet computedPlacement;\n\tif ( placement !== undefined ) {\n\t\tcomputedPlacement = placement;\n\t} else if ( position !== undefined ) {\n\t\tcomputedPlacement = positionToPlacement( position );\n\t\tdeprecated( '`position` prop in wp.components.tooltip', {\n\t\t\tsince: '6.4',\n\t\t\talternative: '`placement` prop',\n\t\t} );\n\t}\n\tcomputedPlacement = computedPlacement || 'bottom';\n\n\t// Removing the `Ariakit` namespace from the hook name allows ESLint to\n\t// properly identify the hook, and apply the correct linting rules.\n\tconst useAriakitTooltipStore = Ariakit.useTooltipStore;\n\tconst tooltipStore = useAriakitTooltipStore( {\n\t\tplacement: computedPlacement,\n\t\tshowTimeout: delay,\n\t} );\n\n\tif ( isNestedInTooltip ) {\n\t\treturn isOnlyChild ? (\n\t\t\t<Ariakit.Role { ...restProps } render={ children } />\n\t\t) : (\n\t\t\tchildren\n\t\t);\n\t}\n\n\treturn (\n\t\t<TooltipInternalContext.Provider value={ CONTEXT_VALUE }>\n\t\t\t<Ariakit.TooltipAnchor\n\t\t\t\tonClick={ hideOnClick ? tooltipStore.hide : undefined }\n\t\t\t\tstore={ tooltipStore }\n\t\t\t\trender={ isOnlyChild ? children : undefined }\n\t\t\t\tref={ ref }\n\t\t\t>\n\t\t\t\t{ isOnlyChild ? undefined : children }\n\t\t\t</Ariakit.TooltipAnchor>\n\t\t\t{ isOnlyChild && ( text || shortcut ) && (\n\t\t\t\t<Ariakit.Tooltip\n\t\t\t\t\t{ ...restProps }\n\t\t\t\t\tclassName=\"components-tooltip\"\n\t\t\t\t\tunmountOnHide\n\t\t\t\t\tgutter={ 4 }\n\t\t\t\t\tid={ describedById }\n\t\t\t\t\toverflowPadding={ 0.5 }\n\t\t\t\t\tstore={ tooltipStore }\n\t\t\t\t>\n\t\t\t\t\t{ text }\n\t\t\t\t\t{ shortcut && (\n\t\t\t\t\t\t<Shortcut\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\ttext ? 'components-tooltip__shortcut' : ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshortcut={ shortcut }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</Ariakit.Tooltip>\n\t\t\t) }\n\t\t</TooltipInternalContext.Provider>\n\t);\n}\n\nexport const Tooltip = forwardRef( UnforwardedTooltip );\n\nexport default Tooltip;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["@wordpress/components/src/tooltip/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Placement } from '@floating-ui/react-dom';\n\n/**\n * Internal dependencies\n */\nimport type { PopoverProps } from '../popover/types';\nimport type { ShortcutProps } from '../shortcut/types';\n\nexport type TooltipProps = {\n\t/**\n\t * The anchor for the tooltip.\n\t *\n\t * **Note**: Accepts only one child element.\n\t */\n\tchildren: React.ReactElement;\n\t/**\n\t * Option to hide the tooltip when the anchor is clicked.\n\t *\n\t * @default true\n\t */\n\thideOnClick?: boolean;\n\t/**\n\t * The amount of time in milliseconds to wait before showing the tooltip.\n\t *\n\t * @default 700\n\t */\n\tdelay?: number;\n\t/**\n\t * Where the tooltip should be positioned relative to its parent.\n\t *\n\t * @default bottom\n\t */\n\tplacement?: Placement;\n\t/**\n\t * _Note: this prop is deprecated. Please use the `placement` prop instead._\n\t *\n\t * Legacy way of specifying the tooltip's position relative to its parent.\n\t *\n\t * Specify y- and x-axis as a space-separated string. Supports `\"top\"`,\n\t * `\"bottom\"` y axis, and `\"left\"`, `\"center\"`, `\"right\"` x axis.\n\t *\n\t * @deprecated\n\t * @default bottom\n\t */\n\tposition?: PopoverProps[ 'position' ];\n\t/**\n\t * An option for adding accessible keyboard shortcuts.\n\t *\n\t * If shortcut is a string, it is expecting the display text. If shortcut is an\n\t * object, it will accept the properties of `display` (string) and `ariaLabel`\n\t * (string).\n\t */\n\tshortcut?: ShortcutProps[ 'shortcut' ];\n\t/**\n\t * The text shown in the tooltip when anchor element is focused or hovered.\n\t */\n\ttext?: string;\n};\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["@wordpress/components/src/tooltip/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Placement } from '@floating-ui/react-dom';\n\n/**\n * Internal dependencies\n */\nimport type { PopoverProps } from '../popover/types';\nimport type { ShortcutProps } from '../shortcut/types';\n\nexport type TooltipProps = {\n\t/**\n\t * The anchor for the tooltip.\n\t *\n\t * **Note**: Accepts only one child element.\n\t */\n\tchildren: React.ReactElement;\n\t/**\n\t * Option to hide the tooltip when the anchor is clicked.\n\t *\n\t * @default true\n\t */\n\thideOnClick?: boolean;\n\t/**\n\t * The amount of time in milliseconds to wait before showing the tooltip.\n\t *\n\t * @default 700\n\t */\n\tdelay?: number;\n\t/**\n\t * Where the tooltip should be positioned relative to its parent.\n\t *\n\t * @default bottom\n\t */\n\tplacement?: Placement;\n\t/**\n\t * _Note: this prop is deprecated. Please use the `placement` prop instead._\n\t *\n\t * Legacy way of specifying the tooltip's position relative to its parent.\n\t *\n\t * Specify y- and x-axis as a space-separated string. Supports `\"top\"`,\n\t * `\"bottom\"` y axis, and `\"left\"`, `\"center\"`, `\"right\"` x axis.\n\t *\n\t * @deprecated\n\t * @default bottom\n\t */\n\tposition?: PopoverProps[ 'position' ];\n\t/**\n\t * An option for adding accessible keyboard shortcuts.\n\t *\n\t * If shortcut is a string, it is expecting the display text. If shortcut is an\n\t * object, it will accept the properties of `display` (string) and `ariaLabel`\n\t * (string).\n\t */\n\tshortcut?: ShortcutProps[ 'shortcut' ];\n\t/**\n\t * The text shown in the tooltip when anchor element is focused or hovered.\n\t */\n\ttext?: string;\n};\n\nexport type TooltipInternalContext = {\n\tisNestedInTooltip: boolean;\n};\n"],"mappings":""}
|