@terrazzo/plugin-tailwind 0.3.2 → 0.3.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/CHANGELOG.md +9 -0
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1217 -207
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
package/dist/index.js
CHANGED
|
@@ -29,7 +29,7 @@ const parseNumber = (color, len) => {
|
|
|
29
29
|
};
|
|
30
30
|
};
|
|
31
31
|
var parseNumber_default = parseNumber;
|
|
32
|
-
|
|
32
|
+
var named_default = {
|
|
33
33
|
aliceblue: 15792383,
|
|
34
34
|
antiquewhite: 16444375,
|
|
35
35
|
aqua: 65535,
|
|
@@ -179,7 +179,6 @@ const named = {
|
|
|
179
179
|
yellow: 16776960,
|
|
180
180
|
yellowgreen: 10145074
|
|
181
181
|
};
|
|
182
|
-
var named_default = named;
|
|
183
182
|
const parseNamed = (color) => {
|
|
184
183
|
return parseNumber_default(named_default[color.toLowerCase()], 6);
|
|
185
184
|
};
|
|
@@ -191,17 +190,17 @@ const parseHex = (color) => {
|
|
|
191
190
|
};
|
|
192
191
|
var parseHex_default = parseHex;
|
|
193
192
|
const num$1 = "([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)";
|
|
194
|
-
|
|
193
|
+
`${num$1}`;
|
|
195
194
|
const per = `${num$1}%`;
|
|
196
|
-
|
|
195
|
+
`${num$1}`;
|
|
197
196
|
const num_per = `(?:${num$1}%|${num$1})`;
|
|
198
197
|
const num_per_none = `(?:${num$1}%|${num$1}|none)`;
|
|
199
198
|
const hue$1 = `(?:${num$1}(deg|grad|rad|turn)|${num$1})`;
|
|
200
|
-
|
|
199
|
+
`${num$1}${num$1}`;
|
|
201
200
|
const c = `\\s*,\\s*`;
|
|
202
|
-
|
|
203
|
-
const rgb_num_old = new RegExp(`^rgba?\\(\\s*${num$1}${c}${num$1}${c}${num$1}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
|
|
204
|
-
const rgb_per_old = new RegExp(`^rgba?\\(\\s*${per}${c}${per}${c}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
|
|
201
|
+
"" + num_per_none;
|
|
202
|
+
const rgb_num_old = /* @__PURE__ */ new RegExp(`^rgba?\\(\\s*${num$1}${c}${num$1}${c}${num$1}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
|
|
203
|
+
const rgb_per_old = /* @__PURE__ */ new RegExp(`^rgba?\\(\\s*${per}${c}${per}${c}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
|
|
205
204
|
const parseRgbLegacy = (color) => {
|
|
206
205
|
let res = { mode: "rgb" };
|
|
207
206
|
let match;
|
|
@@ -213,7 +212,7 @@ const parseRgbLegacy = (color) => {
|
|
|
213
212
|
if (match[1] !== void 0) res.r = match[1] / 100;
|
|
214
213
|
if (match[2] !== void 0) res.g = match[2] / 100;
|
|
215
214
|
if (match[3] !== void 0) res.b = match[3] / 100;
|
|
216
|
-
} else return
|
|
215
|
+
} else return;
|
|
217
216
|
if (match[4] !== void 0) res.alpha = Math.max(0, Math.min(1, match[4] / 100));
|
|
218
217
|
else if (match[5] !== void 0) res.alpha = Math.max(0, Math.min(1, +match[5]));
|
|
219
218
|
return res;
|
|
@@ -231,28 +230,28 @@ const modes = {};
|
|
|
231
230
|
const parsers = [];
|
|
232
231
|
const colorProfiles = {};
|
|
233
232
|
const identity = (v) => v;
|
|
234
|
-
const useMode = (definition$
|
|
235
|
-
converters$1[definition$
|
|
236
|
-
...converters$1[definition$
|
|
237
|
-
...definition$
|
|
233
|
+
const useMode = (definition$28) => {
|
|
234
|
+
converters$1[definition$28.mode] = {
|
|
235
|
+
...converters$1[definition$28.mode],
|
|
236
|
+
...definition$28.toMode
|
|
238
237
|
};
|
|
239
|
-
Object.keys(definition$
|
|
238
|
+
Object.keys(definition$28.fromMode || {}).forEach((k$3) => {
|
|
240
239
|
if (!converters$1[k$3]) converters$1[k$3] = {};
|
|
241
|
-
converters$1[k$3][definition$
|
|
240
|
+
converters$1[k$3][definition$28.mode] = definition$28.fromMode[k$3];
|
|
242
241
|
});
|
|
243
|
-
if (!definition$
|
|
244
|
-
if (!definition$
|
|
245
|
-
definition$
|
|
246
|
-
if (definition$
|
|
247
|
-
if (!definition$
|
|
248
|
-
if (typeof definition$
|
|
249
|
-
if (!definition$
|
|
242
|
+
if (!definition$28.ranges) definition$28.ranges = {};
|
|
243
|
+
if (!definition$28.difference) definition$28.difference = {};
|
|
244
|
+
definition$28.channels.forEach((channel) => {
|
|
245
|
+
if (definition$28.ranges[channel] === void 0) definition$28.ranges[channel] = [0, 1];
|
|
246
|
+
if (!definition$28.interpolate[channel]) throw new Error(`Missing interpolator for: ${channel}`);
|
|
247
|
+
if (typeof definition$28.interpolate[channel] === "function") definition$28.interpolate[channel] = { use: definition$28.interpolate[channel] };
|
|
248
|
+
if (!definition$28.interpolate[channel].fixup) definition$28.interpolate[channel].fixup = identity;
|
|
250
249
|
});
|
|
251
|
-
modes[definition$
|
|
252
|
-
(definition$
|
|
253
|
-
useParser(parser, definition$
|
|
250
|
+
modes[definition$28.mode] = definition$28;
|
|
251
|
+
(definition$28.parse || []).forEach((parser) => {
|
|
252
|
+
useParser(parser, definition$28.mode);
|
|
254
253
|
});
|
|
255
|
-
return converter_default(definition$
|
|
254
|
+
return converter_default(definition$28.mode);
|
|
256
255
|
};
|
|
257
256
|
const getMode = (mode) => modes[mode];
|
|
258
257
|
const useParser = (parser, mode) => {
|
|
@@ -316,7 +315,7 @@ function num(chars) {
|
|
|
316
315
|
type: Tok.Hue,
|
|
317
316
|
value: value * huenits[id]
|
|
318
317
|
};
|
|
319
|
-
return
|
|
318
|
+
return;
|
|
320
319
|
}
|
|
321
320
|
if (chars[_i] === "%") {
|
|
322
321
|
_i++;
|
|
@@ -369,7 +368,7 @@ function tokenize(str = "") {
|
|
|
369
368
|
while (_i < chars.length && (chars[_i] === "\n" || chars[_i] === " " || chars[_i] === " ")) _i++;
|
|
370
369
|
continue;
|
|
371
370
|
}
|
|
372
|
-
if (ch === ",") return
|
|
371
|
+
if (ch === ",") return;
|
|
373
372
|
if (ch === ")") {
|
|
374
373
|
tokens.push({ type: Tok.ParenClose });
|
|
375
374
|
continue;
|
|
@@ -380,7 +379,7 @@ function tokenize(str = "") {
|
|
|
380
379
|
tokens.push(num(chars));
|
|
381
380
|
continue;
|
|
382
381
|
}
|
|
383
|
-
return
|
|
382
|
+
return;
|
|
384
383
|
}
|
|
385
384
|
if (ch === "-") {
|
|
386
385
|
_i--;
|
|
@@ -395,7 +394,7 @@ function tokenize(str = "") {
|
|
|
395
394
|
});
|
|
396
395
|
continue;
|
|
397
396
|
}
|
|
398
|
-
return
|
|
397
|
+
return;
|
|
399
398
|
}
|
|
400
399
|
if (ch === ".") {
|
|
401
400
|
_i--;
|
|
@@ -403,7 +402,7 @@ function tokenize(str = "") {
|
|
|
403
402
|
tokens.push(num(chars));
|
|
404
403
|
continue;
|
|
405
404
|
}
|
|
406
|
-
return
|
|
405
|
+
return;
|
|
407
406
|
}
|
|
408
407
|
if (ch === "/") {
|
|
409
408
|
while (_i < chars.length && (chars[_i] === "\n" || chars[_i] === " " || chars[_i] === " ")) _i++;
|
|
@@ -430,7 +429,7 @@ function tokenize(str = "") {
|
|
|
430
429
|
continue;
|
|
431
430
|
}
|
|
432
431
|
}
|
|
433
|
-
return
|
|
432
|
+
return;
|
|
434
433
|
}
|
|
435
434
|
if (/\d/.test(ch)) {
|
|
436
435
|
_i--;
|
|
@@ -442,21 +441,21 @@ function tokenize(str = "") {
|
|
|
442
441
|
tokens.push(identlike(chars));
|
|
443
442
|
continue;
|
|
444
443
|
}
|
|
445
|
-
return
|
|
444
|
+
return;
|
|
446
445
|
}
|
|
447
446
|
return tokens;
|
|
448
447
|
}
|
|
449
448
|
function parseColorSyntax(tokens) {
|
|
450
449
|
tokens._i = 0;
|
|
451
450
|
let token = tokens[tokens._i++];
|
|
452
|
-
if (!token || token.type !== Tok.Function || token.value !== "color") return
|
|
451
|
+
if (!token || token.type !== Tok.Function || token.value !== "color") return;
|
|
453
452
|
token = tokens[tokens._i++];
|
|
454
|
-
if (token.type !== Tok.Ident) return
|
|
453
|
+
if (token.type !== Tok.Ident) return;
|
|
455
454
|
const mode = colorProfiles[token.value];
|
|
456
|
-
if (!mode) return
|
|
455
|
+
if (!mode) return;
|
|
457
456
|
const res = { mode };
|
|
458
457
|
const coords = consumeCoords(tokens, false);
|
|
459
|
-
if (!coords) return
|
|
458
|
+
if (!coords) return;
|
|
460
459
|
const channels = getMode(mode).channels;
|
|
461
460
|
for (let ii = 0, c$1, ch; ii < channels.length; ii++) {
|
|
462
461
|
c$1 = coords[ii];
|
|
@@ -478,14 +477,14 @@ function consumeCoords(tokens, includeHue) {
|
|
|
478
477
|
continue;
|
|
479
478
|
}
|
|
480
479
|
if (token.type === Tok.ParenClose) {
|
|
481
|
-
if (tokens._i < tokens.length) return
|
|
480
|
+
if (tokens._i < tokens.length) return;
|
|
482
481
|
continue;
|
|
483
482
|
}
|
|
484
|
-
return
|
|
483
|
+
return;
|
|
485
484
|
}
|
|
486
|
-
if (coords.length < 3 || coords.length > 4) return
|
|
485
|
+
if (coords.length < 3 || coords.length > 4) return;
|
|
487
486
|
if (coords.length === 4) {
|
|
488
|
-
if (coords[3].type !== Tok.Alpha) return
|
|
487
|
+
if (coords[3].type !== Tok.Alpha) return;
|
|
489
488
|
coords[3] = coords[3].value;
|
|
490
489
|
}
|
|
491
490
|
if (coords.length === 3) coords.push({
|
|
@@ -497,14 +496,14 @@ function consumeCoords(tokens, includeHue) {
|
|
|
497
496
|
function parseModernSyntax(tokens, includeHue) {
|
|
498
497
|
tokens._i = 0;
|
|
499
498
|
let token = tokens[tokens._i++];
|
|
500
|
-
if (!token || token.type !== Tok.Function) return
|
|
499
|
+
if (!token || token.type !== Tok.Function) return;
|
|
501
500
|
let coords = consumeCoords(tokens, includeHue);
|
|
502
|
-
if (!coords) return
|
|
501
|
+
if (!coords) return;
|
|
503
502
|
coords.unshift(token.value);
|
|
504
503
|
return coords;
|
|
505
504
|
}
|
|
506
505
|
const parse = (color) => {
|
|
507
|
-
if (typeof color !== "string") return
|
|
506
|
+
if (typeof color !== "string") return;
|
|
508
507
|
const tokens = tokenize(color);
|
|
509
508
|
const parsed = tokens ? parseModernSyntax(tokens, true) : void 0;
|
|
510
509
|
let result = void 0;
|
|
@@ -515,10 +514,10 @@ const parse = (color) => {
|
|
|
515
514
|
};
|
|
516
515
|
var parse_default = parse;
|
|
517
516
|
function parseRgb(color, parsed) {
|
|
518
|
-
if (!parsed || parsed[0] !== "rgb" && parsed[0] !== "rgba") return
|
|
517
|
+
if (!parsed || parsed[0] !== "rgb" && parsed[0] !== "rgba") return;
|
|
519
518
|
const res = { mode: "rgb" };
|
|
520
519
|
const [, r$1, g, b, alpha] = parsed;
|
|
521
|
-
if (r$1.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) return
|
|
520
|
+
if (r$1.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) return;
|
|
522
521
|
if (r$1.type !== Tok.None) res.r = r$1.type === Tok.Number ? r$1.value / 255 : r$1.value / 100;
|
|
523
522
|
if (g.type !== Tok.None) res.g = g.type === Tok.Number ? g.value / 255 : g.value / 100;
|
|
524
523
|
if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value / 255 : b.value / 100;
|
|
@@ -567,7 +566,7 @@ const fixupAlpha = (arr) => {
|
|
|
567
566
|
});
|
|
568
567
|
return some_defined ? res : arr;
|
|
569
568
|
};
|
|
570
|
-
|
|
569
|
+
var definition_default$12 = {
|
|
571
570
|
mode: "rgb",
|
|
572
571
|
channels: [
|
|
573
572
|
"r",
|
|
@@ -605,19 +604,18 @@ const definition$15 = {
|
|
|
605
604
|
b: 0
|
|
606
605
|
}
|
|
607
606
|
};
|
|
608
|
-
var definition_default$12 = definition$15;
|
|
609
607
|
const linearize$2 = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);
|
|
610
|
-
const convertA98ToXyz65 = (a98) => {
|
|
611
|
-
let r$1 = linearize$2(a98.r);
|
|
612
|
-
let g = linearize$2(a98.g);
|
|
613
|
-
let b = linearize$2(a98.b);
|
|
608
|
+
const convertA98ToXyz65 = (a98$2) => {
|
|
609
|
+
let r$1 = linearize$2(a98$2.r);
|
|
610
|
+
let g = linearize$2(a98$2.g);
|
|
611
|
+
let b = linearize$2(a98$2.b);
|
|
614
612
|
let res = {
|
|
615
613
|
mode: "xyz65",
|
|
616
614
|
x: .5766690429101305 * r$1 + .1855582379065463 * g + .1882286462349947 * b,
|
|
617
615
|
y: .297344975250536 * r$1 + .6273635662554661 * g + .0752914584939979 * b,
|
|
618
616
|
z: .0270313613864123 * r$1 + .0706888525358272 * g + .9913375368376386 * b
|
|
619
617
|
};
|
|
620
|
-
if (a98.alpha !== void 0) res.alpha = a98.alpha;
|
|
618
|
+
if (a98$2.alpha !== void 0) res.alpha = a98$2.alpha;
|
|
621
619
|
return res;
|
|
622
620
|
};
|
|
623
621
|
var convertA98ToXyz65_default = convertA98ToXyz65;
|
|
@@ -637,9 +635,9 @@ const convertXyz65ToA98 = ({ x, y, z, alpha }) => {
|
|
|
637
635
|
};
|
|
638
636
|
var convertXyz65ToA98_default = convertXyz65ToA98;
|
|
639
637
|
const fn$3 = (c$1 = 0) => {
|
|
640
|
-
const abs = Math.abs(c$1);
|
|
641
|
-
if (abs <= .04045) return c$1 / 12.92;
|
|
642
|
-
return (Math.sign(c$1) || 1) * Math.pow((abs + .055) / 1.055, 2.4);
|
|
638
|
+
const abs$1 = Math.abs(c$1);
|
|
639
|
+
if (abs$1 <= .04045) return c$1 / 12.92;
|
|
640
|
+
return (Math.sign(c$1) || 1) * Math.pow((abs$1 + .055) / 1.055, 2.4);
|
|
643
641
|
};
|
|
644
642
|
const convertRgbToLrgb = ({ r: r$1, g, b, alpha }) => {
|
|
645
643
|
let res = {
|
|
@@ -652,8 +650,8 @@ const convertRgbToLrgb = ({ r: r$1, g, b, alpha }) => {
|
|
|
652
650
|
return res;
|
|
653
651
|
};
|
|
654
652
|
var convertRgbToLrgb_default = convertRgbToLrgb;
|
|
655
|
-
const convertRgbToXyz65 = (rgb$
|
|
656
|
-
let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$
|
|
653
|
+
const convertRgbToXyz65 = (rgb$4) => {
|
|
654
|
+
let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);
|
|
657
655
|
let res = {
|
|
658
656
|
mode: "xyz65",
|
|
659
657
|
x: .4123907992659593 * r$1 + .357584339383878 * g + .1804807884018343 * b,
|
|
@@ -665,8 +663,8 @@ const convertRgbToXyz65 = (rgb$2) => {
|
|
|
665
663
|
};
|
|
666
664
|
var convertRgbToXyz65_default = convertRgbToXyz65;
|
|
667
665
|
const fn$2 = (c$1 = 0) => {
|
|
668
|
-
const abs = Math.abs(c$1);
|
|
669
|
-
if (abs > .0031308) return (Math.sign(c$1) || 1) * (1.055 * Math.pow(abs, 1 / 2.4) - .055);
|
|
666
|
+
const abs$1 = Math.abs(c$1);
|
|
667
|
+
if (abs$1 > .0031308) return (Math.sign(c$1) || 1) * (1.055 * Math.pow(abs$1, 1 / 2.4) - .055);
|
|
670
668
|
return c$1 * 12.92;
|
|
671
669
|
};
|
|
672
670
|
const convertLrgbToRgb = ({ r: r$1, g, b, alpha }, mode = "rgb") => {
|
|
@@ -693,7 +691,7 @@ const convertXyz65ToRgb = ({ x, y, z, alpha }) => {
|
|
|
693
691
|
return res;
|
|
694
692
|
};
|
|
695
693
|
var convertXyz65ToRgb_default = convertXyz65ToRgb;
|
|
696
|
-
|
|
694
|
+
var definition_default = {
|
|
697
695
|
...definition_default$12,
|
|
698
696
|
mode: "a98",
|
|
699
697
|
parse: ["a98-rgb"],
|
|
@@ -707,7 +705,6 @@ const definition$14 = {
|
|
|
707
705
|
xyz65: convertA98ToXyz65_default
|
|
708
706
|
}
|
|
709
707
|
};
|
|
710
|
-
var definition_default = definition$14;
|
|
711
708
|
const normalizeHue = (hue$2) => (hue$2 = hue$2 % 360) < 0 ? hue$2 + 360 : hue$2;
|
|
712
709
|
var normalizeHue_default = normalizeHue;
|
|
713
710
|
function convertHslToRgb({ h, s, l, alpha }) {
|
|
@@ -774,13 +771,13 @@ function convertRgbToHsl({ r: r$1, g, b, alpha }) {
|
|
|
774
771
|
if (r$1 === void 0) r$1 = 0;
|
|
775
772
|
if (g === void 0) g = 0;
|
|
776
773
|
if (b === void 0) b = 0;
|
|
777
|
-
let M = Math.max(r$1, g, b), m = Math.min(r$1, g, b);
|
|
774
|
+
let M$1 = Math.max(r$1, g, b), m = Math.min(r$1, g, b);
|
|
778
775
|
let res = {
|
|
779
776
|
mode: "hsl",
|
|
780
|
-
s: M === m ? 0 : (M - m) / (1 - Math.abs(M + m - 1)),
|
|
781
|
-
l: .5 * (M + m)
|
|
777
|
+
s: M$1 === m ? 0 : (M$1 - m) / (1 - Math.abs(M$1 + m - 1)),
|
|
778
|
+
l: .5 * (M$1 + m)
|
|
782
779
|
};
|
|
783
|
-
if (M - m !== 0) res.h = (M === r$1 ? (g - b) / (M - m) + (g < b) * 6 : M === g ? (b - r$1) / (M - m) + 2 : (r$1 - g) / (M - m) + 4) * 60;
|
|
780
|
+
if (M$1 - m !== 0) res.h = (M$1 === r$1 ? (g - b) / (M$1 - m) + (g < b) * 6 : M$1 === g ? (b - r$1) / (M$1 - m) + 2 : (r$1 - g) / (M$1 - m) + 4) * 60;
|
|
784
781
|
if (alpha !== void 0) res.alpha = alpha;
|
|
785
782
|
return res;
|
|
786
783
|
}
|
|
@@ -793,7 +790,7 @@ const hueToDeg = (val, unit) => {
|
|
|
793
790
|
}
|
|
794
791
|
};
|
|
795
792
|
var hue_default = hueToDeg;
|
|
796
|
-
const hsl_old = new RegExp(`^hsla?\\(\\s*${hue$1}${c}${per}${c}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
|
|
793
|
+
const hsl_old = /* @__PURE__ */ new RegExp(`^hsla?\\(\\s*${hue$1}${c}${per}${c}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
|
|
797
794
|
const parseHslLegacy = (color) => {
|
|
798
795
|
let match = color.match(hsl_old);
|
|
799
796
|
if (!match) return;
|
|
@@ -808,19 +805,19 @@ const parseHslLegacy = (color) => {
|
|
|
808
805
|
};
|
|
809
806
|
var parseHslLegacy_default = parseHslLegacy;
|
|
810
807
|
function parseHsl(color, parsed) {
|
|
811
|
-
if (!parsed || parsed[0] !== "hsl" && parsed[0] !== "hsla") return
|
|
808
|
+
if (!parsed || parsed[0] !== "hsl" && parsed[0] !== "hsla") return;
|
|
812
809
|
const res = { mode: "hsl" };
|
|
813
810
|
const [, h, s, l, alpha] = parsed;
|
|
814
811
|
if (h.type !== Tok.None) {
|
|
815
|
-
if (h.type === Tok.Percentage) return
|
|
812
|
+
if (h.type === Tok.Percentage) return;
|
|
816
813
|
res.h = h.value;
|
|
817
814
|
}
|
|
818
815
|
if (s.type !== Tok.None) {
|
|
819
|
-
if (s.type === Tok.Hue) return
|
|
816
|
+
if (s.type === Tok.Hue) return;
|
|
820
817
|
res.s = s.value / 100;
|
|
821
818
|
}
|
|
822
819
|
if (l.type !== Tok.None) {
|
|
823
|
-
if (l.type === Tok.Hue) return
|
|
820
|
+
if (l.type === Tok.Hue) return;
|
|
824
821
|
res.l = l.value / 100;
|
|
825
822
|
}
|
|
826
823
|
if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
|
|
@@ -879,7 +876,7 @@ const averageAngle = (val) => {
|
|
|
879
876
|
let angle = Math.atan2(sum.sin, sum.cos) * 180 / Math.PI;
|
|
880
877
|
return angle < 0 ? 360 + angle : angle;
|
|
881
878
|
};
|
|
882
|
-
|
|
879
|
+
var definition_default$1 = {
|
|
883
880
|
mode: "hsl",
|
|
884
881
|
toMode: { rgb: convertHslToRgb },
|
|
885
882
|
fromMode: { rgb: convertRgbToHsl },
|
|
@@ -908,7 +905,6 @@ const definition$13 = {
|
|
|
908
905
|
difference: { h: differenceHueSaturation },
|
|
909
906
|
average: { h: averageAngle }
|
|
910
907
|
};
|
|
911
|
-
var definition_default$1 = definition$13;
|
|
912
908
|
function convertHsvToRgb({ h, s, v, alpha }) {
|
|
913
909
|
h = normalizeHue_default(h !== void 0 ? h : 0);
|
|
914
910
|
if (s === void 0) s = 0;
|
|
@@ -972,17 +968,17 @@ function convertRgbToHsv({ r: r$1, g, b, alpha }) {
|
|
|
972
968
|
if (r$1 === void 0) r$1 = 0;
|
|
973
969
|
if (g === void 0) g = 0;
|
|
974
970
|
if (b === void 0) b = 0;
|
|
975
|
-
let M = Math.max(r$1, g, b), m = Math.min(r$1, g, b);
|
|
971
|
+
let M$1 = Math.max(r$1, g, b), m = Math.min(r$1, g, b);
|
|
976
972
|
let res = {
|
|
977
973
|
mode: "hsv",
|
|
978
|
-
s: M === 0 ? 0 : 1 - m / M,
|
|
979
|
-
v: M
|
|
974
|
+
s: M$1 === 0 ? 0 : 1 - m / M$1,
|
|
975
|
+
v: M$1
|
|
980
976
|
};
|
|
981
|
-
if (M - m !== 0) res.h = (M === r$1 ? (g - b) / (M - m) + (g < b) * 6 : M === g ? (b - r$1) / (M - m) + 2 : (r$1 - g) / (M - m) + 4) * 60;
|
|
977
|
+
if (M$1 - m !== 0) res.h = (M$1 === r$1 ? (g - b) / (M$1 - m) + (g < b) * 6 : M$1 === g ? (b - r$1) / (M$1 - m) + 2 : (r$1 - g) / (M$1 - m) + 4) * 60;
|
|
982
978
|
if (alpha !== void 0) res.alpha = alpha;
|
|
983
979
|
return res;
|
|
984
980
|
}
|
|
985
|
-
|
|
981
|
+
var definition_default$19 = {
|
|
986
982
|
mode: "hsv",
|
|
987
983
|
toMode: { rgb: convertHsvToRgb },
|
|
988
984
|
parse: ["--hsv"],
|
|
@@ -1011,7 +1007,6 @@ const definition$12 = {
|
|
|
1011
1007
|
difference: { h: differenceHueSaturation },
|
|
1012
1008
|
average: { h: averageAngle }
|
|
1013
1009
|
};
|
|
1014
|
-
var definition_default$15 = definition$12;
|
|
1015
1010
|
function convertHwbToRgb({ h, w, b, alpha }) {
|
|
1016
1011
|
if (w === void 0) w = 0;
|
|
1017
1012
|
if (b === void 0) b = 0;
|
|
@@ -1028,40 +1023,39 @@ function convertHwbToRgb({ h, w, b, alpha }) {
|
|
|
1028
1023
|
});
|
|
1029
1024
|
}
|
|
1030
1025
|
function convertRgbToHwb(rgba) {
|
|
1031
|
-
let hsv = convertRgbToHsv(rgba);
|
|
1032
|
-
if (hsv === void 0) return void 0;
|
|
1033
|
-
let s = hsv.s !== void 0 ? hsv.s : 0;
|
|
1034
|
-
let v = hsv.v !== void 0 ? hsv.v : 0;
|
|
1026
|
+
let hsv$2 = convertRgbToHsv(rgba);
|
|
1027
|
+
if (hsv$2 === void 0) return void 0;
|
|
1028
|
+
let s = hsv$2.s !== void 0 ? hsv$2.s : 0;
|
|
1029
|
+
let v = hsv$2.v !== void 0 ? hsv$2.v : 0;
|
|
1035
1030
|
let res = {
|
|
1036
1031
|
mode: "hwb",
|
|
1037
1032
|
w: (1 - s) * v,
|
|
1038
1033
|
b: 1 - v
|
|
1039
1034
|
};
|
|
1040
|
-
if (hsv.h !== void 0) res.h = hsv.h;
|
|
1041
|
-
if (hsv.alpha !== void 0) res.alpha = hsv.alpha;
|
|
1035
|
+
if (hsv$2.h !== void 0) res.h = hsv$2.h;
|
|
1036
|
+
if (hsv$2.alpha !== void 0) res.alpha = hsv$2.alpha;
|
|
1042
1037
|
return res;
|
|
1043
1038
|
}
|
|
1044
1039
|
function ParseHwb(color, parsed) {
|
|
1045
|
-
if (!parsed || parsed[0] !== "hwb") return
|
|
1040
|
+
if (!parsed || parsed[0] !== "hwb") return;
|
|
1046
1041
|
const res = { mode: "hwb" };
|
|
1047
1042
|
const [, h, w, b, alpha] = parsed;
|
|
1048
1043
|
if (h.type !== Tok.None) {
|
|
1049
|
-
if (h.type === Tok.Percentage) return
|
|
1044
|
+
if (h.type === Tok.Percentage) return;
|
|
1050
1045
|
res.h = h.value;
|
|
1051
1046
|
}
|
|
1052
1047
|
if (w.type !== Tok.None) {
|
|
1053
|
-
if (w.type === Tok.Hue) return
|
|
1048
|
+
if (w.type === Tok.Hue) return;
|
|
1054
1049
|
res.w = w.value / 100;
|
|
1055
1050
|
}
|
|
1056
1051
|
if (b.type !== Tok.None) {
|
|
1057
|
-
if (b.type === Tok.Hue) return
|
|
1052
|
+
if (b.type === Tok.Hue) return;
|
|
1058
1053
|
res.b = b.value / 100;
|
|
1059
1054
|
}
|
|
1060
1055
|
if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
|
|
1061
1056
|
return res;
|
|
1062
1057
|
}
|
|
1063
|
-
var
|
|
1064
|
-
const definition$11 = {
|
|
1058
|
+
var definition_default$2 = {
|
|
1065
1059
|
mode: "hwb",
|
|
1066
1060
|
toMode: { rgb: convertHwbToRgb },
|
|
1067
1061
|
fromMode: { rgb: convertRgbToHwb },
|
|
@@ -1073,7 +1067,7 @@ const definition$11 = {
|
|
|
1073
1067
|
],
|
|
1074
1068
|
ranges: { h: [0, 360] },
|
|
1075
1069
|
gamut: "rgb",
|
|
1076
|
-
parse: [
|
|
1070
|
+
parse: [ParseHwb],
|
|
1077
1071
|
serialize: (c$1) => `hwb(${c$1.h !== void 0 ? c$1.h : "none"} ${c$1.w !== void 0 ? c$1.w * 100 + "%" : "none"} ${c$1.b !== void 0 ? c$1.b * 100 + "%" : "none"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : ""})`,
|
|
1078
1072
|
interpolate: {
|
|
1079
1073
|
h: {
|
|
@@ -1090,9 +1084,8 @@ const definition$11 = {
|
|
|
1090
1084
|
difference: { h: differenceHueNaive },
|
|
1091
1085
|
average: { h: averageAngle }
|
|
1092
1086
|
};
|
|
1093
|
-
|
|
1094
|
-
const
|
|
1095
|
-
const e$1 = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1087
|
+
const k = Math.pow(29, 3) / Math.pow(3, 3);
|
|
1088
|
+
const e = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1096
1089
|
const D50 = {
|
|
1097
1090
|
X: .3457 / .3585,
|
|
1098
1091
|
Y: 1,
|
|
@@ -1103,9 +1096,9 @@ const D65 = {
|
|
|
1103
1096
|
Y: 1,
|
|
1104
1097
|
Z: .3583 / .329
|
|
1105
1098
|
};
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
let fn$1 = (v) => Math.pow(v, 3) > e
|
|
1099
|
+
Math.pow(29, 3) / Math.pow(3, 3);
|
|
1100
|
+
Math.pow(6, 3) / Math.pow(29, 3);
|
|
1101
|
+
let fn$1 = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;
|
|
1109
1102
|
const convertLabToXyz50 = ({ l, a, b, alpha }) => {
|
|
1110
1103
|
if (l === void 0) l = 0;
|
|
1111
1104
|
if (a === void 0) a = 0;
|
|
@@ -1136,10 +1129,10 @@ const convertXyz50ToRgb = ({ x, y, z, alpha }) => {
|
|
|
1136
1129
|
return res;
|
|
1137
1130
|
};
|
|
1138
1131
|
var convertXyz50ToRgb_default = convertXyz50ToRgb;
|
|
1139
|
-
const convertLabToRgb = (lab) => convertXyz50ToRgb_default(convertLabToXyz50_default(lab));
|
|
1132
|
+
const convertLabToRgb = (lab$2) => convertXyz50ToRgb_default(convertLabToXyz50_default(lab$2));
|
|
1140
1133
|
var convertLabToRgb_default = convertLabToRgb;
|
|
1141
|
-
const convertRgbToXyz50 = (rgb$
|
|
1142
|
-
let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$
|
|
1134
|
+
const convertRgbToXyz50 = (rgb$4) => {
|
|
1135
|
+
let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);
|
|
1143
1136
|
let res = {
|
|
1144
1137
|
mode: "xyz50",
|
|
1145
1138
|
x: .436065742824811 * r$1 + .3851514688337912 * g + .14307845442264197 * b,
|
|
@@ -1150,7 +1143,7 @@ const convertRgbToXyz50 = (rgb$2) => {
|
|
|
1150
1143
|
return res;
|
|
1151
1144
|
};
|
|
1152
1145
|
var convertRgbToXyz50_default = convertRgbToXyz50;
|
|
1153
|
-
const f$1 = (value) => value > e
|
|
1146
|
+
const f$1 = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;
|
|
1154
1147
|
const convertXyz50ToLab = ({ x, y, z, alpha }) => {
|
|
1155
1148
|
if (x === void 0) x = 0;
|
|
1156
1149
|
if (y === void 0) y = 0;
|
|
@@ -1168,25 +1161,24 @@ const convertXyz50ToLab = ({ x, y, z, alpha }) => {
|
|
|
1168
1161
|
return res;
|
|
1169
1162
|
};
|
|
1170
1163
|
var convertXyz50ToLab_default = convertXyz50ToLab;
|
|
1171
|
-
const convertRgbToLab = (rgb$
|
|
1172
|
-
let res = convertXyz50ToLab_default(convertRgbToXyz50_default(rgb$
|
|
1173
|
-
if (rgb$
|
|
1164
|
+
const convertRgbToLab = (rgb$4) => {
|
|
1165
|
+
let res = convertXyz50ToLab_default(convertRgbToXyz50_default(rgb$4));
|
|
1166
|
+
if (rgb$4.r === rgb$4.b && rgb$4.b === rgb$4.g) res.a = res.b = 0;
|
|
1174
1167
|
return res;
|
|
1175
1168
|
};
|
|
1176
1169
|
var convertRgbToLab_default = convertRgbToLab;
|
|
1177
1170
|
function parseLab(color, parsed) {
|
|
1178
|
-
if (!parsed || parsed[0] !== "lab") return
|
|
1171
|
+
if (!parsed || parsed[0] !== "lab") return;
|
|
1179
1172
|
const res = { mode: "lab" };
|
|
1180
1173
|
const [, l, a, b, alpha] = parsed;
|
|
1181
|
-
if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return
|
|
1174
|
+
if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return;
|
|
1182
1175
|
if (l.type !== Tok.None) res.l = Math.min(Math.max(0, l.value), 100);
|
|
1183
1176
|
if (a.type !== Tok.None) res.a = a.type === Tok.Number ? a.value : a.value * 125 / 100;
|
|
1184
1177
|
if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value : b.value * 125 / 100;
|
|
1185
1178
|
if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
|
|
1186
1179
|
return res;
|
|
1187
1180
|
}
|
|
1188
|
-
var
|
|
1189
|
-
const definition$10 = {
|
|
1181
|
+
var definition_default$3 = {
|
|
1190
1182
|
mode: "lab",
|
|
1191
1183
|
toMode: {
|
|
1192
1184
|
xyz50: convertLabToXyz50_default,
|
|
@@ -1207,7 +1199,7 @@ const definition$10 = {
|
|
|
1207
1199
|
a: [-125, 125],
|
|
1208
1200
|
b: [-125, 125]
|
|
1209
1201
|
},
|
|
1210
|
-
parse: [
|
|
1202
|
+
parse: [parseLab],
|
|
1211
1203
|
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}` : ""})`,
|
|
1212
1204
|
interpolate: {
|
|
1213
1205
|
l: interpolatorLinear,
|
|
@@ -1219,10 +1211,9 @@ const definition$10 = {
|
|
|
1219
1211
|
}
|
|
1220
1212
|
}
|
|
1221
1213
|
};
|
|
1222
|
-
|
|
1223
|
-
const
|
|
1224
|
-
|
|
1225
|
-
let fn = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k;
|
|
1214
|
+
const k$1 = Math.pow(29, 3) / Math.pow(3, 3);
|
|
1215
|
+
const e$1 = Math.pow(6, 3) / Math.pow(29, 3);
|
|
1216
|
+
let fn = (v) => Math.pow(v, 3) > e$1 ? Math.pow(v, 3) : (116 * v - 16) / k$1;
|
|
1226
1217
|
const convertLab65ToXyz65 = ({ l, a, b, alpha }) => {
|
|
1227
1218
|
if (l === void 0) l = 0;
|
|
1228
1219
|
if (a === void 0) a = 0;
|
|
@@ -1240,9 +1231,9 @@ const convertLab65ToXyz65 = ({ l, a, b, alpha }) => {
|
|
|
1240
1231
|
return res;
|
|
1241
1232
|
};
|
|
1242
1233
|
var convertLab65ToXyz65_default = convertLab65ToXyz65;
|
|
1243
|
-
const convertLab65ToRgb = (lab) => convertXyz65ToRgb_default(convertLab65ToXyz65_default(lab));
|
|
1234
|
+
const convertLab65ToRgb = (lab$2) => convertXyz65ToRgb_default(convertLab65ToXyz65_default(lab$2));
|
|
1244
1235
|
var convertLab65ToRgb_default = convertLab65ToRgb;
|
|
1245
|
-
const f = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;
|
|
1236
|
+
const f = (value) => value > e$1 ? Math.cbrt(value) : (k$1 * value + 16) / 116;
|
|
1246
1237
|
const convertXyz65ToLab65 = ({ x, y, z, alpha }) => {
|
|
1247
1238
|
if (x === void 0) x = 0;
|
|
1248
1239
|
if (y === void 0) y = 0;
|
|
@@ -1260,13 +1251,13 @@ const convertXyz65ToLab65 = ({ x, y, z, alpha }) => {
|
|
|
1260
1251
|
return res;
|
|
1261
1252
|
};
|
|
1262
1253
|
var convertXyz65ToLab65_default = convertXyz65ToLab65;
|
|
1263
|
-
const convertRgbToLab65 = (rgb$
|
|
1264
|
-
let res = convertXyz65ToLab65_default(convertRgbToXyz65_default(rgb$
|
|
1265
|
-
if (rgb$
|
|
1254
|
+
const convertRgbToLab65 = (rgb$4) => {
|
|
1255
|
+
let res = convertXyz65ToLab65_default(convertRgbToXyz65_default(rgb$4));
|
|
1256
|
+
if (rgb$4.r === rgb$4.b && rgb$4.b === rgb$4.g) res.a = res.b = 0;
|
|
1266
1257
|
return res;
|
|
1267
1258
|
};
|
|
1268
1259
|
var convertRgbToLab65_default = convertRgbToLab65;
|
|
1269
|
-
|
|
1260
|
+
var definition_default$4 = {
|
|
1270
1261
|
...definition_default$3,
|
|
1271
1262
|
mode: "lab65",
|
|
1272
1263
|
parse: ["--lab-d65"],
|
|
@@ -1285,7 +1276,6 @@ const definition$9 = {
|
|
|
1285
1276
|
b: [-125, 125]
|
|
1286
1277
|
}
|
|
1287
1278
|
};
|
|
1288
|
-
var definition_default$4 = definition$9;
|
|
1289
1279
|
const convertLabToLch = ({ l, a, b, alpha }, mode = "lch") => {
|
|
1290
1280
|
if (a === void 0) a = 0;
|
|
1291
1281
|
if (b === void 0) b = 0;
|
|
@@ -1313,23 +1303,22 @@ const convertLchToLab = ({ l, c: c$1, h, alpha }, mode = "lab") => {
|
|
|
1313
1303
|
};
|
|
1314
1304
|
var convertLchToLab_default = convertLchToLab;
|
|
1315
1305
|
function parseLch(color, parsed) {
|
|
1316
|
-
if (!parsed || parsed[0] !== "lch") return
|
|
1306
|
+
if (!parsed || parsed[0] !== "lch") return;
|
|
1317
1307
|
const res = { mode: "lch" };
|
|
1318
1308
|
const [, l, c$1, h, alpha] = parsed;
|
|
1319
1309
|
if (l.type !== Tok.None) {
|
|
1320
|
-
if (l.type === Tok.Hue) return
|
|
1310
|
+
if (l.type === Tok.Hue) return;
|
|
1321
1311
|
res.l = Math.min(Math.max(0, l.value), 100);
|
|
1322
1312
|
}
|
|
1323
1313
|
if (c$1.type !== Tok.None) res.c = Math.max(0, c$1.type === Tok.Number ? c$1.value : c$1.value * 150 / 100);
|
|
1324
1314
|
if (h.type !== Tok.None) {
|
|
1325
|
-
if (h.type === Tok.Percentage) return
|
|
1315
|
+
if (h.type === Tok.Percentage) return;
|
|
1326
1316
|
res.h = h.value;
|
|
1327
1317
|
}
|
|
1328
1318
|
if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
|
|
1329
1319
|
return res;
|
|
1330
1320
|
}
|
|
1331
|
-
var
|
|
1332
|
-
const definition$8 = {
|
|
1321
|
+
var definition_default$5 = {
|
|
1333
1322
|
mode: "lch",
|
|
1334
1323
|
toMode: {
|
|
1335
1324
|
lab: convertLchToLab_default,
|
|
@@ -1350,7 +1339,7 @@ const definition$8 = {
|
|
|
1350
1339
|
c: [0, 150],
|
|
1351
1340
|
h: [0, 360]
|
|
1352
1341
|
},
|
|
1353
|
-
parse: [
|
|
1342
|
+
parse: [parseLch],
|
|
1354
1343
|
serialize: (c$1) => `lch(${c$1.l !== void 0 ? c$1.l : "none"} ${c$1.c !== void 0 ? c$1.c : "none"} ${c$1.h !== void 0 ? c$1.h : "none"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : ""})`,
|
|
1355
1344
|
interpolate: {
|
|
1356
1345
|
h: {
|
|
@@ -1367,8 +1356,26 @@ const definition$8 = {
|
|
|
1367
1356
|
difference: { h: differenceHueChroma },
|
|
1368
1357
|
average: { h: averageAngle }
|
|
1369
1358
|
};
|
|
1370
|
-
var definition_default$
|
|
1371
|
-
|
|
1359
|
+
var definition_default$23 = {
|
|
1360
|
+
...definition_default$5,
|
|
1361
|
+
mode: "lch65",
|
|
1362
|
+
parse: ["--lch-d65"],
|
|
1363
|
+
serialize: "--lch-d65",
|
|
1364
|
+
toMode: {
|
|
1365
|
+
lab65: (c$1) => convertLchToLab_default(c$1, "lab65"),
|
|
1366
|
+
rgb: (c$1) => convertLab65ToRgb_default(convertLchToLab_default(c$1, "lab65"))
|
|
1367
|
+
},
|
|
1368
|
+
fromMode: {
|
|
1369
|
+
rgb: (c$1) => convertLabToLch_default(convertRgbToLab65_default(c$1), "lch65"),
|
|
1370
|
+
lab65: (c$1) => convertLabToLch_default(c$1, "lch65")
|
|
1371
|
+
},
|
|
1372
|
+
ranges: {
|
|
1373
|
+
l: [0, 100],
|
|
1374
|
+
c: [0, 150],
|
|
1375
|
+
h: [0, 360]
|
|
1376
|
+
}
|
|
1377
|
+
};
|
|
1378
|
+
var definition_default$6 = {
|
|
1372
1379
|
...definition_default$12,
|
|
1373
1380
|
mode: "lrgb",
|
|
1374
1381
|
toMode: { rgb: convertLrgbToRgb_default },
|
|
@@ -1376,19 +1383,18 @@ const definition$7 = {
|
|
|
1376
1383
|
parse: ["srgb-linear"],
|
|
1377
1384
|
serialize: "srgb-linear"
|
|
1378
1385
|
};
|
|
1379
|
-
var definition_default$6 = definition$7;
|
|
1380
1386
|
const convertOklabToLrgb = ({ l, a, b, alpha }) => {
|
|
1381
1387
|
if (l === void 0) l = 0;
|
|
1382
1388
|
if (a === void 0) a = 0;
|
|
1383
1389
|
if (b === void 0) b = 0;
|
|
1384
1390
|
let L = Math.pow(l + .3963377773761749 * a + .2158037573099136 * b, 3);
|
|
1385
|
-
let M = Math.pow(l - .1055613458156586 * a - .0638541728258133 * b, 3);
|
|
1391
|
+
let M$1 = Math.pow(l - .1055613458156586 * a - .0638541728258133 * b, 3);
|
|
1386
1392
|
let S = Math.pow(l - .0894841775298119 * a - 1.2914855480194092 * b, 3);
|
|
1387
1393
|
let res = {
|
|
1388
1394
|
mode: "lrgb",
|
|
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
|
|
1395
|
+
r: 4.076741636075957 * L - 3.3077115392580616 * M$1 + .2309699031821044 * S,
|
|
1396
|
+
g: -1.2684379732850317 * L + 2.6097573492876887 * M$1 - .3413193760026573 * S,
|
|
1397
|
+
b: -.0041960761386756 * L - .7034186179359362 * M$1 + 1.7076146940746117 * S
|
|
1392
1398
|
};
|
|
1393
1399
|
if (alpha !== void 0) res.alpha = alpha;
|
|
1394
1400
|
return res;
|
|
@@ -1399,31 +1405,31 @@ const convertLrgbToOklab = ({ r: r$1, g, b, alpha }) => {
|
|
|
1399
1405
|
if (g === void 0) g = 0;
|
|
1400
1406
|
if (b === void 0) b = 0;
|
|
1401
1407
|
let L = Math.cbrt(.412221469470763 * r$1 + .5363325372617348 * g + .0514459932675022 * b);
|
|
1402
|
-
let M = Math.cbrt(.2119034958178252 * r$1 + .6806995506452344 * g + .1073969535369406 * b);
|
|
1408
|
+
let M$1 = Math.cbrt(.2119034958178252 * r$1 + .6806995506452344 * g + .1073969535369406 * b);
|
|
1403
1409
|
let S = Math.cbrt(.0883024591900564 * r$1 + .2817188391361215 * g + .6299787016738222 * b);
|
|
1404
1410
|
let res = {
|
|
1405
1411
|
mode: "oklab",
|
|
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
|
|
1412
|
+
l: .210454268309314 * L + .7936177747023054 * M$1 - .0040720430116193 * S,
|
|
1413
|
+
a: 1.9779985324311684 * L - 2.42859224204858 * M$1 + .450593709617411 * S,
|
|
1414
|
+
b: .0259040424655478 * L + .7827717124575296 * M$1 - .8086757549230774 * S
|
|
1409
1415
|
};
|
|
1410
1416
|
if (alpha !== void 0) res.alpha = alpha;
|
|
1411
1417
|
return res;
|
|
1412
1418
|
};
|
|
1413
1419
|
var convertLrgbToOklab_default = convertLrgbToOklab;
|
|
1414
|
-
const convertRgbToOklab = (rgb$
|
|
1415
|
-
let res = convertLrgbToOklab_default(convertRgbToLrgb_default(rgb$
|
|
1416
|
-
if (rgb$
|
|
1420
|
+
const convertRgbToOklab = (rgb$4) => {
|
|
1421
|
+
let res = convertLrgbToOklab_default(convertRgbToLrgb_default(rgb$4));
|
|
1422
|
+
if (rgb$4.r === rgb$4.b && rgb$4.b === rgb$4.g) res.a = res.b = 0;
|
|
1417
1423
|
return res;
|
|
1418
1424
|
};
|
|
1419
1425
|
var convertRgbToOklab_default = convertRgbToOklab;
|
|
1420
1426
|
const convertOklabToRgb = (c$1) => convertLrgbToRgb_default(convertOklabToLrgb_default(c$1));
|
|
1421
1427
|
var convertOklabToRgb_default = convertOklabToRgb;
|
|
1422
1428
|
function parseOklab(color, parsed) {
|
|
1423
|
-
if (!parsed || parsed[0] !== "oklab") return
|
|
1429
|
+
if (!parsed || parsed[0] !== "oklab") return;
|
|
1424
1430
|
const res = { mode: "oklab" };
|
|
1425
1431
|
const [, l, a, b, alpha] = parsed;
|
|
1426
|
-
if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return
|
|
1432
|
+
if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return;
|
|
1427
1433
|
if (l.type !== Tok.None) res.l = Math.min(Math.max(0, l.type === Tok.Number ? l.value : l.value / 100), 1);
|
|
1428
1434
|
if (a.type !== Tok.None) res.a = a.type === Tok.Number ? a.value : a.value * .4 / 100;
|
|
1429
1435
|
if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value : b.value * .4 / 100;
|
|
@@ -1431,7 +1437,7 @@ function parseOklab(color, parsed) {
|
|
|
1431
1437
|
return res;
|
|
1432
1438
|
}
|
|
1433
1439
|
var parseOklab_default = parseOklab;
|
|
1434
|
-
|
|
1440
|
+
var definition_default$7 = {
|
|
1435
1441
|
...definition_default$3,
|
|
1436
1442
|
mode: "oklab",
|
|
1437
1443
|
toMode: {
|
|
@@ -1450,25 +1456,24 @@ const definition$6 = {
|
|
|
1450
1456
|
parse: [parseOklab_default],
|
|
1451
1457
|
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
1458
|
};
|
|
1453
|
-
var definition_default$7 = definition$6;
|
|
1454
1459
|
function parseOklch(color, parsed) {
|
|
1455
|
-
if (!parsed || parsed[0] !== "oklch") return
|
|
1460
|
+
if (!parsed || parsed[0] !== "oklch") return;
|
|
1456
1461
|
const res = { mode: "oklch" };
|
|
1457
1462
|
const [, l, c$1, h, alpha] = parsed;
|
|
1458
1463
|
if (l.type !== Tok.None) {
|
|
1459
|
-
if (l.type === Tok.Hue) return
|
|
1464
|
+
if (l.type === Tok.Hue) return;
|
|
1460
1465
|
res.l = Math.min(Math.max(0, l.type === Tok.Number ? l.value : l.value / 100), 1);
|
|
1461
1466
|
}
|
|
1462
1467
|
if (c$1.type !== Tok.None) res.c = Math.max(0, c$1.type === Tok.Number ? c$1.value : c$1.value * .4 / 100);
|
|
1463
1468
|
if (h.type !== Tok.None) {
|
|
1464
|
-
if (h.type === Tok.Percentage) return
|
|
1469
|
+
if (h.type === Tok.Percentage) return;
|
|
1465
1470
|
res.h = h.value;
|
|
1466
1471
|
}
|
|
1467
1472
|
if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
|
|
1468
1473
|
return res;
|
|
1469
1474
|
}
|
|
1470
1475
|
var parseOklch_default = parseOklch;
|
|
1471
|
-
|
|
1476
|
+
var definition_default$8 = {
|
|
1472
1477
|
...definition_default$5,
|
|
1473
1478
|
mode: "oklch",
|
|
1474
1479
|
toMode: {
|
|
@@ -1487,9 +1492,8 @@ const definition$5 = {
|
|
|
1487
1492
|
h: [0, 360]
|
|
1488
1493
|
}
|
|
1489
1494
|
};
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$2);
|
|
1495
|
+
const convertP3ToXyz65 = (rgb$4) => {
|
|
1496
|
+
let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);
|
|
1493
1497
|
let res = {
|
|
1494
1498
|
mode: "xyz65",
|
|
1495
1499
|
x: .486570948648216 * r$1 + .265667693169093 * g + .1982172852343625 * b,
|
|
@@ -1513,7 +1517,7 @@ const convertXyz65ToP3 = ({ x, y, z, alpha }) => {
|
|
|
1513
1517
|
return res;
|
|
1514
1518
|
};
|
|
1515
1519
|
var convertXyz65ToP3_default = convertXyz65ToP3;
|
|
1516
|
-
|
|
1520
|
+
var definition_default$9 = {
|
|
1517
1521
|
...definition_default$12,
|
|
1518
1522
|
mode: "p3",
|
|
1519
1523
|
parse: ["display-p3"],
|
|
@@ -1527,10 +1531,9 @@ const definition$4 = {
|
|
|
1527
1531
|
xyz65: convertP3ToXyz65_default
|
|
1528
1532
|
}
|
|
1529
1533
|
};
|
|
1530
|
-
var definition_default$9 = definition$4;
|
|
1531
1534
|
const gamma$1 = (v) => {
|
|
1532
|
-
let abs = Math.abs(v);
|
|
1533
|
-
if (abs >= 1 / 512) return Math.sign(v) * Math.pow(abs, 1 / 1.8);
|
|
1535
|
+
let abs$1 = Math.abs(v);
|
|
1536
|
+
if (abs$1 >= 1 / 512) return Math.sign(v) * Math.pow(abs$1, 1 / 1.8);
|
|
1534
1537
|
return 16 * v;
|
|
1535
1538
|
};
|
|
1536
1539
|
const convertXyz50ToProphoto = ({ x, y, z, alpha }) => {
|
|
@@ -1548,25 +1551,25 @@ const convertXyz50ToProphoto = ({ x, y, z, alpha }) => {
|
|
|
1548
1551
|
};
|
|
1549
1552
|
var convertXyz50ToProphoto_default = convertXyz50ToProphoto;
|
|
1550
1553
|
const linearize$1 = (v = 0) => {
|
|
1551
|
-
let abs = Math.abs(v);
|
|
1552
|
-
if (abs >= 16 / 512) return Math.sign(v) * Math.pow(abs, 1.8);
|
|
1554
|
+
let abs$1 = Math.abs(v);
|
|
1555
|
+
if (abs$1 >= 16 / 512) return Math.sign(v) * Math.pow(abs$1, 1.8);
|
|
1553
1556
|
return v / 16;
|
|
1554
1557
|
};
|
|
1555
|
-
const convertProphotoToXyz50 = (prophoto) => {
|
|
1556
|
-
let r$1 = linearize$1(prophoto.r);
|
|
1557
|
-
let g = linearize$1(prophoto.g);
|
|
1558
|
-
let b = linearize$1(prophoto.b);
|
|
1558
|
+
const convertProphotoToXyz50 = (prophoto$2) => {
|
|
1559
|
+
let r$1 = linearize$1(prophoto$2.r);
|
|
1560
|
+
let g = linearize$1(prophoto$2.g);
|
|
1561
|
+
let b = linearize$1(prophoto$2.b);
|
|
1559
1562
|
let res = {
|
|
1560
1563
|
mode: "xyz50",
|
|
1561
1564
|
x: .7977666449006423 * r$1 + .1351812974005331 * g + .0313477341283922 * b,
|
|
1562
1565
|
y: .2880748288194013 * r$1 + .7118352342418731 * g + 899369387256e-16 * b,
|
|
1563
1566
|
z: 0 * r$1 + 0 * g + .8251046025104602 * b
|
|
1564
1567
|
};
|
|
1565
|
-
if (prophoto.alpha !== void 0) res.alpha = prophoto.alpha;
|
|
1568
|
+
if (prophoto$2.alpha !== void 0) res.alpha = prophoto$2.alpha;
|
|
1566
1569
|
return res;
|
|
1567
1570
|
};
|
|
1568
1571
|
var convertProphotoToXyz50_default = convertProphotoToXyz50;
|
|
1569
|
-
|
|
1572
|
+
var definition_default$10 = {
|
|
1570
1573
|
...definition_default$12,
|
|
1571
1574
|
mode: "prophoto",
|
|
1572
1575
|
parse: ["prophoto-rgb"],
|
|
@@ -1580,12 +1583,11 @@ const definition$3 = {
|
|
|
1580
1583
|
rgb: (color) => convertXyz50ToRgb_default(convertProphotoToXyz50_default(color))
|
|
1581
1584
|
}
|
|
1582
1585
|
};
|
|
1583
|
-
var definition_default$10 = definition$3;
|
|
1584
1586
|
const α$1 = 1.09929682680944;
|
|
1585
1587
|
const β$1 = .018053968510807;
|
|
1586
1588
|
const gamma = (v) => {
|
|
1587
|
-
const abs = Math.abs(v);
|
|
1588
|
-
if (abs > β$1) return (Math.sign(v) || 1) * (α$1 * Math.pow(abs, .45) - (α$1 - 1));
|
|
1589
|
+
const abs$1 = Math.abs(v);
|
|
1590
|
+
if (abs$1 > β$1) return (Math.sign(v) || 1) * (α$1 * Math.pow(abs$1, .45) - (α$1 - 1));
|
|
1589
1591
|
return 4.5 * v;
|
|
1590
1592
|
};
|
|
1591
1593
|
const convertXyz65ToRec2020 = ({ x, y, z, alpha }) => {
|
|
@@ -1605,25 +1607,25 @@ var convertXyz65ToRec2020_default = convertXyz65ToRec2020;
|
|
|
1605
1607
|
const α = 1.09929682680944;
|
|
1606
1608
|
const β = .018053968510807;
|
|
1607
1609
|
const linearize = (v = 0) => {
|
|
1608
|
-
let abs = Math.abs(v);
|
|
1609
|
-
if (abs < β * 4.5) return v / 4.5;
|
|
1610
|
-
return (Math.sign(v) || 1) * Math.pow((abs + α - 1) / α, 1 / .45);
|
|
1611
|
-
};
|
|
1612
|
-
const convertRec2020ToXyz65 = (rec2020) => {
|
|
1613
|
-
let r$1 = linearize(rec2020.r);
|
|
1614
|
-
let g = linearize(rec2020.g);
|
|
1615
|
-
let b = linearize(rec2020.b);
|
|
1610
|
+
let abs$1 = Math.abs(v);
|
|
1611
|
+
if (abs$1 < β * 4.5) return v / 4.5;
|
|
1612
|
+
return (Math.sign(v) || 1) * Math.pow((abs$1 + α - 1) / α, 1 / .45);
|
|
1613
|
+
};
|
|
1614
|
+
const convertRec2020ToXyz65 = (rec2020$2) => {
|
|
1615
|
+
let r$1 = linearize(rec2020$2.r);
|
|
1616
|
+
let g = linearize(rec2020$2.g);
|
|
1617
|
+
let b = linearize(rec2020$2.b);
|
|
1616
1618
|
let res = {
|
|
1617
1619
|
mode: "xyz65",
|
|
1618
1620
|
x: .6369580483012911 * r$1 + .1446169035862083 * g + .1688809751641721 * b,
|
|
1619
1621
|
y: .262700212011267 * r$1 + .6779980715188708 * g + .059301716469862 * b,
|
|
1620
1622
|
z: 0 * r$1 + .0280726930490874 * g + 1.0609850577107909 * b
|
|
1621
1623
|
};
|
|
1622
|
-
if (rec2020.alpha !== void 0) res.alpha = rec2020.alpha;
|
|
1624
|
+
if (rec2020$2.alpha !== void 0) res.alpha = rec2020$2.alpha;
|
|
1623
1625
|
return res;
|
|
1624
1626
|
};
|
|
1625
1627
|
var convertRec2020ToXyz65_default = convertRec2020ToXyz65;
|
|
1626
|
-
|
|
1628
|
+
var definition_default$11 = {
|
|
1627
1629
|
...definition_default$12,
|
|
1628
1630
|
mode: "rec2020",
|
|
1629
1631
|
fromMode: {
|
|
@@ -1637,8 +1639,7 @@ const definition$2 = {
|
|
|
1637
1639
|
parse: ["rec2020"],
|
|
1638
1640
|
serialize: "rec2020"
|
|
1639
1641
|
};
|
|
1640
|
-
var definition_default$
|
|
1641
|
-
const definition$1 = {
|
|
1642
|
+
var definition_default$13 = {
|
|
1642
1643
|
mode: "xyz50",
|
|
1643
1644
|
parse: ["xyz-d50"],
|
|
1644
1645
|
serialize: "xyz-d50",
|
|
@@ -1671,9 +1672,8 @@ const definition$1 = {
|
|
|
1671
1672
|
}
|
|
1672
1673
|
}
|
|
1673
1674
|
};
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
let { x, y, z, alpha } = xyz65;
|
|
1675
|
+
const convertXyz65ToXyz50 = (xyz65$2) => {
|
|
1676
|
+
let { x, y, z, alpha } = xyz65$2;
|
|
1677
1677
|
if (x === void 0) x = 0;
|
|
1678
1678
|
if (y === void 0) y = 0;
|
|
1679
1679
|
if (z === void 0) z = 0;
|
|
@@ -1687,8 +1687,8 @@ const convertXyz65ToXyz50 = (xyz65) => {
|
|
|
1687
1687
|
return res;
|
|
1688
1688
|
};
|
|
1689
1689
|
var convertXyz65ToXyz50_default = convertXyz65ToXyz50;
|
|
1690
|
-
const convertXyz50ToXyz65 = (xyz50) => {
|
|
1691
|
-
let { x, y, z, alpha } = xyz50;
|
|
1690
|
+
const convertXyz50ToXyz65 = (xyz50$2) => {
|
|
1691
|
+
let { x, y, z, alpha } = xyz50$2;
|
|
1692
1692
|
if (x === void 0) x = 0;
|
|
1693
1693
|
if (y === void 0) y = 0;
|
|
1694
1694
|
if (z === void 0) z = 0;
|
|
@@ -1701,8 +1701,7 @@ const convertXyz50ToXyz65 = (xyz50) => {
|
|
|
1701
1701
|
if (alpha !== void 0) res.alpha = alpha;
|
|
1702
1702
|
return res;
|
|
1703
1703
|
};
|
|
1704
|
-
var
|
|
1705
|
-
const definition = {
|
|
1704
|
+
var definition_default$14 = {
|
|
1706
1705
|
mode: "xyz65",
|
|
1707
1706
|
toMode: {
|
|
1708
1707
|
rgb: convertXyz65ToRgb_default,
|
|
@@ -1710,7 +1709,7 @@ const definition = {
|
|
|
1710
1709
|
},
|
|
1711
1710
|
fromMode: {
|
|
1712
1711
|
rgb: convertRgbToXyz65_default,
|
|
1713
|
-
xyz50:
|
|
1712
|
+
xyz50: convertXyz50ToXyz65
|
|
1714
1713
|
},
|
|
1715
1714
|
ranges: {
|
|
1716
1715
|
x: [0, .95],
|
|
@@ -1735,7 +1734,717 @@ const definition = {
|
|
|
1735
1734
|
}
|
|
1736
1735
|
}
|
|
1737
1736
|
};
|
|
1738
|
-
|
|
1737
|
+
useMode(definition_default);
|
|
1738
|
+
useMode(definition_default$1);
|
|
1739
|
+
useMode(definition_default$19);
|
|
1740
|
+
useMode(definition_default$2);
|
|
1741
|
+
useMode(definition_default$3);
|
|
1742
|
+
useMode(definition_default$4);
|
|
1743
|
+
useMode(definition_default$5);
|
|
1744
|
+
useMode(definition_default$23);
|
|
1745
|
+
useMode(definition_default$6);
|
|
1746
|
+
useMode(definition_default$7);
|
|
1747
|
+
useMode(definition_default$8);
|
|
1748
|
+
useMode(definition_default$9);
|
|
1749
|
+
useMode(definition_default$10);
|
|
1750
|
+
useMode(definition_default$11);
|
|
1751
|
+
useMode(definition_default$12);
|
|
1752
|
+
useMode(definition_default$13);
|
|
1753
|
+
useMode(definition_default$14);
|
|
1754
|
+
const M = [
|
|
1755
|
+
-.14861,
|
|
1756
|
+
1.78277,
|
|
1757
|
+
-.29227,
|
|
1758
|
+
-.90649,
|
|
1759
|
+
1.97294,
|
|
1760
|
+
0
|
|
1761
|
+
];
|
|
1762
|
+
const degToRad = Math.PI / 180;
|
|
1763
|
+
const radToDeg = 180 / Math.PI;
|
|
1764
|
+
let DE = M[3] * M[4];
|
|
1765
|
+
let BE = M[1] * M[4];
|
|
1766
|
+
let BCAD = M[1] * M[2] - M[0] * M[3];
|
|
1767
|
+
const convertRgbToCubehelix = ({ r: r$1, g, b, alpha }) => {
|
|
1768
|
+
if (r$1 === void 0) r$1 = 0;
|
|
1769
|
+
if (g === void 0) g = 0;
|
|
1770
|
+
if (b === void 0) b = 0;
|
|
1771
|
+
let l = (BCAD * b + r$1 * DE - g * BE) / (BCAD + DE - BE);
|
|
1772
|
+
let x = b - l;
|
|
1773
|
+
let y = (M[4] * (g - l) - M[2] * x) / M[3];
|
|
1774
|
+
let res = {
|
|
1775
|
+
mode: "cubehelix",
|
|
1776
|
+
l,
|
|
1777
|
+
s: l === 0 || l === 1 ? void 0 : Math.sqrt(x * x + y * y) / (M[4] * l * (1 - l))
|
|
1778
|
+
};
|
|
1779
|
+
if (res.s) res.h = Math.atan2(y, x) * radToDeg - 120;
|
|
1780
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
1781
|
+
return res;
|
|
1782
|
+
};
|
|
1783
|
+
var convertRgbToCubehelix_default = convertRgbToCubehelix;
|
|
1784
|
+
const convertCubehelixToRgb = ({ h, s, l, alpha }) => {
|
|
1785
|
+
let res = { mode: "rgb" };
|
|
1786
|
+
h = (h === void 0 ? 0 : h + 120) * degToRad;
|
|
1787
|
+
if (l === void 0) l = 0;
|
|
1788
|
+
let amp = s === void 0 ? 0 : s * l * (1 - l);
|
|
1789
|
+
let cosh = Math.cos(h);
|
|
1790
|
+
let sinh = Math.sin(h);
|
|
1791
|
+
res.r = l + amp * (M[0] * cosh + M[1] * sinh);
|
|
1792
|
+
res.g = l + amp * (M[2] * cosh + M[3] * sinh);
|
|
1793
|
+
res.b = l + amp * (M[4] * cosh + M[5] * sinh);
|
|
1794
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
1795
|
+
return res;
|
|
1796
|
+
};
|
|
1797
|
+
var definition_default$15 = {
|
|
1798
|
+
mode: "cubehelix",
|
|
1799
|
+
channels: [
|
|
1800
|
+
"h",
|
|
1801
|
+
"s",
|
|
1802
|
+
"l",
|
|
1803
|
+
"alpha"
|
|
1804
|
+
],
|
|
1805
|
+
parse: ["--cubehelix"],
|
|
1806
|
+
serialize: "--cubehelix",
|
|
1807
|
+
ranges: {
|
|
1808
|
+
h: [0, 360],
|
|
1809
|
+
s: [0, 4.614],
|
|
1810
|
+
l: [0, 1]
|
|
1811
|
+
},
|
|
1812
|
+
fromMode: { rgb: convertRgbToCubehelix_default },
|
|
1813
|
+
toMode: { rgb: convertCubehelixToRgb },
|
|
1814
|
+
interpolate: {
|
|
1815
|
+
h: {
|
|
1816
|
+
use: interpolatorLinear,
|
|
1817
|
+
fixup: fixupHueShorter
|
|
1818
|
+
},
|
|
1819
|
+
s: interpolatorLinear,
|
|
1820
|
+
l: interpolatorLinear,
|
|
1821
|
+
alpha: {
|
|
1822
|
+
use: interpolatorLinear,
|
|
1823
|
+
fixup: fixupAlpha
|
|
1824
|
+
}
|
|
1825
|
+
},
|
|
1826
|
+
difference: { h: differenceHueSaturation },
|
|
1827
|
+
average: { h: averageAngle }
|
|
1828
|
+
};
|
|
1829
|
+
const kE = 1;
|
|
1830
|
+
const kCH = 1;
|
|
1831
|
+
const θ = 26 / 180 * Math.PI;
|
|
1832
|
+
const cosθ = Math.cos(θ);
|
|
1833
|
+
const sinθ = Math.sin(θ);
|
|
1834
|
+
const factor = 100 / Math.log(139 / 100);
|
|
1835
|
+
const convertDlchToLab65 = ({ l, c: c$1, h, alpha }) => {
|
|
1836
|
+
if (l === void 0) l = 0;
|
|
1837
|
+
if (c$1 === void 0) c$1 = 0;
|
|
1838
|
+
if (h === void 0) h = 0;
|
|
1839
|
+
let res = {
|
|
1840
|
+
mode: "lab65",
|
|
1841
|
+
l: (Math.exp(l * kE / factor) - 1) / .0039
|
|
1842
|
+
};
|
|
1843
|
+
let G = (Math.exp(.0435 * c$1 * kCH * kE) - 1) / .075;
|
|
1844
|
+
let e$3 = G * Math.cos(h / 180 * Math.PI - θ);
|
|
1845
|
+
let f$2 = G * Math.sin(h / 180 * Math.PI - θ);
|
|
1846
|
+
res.a = e$3 * cosθ - f$2 / .83 * sinθ;
|
|
1847
|
+
res.b = e$3 * sinθ + f$2 / .83 * cosθ;
|
|
1848
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
1849
|
+
return res;
|
|
1850
|
+
};
|
|
1851
|
+
var convertDlchToLab65_default = convertDlchToLab65;
|
|
1852
|
+
const convertLab65ToDlch = ({ l, a, b, alpha }) => {
|
|
1853
|
+
if (l === void 0) l = 0;
|
|
1854
|
+
if (a === void 0) a = 0;
|
|
1855
|
+
if (b === void 0) b = 0;
|
|
1856
|
+
let e$3 = a * cosθ + b * sinθ;
|
|
1857
|
+
let f$2 = .83 * (b * cosθ - a * sinθ);
|
|
1858
|
+
let G = Math.sqrt(e$3 * e$3 + f$2 * f$2);
|
|
1859
|
+
let res = {
|
|
1860
|
+
mode: "dlch",
|
|
1861
|
+
l: factor / kE * Math.log(1 + .0039 * l),
|
|
1862
|
+
c: Math.log(1 + .075 * G) / (.0435 * kCH * kE)
|
|
1863
|
+
};
|
|
1864
|
+
if (res.c) res.h = normalizeHue_default((Math.atan2(f$2, e$3) + θ) / Math.PI * 180);
|
|
1865
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
1866
|
+
return res;
|
|
1867
|
+
};
|
|
1868
|
+
var convertLab65ToDlch_default = convertLab65ToDlch;
|
|
1869
|
+
const convertDlabToLab65 = (c$1) => convertDlchToLab65_default(convertLabToLch_default(c$1, "dlch"));
|
|
1870
|
+
const convertLab65ToDlab = (c$1) => convertLchToLab_default(convertLab65ToDlch_default(c$1), "dlab");
|
|
1871
|
+
var definition_default$16 = {
|
|
1872
|
+
mode: "dlab",
|
|
1873
|
+
parse: ["--din99o-lab"],
|
|
1874
|
+
serialize: "--din99o-lab",
|
|
1875
|
+
toMode: {
|
|
1876
|
+
lab65: convertDlabToLab65,
|
|
1877
|
+
rgb: (c$1) => convertLab65ToRgb_default(convertDlabToLab65(c$1))
|
|
1878
|
+
},
|
|
1879
|
+
fromMode: {
|
|
1880
|
+
lab65: convertLab65ToDlab,
|
|
1881
|
+
rgb: (c$1) => convertLab65ToDlab(convertRgbToLab65_default(c$1))
|
|
1882
|
+
},
|
|
1883
|
+
channels: [
|
|
1884
|
+
"l",
|
|
1885
|
+
"a",
|
|
1886
|
+
"b",
|
|
1887
|
+
"alpha"
|
|
1888
|
+
],
|
|
1889
|
+
ranges: {
|
|
1890
|
+
l: [0, 100],
|
|
1891
|
+
a: [-40.09, 45.501],
|
|
1892
|
+
b: [-40.469, 44.344]
|
|
1893
|
+
},
|
|
1894
|
+
interpolate: {
|
|
1895
|
+
l: interpolatorLinear,
|
|
1896
|
+
a: interpolatorLinear,
|
|
1897
|
+
b: interpolatorLinear,
|
|
1898
|
+
alpha: {
|
|
1899
|
+
use: interpolatorLinear,
|
|
1900
|
+
fixup: fixupAlpha
|
|
1901
|
+
}
|
|
1902
|
+
}
|
|
1903
|
+
};
|
|
1904
|
+
var definition_default$17 = {
|
|
1905
|
+
mode: "dlch",
|
|
1906
|
+
parse: ["--din99o-lch"],
|
|
1907
|
+
serialize: "--din99o-lch",
|
|
1908
|
+
toMode: {
|
|
1909
|
+
lab65: convertDlchToLab65_default,
|
|
1910
|
+
dlab: (c$1) => convertLchToLab_default(c$1, "dlab"),
|
|
1911
|
+
rgb: (c$1) => convertLab65ToRgb_default(convertDlchToLab65_default(c$1))
|
|
1912
|
+
},
|
|
1913
|
+
fromMode: {
|
|
1914
|
+
lab65: convertLab65ToDlch_default,
|
|
1915
|
+
dlab: (c$1) => convertLabToLch_default(c$1, "dlch"),
|
|
1916
|
+
rgb: (c$1) => convertLab65ToDlch_default(convertRgbToLab65_default(c$1))
|
|
1917
|
+
},
|
|
1918
|
+
channels: [
|
|
1919
|
+
"l",
|
|
1920
|
+
"c",
|
|
1921
|
+
"h",
|
|
1922
|
+
"alpha"
|
|
1923
|
+
],
|
|
1924
|
+
ranges: {
|
|
1925
|
+
l: [0, 100],
|
|
1926
|
+
c: [0, 51.484],
|
|
1927
|
+
h: [0, 360]
|
|
1928
|
+
},
|
|
1929
|
+
interpolate: {
|
|
1930
|
+
l: interpolatorLinear,
|
|
1931
|
+
c: interpolatorLinear,
|
|
1932
|
+
h: {
|
|
1933
|
+
use: interpolatorLinear,
|
|
1934
|
+
fixup: fixupHueShorter
|
|
1935
|
+
},
|
|
1936
|
+
alpha: {
|
|
1937
|
+
use: interpolatorLinear,
|
|
1938
|
+
fixup: fixupAlpha
|
|
1939
|
+
}
|
|
1940
|
+
},
|
|
1941
|
+
difference: { h: differenceHueChroma },
|
|
1942
|
+
average: { h: averageAngle }
|
|
1943
|
+
};
|
|
1944
|
+
function convertHsiToRgb({ h, s, i, alpha }) {
|
|
1945
|
+
h = normalizeHue_default(h !== void 0 ? h : 0);
|
|
1946
|
+
if (s === void 0) s = 0;
|
|
1947
|
+
if (i === void 0) i = 0;
|
|
1948
|
+
let f$2 = Math.abs(h / 60 % 2 - 1);
|
|
1949
|
+
let res;
|
|
1950
|
+
switch (Math.floor(h / 60)) {
|
|
1951
|
+
case 0:
|
|
1952
|
+
res = {
|
|
1953
|
+
r: i * (1 + s * (3 / (2 - f$2) - 1)),
|
|
1954
|
+
g: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1)),
|
|
1955
|
+
b: i * (1 - s)
|
|
1956
|
+
};
|
|
1957
|
+
break;
|
|
1958
|
+
case 1:
|
|
1959
|
+
res = {
|
|
1960
|
+
r: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1)),
|
|
1961
|
+
g: i * (1 + s * (3 / (2 - f$2) - 1)),
|
|
1962
|
+
b: i * (1 - s)
|
|
1963
|
+
};
|
|
1964
|
+
break;
|
|
1965
|
+
case 2:
|
|
1966
|
+
res = {
|
|
1967
|
+
r: i * (1 - s),
|
|
1968
|
+
g: i * (1 + s * (3 / (2 - f$2) - 1)),
|
|
1969
|
+
b: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1))
|
|
1970
|
+
};
|
|
1971
|
+
break;
|
|
1972
|
+
case 3:
|
|
1973
|
+
res = {
|
|
1974
|
+
r: i * (1 - s),
|
|
1975
|
+
g: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1)),
|
|
1976
|
+
b: i * (1 + s * (3 / (2 - f$2) - 1))
|
|
1977
|
+
};
|
|
1978
|
+
break;
|
|
1979
|
+
case 4:
|
|
1980
|
+
res = {
|
|
1981
|
+
r: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1)),
|
|
1982
|
+
g: i * (1 - s),
|
|
1983
|
+
b: i * (1 + s * (3 / (2 - f$2) - 1))
|
|
1984
|
+
};
|
|
1985
|
+
break;
|
|
1986
|
+
case 5:
|
|
1987
|
+
res = {
|
|
1988
|
+
r: i * (1 + s * (3 / (2 - f$2) - 1)),
|
|
1989
|
+
g: i * (1 - s),
|
|
1990
|
+
b: i * (1 + s * (3 * (1 - f$2) / (2 - f$2) - 1))
|
|
1991
|
+
};
|
|
1992
|
+
break;
|
|
1993
|
+
default: res = {
|
|
1994
|
+
r: i * (1 - s),
|
|
1995
|
+
g: i * (1 - s),
|
|
1996
|
+
b: i * (1 - s)
|
|
1997
|
+
};
|
|
1998
|
+
}
|
|
1999
|
+
res.mode = "rgb";
|
|
2000
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2001
|
+
return res;
|
|
2002
|
+
}
|
|
2003
|
+
function convertRgbToHsi({ r: r$1, g, b, alpha }) {
|
|
2004
|
+
if (r$1 === void 0) r$1 = 0;
|
|
2005
|
+
if (g === void 0) g = 0;
|
|
2006
|
+
if (b === void 0) b = 0;
|
|
2007
|
+
let M$1 = Math.max(r$1, g, b), m = Math.min(r$1, g, b);
|
|
2008
|
+
let res = {
|
|
2009
|
+
mode: "hsi",
|
|
2010
|
+
s: r$1 + g + b === 0 ? 0 : 1 - 3 * m / (r$1 + g + b),
|
|
2011
|
+
i: (r$1 + g + b) / 3
|
|
2012
|
+
};
|
|
2013
|
+
if (M$1 - m !== 0) res.h = (M$1 === r$1 ? (g - b) / (M$1 - m) + (g < b) * 6 : M$1 === g ? (b - r$1) / (M$1 - m) + 2 : (r$1 - g) / (M$1 - m) + 4) * 60;
|
|
2014
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2015
|
+
return res;
|
|
2016
|
+
}
|
|
2017
|
+
var definition_default$18 = {
|
|
2018
|
+
mode: "hsi",
|
|
2019
|
+
toMode: { rgb: convertHsiToRgb },
|
|
2020
|
+
parse: ["--hsi"],
|
|
2021
|
+
serialize: "--hsi",
|
|
2022
|
+
fromMode: { rgb: convertRgbToHsi },
|
|
2023
|
+
channels: [
|
|
2024
|
+
"h",
|
|
2025
|
+
"s",
|
|
2026
|
+
"i",
|
|
2027
|
+
"alpha"
|
|
2028
|
+
],
|
|
2029
|
+
ranges: { h: [0, 360] },
|
|
2030
|
+
gamut: "rgb",
|
|
2031
|
+
interpolate: {
|
|
2032
|
+
h: {
|
|
2033
|
+
use: interpolatorLinear,
|
|
2034
|
+
fixup: fixupHueShorter
|
|
2035
|
+
},
|
|
2036
|
+
s: interpolatorLinear,
|
|
2037
|
+
i: interpolatorLinear,
|
|
2038
|
+
alpha: {
|
|
2039
|
+
use: interpolatorLinear,
|
|
2040
|
+
fixup: fixupAlpha
|
|
2041
|
+
}
|
|
2042
|
+
},
|
|
2043
|
+
difference: { h: differenceHueSaturation },
|
|
2044
|
+
average: { h: averageAngle }
|
|
2045
|
+
};
|
|
2046
|
+
const YW = 203;
|
|
2047
|
+
const M1 = .1593017578125;
|
|
2048
|
+
const M2 = 78.84375;
|
|
2049
|
+
const C1 = .8359375;
|
|
2050
|
+
const C2 = 18.8515625;
|
|
2051
|
+
const C3 = 18.6875;
|
|
2052
|
+
function transferPqDecode(v) {
|
|
2053
|
+
if (v < 0) return 0;
|
|
2054
|
+
const c$1 = Math.pow(v, 1 / M2);
|
|
2055
|
+
return 1e4 * Math.pow(Math.max(0, c$1 - C1) / (C2 - C3 * c$1), 1 / M1);
|
|
2056
|
+
}
|
|
2057
|
+
function transferPqEncode(v) {
|
|
2058
|
+
if (v < 0) return 0;
|
|
2059
|
+
const c$1 = Math.pow(v / 1e4, M1);
|
|
2060
|
+
return Math.pow((C1 + C2 * c$1) / (1 + C3 * c$1), M2);
|
|
2061
|
+
}
|
|
2062
|
+
const toRel = (c$1) => Math.max(c$1 / YW, 0);
|
|
2063
|
+
const convertItpToXyz65 = ({ i, t, p: p$2, alpha }) => {
|
|
2064
|
+
if (i === void 0) i = 0;
|
|
2065
|
+
if (t === void 0) t = 0;
|
|
2066
|
+
if (p$2 === void 0) p$2 = 0;
|
|
2067
|
+
const l = transferPqDecode(i + .008609037037932761 * t + .11102962500302593 * p$2);
|
|
2068
|
+
const m = transferPqDecode(i - .00860903703793275 * t - .11102962500302599 * p$2);
|
|
2069
|
+
const s = transferPqDecode(i + .5600313357106791 * t - .32062717498731885 * p$2);
|
|
2070
|
+
const res = {
|
|
2071
|
+
mode: "xyz65",
|
|
2072
|
+
x: toRel(2.070152218389422 * l - 1.3263473389671556 * m + .2066510476294051 * s),
|
|
2073
|
+
y: toRel(.3647385209748074 * l + .680566024947227 * m - .0453045459220346 * s),
|
|
2074
|
+
z: toRel(-.049747207535812 * l - .0492609666966138 * m + 1.1880659249923042 * s)
|
|
2075
|
+
};
|
|
2076
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2077
|
+
return res;
|
|
2078
|
+
};
|
|
2079
|
+
var convertItpToXyz65_default = convertItpToXyz65;
|
|
2080
|
+
const toAbs = (c$1 = 0) => Math.max(c$1 * YW, 0);
|
|
2081
|
+
const convertXyz65ToItp = ({ x, y, z, alpha }) => {
|
|
2082
|
+
const absX = toAbs(x);
|
|
2083
|
+
const absY = toAbs(y);
|
|
2084
|
+
const absZ = toAbs(z);
|
|
2085
|
+
const l = transferPqEncode(.3592832590121217 * absX + .6976051147779502 * absY - .0358915932320289 * absZ);
|
|
2086
|
+
const m = transferPqEncode(-.1920808463704995 * absX + 1.1004767970374323 * absY + .0753748658519118 * absZ);
|
|
2087
|
+
const s = transferPqEncode(.0070797844607477 * absX + .0748396662186366 * absY + .8433265453898765 * absZ);
|
|
2088
|
+
const i = .5 * l + .5 * m;
|
|
2089
|
+
const t = 1.61376953125 * l - 3.323486328125 * m + 1.709716796875 * s;
|
|
2090
|
+
const p$2 = 4.378173828125 * l - 4.24560546875 * m - .132568359375 * s;
|
|
2091
|
+
const res = {
|
|
2092
|
+
mode: "itp",
|
|
2093
|
+
i,
|
|
2094
|
+
t,
|
|
2095
|
+
p: p$2
|
|
2096
|
+
};
|
|
2097
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2098
|
+
return res;
|
|
2099
|
+
};
|
|
2100
|
+
var convertXyz65ToItp_default = convertXyz65ToItp;
|
|
2101
|
+
var definition_default$20 = {
|
|
2102
|
+
mode: "itp",
|
|
2103
|
+
channels: [
|
|
2104
|
+
"i",
|
|
2105
|
+
"t",
|
|
2106
|
+
"p",
|
|
2107
|
+
"alpha"
|
|
2108
|
+
],
|
|
2109
|
+
parse: ["--ictcp"],
|
|
2110
|
+
serialize: "--ictcp",
|
|
2111
|
+
toMode: {
|
|
2112
|
+
xyz65: convertItpToXyz65_default,
|
|
2113
|
+
rgb: (color) => convertXyz65ToRgb_default(convertItpToXyz65_default(color))
|
|
2114
|
+
},
|
|
2115
|
+
fromMode: {
|
|
2116
|
+
xyz65: convertXyz65ToItp_default,
|
|
2117
|
+
rgb: (color) => convertXyz65ToItp_default(convertRgbToXyz65_default(color))
|
|
2118
|
+
},
|
|
2119
|
+
ranges: {
|
|
2120
|
+
i: [0, .581],
|
|
2121
|
+
t: [-.369, .272],
|
|
2122
|
+
p: [-.164, .331]
|
|
2123
|
+
},
|
|
2124
|
+
interpolate: {
|
|
2125
|
+
i: interpolatorLinear,
|
|
2126
|
+
t: interpolatorLinear,
|
|
2127
|
+
p: interpolatorLinear,
|
|
2128
|
+
alpha: {
|
|
2129
|
+
use: interpolatorLinear,
|
|
2130
|
+
fixup: fixupAlpha
|
|
2131
|
+
}
|
|
2132
|
+
}
|
|
2133
|
+
};
|
|
2134
|
+
const p$1 = 134.03437499999998;
|
|
2135
|
+
const d0$1 = 16295499532821565e-27;
|
|
2136
|
+
const jabPqEncode = (v) => {
|
|
2137
|
+
if (v < 0) return 0;
|
|
2138
|
+
let vn$2 = Math.pow(v / 1e4, M1);
|
|
2139
|
+
return Math.pow((C1 + C2 * vn$2) / (1 + C3 * vn$2), p$1);
|
|
2140
|
+
};
|
|
2141
|
+
const abs = (v = 0) => Math.max(v * 203, 0);
|
|
2142
|
+
const convertXyz65ToJab = ({ x, y, z, alpha }) => {
|
|
2143
|
+
x = abs(x);
|
|
2144
|
+
y = abs(y);
|
|
2145
|
+
z = abs(z);
|
|
2146
|
+
let xp = 1.15 * x - .15 * z;
|
|
2147
|
+
let yp = .66 * y + .34 * x;
|
|
2148
|
+
let l = jabPqEncode(.41478972 * xp + .579999 * yp + .014648 * z);
|
|
2149
|
+
let m = jabPqEncode(-.20151 * xp + 1.120649 * yp + .0531008 * z);
|
|
2150
|
+
let s = jabPqEncode(-.0166008 * xp + .2648 * yp + .6684799 * z);
|
|
2151
|
+
let i = (l + m) / 2;
|
|
2152
|
+
let res = {
|
|
2153
|
+
mode: "jab",
|
|
2154
|
+
j: .44 * i / (1 - .56 * i) - d0$1,
|
|
2155
|
+
a: 3.524 * l - 4.066708 * m + .542708 * s,
|
|
2156
|
+
b: .199076 * l + 1.096799 * m - 1.295875 * s
|
|
2157
|
+
};
|
|
2158
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2159
|
+
return res;
|
|
2160
|
+
};
|
|
2161
|
+
var convertXyz65ToJab_default = convertXyz65ToJab;
|
|
2162
|
+
const p = 134.03437499999998;
|
|
2163
|
+
const d0 = 16295499532821565e-27;
|
|
2164
|
+
const jabPqDecode = (v) => {
|
|
2165
|
+
if (v < 0) return 0;
|
|
2166
|
+
let vp = Math.pow(v, 1 / p);
|
|
2167
|
+
return 1e4 * Math.pow((C1 - vp) / (C3 * vp - C2), 1 / M1);
|
|
2168
|
+
};
|
|
2169
|
+
const rel = (v) => v / 203;
|
|
2170
|
+
const convertJabToXyz65 = ({ j, a, b, alpha }) => {
|
|
2171
|
+
if (j === void 0) j = 0;
|
|
2172
|
+
if (a === void 0) a = 0;
|
|
2173
|
+
if (b === void 0) b = 0;
|
|
2174
|
+
let i = (j + d0) / (.44 + .56 * (j + d0));
|
|
2175
|
+
let l = jabPqDecode(i + .13860504 * a + .058047316 * b);
|
|
2176
|
+
let m = jabPqDecode(i - .13860504 * a - .058047316 * b);
|
|
2177
|
+
let s = jabPqDecode(i - .096019242 * a - .8118919 * b);
|
|
2178
|
+
let res = {
|
|
2179
|
+
mode: "xyz65",
|
|
2180
|
+
x: rel(1.661373024652174 * l - .914523081304348 * m + .23136208173913045 * s),
|
|
2181
|
+
y: rel(-.3250758611844533 * l + 1.571847026732543 * m - .21825383453227928 * s),
|
|
2182
|
+
z: rel(-.090982811 * l - .31272829 * m + 1.5227666 * s)
|
|
2183
|
+
};
|
|
2184
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2185
|
+
return res;
|
|
2186
|
+
};
|
|
2187
|
+
var convertJabToXyz65_default = convertJabToXyz65;
|
|
2188
|
+
const convertRgbToJab = (rgb$4) => {
|
|
2189
|
+
let res = convertXyz65ToJab_default(convertRgbToXyz65_default(rgb$4));
|
|
2190
|
+
if (rgb$4.r === rgb$4.b && rgb$4.b === rgb$4.g) res.a = res.b = 0;
|
|
2191
|
+
return res;
|
|
2192
|
+
};
|
|
2193
|
+
var convertRgbToJab_default = convertRgbToJab;
|
|
2194
|
+
const convertJabToRgb = (color) => convertXyz65ToRgb_default(convertJabToXyz65_default(color));
|
|
2195
|
+
var convertJabToRgb_default = convertJabToRgb;
|
|
2196
|
+
var definition_default$21 = {
|
|
2197
|
+
mode: "jab",
|
|
2198
|
+
channels: [
|
|
2199
|
+
"j",
|
|
2200
|
+
"a",
|
|
2201
|
+
"b",
|
|
2202
|
+
"alpha"
|
|
2203
|
+
],
|
|
2204
|
+
parse: ["--jzazbz"],
|
|
2205
|
+
serialize: "--jzazbz",
|
|
2206
|
+
fromMode: {
|
|
2207
|
+
rgb: convertRgbToJab_default,
|
|
2208
|
+
xyz65: convertXyz65ToJab_default
|
|
2209
|
+
},
|
|
2210
|
+
toMode: {
|
|
2211
|
+
rgb: convertJabToRgb_default,
|
|
2212
|
+
xyz65: convertJabToXyz65_default
|
|
2213
|
+
},
|
|
2214
|
+
ranges: {
|
|
2215
|
+
j: [0, .222],
|
|
2216
|
+
a: [-.109, .129],
|
|
2217
|
+
b: [-.185, .134]
|
|
2218
|
+
},
|
|
2219
|
+
interpolate: {
|
|
2220
|
+
j: interpolatorLinear,
|
|
2221
|
+
a: interpolatorLinear,
|
|
2222
|
+
b: interpolatorLinear,
|
|
2223
|
+
alpha: {
|
|
2224
|
+
use: interpolatorLinear,
|
|
2225
|
+
fixup: fixupAlpha
|
|
2226
|
+
}
|
|
2227
|
+
}
|
|
2228
|
+
};
|
|
2229
|
+
const convertJabToJch = ({ j, a, b, alpha }) => {
|
|
2230
|
+
if (a === void 0) a = 0;
|
|
2231
|
+
if (b === void 0) b = 0;
|
|
2232
|
+
let c$1 = Math.sqrt(a * a + b * b);
|
|
2233
|
+
let res = {
|
|
2234
|
+
mode: "jch",
|
|
2235
|
+
j,
|
|
2236
|
+
c: c$1
|
|
2237
|
+
};
|
|
2238
|
+
if (c$1) res.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
|
|
2239
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2240
|
+
return res;
|
|
2241
|
+
};
|
|
2242
|
+
var convertJabToJch_default = convertJabToJch;
|
|
2243
|
+
const convertJchToJab = ({ j, c: c$1, h, alpha }) => {
|
|
2244
|
+
if (h === void 0) h = 0;
|
|
2245
|
+
let res = {
|
|
2246
|
+
mode: "jab",
|
|
2247
|
+
j,
|
|
2248
|
+
a: c$1 ? c$1 * Math.cos(h / 180 * Math.PI) : 0,
|
|
2249
|
+
b: c$1 ? c$1 * Math.sin(h / 180 * Math.PI) : 0
|
|
2250
|
+
};
|
|
2251
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2252
|
+
return res;
|
|
2253
|
+
};
|
|
2254
|
+
var convertJchToJab_default = convertJchToJab;
|
|
2255
|
+
var definition_default$22 = {
|
|
2256
|
+
mode: "jch",
|
|
2257
|
+
parse: ["--jzczhz"],
|
|
2258
|
+
serialize: "--jzczhz",
|
|
2259
|
+
toMode: {
|
|
2260
|
+
jab: convertJchToJab_default,
|
|
2261
|
+
rgb: (c$1) => convertJabToRgb_default(convertJchToJab_default(c$1))
|
|
2262
|
+
},
|
|
2263
|
+
fromMode: {
|
|
2264
|
+
rgb: (c$1) => convertJabToJch_default(convertRgbToJab_default(c$1)),
|
|
2265
|
+
jab: convertJabToJch_default
|
|
2266
|
+
},
|
|
2267
|
+
channels: [
|
|
2268
|
+
"j",
|
|
2269
|
+
"c",
|
|
2270
|
+
"h",
|
|
2271
|
+
"alpha"
|
|
2272
|
+
],
|
|
2273
|
+
ranges: {
|
|
2274
|
+
j: [0, .221],
|
|
2275
|
+
c: [0, .19],
|
|
2276
|
+
h: [0, 360]
|
|
2277
|
+
},
|
|
2278
|
+
interpolate: {
|
|
2279
|
+
h: {
|
|
2280
|
+
use: interpolatorLinear,
|
|
2281
|
+
fixup: fixupHueShorter
|
|
2282
|
+
},
|
|
2283
|
+
c: interpolatorLinear,
|
|
2284
|
+
j: interpolatorLinear,
|
|
2285
|
+
alpha: {
|
|
2286
|
+
use: interpolatorLinear,
|
|
2287
|
+
fixup: fixupAlpha
|
|
2288
|
+
}
|
|
2289
|
+
},
|
|
2290
|
+
difference: { h: differenceHueChroma },
|
|
2291
|
+
average: { h: averageAngle }
|
|
2292
|
+
};
|
|
2293
|
+
const convertLuvToLchuv = ({ l, u, v, alpha }) => {
|
|
2294
|
+
if (u === void 0) u = 0;
|
|
2295
|
+
if (v === void 0) v = 0;
|
|
2296
|
+
let c$1 = Math.sqrt(u * u + v * v);
|
|
2297
|
+
let res = {
|
|
2298
|
+
mode: "lchuv",
|
|
2299
|
+
l,
|
|
2300
|
+
c: c$1
|
|
2301
|
+
};
|
|
2302
|
+
if (c$1) res.h = normalizeHue_default(Math.atan2(v, u) * 180 / Math.PI);
|
|
2303
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2304
|
+
return res;
|
|
2305
|
+
};
|
|
2306
|
+
var convertLuvToLchuv_default = convertLuvToLchuv;
|
|
2307
|
+
const convertLchuvToLuv = ({ l, c: c$1, h, alpha }) => {
|
|
2308
|
+
if (h === void 0) h = 0;
|
|
2309
|
+
let res = {
|
|
2310
|
+
mode: "luv",
|
|
2311
|
+
l,
|
|
2312
|
+
u: c$1 ? c$1 * Math.cos(h / 180 * Math.PI) : 0,
|
|
2313
|
+
v: c$1 ? c$1 * Math.sin(h / 180 * Math.PI) : 0
|
|
2314
|
+
};
|
|
2315
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2316
|
+
return res;
|
|
2317
|
+
};
|
|
2318
|
+
var convertLchuvToLuv_default = convertLchuvToLuv;
|
|
2319
|
+
const u_fn$1 = (x, y, z) => 4 * x / (x + 15 * y + 3 * z);
|
|
2320
|
+
const v_fn$1 = (x, y, z) => 9 * y / (x + 15 * y + 3 * z);
|
|
2321
|
+
const un$1 = u_fn$1(D50.X, D50.Y, D50.Z);
|
|
2322
|
+
const vn$1 = v_fn$1(D50.X, D50.Y, D50.Z);
|
|
2323
|
+
const l_fn = (value) => value <= e ? k * value : 116 * Math.cbrt(value) - 16;
|
|
2324
|
+
const convertXyz50ToLuv = ({ x, y, z, alpha }) => {
|
|
2325
|
+
if (x === void 0) x = 0;
|
|
2326
|
+
if (y === void 0) y = 0;
|
|
2327
|
+
if (z === void 0) z = 0;
|
|
2328
|
+
let l = l_fn(y / D50.Y);
|
|
2329
|
+
let u = u_fn$1(x, y, z);
|
|
2330
|
+
let v = v_fn$1(x, y, z);
|
|
2331
|
+
if (!isFinite(u) || !isFinite(v)) l = u = v = 0;
|
|
2332
|
+
else {
|
|
2333
|
+
u = 13 * l * (u - un$1);
|
|
2334
|
+
v = 13 * l * (v - vn$1);
|
|
2335
|
+
}
|
|
2336
|
+
let res = {
|
|
2337
|
+
mode: "luv",
|
|
2338
|
+
l,
|
|
2339
|
+
u,
|
|
2340
|
+
v
|
|
2341
|
+
};
|
|
2342
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2343
|
+
return res;
|
|
2344
|
+
};
|
|
2345
|
+
var convertXyz50ToLuv_default = convertXyz50ToLuv;
|
|
2346
|
+
const u_fn = (x, y, z) => 4 * x / (x + 15 * y + 3 * z);
|
|
2347
|
+
const v_fn = (x, y, z) => 9 * y / (x + 15 * y + 3 * z);
|
|
2348
|
+
const un = u_fn(D50.X, D50.Y, D50.Z);
|
|
2349
|
+
const vn = v_fn(D50.X, D50.Y, D50.Z);
|
|
2350
|
+
const convertLuvToXyz50 = ({ l, u, v, alpha }) => {
|
|
2351
|
+
if (l === void 0) l = 0;
|
|
2352
|
+
if (l === 0) return {
|
|
2353
|
+
mode: "xyz50",
|
|
2354
|
+
x: 0,
|
|
2355
|
+
y: 0,
|
|
2356
|
+
z: 0
|
|
2357
|
+
};
|
|
2358
|
+
if (u === void 0) u = 0;
|
|
2359
|
+
if (v === void 0) v = 0;
|
|
2360
|
+
let up = u / (13 * l) + un;
|
|
2361
|
+
let vp = v / (13 * l) + vn;
|
|
2362
|
+
let y = D50.Y * (l <= 8 ? l / k : Math.pow((l + 16) / 116, 3));
|
|
2363
|
+
let x = y * (9 * up) / (4 * vp);
|
|
2364
|
+
let z = y * (12 - 3 * up - 20 * vp) / (4 * vp);
|
|
2365
|
+
let res = {
|
|
2366
|
+
mode: "xyz50",
|
|
2367
|
+
x,
|
|
2368
|
+
y,
|
|
2369
|
+
z
|
|
2370
|
+
};
|
|
2371
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2372
|
+
return res;
|
|
2373
|
+
};
|
|
2374
|
+
var convertLuvToXyz50_default = convertLuvToXyz50;
|
|
2375
|
+
const convertRgbToLchuv = (rgb$4) => convertLuvToLchuv_default(convertXyz50ToLuv_default(convertRgbToXyz50_default(rgb$4)));
|
|
2376
|
+
const convertLchuvToRgb = (lchuv$1) => convertXyz50ToRgb_default(convertLuvToXyz50_default(convertLchuvToLuv_default(lchuv$1)));
|
|
2377
|
+
var definition_default$24 = {
|
|
2378
|
+
mode: "lchuv",
|
|
2379
|
+
toMode: {
|
|
2380
|
+
luv: convertLchuvToLuv_default,
|
|
2381
|
+
rgb: convertLchuvToRgb
|
|
2382
|
+
},
|
|
2383
|
+
fromMode: {
|
|
2384
|
+
rgb: convertRgbToLchuv,
|
|
2385
|
+
luv: convertLuvToLchuv_default
|
|
2386
|
+
},
|
|
2387
|
+
channels: [
|
|
2388
|
+
"l",
|
|
2389
|
+
"c",
|
|
2390
|
+
"h",
|
|
2391
|
+
"alpha"
|
|
2392
|
+
],
|
|
2393
|
+
parse: ["--lchuv"],
|
|
2394
|
+
serialize: "--lchuv",
|
|
2395
|
+
ranges: {
|
|
2396
|
+
l: [0, 100],
|
|
2397
|
+
c: [0, 176.956],
|
|
2398
|
+
h: [0, 360]
|
|
2399
|
+
},
|
|
2400
|
+
interpolate: {
|
|
2401
|
+
h: {
|
|
2402
|
+
use: interpolatorLinear,
|
|
2403
|
+
fixup: fixupHueShorter
|
|
2404
|
+
},
|
|
2405
|
+
c: interpolatorLinear,
|
|
2406
|
+
l: interpolatorLinear,
|
|
2407
|
+
alpha: {
|
|
2408
|
+
use: interpolatorLinear,
|
|
2409
|
+
fixup: fixupAlpha
|
|
2410
|
+
}
|
|
2411
|
+
},
|
|
2412
|
+
difference: { h: differenceHueChroma },
|
|
2413
|
+
average: { h: averageAngle }
|
|
2414
|
+
};
|
|
2415
|
+
var definition_default$25 = {
|
|
2416
|
+
mode: "luv",
|
|
2417
|
+
toMode: {
|
|
2418
|
+
xyz50: convertLuvToXyz50_default,
|
|
2419
|
+
rgb: (luv$1) => convertXyz50ToRgb_default(convertLuvToXyz50_default(luv$1))
|
|
2420
|
+
},
|
|
2421
|
+
fromMode: {
|
|
2422
|
+
xyz50: convertXyz50ToLuv_default,
|
|
2423
|
+
rgb: (rgb$4) => convertXyz50ToLuv_default(convertRgbToXyz50_default(rgb$4))
|
|
2424
|
+
},
|
|
2425
|
+
channels: [
|
|
2426
|
+
"l",
|
|
2427
|
+
"u",
|
|
2428
|
+
"v",
|
|
2429
|
+
"alpha"
|
|
2430
|
+
],
|
|
2431
|
+
parse: ["--luv"],
|
|
2432
|
+
serialize: "--luv",
|
|
2433
|
+
ranges: {
|
|
2434
|
+
l: [0, 100],
|
|
2435
|
+
u: [-84.936, 175.042],
|
|
2436
|
+
v: [-125.882, 87.243]
|
|
2437
|
+
},
|
|
2438
|
+
interpolate: {
|
|
2439
|
+
l: interpolatorLinear,
|
|
2440
|
+
u: interpolatorLinear,
|
|
2441
|
+
v: interpolatorLinear,
|
|
2442
|
+
alpha: {
|
|
2443
|
+
use: interpolatorLinear,
|
|
2444
|
+
fixup: fixupAlpha
|
|
2445
|
+
}
|
|
2446
|
+
}
|
|
2447
|
+
};
|
|
1739
2448
|
function toe(x) {
|
|
1740
2449
|
const k_1 = .206;
|
|
1741
2450
|
const k_2 = .03;
|
|
@@ -1804,25 +2513,183 @@ function compute_max_saturation(a, b) {
|
|
|
1804
2513
|
}
|
|
1805
2514
|
function find_cusp(a, b) {
|
|
1806
2515
|
let S_cusp = compute_max_saturation(a, b);
|
|
1807
|
-
let rgb$
|
|
2516
|
+
let rgb$4 = convertOklabToLrgb_default({
|
|
1808
2517
|
l: 1,
|
|
1809
2518
|
a: S_cusp * a,
|
|
1810
2519
|
b: S_cusp * b
|
|
1811
2520
|
});
|
|
1812
|
-
let L_cusp = Math.cbrt(1 / Math.max(rgb$
|
|
2521
|
+
let L_cusp = Math.cbrt(1 / Math.max(rgb$4.r, rgb$4.g, rgb$4.b));
|
|
1813
2522
|
let C_cusp = L_cusp * S_cusp;
|
|
1814
2523
|
return [L_cusp, C_cusp];
|
|
1815
2524
|
}
|
|
2525
|
+
function find_gamut_intersection(a, b, L1, C1$1, L0, cusp = null) {
|
|
2526
|
+
if (!cusp) cusp = find_cusp(a, b);
|
|
2527
|
+
let t;
|
|
2528
|
+
if ((L1 - L0) * cusp[1] - (cusp[0] - L0) * C1$1 <= 0) t = cusp[1] * L0 / (C1$1 * cusp[0] + cusp[1] * (L0 - L1));
|
|
2529
|
+
else {
|
|
2530
|
+
t = cusp[1] * (L0 - 1) / (C1$1 * (cusp[0] - 1) + cusp[1] * (L0 - L1));
|
|
2531
|
+
{
|
|
2532
|
+
let dL = L1 - L0;
|
|
2533
|
+
let dC = C1$1;
|
|
2534
|
+
let k_l = .3963377774 * a + .2158037573 * b;
|
|
2535
|
+
let k_m = -.1055613458 * a - .0638541728 * b;
|
|
2536
|
+
let k_s = -.0894841775 * a - 1.291485548 * b;
|
|
2537
|
+
let l_dt = dL + dC * k_l;
|
|
2538
|
+
let m_dt = dL + dC * k_m;
|
|
2539
|
+
let s_dt = dL + dC * k_s;
|
|
2540
|
+
{
|
|
2541
|
+
let L = L0 * (1 - t) + t * L1;
|
|
2542
|
+
let C = t * C1$1;
|
|
2543
|
+
let l_ = L + C * k_l;
|
|
2544
|
+
let m_ = L + C * k_m;
|
|
2545
|
+
let s_ = L + C * k_s;
|
|
2546
|
+
let l = l_ * l_ * l_;
|
|
2547
|
+
let m = m_ * m_ * m_;
|
|
2548
|
+
let s = s_ * s_ * s_;
|
|
2549
|
+
let ldt = 3 * l_dt * l_ * l_;
|
|
2550
|
+
let mdt = 3 * m_dt * m_ * m_;
|
|
2551
|
+
let sdt = 3 * s_dt * s_ * s_;
|
|
2552
|
+
let ldt2 = 6 * l_dt * l_dt * l_;
|
|
2553
|
+
let mdt2 = 6 * m_dt * m_dt * m_;
|
|
2554
|
+
let sdt2 = 6 * s_dt * s_dt * s_;
|
|
2555
|
+
let r$1 = 4.0767416621 * l - 3.3077115913 * m + .2309699292 * s - 1;
|
|
2556
|
+
let r1 = 4.0767416621 * ldt - 3.3077115913 * mdt + .2309699292 * sdt;
|
|
2557
|
+
let r2 = 4.0767416621 * ldt2 - 3.3077115913 * mdt2 + .2309699292 * sdt2;
|
|
2558
|
+
let u_r = r1 / (r1 * r1 - .5 * r$1 * r2);
|
|
2559
|
+
let t_r = -r$1 * u_r;
|
|
2560
|
+
let g = -1.2684380046 * l + 2.6097574011 * m - .3413193965 * s - 1;
|
|
2561
|
+
let g1 = -1.2684380046 * ldt + 2.6097574011 * mdt - .3413193965 * sdt;
|
|
2562
|
+
let g2 = -1.2684380046 * ldt2 + 2.6097574011 * mdt2 - .3413193965 * sdt2;
|
|
2563
|
+
let u_g = g1 / (g1 * g1 - .5 * g * g2);
|
|
2564
|
+
let t_g = -g * u_g;
|
|
2565
|
+
let b$1 = -.0041960863 * l - .7034186147 * m + 1.707614701 * s - 1;
|
|
2566
|
+
let b1 = -.0041960863 * ldt - .7034186147 * mdt + 1.707614701 * sdt;
|
|
2567
|
+
let b2 = -.0041960863 * ldt2 - .7034186147 * mdt2 + 1.707614701 * sdt2;
|
|
2568
|
+
let u_b = b1 / (b1 * b1 - .5 * b$1 * b2);
|
|
2569
|
+
let t_b = -b$1 * u_b;
|
|
2570
|
+
t_r = u_r >= 0 ? t_r : 1e6;
|
|
2571
|
+
t_g = u_g >= 0 ? t_g : 1e6;
|
|
2572
|
+
t_b = u_b >= 0 ? t_b : 1e6;
|
|
2573
|
+
t += Math.min(t_r, Math.min(t_g, t_b));
|
|
2574
|
+
}
|
|
2575
|
+
}
|
|
2576
|
+
}
|
|
2577
|
+
return t;
|
|
2578
|
+
}
|
|
1816
2579
|
function get_ST_max(a_, b_, cusp = null) {
|
|
1817
2580
|
if (!cusp) cusp = find_cusp(a_, b_);
|
|
1818
2581
|
let L = cusp[0];
|
|
1819
2582
|
let C = cusp[1];
|
|
1820
2583
|
return [C / L, C / (1 - L)];
|
|
1821
2584
|
}
|
|
1822
|
-
function
|
|
1823
|
-
let
|
|
1824
|
-
let
|
|
1825
|
-
let
|
|
2585
|
+
function get_Cs(L, a_, b_) {
|
|
2586
|
+
let cusp = find_cusp(a_, b_);
|
|
2587
|
+
let C_max = find_gamut_intersection(a_, b_, L, 1, L, cusp);
|
|
2588
|
+
let ST_max = get_ST_max(a_, b_, cusp);
|
|
2589
|
+
let S_mid = .11516993 + 1 / (7.4477897 + 4.1590124 * b_ + a_ * (-2.19557347 + 1.75198401 * b_ + a_ * (-2.13704948 - 10.02301043 * b_ + a_ * (-4.24894561 + 5.38770819 * b_ + 4.69891013 * a_))));
|
|
2590
|
+
let T_mid = .11239642 + 1 / (1.6132032 - .68124379 * b_ + a_ * (.40370612 + .90148123 * b_ + a_ * (-.27087943 + .6122399 * b_ + a_ * (.00299215 - .45399568 * b_ - .14661872 * a_))));
|
|
2591
|
+
let k$3 = C_max / Math.min(L * ST_max[0], (1 - L) * ST_max[1]);
|
|
2592
|
+
let C_a = L * S_mid;
|
|
2593
|
+
let C_b = (1 - L) * T_mid;
|
|
2594
|
+
let C_mid = .9 * k$3 * Math.sqrt(Math.sqrt(1 / (1 / (C_a * C_a * C_a * C_a) + 1 / (C_b * C_b * C_b * C_b))));
|
|
2595
|
+
C_a = L * .4;
|
|
2596
|
+
C_b = (1 - L) * .8;
|
|
2597
|
+
return [
|
|
2598
|
+
Math.sqrt(1 / (1 / (C_a * C_a) + 1 / (C_b * C_b))),
|
|
2599
|
+
C_mid,
|
|
2600
|
+
C_max
|
|
2601
|
+
];
|
|
2602
|
+
}
|
|
2603
|
+
function convertOklabToOkhsl(lab$2) {
|
|
2604
|
+
const l = lab$2.l !== void 0 ? lab$2.l : 0;
|
|
2605
|
+
const a = lab$2.a !== void 0 ? lab$2.a : 0;
|
|
2606
|
+
const b = lab$2.b !== void 0 ? lab$2.b : 0;
|
|
2607
|
+
const ret = {
|
|
2608
|
+
mode: "okhsl",
|
|
2609
|
+
l: toe(l)
|
|
2610
|
+
};
|
|
2611
|
+
if (lab$2.alpha !== void 0) ret.alpha = lab$2.alpha;
|
|
2612
|
+
let c$1 = Math.sqrt(a * a + b * b);
|
|
2613
|
+
if (!c$1) {
|
|
2614
|
+
ret.s = 0;
|
|
2615
|
+
return ret;
|
|
2616
|
+
}
|
|
2617
|
+
let [C_0, C_mid, C_max] = get_Cs(l, a / c$1, b / c$1);
|
|
2618
|
+
let s;
|
|
2619
|
+
if (c$1 < C_mid) {
|
|
2620
|
+
let k_0 = 0;
|
|
2621
|
+
let k_1 = .8 * C_0;
|
|
2622
|
+
let k_2 = 1 - k_1 / C_mid;
|
|
2623
|
+
s = (c$1 - k_0) / (k_1 + k_2 * (c$1 - k_0)) * .8;
|
|
2624
|
+
} else {
|
|
2625
|
+
let k_0 = C_mid;
|
|
2626
|
+
let k_1 = .2 * C_mid * C_mid * 1.25 * 1.25 / C_0;
|
|
2627
|
+
let k_2 = 1 - k_1 / (C_max - C_mid);
|
|
2628
|
+
s = .8 + .2 * ((c$1 - k_0) / (k_1 + k_2 * (c$1 - k_0)));
|
|
2629
|
+
}
|
|
2630
|
+
if (s) {
|
|
2631
|
+
ret.s = s;
|
|
2632
|
+
ret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
|
|
2633
|
+
}
|
|
2634
|
+
return ret;
|
|
2635
|
+
}
|
|
2636
|
+
function convertOkhslToOklab(hsl$3) {
|
|
2637
|
+
let h = hsl$3.h !== void 0 ? hsl$3.h : 0;
|
|
2638
|
+
let s = hsl$3.s !== void 0 ? hsl$3.s : 0;
|
|
2639
|
+
let l = hsl$3.l !== void 0 ? hsl$3.l : 0;
|
|
2640
|
+
const ret = {
|
|
2641
|
+
mode: "oklab",
|
|
2642
|
+
l: toe_inv(l)
|
|
2643
|
+
};
|
|
2644
|
+
if (hsl$3.alpha !== void 0) ret.alpha = hsl$3.alpha;
|
|
2645
|
+
if (!s || l === 1) {
|
|
2646
|
+
ret.a = ret.b = 0;
|
|
2647
|
+
return ret;
|
|
2648
|
+
}
|
|
2649
|
+
let a_ = Math.cos(h / 180 * Math.PI);
|
|
2650
|
+
let b_ = Math.sin(h / 180 * Math.PI);
|
|
2651
|
+
let [C_0, C_mid, C_max] = get_Cs(ret.l, a_, b_);
|
|
2652
|
+
let t, k_0, k_1, k_2;
|
|
2653
|
+
if (s < .8) {
|
|
2654
|
+
t = 1.25 * s;
|
|
2655
|
+
k_0 = 0;
|
|
2656
|
+
k_1 = .8 * C_0;
|
|
2657
|
+
k_2 = 1 - k_1 / C_mid;
|
|
2658
|
+
} else {
|
|
2659
|
+
t = 5 * (s - .8);
|
|
2660
|
+
k_0 = C_mid;
|
|
2661
|
+
k_1 = .2 * C_mid * C_mid * 1.25 * 1.25 / C_0;
|
|
2662
|
+
k_2 = 1 - k_1 / (C_max - C_mid);
|
|
2663
|
+
}
|
|
2664
|
+
let C = k_0 + t * k_1 / (1 - k_2 * t);
|
|
2665
|
+
ret.a = C * a_;
|
|
2666
|
+
ret.b = C * b_;
|
|
2667
|
+
return ret;
|
|
2668
|
+
}
|
|
2669
|
+
var modeOkhsl_default = {
|
|
2670
|
+
...definition_default$1,
|
|
2671
|
+
mode: "okhsl",
|
|
2672
|
+
channels: [
|
|
2673
|
+
"h",
|
|
2674
|
+
"s",
|
|
2675
|
+
"l",
|
|
2676
|
+
"alpha"
|
|
2677
|
+
],
|
|
2678
|
+
parse: ["--okhsl"],
|
|
2679
|
+
serialize: "--okhsl",
|
|
2680
|
+
fromMode: {
|
|
2681
|
+
oklab: convertOklabToOkhsl,
|
|
2682
|
+
rgb: (c$1) => convertOklabToOkhsl(convertRgbToOklab_default(c$1))
|
|
2683
|
+
},
|
|
2684
|
+
toMode: {
|
|
2685
|
+
oklab: convertOkhslToOklab,
|
|
2686
|
+
rgb: (c$1) => convertOklabToRgb_default(convertOkhslToOklab(c$1))
|
|
2687
|
+
}
|
|
2688
|
+
};
|
|
2689
|
+
function convertOklabToOkhsv(lab$2) {
|
|
2690
|
+
let l = lab$2.l !== void 0 ? lab$2.l : 0;
|
|
2691
|
+
let a = lab$2.a !== void 0 ? lab$2.a : 0;
|
|
2692
|
+
let b = lab$2.b !== void 0 ? lab$2.b : 0;
|
|
1826
2693
|
let c$1 = Math.sqrt(a * a + b * b);
|
|
1827
2694
|
let a_ = c$1 ? a / c$1 : 1;
|
|
1828
2695
|
let b_ = c$1 ? b / c$1 : 1;
|
|
@@ -1849,15 +2716,15 @@ function convertOklabToOkhsv(lab) {
|
|
|
1849
2716
|
v: l ? l / L_v : 0
|
|
1850
2717
|
};
|
|
1851
2718
|
if (ret.s) ret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
|
|
1852
|
-
if (lab.alpha !== void 0) ret.alpha = lab.alpha;
|
|
2719
|
+
if (lab$2.alpha !== void 0) ret.alpha = lab$2.alpha;
|
|
1853
2720
|
return ret;
|
|
1854
2721
|
}
|
|
1855
|
-
function convertOkhsvToOklab(hsv) {
|
|
2722
|
+
function convertOkhsvToOklab(hsv$2) {
|
|
1856
2723
|
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;
|
|
2724
|
+
if (hsv$2.alpha !== void 0) ret.alpha = hsv$2.alpha;
|
|
2725
|
+
const h = hsv$2.h !== void 0 ? hsv$2.h : 0;
|
|
2726
|
+
const s = hsv$2.s !== void 0 ? hsv$2.s : 0;
|
|
2727
|
+
const v = hsv$2.v !== void 0 ? hsv$2.v : 0;
|
|
1861
2728
|
const a_ = Math.cos(h / 180 * Math.PI);
|
|
1862
2729
|
const b_ = Math.sin(h / 180 * Math.PI);
|
|
1863
2730
|
const [S_max, T] = get_ST_max(a_, b_);
|
|
@@ -1880,8 +2747,8 @@ function convertOkhsvToOklab(hsv) {
|
|
|
1880
2747
|
ret.b = C * b_ * scale_L;
|
|
1881
2748
|
return ret;
|
|
1882
2749
|
}
|
|
1883
|
-
|
|
1884
|
-
...definition_default$
|
|
2750
|
+
var modeOkhsv_default = {
|
|
2751
|
+
...definition_default$19,
|
|
1885
2752
|
mode: "okhsv",
|
|
1886
2753
|
channels: [
|
|
1887
2754
|
"h",
|
|
@@ -1900,14 +2767,157 @@ const modeOkhsv = {
|
|
|
1900
2767
|
rgb: (c$1) => convertOklabToRgb_default(convertOkhsvToOklab(c$1))
|
|
1901
2768
|
}
|
|
1902
2769
|
};
|
|
1903
|
-
|
|
2770
|
+
const bias = .0037930732552754493;
|
|
2771
|
+
const bias_cbrt = Math.cbrt(bias);
|
|
2772
|
+
const transfer$1 = (v) => Math.cbrt(v) - bias_cbrt;
|
|
2773
|
+
const convertRgbToXyb = (color) => {
|
|
2774
|
+
const { r: r$1, g, b, alpha } = convertRgbToLrgb_default(color);
|
|
2775
|
+
const l = transfer$1(.3 * r$1 + .622 * g + .078 * b + bias);
|
|
2776
|
+
const m = transfer$1(.23 * r$1 + .692 * g + .078 * b + bias);
|
|
2777
|
+
const s = transfer$1(.2434226892454782 * r$1 + .2047674442449682 * g + .5518098665095535 * b + bias);
|
|
2778
|
+
const res = {
|
|
2779
|
+
mode: "xyb",
|
|
2780
|
+
x: (l - m) / 2,
|
|
2781
|
+
y: (l + m) / 2,
|
|
2782
|
+
b: s - (l + m) / 2
|
|
2783
|
+
};
|
|
2784
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2785
|
+
return res;
|
|
2786
|
+
};
|
|
2787
|
+
var convertRgbToXyb_default = convertRgbToXyb;
|
|
2788
|
+
const transfer = (v) => Math.pow(v + bias_cbrt, 3);
|
|
2789
|
+
const convertXybToRgb = ({ x, y, b, alpha }) => {
|
|
2790
|
+
if (x === void 0) x = 0;
|
|
2791
|
+
if (y === void 0) y = 0;
|
|
2792
|
+
if (b === void 0) b = 0;
|
|
2793
|
+
const l = transfer(x + y) - bias;
|
|
2794
|
+
const m = transfer(y - x) - bias;
|
|
2795
|
+
const s = transfer(b + y) - bias;
|
|
2796
|
+
const res = convertLrgbToRgb_default({
|
|
2797
|
+
r: 11.031566904639861 * l - 9.866943908131562 * m - .16462299650829934 * s,
|
|
2798
|
+
g: -3.2541473810744237 * l + 4.418770377582723 * m - .16462299650829934 * s,
|
|
2799
|
+
b: -3.6588512867136815 * l + 2.7129230459360922 * m + 1.9459282407775895 * s
|
|
2800
|
+
});
|
|
2801
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2802
|
+
return res;
|
|
2803
|
+
};
|
|
2804
|
+
var definition_default$26 = {
|
|
2805
|
+
mode: "xyb",
|
|
2806
|
+
channels: [
|
|
2807
|
+
"x",
|
|
2808
|
+
"y",
|
|
2809
|
+
"b",
|
|
2810
|
+
"alpha"
|
|
2811
|
+
],
|
|
2812
|
+
parse: ["--xyb"],
|
|
2813
|
+
serialize: "--xyb",
|
|
2814
|
+
toMode: { rgb: convertXybToRgb },
|
|
2815
|
+
fromMode: { rgb: convertRgbToXyb_default },
|
|
2816
|
+
ranges: {
|
|
2817
|
+
x: [-.0154, .0281],
|
|
2818
|
+
y: [0, .8453],
|
|
2819
|
+
b: [-.2778, .388]
|
|
2820
|
+
},
|
|
2821
|
+
interpolate: {
|
|
2822
|
+
x: interpolatorLinear,
|
|
2823
|
+
y: interpolatorLinear,
|
|
2824
|
+
b: interpolatorLinear,
|
|
2825
|
+
alpha: {
|
|
2826
|
+
use: interpolatorLinear,
|
|
2827
|
+
fixup: fixupAlpha
|
|
2828
|
+
}
|
|
2829
|
+
}
|
|
2830
|
+
};
|
|
2831
|
+
const convertRgbToYiq = ({ r: r$1, g, b, alpha }) => {
|
|
2832
|
+
if (r$1 === void 0) r$1 = 0;
|
|
2833
|
+
if (g === void 0) g = 0;
|
|
2834
|
+
if (b === void 0) b = 0;
|
|
2835
|
+
const res = {
|
|
2836
|
+
mode: "yiq",
|
|
2837
|
+
y: .29889531 * r$1 + .58662247 * g + .11448223 * b,
|
|
2838
|
+
i: .59597799 * r$1 - .2741761 * g - .32180189 * b,
|
|
2839
|
+
q: .21147017 * r$1 - .52261711 * g + .31114694 * b
|
|
2840
|
+
};
|
|
2841
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2842
|
+
return res;
|
|
2843
|
+
};
|
|
2844
|
+
var convertRgbToYiq_default = convertRgbToYiq;
|
|
2845
|
+
const convertYiqToRgb = ({ y, i, q, alpha }) => {
|
|
2846
|
+
if (y === void 0) y = 0;
|
|
2847
|
+
if (i === void 0) i = 0;
|
|
2848
|
+
if (q === void 0) q = 0;
|
|
2849
|
+
const res = {
|
|
2850
|
+
mode: "rgb",
|
|
2851
|
+
r: y + .95608445 * i + .6208885 * q,
|
|
2852
|
+
g: y - .27137664 * i - .6486059 * q,
|
|
2853
|
+
b: y - 1.10561724 * i + 1.70250126 * q
|
|
2854
|
+
};
|
|
2855
|
+
if (alpha !== void 0) res.alpha = alpha;
|
|
2856
|
+
return res;
|
|
2857
|
+
};
|
|
2858
|
+
var definition_default$27 = {
|
|
2859
|
+
mode: "yiq",
|
|
2860
|
+
toMode: { rgb: convertYiqToRgb },
|
|
2861
|
+
fromMode: { rgb: convertRgbToYiq_default },
|
|
2862
|
+
channels: [
|
|
2863
|
+
"y",
|
|
2864
|
+
"i",
|
|
2865
|
+
"q",
|
|
2866
|
+
"alpha"
|
|
2867
|
+
],
|
|
2868
|
+
parse: ["--yiq"],
|
|
2869
|
+
serialize: "--yiq",
|
|
2870
|
+
ranges: {
|
|
2871
|
+
i: [-.595, .595],
|
|
2872
|
+
q: [-.522, .522]
|
|
2873
|
+
},
|
|
2874
|
+
interpolate: {
|
|
2875
|
+
y: interpolatorLinear,
|
|
2876
|
+
i: interpolatorLinear,
|
|
2877
|
+
q: interpolatorLinear,
|
|
2878
|
+
alpha: {
|
|
2879
|
+
use: interpolatorLinear,
|
|
2880
|
+
fixup: fixupAlpha
|
|
2881
|
+
}
|
|
2882
|
+
}
|
|
2883
|
+
};
|
|
1904
2884
|
const r = (value, precision) => Math.round(value * (precision = Math.pow(10, precision))) / precision;
|
|
1905
2885
|
const round = (precision = 4) => (value) => typeof value === "number" ? r(value, precision) : value;
|
|
1906
2886
|
var round_default = round;
|
|
1907
|
-
|
|
2887
|
+
round_default(2);
|
|
2888
|
+
const rgb$2 = converter_default("rgb");
|
|
2889
|
+
converter_default("hsl");
|
|
1908
2890
|
const rgb$1 = converter_default("rgb");
|
|
1909
|
-
|
|
1910
|
-
|
|
2891
|
+
useMode(definition_default);
|
|
2892
|
+
useMode(definition_default$15);
|
|
2893
|
+
useMode(definition_default$16);
|
|
2894
|
+
useMode(definition_default$17);
|
|
2895
|
+
useMode(definition_default$18);
|
|
2896
|
+
useMode(definition_default$1);
|
|
2897
|
+
useMode(definition_default$19);
|
|
2898
|
+
useMode(definition_default$2);
|
|
2899
|
+
useMode(definition_default$20);
|
|
2900
|
+
useMode(definition_default$21);
|
|
2901
|
+
useMode(definition_default$22);
|
|
2902
|
+
useMode(definition_default$3);
|
|
2903
|
+
useMode(definition_default$4);
|
|
2904
|
+
useMode(definition_default$5);
|
|
2905
|
+
useMode(definition_default$23);
|
|
2906
|
+
useMode(definition_default$24);
|
|
2907
|
+
useMode(definition_default$6);
|
|
2908
|
+
useMode(definition_default$25);
|
|
2909
|
+
useMode(modeOkhsl_default);
|
|
2910
|
+
useMode(modeOkhsv_default);
|
|
2911
|
+
useMode(definition_default$7);
|
|
2912
|
+
useMode(definition_default$8);
|
|
2913
|
+
useMode(definition_default$9);
|
|
2914
|
+
useMode(definition_default$10);
|
|
2915
|
+
useMode(definition_default$11);
|
|
2916
|
+
useMode(definition_default$12);
|
|
2917
|
+
useMode(definition_default$26);
|
|
2918
|
+
useMode(definition_default$13);
|
|
2919
|
+
useMode(definition_default$14);
|
|
2920
|
+
useMode(definition_default$27);
|
|
1911
2921
|
const converters = {
|
|
1912
2922
|
a98: useMode(definition_default),
|
|
1913
2923
|
hsl: useMode(definition_default$1),
|
|
@@ -1964,7 +2974,7 @@ function pluginTailwind(options) {
|
|
|
1964
2974
|
name: "@terrazzo/plugin-tailwind",
|
|
1965
2975
|
enforce: "post",
|
|
1966
2976
|
config(config) {
|
|
1967
|
-
if (!config.plugins.some((p) => p.name === "@terrazzo/plugin-css")) throw new Error("@terrazzo/plugin-css missing! Please install and add to the plugins array to use the Tailwind plugin.");
|
|
2977
|
+
if (!config.plugins.some((p$2) => p$2.name === "@terrazzo/plugin-css")) throw new Error("@terrazzo/plugin-css missing! Please install and add to the plugins array to use the Tailwind plugin.");
|
|
1968
2978
|
if (!options || !options.theme) throw new Error("Missing Tailwind `theme` option.");
|
|
1969
2979
|
},
|
|
1970
2980
|
async transform({ getTransforms, setTransform }) {
|