@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,69 @@
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 StyledColorPickerWrapperInfoColorWrapper = styled.div`
9
+ border-radius: ${_ref => {
10
+ let {
11
+ $shouldShowRoundPreviewColor
12
+ } = _ref;
13
+ return $shouldShowRoundPreviewColor ? '50px' : '0px';
14
+ }};
15
+ border: 1px ${_ref2 => {
16
+ let {
17
+ theme
18
+ } = _ref2;
19
+ return theme.text;
20
+ }} solid;
21
+
22
+ width: 15px;
23
+ aspect-ratio: 1;
24
+ position: relative;
25
+
26
+ overflow: hidden;
27
+ `;
28
+ export const StyledColorPickerWrapperInfoColorBackground = styled.div`
29
+ position: absolute;
30
+ background-color: #fff;
31
+ background-image: linear-gradient(45deg, #a0a0a0 25%, #0000 0),
32
+ linear-gradient(-45deg, #a0a0a0 25%, #0000 0), linear-gradient(45deg, #0000 75%, #a0a0a0 0),
33
+ linear-gradient(-45deg, #0000 75%, #a0a0a0 0);
34
+ background-position:
35
+ 0 0,
36
+ 0 4px,
37
+ 4px -4px,
38
+ -4px 0;
39
+ background-repeat: repeat;
40
+ background-size: 8px 8px;
41
+ height: 100%;
42
+ width: 100%;
43
+ `;
44
+ export const StyledColorPickerWrapperInfoColor = styled.div.attrs(_ref3 => {
45
+ let {
46
+ $color
47
+ } = _ref3;
48
+ return {
49
+ style: {
50
+ backgroundColor: $color
51
+ }
52
+ };
53
+ })`
54
+ height: 100%;
55
+ width: 100%;
56
+ position: absolute;
57
+ `;
58
+ export const StyledColorPickerWrapperInfoText = styled.div`
59
+ border-bottom-style: dashed;
60
+ border-bottom-width: 1px;
61
+
62
+ color: ${_ref4 => {
63
+ let {
64
+ theme
65
+ } = _ref4;
66
+ return theme.text;
67
+ }};
68
+ `;
69
+ //# sourceMappingURL=ColorPickerWrapper.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorPickerWrapper.styles.js","names":["styled","StyledColorPickerWrapper","div","StyledColorPickerWrapperInfo","StyledColorPickerWrapperInfoColorWrapper","_ref","$shouldShowRoundPreviewColor","_ref2","theme","text","StyledColorPickerWrapperInfoColorBackground","StyledColorPickerWrapperInfoColor","attrs","_ref3","$color","style","backgroundColor","StyledColorPickerWrapperInfoText","_ref4"],"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<{\n $color?: string;\n}>;\n\ntype StyledColorPickerWrapperInfoColorWrapperProps = WithTheme<{\n $shouldShowRoundPreviewColor: boolean;\n}>;\n\nexport const StyledColorPickerWrapperInfoColorWrapper = styled.div<StyledColorPickerWrapperInfoColorWrapperProps>`\n border-radius: ${({ $shouldShowRoundPreviewColor }) =>\n $shouldShowRoundPreviewColor ? '50px' : '0px'};\n border: 1px ${({ theme }: StyledColorPickerWrapperInfoColorProps) => theme.text} solid;\n\n width: 15px;\n aspect-ratio: 1;\n position: relative;\n\n overflow: hidden;\n`;\n\nexport const StyledColorPickerWrapperInfoColorBackground = styled.div`\n position: absolute;\n background-color: #fff;\n background-image: linear-gradient(45deg, #a0a0a0 25%, #0000 0),\n linear-gradient(-45deg, #a0a0a0 25%, #0000 0), linear-gradient(45deg, #0000 75%, #a0a0a0 0),\n linear-gradient(-45deg, #0000 75%, #a0a0a0 0);\n background-position:\n 0 0,\n 0 4px,\n 4px -4px,\n -4px 0;\n background-repeat: repeat;\n background-size: 8px 8px;\n height: 100%;\n width: 100%;\n`;\n\nexport const StyledColorPickerWrapperInfoColor = styled.div.attrs<StyledColorPickerWrapperInfoColorProps>(\n ({ $color }) => ({\n style: {\n backgroundColor: $color,\n },\n }),\n)`\n height: 100%;\n width: 100%;\n position: absolute;\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,GAAG,EAAE;AAEpD,OAAO,MAAMC,4BAA4B,GAAGH,MAAM,CAACE,GAAG;AACtD;AACA;AACA;AACA,CAAC;AAUD,OAAO,MAAME,wCAAwC,GAAGJ,MAAM,CAACE,GAAkD;AACjH,qBAAqBG,IAAA;EAAA,IAAC;IAAEC;EAA6B,CAAC,GAAAD,IAAA;EAAA,OAC9CC,4BAA4B,GAAG,MAAM,GAAG,KAAK;AAAA;AACrD,kBAAkBC,KAAA;EAAA,IAAC;IAAEC;EAA8C,CAAC,GAAAD,KAAA;EAAA,OAAKC,KAAK,CAACC,IAAI;AAAA;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,2CAA2C,GAAGV,MAAM,CAACE,GAAG;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMS,iCAAiC,GAAGX,MAAM,CAACE,GAAG,CAACU,KAAK,CAC7DC,KAAA;EAAA,IAAC;IAAEC;EAAO,CAAC,GAAAD,KAAA;EAAA,OAAM;IACbE,KAAK,EAAE;MACHC,eAAe,EAAEF;IACrB;EACJ,CAAC;AAAA,CACL,CAAC;AACD;AACA;AACA;AACA,CAAC;AAID,OAAO,MAAMG,gCAAgC,GAAGjB,MAAM,CAACE,GAA0C;AACjG;AACA;AACA;AACA,aAAagB,KAAA;EAAA,IAAC;IAAEV;EAA6C,CAAC,GAAAU,KAAA;EAAA,OAAKV,KAAK,CAACC,IAAI;AAAA;AAC7E,CAAC","ignoreList":[]}
@@ -0,0 +1,28 @@
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
+ shouldUseSiteColors,
15
+ shouldShowMoreOptions
16
+ } = _ref;
17
+ return /*#__PURE__*/React.createElement(StyledColorPickerPopup, null, /*#__PURE__*/React.createElement(ColorArea, null), /*#__PURE__*/React.createElement(Sliders, {
18
+ shouldShowTransparencySlider: shouldShowTransparencySlider
19
+ }), shouldShowPresetColors && /*#__PURE__*/React.createElement(PresetColors, {
20
+ presetColors: presetColors,
21
+ shouldUseSiteColors: shouldUseSiteColors,
22
+ onPresetColorAdd: onPresetColorAdd,
23
+ onPresetColorRemove: onPresetColorRemove
24
+ }), shouldShowMoreOptions && /*#__PURE__*/React.createElement(MoreOptions, null));
25
+ };
26
+ ColorPickerPopup.displayName = 'ColorPickerPopup';
27
+ export default ColorPickerPopup;
28
+ //# 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","shouldUseSiteColors","shouldShowMoreOptions","createElement","displayName"],"sources":["../../../../src/components/color-picker-popup/ColorPickerPopup.tsx"],"sourcesContent":["import React from 'react';\nimport type { IPresetColor } from '../../types/colorPicker';\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 shouldUseSiteColors: boolean;\n}\n\nconst ColorPickerPopup = ({\n presetColors,\n onPresetColorRemove,\n onPresetColorAdd,\n shouldShowPresetColors,\n shouldShowTransparencySlider,\n shouldUseSiteColors,\n shouldShowMoreOptions,\n}: ColorPickerPopupProps) => (\n <StyledColorPickerPopup>\n <ColorArea />\n <Sliders shouldShowTransparencySlider={shouldShowTransparencySlider} />\n {shouldShowPresetColors && (\n <PresetColors\n presetColors={presetColors}\n shouldUseSiteColors={shouldUseSiteColors}\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;AAYvC,MAAMC,gBAAgB,GAAGC,IAAA;EAAA,IAAC;IACtBC,YAAY;IACZC,mBAAmB;IACnBC,gBAAgB;IAChBC,sBAAsB;IACtBC,4BAA4B;IAC5BC,mBAAmB;IACnBC;EACmB,CAAC,GAAAP,IAAA;EAAA,oBACpBP,KAAA,CAAAe,aAAA,CAACb,sBAAsB,qBACnBF,KAAA,CAAAe,aAAA,CAACd,SAAS,MAAE,CAAC,eACbD,KAAA,CAAAe,aAAA,CAACV,OAAO;IAACO,4BAA4B,EAAEA;EAA6B,CAAE,CAAC,EACtED,sBAAsB,iBACnBX,KAAA,CAAAe,aAAA,CAACX,YAAY;IACTI,YAAY,EAAEA,YAAa;IAC3BK,mBAAmB,EAAEA,mBAAoB;IACzCH,gBAAgB,EAAEA,gBAAiB;IACnCD,mBAAmB,EAAEA;EAAoB,CAC5C,CACJ,EACAK,qBAAqB,iBAAId,KAAA,CAAAe,aAAA,CAACZ,WAAW,MAAE,CACpB,CAAC;AAAA,CAC5B;AAEDG,gBAAgB,CAACU,WAAW,GAAG,kBAAkB;AAEjD,eAAeV,gBAAgB","ignoreList":[]}
@@ -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-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,GAAG;AAChD;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,237 @@
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 { setRefreshScrollEnabled } from 'chayns-api';
5
+ import { useDragControls, useMotionValue } from 'framer-motion';
6
+ import { extractRgbValues, getColorFromCoordinates, getCoordinatesFromColor, rgbToHsv } from '../../../utils/color';
7
+ import { ColorPickerContext } from '../../ColorPickerProvider';
8
+ const ColorArea = () => {
9
+ const {
10
+ selectedColor,
11
+ updateSelectedColor,
12
+ updateIsPresetColor,
13
+ isPresetColor,
14
+ shouldGetCoordinates,
15
+ canGetColorFromArea,
16
+ updateShouldGetCoordinates,
17
+ updateShouldCallOnSelect,
18
+ hueColor
19
+ } = useContext(ColorPickerContext);
20
+ const [opacity, setOpacity] = useState(1);
21
+ const [scale, setScale] = useState({
22
+ scaleX: 0,
23
+ scaleY: 0
24
+ });
25
+ const isPresetColorRef = useRef(false);
26
+ const shouldGetCoordinatesRef = useRef(false);
27
+ const canDrag = useRef(false);
28
+ const canvasRef = useRef(null);
29
+ const pseudoRef = useRef(null);
30
+ const dragControls = useDragControls();
31
+ const x = useMotionValue(0);
32
+ const y = useMotionValue(0);
33
+ useEffect(() => {
34
+ isPresetColorRef.current = isPresetColor ?? false;
35
+ }, [isPresetColor]);
36
+ useEffect(() => {
37
+ shouldGetCoordinatesRef.current = shouldGetCoordinates ?? true;
38
+ }, [shouldGetCoordinates]);
39
+ useEffect(() => {
40
+ if (selectedColor) {
41
+ const {
42
+ a
43
+ } = extractRgbValues(selectedColor);
44
+ setOpacity(a);
45
+ }
46
+ }, [selectedColor]);
47
+ useEffect(() => {
48
+ const canvas = canvasRef.current;
49
+ if (!canvas) {
50
+ return;
51
+ }
52
+ const rect = canvas.getBoundingClientRect();
53
+ const scaleX = canvas.width / rect.width;
54
+ const scaleY = canvas.height / rect.height;
55
+ setScale({
56
+ scaleX,
57
+ scaleY
58
+ });
59
+ }, []);
60
+ const setColor = useCallback(() => {
61
+ const xCord = x.get();
62
+ const yCord = y.get();
63
+ if (typeof updateSelectedColor === 'function') {
64
+ const color = getColorFromCoordinates({
65
+ coordinates: {
66
+ x: xCord,
67
+ y: yCord
68
+ },
69
+ canvas: canvasRef,
70
+ opacity,
71
+ scale
72
+ });
73
+ if (color === 'transparent') {
74
+ return;
75
+ }
76
+ updateSelectedColor(color);
77
+ }
78
+ }, [opacity, scale, updateSelectedColor, x, y]);
79
+ useEffect(() => {
80
+ const ctx = canvasRef.current?.getContext('2d');
81
+ if (!ctx) {
82
+ return;
83
+ }
84
+ const hsv = rgbToHsv(hueColor);
85
+ const hex = hsvToHex({
86
+ h: hsv?.h ?? 1,
87
+ s: 1,
88
+ v: 1
89
+ });
90
+ const colorGradiant = ctx.createLinearGradient(0, 0, 300, 0);
91
+ colorGradiant.addColorStop(0, '#fff');
92
+ colorGradiant.addColorStop(1, hex ?? 'red');
93
+ ctx.fillStyle = colorGradiant;
94
+ ctx.fillRect(0, 0, 300, 150);
95
+ const transparentGradiant = ctx.createLinearGradient(0, 0, 0, 150);
96
+ transparentGradiant.addColorStop(0, 'transparent');
97
+ transparentGradiant.addColorStop(1, '#000');
98
+ ctx.fillStyle = transparentGradiant;
99
+ ctx.fillRect(0, 0, 300, 150);
100
+ if (isPresetColorRef.current) {
101
+ if (typeof updateIsPresetColor === 'function') {
102
+ updateIsPresetColor(false);
103
+ }
104
+ return;
105
+ }
106
+ if (canGetColorFromArea) {
107
+ setColor();
108
+ }
109
+ }, [canGetColorFromArea, hueColor, setColor, updateIsPresetColor]);
110
+ useEffect(() => {
111
+ if (selectedColor && shouldGetCoordinatesRef.current) {
112
+ const cords = getCoordinatesFromColor({
113
+ color: selectedColor,
114
+ canvas: canvasRef,
115
+ tolerance: 10
116
+ });
117
+ if (cords) {
118
+ x.set(cords.x);
119
+ y.set(cords.y);
120
+ }
121
+ }
122
+ }, [selectedColor, x, y]);
123
+ const handleDrag = useCallback(() => {
124
+ setColor();
125
+ }, [setColor]);
126
+ const handleClick = useCallback(event => {
127
+ if (typeof updateShouldGetCoordinates === 'function') {
128
+ updateShouldGetCoordinates(false);
129
+ }
130
+ const {
131
+ left,
132
+ top
133
+ } = event.target.getBoundingClientRect();
134
+ x.set(event.clientX - left - 10);
135
+ y.set(event.clientY - top - 10);
136
+ setColor();
137
+ }, [setColor, updateShouldGetCoordinates, x, y]);
138
+ const handlePointerUp = useCallback(() => {
139
+ canDrag.current = false;
140
+ void setRefreshScrollEnabled(true);
141
+ if (typeof updateShouldGetCoordinates === 'function') {
142
+ updateShouldGetCoordinates(true);
143
+ }
144
+ if (typeof updateShouldCallOnSelect === 'function') {
145
+ updateShouldCallOnSelect(true);
146
+ }
147
+ }, [updateShouldCallOnSelect, updateShouldGetCoordinates]);
148
+ const move = useCallback((xCords, yCords) => {
149
+ let newXCords = xCords;
150
+ let newYCords = yCords;
151
+ switch (true) {
152
+ case xCords > 300:
153
+ newXCords = 300;
154
+ break;
155
+ case xCords < 0:
156
+ newXCords = 0;
157
+ break;
158
+ default:
159
+ break;
160
+ }
161
+ switch (true) {
162
+ case yCords > 150:
163
+ newYCords = 150;
164
+ break;
165
+ case yCords < 0:
166
+ newYCords = 0;
167
+ break;
168
+ default:
169
+ break;
170
+ }
171
+ x.set(newXCords);
172
+ y.set(newYCords);
173
+ setColor();
174
+ }, [setColor, x, y]);
175
+ const handleMouseMove = useCallback(event => {
176
+ if (canDrag.current && pseudoRef.current) {
177
+ const {
178
+ left,
179
+ top
180
+ } = pseudoRef.current.getBoundingClientRect();
181
+ const xCords = event.clientX - left - 10;
182
+ const yCords = event.clientY - top - 10;
183
+ move(xCords, yCords);
184
+ }
185
+ }, [move]);
186
+ const handleTouchMove = useCallback(event => {
187
+ if (canDrag.current && pseudoRef.current) {
188
+ event.preventDefault();
189
+ void setRefreshScrollEnabled(false);
190
+ const {
191
+ left,
192
+ top
193
+ } = pseudoRef.current.getBoundingClientRect();
194
+ const xCords = event.changedTouches[0] ? event.changedTouches[0].clientX - left - 10 : event.pageX;
195
+ const yCords = event.changedTouches[0] ? event.changedTouches[0].clientY - top - 10 : event.pageY;
196
+ move(xCords, yCords);
197
+ }
198
+ }, [move]);
199
+ const handleStartDrag = useCallback(() => {
200
+ if (typeof updateShouldGetCoordinates === 'function') {
201
+ updateShouldGetCoordinates(false);
202
+ }
203
+ canDrag.current = true;
204
+ window.addEventListener('mousemove', handleMouseMove);
205
+ window.addEventListener('touchmove', handleTouchMove);
206
+ const endTouching = () => {
207
+ handlePointerUp();
208
+ window.removeEventListener('mousemove', handleMouseMove);
209
+ window.removeEventListener('touchmove', handleTouchMove);
210
+ window.removeEventListener('pointerup', endTouching);
211
+ window.removeEventListener('touchend', endTouching);
212
+ };
213
+ window.addEventListener('pointerup', endTouching);
214
+ window.addEventListener('touchend', endTouching);
215
+ }, [handleMouseMove, handlePointerUp, handleTouchMove, updateShouldGetCoordinates]);
216
+ return useMemo(() => /*#__PURE__*/React.createElement(StyledColorArea, null, /*#__PURE__*/React.createElement(StyledColorAreaCanvas, {
217
+ ref: canvasRef
218
+ }), /*#__PURE__*/React.createElement(StyledColorAreaPseudo, {
219
+ ref: pseudoRef,
220
+ onPointerDown: handleStartDrag,
221
+ onClick: handleClick
222
+ }, /*#__PURE__*/React.createElement(StyledMotionColorAreaPointer, {
223
+ drag: true,
224
+ dragConstraints: pseudoRef,
225
+ style: {
226
+ x,
227
+ y
228
+ },
229
+ dragElastic: false,
230
+ dragMomentum: false,
231
+ dragControls: dragControls,
232
+ onDrag: handleDrag
233
+ }))), [dragControls, handleClick, handleDrag, handleStartDrag, x, y]);
234
+ };
235
+ ColorArea.displayName = 'ColorArea';
236
+ export default ColorArea;
237
+ //# sourceMappingURL=ColorArea.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorArea.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","StyledColorArea","StyledColorAreaCanvas","StyledColorAreaPseudo","StyledMotionColorAreaPointer","hsvToHex","setRefreshScrollEnabled","useDragControls","useMotionValue","extractRgbValues","getColorFromCoordinates","getCoordinatesFromColor","rgbToHsv","ColorPickerContext","ColorArea","selectedColor","updateSelectedColor","updateIsPresetColor","isPresetColor","shouldGetCoordinates","canGetColorFromArea","updateShouldGetCoordinates","updateShouldCallOnSelect","hueColor","opacity","setOpacity","scale","setScale","scaleX","scaleY","isPresetColorRef","shouldGetCoordinatesRef","canDrag","canvasRef","pseudoRef","dragControls","x","y","current","a","canvas","rect","getBoundingClientRect","width","height","setColor","xCord","get","yCord","color","coordinates","ctx","getContext","hsv","hex","h","s","v","colorGradiant","createLinearGradient","addColorStop","fillStyle","fillRect","transparentGradiant","cords","tolerance","set","handleDrag","handleClick","event","left","top","target","clientX","clientY","handlePointerUp","move","xCords","yCords","newXCords","newYCords","handleMouseMove","handleTouchMove","preventDefault","changedTouches","pageX","pageY","handleStartDrag","window","addEventListener","endTouching","removeEventListener","createElement","ref","onPointerDown","onClick","drag","dragConstraints","style","dragElastic","dragMomentum","onDrag","displayName"],"sources":["../../../../../src/components/color-picker-popup/color-area/ColorArea.tsx"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport {\n StyledColorArea,\n StyledColorAreaCanvas,\n StyledColorAreaPseudo,\n StyledMotionColorAreaPointer,\n} from './ColorArea.styles';\n\nimport { hsvToHex } from '@chayns/colors';\nimport { setRefreshScrollEnabled } from 'chayns-api';\nimport { useDragControls, useMotionValue } from 'framer-motion';\nimport type { Scale } from '../../../types/colorPicker';\nimport {\n extractRgbValues,\n getColorFromCoordinates,\n getCoordinatesFromColor,\n rgbToHsv,\n} from '../../../utils/color';\nimport { ColorPickerContext } from '../../ColorPickerProvider';\n\nconst ColorArea = () => {\n const {\n selectedColor,\n updateSelectedColor,\n updateIsPresetColor,\n isPresetColor,\n shouldGetCoordinates,\n canGetColorFromArea,\n updateShouldGetCoordinates,\n updateShouldCallOnSelect,\n hueColor,\n } = useContext(ColorPickerContext);\n\n const [opacity, setOpacity] = useState<number>(1);\n const [scale, setScale] = useState<Scale>({ scaleX: 0, scaleY: 0 });\n\n const isPresetColorRef = useRef(false);\n const shouldGetCoordinatesRef = useRef(false);\n const canDrag = useRef(false);\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const pseudoRef = useRef<HTMLDivElement>(null);\n\n const dragControls = useDragControls();\n\n const x = useMotionValue(0);\n const y = useMotionValue(0);\n\n useEffect(() => {\n isPresetColorRef.current = isPresetColor ?? false;\n }, [isPresetColor]);\n\n useEffect(() => {\n shouldGetCoordinatesRef.current = shouldGetCoordinates ?? true;\n }, [shouldGetCoordinates]);\n\n useEffect(() => {\n if (selectedColor) {\n const { a } = extractRgbValues(selectedColor);\n\n setOpacity(a);\n }\n }, [selectedColor]);\n\n useEffect(() => {\n const canvas = canvasRef.current;\n\n if (!canvas) {\n return;\n }\n\n const rect = canvas.getBoundingClientRect();\n\n const scaleX = canvas.width / rect.width;\n const scaleY = canvas.height / rect.height;\n\n setScale({ scaleX, scaleY });\n }, []);\n\n const setColor = useCallback(() => {\n const xCord = x.get();\n const yCord = y.get();\n\n if (typeof updateSelectedColor === 'function') {\n const color = getColorFromCoordinates({\n coordinates: {\n x: xCord,\n y: yCord,\n },\n canvas: canvasRef,\n opacity,\n scale,\n });\n\n if (color === 'transparent') {\n return;\n }\n\n updateSelectedColor(color);\n }\n }, [opacity, scale, updateSelectedColor, x, y]);\n\n useEffect(() => {\n const ctx = canvasRef.current?.getContext('2d');\n\n if (!ctx) {\n return;\n }\n\n const hsv = rgbToHsv(hueColor);\n\n const hex = hsvToHex({ h: hsv?.h ?? 1, s: 1, v: 1 });\n\n const colorGradiant = ctx.createLinearGradient(0, 0, 300, 0);\n colorGradiant.addColorStop(0, '#fff');\n colorGradiant.addColorStop(1, hex ?? 'red');\n\n ctx.fillStyle = colorGradiant;\n ctx.fillRect(0, 0, 300, 150);\n\n const transparentGradiant = ctx.createLinearGradient(0, 0, 0, 150);\n\n transparentGradiant.addColorStop(0, 'transparent');\n transparentGradiant.addColorStop(1, '#000');\n\n ctx.fillStyle = transparentGradiant;\n ctx.fillRect(0, 0, 300, 150);\n\n if (isPresetColorRef.current) {\n if (typeof updateIsPresetColor === 'function') {\n updateIsPresetColor(false);\n }\n\n return;\n }\n\n if (canGetColorFromArea) {\n setColor();\n }\n }, [canGetColorFromArea, hueColor, setColor, updateIsPresetColor]);\n\n useEffect(() => {\n if (selectedColor && shouldGetCoordinatesRef.current) {\n const cords = getCoordinatesFromColor({\n color: selectedColor,\n canvas: canvasRef,\n tolerance: 10,\n });\n\n if (cords) {\n x.set(cords.x);\n y.set(cords.y);\n }\n }\n }, [selectedColor, x, y]);\n\n const handleDrag = useCallback(() => {\n setColor();\n }, [setColor]);\n\n const handleClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (typeof updateShouldGetCoordinates === 'function') {\n updateShouldGetCoordinates(false);\n }\n\n const { left, top } = (event.target as HTMLDivElement).getBoundingClientRect();\n\n x.set(event.clientX - left - 10);\n y.set(event.clientY - top - 10);\n\n setColor();\n },\n [setColor, updateShouldGetCoordinates, x, y],\n );\n\n const handlePointerUp = useCallback(() => {\n canDrag.current = false;\n\n void setRefreshScrollEnabled(true);\n\n if (typeof updateShouldGetCoordinates === 'function') {\n updateShouldGetCoordinates(true);\n }\n\n if (typeof updateShouldCallOnSelect === 'function') {\n updateShouldCallOnSelect(true);\n }\n }, [updateShouldCallOnSelect, updateShouldGetCoordinates]);\n\n const move = useCallback(\n (xCords: number, yCords: number) => {\n let newXCords = xCords;\n let newYCords = yCords;\n\n switch (true) {\n case xCords > 300:\n newXCords = 300;\n break;\n case xCords < 0:\n newXCords = 0;\n break;\n default:\n break;\n }\n\n switch (true) {\n case yCords > 150:\n newYCords = 150;\n break;\n case yCords < 0:\n newYCords = 0;\n break;\n default:\n break;\n }\n\n x.set(newXCords);\n y.set(newYCords);\n\n setColor();\n },\n [setColor, x, y],\n );\n\n const handleMouseMove = useCallback(\n (event: MouseEvent) => {\n if (canDrag.current && pseudoRef.current) {\n const { left, top } = pseudoRef.current.getBoundingClientRect();\n\n const xCords = event.clientX - left - 10;\n const yCords = event.clientY - top - 10;\n\n move(xCords, yCords);\n }\n },\n [move],\n );\n\n const handleTouchMove = useCallback(\n (event: TouchEvent) => {\n if (canDrag.current && pseudoRef.current) {\n event.preventDefault();\n\n void setRefreshScrollEnabled(false);\n\n const { left, top } = pseudoRef.current.getBoundingClientRect();\n\n const xCords = event.changedTouches[0]\n ? event.changedTouches[0].clientX - left - 10\n : (event as unknown as { pageX: number }).pageX;\n const yCords = event.changedTouches[0]\n ? event.changedTouches[0].clientY - top - 10\n : (event as unknown as { pageY: number }).pageY;\n\n move(xCords, yCords);\n }\n },\n [move],\n );\n\n const handleStartDrag = useCallback(() => {\n if (typeof updateShouldGetCoordinates === 'function') {\n updateShouldGetCoordinates(false);\n }\n\n canDrag.current = true;\n\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('touchmove', handleTouchMove);\n\n const endTouching = () => {\n handlePointerUp();\n\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('touchmove', handleTouchMove);\n window.removeEventListener('pointerup', endTouching);\n window.removeEventListener('touchend', endTouching);\n };\n\n window.addEventListener('pointerup', endTouching);\n window.addEventListener('touchend', endTouching);\n }, [handleMouseMove, handlePointerUp, handleTouchMove, updateShouldGetCoordinates]);\n\n return useMemo(\n () => (\n <StyledColorArea>\n <StyledColorAreaCanvas ref={canvasRef} />\n <StyledColorAreaPseudo\n ref={pseudoRef}\n onPointerDown={handleStartDrag}\n onClick={handleClick}\n >\n <StyledMotionColorAreaPointer\n drag\n dragConstraints={pseudoRef}\n style={{ x, y }}\n dragElastic={false}\n dragMomentum={false}\n dragControls={dragControls}\n onDrag={handleDrag}\n />\n </StyledColorAreaPseudo>\n </StyledColorArea>\n ),\n [dragControls, handleClick, handleDrag, handleStartDrag, x, y],\n );\n};\n\nColorArea.displayName = 'ColorArea';\n\nexport default ColorArea;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,38 @@
1
+ import { motion } from 'framer-motion';
2
+ import styled from 'styled-components';
3
+ export const StyledColorArea = styled.div`
4
+ height: 150px;
5
+ width: 300px;
6
+ position: relative;
7
+ user-select: none;
8
+ overflow: hidden;
9
+ cursor: crosshair;
10
+ `;
11
+ export const StyledColorAreaCanvas = styled.canvas`
12
+ user-select: none;
13
+ `;
14
+ export const StyledColorAreaPseudo = styled.div`
15
+ position: absolute;
16
+ top: -10px;
17
+ left: -10px;
18
+ touch-action: none;
19
+ user-select: none;
20
+
21
+ height: 170px;
22
+ width: 320px;
23
+ `;
24
+ export const StyledMotionColorAreaPointer = styled(motion.div)`
25
+ position: absolute;
26
+ border-radius: 100%;
27
+ border: 2px solid white;
28
+ width: 20px;
29
+ height: 20px;
30
+ box-shadow:
31
+ 0 0 5px 0 rgba(0, 0, 0, 0.5),
32
+ 0 0 3px 0 rgba(0, 0, 0, 0.5) inset;
33
+ pointer-events: none;
34
+ user-select: none;
35
+ top: 0;
36
+ left: 0;
37
+ `;
38
+ //# sourceMappingURL=ColorArea.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColorArea.styles.js","names":["motion","styled","StyledColorArea","div","StyledColorAreaCanvas","canvas","StyledColorAreaPseudo","StyledMotionColorAreaPointer"],"sources":["../../../../../src/components/color-picker-popup/color-area/ColorArea.styles.ts"],"sourcesContent":["import { motion } from 'framer-motion';\nimport styled from 'styled-components';\n\nexport const StyledColorArea = styled.div`\n height: 150px;\n width: 300px;\n position: relative;\n user-select: none;\n overflow: hidden;\n cursor: crosshair;\n`;\n\nexport const StyledColorAreaCanvas = styled.canvas`\n user-select: none;\n`;\n\nexport const StyledColorAreaPseudo = styled.div`\n position: absolute;\n top: -10px;\n left: -10px;\n touch-action: none;\n user-select: none;\n\n height: 170px;\n width: 320px;\n`;\n\nexport const StyledMotionColorAreaPointer = styled(motion.div)`\n position: absolute;\n border-radius: 100%;\n border: 2px solid white;\n width: 20px;\n height: 20px;\n box-shadow:\n 0 0 5px 0 rgba(0, 0, 0, 0.5),\n 0 0 3px 0 rgba(0, 0, 0, 0.5) inset;\n pointer-events: none;\n user-select: none;\n top: 0;\n left: 0;\n`;\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,eAAe;AACtC,OAAOC,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,eAAe,GAAGD,MAAM,CAACE,GAAG;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAGH,MAAM,CAACI,MAAM;AAClD;AACA,CAAC;AAED,OAAO,MAAMC,qBAAqB,GAAGL,MAAM,CAACE,GAAG;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMI,4BAA4B,GAAGN,MAAM,CAACD,MAAM,CAACG,GAAG,CAAC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,82 @@
1
+ import { Accordion, AccordionGroup, AreaContext } from '@chayns-components/core';
2
+ import { isHex } from '@chayns/colors';
3
+ import React, { useContext, useEffect, useMemo, useState } from 'react';
4
+ import { extractRgbValues, hexToRgb, isValidRGBA, rgbToHex } from '../../../utils/color';
5
+ import { ColorPickerContext } from '../../ColorPickerProvider';
6
+ import { StyledMoreOptions, StyledMoreOptionsInput, StyledMoreOptionsInputWrapper } from './MoreOptions.styles';
7
+ const MoreOptions = () => {
8
+ const {
9
+ selectedColor,
10
+ updateSelectedColor,
11
+ updateShouldCallOnSelect
12
+ } = useContext(ColorPickerContext);
13
+ const areaProvider = useContext(AreaContext);
14
+ const [tmpHexValue, setTmpHexValue] = useState('');
15
+ const [tmpRgbValue, setTmpRgbValue] = useState('');
16
+ const [isHexInvalid, setIsHexInvalid] = useState(false);
17
+ const [isRgbInvalid, setIsRgbInvalid] = useState(false);
18
+ const shouldChangeColor = useMemo(() => areaProvider.shouldChangeColor ?? false, [areaProvider.shouldChangeColor]);
19
+ const handleHexChange = event => {
20
+ setTmpHexValue(event.target.value);
21
+ const isValid = isHex(event.target.value);
22
+ setIsHexInvalid(!isValid);
23
+ if (typeof updateSelectedColor === 'function' && isValid) {
24
+ const {
25
+ r,
26
+ g,
27
+ b,
28
+ a
29
+ } = hexToRgb(event.target.value);
30
+ updateSelectedColor(`rgba(${r},${g},${b},${a})`);
31
+ }
32
+ if (typeof updateShouldCallOnSelect === 'function' && isValid) {
33
+ updateShouldCallOnSelect(true);
34
+ }
35
+ };
36
+ const handleRgbChange = event => {
37
+ setTmpRgbValue(event.target.value);
38
+ const isValid = isValidRGBA(event.target.value);
39
+ setIsRgbInvalid(!isValid);
40
+ if (typeof updateSelectedColor === 'function' && isValid) {
41
+ updateSelectedColor(event.target.value);
42
+ }
43
+ if (typeof updateShouldCallOnSelect === 'function' && isValid) {
44
+ updateShouldCallOnSelect(true);
45
+ }
46
+ };
47
+ useEffect(() => {
48
+ if (selectedColor) {
49
+ if (isValidRGBA(selectedColor)) {
50
+ setTmpRgbValue(selectedColor);
51
+ setTmpHexValue(rgbToHex(extractRgbValues(selectedColor ?? '')));
52
+ } else {
53
+ const {
54
+ r,
55
+ g,
56
+ b,
57
+ a
58
+ } = hexToRgb(selectedColor);
59
+ setTmpRgbValue(`rgba(${r},${g},${b},${a})`);
60
+ setTmpHexValue(selectedColor);
61
+ }
62
+ }
63
+ }, [selectedColor]);
64
+ return /*#__PURE__*/React.createElement(StyledMoreOptions, null, /*#__PURE__*/React.createElement(AccordionGroup, {
65
+ isWrapped: true
66
+ }, /*#__PURE__*/React.createElement(Accordion, {
67
+ title: "Erweitert"
68
+ }, /*#__PURE__*/React.createElement(StyledMoreOptionsInputWrapper, null, /*#__PURE__*/React.createElement(StyledMoreOptionsInput, {
69
+ $shouldChangeColor: shouldChangeColor,
70
+ value: tmpHexValue,
71
+ onChange: handleHexChange,
72
+ $isInvalid: isHexInvalid
73
+ }), /*#__PURE__*/React.createElement(StyledMoreOptionsInput, {
74
+ $shouldChangeColor: shouldChangeColor,
75
+ value: tmpRgbValue,
76
+ onChange: handleRgbChange,
77
+ $isInvalid: isRgbInvalid
78
+ })))));
79
+ };
80
+ MoreOptions.displayName = 'MoreOptions';
81
+ export default MoreOptions;
82
+ //# sourceMappingURL=MoreOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoreOptions.js","names":["Accordion","AccordionGroup","AreaContext","isHex","React","useContext","useEffect","useMemo","useState","extractRgbValues","hexToRgb","isValidRGBA","rgbToHex","ColorPickerContext","StyledMoreOptions","StyledMoreOptionsInput","StyledMoreOptionsInputWrapper","MoreOptions","selectedColor","updateSelectedColor","updateShouldCallOnSelect","areaProvider","tmpHexValue","setTmpHexValue","tmpRgbValue","setTmpRgbValue","isHexInvalid","setIsHexInvalid","isRgbInvalid","setIsRgbInvalid","shouldChangeColor","handleHexChange","event","target","value","isValid","r","g","b","a","handleRgbChange","createElement","isWrapped","title","$shouldChangeColor","onChange","$isInvalid","displayName"],"sources":["../../../../../src/components/color-picker-popup/more-options/MoreOptions.tsx"],"sourcesContent":["import { Accordion, AccordionGroup, AreaContext } from '@chayns-components/core';\nimport { isHex } from '@chayns/colors';\nimport React, { useContext, useEffect, useMemo, useState, type ChangeEvent } from 'react';\n\nimport { extractRgbValues, hexToRgb, isValidRGBA, rgbToHex } from '../../../utils/color';\nimport { ColorPickerContext } from '../../ColorPickerProvider';\nimport {\n StyledMoreOptions,\n StyledMoreOptionsInput,\n StyledMoreOptionsInputWrapper,\n} from './MoreOptions.styles';\n\nconst MoreOptions = () => {\n const { selectedColor, updateSelectedColor, updateShouldCallOnSelect } =\n useContext(ColorPickerContext);\n const areaProvider = useContext(AreaContext);\n\n const [tmpHexValue, setTmpHexValue] = useState('');\n const [tmpRgbValue, setTmpRgbValue] = useState('');\n const [isHexInvalid, setIsHexInvalid] = useState(false);\n const [isRgbInvalid, setIsRgbInvalid] = useState(false);\n\n const shouldChangeColor = useMemo(\n () => areaProvider.shouldChangeColor ?? false,\n [areaProvider.shouldChangeColor],\n );\n\n const handleHexChange = (event: ChangeEvent<HTMLInputElement>) => {\n setTmpHexValue(event.target.value);\n\n const isValid = isHex(event.target.value);\n\n setIsHexInvalid(!isValid);\n\n if (typeof updateSelectedColor === 'function' && isValid) {\n const { r, g, b, a } = hexToRgb(event.target.value);\n\n updateSelectedColor(`rgba(${r},${g},${b},${a})`);\n }\n\n if (typeof updateShouldCallOnSelect === 'function' && isValid) {\n updateShouldCallOnSelect(true);\n }\n };\n\n const handleRgbChange = (event: ChangeEvent<HTMLInputElement>) => {\n setTmpRgbValue(event.target.value);\n\n const isValid = isValidRGBA(event.target.value);\n\n setIsRgbInvalid(!isValid);\n\n if (typeof updateSelectedColor === 'function' && isValid) {\n updateSelectedColor(event.target.value);\n }\n\n if (typeof updateShouldCallOnSelect === 'function' && isValid) {\n updateShouldCallOnSelect(true);\n }\n };\n\n useEffect(() => {\n if (selectedColor) {\n if (isValidRGBA(selectedColor)) {\n setTmpRgbValue(selectedColor);\n setTmpHexValue(rgbToHex(extractRgbValues(selectedColor ?? '')));\n } else {\n const { r, g, b, a } = hexToRgb(selectedColor);\n\n setTmpRgbValue(`rgba(${r},${g},${b},${a})`);\n setTmpHexValue(selectedColor);\n }\n }\n }, [selectedColor]);\n\n return (\n <StyledMoreOptions>\n <AccordionGroup isWrapped>\n <Accordion title=\"Erweitert\">\n <StyledMoreOptionsInputWrapper>\n <StyledMoreOptionsInput\n $shouldChangeColor={shouldChangeColor}\n value={tmpHexValue}\n onChange={handleHexChange}\n $isInvalid={isHexInvalid}\n />\n <StyledMoreOptionsInput\n $shouldChangeColor={shouldChangeColor}\n value={tmpRgbValue}\n onChange={handleRgbChange}\n $isInvalid={isRgbInvalid}\n />\n </StyledMoreOptionsInputWrapper>\n </Accordion>\n </AccordionGroup>\n </StyledMoreOptions>\n );\n};\n\nMoreOptions.displayName = 'MoreOptions';\n\nexport default MoreOptions;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ import styled from 'styled-components';
2
+ export const StyledMoreOptions = styled.div``;
3
+ export const StyledMoreOptionsInputWrapper = styled.div`
4
+ display: flex;
5
+ justify-content: space-between;
6
+ gap: 8px;
7
+ align-items: center;
8
+ `;
9
+ export const StyledMoreOptionsInput = styled.input`
10
+ width: 100%;
11
+ border-radius: 3px;
12
+ border: 1px solid
13
+ ${_ref => {
14
+ let {
15
+ theme,
16
+ $isInvalid
17
+ } = _ref;
18
+ return $isInvalid ? theme.wrong : 'rgba(160, 160, 160, 0.3)';
19
+ }};
20
+ background-color: ${_ref2 => {
21
+ let {
22
+ theme,
23
+ $shouldChangeColor
24
+ } = _ref2;
25
+ return theme.colorMode === 'classic' || $shouldChangeColor ? theme['000'] : theme['100'];
26
+ }};
27
+ color: ${_ref3 => {
28
+ let {
29
+ theme,
30
+ $isInvalid
31
+ } = _ref3;
32
+ return $isInvalid ? theme.wrong : theme.text;
33
+ }};
34
+ padding: 8px 10px;
35
+ font-size: 11px;
36
+ `;
37
+ //# sourceMappingURL=MoreOptions.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MoreOptions.styles.js","names":["styled","StyledMoreOptions","div","StyledMoreOptionsInputWrapper","StyledMoreOptionsInput","input","_ref","theme","$isInvalid","wrong","_ref2","$shouldChangeColor","colorMode","_ref3","text"],"sources":["../../../../../src/components/color-picker-popup/more-options/MoreOptions.styles.ts"],"sourcesContent":["import type { WithTheme } from '@chayns-components/core';\nimport styled from 'styled-components';\n\nexport const StyledMoreOptions = styled.div``;\nexport const StyledMoreOptionsInputWrapper = styled.div`\n display: flex;\n justify-content: space-between;\n gap: 8px;\n align-items: center;\n`;\n\ntype StyledMoreOptionsInputProps = WithTheme<{ $isInvalid: boolean; $shouldChangeColor: boolean }>;\n\nexport const StyledMoreOptionsInput = styled.input<StyledMoreOptionsInputProps>`\n width: 100%;\n border-radius: 3px;\n border: 1px solid\n ${({ theme, $isInvalid }: StyledMoreOptionsInputProps) =>\n $isInvalid ? theme.wrong : 'rgba(160, 160, 160, 0.3)'};\n background-color: ${({ theme, $shouldChangeColor }: StyledMoreOptionsInputProps) =>\n theme.colorMode === 'classic' || $shouldChangeColor ? theme['000'] : theme['100']};\n color: ${({ theme, $isInvalid }: StyledMoreOptionsInputProps) =>\n $isInvalid ? theme.wrong : theme.text};\n padding: 8px 10px;\n font-size: 11px;\n`;\n"],"mappings":"AACA,OAAOA,MAAM,MAAM,mBAAmB;AAEtC,OAAO,MAAMC,iBAAiB,GAAGD,MAAM,CAACE,GAAG,EAAE;AAC7C,OAAO,MAAMC,6BAA6B,GAAGH,MAAM,CAACE,GAAG;AACvD;AACA;AACA;AACA;AACA,CAAC;AAID,OAAO,MAAME,sBAAsB,GAAGJ,MAAM,CAACK,KAAkC;AAC/E;AACA;AACA;AACA,UAAUC,IAAA;EAAA,IAAC;IAAEC,KAAK;IAAEC;EAAwC,CAAC,GAAAF,IAAA;EAAA,OACjDE,UAAU,GAAGD,KAAK,CAACE,KAAK,GAAG,0BAA0B;AAAA;AACjE,wBAAwBC,KAAA;EAAA,IAAC;IAAEH,KAAK;IAAEI;EAAgD,CAAC,GAAAD,KAAA;EAAA,OAC3EH,KAAK,CAACK,SAAS,KAAK,SAAS,IAAID,kBAAkB,GAAGJ,KAAK,CAAC,KAAK,CAAC,GAAGA,KAAK,CAAC,KAAK,CAAC;AAAA;AACzF,aAAaM,KAAA;EAAA,IAAC;IAAEN,KAAK;IAAEC;EAAwC,CAAC,GAAAK,KAAA;EAAA,OACxDL,UAAU,GAAGD,KAAK,CAACE,KAAK,GAAGF,KAAK,CAACO,IAAI;AAAA;AAC7C;AACA;AACA,CAAC","ignoreList":[]}