@choice-ui/react 1.7.6 → 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 (308) 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/index.d.ts +1 -0
  198. package/dist/components/textarea/src/tv.d.ts +9 -3
  199. package/dist/components/textarea/src/tv.js +3 -1
  200. package/dist/components/toggle-button/dist/index.js +602 -0
  201. package/dist/index.js +69 -0
  202. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/index.js +119 -0
  203. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/Color.js +42 -0
  204. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/chroma.js +9 -0
  205. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/colors/colorbrewer.js +57 -0
  206. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/colors/w3cx11.js +159 -0
  207. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/average.js +82 -0
  208. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/bezier.js +68 -0
  209. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/blend.js +43 -0
  210. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/cubehelix.js +81 -0
  211. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/mix.js +20 -0
  212. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/random.js +13 -0
  213. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/generator/scale.js +325 -0
  214. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/_hsx.js +54 -0
  215. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/hcg.js +10 -0
  216. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/hsi.js +10 -0
  217. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/hsl.js +10 -0
  218. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/hsv.js +10 -0
  219. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/index.js +4 -0
  220. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/lab.js +17 -0
  221. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/lch.js +11 -0
  222. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/lrgb.js +17 -0
  223. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/num.js +12 -0
  224. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/oklab.js +17 -0
  225. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/oklch.js +10 -0
  226. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/interpolator/rgb.js +16 -0
  227. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/cmyk/cmyk2rgb.js +20 -0
  228. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/cmyk/index.js +25 -0
  229. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/cmyk/rgb2cmyk.js +18 -0
  230. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/css2rgb.js +169 -0
  231. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/hsl2css.js +20 -0
  232. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/index.js +23 -0
  233. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/lab2css.js +19 -0
  234. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/lch2css.js +19 -0
  235. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/oklab2css.js +17 -0
  236. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/oklch2css.js +17 -0
  237. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/css/rgb2css.js +53 -0
  238. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/gl/index.js +21 -0
  239. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hcg/hcg2rgb.js +48 -0
  240. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hcg/index.js +25 -0
  241. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hcg/rgb2hcg.js +24 -0
  242. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hex/hex2rgb.js +37 -0
  243. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hex/index.js +23 -0
  244. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hex/rgb2hex.js +31 -0
  245. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsi/hsi2rgb.js +36 -0
  246. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsi/index.js +25 -0
  247. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsi/rgb2hsi.js +28 -0
  248. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsl/hsl2rgb.js +35 -0
  249. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsl/index.js +25 -0
  250. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsl/rgb2hsl.js +29 -0
  251. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsv/hsv2rgb.js +46 -0
  252. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsv/index.js +25 -0
  253. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/hsv/rgb2hsv.js +27 -0
  254. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/input.js +7 -0
  255. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lab/index.js +28 -0
  256. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lab/lab-constants.js +106 -0
  257. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lab/lab2rgb.js +59 -0
  258. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lab/rgb2lab.js +51 -0
  259. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/hcl2rgb.js +10 -0
  260. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/index.js +35 -0
  261. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/lab2lch.js +13 -0
  262. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/lch2lab.js +12 -0
  263. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/lch2rgb.js +14 -0
  264. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/lch/rgb2lch.js +13 -0
  265. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/named/index.js +26 -0
  266. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/num/index.js +23 -0
  267. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/num/num2rgb.js +13 -0
  268. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/num/rgb2num.js +9 -0
  269. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklab/index.js +25 -0
  270. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklab/oklab2rgb.js +31 -0
  271. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklab/rgb2oklab.js +30 -0
  272. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklch/index.js +25 -0
  273. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklch/oklch2rgb.js +14 -0
  274. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/oklch/rgb2oklch.js +13 -0
  275. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/rgb/index.js +34 -0
  276. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/temp/index.js +16 -0
  277. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/temp/rgb2temperature.js +25 -0
  278. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/io/temp/temperature2rgb.js +18 -0
  279. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/alpha.js +12 -0
  280. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/clipped.js +4 -0
  281. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/darken.js +14 -0
  282. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/get.js +12 -0
  283. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/luminance.js +38 -0
  284. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/mix.js +5 -0
  285. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/premultiply.js +11 -0
  286. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/saturate.js +13 -0
  287. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/set.js +42 -0
  288. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/ops/shade.js +9 -0
  289. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/analyze.js +161 -0
  290. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/clip_rgb.js +17 -0
  291. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/contrast.js +12 -0
  292. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/contrastAPCA.js +43 -0
  293. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/delta-e.js +48 -0
  294. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/distance.js +16 -0
  295. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/index.js +24 -0
  296. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/last.js +10 -0
  297. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/limit.js +7 -0
  298. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/multiply-matrices.js +29 -0
  299. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/scales.js +16 -0
  300. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/type.js +20 -0
  301. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/unpack.js +11 -0
  302. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/utils/valid.js +12 -0
  303. package/dist/node_modules/.pnpm/chroma-js@3.2.0/node_modules/chroma-js/src/version.js +4 -0
  304. package/dist/node_modules/.pnpm/fuse.js@7.1.0/node_modules/fuse.js/dist/fuse.js +1317 -0
  305. package/dist/styles/components.css +40 -0
  306. package/dist/tailwind.css +1 -0
  307. package/package.json +32 -20
  308. package/dist/components/virtual-select/dist/index.d.ts +0 -48
@@ -0,0 +1,461 @@
1
+ import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
+ import { ScrollArea } from "../../../scroll-area/dist/index.js";
3
+ import { useVirtualizer } from "@tanstack/react-virtual";
4
+ import Fuse from "../../../../node_modules/.pnpm/fuse.js@7.1.0/node_modules/fuse.js/dist/fuse.js";
5
+ import { forwardRef, useState, useMemo, useRef, useEffect } from "react";
6
+ import { VirtualizedGridRow } from "./components/virtualized-grid-row.js";
7
+ import { VirtualizedHeader } from "./components/virtualized-header.js";
8
+ import { useLibraryCategories } from "./hooks/use-category-options.js";
9
+ import { LibrariesHeader } from "./libraries-header.js";
10
+ import { LibraryItem } from "./library-item/library-item.js";
11
+ import { getColorPickerCursor } from "../hooks/use-cursor.js";
12
+ import { tcx } from "../../../../shared/utils/tcx/tcx.js";
13
+ const Libraries = forwardRef(function Libraries2(props, ref) {
14
+ const {
15
+ // 数据源
16
+ variables = [],
17
+ styles = [],
18
+ features: userFeatures = {},
19
+ // 分类
20
+ category = "all",
21
+ onCategoryChange,
22
+ // 显示类型
23
+ displayType: initialDisplayType = "LIST",
24
+ onDisplayTypeChange,
25
+ // 选择和变更
26
+ duplicateIndex,
27
+ onSwatchChange,
28
+ onLibraryChange,
29
+ selectedItem,
30
+ // 基础属性
31
+ className,
32
+ headerActionElement
33
+ } = props;
34
+ const features = {
35
+ containerWidth: 240,
36
+ variables: true,
37
+ styles: true,
38
+ ...userFeatures
39
+ };
40
+ const [searchTerm, setSearchTerm] = useState("");
41
+ const [currentDisplayType, setCurrentDisplayType] = useState(initialDisplayType);
42
+ const categoryOptions = useLibraryCategories({
43
+ variables,
44
+ styles
45
+ });
46
+ const filteredItems = useMemo(() => {
47
+ if (!searchTerm) {
48
+ if (category === "all") {
49
+ return { variables, styles };
50
+ }
51
+ return {
52
+ variables: variables.filter((v) => {
53
+ const [cat] = v.masterId.split("/");
54
+ return cat === category;
55
+ }),
56
+ styles: styles.filter((s) => {
57
+ const [cat] = s.fileId.split("/");
58
+ return cat === category;
59
+ })
60
+ };
61
+ }
62
+ const fuseInstance = new Fuse([...variables, ...styles], {
63
+ keys: ["name", "value", "masterId", "fileId", "fills.color"],
64
+ threshold: 0.3,
65
+ ignoreLocation: true
66
+ });
67
+ const searchResults = fuseInstance.search(searchTerm);
68
+ const searchedItems = searchResults.map((result) => result.item);
69
+ const filteredVariables = searchedItems.filter((item) => "masterId" in item);
70
+ const filteredStyles = searchedItems.filter((item) => "fileId" in item);
71
+ if (category === "all") {
72
+ return { variables: filteredVariables, styles: filteredStyles };
73
+ }
74
+ return {
75
+ variables: filteredVariables.filter((v) => {
76
+ const [cat] = v.masterId.split("/");
77
+ return cat === category;
78
+ }),
79
+ styles: filteredStyles.filter((s) => {
80
+ const [cat] = s.fileId.split("/");
81
+ return cat === category;
82
+ })
83
+ };
84
+ }, [category, searchTerm, variables, styles]);
85
+ const virtualizedItems = useMemo(() => {
86
+ const { variables: variables2, styles: styles2 } = filteredItems;
87
+ const items = [];
88
+ let isFirstCategory = true;
89
+ if (features.variables && variables2.length > 0) {
90
+ const variablesByCategory = /* @__PURE__ */ new Map();
91
+ variables2.forEach((variable) => {
92
+ const [category2, subcategory] = variable.masterId.split("/");
93
+ if (!variablesByCategory.has(category2)) {
94
+ variablesByCategory.set(category2, /* @__PURE__ */ new Map());
95
+ }
96
+ const subgroup = variablesByCategory.get(category2);
97
+ if (!subgroup.has(subcategory)) {
98
+ subgroup.set(subcategory, []);
99
+ }
100
+ subgroup.get(subcategory).push(variable);
101
+ });
102
+ variablesByCategory.forEach((subcategories, categoryName) => {
103
+ if (category === "all") {
104
+ items.push({
105
+ type: "header",
106
+ title: categoryName,
107
+ headerType: "category",
108
+ isFirst: isFirstCategory
109
+ });
110
+ isFirstCategory = false;
111
+ }
112
+ if (category === "all" || categoryName === category) {
113
+ subcategories.forEach((variables3, subcategory) => {
114
+ if (subcategory) {
115
+ items.push({
116
+ type: "header",
117
+ title: subcategory,
118
+ headerType: "subcategory"
119
+ });
120
+ }
121
+ variables3.forEach((variable, index) => {
122
+ items.push({
123
+ type: "item",
124
+ item: variable,
125
+ itemType: "VARIABLE",
126
+ index
127
+ });
128
+ });
129
+ });
130
+ }
131
+ });
132
+ }
133
+ if (features.styles && styles2.length > 0) {
134
+ const stylesByCategory = /* @__PURE__ */ new Map();
135
+ styles2.forEach((style2) => {
136
+ const [category2, subcategory] = style2.fileId.split("/");
137
+ if (!stylesByCategory.has(category2)) {
138
+ stylesByCategory.set(category2, /* @__PURE__ */ new Map());
139
+ }
140
+ const subgroup = stylesByCategory.get(category2);
141
+ if (!subgroup.has(subcategory)) {
142
+ subgroup.set(subcategory, []);
143
+ }
144
+ subgroup.get(subcategory).push(style2);
145
+ });
146
+ stylesByCategory.forEach((subcategories, categoryName) => {
147
+ if (category === "all") {
148
+ items.push({
149
+ type: "header",
150
+ title: categoryName,
151
+ headerType: "category",
152
+ isFirst: isFirstCategory
153
+ });
154
+ isFirstCategory = false;
155
+ }
156
+ if (category === "all" || categoryName === category) {
157
+ subcategories.forEach((styles3, subcategory) => {
158
+ if (subcategory) {
159
+ items.push({
160
+ type: "header",
161
+ title: subcategory,
162
+ headerType: "subcategory"
163
+ });
164
+ }
165
+ styles3.forEach((style2, index) => {
166
+ items.push({
167
+ type: "item",
168
+ item: style2,
169
+ itemType: "STYLE",
170
+ index
171
+ });
172
+ });
173
+ });
174
+ }
175
+ });
176
+ }
177
+ return items;
178
+ }, [filteredItems, features.variables, features.styles, category]);
179
+ const gridItems = useMemo(() => {
180
+ const items = virtualizedItems;
181
+ const result = [];
182
+ let currentRow = [];
183
+ for (let i = 0; i < items.length; i++) {
184
+ const item = items[i];
185
+ if (item.type === "header") {
186
+ if (currentRow.length > 0) {
187
+ result.push(currentRow);
188
+ currentRow = [];
189
+ }
190
+ result.push([item]);
191
+ } else if (item.type === "item") {
192
+ currentRow.push(item);
193
+ if (currentRow.length === 6) {
194
+ result.push(currentRow);
195
+ currentRow = [];
196
+ }
197
+ }
198
+ }
199
+ if (currentRow.length > 0) {
200
+ result.push(currentRow);
201
+ }
202
+ return result;
203
+ }, [virtualizedItems]);
204
+ const lastInternalSelectedRef = useRef(null);
205
+ const handleInternalSelect = (item) => {
206
+ lastInternalSelectedRef.current = {
207
+ ...item,
208
+ displayType: currentDisplayType
209
+ };
210
+ onLibraryChange == null ? void 0 : onLibraryChange(item);
211
+ };
212
+ useEffect(() => {
213
+ var _a, _b, _c;
214
+ if (!selectedItem || !parentRef.current) return;
215
+ if (((_a = lastInternalSelectedRef.current) == null ? void 0 : _a.type) === selectedItem.type && ((_b = lastInternalSelectedRef.current) == null ? void 0 : _b.item.id) === selectedItem.item.id && ((_c = lastInternalSelectedRef.current) == null ? void 0 : _c.displayType) === currentDisplayType) {
216
+ return;
217
+ }
218
+ const items = virtualizedItems;
219
+ const itemIndex = items.findIndex(
220
+ (item) => item.type === "item" && item.itemType === selectedItem.type && item.item.id === selectedItem.item.id
221
+ );
222
+ requestAnimationFrame(() => {
223
+ if (itemIndex !== -1) {
224
+ if (currentDisplayType === "LIST") {
225
+ listVirtualizer.scrollToIndex(itemIndex, { align: "center" });
226
+ } else {
227
+ const rowSize = currentDisplayType === "LARGE_GRID" ? 6 : 6;
228
+ const displayType = currentDisplayType;
229
+ if (displayType === "LARGE_GRID") {
230
+ const gridRows = gridItems;
231
+ let targetRowIndex = -1;
232
+ for (let i = 0; i < gridRows.length; i++) {
233
+ const row = gridRows[i];
234
+ const foundItem = row.find(
235
+ (item) => item.type === "item" && item.itemType === selectedItem.type && item.item.id === selectedItem.item.id
236
+ );
237
+ if (foundItem) {
238
+ targetRowIndex = i;
239
+ break;
240
+ }
241
+ }
242
+ if (targetRowIndex !== -1) {
243
+ rowVirtualizer.scrollToIndex(targetRowIndex, { align: "center" });
244
+ }
245
+ } else {
246
+ const rowIndex = Math.floor(itemIndex / rowSize);
247
+ rowVirtualizer.scrollToIndex(rowIndex, { align: "center" });
248
+ }
249
+ }
250
+ }
251
+ });
252
+ }, [selectedItem, currentDisplayType]);
253
+ useEffect(() => {
254
+ const scrollElement = parentRef.current;
255
+ if (scrollElement) {
256
+ scrollElement.scrollTop = 0;
257
+ }
258
+ }, [category]);
259
+ const allowDisplayTypeSwitch = useMemo(() => {
260
+ return (variables == null ? void 0 : variables.some((v) => v.type === "color")) || (styles == null ? void 0 : styles.some((s) => s.type === "PAINT"));
261
+ }, [variables, styles]);
262
+ useEffect(() => {
263
+ if (allowDisplayTypeSwitch && onDisplayTypeChange) {
264
+ onDisplayTypeChange(currentDisplayType);
265
+ }
266
+ }, [currentDisplayType, allowDisplayTypeSwitch, onDisplayTypeChange]);
267
+ useEffect(() => {
268
+ if (allowDisplayTypeSwitch && initialDisplayType !== currentDisplayType) {
269
+ setCurrentDisplayType(initialDisplayType);
270
+ }
271
+ }, [initialDisplayType, allowDisplayTypeSwitch]);
272
+ const inputRef = useRef(null);
273
+ const parentRef = useRef(null);
274
+ const virtualItemsCount = useMemo(() => {
275
+ return virtualizedItems.length;
276
+ }, [virtualizedItems, category, searchTerm]);
277
+ const gridItemsCount = useMemo(() => {
278
+ return gridItems.length;
279
+ }, [gridItems, category, searchTerm]);
280
+ const listVirtualizer = useVirtualizer({
281
+ count: virtualItemsCount,
282
+ getScrollElement: () => parentRef.current,
283
+ estimateSize: (index) => {
284
+ const item = virtualizedItems[index];
285
+ if (item.type === "header") {
286
+ return item.headerType === "category" && !item.isFirst ? 40 : 32;
287
+ }
288
+ return 32;
289
+ },
290
+ overscan: 5,
291
+ measureElement: (element) => {
292
+ return (element == null ? void 0 : element.getBoundingClientRect().height) ?? 32;
293
+ }
294
+ });
295
+ const rowVirtualizer = useVirtualizer({
296
+ count: gridItemsCount,
297
+ getScrollElement: () => parentRef.current,
298
+ estimateSize: (index) => {
299
+ const row = gridItems[index];
300
+ const firstItem = row[0];
301
+ if (firstItem.type === "header") {
302
+ return firstItem.headerType === "category" && !firstItem.isFirst ? 48 : 32;
303
+ }
304
+ return 36;
305
+ },
306
+ overscan: 5,
307
+ measureElement: (element) => {
308
+ return (element == null ? void 0 : element.getBoundingClientRect().height) ?? 32;
309
+ }
310
+ });
311
+ useEffect(() => {
312
+ const frame = requestAnimationFrame(() => {
313
+ if (listVirtualizer && rowVirtualizer) {
314
+ listVirtualizer.measure();
315
+ rowVirtualizer.measure();
316
+ }
317
+ });
318
+ return () => cancelAnimationFrame(frame);
319
+ }, [
320
+ listVirtualizer,
321
+ rowVirtualizer,
322
+ virtualItemsCount,
323
+ gridItemsCount,
324
+ category,
325
+ searchTerm,
326
+ currentDisplayType
327
+ ]);
328
+ const isItemSelected = (item, type) => {
329
+ if (!selectedItem) return false;
330
+ return selectedItem.type === type && selectedItem.item.id === item.id;
331
+ };
332
+ const cursor = getColorPickerCursor();
333
+ const style = useMemo(() => {
334
+ const measuredListHeight = listVirtualizer.getTotalSize();
335
+ const measuredRowHeight = rowVirtualizer.getTotalSize();
336
+ const estimatedListHeight = virtualItemsCount * 32;
337
+ const estimatedRowHeight = gridItemsCount * 36;
338
+ return {
339
+ "--color-picker-cursor": currentDisplayType === "LARGE_GRID" ? `url('${cursor}') 8 24, auto` : void 0,
340
+ "--height": tcx(
341
+ currentDisplayType === "LIST" && (measuredListHeight || estimatedListHeight) + 32 + "px",
342
+ currentDisplayType === "LARGE_GRID" && (measuredRowHeight || estimatedRowHeight) + 32 + "px"
343
+ ),
344
+ "--width": ((features == null ? void 0 : features.containerWidth) ?? 240) + "px"
345
+ };
346
+ }, [
347
+ currentDisplayType,
348
+ cursor,
349
+ features == null ? void 0 : features.containerWidth,
350
+ listVirtualizer,
351
+ rowVirtualizer,
352
+ virtualItemsCount,
353
+ gridItemsCount
354
+ ]);
355
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
356
+ /* @__PURE__ */ jsx(
357
+ LibrariesHeader,
358
+ {
359
+ searchValue: searchTerm,
360
+ onSearchChange: setSearchTerm,
361
+ displayType: currentDisplayType,
362
+ onDisplayTypeChange: setCurrentDisplayType,
363
+ inputRef,
364
+ categoryOptions,
365
+ value: category,
366
+ onChange: onCategoryChange,
367
+ allowDisplayTypeSwitch,
368
+ actionElement: headerActionElement
369
+ }
370
+ ),
371
+ /* @__PURE__ */ jsx(
372
+ ScrollArea,
373
+ {
374
+ ref,
375
+ className: tcx("flex h-96 flex-col", className),
376
+ style,
377
+ children: /* @__PURE__ */ jsx(
378
+ ScrollArea.Viewport,
379
+ {
380
+ ref: parentRef,
381
+ className: "relative flex h-full w-(--width) flex-col",
382
+ children: /* @__PURE__ */ jsx(ScrollArea.Content, { className: "h-(--height) flex-none", children: currentDisplayType === "LIST" ? listVirtualizer.getVirtualItems().map((virtualRow) => {
383
+ const item = virtualizedItems[virtualRow.index];
384
+ if (item.type === "header") {
385
+ return /* @__PURE__ */ jsx(
386
+ VirtualizedHeader,
387
+ {
388
+ title: item.title,
389
+ size: virtualRow.size,
390
+ start: virtualRow.start,
391
+ headerType: item.headerType,
392
+ isFirst: item.isFirst
393
+ },
394
+ `header-${virtualRow.index}`
395
+ );
396
+ }
397
+ return /* @__PURE__ */ jsx(
398
+ LibraryItem,
399
+ {
400
+ "data-item-id": item.item.id,
401
+ item: item.item,
402
+ libraryType: item.itemType,
403
+ isSelected: isItemSelected(item.item, item.itemType),
404
+ isDuplicate: duplicateIndex === item.index,
405
+ onSwatchChange,
406
+ onLibraryChange: handleInternalSelect,
407
+ displayType: currentDisplayType,
408
+ style: {
409
+ position: "absolute",
410
+ top: 0,
411
+ left: 0,
412
+ width: "100%",
413
+ height: `${virtualRow.size}px`,
414
+ transform: `translateY(${virtualRow.start + 16}px)`
415
+ }
416
+ },
417
+ item.item.id || `item-${item.itemType}-${item.index}`
418
+ );
419
+ }) : rowVirtualizer.getVirtualItems().map((virtualRow) => {
420
+ const row = gridItems[virtualRow.index];
421
+ const isHeader = row[0].type === "header";
422
+ if (isHeader) {
423
+ const headerItem = row[0];
424
+ return /* @__PURE__ */ jsx(
425
+ VirtualizedHeader,
426
+ {
427
+ title: headerItem.title,
428
+ size: virtualRow.size,
429
+ start: virtualRow.start,
430
+ headerType: headerItem.headerType,
431
+ isFirst: headerItem.isFirst
432
+ },
433
+ `header-${virtualRow.index}`
434
+ );
435
+ }
436
+ return /* @__PURE__ */ jsx(
437
+ VirtualizedGridRow,
438
+ {
439
+ row,
440
+ size: virtualRow.size,
441
+ start: virtualRow.start,
442
+ duplicateIndex,
443
+ onSwatchChange,
444
+ onLibraryChange: handleInternalSelect,
445
+ displayType: currentDisplayType,
446
+ offset: 16,
447
+ selectedItem
448
+ },
449
+ `row-${virtualRow.index}`
450
+ );
451
+ }) })
452
+ }
453
+ )
454
+ }
455
+ )
456
+ ] });
457
+ });
458
+ Libraries.displayName = "Libraries";
459
+ export {
460
+ Libraries
461
+ };
@@ -0,0 +1,21 @@
1
+ import { RGB, Style, Variable, LibrariesType } from '../types';
2
+ interface IfLibraryColorSwatchProps {
3
+ category?: string;
4
+ className?: string;
5
+ onCategoryChange?: (category: string) => void;
6
+ onLibraryChange?: (value: {
7
+ item: Variable | Style;
8
+ type: LibrariesType;
9
+ }) => void;
10
+ onSwatchChange?: (value: {
11
+ alpha: number;
12
+ color: RGB;
13
+ }) => void;
14
+ selectedItem?: {
15
+ item: Variable | Style;
16
+ type: LibrariesType;
17
+ } | null;
18
+ variables?: Variable[];
19
+ }
20
+ export declare const IfLibraryColorSwatch: import('react').ForwardRefExoticComponent<IfLibraryColorSwatchProps & import('react').RefAttributes<HTMLDivElement>>;
21
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './library-item';
2
+ export * from './library-list-item';
3
+ export * from './style-items';
4
+ export * from './variable-items';
@@ -0,0 +1,21 @@
1
+ import { HTMLProps } from 'react';
2
+ import { RGB, Style, Variable, LibrariesDisplayType, LibrariesType } from '../../types';
3
+ interface LibraryItemProps extends Omit<HTMLProps<HTMLDivElement>, "onSelect"> {
4
+ displayType: LibrariesDisplayType;
5
+ isDuplicate?: boolean;
6
+ isSelected?: boolean;
7
+ item: Variable | Style;
8
+ libraryType: LibrariesType;
9
+ onLibraryChange?: (value: {
10
+ item: Variable | Style;
11
+ type: LibrariesType;
12
+ }) => void;
13
+ onSetupPreferencesClick?: (id: string) => void;
14
+ onSwatchChange?: (value: {
15
+ alpha: number;
16
+ color: RGB;
17
+ }) => void;
18
+ setupPreferencesState$?: string | null;
19
+ }
20
+ export declare const LibraryItem: import('react').ForwardRefExoticComponent<Omit<LibraryItemProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
21
+ export {};
@@ -0,0 +1,151 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { IconButton } from "../../../../icon-button/dist/index.js";
3
+ import { SetupPreferences } from "@choiceform/icons-react";
4
+ import { forwardRef, useMemo } from "react";
5
+ import { colorLibrariesItemTv } from "../tv.js";
6
+ import { StyleEffectItem, StyleTextItem, StylePaintItem } from "./style-items.js";
7
+ import { VariableEnumItem, VariableStringItem, VariableBooleanItem, VariableNumberItem, VariableColorItem } from "./variable-items.js";
8
+ import { usePaletteColor } from "../hooks/use-palette-color.js";
9
+ const LibraryItem = forwardRef(
10
+ function LibraryItem2(props, ref) {
11
+ const {
12
+ item,
13
+ isSelected,
14
+ isDuplicate,
15
+ displayType,
16
+ libraryType,
17
+ onLibraryChange,
18
+ onSwatchChange,
19
+ setupPreferencesState$,
20
+ onSetupPreferencesClick,
21
+ ...rest
22
+ } = props;
23
+ const variableType = useMemo(() => item.type, [item]);
24
+ const styleType = useMemo(() => item.type, [item]);
25
+ const shouldColorPreview = useMemo(() => {
26
+ return libraryType === "VARIABLE" && variableType === "color" || libraryType === "STYLE" && styleType === "PAINT";
27
+ }, [libraryType, variableType, styleType]);
28
+ const { paletteColor } = usePaletteColor({
29
+ item,
30
+ libraryType
31
+ });
32
+ const styles = colorLibrariesItemTv({
33
+ displayType,
34
+ isDuplicate,
35
+ libraryType,
36
+ isSelected
37
+ });
38
+ const paletteSize = useMemo(() => displayType === "LARGE_GRID" ? 28 : 16, [displayType]);
39
+ const handleLibraryClick = () => {
40
+ onLibraryChange == null ? void 0 : onLibraryChange({ type: libraryType, item });
41
+ };
42
+ const handleSetupPreferencesClick = () => {
43
+ onSetupPreferencesClick == null ? void 0 : onSetupPreferencesClick(item.id);
44
+ };
45
+ return /* @__PURE__ */ jsxs(
46
+ "div",
47
+ {
48
+ ref,
49
+ className: styles.container(),
50
+ onClick: displayType === "SMALL_GRID" ? () => onSwatchChange == null ? void 0 : onSwatchChange(paletteColor) : handleLibraryClick,
51
+ ...rest,
52
+ children: [
53
+ (() => {
54
+ if (libraryType === "VARIABLE") {
55
+ switch (variableType) {
56
+ case "color":
57
+ return /* @__PURE__ */ jsx(
58
+ VariableColorItem,
59
+ {
60
+ item,
61
+ libraryType,
62
+ displayType,
63
+ onSwatchChange,
64
+ paletteSize,
65
+ isSelected,
66
+ isDuplicate
67
+ }
68
+ );
69
+ case "number":
70
+ return /* @__PURE__ */ jsx(VariableNumberItem, {});
71
+ case "boolean":
72
+ return /* @__PURE__ */ jsx(VariableBooleanItem, {});
73
+ case "string":
74
+ return /* @__PURE__ */ jsx(VariableStringItem, {});
75
+ case "enum":
76
+ return /* @__PURE__ */ jsx(VariableEnumItem, {});
77
+ default:
78
+ return null;
79
+ }
80
+ }
81
+ if (libraryType === "STYLE") {
82
+ switch (styleType) {
83
+ case "PAINT":
84
+ return /* @__PURE__ */ jsx(
85
+ StylePaintItem,
86
+ {
87
+ item,
88
+ libraryType,
89
+ displayType,
90
+ paletteSize,
91
+ isSelected,
92
+ isDuplicate
93
+ }
94
+ );
95
+ case "TEXT":
96
+ return /* @__PURE__ */ jsx(StyleTextItem, { item });
97
+ case "EFFECT":
98
+ return /* @__PURE__ */ jsx(StyleEffectItem, { item });
99
+ default:
100
+ return null;
101
+ }
102
+ }
103
+ return null;
104
+ })(),
105
+ displayType === "LIST" && /* @__PURE__ */ jsxs("div", { className: styles.wrapper(), children: [
106
+ /* @__PURE__ */ jsx(
107
+ "span",
108
+ {
109
+ className: libraryType === "VARIABLE" ? styles.variableName() : styles.styleName(),
110
+ children: item.name
111
+ }
112
+ ),
113
+ !shouldColorPreview && (() => {
114
+ if (libraryType === "VARIABLE") {
115
+ return /* @__PURE__ */ jsx("span", { className: styles.variableValue(), children: String(item.value) });
116
+ }
117
+ if (libraryType === "STYLE" && styleType === "TEXT") {
118
+ const textStyle = item;
119
+ return /* @__PURE__ */ jsxs("span", { className: styles.styleValue(), children: [
120
+ ` · `,
121
+ textStyle.fontSize,
122
+ `/`,
123
+ textStyle.lineHeight.number
124
+ ] });
125
+ }
126
+ return null;
127
+ })()
128
+ ] }),
129
+ libraryType === "STYLE" && displayType === "LIST" && /* @__PURE__ */ jsx(
130
+ IconButton,
131
+ {
132
+ tooltip: {
133
+ content: "Setup Preferences"
134
+ },
135
+ className: styles.itemSetup(),
136
+ onClick: (e) => {
137
+ e.stopPropagation();
138
+ handleSetupPreferencesClick();
139
+ },
140
+ children: /* @__PURE__ */ jsx(SetupPreferences, {})
141
+ }
142
+ )
143
+ ]
144
+ }
145
+ );
146
+ }
147
+ );
148
+ LibraryItem.displayName = "LibraryItem";
149
+ export {
150
+ LibraryItem
151
+ };
@@ -0,0 +1,6 @@
1
+ import { ComponentProps } from 'react';
2
+ type Props = ComponentProps<"div"> & {
3
+ isSelected: boolean;
4
+ };
5
+ export declare const LibraryListItem: (props: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,17 @@
1
+ import { EffectStyle, Style, LibrariesDisplayType, LibrariesType } from '../../types';
2
+ interface StyleItemProps {
3
+ displayType?: LibrariesDisplayType;
4
+ isDuplicate?: boolean;
5
+ isSelected?: boolean;
6
+ item: Style;
7
+ libraryType?: LibrariesType;
8
+ paletteSize?: number;
9
+ previewUrl?: string;
10
+ }
11
+ export declare const StylePaintItem: ({ item, libraryType, displayType, paletteSize, isSelected, isDuplicate, }: StyleItemProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const StyleTextItem: ({ item, previewUrl }: StyleItemProps) => import("react/jsx-runtime").JSX.Element;
13
+ interface StyleEffectItemProps extends StyleItemProps {
14
+ item: EffectStyle;
15
+ }
16
+ export declare const StyleEffectItem: ({ item }: StyleEffectItemProps) => import("react/jsx-runtime").JSX.Element | null;
17
+ export {};