color-elements 0.0.1 → 0.0.3

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 (498) hide show
  1. package/README.md +49 -12
  2. package/_build/copy-config.js +11 -1
  3. package/_build/copy-config.json +2 -2
  4. package/_build/eleventy.js +27 -1
  5. package/_build/filters-extra.js +3 -0
  6. package/_includes/component.njk +69 -0
  7. package/_includes/partials/_nav-links.njk +19 -0
  8. package/_redirects +9 -2
  9. package/assets/css/style.css +78 -1
  10. package/assets/js/index.js +11 -10
  11. package/data/components.json +12 -0
  12. package/debug.html +447 -0
  13. package/eslint.config.js +316 -0
  14. package/index.js +10 -4
  15. package/logo.svg +22 -44
  16. package/package.json +12 -5
  17. package/src/channel-picker/README.md +103 -0
  18. package/src/channel-picker/channel-picker.css +31 -0
  19. package/src/channel-picker/channel-picker.js +168 -0
  20. package/src/channel-picker/channel-picker.webp +0 -0
  21. package/src/channel-slider/README.md +165 -0
  22. package/src/channel-slider/channel-slider.css +61 -0
  23. package/src/channel-slider/channel-slider.js +287 -0
  24. package/src/channel-slider/channel-slider.webp +0 -0
  25. package/src/color-chart/README.md +129 -0
  26. package/src/color-chart/color-chart-global.css +97 -0
  27. package/src/color-chart/color-chart.css +112 -0
  28. package/src/color-chart/color-chart.js +441 -0
  29. package/src/color-chart/color-chart.webp +0 -0
  30. package/src/color-inline/README.md +72 -0
  31. package/{color-swatch/color-swatch.css → src/color-inline/color-inline.css} +11 -4
  32. package/src/color-inline/color-inline.js +85 -0
  33. package/src/color-inline/color-inline.webp +0 -0
  34. package/src/color-inline/style.css +14 -0
  35. package/src/color-picker/README.md +150 -0
  36. package/src/color-picker/color-picker.css +35 -0
  37. package/src/color-picker/color-picker.js +251 -0
  38. package/src/color-picker/color-picker.webp +0 -0
  39. package/src/color-scale/README.md +75 -0
  40. package/src/color-scale/color-scale.css +40 -0
  41. package/src/color-scale/color-scale.js +164 -0
  42. package/src/color-scale/color-scale.webp +0 -0
  43. package/src/color-slider/README.md +220 -0
  44. package/src/color-slider/color-slider.css +174 -0
  45. package/src/color-slider/color-slider.js +320 -0
  46. package/src/color-slider/color-slider.webp +0 -0
  47. package/src/color-swatch/README.md +359 -0
  48. package/src/color-swatch/color-swatch.css +230 -0
  49. package/src/color-swatch/color-swatch.js +252 -0
  50. package/src/color-swatch/color-swatch.webp +0 -0
  51. package/src/common/color-element.js +86 -0
  52. package/src/common/dom.js +61 -0
  53. package/src/common/util.js +55 -0
  54. package/src/gamut-badge/README.md +145 -0
  55. package/src/gamut-badge/gamut-badge.css +78 -0
  56. package/src/gamut-badge/gamut-badge.js +121 -0
  57. package/src/gamut-badge/gamut-badge.webp +0 -0
  58. package/src/index.js.njk +7 -0
  59. package/src/space-picker/README.md +121 -0
  60. package/src/space-picker/space-picker.css +23 -0
  61. package/src/space-picker/space-picker.js +213 -0
  62. package/src/space-picker/space-picker.webp +0 -0
  63. package/src/src.json +3 -0
  64. package/_data/eleventyComputed.11tydata.js +0 -29
  65. package/color-gamut/README.md +0 -75
  66. package/color-gamut/color-gamut.js +0 -172
  67. package/color-gamut/style.css +0 -32
  68. package/color-slider/README.md +0 -84
  69. package/color-slider/color-slider.js +0 -79
  70. package/color-slider/style.css +0 -65
  71. package/color-swatch/color-swatch.js +0 -79
  72. package/color-swatch/index.njk +0 -40
  73. package/common/attributes.js +0 -68
  74. package/common/color.js +0 -10
  75. package/css-color/css-color.js +0 -256
  76. package/css-color/index.njk +0 -43
  77. package/css-color/style.css +0 -67
  78. package/lib/README.md +0 -4
  79. package/lib/colorjs.io/LICENSE +0 -21
  80. package/lib/colorjs.io/README.json +0 -3
  81. package/lib/colorjs.io/README.md +0 -257
  82. package/lib/colorjs.io/colorjs.io/LICENSE +0 -21
  83. package/lib/colorjs.io/colorjs.io/README.json +0 -3
  84. package/lib/colorjs.io/colorjs.io/README.md +0 -257
  85. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +0 -5437
  86. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +0 -1
  87. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  88. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  89. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  90. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  91. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +0 -2
  92. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  93. package/lib/colorjs.io/colorjs.io/dist/color.cjs +0 -5759
  94. package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +0 -1
  95. package/lib/colorjs.io/colorjs.io/dist/color.global.js +0 -5760
  96. package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +0 -1
  97. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +0 -7400
  98. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +0 -1
  99. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +0 -2
  100. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  101. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +0 -2
  102. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +0 -1
  103. package/lib/colorjs.io/colorjs.io/dist/color.js +0 -5755
  104. package/lib/colorjs.io/colorjs.io/dist/color.js.map +0 -1
  105. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +0 -7399
  106. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +0 -1
  107. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +0 -7395
  108. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +0 -1
  109. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +0 -2
  110. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  111. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +0 -2
  112. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +0 -1
  113. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +0 -2
  114. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +0 -1
  115. package/lib/colorjs.io/colorjs.io/dist/color.min.js +0 -2
  116. package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +0 -1
  117. package/lib/colorjs.io/colorjs.io/package.json +0 -113
  118. package/lib/colorjs.io/colorjs.io/src/CATs.js +0 -131
  119. package/lib/colorjs.io/colorjs.io/src/adapt.js +0 -62
  120. package/lib/colorjs.io/colorjs.io/src/angles.js +0 -44
  121. package/lib/colorjs.io/colorjs.io/src/chromaticity.js +0 -33
  122. package/lib/colorjs.io/colorjs.io/src/clone.js +0 -7
  123. package/lib/colorjs.io/colorjs.io/src/color.js +0 -201
  124. package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +0 -102
  125. package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +0 -17
  126. package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +0 -22
  127. package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +0 -20
  128. package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +0 -27
  129. package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +0 -25
  130. package/lib/colorjs.io/colorjs.io/src/contrast/index.js +0 -6
  131. package/lib/colorjs.io/colorjs.io/src/contrast.js +0 -28
  132. package/lib/colorjs.io/colorjs.io/src/defaults.js +0 -12
  133. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  134. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +0 -7
  135. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  136. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  137. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  138. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  139. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  140. package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +0 -27
  141. package/lib/colorjs.io/colorjs.io/src/deltaE.js +0 -19
  142. package/lib/colorjs.io/colorjs.io/src/display.js +0 -83
  143. package/lib/colorjs.io/colorjs.io/src/distance.js +0 -21
  144. package/lib/colorjs.io/colorjs.io/src/equals.js +0 -10
  145. package/lib/colorjs.io/colorjs.io/src/get.js +0 -11
  146. package/lib/colorjs.io/colorjs.io/src/getAll.js +0 -20
  147. package/lib/colorjs.io/colorjs.io/src/getColor.js +0 -36
  148. package/lib/colorjs.io/colorjs.io/src/hooks.js +0 -37
  149. package/lib/colorjs.io/colorjs.io/src/inGamut.js +0 -25
  150. package/lib/colorjs.io/colorjs.io/src/index-fn.js +0 -28
  151. package/lib/colorjs.io/colorjs.io/src/index.js +0 -38
  152. package/lib/colorjs.io/colorjs.io/src/interpolation.js +0 -222
  153. package/lib/colorjs.io/colorjs.io/src/keywords.js +0 -158
  154. package/lib/colorjs.io/colorjs.io/src/luminance.js +0 -27
  155. package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +0 -44
  156. package/lib/colorjs.io/colorjs.io/src/parse.js +0 -198
  157. package/lib/colorjs.io/colorjs.io/src/rgbspace.js +0 -64
  158. package/lib/colorjs.io/colorjs.io/src/serialize.js +0 -86
  159. package/lib/colorjs.io/colorjs.io/src/set.js +0 -33
  160. package/lib/colorjs.io/colorjs.io/src/setAll.js +0 -12
  161. package/lib/colorjs.io/colorjs.io/src/space-accessors.js +0 -86
  162. package/lib/colorjs.io/colorjs.io/src/space.js +0 -440
  163. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  164. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +0 -11
  165. package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +0 -76
  166. package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +0 -54
  167. package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +0 -362
  168. package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +0 -157
  169. package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +0 -130
  170. package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +0 -91
  171. package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +0 -162
  172. package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +0 -65
  173. package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +0 -58
  174. package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +0 -133
  175. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  176. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +0 -29
  177. package/lib/colorjs.io/colorjs.io/src/spaces/index.js +0 -8
  178. package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +0 -118
  179. package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +0 -53
  180. package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +0 -74
  181. package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +0 -74
  182. package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +0 -67
  183. package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +0 -68
  184. package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +0 -85
  185. package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +0 -74
  186. package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +0 -68
  187. package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +0 -22
  188. package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +0 -13
  189. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  190. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +0 -19
  191. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  192. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +0 -31
  193. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  194. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  195. package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +0 -30
  196. package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +0 -127
  197. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  198. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +0 -12
  199. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +0 -18
  200. package/lib/colorjs.io/colorjs.io/src/to.js +0 -26
  201. package/lib/colorjs.io/colorjs.io/src/toGamut.js +0 -310
  202. package/lib/colorjs.io/colorjs.io/src/util.js +0 -254
  203. package/lib/colorjs.io/colorjs.io/src/variations.js +0 -14
  204. package/lib/colorjs.io/colorjs.io/types/index.d.cts +0 -4
  205. package/lib/colorjs.io/colorjs.io/types/index.d.ts +0 -42
  206. package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +0 -13
  207. package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +0 -12
  208. package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +0 -7
  209. package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +0 -7
  210. package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +0 -3
  211. package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +0 -160
  212. package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  213. package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  214. package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  215. package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  216. package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  217. package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  218. package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +0 -11
  219. package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +0 -12
  220. package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +0 -2
  221. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  222. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  223. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  224. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  225. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  226. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  227. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  228. package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  229. package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +0 -12
  230. package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +0 -17
  231. package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +0 -8
  232. package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +0 -3
  233. package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +0 -4
  234. package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +0 -7
  235. package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +0 -4
  236. package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +0 -52
  237. package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +0 -8
  238. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +0 -1
  239. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +0 -63
  240. package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +0 -125
  241. package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +0 -77
  242. package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +0 -2
  243. package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +0 -10
  244. package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  245. package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +0 -16
  246. package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +0 -10
  247. package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +0 -13
  248. package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +0 -18
  249. package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +0 -14
  250. package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +0 -1
  251. package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  252. package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +0 -143
  253. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  254. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  255. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  256. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  257. package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  258. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  259. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  260. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  261. package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  262. package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  263. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  264. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  265. package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +0 -4
  266. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  267. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  268. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  269. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  270. package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  271. package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  272. package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  273. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  274. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  275. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  276. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  277. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  278. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  279. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  280. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  281. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  282. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  283. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  284. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  285. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  286. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  287. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  288. package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +0 -14
  289. package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +0 -45
  290. package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +0 -58
  291. package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +0 -5
  292. package/lib/colorjs.io/dist/color-fn.cjs +0 -5437
  293. package/lib/colorjs.io/dist/color-fn.cjs.map +0 -1
  294. package/lib/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  295. package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  296. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  297. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  298. package/lib/colorjs.io/dist/color-fn.min.cjs +0 -2
  299. package/lib/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  300. package/lib/colorjs.io/dist/color.cjs +0 -5759
  301. package/lib/colorjs.io/dist/color.cjs.map +0 -1
  302. package/lib/colorjs.io/dist/color.global.js +0 -5760
  303. package/lib/colorjs.io/dist/color.global.js.map +0 -1
  304. package/lib/colorjs.io/dist/color.global.legacy.js +0 -7400
  305. package/lib/colorjs.io/dist/color.global.legacy.js.map +0 -1
  306. package/lib/colorjs.io/dist/color.global.legacy.min.js +0 -2
  307. package/lib/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  308. package/lib/colorjs.io/dist/color.global.min.js +0 -2
  309. package/lib/colorjs.io/dist/color.global.min.js.map +0 -1
  310. package/lib/colorjs.io/dist/color.js +0 -5755
  311. package/lib/colorjs.io/dist/color.js.map +0 -1
  312. package/lib/colorjs.io/dist/color.legacy.cjs +0 -7399
  313. package/lib/colorjs.io/dist/color.legacy.cjs.map +0 -1
  314. package/lib/colorjs.io/dist/color.legacy.js +0 -7395
  315. package/lib/colorjs.io/dist/color.legacy.js.map +0 -1
  316. package/lib/colorjs.io/dist/color.legacy.min.cjs +0 -2
  317. package/lib/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  318. package/lib/colorjs.io/dist/color.legacy.min.js +0 -2
  319. package/lib/colorjs.io/dist/color.legacy.min.js.map +0 -1
  320. package/lib/colorjs.io/dist/color.min.cjs +0 -2
  321. package/lib/colorjs.io/dist/color.min.cjs.map +0 -1
  322. package/lib/colorjs.io/dist/color.min.js +0 -2
  323. package/lib/colorjs.io/dist/color.min.js.map +0 -1
  324. package/lib/colorjs.io/package.json +0 -113
  325. package/lib/colorjs.io/src/CATs.js +0 -131
  326. package/lib/colorjs.io/src/adapt.js +0 -62
  327. package/lib/colorjs.io/src/angles.js +0 -44
  328. package/lib/colorjs.io/src/chromaticity.js +0 -33
  329. package/lib/colorjs.io/src/clone.js +0 -7
  330. package/lib/colorjs.io/src/color.js +0 -201
  331. package/lib/colorjs.io/src/contrast/APCA.js +0 -102
  332. package/lib/colorjs.io/src/contrast/Lstar.js +0 -17
  333. package/lib/colorjs.io/src/contrast/Michelson.js +0 -22
  334. package/lib/colorjs.io/src/contrast/WCAG21.js +0 -20
  335. package/lib/colorjs.io/src/contrast/Weber.js +0 -27
  336. package/lib/colorjs.io/src/contrast/deltaPhi.js +0 -25
  337. package/lib/colorjs.io/src/contrast/index.js +0 -6
  338. package/lib/colorjs.io/src/contrast.js +0 -28
  339. package/lib/colorjs.io/src/defaults.js +0 -12
  340. package/lib/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  341. package/lib/colorjs.io/src/deltaE/deltaE76.js +0 -7
  342. package/lib/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  343. package/lib/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  344. package/lib/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  345. package/lib/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  346. package/lib/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  347. package/lib/colorjs.io/src/deltaE/index.js +0 -27
  348. package/lib/colorjs.io/src/deltaE.js +0 -19
  349. package/lib/colorjs.io/src/display.js +0 -83
  350. package/lib/colorjs.io/src/distance.js +0 -21
  351. package/lib/colorjs.io/src/equals.js +0 -10
  352. package/lib/colorjs.io/src/get.js +0 -11
  353. package/lib/colorjs.io/src/getAll.js +0 -20
  354. package/lib/colorjs.io/src/getColor.js +0 -36
  355. package/lib/colorjs.io/src/hooks.js +0 -37
  356. package/lib/colorjs.io/src/inGamut.js +0 -25
  357. package/lib/colorjs.io/src/index-fn.js +0 -28
  358. package/lib/colorjs.io/src/index.js +0 -38
  359. package/lib/colorjs.io/src/interpolation.js +0 -222
  360. package/lib/colorjs.io/src/keywords.js +0 -158
  361. package/lib/colorjs.io/src/luminance.js +0 -27
  362. package/lib/colorjs.io/src/multiply-matrices.js +0 -44
  363. package/lib/colorjs.io/src/parse.js +0 -198
  364. package/lib/colorjs.io/src/rgbspace.js +0 -64
  365. package/lib/colorjs.io/src/serialize.js +0 -86
  366. package/lib/colorjs.io/src/set.js +0 -33
  367. package/lib/colorjs.io/src/setAll.js +0 -12
  368. package/lib/colorjs.io/src/space-accessors.js +0 -86
  369. package/lib/colorjs.io/src/space.js +0 -440
  370. package/lib/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  371. package/lib/colorjs.io/src/spaces/a98rgb.js +0 -11
  372. package/lib/colorjs.io/src/spaces/acescc.js +0 -76
  373. package/lib/colorjs.io/src/spaces/acescg.js +0 -54
  374. package/lib/colorjs.io/src/spaces/cam16.js +0 -362
  375. package/lib/colorjs.io/src/spaces/hct.js +0 -157
  376. package/lib/colorjs.io/src/spaces/hpluv.js +0 -130
  377. package/lib/colorjs.io/src/spaces/hsl.js +0 -91
  378. package/lib/colorjs.io/src/spaces/hsluv.js +0 -162
  379. package/lib/colorjs.io/src/spaces/hsv.js +0 -65
  380. package/lib/colorjs.io/src/spaces/hwb.js +0 -58
  381. package/lib/colorjs.io/src/spaces/ictcp.js +0 -133
  382. package/lib/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  383. package/lib/colorjs.io/src/spaces/index-fn.js +0 -29
  384. package/lib/colorjs.io/src/spaces/index.js +0 -8
  385. package/lib/colorjs.io/src/spaces/jzazbz.js +0 -118
  386. package/lib/colorjs.io/src/spaces/jzczhz.js +0 -53
  387. package/lib/colorjs.io/src/spaces/lab-d65.js +0 -74
  388. package/lib/colorjs.io/src/spaces/lab.js +0 -74
  389. package/lib/colorjs.io/src/spaces/lch.js +0 -67
  390. package/lib/colorjs.io/src/spaces/lchuv.js +0 -68
  391. package/lib/colorjs.io/src/spaces/luv.js +0 -85
  392. package/lib/colorjs.io/src/spaces/oklab.js +0 -74
  393. package/lib/colorjs.io/src/spaces/oklch.js +0 -68
  394. package/lib/colorjs.io/src/spaces/p3-linear.js +0 -22
  395. package/lib/colorjs.io/src/spaces/p3.js +0 -13
  396. package/lib/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  397. package/lib/colorjs.io/src/spaces/prophoto.js +0 -19
  398. package/lib/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  399. package/lib/colorjs.io/src/spaces/rec2020.js +0 -31
  400. package/lib/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  401. package/lib/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  402. package/lib/colorjs.io/src/spaces/srgb-linear.js +0 -30
  403. package/lib/colorjs.io/src/spaces/srgb.js +0 -127
  404. package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  405. package/lib/colorjs.io/src/spaces/xyz-d50.js +0 -12
  406. package/lib/colorjs.io/src/spaces/xyz-d65.js +0 -18
  407. package/lib/colorjs.io/src/to.js +0 -26
  408. package/lib/colorjs.io/src/toGamut.js +0 -310
  409. package/lib/colorjs.io/src/util.js +0 -254
  410. package/lib/colorjs.io/src/variations.js +0 -14
  411. package/lib/colorjs.io/types/index.d.cts +0 -4
  412. package/lib/colorjs.io/types/index.d.ts +0 -42
  413. package/lib/colorjs.io/types/src/CATs.d.ts +0 -13
  414. package/lib/colorjs.io/types/src/adapt.d.ts +0 -12
  415. package/lib/colorjs.io/types/src/angles.d.ts +0 -7
  416. package/lib/colorjs.io/types/src/chromaticity.d.ts +0 -7
  417. package/lib/colorjs.io/types/src/clone.d.ts +0 -3
  418. package/lib/colorjs.io/types/src/color.d.ts +0 -160
  419. package/lib/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  420. package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  421. package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  422. package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  423. package/lib/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  424. package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  425. package/lib/colorjs.io/types/src/contrast/index.d.ts +0 -11
  426. package/lib/colorjs.io/types/src/contrast.d.ts +0 -12
  427. package/lib/colorjs.io/types/src/defaults.d.ts +0 -2
  428. package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  429. package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  430. package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  431. package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  432. package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  433. package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  434. package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  435. package/lib/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  436. package/lib/colorjs.io/types/src/deltaE.d.ts +0 -12
  437. package/lib/colorjs.io/types/src/display.d.ts +0 -17
  438. package/lib/colorjs.io/types/src/distance.d.ts +0 -8
  439. package/lib/colorjs.io/types/src/equals.d.ts +0 -3
  440. package/lib/colorjs.io/types/src/get.d.ts +0 -4
  441. package/lib/colorjs.io/types/src/getAll.d.ts +0 -7
  442. package/lib/colorjs.io/types/src/getColor.d.ts +0 -4
  443. package/lib/colorjs.io/types/src/hooks.d.ts +0 -52
  444. package/lib/colorjs.io/types/src/inGamut.d.ts +0 -8
  445. package/lib/colorjs.io/types/src/index-fn.d.cts +0 -1
  446. package/lib/colorjs.io/types/src/index-fn.d.ts +0 -63
  447. package/lib/colorjs.io/types/src/index.d.ts +0 -125
  448. package/lib/colorjs.io/types/src/interpolation.d.ts +0 -77
  449. package/lib/colorjs.io/types/src/keywords.d.ts +0 -2
  450. package/lib/colorjs.io/types/src/luminance.d.ts +0 -10
  451. package/lib/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  452. package/lib/colorjs.io/types/src/parse.d.ts +0 -16
  453. package/lib/colorjs.io/types/src/rgbspace.d.ts +0 -10
  454. package/lib/colorjs.io/types/src/serialize.d.ts +0 -13
  455. package/lib/colorjs.io/types/src/set.d.ts +0 -18
  456. package/lib/colorjs.io/types/src/setAll.d.ts +0 -14
  457. package/lib/colorjs.io/types/src/space-accessors.d.ts +0 -1
  458. package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  459. package/lib/colorjs.io/types/src/space.d.ts +0 -143
  460. package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  461. package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  462. package/lib/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  463. package/lib/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  464. package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  465. package/lib/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  466. package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  467. package/lib/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  468. package/lib/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  469. package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  470. package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  471. package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  472. package/lib/colorjs.io/types/src/spaces/index.d.ts +0 -4
  473. package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  474. package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  475. package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  476. package/lib/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  477. package/lib/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  478. package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  479. package/lib/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  480. package/lib/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  481. package/lib/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  482. package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  483. package/lib/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  484. package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  485. package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  486. package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  487. package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  488. package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  489. package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  490. package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  491. package/lib/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  492. package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  493. package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  494. package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  495. package/lib/colorjs.io/types/src/to.d.ts +0 -14
  496. package/lib/colorjs.io/types/src/toGamut.d.ts +0 -45
  497. package/lib/colorjs.io/types/src/util.d.ts +0 -58
  498. package/lib/colorjs.io/types/src/variations.d.ts +0 -5
@@ -0,0 +1,213 @@
1
+ import ColorElement from "../common/color-element.js";
2
+
3
+ const Self = class SpacePicker extends ColorElement {
4
+ static tagName = "space-picker";
5
+ static url = import.meta.url;
6
+ static shadowStyle = true;
7
+ static shadowTemplate = `<select id="picker" part="base"></select>`;
8
+
9
+ constructor () {
10
+ super();
11
+
12
+ this._el = {};
13
+ this._el.picker = this.shadowRoot.querySelector("#picker");
14
+ }
15
+
16
+ connectedCallback () {
17
+ super.connectedCallback?.();
18
+ this._el.picker.addEventListener("input", this);
19
+ }
20
+
21
+ disconnectedCallback () {
22
+ super.disconnectedCallback?.();
23
+ this._el.picker.removeEventListener("input", this);
24
+ }
25
+
26
+ handleEvent (event) {
27
+ if (event.target === this._el.picker && event.target.value !== this.value) {
28
+ this.value = event.target.value;
29
+ }
30
+ }
31
+
32
+ propChangedCallback ({name, prop, detail: change}) {
33
+ if (name === "spaces") {
34
+ if (!this.groups) {
35
+ this._el.picker.innerHTML = Object.entries(this.spaces)
36
+ .map(([id, space]) => `<option value="${ id }">${ this.getSpaceLabel(space) }</option>`)
37
+ .join("\n");
38
+ }
39
+ else {
40
+ let groups = this.groups;
41
+
42
+ // Remove empty groups
43
+ groups = Object.entries(groups).filter(([type, spaces]) => {
44
+ if (Object.keys(spaces).length === 0) {
45
+ console.warn(`Removed empty group of color spaces with the label "${type}."`);
46
+ return false;
47
+ }
48
+
49
+ return true;
50
+ });
51
+
52
+ if (!groups.length) {
53
+ console.warn("All provided groups of color spaces are empty. Falling back to default grouping.");
54
+ groups = [["All spaces", this.spaces]];
55
+ }
56
+
57
+ this._el.picker.innerHTML = groups.map(([type, spaces]) => `
58
+ <optgroup label="${type}">
59
+ ${Object.entries(spaces)
60
+ .map(([id, space]) => `<option value="${ id }">${ this.getSpaceLabel(space) }</option>`)
61
+ .join("\n")}
62
+ </optgroup>
63
+ `).join("\n");
64
+ }
65
+
66
+ this._el.picker.value = this.value;
67
+ }
68
+
69
+ if (name === "value") {
70
+ let value = this.value;
71
+
72
+ if (value) {
73
+ if (!(value in this.spaces)) {
74
+ let spaces = Object.keys(this.spaces);
75
+ let firstSpace = spaces[0];
76
+ let currentSpace = this._el.picker.value;
77
+ let fallback = spaces.includes(currentSpace) ? currentSpace : firstSpace;
78
+
79
+ console.warn(`No color space found with id = "${ value }". Choose one of the following: ${ spaces.join(", ") }. Falling back to "${ fallback }".`);
80
+ this.value = value = fallback;
81
+ }
82
+
83
+ if (this._el.picker.value !== value) {
84
+ this._el.picker.value = value;
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ static props = {
91
+ value: {
92
+ default () {
93
+ if (this.groups) {
94
+ let groups = this.groups;
95
+ let firstGroup = Object.values(groups)[0];
96
+
97
+ return firstGroup && Object.keys(firstGroup)[0];
98
+ }
99
+ else {
100
+ return Object.keys(this.spaces)[0];
101
+ }
102
+ },
103
+ },
104
+
105
+ selectedSpace: {
106
+ get () {
107
+ let value = this.value;
108
+ if (value === undefined || value === null) {
109
+ return;
110
+ }
111
+
112
+ return this.spaces[value];
113
+ },
114
+ },
115
+
116
+ spaces: {
117
+ type: {
118
+ is: Object,
119
+ get values () {
120
+ return Self.Color.Space;
121
+ },
122
+ defaultValue: (id, index) => {
123
+ try {
124
+ return Self.Color.Space.get(id);
125
+ }
126
+ catch (e) {
127
+ console.error(e);
128
+ }
129
+ },
130
+ },
131
+ default: () => Self.Color.spaces,
132
+ convert (value) {
133
+ // Replace non-existing spaces with { id, name: id }
134
+ for (let id in value) {
135
+ if (!value[id]) {
136
+ value[id] = { id, name: id };
137
+ }
138
+ }
139
+
140
+ return value;
141
+ },
142
+ stringify (value) {
143
+ return Object.entries(value).map(([id, space]) => id).join(", ");
144
+ },
145
+ },
146
+
147
+ groupBy: {
148
+ type: {
149
+ is: Function,
150
+ arguments: ["space"],
151
+ },
152
+ reflect: false,
153
+ },
154
+
155
+ groups: {
156
+ get () {
157
+ if (!this.groupBy) {
158
+ return;
159
+ }
160
+
161
+ let ret = {};
162
+ for (let [id, space] of Object.entries(this.spaces)) {
163
+ let group = this.groupBy(space);
164
+ if (group) {
165
+ (ret[group] ??= {})[id] = space;
166
+ }
167
+ }
168
+
169
+ return ret;
170
+ },
171
+ },
172
+
173
+ getSpaceLabel: {
174
+ type: {
175
+ is: Function,
176
+ arguments: ["space"],
177
+ },
178
+ default () {
179
+ return space => space.name;
180
+ },
181
+ reflect: false,
182
+ },
183
+ };
184
+
185
+ static events = {
186
+ change: {
187
+ from () {
188
+ return this._el.picker;
189
+ },
190
+ },
191
+ input: {
192
+ from () {
193
+ return this._el.picker;
194
+ },
195
+ },
196
+ valuechange: {
197
+ propchange: "value",
198
+ },
199
+ spacechange: {
200
+ propchange: "selectedSpace",
201
+ },
202
+ };
203
+
204
+ static formAssociated = {
205
+ like: el => el._el.picker,
206
+ role: "combobox",
207
+ changeEvent: "change",
208
+ };
209
+ };
210
+
211
+ Self.define();
212
+
213
+ export default Self;
package/src/src.json ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "layout": "component"
3
+ }
@@ -1,29 +0,0 @@
1
- export default {
2
- // Extract default title from content
3
- foo (data) {
4
- // if (data.title) {
5
- // return data.title;
6
- // }
7
-
8
- // let ext = data.page.inputPath.split(".").pop();
9
-
10
- // // Title must appear in first 1000 chars
11
- // let content = data.page.rawInput.slice(0, 1000);
12
- // let ret;
13
-
14
- // if (ext === "md") {
15
- // // First heading
16
- // ret = content.match(/^#+\s+(.*)/m)?.[1];
17
- // }
18
- // else if (ext === "njk") {
19
- // // First level 1 heading
20
- // ret = content.match(/<h1>(.*)<\/h1>/)?.[1];
21
- // }
22
-
23
- // if (ret) {
24
- // ret = ret.replace(/&lt;/g, "<").replace(/&gt;/g, ">");
25
- // }
26
-
27
- // return ret;
28
- },
29
- };
@@ -1,75 +0,0 @@
1
- <script src="color-gamut.js" type="module"></script>
2
- # &lt;color-gamut>
3
-
4
- Gamut indicator. Used internally by `<css-color>`
5
-
6
- ## Usage
7
-
8
- Static (only read once):
9
- ```html
10
- <color-gamut>red</color-gamut>
11
- ```
12
-
13
- Produces <color-gamut>red</color-gamut>
14
-
15
- Dynamic:
16
- ```js
17
- colorGamutElement.color = colorValue;
18
- ```
19
-
20
- ## Demo
21
- <style>
22
- #params {
23
- background: linear-gradient(to right, var(--start-color), var(--end-color)) no-repeat top / 100% 1em;
24
- padding-top: 1.5em;
25
- }
26
-
27
- #colors_container_h {
28
- display: flex;
29
- height: 1em;
30
- margin-bottom: 1em;
31
-
32
- color-gamut {
33
- flex: 1;
34
- border-radius: 0;
35
-
36
- &::part(label) {
37
- display: none;
38
- }
39
- }
40
- }
41
- </style>
42
- <form id=params>
43
- <code>oklch(<input type=number id=l value=50>% <input type=number id=min_c value=30>&ndash;<input type=number id=max_c value=40>% <input type=number id=h value=50>)</code>
44
- <p><label>Chroma increments: <input type=number id=c_step value="0.2" min="0">%</label>
45
- </form>
46
-
47
- <script type=module>
48
- params.addEventListener("input", e => {
49
- let c_range = {min: Number(min_c.value), max: Number(max_c.value)};
50
- let step = Number(c_step.value);
51
- let colors = [];
52
- let start = `oklch(${l.value}% ${c_range.min.toLocaleString("en")}% ${h.value})`;
53
- let end = `oklch(${l.value}% ${c_range.max.toLocaleString("en")}% ${h.value})`;
54
-
55
- params.style.setProperty("--start-color", start);
56
- params.style.setProperty("--end-color", end);
57
-
58
- for (let c = c_range.min; c<= c_range.max; c+=step) {
59
- colors.push(`oklch(${l.value}% ${c.toLocaleString("en")}% ${h.value})`);
60
- }
61
-
62
- let html = colors.map(color => `
63
- <color-gamut title="${color}">${color}</color-gamut>`).join("\n");
64
- colors_container_h.innerHTML = html;
65
- colors_container.innerHTML = html;
66
- });
67
- params.dispatchEvent(new Event("input"));
68
- </script>
69
-
70
- No label:
71
-
72
- <div id=colors_container_h></div>
73
-
74
- Default display:
75
- <div id=colors_container></div>
@@ -1,172 +0,0 @@
1
- import Color from "../common/color.js";
2
-
3
- let styleURL = new URL("./style.css", import.meta.url);
4
-
5
- export default class ColorGamut extends HTMLElement {
6
- #label;
7
-
8
- constructor () {
9
- super();
10
- this.attachShadow({mode: "open"});
11
- this.shadowRoot.innerHTML = `
12
- <style>@import url("${ styleURL }")</style>
13
- <span id="label" part="label"></span>
14
- `;
15
-
16
- this.gamuts = this.gamuts ?? this.getAttribute("gamuts") ?? this.constructor.defaultGamuts;
17
- }
18
-
19
- connectedCallback () {
20
- this.#initialize();
21
- this.#render();
22
- }
23
-
24
- #initialized;
25
- #initialize () {
26
- if (this.#initialized) {
27
- return;
28
- }
29
-
30
- this.#initialized = true;
31
-
32
- let textContent = this.textContent;
33
-
34
- if (textContent) {
35
- this.color ??= this.textContent;
36
- }
37
- }
38
-
39
- #render () {
40
- if (!this.isConnected) {
41
- return;
42
- }
43
-
44
- if (!this.#label) {
45
- this.#label = this.shadowRoot.querySelector("#label");
46
- }
47
-
48
- this.#updateGamut();
49
- }
50
-
51
- #gamut;
52
- get gamut () {
53
- return this.#gamut?.id;
54
- }
55
-
56
- get gamutLabel () {
57
- return this.#gamut?.label ?? "";
58
- }
59
-
60
- #gamuts;
61
- get gamuts () {
62
- return this.#gamuts;
63
- }
64
-
65
- set gamuts (gamuts) {
66
-
67
- this.#gamuts = this.constructor.parseGamuts(gamuts);
68
- }
69
-
70
- #updateGamut () {
71
- if (!this.#color) {
72
- this.#setGamut();
73
- return;
74
- }
75
-
76
- let gamut = this.gamuts.find(gamut => gamut.id === "none" || this.#color.inGamut(gamut.id));
77
- this.#setGamut(gamut);
78
- }
79
-
80
- #setGamut (gamut) {
81
- let oldGamut = this.#gamut;
82
-
83
- if (gamut === oldGamut) {
84
- return;
85
- }
86
-
87
- this.#gamut = gamut;
88
- this.#label.textContent = this.#gamut?.label ?? "";
89
-
90
- if (!gamut) {
91
- this.removeAttribute("gamut");
92
- this.removeAttribute("level");
93
- this.style.removeProperty("--gamut-level");
94
-
95
- return;
96
- }
97
-
98
- this.setAttribute("gamut", gamut.id);
99
- this.setAttribute("level", gamut.level);
100
- this.style.setProperty("--gamut-level", gamut.level);
101
-
102
- this.dispatchEvent(new CustomEvent("gamutchange", {
103
- detail: {oldGamut, gamut},
104
- bubbles: true,
105
- }));
106
- }
107
-
108
- #color;
109
- get color () {
110
- return this.#color;
111
- }
112
-
113
- set color (color) {
114
- this.#color = Color.get(color);
115
- this.#render();
116
- }
117
-
118
- static observedAttributes = ["gamuts"];
119
-
120
- attributeChangedCallback (name, oldValue, newValue) {
121
- if (!name && this.hasAttribute("gamuts") || name === "gamuts") {
122
- newValue ??= this.getAttribute("gamuts");
123
-
124
- if (oldValue !== newValue) {
125
- this.gamuts = this.constructor.parseGamuts(newValue ?? this.constructor.defaultGamuts);
126
- this.#render();
127
- }
128
- }
129
- }
130
-
131
- static defaultGamuts = ["srgb", "p3", "rec2020", "prophoto"];
132
-
133
- static parseGamuts (gamuts) {
134
- if (!gamuts) {
135
- return [];
136
- }
137
-
138
- if (typeof gamuts === "string") {
139
- gamuts = gamuts.trim().split(/\s*,\s*/);
140
- }
141
- else if (!Array.isArray(gamuts) && typeof gamuts === "object") {
142
- // Object
143
- return Object.entries(gamuts).map(([id, label]) => {id, label});
144
- }
145
-
146
- let ret = gamuts.map((gamut, level) => {
147
- if (gamut?.id && "label" in gamut) {
148
- // Already in the correct format
149
- return gamut;
150
- }
151
-
152
- gamut = gamut.trim().split(/\s*:\s*/);
153
- let id = gamut[0];
154
- let label = gamut[1] ?? Color.spaces[gamut]?.name ?? id;
155
- return {id, label, level};
156
- });
157
-
158
- if (!ret.find(gamut => gamut.id === "none")) {
159
- ret.push({
160
- id: "none",
161
- get label () {
162
- return ret[this.level - 1].label + "+";
163
- },
164
- level: ret.length,
165
- });
166
- }
167
-
168
- return ret;
169
- }
170
- }
171
-
172
- customElements.define("color-gamut", ColorGamut);
@@ -1,32 +0,0 @@
1
- :host {
2
- display: inline-flex;
3
- align-items: center;
4
- justify-content: center;
5
- border-radius: .2em;
6
- color: white;
7
- background: var(--gamut-color, var(--color-neutral-60, hsl(220 10% 60%)));
8
- font-weight: bold;
9
- padding-inline: .4em;
10
- line-height: 1.4;
11
- }
12
-
13
- :host([level="0"]) {
14
- --gamut-color: var(--color-green, yellowgreen);
15
- }
16
-
17
- :host([level="1"]) {
18
- color: black;
19
- --gamut-color: var(--color-yellow, gold);
20
- }
21
-
22
- :host([level="2"]) {
23
- --gamut-color: var(--color-orange, orange);
24
- }
25
-
26
- :host([level="3"]) {
27
- --gamut-color: var(--color-red, red);
28
- }
29
-
30
- :host([gamut="none"]) {
31
- --gamut-color: var(--color-red-dark, #b00);
32
- }
@@ -1,84 +0,0 @@
1
- # `&lt;color-slider>`
2
- <script src="color-slider.js" type="module"></script>
3
-
4
- Creates a slider with a gradient background, primarily intended for color picking.
5
-
6
- ## Installation
7
-
8
- The quick and dirty way is straight from the CDN (kindly provided by [Netlify](https://www.netlify.com/)):
9
-
10
- ```html
11
- <script src="https://colorjs.io/elements/color-slider/color-slider.js" type="module"></script>
12
- ```
13
-
14
- You can also install it via npm.
15
- There is no separate package currently, you just install the whole `colorjs.io` package:
16
-
17
- ```bash
18
- npm install colorjs.io
19
- ```
20
-
21
- Then, you use the `colorjs.io/elements` import:
22
-
23
- ```js
24
- import {ColorSlider} from "colorjs.io/elements";
25
- ```
26
-
27
- ## Usage
28
-
29
- There are many ways to use this component, depending on what you need.
30
- E.g. if all you need is styling sliders with arbitrary gradients you don’t even need a component,
31
- you can just use the CSS file and a few classes and CSS variables.
32
-
33
- The actual component does a lot more:
34
- - It takes care of applying the right `min` and `max` values to the slider
35
- - It automatically generates the start and end colors,
36
- - It provides a `color` property with the actual color value.
37
- - It can provide an editable tooltip as a tooltip that both shows and edits the current value
38
-
39
- <script src="./color-slider.js" type="module"></script>
40
- <style>@import url("style.css");</style>
41
-
42
- ### Zero hassle, little control
43
-
44
- You get the most value out of this component when using it to control a single component:
45
-
46
- ```html
47
- <color-slider space="oklch" component="h" colorvalue="oklch(50 50% 180)"></color-slider>
48
- ```
49
-
50
- This will automatically use the whole reference range of that component in the specified color space,
51
- and use the current value of the component as the starting value (unless `value` is also specified).
52
- If you don’t want to show the whole range you can also specify `min` and `max` attributes.
53
-
54
- ```html
55
- <color-slider space="oklch" component="l" colorvalue="red" min=".3" max=".95"></color-slider>
56
- ```
57
-
58
- ### Minimal hassle, more control
59
-
60
- If your use case does not involve interpolating across a single component, or you already have the colors you want to plot from and to, you can also do that:
61
-
62
- ```html
63
- <color-slider space="oklch" colormin="gold" colormax="oklch(65% 0.15 210)"></color-slider>
64
- ```
65
-
66
- ### Styling-only usage
67
-
68
- If you just want the styling and are fine dealing with the lower level details on your own, you *can* just use the CSS file:
69
-
70
- ```css
71
- @import url("https://colorjs.io/elements/color-slider/style.css");
72
- ```
73
-
74
- Then use a `color-slider` class on your slider element, and the following CSS variables:
75
-
76
- - `--start-color`: the start color of the gradient
77
- - `--end-color`: the end color of the gradient
78
- - `--color-space`: the color space of the gradient (default: `oklch`)
79
- - `--intermediate-colors`: _(optional)_ any intermediate colors.
80
-
81
- OR:
82
- - `--gradient` if you want to override the whole gradient.
83
-
84
-
@@ -1,79 +0,0 @@
1
- /*
2
- <label v-for="(meta, i) in coord_meta" class="color-slider-label">
3
- {{ meta.name }} ({{ meta.min }}-{{ meta.max }})
4
- <input class="color-slider" type="range" v-model.number="coords[i]" :style="`--stops: ${ slider_steps[i] }`" :min="meta.min" :max="meta.max" :step="meta.step" />
5
- <input type="number" v-model.number="coords[i]" class="autosize" :style="`--percentage: ${coords[i] / (meta.max - meta.min) }`" :min="meta.min" :max="meta.max" :step="meta.step" />
6
- </label>
7
-
8
- <label class="color-slider-label">Alpha (0-100)
9
- <input class="color-slider" type="range" v-model.number="alpha"
10
- :style="`--stops: ${ slider_steps[coord_meta.length] }`" />
11
- <input type="number" class="autosize" v-model.number="alpha" :style="`--percentage: ${alpha / 100}`" max="100" />
12
- </label>*/
13
- import defineAttributes from "../common/attributes.js";
14
- import Color from "../common/color.js";
15
-
16
- export default class ColorSlider extends HTMLElement {
17
- _props = {};
18
-
19
- constructor () {
20
- super();
21
- this.attachShadow({mode: "open"});
22
- this.shadowRoot.innerHTML = `
23
- <style>@import url("${ styleURL }")</style>
24
- <label v-for="(meta, i) in coord_meta" class="color-slider-label">
25
- {{ meta.name }} ({{ meta.min }}-{{ meta.max }})
26
- <input class="color-slider" type="range" v-model.number="coords[i]" :style="`--stops: ${ slider_steps[i] }`" :min="meta.min" :max="meta.max" :step="meta.step" />
27
- <input type="number" :style="`--percentage: ${coords[i] / (meta.max - meta.min) }`" :min="meta.min" :max="meta.max" :step="meta.step" />
28
- </label>
29
- `;
30
- }
31
-
32
-
33
-
34
- attributeChangedCallback (name, value, oldValue) {
35
- if (name in this.constructor.attributes) {
36
- this[name] = value;
37
- }
38
- }
39
-
40
- static get observedAttributes() {
41
- return Object.keys(this.attributes);
42
- }
43
-
44
- static attributes = {
45
- space: {
46
- type: String,
47
- default: "oklch",
48
- },
49
- component: {
50
- type: String,
51
- default: "h",
52
- },
53
- value: {
54
- type: Number,
55
- default: "oklch(0.5 0 180)",
56
- },
57
- min: {
58
- type: Number,
59
- },
60
- max: {
61
- type: Number,
62
- },
63
- step: {
64
- type: Number,
65
- },
66
- colorvalue: {
67
- type: Color,
68
- },
69
- colormin: {
70
- type: Color,
71
- },
72
- colormax: {
73
- type: Color,
74
- },
75
- }
76
- }
77
-
78
- defineAttributes(ColorSlider);
79
- customElements.define("color-slider", ColorSlider);