color-elements 0.0.2 → 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 (484) hide show
  1. package/README.md +30 -15
  2. package/_build/copy-config.json +1 -1
  3. package/_build/eleventy.js +7 -2
  4. package/_build/filters-extra.js +1 -1
  5. package/_includes/component.njk +9 -1
  6. package/_includes/partials/_nav-links.njk +11 -4
  7. package/_redirects +8 -1
  8. package/assets/css/style.css +78 -1
  9. package/assets/js/index.js +6 -6
  10. package/data/components.json +12 -0
  11. package/debug.html +447 -0
  12. package/index.js +5 -1
  13. package/package.json +2 -1
  14. package/src/channel-picker/README.md +103 -0
  15. package/src/channel-picker/channel-picker.css +31 -0
  16. package/src/channel-picker/channel-picker.js +168 -0
  17. package/src/channel-picker/channel-picker.webp +0 -0
  18. package/src/channel-slider/README.md +50 -8
  19. package/src/channel-slider/channel-slider.css +47 -5
  20. package/src/channel-slider/channel-slider.js +74 -39
  21. package/src/channel-slider/channel-slider.webp +0 -0
  22. package/src/color-chart/README.md +129 -0
  23. package/src/color-chart/color-chart-global.css +97 -0
  24. package/src/color-chart/color-chart.css +112 -0
  25. package/src/color-chart/color-chart.js +441 -0
  26. package/src/color-chart/color-chart.webp +0 -0
  27. package/src/color-inline/README.md +42 -1
  28. package/src/color-inline/color-inline.css +11 -4
  29. package/src/color-inline/color-inline.js +56 -50
  30. package/src/color-inline/color-inline.webp +0 -0
  31. package/src/color-picker/README.md +107 -5
  32. package/src/color-picker/color-picker.css +21 -6
  33. package/src/color-picker/color-picker.js +147 -60
  34. package/src/color-picker/color-picker.webp +0 -0
  35. package/src/color-scale/README.md +75 -0
  36. package/src/color-scale/color-scale.css +40 -0
  37. package/src/color-scale/color-scale.js +164 -0
  38. package/src/color-scale/color-scale.webp +0 -0
  39. package/src/color-slider/README.md +31 -4
  40. package/src/color-slider/color-slider.css +17 -7
  41. package/src/color-slider/color-slider.js +80 -38
  42. package/src/color-slider/color-slider.webp +0 -0
  43. package/src/color-swatch/README.md +265 -6
  44. package/src/color-swatch/color-swatch.css +162 -27
  45. package/src/color-swatch/color-swatch.js +191 -217
  46. package/src/color-swatch/color-swatch.webp +0 -0
  47. package/src/common/color-element.js +86 -0
  48. package/src/common/dom.js +1 -1
  49. package/src/common/util.js +12 -99
  50. package/src/gamut-badge/README.md +145 -0
  51. package/src/gamut-badge/gamut-badge.css +78 -0
  52. package/src/gamut-badge/gamut-badge.js +121 -0
  53. package/src/gamut-badge/gamut-badge.webp +0 -0
  54. package/src/index.js.njk +1 -1
  55. package/src/space-picker/README.md +121 -0
  56. package/src/space-picker/space-picker.css +23 -0
  57. package/src/space-picker/space-picker.js +213 -0
  58. package/src/space-picker/space-picker.webp +0 -0
  59. package/_data/components.json +0 -8
  60. package/lib/README.md +0 -4
  61. package/lib/colorjs.io/LICENSE +0 -21
  62. package/lib/colorjs.io/README.json +0 -3
  63. package/lib/colorjs.io/README.md +0 -257
  64. package/lib/colorjs.io/colorjs.io/LICENSE +0 -21
  65. package/lib/colorjs.io/colorjs.io/README.json +0 -3
  66. package/lib/colorjs.io/colorjs.io/README.md +0 -257
  67. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +0 -5437
  68. package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +0 -1
  69. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  70. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  71. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  72. package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  73. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +0 -2
  74. package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  75. package/lib/colorjs.io/colorjs.io/dist/color.cjs +0 -5759
  76. package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +0 -1
  77. package/lib/colorjs.io/colorjs.io/dist/color.global.js +0 -5760
  78. package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +0 -1
  79. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +0 -7400
  80. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +0 -1
  81. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +0 -2
  82. package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  83. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +0 -2
  84. package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +0 -1
  85. package/lib/colorjs.io/colorjs.io/dist/color.js +0 -5755
  86. package/lib/colorjs.io/colorjs.io/dist/color.js.map +0 -1
  87. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +0 -7399
  88. package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +0 -1
  89. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +0 -7395
  90. package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +0 -1
  91. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +0 -2
  92. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  93. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +0 -2
  94. package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +0 -1
  95. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +0 -2
  96. package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +0 -1
  97. package/lib/colorjs.io/colorjs.io/dist/color.min.js +0 -2
  98. package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +0 -1
  99. package/lib/colorjs.io/colorjs.io/package.json +0 -113
  100. package/lib/colorjs.io/colorjs.io/src/CATs.js +0 -131
  101. package/lib/colorjs.io/colorjs.io/src/adapt.js +0 -62
  102. package/lib/colorjs.io/colorjs.io/src/angles.js +0 -44
  103. package/lib/colorjs.io/colorjs.io/src/chromaticity.js +0 -33
  104. package/lib/colorjs.io/colorjs.io/src/clone.js +0 -7
  105. package/lib/colorjs.io/colorjs.io/src/color.js +0 -201
  106. package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +0 -102
  107. package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +0 -17
  108. package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +0 -22
  109. package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +0 -20
  110. package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +0 -27
  111. package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +0 -25
  112. package/lib/colorjs.io/colorjs.io/src/contrast/index.js +0 -6
  113. package/lib/colorjs.io/colorjs.io/src/contrast.js +0 -28
  114. package/lib/colorjs.io/colorjs.io/src/defaults.js +0 -12
  115. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  116. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +0 -7
  117. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  118. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  119. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  120. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  121. package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  122. package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +0 -27
  123. package/lib/colorjs.io/colorjs.io/src/deltaE.js +0 -19
  124. package/lib/colorjs.io/colorjs.io/src/display.js +0 -83
  125. package/lib/colorjs.io/colorjs.io/src/distance.js +0 -21
  126. package/lib/colorjs.io/colorjs.io/src/equals.js +0 -10
  127. package/lib/colorjs.io/colorjs.io/src/get.js +0 -11
  128. package/lib/colorjs.io/colorjs.io/src/getAll.js +0 -20
  129. package/lib/colorjs.io/colorjs.io/src/getColor.js +0 -36
  130. package/lib/colorjs.io/colorjs.io/src/hooks.js +0 -37
  131. package/lib/colorjs.io/colorjs.io/src/inGamut.js +0 -25
  132. package/lib/colorjs.io/colorjs.io/src/index-fn.js +0 -28
  133. package/lib/colorjs.io/colorjs.io/src/index.js +0 -38
  134. package/lib/colorjs.io/colorjs.io/src/interpolation.js +0 -222
  135. package/lib/colorjs.io/colorjs.io/src/keywords.js +0 -158
  136. package/lib/colorjs.io/colorjs.io/src/luminance.js +0 -27
  137. package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +0 -44
  138. package/lib/colorjs.io/colorjs.io/src/parse.js +0 -198
  139. package/lib/colorjs.io/colorjs.io/src/rgbspace.js +0 -64
  140. package/lib/colorjs.io/colorjs.io/src/serialize.js +0 -86
  141. package/lib/colorjs.io/colorjs.io/src/set.js +0 -33
  142. package/lib/colorjs.io/colorjs.io/src/setAll.js +0 -12
  143. package/lib/colorjs.io/colorjs.io/src/space-accessors.js +0 -86
  144. package/lib/colorjs.io/colorjs.io/src/space.js +0 -440
  145. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  146. package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +0 -11
  147. package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +0 -76
  148. package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +0 -54
  149. package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +0 -362
  150. package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +0 -157
  151. package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +0 -130
  152. package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +0 -91
  153. package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +0 -162
  154. package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +0 -65
  155. package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +0 -58
  156. package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +0 -133
  157. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  158. package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +0 -29
  159. package/lib/colorjs.io/colorjs.io/src/spaces/index.js +0 -8
  160. package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +0 -118
  161. package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +0 -53
  162. package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +0 -74
  163. package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +0 -74
  164. package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +0 -67
  165. package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +0 -68
  166. package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +0 -85
  167. package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +0 -74
  168. package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +0 -68
  169. package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +0 -22
  170. package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +0 -13
  171. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  172. package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +0 -19
  173. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  174. package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +0 -31
  175. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  176. package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  177. package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +0 -30
  178. package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +0 -127
  179. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  180. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +0 -12
  181. package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +0 -18
  182. package/lib/colorjs.io/colorjs.io/src/to.js +0 -26
  183. package/lib/colorjs.io/colorjs.io/src/toGamut.js +0 -310
  184. package/lib/colorjs.io/colorjs.io/src/util.js +0 -254
  185. package/lib/colorjs.io/colorjs.io/src/variations.js +0 -14
  186. package/lib/colorjs.io/colorjs.io/types/index.d.cts +0 -4
  187. package/lib/colorjs.io/colorjs.io/types/index.d.ts +0 -42
  188. package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +0 -13
  189. package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +0 -12
  190. package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +0 -7
  191. package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +0 -7
  192. package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +0 -3
  193. package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +0 -160
  194. package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  195. package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  196. package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  197. package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  198. package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  199. package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  200. package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +0 -11
  201. package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +0 -12
  202. package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +0 -2
  203. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  204. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  205. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  206. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  207. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  208. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  209. package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  210. package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  211. package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +0 -12
  212. package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +0 -17
  213. package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +0 -8
  214. package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +0 -3
  215. package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +0 -4
  216. package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +0 -7
  217. package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +0 -4
  218. package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +0 -52
  219. package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +0 -8
  220. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +0 -1
  221. package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +0 -63
  222. package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +0 -125
  223. package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +0 -77
  224. package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +0 -2
  225. package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +0 -10
  226. package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  227. package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +0 -16
  228. package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +0 -10
  229. package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +0 -13
  230. package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +0 -18
  231. package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +0 -14
  232. package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +0 -1
  233. package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  234. package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +0 -143
  235. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  236. package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  237. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  238. package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  239. package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  240. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  241. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  242. package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  243. package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  244. package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  245. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  246. package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  247. package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +0 -4
  248. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  249. package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  250. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  251. package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  252. package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  253. package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  254. package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  255. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  256. package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  257. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  258. package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  259. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  260. package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  261. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  262. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  263. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  264. package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  265. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  266. package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  267. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  268. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  269. package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  270. package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +0 -14
  271. package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +0 -45
  272. package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +0 -58
  273. package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +0 -5
  274. package/lib/colorjs.io/dist/color-fn.cjs +0 -5437
  275. package/lib/colorjs.io/dist/color-fn.cjs.map +0 -1
  276. package/lib/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
  277. package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
  278. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
  279. package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
  280. package/lib/colorjs.io/dist/color-fn.min.cjs +0 -2
  281. package/lib/colorjs.io/dist/color-fn.min.cjs.map +0 -1
  282. package/lib/colorjs.io/dist/color.cjs +0 -5759
  283. package/lib/colorjs.io/dist/color.cjs.map +0 -1
  284. package/lib/colorjs.io/dist/color.global.js +0 -5760
  285. package/lib/colorjs.io/dist/color.global.js.map +0 -1
  286. package/lib/colorjs.io/dist/color.global.legacy.js +0 -7400
  287. package/lib/colorjs.io/dist/color.global.legacy.js.map +0 -1
  288. package/lib/colorjs.io/dist/color.global.legacy.min.js +0 -2
  289. package/lib/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
  290. package/lib/colorjs.io/dist/color.global.min.js +0 -2
  291. package/lib/colorjs.io/dist/color.global.min.js.map +0 -1
  292. package/lib/colorjs.io/dist/color.js +0 -5755
  293. package/lib/colorjs.io/dist/color.js.map +0 -1
  294. package/lib/colorjs.io/dist/color.legacy.cjs +0 -7399
  295. package/lib/colorjs.io/dist/color.legacy.cjs.map +0 -1
  296. package/lib/colorjs.io/dist/color.legacy.js +0 -7395
  297. package/lib/colorjs.io/dist/color.legacy.js.map +0 -1
  298. package/lib/colorjs.io/dist/color.legacy.min.cjs +0 -2
  299. package/lib/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
  300. package/lib/colorjs.io/dist/color.legacy.min.js +0 -2
  301. package/lib/colorjs.io/dist/color.legacy.min.js.map +0 -1
  302. package/lib/colorjs.io/dist/color.min.cjs +0 -2
  303. package/lib/colorjs.io/dist/color.min.cjs.map +0 -1
  304. package/lib/colorjs.io/dist/color.min.js +0 -2
  305. package/lib/colorjs.io/dist/color.min.js.map +0 -1
  306. package/lib/colorjs.io/package.json +0 -113
  307. package/lib/colorjs.io/src/CATs.js +0 -131
  308. package/lib/colorjs.io/src/adapt.js +0 -62
  309. package/lib/colorjs.io/src/angles.js +0 -44
  310. package/lib/colorjs.io/src/chromaticity.js +0 -33
  311. package/lib/colorjs.io/src/clone.js +0 -7
  312. package/lib/colorjs.io/src/color.js +0 -201
  313. package/lib/colorjs.io/src/contrast/APCA.js +0 -102
  314. package/lib/colorjs.io/src/contrast/Lstar.js +0 -17
  315. package/lib/colorjs.io/src/contrast/Michelson.js +0 -22
  316. package/lib/colorjs.io/src/contrast/WCAG21.js +0 -20
  317. package/lib/colorjs.io/src/contrast/Weber.js +0 -27
  318. package/lib/colorjs.io/src/contrast/deltaPhi.js +0 -25
  319. package/lib/colorjs.io/src/contrast/index.js +0 -6
  320. package/lib/colorjs.io/src/contrast.js +0 -28
  321. package/lib/colorjs.io/src/defaults.js +0 -12
  322. package/lib/colorjs.io/src/deltaE/deltaE2000.js +0 -179
  323. package/lib/colorjs.io/src/deltaE/deltaE76.js +0 -7
  324. package/lib/colorjs.io/src/deltaE/deltaECMC.js +0 -114
  325. package/lib/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
  326. package/lib/colorjs.io/src/deltaE/deltaEITP.js +0 -24
  327. package/lib/colorjs.io/src/deltaE/deltaEJz.js +0 -43
  328. package/lib/colorjs.io/src/deltaE/deltaEOK.js +0 -19
  329. package/lib/colorjs.io/src/deltaE/index.js +0 -27
  330. package/lib/colorjs.io/src/deltaE.js +0 -19
  331. package/lib/colorjs.io/src/display.js +0 -83
  332. package/lib/colorjs.io/src/distance.js +0 -21
  333. package/lib/colorjs.io/src/equals.js +0 -10
  334. package/lib/colorjs.io/src/get.js +0 -11
  335. package/lib/colorjs.io/src/getAll.js +0 -20
  336. package/lib/colorjs.io/src/getColor.js +0 -36
  337. package/lib/colorjs.io/src/hooks.js +0 -37
  338. package/lib/colorjs.io/src/inGamut.js +0 -25
  339. package/lib/colorjs.io/src/index-fn.js +0 -28
  340. package/lib/colorjs.io/src/index.js +0 -38
  341. package/lib/colorjs.io/src/interpolation.js +0 -222
  342. package/lib/colorjs.io/src/keywords.js +0 -158
  343. package/lib/colorjs.io/src/luminance.js +0 -27
  344. package/lib/colorjs.io/src/multiply-matrices.js +0 -44
  345. package/lib/colorjs.io/src/parse.js +0 -198
  346. package/lib/colorjs.io/src/rgbspace.js +0 -64
  347. package/lib/colorjs.io/src/serialize.js +0 -86
  348. package/lib/colorjs.io/src/set.js +0 -33
  349. package/lib/colorjs.io/src/setAll.js +0 -12
  350. package/lib/colorjs.io/src/space-accessors.js +0 -86
  351. package/lib/colorjs.io/src/space.js +0 -440
  352. package/lib/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
  353. package/lib/colorjs.io/src/spaces/a98rgb.js +0 -11
  354. package/lib/colorjs.io/src/spaces/acescc.js +0 -76
  355. package/lib/colorjs.io/src/spaces/acescg.js +0 -54
  356. package/lib/colorjs.io/src/spaces/cam16.js +0 -362
  357. package/lib/colorjs.io/src/spaces/hct.js +0 -157
  358. package/lib/colorjs.io/src/spaces/hpluv.js +0 -130
  359. package/lib/colorjs.io/src/spaces/hsl.js +0 -91
  360. package/lib/colorjs.io/src/spaces/hsluv.js +0 -162
  361. package/lib/colorjs.io/src/spaces/hsv.js +0 -65
  362. package/lib/colorjs.io/src/spaces/hwb.js +0 -58
  363. package/lib/colorjs.io/src/spaces/ictcp.js +0 -133
  364. package/lib/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
  365. package/lib/colorjs.io/src/spaces/index-fn.js +0 -29
  366. package/lib/colorjs.io/src/spaces/index.js +0 -8
  367. package/lib/colorjs.io/src/spaces/jzazbz.js +0 -118
  368. package/lib/colorjs.io/src/spaces/jzczhz.js +0 -53
  369. package/lib/colorjs.io/src/spaces/lab-d65.js +0 -74
  370. package/lib/colorjs.io/src/spaces/lab.js +0 -74
  371. package/lib/colorjs.io/src/spaces/lch.js +0 -67
  372. package/lib/colorjs.io/src/spaces/lchuv.js +0 -68
  373. package/lib/colorjs.io/src/spaces/luv.js +0 -85
  374. package/lib/colorjs.io/src/spaces/oklab.js +0 -74
  375. package/lib/colorjs.io/src/spaces/oklch.js +0 -68
  376. package/lib/colorjs.io/src/spaces/p3-linear.js +0 -22
  377. package/lib/colorjs.io/src/spaces/p3.js +0 -13
  378. package/lib/colorjs.io/src/spaces/prophoto-linear.js +0 -28
  379. package/lib/colorjs.io/src/spaces/prophoto.js +0 -19
  380. package/lib/colorjs.io/src/spaces/rec2020-linear.js +0 -27
  381. package/lib/colorjs.io/src/spaces/rec2020.js +0 -31
  382. package/lib/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
  383. package/lib/colorjs.io/src/spaces/rec2100-pq.js +0 -37
  384. package/lib/colorjs.io/src/spaces/srgb-linear.js +0 -30
  385. package/lib/colorjs.io/src/spaces/srgb.js +0 -127
  386. package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
  387. package/lib/colorjs.io/src/spaces/xyz-d50.js +0 -12
  388. package/lib/colorjs.io/src/spaces/xyz-d65.js +0 -18
  389. package/lib/colorjs.io/src/to.js +0 -26
  390. package/lib/colorjs.io/src/toGamut.js +0 -310
  391. package/lib/colorjs.io/src/util.js +0 -254
  392. package/lib/colorjs.io/src/variations.js +0 -14
  393. package/lib/colorjs.io/types/index.d.cts +0 -4
  394. package/lib/colorjs.io/types/index.d.ts +0 -42
  395. package/lib/colorjs.io/types/src/CATs.d.ts +0 -13
  396. package/lib/colorjs.io/types/src/adapt.d.ts +0 -12
  397. package/lib/colorjs.io/types/src/angles.d.ts +0 -7
  398. package/lib/colorjs.io/types/src/chromaticity.d.ts +0 -7
  399. package/lib/colorjs.io/types/src/clone.d.ts +0 -3
  400. package/lib/colorjs.io/types/src/color.d.ts +0 -160
  401. package/lib/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
  402. package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
  403. package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
  404. package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
  405. package/lib/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
  406. package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
  407. package/lib/colorjs.io/types/src/contrast/index.d.ts +0 -11
  408. package/lib/colorjs.io/types/src/contrast.d.ts +0 -12
  409. package/lib/colorjs.io/types/src/defaults.d.ts +0 -2
  410. package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
  411. package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
  412. package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
  413. package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
  414. package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
  415. package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
  416. package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
  417. package/lib/colorjs.io/types/src/deltaE/index.d.ts +0 -14
  418. package/lib/colorjs.io/types/src/deltaE.d.ts +0 -12
  419. package/lib/colorjs.io/types/src/display.d.ts +0 -17
  420. package/lib/colorjs.io/types/src/distance.d.ts +0 -8
  421. package/lib/colorjs.io/types/src/equals.d.ts +0 -3
  422. package/lib/colorjs.io/types/src/get.d.ts +0 -4
  423. package/lib/colorjs.io/types/src/getAll.d.ts +0 -7
  424. package/lib/colorjs.io/types/src/getColor.d.ts +0 -4
  425. package/lib/colorjs.io/types/src/hooks.d.ts +0 -52
  426. package/lib/colorjs.io/types/src/inGamut.d.ts +0 -8
  427. package/lib/colorjs.io/types/src/index-fn.d.cts +0 -1
  428. package/lib/colorjs.io/types/src/index-fn.d.ts +0 -63
  429. package/lib/colorjs.io/types/src/index.d.ts +0 -125
  430. package/lib/colorjs.io/types/src/interpolation.d.ts +0 -77
  431. package/lib/colorjs.io/types/src/keywords.d.ts +0 -2
  432. package/lib/colorjs.io/types/src/luminance.d.ts +0 -10
  433. package/lib/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
  434. package/lib/colorjs.io/types/src/parse.d.ts +0 -16
  435. package/lib/colorjs.io/types/src/rgbspace.d.ts +0 -10
  436. package/lib/colorjs.io/types/src/serialize.d.ts +0 -13
  437. package/lib/colorjs.io/types/src/set.d.ts +0 -18
  438. package/lib/colorjs.io/types/src/setAll.d.ts +0 -14
  439. package/lib/colorjs.io/types/src/space-accessors.d.ts +0 -1
  440. package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
  441. package/lib/colorjs.io/types/src/space.d.ts +0 -143
  442. package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
  443. package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
  444. package/lib/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
  445. package/lib/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
  446. package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
  447. package/lib/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
  448. package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
  449. package/lib/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
  450. package/lib/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
  451. package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
  452. package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
  453. package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
  454. package/lib/colorjs.io/types/src/spaces/index.d.ts +0 -4
  455. package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
  456. package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
  457. package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
  458. package/lib/colorjs.io/types/src/spaces/lab.d.ts +0 -3
  459. package/lib/colorjs.io/types/src/spaces/lch.d.ts +0 -3
  460. package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
  461. package/lib/colorjs.io/types/src/spaces/luv.d.ts +0 -3
  462. package/lib/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
  463. package/lib/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
  464. package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
  465. package/lib/colorjs.io/types/src/spaces/p3.d.ts +0 -3
  466. package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
  467. package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
  468. package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
  469. package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
  470. package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
  471. package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
  472. package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
  473. package/lib/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
  474. package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
  475. package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
  476. package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
  477. package/lib/colorjs.io/types/src/to.d.ts +0 -14
  478. package/lib/colorjs.io/types/src/toGamut.d.ts +0 -45
  479. package/lib/colorjs.io/types/src/util.d.ts +0 -58
  480. package/lib/colorjs.io/types/src/variations.d.ts +0 -5
  481. package/src/color-gamut/README.md +0 -75
  482. package/src/color-gamut/color-gamut.css +0 -32
  483. package/src/color-gamut/color-gamut.js +0 -172
  484. package/src/common/color.js +0 -12
@@ -1,91 +0,0 @@
1
- import ColorSpace from "../space.js";
2
- import sRGB from "./srgb.js";
3
-
4
- export default new ColorSpace({
5
- id: "hsl",
6
- name: "HSL",
7
- coords: {
8
- h: {
9
- refRange: [0, 360],
10
- type: "angle",
11
- name: "Hue",
12
- },
13
- s: {
14
- range: [0, 100],
15
- name: "Saturation",
16
- },
17
- l: {
18
- range: [0, 100],
19
- name: "Lightness",
20
- },
21
- },
22
-
23
- base: sRGB,
24
-
25
- // Adapted from https://drafts.csswg.org/css-color-4/better-rgbToHsl.js
26
- fromBase: rgb => {
27
- let max = Math.max(...rgb);
28
- let min = Math.min(...rgb);
29
- let [r, g, b] = rgb;
30
- let [h, s, l] = [NaN, 0, (min + max) / 2];
31
- let d = max - min;
32
-
33
- if (d !== 0) {
34
- s = (l === 0 || l === 1) ? 0 : (max - l) / Math.min(l, 1 - l);
35
-
36
- switch (max) {
37
- case r: h = (g - b) / d + (g < b ? 6 : 0); break;
38
- case g: h = (b - r) / d + 2; break;
39
- case b: h = (r - g) / d + 4;
40
- }
41
-
42
- h = h * 60;
43
- }
44
-
45
- // Very out of gamut colors can produce negative saturation
46
- // If so, just rotate the hue by 180 and use a positive saturation
47
- // see https://github.com/w3c/csswg-drafts/issues/9222
48
- if (s < 0) {
49
- h += 180;
50
- s = Math.abs(s);
51
- }
52
-
53
- if (h >= 360) {
54
- h -= 360;
55
- }
56
-
57
- return [h, s * 100, l * 100];
58
- },
59
-
60
- // Adapted from https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative
61
- toBase: hsl => {
62
- let [h, s, l] = hsl;
63
- h = h % 360;
64
-
65
- if (h < 0) {
66
- h += 360;
67
- }
68
-
69
- s /= 100;
70
- l /= 100;
71
-
72
- function f (n) {
73
- let k = (n + h / 30) % 12;
74
- let a = s * Math.min(l, 1 - l);
75
- return l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));
76
- }
77
-
78
- return [f(0), f(8), f(4)];
79
- },
80
-
81
- formats: {
82
- "hsl": {
83
- coords: ["<number> | <angle>", "<percentage>", "<percentage>"],
84
- },
85
- "hsla": {
86
- coords: ["<number> | <angle>", "<percentage>", "<percentage>"],
87
- commas: true,
88
- lastAlpha: true,
89
- },
90
- },
91
- });
@@ -1,162 +0,0 @@
1
- /*
2
- Adapted from: https://github.com/hsluv/hsluv-javascript/blob/14b49e6cf9a9137916096b8487a5372626b57ba4/src/hsluv.ts
3
-
4
- Copyright (c) 2012-2022 Alexei Boronine
5
-
6
- Permission is hereby granted, free of charge, to any person obtaining a copy
7
- of this software and associated documentation files (the "Software"), to deal
8
- in the Software without restriction, including without limitation the rights
9
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
- copies of the Software, and to permit persons to whom the Software is
11
- furnished to do so, subject to the following conditions:
12
-
13
- The above copyright notice and this permission notice shall be included in all
14
- copies or substantial portions of the Software.
15
-
16
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
- SOFTWARE.
23
- */
24
-
25
- import ColorSpace from "../space.js";
26
- import LCHuv from "./lchuv.js";
27
- import sRGB from "./srgb.js";
28
- import {fromXYZ_M} from "./srgb-linear.js";
29
- import {skipNone} from "../util.js";
30
-
31
- const ε = 216 / 24389; // 6^3/29^3 == (24/116)^3
32
- const κ = 24389 / 27; // 29^3/3^3
33
-
34
- const m_r0 = fromXYZ_M[0][0];
35
- const m_r1 = fromXYZ_M[0][1];
36
- const m_r2 = fromXYZ_M[0][2];
37
- const m_g0 = fromXYZ_M[1][0];
38
- const m_g1 = fromXYZ_M[1][1];
39
- const m_g2 = fromXYZ_M[1][2];
40
- const m_b0 = fromXYZ_M[2][0];
41
- const m_b1 = fromXYZ_M[2][1];
42
- const m_b2 = fromXYZ_M[2][2];
43
-
44
- function distanceFromOriginAngle (slope, intercept, angle) {
45
- const d = intercept / (Math.sin(angle) - slope * Math.cos(angle));
46
- return d < 0 ? Infinity : d;
47
- }
48
-
49
- export function calculateBoundingLines (l) {
50
- const sub1 = Math.pow(l + 16, 3) / 1560896;
51
- const sub2 = sub1 > ε ? sub1 : l / κ;
52
- const s1r = sub2 * (284517 * m_r0 - 94839 * m_r2);
53
- const s2r = sub2 * (838422 * m_r2 + 769860 * m_r1 + 731718 * m_r0);
54
- const s3r = sub2 * (632260 * m_r2 - 126452 * m_r1);
55
- const s1g = sub2 * (284517 * m_g0 - 94839 * m_g2);
56
- const s2g = sub2 * (838422 * m_g2 + 769860 * m_g1 + 731718 * m_g0);
57
- const s3g = sub2 * (632260 * m_g2 - 126452 * m_g1);
58
- const s1b = sub2 * (284517 * m_b0 - 94839 * m_b2);
59
- const s2b = sub2 * (838422 * m_b2 + 769860 * m_b1 + 731718 * m_b0);
60
- const s3b = sub2 * (632260 * m_b2 - 126452 * m_b1);
61
-
62
- return {
63
- r0s: s1r / s3r,
64
- r0i: s2r * l / s3r,
65
- r1s: s1r / (s3r + 126452),
66
- r1i: (s2r - 769860) * l / (s3r + 126452),
67
- g0s: s1g / s3g,
68
- g0i: s2g * l / s3g,
69
- g1s: s1g / (s3g + 126452),
70
- g1i: (s2g - 769860) * l / (s3g + 126452),
71
- b0s: s1b / s3b,
72
- b0i: s2b * l / s3b,
73
- b1s: s1b / (s3b + 126452),
74
- b1i: (s2b - 769860) * l / (s3b + 126452),
75
- };
76
- }
77
-
78
- function calcMaxChromaHsluv (lines, h) {
79
- const hueRad = h / 360 * Math.PI * 2;
80
- const r0 = distanceFromOriginAngle(lines.r0s, lines.r0i, hueRad);
81
- const r1 = distanceFromOriginAngle(lines.r1s, lines.r1i, hueRad);
82
- const g0 = distanceFromOriginAngle(lines.g0s, lines.g0i, hueRad);
83
- const g1 = distanceFromOriginAngle(lines.g1s, lines.g1i, hueRad);
84
- const b0 = distanceFromOriginAngle(lines.b0s, lines.b0i, hueRad);
85
- const b1 = distanceFromOriginAngle(lines.b1s, lines.b1i, hueRad);
86
-
87
- return Math.min(r0, r1, g0, g1, b0, b1);
88
- }
89
-
90
- export default new ColorSpace({
91
- id: "hsluv",
92
- name: "HSLuv",
93
- coords: {
94
- h: {
95
- refRange: [0, 360],
96
- type: "angle",
97
- name: "Hue",
98
- },
99
- s: {
100
- range: [0, 100],
101
- name: "Saturation",
102
- },
103
- l: {
104
- range: [0, 100],
105
- name: "Lightness",
106
- },
107
- },
108
-
109
- base: LCHuv,
110
- gamutSpace: sRGB,
111
-
112
- // Convert LCHuv to HSLuv
113
- fromBase (lch) {
114
- let [l, c, h] = [skipNone(lch[0]), skipNone(lch[1]), skipNone(lch[2])];
115
- let s;
116
-
117
- if (l > 99.9999999) {
118
- s = 0;
119
- l = 100;
120
- }
121
- else if (l < 0.00000001) {
122
- s = 0;
123
- l = 0;
124
- }
125
- else {
126
- let lines = calculateBoundingLines(l);
127
- let max = calcMaxChromaHsluv(lines, h);
128
- s = c / max * 100;
129
- }
130
-
131
- return [h, s, l];
132
- },
133
-
134
- // Convert HSLuv to LCHuv
135
- toBase (hsl) {
136
- let [h, s, l] = [skipNone(hsl[0]), skipNone(hsl[1]), skipNone(hsl[2])];
137
- let c;
138
-
139
- if (l > 99.9999999) {
140
- l = 100;
141
- c = 0;
142
- }
143
- else if (l < 0.00000001) {
144
- l = 0;
145
- c = 0;
146
- }
147
- else {
148
- let lines = calculateBoundingLines(l);
149
- let max = calcMaxChromaHsluv(lines, h);
150
- c = max / 100 * s;
151
- }
152
-
153
- return [l, c, h];
154
- },
155
-
156
- formats: {
157
- color: {
158
- id: "--hsluv",
159
- coords: ["<number> | <angle>", "<percentage> | <number>", "<percentage> | <number>"],
160
- },
161
- },
162
- });
@@ -1,65 +0,0 @@
1
- import ColorSpace from "../space.js";
2
- import HSL from "./hsl.js";
3
-
4
- // The Hue, Whiteness Blackness (HWB) colorspace
5
- // See https://drafts.csswg.org/css-color-4/#the-hwb-notation
6
- // Note that, like HSL, calculations are done directly on
7
- // gamma-corrected sRGB values rather than linearising them first.
8
-
9
- export default new ColorSpace({
10
- id: "hsv",
11
- name: "HSV",
12
- coords: {
13
- h: {
14
- refRange: [0, 360],
15
- type: "angle",
16
- name: "Hue",
17
- },
18
- s: {
19
- range: [0, 100],
20
- name: "Saturation",
21
- },
22
- v: {
23
- range: [0, 100],
24
- name: "Value",
25
- },
26
- },
27
-
28
- base: HSL,
29
- // https://en.wikipedia.org/wiki/HSL_and_HSV#Interconversion
30
- fromBase (hsl) {
31
- let [h, s, l] = hsl;
32
- s /= 100;
33
- l /= 100;
34
-
35
- let v = l + s * Math.min(l, 1 - l);
36
-
37
- return [
38
- h, // h is the same
39
- v === 0 ? 0 : 200 * (1 - l / v), // s
40
- 100 * v,
41
- ];
42
- },
43
- // https://en.wikipedia.org/wiki/HSL_and_HSV#Interconversion
44
- toBase (hsv) {
45
- let [h, s, v] = hsv;
46
-
47
- s /= 100;
48
- v /= 100;
49
-
50
- let l = v * (1 - s / 2);
51
-
52
- return [
53
- h, // h is the same
54
- (l === 0 || l === 1) ? 0 : ((v - l) / Math.min(l, 1 - l)) * 100,
55
- l * 100,
56
- ];
57
- },
58
-
59
- formats: {
60
- color: {
61
- id: "--hsv",
62
- coords: ["<number> | <angle>", "<percentage> | <number>", "<percentage> | <number>"],
63
- },
64
- },
65
- });
@@ -1,58 +0,0 @@
1
- import ColorSpace from "../space.js";
2
- import HSV from "./hsv.js";
3
-
4
- // The Hue, Whiteness Blackness (HWB) colorspace
5
- // See https://drafts.csswg.org/css-color-4/#the-hwb-notation
6
- // Note that, like HSL, calculations are done directly on
7
- // gamma-corrected sRGB values rather than linearising them first.
8
-
9
- export default new ColorSpace({
10
- id: "hwb",
11
- name: "HWB",
12
- coords: {
13
- h: {
14
- refRange: [0, 360],
15
- type: "angle",
16
- name: "Hue",
17
- },
18
- w: {
19
- range: [0, 100],
20
- name: "Whiteness",
21
- },
22
- b: {
23
- range: [0, 100],
24
- name: "Blackness",
25
- },
26
- },
27
-
28
- base: HSV,
29
- fromBase (hsv) {
30
- let [h, s, v] = hsv;
31
-
32
- return [h, v * (100 - s) / 100, 100 - v];
33
- },
34
- toBase (hwb) {
35
- let [h, w, b] = hwb;
36
-
37
- // Now convert percentages to [0..1]
38
- w /= 100;
39
- b /= 100;
40
-
41
- // Achromatic check (white plus black >= 1)
42
- let sum = w + b;
43
- if (sum >= 1) {
44
- let gray = w / sum;
45
- return [h, 0, gray * 100];
46
- }
47
-
48
- let v = (1 - b);
49
- let s = (v === 0) ? 0 : 1 - w / v;
50
- return [h, s * 100, v * 100];
51
- },
52
-
53
- formats: {
54
- "hwb": {
55
- coords: ["<number> | <angle>", "<percentage> | <number>", "<percentage> | <number>"],
56
- },
57
- },
58
- });
@@ -1,133 +0,0 @@
1
- import ColorSpace from "../space.js";
2
- import {multiplyMatrices} from "../util.js";
3
- import XYZ_Abs_D65 from "./xyz-abs-d65.js";
4
-
5
- const c1 = 3424 / 4096;
6
- const c2 = 2413 / 128;
7
- const c3 = 2392 / 128;
8
- const m1 = 2610 / 16384;
9
- const m2 = 2523 / 32;
10
- const im1 = 16384 / 2610;
11
- const im2 = 32 / 2523;
12
-
13
- // The matrix below includes the 4% crosstalk components
14
- // and is from the Dolby "What is ICtCp" paper"
15
- const XYZtoLMS_M = [
16
- [ 0.3592832590121217, 0.6976051147779502, -0.0358915932320290 ],
17
- [ -0.1920808463704993, 1.1004767970374321, 0.0753748658519118 ],
18
- [ 0.0070797844607479, 0.0748396662186362, 0.8433265453898765 ],
19
- ];
20
- // linear-light Rec.2020 to LMS, again with crosstalk
21
- // rational terms from Jan Fröhlich,
22
- // Encoding High Dynamic Range andWide Color Gamut Imagery, p.97
23
- // and ITU-R BT.2124-0 p.2
24
- /*
25
- const Rec2020toLMS_M = [
26
- [ 1688 / 4096, 2146 / 4096, 262 / 4096 ],
27
- [ 683 / 4096, 2951 / 4096, 462 / 4096 ],
28
- [ 99 / 4096, 309 / 4096, 3688 / 4096 ]
29
- ];
30
- */
31
- // this includes the Ebner LMS coefficients,
32
- // the rotation, and the scaling to [-0.5,0.5] range
33
- // rational terms from Fröhlich p.97
34
- // and ITU-R BT.2124-0 pp.2-3
35
- const LMStoIPT_M = [
36
- [ 2048 / 4096, 2048 / 4096, 0 ],
37
- [ 6610 / 4096, -13613 / 4096, 7003 / 4096 ],
38
- [ 17933 / 4096, -17390 / 4096, -543 / 4096 ],
39
- ];
40
-
41
- // inverted matrices, calculated from the above
42
- const IPTtoLMS_M = [
43
- [ 0.9999999999999998, 0.0086090370379328, 0.1110296250030260 ],
44
- [ 0.9999999999999998, -0.0086090370379328, -0.1110296250030259 ],
45
- [ 0.9999999999999998, 0.5600313357106791, -0.3206271749873188 ],
46
- ];
47
- /*
48
- const LMStoRec2020_M = [
49
- [ 3.4375568932814012112, -2.5072112125095058195, 0.069654319228104608382],
50
- [-0.79142868665644156125, 1.9838372198740089874, -0.19240853321756742626 ],
51
- [-0.025646662911506476363, -0.099240248643945566751, 1.1248869115554520431 ]
52
- ];
53
- */
54
- const LMStoXYZ_M = [
55
- [ 2.0701522183894223, -1.3263473389671563, 0.2066510476294053 ],
56
- [ 0.3647385209748072, 0.6805660249472273, -0.0453045459220347 ],
57
- [ -0.0497472075358123, -0.0492609666966131, 1.1880659249923042 ],
58
- ];
59
-
60
- // Only the PQ form of ICtCp is implemented here. There is also an HLG form.
61
- // from Dolby, "WHAT IS ICTCP?"
62
- // https://professional.dolby.com/siteassets/pdfs/ictcp_dolbywhitepaper_v071.pdf
63
- // and
64
- // Dolby, "Perceptual Color Volume
65
- // Measuring the Distinguishable Colors of HDR and WCG Displays"
66
- // https://professional.dolby.com/siteassets/pdfs/dolby-vision-measuring-perceptual-color-volume-v7.1.pdf
67
- export default new ColorSpace({
68
- id: "ictcp",
69
- name: "ICTCP",
70
- // From BT.2100-2 page 7:
71
- // During production, signal values are expected to exceed the
72
- // range E′ = [0.0 : 1.0]. This provides processing headroom and avoids
73
- // signal degradation during cascaded processing. Such values of E′,
74
- // below 0.0 or exceeding 1.0, should not be clipped during production
75
- // and exchange.
76
- // Values below 0.0 should not be clipped in reference displays (even
77
- // though they represent “negative” light) to allow the black level of
78
- // the signal (LB) to be properly set using test signals known as “PLUGE”
79
- coords: {
80
- i: {
81
- refRange: [0, 1], // Constant luminance,
82
- name: "I",
83
- },
84
- ct: {
85
- refRange: [-0.5, 0.5], // Full BT.2020 gamut in range [-0.5, 0.5]
86
- name: "CT",
87
- },
88
- cp: {
89
- refRange: [-0.5, 0.5],
90
- name: "CP",
91
- },
92
- },
93
-
94
- base: XYZ_Abs_D65,
95
- fromBase (XYZ) {
96
- // move to LMS cone domain
97
- let LMS = multiplyMatrices(XYZtoLMS_M, XYZ);
98
-
99
- return LMStoICtCp(LMS);
100
- },
101
- toBase (ICtCp) {
102
- let LMS = ICtCptoLMS(ICtCp);
103
-
104
- return multiplyMatrices(LMStoXYZ_M, LMS);
105
- },
106
- });
107
-
108
- function LMStoICtCp (LMS) {
109
- // apply the PQ EOTF
110
- // we can't ever be dividing by zero because of the "1 +" in the denominator
111
- let PQLMS = LMS.map (function (val) {
112
- let num = c1 + (c2 * ((val / 10000) ** m1));
113
- let denom = 1 + (c3 * ((val / 10000) ** m1));
114
-
115
- return (num / denom) ** m2;
116
- });
117
-
118
- // LMS to IPT, with rotation for Y'C'bC'r compatibility
119
- return multiplyMatrices(LMStoIPT_M, PQLMS);
120
- }
121
-
122
- function ICtCptoLMS (ICtCp) {
123
- let PQLMS = multiplyMatrices(IPTtoLMS_M, ICtCp);
124
-
125
- // From BT.2124-0 Annex 2 Conversion 3
126
- let LMS = PQLMS.map (function (val) {
127
- let num = Math.max((val ** im2) - c1, 0);
128
- let denom = (c2 - (c3 * (val ** im2)));
129
- return 10000 * ((num / denom) ** im1);
130
- });
131
-
132
- return LMS;
133
- }
@@ -1,7 +0,0 @@
1
- export {default as Jzazbz} from "./jzazbz.js";
2
- export {default as JzCzHz} from "./jzczhz.js";
3
- export {default as ICTCP} from "./ictcp.js";
4
- export {default as REC_2100_PQ} from "./rec2100-pq.js";
5
- export {default as REC_2100_HLG} from "./rec2100-hlg.js";
6
- export {default as ACEScg} from "./acescg.js";
7
- export {default as ACEScc} from "./acescc.js";
@@ -1,29 +0,0 @@
1
- export {default as XYZ_D65} from "./xyz-d65.js";
2
- export {default as XYZ_D50} from "./xyz-d50.js";
3
- export {default as XYZ_ABS_D65} from "./xyz-abs-d65.js";
4
- export {default as Lab_D65} from "./lab-d65.js";
5
- export {default as Lab} from "./lab.js";
6
- export {default as LCH} from "./lch.js";
7
- export {default as sRGB_Linear} from "./srgb-linear.js";
8
- export {default as sRGB} from "./srgb.js";
9
- export {default as HSL} from "./hsl.js";
10
- export {default as HWB} from "./hwb.js";
11
- export {default as HSV} from "./hsv.js";
12
- export {default as P3_Linear} from "./p3-linear.js";
13
- export {default as P3} from "./p3.js";
14
- export {default as A98RGB_Linear} from "./a98rgb-linear.js";
15
- export {default as A98RGB} from "./a98rgb.js";
16
- export {default as ProPhoto_Linear} from "./prophoto-linear.js";
17
- export {default as ProPhoto} from "./prophoto.js";
18
- export {default as REC_2020_Linear} from "./rec2020-linear.js";
19
- export {default as REC_2020} from "./rec2020.js";
20
- export {default as OKLab} from "./oklab.js";
21
- export {default as OKLCH} from "./oklch.js";
22
- export {default as CAM16_JMh} from "./cam16.js";
23
- export {default as HCT} from "./hct.js";
24
- export {default as Luv} from "./luv.js";
25
- export {default as LCHuv} from "./lchuv.js";
26
- export {default as HSLuv} from "./hsluv.js";
27
- export {default as HPLuv} from "./hpluv.js";
28
-
29
- export * from "./index-fn-hdr.js";
@@ -1,8 +0,0 @@
1
- import ColorSpace from "../space.js";
2
- import * as spaces from "./index-fn.js";
3
-
4
- export * as spaces from "./index-fn.js";
5
-
6
- for (let key of Object.keys(spaces)) {
7
- ColorSpace.register(spaces[key]);
8
- }
@@ -1,118 +0,0 @@
1
- import ColorSpace from "../space.js";
2
- import {multiplyMatrices} from "../util.js";
3
- import XYZ_Abs_D65 from "./xyz-abs-d65.js";
4
-
5
- const b = 1.15;
6
- const g = 0.66;
7
- const n = 2610 / (2 ** 14);
8
- const ninv = (2 ** 14) / 2610;
9
- const c1 = 3424 / (2 ** 12);
10
- const c2 = 2413 / (2 ** 7);
11
- const c3 = 2392 / (2 ** 7);
12
- const p = 1.7 * 2523 / (2 ** 5);
13
- const pinv = (2 ** 5) / (1.7 * 2523);
14
- const d = -0.56;
15
- const d0 = 1.6295499532821566E-11;
16
-
17
- const XYZtoCone_M = [
18
- [ 0.41478972, 0.579999, 0.0146480 ],
19
- [ -0.2015100, 1.120649, 0.0531008 ],
20
- [ -0.0166008, 0.264800, 0.6684799 ],
21
- ];
22
- // XYZtoCone_M inverted
23
- const ConetoXYZ_M = [
24
- [ 1.9242264357876067, -1.0047923125953657, 0.037651404030618 ],
25
- [ 0.35031676209499907, 0.7264811939316552, -0.06538442294808501 ],
26
- [ -0.09098281098284752, -0.3127282905230739, 1.5227665613052603 ],
27
- ];
28
- const ConetoIab_M = [
29
- [ 0.5, 0.5, 0 ],
30
- [ 3.524000, -4.066708, 0.542708 ],
31
- [ 0.199076, 1.096799, -1.295875 ],
32
- ];
33
- // ConetoIab_M inverted
34
- const IabtoCone_M = [
35
- [ 1, 0.1386050432715393, 0.05804731615611886 ],
36
- [ 0.9999999999999999, -0.1386050432715393, -0.05804731615611886 ],
37
- [ 0.9999999999999998, -0.09601924202631895, -0.8118918960560388 ],
38
- ];
39
-
40
- export default new ColorSpace({
41
- id: "jzazbz",
42
- name: "Jzazbz",
43
- coords: {
44
- jz: {
45
- refRange: [0, 1],
46
- name: "Jz",
47
- },
48
- az: {
49
- refRange: [-0.5, 0.5],
50
- },
51
- bz: {
52
- refRange: [-0.5, 0.5],
53
- },
54
- },
55
-
56
- base: XYZ_Abs_D65,
57
- fromBase (XYZ) {
58
- // First make XYZ absolute, not relative to media white
59
- // Maximum luminance in PQ is 10,000 cd/m²
60
- // Relative XYZ has Y=1 for media white
61
- // BT.2048 says media white Y=203 at PQ 58
62
-
63
- let [ Xa, Ya, Za ] = XYZ;
64
-
65
- // modify X and Y
66
- let Xm = (b * Xa) - ((b - 1) * Za);
67
- let Ym = (g * Ya) - ((g - 1) * Xa);
68
-
69
- // move to LMS cone domain
70
- let LMS = multiplyMatrices(XYZtoCone_M, [ Xm, Ym, Za ]);
71
-
72
- // PQ-encode LMS
73
- let PQLMS = LMS.map (function (val) {
74
- let num = c1 + (c2 * ((val / 10000) ** n));
75
- let denom = 1 + (c3 * ((val / 10000) ** n));
76
-
77
- return (num / denom) ** p;
78
- });
79
-
80
- // almost there, calculate Iz az bz
81
- let [ Iz, az, bz] = multiplyMatrices(ConetoIab_M, PQLMS);
82
- // console.log({Iz, az, bz});
83
-
84
- let Jz = ((1 + d) * Iz) / (1 + (d * Iz)) - d0;
85
- return [Jz, az, bz];
86
- },
87
- toBase (Jzazbz) {
88
- let [Jz, az, bz] = Jzazbz;
89
- let Iz = (Jz + d0) / (1 + d - d * (Jz + d0));
90
-
91
- // bring into LMS cone domain
92
- let PQLMS = multiplyMatrices(IabtoCone_M, [ Iz, az, bz ]);
93
-
94
- // convert from PQ-coded to linear-light
95
- let LMS = PQLMS.map(function (val) {
96
- let num = (c1 - (val ** pinv));
97
- let denom = (c3 * (val ** pinv)) - c2;
98
- let x = 10000 * ((num / denom) ** ninv);
99
-
100
- return (x); // luminance relative to diffuse white, [0, 70 or so].
101
- });
102
-
103
- // modified abs XYZ
104
- let [ Xm, Ym, Za ] = multiplyMatrices(ConetoXYZ_M, LMS);
105
-
106
- // restore standard D50 relative XYZ, relative to media white
107
- let Xa = (Xm + ((b - 1) * Za)) / b;
108
- let Ya = (Ym + ((g - 1) * Xa)) / g;
109
- return [ Xa, Ya, Za ];
110
- },
111
-
112
- formats: {
113
- // https://drafts.csswg.org/css-color-hdr/#Jzazbz
114
- "color": {
115
- coords: ["<number> | <percentage>", "<number> | <percentage>[-1,1]", "<number> | <percentage>[-1,1]"],
116
- },
117
- },
118
- });