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.
- package/README.md +30 -15
- package/_build/copy-config.json +1 -1
- package/_build/eleventy.js +7 -2
- package/_build/filters-extra.js +1 -1
- package/_includes/component.njk +9 -1
- package/_includes/partials/_nav-links.njk +11 -4
- package/_redirects +8 -1
- package/assets/css/style.css +78 -1
- package/assets/js/index.js +6 -6
- package/data/components.json +12 -0
- package/debug.html +447 -0
- package/index.js +5 -1
- package/package.json +2 -1
- package/src/channel-picker/README.md +103 -0
- package/src/channel-picker/channel-picker.css +31 -0
- package/src/channel-picker/channel-picker.js +168 -0
- package/src/channel-picker/channel-picker.webp +0 -0
- package/src/channel-slider/README.md +50 -8
- package/src/channel-slider/channel-slider.css +47 -5
- package/src/channel-slider/channel-slider.js +74 -39
- package/src/channel-slider/channel-slider.webp +0 -0
- package/src/color-chart/README.md +129 -0
- package/src/color-chart/color-chart-global.css +97 -0
- package/src/color-chart/color-chart.css +112 -0
- package/src/color-chart/color-chart.js +441 -0
- package/src/color-chart/color-chart.webp +0 -0
- package/src/color-inline/README.md +42 -1
- package/src/color-inline/color-inline.css +11 -4
- package/src/color-inline/color-inline.js +56 -50
- package/src/color-inline/color-inline.webp +0 -0
- package/src/color-picker/README.md +107 -5
- package/src/color-picker/color-picker.css +21 -6
- package/src/color-picker/color-picker.js +147 -60
- package/src/color-picker/color-picker.webp +0 -0
- package/src/color-scale/README.md +75 -0
- package/src/color-scale/color-scale.css +40 -0
- package/src/color-scale/color-scale.js +164 -0
- package/src/color-scale/color-scale.webp +0 -0
- package/src/color-slider/README.md +31 -4
- package/src/color-slider/color-slider.css +17 -7
- package/src/color-slider/color-slider.js +80 -38
- package/src/color-slider/color-slider.webp +0 -0
- package/src/color-swatch/README.md +265 -6
- package/src/color-swatch/color-swatch.css +162 -27
- package/src/color-swatch/color-swatch.js +191 -217
- package/src/color-swatch/color-swatch.webp +0 -0
- package/src/common/color-element.js +86 -0
- package/src/common/dom.js +1 -1
- package/src/common/util.js +12 -99
- package/src/gamut-badge/README.md +145 -0
- package/src/gamut-badge/gamut-badge.css +78 -0
- package/src/gamut-badge/gamut-badge.js +121 -0
- package/src/gamut-badge/gamut-badge.webp +0 -0
- package/src/index.js.njk +1 -1
- package/src/space-picker/README.md +121 -0
- package/src/space-picker/space-picker.css +23 -0
- package/src/space-picker/space-picker.js +213 -0
- package/src/space-picker/space-picker.webp +0 -0
- package/_data/components.json +0 -8
- package/lib/README.md +0 -4
- package/lib/colorjs.io/LICENSE +0 -21
- package/lib/colorjs.io/README.json +0 -3
- package/lib/colorjs.io/README.md +0 -257
- package/lib/colorjs.io/colorjs.io/LICENSE +0 -21
- package/lib/colorjs.io/colorjs.io/README.json +0 -3
- package/lib/colorjs.io/colorjs.io/README.md +0 -257
- package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs +0 -5437
- package/lib/colorjs.io/colorjs.io/dist/color-fn.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color-fn.min.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.cjs +0 -5759
- package/lib/colorjs.io/colorjs.io/dist/color.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.global.js +0 -5760
- package/lib/colorjs.io/colorjs.io/dist/color.global.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js +0 -7400
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.global.min.js +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.global.min.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.js +0 -5755
- package/lib/colorjs.io/colorjs.io/dist/color.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs +0 -7399
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.js +0 -7395
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.legacy.min.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.min.cjs +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.min.cjs.map +0 -1
- package/lib/colorjs.io/colorjs.io/dist/color.min.js +0 -2
- package/lib/colorjs.io/colorjs.io/dist/color.min.js.map +0 -1
- package/lib/colorjs.io/colorjs.io/package.json +0 -113
- package/lib/colorjs.io/colorjs.io/src/CATs.js +0 -131
- package/lib/colorjs.io/colorjs.io/src/adapt.js +0 -62
- package/lib/colorjs.io/colorjs.io/src/angles.js +0 -44
- package/lib/colorjs.io/colorjs.io/src/chromaticity.js +0 -33
- package/lib/colorjs.io/colorjs.io/src/clone.js +0 -7
- package/lib/colorjs.io/colorjs.io/src/color.js +0 -201
- package/lib/colorjs.io/colorjs.io/src/contrast/APCA.js +0 -102
- package/lib/colorjs.io/colorjs.io/src/contrast/Lstar.js +0 -17
- package/lib/colorjs.io/colorjs.io/src/contrast/Michelson.js +0 -22
- package/lib/colorjs.io/colorjs.io/src/contrast/WCAG21.js +0 -20
- package/lib/colorjs.io/colorjs.io/src/contrast/Weber.js +0 -27
- package/lib/colorjs.io/colorjs.io/src/contrast/deltaPhi.js +0 -25
- package/lib/colorjs.io/colorjs.io/src/contrast/index.js +0 -6
- package/lib/colorjs.io/colorjs.io/src/contrast.js +0 -28
- package/lib/colorjs.io/colorjs.io/src/defaults.js +0 -12
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE2000.js +0 -179
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaE76.js +0 -7
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaECMC.js +0 -114
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEITP.js +0 -24
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEJz.js +0 -43
- package/lib/colorjs.io/colorjs.io/src/deltaE/deltaEOK.js +0 -19
- package/lib/colorjs.io/colorjs.io/src/deltaE/index.js +0 -27
- package/lib/colorjs.io/colorjs.io/src/deltaE.js +0 -19
- package/lib/colorjs.io/colorjs.io/src/display.js +0 -83
- package/lib/colorjs.io/colorjs.io/src/distance.js +0 -21
- package/lib/colorjs.io/colorjs.io/src/equals.js +0 -10
- package/lib/colorjs.io/colorjs.io/src/get.js +0 -11
- package/lib/colorjs.io/colorjs.io/src/getAll.js +0 -20
- package/lib/colorjs.io/colorjs.io/src/getColor.js +0 -36
- package/lib/colorjs.io/colorjs.io/src/hooks.js +0 -37
- package/lib/colorjs.io/colorjs.io/src/inGamut.js +0 -25
- package/lib/colorjs.io/colorjs.io/src/index-fn.js +0 -28
- package/lib/colorjs.io/colorjs.io/src/index.js +0 -38
- package/lib/colorjs.io/colorjs.io/src/interpolation.js +0 -222
- package/lib/colorjs.io/colorjs.io/src/keywords.js +0 -158
- package/lib/colorjs.io/colorjs.io/src/luminance.js +0 -27
- package/lib/colorjs.io/colorjs.io/src/multiply-matrices.js +0 -44
- package/lib/colorjs.io/colorjs.io/src/parse.js +0 -198
- package/lib/colorjs.io/colorjs.io/src/rgbspace.js +0 -64
- package/lib/colorjs.io/colorjs.io/src/serialize.js +0 -86
- package/lib/colorjs.io/colorjs.io/src/set.js +0 -33
- package/lib/colorjs.io/colorjs.io/src/setAll.js +0 -12
- package/lib/colorjs.io/colorjs.io/src/space-accessors.js +0 -86
- package/lib/colorjs.io/colorjs.io/src/space.js +0 -440
- package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
- package/lib/colorjs.io/colorjs.io/src/spaces/a98rgb.js +0 -11
- package/lib/colorjs.io/colorjs.io/src/spaces/acescc.js +0 -76
- package/lib/colorjs.io/colorjs.io/src/spaces/acescg.js +0 -54
- package/lib/colorjs.io/colorjs.io/src/spaces/cam16.js +0 -362
- package/lib/colorjs.io/colorjs.io/src/spaces/hct.js +0 -157
- package/lib/colorjs.io/colorjs.io/src/spaces/hpluv.js +0 -130
- package/lib/colorjs.io/colorjs.io/src/spaces/hsl.js +0 -91
- package/lib/colorjs.io/colorjs.io/src/spaces/hsluv.js +0 -162
- package/lib/colorjs.io/colorjs.io/src/spaces/hsv.js +0 -65
- package/lib/colorjs.io/colorjs.io/src/spaces/hwb.js +0 -58
- package/lib/colorjs.io/colorjs.io/src/spaces/ictcp.js +0 -133
- package/lib/colorjs.io/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
- package/lib/colorjs.io/colorjs.io/src/spaces/index-fn.js +0 -29
- package/lib/colorjs.io/colorjs.io/src/spaces/index.js +0 -8
- package/lib/colorjs.io/colorjs.io/src/spaces/jzazbz.js +0 -118
- package/lib/colorjs.io/colorjs.io/src/spaces/jzczhz.js +0 -53
- package/lib/colorjs.io/colorjs.io/src/spaces/lab-d65.js +0 -74
- package/lib/colorjs.io/colorjs.io/src/spaces/lab.js +0 -74
- package/lib/colorjs.io/colorjs.io/src/spaces/lch.js +0 -67
- package/lib/colorjs.io/colorjs.io/src/spaces/lchuv.js +0 -68
- package/lib/colorjs.io/colorjs.io/src/spaces/luv.js +0 -85
- package/lib/colorjs.io/colorjs.io/src/spaces/oklab.js +0 -74
- package/lib/colorjs.io/colorjs.io/src/spaces/oklch.js +0 -68
- package/lib/colorjs.io/colorjs.io/src/spaces/p3-linear.js +0 -22
- package/lib/colorjs.io/colorjs.io/src/spaces/p3.js +0 -13
- package/lib/colorjs.io/colorjs.io/src/spaces/prophoto-linear.js +0 -28
- package/lib/colorjs.io/colorjs.io/src/spaces/prophoto.js +0 -19
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2020-linear.js +0 -27
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2020.js +0 -31
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
- package/lib/colorjs.io/colorjs.io/src/spaces/rec2100-pq.js +0 -37
- package/lib/colorjs.io/colorjs.io/src/spaces/srgb-linear.js +0 -30
- package/lib/colorjs.io/colorjs.io/src/spaces/srgb.js +0 -127
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d50.js +0 -12
- package/lib/colorjs.io/colorjs.io/src/spaces/xyz-d65.js +0 -18
- package/lib/colorjs.io/colorjs.io/src/to.js +0 -26
- package/lib/colorjs.io/colorjs.io/src/toGamut.js +0 -310
- package/lib/colorjs.io/colorjs.io/src/util.js +0 -254
- package/lib/colorjs.io/colorjs.io/src/variations.js +0 -14
- package/lib/colorjs.io/colorjs.io/types/index.d.cts +0 -4
- package/lib/colorjs.io/colorjs.io/types/index.d.ts +0 -42
- package/lib/colorjs.io/colorjs.io/types/src/CATs.d.ts +0 -13
- package/lib/colorjs.io/colorjs.io/types/src/adapt.d.ts +0 -12
- package/lib/colorjs.io/colorjs.io/types/src/angles.d.ts +0 -7
- package/lib/colorjs.io/colorjs.io/types/src/chromaticity.d.ts +0 -7
- package/lib/colorjs.io/colorjs.io/types/src/clone.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/color.d.ts +0 -160
- package/lib/colorjs.io/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/contrast/index.d.ts +0 -11
- package/lib/colorjs.io/colorjs.io/types/src/contrast.d.ts +0 -12
- package/lib/colorjs.io/colorjs.io/types/src/defaults.d.ts +0 -2
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
- package/lib/colorjs.io/colorjs.io/types/src/deltaE/index.d.ts +0 -14
- package/lib/colorjs.io/colorjs.io/types/src/deltaE.d.ts +0 -12
- package/lib/colorjs.io/colorjs.io/types/src/display.d.ts +0 -17
- package/lib/colorjs.io/colorjs.io/types/src/distance.d.ts +0 -8
- package/lib/colorjs.io/colorjs.io/types/src/equals.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/get.d.ts +0 -4
- package/lib/colorjs.io/colorjs.io/types/src/getAll.d.ts +0 -7
- package/lib/colorjs.io/colorjs.io/types/src/getColor.d.ts +0 -4
- package/lib/colorjs.io/colorjs.io/types/src/hooks.d.ts +0 -52
- package/lib/colorjs.io/colorjs.io/types/src/inGamut.d.ts +0 -8
- package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.cts +0 -1
- package/lib/colorjs.io/colorjs.io/types/src/index-fn.d.ts +0 -63
- package/lib/colorjs.io/colorjs.io/types/src/index.d.ts +0 -125
- package/lib/colorjs.io/colorjs.io/types/src/interpolation.d.ts +0 -77
- package/lib/colorjs.io/colorjs.io/types/src/keywords.d.ts +0 -2
- package/lib/colorjs.io/colorjs.io/types/src/luminance.d.ts +0 -10
- package/lib/colorjs.io/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
- package/lib/colorjs.io/colorjs.io/types/src/parse.d.ts +0 -16
- package/lib/colorjs.io/colorjs.io/types/src/rgbspace.d.ts +0 -10
- package/lib/colorjs.io/colorjs.io/types/src/serialize.d.ts +0 -13
- package/lib/colorjs.io/colorjs.io/types/src/set.d.ts +0 -18
- package/lib/colorjs.io/colorjs.io/types/src/setAll.d.ts +0 -14
- package/lib/colorjs.io/colorjs.io/types/src/space-accessors.d.ts +0 -1
- package/lib/colorjs.io/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
- package/lib/colorjs.io/colorjs.io/types/src/space.d.ts +0 -143
- package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
- package/lib/colorjs.io/colorjs.io/types/src/spaces/index.d.ts +0 -4
- package/lib/colorjs.io/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lab.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lch.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/luv.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/p3.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
- package/lib/colorjs.io/colorjs.io/types/src/to.d.ts +0 -14
- package/lib/colorjs.io/colorjs.io/types/src/toGamut.d.ts +0 -45
- package/lib/colorjs.io/colorjs.io/types/src/util.d.ts +0 -58
- package/lib/colorjs.io/colorjs.io/types/src/variations.d.ts +0 -5
- package/lib/colorjs.io/dist/color-fn.cjs +0 -5437
- package/lib/colorjs.io/dist/color-fn.cjs.map +0 -1
- package/lib/colorjs.io/dist/color-fn.legacy.cjs +0 -7048
- package/lib/colorjs.io/dist/color-fn.legacy.cjs.map +0 -1
- package/lib/colorjs.io/dist/color-fn.legacy.min.cjs +0 -2
- package/lib/colorjs.io/dist/color-fn.legacy.min.cjs.map +0 -1
- package/lib/colorjs.io/dist/color-fn.min.cjs +0 -2
- package/lib/colorjs.io/dist/color-fn.min.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.cjs +0 -5759
- package/lib/colorjs.io/dist/color.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.global.js +0 -5760
- package/lib/colorjs.io/dist/color.global.js.map +0 -1
- package/lib/colorjs.io/dist/color.global.legacy.js +0 -7400
- package/lib/colorjs.io/dist/color.global.legacy.js.map +0 -1
- package/lib/colorjs.io/dist/color.global.legacy.min.js +0 -2
- package/lib/colorjs.io/dist/color.global.legacy.min.js.map +0 -1
- package/lib/colorjs.io/dist/color.global.min.js +0 -2
- package/lib/colorjs.io/dist/color.global.min.js.map +0 -1
- package/lib/colorjs.io/dist/color.js +0 -5755
- package/lib/colorjs.io/dist/color.js.map +0 -1
- package/lib/colorjs.io/dist/color.legacy.cjs +0 -7399
- package/lib/colorjs.io/dist/color.legacy.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.legacy.js +0 -7395
- package/lib/colorjs.io/dist/color.legacy.js.map +0 -1
- package/lib/colorjs.io/dist/color.legacy.min.cjs +0 -2
- package/lib/colorjs.io/dist/color.legacy.min.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.legacy.min.js +0 -2
- package/lib/colorjs.io/dist/color.legacy.min.js.map +0 -1
- package/lib/colorjs.io/dist/color.min.cjs +0 -2
- package/lib/colorjs.io/dist/color.min.cjs.map +0 -1
- package/lib/colorjs.io/dist/color.min.js +0 -2
- package/lib/colorjs.io/dist/color.min.js.map +0 -1
- package/lib/colorjs.io/package.json +0 -113
- package/lib/colorjs.io/src/CATs.js +0 -131
- package/lib/colorjs.io/src/adapt.js +0 -62
- package/lib/colorjs.io/src/angles.js +0 -44
- package/lib/colorjs.io/src/chromaticity.js +0 -33
- package/lib/colorjs.io/src/clone.js +0 -7
- package/lib/colorjs.io/src/color.js +0 -201
- package/lib/colorjs.io/src/contrast/APCA.js +0 -102
- package/lib/colorjs.io/src/contrast/Lstar.js +0 -17
- package/lib/colorjs.io/src/contrast/Michelson.js +0 -22
- package/lib/colorjs.io/src/contrast/WCAG21.js +0 -20
- package/lib/colorjs.io/src/contrast/Weber.js +0 -27
- package/lib/colorjs.io/src/contrast/deltaPhi.js +0 -25
- package/lib/colorjs.io/src/contrast/index.js +0 -6
- package/lib/colorjs.io/src/contrast.js +0 -28
- package/lib/colorjs.io/src/defaults.js +0 -12
- package/lib/colorjs.io/src/deltaE/deltaE2000.js +0 -179
- package/lib/colorjs.io/src/deltaE/deltaE76.js +0 -7
- package/lib/colorjs.io/src/deltaE/deltaECMC.js +0 -114
- package/lib/colorjs.io/src/deltaE/deltaEHCT.js +0 -51
- package/lib/colorjs.io/src/deltaE/deltaEITP.js +0 -24
- package/lib/colorjs.io/src/deltaE/deltaEJz.js +0 -43
- package/lib/colorjs.io/src/deltaE/deltaEOK.js +0 -19
- package/lib/colorjs.io/src/deltaE/index.js +0 -27
- package/lib/colorjs.io/src/deltaE.js +0 -19
- package/lib/colorjs.io/src/display.js +0 -83
- package/lib/colorjs.io/src/distance.js +0 -21
- package/lib/colorjs.io/src/equals.js +0 -10
- package/lib/colorjs.io/src/get.js +0 -11
- package/lib/colorjs.io/src/getAll.js +0 -20
- package/lib/colorjs.io/src/getColor.js +0 -36
- package/lib/colorjs.io/src/hooks.js +0 -37
- package/lib/colorjs.io/src/inGamut.js +0 -25
- package/lib/colorjs.io/src/index-fn.js +0 -28
- package/lib/colorjs.io/src/index.js +0 -38
- package/lib/colorjs.io/src/interpolation.js +0 -222
- package/lib/colorjs.io/src/keywords.js +0 -158
- package/lib/colorjs.io/src/luminance.js +0 -27
- package/lib/colorjs.io/src/multiply-matrices.js +0 -44
- package/lib/colorjs.io/src/parse.js +0 -198
- package/lib/colorjs.io/src/rgbspace.js +0 -64
- package/lib/colorjs.io/src/serialize.js +0 -86
- package/lib/colorjs.io/src/set.js +0 -33
- package/lib/colorjs.io/src/setAll.js +0 -12
- package/lib/colorjs.io/src/space-accessors.js +0 -86
- package/lib/colorjs.io/src/space.js +0 -440
- package/lib/colorjs.io/src/spaces/a98rgb-linear.js +0 -28
- package/lib/colorjs.io/src/spaces/a98rgb.js +0 -11
- package/lib/colorjs.io/src/spaces/acescc.js +0 -76
- package/lib/colorjs.io/src/spaces/acescg.js +0 -54
- package/lib/colorjs.io/src/spaces/cam16.js +0 -362
- package/lib/colorjs.io/src/spaces/hct.js +0 -157
- package/lib/colorjs.io/src/spaces/hpluv.js +0 -130
- package/lib/colorjs.io/src/spaces/hsl.js +0 -91
- package/lib/colorjs.io/src/spaces/hsluv.js +0 -162
- package/lib/colorjs.io/src/spaces/hsv.js +0 -65
- package/lib/colorjs.io/src/spaces/hwb.js +0 -58
- package/lib/colorjs.io/src/spaces/ictcp.js +0 -133
- package/lib/colorjs.io/src/spaces/index-fn-hdr.js +0 -7
- package/lib/colorjs.io/src/spaces/index-fn.js +0 -29
- package/lib/colorjs.io/src/spaces/index.js +0 -8
- package/lib/colorjs.io/src/spaces/jzazbz.js +0 -118
- package/lib/colorjs.io/src/spaces/jzczhz.js +0 -53
- package/lib/colorjs.io/src/spaces/lab-d65.js +0 -74
- package/lib/colorjs.io/src/spaces/lab.js +0 -74
- package/lib/colorjs.io/src/spaces/lch.js +0 -67
- package/lib/colorjs.io/src/spaces/lchuv.js +0 -68
- package/lib/colorjs.io/src/spaces/luv.js +0 -85
- package/lib/colorjs.io/src/spaces/oklab.js +0 -74
- package/lib/colorjs.io/src/spaces/oklch.js +0 -68
- package/lib/colorjs.io/src/spaces/p3-linear.js +0 -22
- package/lib/colorjs.io/src/spaces/p3.js +0 -13
- package/lib/colorjs.io/src/spaces/prophoto-linear.js +0 -28
- package/lib/colorjs.io/src/spaces/prophoto.js +0 -19
- package/lib/colorjs.io/src/spaces/rec2020-linear.js +0 -27
- package/lib/colorjs.io/src/spaces/rec2020.js +0 -31
- package/lib/colorjs.io/src/spaces/rec2100-hlg.js +0 -49
- package/lib/colorjs.io/src/spaces/rec2100-pq.js +0 -37
- package/lib/colorjs.io/src/spaces/srgb-linear.js +0 -30
- package/lib/colorjs.io/src/spaces/srgb.js +0 -127
- package/lib/colorjs.io/src/spaces/xyz-abs-d65.js +0 -40
- package/lib/colorjs.io/src/spaces/xyz-d50.js +0 -12
- package/lib/colorjs.io/src/spaces/xyz-d65.js +0 -18
- package/lib/colorjs.io/src/to.js +0 -26
- package/lib/colorjs.io/src/toGamut.js +0 -310
- package/lib/colorjs.io/src/util.js +0 -254
- package/lib/colorjs.io/src/variations.js +0 -14
- package/lib/colorjs.io/types/index.d.cts +0 -4
- package/lib/colorjs.io/types/index.d.ts +0 -42
- package/lib/colorjs.io/types/src/CATs.d.ts +0 -13
- package/lib/colorjs.io/types/src/adapt.d.ts +0 -12
- package/lib/colorjs.io/types/src/angles.d.ts +0 -7
- package/lib/colorjs.io/types/src/chromaticity.d.ts +0 -7
- package/lib/colorjs.io/types/src/clone.d.ts +0 -3
- package/lib/colorjs.io/types/src/color.d.ts +0 -160
- package/lib/colorjs.io/types/src/contrast/APCA.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/Lstar.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/Michelson.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/WCAG21.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/Weber.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/deltaPhi.d.ts +0 -5
- package/lib/colorjs.io/types/src/contrast/index.d.ts +0 -11
- package/lib/colorjs.io/types/src/contrast.d.ts +0 -12
- package/lib/colorjs.io/types/src/defaults.d.ts +0 -2
- package/lib/colorjs.io/types/src/deltaE/deltaE2000.d.ts +0 -11
- package/lib/colorjs.io/types/src/deltaE/deltaE76.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/deltaECMC.d.ts +0 -9
- package/lib/colorjs.io/types/src/deltaE/deltaEHCT.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/deltaEITP.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/deltaEJz.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/deltaEOK.d.ts +0 -5
- package/lib/colorjs.io/types/src/deltaE/index.d.ts +0 -14
- package/lib/colorjs.io/types/src/deltaE.d.ts +0 -12
- package/lib/colorjs.io/types/src/display.d.ts +0 -17
- package/lib/colorjs.io/types/src/distance.d.ts +0 -8
- package/lib/colorjs.io/types/src/equals.d.ts +0 -3
- package/lib/colorjs.io/types/src/get.d.ts +0 -4
- package/lib/colorjs.io/types/src/getAll.d.ts +0 -7
- package/lib/colorjs.io/types/src/getColor.d.ts +0 -4
- package/lib/colorjs.io/types/src/hooks.d.ts +0 -52
- package/lib/colorjs.io/types/src/inGamut.d.ts +0 -8
- package/lib/colorjs.io/types/src/index-fn.d.cts +0 -1
- package/lib/colorjs.io/types/src/index-fn.d.ts +0 -63
- package/lib/colorjs.io/types/src/index.d.ts +0 -125
- package/lib/colorjs.io/types/src/interpolation.d.ts +0 -77
- package/lib/colorjs.io/types/src/keywords.d.ts +0 -2
- package/lib/colorjs.io/types/src/luminance.d.ts +0 -10
- package/lib/colorjs.io/types/src/multiply-matrices.d.ts +0 -9
- package/lib/colorjs.io/types/src/parse.d.ts +0 -16
- package/lib/colorjs.io/types/src/rgbspace.d.ts +0 -10
- package/lib/colorjs.io/types/src/serialize.d.ts +0 -13
- package/lib/colorjs.io/types/src/set.d.ts +0 -18
- package/lib/colorjs.io/types/src/setAll.d.ts +0 -14
- package/lib/colorjs.io/types/src/space-accessors.d.ts +0 -1
- package/lib/colorjs.io/types/src/space-coord-accessors.d.ts +0 -69
- package/lib/colorjs.io/types/src/space.d.ts +0 -143
- package/lib/colorjs.io/types/src/spaces/a98rgb-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/a98rgb.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/acescc.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/acescg.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hpluv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hsl.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hsluv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hsv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/hwb.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/ictcp.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/index-fn-hdr.d.ts +0 -9
- package/lib/colorjs.io/types/src/spaces/index-fn.d.ts +0 -29
- package/lib/colorjs.io/types/src/spaces/index.d.ts +0 -4
- package/lib/colorjs.io/types/src/spaces/jzazbz.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/jzczhz.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/lab-d65.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/lab.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/lch.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/lchuv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/luv.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/oklab.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/oklch.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/p3-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/p3.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/prophoto-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/prophoto.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/rec2020-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/rec2020.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/rec2100-hlg.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/rec2100-pq.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/srgb-linear.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/srgb.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/xyz-abs-d65.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/xyz-d50.d.ts +0 -3
- package/lib/colorjs.io/types/src/spaces/xyz-d65.d.ts +0 -3
- package/lib/colorjs.io/types/src/to.d.ts +0 -14
- package/lib/colorjs.io/types/src/toGamut.d.ts +0 -45
- package/lib/colorjs.io/types/src/util.d.ts +0 -58
- package/lib/colorjs.io/types/src/variations.d.ts +0 -5
- package/src/color-gamut/README.md +0 -75
- package/src/color-gamut/color-gamut.css +0 -32
- package/src/color-gamut/color-gamut.js +0 -172
- package/src/common/color.js +0 -12
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
import { isNone, skipNone } from "./util.js";
|
|
2
|
-
import defaults from "./defaults.js";
|
|
3
|
-
import to from "./to.js";
|
|
4
|
-
import serialize from "./serialize.js";
|
|
5
|
-
import clone from "./clone.js";
|
|
6
|
-
import REC2020 from "./spaces/rec2020.js";
|
|
7
|
-
import P3 from "./spaces/p3.js";
|
|
8
|
-
import Lab from "./spaces/lab.js";
|
|
9
|
-
import sRGB from "./spaces/srgb.js";
|
|
10
|
-
|
|
11
|
-
// Default space for CSS output. Code in Color.js makes this wider if there's a DOM available
|
|
12
|
-
defaults.display_space = sRGB;
|
|
13
|
-
|
|
14
|
-
let supportsNone;
|
|
15
|
-
|
|
16
|
-
if (typeof CSS !== "undefined" && CSS.supports) {
|
|
17
|
-
// Find widest supported color space for CSS
|
|
18
|
-
for (let space of [Lab, REC2020, P3]) {
|
|
19
|
-
let coords = space.getMinCoords();
|
|
20
|
-
let color = {space, coords, alpha: 1};
|
|
21
|
-
let str = serialize(color);
|
|
22
|
-
|
|
23
|
-
if (CSS.supports("color", str)) {
|
|
24
|
-
defaults.display_space = space;
|
|
25
|
-
break;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Returns a serialization of the color that can actually be displayed in the browser.
|
|
32
|
-
* If the default serialization can be displayed, it is returned.
|
|
33
|
-
* Otherwise, the color is converted to Lab, REC2020, or P3, whichever is the widest supported.
|
|
34
|
-
* In Node.js, this is basically equivalent to `serialize()` but returns a `String` object instead.
|
|
35
|
-
*
|
|
36
|
-
* @export
|
|
37
|
-
* @param {{space, coords} | Color | string} color
|
|
38
|
-
* @param {*} [options={}] Options to be passed to serialize()
|
|
39
|
-
* @param {ColorSpace | string} [options.space = defaults.display_space] Color space to use for serialization if default is not supported
|
|
40
|
-
* @returns {String} String object containing the serialized color with a color property containing the converted color (or the original, if no conversion was necessary)
|
|
41
|
-
*/
|
|
42
|
-
export default function display (color, {space = defaults.display_space, ...options} = {}) {
|
|
43
|
-
let ret = serialize(color, options);
|
|
44
|
-
|
|
45
|
-
if (typeof CSS === "undefined" || CSS.supports("color", ret) || !defaults.display_space) {
|
|
46
|
-
ret = new String(ret);
|
|
47
|
-
ret.color = color;
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
// If we're here, what we were about to output is not supported
|
|
51
|
-
let fallbackColor = color;
|
|
52
|
-
|
|
53
|
-
// First, check if the culprit is none values
|
|
54
|
-
let hasNone = color.coords.some(isNone) || isNone(color.alpha);
|
|
55
|
-
|
|
56
|
-
if (hasNone) {
|
|
57
|
-
// Does the browser support none values?
|
|
58
|
-
if (!(supportsNone ??= CSS.supports("color", "hsl(none 50% 50%)"))) {
|
|
59
|
-
// Nope, try again without none
|
|
60
|
-
fallbackColor = clone(color);
|
|
61
|
-
fallbackColor.coords = fallbackColor.coords.map(skipNone);
|
|
62
|
-
fallbackColor.alpha = skipNone(fallbackColor.alpha);
|
|
63
|
-
|
|
64
|
-
ret = serialize(fallbackColor, options);
|
|
65
|
-
|
|
66
|
-
if (CSS.supports("color", ret)) {
|
|
67
|
-
// We're done, now it's supported
|
|
68
|
-
ret = new String(ret);
|
|
69
|
-
ret.color = fallbackColor;
|
|
70
|
-
return ret;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// If we're here, the color function is not supported
|
|
76
|
-
// Fall back to fallback space
|
|
77
|
-
fallbackColor = to(fallbackColor, space);
|
|
78
|
-
ret = new String(serialize(fallbackColor, options));
|
|
79
|
-
ret.color = fallbackColor;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return ret;
|
|
83
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import ColorSpace from "./space.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Euclidean distance of colors in an arbitrary color space
|
|
5
|
-
*/
|
|
6
|
-
export default function distance (color1, color2, space = "lab") {
|
|
7
|
-
space = ColorSpace.get(space);
|
|
8
|
-
|
|
9
|
-
// Assume getColor() is called on color in space.from()
|
|
10
|
-
let coords1 = space.from(color1);
|
|
11
|
-
let coords2 = space.from(color2);
|
|
12
|
-
|
|
13
|
-
return Math.sqrt(coords1.reduce((acc, c1, i) => {
|
|
14
|
-
let c2 = coords2[i];
|
|
15
|
-
if (isNaN(c1) || isNaN(c2)) {
|
|
16
|
-
return acc;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return acc + (c2 - c1) ** 2;
|
|
20
|
-
}, 0));
|
|
21
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import getColor from "./getColor.js";
|
|
2
|
-
|
|
3
|
-
export default function equals (color1, color2) {
|
|
4
|
-
color1 = getColor(color1);
|
|
5
|
-
color2 = getColor(color2);
|
|
6
|
-
|
|
7
|
-
return color1.space === color2.space
|
|
8
|
-
&& color1.alpha === color2.alpha
|
|
9
|
-
&& color1.coords.every((c, i) => c === color2.coords[i]);
|
|
10
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import ColorSpace from "./space.js";
|
|
2
|
-
import getAll from "./getAll.js";
|
|
3
|
-
import getColor from "./getColor.js";
|
|
4
|
-
|
|
5
|
-
export default function get (color, prop) {
|
|
6
|
-
color = getColor(color);
|
|
7
|
-
|
|
8
|
-
let {space, index} = ColorSpace.resolveCoord(prop, color.space);
|
|
9
|
-
let coords = getAll(color, space);
|
|
10
|
-
return coords[index];
|
|
11
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import ColorSpace from "./space.js";
|
|
2
|
-
import getColor from "./getColor.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Get the coordinates of a color in any color space
|
|
6
|
-
* @param {Color} color
|
|
7
|
-
* @param {string | ColorSpace} [space = color.space] The color space to convert to. Defaults to the color's current space
|
|
8
|
-
* @returns {number[]} The color coordinates in the given color space
|
|
9
|
-
*/
|
|
10
|
-
export default function getAll (color, space) {
|
|
11
|
-
color = getColor(color);
|
|
12
|
-
|
|
13
|
-
if (!space || color.space.equals(space)) {
|
|
14
|
-
// No conversion needed
|
|
15
|
-
return color.coords.slice();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
space = ColorSpace.get(space);
|
|
19
|
-
return space.from(color);
|
|
20
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import ColorSpace from "./space.js";
|
|
2
|
-
import {isString} from "./util.js";
|
|
3
|
-
import parse from "./parse.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Resolves a color reference (object or string) to a plain color object
|
|
7
|
-
* @param {Color | {space, coords, alpha} | string | Array<Color | {space, coords, alpha} | string> } color
|
|
8
|
-
* @returns {{space, coords, alpha} | Array<{space, coords, alpha}}>
|
|
9
|
-
*/
|
|
10
|
-
export default function getColor (color) {
|
|
11
|
-
if (Array.isArray(color)) {
|
|
12
|
-
return color.map(getColor);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
if (!color) {
|
|
16
|
-
throw new TypeError("Empty color reference");
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (isString(color)) {
|
|
20
|
-
color = parse(color);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Object fixup
|
|
24
|
-
let space = color.space || color.spaceId;
|
|
25
|
-
|
|
26
|
-
if (!(space instanceof ColorSpace)) {
|
|
27
|
-
// Convert string id to color space object
|
|
28
|
-
color.space = ColorSpace.get(space);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (color.alpha === undefined) {
|
|
32
|
-
color.alpha = 1;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return color;
|
|
36
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A class for adding deep extensibility to any piece of JS code
|
|
3
|
-
*/
|
|
4
|
-
export class Hooks {
|
|
5
|
-
add (name, callback, first) {
|
|
6
|
-
if (typeof arguments[0] != "string") {
|
|
7
|
-
// Multiple hooks
|
|
8
|
-
for (var name in arguments[0]) {
|
|
9
|
-
this.add(name, arguments[0][name], arguments[1]);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
(Array.isArray(name) ? name : [name]).forEach(function (name) {
|
|
16
|
-
this[name] = this[name] || [];
|
|
17
|
-
|
|
18
|
-
if (callback) {
|
|
19
|
-
this[name][first ? "unshift" : "push"](callback);
|
|
20
|
-
}
|
|
21
|
-
}, this);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
run (name, env) {
|
|
25
|
-
this[name] = this[name] || [];
|
|
26
|
-
this[name].forEach(function (callback) {
|
|
27
|
-
callback.call(env && env.context ? env.context : env, env);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* The instance of {@link Hooks} used throughout Color.js
|
|
34
|
-
*/
|
|
35
|
-
const hooks = new Hooks();
|
|
36
|
-
|
|
37
|
-
export default hooks;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import ColorSpace from "./space.js";
|
|
2
|
-
import getColor from "./getColor.js";
|
|
3
|
-
|
|
4
|
-
const ε = .000075;
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Check if a color is in gamut of either its own or another color space
|
|
8
|
-
* @return {Boolean} Is the color in gamut?
|
|
9
|
-
*/
|
|
10
|
-
export default function inGamut (color, space, {epsilon = ε} = {}) {
|
|
11
|
-
color = getColor(color);
|
|
12
|
-
|
|
13
|
-
if (!space) {
|
|
14
|
-
space = color.space;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
space = ColorSpace.get(space);
|
|
18
|
-
let coords = color.coords;
|
|
19
|
-
|
|
20
|
-
if (space !== color.space) {
|
|
21
|
-
coords = space.from(color);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return space.inGamut(coords, {epsilon});
|
|
25
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export {default as ColorSpace} from "./space.js";
|
|
2
|
-
export {default as RGBColorSpace} from "./rgbspace.js";
|
|
3
|
-
export {default as hooks, Hooks} from "./hooks.js";
|
|
4
|
-
export {default as defaults} from "./defaults.js";
|
|
5
|
-
export {default as getColor} from "./getColor.js";
|
|
6
|
-
export {default as get} from "./get.js";
|
|
7
|
-
export {default as getAll} from "./getAll.js";
|
|
8
|
-
export {default as set} from "./set.js";
|
|
9
|
-
export {default as setAll} from "./setAll.js";
|
|
10
|
-
export {default as parse} from "./parse.js";
|
|
11
|
-
export {default as to} from "./to.js";
|
|
12
|
-
export {default as serialize} from "./serialize.js";
|
|
13
|
-
export {default as display} from "./display.js";
|
|
14
|
-
export {default as inGamut} from "./inGamut.js";
|
|
15
|
-
export {default as toGamut, toGamutCSS} from "./toGamut.js";
|
|
16
|
-
export {default as distance} from "./distance.js";
|
|
17
|
-
export {default as equals} from "./equals.js";
|
|
18
|
-
export {default as contrast} from "./contrast.js";
|
|
19
|
-
export {default as clone} from "./clone.js";
|
|
20
|
-
export { getLuminance, setLuminance } from "./luminance.js";
|
|
21
|
-
export {uv, xy} from "./chromaticity.js";
|
|
22
|
-
export * from "./contrast/index.js";
|
|
23
|
-
export {default as deltaE} from "./deltaE.js";
|
|
24
|
-
export * from "./deltaE/index.js";
|
|
25
|
-
export {default as deltaEMethods} from "./deltaE/index.js";
|
|
26
|
-
export * from "./variations.js";
|
|
27
|
-
export { mix, steps, range, isRange } from "./interpolation.js";
|
|
28
|
-
export * from "./spaces/index-fn.js";
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// Import all modules of Color.js
|
|
2
|
-
import Color from "./color.js";
|
|
3
|
-
|
|
4
|
-
// Import all color spaces
|
|
5
|
-
import "./spaces/index.js";
|
|
6
|
-
|
|
7
|
-
// Import all DeltaE methods
|
|
8
|
-
import deltaE from "./deltaE.js";
|
|
9
|
-
import deltaEMethods from "./deltaE/index.js";
|
|
10
|
-
|
|
11
|
-
Color.extend(deltaEMethods);
|
|
12
|
-
Color.extend({deltaE});
|
|
13
|
-
Object.assign(Color, {deltaEMethods});
|
|
14
|
-
|
|
15
|
-
// Import optional modules
|
|
16
|
-
import * as variations from "./variations.js";
|
|
17
|
-
Color.extend(variations);
|
|
18
|
-
|
|
19
|
-
import contrast from "./contrast.js";
|
|
20
|
-
Color.extend({contrast});
|
|
21
|
-
|
|
22
|
-
import * as chromaticity from "./chromaticity.js";
|
|
23
|
-
Color.extend(chromaticity);
|
|
24
|
-
|
|
25
|
-
import * as luminance from "./luminance.js";
|
|
26
|
-
Color.extend(luminance);
|
|
27
|
-
|
|
28
|
-
import * as interpolation from "./interpolation.js";
|
|
29
|
-
Color.extend(interpolation);
|
|
30
|
-
|
|
31
|
-
import * as contrastMethods from "./contrast/index.js";
|
|
32
|
-
Color.extend(contrastMethods);
|
|
33
|
-
|
|
34
|
-
import "./CATs.js";
|
|
35
|
-
import "./space-accessors.js";
|
|
36
|
-
|
|
37
|
-
// Re-export everything
|
|
38
|
-
export default Color;
|
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Functions related to color interpolation
|
|
3
|
-
*/
|
|
4
|
-
import ColorSpace from "./space.js";
|
|
5
|
-
import {type, interpolate} from "./util.js";
|
|
6
|
-
import getColor from "./getColor.js";
|
|
7
|
-
import clone from "./clone.js";
|
|
8
|
-
import to from "./to.js";
|
|
9
|
-
import toGamut from "./toGamut.js";
|
|
10
|
-
import get from "./get.js";
|
|
11
|
-
import set from "./set.js";
|
|
12
|
-
import defaults from "./defaults.js";
|
|
13
|
-
import * as angles from "./angles.js";
|
|
14
|
-
import deltaE from "./deltaE.js";
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Return an intermediate color between two colors
|
|
18
|
-
* Signatures: mix(c1, c2, p, options)
|
|
19
|
-
* mix(c1, c2, options)
|
|
20
|
-
* mix(color)
|
|
21
|
-
* @param {Color | string} c1 The first color
|
|
22
|
-
* @param {Color | string} [c2] The second color
|
|
23
|
-
* @param {number} [p=.5] A 0-1 percentage where 0 is c1 and 1 is c2
|
|
24
|
-
* @param {Object} [o={}]
|
|
25
|
-
* @return {Color}
|
|
26
|
-
*/
|
|
27
|
-
export function mix (c1, c2, p = .5, o = {}) {
|
|
28
|
-
[c1, c2] = [getColor(c1), getColor(c2)];
|
|
29
|
-
|
|
30
|
-
if (type(p) === "object") {
|
|
31
|
-
[p, o] = [.5, p];
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
let r = range(c1, c2, o);
|
|
35
|
-
return r(p);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
* @param {Color | string | Function} c1 The first color or a range
|
|
41
|
-
* @param {Color | string} [c2] The second color if c1 is not a range
|
|
42
|
-
* @param {Object} [options={}]
|
|
43
|
-
* @return {Color[]}
|
|
44
|
-
*/
|
|
45
|
-
export function steps (c1, c2, options = {}) {
|
|
46
|
-
let colorRange;
|
|
47
|
-
|
|
48
|
-
if (isRange(c1)) {
|
|
49
|
-
// Tweaking existing range
|
|
50
|
-
[colorRange, options] = [c1, c2];
|
|
51
|
-
[c1, c2] = colorRange.rangeArgs.colors;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
let {
|
|
55
|
-
maxDeltaE, deltaEMethod,
|
|
56
|
-
steps = 2, maxSteps = 1000,
|
|
57
|
-
...rangeOptions
|
|
58
|
-
} = options;
|
|
59
|
-
|
|
60
|
-
if (!colorRange) {
|
|
61
|
-
[c1, c2] = [getColor(c1), getColor(c2)];
|
|
62
|
-
colorRange = range(c1, c2, rangeOptions);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
let totalDelta = deltaE(c1, c2);
|
|
66
|
-
let actualSteps = maxDeltaE > 0 ? Math.max(steps, Math.ceil(totalDelta / maxDeltaE) + 1) : steps;
|
|
67
|
-
let ret = [];
|
|
68
|
-
|
|
69
|
-
if (maxSteps !== undefined) {
|
|
70
|
-
actualSteps = Math.min(actualSteps, maxSteps);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (actualSteps === 1) {
|
|
74
|
-
ret = [{p: .5, color: colorRange(.5)}];
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
let step = 1 / (actualSteps - 1);
|
|
78
|
-
ret = Array.from({length: actualSteps}, (_, i) => {
|
|
79
|
-
let p = i * step;
|
|
80
|
-
return {p, color: colorRange(p)};
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (maxDeltaE > 0) {
|
|
85
|
-
// Iterate over all stops and find max deltaE
|
|
86
|
-
let maxDelta = ret.reduce((acc, cur, i) => {
|
|
87
|
-
if (i === 0) {
|
|
88
|
-
return 0;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
let ΔΕ = deltaE(cur.color, ret[i - 1].color, deltaEMethod);
|
|
92
|
-
return Math.max(acc, ΔΕ);
|
|
93
|
-
}, 0);
|
|
94
|
-
|
|
95
|
-
while (maxDelta > maxDeltaE) {
|
|
96
|
-
// Insert intermediate stops and measure maxDelta again
|
|
97
|
-
// We need to do this for all pairs, otherwise the midpoint shifts
|
|
98
|
-
maxDelta = 0;
|
|
99
|
-
|
|
100
|
-
for (let i = 1; (i < ret.length) && (ret.length < maxSteps); i++) {
|
|
101
|
-
let prev = ret[i - 1];
|
|
102
|
-
let cur = ret[i];
|
|
103
|
-
|
|
104
|
-
let p = (cur.p + prev.p) / 2;
|
|
105
|
-
let color = colorRange(p);
|
|
106
|
-
maxDelta = Math.max(maxDelta, deltaE(color, prev.color), deltaE(color, cur.color));
|
|
107
|
-
ret.splice(i, 0, {p, color: colorRange(p)});
|
|
108
|
-
i++;
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
ret = ret.map(a => a.color);
|
|
114
|
-
|
|
115
|
-
return ret;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Interpolate to color2 and return a function that takes a 0-1 percentage
|
|
120
|
-
* @param {Color | string | Function} color1 The first color or an existing range
|
|
121
|
-
* @param {Color | string} [color2] If color1 is a color, this is the second color
|
|
122
|
-
* @param {Object} [options={}]
|
|
123
|
-
* @returns {Function} A function that takes a 0-1 percentage and returns a color
|
|
124
|
-
*/
|
|
125
|
-
export function range (color1, color2, options = {}) {
|
|
126
|
-
if (isRange(color1)) {
|
|
127
|
-
// Tweaking existing range
|
|
128
|
-
let [r, options] = [color1, color2];
|
|
129
|
-
|
|
130
|
-
return range(...r.rangeArgs.colors, {...r.rangeArgs.options, ...options});
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
let {space, outputSpace, progression, premultiplied} = options;
|
|
134
|
-
|
|
135
|
-
color1 = getColor(color1);
|
|
136
|
-
color2 = getColor(color2);
|
|
137
|
-
|
|
138
|
-
// Make sure we're working on copies of these colors
|
|
139
|
-
color1 = clone(color1);
|
|
140
|
-
color2 = clone(color2);
|
|
141
|
-
|
|
142
|
-
let rangeArgs = {colors: [color1, color2], options};
|
|
143
|
-
|
|
144
|
-
if (space) {
|
|
145
|
-
space = ColorSpace.get(space);
|
|
146
|
-
}
|
|
147
|
-
else {
|
|
148
|
-
space = ColorSpace.registry[defaults.interpolationSpace] || color1.space;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
outputSpace = outputSpace ? ColorSpace.get(outputSpace) : space;
|
|
152
|
-
|
|
153
|
-
color1 = to(color1, space);
|
|
154
|
-
color2 = to(color2, space);
|
|
155
|
-
|
|
156
|
-
// Gamut map to avoid areas of flat color
|
|
157
|
-
color1 = toGamut(color1);
|
|
158
|
-
color2 = toGamut(color2);
|
|
159
|
-
|
|
160
|
-
// Handle hue interpolation
|
|
161
|
-
// See https://github.com/w3c/csswg-drafts/issues/4735#issuecomment-635741840
|
|
162
|
-
if (space.coords.h && space.coords.h.type === "angle") {
|
|
163
|
-
let arc = options.hue = options.hue || "shorter";
|
|
164
|
-
|
|
165
|
-
let hue = [space, "h"];
|
|
166
|
-
let [θ1, θ2] = [get(color1, hue), get(color2, hue)];
|
|
167
|
-
// Undefined hues must be evaluated before hue fix-up to properly
|
|
168
|
-
// calculate hue arcs between undefined and defined hues.
|
|
169
|
-
// See https://github.com/w3c/csswg-drafts/issues/9436#issuecomment-1746957545
|
|
170
|
-
if (isNaN(θ1) && !isNaN(θ2)) {
|
|
171
|
-
θ1 = θ2;
|
|
172
|
-
}
|
|
173
|
-
else if (isNaN(θ2) && !isNaN(θ1)) {
|
|
174
|
-
θ2 = θ1;
|
|
175
|
-
}
|
|
176
|
-
[θ1, θ2] = angles.adjust(arc, [θ1, θ2]);
|
|
177
|
-
set(color1, hue, θ1);
|
|
178
|
-
set(color2, hue, θ2);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
if (premultiplied) {
|
|
182
|
-
// not coping with polar spaces yet
|
|
183
|
-
color1.coords = color1.coords.map(c => c * color1.alpha);
|
|
184
|
-
color2.coords = color2.coords.map(c => c * color2.alpha);
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
return Object.assign(p => {
|
|
188
|
-
p = progression ? progression(p) : p;
|
|
189
|
-
let coords = color1.coords.map((start, i) => {
|
|
190
|
-
let end = color2.coords[i];
|
|
191
|
-
return interpolate(start, end, p);
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
let alpha = interpolate(color1.alpha, color2.alpha, p);
|
|
195
|
-
let ret = {space, coords, alpha};
|
|
196
|
-
|
|
197
|
-
if (premultiplied) {
|
|
198
|
-
// undo premultiplication
|
|
199
|
-
ret.coords = ret.coords.map(c => c / alpha);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
if (outputSpace !== space) {
|
|
203
|
-
ret = to(ret, outputSpace);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
return ret;
|
|
207
|
-
}, {
|
|
208
|
-
rangeArgs,
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
export function isRange (val) {
|
|
213
|
-
return type(val) === "function" && !!val.rangeArgs;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
defaults.interpolationSpace = "lab";
|
|
217
|
-
|
|
218
|
-
export function register (Color) {
|
|
219
|
-
Color.defineFunction("mix", mix, {returns: "color"});
|
|
220
|
-
Color.defineFunction("range", range, {returns: "function<color>"});
|
|
221
|
-
Color.defineFunction("steps", steps, {returns: "array<color>"});
|
|
222
|
-
}
|