@chayns-components/color-picker 5.0.0-beta.567 → 5.0.0-beta.569

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 (84) hide show
  1. package/lib/components/ColorPickerProvider.d.ts +33 -0
  2. package/lib/components/ColorPickerProvider.js +70 -0
  3. package/lib/components/ColorPickerProvider.js.map +1 -0
  4. package/lib/components/color-picker/ColorPicker.d.ts +45 -0
  5. package/lib/components/color-picker/ColorPicker.js +32 -0
  6. package/lib/components/color-picker/ColorPicker.js.map +1 -0
  7. package/lib/components/color-picker/ColorPicker.styles.d.ts +2 -0
  8. package/lib/components/color-picker/ColorPicker.styles.js +5 -0
  9. package/lib/components/color-picker/ColorPicker.styles.js.map +1 -0
  10. package/lib/components/color-picker/color-picker-wrapper/ColorPickerWrapper.d.ts +16 -0
  11. package/lib/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js +35 -0
  12. package/lib/components/color-picker/color-picker-wrapper/ColorPickerWrapper.js.map +1 -0
  13. package/lib/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.d.ts +14 -0
  14. package/lib/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js +33 -0
  15. package/lib/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.js.map +1 -0
  16. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/ColorPickerPopup.d.ts +15 -0
  17. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/ColorPickerPopup.js +26 -0
  18. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/ColorPickerPopup.js.map +1 -0
  19. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/ColorPickerPopup.styles.d.ts +2 -0
  20. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/ColorPickerPopup.styles.js +6 -0
  21. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/ColorPickerPopup.styles.js.map +1 -0
  22. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/color-area/ColorArea.d.ts +6 -0
  23. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/color-area/ColorArea.js +215 -0
  24. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/color-area/ColorArea.js.map +1 -0
  25. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/color-area/ColorArea.styles.d.ts +268 -0
  26. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/color-area/ColorArea.styles.js +38 -0
  27. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/color-area/ColorArea.styles.js.map +1 -0
  28. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/more-options/MoreOptions.d.ts +6 -0
  29. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/more-options/MoreOptions.js +67 -0
  30. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/more-options/MoreOptions.js.map +1 -0
  31. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/more-options/MoreOptions.styles.d.ts +9 -0
  32. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/more-options/MoreOptions.styles.js +36 -0
  33. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/more-options/MoreOptions.styles.js.map +1 -0
  34. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/PresetColors.d.ts +12 -0
  35. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/PresetColors.js +72 -0
  36. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/PresetColors.js.map +1 -0
  37. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/PresetColors.styles.d.ts +2 -0
  38. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/PresetColors.styles.js +8 -0
  39. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/PresetColors.styles.js.map +1 -0
  40. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-button/PresetButton.d.ts +13 -0
  41. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-button/PresetButton.js +39 -0
  42. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-button/PresetButton.js.map +1 -0
  43. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-button/PresetButton.styles.d.ts +7 -0
  44. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js +27 -0
  45. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-button/PresetButton.styles.js.map +1 -0
  46. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-color/PresetColor.d.ts +10 -0
  47. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-color/PresetColor.js +42 -0
  48. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-color/PresetColor.js.map +1 -0
  49. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-color/PresetColor.styles.d.ts +8 -0
  50. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js +21 -0
  51. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/preset-colors/preset-color/PresetColor.styles.js.map +1 -0
  52. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/Sliders.d.ts +9 -0
  53. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/Sliders.js +57 -0
  54. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/Sliders.js.map +1 -0
  55. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/Sliders.styles.d.ts +3 -0
  56. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/Sliders.styles.js +13 -0
  57. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/Sliders.styles.js.map +1 -0
  58. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/color-preview/ColorPreview.d.ts +6 -0
  59. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/color-preview/ColorPreview.js +14 -0
  60. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/color-preview/ColorPreview.js.map +1 -0
  61. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/color-preview/ColorPreview.styles.d.ts +11 -0
  62. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/color-preview/ColorPreview.styles.js +37 -0
  63. package/lib/components/color-picker/color-picker-wrapper/color-picker-popup/sliders/color-preview/ColorPreview.styles.js.map +1 -0
  64. package/lib/components/hue-slider/HueSlider.d.ts +13 -1
  65. package/lib/components/hue-slider/HueSlider.js +56 -10
  66. package/lib/components/hue-slider/HueSlider.js.map +1 -1
  67. package/lib/components/index.d.ts +2 -0
  68. package/lib/components/index.js +2 -0
  69. package/lib/components/index.js.map +1 -1
  70. package/lib/components/transparency-slider/TransparencySlider.d.ts +24 -0
  71. package/lib/components/transparency-slider/TransparencySlider.js +107 -0
  72. package/lib/components/transparency-slider/TransparencySlider.js.map +1 -0
  73. package/lib/components/transparency-slider/TransparencySlider.styles.d.ts +24 -0
  74. package/lib/components/transparency-slider/TransparencySlider.styles.js +121 -0
  75. package/lib/components/transparency-slider/TransparencySlider.styles.js.map +1 -0
  76. package/lib/constants/color.d.ts +2 -4
  77. package/lib/constants/color.js +44 -41
  78. package/lib/constants/color.js.map +1 -1
  79. package/lib/types.d.ts +8 -1
  80. package/lib/types.js.map +1 -1
  81. package/lib/utils/color.d.ts +15 -4
  82. package/lib/utils/color.js +133 -37
  83. package/lib/utils/color.js.map +1 -1
  84. package/package.json +3 -3
@@ -0,0 +1,33 @@
1
+ import React, { type ReactNode } from 'react';
2
+ interface IColorPickerContext {
3
+ selectedColor?: string;
4
+ updateSelectedColor?: (color: string | undefined) => void;
5
+ hueColor?: string;
6
+ updateHueColor?: (color: string | undefined) => void;
7
+ isPresetColor?: boolean;
8
+ updateIsPresetColor?: (isPresetColor: boolean) => void;
9
+ shouldGetCoordinates?: boolean;
10
+ updateShouldGetCoordinates?: (shouldGetCoordinates: boolean) => void;
11
+ shouldCallOnSelect?: boolean;
12
+ updateShouldCallOnSelect?: (shouldCallOnSelect: boolean) => void;
13
+ }
14
+ export declare const ColorPickerContext: React.Context<IColorPickerContext>;
15
+ interface ColorPickerProviderProps {
16
+ /**
17
+ * The children of the provider.
18
+ */
19
+ children: ReactNode;
20
+ /**
21
+ * Function to be executed when a color is selected.
22
+ */
23
+ onSelect?: (color: string) => void;
24
+ /**
25
+ * The color that should be preselected.
26
+ */
27
+ selectedColor?: string;
28
+ }
29
+ declare const ColorPickerProvider: {
30
+ ({ children, selectedColor, onSelect }: ColorPickerProviderProps): React.JSX.Element;
31
+ displayName: string;
32
+ };
33
+ export default ColorPickerProvider;
@@ -0,0 +1,70 @@
1
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
2
+ export const ColorPickerContext = /*#__PURE__*/React.createContext({
3
+ selectedColor: undefined,
4
+ updateSelectedColor: undefined,
5
+ hueColor: undefined,
6
+ updateHueColor: undefined,
7
+ isPresetColor: undefined,
8
+ updateIsPresetColor: undefined,
9
+ shouldGetCoordinates: undefined,
10
+ updateShouldGetCoordinates: undefined,
11
+ shouldCallOnSelect: undefined,
12
+ updateShouldCallOnSelect: undefined
13
+ });
14
+ ColorPickerContext.displayName = 'ColorPickerContext';
15
+ const ColorPickerProvider = _ref => {
16
+ let {
17
+ children,
18
+ selectedColor,
19
+ onSelect
20
+ } = _ref;
21
+ const [internalSelectedColor, setInternalSelectedColor] = useState();
22
+ const [internalHueColor, setInternalHueColor] = useState();
23
+ const [internalIsPresetColor, setInternalIsPresetColor] = useState(false);
24
+ const [internalShouldGetCoordinates, setInternalShouldGetCoordinates] = useState(true);
25
+ const [internalShouldCallOnSelect, setInternalShouldCallOnSelect] = useState(false);
26
+ const updateSelectedColor = useCallback(color => {
27
+ setInternalSelectedColor(color);
28
+ }, []);
29
+ const updateHueColor = useCallback(color => {
30
+ setInternalHueColor(color);
31
+ }, []);
32
+ const updateIsPresetColor = useCallback(isPresetColor => {
33
+ setInternalIsPresetColor(isPresetColor);
34
+ }, []);
35
+ const updateShouldGetCoordinates = useCallback(shouldGetCoordinates => {
36
+ setInternalShouldGetCoordinates(shouldGetCoordinates);
37
+ }, []);
38
+ const updateShouldCallOnSelect = useCallback(shouldCallOnSelect => {
39
+ setInternalShouldCallOnSelect(shouldCallOnSelect);
40
+ }, []);
41
+ useEffect(() => {
42
+ setInternalSelectedColor(selectedColor);
43
+ setInternalHueColor(selectedColor);
44
+ setInternalIsPresetColor(true);
45
+ }, [selectedColor]);
46
+ useEffect(() => {
47
+ if (typeof onSelect === 'function' && internalShouldCallOnSelect && internalSelectedColor) {
48
+ onSelect(internalSelectedColor);
49
+ setInternalShouldCallOnSelect(false);
50
+ }
51
+ }, [internalSelectedColor, internalShouldCallOnSelect, onSelect]);
52
+ const providerValue = useMemo(() => ({
53
+ selectedColor: internalSelectedColor,
54
+ updateSelectedColor,
55
+ hueColor: internalHueColor,
56
+ updateHueColor,
57
+ isPresetColor: internalIsPresetColor,
58
+ updateIsPresetColor,
59
+ shouldGetCoordinates: internalShouldGetCoordinates,
60
+ updateShouldGetCoordinates,
61
+ shouldCallOnSelect: internalShouldCallOnSelect,
62
+ updateShouldCallOnSelect
63
+ }), [internalHueColor, internalIsPresetColor, internalSelectedColor, internalShouldCallOnSelect, internalShouldGetCoordinates, updateHueColor, updateIsPresetColor, updateSelectedColor, updateShouldCallOnSelect, updateShouldGetCoordinates]);
64
+ return /*#__PURE__*/React.createElement(ColorPickerContext.Provider, {
65
+ value: providerValue
66
+ }, children);
67
+ };
68
+ ColorPickerProvider.displayName = 'ColorPickerProvider';
69
+ export default ColorPickerProvider;
70
+ //# sourceMappingURL=ColorPickerProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerProvider.js","names":["React","useCallback","useEffect","useMemo","useState","ColorPickerContext","createContext","selectedColor","undefined","updateSelectedColor","hueColor","updateHueColor","isPresetColor","updateIsPresetColor","shouldGetCoordinates","updateShouldGetCoordinates","shouldCallOnSelect","updateShouldCallOnSelect","displayName","ColorPickerProvider","_ref","children","onSelect","internalSelectedColor","setInternalSelectedColor","internalHueColor","setInternalHueColor","internalIsPresetColor","setInternalIsPresetColor","internalShouldGetCoordinates","setInternalShouldGetCoordinates","internalShouldCallOnSelect","setInternalShouldCallOnSelect","color","providerValue","createElement","Provider","value"],"sources":["../../src/components/ColorPickerProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState, type ReactNode } from 'react';\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}\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});\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\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 useEffect(() => {\n setInternalSelectedColor(selectedColor);\n setInternalHueColor(selectedColor);\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 }),\n [\n internalHueColor,\n internalIsPresetColor,\n internalSelectedColor,\n internalShouldCallOnSelect,\n internalShouldGetCoordinates,\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":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ import type { IPresetColor } from '../../types';
3
+ interface ColorPickerProps {
4
+ /**
5
+ * Function to be executed when a color is selected.
6
+ */
7
+ onSelect?: (color: string) => void;
8
+ /**
9
+ * The color that should be preselected.
10
+ */
11
+ selectedColor?: string;
12
+ /**
13
+ * Colors the user can select from.
14
+ */
15
+ presetColors?: IPresetColor[];
16
+ /**
17
+ * Whether the preset colors should be displayed.
18
+ */
19
+ shouldShowPresetColors?: boolean;
20
+ /**
21
+ * Function to be executed when a preset color is added.
22
+ */
23
+ onPresetColorAdd?: (presetColor: IPresetColor) => void;
24
+ /**
25
+ * Function to be executed when a preset color is removed.
26
+ */
27
+ onPresetColorRemove?: (presetColorId: IPresetColor['id']) => void;
28
+ /**
29
+ * Whether the transparency slider should be displayed.
30
+ */
31
+ shouldShowTransparencySlider?: boolean;
32
+ /**
33
+ * Whether the more options accordion should be displayed.
34
+ */
35
+ shouldShowMoreOptions?: boolean;
36
+ /**
37
+ * Whether the ColorPicker should be displayed inside a popup.
38
+ */
39
+ shouldShowAsPopup?: boolean;
40
+ }
41
+ declare const ColorPicker: {
42
+ ({ selectedColor, presetColors, onPresetColorRemove, onPresetColorAdd, shouldShowPresetColors, shouldShowAsPopup, shouldShowTransparencySlider, shouldShowMoreOptions, onSelect, }: ColorPickerProps): React.JSX.Element;
43
+ displayName: string;
44
+ };
45
+ export default ColorPicker;
@@ -0,0 +1,32 @@
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
+ selectedColor = 'rgba(255, 0, 0, 1)',
8
+ presetColors,
9
+ onPresetColorRemove,
10
+ onPresetColorAdd,
11
+ shouldShowPresetColors = false,
12
+ shouldShowAsPopup = true,
13
+ shouldShowTransparencySlider = false,
14
+ shouldShowMoreOptions = false,
15
+ onSelect
16
+ } = _ref;
17
+ return /*#__PURE__*/React.createElement(ColorPickerProvider, {
18
+ selectedColor: selectedColor,
19
+ onSelect: onSelect
20
+ }, /*#__PURE__*/React.createElement(StyledColorPicker, null, /*#__PURE__*/React.createElement(ColorPickerWrapper, {
21
+ shouldShowTransparencySlider: shouldShowTransparencySlider,
22
+ presetColors: presetColors,
23
+ onPresetColorAdd: onPresetColorAdd,
24
+ onPresetColorRemove: onPresetColorRemove,
25
+ shouldShowAsPopup: shouldShowAsPopup,
26
+ shouldShowMoreOptions: shouldShowMoreOptions,
27
+ shouldShowPresetColors: shouldShowPresetColors
28
+ })));
29
+ };
30
+ ColorPicker.displayName = 'ColorPicker';
31
+ export default ColorPicker;
32
+ //# sourceMappingURL=ColorPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPicker.js","names":["React","ColorPickerProvider","ColorPickerWrapper","StyledColorPicker","ColorPicker","_ref","selectedColor","presetColors","onPresetColorRemove","onPresetColorAdd","shouldShowPresetColors","shouldShowAsPopup","shouldShowTransparencySlider","shouldShowMoreOptions","onSelect","createElement","displayName"],"sources":["../../../src/components/color-picker/ColorPicker.tsx"],"sourcesContent":["import React from 'react';\nimport type { IPresetColor } from '../../types';\nimport ColorPickerProvider from '../ColorPickerProvider';\nimport ColorPickerWrapper from './color-picker-wrapper/ColorPickerWrapper';\nimport { StyledColorPicker } from './ColorPicker.styles';\n\ninterface ColorPickerProps {\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 * Colors the user can select from.\n */\n presetColors?: IPresetColor[];\n /**\n * Whether the preset colors should be displayed.\n */\n shouldShowPresetColors?: boolean;\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 * Whether the transparency slider should be displayed.\n */\n shouldShowTransparencySlider?: boolean;\n /**\n * Whether the more options accordion should be displayed.\n */\n shouldShowMoreOptions?: boolean;\n /**\n * Whether the ColorPicker should be displayed inside a popup.\n */\n shouldShowAsPopup?: boolean;\n}\n\nconst ColorPicker = ({\n selectedColor = 'rgba(255, 0, 0, 1)',\n presetColors,\n onPresetColorRemove,\n onPresetColorAdd,\n shouldShowPresetColors = false,\n shouldShowAsPopup = true,\n shouldShowTransparencySlider = false,\n shouldShowMoreOptions = false,\n onSelect,\n}: ColorPickerProps) => (\n <ColorPickerProvider selectedColor={selectedColor} onSelect={onSelect}>\n <StyledColorPicker>\n <ColorPickerWrapper\n shouldShowTransparencySlider={shouldShowTransparencySlider}\n presetColors={presetColors}\n onPresetColorAdd={onPresetColorAdd}\n onPresetColorRemove={onPresetColorRemove}\n shouldShowAsPopup={shouldShowAsPopup}\n shouldShowMoreOptions={shouldShowMoreOptions}\n shouldShowPresetColors={shouldShowPresetColors}\n />\n </StyledColorPicker>\n </ColorPickerProvider>\n);\n\nColorPicker.displayName = 'ColorPicker';\n\nexport default ColorPicker;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,mBAAmB,MAAM,wBAAwB;AACxD,OAAOC,kBAAkB,MAAM,2CAA2C;AAC1E,SAASC,iBAAiB,QAAQ,sBAAsB;AAyCxD,MAAMC,WAAW,GAAGC,IAAA;EAAA,IAAC;IACjBC,aAAa,GAAG,oBAAoB;IACpCC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,sBAAsB,GAAG,KAAK;IAC9BC,iBAAiB,GAAG,IAAI;IACxBC,4BAA4B,GAAG,KAAK;IACpCC,qBAAqB,GAAG,KAAK;IAC7BC;EACc,CAAC,GAAAT,IAAA;EAAA,oBACfL,KAAA,CAAAe,aAAA,CAACd,mBAAmB;IAACK,aAAa,EAAEA,aAAc;IAACQ,QAAQ,EAAEA;EAAS,gBAClEd,KAAA,CAAAe,aAAA,CAACZ,iBAAiB,qBACdH,KAAA,CAAAe,aAAA,CAACb,kBAAkB;IACfU,4BAA4B,EAAEA,4BAA6B;IAC3DL,YAAY,EAAEA,YAAa;IAC3BE,gBAAgB,EAAEA,gBAAiB;IACnCD,mBAAmB,EAAEA,mBAAoB;IACzCG,iBAAiB,EAAEA,iBAAkB;IACrCE,qBAAqB,EAAEA,qBAAsB;IAC7CH,sBAAsB,EAAEA;EAAuB,CAClD,CACc,CACF,CAAC;AAAA,CACzB;AAEDN,WAAW,CAACY,WAAW,GAAG,aAAa;AAEvC,eAAeZ,WAAW","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledColorPicker: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
@@ -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,GAAI;AAC5C;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { IPresetColor } from '../../../types';
3
+ interface ColorPickerWrapperProps {
4
+ presetColors?: IPresetColor[];
5
+ shouldShowPresetColors: boolean;
6
+ onPresetColorAdd?: (presetColor: IPresetColor) => void;
7
+ onPresetColorRemove?: (presetColorId: IPresetColor['id']) => void;
8
+ shouldShowTransparencySlider: boolean;
9
+ shouldShowMoreOptions: boolean;
10
+ shouldShowAsPopup: boolean;
11
+ }
12
+ declare const ColorPickerWrapper: {
13
+ ({ presetColors, onPresetColorRemove, onPresetColorAdd, shouldShowPresetColors, shouldShowAsPopup, shouldShowTransparencySlider, shouldShowMoreOptions, }: ColorPickerWrapperProps): React.JSX.Element;
14
+ displayName: string;
15
+ };
16
+ export default ColorPickerWrapper;
@@ -0,0 +1,35 @@
1
+ import { Popup } from '@chayns-components/core';
2
+ import React, { useContext, useMemo } from 'react';
3
+ import { ColorPickerContext } from '../../ColorPickerProvider';
4
+ import ColorPickerPopup from './color-picker-popup/ColorPickerPopup';
5
+ import { StyledColorPickerWrapper, StyledColorPickerWrapperInfo, StyledColorPickerWrapperInfoColor, StyledColorPickerWrapperInfoText } from './ColorPickerWrapper.styles';
6
+ const ColorPickerWrapper = _ref => {
7
+ let {
8
+ presetColors,
9
+ onPresetColorRemove,
10
+ onPresetColorAdd,
11
+ shouldShowPresetColors,
12
+ shouldShowAsPopup,
13
+ shouldShowTransparencySlider,
14
+ shouldShowMoreOptions
15
+ } = _ref;
16
+ const {
17
+ selectedColor
18
+ } = useContext(ColorPickerContext);
19
+ const content = useMemo(() => /*#__PURE__*/React.createElement(ColorPickerPopup, {
20
+ shouldShowPresetColors: shouldShowPresetColors,
21
+ onPresetColorRemove: onPresetColorRemove,
22
+ onPresetColorAdd: onPresetColorAdd,
23
+ presetColors: presetColors,
24
+ shouldShowMoreOptions: shouldShowMoreOptions,
25
+ shouldShowTransparencySlider: shouldShowTransparencySlider
26
+ }), [onPresetColorAdd, onPresetColorRemove, presetColors, shouldShowMoreOptions, shouldShowPresetColors, shouldShowTransparencySlider]);
27
+ return /*#__PURE__*/React.createElement(StyledColorPickerWrapper, null, shouldShowAsPopup ? /*#__PURE__*/React.createElement(Popup, {
28
+ content: content
29
+ }, /*#__PURE__*/React.createElement(StyledColorPickerWrapperInfo, null, /*#__PURE__*/React.createElement(StyledColorPickerWrapperInfoColor, {
30
+ $color: selectedColor
31
+ }), /*#__PURE__*/React.createElement(StyledColorPickerWrapperInfoText, null, selectedColor))) : content);
32
+ };
33
+ ColorPickerWrapper.displayName = 'ColorPickerWrapper';
34
+ export default ColorPickerWrapper;
35
+ //# sourceMappingURL=ColorPickerWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerWrapper.js","names":["Popup","React","useContext","useMemo","ColorPickerContext","ColorPickerPopup","StyledColorPickerWrapper","StyledColorPickerWrapperInfo","StyledColorPickerWrapperInfoColor","StyledColorPickerWrapperInfoText","ColorPickerWrapper","_ref","presetColors","onPresetColorRemove","onPresetColorAdd","shouldShowPresetColors","shouldShowAsPopup","shouldShowTransparencySlider","shouldShowMoreOptions","selectedColor","content","createElement","$color","displayName"],"sources":["../../../../src/components/color-picker/color-picker-wrapper/ColorPickerWrapper.tsx"],"sourcesContent":["import { Popup } from '@chayns-components/core';\nimport React, { useContext, useMemo } from 'react';\nimport type { IPresetColor } from '../../../types';\nimport { ColorPickerContext } from '../../ColorPickerProvider';\nimport ColorPickerPopup from './color-picker-popup/ColorPickerPopup';\nimport {\n StyledColorPickerWrapper,\n StyledColorPickerWrapperInfo,\n StyledColorPickerWrapperInfoColor,\n StyledColorPickerWrapperInfoText,\n} from './ColorPickerWrapper.styles';\n\ninterface ColorPickerWrapperProps {\n presetColors?: IPresetColor[];\n shouldShowPresetColors: boolean;\n onPresetColorAdd?: (presetColor: IPresetColor) => void;\n onPresetColorRemove?: (presetColorId: IPresetColor['id']) => void;\n shouldShowTransparencySlider: boolean;\n shouldShowMoreOptions: boolean;\n shouldShowAsPopup: boolean;\n}\n\nconst ColorPickerWrapper = ({\n presetColors,\n onPresetColorRemove,\n onPresetColorAdd,\n shouldShowPresetColors,\n shouldShowAsPopup,\n shouldShowTransparencySlider,\n shouldShowMoreOptions,\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 shouldShowMoreOptions={shouldShowMoreOptions}\n shouldShowTransparencySlider={shouldShowTransparencySlider}\n />\n ),\n [\n onPresetColorAdd,\n onPresetColorRemove,\n presetColors,\n shouldShowMoreOptions,\n shouldShowPresetColors,\n shouldShowTransparencySlider,\n ],\n );\n\n return (\n <StyledColorPickerWrapper>\n {shouldShowAsPopup ? (\n <Popup content={content}>\n <StyledColorPickerWrapperInfo>\n <StyledColorPickerWrapperInfoColor $color={selectedColor} />\n <StyledColorPickerWrapperInfoText>\n {selectedColor}\n </StyledColorPickerWrapperInfoText>\n </StyledColorPickerWrapperInfo>\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,IAAIC,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAElD,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,OAAOC,gBAAgB,MAAM,uCAAuC;AACpE,SACIC,wBAAwB,EACxBC,4BAA4B,EAC5BC,iCAAiC,EACjCC,gCAAgC,QAC7B,6BAA6B;AAYpC,MAAMC,kBAAkB,GAAGC,IAAA,IAQI;EAAA,IARH;IACxBC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,sBAAsB;IACtBC,iBAAiB;IACjBC,4BAA4B;IAC5BC;EACqB,CAAC,GAAAP,IAAA;EACtB,MAAM;IAAEQ;EAAc,CAAC,GAAGjB,UAAU,CAACE,kBAAkB,CAAC;EAExD,MAAMgB,OAAO,GAAGjB,OAAO,CACnB,mBACIF,KAAA,CAAAoB,aAAA,CAAChB,gBAAgB;IACbU,sBAAsB,EAAEA,sBAAuB;IAC/CF,mBAAmB,EAAEA,mBAAoB;IACzCC,gBAAgB,EAAEA,gBAAiB;IACnCF,YAAY,EAAEA,YAAa;IAC3BM,qBAAqB,EAAEA,qBAAsB;IAC7CD,4BAA4B,EAAEA;EAA6B,CAC9D,CACJ,EACD,CACIH,gBAAgB,EAChBD,mBAAmB,EACnBD,YAAY,EACZM,qBAAqB,EACrBH,sBAAsB,EACtBE,4BAA4B,CAEpC,CAAC;EAED,oBACIhB,KAAA,CAAAoB,aAAA,CAACf,wBAAwB,QACpBU,iBAAiB,gBACdf,KAAA,CAAAoB,aAAA,CAACrB,KAAK;IAACoB,OAAO,EAAEA;EAAQ,gBACpBnB,KAAA,CAAAoB,aAAA,CAACd,4BAA4B,qBACzBN,KAAA,CAAAoB,aAAA,CAACb,iCAAiC;IAACc,MAAM,EAAEH;EAAc,CAAE,CAAC,eAC5DlB,KAAA,CAAAoB,aAAA,CAACZ,gCAAgC,QAC5BU,aAC6B,CACR,CAC3B,CAAC,GAERC,OAEkB,CAAC;AAEnC,CAAC;AAEDV,kBAAkB,CAACa,WAAW,GAAG,oBAAoB;AAErD,eAAeb,kBAAkB","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ /// <reference types="react" />
2
+ import type { WithTheme } from '@chayns-components/core';
3
+ export declare const StyledColorPickerWrapper: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
4
+ export declare const StyledColorPickerWrapperInfo: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
5
+ type StyledColorPickerWrapperInfoColorProps = WithTheme<{
6
+ $color?: string;
7
+ }>;
8
+ export declare const StyledColorPickerWrapperInfoColor: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("styled-components/dist/types").Substitute<import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
9
+ ref?: ((instance: HTMLDivElement | null) => void) | import("react").RefObject<HTMLDivElement> | null | undefined;
10
+ }>, StyledColorPickerWrapperInfoColorProps>, never>>;
11
+ export declare const StyledColorPickerWrapperInfoText: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
12
+ theme: import("@chayns-components/core/lib/components/color-scheme-provider/ColorSchemeProvider").Theme;
13
+ }>>;
14
+ export {};
@@ -0,0 +1,33 @@
1
+ import styled from 'styled-components';
2
+ export const StyledColorPickerWrapper = styled.div``;
3
+ export const StyledColorPickerWrapperInfo = styled.div`
4
+ display: flex;
5
+ align-items: center;
6
+ gap: 8px;
7
+ `;
8
+ export const StyledColorPickerWrapperInfoColor = styled.div.attrs(_ref => {
9
+ let {
10
+ $color
11
+ } = _ref;
12
+ return {
13
+ style: {
14
+ backgroundColor: $color
15
+ }
16
+ };
17
+ })`
18
+ width: 15px;
19
+ aspect-ratio: 1;
20
+ border-radius: 50px;
21
+ `;
22
+ export const StyledColorPickerWrapperInfoText = styled.div`
23
+ border-bottom-style: dashed;
24
+ border-bottom-width: 1px;
25
+
26
+ color: ${_ref2 => {
27
+ let {
28
+ theme
29
+ } = _ref2;
30
+ return theme.text;
31
+ }};
32
+ `;
33
+ //# sourceMappingURL=ColorPickerWrapper.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerWrapper.styles.js","names":["styled","StyledColorPickerWrapper","div","StyledColorPickerWrapperInfo","StyledColorPickerWrapperInfoColor","attrs","_ref","$color","style","backgroundColor","StyledColorPickerWrapperInfoText","_ref2","theme","text"],"sources":["../../../../src/components/color-picker/color-picker-wrapper/ColorPickerWrapper.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\n\nexport const StyledColorPickerWrapper = styled.div``;\n\nexport const StyledColorPickerWrapperInfo = styled.div`\n display: flex;\n align-items: center;\n gap: 8px;\n`;\n\ntype StyledColorPickerWrapperInfoColorProps = WithTheme<{ $color?: string }>;\n\nexport const StyledColorPickerWrapperInfoColor = styled.div.attrs<StyledColorPickerWrapperInfoColorProps>(\n ({ $color }) => ({\n style: {\n backgroundColor: $color,\n },\n }),\n)`\n width: 15px;\n aspect-ratio: 1;\n border-radius: 50px;\n`;\n\ntype StyledColorPickerWrapperInfoTextProps = WithTheme<unknown>;\n\nexport const StyledColorPickerWrapperInfoText = styled.div<StyledColorPickerWrapperInfoTextProps>`\n border-bottom-style: dashed;\n border-bottom-width: 1px;\n\n color: ${({ theme }: StyledColorPickerWrapperInfoTextProps) => theme.text};\n`;\n"],"mappings":"AACA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,wBAAwB,GAAGD,MAAM,CAACE,GAAI,EAAC;AAEpD,OAAO,MAAMC,4BAA4B,GAAGH,MAAM,CAACE,GAAI;AACvD;AACA;AACA;AACA,CAAC;AAID,OAAO,MAAME,iCAAiC,GAAGJ,MAAM,CAACE,GAAG,CAACG,KAAK,CAC7DC,IAAA;EAAA,IAAC;IAAEC;EAAO,CAAC,GAAAD,IAAA;EAAA,OAAM;IACbE,KAAK,EAAE;MACHC,eAAe,EAAEF;IACrB;EACJ,CAAC;AAAA,CACL,CAAE;AACF;AACA;AACA;AACA,CAAC;AAID,OAAO,MAAMG,gCAAgC,GAAGV,MAAM,CAACE,GAA2C;AAClG;AACA;AACA;AACA,aAAaS,KAAA;EAAA,IAAC;IAAEC;EAA6C,CAAC,GAAAD,KAAA;EAAA,OAAKC,KAAK,CAACC,IAAI;AAAA,CAAC;AAC9E,CAAC","ignoreList":[]}
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ import type { IPresetColor } from '../../../../types';
3
+ interface ColorPickerPopupProps {
4
+ presetColors?: IPresetColor[];
5
+ shouldShowPresetColors: boolean;
6
+ onPresetColorAdd?: (presetColor: IPresetColor) => void;
7
+ onPresetColorRemove?: (presetColorId: IPresetColor['id']) => void;
8
+ shouldShowTransparencySlider: boolean;
9
+ shouldShowMoreOptions: boolean;
10
+ }
11
+ declare const ColorPickerPopup: {
12
+ ({ presetColors, onPresetColorRemove, onPresetColorAdd, shouldShowPresetColors, shouldShowTransparencySlider, shouldShowMoreOptions, }: ColorPickerPopupProps): React.JSX.Element;
13
+ displayName: string;
14
+ };
15
+ export default ColorPickerPopup;
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ import ColorArea from './color-area/ColorArea';
3
+ import { StyledColorPickerPopup } from './ColorPickerPopup.styles';
4
+ import MoreOptions from './more-options/MoreOptions';
5
+ import PresetColors from './preset-colors/PresetColors';
6
+ import Sliders from './sliders/Sliders';
7
+ const ColorPickerPopup = _ref => {
8
+ let {
9
+ presetColors,
10
+ onPresetColorRemove,
11
+ onPresetColorAdd,
12
+ shouldShowPresetColors,
13
+ shouldShowTransparencySlider,
14
+ shouldShowMoreOptions
15
+ } = _ref;
16
+ return /*#__PURE__*/React.createElement(StyledColorPickerPopup, null, /*#__PURE__*/React.createElement(ColorArea, null), /*#__PURE__*/React.createElement(Sliders, {
17
+ shouldShowTransparencySlider: shouldShowTransparencySlider
18
+ }), shouldShowPresetColors && /*#__PURE__*/React.createElement(PresetColors, {
19
+ presetColors: presetColors,
20
+ onPresetColorAdd: onPresetColorAdd,
21
+ onPresetColorRemove: onPresetColorRemove
22
+ }), shouldShowMoreOptions && /*#__PURE__*/React.createElement(MoreOptions, null));
23
+ };
24
+ ColorPickerPopup.displayName = 'ColorPickerPopup';
25
+ export default ColorPickerPopup;
26
+ //# sourceMappingURL=ColorPickerPopup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerPopup.js","names":["React","ColorArea","StyledColorPickerPopup","MoreOptions","PresetColors","Sliders","ColorPickerPopup","_ref","presetColors","onPresetColorRemove","onPresetColorAdd","shouldShowPresetColors","shouldShowTransparencySlider","shouldShowMoreOptions","createElement","displayName"],"sources":["../../../../../src/components/color-picker/color-picker-wrapper/color-picker-popup/ColorPickerPopup.tsx"],"sourcesContent":["import React from 'react';\nimport type { IPresetColor } from '../../../../types';\nimport ColorArea from './color-area/ColorArea';\nimport { StyledColorPickerPopup } from './ColorPickerPopup.styles';\nimport MoreOptions from './more-options/MoreOptions';\nimport PresetColors from './preset-colors/PresetColors';\nimport Sliders from './sliders/Sliders';\n\ninterface ColorPickerPopupProps {\n presetColors?: IPresetColor[];\n shouldShowPresetColors: boolean;\n onPresetColorAdd?: (presetColor: IPresetColor) => void;\n onPresetColorRemove?: (presetColorId: IPresetColor['id']) => void;\n shouldShowTransparencySlider: boolean;\n shouldShowMoreOptions: boolean;\n}\n\nconst ColorPickerPopup = ({\n presetColors,\n onPresetColorRemove,\n onPresetColorAdd,\n shouldShowPresetColors,\n shouldShowTransparencySlider,\n shouldShowMoreOptions,\n}: ColorPickerPopupProps) => (\n <StyledColorPickerPopup>\n <ColorArea />\n <Sliders shouldShowTransparencySlider={shouldShowTransparencySlider} />\n {shouldShowPresetColors && (\n <PresetColors\n presetColors={presetColors}\n onPresetColorAdd={onPresetColorAdd}\n onPresetColorRemove={onPresetColorRemove}\n />\n )}\n {shouldShowMoreOptions && <MoreOptions />}\n </StyledColorPickerPopup>\n);\n\nColorPickerPopup.displayName = 'ColorPickerPopup';\n\nexport default ColorPickerPopup;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,OAAOC,SAAS,MAAM,wBAAwB;AAC9C,SAASC,sBAAsB,QAAQ,2BAA2B;AAClE,OAAOC,WAAW,MAAM,4BAA4B;AACpD,OAAOC,YAAY,MAAM,8BAA8B;AACvD,OAAOC,OAAO,MAAM,mBAAmB;AAWvC,MAAMC,gBAAgB,GAAGC,IAAA;EAAA,IAAC;IACtBC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,sBAAsB;IACtBC,4BAA4B;IAC5BC;EACmB,CAAC,GAAAN,IAAA;EAAA,oBACpBP,KAAA,CAAAc,aAAA,CAACZ,sBAAsB,qBACnBF,KAAA,CAAAc,aAAA,CAACb,SAAS,MAAE,CAAC,eACbD,KAAA,CAAAc,aAAA,CAACT,OAAO;IAACO,4BAA4B,EAAEA;EAA6B,CAAE,CAAC,EACtED,sBAAsB,iBACnBX,KAAA,CAAAc,aAAA,CAACV,YAAY;IACTI,YAAY,EAAEA,YAAa;IAC3BE,gBAAgB,EAAEA,gBAAiB;IACnCD,mBAAmB,EAAEA;EAAoB,CAC5C,CACJ,EACAI,qBAAqB,iBAAIb,KAAA,CAAAc,aAAA,CAACX,WAAW,MAAE,CACpB,CAAC;AAAA,CAC5B;AAEDG,gBAAgB,CAACS,WAAW,GAAG,kBAAkB;AAEjD,eAAeT,gBAAgB","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const StyledColorPickerPopup: import("styled-components").IStyledComponent<"web", import("styled-components/dist/types").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>>;
@@ -0,0 +1,6 @@
1
+ import styled from 'styled-components';
2
+ export const StyledColorPickerPopup = styled.div`
3
+ width: 320px;
4
+ padding: 11px;
5
+ `;
6
+ //# sourceMappingURL=ColorPickerPopup.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerPopup.styles.js","names":["styled","StyledColorPickerPopup","div"],"sources":["../../../../../src/components/color-picker/color-picker-wrapper/color-picker-popup/ColorPickerPopup.styles.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const StyledColorPickerPopup = styled.div`\n width: 320px;\n padding: 11px;\n`;\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,sBAAsB,GAAGD,MAAM,CAACE,GAAI;AACjD;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ declare const ColorArea: {
3
+ (): React.JSX.Element;
4
+ displayName: string;
5
+ };
6
+ export default ColorArea;
@@ -0,0 +1,215 @@
1
+ import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';
2
+ import { StyledColorArea, StyledColorAreaCanvas, StyledColorAreaPseudo, StyledMotionColorAreaPointer } from './ColorArea.styles';
3
+ import { hsvToHex } from '@chayns/colors';
4
+ import { useDragControls, useMotionValue } from 'framer-motion';
5
+ import { extractRgbValues, getColorFromCoordinates, getCoordinatesFromColor, rgbToHsv } from '../../../../../utils/color';
6
+ import { ColorPickerContext } from '../../../../ColorPickerProvider';
7
+ const ColorArea = () => {
8
+ const {
9
+ selectedColor,
10
+ updateSelectedColor,
11
+ updateIsPresetColor,
12
+ isPresetColor,
13
+ shouldGetCoordinates,
14
+ updateShouldGetCoordinates,
15
+ updateShouldCallOnSelect,
16
+ hueColor
17
+ } = useContext(ColorPickerContext);
18
+ const [opacity, setOpacity] = useState(1);
19
+ const [scale, setScale] = useState({
20
+ scaleX: 0,
21
+ scaleY: 0
22
+ });
23
+ const isPresetColorRef = useRef(false);
24
+ const shouldGetCoordinatesRef = useRef(false);
25
+ const canDrag = useRef(false);
26
+ const canvasRef = useRef(null);
27
+ const pseudoRef = useRef(null);
28
+ const dragControls = useDragControls();
29
+ const x = useMotionValue(0);
30
+ const y = useMotionValue(0);
31
+ useEffect(() => {
32
+ isPresetColorRef.current = isPresetColor ?? false;
33
+ }, [isPresetColor]);
34
+ useEffect(() => {
35
+ shouldGetCoordinatesRef.current = shouldGetCoordinates ?? true;
36
+ }, [shouldGetCoordinates]);
37
+ useEffect(() => {
38
+ if (selectedColor) {
39
+ const {
40
+ a
41
+ } = extractRgbValues(selectedColor);
42
+ setOpacity(a);
43
+ }
44
+ }, [selectedColor]);
45
+ useEffect(() => {
46
+ const canvas = canvasRef.current;
47
+ if (!canvas) {
48
+ return;
49
+ }
50
+ const rect = canvas.getBoundingClientRect();
51
+ const scaleX = canvas.width / rect.width;
52
+ const scaleY = canvas.height / rect.height;
53
+ setScale({
54
+ scaleX,
55
+ scaleY
56
+ });
57
+ }, []);
58
+ const setColor = useCallback(() => {
59
+ const xCord = x.get();
60
+ const yCord = y.get();
61
+ if (typeof updateSelectedColor === 'function') {
62
+ const color = getColorFromCoordinates({
63
+ coordinates: {
64
+ x: xCord,
65
+ y: yCord
66
+ },
67
+ canvas: canvasRef,
68
+ opacity,
69
+ scale
70
+ });
71
+ if (color === 'transparent') {
72
+ return;
73
+ }
74
+ updateSelectedColor(color);
75
+ }
76
+ }, [opacity, scale, updateSelectedColor, x, y]);
77
+ useEffect(() => {
78
+ const ctx = canvasRef.current?.getContext('2d');
79
+ if (!ctx) {
80
+ return;
81
+ }
82
+ const hsv = rgbToHsv(hueColor);
83
+ const hex = hsvToHex({
84
+ h: hsv?.h ?? 1,
85
+ s: 1,
86
+ v: 1
87
+ });
88
+ const colorGradiant = ctx.createLinearGradient(0, 0, 300, 0);
89
+ colorGradiant.addColorStop(0, '#fff');
90
+ colorGradiant.addColorStop(1, hex ?? 'red');
91
+ ctx.fillStyle = colorGradiant;
92
+ ctx.fillRect(0, 0, 300, 150);
93
+ const transparentGradiant = ctx.createLinearGradient(0, 0, 0, 150);
94
+ transparentGradiant.addColorStop(0, 'transparent');
95
+ transparentGradiant.addColorStop(1, '#000');
96
+ ctx.fillStyle = transparentGradiant;
97
+ ctx.fillRect(0, 0, 300, 150);
98
+ if (isPresetColorRef.current) {
99
+ if (typeof updateIsPresetColor === 'function') {
100
+ updateIsPresetColor(false);
101
+ }
102
+ return;
103
+ }
104
+ setColor();
105
+ }, [hueColor, setColor, updateIsPresetColor]);
106
+ const handleStartDrag = useCallback(() => {
107
+ if (typeof updateShouldGetCoordinates === 'function') {
108
+ updateShouldGetCoordinates(false);
109
+ }
110
+ canDrag.current = true;
111
+ }, [updateShouldGetCoordinates]);
112
+ useEffect(() => {
113
+ if (selectedColor && shouldGetCoordinatesRef.current) {
114
+ const cords = getCoordinatesFromColor({
115
+ color: selectedColor,
116
+ canvas: canvasRef,
117
+ tolerance: 10
118
+ });
119
+ if (cords) {
120
+ x.set(cords.x);
121
+ y.set(cords.y);
122
+ }
123
+ }
124
+ }, [selectedColor, x, y]);
125
+ const handleDrag = useCallback(() => {
126
+ setColor();
127
+ }, [setColor]);
128
+ const handleClick = useCallback(event => {
129
+ if (typeof updateShouldGetCoordinates === 'function') {
130
+ updateShouldGetCoordinates(false);
131
+ }
132
+ const {
133
+ left,
134
+ top
135
+ } = event.target.getBoundingClientRect();
136
+ x.set(event.clientX - left - 10);
137
+ y.set(event.clientY - top - 10);
138
+ setColor();
139
+ }, [setColor, updateShouldGetCoordinates, x, y]);
140
+ const handlePointerUp = useCallback(() => {
141
+ canDrag.current = false;
142
+ if (typeof updateShouldGetCoordinates === 'function') {
143
+ updateShouldGetCoordinates(true);
144
+ }
145
+ if (typeof updateShouldCallOnSelect === 'function') {
146
+ updateShouldCallOnSelect(true);
147
+ }
148
+ }, [updateShouldCallOnSelect, updateShouldGetCoordinates]);
149
+ const handleMouseMove = useCallback(event => {
150
+ if (canDrag.current && pseudoRef.current) {
151
+ const {
152
+ left,
153
+ top
154
+ } = pseudoRef.current.getBoundingClientRect();
155
+ let xCords = event.clientX - left - 10;
156
+ let yCords = event.clientY - top - 10;
157
+ switch (true) {
158
+ case xCords > 300:
159
+ xCords = 300;
160
+ break;
161
+ case xCords < 0:
162
+ xCords = 0;
163
+ break;
164
+ default:
165
+ break;
166
+ }
167
+ switch (true) {
168
+ case yCords > 150:
169
+ yCords = 150;
170
+ break;
171
+ case yCords < 0:
172
+ yCords = 0;
173
+ break;
174
+ default:
175
+ break;
176
+ }
177
+ x.set(xCords);
178
+ y.set(yCords);
179
+ setColor();
180
+ }
181
+ }, [setColor, x, y]);
182
+ useEffect(() => {
183
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
184
+ // @ts-ignore
185
+ window.addEventListener('mousemove', handleMouseMove);
186
+ window.addEventListener('pointerup', handlePointerUp);
187
+ return () => {
188
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
189
+ // @ts-ignore
190
+ window.removeEventListener('mousemove', handleMouseMove);
191
+ window.removeEventListener('pointerup', handlePointerUp);
192
+ };
193
+ }, [handleMouseMove, handlePointerUp]);
194
+ return useMemo(() => /*#__PURE__*/React.createElement(StyledColorArea, null, /*#__PURE__*/React.createElement(StyledColorAreaCanvas, {
195
+ ref: canvasRef
196
+ }), /*#__PURE__*/React.createElement(StyledColorAreaPseudo, {
197
+ ref: pseudoRef,
198
+ onPointerDown: handleStartDrag,
199
+ onClick: handleClick
200
+ }, /*#__PURE__*/React.createElement(StyledMotionColorAreaPointer, {
201
+ drag: true,
202
+ dragConstraints: pseudoRef,
203
+ style: {
204
+ x,
205
+ y
206
+ },
207
+ dragElastic: false,
208
+ dragMomentum: false,
209
+ dragControls: dragControls,
210
+ onDrag: handleDrag
211
+ }))), [dragControls, handleClick, handleDrag, handleStartDrag, x, y]);
212
+ };
213
+ ColorArea.displayName = 'ColorArea';
214
+ export default ColorArea;
215
+ //# sourceMappingURL=ColorArea.js.map