@terrazzo/plugin-tailwind 0.2.0 → 0.3.0
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/CHANGELOG.md +40 -0
- package/dist/index.js +294 -62
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# @terrazzo/plugin-tailwind
|
|
2
2
|
|
|
3
|
+
## 0.3.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#507](https://github.com/terrazzoapp/terrazzo/pull/507) [`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a) Thanks [@drwpow](https://github.com/drwpow)! - ⚠️ Breaking change: remove HSV as a supported colorSpace, because it’s absent from CSS Color Module 4
|
|
8
|
+
|
|
9
|
+
- [#507](https://github.com/terrazzoapp/terrazzo/pull/507) [`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a) Thanks [@drwpow](https://github.com/drwpow)! - ⚠️ Breaking change: align color token ranges to CSS Color Module 4. This results in breaking changes to HSL and HWB, which normalize to `0 - 100`, rather than `0 - 1`:
|
|
10
|
+
|
|
11
|
+
```diff
|
|
12
|
+
{
|
|
13
|
+
"colorSpace": "hsl",
|
|
14
|
+
- "components": [270, 0.5, 0.4]
|
|
15
|
+
+ "components": [270, 50, 40]
|
|
16
|
+
}
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- [#507](https://github.com/terrazzoapp/terrazzo/pull/507) [`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a) Thanks [@drwpow](https://github.com/drwpow)! - Fix a98-rgb colorSpace, accidentally referring to it as "a98"
|
|
24
|
+
|
|
25
|
+
- Updated dependencies [[`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a), [`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a), [`0060100`](https://github.com/terrazzoapp/terrazzo/commit/00601002a731dc009fb4ef2b438a01b087325a1a)]:
|
|
26
|
+
- @terrazzo/token-tools@0.10.0
|
|
27
|
+
- @terrazzo/cli@0.10.0
|
|
28
|
+
- @terrazzo/plugin-css@0.10.0
|
|
29
|
+
|
|
30
|
+
## 0.2.1
|
|
31
|
+
|
|
32
|
+
### Patch Changes
|
|
33
|
+
|
|
34
|
+
- [#502](https://github.com/terrazzoapp/terrazzo/pull/502) [`c9792bd`](https://github.com/terrazzoapp/terrazzo/commit/c9792bdef27aa2edab3f9f74b37a794f0a14da59) Thanks [@drwpow](https://github.com/drwpow)! - Fix bug in parsing LAB colors
|
|
35
|
+
|
|
36
|
+
- [#502](https://github.com/terrazzoapp/terrazzo/pull/502) [`c9792bd`](https://github.com/terrazzoapp/terrazzo/commit/c9792bdef27aa2edab3f9f74b37a794f0a14da59) Thanks [@drwpow](https://github.com/drwpow)! - Add support for lab65 colors (not technically part of CSS Module 4 spec, but a nice convenience)
|
|
37
|
+
|
|
38
|
+
- Updated dependencies [[`c9792bd`](https://github.com/terrazzoapp/terrazzo/commit/c9792bdef27aa2edab3f9f74b37a794f0a14da59), [`c9792bd`](https://github.com/terrazzoapp/terrazzo/commit/c9792bdef27aa2edab3f9f74b37a794f0a14da59)]:
|
|
39
|
+
- @terrazzo/token-tools@0.9.1
|
|
40
|
+
- @terrazzo/cli@0.9.1
|
|
41
|
+
- @terrazzo/plugin-css@0.9.1
|
|
42
|
+
|
|
3
43
|
## 0.2.0
|
|
4
44
|
|
|
5
45
|
### Minor Changes
|
package/dist/index.js
CHANGED
|
@@ -231,28 +231,28 @@ const modes = {};
|
|
|
231
231
|
const parsers = [];
|
|
232
232
|
const colorProfiles = {};
|
|
233
233
|
const identity = (v) => v;
|
|
234
|
-
const useMode = (definition$
|
|
235
|
-
converters$1[definition$
|
|
236
|
-
...converters$1[definition$
|
|
237
|
-
...definition$
|
|
234
|
+
const useMode = (definition$16) => {
|
|
235
|
+
converters$1[definition$16.mode] = {
|
|
236
|
+
...converters$1[definition$16.mode],
|
|
237
|
+
...definition$16.toMode
|
|
238
238
|
};
|
|
239
|
-
Object.keys(definition$
|
|
240
|
-
if (!converters$1[k$
|
|
241
|
-
converters$1[k$
|
|
239
|
+
Object.keys(definition$16.fromMode || {}).forEach((k$3) => {
|
|
240
|
+
if (!converters$1[k$3]) converters$1[k$3] = {};
|
|
241
|
+
converters$1[k$3][definition$16.mode] = definition$16.fromMode[k$3];
|
|
242
242
|
});
|
|
243
|
-
if (!definition$
|
|
244
|
-
if (!definition$
|
|
245
|
-
definition$
|
|
246
|
-
if (definition$
|
|
247
|
-
if (!definition$
|
|
248
|
-
if (typeof definition$
|
|
249
|
-
if (!definition$
|
|
243
|
+
if (!definition$16.ranges) definition$16.ranges = {};
|
|
244
|
+
if (!definition$16.difference) definition$16.difference = {};
|
|
245
|
+
definition$16.channels.forEach((channel) => {
|
|
246
|
+
if (definition$16.ranges[channel] === void 0) definition$16.ranges[channel] = [0, 1];
|
|
247
|
+
if (!definition$16.interpolate[channel]) throw new Error(`Missing interpolator for: ${channel}`);
|
|
248
|
+
if (typeof definition$16.interpolate[channel] === "function") definition$16.interpolate[channel] = { use: definition$16.interpolate[channel] };
|
|
249
|
+
if (!definition$16.interpolate[channel].fixup) definition$16.interpolate[channel].fixup = identity;
|
|
250
250
|
});
|
|
251
|
-
modes[definition$
|
|
252
|
-
(definition$
|
|
253
|
-
useParser(parser, definition$
|
|
251
|
+
modes[definition$16.mode] = definition$16;
|
|
252
|
+
(definition$16.parse || []).forEach((parser) => {
|
|
253
|
+
useParser(parser, definition$16.mode);
|
|
254
254
|
});
|
|
255
|
-
return converter_default(definition$
|
|
255
|
+
return converter_default(definition$16.mode);
|
|
256
256
|
};
|
|
257
257
|
const getMode = (mode) => modes[mode];
|
|
258
258
|
const useParser = (parser, mode) => {
|
|
@@ -567,7 +567,7 @@ const fixupAlpha = (arr) => {
|
|
|
567
567
|
});
|
|
568
568
|
return some_defined ? res : arr;
|
|
569
569
|
};
|
|
570
|
-
const definition$
|
|
570
|
+
const definition$15 = {
|
|
571
571
|
mode: "rgb",
|
|
572
572
|
channels: [
|
|
573
573
|
"r",
|
|
@@ -605,7 +605,7 @@ const definition$14 = {
|
|
|
605
605
|
b: 0
|
|
606
606
|
}
|
|
607
607
|
};
|
|
608
|
-
var definition_default$12 = definition$
|
|
608
|
+
var definition_default$12 = definition$15;
|
|
609
609
|
const linearize$2 = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);
|
|
610
610
|
const convertA98ToXyz65 = (a98) => {
|
|
611
611
|
let r$1 = linearize$2(a98.r);
|
|
@@ -636,7 +636,7 @@ const convertXyz65ToA98 = ({ x, y, z, alpha }) => {
|
|
|
636
636
|
return res;
|
|
637
637
|
};
|
|
638
638
|
var convertXyz65ToA98_default = convertXyz65ToA98;
|
|
639
|
-
const fn$
|
|
639
|
+
const fn$3 = (c$1 = 0) => {
|
|
640
640
|
const abs = Math.abs(c$1);
|
|
641
641
|
if (abs <= .04045) return c$1 / 12.92;
|
|
642
642
|
return (Math.sign(c$1) || 1) * Math.pow((abs + .055) / 1.055, 2.4);
|
|
@@ -644,9 +644,9 @@ const fn$2 = (c$1 = 0) => {
|
|
|
644
644
|
const convertRgbToLrgb = ({ r: r$1, g, b, alpha }) => {
|
|
645
645
|
let res = {
|
|
646
646
|
mode: "lrgb",
|
|
647
|
-
r: fn$
|
|
648
|
-
g: fn$
|
|
649
|
-
b: fn$
|
|
647
|
+
r: fn$3(r$1),
|
|
648
|
+
g: fn$3(g),
|
|
649
|
+
b: fn$3(b)
|
|
650
650
|
};
|
|
651
651
|
if (alpha !== void 0) res.alpha = alpha;
|
|
652
652
|
return res;
|
|
@@ -664,7 +664,7 @@ const convertRgbToXyz65 = (rgb$2) => {
|
|
|
664
664
|
return res;
|
|
665
665
|
};
|
|
666
666
|
var convertRgbToXyz65_default = convertRgbToXyz65;
|
|
667
|
-
const fn$
|
|
667
|
+
const fn$2 = (c$1 = 0) => {
|
|
668
668
|
const abs = Math.abs(c$1);
|
|
669
669
|
if (abs > .0031308) return (Math.sign(c$1) || 1) * (1.055 * Math.pow(abs, 1 / 2.4) - .055);
|
|
670
670
|
return c$1 * 12.92;
|
|
@@ -672,9 +672,9 @@ const fn$1 = (c$1 = 0) => {
|
|
|
672
672
|
const convertLrgbToRgb = ({ r: r$1, g, b, alpha }, mode = "rgb") => {
|
|
673
673
|
let res = {
|
|
674
674
|
mode,
|
|
675
|
-
r: fn$
|
|
676
|
-
g: fn$
|
|
677
|
-
b: fn$
|
|
675
|
+
r: fn$2(r$1),
|
|
676
|
+
g: fn$2(g),
|
|
677
|
+
b: fn$2(b)
|
|
678
678
|
};
|
|
679
679
|
if (alpha !== void 0) res.alpha = alpha;
|
|
680
680
|
return res;
|
|
@@ -693,7 +693,7 @@ const convertXyz65ToRgb = ({ x, y, z, alpha }) => {
|
|
|
693
693
|
return res;
|
|
694
694
|
};
|
|
695
695
|
var convertXyz65ToRgb_default = convertXyz65ToRgb;
|
|
696
|
-
const definition$
|
|
696
|
+
const definition$14 = {
|
|
697
697
|
...definition_default$12,
|
|
698
698
|
mode: "a98",
|
|
699
699
|
parse: ["a98-rgb"],
|
|
@@ -707,7 +707,7 @@ const definition$13 = {
|
|
|
707
707
|
xyz65: convertA98ToXyz65_default
|
|
708
708
|
}
|
|
709
709
|
};
|
|
710
|
-
var definition_default = definition$
|
|
710
|
+
var definition_default = definition$14;
|
|
711
711
|
const normalizeHue = (hue$2) => (hue$2 = hue$2 % 360) < 0 ? hue$2 + 360 : hue$2;
|
|
712
712
|
var normalizeHue_default = normalizeHue;
|
|
713
713
|
function convertHslToRgb({ h, s, l, alpha }) {
|
|
@@ -827,12 +827,12 @@ function parseHsl(color, parsed) {
|
|
|
827
827
|
return res;
|
|
828
828
|
}
|
|
829
829
|
var parseHsl_default = parseHsl;
|
|
830
|
-
const hue = (hues, fn$
|
|
830
|
+
const hue = (hues, fn$4) => {
|
|
831
831
|
return hues.map((hue$2, idx, arr) => {
|
|
832
832
|
if (hue$2 === void 0) return hue$2;
|
|
833
833
|
let normalized = normalizeHue_default(hue$2);
|
|
834
834
|
if (idx === 0 || hues[idx - 1] === void 0) return normalized;
|
|
835
|
-
return fn$
|
|
835
|
+
return fn$4(normalized - normalizeHue_default(arr[idx - 1]));
|
|
836
836
|
}).reduce((acc, curr) => {
|
|
837
837
|
if (!acc.length || curr === void 0 || acc[acc.length - 1] === void 0) {
|
|
838
838
|
acc.push(curr);
|
|
@@ -879,7 +879,7 @@ const averageAngle = (val) => {
|
|
|
879
879
|
let angle = Math.atan2(sum.sin, sum.cos) * 180 / Math.PI;
|
|
880
880
|
return angle < 0 ? 360 + angle : angle;
|
|
881
881
|
};
|
|
882
|
-
const definition$
|
|
882
|
+
const definition$13 = {
|
|
883
883
|
mode: "hsl",
|
|
884
884
|
toMode: { rgb: convertHslToRgb },
|
|
885
885
|
fromMode: { rgb: convertRgbToHsl },
|
|
@@ -908,24 +908,24 @@ const definition$12 = {
|
|
|
908
908
|
difference: { h: differenceHueSaturation },
|
|
909
909
|
average: { h: averageAngle }
|
|
910
910
|
};
|
|
911
|
-
var definition_default$1 = definition$
|
|
911
|
+
var definition_default$1 = definition$13;
|
|
912
912
|
function convertHsvToRgb({ h, s, v, alpha }) {
|
|
913
913
|
h = normalizeHue_default(h !== void 0 ? h : 0);
|
|
914
914
|
if (s === void 0) s = 0;
|
|
915
915
|
if (v === void 0) v = 0;
|
|
916
|
-
let f$
|
|
916
|
+
let f$2 = Math.abs(h / 60 % 2 - 1);
|
|
917
917
|
let res;
|
|
918
918
|
switch (Math.floor(h / 60)) {
|
|
919
919
|
case 0:
|
|
920
920
|
res = {
|
|
921
921
|
r: v,
|
|
922
|
-
g: v * (1 - s * f$
|
|
922
|
+
g: v * (1 - s * f$2),
|
|
923
923
|
b: v * (1 - s)
|
|
924
924
|
};
|
|
925
925
|
break;
|
|
926
926
|
case 1:
|
|
927
927
|
res = {
|
|
928
|
-
r: v * (1 - s * f$
|
|
928
|
+
r: v * (1 - s * f$2),
|
|
929
929
|
g: v,
|
|
930
930
|
b: v * (1 - s)
|
|
931
931
|
};
|
|
@@ -934,19 +934,19 @@ function convertHsvToRgb({ h, s, v, alpha }) {
|
|
|
934
934
|
res = {
|
|
935
935
|
r: v * (1 - s),
|
|
936
936
|
g: v,
|
|
937
|
-
b: v * (1 - s * f$
|
|
937
|
+
b: v * (1 - s * f$2)
|
|
938
938
|
};
|
|
939
939
|
break;
|
|
940
940
|
case 3:
|
|
941
941
|
res = {
|
|
942
942
|
r: v * (1 - s),
|
|
943
|
-
g: v * (1 - s * f$
|
|
943
|
+
g: v * (1 - s * f$2),
|
|
944
944
|
b: v
|
|
945
945
|
};
|
|
946
946
|
break;
|
|
947
947
|
case 4:
|
|
948
948
|
res = {
|
|
949
|
-
r: v * (1 - s * f$
|
|
949
|
+
r: v * (1 - s * f$2),
|
|
950
950
|
g: v * (1 - s),
|
|
951
951
|
b: v
|
|
952
952
|
};
|
|
@@ -955,7 +955,7 @@ function convertHsvToRgb({ h, s, v, alpha }) {
|
|
|
955
955
|
res = {
|
|
956
956
|
r: v,
|
|
957
957
|
g: v * (1 - s),
|
|
958
|
-
b: v * (1 - s * f$
|
|
958
|
+
b: v * (1 - s * f$2)
|
|
959
959
|
};
|
|
960
960
|
break;
|
|
961
961
|
default: res = {
|
|
@@ -982,7 +982,7 @@ function convertRgbToHsv({ r: r$1, g, b, alpha }) {
|
|
|
982
982
|
if (alpha !== void 0) res.alpha = alpha;
|
|
983
983
|
return res;
|
|
984
984
|
}
|
|
985
|
-
const definition$
|
|
985
|
+
const definition$12 = {
|
|
986
986
|
mode: "hsv",
|
|
987
987
|
toMode: { rgb: convertHsvToRgb },
|
|
988
988
|
parse: ["--hsv"],
|
|
@@ -1011,7 +1011,7 @@ const definition$11 = {
|
|
|
1011
1011
|
difference: { h: differenceHueSaturation },
|
|
1012
1012
|
average: { h: averageAngle }
|
|
1013
1013
|
};
|
|
1014
|
-
var definition_default$
|
|
1014
|
+
var definition_default$15 = definition$12;
|
|
1015
1015
|
function convertHwbToRgb({ h, w, b, alpha }) {
|
|
1016
1016
|
if (w === void 0) w = 0;
|
|
1017
1017
|
if (b === void 0) b = 0;
|
|
@@ -1061,7 +1061,7 @@ function ParseHwb(color, parsed) {
|
|
|
1061
1061
|
return res;
|
|
1062
1062
|
}
|
|
1063
1063
|
var parseHwb_default = ParseHwb;
|
|
1064
|
-
const definition$
|
|
1064
|
+
const definition$11 = {
|
|
1065
1065
|
mode: "hwb",
|
|
1066
1066
|
toMode: { rgb: convertHwbToRgb },
|
|
1067
1067
|
fromMode: { rgb: convertRgbToHwb },
|
|
@@ -1090,9 +1090,9 @@ const definition$10 = {
|
|
|
1090
1090
|
difference: { h: differenceHueNaive },
|
|
1091
1091
|
average: { h: averageAngle }
|
|
1092
1092
|
};
|
|
1093
|
-
var definition_default$
|
|
1094
|
-
const k = Math.pow(29, 3) / Math.pow(3, 3);
|
|
1095
|
-
const e = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1093
|
+
var definition_default$2 = definition$11;
|
|
1094
|
+
const k$1 = Math.pow(29, 3) / Math.pow(3, 3);
|
|
1095
|
+
const e$1 = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1096
1096
|
const D50 = {
|
|
1097
1097
|
X: .3457 / .3585,
|
|
1098
1098
|
Y: 1,
|
|
@@ -1103,9 +1103,9 @@ const D65 = {
|
|
|
1103
1103
|
Y: 1,
|
|
1104
1104
|
Z: .3583 / .329
|
|
1105
1105
|
};
|
|
1106
|
-
const k$
|
|
1107
|
-
const e$
|
|
1108
|
-
let fn = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;
|
|
1106
|
+
const k$2 = Math.pow(29, 3) / Math.pow(3, 3);
|
|
1107
|
+
const e$2 = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1108
|
+
let fn$1 = (v) => Math.pow(v, 3) > e$1 ? Math.pow(v, 3) : (116 * v - 16) / k$1;
|
|
1109
1109
|
const convertLabToXyz50 = ({ l, a, b, alpha }) => {
|
|
1110
1110
|
if (l === void 0) l = 0;
|
|
1111
1111
|
if (a === void 0) a = 0;
|
|
@@ -1115,9 +1115,9 @@ const convertLabToXyz50 = ({ l, a, b, alpha }) => {
|
|
|
1115
1115
|
let fz = fy - b / 200;
|
|
1116
1116
|
let res = {
|
|
1117
1117
|
mode: "xyz50",
|
|
1118
|
-
x: fn(fx) * D50.X,
|
|
1119
|
-
y: fn(fy) * D50.Y,
|
|
1120
|
-
z: fn(fz) * D50.Z
|
|
1118
|
+
x: fn$1(fx) * D50.X,
|
|
1119
|
+
y: fn$1(fy) * D50.Y,
|
|
1120
|
+
z: fn$1(fz) * D50.Z
|
|
1121
1121
|
};
|
|
1122
1122
|
if (alpha !== void 0) res.alpha = alpha;
|
|
1123
1123
|
return res;
|
|
@@ -1150,14 +1150,14 @@ const convertRgbToXyz50 = (rgb$2) => {
|
|
|
1150
1150
|
return res;
|
|
1151
1151
|
};
|
|
1152
1152
|
var convertRgbToXyz50_default = convertRgbToXyz50;
|
|
1153
|
-
const f = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;
|
|
1153
|
+
const f$1 = (value) => value > e$1 ? Math.cbrt(value) : (k$1 * value + 16) / 116;
|
|
1154
1154
|
const convertXyz50ToLab = ({ x, y, z, alpha }) => {
|
|
1155
1155
|
if (x === void 0) x = 0;
|
|
1156
1156
|
if (y === void 0) y = 0;
|
|
1157
1157
|
if (z === void 0) z = 0;
|
|
1158
|
-
let f0 = f(x / D50.X);
|
|
1159
|
-
let f1 = f(y / D50.Y);
|
|
1160
|
-
let f2 = f(z / D50.Z);
|
|
1158
|
+
let f0 = f$1(x / D50.X);
|
|
1159
|
+
let f1 = f$1(y / D50.Y);
|
|
1160
|
+
let f2 = f$1(z / D50.Z);
|
|
1161
1161
|
let res = {
|
|
1162
1162
|
mode: "lab",
|
|
1163
1163
|
l: 116 * f1 - 16,
|
|
@@ -1186,7 +1186,7 @@ function parseLab(color, parsed) {
|
|
|
1186
1186
|
return res;
|
|
1187
1187
|
}
|
|
1188
1188
|
var parseLab_default = parseLab;
|
|
1189
|
-
const definition$
|
|
1189
|
+
const definition$10 = {
|
|
1190
1190
|
mode: "lab",
|
|
1191
1191
|
toMode: {
|
|
1192
1192
|
xyz50: convertLabToXyz50_default,
|
|
@@ -1219,6 +1219,72 @@ const definition$9 = {
|
|
|
1219
1219
|
}
|
|
1220
1220
|
}
|
|
1221
1221
|
};
|
|
1222
|
+
var definition_default$3 = definition$10;
|
|
1223
|
+
const k = Math.pow(29, 3) / Math.pow(3, 3);
|
|
1224
|
+
const e = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1225
|
+
let fn = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;
|
|
1226
|
+
const convertLab65ToXyz65 = ({ l, a, b, alpha }) => {
|
|
1227
|
+
if (l === void 0) l = 0;
|
|
1228
|
+
if (a === void 0) a = 0;
|
|
1229
|
+
if (b === void 0) b = 0;
|
|
1230
|
+
let fy = (l + 16) / 116;
|
|
1231
|
+
let fx = a / 500 + fy;
|
|
1232
|
+
let fz = fy - b / 200;
|
|
1233
|
+
let res = {
|
|
1234
|
+
mode: "xyz65",
|
|
1235
|
+
x: fn(fx) * D65.X,
|
|
1236
|
+
y: fn(fy) * D65.Y,
|
|
1237
|
+
z: fn(fz) * D65.Z
|
|
1238
|
+
};
|
|
1239
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
1240
|
+
return res;
|
|
1241
|
+
};
|
|
1242
|
+
var convertLab65ToXyz65_default = convertLab65ToXyz65;
|
|
1243
|
+
const convertLab65ToRgb = (lab) => convertXyz65ToRgb_default(convertLab65ToXyz65_default(lab));
|
|
1244
|
+
var convertLab65ToRgb_default = convertLab65ToRgb;
|
|
1245
|
+
const f = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;
|
|
1246
|
+
const convertXyz65ToLab65 = ({ x, y, z, alpha }) => {
|
|
1247
|
+
if (x === void 0) x = 0;
|
|
1248
|
+
if (y === void 0) y = 0;
|
|
1249
|
+
if (z === void 0) z = 0;
|
|
1250
|
+
let f0 = f(x / D65.X);
|
|
1251
|
+
let f1 = f(y / D65.Y);
|
|
1252
|
+
let f2 = f(z / D65.Z);
|
|
1253
|
+
let res = {
|
|
1254
|
+
mode: "lab65",
|
|
1255
|
+
l: 116 * f1 - 16,
|
|
1256
|
+
a: 500 * (f0 - f1),
|
|
1257
|
+
b: 200 * (f1 - f2)
|
|
1258
|
+
};
|
|
1259
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
1260
|
+
return res;
|
|
1261
|
+
};
|
|
1262
|
+
var convertXyz65ToLab65_default = convertXyz65ToLab65;
|
|
1263
|
+
const convertRgbToLab65 = (rgb$2) => {
|
|
1264
|
+
let res = convertXyz65ToLab65_default(convertRgbToXyz65_default(rgb$2));
|
|
1265
|
+
if (rgb$2.r === rgb$2.b && rgb$2.b === rgb$2.g) res.a = res.b = 0;
|
|
1266
|
+
return res;
|
|
1267
|
+
};
|
|
1268
|
+
var convertRgbToLab65_default = convertRgbToLab65;
|
|
1269
|
+
const definition$9 = {
|
|
1270
|
+
...definition_default$3,
|
|
1271
|
+
mode: "lab65",
|
|
1272
|
+
parse: ["--lab-d65"],
|
|
1273
|
+
serialize: "--lab-d65",
|
|
1274
|
+
toMode: {
|
|
1275
|
+
xyz65: convertLab65ToXyz65_default,
|
|
1276
|
+
rgb: convertLab65ToRgb_default
|
|
1277
|
+
},
|
|
1278
|
+
fromMode: {
|
|
1279
|
+
xyz65: convertXyz65ToLab65_default,
|
|
1280
|
+
rgb: convertRgbToLab65_default
|
|
1281
|
+
},
|
|
1282
|
+
ranges: {
|
|
1283
|
+
l: [0, 100],
|
|
1284
|
+
a: [-86.182, 98.234],
|
|
1285
|
+
b: [-107.86, 94.477]
|
|
1286
|
+
}
|
|
1287
|
+
};
|
|
1222
1288
|
var definition_default$4 = definition$9;
|
|
1223
1289
|
const convertLabToLch = ({ l, a, b, alpha }, mode = "lch") => {
|
|
1224
1290
|
if (a === void 0) a = 0;
|
|
@@ -1366,7 +1432,7 @@ function parseOklab(color, parsed) {
|
|
|
1366
1432
|
}
|
|
1367
1433
|
var parseOklab_default = parseOklab;
|
|
1368
1434
|
const definition$6 = {
|
|
1369
|
-
...definition_default$
|
|
1435
|
+
...definition_default$3,
|
|
1370
1436
|
mode: "oklab",
|
|
1371
1437
|
toMode: {
|
|
1372
1438
|
lrgb: convertOklabToLrgb_default,
|
|
@@ -1670,6 +1736,171 @@ const definition = {
|
|
|
1670
1736
|
}
|
|
1671
1737
|
};
|
|
1672
1738
|
var definition_default$14 = definition;
|
|
1739
|
+
function toe(x) {
|
|
1740
|
+
const k_1 = .206;
|
|
1741
|
+
const k_2 = .03;
|
|
1742
|
+
const k_3 = (1 + k_1) / (1 + k_2);
|
|
1743
|
+
return .5 * (k_3 * x - k_1 + Math.sqrt((k_3 * x - k_1) * (k_3 * x - k_1) + 4 * k_2 * k_3 * x));
|
|
1744
|
+
}
|
|
1745
|
+
function toe_inv(x) {
|
|
1746
|
+
const k_1 = .206;
|
|
1747
|
+
const k_2 = .03;
|
|
1748
|
+
const k_3 = (1 + k_1) / (1 + k_2);
|
|
1749
|
+
return (x * x + k_1 * x) / (k_3 * (x + k_2));
|
|
1750
|
+
}
|
|
1751
|
+
function compute_max_saturation(a, b) {
|
|
1752
|
+
let k0, k1, k2, k3, k4, wl, wm, ws;
|
|
1753
|
+
if (-1.88170328 * a - .80936493 * b > 1) {
|
|
1754
|
+
k0 = 1.19086277;
|
|
1755
|
+
k1 = 1.76576728;
|
|
1756
|
+
k2 = .59662641;
|
|
1757
|
+
k3 = .75515197;
|
|
1758
|
+
k4 = .56771245;
|
|
1759
|
+
wl = 4.0767416621;
|
|
1760
|
+
wm = -3.3077115913;
|
|
1761
|
+
ws = .2309699292;
|
|
1762
|
+
} else if (1.81444104 * a - 1.19445276 * b > 1) {
|
|
1763
|
+
k0 = .73956515;
|
|
1764
|
+
k1 = -.45954404;
|
|
1765
|
+
k2 = .08285427;
|
|
1766
|
+
k3 = .1254107;
|
|
1767
|
+
k4 = .14503204;
|
|
1768
|
+
wl = -1.2684380046;
|
|
1769
|
+
wm = 2.6097574011;
|
|
1770
|
+
ws = -.3413193965;
|
|
1771
|
+
} else {
|
|
1772
|
+
k0 = 1.35733652;
|
|
1773
|
+
k1 = -.00915799;
|
|
1774
|
+
k2 = -1.1513021;
|
|
1775
|
+
k3 = -.50559606;
|
|
1776
|
+
k4 = .00692167;
|
|
1777
|
+
wl = -.0041960863;
|
|
1778
|
+
wm = -.7034186147;
|
|
1779
|
+
ws = 1.707614701;
|
|
1780
|
+
}
|
|
1781
|
+
let S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;
|
|
1782
|
+
let k_l = .3963377774 * a + .2158037573 * b;
|
|
1783
|
+
let k_m = -.1055613458 * a - .0638541728 * b;
|
|
1784
|
+
let k_s = -.0894841775 * a - 1.291485548 * b;
|
|
1785
|
+
{
|
|
1786
|
+
let l_ = 1 + S * k_l;
|
|
1787
|
+
let m_ = 1 + S * k_m;
|
|
1788
|
+
let s_ = 1 + S * k_s;
|
|
1789
|
+
let l = l_ * l_ * l_;
|
|
1790
|
+
let m = m_ * m_ * m_;
|
|
1791
|
+
let s = s_ * s_ * s_;
|
|
1792
|
+
let l_dS = 3 * k_l * l_ * l_;
|
|
1793
|
+
let m_dS = 3 * k_m * m_ * m_;
|
|
1794
|
+
let s_dS = 3 * k_s * s_ * s_;
|
|
1795
|
+
let l_dS2 = 6 * k_l * k_l * l_;
|
|
1796
|
+
let m_dS2 = 6 * k_m * k_m * m_;
|
|
1797
|
+
let s_dS2 = 6 * k_s * k_s * s_;
|
|
1798
|
+
let f$2 = wl * l + wm * m + ws * s;
|
|
1799
|
+
let f1 = wl * l_dS + wm * m_dS + ws * s_dS;
|
|
1800
|
+
let f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;
|
|
1801
|
+
S = S - f$2 * f1 / (f1 * f1 - .5 * f$2 * f2);
|
|
1802
|
+
}
|
|
1803
|
+
return S;
|
|
1804
|
+
}
|
|
1805
|
+
function find_cusp(a, b) {
|
|
1806
|
+
let S_cusp = compute_max_saturation(a, b);
|
|
1807
|
+
let rgb$2 = convertOklabToLrgb_default({
|
|
1808
|
+
l: 1,
|
|
1809
|
+
a: S_cusp * a,
|
|
1810
|
+
b: S_cusp * b
|
|
1811
|
+
});
|
|
1812
|
+
let L_cusp = Math.cbrt(1 / Math.max(rgb$2.r, rgb$2.g, rgb$2.b));
|
|
1813
|
+
let C_cusp = L_cusp * S_cusp;
|
|
1814
|
+
return [L_cusp, C_cusp];
|
|
1815
|
+
}
|
|
1816
|
+
function get_ST_max(a_, b_, cusp = null) {
|
|
1817
|
+
if (!cusp) cusp = find_cusp(a_, b_);
|
|
1818
|
+
let L = cusp[0];
|
|
1819
|
+
let C = cusp[1];
|
|
1820
|
+
return [C / L, C / (1 - L)];
|
|
1821
|
+
}
|
|
1822
|
+
function convertOklabToOkhsv(lab) {
|
|
1823
|
+
let l = lab.l !== void 0 ? lab.l : 0;
|
|
1824
|
+
let a = lab.a !== void 0 ? lab.a : 0;
|
|
1825
|
+
let b = lab.b !== void 0 ? lab.b : 0;
|
|
1826
|
+
let c$1 = Math.sqrt(a * a + b * b);
|
|
1827
|
+
let a_ = c$1 ? a / c$1 : 1;
|
|
1828
|
+
let b_ = c$1 ? b / c$1 : 1;
|
|
1829
|
+
let [S_max, T] = get_ST_max(a_, b_);
|
|
1830
|
+
let S_0 = .5;
|
|
1831
|
+
let k$3 = 1 - S_0 / S_max;
|
|
1832
|
+
let t = T / (c$1 + l * T);
|
|
1833
|
+
let L_v = t * l;
|
|
1834
|
+
let C_v = t * c$1;
|
|
1835
|
+
let L_vt = toe_inv(L_v);
|
|
1836
|
+
let C_vt = C_v * L_vt / L_v;
|
|
1837
|
+
let rgb_scale = convertOklabToLrgb_default({
|
|
1838
|
+
l: L_vt,
|
|
1839
|
+
a: a_ * C_vt,
|
|
1840
|
+
b: b_ * C_vt
|
|
1841
|
+
});
|
|
1842
|
+
let scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
|
|
1843
|
+
l = l / scale_L;
|
|
1844
|
+
c$1 = c$1 / scale_L * toe(l) / l;
|
|
1845
|
+
l = toe(l);
|
|
1846
|
+
const ret = {
|
|
1847
|
+
mode: "okhsv",
|
|
1848
|
+
s: c$1 ? (S_0 + T) * C_v / (T * S_0 + T * k$3 * C_v) : 0,
|
|
1849
|
+
v: l ? l / L_v : 0
|
|
1850
|
+
};
|
|
1851
|
+
if (ret.s) ret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
|
|
1852
|
+
if (lab.alpha !== void 0) ret.alpha = lab.alpha;
|
|
1853
|
+
return ret;
|
|
1854
|
+
}
|
|
1855
|
+
function convertOkhsvToOklab(hsv) {
|
|
1856
|
+
const ret = { mode: "oklab" };
|
|
1857
|
+
if (hsv.alpha !== void 0) ret.alpha = hsv.alpha;
|
|
1858
|
+
const h = hsv.h !== void 0 ? hsv.h : 0;
|
|
1859
|
+
const s = hsv.s !== void 0 ? hsv.s : 0;
|
|
1860
|
+
const v = hsv.v !== void 0 ? hsv.v : 0;
|
|
1861
|
+
const a_ = Math.cos(h / 180 * Math.PI);
|
|
1862
|
+
const b_ = Math.sin(h / 180 * Math.PI);
|
|
1863
|
+
const [S_max, T] = get_ST_max(a_, b_);
|
|
1864
|
+
const S_0 = .5;
|
|
1865
|
+
const k$3 = 1 - S_0 / S_max;
|
|
1866
|
+
const L_v = 1 - s * S_0 / (S_0 + T - T * k$3 * s);
|
|
1867
|
+
const C_v = s * T * S_0 / (S_0 + T - T * k$3 * s);
|
|
1868
|
+
const L_vt = toe_inv(L_v);
|
|
1869
|
+
const C_vt = C_v * L_vt / L_v;
|
|
1870
|
+
const rgb_scale = convertOklabToLrgb_default({
|
|
1871
|
+
l: L_vt,
|
|
1872
|
+
a: a_ * C_vt,
|
|
1873
|
+
b: b_ * C_vt
|
|
1874
|
+
});
|
|
1875
|
+
const scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
|
|
1876
|
+
const L_new = toe_inv(v * L_v);
|
|
1877
|
+
const C = C_v * L_new / L_v;
|
|
1878
|
+
ret.l = L_new * scale_L;
|
|
1879
|
+
ret.a = C * a_ * scale_L;
|
|
1880
|
+
ret.b = C * b_ * scale_L;
|
|
1881
|
+
return ret;
|
|
1882
|
+
}
|
|
1883
|
+
const modeOkhsv = {
|
|
1884
|
+
...definition_default$15,
|
|
1885
|
+
mode: "okhsv",
|
|
1886
|
+
channels: [
|
|
1887
|
+
"h",
|
|
1888
|
+
"s",
|
|
1889
|
+
"v",
|
|
1890
|
+
"alpha"
|
|
1891
|
+
],
|
|
1892
|
+
parse: ["--okhsv"],
|
|
1893
|
+
serialize: "--okhsv",
|
|
1894
|
+
fromMode: {
|
|
1895
|
+
oklab: convertOklabToOkhsv,
|
|
1896
|
+
rgb: (c$1) => convertOklabToOkhsv(convertRgbToOklab_default(c$1))
|
|
1897
|
+
},
|
|
1898
|
+
toMode: {
|
|
1899
|
+
oklab: convertOkhsvToOklab,
|
|
1900
|
+
rgb: (c$1) => convertOklabToRgb_default(convertOkhsvToOklab(c$1))
|
|
1901
|
+
}
|
|
1902
|
+
};
|
|
1903
|
+
var modeOkhsv_default = modeOkhsv;
|
|
1673
1904
|
const r = (value, precision) => Math.round(value * (precision = Math.pow(10, precision))) / precision;
|
|
1674
1905
|
const round = (precision = 4) => (value) => typeof value === "number" ? r(value, precision) : value;
|
|
1675
1906
|
var round_default = round;
|
|
@@ -1680,13 +1911,14 @@ const rgb = converter_default("rgb");
|
|
|
1680
1911
|
const converters = {
|
|
1681
1912
|
a98: useMode(definition_default),
|
|
1682
1913
|
hsl: useMode(definition_default$1),
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1914
|
+
hwb: useMode(definition_default$2),
|
|
1915
|
+
lab: useMode(definition_default$3),
|
|
1916
|
+
lab65: useMode(definition_default$4),
|
|
1686
1917
|
lch: useMode(definition_default$5),
|
|
1687
1918
|
lrgb: useMode(definition_default$6),
|
|
1688
1919
|
oklab: useMode(definition_default$7),
|
|
1689
1920
|
oklch: useMode(definition_default$8),
|
|
1921
|
+
okhsv: useMode(modeOkhsv_default),
|
|
1690
1922
|
p3: useMode(definition_default$9),
|
|
1691
1923
|
prophoto: useMode(definition_default$10),
|
|
1692
1924
|
rec2020: useMode(definition_default$11),
|