@chayns-components/color-picker 5.0.0-beta.1000

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -0
  3. package/lib/cjs/api/color/get.js +33 -0
  4. package/lib/cjs/api/color/get.js.map +1 -0
  5. package/lib/cjs/api/color/put.js +37 -0
  6. package/lib/cjs/api/color/put.js.map +1 -0
  7. package/lib/cjs/components/ColorPickerProvider.js +96 -0
  8. package/lib/cjs/components/ColorPickerProvider.js.map +1 -0
  9. package/lib/cjs/components/color-picker/ColorPicker.js +43 -0
  10. package/lib/cjs/components/color-picker/ColorPicker.js.map +1 -0
  11. package/lib/cjs/components/color-picker/ColorPicker.styles.js +12 -0
  12. package/lib/cjs/components/color-picker/ColorPicker.styles.js.map +1 -0
  13. package/lib/cjs/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js +50 -0
  14. package/lib/cjs/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js.map +1 -0
  15. package/lib/cjs/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js +64 -0
  16. package/lib/cjs/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js.map +1 -0
  17. package/lib/cjs/components/color-picker-popup/ColorPickerPopup.js +32 -0
  18. package/lib/cjs/components/color-picker-popup/ColorPickerPopup.js.map +1 -0
  19. package/lib/cjs/components/color-picker-popup/ColorPickerPopup.styles.js +13 -0
  20. package/lib/cjs/components/color-picker-popup/ColorPickerPopup.styles.js.map +1 -0
  21. package/lib/cjs/components/color-picker-popup/color-area/ColorArea.js +246 -0
  22. package/lib/cjs/components/color-picker-popup/color-area/ColorArea.js.map +1 -0
  23. package/lib/cjs/components/color-picker-popup/color-area/ColorArea.styles.js +45 -0
  24. package/lib/cjs/components/color-picker-popup/color-area/ColorArea.styles.js.map +1 -0
  25. package/lib/cjs/components/color-picker-popup/more-options/MoreOptions.js +90 -0
  26. package/lib/cjs/components/color-picker-popup/more-options/MoreOptions.js.map +1 -0
  27. package/lib/cjs/components/color-picker-popup/more-options/MoreOptions.styles.js +35 -0
  28. package/lib/cjs/components/color-picker-popup/more-options/MoreOptions.styles.js.map +1 -0
  29. package/lib/cjs/components/color-picker-popup/preset-colors/PresetColors.js +148 -0
  30. package/lib/cjs/components/color-picker-popup/preset-colors/PresetColors.js.map +1 -0
  31. package/lib/cjs/components/color-picker-popup/preset-colors/PresetColors.styles.js +15 -0
  32. package/lib/cjs/components/color-picker-popup/preset-colors/PresetColors.styles.js.map +1 -0
  33. package/lib/cjs/components/color-picker-popup/preset-colors/preset-button/PresetButton.js +47 -0
  34. package/lib/cjs/components/color-picker-popup/preset-colors/preset-button/PresetButton.js.map +1 -0
  35. package/lib/cjs/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js +28 -0
  36. package/lib/cjs/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js.map +1 -0
  37. package/lib/cjs/components/color-picker-popup/preset-colors/preset-color/PresetColor.js +50 -0
  38. package/lib/cjs/components/color-picker-popup/preset-colors/preset-color/PresetColor.js.map +1 -0
  39. package/lib/cjs/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js +44 -0
  40. package/lib/cjs/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js.map +1 -0
  41. package/lib/cjs/components/color-picker-popup/sliders/Sliders.js +75 -0
  42. package/lib/cjs/components/color-picker-popup/sliders/Sliders.js.map +1 -0
  43. package/lib/cjs/components/color-picker-popup/sliders/Sliders.styles.js +20 -0
  44. package/lib/cjs/components/color-picker-popup/sliders/Sliders.styles.js.map +1 -0
  45. package/lib/cjs/components/color-picker-popup/sliders/color-preview/ColorPreview.js +22 -0
  46. package/lib/cjs/components/color-picker-popup/sliders/color-preview/ColorPreview.js.map +1 -0
  47. package/lib/cjs/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.js +46 -0
  48. package/lib/cjs/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.js.map +1 -0
  49. package/lib/cjs/components/hue-slider/HueSlider.js +135 -0
  50. package/lib/cjs/components/hue-slider/HueSlider.js.map +1 -0
  51. package/lib/cjs/components/hue-slider/HueSlider.styles.js +88 -0
  52. package/lib/cjs/components/hue-slider/HueSlider.styles.js.map +1 -0
  53. package/lib/cjs/components/transparency-slider/TransparencySlider.js +122 -0
  54. package/lib/cjs/components/transparency-slider/TransparencySlider.js.map +1 -0
  55. package/lib/cjs/components/transparency-slider/TransparencySlider.styles.js +123 -0
  56. package/lib/cjs/components/transparency-slider/TransparencySlider.styles.js.map +1 -0
  57. package/lib/cjs/constants/color.js +72 -0
  58. package/lib/cjs/constants/color.js.map +1 -0
  59. package/lib/cjs/index.js +48 -0
  60. package/lib/cjs/index.js.map +1 -0
  61. package/lib/cjs/types/colorPicker.js +2 -0
  62. package/lib/cjs/types/colorPicker.js.map +1 -0
  63. package/lib/cjs/utils/color.js +245 -0
  64. package/lib/cjs/utils/color.js.map +1 -0
  65. package/lib/esm/api/color/get.js +26 -0
  66. package/lib/esm/api/color/get.js.map +1 -0
  67. package/lib/esm/api/color/put.js +30 -0
  68. package/lib/esm/api/color/put.js.map +1 -0
  69. package/lib/esm/components/ColorPickerProvider.js +89 -0
  70. package/lib/esm/components/ColorPickerProvider.js.map +1 -0
  71. package/lib/esm/components/color-picker/ColorPicker.js +39 -0
  72. package/lib/esm/components/color-picker/ColorPicker.js.map +1 -0
  73. package/lib/esm/components/color-picker/ColorPicker.styles.js +5 -0
  74. package/lib/esm/components/color-picker/ColorPicker.styles.js.map +1 -0
  75. package/lib/esm/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js +42 -0
  76. package/lib/esm/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js.map +1 -0
  77. package/lib/esm/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js +69 -0
  78. package/lib/esm/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js.map +1 -0
  79. package/lib/esm/components/color-picker-popup/ColorPickerPopup.js +28 -0
  80. package/lib/esm/components/color-picker-popup/ColorPickerPopup.js.map +1 -0
  81. package/lib/esm/components/color-picker-popup/ColorPickerPopup.styles.js +6 -0
  82. package/lib/esm/components/color-picker-popup/ColorPickerPopup.styles.js.map +1 -0
  83. package/lib/esm/components/color-picker-popup/color-area/ColorArea.js +237 -0
  84. package/lib/esm/components/color-picker-popup/color-area/ColorArea.js.map +1 -0
  85. package/lib/esm/components/color-picker-popup/color-area/ColorArea.styles.js +38 -0
  86. package/lib/esm/components/color-picker-popup/color-area/ColorArea.styles.js.map +1 -0
  87. package/lib/esm/components/color-picker-popup/more-options/MoreOptions.js +82 -0
  88. package/lib/esm/components/color-picker-popup/more-options/MoreOptions.js.map +1 -0
  89. package/lib/esm/components/color-picker-popup/more-options/MoreOptions.styles.js +37 -0
  90. package/lib/esm/components/color-picker-popup/more-options/MoreOptions.styles.js.map +1 -0
  91. package/lib/esm/components/color-picker-popup/preset-colors/PresetColors.js +152 -0
  92. package/lib/esm/components/color-picker-popup/preset-colors/PresetColors.js.map +1 -0
  93. package/lib/esm/components/color-picker-popup/preset-colors/PresetColors.styles.js +8 -0
  94. package/lib/esm/components/color-picker-popup/preset-colors/PresetColors.styles.js.map +1 -0
  95. package/lib/esm/components/color-picker-popup/preset-colors/preset-button/PresetButton.js +40 -0
  96. package/lib/esm/components/color-picker-popup/preset-colors/preset-button/PresetButton.js.map +1 -0
  97. package/lib/esm/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js +27 -0
  98. package/lib/esm/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js.map +1 -0
  99. package/lib/esm/components/color-picker-popup/preset-colors/preset-color/PresetColor.js +43 -0
  100. package/lib/esm/components/color-picker-popup/preset-colors/preset-color/PresetColor.js.map +1 -0
  101. package/lib/esm/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js +43 -0
  102. package/lib/esm/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js.map +1 -0
  103. package/lib/esm/components/color-picker-popup/sliders/Sliders.js +67 -0
  104. package/lib/esm/components/color-picker-popup/sliders/Sliders.js.map +1 -0
  105. package/lib/esm/components/color-picker-popup/sliders/Sliders.styles.js +13 -0
  106. package/lib/esm/components/color-picker-popup/sliders/Sliders.styles.js.map +1 -0
  107. package/lib/esm/components/color-picker-popup/sliders/color-preview/ColorPreview.js +14 -0
  108. package/lib/esm/components/color-picker-popup/sliders/color-preview/ColorPreview.js.map +1 -0
  109. package/lib/esm/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.js +42 -0
  110. package/lib/esm/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.js.map +1 -0
  111. package/lib/esm/components/hue-slider/HueSlider.js +128 -0
  112. package/lib/esm/components/hue-slider/HueSlider.js.map +1 -0
  113. package/lib/esm/components/hue-slider/HueSlider.styles.js +84 -0
  114. package/lib/esm/components/hue-slider/HueSlider.styles.js.map +1 -0
  115. package/lib/esm/components/transparency-slider/TransparencySlider.js +115 -0
  116. package/lib/esm/components/transparency-slider/TransparencySlider.js.map +1 -0
  117. package/lib/esm/components/transparency-slider/TransparencySlider.styles.js +125 -0
  118. package/lib/esm/components/transparency-slider/TransparencySlider.styles.js.map +1 -0
  119. package/lib/esm/constants/color.js +66 -0
  120. package/lib/esm/constants/color.js.map +1 -0
  121. package/lib/esm/index.js +6 -0
  122. package/lib/esm/index.js.map +1 -0
  123. package/lib/esm/types/colorPicker.js +2 -0
  124. package/lib/esm/types/colorPicker.js.map +1 -0
  125. package/lib/esm/utils/color.js +229 -0
  126. package/lib/esm/utils/color.js.map +1 -0
  127. package/lib/types/api/color/get.d.ts +1 -0
  128. package/lib/types/api/color/put.d.ts +2 -0
  129. package/lib/types/components/ColorPickerProvider.d.ts +35 -0
  130. package/lib/types/components/color-picker/ColorPicker.d.ts +61 -0
  131. package/lib/types/components/color-picker/ColorPicker.styles.d.ts +1 -0
  132. package/lib/types/components/color-picker/color-picker-wrapper/ColorPickerWrapper.d.ts +20 -0
  133. package/lib/types/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.d.ts +18 -0
  134. package/lib/types/components/color-picker-popup/ColorPickerPopup.d.ts +16 -0
  135. package/lib/types/components/color-picker-popup/ColorPickerPopup.styles.d.ts +1 -0
  136. package/lib/types/components/color-picker-popup/color-area/ColorArea.d.ts +6 -0
  137. package/lib/types/components/color-picker-popup/color-area/ColorArea.styles.d.ts +267 -0
  138. package/lib/types/components/color-picker-popup/more-options/MoreOptions.d.ts +6 -0
  139. package/lib/types/components/color-picker-popup/more-options/MoreOptions.styles.d.ts +9 -0
  140. package/lib/types/components/color-picker-popup/preset-colors/PresetColors.d.ts +13 -0
  141. package/lib/types/components/color-picker-popup/preset-colors/PresetColors.styles.d.ts +1 -0
  142. package/lib/types/components/color-picker-popup/preset-colors/preset-button/PresetButton.d.ts +13 -0
  143. package/lib/types/components/color-picker-popup/preset-colors/preset-button/PresetButton.styles.d.ts +6 -0
  144. package/lib/types/components/color-picker-popup/preset-colors/preset-color/PresetColor.d.ts +10 -0
  145. package/lib/types/components/color-picker-popup/preset-colors/preset-color/PresetColor.styles.d.ts +12 -0
  146. package/lib/types/components/color-picker-popup/sliders/Sliders.d.ts +9 -0
  147. package/lib/types/components/color-picker-popup/sliders/Sliders.styles.d.ts +2 -0
  148. package/lib/types/components/color-picker-popup/sliders/color-preview/ColorPreview.d.ts +6 -0
  149. package/lib/types/components/color-picker-popup/sliders/color-preview/ColorPreview.styles.d.ts +10 -0
  150. package/lib/types/components/hue-slider/HueSlider.d.ts +25 -0
  151. package/lib/types/components/hue-slider/HueSlider.styles.d.ts +15 -0
  152. package/lib/types/components/transparency-slider/TransparencySlider.d.ts +24 -0
  153. package/lib/types/components/transparency-slider/TransparencySlider.styles.d.ts +24 -0
  154. package/lib/types/constants/color.d.ts +3 -0
  155. package/lib/types/index.d.ts +6 -0
  156. package/lib/types/types/colorPicker.d.ts +27 -0
  157. package/lib/types/utils/color.d.ts +32 -0
  158. package/package.json +86 -0
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.splitRgb = exports.rgbToHsv = exports.rgbToHex = exports.isValidRGBA = exports.isValidRGB = exports.hexToRgb = exports.getCoordinatesFromColor = exports.getColorFromCoordinates = exports.extractRgbValues = exports.extractHsl = exports.convertColorToHsl = void 0;
7
+ var _colors = require("@chayns/colors");
8
+ const getColorFromCoordinates = ({
9
+ coordinates,
10
+ canvas,
11
+ opacity,
12
+ scale
13
+ }) => {
14
+ var _canvas$current;
15
+ if (!canvas.current) {
16
+ return undefined;
17
+ }
18
+ const xCords = coordinates.x;
19
+ const yCords = coordinates.y;
20
+ const x = (xCords - 0.5) * scale.scaleX;
21
+ const y = (yCords - 0.5) * scale.scaleY;
22
+ const ctx = (_canvas$current = canvas.current) === null || _canvas$current === void 0 ? void 0 : _canvas$current.getContext('2d', {
23
+ willReadFrequently: true
24
+ });
25
+ const pixels = ctx === null || ctx === void 0 ? void 0 : ctx.getImageData(x, y, 1, 1).data;
26
+ if (!pixels) {
27
+ return undefined;
28
+ }
29
+
30
+ // If transparency
31
+ if (pixels[0] === 0 && pixels[1] === 0 && pixels[2] === 0 && pixels[3] === 0) {
32
+ return 'transparent';
33
+ }
34
+ return `rgba(${pixels[0] ?? 0}, ${pixels[1] ?? 0}, ${pixels[2] ?? 0}, ${opacity})`;
35
+ };
36
+ exports.getColorFromCoordinates = getColorFromCoordinates;
37
+ const getCoordinatesFromColor = ({
38
+ canvas,
39
+ color,
40
+ tolerance = 0
41
+ }) => {
42
+ var _canvas$current2, _canvas$current3, _canvas$current4;
43
+ const ctx = (_canvas$current2 = canvas.current) === null || _canvas$current2 === void 0 ? void 0 : _canvas$current2.getContext('2d', {
44
+ willReadFrequently: true
45
+ });
46
+ if (!ctx) {
47
+ return null;
48
+ }
49
+ const height = ((_canvas$current3 = canvas.current) === null || _canvas$current3 === void 0 ? void 0 : _canvas$current3.height) ?? 150;
50
+ const width = ((_canvas$current4 = canvas.current) === null || _canvas$current4 === void 0 ? void 0 : _canvas$current4.width) ?? 300;
51
+ const imageData = ctx.getImageData(0, 0, width, height);
52
+ const pixels = imageData.data;
53
+ const rgb = splitRgb(color);
54
+ if (!rgb) {
55
+ return null;
56
+ }
57
+ const {
58
+ r: targetR,
59
+ g: targetG,
60
+ b: targetB
61
+ } = rgb;
62
+ for (let y = 0; y < height; y++) {
63
+ for (let x = 0; x < width; x++) {
64
+ const index = (y * width + x) * 4;
65
+ const r = pixels[index] ?? 0;
66
+ const g = pixels[index + 1] ?? 0;
67
+ const b = pixels[index + 2] ?? 0;
68
+ if (Math.abs(targetR - r) <= tolerance && Math.abs(targetG - g) <= tolerance && Math.abs(targetB - b) <= tolerance) {
69
+ return {
70
+ x,
71
+ y
72
+ };
73
+ }
74
+ }
75
+ }
76
+ return null;
77
+ };
78
+ exports.getCoordinatesFromColor = getCoordinatesFromColor;
79
+ const isValidRGBA = rgbaString => {
80
+ if (rgbaString === '') {
81
+ return false;
82
+ }
83
+ const rgbaRegex = /^rgba\(\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*((0?\.\d+)|(1|0))\s*\)$/;
84
+ if (!rgbaRegex.test(rgbaString)) {
85
+ return false;
86
+ }
87
+ const matches = rgbaString.match(rgbaRegex);
88
+ if (!matches) {
89
+ return false;
90
+ }
91
+ const red = parseInt(matches[1] ?? '', 10);
92
+ const green = parseInt(matches[2] ?? '', 10);
93
+ const blue = parseInt(matches[3] ?? '', 10);
94
+ const alpha = parseFloat(matches[4] ?? '');
95
+ return !(red < 0 || red > 255 || green < 0 || green > 255 || blue < 0 || blue > 255 || alpha < 0 || alpha > 1);
96
+ };
97
+ exports.isValidRGBA = isValidRGBA;
98
+ const isValidRGB = rgbString => {
99
+ if (rgbString === '') {
100
+ return false;
101
+ }
102
+ const rgbRegex = /^rgb\(\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\s*\)$/;
103
+ if (!rgbRegex.test(rgbString)) {
104
+ return false;
105
+ }
106
+ const matches = rgbString.match(rgbRegex);
107
+ if (!matches) {
108
+ return false;
109
+ }
110
+ const red = parseInt(matches[1] ?? '', 10);
111
+ const green = parseInt(matches[2] ?? '', 10);
112
+ const blue = parseInt(matches[3] ?? '', 10);
113
+ return red >= 0 && red <= 255 && green >= 0 && green <= 255 && blue >= 0 && blue <= 255;
114
+ };
115
+ exports.isValidRGB = isValidRGB;
116
+ const convertColorToHsl = color => {
117
+ const hexRegex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
118
+ const rgbRegex = /^rgb(a)?\(\s*((25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\s*,\s*){2}(25[0-5]|2[0-4]\d|1\d{2}|\d{1,2})\s*(,\s*\d+(\.\d+)?)?\)$/i;
119
+ const hslRegex = /^hsla?\(\s*((360|3[0-5]\d|[12]\d{2}|[1-9]\d|\d)\s*,\s*){2}(360|3[0-5]\d|[12]\d{2}|[1-9]\d|\d)\s*(,\s*\d+(\.\d+)?)?\)$/i;
120
+ let rgba;
121
+ let hsl;
122
+ const newColor = color.replaceAll('%', '');
123
+ switch (true) {
124
+ case hexRegex.test(newColor):
125
+ hsl = (0, _colors.hexToHsl)(color);
126
+ if (!hsl) {
127
+ return undefined;
128
+ }
129
+ return `hsl(${Math.floor(hsl.h)},100%,100%)`;
130
+ case rgbRegex.test(newColor):
131
+ rgba = color.match(/[\d.]+/g);
132
+ if (!rgba) {
133
+ return undefined;
134
+ }
135
+ hsl = (0, _colors.rgb255ToHsl)({
136
+ r: Number(rgba[0]),
137
+ g: Number(rgba[1]),
138
+ b: Number(rgba[2])
139
+ });
140
+ if (!hsl) {
141
+ return undefined;
142
+ }
143
+ return `hsl(${Math.floor(hsl.h)},100%,100%)`;
144
+ case hslRegex.test(newColor):
145
+ return color;
146
+ default:
147
+ return undefined;
148
+ }
149
+ };
150
+ exports.convertColorToHsl = convertColorToHsl;
151
+ const rgbToHsv = color => (0, _colors.rgb255ToHsv)(extractRgbValues(color ?? ''));
152
+ exports.rgbToHsv = rgbToHsv;
153
+ const extractHsl = hsl => {
154
+ const match = hsl.match(/hsl\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)%\s*,\s*(\d+(?:\.\d+)?)%\s*\)/i);
155
+ if (!match) {
156
+ return null;
157
+ }
158
+ const h = parseFloat(match[1] ?? '');
159
+ const s = parseFloat(match[2] ?? '') / 100;
160
+ const l = parseFloat(match[3] ?? '') / 100;
161
+ return {
162
+ h,
163
+ s,
164
+ l
165
+ };
166
+ };
167
+ exports.extractHsl = extractHsl;
168
+ const splitRgb = color => {
169
+ const rgba = color === null || color === void 0 ? void 0 : color.match(/[\d.]+/g);
170
+ if (!rgba) {
171
+ return null;
172
+ }
173
+ return {
174
+ r: Number(rgba[0]),
175
+ g: Number(rgba[1]),
176
+ b: Number(rgba[2]),
177
+ a: Number(rgba[3])
178
+ };
179
+ };
180
+ exports.splitRgb = splitRgb;
181
+ const extractRgbValues = rgbString => {
182
+ const rgbaRegex = /rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)/;
183
+ const match = rgbString.match(rgbaRegex);
184
+ if (match) {
185
+ const r = parseInt(match[1] ?? '', 10);
186
+ const g = parseInt(match[2] ?? '', 10);
187
+ const b = parseInt(match[3] ?? '', 10);
188
+ const a = parseFloat(match[4] ?? '');
189
+ return {
190
+ r,
191
+ g,
192
+ b,
193
+ a
194
+ };
195
+ }
196
+ return {
197
+ r: 255,
198
+ g: 255,
199
+ b: 255,
200
+ a: 1
201
+ };
202
+ };
203
+ exports.extractRgbValues = extractRgbValues;
204
+ const hexToRgb = hex => {
205
+ let r;
206
+ let g;
207
+ let b;
208
+ let a;
209
+ const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i.exec(hex);
210
+ if (result) {
211
+ r = parseInt(result[1] ?? '0', 16);
212
+ g = parseInt(result[2] ?? '0', 16);
213
+ b = parseInt(result[3] ?? '0', 16);
214
+ a = result[4] ? parseInt(result[4], 16) / 100 : 1;
215
+ return {
216
+ r,
217
+ g,
218
+ b,
219
+ a
220
+ };
221
+ }
222
+ return {
223
+ r: 255,
224
+ g: 255,
225
+ b: 255,
226
+ a: 1
227
+ };
228
+ };
229
+ exports.hexToRgb = hexToRgb;
230
+ const rgbToHex = ({
231
+ r,
232
+ g,
233
+ b,
234
+ a = 1
235
+ }) => {
236
+ const clamp = value => Math.max(0, Math.min(255, Math.round(value)));
237
+ const alpha = Math.max(0, Math.min(1, a));
238
+ const hex = x => {
239
+ const hexValue = clamp(x).toString(16);
240
+ return hexValue.length === 1 ? `0${hexValue}` : hexValue;
241
+ };
242
+ return `#${hex(r)}${hex(g)}${hex(b)}${alpha <= 1 ? hex(alpha * 100) : ''}`;
243
+ };
244
+ exports.rgbToHex = rgbToHex;
245
+ //# sourceMappingURL=color.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.js","names":["_colors","require","getColorFromCoordinates","coordinates","canvas","opacity","scale","_canvas$current","current","undefined","xCords","x","yCords","y","scaleX","scaleY","ctx","getContext","willReadFrequently","pixels","getImageData","data","exports","getCoordinatesFromColor","color","tolerance","_canvas$current2","_canvas$current3","_canvas$current4","height","width","imageData","rgb","splitRgb","r","targetR","g","targetG","b","targetB","index","Math","abs","isValidRGBA","rgbaString","rgbaRegex","test","matches","match","red","parseInt","green","blue","alpha","parseFloat","isValidRGB","rgbString","rgbRegex","convertColorToHsl","hexRegex","hslRegex","rgba","hsl","newColor","replaceAll","hexToHsl","floor","h","rgb255ToHsl","Number","rgbToHsv","rgb255ToHsv","extractRgbValues","extractHsl","s","l","a","hexToRgb","hex","result","exec","rgbToHex","clamp","value","max","min","round","hexValue","toString","length"],"sources":["../../../src/utils/color.ts"],"sourcesContent":["import type { CSSProperties, RefObject } from 'react';\n\nimport { hexToHsl, rgb255ToHsl, rgb255ToHsv } from '@chayns/colors';\nimport type { HSL, HSLA } from '@chayns/colors/lib/types/hsl';\nimport type { Coordinates, RGBA, Scale } from '../types/colorPicker';\n\ninterface GetColorFromCoordinatesOptions {\n coordinates: Coordinates;\n canvas: RefObject<HTMLCanvasElement>;\n opacity: number;\n scale: Scale;\n}\n\nexport const getColorFromCoordinates = ({\n coordinates,\n canvas,\n opacity,\n scale,\n}: GetColorFromCoordinatesOptions) => {\n if (!canvas.current) {\n return undefined;\n }\n\n const xCords = coordinates.x;\n const yCords = coordinates.y;\n\n const x = (xCords - 0.5) * scale.scaleX;\n const y = (yCords - 0.5) * scale.scaleY;\n\n const ctx = canvas.current?.getContext('2d', { willReadFrequently: true });\n const pixels = ctx?.getImageData(x, y, 1, 1).data;\n\n if (!pixels) {\n return undefined;\n }\n\n // If transparency\n if (pixels[0] === 0 && pixels[1] === 0 && pixels[2] === 0 && pixels[3] === 0) {\n return 'transparent';\n }\n\n return `rgba(${pixels[0] ?? 0}, ${pixels[1] ?? 0}, ${pixels[2] ?? 0}, ${opacity})`;\n};\n\ninterface GetCoordinatesFromColorOptions {\n color: CSSProperties['color'];\n canvas: RefObject<HTMLCanvasElement>;\n tolerance?: number;\n}\n\nexport const getCoordinatesFromColor = ({\n canvas,\n color,\n tolerance = 0,\n}: GetCoordinatesFromColorOptions) => {\n const ctx = canvas.current?.getContext('2d', { willReadFrequently: true });\n\n if (!ctx) {\n return null;\n }\n\n const height = canvas.current?.height ?? 150;\n const width = canvas.current?.width ?? 300;\n\n const imageData = ctx.getImageData(0, 0, width, height);\n const pixels = imageData.data;\n\n const rgb = splitRgb(color);\n\n if (!rgb) {\n return null;\n }\n\n const { r: targetR, g: targetG, b: targetB } = rgb;\n\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const index = (y * width + x) * 4;\n const r = pixels[index] ?? 0;\n const g = pixels[index + 1] ?? 0;\n const b = pixels[index + 2] ?? 0;\n\n if (\n Math.abs(targetR - r) <= tolerance &&\n Math.abs(targetG - g) <= tolerance &&\n Math.abs(targetB - b) <= tolerance\n ) {\n return { x, y };\n }\n }\n }\n\n return null;\n};\n\nexport const isValidRGBA = (rgbaString: string): boolean => {\n if (rgbaString === '') {\n return false;\n }\n\n const rgbaRegex = /^rgba\\(\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*((0?\\.\\d+)|(1|0))\\s*\\)$/;\n if (!rgbaRegex.test(rgbaString)) {\n return false;\n }\n\n const matches = rgbaString.match(rgbaRegex);\n if (!matches) {\n return false;\n }\n\n const red = parseInt(matches[1] ?? '', 10);\n const green = parseInt(matches[2] ?? '', 10);\n const blue = parseInt(matches[3] ?? '', 10);\n const alpha = parseFloat(matches[4] ?? '');\n\n return !(\n red < 0 ||\n red > 255 ||\n green < 0 ||\n green > 255 ||\n blue < 0 ||\n blue > 255 ||\n alpha < 0 ||\n alpha > 1\n );\n};\n\nexport const isValidRGB = (rgbString: string): boolean => {\n if (rgbString === '') {\n return false;\n }\n\n const rgbRegex = /^rgb\\(\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\s*\\)$/;\n if (!rgbRegex.test(rgbString)) {\n return false;\n }\n\n const matches = rgbString.match(rgbRegex);\n if (!matches) {\n return false;\n }\n\n const red = parseInt(matches[1] ?? '', 10);\n const green = parseInt(matches[2] ?? '', 10);\n const blue = parseInt(matches[3] ?? '', 10);\n\n return red >= 0 && red <= 255 && green >= 0 && green <= 255 && blue >= 0 && blue <= 255;\n};\n\nexport const convertColorToHsl = (color: string) => {\n const hexRegex = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;\n const rgbRegex =\n /^rgb(a)?\\(\\s*((25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\s*,\\s*){2}(25[0-5]|2[0-4]\\d|1\\d{2}|\\d{1,2})\\s*(,\\s*\\d+(\\.\\d+)?)?\\)$/i;\n const hslRegex =\n /^hsla?\\(\\s*((360|3[0-5]\\d|[12]\\d{2}|[1-9]\\d|\\d)\\s*,\\s*){2}(360|3[0-5]\\d|[12]\\d{2}|[1-9]\\d|\\d)\\s*(,\\s*\\d+(\\.\\d+)?)?\\)$/i;\n\n let rgba: string[] | null;\n let hsl: HSL | HSLA | null;\n\n const newColor = color.replaceAll('%', '');\n\n switch (true) {\n case hexRegex.test(newColor):\n hsl = hexToHsl(color);\n\n if (!hsl) {\n return undefined;\n }\n\n return `hsl(${Math.floor(hsl.h)},100%,100%)`;\n case rgbRegex.test(newColor):\n rgba = color.match(/[\\d.]+/g);\n\n if (!rgba) {\n return undefined;\n }\n\n hsl = rgb255ToHsl({\n r: Number(rgba[0]),\n g: Number(rgba[1]),\n b: Number(rgba[2]),\n });\n\n if (!hsl) {\n return undefined;\n }\n\n return `hsl(${Math.floor(hsl.h)},100%,100%)`;\n case hslRegex.test(newColor):\n return color;\n default:\n return undefined;\n }\n};\n\nexport const rgbToHsv = (color: CSSProperties['color']) =>\n rgb255ToHsv(extractRgbValues(color ?? ''));\n\nexport const extractHsl = (hsl: string) => {\n const match = hsl.match(\n /hsl\\(\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\d+(?:\\.\\d+)?)%\\s*\\)/i,\n );\n\n if (!match) {\n return null;\n }\n\n const h = parseFloat(match[1] ?? '');\n const s = parseFloat(match[2] ?? '') / 100;\n const l = parseFloat(match[3] ?? '') / 100;\n\n return { h, s, l };\n};\n\nexport const splitRgb = (color: CSSProperties['color']): null | RGBA => {\n const rgba = color?.match(/[\\d.]+/g);\n\n if (!rgba) {\n return null;\n }\n\n return { r: Number(rgba[0]), g: Number(rgba[1]), b: Number(rgba[2]), a: Number(rgba[3]) };\n};\n\nexport const extractRgbValues = (rgbString: string): RGBA => {\n const rgbaRegex = /rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d.]+)\\s*\\)/;\n const match = rgbString.match(rgbaRegex);\n\n if (match) {\n const r = parseInt(match[1] ?? '', 10);\n const g = parseInt(match[2] ?? '', 10);\n const b = parseInt(match[3] ?? '', 10);\n const a = parseFloat(match[4] ?? '');\n\n return { r, g, b, a };\n }\n\n return {\n r: 255,\n g: 255,\n b: 255,\n a: 1,\n };\n};\n\nexport const hexToRgb = (hex: string): RGBA => {\n let r: number;\n let g: number;\n let b: number;\n let a: number;\n\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i.exec(hex);\n\n if (result) {\n r = parseInt(result[1] ?? '0', 16);\n g = parseInt(result[2] ?? '0', 16);\n b = parseInt(result[3] ?? '0', 16);\n a = result[4] ? parseInt(result[4], 16) / 100 : 1;\n\n return { r, g, b, a };\n }\n\n return {\n r: 255,\n g: 255,\n b: 255,\n a: 1,\n };\n};\n\nexport const rgbToHex = ({ r, g, b, a = 1 }: RGBA): string => {\n const clamp = (value: number) => Math.max(0, Math.min(255, Math.round(value)));\n const alpha = Math.max(0, Math.min(1, a));\n const hex = (x: number) => {\n const hexValue = clamp(x).toString(16);\n return hexValue.length === 1 ? `0${hexValue}` : hexValue;\n };\n return `#${hex(r)}${hex(g)}${hex(b)}${alpha <= 1 ? hex(alpha * 100) : ''}`;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import { getAccessToken, getSite } from 'chayns-api';
2
+ import { ITEM_STORAGE_URL } from '../../constants/color';
3
+ export const putSiteColors = async colorsArray => {
4
+ const {
5
+ accessToken
6
+ } = await getAccessToken();
7
+ const {
8
+ id
9
+ } = getSite();
10
+ if (!accessToken) {
11
+ return false;
12
+ }
13
+ const result = await fetch(`${ITEM_STORAGE_URL}/schemes/0/sites/${id}/keys/custom-colors
14
+ `, {
15
+ method: 'PUT',
16
+ headers: {
17
+ 'Content-Type': 'application/json',
18
+ Authorization: `Bearer ${accessToken}`
19
+ },
20
+ body: JSON.stringify({
21
+ value: colorsArray
22
+ })
23
+ });
24
+ return result.status === 201;
25
+ };
26
+ //# sourceMappingURL=get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.js","names":["getAccessToken","getSite","ITEM_STORAGE_URL","putSiteColors","colorsArray","accessToken","id","result","fetch","method","headers","Authorization","body","JSON","stringify","value","status"],"sources":["../../../../src/api/color/get.ts"],"sourcesContent":["import { getAccessToken, getSite } from 'chayns-api';\nimport { ITEM_STORAGE_URL } from '../../constants/color';\n\nexport const putSiteColors = async (colorsArray: string[]): Promise<boolean> => {\n const { accessToken } = await getAccessToken();\n const { id } = getSite();\n\n if (!accessToken) {\n return false;\n }\n\n const result = await fetch(\n `${ITEM_STORAGE_URL}/schemes/0/sites/${id}/keys/custom-colors\n`,\n {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${accessToken}`,\n },\n body: JSON.stringify({ value: colorsArray }),\n },\n );\n\n return result.status === 201;\n};\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,OAAO,QAAQ,YAAY;AACpD,SAASC,gBAAgB,QAAQ,uBAAuB;AAExD,OAAO,MAAMC,aAAa,GAAG,MAAOC,WAAqB,IAAuB;EAC5E,MAAM;IAAEC;EAAY,CAAC,GAAG,MAAML,cAAc,CAAC,CAAC;EAC9C,MAAM;IAAEM;EAAG,CAAC,GAAGL,OAAO,CAAC,CAAC;EAExB,IAAI,CAACI,WAAW,EAAE;IACd,OAAO,KAAK;EAChB;EAEA,MAAME,MAAM,GAAG,MAAMC,KAAK,CACtB,GAAGN,gBAAgB,oBAAoBI,EAAE;AACjD,CAAC,EACO;IACIG,MAAM,EAAE,KAAK;IACbC,OAAO,EAAE;MACL,cAAc,EAAE,kBAAkB;MAClCC,aAAa,EAAE,UAAUN,WAAW;IACxC,CAAC;IACDO,IAAI,EAAEC,IAAI,CAACC,SAAS,CAAC;MAAEC,KAAK,EAAEX;IAAY,CAAC;EAC/C,CACJ,CAAC;EAED,OAAOG,MAAM,CAACS,MAAM,KAAK,GAAG;AAChC,CAAC","ignoreList":[]}
@@ -0,0 +1,30 @@
1
+ import { getAccessToken, getSite } from 'chayns-api';
2
+ import { ITEM_STORAGE_URL } from '../../constants/color';
3
+ export const getSiteColors = async () => {
4
+ const {
5
+ accessToken
6
+ } = await getAccessToken();
7
+ const {
8
+ id
9
+ } = getSite();
10
+ if (!accessToken) {
11
+ return {
12
+ value: []
13
+ };
14
+ }
15
+ const result = await fetch(`${ITEM_STORAGE_URL}/schemes/0/sites/${id}/keys/custom-colors
16
+ `, {
17
+ method: 'GET',
18
+ headers: {
19
+ 'Content-Type': 'application/json',
20
+ Authorization: `Bearer ${accessToken}`
21
+ }
22
+ });
23
+ if (result.status === 200) {
24
+ return await result.json();
25
+ }
26
+ return {
27
+ value: []
28
+ };
29
+ };
30
+ //# sourceMappingURL=put.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"put.js","names":["getAccessToken","getSite","ITEM_STORAGE_URL","getSiteColors","accessToken","id","value","result","fetch","method","headers","Authorization","status","json"],"sources":["../../../../src/api/color/put.ts"],"sourcesContent":["import { getAccessToken, getSite } from 'chayns-api';\nimport { ITEM_STORAGE_URL } from '../../constants/color';\nimport { ItemStorageResult } from '../../types/colorPicker';\n\nexport const getSiteColors = async (): Promise<ItemStorageResult> => {\n const { accessToken } = await getAccessToken();\n const { id } = getSite();\n\n if (!accessToken) {\n return { value: [] };\n }\n\n const result = await fetch(\n `${ITEM_STORAGE_URL}/schemes/0/sites/${id}/keys/custom-colors\n`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${accessToken}`,\n },\n },\n );\n\n if (result.status === 200) {\n return (await result.json()) as unknown as ItemStorageResult;\n }\n\n return { value: [] };\n};\n"],"mappings":"AAAA,SAASA,cAAc,EAAEC,OAAO,QAAQ,YAAY;AACpD,SAASC,gBAAgB,QAAQ,uBAAuB;AAGxD,OAAO,MAAMC,aAAa,GAAG,MAAAA,CAAA,KAAwC;EACjE,MAAM;IAAEC;EAAY,CAAC,GAAG,MAAMJ,cAAc,CAAC,CAAC;EAC9C,MAAM;IAAEK;EAAG,CAAC,GAAGJ,OAAO,CAAC,CAAC;EAExB,IAAI,CAACG,WAAW,EAAE;IACd,OAAO;MAAEE,KAAK,EAAE;IAAG,CAAC;EACxB;EAEA,MAAMC,MAAM,GAAG,MAAMC,KAAK,CACtB,GAAGN,gBAAgB,oBAAoBG,EAAE;AACjD,CAAC,EACO;IACII,MAAM,EAAE,KAAK;IACbC,OAAO,EAAE;MACL,cAAc,EAAE,kBAAkB;MAClCC,aAAa,EAAE,UAAUP,WAAW;IACxC;EACJ,CACJ,CAAC;EAED,IAAIG,MAAM,CAACK,MAAM,KAAK,GAAG,EAAE;IACvB,OAAQ,MAAML,MAAM,CAACM,IAAI,CAAC,CAAC;EAC/B;EAEA,OAAO;IAAEP,KAAK,EAAE;EAAG,CAAC;AACxB,CAAC","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
2
+ import { hexToRgb, isValidRGBA } from '../utils/color';
3
+ export const ColorPickerContext = /*#__PURE__*/React.createContext({
4
+ selectedColor: undefined,
5
+ updateSelectedColor: undefined,
6
+ hueColor: undefined,
7
+ updateHueColor: undefined,
8
+ isPresetColor: undefined,
9
+ updateIsPresetColor: undefined,
10
+ shouldGetCoordinates: undefined,
11
+ updateShouldGetCoordinates: undefined,
12
+ shouldCallOnSelect: undefined,
13
+ updateShouldCallOnSelect: undefined,
14
+ canGetColorFromArea: undefined,
15
+ updateCanGetColorFromArea: undefined
16
+ });
17
+ ColorPickerContext.displayName = 'ColorPickerContext';
18
+ const ColorPickerProvider = _ref => {
19
+ let {
20
+ children,
21
+ selectedColor,
22
+ onSelect
23
+ } = _ref;
24
+ const [internalSelectedColor, setInternalSelectedColor] = useState();
25
+ const [internalHueColor, setInternalHueColor] = useState();
26
+ const [internalIsPresetColor, setInternalIsPresetColor] = useState(false);
27
+ const [internalShouldGetCoordinates, setInternalShouldGetCoordinates] = useState(true);
28
+ const [internalShouldCallOnSelect, setInternalShouldCallOnSelect] = useState(false);
29
+ const [internalCanGetColorFromArea, setInternalCanGetColorFromArea] = useState(false);
30
+ const updateSelectedColor = useCallback(color => {
31
+ setInternalSelectedColor(color);
32
+ }, []);
33
+ const updateHueColor = useCallback(color => {
34
+ setInternalHueColor(color);
35
+ }, []);
36
+ const updateIsPresetColor = useCallback(isPresetColor => {
37
+ setInternalIsPresetColor(isPresetColor);
38
+ }, []);
39
+ const updateShouldGetCoordinates = useCallback(shouldGetCoordinates => {
40
+ setInternalShouldGetCoordinates(shouldGetCoordinates);
41
+ }, []);
42
+ const updateShouldCallOnSelect = useCallback(shouldCallOnSelect => {
43
+ setInternalShouldCallOnSelect(shouldCallOnSelect);
44
+ }, []);
45
+ const updateCanGetColorFromArea = useCallback(canGetColorFromArea => {
46
+ setInternalCanGetColorFromArea(canGetColorFromArea);
47
+ }, []);
48
+ useEffect(() => {
49
+ let newColor = selectedColor;
50
+ if (newColor && !isValidRGBA(newColor)) {
51
+ const {
52
+ r,
53
+ g,
54
+ b,
55
+ a
56
+ } = hexToRgb(newColor);
57
+ newColor = `rgba(${r},${g},${b},${a})`;
58
+ }
59
+ setInternalSelectedColor(newColor);
60
+ setInternalHueColor(newColor);
61
+ setInternalIsPresetColor(true);
62
+ }, [selectedColor]);
63
+ useEffect(() => {
64
+ if (typeof onSelect === 'function' && internalShouldCallOnSelect && internalSelectedColor) {
65
+ onSelect(internalSelectedColor);
66
+ setInternalShouldCallOnSelect(false);
67
+ }
68
+ }, [internalSelectedColor, internalShouldCallOnSelect, onSelect]);
69
+ const providerValue = useMemo(() => ({
70
+ selectedColor: internalSelectedColor,
71
+ updateSelectedColor,
72
+ hueColor: internalHueColor,
73
+ updateHueColor,
74
+ isPresetColor: internalIsPresetColor,
75
+ updateIsPresetColor,
76
+ shouldGetCoordinates: internalShouldGetCoordinates,
77
+ updateShouldGetCoordinates,
78
+ shouldCallOnSelect: internalShouldCallOnSelect,
79
+ updateShouldCallOnSelect,
80
+ canGetColorFromArea: internalCanGetColorFromArea,
81
+ updateCanGetColorFromArea
82
+ }), [internalCanGetColorFromArea, internalHueColor, internalIsPresetColor, internalSelectedColor, internalShouldCallOnSelect, internalShouldGetCoordinates, updateCanGetColorFromArea, updateHueColor, updateIsPresetColor, updateSelectedColor, updateShouldCallOnSelect, updateShouldGetCoordinates]);
83
+ return /*#__PURE__*/React.createElement(ColorPickerContext.Provider, {
84
+ value: providerValue
85
+ }, children);
86
+ };
87
+ ColorPickerProvider.displayName = 'ColorPickerProvider';
88
+ export default ColorPickerProvider;
89
+ //# sourceMappingURL=ColorPickerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerProvider.js","names":["React","useCallback","useEffect","useMemo","useState","hexToRgb","isValidRGBA","ColorPickerContext","createContext","selectedColor","undefined","updateSelectedColor","hueColor","updateHueColor","isPresetColor","updateIsPresetColor","shouldGetCoordinates","updateShouldGetCoordinates","shouldCallOnSelect","updateShouldCallOnSelect","canGetColorFromArea","updateCanGetColorFromArea","displayName","ColorPickerProvider","_ref","children","onSelect","internalSelectedColor","setInternalSelectedColor","internalHueColor","setInternalHueColor","internalIsPresetColor","setInternalIsPresetColor","internalShouldGetCoordinates","setInternalShouldGetCoordinates","internalShouldCallOnSelect","setInternalShouldCallOnSelect","internalCanGetColorFromArea","setInternalCanGetColorFromArea","color","newColor","r","g","b","a","providerValue","createElement","Provider","value"],"sources":["../../../src/components/ColorPickerProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState, type ReactNode } from 'react';\nimport { hexToRgb, isValidRGBA } from '../utils/color';\n\ninterface IColorPickerContext {\n selectedColor?: string;\n updateSelectedColor?: (color: string | undefined) => void;\n hueColor?: string;\n updateHueColor?: (color: string | undefined) => void;\n isPresetColor?: boolean;\n updateIsPresetColor?: (isPresetColor: boolean) => void;\n shouldGetCoordinates?: boolean;\n updateShouldGetCoordinates?: (shouldGetCoordinates: boolean) => void;\n shouldCallOnSelect?: boolean;\n updateShouldCallOnSelect?: (shouldCallOnSelect: boolean) => void;\n canGetColorFromArea?: boolean;\n updateCanGetColorFromArea?: (canGetColorFromArea: boolean) => void;\n}\n\nexport const ColorPickerContext = React.createContext<IColorPickerContext>({\n selectedColor: undefined,\n updateSelectedColor: undefined,\n hueColor: undefined,\n updateHueColor: undefined,\n isPresetColor: undefined,\n updateIsPresetColor: undefined,\n shouldGetCoordinates: undefined,\n updateShouldGetCoordinates: undefined,\n shouldCallOnSelect: undefined,\n updateShouldCallOnSelect: undefined,\n canGetColorFromArea: undefined,\n updateCanGetColorFromArea: undefined,\n});\n\nColorPickerContext.displayName = 'ColorPickerContext';\n\ninterface ColorPickerProviderProps {\n /**\n * The children of the provider.\n */\n children: ReactNode;\n /**\n * Function to be executed when a color is selected.\n */\n onSelect?: (color: string) => void;\n /**\n * The color that should be preselected.\n */\n selectedColor?: string;\n}\n\nconst ColorPickerProvider = ({ children, selectedColor, onSelect }: ColorPickerProviderProps) => {\n const [internalSelectedColor, setInternalSelectedColor] = useState<string>();\n const [internalHueColor, setInternalHueColor] = useState<string>();\n const [internalIsPresetColor, setInternalIsPresetColor] = useState<boolean>(false);\n const [internalShouldGetCoordinates, setInternalShouldGetCoordinates] = useState<boolean>(true);\n const [internalShouldCallOnSelect, setInternalShouldCallOnSelect] = useState<boolean>(false);\n const [internalCanGetColorFromArea, setInternalCanGetColorFromArea] = useState<boolean>(false);\n\n const updateSelectedColor = useCallback((color: string | undefined) => {\n setInternalSelectedColor(color);\n }, []);\n\n const updateHueColor = useCallback((color: string | undefined) => {\n setInternalHueColor(color);\n }, []);\n\n const updateIsPresetColor = useCallback((isPresetColor: boolean) => {\n setInternalIsPresetColor(isPresetColor);\n }, []);\n\n const updateShouldGetCoordinates = useCallback((shouldGetCoordinates: boolean) => {\n setInternalShouldGetCoordinates(shouldGetCoordinates);\n }, []);\n\n const updateShouldCallOnSelect = useCallback((shouldCallOnSelect: boolean) => {\n setInternalShouldCallOnSelect(shouldCallOnSelect);\n }, []);\n\n const updateCanGetColorFromArea = useCallback((canGetColorFromArea: boolean) => {\n setInternalCanGetColorFromArea(canGetColorFromArea);\n }, []);\n\n useEffect(() => {\n let newColor = selectedColor;\n\n if (newColor && !isValidRGBA(newColor)) {\n const { r, g, b, a } = hexToRgb(newColor);\n\n newColor = `rgba(${r},${g},${b},${a})`;\n }\n\n setInternalSelectedColor(newColor);\n setInternalHueColor(newColor);\n setInternalIsPresetColor(true);\n }, [selectedColor]);\n\n useEffect(() => {\n if (typeof onSelect === 'function' && internalShouldCallOnSelect && internalSelectedColor) {\n onSelect(internalSelectedColor);\n\n setInternalShouldCallOnSelect(false);\n }\n }, [internalSelectedColor, internalShouldCallOnSelect, onSelect]);\n\n const providerValue = useMemo<IColorPickerContext>(\n () => ({\n selectedColor: internalSelectedColor,\n updateSelectedColor,\n hueColor: internalHueColor,\n updateHueColor,\n isPresetColor: internalIsPresetColor,\n updateIsPresetColor,\n shouldGetCoordinates: internalShouldGetCoordinates,\n updateShouldGetCoordinates,\n shouldCallOnSelect: internalShouldCallOnSelect,\n updateShouldCallOnSelect,\n canGetColorFromArea: internalCanGetColorFromArea,\n updateCanGetColorFromArea,\n }),\n [\n internalCanGetColorFromArea,\n internalHueColor,\n internalIsPresetColor,\n internalSelectedColor,\n internalShouldCallOnSelect,\n internalShouldGetCoordinates,\n updateCanGetColorFromArea,\n updateHueColor,\n updateIsPresetColor,\n updateSelectedColor,\n updateShouldCallOnSelect,\n updateShouldGetCoordinates,\n ],\n );\n\n return (\n <ColorPickerContext.Provider value={providerValue}>{children}</ColorPickerContext.Provider>\n );\n};\n\nColorPickerProvider.displayName = 'ColorPickerProvider';\n\nexport default ColorPickerProvider;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAwB,OAAO;AACxF,SAASC,QAAQ,EAAEC,WAAW,QAAQ,gBAAgB;AAiBtD,OAAO,MAAMC,kBAAkB,gBAAGP,KAAK,CAACQ,aAAa,CAAsB;EACvEC,aAAa,EAAEC,SAAS;EACxBC,mBAAmB,EAAED,SAAS;EAC9BE,QAAQ,EAAEF,SAAS;EACnBG,cAAc,EAAEH,SAAS;EACzBI,aAAa,EAAEJ,SAAS;EACxBK,mBAAmB,EAAEL,SAAS;EAC9BM,oBAAoB,EAAEN,SAAS;EAC/BO,0BAA0B,EAAEP,SAAS;EACrCQ,kBAAkB,EAAER,SAAS;EAC7BS,wBAAwB,EAAET,SAAS;EACnCU,mBAAmB,EAAEV,SAAS;EAC9BW,yBAAyB,EAAEX;AAC/B,CAAC,CAAC;AAEFH,kBAAkB,CAACe,WAAW,GAAG,oBAAoB;AAiBrD,MAAMC,mBAAmB,GAAGC,IAAA,IAAqE;EAAA,IAApE;IAAEC,QAAQ;IAAEhB,aAAa;IAAEiB;EAAmC,CAAC,GAAAF,IAAA;EACxF,MAAM,CAACG,qBAAqB,EAAEC,wBAAwB,CAAC,GAAGxB,QAAQ,CAAS,CAAC;EAC5E,MAAM,CAACyB,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG1B,QAAQ,CAAS,CAAC;EAClE,MAAM,CAAC2B,qBAAqB,EAAEC,wBAAwB,CAAC,GAAG5B,QAAQ,CAAU,KAAK,CAAC;EAClF,MAAM,CAAC6B,4BAA4B,EAAEC,+BAA+B,CAAC,GAAG9B,QAAQ,CAAU,IAAI,CAAC;EAC/F,MAAM,CAAC+B,0BAA0B,EAAEC,6BAA6B,CAAC,GAAGhC,QAAQ,CAAU,KAAK,CAAC;EAC5F,MAAM,CAACiC,2BAA2B,EAAEC,8BAA8B,CAAC,GAAGlC,QAAQ,CAAU,KAAK,CAAC;EAE9F,MAAMO,mBAAmB,GAAGV,WAAW,CAAEsC,KAAyB,IAAK;IACnEX,wBAAwB,CAACW,KAAK,CAAC;EACnC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM1B,cAAc,GAAGZ,WAAW,CAAEsC,KAAyB,IAAK;IAC9DT,mBAAmB,CAACS,KAAK,CAAC;EAC9B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMxB,mBAAmB,GAAGd,WAAW,CAAEa,aAAsB,IAAK;IAChEkB,wBAAwB,CAAClB,aAAa,CAAC;EAC3C,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,0BAA0B,GAAGhB,WAAW,CAAEe,oBAA6B,IAAK;IAC9EkB,+BAA+B,CAAClB,oBAAoB,CAAC;EACzD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,wBAAwB,GAAGlB,WAAW,CAAEiB,kBAA2B,IAAK;IAC1EkB,6BAA6B,CAAClB,kBAAkB,CAAC;EACrD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMG,yBAAyB,GAAGpB,WAAW,CAAEmB,mBAA4B,IAAK;IAC5EkB,8BAA8B,CAAClB,mBAAmB,CAAC;EACvD,CAAC,EAAE,EAAE,CAAC;EAENlB,SAAS,CAAC,MAAM;IACZ,IAAIsC,QAAQ,GAAG/B,aAAa;IAE5B,IAAI+B,QAAQ,IAAI,CAAClC,WAAW,CAACkC,QAAQ,CAAC,EAAE;MACpC,MAAM;QAAEC,CAAC;QAAEC,CAAC;QAAEC,CAAC;QAAEC;MAAE,CAAC,GAAGvC,QAAQ,CAACmC,QAAQ,CAAC;MAEzCA,QAAQ,GAAG,QAAQC,CAAC,IAAIC,CAAC,IAAIC,CAAC,IAAIC,CAAC,GAAG;IAC1C;IAEAhB,wBAAwB,CAACY,QAAQ,CAAC;IAClCV,mBAAmB,CAACU,QAAQ,CAAC;IAC7BR,wBAAwB,CAAC,IAAI,CAAC;EAClC,CAAC,EAAE,CAACvB,aAAa,CAAC,CAAC;EAEnBP,SAAS,CAAC,MAAM;IACZ,IAAI,OAAOwB,QAAQ,KAAK,UAAU,IAAIS,0BAA0B,IAAIR,qBAAqB,EAAE;MACvFD,QAAQ,CAACC,qBAAqB,CAAC;MAE/BS,6BAA6B,CAAC,KAAK,CAAC;IACxC;EACJ,CAAC,EAAE,CAACT,qBAAqB,EAAEQ,0BAA0B,EAAET,QAAQ,CAAC,CAAC;EAEjE,MAAMmB,aAAa,GAAG1C,OAAO,CACzB,OAAO;IACHM,aAAa,EAAEkB,qBAAqB;IACpChB,mBAAmB;IACnBC,QAAQ,EAAEiB,gBAAgB;IAC1BhB,cAAc;IACdC,aAAa,EAAEiB,qBAAqB;IACpChB,mBAAmB;IACnBC,oBAAoB,EAAEiB,4BAA4B;IAClDhB,0BAA0B;IAC1BC,kBAAkB,EAAEiB,0BAA0B;IAC9ChB,wBAAwB;IACxBC,mBAAmB,EAAEiB,2BAA2B;IAChDhB;EACJ,CAAC,CAAC,EACF,CACIgB,2BAA2B,EAC3BR,gBAAgB,EAChBE,qBAAqB,EACrBJ,qBAAqB,EACrBQ,0BAA0B,EAC1BF,4BAA4B,EAC5BZ,yBAAyB,EACzBR,cAAc,EACdE,mBAAmB,EACnBJ,mBAAmB,EACnBQ,wBAAwB,EACxBF,0BAA0B,CAElC,CAAC;EAED,oBACIjB,KAAA,CAAA8C,aAAA,CAACvC,kBAAkB,CAACwC,QAAQ;IAACC,KAAK,EAAEH;EAAc,GAAEpB,QAAsC,CAAC;AAEnG,CAAC;AAEDF,mBAAmB,CAACD,WAAW,GAAG,qBAAqB;AAEvD,eAAeC,mBAAmB","ignoreList":[]}
@@ -0,0 +1,39 @@
1
+ import React from 'react';
2
+ import ColorPickerProvider from '../ColorPickerProvider';
3
+ import ColorPickerWrapper from './color-picker-wrapper/ColorPickerWrapper';
4
+ import { StyledColorPicker } from './ColorPicker.styles';
5
+ const ColorPicker = _ref => {
6
+ let {
7
+ children,
8
+ onPresetColorAdd,
9
+ onPresetColorRemove,
10
+ onSelect,
11
+ presetColors,
12
+ selectedColor = 'rgba(0, 94, 184, 1)',
13
+ shouldShowAsPopup = true,
14
+ shouldShowMoreOptions = false,
15
+ shouldShowPresetColors = false,
16
+ shouldShowPreviewColorString = true,
17
+ shouldShowRoundPreviewColor = true,
18
+ shouldShowTransparencySlider = false,
19
+ shouldUseSiteColors = false
20
+ } = _ref;
21
+ return /*#__PURE__*/React.createElement(ColorPickerProvider, {
22
+ selectedColor: selectedColor,
23
+ onSelect: onSelect
24
+ }, /*#__PURE__*/React.createElement(StyledColorPicker, null, /*#__PURE__*/React.createElement(ColorPickerWrapper, {
25
+ onPresetColorAdd: onPresetColorAdd,
26
+ onPresetColorRemove: onPresetColorRemove,
27
+ presetColors: presetColors,
28
+ shouldShowAsPopup: shouldShowAsPopup,
29
+ shouldShowMoreOptions: shouldShowMoreOptions,
30
+ shouldShowPresetColors: shouldShowPresetColors,
31
+ shouldShowPreviewColorString: shouldShowPreviewColorString,
32
+ shouldShowRoundPreviewColor: shouldShowRoundPreviewColor,
33
+ shouldShowTransparencySlider: shouldShowTransparencySlider,
34
+ shouldUseSiteColors: shouldUseSiteColors
35
+ }, children)));
36
+ };
37
+ ColorPicker.displayName = 'ColorPicker';
38
+ export default ColorPicker;
39
+ //# sourceMappingURL=ColorPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPicker.js","names":["React","ColorPickerProvider","ColorPickerWrapper","StyledColorPicker","ColorPicker","_ref","children","onPresetColorAdd","onPresetColorRemove","onSelect","presetColors","selectedColor","shouldShowAsPopup","shouldShowMoreOptions","shouldShowPresetColors","shouldShowPreviewColorString","shouldShowRoundPreviewColor","shouldShowTransparencySlider","shouldUseSiteColors","createElement","displayName"],"sources":["../../../../src/components/color-picker/ColorPicker.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport type { IPresetColor } from '../../types/colorPicker';\nimport ColorPickerProvider from '../ColorPickerProvider';\nimport ColorPickerWrapper from './color-picker-wrapper/ColorPickerWrapper';\nimport { StyledColorPicker } from './ColorPicker.styles';\n\ninterface ColorPickerProps {\n /**\n * The element that should be rendered to trigger the ColorPicker popup on click.\n */\n children?: ReactNode;\n /**\n * Function to be executed when a preset color is added.\n */\n onPresetColorAdd?: (presetColor: IPresetColor) => void;\n /**\n * Function to be executed when a preset color is removed.\n */\n onPresetColorRemove?: (presetColorId: IPresetColor['id']) => void;\n /**\n * Function to be executed when a color is selected.\n */\n onSelect?: (color: string) => void;\n /**\n * Colors the user can select from.\n */\n presetColors?: IPresetColor[];\n /**\n * The color that should be preselected.\n */\n selectedColor?: string;\n /**\n * Whether the ColorPicker should be displayed inside a popup.\n */\n shouldShowAsPopup?: boolean;\n /**\n * Whether the more options accordion should be displayed.\n */\n shouldShowMoreOptions?: boolean;\n /**\n * Whether the preset colors should be displayed.\n */\n shouldShowPresetColors?: boolean;\n /**\n * Whether the preview color should be displayed as text.\n */\n shouldShowPreviewColorString?: boolean;\n /**\n * Whether the preview color should be displayed round.\n */\n shouldShowRoundPreviewColor?: boolean;\n /**\n * Whether the transparency slider should be displayed.\n */\n shouldShowTransparencySlider?: boolean;\n /**\n * Whether presetColors should be got and uploaded to the site storage.\n */\n shouldUseSiteColors?: boolean;\n}\n\nconst ColorPicker = ({\n children,\n onPresetColorAdd,\n onPresetColorRemove,\n onSelect,\n presetColors,\n selectedColor = 'rgba(0, 94, 184, 1)',\n shouldShowAsPopup = true,\n shouldShowMoreOptions = false,\n shouldShowPresetColors = false,\n shouldShowPreviewColorString = true,\n shouldShowRoundPreviewColor = true,\n shouldShowTransparencySlider = false,\n shouldUseSiteColors = false,\n}: ColorPickerProps) => (\n <ColorPickerProvider selectedColor={selectedColor} onSelect={onSelect}>\n <StyledColorPicker>\n <ColorPickerWrapper\n onPresetColorAdd={onPresetColorAdd}\n onPresetColorRemove={onPresetColorRemove}\n presetColors={presetColors}\n shouldShowAsPopup={shouldShowAsPopup}\n shouldShowMoreOptions={shouldShowMoreOptions}\n shouldShowPresetColors={shouldShowPresetColors}\n shouldShowPreviewColorString={shouldShowPreviewColorString}\n shouldShowRoundPreviewColor={shouldShowRoundPreviewColor}\n shouldShowTransparencySlider={shouldShowTransparencySlider}\n shouldUseSiteColors={shouldUseSiteColors}\n >\n {children}\n </ColorPickerWrapper>\n </StyledColorPicker>\n </ColorPickerProvider>\n);\n\nColorPicker.displayName = 'ColorPicker';\n\nexport default ColorPicker;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAqB,OAAO;AAExC,OAAOC,mBAAmB,MAAM,wBAAwB;AACxD,OAAOC,kBAAkB,MAAM,2CAA2C;AAC1E,SAASC,iBAAiB,QAAQ,sBAAsB;AAyDxD,MAAMC,WAAW,GAAGC,IAAA;EAAA,IAAC;IACjBC,QAAQ;IACRC,gBAAgB;IAChBC,mBAAmB;IACnBC,QAAQ;IACRC,YAAY;IACZC,aAAa,GAAG,qBAAqB;IACrCC,iBAAiB,GAAG,IAAI;IACxBC,qBAAqB,GAAG,KAAK;IAC7BC,sBAAsB,GAAG,KAAK;IAC9BC,4BAA4B,GAAG,IAAI;IACnCC,2BAA2B,GAAG,IAAI;IAClCC,4BAA4B,GAAG,KAAK;IACpCC,mBAAmB,GAAG;EACR,CAAC,GAAAb,IAAA;EAAA,oBACfL,KAAA,CAAAmB,aAAA,CAAClB,mBAAmB;IAACU,aAAa,EAAEA,aAAc;IAACF,QAAQ,EAAEA;EAAS,gBAClET,KAAA,CAAAmB,aAAA,CAAChB,iBAAiB,qBACdH,KAAA,CAAAmB,aAAA,CAACjB,kBAAkB;IACfK,gBAAgB,EAAEA,gBAAiB;IACnCC,mBAAmB,EAAEA,mBAAoB;IACzCE,YAAY,EAAEA,YAAa;IAC3BE,iBAAiB,EAAEA,iBAAkB;IACrCC,qBAAqB,EAAEA,qBAAsB;IAC7CC,sBAAsB,EAAEA,sBAAuB;IAC/CC,4BAA4B,EAAEA,4BAA6B;IAC3DC,2BAA2B,EAAEA,2BAA4B;IACzDC,4BAA4B,EAAEA,4BAA6B;IAC3DC,mBAAmB,EAAEA;EAAoB,GAExCZ,QACe,CACL,CACF,CAAC;AAAA,CACzB;AAEDF,WAAW,CAACgB,WAAW,GAAG,aAAa;AAEvC,eAAehB,WAAW","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ import styled from 'styled-components';
2
+ export const StyledColorPicker = styled.div`
3
+ // width: 100%;
4
+ `;
5
+ //# sourceMappingURL=ColorPicker.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPicker.styles.js","names":["styled","StyledColorPicker","div"],"sources":["../../../../src/components/color-picker/ColorPicker.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledColorPicker = styled.div`\n // width: 100%;\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,iBAAiB,GAAGD,MAAM,CAACE,GAAG;AAC3C;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ import { Popup } from '@chayns-components/core';
2
+ import React, { useContext, useMemo } from 'react';
3
+ import ColorPickerPopup from '../../color-picker-popup/ColorPickerPopup';
4
+ import { ColorPickerContext } from '../../ColorPickerProvider';
5
+ import { StyledColorPickerWrapper, StyledColorPickerWrapperInfo, StyledColorPickerWrapperInfoColor, StyledColorPickerWrapperInfoColorWrapper, StyledColorPickerWrapperInfoText } from './ColorPickerWrapper.styles';
6
+ const ColorPickerWrapper = _ref => {
7
+ let {
8
+ children,
9
+ onPresetColorAdd,
10
+ onPresetColorRemove,
11
+ presetColors,
12
+ shouldShowAsPopup,
13
+ shouldShowMoreOptions,
14
+ shouldShowPresetColors,
15
+ shouldShowPreviewColorString,
16
+ shouldShowRoundPreviewColor,
17
+ shouldShowTransparencySlider,
18
+ shouldUseSiteColors
19
+ } = _ref;
20
+ const {
21
+ selectedColor
22
+ } = useContext(ColorPickerContext);
23
+ const content = useMemo(() => /*#__PURE__*/React.createElement(ColorPickerPopup, {
24
+ shouldShowPresetColors: shouldShowPresetColors,
25
+ onPresetColorRemove: onPresetColorRemove,
26
+ onPresetColorAdd: onPresetColorAdd,
27
+ presetColors: presetColors,
28
+ shouldUseSiteColors: shouldUseSiteColors,
29
+ shouldShowMoreOptions: shouldShowMoreOptions,
30
+ shouldShowTransparencySlider: shouldShowTransparencySlider
31
+ }), [onPresetColorAdd, onPresetColorRemove, presetColors, shouldShowMoreOptions, shouldShowPresetColors, shouldShowTransparencySlider, shouldUseSiteColors]);
32
+ return /*#__PURE__*/React.createElement(StyledColorPickerWrapper, null, shouldShowAsPopup ? /*#__PURE__*/React.createElement(Popup, {
33
+ content: content
34
+ }, children ?? /*#__PURE__*/React.createElement(StyledColorPickerWrapperInfo, null, /*#__PURE__*/React.createElement(StyledColorPickerWrapperInfoColorWrapper, {
35
+ $shouldShowRoundPreviewColor: shouldShowRoundPreviewColor
36
+ }, /*#__PURE__*/React.createElement(StyledColorPickerWrapperInfoColor, {
37
+ $color: selectedColor
38
+ })), shouldShowPreviewColorString && /*#__PURE__*/React.createElement(StyledColorPickerWrapperInfoText, null, selectedColor))) : content);
39
+ };
40
+ ColorPickerWrapper.displayName = 'ColorPickerWrapper';
41
+ export default ColorPickerWrapper;
42
+ //# sourceMappingURL=ColorPickerWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerWrapper.js","names":["Popup","React","useContext","useMemo","ColorPickerPopup","ColorPickerContext","StyledColorPickerWrapper","StyledColorPickerWrapperInfo","StyledColorPickerWrapperInfoColor","StyledColorPickerWrapperInfoColorWrapper","StyledColorPickerWrapperInfoText","ColorPickerWrapper","_ref","children","onPresetColorAdd","onPresetColorRemove","presetColors","shouldShowAsPopup","shouldShowMoreOptions","shouldShowPresetColors","shouldShowPreviewColorString","shouldShowRoundPreviewColor","shouldShowTransparencySlider","shouldUseSiteColors","selectedColor","content","createElement","$shouldShowRoundPreviewColor","$color","displayName"],"sources":["../../../../../src/components/color-picker/color-picker-wrapper/ColorPickerWrapper.tsx"],"sourcesContent":["import { Popup } from '@chayns-components/core';\nimport React, { ReactNode, useContext, useMemo } from 'react';\nimport type { IPresetColor } from '../../../types/colorPicker';\nimport ColorPickerPopup from '../../color-picker-popup/ColorPickerPopup';\nimport { ColorPickerContext } from '../../ColorPickerProvider';\nimport {\n StyledColorPickerWrapper,\n StyledColorPickerWrapperInfo,\n StyledColorPickerWrapperInfoColor,\n StyledColorPickerWrapperInfoColorWrapper,\n StyledColorPickerWrapperInfoText,\n} from './ColorPickerWrapper.styles';\n\ninterface ColorPickerWrapperProps {\n children?: ReactNode;\n onPresetColorAdd?: (presetColor: IPresetColor) => void;\n onPresetColorRemove?: (presetColorId: IPresetColor['id']) => void;\n presetColors?: IPresetColor[];\n shouldShowAsPopup: boolean;\n shouldShowMoreOptions: boolean;\n shouldShowPresetColors: boolean;\n shouldShowPreviewColorString: boolean;\n shouldShowRoundPreviewColor: boolean;\n shouldShowTransparencySlider: boolean;\n shouldUseSiteColors: boolean;\n}\n\nconst ColorPickerWrapper = ({\n children,\n onPresetColorAdd,\n onPresetColorRemove,\n presetColors,\n shouldShowAsPopup,\n shouldShowMoreOptions,\n shouldShowPresetColors,\n shouldShowPreviewColorString,\n shouldShowRoundPreviewColor,\n shouldShowTransparencySlider,\n shouldUseSiteColors,\n}: ColorPickerWrapperProps) => {\n const { selectedColor } = useContext(ColorPickerContext);\n\n const content = useMemo(\n () => (\n <ColorPickerPopup\n shouldShowPresetColors={shouldShowPresetColors}\n onPresetColorRemove={onPresetColorRemove}\n onPresetColorAdd={onPresetColorAdd}\n presetColors={presetColors}\n shouldUseSiteColors={shouldUseSiteColors}\n shouldShowMoreOptions={shouldShowMoreOptions}\n shouldShowTransparencySlider={shouldShowTransparencySlider}\n />\n ),\n [\n onPresetColorAdd,\n onPresetColorRemove,\n presetColors,\n shouldShowMoreOptions,\n shouldShowPresetColors,\n shouldShowTransparencySlider,\n shouldUseSiteColors,\n ],\n );\n\n return (\n <StyledColorPickerWrapper>\n {shouldShowAsPopup ? (\n <Popup content={content}>\n {children ?? (\n <StyledColorPickerWrapperInfo>\n <StyledColorPickerWrapperInfoColorWrapper\n $shouldShowRoundPreviewColor={shouldShowRoundPreviewColor}\n >\n <StyledColorPickerWrapperInfoColor $color={selectedColor} />\n </StyledColorPickerWrapperInfoColorWrapper>\n\n {shouldShowPreviewColorString && (\n <StyledColorPickerWrapperInfoText>\n {selectedColor}\n </StyledColorPickerWrapperInfoText>\n )}\n </StyledColorPickerWrapperInfo>\n )}\n </Popup>\n ) : (\n content\n )}\n </StyledColorPickerWrapper>\n );\n};\n\nColorPickerWrapper.displayName = 'ColorPickerWrapper';\n\nexport default ColorPickerWrapper;\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,yBAAyB;AAC/C,OAAOC,KAAK,IAAeC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAE7D,OAAOC,gBAAgB,MAAM,2CAA2C;AACxE,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SACIC,wBAAwB,EACxBC,4BAA4B,EAC5BC,iCAAiC,EACjCC,wCAAwC,EACxCC,gCAAgC,QAC7B,6BAA6B;AAgBpC,MAAMC,kBAAkB,GAAGC,IAAA,IAYI;EAAA,IAZH;IACxBC,QAAQ;IACRC,gBAAgB;IAChBC,mBAAmB;IACnBC,YAAY;IACZC,iBAAiB;IACjBC,qBAAqB;IACrBC,sBAAsB;IACtBC,4BAA4B;IAC5BC,2BAA2B;IAC3BC,4BAA4B;IAC5BC;EACqB,CAAC,GAAAX,IAAA;EACtB,MAAM;IAAEY;EAAc,CAAC,GAAGtB,UAAU,CAACG,kBAAkB,CAAC;EAExD,MAAMoB,OAAO,GAAGtB,OAAO,CACnB,mBACIF,KAAA,CAAAyB,aAAA,CAACtB,gBAAgB;IACbe,sBAAsB,EAAEA,sBAAuB;IAC/CJ,mBAAmB,EAAEA,mBAAoB;IACzCD,gBAAgB,EAAEA,gBAAiB;IACnCE,YAAY,EAAEA,YAAa;IAC3BO,mBAAmB,EAAEA,mBAAoB;IACzCL,qBAAqB,EAAEA,qBAAsB;IAC7CI,4BAA4B,EAAEA;EAA6B,CAC9D,CACJ,EACD,CACIR,gBAAgB,EAChBC,mBAAmB,EACnBC,YAAY,EACZE,qBAAqB,EACrBC,sBAAsB,EACtBG,4BAA4B,EAC5BC,mBAAmB,CAE3B,CAAC;EAED,oBACItB,KAAA,CAAAyB,aAAA,CAACpB,wBAAwB,QACpBW,iBAAiB,gBACdhB,KAAA,CAAAyB,aAAA,CAAC1B,KAAK;IAACyB,OAAO,EAAEA;EAAQ,GACnBZ,QAAQ,iBACLZ,KAAA,CAAAyB,aAAA,CAACnB,4BAA4B,qBACzBN,KAAA,CAAAyB,aAAA,CAACjB,wCAAwC;IACrCkB,4BAA4B,EAAEN;EAA4B,gBAE1DpB,KAAA,CAAAyB,aAAA,CAAClB,iCAAiC;IAACoB,MAAM,EAAEJ;EAAc,CAAE,CACrB,CAAC,EAE1CJ,4BAA4B,iBACzBnB,KAAA,CAAAyB,aAAA,CAAChB,gCAAgC,QAC5Bc,aAC6B,CAEZ,CAE/B,CAAC,GAERC,OAEkB,CAAC;AAEnC,CAAC;AAEDd,kBAAkB,CAACkB,WAAW,GAAG,oBAAoB;AAErD,eAAelB,kBAAkB","ignoreList":[]}