@terrazzo/plugin-tailwind 2.0.0-alpha.2 → 2.0.0-alpha.5

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/dist/index.js CHANGED
@@ -1,2950 +1,5 @@
1
- //#region ../plugin-css/dist/index.js
2
- const parseNumber = (color, len) => {
3
- if (typeof color !== "number") return;
4
- if (len === 3) return {
5
- mode: "rgb",
6
- r: (color >> 8 & 15 | color >> 4 & 240) / 255,
7
- g: (color >> 4 & 15 | color & 240) / 255,
8
- b: (color & 15 | color << 4 & 240) / 255
9
- };
10
- if (len === 4) return {
11
- mode: "rgb",
12
- r: (color >> 12 & 15 | color >> 8 & 240) / 255,
13
- g: (color >> 8 & 15 | color >> 4 & 240) / 255,
14
- b: (color >> 4 & 15 | color & 240) / 255,
15
- alpha: (color & 15 | color << 4 & 240) / 255
16
- };
17
- if (len === 6) return {
18
- mode: "rgb",
19
- r: (color >> 16 & 255) / 255,
20
- g: (color >> 8 & 255) / 255,
21
- b: (color & 255) / 255
22
- };
23
- if (len === 8) return {
24
- mode: "rgb",
25
- r: (color >> 24 & 255) / 255,
26
- g: (color >> 16 & 255) / 255,
27
- b: (color >> 8 & 255) / 255,
28
- alpha: (color & 255) / 255
29
- };
30
- };
31
- var parseNumber_default = parseNumber;
32
- var named_default = {
33
- aliceblue: 15792383,
34
- antiquewhite: 16444375,
35
- aqua: 65535,
36
- aquamarine: 8388564,
37
- azure: 15794175,
38
- beige: 16119260,
39
- bisque: 16770244,
40
- black: 0,
41
- blanchedalmond: 16772045,
42
- blue: 255,
43
- blueviolet: 9055202,
44
- brown: 10824234,
45
- burlywood: 14596231,
46
- cadetblue: 6266528,
47
- chartreuse: 8388352,
48
- chocolate: 13789470,
49
- coral: 16744272,
50
- cornflowerblue: 6591981,
51
- cornsilk: 16775388,
52
- crimson: 14423100,
53
- cyan: 65535,
54
- darkblue: 139,
55
- darkcyan: 35723,
56
- darkgoldenrod: 12092939,
57
- darkgray: 11119017,
58
- darkgreen: 25600,
59
- darkgrey: 11119017,
60
- darkkhaki: 12433259,
61
- darkmagenta: 9109643,
62
- darkolivegreen: 5597999,
63
- darkorange: 16747520,
64
- darkorchid: 10040012,
65
- darkred: 9109504,
66
- darksalmon: 15308410,
67
- darkseagreen: 9419919,
68
- darkslateblue: 4734347,
69
- darkslategray: 3100495,
70
- darkslategrey: 3100495,
71
- darkturquoise: 52945,
72
- darkviolet: 9699539,
73
- deeppink: 16716947,
74
- deepskyblue: 49151,
75
- dimgray: 6908265,
76
- dimgrey: 6908265,
77
- dodgerblue: 2003199,
78
- firebrick: 11674146,
79
- floralwhite: 16775920,
80
- forestgreen: 2263842,
81
- fuchsia: 16711935,
82
- gainsboro: 14474460,
83
- ghostwhite: 16316671,
84
- gold: 16766720,
85
- goldenrod: 14329120,
86
- gray: 8421504,
87
- green: 32768,
88
- greenyellow: 11403055,
89
- grey: 8421504,
90
- honeydew: 15794160,
91
- hotpink: 16738740,
92
- indianred: 13458524,
93
- indigo: 4915330,
94
- ivory: 16777200,
95
- khaki: 15787660,
96
- lavender: 15132410,
97
- lavenderblush: 16773365,
98
- lawngreen: 8190976,
99
- lemonchiffon: 16775885,
100
- lightblue: 11393254,
101
- lightcoral: 15761536,
102
- lightcyan: 14745599,
103
- lightgoldenrodyellow: 16448210,
104
- lightgray: 13882323,
105
- lightgreen: 9498256,
106
- lightgrey: 13882323,
107
- lightpink: 16758465,
108
- lightsalmon: 16752762,
109
- lightseagreen: 2142890,
110
- lightskyblue: 8900346,
111
- lightslategray: 7833753,
112
- lightslategrey: 7833753,
113
- lightsteelblue: 11584734,
114
- lightyellow: 16777184,
115
- lime: 65280,
116
- limegreen: 3329330,
117
- linen: 16445670,
118
- magenta: 16711935,
119
- maroon: 8388608,
120
- mediumaquamarine: 6737322,
121
- mediumblue: 205,
122
- mediumorchid: 12211667,
123
- mediumpurple: 9662683,
124
- mediumseagreen: 3978097,
125
- mediumslateblue: 8087790,
126
- mediumspringgreen: 64154,
127
- mediumturquoise: 4772300,
128
- mediumvioletred: 13047173,
129
- midnightblue: 1644912,
130
- mintcream: 16121850,
131
- mistyrose: 16770273,
132
- moccasin: 16770229,
133
- navajowhite: 16768685,
134
- navy: 128,
135
- oldlace: 16643558,
136
- olive: 8421376,
137
- olivedrab: 7048739,
138
- orange: 16753920,
139
- orangered: 16729344,
140
- orchid: 14315734,
141
- palegoldenrod: 15657130,
142
- palegreen: 10025880,
143
- paleturquoise: 11529966,
144
- palevioletred: 14381203,
145
- papayawhip: 16773077,
146
- peachpuff: 16767673,
147
- peru: 13468991,
148
- pink: 16761035,
149
- plum: 14524637,
150
- powderblue: 11591910,
151
- purple: 8388736,
152
- rebeccapurple: 6697881,
153
- red: 16711680,
154
- rosybrown: 12357519,
155
- royalblue: 4286945,
156
- saddlebrown: 9127187,
157
- salmon: 16416882,
158
- sandybrown: 16032864,
159
- seagreen: 3050327,
160
- seashell: 16774638,
161
- sienna: 10506797,
162
- silver: 12632256,
163
- skyblue: 8900331,
164
- slateblue: 6970061,
165
- slategray: 7372944,
166
- slategrey: 7372944,
167
- snow: 16775930,
168
- springgreen: 65407,
169
- steelblue: 4620980,
170
- tan: 13808780,
171
- teal: 32896,
172
- thistle: 14204888,
173
- tomato: 16737095,
174
- turquoise: 4251856,
175
- violet: 15631086,
176
- wheat: 16113331,
177
- white: 16777215,
178
- whitesmoke: 16119285,
179
- yellow: 16776960,
180
- yellowgreen: 10145074
181
- };
182
- const parseNamed = (color) => {
183
- return parseNumber_default(named_default[color.toLowerCase()], 6);
184
- };
185
- var parseNamed_default = parseNamed;
186
- const hex = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;
187
- const parseHex = (color) => {
188
- let match;
189
- return (match = color.match(hex)) ? parseNumber_default(parseInt(match[1], 16), match[1].length) : void 0;
190
- };
191
- var parseHex_default = parseHex;
192
- const num$1 = "([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)";
193
- `${num$1}`;
194
- const per = `${num$1}%`;
195
- `${num$1}`;
196
- const num_per = `(?:${num$1}%|${num$1})`;
197
- const num_per_none = `(?:${num$1}%|${num$1}|none)`;
198
- const hue$1 = `(?:${num$1}(deg|grad|rad|turn)|${num$1})`;
199
- `${num$1}${num$1}`;
200
- const c = `\\s*,\\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*)?\\)$`);
204
- const parseRgbLegacy = (color) => {
205
- let res = { mode: "rgb" };
206
- let match;
207
- if (match = color.match(rgb_num_old)) {
208
- if (match[1] !== void 0) res.r = match[1] / 255;
209
- if (match[2] !== void 0) res.g = match[2] / 255;
210
- if (match[3] !== void 0) res.b = match[3] / 255;
211
- } else if (match = color.match(rgb_per_old)) {
212
- if (match[1] !== void 0) res.r = match[1] / 100;
213
- if (match[2] !== void 0) res.g = match[2] / 100;
214
- if (match[3] !== void 0) res.b = match[3] / 100;
215
- } else return;
216
- if (match[4] !== void 0) res.alpha = Math.max(0, Math.min(1, match[4] / 100));
217
- else if (match[5] !== void 0) res.alpha = Math.max(0, Math.min(1, +match[5]));
218
- return res;
219
- };
220
- var parseRgbLegacy_default = parseRgbLegacy;
221
- const prepare = (color, mode) => color === void 0 ? void 0 : typeof color !== "object" ? parse_default(color) : color.mode !== void 0 ? color : mode ? {
222
- ...color,
223
- mode
224
- } : void 0;
225
- var _prepare_default = prepare;
226
- const converter = (target_mode = "rgb") => (color) => (color = _prepare_default(color, target_mode)) !== void 0 ? color.mode === target_mode ? color : converters$1[color.mode][target_mode] ? converters$1[color.mode][target_mode](color) : target_mode === "rgb" ? converters$1[color.mode].rgb(color) : converters$1.rgb[target_mode](converters$1[color.mode].rgb(color)) : void 0;
227
- var converter_default = converter;
228
- const converters$1 = {};
229
- const modes = {};
230
- const parsers = [];
231
- const colorProfiles = {};
232
- const identity = (v) => v;
233
- const useMode = (definition$28) => {
234
- converters$1[definition$28.mode] = {
235
- ...converters$1[definition$28.mode],
236
- ...definition$28.toMode
237
- };
238
- Object.keys(definition$28.fromMode || {}).forEach((k$3) => {
239
- if (!converters$1[k$3]) converters$1[k$3] = {};
240
- converters$1[k$3][definition$28.mode] = definition$28.fromMode[k$3];
241
- });
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;
249
- });
250
- modes[definition$28.mode] = definition$28;
251
- (definition$28.parse || []).forEach((parser) => {
252
- useParser(parser, definition$28.mode);
253
- });
254
- return converter_default(definition$28.mode);
255
- };
256
- const getMode = (mode) => modes[mode];
257
- const useParser = (parser, mode) => {
258
- if (typeof parser === "string") {
259
- if (!mode) throw new Error(`'mode' required when 'parser' is a string`);
260
- colorProfiles[parser] = mode;
261
- } else if (typeof parser === "function") {
262
- if (parsers.indexOf(parser) < 0) parsers.push(parser);
263
- }
264
- };
265
- const IdentStartCodePoint = /[^\x00-\x7F]|[a-zA-Z_]/;
266
- const IdentCodePoint = /[^\x00-\x7F]|[-\w]/;
267
- const Tok = {
268
- Function: "function",
269
- Ident: "ident",
270
- Number: "number",
271
- Percentage: "percentage",
272
- ParenClose: ")",
273
- None: "none",
274
- Hue: "hue",
275
- Alpha: "alpha"
276
- };
277
- let _i = 0;
278
- function is_num(chars) {
279
- let ch = chars[_i];
280
- let ch1 = chars[_i + 1];
281
- if (ch === "-" || ch === "+") return /\d/.test(ch1) || ch1 === "." && /\d/.test(chars[_i + 2]);
282
- if (ch === ".") return /\d/.test(ch1);
283
- return /\d/.test(ch);
284
- }
285
- function is_ident(chars) {
286
- if (_i >= chars.length) return false;
287
- let ch = chars[_i];
288
- if (IdentStartCodePoint.test(ch)) return true;
289
- if (ch === "-") {
290
- if (chars.length - _i < 2) return false;
291
- let ch1 = chars[_i + 1];
292
- if (ch1 === "-" || IdentStartCodePoint.test(ch1)) return true;
293
- return false;
294
- }
295
- return false;
296
- }
297
- const huenits = {
298
- deg: 1,
299
- rad: 180 / Math.PI,
300
- grad: 9 / 10,
301
- turn: 360
302
- };
303
- function num(chars) {
304
- let value = "";
305
- if (chars[_i] === "-" || chars[_i] === "+") value += chars[_i++];
306
- value += digits(chars);
307
- if (chars[_i] === "." && /\d/.test(chars[_i + 1])) value += chars[_i++] + digits(chars);
308
- if (chars[_i] === "e" || chars[_i] === "E") {
309
- if ((chars[_i + 1] === "-" || chars[_i + 1] === "+") && /\d/.test(chars[_i + 2])) value += chars[_i++] + chars[_i++] + digits(chars);
310
- else if (/\d/.test(chars[_i + 1])) value += chars[_i++] + digits(chars);
311
- }
312
- if (is_ident(chars)) {
313
- let id = ident(chars);
314
- if (id === "deg" || id === "rad" || id === "turn" || id === "grad") return {
315
- type: Tok.Hue,
316
- value: value * huenits[id]
317
- };
318
- return;
319
- }
320
- if (chars[_i] === "%") {
321
- _i++;
322
- return {
323
- type: Tok.Percentage,
324
- value: +value
325
- };
326
- }
327
- return {
328
- type: Tok.Number,
329
- value: +value
330
- };
331
- }
332
- function digits(chars) {
333
- let v = "";
334
- while (/\d/.test(chars[_i])) v += chars[_i++];
335
- return v;
336
- }
337
- function ident(chars) {
338
- let v = "";
339
- while (_i < chars.length && IdentCodePoint.test(chars[_i])) v += chars[_i++];
340
- return v;
341
- }
342
- function identlike(chars) {
343
- let v = ident(chars);
344
- if (chars[_i] === "(") {
345
- _i++;
346
- return {
347
- type: Tok.Function,
348
- value: v
349
- };
350
- }
351
- if (v === "none") return {
352
- type: Tok.None,
353
- value: void 0
354
- };
355
- return {
356
- type: Tok.Ident,
357
- value: v
358
- };
359
- }
360
- function tokenize(str = "") {
361
- let chars = str.trim();
362
- let tokens = [];
363
- let ch;
364
- _i = 0;
365
- while (_i < chars.length) {
366
- ch = chars[_i++];
367
- if (ch === "\n" || ch === " " || ch === " ") {
368
- while (_i < chars.length && (chars[_i] === "\n" || chars[_i] === " " || chars[_i] === " ")) _i++;
369
- continue;
370
- }
371
- if (ch === ",") return;
372
- if (ch === ")") {
373
- tokens.push({ type: Tok.ParenClose });
374
- continue;
375
- }
376
- if (ch === "+") {
377
- _i--;
378
- if (is_num(chars)) {
379
- tokens.push(num(chars));
380
- continue;
381
- }
382
- return;
383
- }
384
- if (ch === "-") {
385
- _i--;
386
- if (is_num(chars)) {
387
- tokens.push(num(chars));
388
- continue;
389
- }
390
- if (is_ident(chars)) {
391
- tokens.push({
392
- type: Tok.Ident,
393
- value: ident(chars)
394
- });
395
- continue;
396
- }
397
- return;
398
- }
399
- if (ch === ".") {
400
- _i--;
401
- if (is_num(chars)) {
402
- tokens.push(num(chars));
403
- continue;
404
- }
405
- return;
406
- }
407
- if (ch === "/") {
408
- while (_i < chars.length && (chars[_i] === "\n" || chars[_i] === " " || chars[_i] === " ")) _i++;
409
- let alpha;
410
- if (is_num(chars)) {
411
- alpha = num(chars);
412
- if (alpha.type !== Tok.Hue) {
413
- tokens.push({
414
- type: Tok.Alpha,
415
- value: alpha
416
- });
417
- continue;
418
- }
419
- }
420
- if (is_ident(chars)) {
421
- if (ident(chars) === "none") {
422
- tokens.push({
423
- type: Tok.Alpha,
424
- value: {
425
- type: Tok.None,
426
- value: void 0
427
- }
428
- });
429
- continue;
430
- }
431
- }
432
- return;
433
- }
434
- if (/\d/.test(ch)) {
435
- _i--;
436
- tokens.push(num(chars));
437
- continue;
438
- }
439
- if (IdentStartCodePoint.test(ch)) {
440
- _i--;
441
- tokens.push(identlike(chars));
442
- continue;
443
- }
444
- return;
445
- }
446
- return tokens;
447
- }
448
- function parseColorSyntax(tokens) {
449
- tokens._i = 0;
450
- let token = tokens[tokens._i++];
451
- if (!token || token.type !== Tok.Function || token.value !== "color") return;
452
- token = tokens[tokens._i++];
453
- if (token.type !== Tok.Ident) return;
454
- const mode = colorProfiles[token.value];
455
- if (!mode) return;
456
- const res = { mode };
457
- const coords = consumeCoords(tokens, false);
458
- if (!coords) return;
459
- const channels = getMode(mode).channels;
460
- for (let ii = 0, c$1, ch; ii < channels.length; ii++) {
461
- c$1 = coords[ii];
462
- ch = channels[ii];
463
- if (c$1.type !== Tok.None) {
464
- res[ch] = c$1.type === Tok.Number ? c$1.value : c$1.value / 100;
465
- if (ch === "alpha") res[ch] = Math.max(0, Math.min(1, res[ch]));
466
- }
467
- }
468
- return res;
469
- }
470
- function consumeCoords(tokens, includeHue) {
471
- const coords = [];
472
- let token;
473
- while (tokens._i < tokens.length) {
474
- token = tokens[tokens._i++];
475
- if (token.type === Tok.None || token.type === Tok.Number || token.type === Tok.Alpha || token.type === Tok.Percentage || includeHue && token.type === Tok.Hue) {
476
- coords.push(token);
477
- continue;
478
- }
479
- if (token.type === Tok.ParenClose) {
480
- if (tokens._i < tokens.length) return;
481
- continue;
482
- }
483
- return;
484
- }
485
- if (coords.length < 3 || coords.length > 4) return;
486
- if (coords.length === 4) {
487
- if (coords[3].type !== Tok.Alpha) return;
488
- coords[3] = coords[3].value;
489
- }
490
- if (coords.length === 3) coords.push({
491
- type: Tok.None,
492
- value: void 0
493
- });
494
- return coords.every((c$1) => c$1.type !== Tok.Alpha) ? coords : void 0;
495
- }
496
- function parseModernSyntax(tokens, includeHue) {
497
- tokens._i = 0;
498
- let token = tokens[tokens._i++];
499
- if (!token || token.type !== Tok.Function) return;
500
- let coords = consumeCoords(tokens, includeHue);
501
- if (!coords) return;
502
- coords.unshift(token.value);
503
- return coords;
504
- }
505
- const parse = (color) => {
506
- if (typeof color !== "string") return;
507
- const tokens = tokenize(color);
508
- const parsed = tokens ? parseModernSyntax(tokens, true) : void 0;
509
- let result = void 0;
510
- let i = 0;
511
- let len = parsers.length;
512
- while (i < len) if ((result = parsers[i++](color, parsed)) !== void 0) return result;
513
- return tokens ? parseColorSyntax(tokens) : void 0;
514
- };
515
- var parse_default = parse;
516
- function parseRgb(color, parsed) {
517
- if (!parsed || parsed[0] !== "rgb" && parsed[0] !== "rgba") return;
518
- const res = { mode: "rgb" };
519
- const [, r$1, g, b, alpha] = parsed;
520
- if (r$1.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) return;
521
- if (r$1.type !== Tok.None) res.r = r$1.type === Tok.Number ? r$1.value / 255 : r$1.value / 100;
522
- if (g.type !== Tok.None) res.g = g.type === Tok.Number ? g.value / 255 : g.value / 100;
523
- if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value / 255 : b.value / 100;
524
- if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
525
- return res;
526
- }
527
- var parseRgb_default = parseRgb;
528
- const parseTransparent = (c$1) => c$1 === "transparent" ? {
529
- mode: "rgb",
530
- r: 0,
531
- g: 0,
532
- b: 0,
533
- alpha: 0
534
- } : void 0;
535
- var parseTransparent_default = parseTransparent;
536
- const lerp = (a, b, t) => a + t * (b - a);
537
- const get_classes = (arr) => {
538
- let classes = [];
539
- for (let i = 0; i < arr.length - 1; i++) {
540
- let a = arr[i];
541
- let b = arr[i + 1];
542
- if (a === void 0 && b === void 0) classes.push(void 0);
543
- else if (a !== void 0 && b !== void 0) classes.push([a, b]);
544
- else classes.push(a !== void 0 ? [a, a] : [b, b]);
545
- }
546
- return classes;
547
- };
548
- const interpolatorPiecewise = (interpolator) => (arr) => {
549
- let classes = get_classes(arr);
550
- return (t) => {
551
- let cls = t * classes.length;
552
- let idx = t >= 1 ? classes.length - 1 : Math.max(Math.floor(cls), 0);
553
- let pair = classes[idx];
554
- return pair === void 0 ? void 0 : interpolator(pair[0], pair[1], cls - idx);
555
- };
556
- };
557
- const interpolatorLinear = interpolatorPiecewise(lerp);
558
- const fixupAlpha = (arr) => {
559
- let some_defined = false;
560
- let res = arr.map((v) => {
561
- if (v !== void 0) {
562
- some_defined = true;
563
- return v;
564
- }
565
- return 1;
566
- });
567
- return some_defined ? res : arr;
568
- };
569
- var definition_default$12 = {
570
- mode: "rgb",
571
- channels: [
572
- "r",
573
- "g",
574
- "b",
575
- "alpha"
576
- ],
577
- parse: [
578
- parseRgb_default,
579
- parseHex_default,
580
- parseRgbLegacy_default,
581
- parseNamed_default,
582
- parseTransparent_default,
583
- "srgb"
584
- ],
585
- serialize: "srgb",
586
- interpolate: {
587
- r: interpolatorLinear,
588
- g: interpolatorLinear,
589
- b: interpolatorLinear,
590
- alpha: {
591
- use: interpolatorLinear,
592
- fixup: fixupAlpha
593
- }
594
- },
595
- gamut: true,
596
- white: {
597
- r: 1,
598
- g: 1,
599
- b: 1
600
- },
601
- black: {
602
- r: 0,
603
- g: 0,
604
- b: 0
605
- }
606
- };
607
- const linearize$2 = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);
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);
612
- let res = {
613
- mode: "xyz65",
614
- x: .5766690429101305 * r$1 + .1855582379065463 * g + .1882286462349947 * b,
615
- y: .297344975250536 * r$1 + .6273635662554661 * g + .0752914584939979 * b,
616
- z: .0270313613864123 * r$1 + .0706888525358272 * g + .9913375368376386 * b
617
- };
618
- if (a98$2.alpha !== void 0) res.alpha = a98$2.alpha;
619
- return res;
620
- };
621
- var convertA98ToXyz65_default = convertA98ToXyz65;
622
- const gamma$2 = (v) => Math.pow(Math.abs(v), 256 / 563) * Math.sign(v);
623
- const convertXyz65ToA98 = ({ x, y, z, alpha }) => {
624
- if (x === void 0) x = 0;
625
- if (y === void 0) y = 0;
626
- if (z === void 0) z = 0;
627
- let res = {
628
- mode: "a98",
629
- r: gamma$2(x * 2.0415879038107465 - y * .5650069742788597 - .3447313507783297 * z),
630
- g: gamma$2(x * -.9692436362808798 + y * 1.8759675015077206 + .0415550574071756 * z),
631
- b: gamma$2(x * .0134442806320312 - y * .1183623922310184 + 1.0151749943912058 * z)
632
- };
633
- if (alpha !== void 0) res.alpha = alpha;
634
- return res;
635
- };
636
- var convertXyz65ToA98_default = convertXyz65ToA98;
637
- const fn$3 = (c$1 = 0) => {
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);
641
- };
642
- const convertRgbToLrgb = ({ r: r$1, g, b, alpha }) => {
643
- let res = {
644
- mode: "lrgb",
645
- r: fn$3(r$1),
646
- g: fn$3(g),
647
- b: fn$3(b)
648
- };
649
- if (alpha !== void 0) res.alpha = alpha;
650
- return res;
651
- };
652
- var convertRgbToLrgb_default = convertRgbToLrgb;
653
- const convertRgbToXyz65 = (rgb$4) => {
654
- let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);
655
- let res = {
656
- mode: "xyz65",
657
- x: .4123907992659593 * r$1 + .357584339383878 * g + .1804807884018343 * b,
658
- y: .2126390058715102 * r$1 + .715168678767756 * g + .0721923153607337 * b,
659
- z: .0193308187155918 * r$1 + .119194779794626 * g + .9505321522496607 * b
660
- };
661
- if (alpha !== void 0) res.alpha = alpha;
662
- return res;
663
- };
664
- var convertRgbToXyz65_default = convertRgbToXyz65;
665
- const fn$2 = (c$1 = 0) => {
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);
668
- return c$1 * 12.92;
669
- };
670
- const convertLrgbToRgb = ({ r: r$1, g, b, alpha }, mode = "rgb") => {
671
- let res = {
672
- mode,
673
- r: fn$2(r$1),
674
- g: fn$2(g),
675
- b: fn$2(b)
676
- };
677
- if (alpha !== void 0) res.alpha = alpha;
678
- return res;
679
- };
680
- var convertLrgbToRgb_default = convertLrgbToRgb;
681
- const convertXyz65ToRgb = ({ x, y, z, alpha }) => {
682
- if (x === void 0) x = 0;
683
- if (y === void 0) y = 0;
684
- if (z === void 0) z = 0;
685
- let res = convertLrgbToRgb_default({
686
- r: x * 3.2409699419045226 - y * 1.537383177570094 - .4986107602930034 * z,
687
- g: x * -.9692436362808796 + y * 1.8759675015077204 + .0415550574071756 * z,
688
- b: x * .0556300796969936 - y * .2039769588889765 + 1.0569715142428784 * z
689
- });
690
- if (alpha !== void 0) res.alpha = alpha;
691
- return res;
692
- };
693
- var convertXyz65ToRgb_default = convertXyz65ToRgb;
694
- var definition_default = {
695
- ...definition_default$12,
696
- mode: "a98",
697
- parse: ["a98-rgb"],
698
- serialize: "a98-rgb",
699
- fromMode: {
700
- rgb: (color) => convertXyz65ToA98_default(convertRgbToXyz65_default(color)),
701
- xyz65: convertXyz65ToA98_default
702
- },
703
- toMode: {
704
- rgb: (color) => convertXyz65ToRgb_default(convertA98ToXyz65_default(color)),
705
- xyz65: convertA98ToXyz65_default
706
- }
707
- };
708
- const normalizeHue = (hue$2) => (hue$2 = hue$2 % 360) < 0 ? hue$2 + 360 : hue$2;
709
- var normalizeHue_default = normalizeHue;
710
- function convertHslToRgb({ h, s, l, alpha }) {
711
- h = normalizeHue_default(h !== void 0 ? h : 0);
712
- if (s === void 0) s = 0;
713
- if (l === void 0) l = 0;
714
- let m1 = l + s * (l < .5 ? l : 1 - l);
715
- let m2 = m1 - (m1 - l) * 2 * Math.abs(h / 60 % 2 - 1);
716
- let res;
717
- switch (Math.floor(h / 60)) {
718
- case 0:
719
- res = {
720
- r: m1,
721
- g: m2,
722
- b: 2 * l - m1
723
- };
724
- break;
725
- case 1:
726
- res = {
727
- r: m2,
728
- g: m1,
729
- b: 2 * l - m1
730
- };
731
- break;
732
- case 2:
733
- res = {
734
- r: 2 * l - m1,
735
- g: m1,
736
- b: m2
737
- };
738
- break;
739
- case 3:
740
- res = {
741
- r: 2 * l - m1,
742
- g: m2,
743
- b: m1
744
- };
745
- break;
746
- case 4:
747
- res = {
748
- r: m2,
749
- g: 2 * l - m1,
750
- b: m1
751
- };
752
- break;
753
- case 5:
754
- res = {
755
- r: m1,
756
- g: 2 * l - m1,
757
- b: m2
758
- };
759
- break;
760
- default: res = {
761
- r: 2 * l - m1,
762
- g: 2 * l - m1,
763
- b: 2 * l - m1
764
- };
765
- }
766
- res.mode = "rgb";
767
- if (alpha !== void 0) res.alpha = alpha;
768
- return res;
769
- }
770
- function convertRgbToHsl({ r: r$1, g, b, alpha }) {
771
- if (r$1 === void 0) r$1 = 0;
772
- if (g === void 0) g = 0;
773
- if (b === void 0) b = 0;
774
- let M$1 = Math.max(r$1, g, b), m = Math.min(r$1, g, b);
775
- let res = {
776
- mode: "hsl",
777
- s: M$1 === m ? 0 : (M$1 - m) / (1 - Math.abs(M$1 + m - 1)),
778
- l: .5 * (M$1 + m)
779
- };
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;
781
- if (alpha !== void 0) res.alpha = alpha;
782
- return res;
783
- }
784
- const hueToDeg = (val, unit) => {
785
- switch (unit) {
786
- case "deg": return +val;
787
- case "rad": return val / Math.PI * 180;
788
- case "grad": return val / 10 * 9;
789
- case "turn": return val * 360;
790
- }
791
- };
792
- var hue_default = hueToDeg;
793
- const hsl_old = /* @__PURE__ */ new RegExp(`^hsla?\\(\\s*${hue$1}${c}${per}${c}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
794
- const parseHslLegacy = (color) => {
795
- let match = color.match(hsl_old);
796
- if (!match) return;
797
- let res = { mode: "hsl" };
798
- if (match[3] !== void 0) res.h = +match[3];
799
- else if (match[1] !== void 0 && match[2] !== void 0) res.h = hue_default(match[1], match[2]);
800
- if (match[4] !== void 0) res.s = Math.min(Math.max(0, match[4] / 100), 1);
801
- if (match[5] !== void 0) res.l = Math.min(Math.max(0, match[5] / 100), 1);
802
- if (match[6] !== void 0) res.alpha = Math.max(0, Math.min(1, match[6] / 100));
803
- else if (match[7] !== void 0) res.alpha = Math.max(0, Math.min(1, +match[7]));
804
- return res;
805
- };
806
- var parseHslLegacy_default = parseHslLegacy;
807
- function parseHsl(color, parsed) {
808
- if (!parsed || parsed[0] !== "hsl" && parsed[0] !== "hsla") return;
809
- const res = { mode: "hsl" };
810
- const [, h, s, l, alpha] = parsed;
811
- if (h.type !== Tok.None) {
812
- if (h.type === Tok.Percentage) return;
813
- res.h = h.value;
814
- }
815
- if (s.type !== Tok.None) {
816
- if (s.type === Tok.Hue) return;
817
- res.s = s.value / 100;
818
- }
819
- if (l.type !== Tok.None) {
820
- if (l.type === Tok.Hue) return;
821
- res.l = l.value / 100;
822
- }
823
- if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
824
- return res;
825
- }
826
- var parseHsl_default = parseHsl;
827
- const hue = (hues, fn$4) => {
828
- return hues.map((hue$2, idx, arr) => {
829
- if (hue$2 === void 0) return hue$2;
830
- let normalized = normalizeHue_default(hue$2);
831
- if (idx === 0 || hues[idx - 1] === void 0) return normalized;
832
- return fn$4(normalized - normalizeHue_default(arr[idx - 1]));
833
- }).reduce((acc, curr) => {
834
- if (!acc.length || curr === void 0 || acc[acc.length - 1] === void 0) {
835
- acc.push(curr);
836
- return acc;
837
- }
838
- acc.push(curr + acc[acc.length - 1]);
839
- return acc;
840
- }, []);
841
- };
842
- const fixupHueShorter = (arr) => hue(arr, (d) => Math.abs(d) <= 180 ? d : d - 360 * Math.sign(d));
843
- const differenceHueSaturation = (std, smp) => {
844
- if (std.h === void 0 || smp.h === void 0 || !std.s || !smp.s) return 0;
845
- let std_h = normalizeHue_default(std.h);
846
- let smp_h = normalizeHue_default(smp.h);
847
- let dH = Math.sin((smp_h - std_h + 360) / 2 * Math.PI / 180);
848
- return 2 * Math.sqrt(std.s * smp.s) * dH;
849
- };
850
- const differenceHueNaive = (std, smp) => {
851
- if (std.h === void 0 || smp.h === void 0) return 0;
852
- let std_h = normalizeHue_default(std.h);
853
- let smp_h = normalizeHue_default(smp.h);
854
- if (Math.abs(smp_h - std_h) > 180) return std_h - (smp_h - 360 * Math.sign(smp_h - std_h));
855
- return smp_h - std_h;
856
- };
857
- const differenceHueChroma = (std, smp) => {
858
- if (std.h === void 0 || smp.h === void 0 || !std.c || !smp.c) return 0;
859
- let std_h = normalizeHue_default(std.h);
860
- let smp_h = normalizeHue_default(smp.h);
861
- let dH = Math.sin((smp_h - std_h + 360) / 2 * Math.PI / 180);
862
- return 2 * Math.sqrt(std.c * smp.c) * dH;
863
- };
864
- const averageAngle = (val) => {
865
- let sum = val.reduce((sum$1, val$1) => {
866
- if (val$1 !== void 0) {
867
- let rad = val$1 * Math.PI / 180;
868
- sum$1.sin += Math.sin(rad);
869
- sum$1.cos += Math.cos(rad);
870
- }
871
- return sum$1;
872
- }, {
873
- sin: 0,
874
- cos: 0
875
- });
876
- let angle = Math.atan2(sum.sin, sum.cos) * 180 / Math.PI;
877
- return angle < 0 ? 360 + angle : angle;
878
- };
879
- var definition_default$1 = {
880
- mode: "hsl",
881
- toMode: { rgb: convertHslToRgb },
882
- fromMode: { rgb: convertRgbToHsl },
883
- channels: [
884
- "h",
885
- "s",
886
- "l",
887
- "alpha"
888
- ],
889
- ranges: { h: [0, 360] },
890
- gamut: "rgb",
891
- parse: [parseHsl_default, parseHslLegacy_default],
892
- serialize: (c$1) => `hsl(${c$1.h !== void 0 ? c$1.h : "none"} ${c$1.s !== void 0 ? c$1.s * 100 + "%" : "none"} ${c$1.l !== void 0 ? c$1.l * 100 + "%" : "none"}${c$1.alpha < 1 ? ` / ${c$1.alpha}` : ""})`,
893
- interpolate: {
894
- h: {
895
- use: interpolatorLinear,
896
- fixup: fixupHueShorter
897
- },
898
- s: interpolatorLinear,
899
- l: interpolatorLinear,
900
- alpha: {
901
- use: interpolatorLinear,
902
- fixup: fixupAlpha
903
- }
904
- },
905
- difference: { h: differenceHueSaturation },
906
- average: { h: averageAngle }
907
- };
908
- function convertHsvToRgb({ h, s, v, alpha }) {
909
- h = normalizeHue_default(h !== void 0 ? h : 0);
910
- if (s === void 0) s = 0;
911
- if (v === void 0) v = 0;
912
- let f$2 = Math.abs(h / 60 % 2 - 1);
913
- let res;
914
- switch (Math.floor(h / 60)) {
915
- case 0:
916
- res = {
917
- r: v,
918
- g: v * (1 - s * f$2),
919
- b: v * (1 - s)
920
- };
921
- break;
922
- case 1:
923
- res = {
924
- r: v * (1 - s * f$2),
925
- g: v,
926
- b: v * (1 - s)
927
- };
928
- break;
929
- case 2:
930
- res = {
931
- r: v * (1 - s),
932
- g: v,
933
- b: v * (1 - s * f$2)
934
- };
935
- break;
936
- case 3:
937
- res = {
938
- r: v * (1 - s),
939
- g: v * (1 - s * f$2),
940
- b: v
941
- };
942
- break;
943
- case 4:
944
- res = {
945
- r: v * (1 - s * f$2),
946
- g: v * (1 - s),
947
- b: v
948
- };
949
- break;
950
- case 5:
951
- res = {
952
- r: v,
953
- g: v * (1 - s),
954
- b: v * (1 - s * f$2)
955
- };
956
- break;
957
- default: res = {
958
- r: v * (1 - s),
959
- g: v * (1 - s),
960
- b: v * (1 - s)
961
- };
962
- }
963
- res.mode = "rgb";
964
- if (alpha !== void 0) res.alpha = alpha;
965
- return res;
966
- }
967
- function convertRgbToHsv({ r: r$1, g, b, alpha }) {
968
- if (r$1 === void 0) r$1 = 0;
969
- if (g === void 0) g = 0;
970
- if (b === void 0) b = 0;
971
- let M$1 = Math.max(r$1, g, b), m = Math.min(r$1, g, b);
972
- let res = {
973
- mode: "hsv",
974
- s: M$1 === 0 ? 0 : 1 - m / M$1,
975
- v: M$1
976
- };
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;
978
- if (alpha !== void 0) res.alpha = alpha;
979
- return res;
980
- }
981
- var definition_default$19 = {
982
- mode: "hsv",
983
- toMode: { rgb: convertHsvToRgb },
984
- parse: ["--hsv"],
985
- serialize: "--hsv",
986
- fromMode: { rgb: convertRgbToHsv },
987
- channels: [
988
- "h",
989
- "s",
990
- "v",
991
- "alpha"
992
- ],
993
- ranges: { h: [0, 360] },
994
- gamut: "rgb",
995
- interpolate: {
996
- h: {
997
- use: interpolatorLinear,
998
- fixup: fixupHueShorter
999
- },
1000
- s: interpolatorLinear,
1001
- v: interpolatorLinear,
1002
- alpha: {
1003
- use: interpolatorLinear,
1004
- fixup: fixupAlpha
1005
- }
1006
- },
1007
- difference: { h: differenceHueSaturation },
1008
- average: { h: averageAngle }
1009
- };
1010
- function convertHwbToRgb({ h, w, b, alpha }) {
1011
- if (w === void 0) w = 0;
1012
- if (b === void 0) b = 0;
1013
- if (w + b > 1) {
1014
- let s = w + b;
1015
- w /= s;
1016
- b /= s;
1017
- }
1018
- return convertHsvToRgb({
1019
- h,
1020
- s: b === 1 ? 1 : 1 - w / (1 - b),
1021
- v: 1 - b,
1022
- alpha
1023
- });
1024
- }
1025
- function convertRgbToHwb(rgba) {
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;
1030
- let res = {
1031
- mode: "hwb",
1032
- w: (1 - s) * v,
1033
- b: 1 - v
1034
- };
1035
- if (hsv$2.h !== void 0) res.h = hsv$2.h;
1036
- if (hsv$2.alpha !== void 0) res.alpha = hsv$2.alpha;
1037
- return res;
1038
- }
1039
- function ParseHwb(color, parsed) {
1040
- if (!parsed || parsed[0] !== "hwb") return;
1041
- const res = { mode: "hwb" };
1042
- const [, h, w, b, alpha] = parsed;
1043
- if (h.type !== Tok.None) {
1044
- if (h.type === Tok.Percentage) return;
1045
- res.h = h.value;
1046
- }
1047
- if (w.type !== Tok.None) {
1048
- if (w.type === Tok.Hue) return;
1049
- res.w = w.value / 100;
1050
- }
1051
- if (b.type !== Tok.None) {
1052
- if (b.type === Tok.Hue) return;
1053
- res.b = b.value / 100;
1054
- }
1055
- if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1056
- return res;
1057
- }
1058
- var definition_default$2 = {
1059
- mode: "hwb",
1060
- toMode: { rgb: convertHwbToRgb },
1061
- fromMode: { rgb: convertRgbToHwb },
1062
- channels: [
1063
- "h",
1064
- "w",
1065
- "b",
1066
- "alpha"
1067
- ],
1068
- ranges: { h: [0, 360] },
1069
- gamut: "rgb",
1070
- parse: [ParseHwb],
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}` : ""})`,
1072
- interpolate: {
1073
- h: {
1074
- use: interpolatorLinear,
1075
- fixup: fixupHueShorter
1076
- },
1077
- w: interpolatorLinear,
1078
- b: interpolatorLinear,
1079
- alpha: {
1080
- use: interpolatorLinear,
1081
- fixup: fixupAlpha
1082
- }
1083
- },
1084
- difference: { h: differenceHueNaive },
1085
- average: { h: averageAngle }
1086
- };
1087
- const k = Math.pow(29, 3) / Math.pow(3, 3);
1088
- const e = Math.pow(6, 3) / Math.pow(29, 3);
1089
- const D50 = {
1090
- X: .3457 / .3585,
1091
- Y: 1,
1092
- Z: .2958 / .3585
1093
- };
1094
- const D65 = {
1095
- X: .3127 / .329,
1096
- Y: 1,
1097
- Z: .3583 / .329
1098
- };
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;
1102
- const convertLabToXyz50 = ({ l, a, b, alpha }) => {
1103
- if (l === void 0) l = 0;
1104
- if (a === void 0) a = 0;
1105
- if (b === void 0) b = 0;
1106
- let fy = (l + 16) / 116;
1107
- let fx = a / 500 + fy;
1108
- let fz = fy - b / 200;
1109
- let res = {
1110
- mode: "xyz50",
1111
- x: fn$1(fx) * D50.X,
1112
- y: fn$1(fy) * D50.Y,
1113
- z: fn$1(fz) * D50.Z
1114
- };
1115
- if (alpha !== void 0) res.alpha = alpha;
1116
- return res;
1117
- };
1118
- var convertLabToXyz50_default = convertLabToXyz50;
1119
- const convertXyz50ToRgb = ({ x, y, z, alpha }) => {
1120
- if (x === void 0) x = 0;
1121
- if (y === void 0) y = 0;
1122
- if (z === void 0) z = 0;
1123
- let res = convertLrgbToRgb_default({
1124
- r: x * 3.1341359569958707 - y * 1.6173863321612538 - .4906619460083532 * z,
1125
- g: x * -.978795502912089 + y * 1.916254567259524 + .03344273116131949 * z,
1126
- b: x * .07195537988411677 - y * .2289768264158322 + 1.405386058324125 * z
1127
- });
1128
- if (alpha !== void 0) res.alpha = alpha;
1129
- return res;
1130
- };
1131
- var convertXyz50ToRgb_default = convertXyz50ToRgb;
1132
- const convertLabToRgb = (lab$2) => convertXyz50ToRgb_default(convertLabToXyz50_default(lab$2));
1133
- var convertLabToRgb_default = convertLabToRgb;
1134
- const convertRgbToXyz50 = (rgb$4) => {
1135
- let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);
1136
- let res = {
1137
- mode: "xyz50",
1138
- x: .436065742824811 * r$1 + .3851514688337912 * g + .14307845442264197 * b,
1139
- y: .22249319175623702 * r$1 + .7168870538238823 * g + .06061979053616537 * b,
1140
- z: .013923904500943465 * r$1 + .09708128566574634 * g + .7140993584005155 * b
1141
- };
1142
- if (alpha !== void 0) res.alpha = alpha;
1143
- return res;
1144
- };
1145
- var convertRgbToXyz50_default = convertRgbToXyz50;
1146
- const f$1 = (value) => value > e ? Math.cbrt(value) : (k * value + 16) / 116;
1147
- const convertXyz50ToLab = ({ x, y, z, alpha }) => {
1148
- if (x === void 0) x = 0;
1149
- if (y === void 0) y = 0;
1150
- if (z === void 0) z = 0;
1151
- let f0 = f$1(x / D50.X);
1152
- let f1 = f$1(y / D50.Y);
1153
- let f2 = f$1(z / D50.Z);
1154
- let res = {
1155
- mode: "lab",
1156
- l: 116 * f1 - 16,
1157
- a: 500 * (f0 - f1),
1158
- b: 200 * (f1 - f2)
1159
- };
1160
- if (alpha !== void 0) res.alpha = alpha;
1161
- return res;
1162
- };
1163
- var convertXyz50ToLab_default = convertXyz50ToLab;
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;
1167
- return res;
1168
- };
1169
- var convertRgbToLab_default = convertRgbToLab;
1170
- function parseLab(color, parsed) {
1171
- if (!parsed || parsed[0] !== "lab") return;
1172
- const res = { mode: "lab" };
1173
- const [, l, a, b, alpha] = parsed;
1174
- if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return;
1175
- if (l.type !== Tok.None) res.l = Math.min(Math.max(0, l.value), 100);
1176
- if (a.type !== Tok.None) res.a = a.type === Tok.Number ? a.value : a.value * 125 / 100;
1177
- if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value : b.value * 125 / 100;
1178
- if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1179
- return res;
1180
- }
1181
- var definition_default$3 = {
1182
- mode: "lab",
1183
- toMode: {
1184
- xyz50: convertLabToXyz50_default,
1185
- rgb: convertLabToRgb_default
1186
- },
1187
- fromMode: {
1188
- xyz50: convertXyz50ToLab_default,
1189
- rgb: convertRgbToLab_default
1190
- },
1191
- channels: [
1192
- "l",
1193
- "a",
1194
- "b",
1195
- "alpha"
1196
- ],
1197
- ranges: {
1198
- l: [0, 100],
1199
- a: [-125, 125],
1200
- b: [-125, 125]
1201
- },
1202
- parse: [parseLab],
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}` : ""})`,
1204
- interpolate: {
1205
- l: interpolatorLinear,
1206
- a: interpolatorLinear,
1207
- b: interpolatorLinear,
1208
- alpha: {
1209
- use: interpolatorLinear,
1210
- fixup: fixupAlpha
1211
- }
1212
- }
1213
- };
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;
1217
- const convertLab65ToXyz65 = ({ l, a, b, alpha }) => {
1218
- if (l === void 0) l = 0;
1219
- if (a === void 0) a = 0;
1220
- if (b === void 0) b = 0;
1221
- let fy = (l + 16) / 116;
1222
- let fx = a / 500 + fy;
1223
- let fz = fy - b / 200;
1224
- let res = {
1225
- mode: "xyz65",
1226
- x: fn(fx) * D65.X,
1227
- y: fn(fy) * D65.Y,
1228
- z: fn(fz) * D65.Z
1229
- };
1230
- if (alpha !== void 0) res.alpha = alpha;
1231
- return res;
1232
- };
1233
- var convertLab65ToXyz65_default = convertLab65ToXyz65;
1234
- const convertLab65ToRgb = (lab$2) => convertXyz65ToRgb_default(convertLab65ToXyz65_default(lab$2));
1235
- var convertLab65ToRgb_default = convertLab65ToRgb;
1236
- const f = (value) => value > e$1 ? Math.cbrt(value) : (k$1 * value + 16) / 116;
1237
- const convertXyz65ToLab65 = ({ x, y, z, alpha }) => {
1238
- if (x === void 0) x = 0;
1239
- if (y === void 0) y = 0;
1240
- if (z === void 0) z = 0;
1241
- let f0 = f(x / D65.X);
1242
- let f1 = f(y / D65.Y);
1243
- let f2 = f(z / D65.Z);
1244
- let res = {
1245
- mode: "lab65",
1246
- l: 116 * f1 - 16,
1247
- a: 500 * (f0 - f1),
1248
- b: 200 * (f1 - f2)
1249
- };
1250
- if (alpha !== void 0) res.alpha = alpha;
1251
- return res;
1252
- };
1253
- var convertXyz65ToLab65_default = convertXyz65ToLab65;
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;
1257
- return res;
1258
- };
1259
- var convertRgbToLab65_default = convertRgbToLab65;
1260
- var definition_default$4 = {
1261
- ...definition_default$3,
1262
- mode: "lab65",
1263
- parse: ["--lab-d65"],
1264
- serialize: "--lab-d65",
1265
- toMode: {
1266
- xyz65: convertLab65ToXyz65_default,
1267
- rgb: convertLab65ToRgb_default
1268
- },
1269
- fromMode: {
1270
- xyz65: convertXyz65ToLab65_default,
1271
- rgb: convertRgbToLab65_default
1272
- },
1273
- ranges: {
1274
- l: [0, 100],
1275
- a: [-125, 125],
1276
- b: [-125, 125]
1277
- }
1278
- };
1279
- const convertLabToLch = ({ l, a, b, alpha }, mode = "lch") => {
1280
- if (a === void 0) a = 0;
1281
- if (b === void 0) b = 0;
1282
- let c$1 = Math.sqrt(a * a + b * b);
1283
- let res = {
1284
- mode,
1285
- l,
1286
- c: c$1
1287
- };
1288
- if (c$1) res.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
1289
- if (alpha !== void 0) res.alpha = alpha;
1290
- return res;
1291
- };
1292
- var convertLabToLch_default = convertLabToLch;
1293
- const convertLchToLab = ({ l, c: c$1, h, alpha }, mode = "lab") => {
1294
- if (h === void 0) h = 0;
1295
- let res = {
1296
- mode,
1297
- l,
1298
- a: c$1 ? c$1 * Math.cos(h / 180 * Math.PI) : 0,
1299
- b: c$1 ? c$1 * Math.sin(h / 180 * Math.PI) : 0
1300
- };
1301
- if (alpha !== void 0) res.alpha = alpha;
1302
- return res;
1303
- };
1304
- var convertLchToLab_default = convertLchToLab;
1305
- function parseLch(color, parsed) {
1306
- if (!parsed || parsed[0] !== "lch") return;
1307
- const res = { mode: "lch" };
1308
- const [, l, c$1, h, alpha] = parsed;
1309
- if (l.type !== Tok.None) {
1310
- if (l.type === Tok.Hue) return;
1311
- res.l = Math.min(Math.max(0, l.value), 100);
1312
- }
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);
1314
- if (h.type !== Tok.None) {
1315
- if (h.type === Tok.Percentage) return;
1316
- res.h = h.value;
1317
- }
1318
- if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1319
- return res;
1320
- }
1321
- var definition_default$5 = {
1322
- mode: "lch",
1323
- toMode: {
1324
- lab: convertLchToLab_default,
1325
- rgb: (c$1) => convertLabToRgb_default(convertLchToLab_default(c$1))
1326
- },
1327
- fromMode: {
1328
- rgb: (c$1) => convertLabToLch_default(convertRgbToLab_default(c$1)),
1329
- lab: convertLabToLch_default
1330
- },
1331
- channels: [
1332
- "l",
1333
- "c",
1334
- "h",
1335
- "alpha"
1336
- ],
1337
- ranges: {
1338
- l: [0, 100],
1339
- c: [0, 150],
1340
- h: [0, 360]
1341
- },
1342
- parse: [parseLch],
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}` : ""})`,
1344
- interpolate: {
1345
- h: {
1346
- use: interpolatorLinear,
1347
- fixup: fixupHueShorter
1348
- },
1349
- c: interpolatorLinear,
1350
- l: interpolatorLinear,
1351
- alpha: {
1352
- use: interpolatorLinear,
1353
- fixup: fixupAlpha
1354
- }
1355
- },
1356
- difference: { h: differenceHueChroma },
1357
- average: { h: averageAngle }
1358
- };
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 = {
1379
- ...definition_default$12,
1380
- mode: "lrgb",
1381
- toMode: { rgb: convertLrgbToRgb_default },
1382
- fromMode: { rgb: convertRgbToLrgb_default },
1383
- parse: ["srgb-linear"],
1384
- serialize: "srgb-linear"
1385
- };
1386
- const convertOklabToLrgb = ({ l, a, b, alpha }) => {
1387
- if (l === void 0) l = 0;
1388
- if (a === void 0) a = 0;
1389
- if (b === void 0) b = 0;
1390
- let L = Math.pow(l + .3963377773761749 * a + .2158037573099136 * b, 3);
1391
- let M$1 = Math.pow(l - .1055613458156586 * a - .0638541728258133 * b, 3);
1392
- let S = Math.pow(l - .0894841775298119 * a - 1.2914855480194092 * b, 3);
1393
- let res = {
1394
- mode: "lrgb",
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
1398
- };
1399
- if (alpha !== void 0) res.alpha = alpha;
1400
- return res;
1401
- };
1402
- var convertOklabToLrgb_default = convertOklabToLrgb;
1403
- const convertLrgbToOklab = ({ r: r$1, g, b, alpha }) => {
1404
- if (r$1 === void 0) r$1 = 0;
1405
- if (g === void 0) g = 0;
1406
- if (b === void 0) b = 0;
1407
- let L = Math.cbrt(.412221469470763 * r$1 + .5363325372617348 * g + .0514459932675022 * b);
1408
- let M$1 = Math.cbrt(.2119034958178252 * r$1 + .6806995506452344 * g + .1073969535369406 * b);
1409
- let S = Math.cbrt(.0883024591900564 * r$1 + .2817188391361215 * g + .6299787016738222 * b);
1410
- let res = {
1411
- mode: "oklab",
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
1415
- };
1416
- if (alpha !== void 0) res.alpha = alpha;
1417
- return res;
1418
- };
1419
- var convertLrgbToOklab_default = convertLrgbToOklab;
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;
1423
- return res;
1424
- };
1425
- var convertRgbToOklab_default = convertRgbToOklab;
1426
- const convertOklabToRgb = (c$1) => convertLrgbToRgb_default(convertOklabToLrgb_default(c$1));
1427
- var convertOklabToRgb_default = convertOklabToRgb;
1428
- function parseOklab(color, parsed) {
1429
- if (!parsed || parsed[0] !== "oklab") return;
1430
- const res = { mode: "oklab" };
1431
- const [, l, a, b, alpha] = parsed;
1432
- if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return;
1433
- if (l.type !== Tok.None) res.l = Math.min(Math.max(0, l.type === Tok.Number ? l.value : l.value / 100), 1);
1434
- if (a.type !== Tok.None) res.a = a.type === Tok.Number ? a.value : a.value * .4 / 100;
1435
- if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value : b.value * .4 / 100;
1436
- if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1437
- return res;
1438
- }
1439
- var parseOklab_default = parseOklab;
1440
- var definition_default$7 = {
1441
- ...definition_default$3,
1442
- mode: "oklab",
1443
- toMode: {
1444
- lrgb: convertOklabToLrgb_default,
1445
- rgb: convertOklabToRgb_default
1446
- },
1447
- fromMode: {
1448
- lrgb: convertLrgbToOklab_default,
1449
- rgb: convertRgbToOklab_default
1450
- },
1451
- ranges: {
1452
- l: [0, 1],
1453
- a: [-.4, .4],
1454
- b: [-.4, .4]
1455
- },
1456
- parse: [parseOklab_default],
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}` : ""})`
1458
- };
1459
- function parseOklch(color, parsed) {
1460
- if (!parsed || parsed[0] !== "oklch") return;
1461
- const res = { mode: "oklch" };
1462
- const [, l, c$1, h, alpha] = parsed;
1463
- if (l.type !== Tok.None) {
1464
- if (l.type === Tok.Hue) return;
1465
- res.l = Math.min(Math.max(0, l.type === Tok.Number ? l.value : l.value / 100), 1);
1466
- }
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);
1468
- if (h.type !== Tok.None) {
1469
- if (h.type === Tok.Percentage) return;
1470
- res.h = h.value;
1471
- }
1472
- if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1473
- return res;
1474
- }
1475
- var parseOklch_default = parseOklch;
1476
- var definition_default$8 = {
1477
- ...definition_default$5,
1478
- mode: "oklch",
1479
- toMode: {
1480
- oklab: (c$1) => convertLchToLab_default(c$1, "oklab"),
1481
- rgb: (c$1) => convertOklabToRgb_default(convertLchToLab_default(c$1, "oklab"))
1482
- },
1483
- fromMode: {
1484
- rgb: (c$1) => convertLabToLch_default(convertRgbToOklab_default(c$1), "oklch"),
1485
- oklab: (c$1) => convertLabToLch_default(c$1, "oklch")
1486
- },
1487
- parse: [parseOklch_default],
1488
- serialize: (c$1) => `oklch(${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}` : ""})`,
1489
- ranges: {
1490
- l: [0, 1],
1491
- c: [0, .4],
1492
- h: [0, 360]
1493
- }
1494
- };
1495
- const convertP3ToXyz65 = (rgb$4) => {
1496
- let { r: r$1, g, b, alpha } = convertRgbToLrgb_default(rgb$4);
1497
- let res = {
1498
- mode: "xyz65",
1499
- x: .486570948648216 * r$1 + .265667693169093 * g + .1982172852343625 * b,
1500
- y: .2289745640697487 * r$1 + .6917385218365062 * g + .079286914093745 * b,
1501
- z: 0 * r$1 + .0451133818589026 * g + 1.043944368900976 * b
1502
- };
1503
- if (alpha !== void 0) res.alpha = alpha;
1504
- return res;
1505
- };
1506
- var convertP3ToXyz65_default = convertP3ToXyz65;
1507
- const convertXyz65ToP3 = ({ x, y, z, alpha }) => {
1508
- if (x === void 0) x = 0;
1509
- if (y === void 0) y = 0;
1510
- if (z === void 0) z = 0;
1511
- let res = convertLrgbToRgb_default({
1512
- r: x * 2.4934969119414263 - y * .9313836179191242 - .402710784450717 * z,
1513
- g: x * -.8294889695615749 + y * 1.7626640603183465 + .0236246858419436 * z,
1514
- b: x * .0358458302437845 - y * .0761723892680418 + .9568845240076871 * z
1515
- }, "p3");
1516
- if (alpha !== void 0) res.alpha = alpha;
1517
- return res;
1518
- };
1519
- var convertXyz65ToP3_default = convertXyz65ToP3;
1520
- var definition_default$9 = {
1521
- ...definition_default$12,
1522
- mode: "p3",
1523
- parse: ["display-p3"],
1524
- serialize: "display-p3",
1525
- fromMode: {
1526
- rgb: (color) => convertXyz65ToP3_default(convertRgbToXyz65_default(color)),
1527
- xyz65: convertXyz65ToP3_default
1528
- },
1529
- toMode: {
1530
- rgb: (color) => convertXyz65ToRgb_default(convertP3ToXyz65_default(color)),
1531
- xyz65: convertP3ToXyz65_default
1532
- }
1533
- };
1534
- const gamma$1 = (v) => {
1535
- let abs$1 = Math.abs(v);
1536
- if (abs$1 >= 1 / 512) return Math.sign(v) * Math.pow(abs$1, 1 / 1.8);
1537
- return 16 * v;
1538
- };
1539
- const convertXyz50ToProphoto = ({ x, y, z, alpha }) => {
1540
- if (x === void 0) x = 0;
1541
- if (y === void 0) y = 0;
1542
- if (z === void 0) z = 0;
1543
- let res = {
1544
- mode: "prophoto",
1545
- r: gamma$1(x * 1.3457868816471585 - y * .2555720873797946 - .0511018649755453 * z),
1546
- g: gamma$1(x * -.5446307051249019 + y * 1.5082477428451466 + .0205274474364214 * z),
1547
- b: gamma$1(x * 0 + y * 0 + 1.2119675456389452 * z)
1548
- };
1549
- if (alpha !== void 0) res.alpha = alpha;
1550
- return res;
1551
- };
1552
- var convertXyz50ToProphoto_default = convertXyz50ToProphoto;
1553
- const linearize$1 = (v = 0) => {
1554
- let abs$1 = Math.abs(v);
1555
- if (abs$1 >= 16 / 512) return Math.sign(v) * Math.pow(abs$1, 1.8);
1556
- return v / 16;
1557
- };
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);
1562
- let res = {
1563
- mode: "xyz50",
1564
- x: .7977666449006423 * r$1 + .1351812974005331 * g + .0313477341283922 * b,
1565
- y: .2880748288194013 * r$1 + .7118352342418731 * g + 899369387256e-16 * b,
1566
- z: 0 * r$1 + 0 * g + .8251046025104602 * b
1567
- };
1568
- if (prophoto$2.alpha !== void 0) res.alpha = prophoto$2.alpha;
1569
- return res;
1570
- };
1571
- var convertProphotoToXyz50_default = convertProphotoToXyz50;
1572
- var definition_default$10 = {
1573
- ...definition_default$12,
1574
- mode: "prophoto",
1575
- parse: ["prophoto-rgb"],
1576
- serialize: "prophoto-rgb",
1577
- fromMode: {
1578
- xyz50: convertXyz50ToProphoto_default,
1579
- rgb: (color) => convertXyz50ToProphoto_default(convertRgbToXyz50_default(color))
1580
- },
1581
- toMode: {
1582
- xyz50: convertProphotoToXyz50_default,
1583
- rgb: (color) => convertXyz50ToRgb_default(convertProphotoToXyz50_default(color))
1584
- }
1585
- };
1586
- const α$1 = 1.09929682680944;
1587
- const β$1 = .018053968510807;
1588
- const gamma = (v) => {
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));
1591
- return 4.5 * v;
1592
- };
1593
- const convertXyz65ToRec2020 = ({ x, y, z, alpha }) => {
1594
- if (x === void 0) x = 0;
1595
- if (y === void 0) y = 0;
1596
- if (z === void 0) z = 0;
1597
- let res = {
1598
- mode: "rec2020",
1599
- r: gamma(x * 1.7166511879712683 - y * .3556707837763925 - .2533662813736599 * z),
1600
- g: gamma(x * -.6666843518324893 + y * 1.6164812366349395 + .0157685458139111 * z),
1601
- b: gamma(x * .0176398574453108 - y * .0427706132578085 + .9421031212354739 * z)
1602
- };
1603
- if (alpha !== void 0) res.alpha = alpha;
1604
- return res;
1605
- };
1606
- var convertXyz65ToRec2020_default = convertXyz65ToRec2020;
1607
- const α = 1.09929682680944;
1608
- const β = .018053968510807;
1609
- const linearize = (v = 0) => {
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);
1618
- let res = {
1619
- mode: "xyz65",
1620
- x: .6369580483012911 * r$1 + .1446169035862083 * g + .1688809751641721 * b,
1621
- y: .262700212011267 * r$1 + .6779980715188708 * g + .059301716469862 * b,
1622
- z: 0 * r$1 + .0280726930490874 * g + 1.0609850577107909 * b
1623
- };
1624
- if (rec2020$2.alpha !== void 0) res.alpha = rec2020$2.alpha;
1625
- return res;
1626
- };
1627
- var convertRec2020ToXyz65_default = convertRec2020ToXyz65;
1628
- var definition_default$11 = {
1629
- ...definition_default$12,
1630
- mode: "rec2020",
1631
- fromMode: {
1632
- xyz65: convertXyz65ToRec2020_default,
1633
- rgb: (color) => convertXyz65ToRec2020_default(convertRgbToXyz65_default(color))
1634
- },
1635
- toMode: {
1636
- xyz65: convertRec2020ToXyz65_default,
1637
- rgb: (color) => convertXyz65ToRgb_default(convertRec2020ToXyz65_default(color))
1638
- },
1639
- parse: ["rec2020"],
1640
- serialize: "rec2020"
1641
- };
1642
- var definition_default$13 = {
1643
- mode: "xyz50",
1644
- parse: ["xyz-d50"],
1645
- serialize: "xyz-d50",
1646
- toMode: {
1647
- rgb: convertXyz50ToRgb_default,
1648
- lab: convertXyz50ToLab_default
1649
- },
1650
- fromMode: {
1651
- rgb: convertRgbToXyz50_default,
1652
- lab: convertLabToXyz50_default
1653
- },
1654
- channels: [
1655
- "x",
1656
- "y",
1657
- "z",
1658
- "alpha"
1659
- ],
1660
- ranges: {
1661
- x: [0, .964],
1662
- y: [0, .999],
1663
- z: [0, .825]
1664
- },
1665
- interpolate: {
1666
- x: interpolatorLinear,
1667
- y: interpolatorLinear,
1668
- z: interpolatorLinear,
1669
- alpha: {
1670
- use: interpolatorLinear,
1671
- fixup: fixupAlpha
1672
- }
1673
- }
1674
- };
1675
- const convertXyz65ToXyz50 = (xyz65$2) => {
1676
- let { x, y, z, alpha } = xyz65$2;
1677
- if (x === void 0) x = 0;
1678
- if (y === void 0) y = 0;
1679
- if (z === void 0) z = 0;
1680
- let res = {
1681
- mode: "xyz50",
1682
- x: 1.0479298208405488 * x + .0229467933410191 * y - .0501922295431356 * z,
1683
- y: .0296278156881593 * x + .990434484573249 * y - .0170738250293851 * z,
1684
- z: -.0092430581525912 * x + .0150551448965779 * y + .7518742899580008 * z
1685
- };
1686
- if (alpha !== void 0) res.alpha = alpha;
1687
- return res;
1688
- };
1689
- var convertXyz65ToXyz50_default = convertXyz65ToXyz50;
1690
- const convertXyz50ToXyz65 = (xyz50$2) => {
1691
- let { x, y, z, alpha } = xyz50$2;
1692
- if (x === void 0) x = 0;
1693
- if (y === void 0) y = 0;
1694
- if (z === void 0) z = 0;
1695
- let res = {
1696
- mode: "xyz65",
1697
- x: .9554734527042182 * x - .0230985368742614 * y + .0632593086610217 * z,
1698
- y: -.0283697069632081 * x + 1.0099954580058226 * y + .021041398966943 * z,
1699
- z: .0123140016883199 * x - .0205076964334779 * y + 1.3303659366080753 * z
1700
- };
1701
- if (alpha !== void 0) res.alpha = alpha;
1702
- return res;
1703
- };
1704
- var definition_default$14 = {
1705
- mode: "xyz65",
1706
- toMode: {
1707
- rgb: convertXyz65ToRgb_default,
1708
- xyz50: convertXyz65ToXyz50_default
1709
- },
1710
- fromMode: {
1711
- rgb: convertRgbToXyz65_default,
1712
- xyz50: convertXyz50ToXyz65
1713
- },
1714
- ranges: {
1715
- x: [0, .95],
1716
- y: [0, 1],
1717
- z: [0, 1.088]
1718
- },
1719
- channels: [
1720
- "x",
1721
- "y",
1722
- "z",
1723
- "alpha"
1724
- ],
1725
- parse: ["xyz", "xyz-d65"],
1726
- serialize: "xyz-d65",
1727
- interpolate: {
1728
- x: interpolatorLinear,
1729
- y: interpolatorLinear,
1730
- z: interpolatorLinear,
1731
- alpha: {
1732
- use: interpolatorLinear,
1733
- fixup: fixupAlpha
1734
- }
1735
- }
1736
- };
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
- };
2448
- function toe(x) {
2449
- const k_1 = .206;
2450
- const k_2 = .03;
2451
- const k_3 = (1 + k_1) / (1 + k_2);
2452
- 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));
2453
- }
2454
- function toe_inv(x) {
2455
- const k_1 = .206;
2456
- const k_2 = .03;
2457
- const k_3 = (1 + k_1) / (1 + k_2);
2458
- return (x * x + k_1 * x) / (k_3 * (x + k_2));
2459
- }
2460
- function compute_max_saturation(a, b) {
2461
- let k0, k1, k2, k3, k4, wl, wm, ws;
2462
- if (-1.88170328 * a - .80936493 * b > 1) {
2463
- k0 = 1.19086277;
2464
- k1 = 1.76576728;
2465
- k2 = .59662641;
2466
- k3 = .75515197;
2467
- k4 = .56771245;
2468
- wl = 4.0767416621;
2469
- wm = -3.3077115913;
2470
- ws = .2309699292;
2471
- } else if (1.81444104 * a - 1.19445276 * b > 1) {
2472
- k0 = .73956515;
2473
- k1 = -.45954404;
2474
- k2 = .08285427;
2475
- k3 = .1254107;
2476
- k4 = .14503204;
2477
- wl = -1.2684380046;
2478
- wm = 2.6097574011;
2479
- ws = -.3413193965;
2480
- } else {
2481
- k0 = 1.35733652;
2482
- k1 = -.00915799;
2483
- k2 = -1.1513021;
2484
- k3 = -.50559606;
2485
- k4 = .00692167;
2486
- wl = -.0041960863;
2487
- wm = -.7034186147;
2488
- ws = 1.707614701;
2489
- }
2490
- let S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;
2491
- let k_l = .3963377774 * a + .2158037573 * b;
2492
- let k_m = -.1055613458 * a - .0638541728 * b;
2493
- let k_s = -.0894841775 * a - 1.291485548 * b;
2494
- {
2495
- let l_ = 1 + S * k_l;
2496
- let m_ = 1 + S * k_m;
2497
- let s_ = 1 + S * k_s;
2498
- let l = l_ * l_ * l_;
2499
- let m = m_ * m_ * m_;
2500
- let s = s_ * s_ * s_;
2501
- let l_dS = 3 * k_l * l_ * l_;
2502
- let m_dS = 3 * k_m * m_ * m_;
2503
- let s_dS = 3 * k_s * s_ * s_;
2504
- let l_dS2 = 6 * k_l * k_l * l_;
2505
- let m_dS2 = 6 * k_m * k_m * m_;
2506
- let s_dS2 = 6 * k_s * k_s * s_;
2507
- let f$2 = wl * l + wm * m + ws * s;
2508
- let f1 = wl * l_dS + wm * m_dS + ws * s_dS;
2509
- let f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;
2510
- S = S - f$2 * f1 / (f1 * f1 - .5 * f$2 * f2);
2511
- }
2512
- return S;
2513
- }
2514
- function find_cusp(a, b) {
2515
- let S_cusp = compute_max_saturation(a, b);
2516
- let rgb$4 = convertOklabToLrgb_default({
2517
- l: 1,
2518
- a: S_cusp * a,
2519
- b: S_cusp * b
2520
- });
2521
- let L_cusp = Math.cbrt(1 / Math.max(rgb$4.r, rgb$4.g, rgb$4.b));
2522
- let C_cusp = L_cusp * S_cusp;
2523
- return [L_cusp, C_cusp];
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
- }
2579
- function get_ST_max(a_, b_, cusp = null) {
2580
- if (!cusp) cusp = find_cusp(a_, b_);
2581
- let L = cusp[0];
2582
- let C = cusp[1];
2583
- return [C / L, C / (1 - L)];
2584
- }
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;
2693
- let c$1 = Math.sqrt(a * a + b * b);
2694
- let a_ = c$1 ? a / c$1 : 1;
2695
- let b_ = c$1 ? b / c$1 : 1;
2696
- let [S_max, T] = get_ST_max(a_, b_);
2697
- let S_0 = .5;
2698
- let k$3 = 1 - S_0 / S_max;
2699
- let t = T / (c$1 + l * T);
2700
- let L_v = t * l;
2701
- let C_v = t * c$1;
2702
- let L_vt = toe_inv(L_v);
2703
- let C_vt = C_v * L_vt / L_v;
2704
- let rgb_scale = convertOklabToLrgb_default({
2705
- l: L_vt,
2706
- a: a_ * C_vt,
2707
- b: b_ * C_vt
2708
- });
2709
- let scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
2710
- l = l / scale_L;
2711
- c$1 = c$1 / scale_L * toe(l) / l;
2712
- l = toe(l);
2713
- const ret = {
2714
- mode: "okhsv",
2715
- s: c$1 ? (S_0 + T) * C_v / (T * S_0 + T * k$3 * C_v) : 0,
2716
- v: l ? l / L_v : 0
2717
- };
2718
- if (ret.s) ret.h = normalizeHue_default(Math.atan2(b, a) * 180 / Math.PI);
2719
- if (lab$2.alpha !== void 0) ret.alpha = lab$2.alpha;
2720
- return ret;
2721
- }
2722
- function convertOkhsvToOklab(hsv$2) {
2723
- const ret = { mode: "oklab" };
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;
2728
- const a_ = Math.cos(h / 180 * Math.PI);
2729
- const b_ = Math.sin(h / 180 * Math.PI);
2730
- const [S_max, T] = get_ST_max(a_, b_);
2731
- const S_0 = .5;
2732
- const k$3 = 1 - S_0 / S_max;
2733
- const L_v = 1 - s * S_0 / (S_0 + T - T * k$3 * s);
2734
- const C_v = s * T * S_0 / (S_0 + T - T * k$3 * s);
2735
- const L_vt = toe_inv(L_v);
2736
- const C_vt = C_v * L_vt / L_v;
2737
- const rgb_scale = convertOklabToLrgb_default({
2738
- l: L_vt,
2739
- a: a_ * C_vt,
2740
- b: b_ * C_vt
2741
- });
2742
- const scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
2743
- const L_new = toe_inv(v * L_v);
2744
- const C = C_v * L_new / L_v;
2745
- ret.l = L_new * scale_L;
2746
- ret.a = C * a_ * scale_L;
2747
- ret.b = C * b_ * scale_L;
2748
- return ret;
2749
- }
2750
- var modeOkhsv_default = {
2751
- ...definition_default$19,
2752
- mode: "okhsv",
2753
- channels: [
2754
- "h",
2755
- "s",
2756
- "v",
2757
- "alpha"
2758
- ],
2759
- parse: ["--okhsv"],
2760
- serialize: "--okhsv",
2761
- fromMode: {
2762
- oklab: convertOklabToOkhsv,
2763
- rgb: (c$1) => convertOklabToOkhsv(convertRgbToOklab_default(c$1))
2764
- },
2765
- toMode: {
2766
- oklab: convertOkhsvToOklab,
2767
- rgb: (c$1) => convertOklabToRgb_default(convertOkhsvToOklab(c$1))
2768
- }
2769
- };
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
- };
2884
- const r = (value, precision) => Math.round(value * (precision = Math.pow(10, precision))) / precision;
2885
- const round = (precision = 4) => (value) => typeof value === "number" ? r(value, precision) : value;
2886
- var round_default = round;
2887
- round_default(2);
2888
- const rgb$2 = converter_default("rgb");
2889
- converter_default("hsl");
2890
- const rgb$1 = converter_default("rgb");
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);
2921
- const converters = {
2922
- a98: useMode(definition_default),
2923
- hsl: useMode(definition_default$1),
2924
- hwb: useMode(definition_default$2),
2925
- lab: useMode(definition_default$3),
2926
- lab65: useMode(definition_default$4),
2927
- lch: useMode(definition_default$5),
2928
- lrgb: useMode(definition_default$6),
2929
- oklab: useMode(definition_default$7),
2930
- oklch: useMode(definition_default$8),
2931
- okhsv: useMode(modeOkhsv_default),
2932
- p3: useMode(definition_default$9),
2933
- prophoto: useMode(definition_default$10),
2934
- rec2020: useMode(definition_default$11),
2935
- rgb: useMode(definition_default$12),
2936
- xyz50: useMode(definition_default$13),
2937
- xyz65: useMode(definition_default$14)
2938
- };
2939
- const DEPTH_ROUNDING = {
2940
- 24: round_default(4),
2941
- 30: round_default(4),
2942
- 36: round_default(5),
2943
- 48: round_default(6)
2944
- };
2945
- const FORMAT_ID$1 = "css";
1
+ import { FORMAT_ID as FORMAT_ID$1 } from "@terrazzo/plugin-css";
2946
2
 
2947
- //#endregion
2948
3
  //#region src/lib.ts
2949
4
  /** Flatten an arbitrarily-nested object */
2950
5
  function flattenThemeObj(themeObj) {
@@ -2974,7 +29,7 @@ function pluginTailwind(options) {
2974
29
  name: "@terrazzo/plugin-tailwind",
2975
30
  enforce: "post",
2976
31
  config(config) {
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.");
32
+ 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.");
2978
33
  if (!options || !options.theme) throw new Error("Missing Tailwind `theme` option.");
2979
34
  },
2980
35
  async transform({ getTransforms, setTransform }) {