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
@@ -1,31 +0,0 @@
1
- import RGBColorSpace from "../rgbspace.js";
2
- import REC2020Linear from "./rec2020-linear.js";
3
- // import sRGB from "./srgb.js";
4
-
5
- const α = 1.09929682680944;
6
- const β = 0.018053968510807;
7
-
8
- export default new RGBColorSpace({
9
- id: "rec2020",
10
- name: "REC.2020",
11
- base: REC2020Linear,
12
- // Non-linear transfer function from Rec. ITU-R BT.2020-2 table 4
13
- toBase (RGB) {
14
- return RGB.map(function (val) {
15
- if (val < β * 4.5) {
16
- return val / 4.5;
17
- }
18
-
19
- return Math.pow((val + α - 1) / α, 1 / 0.45);
20
- });
21
- },
22
- fromBase (RGB) {
23
- return RGB.map(function (val) {
24
- if (val >= β) {
25
- return α * Math.pow(val, 0.45) - (α - 1);
26
- }
27
-
28
- return 4.5 * val;
29
- });
30
- },
31
- });
@@ -1,49 +0,0 @@
1
- import RGBColorSpace from "../rgbspace.js";
2
- import REC2020Linear from "./rec2020-linear.js";
3
-
4
- // FIXME see https://github.com/LeaVerou/color.js/issues/190
5
-
6
- const a = 0.17883277;
7
- const b = 0.28466892; // 1 - (4 * a)
8
- const c = 0.55991073; // 0.5 - a * Math.log(4 *a)
9
-
10
- const scale = 3.7743; // Place 18% grey at HLG 0.38, so media white at 0.75
11
-
12
- export default new RGBColorSpace({
13
- id: "rec2100hlg",
14
- cssId: "rec2100-hlg",
15
- name: "REC.2100-HLG",
16
- referred: "scene",
17
-
18
- base: REC2020Linear,
19
- toBase (RGB) {
20
- // given HLG encoded component in range [0, 1]
21
- // return media-white relative linear-light
22
- return RGB.map(function (val) {
23
- // first the HLG EOTF
24
- // ITU-R BT.2390-10 p.30 section
25
- // 6.3 The hybrid log-gamma electro-optical transfer function (EOTF)
26
- // Then scale by 3 so media white is 1.0
27
- if (val <= 0.5) {
28
- return (val ** 2) / 3 * scale;
29
- }
30
- return ((Math.exp((val - c) / a) + b) / 12) * scale;
31
- });
32
- },
33
- fromBase (RGB) {
34
- // given media-white relative linear-light
35
- // where diffuse white is 1.0,
36
- // return HLG encoded component in range [0, 1]
37
- return RGB.map(function (val) {
38
- // first scale to put linear-light media white at 1/3
39
- val /= scale;
40
- // now the HLG OETF
41
- // ITU-R BT.2390-10 p.23
42
- // 6.1 The hybrid log-gamma opto-electronic transfer function (OETF)
43
- if (val <= 1 / 12) {
44
- return Math.sqrt(3 * val);
45
- }
46
- return a * Math.log(12 * val - b) + c;
47
- });
48
- },
49
- });
@@ -1,37 +0,0 @@
1
- import RGBColorSpace from "../rgbspace.js";
2
- import REC2020Linear from "./rec2020-linear.js";
3
-
4
- const Yw = 203; // absolute luminance of media white, cd/m²
5
- const n = 2610 / (2 ** 14);
6
- const ninv = (2 ** 14) / 2610;
7
- const m = 2523 / (2 ** 5);
8
- const minv = (2 ** 5) / 2523;
9
- const c1 = 3424 / (2 ** 12);
10
- const c2 = 2413 / (2 ** 7);
11
- const c3 = 2392 / (2 ** 7);
12
-
13
- export default new RGBColorSpace({
14
- id: "rec2100pq",
15
- cssId: "rec2100-pq",
16
- name: "REC.2100-PQ",
17
- base: REC2020Linear,
18
- toBase (RGB) {
19
- // given PQ encoded component in range [0, 1]
20
- // return media-white relative linear-light
21
- return RGB.map(function (val) {
22
- let x = ((Math.max(((val ** minv) - c1), 0) / (c2 - (c3 * (val ** minv)))) ** ninv);
23
- return (x * 10000 / Yw); // luminance relative to diffuse white, [0, 70 or so].
24
- });
25
- },
26
- fromBase (RGB) {
27
- // given media-white relative linear-light
28
- // returnPQ encoded component in range [0, 1]
29
- return RGB.map(function (val) {
30
- let x = Math.max(val * Yw / 10000, 0); // absolute luminance of peak white is 10,000 cd/m².
31
- let num = (c1 + (c2 * (x ** n)));
32
- let denom = (1 + (c3 * (x ** n)));
33
-
34
- return ((num / denom) ** m);
35
- });
36
- },
37
- });
@@ -1,30 +0,0 @@
1
- import RGBColorSpace from "../rgbspace.js";
2
-
3
- // This is the linear-light version of sRGB
4
- // as used for example in SVG filters
5
- // or in Canvas
6
-
7
- // This matrix was calculated directly from the RGB and white chromaticities
8
- // when rounded to 8 decimal places, it agrees completely with the official matrix
9
- // see https://github.com/w3c/csswg-drafts/issues/5922
10
- const toXYZ_M = [
11
- [ 0.41239079926595934, 0.357584339383878, 0.1804807884018343 ],
12
- [ 0.21263900587151027, 0.715168678767756, 0.07219231536073371 ],
13
- [ 0.01933081871559182, 0.11919477979462598, 0.9505321522496607 ],
14
- ];
15
-
16
- // This matrix is the inverse of the above;
17
- // again it agrees with the official definition when rounded to 8 decimal places
18
- export const fromXYZ_M = [
19
- [ 3.2409699419045226, -1.537383177570094, -0.4986107602930034 ],
20
- [ -0.9692436362808796, 1.8759675015077202, 0.04155505740717559 ],
21
- [ 0.05563007969699366, -0.20397695888897652, 1.0569715142428786 ],
22
- ];
23
-
24
- export default new RGBColorSpace({
25
- id: "srgb-linear",
26
- name: "Linear sRGB",
27
- white: "D65",
28
- toXYZ_M,
29
- fromXYZ_M,
30
- });
@@ -1,127 +0,0 @@
1
- import RGBColorSpace from "../rgbspace.js";
2
- import sRGBLinear from "./srgb-linear.js";
3
- import KEYWORDS from "../keywords.js";
4
-
5
- let coordGrammar = Array(3).fill("<percentage> | <number>[0, 255]");
6
- let coordGrammarNumber = Array(3).fill("<number>[0, 255]");
7
-
8
- export default new RGBColorSpace({
9
- id: "srgb",
10
- name: "sRGB",
11
- base: sRGBLinear,
12
- fromBase: rgb => {
13
- // convert an array of linear-light sRGB values in the range 0.0-1.0
14
- // to gamma corrected form
15
- // https://en.wikipedia.org/wiki/SRGB
16
- return rgb.map(val => {
17
- let sign = val < 0 ? -1 : 1;
18
- let abs = val * sign;
19
-
20
- if (abs > 0.0031308) {
21
- return sign * (1.055 * (abs ** (1 / 2.4)) - 0.055);
22
- }
23
-
24
- return 12.92 * val;
25
- });
26
- },
27
- toBase: rgb => {
28
- // convert an array of sRGB values in the range 0.0 - 1.0
29
- // to linear light (un-companded) form.
30
- // https://en.wikipedia.org/wiki/SRGB
31
- return rgb.map(val => {
32
- let sign = val < 0 ? -1 : 1;
33
- let abs = val * sign;
34
-
35
- if (abs <= 0.04045) {
36
- return val / 12.92;
37
- }
38
-
39
- return sign * (((abs + 0.055) / 1.055) ** 2.4);
40
- });
41
- },
42
- formats: {
43
- "rgb": {
44
- coords: coordGrammar,
45
- },
46
- "rgb_number": {
47
- name: "rgb",
48
- commas: true,
49
- coords: coordGrammarNumber,
50
- noAlpha: true,
51
- },
52
- "color": { /* use defaults */ },
53
- "rgba": {
54
- coords: coordGrammar,
55
- commas: true,
56
- lastAlpha: true,
57
- },
58
- "rgba_number": {
59
- name: "rgba",
60
- commas: true,
61
- coords: coordGrammarNumber,
62
- },
63
- "hex": {
64
- type: "custom",
65
- toGamut: true,
66
- test: str => /^#([a-f0-9]{3,4}){1,2}$/i.test(str),
67
- parse (str) {
68
- if (str.length <= 5) {
69
- // #rgb or #rgba, duplicate digits
70
- str = str.replace(/[a-f0-9]/gi, "$&$&");
71
- }
72
-
73
- let rgba = [];
74
- str.replace(/[a-f0-9]{2}/gi, component => {
75
- rgba.push(parseInt(component, 16) / 255);
76
- });
77
-
78
- return {
79
- spaceId: "srgb",
80
- coords: rgba.slice(0, 3),
81
- alpha: rgba.slice(3)[0],
82
- };
83
- },
84
- serialize: (coords, alpha, {
85
- collapse = true, // collapse to 3-4 digit hex when possible?
86
- } = {}) => {
87
- if (alpha < 1) {
88
- coords.push(alpha);
89
- }
90
-
91
- coords = coords.map(c => Math.round(c * 255));
92
-
93
- let collapsible = collapse && coords.every(c => c % 17 === 0);
94
-
95
- let hex = coords.map(c => {
96
- if (collapsible) {
97
- return (c / 17).toString(16);
98
- }
99
-
100
- return c.toString(16).padStart(2, "0");
101
- }).join("");
102
-
103
- return "#" + hex;
104
- },
105
- },
106
- "keyword": {
107
- type: "custom",
108
- test: str => /^[a-z]+$/i.test(str),
109
- parse (str) {
110
- str = str.toLowerCase();
111
- let ret = {spaceId: "srgb", coords: null, alpha: 1};
112
-
113
- if (str === "transparent") {
114
- ret.coords = KEYWORDS.black;
115
- ret.alpha = 0;
116
- }
117
- else {
118
- ret.coords = KEYWORDS[str];
119
- }
120
-
121
- if (ret.coords) {
122
- return ret;
123
- }
124
- },
125
- },
126
- },
127
- });
@@ -1,40 +0,0 @@
1
- import ColorSpace from "../space.js";
2
- import XYZ_D65 from "./xyz-d65.js";
3
-
4
- const Yw = 203; // absolute luminance of media white
5
-
6
- export default new ColorSpace({
7
- // Absolute CIE XYZ, with a D65 whitepoint,
8
- // as used in most HDR colorspaces as a starting point.
9
- // SDR spaces are converted per BT.2048
10
- // so that diffuse, media white is 203 cd/m²
11
- id: "xyz-abs-d65",
12
- cssId: "--xyz-abs-d65",
13
- name: "Absolute XYZ D65",
14
- coords: {
15
- x: {
16
- refRange: [0, 9504.7],
17
- name: "Xa",
18
- },
19
- y: {
20
- refRange: [0, 10000],
21
- name: "Ya",
22
- },
23
- z: {
24
- refRange: [0, 10888.3],
25
- name: "Za",
26
- },
27
- },
28
-
29
- base: XYZ_D65,
30
- fromBase (XYZ) {
31
- // Make XYZ absolute, not relative to media white
32
- // Maximum luminance in PQ is 10,000 cd/m²
33
- // Relative XYZ has Y=1 for media white
34
- return XYZ.map (v => Math.max(v * Yw, 0));
35
- },
36
- toBase (AbsXYZ) {
37
- // Convert to media-white relative XYZ
38
- return AbsXYZ.map(v => Math.max(v / Yw, 0));
39
- },
40
- });
@@ -1,12 +0,0 @@
1
- import ColorSpace from "../space.js";
2
- import adapt from "../adapt.js";
3
- import XYZ_D65 from "./xyz-d65.js";
4
-
5
- export default new ColorSpace({
6
- id: "xyz-d50",
7
- name: "XYZ D50",
8
- white: "D50",
9
- base: XYZ_D65,
10
- fromBase: coords => adapt(XYZ_D65.white, "D50", coords),
11
- toBase: coords => adapt("D50", XYZ_D65.white, coords),
12
- });
@@ -1,18 +0,0 @@
1
- import ColorSpace from "../space.js";
2
-
3
- export default new ColorSpace({
4
- id: "xyz-d65",
5
- name: "XYZ D65",
6
- coords: {
7
- x: {name: "X"},
8
- y: {name: "Y"},
9
- z: {name: "Z"},
10
- },
11
- white: "D65",
12
- formats: {
13
- color: {
14
- ids: ["xyz-d65", "xyz"],
15
- },
16
- },
17
- aliases: ["xyz"],
18
- });
@@ -1,26 +0,0 @@
1
- import getColor from "./getColor.js";
2
- import ColorSpace from "./space.js";
3
- import toGamut from "./toGamut.js";
4
-
5
- /**
6
- * Convert to color space and return a new color
7
- * @param {Object|string} space - Color space object or id
8
- * @param {Object} options
9
- * @param {boolean} options.inGamut - Whether to force resulting color in gamut
10
- * @returns {Color}
11
- */
12
- export default function to (color, space, {inGamut} = {}) {
13
- color = getColor(color);
14
- space = ColorSpace.get(space);
15
-
16
- let coords = space.from(color);
17
- let ret = {space, coords, alpha: color.alpha};
18
-
19
- if (inGamut) {
20
- ret = toGamut(ret, inGamut === true ? undefined : inGamut);
21
- }
22
-
23
- return ret;
24
- }
25
-
26
- to.returns = "color";
@@ -1,310 +0,0 @@
1
- import * as util from "./util.js";
2
- import ColorSpace from "./space.js";
3
- import defaults from "./defaults.js";
4
- import deltaE2000 from "./deltaE/deltaE2000.js";
5
- import deltaEOK from "./deltaE/deltaEOK.js";
6
- import inGamut from "./inGamut.js";
7
- import to from "./to.js";
8
- import get from "./get.js";
9
- import oklab from "./spaces/oklab.js";
10
- import set from "./set.js";
11
- import clone from "./clone.js";
12
- import getColor from "./getColor.js";
13
- import deltaEMethods from "./deltaE/index.js";
14
- import {WHITES} from "./adapt.js";
15
-
16
- /**
17
- * Calculate the epsilon to 2 degrees smaller than the specified JND.
18
- * @param {Number} jnd - The target "just noticeable difference".
19
- * @returns {Number}
20
- */
21
- function calcEpsilon (jnd) {
22
- // Calculate the epsilon to 2 degrees smaller than the specified JND.
23
-
24
- const order = (!jnd) ? 0 : Math.floor(Math.log10(Math.abs(jnd)));
25
- // Limit to an arbitrary value to ensure value is never too small and causes infinite loops.
26
- return Math.max(parseFloat(`1e${order - 2}`), 1e-6);
27
- }
28
-
29
- const GMAPPRESET = {
30
- "hct": {
31
- method: "hct.c",
32
- jnd: 2,
33
- deltaEMethod: "hct",
34
- blackWhiteClamp: {},
35
- },
36
- "hct-tonal": {
37
- method: "hct.c",
38
- jnd: 0,
39
- deltaEMethod: "hct",
40
- blackWhiteClamp: { channel: "hct.t", min: 0, max: 100 },
41
- },
42
- };
43
-
44
- /**
45
- * Force coordinates to be in gamut of a certain color space.
46
- * Mutates the color it is passed.
47
- * @param {Object|string} options object or spaceId string
48
- * @param {string} options.method - How to force into gamut.
49
- * If "clip", coordinates are just clipped to their reference range.
50
- * If "css", coordinates are reduced according to the CSS 4 Gamut Mapping Algorithm.
51
- * If in the form [colorSpaceId].[coordName], that coordinate is reduced
52
- * until the color is in gamut. Please note that this may produce nonsensical
53
- * results for certain coordinates (e.g. hue) or infinite loops if reducing the coordinate never brings the color in gamut.
54
- * @param {ColorSpace|string} options.space - The space whose gamut we want to map to
55
- * @param {string} options.deltaEMethod - The delta E method to use while performing gamut mapping.
56
- * If no method is specified, delta E 2000 is used.
57
- * @param {Number} options.jnd - The "just noticeable difference" to target.
58
- * @param {Object} options.blackWhiteClamp - Used to configure SDR black and clamping.
59
- * "channel" indicates the "space.channel" to use for determining when to clamp.
60
- * "min" indicates the lower limit for black clamping and "max" indicates the upper
61
- * limit for white clamping.
62
- */
63
-
64
- export default function toGamut (
65
- color,
66
- {
67
- method = defaults.gamut_mapping,
68
- space = undefined,
69
- deltaEMethod = "",
70
- jnd = 2,
71
- blackWhiteClamp = {},
72
- } = {},
73
- ) {
74
- color = getColor(color);
75
-
76
- if (util.isString(arguments[1])) {
77
- space = arguments[1];
78
- }
79
- else if (!space) {
80
- space = color.space;
81
- }
82
-
83
- space = ColorSpace.get(space);
84
-
85
- // 3 spaces:
86
- // color.space: current color space
87
- // space: space whose gamut we are mapping to
88
- // mapSpace: space with the coord we're reducing
89
-
90
- if (inGamut(color, space, { epsilon: 0 })) {
91
- return color;
92
- }
93
-
94
- let spaceColor;
95
- if (method === "css") {
96
- spaceColor = toGamutCSS(color, { space });
97
- }
98
- else {
99
- if (method !== "clip" && !inGamut(color, space)) {
100
-
101
- if (Object.prototype.hasOwnProperty.call(GMAPPRESET, method)) {
102
- ({method, jnd, deltaEMethod, blackWhiteClamp} = GMAPPRESET[method]);
103
- }
104
-
105
- // Get the correct delta E method
106
- let de = deltaE2000;
107
- if (deltaEMethod !== "") {
108
- for (let m in deltaEMethods) {
109
- if ("deltae" + deltaEMethod.toLowerCase() === m.toLowerCase()) {
110
- de = deltaEMethods[m];
111
- break;
112
- }
113
- }
114
- }
115
-
116
- let clipped = toGamut(to(color, space), { method: "clip", space });
117
- if (de(color, clipped) > jnd) {
118
-
119
- // Clamp to SDR white and black if required
120
- if (Object.keys(blackWhiteClamp).length === 3) {
121
- let channelMeta = ColorSpace.resolveCoord(blackWhiteClamp.channel);
122
- let channel = get(to(color, channelMeta.space), channelMeta.id);
123
- if (util.isNone(channel)) {
124
- channel = 0;
125
- }
126
- if (channel >= blackWhiteClamp.max) {
127
- return to({ space: "xyz-d65", coords: WHITES["D65"] }, color.space);
128
- }
129
- else if (channel <= blackWhiteClamp.min) {
130
- return to({ space: "xyz-d65", coords: [0, 0, 0] }, color.space);
131
- }
132
- }
133
-
134
- // Reduce a coordinate of a certain color space until the color is in gamut
135
- let coordMeta = ColorSpace.resolveCoord(method);
136
- let mapSpace = coordMeta.space;
137
- let coordId = coordMeta.id;
138
-
139
- let mappedColor = to(color, mapSpace);
140
- // If we were already in the mapped color space, we need to resolve undefined channels
141
- mappedColor.coords.forEach((c, i) => {
142
- if (util.isNone(c)) {
143
- mappedColor.coords[i] = 0;
144
- }
145
- });
146
- let bounds = coordMeta.range || coordMeta.refRange;
147
- let min = bounds[0];
148
- let ε = calcEpsilon(jnd);
149
- let low = min;
150
- let high = get(mappedColor, coordId);
151
-
152
- while (high - low > ε) {
153
- let clipped = clone(mappedColor);
154
- clipped = toGamut(clipped, { space, method: "clip" });
155
- let deltaE = de(mappedColor, clipped);
156
-
157
- if (deltaE - jnd < ε) {
158
- low = get(mappedColor, coordId);
159
- }
160
- else {
161
- high = get(mappedColor, coordId);
162
- }
163
-
164
- set(mappedColor, coordId, (low + high) / 2);
165
- }
166
-
167
- spaceColor = to(mappedColor, space);
168
- }
169
- else {
170
- spaceColor = clipped;
171
- }
172
- }
173
- else {
174
- spaceColor = to(color, space);
175
- }
176
-
177
- if (method === "clip" // Dumb coord clipping
178
- // finish off smarter gamut mapping with clip to get rid of ε, see #17
179
- || !inGamut(spaceColor, space, { epsilon: 0 })
180
- ) {
181
- let bounds = Object.values(space.coords).map(c => c.range || []);
182
-
183
- spaceColor.coords = spaceColor.coords.map((c, i) => {
184
- let [min, max] = bounds[i];
185
-
186
- if (min !== undefined) {
187
- c = Math.max(min, c);
188
- }
189
-
190
- if (max !== undefined) {
191
- c = Math.min(c, max);
192
- }
193
-
194
- return c;
195
- });
196
- }
197
- }
198
-
199
- if (space !== color.space) {
200
- spaceColor = to(spaceColor, color.space);
201
- }
202
-
203
- color.coords = spaceColor.coords;
204
- return color;
205
- }
206
-
207
- toGamut.returns = "color";
208
-
209
- // The reference colors to be used if lightness is out of the range 0-1 in the
210
- // `Oklch` space. These are created in the `Oklab` space, as it is used by the
211
- // DeltaEOK calculation, so it is guaranteed to be imported.
212
- const COLORS = {
213
- WHITE: { space: oklab, coords: [1, 0, 0] },
214
- BLACK: { space: oklab, coords: [0, 0, 0] },
215
- };
216
-
217
- /**
218
- * Given a color `origin`, returns a new color that is in gamut using
219
- * the CSS Gamut Mapping Algorithm. If `space` is specified, it will be in gamut
220
- * in `space`, and returned in `space`. Otherwise, it will be in gamut and
221
- * returned in the color space of `origin`.
222
- * @param {Object} origin
223
- * @param {Object} options
224
- * @param {ColorSpace|string} options.space
225
- * @returns {Color}
226
- */
227
- export function toGamutCSS (origin, {space} = {}) {
228
- const JND = 0.02;
229
- const ε = 0.0001;
230
-
231
- origin = getColor(origin);
232
-
233
- if (!space) {
234
- space = origin.space;
235
- }
236
-
237
- space = ColorSpace.get(space);
238
- const oklchSpace = ColorSpace.get("oklch");
239
-
240
- if (space.isUnbounded) {
241
- return to(origin, space);
242
- }
243
-
244
- const origin_OKLCH = to(origin, oklchSpace);
245
- let L = origin_OKLCH.coords[0];
246
-
247
- // return media white or black, if lightness is out of range
248
- if (L >= 1) {
249
- const white = to(COLORS.WHITE, space);
250
- white.alpha = origin.alpha;
251
- return to(white, space);
252
- }
253
- if (L <= 0) {
254
- const black = to(COLORS.BLACK, space);
255
- black.alpha = origin.alpha;
256
- return to(black, space);
257
- }
258
-
259
- if (inGamut(origin_OKLCH, space, {epsilon: 0})) {
260
- return to(origin_OKLCH, space);
261
- }
262
-
263
- function clip (_color) {
264
- const destColor = to(_color, space);
265
- const spaceCoords = Object.values(space.coords);
266
- destColor.coords = destColor.coords.map((coord, index) => {
267
- if ("range" in spaceCoords[index]) {
268
- const [min, max] = spaceCoords[index].range;
269
- return util.clamp(min, coord, max);
270
- }
271
- return coord;
272
- });
273
- return destColor;
274
- }
275
- let min = 0;
276
- let max = origin_OKLCH.coords[1];
277
- let min_inGamut = true;
278
- let current = clone(origin_OKLCH);
279
- let clipped = clip(current);
280
-
281
- let E = deltaEOK(clipped, current);
282
- if (E < JND) {
283
- return clipped;
284
- }
285
-
286
- while ((max - min) > ε) {
287
- const chroma = (min + max) / 2;
288
- current.coords[1] = chroma;
289
- if (min_inGamut && inGamut(current, space, {epsilon: 0})) {
290
- min = chroma;
291
- }
292
- else {
293
- clipped = clip(current);
294
- E = deltaEOK(clipped, current);
295
- if (E < JND) {
296
- if ((JND - E < ε)) {
297
- break;
298
- }
299
- else {
300
- min_inGamut = false;
301
- min = chroma;
302
- }
303
- }
304
- else {
305
- max = chroma;
306
- }
307
- }
308
- }
309
- return clipped;
310
- }