@choice-ui/react 1.7.5 → 1.7.7

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 (335) hide show
  1. package/dist/components/colors/dist/index.d.ts +878 -0
  2. package/dist/components/colors/scripts/build-worker.d.ts +1 -0
  3. package/dist/components/colors/src/check-color-contrast/check-color-contrast-boundary.d.ts +14 -0
  4. package/dist/components/colors/src/check-color-contrast/check-color-contrast-boundary.js +403 -0
  5. package/dist/components/colors/src/check-color-contrast/check-color-contrast-toolbar.d.ts +12 -0
  6. package/dist/components/colors/src/check-color-contrast/check-color-contrast-toolbar.js +285 -0
  7. package/dist/components/colors/src/check-color-contrast/index.d.ts +2 -0
  8. package/dist/components/colors/src/color-area/color-area.d.ts +24 -0
  9. package/dist/components/colors/src/color-area/color-area.js +228 -0
  10. package/dist/components/colors/src/color-area/index.d.ts +1 -0
  11. package/dist/components/colors/src/color-area/tv.d.ts +34 -0
  12. package/dist/components/colors/src/color-area/tv.js +22 -0
  13. package/dist/components/colors/src/color-channel-field/color-channel-field.d.ts +22 -0
  14. package/dist/components/colors/src/color-channel-field/color-channel-field.js +110 -0
  15. package/dist/components/colors/src/color-channel-field/color-channel-input.d.ts +20 -0
  16. package/dist/components/colors/src/color-channel-field/color-channel-input.js +261 -0
  17. package/dist/components/colors/src/color-channel-field/index.d.ts +1 -0
  18. package/dist/components/colors/src/color-channel-field/tv.d.ts +101 -0
  19. package/dist/components/colors/src/color-channel-field/tv.js +85 -0
  20. package/dist/components/colors/src/color-gradients-paint/color-gradient-combined.d.ts +16 -0
  21. package/dist/components/colors/src/color-gradients-paint/color-gradient-combined.js +54 -0
  22. package/dist/components/colors/src/color-gradients-paint/color-gradient-control.d.ts +18 -0
  23. package/dist/components/colors/src/color-gradients-paint/color-gradient-control.js +149 -0
  24. package/dist/components/colors/src/color-gradients-paint/color-gradient-list.d.ts +20 -0
  25. package/dist/components/colors/src/color-gradients-paint/color-gradient-list.js +111 -0
  26. package/dist/components/colors/src/color-gradients-paint/color-gradient-slider.d.ts +18 -0
  27. package/dist/components/colors/src/color-gradients-paint/color-gradient-slider.js +281 -0
  28. package/dist/components/colors/src/color-gradients-paint/color-gradients-paint.d.ts +17 -0
  29. package/dist/components/colors/src/color-gradients-paint/color-gradients-paint.js +162 -0
  30. package/dist/components/colors/src/color-gradients-paint/color-gradients-toolbar.d.ts +10 -0
  31. package/dist/components/colors/src/color-gradients-paint/color-gradients-toolbar.js +62 -0
  32. package/dist/components/colors/src/color-gradients-paint/index.d.ts +3 -0
  33. package/dist/components/colors/src/color-image-paint/color-image-paint.d.ts +13 -0
  34. package/dist/components/colors/src/color-image-paint/color-image-paint.js +236 -0
  35. package/dist/components/colors/src/color-image-paint/color-image-toolbar.d.ts +9 -0
  36. package/dist/components/colors/src/color-image-paint/color-image-toolbar.js +52 -0
  37. package/dist/components/colors/src/color-image-paint/index.d.ts +1 -0
  38. package/dist/components/colors/src/color-image-paint/tv.d.ts +89 -0
  39. package/dist/components/colors/src/color-image-paint/tv.js +45 -0
  40. package/dist/components/colors/src/color-picker-content/color-picker-content.d.ts +18 -0
  41. package/dist/components/colors/src/color-picker-content/color-picker-content.js +58 -0
  42. package/dist/components/colors/src/color-picker-content/color-picker-custom-content.d.ts +16 -0
  43. package/dist/components/colors/src/color-picker-content/color-picker-custom-content.js +75 -0
  44. package/dist/components/colors/src/color-picker-content/index.d.ts +1 -0
  45. package/dist/components/colors/src/color-picker-content/paint-type-selector.d.ts +13 -0
  46. package/dist/components/colors/src/color-picker-content/paint-type-selector.js +50 -0
  47. package/dist/components/colors/src/color-picker-content/tv.d.ts +31 -0
  48. package/dist/components/colors/src/color-picker-content/tv.js +13 -0
  49. package/dist/components/colors/src/color-picker-popover/color-paints-type.d.ts +15 -0
  50. package/dist/components/colors/src/color-picker-popover/color-paints-type.js +56 -0
  51. package/dist/components/colors/src/color-picker-popover/color-picker-popover.d.ts +26 -0
  52. package/dist/components/colors/src/color-picker-popover/color-picker-popover.js +116 -0
  53. package/dist/components/colors/src/color-picker-popover/color-picker-tabs.d.ts +14 -0
  54. package/dist/components/colors/src/color-picker-popover/color-picker-tabs.js +47 -0
  55. package/dist/components/colors/src/color-picker-popover/color-picker-title.d.ts +14 -0
  56. package/dist/components/colors/src/color-picker-popover/color-picker-title.js +30 -0
  57. package/dist/components/colors/src/color-picker-popover/index.d.ts +3 -0
  58. package/dist/components/colors/src/color-picker-popover/tv.d.ts +37 -0
  59. package/dist/components/colors/src/color-slider/color-slider.d.ts +19 -0
  60. package/dist/components/colors/src/color-slider/color-slider.js +185 -0
  61. package/dist/components/colors/src/color-slider/index.d.ts +1 -0
  62. package/dist/components/colors/src/color-slider/tv.d.ts +31 -0
  63. package/dist/components/colors/src/color-slider/tv.js +21 -0
  64. package/dist/components/colors/src/color-solid-paint/color-native-picker.d.ts +8 -0
  65. package/dist/components/colors/src/color-solid-paint/color-native-picker.js +63 -0
  66. package/dist/components/colors/src/color-solid-paint/color-solid-paint.d.ts +25 -0
  67. package/dist/components/colors/src/color-solid-paint/color-solid-paint.js +295 -0
  68. package/dist/components/colors/src/color-solid-paint/index.d.ts +3 -0
  69. package/dist/components/colors/src/color-solid-paint/solid-paint-alpha-slider.d.ts +10 -0
  70. package/dist/components/colors/src/color-solid-paint/solid-paint-alpha-slider.js +20 -0
  71. package/dist/components/colors/src/color-solid-paint/solid-paint-area.d.ts +17 -0
  72. package/dist/components/colors/src/color-solid-paint/solid-paint-area.js +131 -0
  73. package/dist/components/colors/src/color-solid-paint/solid-paint-channel-field.d.ts +20 -0
  74. package/dist/components/colors/src/color-solid-paint/solid-paint-channel-field.js +147 -0
  75. package/dist/components/colors/src/color-solid-paint/solid-paint-hue-slider.d.ts +14 -0
  76. package/dist/components/colors/src/color-solid-paint/solid-paint-hue-slider.js +46 -0
  77. package/dist/components/colors/src/color-solid-paint/solid-paint-library-item.d.ts +8 -0
  78. package/dist/components/colors/src/color-solid-paint/tv.d.ts +79 -0
  79. package/dist/components/colors/src/color-solid-paint/tv.js +39 -0
  80. package/dist/components/colors/src/color-swatch/color-swatch.d.ts +15 -0
  81. package/dist/components/colors/src/color-swatch/color-swatch.js +111 -0
  82. package/dist/components/colors/src/color-swatch/index.d.ts +1 -0
  83. package/dist/components/colors/src/contents/color-space.d.ts +19 -0
  84. package/dist/components/colors/src/contents/color-space.js +16 -0
  85. package/dist/components/colors/src/contents/colors.d.ts +42 -0
  86. package/dist/components/colors/src/contents/colors.js +24 -0
  87. package/dist/components/colors/src/contents/index.d.ts +3 -0
  88. package/dist/components/colors/src/contents/translation.d.ts +100 -0
  89. package/dist/components/colors/src/contents/translation.js +94 -0
  90. package/dist/components/colors/src/context/colots-context.d.ts +24 -0
  91. package/dist/components/colors/src/context/colots-context.js +62 -0
  92. package/dist/components/colors/src/context/index.d.ts +1 -0
  93. package/dist/components/colors/src/fill-input/alpha-input.d.ts +12 -0
  94. package/dist/components/colors/src/fill-input/alpha-input.js +48 -0
  95. package/dist/components/colors/src/fill-input/color-input.d.ts +31 -0
  96. package/dist/components/colors/src/fill-input/color-input.js +115 -0
  97. package/dist/components/colors/src/fill-input/gradient-item.d.ts +25 -0
  98. package/dist/components/colors/src/fill-input/gradient-item.js +103 -0
  99. package/dist/components/colors/src/fill-input/image-item.d.ts +25 -0
  100. package/dist/components/colors/src/fill-input/image-item.js +89 -0
  101. package/dist/components/colors/src/fill-input/index.d.ts +5 -0
  102. package/dist/components/colors/src/fill-input/tv.d.ts +221 -0
  103. package/dist/components/colors/src/fill-input/tv.js +205 -0
  104. package/dist/components/colors/src/fill-input/variable-item.d.ts +22 -0
  105. package/dist/components/colors/src/fill-input/variable-item.js +105 -0
  106. package/dist/components/colors/src/hex-input/hex-input.d.ts +10 -0
  107. package/dist/components/colors/src/hex-input/hex-input.js +182 -0
  108. package/dist/components/colors/src/hex-input/index.d.ts +1 -0
  109. package/dist/components/colors/src/hex-input/tv.d.ts +1 -0
  110. package/dist/components/colors/src/hex-input/tv.js +12 -0
  111. package/dist/components/colors/src/hooks/index.d.ts +10 -0
  112. package/dist/components/colors/src/hooks/use-color-contrast-recommendation.d.ts +36 -0
  113. package/dist/components/colors/src/hooks/use-color-contrast-recommendation.js +502 -0
  114. package/dist/components/colors/src/hooks/use-color-parser.d.ts +10 -0
  115. package/dist/components/colors/src/hooks/use-color-parser.js +146 -0
  116. package/dist/components/colors/src/hooks/use-color-picker.d.ts +45 -0
  117. package/dist/components/colors/src/hooks/use-color-picker.js +117 -0
  118. package/dist/components/colors/src/hooks/use-color-profile.d.ts +2 -0
  119. package/dist/components/colors/src/hooks/use-color-profile.js +27 -0
  120. package/dist/components/colors/src/hooks/use-cursor.d.ts +1 -0
  121. package/dist/components/colors/src/hooks/use-cursor.js +25 -0
  122. package/dist/components/colors/src/hooks/use-features.d.ts +21 -0
  123. package/dist/components/colors/src/hooks/use-features.js +73 -0
  124. package/dist/components/colors/src/hooks/use-image-filter-style.d.ts +9 -0
  125. package/dist/components/colors/src/hooks/use-image-filter-style.js +25 -0
  126. package/dist/components/colors/src/hooks/use-image-processor.d.ts +10 -0
  127. package/dist/components/colors/src/hooks/use-image-processor.js +121 -0
  128. package/dist/components/colors/src/hooks/use-paint-state.d.ts +16 -0
  129. package/dist/components/colors/src/hooks/use-paint-state.js +37 -0
  130. package/dist/components/colors/src/hooks/use-rgb-color-handler.d.ts +21 -0
  131. package/dist/components/colors/src/hooks/use-rgb-color-handler.js +58 -0
  132. package/dist/components/colors/src/index.d.ts +38 -0
  133. package/dist/components/colors/src/libraries/components/virtualized-grid-row.d.ts +36 -0
  134. package/dist/components/colors/src/libraries/components/virtualized-grid-row.js +53 -0
  135. package/dist/components/colors/src/libraries/components/virtualized-header.d.ts +9 -0
  136. package/dist/components/colors/src/libraries/components/virtualized-header.js +30 -0
  137. package/dist/components/colors/src/libraries/hooks/index.d.ts +2 -0
  138. package/dist/components/colors/src/libraries/hooks/use-category-options.d.ts +11 -0
  139. package/dist/components/colors/src/libraries/hooks/use-category-options.js +27 -0
  140. package/dist/components/colors/src/libraries/hooks/use-palette-color.d.ts +19 -0
  141. package/dist/components/colors/src/libraries/hooks/use-palette-color.js +41 -0
  142. package/dist/components/colors/src/libraries/index.d.ts +8 -0
  143. package/dist/components/colors/src/libraries/libraries-content.d.ts +8 -0
  144. package/dist/components/colors/src/libraries/libraries-empty-content.d.ts +5 -0
  145. package/dist/components/colors/src/libraries/libraries-header.d.ts +18 -0
  146. package/dist/components/colors/src/libraries/libraries-header.js +111 -0
  147. package/dist/components/colors/src/libraries/libraries-search-empty-content.d.ts +1 -0
  148. package/dist/components/colors/src/libraries/libraries-search-input.d.ts +6 -0
  149. package/dist/components/colors/src/libraries/libraries.d.ts +42 -0
  150. package/dist/components/colors/src/libraries/libraries.js +461 -0
  151. package/dist/components/colors/src/libraries/library-color-swatch.d.ts +21 -0
  152. package/dist/components/colors/src/libraries/library-item/index.d.ts +4 -0
  153. package/dist/components/colors/src/libraries/library-item/library-item.d.ts +21 -0
  154. package/dist/components/colors/src/libraries/library-item/library-item.js +151 -0
  155. package/dist/components/colors/src/libraries/library-item/library-list-item.d.ts +6 -0
  156. package/dist/components/colors/src/libraries/library-item/style-items.d.ts +17 -0
  157. package/dist/components/colors/src/libraries/library-item/style-items.js +63 -0
  158. package/dist/components/colors/src/libraries/library-item/variable-items.d.ts +19 -0
  159. package/dist/components/colors/src/libraries/library-item/variable-items.js +47 -0
  160. package/dist/components/colors/src/libraries/tv.d.ts +198 -0
  161. package/dist/components/colors/src/libraries/tv.js +141 -0
  162. package/dist/components/colors/src/simple-color-picker/index.d.ts +1 -0
  163. package/dist/components/colors/src/simple-color-picker/simple-color-picker.d.ts +17 -0
  164. package/dist/components/colors/src/simple-color-picker/simple-color-picker.js +153 -0
  165. package/dist/components/colors/src/types/base.d.ts +5 -0
  166. package/dist/components/colors/src/types/colors.d.ts +139 -0
  167. package/dist/components/colors/src/types/effect.d.ts +18 -0
  168. package/dist/components/colors/src/types/fill.d.ts +15 -0
  169. package/dist/components/colors/src/types/fonts.d.ts +38 -0
  170. package/dist/components/colors/src/types/index.d.ts +7 -0
  171. package/dist/components/colors/src/types/libraries.d.ts +7 -0
  172. package/dist/components/colors/src/types/paint.d.ts +139 -0
  173. package/dist/components/colors/src/types/style.d.ts +51 -0
  174. package/dist/components/colors/src/types/testing-library.d.ts +0 -0
  175. package/dist/components/colors/src/types/util.d.ts +26 -0
  176. package/dist/components/colors/src/types/variable.d.ts +27 -0
  177. package/dist/components/colors/src/utils/background.d.ts +12 -0
  178. package/dist/components/colors/src/utils/background.js +216 -0
  179. package/dist/components/colors/src/utils/color-profile-storage.d.ts +29 -0
  180. package/dist/components/colors/src/utils/color.d.ts +20 -0
  181. package/dist/components/colors/src/utils/color.js +45 -0
  182. package/dist/components/colors/src/utils/colors-convert.d.ts +18 -0
  183. package/dist/components/colors/src/utils/colors-convert.js +138 -0
  184. package/dist/components/colors/src/utils/contrast-utils.d.ts +27 -0
  185. package/dist/components/colors/src/utils/contrast-utils.js +25 -0
  186. package/dist/components/colors/src/utils/cursor.d.ts +1 -0
  187. package/dist/components/colors/src/utils/index.d.ts +7 -0
  188. package/dist/components/colors/src/utils/math.d.ts +9 -0
  189. package/dist/components/colors/src/utils/position.d.ts +33 -0
  190. package/dist/components/colors/src/utils/position.js +60 -0
  191. package/dist/components/colors/src/utils/validate.d.ts +10 -0
  192. package/dist/components/colors/src/workers/boundary-calculator.worker.bundled.d.ts +2 -0
  193. package/dist/components/colors/src/workers/boundary-calculator.worker.bundled.js +36 -0
  194. package/dist/components/colors/src/workers/boundary-calculator.worker.d.ts +1 -0
  195. package/dist/components/colors/src/workers/index.d.ts +1 -0
  196. package/dist/components/colors/tsup.config.d.ts +2 -0
  197. package/dist/components/comments/dist/index.d.ts +3 -0
  198. package/dist/components/comments/src/comment-input/comment-input.d.ts +3 -0
  199. package/dist/components/comments/src/comment-input/comment-input.js +8 -2
  200. package/dist/components/comments/src/comment-input/components/comment-input-footer.d.ts +3 -0
  201. package/dist/components/comments/src/comment-input/components/comment-input-footer.js +10 -9
  202. package/dist/components/comments/src/comment-input/components/comment-input-renderers.js +1 -1
  203. package/dist/components/index.d.ts +1 -0
  204. package/dist/components/modal/dist/index.js +1 -2
  205. package/dist/components/modal/src/tv.js +1 -2
  206. package/dist/components/numeric-input/dist/index.js +3 -4
  207. package/dist/components/numeric-input/src/tv.js +3 -4
  208. package/dist/components/otp-input/src/tv.js +1 -2
  209. package/dist/components/panel/src/tv.js +15 -16
  210. package/dist/components/skeleton/src/tv.js +1 -2
  211. package/dist/components/text-field/dist/index.js +1 -2
  212. package/dist/components/text-field/src/tv.js +1 -2
  213. package/dist/components/textarea/src/tv.d.ts +9 -3
  214. package/dist/components/textarea/src/tv.js +3 -1
  215. package/dist/components/toggle-button/dist/index.js +602 -0
  216. package/dist/index.js +69 -0
  217. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/index.js +119 -0
  218. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/Color.js +42 -0
  219. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/chroma.js +9 -0
  220. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/colors/colorbrewer.js +57 -0
  221. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/colors/w3cx11.js +159 -0
  222. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/average.js +82 -0
  223. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/bezier.js +68 -0
  224. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/blend.js +43 -0
  225. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/cubehelix.js +81 -0
  226. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/mix.js +20 -0
  227. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/random.js +13 -0
  228. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/scale.js +325 -0
  229. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/_hsx.js +54 -0
  230. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/hcg.js +10 -0
  231. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/hsi.js +10 -0
  232. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/hsl.js +10 -0
  233. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/hsv.js +10 -0
  234. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/index.js +4 -0
  235. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/lab.js +17 -0
  236. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/lch.js +11 -0
  237. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/lrgb.js +17 -0
  238. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/num.js +12 -0
  239. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/oklab.js +17 -0
  240. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/oklch.js +10 -0
  241. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/rgb.js +16 -0
  242. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.js +20 -0
  243. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/cmyk/index.js +25 -0
  244. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.js +18 -0
  245. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/css2rgb.js +169 -0
  246. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/hsl2css.js +20 -0
  247. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/index.js +23 -0
  248. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/lab2css.js +19 -0
  249. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/lch2css.js +19 -0
  250. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/oklab2css.js +17 -0
  251. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/oklch2css.js +17 -0
  252. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/rgb2css.js +53 -0
  253. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/gl/index.js +21 -0
  254. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hcg/hcg2rgb.js +48 -0
  255. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hcg/index.js +25 -0
  256. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hcg/rgb2hcg.js +24 -0
  257. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hex/hex2rgb.js +37 -0
  258. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hex/index.js +23 -0
  259. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hex/rgb2hex.js +31 -0
  260. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsi/hsi2rgb.js +36 -0
  261. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsi/index.js +25 -0
  262. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsi/rgb2hsi.js +28 -0
  263. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsl/hsl2rgb.js +35 -0
  264. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsl/index.js +25 -0
  265. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsl/rgb2hsl.js +29 -0
  266. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsv/hsv2rgb.js +46 -0
  267. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsv/index.js +25 -0
  268. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsv/rgb2hsv.js +27 -0
  269. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/input.js +7 -0
  270. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lab/index.js +28 -0
  271. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lab/lab-constants.js +106 -0
  272. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lab/lab2rgb.js +59 -0
  273. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lab/rgb2lab.js +51 -0
  274. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/hcl2rgb.js +10 -0
  275. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/index.js +35 -0
  276. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/lab2lch.js +13 -0
  277. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/lch2lab.js +12 -0
  278. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/lch2rgb.js +14 -0
  279. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/rgb2lch.js +13 -0
  280. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/named/index.js +26 -0
  281. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/num/index.js +23 -0
  282. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/num/num2rgb.js +13 -0
  283. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/num/rgb2num.js +9 -0
  284. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklab/index.js +25 -0
  285. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklab/oklab2rgb.js +31 -0
  286. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklab/rgb2oklab.js +30 -0
  287. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklch/index.js +25 -0
  288. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklch/oklch2rgb.js +14 -0
  289. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklch/rgb2oklch.js +13 -0
  290. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/rgb/index.js +34 -0
  291. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/temp/index.js +16 -0
  292. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/temp/rgb2temperature.js +25 -0
  293. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/temp/temperature2rgb.js +18 -0
  294. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/alpha.js +12 -0
  295. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/clipped.js +4 -0
  296. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/darken.js +14 -0
  297. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/get.js +12 -0
  298. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/luminance.js +38 -0
  299. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/mix.js +5 -0
  300. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/premultiply.js +11 -0
  301. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/saturate.js +13 -0
  302. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/set.js +42 -0
  303. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/shade.js +9 -0
  304. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/analyze.js +161 -0
  305. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/clip_rgb.js +17 -0
  306. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/contrast.js +12 -0
  307. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/contrastAPCA.js +43 -0
  308. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/delta-e.js +48 -0
  309. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/distance.js +16 -0
  310. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/index.js +24 -0
  311. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/last.js +10 -0
  312. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/limit.js +7 -0
  313. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/multiply-matrices.js +29 -0
  314. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/scales.js +16 -0
  315. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/type.js +20 -0
  316. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/unpack.js +11 -0
  317. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/valid.js +12 -0
  318. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/version.js +4 -0
  319. package/dist/node_modules/.pnpm/fuse.js@7.1.0/node_modules/fuse.js/dist/fuse.js +1317 -0
  320. package/dist/styles/components.css +226 -0
  321. package/dist/tailwind.css +1 -0
  322. package/package.json +32 -20
  323. package/dist/components/modal/src/styles/style.module.css +0 -4
  324. package/dist/components/modal/src/styles/style.module.css.js +0 -8
  325. package/dist/components/numeric-input/src/styles/style.module.css +0 -45
  326. package/dist/components/numeric-input/src/styles/style.module.css.js +0 -12
  327. package/dist/components/otp-input/src/styles/style.module.css +0 -15
  328. package/dist/components/otp-input/src/styles/style.module.css.js +0 -8
  329. package/dist/components/panel/src/styles/style.module.css +0 -103
  330. package/dist/components/panel/src/styles/style.module.css.js +0 -23
  331. package/dist/components/skeleton/src/styles/style.module.css +0 -18
  332. package/dist/components/skeleton/src/styles/style.module.css.js +0 -8
  333. package/dist/components/text-field/src/styles/style.module.css +0 -31
  334. package/dist/components/text-field/src/styles/style.module.css.js +0 -8
  335. package/dist/components/virtual-select/dist/index.d.ts +0 -48
@@ -0,0 +1,185 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { clamp } from "es-toolkit";
3
+ import { memo, forwardRef, useRef, useCallback, useEffect, useMemo } from "react";
4
+ import { useEventCallback } from "usehooks-ts";
5
+ import { useColors } from "../context/colots-context.js";
6
+ import { ColorSliderTv } from "./tv.js";
7
+ import { positionToSliderValue } from "../utils/position.js";
8
+ import { getSliderBackground } from "../utils/background.js";
9
+ import { tcx } from "../../../../shared/utils/tcx/tcx.js";
10
+ import { mergeRefs } from "../../../../shared/utils/merge-refs/merge-refs.js";
11
+ import { translation } from "../contents/translation.js";
12
+ const KEYBOARD_STEPS = {
13
+ NORMAL: 0.01,
14
+ SHIFT: 0.1
15
+ };
16
+ const ColorSlider = memo(
17
+ forwardRef(function ColorSlider2(props, ref) {
18
+ const {
19
+ position,
20
+ onChange,
21
+ onChangeStart,
22
+ onChangeEnd,
23
+ type,
24
+ hue = 0,
25
+ backgroundStyle,
26
+ disabled = false,
27
+ trackSize = {
28
+ width: 256,
29
+ height: 16
30
+ },
31
+ thumbSize = 14,
32
+ className
33
+ } = props;
34
+ const { colorProfile } = useColors();
35
+ const sliderRef = useRef(null);
36
+ const thumbRef = useRef(null);
37
+ const inputRef = useRef(null);
38
+ const isDragging = useRef(false);
39
+ const updatePosition = useEventCallback((clientX, isEnd) => {
40
+ var _a;
41
+ const rect = (_a = sliderRef.current) == null ? void 0 : _a.getBoundingClientRect();
42
+ if (!rect) return;
43
+ const newPosition = clamp((clientX - rect.left) / rect.width, 0, 0.999);
44
+ if (isEnd) {
45
+ isDragging.current = false;
46
+ } else {
47
+ onChange == null ? void 0 : onChange(newPosition);
48
+ }
49
+ });
50
+ const handlePointerDown = useCallback(
51
+ (e) => {
52
+ var _a;
53
+ if (disabled) return;
54
+ e.preventDefault();
55
+ e.stopPropagation();
56
+ onChangeStart == null ? void 0 : onChangeStart();
57
+ const thumb = thumbRef.current;
58
+ if (!thumb) return;
59
+ isDragging.current = true;
60
+ thumb.setPointerCapture(e.pointerId);
61
+ updatePosition(e.clientX);
62
+ (_a = inputRef.current) == null ? void 0 : _a.focus();
63
+ const handleMove = (e2) => {
64
+ if (!isDragging.current) return;
65
+ e2.preventDefault();
66
+ updatePosition(e2.clientX);
67
+ };
68
+ const handleUp = (e2) => {
69
+ if (!isDragging.current) return;
70
+ e2.preventDefault();
71
+ if (thumb.hasPointerCapture(e2.pointerId)) {
72
+ thumb.releasePointerCapture(e2.pointerId);
73
+ }
74
+ updatePosition(e2.clientX, true);
75
+ isDragging.current = false;
76
+ onChangeEnd == null ? void 0 : onChangeEnd();
77
+ window.removeEventListener("pointermove", handleMove);
78
+ window.removeEventListener("pointerup", handleUp);
79
+ window.removeEventListener("pointercancel", handleUp);
80
+ };
81
+ window.addEventListener("pointermove", handleMove);
82
+ window.addEventListener("pointerup", handleUp);
83
+ window.addEventListener("pointercancel", handleUp);
84
+ },
85
+ [disabled, onChangeEnd, onChangeStart, updatePosition]
86
+ );
87
+ const handleSliderPointerDown = useCallback(
88
+ (e) => {
89
+ if (e.target === thumbRef.current) return;
90
+ handlePointerDown(e);
91
+ },
92
+ [handlePointerDown]
93
+ );
94
+ const handleKeyDown = useEventCallback((e) => {
95
+ if (disabled) return;
96
+ const step = e.shiftKey ? KEYBOARD_STEPS.SHIFT : KEYBOARD_STEPS.NORMAL;
97
+ let newPosition = position;
98
+ switch (e.key) {
99
+ case "ArrowLeft":
100
+ e.preventDefault();
101
+ newPosition = clamp(position - step, 0, 1);
102
+ break;
103
+ case "ArrowRight":
104
+ e.preventDefault();
105
+ newPosition = clamp(position + step, 0, 1);
106
+ break;
107
+ default:
108
+ return;
109
+ }
110
+ if (newPosition !== position) {
111
+ onChange == null ? void 0 : onChange(newPosition);
112
+ }
113
+ });
114
+ useEffect(() => {
115
+ var _a;
116
+ if (disabled && document.activeElement === inputRef.current) {
117
+ (_a = inputRef.current) == null ? void 0 : _a.blur();
118
+ }
119
+ }, [disabled]);
120
+ const thumbStyle = useMemo(() => {
121
+ const minTransform = 1;
122
+ const maxTransform = ((trackSize == null ? void 0 : trackSize.width) ?? 0) - thumbSize - 1;
123
+ const transformX = minTransform + position * (maxTransform - minTransform);
124
+ return {
125
+ width: thumbSize,
126
+ height: thumbSize,
127
+ transform: `translate(${transformX}px, -50%)`,
128
+ backgroundColor: positionToSliderValue(position, type, hue),
129
+ willChange: isDragging.current ? "transform" : "auto",
130
+ boxShadow: `
131
+ inset 0 0 0 3px white,
132
+ inset 0 0 0 4px rgba(0,0,0,0.2),
133
+ 0 0 0 1px rgba(0,0,0,0.2)
134
+ `
135
+ };
136
+ }, [position, thumbSize, trackSize, type, hue]);
137
+ const computedBackgroundStyle = useMemo(
138
+ () => ({
139
+ ...getSliderBackground(type, hue, colorProfile),
140
+ ...backgroundStyle
141
+ }),
142
+ [type, hue, colorProfile, backgroundStyle]
143
+ );
144
+ const styles = ColorSliderTv({ disabled });
145
+ return /* @__PURE__ */ jsx(
146
+ "div",
147
+ {
148
+ ref: mergeRefs(ref, sliderRef),
149
+ onPointerDown: handleSliderPointerDown,
150
+ style: {
151
+ ...computedBackgroundStyle,
152
+ boxShadow: "inset 0 0 0 1px rgba(0,0,0,0.1)",
153
+ height: trackSize == null ? void 0 : trackSize.height,
154
+ width: trackSize == null ? void 0 : trackSize.width
155
+ },
156
+ className: tcx(styles.root(), className),
157
+ children: /* @__PURE__ */ jsx(
158
+ "div",
159
+ {
160
+ ref: thumbRef,
161
+ onPointerDown: handlePointerDown,
162
+ className: styles.thumb(),
163
+ style: thumbStyle,
164
+ children: /* @__PURE__ */ jsx(
165
+ "input",
166
+ {
167
+ ref: inputRef,
168
+ type: "text",
169
+ onKeyDown: handleKeyDown,
170
+ className: styles.thumbInput(),
171
+ "aria-label": translation.slider.ARIA_LABEL,
172
+ tabIndex: disabled ? -1 : 0,
173
+ readOnly: true
174
+ }
175
+ )
176
+ }
177
+ )
178
+ }
179
+ );
180
+ })
181
+ );
182
+ ColorSlider.displayName = "ColorSlider";
183
+ export {
184
+ ColorSlider
185
+ };
@@ -0,0 +1 @@
1
+ export * from './color-slider';
@@ -0,0 +1,31 @@
1
+ export declare const ColorSliderTv: import('tailwind-variants').TVReturnType<{
2
+ disabled: {
3
+ true: {
4
+ root: string;
5
+ };
6
+ };
7
+ }, {
8
+ root: string;
9
+ thumb: string;
10
+ thumbInput: string;
11
+ }, undefined, {
12
+ disabled: {
13
+ true: {
14
+ root: string;
15
+ };
16
+ };
17
+ }, {
18
+ root: string;
19
+ thumb: string;
20
+ thumbInput: string;
21
+ }, import('tailwind-variants').TVReturnType<{
22
+ disabled: {
23
+ true: {
24
+ root: string;
25
+ };
26
+ };
27
+ }, {
28
+ root: string;
29
+ thumb: string;
30
+ thumbInput: string;
31
+ }, undefined, unknown, unknown, undefined>>;
@@ -0,0 +1,21 @@
1
+ import { tcv } from "../../../../shared/utils/tcx/tcx.js";
2
+ const ColorSliderTv = tcv({
3
+ slots: {
4
+ root: "relative touch-none rounded-full select-none",
5
+ thumb: "absolute top-1/2 box-border origin-center rounded-full",
6
+ thumbInput: "absolute inset-0 cursor-default opacity-0"
7
+ },
8
+ variants: {
9
+ disabled: {
10
+ true: {
11
+ root: "saturate-0"
12
+ }
13
+ }
14
+ },
15
+ defaultVariants: {
16
+ disabled: false
17
+ }
18
+ });
19
+ export {
20
+ ColorSliderTv
21
+ };
@@ -0,0 +1,8 @@
1
+ import { HTMLProps } from 'react';
2
+ import { RGB } from '../types/colors';
3
+ interface ColorNativePickerProps extends Omit<HTMLProps<HTMLButtonElement>, "onChange"> {
4
+ onChange: (color: RGB) => void;
5
+ tooltip?: string;
6
+ }
7
+ export declare const ColorNativePicker: import('react').ForwardRefExoticComponent<Omit<ColorNativePickerProps, "ref"> & import('react').RefAttributes<HTMLButtonElement>>;
8
+ export {};
@@ -0,0 +1,63 @@
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
+ import { IconButton } from "../../../icon-button/dist/index.js";
3
+ import { forwardRef } from "react";
4
+ import tinycolor from "tinycolor2";
5
+ import { translation } from "../contents/translation.js";
6
+ import { tcx } from "../../../../shared/utils/tcx/tcx.js";
7
+ const ColorNativePicker = forwardRef(
8
+ function ColorNativePicker2(props, ref) {
9
+ const { className, onChange, tooltip = translation.colorNativePicker.PICK_COLOR } = props;
10
+ const nativePick = async (value) => {
11
+ const val = value ? value.target.value : null;
12
+ if (val) {
13
+ return;
14
+ } else {
15
+ if (!("EyeDropper" in window)) {
16
+ alert(translation.colorNativePicker.ALERT);
17
+ return;
18
+ }
19
+ const eyeDropper = new window.EyeDropper();
20
+ const result = await eyeDropper.open();
21
+ const rgb = tinycolor(result.sRGBHex).toRgb();
22
+ onChange({ r: rgb.r, g: rgb.g, b: rgb.b });
23
+ }
24
+ };
25
+ return /* @__PURE__ */ jsx("div", { className: tcx("flex items-center justify-center", className), children: /* @__PURE__ */ jsx(
26
+ IconButton,
27
+ {
28
+ ref,
29
+ onClick: nativePick,
30
+ tooltip: {
31
+ content: tooltip
32
+ },
33
+ children: /* @__PURE__ */ jsx(
34
+ "svg",
35
+ {
36
+ width: "16",
37
+ height: "16",
38
+ viewBox: "0 0 16 16",
39
+ fill: "none",
40
+ xmlns: "http://www.w3.org/2000/svg",
41
+ children: /* @__PURE__ */ jsxs(
42
+ "g",
43
+ {
44
+ stroke: "currentColor",
45
+ strokeLinecap: "round",
46
+ strokeLinejoin: "round",
47
+ children: [
48
+ /* @__PURE__ */ jsx("path", { d: "M1.5 14.5L2 14H3.99998L9.99998 8" }),
49
+ /* @__PURE__ */ jsx("path", { d: "M2 14V12L8 6" }),
50
+ /* @__PURE__ */ jsx("path", { d: "M9.99997 4L12.2666 1.73334C12.5319 1.46812 12.8916 1.31912 13.2666 1.31912C13.6417 1.31912 14.0014 1.46812 14.2666 1.73334C14.5319 1.99855 14.6809 2.35826 14.6809 2.73334C14.6809 3.10841 14.5319 3.46812 14.2666 3.73334L12 6L12.2666 6.26667C12.398 6.39799 12.5021 6.55389 12.5732 6.72547C12.6443 6.89705 12.6809 7.08095 12.6809 7.26667C12.6809 7.45239 12.6443 7.63628 12.5732 7.80787C12.5021 7.97945 12.398 8.13535 12.2666 8.26667C12.1353 8.39799 11.9794 8.50216 11.8078 8.57323C11.6363 8.6443 11.4524 8.68088 11.2666 8.68088C11.0809 8.68088 10.897 8.6443 10.7254 8.57323C10.5539 8.50216 10.398 8.39799 10.2666 8.26667L7.73331 5.73334C7.60198 5.60201 7.49781 5.44611 7.42674 5.27453C7.35567 5.10295 7.31909 4.91905 7.31909 4.73334C7.31909 4.54762 7.35567 4.36372 7.42674 4.19214C7.49781 4.02056 7.60198 3.86466 7.73331 3.73334C7.86463 3.60201 8.02053 3.49784 8.19211 3.42677C8.36369 3.3557 8.54759 3.31912 8.73331 3.31912C8.91902 3.31912 9.10292 3.3557 9.2745 3.42677C9.44608 3.49784 9.60198 3.60201 9.73331 3.73334L9.99997 4Z" })
51
+ ]
52
+ }
53
+ )
54
+ }
55
+ )
56
+ }
57
+ ) });
58
+ }
59
+ );
60
+ ColorNativePicker.displayName = "ColorNativePicker";
61
+ export {
62
+ ColorNativePicker
63
+ };
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from 'react';
2
+ import { ChannelFieldSpace, ColorContrast, RGB, SolidPaintFeature } from '../types/colors';
3
+ import { LibrariesType } from '../types/libraries';
4
+ import { SolidPaintLabels } from '../types/paint';
5
+ import { Variable } from '../types/variable';
6
+ export interface ColorSolidPaintProps {
7
+ alpha?: number;
8
+ checkColorContrast?: ColorContrast;
9
+ className?: string;
10
+ color?: RGB;
11
+ colorSpace: ChannelFieldSpace;
12
+ features?: SolidPaintFeature;
13
+ labels?: SolidPaintLabels;
14
+ library?: ReactNode;
15
+ onAlphaChange?: (alpha: number) => void;
16
+ onChangeEnd?: () => void;
17
+ onChangeStart?: () => void;
18
+ onColorChange?: (color: RGB) => void;
19
+ onColorSpaceChange: (colorSpace: ChannelFieldSpace) => void;
20
+ onLibraryChange?: (value: {
21
+ item: Variable;
22
+ type: LibrariesType;
23
+ }) => void;
24
+ }
25
+ export declare const ColorSolidPaint: import('react').ForwardRefExoticComponent<ColorSolidPaintProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,295 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { forwardRef, useMemo, useState, useEffect } from "react";
3
+ import tinycolor from "tinycolor2";
4
+ import { useEventCallback } from "usehooks-ts";
5
+ import { ColorNativePicker } from "./color-native-picker.js";
6
+ import { SolidPaintAlphaSlider } from "./solid-paint-alpha-slider.js";
7
+ import { SolidPaintArea } from "./solid-paint-area.js";
8
+ import { SolidPaintChannelField } from "./solid-paint-channel-field.js";
9
+ import { SolidPaintHueSlider } from "./solid-paint-hue-slider.js";
10
+ import { ColorSolidPaintTv } from "./tv.js";
11
+ import { usePaintState } from "../hooks/use-paint-state.js";
12
+ import { useRgbColorHandler } from "../hooks/use-rgb-color-handler.js";
13
+ import { useColorContrastRecommendation } from "../hooks/use-color-contrast-recommendation.js";
14
+ import { CheckColorContrastToolbar } from "../check-color-contrast/check-color-contrast-toolbar.js";
15
+ import { CheckColorContrastBoundary } from "../check-color-contrast/check-color-contrast-boundary.js";
16
+ import { calculateContrastRatio, getEffectiveElementType } from "../utils/contrast-utils.js";
17
+ import { translation } from "../contents/translation.js";
18
+ import { getContrastThreshold } from "../utils/colors-convert.js";
19
+ const ColorSolidPaint = forwardRef(
20
+ function ColorSolidPaint2(props, ref) {
21
+ const {
22
+ className,
23
+ color = { r: 250, g: 250, b: 250 },
24
+ alpha: opacity = 1,
25
+ onColorChange,
26
+ onAlphaChange,
27
+ labels,
28
+ features: userFeatures = {},
29
+ checkColorContrast: originalCheckColorContrast,
30
+ onChangeStart,
31
+ onChangeEnd,
32
+ library,
33
+ colorSpace,
34
+ onColorSpaceChange
35
+ } = props;
36
+ const { paintState, setPaintState, updateSourceRef } = usePaintState({ color });
37
+ const { handleRgbChange } = useRgbColorHandler({
38
+ paintState,
39
+ setPaintState,
40
+ updateSourceRef,
41
+ colorSpace,
42
+ onColorChange
43
+ });
44
+ const features = useMemo(() => {
45
+ return {
46
+ containerWidth: 240,
47
+ presets: true,
48
+ spaceDropdown: true,
49
+ alpha: true,
50
+ hex: true,
51
+ rgb: true,
52
+ hsl: true,
53
+ hsb: true,
54
+ checkColorContrast: true,
55
+ nativePicker: true,
56
+ ...userFeatures
57
+ };
58
+ }, [userFeatures]);
59
+ const handleNativeColorChange = useEventCallback((rgb) => {
60
+ onColorChange == null ? void 0 : onColorChange(rgb);
61
+ });
62
+ const sliderTrackSize = useMemo(() => {
63
+ const getPadding = () => {
64
+ if (!features.alpha && !features.nativePicker) {
65
+ return 32;
66
+ }
67
+ let padding = 0;
68
+ padding += features.alpha ? 32 : 16;
69
+ padding += features.nativePicker ? 48 : 0;
70
+ return padding;
71
+ };
72
+ return {
73
+ width: ((features == null ? void 0 : features.containerWidth) ?? 240) - getPadding(),
74
+ height: 16
75
+ };
76
+ }, [features.containerWidth, features.alpha, features.nativePicker]);
77
+ const styles = ColorSolidPaintTv({
78
+ alpha: features.alpha,
79
+ nativePicker: features.nativePicker,
80
+ presets: features.presets
81
+ });
82
+ const [standardHovered, setStandardHovered] = useState(false);
83
+ const selectedElementType = (originalCheckColorContrast == null ? void 0 : originalCheckColorContrast.selectedElementType) ?? "graphics";
84
+ const backgroundColor = originalCheckColorContrast == null ? void 0 : originalCheckColorContrast.backgroundColor;
85
+ const contrastLevel = originalCheckColorContrast == null ? void 0 : originalCheckColorContrast.level;
86
+ const contrastCategory = originalCheckColorContrast == null ? void 0 : originalCheckColorContrast.category;
87
+ const showContrast = originalCheckColorContrast == null ? void 0 : originalCheckColorContrast.showColorContrast;
88
+ const checkColorContrastForChild = useMemo(() => {
89
+ if (!originalCheckColorContrast) return void 0;
90
+ return {
91
+ ...originalCheckColorContrast,
92
+ foregroundColor: color,
93
+ foregroundAlpha: opacity,
94
+ selectedElementType
95
+ };
96
+ }, [originalCheckColorContrast, color, opacity, selectedElementType]);
97
+ const containerWidth = (features == null ? void 0 : features.containerWidth) ?? 240;
98
+ const stableContrastHookOnColorChange = useEventCallback(
99
+ (newColor, newAlpha, preserveHue) => {
100
+ if (preserveHue !== void 0) {
101
+ updateSourceRef.current = "internal";
102
+ const tc = tinycolor(newColor);
103
+ const hsl = tc.toHsl();
104
+ const hsv = tc.toHsv();
105
+ setPaintState({
106
+ h: preserveHue,
107
+ // 使用传入的原始 hue,不从 RGB 重新计算
108
+ hsl_s: hsl.s,
109
+ l: hsl.l,
110
+ hsv_s: hsv.s,
111
+ v: hsv.v
112
+ });
113
+ }
114
+ onColorChange == null ? void 0 : onColorChange(newColor);
115
+ onAlphaChange == null ? void 0 : onAlphaChange(newAlpha);
116
+ setStandardHovered(false);
117
+ }
118
+ );
119
+ const contrastOptions = useMemo(
120
+ () => ({
121
+ onColorChange: stableContrastHookOnColorChange
122
+ }),
123
+ [stableContrastHookOnColorChange]
124
+ );
125
+ const {
126
+ recommendedPoint,
127
+ boundaryData: calculatedBoundaryData,
128
+ updateRecommendedPoint,
129
+ applyRecommendedPoint
130
+ } = useColorContrastRecommendation({
131
+ width: containerWidth,
132
+ height: containerWidth,
133
+ hue: paintState.h,
134
+ backgroundColor: backgroundColor || { r: 255, g: 255, b: 255 },
135
+ foregroundAlpha: opacity,
136
+ level: contrastLevel,
137
+ category: contrastCategory,
138
+ selectedElementType,
139
+ options: contrastOptions,
140
+ colorSpace,
141
+ paintState
142
+ });
143
+ const boundaryDataForChild = useMemo(() => {
144
+ if (showContrast && features.checkColorContrast && calculatedBoundaryData) {
145
+ return calculatedBoundaryData;
146
+ }
147
+ return { lowerBoundary: null, upperBoundary: null, threshold: 0 };
148
+ }, [showContrast, features.checkColorContrast, calculatedBoundaryData]);
149
+ useEffect(() => {
150
+ if (!showContrast || !standardHovered) return;
151
+ const effectiveType = getEffectiveElementType(contrastCategory, selectedElementType);
152
+ const threshold = getContrastThreshold(contrastLevel, contrastCategory, effectiveType);
153
+ const ratio = calculateContrastRatio(
154
+ backgroundColor ?? { r: 255, g: 255, b: 255 },
155
+ color,
156
+ opacity
157
+ );
158
+ if (ratio >= threshold) {
159
+ setStandardHovered(false);
160
+ }
161
+ }, [
162
+ showContrast,
163
+ standardHovered,
164
+ backgroundColor,
165
+ color,
166
+ opacity,
167
+ contrastLevel,
168
+ contrastCategory,
169
+ selectedElementType
170
+ ]);
171
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
172
+ showContrast && features.checkColorContrast && /* @__PURE__ */ jsx(
173
+ CheckColorContrastToolbar,
174
+ {
175
+ checkColorContrast: checkColorContrastForChild,
176
+ onStandardHovered: setStandardHovered,
177
+ containerWidth,
178
+ applyRecommendedPoint
179
+ }
180
+ ),
181
+ /* @__PURE__ */ jsxs(
182
+ "div",
183
+ {
184
+ ref,
185
+ className,
186
+ style: { width: containerWidth },
187
+ children: [
188
+ /* @__PURE__ */ jsx(
189
+ SolidPaintArea,
190
+ {
191
+ paintState,
192
+ setPaintState: (newState) => {
193
+ setPaintState(newState);
194
+ },
195
+ colorSpace,
196
+ rgbColor: color,
197
+ onColorChange,
198
+ containerWidth,
199
+ updateSourceRef,
200
+ onChangeStart,
201
+ onChangeEnd,
202
+ children: showContrast && features.checkColorContrast && /* @__PURE__ */ jsx(
203
+ CheckColorContrastBoundary,
204
+ {
205
+ colorSpace,
206
+ paintState,
207
+ width: containerWidth,
208
+ height: containerWidth,
209
+ foregroundAlpha: opacity,
210
+ showRecommendedPoint: standardHovered,
211
+ recommendedPoint,
212
+ boundaryData: boundaryDataForChild,
213
+ updateRecommendedPoint
214
+ }
215
+ )
216
+ }
217
+ ),
218
+ /* @__PURE__ */ jsxs(
219
+ "div",
220
+ {
221
+ className: styles.sliderContainer(),
222
+ style: { width: containerWidth },
223
+ children: [
224
+ /* @__PURE__ */ jsx(
225
+ SolidPaintHueSlider,
226
+ {
227
+ hue: paintState.h,
228
+ setHue: (newHue) => {
229
+ const newPaintState = { ...paintState, h: newHue };
230
+ setPaintState(newPaintState);
231
+ },
232
+ color,
233
+ onColorChange,
234
+ onChangeStart,
235
+ onChangeEnd,
236
+ onChange: onChangeEnd,
237
+ type: "hue",
238
+ trackSize: sliderTrackSize,
239
+ updateSourceRef
240
+ }
241
+ ),
242
+ features.alpha && /* @__PURE__ */ jsx(
243
+ SolidPaintAlphaSlider,
244
+ {
245
+ hue: paintState.h,
246
+ alpha: opacity,
247
+ onAlphaChange,
248
+ type: "alpha",
249
+ trackSize: sliderTrackSize,
250
+ onChangeStart,
251
+ onChangeEnd
252
+ }
253
+ ),
254
+ features.nativePicker && /* @__PURE__ */ jsx(
255
+ ColorNativePicker,
256
+ {
257
+ onChange: handleNativeColorChange,
258
+ className: styles.nativePicker(),
259
+ tooltip: (labels == null ? void 0 : labels.pickerColor) ?? translation.colorNativePicker.PICK_COLOR
260
+ }
261
+ )
262
+ ]
263
+ }
264
+ ),
265
+ /* @__PURE__ */ jsx(
266
+ SolidPaintChannelField,
267
+ {
268
+ paintState,
269
+ setPaintState: (newState) => {
270
+ setPaintState(newState);
271
+ },
272
+ colorSpace,
273
+ setColorSpace: onColorSpaceChange,
274
+ updateSourceRef,
275
+ rgb: color,
276
+ alpha: opacity,
277
+ onAlphaChange,
278
+ onAlphaChangeEnd: onChangeEnd,
279
+ onAlphaChangeStart: onChangeStart,
280
+ onColorChange: handleRgbChange,
281
+ className: styles.channelField(),
282
+ features,
283
+ labels
284
+ }
285
+ ),
286
+ features.presets && library && /* @__PURE__ */ jsx(Fragment, { children: library })
287
+ ]
288
+ }
289
+ )
290
+ ] });
291
+ }
292
+ );
293
+ export {
294
+ ColorSolidPaint
295
+ };
@@ -0,0 +1,3 @@
1
+ export * from './color-native-picker';
2
+ export * from './color-solid-paint';
3
+ export * from './solid-paint-library-item';
@@ -0,0 +1,10 @@
1
+ import { ColorSliderProps } from '../color-slider';
2
+ type Props = Omit<ColorSliderProps, "position"> & {
3
+ alpha: number;
4
+ hue: number;
5
+ onAlphaChange?: (value: number) => void;
6
+ onChangeEnd?: () => void;
7
+ onChangeStart?: () => void;
8
+ };
9
+ export declare const SolidPaintAlphaSlider: (props: Props) => import("react/jsx-runtime").JSX.Element;
10
+ export {};
@@ -0,0 +1,20 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { ColorSlider } from "../color-slider/color-slider.js";
3
+ const SolidPaintAlphaSlider = (props) => {
4
+ const { hue, alpha, onAlphaChange, onChangeStart, onChangeEnd, trackSize } = props;
5
+ return /* @__PURE__ */ jsx(
6
+ ColorSlider,
7
+ {
8
+ position: alpha,
9
+ onChange: onAlphaChange,
10
+ type: "alpha",
11
+ hue,
12
+ trackSize,
13
+ onChangeStart,
14
+ onChangeEnd
15
+ }
16
+ );
17
+ };
18
+ export {
19
+ SolidPaintAlphaSlider
20
+ };