@terrazzo/plugin-tailwind 0.2.1 → 0.3.1
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 +39 -0
- package/dist/index.js +223 -52
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,44 @@
|
|
|
1
1
|
# @terrazzo/plugin-tailwind
|
|
2
2
|
|
|
3
|
+
## 0.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#510](https://github.com/terrazzoapp/terrazzo/pull/510) [`4493731`](https://github.com/terrazzoapp/terrazzo/commit/4493731a4d458af45a1bb4c56e3fe0d42d66aeef) Thanks [@drwpow](https://github.com/drwpow)! - Reduce decimal places in color output.
|
|
8
|
+
- [plugin-css] ⚠️ Minor breaking change: decimals have been simplified in output. To restore original behavior, pass in `colorDepth: 'unlimited'`
|
|
9
|
+
|
|
10
|
+
- Updated dependencies [[`4493731`](https://github.com/terrazzoapp/terrazzo/commit/4493731a4d458af45a1bb4c56e3fe0d42d66aeef)]:
|
|
11
|
+
- @terrazzo/token-tools@0.10.1
|
|
12
|
+
- @terrazzo/plugin-css@0.10.1
|
|
13
|
+
- @terrazzo/cli@0.10.1
|
|
14
|
+
|
|
15
|
+
## 0.3.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- [#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
|
|
20
|
+
|
|
21
|
+
- [#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`:
|
|
22
|
+
|
|
23
|
+
```diff
|
|
24
|
+
{
|
|
25
|
+
"colorSpace": "hsl",
|
|
26
|
+
- "components": [270, 0.5, 0.4]
|
|
27
|
+
+ "components": [270, 50, 40]
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
All other color spaces should be unaffected, as they were already matching CSS Color Module 4.
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- [#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"
|
|
36
|
+
|
|
37
|
+
- 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)]:
|
|
38
|
+
- @terrazzo/token-tools@0.10.0
|
|
39
|
+
- @terrazzo/cli@0.10.0
|
|
40
|
+
- @terrazzo/plugin-css@0.10.0
|
|
41
|
+
|
|
3
42
|
## 0.2.1
|
|
4
43
|
|
|
5
44
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -605,7 +605,7 @@ const definition$15 = {
|
|
|
605
605
|
b: 0
|
|
606
606
|
}
|
|
607
607
|
};
|
|
608
|
-
var definition_default$
|
|
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);
|
|
@@ -694,7 +694,7 @@ const convertXyz65ToRgb = ({ x, y, z, alpha }) => {
|
|
|
694
694
|
};
|
|
695
695
|
var convertXyz65ToRgb_default = convertXyz65ToRgb;
|
|
696
696
|
const definition$14 = {
|
|
697
|
-
...definition_default$
|
|
697
|
+
...definition_default$12,
|
|
698
698
|
mode: "a98",
|
|
699
699
|
parse: ["a98-rgb"],
|
|
700
700
|
serialize: "a98-rgb",
|
|
@@ -1011,7 +1011,7 @@ const definition$12 = {
|
|
|
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;
|
|
@@ -1090,7 +1090,7 @@ const definition$11 = {
|
|
|
1090
1090
|
difference: { h: differenceHueNaive },
|
|
1091
1091
|
average: { h: averageAngle }
|
|
1092
1092
|
};
|
|
1093
|
-
var definition_default$
|
|
1093
|
+
var definition_default$2 = definition$11;
|
|
1094
1094
|
const k$1 = Math.pow(29, 3) / Math.pow(3, 3);
|
|
1095
1095
|
const e$1 = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1096
1096
|
const D50 = {
|
|
@@ -1204,8 +1204,8 @@ const definition$10 = {
|
|
|
1204
1204
|
],
|
|
1205
1205
|
ranges: {
|
|
1206
1206
|
l: [0, 100],
|
|
1207
|
-
a: [-
|
|
1208
|
-
b: [-
|
|
1207
|
+
a: [-125, 125],
|
|
1208
|
+
b: [-125, 125]
|
|
1209
1209
|
},
|
|
1210
1210
|
parse: [parseLab_default],
|
|
1211
1211
|
serialize: (c$1) => `lab(${c$1.l !== void 0 ? c$1.l : "none"} ${c$1.a !== void 0 ? c$1.a : "none"} ${c$1.b !== void 0 ? c$1.b : "none"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : ""})`,
|
|
@@ -1219,7 +1219,7 @@ const definition$10 = {
|
|
|
1219
1219
|
}
|
|
1220
1220
|
}
|
|
1221
1221
|
};
|
|
1222
|
-
var definition_default$
|
|
1222
|
+
var definition_default$3 = definition$10;
|
|
1223
1223
|
const k = Math.pow(29, 3) / Math.pow(3, 3);
|
|
1224
1224
|
const e = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1225
1225
|
let fn = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;
|
|
@@ -1267,7 +1267,7 @@ const convertRgbToLab65 = (rgb$2) => {
|
|
|
1267
1267
|
};
|
|
1268
1268
|
var convertRgbToLab65_default = convertRgbToLab65;
|
|
1269
1269
|
const definition$9 = {
|
|
1270
|
-
...definition_default$
|
|
1270
|
+
...definition_default$3,
|
|
1271
1271
|
mode: "lab65",
|
|
1272
1272
|
parse: ["--lab-d65"],
|
|
1273
1273
|
serialize: "--lab-d65",
|
|
@@ -1281,11 +1281,11 @@ const definition$9 = {
|
|
|
1281
1281
|
},
|
|
1282
1282
|
ranges: {
|
|
1283
1283
|
l: [0, 100],
|
|
1284
|
-
a: [-
|
|
1285
|
-
b: [-
|
|
1284
|
+
a: [-125, 125],
|
|
1285
|
+
b: [-125, 125]
|
|
1286
1286
|
}
|
|
1287
1287
|
};
|
|
1288
|
-
var definition_default$
|
|
1288
|
+
var definition_default$4 = definition$9;
|
|
1289
1289
|
const convertLabToLch = ({ l, a, b, alpha }, mode = "lch") => {
|
|
1290
1290
|
if (a === void 0) a = 0;
|
|
1291
1291
|
if (b === void 0) b = 0;
|
|
@@ -1367,28 +1367,28 @@ const definition$8 = {
|
|
|
1367
1367
|
difference: { h: differenceHueChroma },
|
|
1368
1368
|
average: { h: averageAngle }
|
|
1369
1369
|
};
|
|
1370
|
-
var definition_default$
|
|
1370
|
+
var definition_default$5 = definition$8;
|
|
1371
1371
|
const definition$7 = {
|
|
1372
|
-
...definition_default$
|
|
1372
|
+
...definition_default$12,
|
|
1373
1373
|
mode: "lrgb",
|
|
1374
1374
|
toMode: { rgb: convertLrgbToRgb_default },
|
|
1375
1375
|
fromMode: { rgb: convertRgbToLrgb_default },
|
|
1376
1376
|
parse: ["srgb-linear"],
|
|
1377
1377
|
serialize: "srgb-linear"
|
|
1378
1378
|
};
|
|
1379
|
-
var definition_default$
|
|
1379
|
+
var definition_default$6 = definition$7;
|
|
1380
1380
|
const convertOklabToLrgb = ({ l, a, b, alpha }) => {
|
|
1381
1381
|
if (l === void 0) l = 0;
|
|
1382
1382
|
if (a === void 0) a = 0;
|
|
1383
1383
|
if (b === void 0) b = 0;
|
|
1384
|
-
let L = Math.pow(l
|
|
1385
|
-
let M = Math.pow(l
|
|
1386
|
-
let S = Math.pow(l
|
|
1384
|
+
let L = Math.pow(l + .3963377773761749 * a + .2158037573099136 * b, 3);
|
|
1385
|
+
let M = Math.pow(l - .1055613458156586 * a - .0638541728258133 * b, 3);
|
|
1386
|
+
let S = Math.pow(l - .0894841775298119 * a - 1.2914855480194092 * b, 3);
|
|
1387
1387
|
let res = {
|
|
1388
1388
|
mode: "lrgb",
|
|
1389
|
-
r: 4.
|
|
1390
|
-
g: -1.
|
|
1391
|
-
b: -.
|
|
1389
|
+
r: 4.076741636075957 * L - 3.3077115392580616 * M + .2309699031821044 * S,
|
|
1390
|
+
g: -1.2684379732850317 * L + 2.6097573492876887 * M - .3413193760026573 * S,
|
|
1391
|
+
b: -.0041960761386756 * L - .7034186179359362 * M + 1.7076146940746117 * S
|
|
1392
1392
|
};
|
|
1393
1393
|
if (alpha !== void 0) res.alpha = alpha;
|
|
1394
1394
|
return res;
|
|
@@ -1398,14 +1398,14 @@ const convertLrgbToOklab = ({ r: r$1, g, b, alpha }) => {
|
|
|
1398
1398
|
if (r$1 === void 0) r$1 = 0;
|
|
1399
1399
|
if (g === void 0) g = 0;
|
|
1400
1400
|
if (b === void 0) b = 0;
|
|
1401
|
-
let L = Math.cbrt(.
|
|
1402
|
-
let M = Math.cbrt(.
|
|
1403
|
-
let S = Math.cbrt(.
|
|
1401
|
+
let L = Math.cbrt(.412221469470763 * r$1 + .5363325372617348 * g + .0514459932675022 * b);
|
|
1402
|
+
let M = Math.cbrt(.2119034958178252 * r$1 + .6806995506452344 * g + .1073969535369406 * b);
|
|
1403
|
+
let S = Math.cbrt(.0883024591900564 * r$1 + .2817188391361215 * g + .6299787016738222 * b);
|
|
1404
1404
|
let res = {
|
|
1405
1405
|
mode: "oklab",
|
|
1406
|
-
l: .
|
|
1407
|
-
a: 1.
|
|
1408
|
-
b: .
|
|
1406
|
+
l: .210454268309314 * L + .7936177747023054 * M - .0040720430116193 * S,
|
|
1407
|
+
a: 1.9779985324311684 * L - 2.42859224204858 * M + .450593709617411 * S,
|
|
1408
|
+
b: .0259040424655478 * L + .7827717124575296 * M - .8086757549230774 * S
|
|
1409
1409
|
};
|
|
1410
1410
|
if (alpha !== void 0) res.alpha = alpha;
|
|
1411
1411
|
return res;
|
|
@@ -1432,7 +1432,7 @@ function parseOklab(color, parsed) {
|
|
|
1432
1432
|
}
|
|
1433
1433
|
var parseOklab_default = parseOklab;
|
|
1434
1434
|
const definition$6 = {
|
|
1435
|
-
...definition_default$
|
|
1435
|
+
...definition_default$3,
|
|
1436
1436
|
mode: "oklab",
|
|
1437
1437
|
toMode: {
|
|
1438
1438
|
lrgb: convertOklabToLrgb_default,
|
|
@@ -1450,7 +1450,7 @@ const definition$6 = {
|
|
|
1450
1450
|
parse: [parseOklab_default],
|
|
1451
1451
|
serialize: (c$1) => `oklab(${c$1.l !== void 0 ? c$1.l : "none"} ${c$1.a !== void 0 ? c$1.a : "none"} ${c$1.b !== void 0 ? c$1.b : "none"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : ""})`
|
|
1452
1452
|
};
|
|
1453
|
-
var definition_default$
|
|
1453
|
+
var definition_default$7 = definition$6;
|
|
1454
1454
|
function parseOklch(color, parsed) {
|
|
1455
1455
|
if (!parsed || parsed[0] !== "oklch") return void 0;
|
|
1456
1456
|
const res = { mode: "oklch" };
|
|
@@ -1469,7 +1469,7 @@ function parseOklch(color, parsed) {
|
|
|
1469
1469
|
}
|
|
1470
1470
|
var parseOklch_default = parseOklch;
|
|
1471
1471
|
const definition$5 = {
|
|
1472
|
-
...definition_default$
|
|
1472
|
+
...definition_default$5,
|
|
1473
1473
|
mode: "oklch",
|
|
1474
1474
|
toMode: {
|
|
1475
1475
|
oklab: (c$1) => convertLchToLab_default(c$1, "oklab"),
|
|
@@ -1487,7 +1487,7 @@ const definition$5 = {
|
|
|
1487
1487
|
h: [0, 360]
|
|
1488
1488
|
}
|
|
1489
1489
|
};
|
|
1490
|
-
var definition_default$
|
|
1490
|
+
var definition_default$8 = definition$5;
|
|
1491
1491
|
const convertP3ToXyz65 = (rgb$2) => {
|
|
1492
1492
|
let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$2);
|
|
1493
1493
|
let res = {
|
|
@@ -1514,7 +1514,7 @@ const convertXyz65ToP3 = ({ x, y, z, alpha }) => {
|
|
|
1514
1514
|
};
|
|
1515
1515
|
var convertXyz65ToP3_default = convertXyz65ToP3;
|
|
1516
1516
|
const definition$4 = {
|
|
1517
|
-
...definition_default$
|
|
1517
|
+
...definition_default$12,
|
|
1518
1518
|
mode: "p3",
|
|
1519
1519
|
parse: ["display-p3"],
|
|
1520
1520
|
serialize: "display-p3",
|
|
@@ -1527,7 +1527,7 @@ const definition$4 = {
|
|
|
1527
1527
|
xyz65: convertP3ToXyz65_default
|
|
1528
1528
|
}
|
|
1529
1529
|
};
|
|
1530
|
-
var definition_default$
|
|
1530
|
+
var definition_default$9 = definition$4;
|
|
1531
1531
|
const gamma$1 = (v) => {
|
|
1532
1532
|
let abs = Math.abs(v);
|
|
1533
1533
|
if (abs >= 1 / 512) return Math.sign(v) * Math.pow(abs, 1 / 1.8);
|
|
@@ -1567,7 +1567,7 @@ const convertProphotoToXyz50 = (prophoto) => {
|
|
|
1567
1567
|
};
|
|
1568
1568
|
var convertProphotoToXyz50_default = convertProphotoToXyz50;
|
|
1569
1569
|
const definition$3 = {
|
|
1570
|
-
...definition_default$
|
|
1570
|
+
...definition_default$12,
|
|
1571
1571
|
mode: "prophoto",
|
|
1572
1572
|
parse: ["prophoto-rgb"],
|
|
1573
1573
|
serialize: "prophoto-rgb",
|
|
@@ -1580,7 +1580,7 @@ const definition$3 = {
|
|
|
1580
1580
|
rgb: (color) => convertXyz50ToRgb_default(convertProphotoToXyz50_default(color))
|
|
1581
1581
|
}
|
|
1582
1582
|
};
|
|
1583
|
-
var definition_default$
|
|
1583
|
+
var definition_default$10 = definition$3;
|
|
1584
1584
|
const α$1 = 1.09929682680944;
|
|
1585
1585
|
const β$1 = .018053968510807;
|
|
1586
1586
|
const gamma = (v) => {
|
|
@@ -1624,7 +1624,7 @@ const convertRec2020ToXyz65 = (rec2020) => {
|
|
|
1624
1624
|
};
|
|
1625
1625
|
var convertRec2020ToXyz65_default = convertRec2020ToXyz65;
|
|
1626
1626
|
const definition$2 = {
|
|
1627
|
-
...definition_default$
|
|
1627
|
+
...definition_default$12,
|
|
1628
1628
|
mode: "rec2020",
|
|
1629
1629
|
fromMode: {
|
|
1630
1630
|
xyz65: convertXyz65ToRec2020_default,
|
|
@@ -1637,7 +1637,7 @@ const definition$2 = {
|
|
|
1637
1637
|
parse: ["rec2020"],
|
|
1638
1638
|
serialize: "rec2020"
|
|
1639
1639
|
};
|
|
1640
|
-
var definition_default$
|
|
1640
|
+
var definition_default$11 = definition$2;
|
|
1641
1641
|
const definition$1 = {
|
|
1642
1642
|
mode: "xyz50",
|
|
1643
1643
|
parse: ["xyz-d50"],
|
|
@@ -1671,7 +1671,7 @@ const definition$1 = {
|
|
|
1671
1671
|
}
|
|
1672
1672
|
}
|
|
1673
1673
|
};
|
|
1674
|
-
var definition_default$
|
|
1674
|
+
var definition_default$13 = definition$1;
|
|
1675
1675
|
const convertXyz65ToXyz50 = (xyz65) => {
|
|
1676
1676
|
let { x, y, z, alpha } = xyz65;
|
|
1677
1677
|
if (x === void 0) x = 0;
|
|
@@ -1735,7 +1735,172 @@ const definition = {
|
|
|
1735
1735
|
}
|
|
1736
1736
|
}
|
|
1737
1737
|
};
|
|
1738
|
-
var definition_default$
|
|
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;
|
|
1739
1904
|
const r = (value, precision) => Math.round(value * (precision = Math.pow(10, precision))) / precision;
|
|
1740
1905
|
const round = (precision = 4) => (value) => typeof value === "number" ? r(value, precision) : value;
|
|
1741
1906
|
var round_default = round;
|
|
@@ -1746,20 +1911,26 @@ const rgb = converter_default("rgb");
|
|
|
1746
1911
|
const converters = {
|
|
1747
1912
|
a98: useMode(definition_default),
|
|
1748
1913
|
hsl: useMode(definition_default$1),
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
p3: useMode(definition_default$
|
|
1758
|
-
prophoto: useMode(definition_default$
|
|
1759
|
-
rec2020: useMode(definition_default$
|
|
1760
|
-
rgb: useMode(definition_default$
|
|
1761
|
-
xyz50: useMode(definition_default$
|
|
1762
|
-
xyz65: useMode(definition_default$
|
|
1914
|
+
hwb: useMode(definition_default$2),
|
|
1915
|
+
lab: useMode(definition_default$3),
|
|
1916
|
+
lab65: useMode(definition_default$4),
|
|
1917
|
+
lch: useMode(definition_default$5),
|
|
1918
|
+
lrgb: useMode(definition_default$6),
|
|
1919
|
+
oklab: useMode(definition_default$7),
|
|
1920
|
+
oklch: useMode(definition_default$8),
|
|
1921
|
+
okhsv: useMode(modeOkhsv_default),
|
|
1922
|
+
p3: useMode(definition_default$9),
|
|
1923
|
+
prophoto: useMode(definition_default$10),
|
|
1924
|
+
rec2020: useMode(definition_default$11),
|
|
1925
|
+
rgb: useMode(definition_default$12),
|
|
1926
|
+
xyz50: useMode(definition_default$13),
|
|
1927
|
+
xyz65: useMode(definition_default$14)
|
|
1928
|
+
};
|
|
1929
|
+
const DEPTH_ROUNDING = {
|
|
1930
|
+
24: round_default(4),
|
|
1931
|
+
30: round_default(4),
|
|
1932
|
+
36: round_default(5),
|
|
1933
|
+
48: round_default(6)
|
|
1763
1934
|
};
|
|
1764
1935
|
const FORMAT_ID$1 = "css";
|
|
1765
1936
|
|