@flux-ui/dashboard 3.0.0-next.3 → 3.0.0-next.31

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.
Files changed (42) hide show
  1. package/README.md +11 -40
  2. package/dist/component/FluxDashboard.vue.d.ts +10 -11
  3. package/dist/component/FluxDashboardContent.vue.d.ts +2 -2
  4. package/dist/component/FluxDashboardHeader.vue.d.ts +2 -2
  5. package/dist/component/FluxDashboardMenu.vue.d.ts +3 -3
  6. package/dist/component/FluxDashboardNavigation.vue.d.ts +2 -2
  7. package/dist/component/FluxDashboardSide.vue.d.ts +2 -2
  8. package/dist/component/FluxDashboardTopBar.vue.d.ts +2 -2
  9. package/dist/component/index.d.ts +0 -1
  10. package/dist/composable/index.d.ts +0 -1
  11. package/dist/composable/useDashboardInjection.d.ts +0 -1
  12. package/dist/data/index.d.ts +0 -1
  13. package/dist/index.css +425 -0
  14. package/dist/index.d.ts +0 -1
  15. package/dist/index.js +3448 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/types.d.ts +13 -0
  18. package/package.json +18 -17
  19. package/src/component/FluxDashboard.vue +12 -8
  20. package/src/component/FluxDashboardMenu.vue +4 -2
  21. package/src/composable/useDashboardInjection.ts +1 -1
  22. package/src/css/component/Dashboard.module.scss +16 -14
  23. package/src/css/component/DashboardContent.module.scss +5 -1
  24. package/src/css/component/DashboardNavigation.module.scss +11 -11
  25. package/src/css/component/DashboardPane.module.scss +6 -6
  26. package/src/css/component/DashboardTopBar.module.scss +3 -3
  27. package/tsconfig.json +4 -42
  28. package/dist/component/FluxDashboard.vue.d.ts.map +0 -1
  29. package/dist/component/FluxDashboardContent.vue.d.ts.map +0 -1
  30. package/dist/component/FluxDashboardHeader.vue.d.ts.map +0 -1
  31. package/dist/component/FluxDashboardMenu.vue.d.ts.map +0 -1
  32. package/dist/component/FluxDashboardNavigation.vue.d.ts.map +0 -1
  33. package/dist/component/FluxDashboardSide.vue.d.ts.map +0 -1
  34. package/dist/component/FluxDashboardTopBar.vue.d.ts.map +0 -1
  35. package/dist/component/index.d.ts.map +0 -1
  36. package/dist/composable/index.d.ts.map +0 -1
  37. package/dist/composable/useDashboardInjection.d.ts.map +0 -1
  38. package/dist/data/index.d.ts.map +0 -1
  39. package/dist/flux-dashboard.css +0 -1
  40. package/dist/flux-dashboard.js +0 -217
  41. package/dist/flux-dashboard.js.map +0 -1
  42. package/dist/index.d.ts.map +0 -1
package/dist/index.js ADDED
@@ -0,0 +1,3448 @@
1
+ import { Fragment, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, customRef, defineComponent, guardReactiveProps, inject, markRaw, mergeProps, normalizeClass, normalizeProps, openBlock, provide, ref, renderList, renderSlot, resolveComponent, toDisplayString, unref, useSlots, watch, withCtx } from "vue";
2
+ import { DateTime } from "luxon";
3
+ import { FluxIcon, FluxMenuItem, FluxSpacer } from "@flux-ui/components";
4
+ function x$1(e) {
5
+ let t = {};
6
+ do {
7
+ if (e.name === ``) break;
8
+ for (let [n, r] of Object.entries(Object.getOwnPropertyDescriptors(e.prototype))) [
9
+ `constructor`,
10
+ `clone`,
11
+ `toJSON`
12
+ ].includes(n) || !r.get && !r.set || (t[n] = r);
13
+ } while (e = Object.getPrototypeOf(e));
14
+ return t;
15
+ }
16
+ function G$1(e, t, n) {
17
+ e.prototype[t] = n;
18
+ }
19
+ function K$1(e, t, n) {
20
+ Object.defineProperty(e, t, { value: n });
21
+ }
22
+ var parseNumber = (color, len) => {
23
+ if (typeof color !== "number") return;
24
+ if (len === 3) return {
25
+ mode: "rgb",
26
+ r: (color >> 8 & 15 | color >> 4 & 240) / 255,
27
+ g: (color >> 4 & 15 | color & 240) / 255,
28
+ b: (color & 15 | color << 4 & 240) / 255
29
+ };
30
+ if (len === 4) return {
31
+ mode: "rgb",
32
+ r: (color >> 12 & 15 | color >> 8 & 240) / 255,
33
+ g: (color >> 8 & 15 | color >> 4 & 240) / 255,
34
+ b: (color >> 4 & 15 | color & 240) / 255,
35
+ alpha: (color & 15 | color << 4 & 240) / 255
36
+ };
37
+ if (len === 6) return {
38
+ mode: "rgb",
39
+ r: (color >> 16 & 255) / 255,
40
+ g: (color >> 8 & 255) / 255,
41
+ b: (color & 255) / 255
42
+ };
43
+ if (len === 8) return {
44
+ mode: "rgb",
45
+ r: (color >> 24 & 255) / 255,
46
+ g: (color >> 16 & 255) / 255,
47
+ b: (color >> 8 & 255) / 255,
48
+ alpha: (color & 255) / 255
49
+ };
50
+ };
51
+ var named = {
52
+ aliceblue: 15792383,
53
+ antiquewhite: 16444375,
54
+ aqua: 65535,
55
+ aquamarine: 8388564,
56
+ azure: 15794175,
57
+ beige: 16119260,
58
+ bisque: 16770244,
59
+ black: 0,
60
+ blanchedalmond: 16772045,
61
+ blue: 255,
62
+ blueviolet: 9055202,
63
+ brown: 10824234,
64
+ burlywood: 14596231,
65
+ cadetblue: 6266528,
66
+ chartreuse: 8388352,
67
+ chocolate: 13789470,
68
+ coral: 16744272,
69
+ cornflowerblue: 6591981,
70
+ cornsilk: 16775388,
71
+ crimson: 14423100,
72
+ cyan: 65535,
73
+ darkblue: 139,
74
+ darkcyan: 35723,
75
+ darkgoldenrod: 12092939,
76
+ darkgray: 11119017,
77
+ darkgreen: 25600,
78
+ darkgrey: 11119017,
79
+ darkkhaki: 12433259,
80
+ darkmagenta: 9109643,
81
+ darkolivegreen: 5597999,
82
+ darkorange: 16747520,
83
+ darkorchid: 10040012,
84
+ darkred: 9109504,
85
+ darksalmon: 15308410,
86
+ darkseagreen: 9419919,
87
+ darkslateblue: 4734347,
88
+ darkslategray: 3100495,
89
+ darkslategrey: 3100495,
90
+ darkturquoise: 52945,
91
+ darkviolet: 9699539,
92
+ deeppink: 16716947,
93
+ deepskyblue: 49151,
94
+ dimgray: 6908265,
95
+ dimgrey: 6908265,
96
+ dodgerblue: 2003199,
97
+ firebrick: 11674146,
98
+ floralwhite: 16775920,
99
+ forestgreen: 2263842,
100
+ fuchsia: 16711935,
101
+ gainsboro: 14474460,
102
+ ghostwhite: 16316671,
103
+ gold: 16766720,
104
+ goldenrod: 14329120,
105
+ gray: 8421504,
106
+ green: 32768,
107
+ greenyellow: 11403055,
108
+ grey: 8421504,
109
+ honeydew: 15794160,
110
+ hotpink: 16738740,
111
+ indianred: 13458524,
112
+ indigo: 4915330,
113
+ ivory: 16777200,
114
+ khaki: 15787660,
115
+ lavender: 15132410,
116
+ lavenderblush: 16773365,
117
+ lawngreen: 8190976,
118
+ lemonchiffon: 16775885,
119
+ lightblue: 11393254,
120
+ lightcoral: 15761536,
121
+ lightcyan: 14745599,
122
+ lightgoldenrodyellow: 16448210,
123
+ lightgray: 13882323,
124
+ lightgreen: 9498256,
125
+ lightgrey: 13882323,
126
+ lightpink: 16758465,
127
+ lightsalmon: 16752762,
128
+ lightseagreen: 2142890,
129
+ lightskyblue: 8900346,
130
+ lightslategray: 7833753,
131
+ lightslategrey: 7833753,
132
+ lightsteelblue: 11584734,
133
+ lightyellow: 16777184,
134
+ lime: 65280,
135
+ limegreen: 3329330,
136
+ linen: 16445670,
137
+ magenta: 16711935,
138
+ maroon: 8388608,
139
+ mediumaquamarine: 6737322,
140
+ mediumblue: 205,
141
+ mediumorchid: 12211667,
142
+ mediumpurple: 9662683,
143
+ mediumseagreen: 3978097,
144
+ mediumslateblue: 8087790,
145
+ mediumspringgreen: 64154,
146
+ mediumturquoise: 4772300,
147
+ mediumvioletred: 13047173,
148
+ midnightblue: 1644912,
149
+ mintcream: 16121850,
150
+ mistyrose: 16770273,
151
+ moccasin: 16770229,
152
+ navajowhite: 16768685,
153
+ navy: 128,
154
+ oldlace: 16643558,
155
+ olive: 8421376,
156
+ olivedrab: 7048739,
157
+ orange: 16753920,
158
+ orangered: 16729344,
159
+ orchid: 14315734,
160
+ palegoldenrod: 15657130,
161
+ palegreen: 10025880,
162
+ paleturquoise: 11529966,
163
+ palevioletred: 14381203,
164
+ papayawhip: 16773077,
165
+ peachpuff: 16767673,
166
+ peru: 13468991,
167
+ pink: 16761035,
168
+ plum: 14524637,
169
+ powderblue: 11591910,
170
+ purple: 8388736,
171
+ rebeccapurple: 6697881,
172
+ red: 16711680,
173
+ rosybrown: 12357519,
174
+ royalblue: 4286945,
175
+ saddlebrown: 9127187,
176
+ salmon: 16416882,
177
+ sandybrown: 16032864,
178
+ seagreen: 3050327,
179
+ seashell: 16774638,
180
+ sienna: 10506797,
181
+ silver: 12632256,
182
+ skyblue: 8900331,
183
+ slateblue: 6970061,
184
+ slategray: 7372944,
185
+ slategrey: 7372944,
186
+ snow: 16775930,
187
+ springgreen: 65407,
188
+ steelblue: 4620980,
189
+ tan: 13808780,
190
+ teal: 32896,
191
+ thistle: 14204888,
192
+ tomato: 16737095,
193
+ turquoise: 4251856,
194
+ violet: 15631086,
195
+ wheat: 16113331,
196
+ white: 16777215,
197
+ whitesmoke: 16119285,
198
+ yellow: 16776960,
199
+ yellowgreen: 10145074
200
+ };
201
+ var parseNamed = (color) => {
202
+ return parseNumber(named[color.toLowerCase()], 6);
203
+ };
204
+ var hex = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i;
205
+ var parseHex = (color) => {
206
+ let match;
207
+ return (match = color.match(hex)) ? parseNumber(parseInt(match[1], 16), match[1].length) : void 0;
208
+ };
209
+ const num$1 = "([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)";
210
+ `${num$1}`;
211
+ const per = `${num$1}%`;
212
+ `${num$1}`;
213
+ const num_per = `(?:${num$1}%|${num$1})`;
214
+ const num_per_none = `(?:${num$1}%|${num$1}|none)`;
215
+ const hue$1 = `(?:${num$1}(deg|grad|rad|turn)|${num$1})`;
216
+ `${num$1}${num$1}`;
217
+ const c$1 = `\\s*,\\s*`;
218
+ new RegExp("^" + num_per_none + "$");
219
+ var rgb_num_old = new RegExp(`^rgba?\\(\\s*${num$1}${c$1}${num$1}${c$1}${num$1}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
220
+ var rgb_per_old = new RegExp(`^rgba?\\(\\s*${per}${c$1}${per}${c$1}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
221
+ var parseRgbLegacy = (color) => {
222
+ let res = { mode: "rgb" };
223
+ let match;
224
+ if (match = color.match(rgb_num_old)) {
225
+ if (match[1] !== void 0) res.r = match[1] / 255;
226
+ if (match[2] !== void 0) res.g = match[2] / 255;
227
+ if (match[3] !== void 0) res.b = match[3] / 255;
228
+ } else if (match = color.match(rgb_per_old)) {
229
+ if (match[1] !== void 0) res.r = match[1] / 100;
230
+ if (match[2] !== void 0) res.g = match[2] / 100;
231
+ if (match[3] !== void 0) res.b = match[3] / 100;
232
+ } else return;
233
+ if (match[4] !== void 0) res.alpha = Math.max(0, Math.min(1, match[4] / 100));
234
+ else if (match[5] !== void 0) res.alpha = Math.max(0, Math.min(1, +match[5]));
235
+ return res;
236
+ };
237
+ var prepare = (color, mode) => color === void 0 ? void 0 : typeof color !== "object" ? parse(color) : color.mode !== void 0 ? color : mode ? {
238
+ ...color,
239
+ mode
240
+ } : void 0;
241
+ var converter = (target_mode = "rgb") => (color) => (color = prepare(color, target_mode)) !== void 0 ? color.mode === target_mode ? color : converters[color.mode][target_mode] ? converters[color.mode][target_mode](color) : target_mode === "rgb" ? converters[color.mode].rgb(color) : converters.rgb[target_mode](converters[color.mode].rgb(color)) : void 0;
242
+ var converters = {};
243
+ var modes = {};
244
+ var parsers = [];
245
+ var colorProfiles = {};
246
+ var identity = (v) => v;
247
+ var useMode = (definition) => {
248
+ converters[definition.mode] = {
249
+ ...converters[definition.mode],
250
+ ...definition.toMode
251
+ };
252
+ Object.keys(definition.fromMode || {}).forEach((k) => {
253
+ if (!converters[k]) converters[k] = {};
254
+ converters[k][definition.mode] = definition.fromMode[k];
255
+ });
256
+ if (!definition.ranges) definition.ranges = {};
257
+ if (!definition.difference) definition.difference = {};
258
+ definition.channels.forEach((channel) => {
259
+ if (definition.ranges[channel] === void 0) definition.ranges[channel] = [0, 1];
260
+ if (!definition.interpolate[channel]) throw new Error(`Missing interpolator for: ${channel}`);
261
+ if (typeof definition.interpolate[channel] === "function") definition.interpolate[channel] = { use: definition.interpolate[channel] };
262
+ if (!definition.interpolate[channel].fixup) definition.interpolate[channel].fixup = identity;
263
+ });
264
+ modes[definition.mode] = definition;
265
+ (definition.parse || []).forEach((parser) => {
266
+ useParser(parser, definition.mode);
267
+ });
268
+ return converter(definition.mode);
269
+ };
270
+ var getMode = (mode) => modes[mode];
271
+ var useParser = (parser, mode) => {
272
+ if (typeof parser === "string") {
273
+ if (!mode) throw new Error(`'mode' required when 'parser' is a string`);
274
+ colorProfiles[parser] = mode;
275
+ } else if (typeof parser === "function") {
276
+ if (parsers.indexOf(parser) < 0) parsers.push(parser);
277
+ }
278
+ };
279
+ var IdentStartCodePoint = /[^\x00-\x7F]|[a-zA-Z_]/;
280
+ var IdentCodePoint = /[^\x00-\x7F]|[-\w]/;
281
+ const Tok = {
282
+ Function: "function",
283
+ Ident: "ident",
284
+ Number: "number",
285
+ Percentage: "percentage",
286
+ ParenClose: ")",
287
+ None: "none",
288
+ Hue: "hue",
289
+ Alpha: "alpha"
290
+ };
291
+ var _i = 0;
292
+ function is_num(chars) {
293
+ let ch = chars[_i];
294
+ let ch1 = chars[_i + 1];
295
+ if (ch === "-" || ch === "+") return /\d/.test(ch1) || ch1 === "." && /\d/.test(chars[_i + 2]);
296
+ if (ch === ".") return /\d/.test(ch1);
297
+ return /\d/.test(ch);
298
+ }
299
+ function is_ident(chars) {
300
+ if (_i >= chars.length) return false;
301
+ let ch = chars[_i];
302
+ if (IdentStartCodePoint.test(ch)) return true;
303
+ if (ch === "-") {
304
+ if (chars.length - _i < 2) return false;
305
+ let ch1 = chars[_i + 1];
306
+ if (ch1 === "-" || IdentStartCodePoint.test(ch1)) return true;
307
+ return false;
308
+ }
309
+ return false;
310
+ }
311
+ var huenits = {
312
+ deg: 1,
313
+ rad: 180 / Math.PI,
314
+ grad: 9 / 10,
315
+ turn: 360
316
+ };
317
+ function num(chars) {
318
+ let value = "";
319
+ if (chars[_i] === "-" || chars[_i] === "+") value += chars[_i++];
320
+ value += digits(chars);
321
+ if (chars[_i] === "." && /\d/.test(chars[_i + 1])) value += chars[_i++] + digits(chars);
322
+ if (chars[_i] === "e" || chars[_i] === "E") {
323
+ if ((chars[_i + 1] === "-" || chars[_i + 1] === "+") && /\d/.test(chars[_i + 2])) value += chars[_i++] + chars[_i++] + digits(chars);
324
+ else if (/\d/.test(chars[_i + 1])) value += chars[_i++] + digits(chars);
325
+ }
326
+ if (is_ident(chars)) {
327
+ let id = ident(chars);
328
+ if (id === "deg" || id === "rad" || id === "turn" || id === "grad") return {
329
+ type: Tok.Hue,
330
+ value: value * huenits[id]
331
+ };
332
+ return;
333
+ }
334
+ if (chars[_i] === "%") {
335
+ _i++;
336
+ return {
337
+ type: Tok.Percentage,
338
+ value: +value
339
+ };
340
+ }
341
+ return {
342
+ type: Tok.Number,
343
+ value: +value
344
+ };
345
+ }
346
+ function digits(chars) {
347
+ let v = "";
348
+ while (/\d/.test(chars[_i])) v += chars[_i++];
349
+ return v;
350
+ }
351
+ function ident(chars) {
352
+ let v = "";
353
+ while (_i < chars.length && IdentCodePoint.test(chars[_i])) v += chars[_i++];
354
+ return v;
355
+ }
356
+ function identlike(chars) {
357
+ let v = ident(chars);
358
+ if (chars[_i] === "(") {
359
+ _i++;
360
+ return {
361
+ type: Tok.Function,
362
+ value: v
363
+ };
364
+ }
365
+ if (v === "none") return {
366
+ type: Tok.None,
367
+ value: void 0
368
+ };
369
+ return {
370
+ type: Tok.Ident,
371
+ value: v
372
+ };
373
+ }
374
+ function tokenize(str = "") {
375
+ let chars = str.trim();
376
+ let tokens = [];
377
+ let ch;
378
+ _i = 0;
379
+ while (_i < chars.length) {
380
+ ch = chars[_i++];
381
+ if (ch === "\n" || ch === " " || ch === " ") {
382
+ while (_i < chars.length && (chars[_i] === "\n" || chars[_i] === " " || chars[_i] === " ")) _i++;
383
+ continue;
384
+ }
385
+ if (ch === ",") return;
386
+ if (ch === ")") {
387
+ tokens.push({ type: Tok.ParenClose });
388
+ continue;
389
+ }
390
+ if (ch === "+") {
391
+ _i--;
392
+ if (is_num(chars)) {
393
+ tokens.push(num(chars));
394
+ continue;
395
+ }
396
+ return;
397
+ }
398
+ if (ch === "-") {
399
+ _i--;
400
+ if (is_num(chars)) {
401
+ tokens.push(num(chars));
402
+ continue;
403
+ }
404
+ if (is_ident(chars)) {
405
+ tokens.push({
406
+ type: Tok.Ident,
407
+ value: ident(chars)
408
+ });
409
+ continue;
410
+ }
411
+ return;
412
+ }
413
+ if (ch === ".") {
414
+ _i--;
415
+ if (is_num(chars)) {
416
+ tokens.push(num(chars));
417
+ continue;
418
+ }
419
+ return;
420
+ }
421
+ if (ch === "/") {
422
+ while (_i < chars.length && (chars[_i] === "\n" || chars[_i] === " " || chars[_i] === " ")) _i++;
423
+ let alpha;
424
+ if (is_num(chars)) {
425
+ alpha = num(chars);
426
+ if (alpha.type !== Tok.Hue) {
427
+ tokens.push({
428
+ type: Tok.Alpha,
429
+ value: alpha
430
+ });
431
+ continue;
432
+ }
433
+ }
434
+ if (is_ident(chars)) {
435
+ if (ident(chars) === "none") {
436
+ tokens.push({
437
+ type: Tok.Alpha,
438
+ value: {
439
+ type: Tok.None,
440
+ value: void 0
441
+ }
442
+ });
443
+ continue;
444
+ }
445
+ }
446
+ return;
447
+ }
448
+ if (/\d/.test(ch)) {
449
+ _i--;
450
+ tokens.push(num(chars));
451
+ continue;
452
+ }
453
+ if (IdentStartCodePoint.test(ch)) {
454
+ _i--;
455
+ tokens.push(identlike(chars));
456
+ continue;
457
+ }
458
+ return;
459
+ }
460
+ return tokens;
461
+ }
462
+ function parseColorSyntax(tokens) {
463
+ tokens._i = 0;
464
+ let token = tokens[tokens._i++];
465
+ if (!token || token.type !== Tok.Function || token.value !== "color") return;
466
+ token = tokens[tokens._i++];
467
+ if (token.type !== Tok.Ident) return;
468
+ const mode = colorProfiles[token.value];
469
+ if (!mode) return;
470
+ const res = { mode };
471
+ const coords = consumeCoords(tokens, false);
472
+ if (!coords) return;
473
+ const channels = getMode(mode).channels;
474
+ for (let ii = 0, c, ch; ii < channels.length; ii++) {
475
+ c = coords[ii];
476
+ ch = channels[ii];
477
+ if (c.type !== Tok.None) {
478
+ res[ch] = c.type === Tok.Number ? c.value : c.value / 100;
479
+ if (ch === "alpha") res[ch] = Math.max(0, Math.min(1, res[ch]));
480
+ }
481
+ }
482
+ return res;
483
+ }
484
+ function consumeCoords(tokens, includeHue) {
485
+ const coords = [];
486
+ let token;
487
+ while (tokens._i < tokens.length) {
488
+ token = tokens[tokens._i++];
489
+ if (token.type === Tok.None || token.type === Tok.Number || token.type === Tok.Alpha || token.type === Tok.Percentage || includeHue && token.type === Tok.Hue) {
490
+ coords.push(token);
491
+ continue;
492
+ }
493
+ if (token.type === Tok.ParenClose) {
494
+ if (tokens._i < tokens.length) return;
495
+ continue;
496
+ }
497
+ return;
498
+ }
499
+ if (coords.length < 3 || coords.length > 4) return;
500
+ if (coords.length === 4) {
501
+ if (coords[3].type !== Tok.Alpha) return;
502
+ coords[3] = coords[3].value;
503
+ }
504
+ if (coords.length === 3) coords.push({
505
+ type: Tok.None,
506
+ value: void 0
507
+ });
508
+ return coords.every((c) => c.type !== Tok.Alpha) ? coords : void 0;
509
+ }
510
+ function parseModernSyntax(tokens, includeHue) {
511
+ tokens._i = 0;
512
+ let token = tokens[tokens._i++];
513
+ if (!token || token.type !== Tok.Function) return;
514
+ let coords = consumeCoords(tokens, includeHue);
515
+ if (!coords) return;
516
+ coords.unshift(token.value);
517
+ return coords;
518
+ }
519
+ var parse = (color) => {
520
+ if (typeof color !== "string") return;
521
+ const tokens = tokenize(color);
522
+ const parsed = tokens ? parseModernSyntax(tokens, true) : void 0;
523
+ let result = void 0;
524
+ let i = 0;
525
+ let len = parsers.length;
526
+ while (i < len) if ((result = parsers[i++](color, parsed)) !== void 0) return result;
527
+ return tokens ? parseColorSyntax(tokens) : void 0;
528
+ };
529
+ function parseRgb(color, parsed) {
530
+ if (!parsed || parsed[0] !== "rgb" && parsed[0] !== "rgba") return;
531
+ const res = { mode: "rgb" };
532
+ const [, r, g, b, alpha] = parsed;
533
+ if (r.type === Tok.Hue || g.type === Tok.Hue || b.type === Tok.Hue) return;
534
+ if (r.type !== Tok.None) res.r = r.type === Tok.Number ? r.value / 255 : r.value / 100;
535
+ if (g.type !== Tok.None) res.g = g.type === Tok.Number ? g.value / 255 : g.value / 100;
536
+ if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value / 255 : b.value / 100;
537
+ if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
538
+ return res;
539
+ }
540
+ var parseTransparent = (c) => c === "transparent" ? {
541
+ mode: "rgb",
542
+ r: 0,
543
+ g: 0,
544
+ b: 0,
545
+ alpha: 0
546
+ } : void 0;
547
+ var lerp = (a, b, t) => a + t * (b - a);
548
+ var get_classes = (arr) => {
549
+ let classes = [];
550
+ for (let i = 0; i < arr.length - 1; i++) {
551
+ let a = arr[i];
552
+ let b = arr[i + 1];
553
+ if (a === void 0 && b === void 0) classes.push(void 0);
554
+ else if (a !== void 0 && b !== void 0) classes.push([a, b]);
555
+ else classes.push(a !== void 0 ? [a, a] : [b, b]);
556
+ }
557
+ return classes;
558
+ };
559
+ var interpolatorPiecewise = (interpolator) => (arr) => {
560
+ let classes = get_classes(arr);
561
+ return (t) => {
562
+ let cls = t * classes.length;
563
+ let idx = t >= 1 ? classes.length - 1 : Math.max(Math.floor(cls), 0);
564
+ let pair = classes[idx];
565
+ return pair === void 0 ? void 0 : interpolator(pair[0], pair[1], cls - idx);
566
+ };
567
+ };
568
+ const interpolatorLinear = interpolatorPiecewise(lerp);
569
+ var fixupAlpha = (arr) => {
570
+ let some_defined = false;
571
+ let res = arr.map((v) => {
572
+ if (v !== void 0) {
573
+ some_defined = true;
574
+ return v;
575
+ }
576
+ return 1;
577
+ });
578
+ return some_defined ? res : arr;
579
+ };
580
+ var definition$27 = {
581
+ mode: "rgb",
582
+ channels: [
583
+ "r",
584
+ "g",
585
+ "b",
586
+ "alpha"
587
+ ],
588
+ parse: [
589
+ parseRgb,
590
+ parseHex,
591
+ parseRgbLegacy,
592
+ parseNamed,
593
+ parseTransparent,
594
+ "srgb"
595
+ ],
596
+ serialize: "srgb",
597
+ interpolate: {
598
+ r: interpolatorLinear,
599
+ g: interpolatorLinear,
600
+ b: interpolatorLinear,
601
+ alpha: {
602
+ use: interpolatorLinear,
603
+ fixup: fixupAlpha
604
+ }
605
+ },
606
+ gamut: true,
607
+ white: {
608
+ r: 1,
609
+ g: 1,
610
+ b: 1
611
+ },
612
+ black: {
613
+ r: 0,
614
+ g: 0,
615
+ b: 0
616
+ }
617
+ };
618
+ var linearize$2 = (v = 0) => Math.pow(Math.abs(v), 563 / 256) * Math.sign(v);
619
+ var convertA98ToXyz65 = (a98) => {
620
+ let r = linearize$2(a98.r);
621
+ let g = linearize$2(a98.g);
622
+ let b = linearize$2(a98.b);
623
+ let res = {
624
+ mode: "xyz65",
625
+ x: .5766690429101305 * r + .1855582379065463 * g + .1882286462349947 * b,
626
+ y: .297344975250536 * r + .6273635662554661 * g + .0752914584939979 * b,
627
+ z: .0270313613864123 * r + .0706888525358272 * g + .9913375368376386 * b
628
+ };
629
+ if (a98.alpha !== void 0) res.alpha = a98.alpha;
630
+ return res;
631
+ };
632
+ var gamma$2 = (v) => Math.pow(Math.abs(v), 256 / 563) * Math.sign(v);
633
+ var convertXyz65ToA98 = ({ x, y, z, alpha }) => {
634
+ if (x === void 0) x = 0;
635
+ if (y === void 0) y = 0;
636
+ if (z === void 0) z = 0;
637
+ let res = {
638
+ mode: "a98",
639
+ r: gamma$2(x * 2.0415879038107465 - y * .5650069742788597 - .3447313507783297 * z),
640
+ g: gamma$2(x * -.9692436362808798 + y * 1.8759675015077206 + .0415550574071756 * z),
641
+ b: gamma$2(x * .0134442806320312 - y * .1183623922310184 + 1.0151749943912058 * z)
642
+ };
643
+ if (alpha !== void 0) res.alpha = alpha;
644
+ return res;
645
+ };
646
+ var fn$3 = (c = 0) => {
647
+ const abs = Math.abs(c);
648
+ if (abs <= .04045) return c / 12.92;
649
+ return (Math.sign(c) || 1) * Math.pow((abs + .055) / 1.055, 2.4);
650
+ };
651
+ var convertRgbToLrgb = ({ r, g, b, alpha }) => {
652
+ let res = {
653
+ mode: "lrgb",
654
+ r: fn$3(r),
655
+ g: fn$3(g),
656
+ b: fn$3(b)
657
+ };
658
+ if (alpha !== void 0) res.alpha = alpha;
659
+ return res;
660
+ };
661
+ var convertRgbToXyz65 = (rgb) => {
662
+ let { r, g, b, alpha } = convertRgbToLrgb(rgb);
663
+ let res = {
664
+ mode: "xyz65",
665
+ x: .4123907992659593 * r + .357584339383878 * g + .1804807884018343 * b,
666
+ y: .2126390058715102 * r + .715168678767756 * g + .0721923153607337 * b,
667
+ z: .0193308187155918 * r + .119194779794626 * g + .9505321522496607 * b
668
+ };
669
+ if (alpha !== void 0) res.alpha = alpha;
670
+ return res;
671
+ };
672
+ var fn$2 = (c = 0) => {
673
+ const abs = Math.abs(c);
674
+ if (abs > .0031308) return (Math.sign(c) || 1) * (1.055 * Math.pow(abs, 1 / 2.4) - .055);
675
+ return c * 12.92;
676
+ };
677
+ var convertLrgbToRgb = ({ r, g, b, alpha }, mode = "rgb") => {
678
+ let res = {
679
+ mode,
680
+ r: fn$2(r),
681
+ g: fn$2(g),
682
+ b: fn$2(b)
683
+ };
684
+ if (alpha !== void 0) res.alpha = alpha;
685
+ return res;
686
+ };
687
+ var convertXyz65ToRgb = ({ x, y, z, alpha }) => {
688
+ if (x === void 0) x = 0;
689
+ if (y === void 0) y = 0;
690
+ if (z === void 0) z = 0;
691
+ let res = convertLrgbToRgb({
692
+ r: x * 3.2409699419045226 - y * 1.537383177570094 - .4986107602930034 * z,
693
+ g: x * -.9692436362808796 + y * 1.8759675015077204 + .0415550574071756 * z,
694
+ b: x * .0556300796969936 - y * .2039769588889765 + 1.0569715142428784 * z
695
+ });
696
+ if (alpha !== void 0) res.alpha = alpha;
697
+ return res;
698
+ };
699
+ var definition$26 = {
700
+ ...definition$27,
701
+ mode: "a98",
702
+ parse: ["a98-rgb"],
703
+ serialize: "a98-rgb",
704
+ fromMode: {
705
+ rgb: (color) => convertXyz65ToA98(convertRgbToXyz65(color)),
706
+ xyz65: convertXyz65ToA98
707
+ },
708
+ toMode: {
709
+ rgb: (color) => convertXyz65ToRgb(convertA98ToXyz65(color)),
710
+ xyz65: convertA98ToXyz65
711
+ }
712
+ };
713
+ var normalizeHue = (hue) => (hue = hue % 360) < 0 ? hue + 360 : hue;
714
+ var hue = (hues, fn) => {
715
+ return hues.map((hue, idx, arr) => {
716
+ if (hue === void 0) return hue;
717
+ let normalized = normalizeHue(hue);
718
+ if (idx === 0 || hues[idx - 1] === void 0) return normalized;
719
+ return fn(normalized - normalizeHue(arr[idx - 1]));
720
+ }).reduce((acc, curr) => {
721
+ if (!acc.length || curr === void 0 || acc[acc.length - 1] === void 0) {
722
+ acc.push(curr);
723
+ return acc;
724
+ }
725
+ acc.push(curr + acc[acc.length - 1]);
726
+ return acc;
727
+ }, []);
728
+ };
729
+ var fixupHueShorter = (arr) => hue(arr, (d) => Math.abs(d) <= 180 ? d : d - 360 * Math.sign(d));
730
+ const M$1 = [
731
+ -.14861,
732
+ 1.78277,
733
+ -.29227,
734
+ -.90649,
735
+ 1.97294,
736
+ 0
737
+ ];
738
+ const degToRad = Math.PI / 180;
739
+ const radToDeg = 180 / Math.PI;
740
+ var DE = M$1[3] * M$1[4];
741
+ var BE = M$1[1] * M$1[4];
742
+ var BCAD = M$1[1] * M$1[2] - M$1[0] * M$1[3];
743
+ var convertRgbToCubehelix = ({ r, g, b, alpha }) => {
744
+ if (r === void 0) r = 0;
745
+ if (g === void 0) g = 0;
746
+ if (b === void 0) b = 0;
747
+ let l = (BCAD * b + r * DE - g * BE) / (BCAD + DE - BE);
748
+ let x = b - l;
749
+ let y = (M$1[4] * (g - l) - M$1[2] * x) / M$1[3];
750
+ let res = {
751
+ mode: "cubehelix",
752
+ l,
753
+ s: l === 0 || l === 1 ? void 0 : Math.sqrt(x * x + y * y) / (M$1[4] * l * (1 - l))
754
+ };
755
+ if (res.s) res.h = Math.atan2(y, x) * radToDeg - 120;
756
+ if (alpha !== void 0) res.alpha = alpha;
757
+ return res;
758
+ };
759
+ var convertCubehelixToRgb = ({ h, s, l, alpha }) => {
760
+ let res = { mode: "rgb" };
761
+ h = (h === void 0 ? 0 : h + 120) * degToRad;
762
+ if (l === void 0) l = 0;
763
+ let amp = s === void 0 ? 0 : s * l * (1 - l);
764
+ let cosh = Math.cos(h);
765
+ let sinh = Math.sin(h);
766
+ res.r = l + amp * (M$1[0] * cosh + M$1[1] * sinh);
767
+ res.g = l + amp * (M$1[2] * cosh + M$1[3] * sinh);
768
+ res.b = l + amp * (M$1[4] * cosh + M$1[5] * sinh);
769
+ if (alpha !== void 0) res.alpha = alpha;
770
+ return res;
771
+ };
772
+ var differenceHueSaturation = (std, smp) => {
773
+ if (std.h === void 0 || smp.h === void 0 || !std.s || !smp.s) return 0;
774
+ let std_h = normalizeHue(std.h);
775
+ let smp_h = normalizeHue(smp.h);
776
+ let dH = Math.sin((smp_h - std_h + 360) / 2 * Math.PI / 180);
777
+ return 2 * Math.sqrt(std.s * smp.s) * dH;
778
+ };
779
+ var differenceHueNaive = (std, smp) => {
780
+ if (std.h === void 0 || smp.h === void 0) return 0;
781
+ let std_h = normalizeHue(std.h);
782
+ let smp_h = normalizeHue(smp.h);
783
+ if (Math.abs(smp_h - std_h) > 180) return std_h - (smp_h - 360 * Math.sign(smp_h - std_h));
784
+ return smp_h - std_h;
785
+ };
786
+ var differenceHueChroma = (std, smp) => {
787
+ if (std.h === void 0 || smp.h === void 0 || !std.c || !smp.c) return 0;
788
+ let std_h = normalizeHue(std.h);
789
+ let smp_h = normalizeHue(smp.h);
790
+ let dH = Math.sin((smp_h - std_h + 360) / 2 * Math.PI / 180);
791
+ return 2 * Math.sqrt(std.c * smp.c) * dH;
792
+ };
793
+ var averageAngle = (val) => {
794
+ let sum = val.reduce((sum, val) => {
795
+ if (val !== void 0) {
796
+ let rad = val * Math.PI / 180;
797
+ sum.sin += Math.sin(rad);
798
+ sum.cos += Math.cos(rad);
799
+ }
800
+ return sum;
801
+ }, {
802
+ sin: 0,
803
+ cos: 0
804
+ });
805
+ let angle = Math.atan2(sum.sin, sum.cos) * 180 / Math.PI;
806
+ return angle < 0 ? 360 + angle : angle;
807
+ };
808
+ var definition$25 = {
809
+ mode: "cubehelix",
810
+ channels: [
811
+ "h",
812
+ "s",
813
+ "l",
814
+ "alpha"
815
+ ],
816
+ parse: ["--cubehelix"],
817
+ serialize: "--cubehelix",
818
+ ranges: {
819
+ h: [0, 360],
820
+ s: [0, 4.614],
821
+ l: [0, 1]
822
+ },
823
+ fromMode: { rgb: convertRgbToCubehelix },
824
+ toMode: { rgb: convertCubehelixToRgb },
825
+ interpolate: {
826
+ h: {
827
+ use: interpolatorLinear,
828
+ fixup: fixupHueShorter
829
+ },
830
+ s: interpolatorLinear,
831
+ l: interpolatorLinear,
832
+ alpha: {
833
+ use: interpolatorLinear,
834
+ fixup: fixupAlpha
835
+ }
836
+ },
837
+ difference: { h: differenceHueSaturation },
838
+ average: { h: averageAngle }
839
+ };
840
+ var convertLabToLch = ({ l, a, b, alpha }, mode = "lch") => {
841
+ if (a === void 0) a = 0;
842
+ if (b === void 0) b = 0;
843
+ let c = Math.sqrt(a * a + b * b);
844
+ let res = {
845
+ mode,
846
+ l,
847
+ c
848
+ };
849
+ if (c) res.h = normalizeHue(Math.atan2(b, a) * 180 / Math.PI);
850
+ if (alpha !== void 0) res.alpha = alpha;
851
+ return res;
852
+ };
853
+ var convertLchToLab = ({ l, c, h, alpha }, mode = "lab") => {
854
+ if (h === void 0) h = 0;
855
+ let res = {
856
+ mode,
857
+ l,
858
+ a: c ? c * Math.cos(h / 180 * Math.PI) : 0,
859
+ b: c ? c * Math.sin(h / 180 * Math.PI) : 0
860
+ };
861
+ if (alpha !== void 0) res.alpha = alpha;
862
+ return res;
863
+ };
864
+ const k$5 = Math.pow(29, 3) / Math.pow(3, 3);
865
+ const e$2 = Math.pow(6, 3) / Math.pow(29, 3);
866
+ const D50 = {
867
+ X: .3457 / .3585,
868
+ Y: 1,
869
+ Z: .2958 / .3585
870
+ };
871
+ const D65 = {
872
+ X: .3127 / .329,
873
+ Y: 1,
874
+ Z: .3583 / .329
875
+ };
876
+ Math.pow(29, 3) / Math.pow(3, 3);
877
+ Math.pow(6, 3) / Math.pow(29, 3);
878
+ var fn$1 = (v) => Math.pow(v, 3) > e$2 ? Math.pow(v, 3) : (116 * v - 16) / k$5;
879
+ var convertLab65ToXyz65 = ({ l, a, b, alpha }) => {
880
+ if (l === void 0) l = 0;
881
+ if (a === void 0) a = 0;
882
+ if (b === void 0) b = 0;
883
+ let fy = (l + 16) / 116;
884
+ let fx = a / 500 + fy;
885
+ let fz = fy - b / 200;
886
+ let res = {
887
+ mode: "xyz65",
888
+ x: fn$1(fx) * D65.X,
889
+ y: fn$1(fy) * D65.Y,
890
+ z: fn$1(fz) * D65.Z
891
+ };
892
+ if (alpha !== void 0) res.alpha = alpha;
893
+ return res;
894
+ };
895
+ var convertLab65ToRgb = (lab) => convertXyz65ToRgb(convertLab65ToXyz65(lab));
896
+ var f$2 = (value) => value > e$2 ? Math.cbrt(value) : (k$5 * value + 16) / 116;
897
+ var convertXyz65ToLab65 = ({ x, y, z, alpha }) => {
898
+ if (x === void 0) x = 0;
899
+ if (y === void 0) y = 0;
900
+ if (z === void 0) z = 0;
901
+ let f0 = f$2(x / D65.X);
902
+ let f1 = f$2(y / D65.Y);
903
+ let f2 = f$2(z / D65.Z);
904
+ let res = {
905
+ mode: "lab65",
906
+ l: 116 * f1 - 16,
907
+ a: 500 * (f0 - f1),
908
+ b: 200 * (f1 - f2)
909
+ };
910
+ if (alpha !== void 0) res.alpha = alpha;
911
+ return res;
912
+ };
913
+ var convertRgbToLab65 = (rgb) => {
914
+ let res = convertXyz65ToLab65(convertRgbToXyz65(rgb));
915
+ if (rgb.r === rgb.b && rgb.b === rgb.g) res.a = res.b = 0;
916
+ return res;
917
+ };
918
+ const θ = 26 / 180 * Math.PI;
919
+ const cosθ = Math.cos(θ);
920
+ const sinθ = Math.sin(θ);
921
+ const factor = 100 / Math.log(139 / 100);
922
+ var convertDlchToLab65 = ({ l, c, h, alpha }) => {
923
+ if (l === void 0) l = 0;
924
+ if (c === void 0) c = 0;
925
+ if (h === void 0) h = 0;
926
+ let res = {
927
+ mode: "lab65",
928
+ l: (Math.exp(l * 1 / factor) - 1) / .0039
929
+ };
930
+ let G = (Math.exp(.0435 * c * 1 * 1) - 1) / .075;
931
+ let e = G * Math.cos(h / 180 * Math.PI - θ);
932
+ let f = G * Math.sin(h / 180 * Math.PI - θ);
933
+ res.a = e * cosθ - f / .83 * sinθ;
934
+ res.b = e * sinθ + f / .83 * cosθ;
935
+ if (alpha !== void 0) res.alpha = alpha;
936
+ return res;
937
+ };
938
+ var convertLab65ToDlch = ({ l, a, b, alpha }) => {
939
+ if (l === void 0) l = 0;
940
+ if (a === void 0) a = 0;
941
+ if (b === void 0) b = 0;
942
+ let e = a * cosθ + b * sinθ;
943
+ let f = .83 * (b * cosθ - a * sinθ);
944
+ let G = Math.sqrt(e * e + f * f);
945
+ let res = {
946
+ mode: "dlch",
947
+ l: factor / 1 * Math.log(1 + .0039 * l),
948
+ c: Math.log(1 + .075 * G) / (.0435 * 1 * 1)
949
+ };
950
+ if (res.c) res.h = normalizeHue((Math.atan2(f, e) + θ) / Math.PI * 180);
951
+ if (alpha !== void 0) res.alpha = alpha;
952
+ return res;
953
+ };
954
+ var convertDlabToLab65 = (c) => convertDlchToLab65(convertLabToLch(c, "dlch"));
955
+ var convertLab65ToDlab = (c) => convertLchToLab(convertLab65ToDlch(c), "dlab");
956
+ var definition$24 = {
957
+ mode: "dlab",
958
+ parse: ["--din99o-lab"],
959
+ serialize: "--din99o-lab",
960
+ toMode: {
961
+ lab65: convertDlabToLab65,
962
+ rgb: (c) => convertLab65ToRgb(convertDlabToLab65(c))
963
+ },
964
+ fromMode: {
965
+ lab65: convertLab65ToDlab,
966
+ rgb: (c) => convertLab65ToDlab(convertRgbToLab65(c))
967
+ },
968
+ channels: [
969
+ "l",
970
+ "a",
971
+ "b",
972
+ "alpha"
973
+ ],
974
+ ranges: {
975
+ l: [0, 100],
976
+ a: [-40.09, 45.501],
977
+ b: [-40.469, 44.344]
978
+ },
979
+ interpolate: {
980
+ l: interpolatorLinear,
981
+ a: interpolatorLinear,
982
+ b: interpolatorLinear,
983
+ alpha: {
984
+ use: interpolatorLinear,
985
+ fixup: fixupAlpha
986
+ }
987
+ }
988
+ };
989
+ var definition$23 = {
990
+ mode: "dlch",
991
+ parse: ["--din99o-lch"],
992
+ serialize: "--din99o-lch",
993
+ toMode: {
994
+ lab65: convertDlchToLab65,
995
+ dlab: (c) => convertLchToLab(c, "dlab"),
996
+ rgb: (c) => convertLab65ToRgb(convertDlchToLab65(c))
997
+ },
998
+ fromMode: {
999
+ lab65: convertLab65ToDlch,
1000
+ dlab: (c) => convertLabToLch(c, "dlch"),
1001
+ rgb: (c) => convertLab65ToDlch(convertRgbToLab65(c))
1002
+ },
1003
+ channels: [
1004
+ "l",
1005
+ "c",
1006
+ "h",
1007
+ "alpha"
1008
+ ],
1009
+ ranges: {
1010
+ l: [0, 100],
1011
+ c: [0, 51.484],
1012
+ h: [0, 360]
1013
+ },
1014
+ interpolate: {
1015
+ l: interpolatorLinear,
1016
+ c: interpolatorLinear,
1017
+ h: {
1018
+ use: interpolatorLinear,
1019
+ fixup: fixupHueShorter
1020
+ },
1021
+ alpha: {
1022
+ use: interpolatorLinear,
1023
+ fixup: fixupAlpha
1024
+ }
1025
+ },
1026
+ difference: { h: differenceHueChroma },
1027
+ average: { h: averageAngle }
1028
+ };
1029
+ function convertHsiToRgb({ h, s, i, alpha }) {
1030
+ h = normalizeHue(h !== void 0 ? h : 0);
1031
+ if (s === void 0) s = 0;
1032
+ if (i === void 0) i = 0;
1033
+ let f = Math.abs(h / 60 % 2 - 1);
1034
+ let res;
1035
+ switch (Math.floor(h / 60)) {
1036
+ case 0:
1037
+ res = {
1038
+ r: i * (1 + s * (3 / (2 - f) - 1)),
1039
+ g: i * (1 + s * (3 * (1 - f) / (2 - f) - 1)),
1040
+ b: i * (1 - s)
1041
+ };
1042
+ break;
1043
+ case 1:
1044
+ res = {
1045
+ r: i * (1 + s * (3 * (1 - f) / (2 - f) - 1)),
1046
+ g: i * (1 + s * (3 / (2 - f) - 1)),
1047
+ b: i * (1 - s)
1048
+ };
1049
+ break;
1050
+ case 2:
1051
+ res = {
1052
+ r: i * (1 - s),
1053
+ g: i * (1 + s * (3 / (2 - f) - 1)),
1054
+ b: i * (1 + s * (3 * (1 - f) / (2 - f) - 1))
1055
+ };
1056
+ break;
1057
+ case 3:
1058
+ res = {
1059
+ r: i * (1 - s),
1060
+ g: i * (1 + s * (3 * (1 - f) / (2 - f) - 1)),
1061
+ b: i * (1 + s * (3 / (2 - f) - 1))
1062
+ };
1063
+ break;
1064
+ case 4:
1065
+ res = {
1066
+ r: i * (1 + s * (3 * (1 - f) / (2 - f) - 1)),
1067
+ g: i * (1 - s),
1068
+ b: i * (1 + s * (3 / (2 - f) - 1))
1069
+ };
1070
+ break;
1071
+ case 5:
1072
+ res = {
1073
+ r: i * (1 + s * (3 / (2 - f) - 1)),
1074
+ g: i * (1 - s),
1075
+ b: i * (1 + s * (3 * (1 - f) / (2 - f) - 1))
1076
+ };
1077
+ break;
1078
+ default: res = {
1079
+ r: i * (1 - s),
1080
+ g: i * (1 - s),
1081
+ b: i * (1 - s)
1082
+ };
1083
+ }
1084
+ res.mode = "rgb";
1085
+ if (alpha !== void 0) res.alpha = alpha;
1086
+ return res;
1087
+ }
1088
+ function convertRgbToHsi({ r, g, b, alpha }) {
1089
+ if (r === void 0) r = 0;
1090
+ if (g === void 0) g = 0;
1091
+ if (b === void 0) b = 0;
1092
+ let M = Math.max(r, g, b), m = Math.min(r, g, b);
1093
+ let res = {
1094
+ mode: "hsi",
1095
+ s: r + g + b === 0 ? 0 : 1 - 3 * m / (r + g + b),
1096
+ i: (r + g + b) / 3
1097
+ };
1098
+ if (M - m !== 0) res.h = (M === r ? (g - b) / (M - m) + (g < b) * 6 : M === g ? (b - r) / (M - m) + 2 : (r - g) / (M - m) + 4) * 60;
1099
+ if (alpha !== void 0) res.alpha = alpha;
1100
+ return res;
1101
+ }
1102
+ var definition$22 = {
1103
+ mode: "hsi",
1104
+ toMode: { rgb: convertHsiToRgb },
1105
+ parse: ["--hsi"],
1106
+ serialize: "--hsi",
1107
+ fromMode: { rgb: convertRgbToHsi },
1108
+ channels: [
1109
+ "h",
1110
+ "s",
1111
+ "i",
1112
+ "alpha"
1113
+ ],
1114
+ ranges: { h: [0, 360] },
1115
+ gamut: "rgb",
1116
+ interpolate: {
1117
+ h: {
1118
+ use: interpolatorLinear,
1119
+ fixup: fixupHueShorter
1120
+ },
1121
+ s: interpolatorLinear,
1122
+ i: interpolatorLinear,
1123
+ alpha: {
1124
+ use: interpolatorLinear,
1125
+ fixup: fixupAlpha
1126
+ }
1127
+ },
1128
+ difference: { h: differenceHueSaturation },
1129
+ average: { h: averageAngle }
1130
+ };
1131
+ function convertHslToRgb({ h, s, l, alpha }) {
1132
+ h = normalizeHue(h !== void 0 ? h : 0);
1133
+ if (s === void 0) s = 0;
1134
+ if (l === void 0) l = 0;
1135
+ let m1 = l + s * (l < .5 ? l : 1 - l);
1136
+ let m2 = m1 - (m1 - l) * 2 * Math.abs(h / 60 % 2 - 1);
1137
+ let res;
1138
+ switch (Math.floor(h / 60)) {
1139
+ case 0:
1140
+ res = {
1141
+ r: m1,
1142
+ g: m2,
1143
+ b: 2 * l - m1
1144
+ };
1145
+ break;
1146
+ case 1:
1147
+ res = {
1148
+ r: m2,
1149
+ g: m1,
1150
+ b: 2 * l - m1
1151
+ };
1152
+ break;
1153
+ case 2:
1154
+ res = {
1155
+ r: 2 * l - m1,
1156
+ g: m1,
1157
+ b: m2
1158
+ };
1159
+ break;
1160
+ case 3:
1161
+ res = {
1162
+ r: 2 * l - m1,
1163
+ g: m2,
1164
+ b: m1
1165
+ };
1166
+ break;
1167
+ case 4:
1168
+ res = {
1169
+ r: m2,
1170
+ g: 2 * l - m1,
1171
+ b: m1
1172
+ };
1173
+ break;
1174
+ case 5:
1175
+ res = {
1176
+ r: m1,
1177
+ g: 2 * l - m1,
1178
+ b: m2
1179
+ };
1180
+ break;
1181
+ default: res = {
1182
+ r: 2 * l - m1,
1183
+ g: 2 * l - m1,
1184
+ b: 2 * l - m1
1185
+ };
1186
+ }
1187
+ res.mode = "rgb";
1188
+ if (alpha !== void 0) res.alpha = alpha;
1189
+ return res;
1190
+ }
1191
+ function convertRgbToHsl({ r, g, b, alpha }) {
1192
+ if (r === void 0) r = 0;
1193
+ if (g === void 0) g = 0;
1194
+ if (b === void 0) b = 0;
1195
+ let M = Math.max(r, g, b), m = Math.min(r, g, b);
1196
+ let res = {
1197
+ mode: "hsl",
1198
+ s: M === m ? 0 : (M - m) / (1 - Math.abs(M + m - 1)),
1199
+ l: .5 * (M + m)
1200
+ };
1201
+ if (M - m !== 0) res.h = (M === r ? (g - b) / (M - m) + (g < b) * 6 : M === g ? (b - r) / (M - m) + 2 : (r - g) / (M - m) + 4) * 60;
1202
+ if (alpha !== void 0) res.alpha = alpha;
1203
+ return res;
1204
+ }
1205
+ var hueToDeg = (val, unit) => {
1206
+ switch (unit) {
1207
+ case "deg": return +val;
1208
+ case "rad": return val / Math.PI * 180;
1209
+ case "grad": return val / 10 * 9;
1210
+ case "turn": return val * 360;
1211
+ }
1212
+ };
1213
+ var hsl_old = new RegExp(`^hsla?\\(\\s*${hue$1}${c$1}${per}${c$1}${per}\\s*(?:,\\s*${num_per}\\s*)?\\)$`);
1214
+ var parseHslLegacy = (color) => {
1215
+ let match = color.match(hsl_old);
1216
+ if (!match) return;
1217
+ let res = { mode: "hsl" };
1218
+ if (match[3] !== void 0) res.h = +match[3];
1219
+ else if (match[1] !== void 0 && match[2] !== void 0) res.h = hueToDeg(match[1], match[2]);
1220
+ if (match[4] !== void 0) res.s = Math.min(Math.max(0, match[4] / 100), 1);
1221
+ if (match[5] !== void 0) res.l = Math.min(Math.max(0, match[5] / 100), 1);
1222
+ if (match[6] !== void 0) res.alpha = Math.max(0, Math.min(1, match[6] / 100));
1223
+ else if (match[7] !== void 0) res.alpha = Math.max(0, Math.min(1, +match[7]));
1224
+ return res;
1225
+ };
1226
+ function parseHsl(color, parsed) {
1227
+ if (!parsed || parsed[0] !== "hsl" && parsed[0] !== "hsla") return;
1228
+ const res = { mode: "hsl" };
1229
+ const [, h, s, l, alpha] = parsed;
1230
+ if (h.type !== Tok.None) {
1231
+ if (h.type === Tok.Percentage) return;
1232
+ res.h = h.value;
1233
+ }
1234
+ if (s.type !== Tok.None) {
1235
+ if (s.type === Tok.Hue) return;
1236
+ res.s = s.value / 100;
1237
+ }
1238
+ if (l.type !== Tok.None) {
1239
+ if (l.type === Tok.Hue) return;
1240
+ res.l = l.value / 100;
1241
+ }
1242
+ if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1243
+ return res;
1244
+ }
1245
+ var definition$21 = {
1246
+ mode: "hsl",
1247
+ toMode: { rgb: convertHslToRgb },
1248
+ fromMode: { rgb: convertRgbToHsl },
1249
+ channels: [
1250
+ "h",
1251
+ "s",
1252
+ "l",
1253
+ "alpha"
1254
+ ],
1255
+ ranges: { h: [0, 360] },
1256
+ gamut: "rgb",
1257
+ parse: [parseHsl, parseHslLegacy],
1258
+ serialize: (c) => `hsl(${c.h !== void 0 ? c.h : "none"} ${c.s !== void 0 ? c.s * 100 + "%" : "none"} ${c.l !== void 0 ? c.l * 100 + "%" : "none"}${c.alpha < 1 ? ` / ${c.alpha}` : ""})`,
1259
+ interpolate: {
1260
+ h: {
1261
+ use: interpolatorLinear,
1262
+ fixup: fixupHueShorter
1263
+ },
1264
+ s: interpolatorLinear,
1265
+ l: interpolatorLinear,
1266
+ alpha: {
1267
+ use: interpolatorLinear,
1268
+ fixup: fixupAlpha
1269
+ }
1270
+ },
1271
+ difference: { h: differenceHueSaturation },
1272
+ average: { h: averageAngle }
1273
+ };
1274
+ function convertHsvToRgb({ h, s, v, alpha }) {
1275
+ h = normalizeHue(h !== void 0 ? h : 0);
1276
+ if (s === void 0) s = 0;
1277
+ if (v === void 0) v = 0;
1278
+ let f = Math.abs(h / 60 % 2 - 1);
1279
+ let res;
1280
+ switch (Math.floor(h / 60)) {
1281
+ case 0:
1282
+ res = {
1283
+ r: v,
1284
+ g: v * (1 - s * f),
1285
+ b: v * (1 - s)
1286
+ };
1287
+ break;
1288
+ case 1:
1289
+ res = {
1290
+ r: v * (1 - s * f),
1291
+ g: v,
1292
+ b: v * (1 - s)
1293
+ };
1294
+ break;
1295
+ case 2:
1296
+ res = {
1297
+ r: v * (1 - s),
1298
+ g: v,
1299
+ b: v * (1 - s * f)
1300
+ };
1301
+ break;
1302
+ case 3:
1303
+ res = {
1304
+ r: v * (1 - s),
1305
+ g: v * (1 - s * f),
1306
+ b: v
1307
+ };
1308
+ break;
1309
+ case 4:
1310
+ res = {
1311
+ r: v * (1 - s * f),
1312
+ g: v * (1 - s),
1313
+ b: v
1314
+ };
1315
+ break;
1316
+ case 5:
1317
+ res = {
1318
+ r: v,
1319
+ g: v * (1 - s),
1320
+ b: v * (1 - s * f)
1321
+ };
1322
+ break;
1323
+ default: res = {
1324
+ r: v * (1 - s),
1325
+ g: v * (1 - s),
1326
+ b: v * (1 - s)
1327
+ };
1328
+ }
1329
+ res.mode = "rgb";
1330
+ if (alpha !== void 0) res.alpha = alpha;
1331
+ return res;
1332
+ }
1333
+ function convertRgbToHsv({ r, g, b, alpha }) {
1334
+ if (r === void 0) r = 0;
1335
+ if (g === void 0) g = 0;
1336
+ if (b === void 0) b = 0;
1337
+ let M = Math.max(r, g, b), m = Math.min(r, g, b);
1338
+ let res = {
1339
+ mode: "hsv",
1340
+ s: M === 0 ? 0 : 1 - m / M,
1341
+ v: M
1342
+ };
1343
+ if (M - m !== 0) res.h = (M === r ? (g - b) / (M - m) + (g < b) * 6 : M === g ? (b - r) / (M - m) + 2 : (r - g) / (M - m) + 4) * 60;
1344
+ if (alpha !== void 0) res.alpha = alpha;
1345
+ return res;
1346
+ }
1347
+ var definition$20 = {
1348
+ mode: "hsv",
1349
+ toMode: { rgb: convertHsvToRgb },
1350
+ parse: ["--hsv"],
1351
+ serialize: "--hsv",
1352
+ fromMode: { rgb: convertRgbToHsv },
1353
+ channels: [
1354
+ "h",
1355
+ "s",
1356
+ "v",
1357
+ "alpha"
1358
+ ],
1359
+ ranges: { h: [0, 360] },
1360
+ gamut: "rgb",
1361
+ interpolate: {
1362
+ h: {
1363
+ use: interpolatorLinear,
1364
+ fixup: fixupHueShorter
1365
+ },
1366
+ s: interpolatorLinear,
1367
+ v: interpolatorLinear,
1368
+ alpha: {
1369
+ use: interpolatorLinear,
1370
+ fixup: fixupAlpha
1371
+ }
1372
+ },
1373
+ difference: { h: differenceHueSaturation },
1374
+ average: { h: averageAngle }
1375
+ };
1376
+ function convertHwbToRgb({ h, w, b, alpha }) {
1377
+ if (w === void 0) w = 0;
1378
+ if (b === void 0) b = 0;
1379
+ if (w + b > 1) {
1380
+ let s = w + b;
1381
+ w /= s;
1382
+ b /= s;
1383
+ }
1384
+ return convertHsvToRgb({
1385
+ h,
1386
+ s: b === 1 ? 1 : 1 - w / (1 - b),
1387
+ v: 1 - b,
1388
+ alpha
1389
+ });
1390
+ }
1391
+ function convertRgbToHwb(rgba) {
1392
+ let hsv = convertRgbToHsv(rgba);
1393
+ if (hsv === void 0) return void 0;
1394
+ let s = hsv.s !== void 0 ? hsv.s : 0;
1395
+ let v = hsv.v !== void 0 ? hsv.v : 0;
1396
+ let res = {
1397
+ mode: "hwb",
1398
+ w: (1 - s) * v,
1399
+ b: 1 - v
1400
+ };
1401
+ if (hsv.h !== void 0) res.h = hsv.h;
1402
+ if (hsv.alpha !== void 0) res.alpha = hsv.alpha;
1403
+ return res;
1404
+ }
1405
+ function ParseHwb(color, parsed) {
1406
+ if (!parsed || parsed[0] !== "hwb") return;
1407
+ const res = { mode: "hwb" };
1408
+ const [, h, w, b, alpha] = parsed;
1409
+ if (h.type !== Tok.None) {
1410
+ if (h.type === Tok.Percentage) return;
1411
+ res.h = h.value;
1412
+ }
1413
+ if (w.type !== Tok.None) {
1414
+ if (w.type === Tok.Hue) return;
1415
+ res.w = w.value / 100;
1416
+ }
1417
+ if (b.type !== Tok.None) {
1418
+ if (b.type === Tok.Hue) return;
1419
+ res.b = b.value / 100;
1420
+ }
1421
+ if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1422
+ return res;
1423
+ }
1424
+ var definition$19 = {
1425
+ mode: "hwb",
1426
+ toMode: { rgb: convertHwbToRgb },
1427
+ fromMode: { rgb: convertRgbToHwb },
1428
+ channels: [
1429
+ "h",
1430
+ "w",
1431
+ "b",
1432
+ "alpha"
1433
+ ],
1434
+ ranges: { h: [0, 360] },
1435
+ gamut: "rgb",
1436
+ parse: [ParseHwb],
1437
+ serialize: (c) => `hwb(${c.h !== void 0 ? c.h : "none"} ${c.w !== void 0 ? c.w * 100 + "%" : "none"} ${c.b !== void 0 ? c.b * 100 + "%" : "none"}${c.alpha < 1 ? ` / ${c.alpha}` : ""})`,
1438
+ interpolate: {
1439
+ h: {
1440
+ use: interpolatorLinear,
1441
+ fixup: fixupHueShorter
1442
+ },
1443
+ w: interpolatorLinear,
1444
+ b: interpolatorLinear,
1445
+ alpha: {
1446
+ use: interpolatorLinear,
1447
+ fixup: fixupAlpha
1448
+ }
1449
+ },
1450
+ difference: { h: differenceHueNaive },
1451
+ average: { h: averageAngle }
1452
+ };
1453
+ const M1 = .1593017578125;
1454
+ const M2 = 78.84375;
1455
+ const C1 = .8359375;
1456
+ const C2 = 18.8515625;
1457
+ const C3 = 18.6875;
1458
+ function transferPqDecode(v) {
1459
+ if (v < 0) return 0;
1460
+ const c = Math.pow(v, 1 / M2);
1461
+ return 1e4 * Math.pow(Math.max(0, c - C1) / (C2 - C3 * c), 1 / M1);
1462
+ }
1463
+ function transferPqEncode(v) {
1464
+ if (v < 0) return 0;
1465
+ const c = Math.pow(v / 1e4, M1);
1466
+ return Math.pow((C1 + C2 * c) / (1 + C3 * c), M2);
1467
+ }
1468
+ var toRel = (c) => Math.max(c / 203, 0);
1469
+ var convertItpToXyz65 = ({ i, t, p, alpha }) => {
1470
+ if (i === void 0) i = 0;
1471
+ if (t === void 0) t = 0;
1472
+ if (p === void 0) p = 0;
1473
+ const l = transferPqDecode(i + .008609037037932761 * t + .11102962500302593 * p);
1474
+ const m = transferPqDecode(i - .00860903703793275 * t - .11102962500302599 * p);
1475
+ const s = transferPqDecode(i + .5600313357106791 * t - .32062717498731885 * p);
1476
+ const res = {
1477
+ mode: "xyz65",
1478
+ x: toRel(2.070152218389422 * l - 1.3263473389671556 * m + .2066510476294051 * s),
1479
+ y: toRel(.3647385209748074 * l + .680566024947227 * m - .0453045459220346 * s),
1480
+ z: toRel(-.049747207535812 * l - .0492609666966138 * m + 1.1880659249923042 * s)
1481
+ };
1482
+ if (alpha !== void 0) res.alpha = alpha;
1483
+ return res;
1484
+ };
1485
+ var toAbs = (c = 0) => Math.max(c * 203, 0);
1486
+ var convertXyz65ToItp = ({ x, y, z, alpha }) => {
1487
+ const absX = toAbs(x);
1488
+ const absY = toAbs(y);
1489
+ const absZ = toAbs(z);
1490
+ const l = transferPqEncode(.3592832590121217 * absX + .6976051147779502 * absY - .0358915932320289 * absZ);
1491
+ const m = transferPqEncode(-.1920808463704995 * absX + 1.1004767970374323 * absY + .0753748658519118 * absZ);
1492
+ const s = transferPqEncode(.0070797844607477 * absX + .0748396662186366 * absY + .8433265453898765 * absZ);
1493
+ const res = {
1494
+ mode: "itp",
1495
+ i: .5 * l + .5 * m,
1496
+ t: 1.61376953125 * l - 3.323486328125 * m + 1.709716796875 * s,
1497
+ p: 4.378173828125 * l - 4.24560546875 * m - .132568359375 * s
1498
+ };
1499
+ if (alpha !== void 0) res.alpha = alpha;
1500
+ return res;
1501
+ };
1502
+ var definition$18 = {
1503
+ mode: "itp",
1504
+ channels: [
1505
+ "i",
1506
+ "t",
1507
+ "p",
1508
+ "alpha"
1509
+ ],
1510
+ parse: ["--ictcp"],
1511
+ serialize: "--ictcp",
1512
+ toMode: {
1513
+ xyz65: convertItpToXyz65,
1514
+ rgb: (color) => convertXyz65ToRgb(convertItpToXyz65(color))
1515
+ },
1516
+ fromMode: {
1517
+ xyz65: convertXyz65ToItp,
1518
+ rgb: (color) => convertXyz65ToItp(convertRgbToXyz65(color))
1519
+ },
1520
+ ranges: {
1521
+ i: [0, .581],
1522
+ t: [-.369, .272],
1523
+ p: [-.164, .331]
1524
+ },
1525
+ interpolate: {
1526
+ i: interpolatorLinear,
1527
+ t: interpolatorLinear,
1528
+ p: interpolatorLinear,
1529
+ alpha: {
1530
+ use: interpolatorLinear,
1531
+ fixup: fixupAlpha
1532
+ }
1533
+ }
1534
+ };
1535
+ var p$2 = 134.03437499999998;
1536
+ var d0$1 = 16295499532821565e-27;
1537
+ var jabPqEncode = (v) => {
1538
+ if (v < 0) return 0;
1539
+ let vn = Math.pow(v / 1e4, M1);
1540
+ return Math.pow((C1 + C2 * vn) / (1 + C3 * vn), p$2);
1541
+ };
1542
+ var abs = (v = 0) => Math.max(v * 203, 0);
1543
+ var convertXyz65ToJab = ({ x, y, z, alpha }) => {
1544
+ x = abs(x);
1545
+ y = abs(y);
1546
+ z = abs(z);
1547
+ let xp = 1.15 * x - .15 * z;
1548
+ let yp = .66 * y + .34 * x;
1549
+ let l = jabPqEncode(.41478972 * xp + .579999 * yp + .014648 * z);
1550
+ let m = jabPqEncode(-.20151 * xp + 1.120649 * yp + .0531008 * z);
1551
+ let s = jabPqEncode(-.0166008 * xp + .2648 * yp + .6684799 * z);
1552
+ let i = (l + m) / 2;
1553
+ let res = {
1554
+ mode: "jab",
1555
+ j: .44 * i / (1 - .56 * i) - d0$1,
1556
+ a: 3.524 * l - 4.066708 * m + .542708 * s,
1557
+ b: .199076 * l + 1.096799 * m - 1.295875 * s
1558
+ };
1559
+ if (alpha !== void 0) res.alpha = alpha;
1560
+ return res;
1561
+ };
1562
+ var p$1 = 134.03437499999998;
1563
+ var d0 = 16295499532821565e-27;
1564
+ var jabPqDecode = (v) => {
1565
+ if (v < 0) return 0;
1566
+ let vp = Math.pow(v, 1 / p$1);
1567
+ return 1e4 * Math.pow((C1 - vp) / (C3 * vp - C2), 1 / M1);
1568
+ };
1569
+ var rel = (v) => v / 203;
1570
+ var convertJabToXyz65 = ({ j, a, b, alpha }) => {
1571
+ if (j === void 0) j = 0;
1572
+ if (a === void 0) a = 0;
1573
+ if (b === void 0) b = 0;
1574
+ let i = (j + d0) / (.44 + .56 * (j + d0));
1575
+ let l = jabPqDecode(i + .13860504 * a + .058047316 * b);
1576
+ let m = jabPqDecode(i - .13860504 * a - .058047316 * b);
1577
+ let s = jabPqDecode(i - .096019242 * a - .8118919 * b);
1578
+ let res = {
1579
+ mode: "xyz65",
1580
+ x: rel(1.661373024652174 * l - .914523081304348 * m + .23136208173913045 * s),
1581
+ y: rel(-.3250758611844533 * l + 1.571847026732543 * m - .21825383453227928 * s),
1582
+ z: rel(-.090982811 * l - .31272829 * m + 1.5227666 * s)
1583
+ };
1584
+ if (alpha !== void 0) res.alpha = alpha;
1585
+ return res;
1586
+ };
1587
+ var convertRgbToJab = (rgb) => {
1588
+ let res = convertXyz65ToJab(convertRgbToXyz65(rgb));
1589
+ if (rgb.r === rgb.b && rgb.b === rgb.g) res.a = res.b = 0;
1590
+ return res;
1591
+ };
1592
+ var convertJabToRgb = (color) => convertXyz65ToRgb(convertJabToXyz65(color));
1593
+ var definition$17 = {
1594
+ mode: "jab",
1595
+ channels: [
1596
+ "j",
1597
+ "a",
1598
+ "b",
1599
+ "alpha"
1600
+ ],
1601
+ parse: ["--jzazbz"],
1602
+ serialize: "--jzazbz",
1603
+ fromMode: {
1604
+ rgb: convertRgbToJab,
1605
+ xyz65: convertXyz65ToJab
1606
+ },
1607
+ toMode: {
1608
+ rgb: convertJabToRgb,
1609
+ xyz65: convertJabToXyz65
1610
+ },
1611
+ ranges: {
1612
+ j: [0, .222],
1613
+ a: [-.109, .129],
1614
+ b: [-.185, .134]
1615
+ },
1616
+ interpolate: {
1617
+ j: interpolatorLinear,
1618
+ a: interpolatorLinear,
1619
+ b: interpolatorLinear,
1620
+ alpha: {
1621
+ use: interpolatorLinear,
1622
+ fixup: fixupAlpha
1623
+ }
1624
+ }
1625
+ };
1626
+ var convertJabToJch = ({ j, a, b, alpha }) => {
1627
+ if (a === void 0) a = 0;
1628
+ if (b === void 0) b = 0;
1629
+ let c = Math.sqrt(a * a + b * b);
1630
+ let res = {
1631
+ mode: "jch",
1632
+ j,
1633
+ c
1634
+ };
1635
+ if (c) res.h = normalizeHue(Math.atan2(b, a) * 180 / Math.PI);
1636
+ if (alpha !== void 0) res.alpha = alpha;
1637
+ return res;
1638
+ };
1639
+ var convertJchToJab = ({ j, c, h, alpha }) => {
1640
+ if (h === void 0) h = 0;
1641
+ let res = {
1642
+ mode: "jab",
1643
+ j,
1644
+ a: c ? c * Math.cos(h / 180 * Math.PI) : 0,
1645
+ b: c ? c * Math.sin(h / 180 * Math.PI) : 0
1646
+ };
1647
+ if (alpha !== void 0) res.alpha = alpha;
1648
+ return res;
1649
+ };
1650
+ var definition$16 = {
1651
+ mode: "jch",
1652
+ parse: ["--jzczhz"],
1653
+ serialize: "--jzczhz",
1654
+ toMode: {
1655
+ jab: convertJchToJab,
1656
+ rgb: (c) => convertJabToRgb(convertJchToJab(c))
1657
+ },
1658
+ fromMode: {
1659
+ rgb: (c) => convertJabToJch(convertRgbToJab(c)),
1660
+ jab: convertJabToJch
1661
+ },
1662
+ channels: [
1663
+ "j",
1664
+ "c",
1665
+ "h",
1666
+ "alpha"
1667
+ ],
1668
+ ranges: {
1669
+ j: [0, .221],
1670
+ c: [0, .19],
1671
+ h: [0, 360]
1672
+ },
1673
+ interpolate: {
1674
+ h: {
1675
+ use: interpolatorLinear,
1676
+ fixup: fixupHueShorter
1677
+ },
1678
+ c: interpolatorLinear,
1679
+ j: interpolatorLinear,
1680
+ alpha: {
1681
+ use: interpolatorLinear,
1682
+ fixup: fixupAlpha
1683
+ }
1684
+ },
1685
+ difference: { h: differenceHueChroma },
1686
+ average: { h: averageAngle }
1687
+ };
1688
+ const k$3 = Math.pow(29, 3) / Math.pow(3, 3);
1689
+ const e = Math.pow(6, 3) / Math.pow(29, 3);
1690
+ var fn = (v) => Math.pow(v, 3) > e ? Math.pow(v, 3) : (116 * v - 16) / k$3;
1691
+ var convertLabToXyz50 = ({ l, a, b, alpha }) => {
1692
+ if (l === void 0) l = 0;
1693
+ if (a === void 0) a = 0;
1694
+ if (b === void 0) b = 0;
1695
+ let fy = (l + 16) / 116;
1696
+ let fx = a / 500 + fy;
1697
+ let fz = fy - b / 200;
1698
+ let res = {
1699
+ mode: "xyz50",
1700
+ x: fn(fx) * D50.X,
1701
+ y: fn(fy) * D50.Y,
1702
+ z: fn(fz) * D50.Z
1703
+ };
1704
+ if (alpha !== void 0) res.alpha = alpha;
1705
+ return res;
1706
+ };
1707
+ var convertXyz50ToRgb = ({ x, y, z, alpha }) => {
1708
+ if (x === void 0) x = 0;
1709
+ if (y === void 0) y = 0;
1710
+ if (z === void 0) z = 0;
1711
+ let res = convertLrgbToRgb({
1712
+ r: x * 3.1341359569958707 - y * 1.6173863321612538 - .4906619460083532 * z,
1713
+ g: x * -.978795502912089 + y * 1.916254567259524 + .03344273116131949 * z,
1714
+ b: x * .07195537988411677 - y * .2289768264158322 + 1.405386058324125 * z
1715
+ });
1716
+ if (alpha !== void 0) res.alpha = alpha;
1717
+ return res;
1718
+ };
1719
+ var convertLabToRgb = (lab) => convertXyz50ToRgb(convertLabToXyz50(lab));
1720
+ var convertRgbToXyz50 = (rgb) => {
1721
+ let { r, g, b, alpha } = convertRgbToLrgb(rgb);
1722
+ let res = {
1723
+ mode: "xyz50",
1724
+ x: .436065742824811 * r + .3851514688337912 * g + .14307845442264197 * b,
1725
+ y: .22249319175623702 * r + .7168870538238823 * g + .06061979053616537 * b,
1726
+ z: .013923904500943465 * r + .09708128566574634 * g + .7140993584005155 * b
1727
+ };
1728
+ if (alpha !== void 0) res.alpha = alpha;
1729
+ return res;
1730
+ };
1731
+ var f$1 = (value) => value > e ? Math.cbrt(value) : (k$3 * value + 16) / 116;
1732
+ var convertXyz50ToLab = ({ x, y, z, alpha }) => {
1733
+ if (x === void 0) x = 0;
1734
+ if (y === void 0) y = 0;
1735
+ if (z === void 0) z = 0;
1736
+ let f0 = f$1(x / D50.X);
1737
+ let f1 = f$1(y / D50.Y);
1738
+ let f2 = f$1(z / D50.Z);
1739
+ let res = {
1740
+ mode: "lab",
1741
+ l: 116 * f1 - 16,
1742
+ a: 500 * (f0 - f1),
1743
+ b: 200 * (f1 - f2)
1744
+ };
1745
+ if (alpha !== void 0) res.alpha = alpha;
1746
+ return res;
1747
+ };
1748
+ var convertRgbToLab = (rgb) => {
1749
+ let res = convertXyz50ToLab(convertRgbToXyz50(rgb));
1750
+ if (rgb.r === rgb.b && rgb.b === rgb.g) res.a = res.b = 0;
1751
+ return res;
1752
+ };
1753
+ function parseLab(color, parsed) {
1754
+ if (!parsed || parsed[0] !== "lab") return;
1755
+ const res = { mode: "lab" };
1756
+ const [, l, a, b, alpha] = parsed;
1757
+ if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return;
1758
+ if (l.type !== Tok.None) res.l = Math.min(Math.max(0, l.value), 100);
1759
+ if (a.type !== Tok.None) res.a = a.type === Tok.Number ? a.value : a.value * 125 / 100;
1760
+ if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value : b.value * 125 / 100;
1761
+ if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1762
+ return res;
1763
+ }
1764
+ var definition$15 = {
1765
+ mode: "lab",
1766
+ toMode: {
1767
+ xyz50: convertLabToXyz50,
1768
+ rgb: convertLabToRgb
1769
+ },
1770
+ fromMode: {
1771
+ xyz50: convertXyz50ToLab,
1772
+ rgb: convertRgbToLab
1773
+ },
1774
+ channels: [
1775
+ "l",
1776
+ "a",
1777
+ "b",
1778
+ "alpha"
1779
+ ],
1780
+ ranges: {
1781
+ l: [0, 100],
1782
+ a: [-125, 125],
1783
+ b: [-125, 125]
1784
+ },
1785
+ parse: [parseLab],
1786
+ serialize: (c) => `lab(${c.l !== void 0 ? c.l : "none"} ${c.a !== void 0 ? c.a : "none"} ${c.b !== void 0 ? c.b : "none"}${c.alpha < 1 ? ` / ${c.alpha}` : ""})`,
1787
+ interpolate: {
1788
+ l: interpolatorLinear,
1789
+ a: interpolatorLinear,
1790
+ b: interpolatorLinear,
1791
+ alpha: {
1792
+ use: interpolatorLinear,
1793
+ fixup: fixupAlpha
1794
+ }
1795
+ }
1796
+ };
1797
+ var definition$14 = {
1798
+ ...definition$15,
1799
+ mode: "lab65",
1800
+ parse: ["--lab-d65"],
1801
+ serialize: "--lab-d65",
1802
+ toMode: {
1803
+ xyz65: convertLab65ToXyz65,
1804
+ rgb: convertLab65ToRgb
1805
+ },
1806
+ fromMode: {
1807
+ xyz65: convertXyz65ToLab65,
1808
+ rgb: convertRgbToLab65
1809
+ },
1810
+ ranges: {
1811
+ l: [0, 100],
1812
+ a: [-125, 125],
1813
+ b: [-125, 125]
1814
+ }
1815
+ };
1816
+ function parseLch(color, parsed) {
1817
+ if (!parsed || parsed[0] !== "lch") return;
1818
+ const res = { mode: "lch" };
1819
+ const [, l, c, h, alpha] = parsed;
1820
+ if (l.type !== Tok.None) {
1821
+ if (l.type === Tok.Hue) return;
1822
+ res.l = Math.min(Math.max(0, l.value), 100);
1823
+ }
1824
+ if (c.type !== Tok.None) res.c = Math.max(0, c.type === Tok.Number ? c.value : c.value * 150 / 100);
1825
+ if (h.type !== Tok.None) {
1826
+ if (h.type === Tok.Percentage) return;
1827
+ res.h = h.value;
1828
+ }
1829
+ if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
1830
+ return res;
1831
+ }
1832
+ var definition$13 = {
1833
+ mode: "lch",
1834
+ toMode: {
1835
+ lab: convertLchToLab,
1836
+ rgb: (c) => convertLabToRgb(convertLchToLab(c))
1837
+ },
1838
+ fromMode: {
1839
+ rgb: (c) => convertLabToLch(convertRgbToLab(c)),
1840
+ lab: convertLabToLch
1841
+ },
1842
+ channels: [
1843
+ "l",
1844
+ "c",
1845
+ "h",
1846
+ "alpha"
1847
+ ],
1848
+ ranges: {
1849
+ l: [0, 100],
1850
+ c: [0, 150],
1851
+ h: [0, 360]
1852
+ },
1853
+ parse: [parseLch],
1854
+ serialize: (c) => `lch(${c.l !== void 0 ? c.l : "none"} ${c.c !== void 0 ? c.c : "none"} ${c.h !== void 0 ? c.h : "none"}${c.alpha < 1 ? ` / ${c.alpha}` : ""})`,
1855
+ interpolate: {
1856
+ h: {
1857
+ use: interpolatorLinear,
1858
+ fixup: fixupHueShorter
1859
+ },
1860
+ c: interpolatorLinear,
1861
+ l: interpolatorLinear,
1862
+ alpha: {
1863
+ use: interpolatorLinear,
1864
+ fixup: fixupAlpha
1865
+ }
1866
+ },
1867
+ difference: { h: differenceHueChroma },
1868
+ average: { h: averageAngle }
1869
+ };
1870
+ var definition$12 = {
1871
+ ...definition$13,
1872
+ mode: "lch65",
1873
+ parse: ["--lch-d65"],
1874
+ serialize: "--lch-d65",
1875
+ toMode: {
1876
+ lab65: (c) => convertLchToLab(c, "lab65"),
1877
+ rgb: (c) => convertLab65ToRgb(convertLchToLab(c, "lab65"))
1878
+ },
1879
+ fromMode: {
1880
+ rgb: (c) => convertLabToLch(convertRgbToLab65(c), "lch65"),
1881
+ lab65: (c) => convertLabToLch(c, "lch65")
1882
+ },
1883
+ ranges: {
1884
+ l: [0, 100],
1885
+ c: [0, 150],
1886
+ h: [0, 360]
1887
+ }
1888
+ };
1889
+ var convertLuvToLchuv = ({ l, u, v, alpha }) => {
1890
+ if (u === void 0) u = 0;
1891
+ if (v === void 0) v = 0;
1892
+ let c = Math.sqrt(u * u + v * v);
1893
+ let res = {
1894
+ mode: "lchuv",
1895
+ l,
1896
+ c
1897
+ };
1898
+ if (c) res.h = normalizeHue(Math.atan2(v, u) * 180 / Math.PI);
1899
+ if (alpha !== void 0) res.alpha = alpha;
1900
+ return res;
1901
+ };
1902
+ var convertLchuvToLuv = ({ l, c, h, alpha }) => {
1903
+ if (h === void 0) h = 0;
1904
+ let res = {
1905
+ mode: "luv",
1906
+ l,
1907
+ u: c ? c * Math.cos(h / 180 * Math.PI) : 0,
1908
+ v: c ? c * Math.sin(h / 180 * Math.PI) : 0
1909
+ };
1910
+ if (alpha !== void 0) res.alpha = alpha;
1911
+ return res;
1912
+ };
1913
+ const u_fn$1 = (x, y, z) => 4 * x / (x + 15 * y + 3 * z);
1914
+ const v_fn$1 = (x, y, z) => 9 * y / (x + 15 * y + 3 * z);
1915
+ const un$1 = u_fn$1(D50.X, D50.Y, D50.Z);
1916
+ const vn$1 = v_fn$1(D50.X, D50.Y, D50.Z);
1917
+ var l_fn = (value) => value <= e ? k$3 * value : 116 * Math.cbrt(value) - 16;
1918
+ var convertXyz50ToLuv = ({ x, y, z, alpha }) => {
1919
+ if (x === void 0) x = 0;
1920
+ if (y === void 0) y = 0;
1921
+ if (z === void 0) z = 0;
1922
+ let l = l_fn(y / D50.Y);
1923
+ let u = u_fn$1(x, y, z);
1924
+ let v = v_fn$1(x, y, z);
1925
+ if (!isFinite(u) || !isFinite(v)) l = u = v = 0;
1926
+ else {
1927
+ u = 13 * l * (u - un$1);
1928
+ v = 13 * l * (v - vn$1);
1929
+ }
1930
+ let res = {
1931
+ mode: "luv",
1932
+ l,
1933
+ u,
1934
+ v
1935
+ };
1936
+ if (alpha !== void 0) res.alpha = alpha;
1937
+ return res;
1938
+ };
1939
+ const u_fn = (x, y, z) => 4 * x / (x + 15 * y + 3 * z);
1940
+ const v_fn = (x, y, z) => 9 * y / (x + 15 * y + 3 * z);
1941
+ const un = u_fn(D50.X, D50.Y, D50.Z);
1942
+ const vn = v_fn(D50.X, D50.Y, D50.Z);
1943
+ var convertLuvToXyz50 = ({ l, u, v, alpha }) => {
1944
+ if (l === void 0) l = 0;
1945
+ if (l === 0) return {
1946
+ mode: "xyz50",
1947
+ x: 0,
1948
+ y: 0,
1949
+ z: 0
1950
+ };
1951
+ if (u === void 0) u = 0;
1952
+ if (v === void 0) v = 0;
1953
+ let up = u / (13 * l) + un;
1954
+ let vp = v / (13 * l) + vn;
1955
+ let y = D50.Y * (l <= 8 ? l / k$3 : Math.pow((l + 16) / 116, 3));
1956
+ let res = {
1957
+ mode: "xyz50",
1958
+ x: y * (9 * up) / (4 * vp),
1959
+ y,
1960
+ z: y * (12 - 3 * up - 20 * vp) / (4 * vp)
1961
+ };
1962
+ if (alpha !== void 0) res.alpha = alpha;
1963
+ return res;
1964
+ };
1965
+ var convertRgbToLchuv = (rgb) => convertLuvToLchuv(convertXyz50ToLuv(convertRgbToXyz50(rgb)));
1966
+ var convertLchuvToRgb = (lchuv) => convertXyz50ToRgb(convertLuvToXyz50(convertLchuvToLuv(lchuv)));
1967
+ var definition$11 = {
1968
+ mode: "lchuv",
1969
+ toMode: {
1970
+ luv: convertLchuvToLuv,
1971
+ rgb: convertLchuvToRgb
1972
+ },
1973
+ fromMode: {
1974
+ rgb: convertRgbToLchuv,
1975
+ luv: convertLuvToLchuv
1976
+ },
1977
+ channels: [
1978
+ "l",
1979
+ "c",
1980
+ "h",
1981
+ "alpha"
1982
+ ],
1983
+ parse: ["--lchuv"],
1984
+ serialize: "--lchuv",
1985
+ ranges: {
1986
+ l: [0, 100],
1987
+ c: [0, 176.956],
1988
+ h: [0, 360]
1989
+ },
1990
+ interpolate: {
1991
+ h: {
1992
+ use: interpolatorLinear,
1993
+ fixup: fixupHueShorter
1994
+ },
1995
+ c: interpolatorLinear,
1996
+ l: interpolatorLinear,
1997
+ alpha: {
1998
+ use: interpolatorLinear,
1999
+ fixup: fixupAlpha
2000
+ }
2001
+ },
2002
+ difference: { h: differenceHueChroma },
2003
+ average: { h: averageAngle }
2004
+ };
2005
+ var definition$10 = {
2006
+ ...definition$27,
2007
+ mode: "lrgb",
2008
+ toMode: { rgb: convertLrgbToRgb },
2009
+ fromMode: { rgb: convertRgbToLrgb },
2010
+ parse: ["srgb-linear"],
2011
+ serialize: "srgb-linear"
2012
+ };
2013
+ var definition$9 = {
2014
+ mode: "luv",
2015
+ toMode: {
2016
+ xyz50: convertLuvToXyz50,
2017
+ rgb: (luv) => convertXyz50ToRgb(convertLuvToXyz50(luv))
2018
+ },
2019
+ fromMode: {
2020
+ xyz50: convertXyz50ToLuv,
2021
+ rgb: (rgb) => convertXyz50ToLuv(convertRgbToXyz50(rgb))
2022
+ },
2023
+ channels: [
2024
+ "l",
2025
+ "u",
2026
+ "v",
2027
+ "alpha"
2028
+ ],
2029
+ parse: ["--luv"],
2030
+ serialize: "--luv",
2031
+ ranges: {
2032
+ l: [0, 100],
2033
+ u: [-84.936, 175.042],
2034
+ v: [-125.882, 87.243]
2035
+ },
2036
+ interpolate: {
2037
+ l: interpolatorLinear,
2038
+ u: interpolatorLinear,
2039
+ v: interpolatorLinear,
2040
+ alpha: {
2041
+ use: interpolatorLinear,
2042
+ fixup: fixupAlpha
2043
+ }
2044
+ }
2045
+ };
2046
+ var convertLrgbToOklab = ({ r, g, b, alpha }) => {
2047
+ if (r === void 0) r = 0;
2048
+ if (g === void 0) g = 0;
2049
+ if (b === void 0) b = 0;
2050
+ let L = Math.cbrt(.412221469470763 * r + .5363325372617348 * g + .0514459932675022 * b);
2051
+ let M = Math.cbrt(.2119034958178252 * r + .6806995506452344 * g + .1073969535369406 * b);
2052
+ let S = Math.cbrt(.0883024591900564 * r + .2817188391361215 * g + .6299787016738222 * b);
2053
+ let res = {
2054
+ mode: "oklab",
2055
+ l: .210454268309314 * L + .7936177747023054 * M - .0040720430116193 * S,
2056
+ a: 1.9779985324311684 * L - 2.42859224204858 * M + .450593709617411 * S,
2057
+ b: .0259040424655478 * L + .7827717124575296 * M - .8086757549230774 * S
2058
+ };
2059
+ if (alpha !== void 0) res.alpha = alpha;
2060
+ return res;
2061
+ };
2062
+ var convertRgbToOklab = (rgb) => {
2063
+ let res = convertLrgbToOklab(convertRgbToLrgb(rgb));
2064
+ if (rgb.r === rgb.b && rgb.b === rgb.g) res.a = res.b = 0;
2065
+ return res;
2066
+ };
2067
+ var convertOklabToLrgb = ({ l, a, b, alpha }) => {
2068
+ if (l === void 0) l = 0;
2069
+ if (a === void 0) a = 0;
2070
+ if (b === void 0) b = 0;
2071
+ let L = Math.pow(l + .3963377773761749 * a + .2158037573099136 * b, 3);
2072
+ let M = Math.pow(l - .1055613458156586 * a - .0638541728258133 * b, 3);
2073
+ let S = Math.pow(l - .0894841775298119 * a - 1.2914855480194092 * b, 3);
2074
+ let res = {
2075
+ mode: "lrgb",
2076
+ r: 4.076741636075957 * L - 3.3077115392580616 * M + .2309699031821044 * S,
2077
+ g: -1.2684379732850317 * L + 2.6097573492876887 * M - .3413193760026573 * S,
2078
+ b: -.0041960761386756 * L - .7034186179359362 * M + 1.7076146940746117 * S
2079
+ };
2080
+ if (alpha !== void 0) res.alpha = alpha;
2081
+ return res;
2082
+ };
2083
+ var convertOklabToRgb = (c) => convertLrgbToRgb(convertOklabToLrgb(c));
2084
+ function toe(x) {
2085
+ const k_1 = .206;
2086
+ const k_2 = .03;
2087
+ const k_3 = (1 + k_1) / (1 + k_2);
2088
+ 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));
2089
+ }
2090
+ function toe_inv(x) {
2091
+ const k_1 = .206;
2092
+ const k_2 = .03;
2093
+ const k_3 = (1 + k_1) / (1 + k_2);
2094
+ return (x * x + k_1 * x) / (k_3 * (x + k_2));
2095
+ }
2096
+ function compute_max_saturation(a, b) {
2097
+ let k0, k1, k2, k3, k4, wl, wm, ws;
2098
+ if (-1.88170328 * a - .80936493 * b > 1) {
2099
+ k0 = 1.19086277;
2100
+ k1 = 1.76576728;
2101
+ k2 = .59662641;
2102
+ k3 = .75515197;
2103
+ k4 = .56771245;
2104
+ wl = 4.0767416621;
2105
+ wm = -3.3077115913;
2106
+ ws = .2309699292;
2107
+ } else if (1.81444104 * a - 1.19445276 * b > 1) {
2108
+ k0 = .73956515;
2109
+ k1 = -.45954404;
2110
+ k2 = .08285427;
2111
+ k3 = .1254107;
2112
+ k4 = .14503204;
2113
+ wl = -1.2684380046;
2114
+ wm = 2.6097574011;
2115
+ ws = -.3413193965;
2116
+ } else {
2117
+ k0 = 1.35733652;
2118
+ k1 = -.00915799;
2119
+ k2 = -1.1513021;
2120
+ k3 = -.50559606;
2121
+ k4 = .00692167;
2122
+ wl = -.0041960863;
2123
+ wm = -.7034186147;
2124
+ ws = 1.707614701;
2125
+ }
2126
+ let S = k0 + k1 * a + k2 * b + k3 * a * a + k4 * a * b;
2127
+ let k_l = .3963377774 * a + .2158037573 * b;
2128
+ let k_m = -.1055613458 * a - .0638541728 * b;
2129
+ let k_s = -.0894841775 * a - 1.291485548 * b;
2130
+ {
2131
+ let l_ = 1 + S * k_l;
2132
+ let m_ = 1 + S * k_m;
2133
+ let s_ = 1 + S * k_s;
2134
+ let l = l_ * l_ * l_;
2135
+ let m = m_ * m_ * m_;
2136
+ let s = s_ * s_ * s_;
2137
+ let l_dS = 3 * k_l * l_ * l_;
2138
+ let m_dS = 3 * k_m * m_ * m_;
2139
+ let s_dS = 3 * k_s * s_ * s_;
2140
+ let l_dS2 = 6 * k_l * k_l * l_;
2141
+ let m_dS2 = 6 * k_m * k_m * m_;
2142
+ let s_dS2 = 6 * k_s * k_s * s_;
2143
+ let f = wl * l + wm * m + ws * s;
2144
+ let f1 = wl * l_dS + wm * m_dS + ws * s_dS;
2145
+ let f2 = wl * l_dS2 + wm * m_dS2 + ws * s_dS2;
2146
+ S = S - f * f1 / (f1 * f1 - .5 * f * f2);
2147
+ }
2148
+ return S;
2149
+ }
2150
+ function find_cusp(a, b) {
2151
+ let S_cusp = compute_max_saturation(a, b);
2152
+ let rgb = convertOklabToLrgb({
2153
+ l: 1,
2154
+ a: S_cusp * a,
2155
+ b: S_cusp * b
2156
+ });
2157
+ let L_cusp = Math.cbrt(1 / Math.max(rgb.r, rgb.g, rgb.b));
2158
+ return [L_cusp, L_cusp * S_cusp];
2159
+ }
2160
+ function find_gamut_intersection(a, b, L1, C1, L0, cusp = null) {
2161
+ if (!cusp) cusp = find_cusp(a, b);
2162
+ let t;
2163
+ if ((L1 - L0) * cusp[1] - (cusp[0] - L0) * C1 <= 0) t = cusp[1] * L0 / (C1 * cusp[0] + cusp[1] * (L0 - L1));
2164
+ else {
2165
+ t = cusp[1] * (L0 - 1) / (C1 * (cusp[0] - 1) + cusp[1] * (L0 - L1));
2166
+ {
2167
+ let dL = L1 - L0;
2168
+ let dC = C1;
2169
+ let k_l = .3963377774 * a + .2158037573 * b;
2170
+ let k_m = -.1055613458 * a - .0638541728 * b;
2171
+ let k_s = -.0894841775 * a - 1.291485548 * b;
2172
+ let l_dt = dL + dC * k_l;
2173
+ let m_dt = dL + dC * k_m;
2174
+ let s_dt = dL + dC * k_s;
2175
+ {
2176
+ let L = L0 * (1 - t) + t * L1;
2177
+ let C = t * C1;
2178
+ let l_ = L + C * k_l;
2179
+ let m_ = L + C * k_m;
2180
+ let s_ = L + C * k_s;
2181
+ let l = l_ * l_ * l_;
2182
+ let m = m_ * m_ * m_;
2183
+ let s = s_ * s_ * s_;
2184
+ let ldt = 3 * l_dt * l_ * l_;
2185
+ let mdt = 3 * m_dt * m_ * m_;
2186
+ let sdt = 3 * s_dt * s_ * s_;
2187
+ let ldt2 = 6 * l_dt * l_dt * l_;
2188
+ let mdt2 = 6 * m_dt * m_dt * m_;
2189
+ let sdt2 = 6 * s_dt * s_dt * s_;
2190
+ let r = 4.0767416621 * l - 3.3077115913 * m + .2309699292 * s - 1;
2191
+ let r1 = 4.0767416621 * ldt - 3.3077115913 * mdt + .2309699292 * sdt;
2192
+ let r2 = 4.0767416621 * ldt2 - 3.3077115913 * mdt2 + .2309699292 * sdt2;
2193
+ let u_r = r1 / (r1 * r1 - .5 * r * r2);
2194
+ let t_r = -r * u_r;
2195
+ let g = -1.2684380046 * l + 2.6097574011 * m - .3413193965 * s - 1;
2196
+ let g1 = -1.2684380046 * ldt + 2.6097574011 * mdt - .3413193965 * sdt;
2197
+ let g2 = -1.2684380046 * ldt2 + 2.6097574011 * mdt2 - .3413193965 * sdt2;
2198
+ let u_g = g1 / (g1 * g1 - .5 * g * g2);
2199
+ let t_g = -g * u_g;
2200
+ let b = -.0041960863 * l - .7034186147 * m + 1.707614701 * s - 1;
2201
+ let b1 = -.0041960863 * ldt - .7034186147 * mdt + 1.707614701 * sdt;
2202
+ let b2 = -.0041960863 * ldt2 - .7034186147 * mdt2 + 1.707614701 * sdt2;
2203
+ let u_b = b1 / (b1 * b1 - .5 * b * b2);
2204
+ let t_b = -b * u_b;
2205
+ t_r = u_r >= 0 ? t_r : 1e6;
2206
+ t_g = u_g >= 0 ? t_g : 1e6;
2207
+ t_b = u_b >= 0 ? t_b : 1e6;
2208
+ t += Math.min(t_r, Math.min(t_g, t_b));
2209
+ }
2210
+ }
2211
+ }
2212
+ return t;
2213
+ }
2214
+ function get_ST_max(a_, b_, cusp = null) {
2215
+ if (!cusp) cusp = find_cusp(a_, b_);
2216
+ let L = cusp[0];
2217
+ let C = cusp[1];
2218
+ return [C / L, C / (1 - L)];
2219
+ }
2220
+ function get_Cs(L, a_, b_) {
2221
+ let cusp = find_cusp(a_, b_);
2222
+ let C_max = find_gamut_intersection(a_, b_, L, 1, L, cusp);
2223
+ let ST_max = get_ST_max(a_, b_, cusp);
2224
+ 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_))));
2225
+ let T_mid = .11239642 + 1 / (1.6132032 - .68124379 * b_ + a_ * (.40370612 + .90148123 * b_ + a_ * (-.27087943 + .6122399 * b_ + a_ * (.00299215 - .45399568 * b_ - .14661872 * a_))));
2226
+ let k = C_max / Math.min(L * ST_max[0], (1 - L) * ST_max[1]);
2227
+ let C_a = L * S_mid;
2228
+ let C_b = (1 - L) * T_mid;
2229
+ let C_mid = .9 * k * Math.sqrt(Math.sqrt(1 / (1 / (C_a * C_a * C_a * C_a) + 1 / (C_b * C_b * C_b * C_b))));
2230
+ C_a = L * .4;
2231
+ C_b = (1 - L) * .8;
2232
+ return [
2233
+ Math.sqrt(1 / (1 / (C_a * C_a) + 1 / (C_b * C_b))),
2234
+ C_mid,
2235
+ C_max
2236
+ ];
2237
+ }
2238
+ function convertOklabToOkhsl(lab) {
2239
+ const l = lab.l !== void 0 ? lab.l : 0;
2240
+ const a = lab.a !== void 0 ? lab.a : 0;
2241
+ const b = lab.b !== void 0 ? lab.b : 0;
2242
+ const ret = {
2243
+ mode: "okhsl",
2244
+ l: toe(l)
2245
+ };
2246
+ if (lab.alpha !== void 0) ret.alpha = lab.alpha;
2247
+ let c = Math.sqrt(a * a + b * b);
2248
+ if (!c) {
2249
+ ret.s = 0;
2250
+ return ret;
2251
+ }
2252
+ let [C_0, C_mid, C_max] = get_Cs(l, a / c, b / c);
2253
+ let s;
2254
+ if (c < C_mid) {
2255
+ let k_0 = 0;
2256
+ let k_1 = .8 * C_0;
2257
+ let k_2 = 1 - k_1 / C_mid;
2258
+ s = (c - k_0) / (k_1 + k_2 * (c - k_0)) * .8;
2259
+ } else {
2260
+ let k_0 = C_mid;
2261
+ let k_1 = .2 * C_mid * C_mid * 1.25 * 1.25 / C_0;
2262
+ let k_2 = 1 - k_1 / (C_max - C_mid);
2263
+ s = .8 + .2 * ((c - k_0) / (k_1 + k_2 * (c - k_0)));
2264
+ }
2265
+ if (s) {
2266
+ ret.s = s;
2267
+ ret.h = normalizeHue(Math.atan2(b, a) * 180 / Math.PI);
2268
+ }
2269
+ return ret;
2270
+ }
2271
+ function convertOkhslToOklab(hsl) {
2272
+ let h = hsl.h !== void 0 ? hsl.h : 0;
2273
+ let s = hsl.s !== void 0 ? hsl.s : 0;
2274
+ let l = hsl.l !== void 0 ? hsl.l : 0;
2275
+ const ret = {
2276
+ mode: "oklab",
2277
+ l: toe_inv(l)
2278
+ };
2279
+ if (hsl.alpha !== void 0) ret.alpha = hsl.alpha;
2280
+ if (!s || l === 1) {
2281
+ ret.a = ret.b = 0;
2282
+ return ret;
2283
+ }
2284
+ let a_ = Math.cos(h / 180 * Math.PI);
2285
+ let b_ = Math.sin(h / 180 * Math.PI);
2286
+ let [C_0, C_mid, C_max] = get_Cs(ret.l, a_, b_);
2287
+ let t, k_0, k_1, k_2;
2288
+ if (s < .8) {
2289
+ t = 1.25 * s;
2290
+ k_0 = 0;
2291
+ k_1 = .8 * C_0;
2292
+ k_2 = 1 - k_1 / C_mid;
2293
+ } else {
2294
+ t = 5 * (s - .8);
2295
+ k_0 = C_mid;
2296
+ k_1 = .2 * C_mid * C_mid * 1.25 * 1.25 / C_0;
2297
+ k_2 = 1 - k_1 / (C_max - C_mid);
2298
+ }
2299
+ let C = k_0 + t * k_1 / (1 - k_2 * t);
2300
+ ret.a = C * a_;
2301
+ ret.b = C * b_;
2302
+ return ret;
2303
+ }
2304
+ var modeOkhsl = {
2305
+ ...definition$21,
2306
+ mode: "okhsl",
2307
+ channels: [
2308
+ "h",
2309
+ "s",
2310
+ "l",
2311
+ "alpha"
2312
+ ],
2313
+ parse: ["--okhsl"],
2314
+ serialize: "--okhsl",
2315
+ fromMode: {
2316
+ oklab: convertOklabToOkhsl,
2317
+ rgb: (c) => convertOklabToOkhsl(convertRgbToOklab(c))
2318
+ },
2319
+ toMode: {
2320
+ oklab: convertOkhslToOklab,
2321
+ rgb: (c) => convertOklabToRgb(convertOkhslToOklab(c))
2322
+ }
2323
+ };
2324
+ function convertOklabToOkhsv(lab) {
2325
+ let l = lab.l !== void 0 ? lab.l : 0;
2326
+ let a = lab.a !== void 0 ? lab.a : 0;
2327
+ let b = lab.b !== void 0 ? lab.b : 0;
2328
+ let c = Math.sqrt(a * a + b * b);
2329
+ let a_ = c ? a / c : 1;
2330
+ let b_ = c ? b / c : 1;
2331
+ let [S_max, T] = get_ST_max(a_, b_);
2332
+ let S_0 = .5;
2333
+ let k = 1 - S_0 / S_max;
2334
+ let t = T / (c + l * T);
2335
+ let L_v = t * l;
2336
+ let C_v = t * c;
2337
+ let L_vt = toe_inv(L_v);
2338
+ let C_vt = C_v * L_vt / L_v;
2339
+ let rgb_scale = convertOklabToLrgb({
2340
+ l: L_vt,
2341
+ a: a_ * C_vt,
2342
+ b: b_ * C_vt
2343
+ });
2344
+ let scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
2345
+ l = l / scale_L;
2346
+ c = c / scale_L * toe(l) / l;
2347
+ l = toe(l);
2348
+ const ret = {
2349
+ mode: "okhsv",
2350
+ s: c ? (S_0 + T) * C_v / (T * S_0 + T * k * C_v) : 0,
2351
+ v: l ? l / L_v : 0
2352
+ };
2353
+ if (ret.s) ret.h = normalizeHue(Math.atan2(b, a) * 180 / Math.PI);
2354
+ if (lab.alpha !== void 0) ret.alpha = lab.alpha;
2355
+ return ret;
2356
+ }
2357
+ function convertOkhsvToOklab(hsv) {
2358
+ const ret = { mode: "oklab" };
2359
+ if (hsv.alpha !== void 0) ret.alpha = hsv.alpha;
2360
+ const h = hsv.h !== void 0 ? hsv.h : 0;
2361
+ const s = hsv.s !== void 0 ? hsv.s : 0;
2362
+ const v = hsv.v !== void 0 ? hsv.v : 0;
2363
+ const a_ = Math.cos(h / 180 * Math.PI);
2364
+ const b_ = Math.sin(h / 180 * Math.PI);
2365
+ const [S_max, T] = get_ST_max(a_, b_);
2366
+ const S_0 = .5;
2367
+ const k = 1 - S_0 / S_max;
2368
+ const L_v = 1 - s * S_0 / (S_0 + T - T * k * s);
2369
+ const C_v = s * T * S_0 / (S_0 + T - T * k * s);
2370
+ const L_vt = toe_inv(L_v);
2371
+ const C_vt = C_v * L_vt / L_v;
2372
+ const rgb_scale = convertOklabToLrgb({
2373
+ l: L_vt,
2374
+ a: a_ * C_vt,
2375
+ b: b_ * C_vt
2376
+ });
2377
+ const scale_L = Math.cbrt(1 / Math.max(rgb_scale.r, rgb_scale.g, rgb_scale.b, 0));
2378
+ const L_new = toe_inv(v * L_v);
2379
+ const C = C_v * L_new / L_v;
2380
+ ret.l = L_new * scale_L;
2381
+ ret.a = C * a_ * scale_L;
2382
+ ret.b = C * b_ * scale_L;
2383
+ return ret;
2384
+ }
2385
+ var modeOkhsv = {
2386
+ ...definition$20,
2387
+ mode: "okhsv",
2388
+ channels: [
2389
+ "h",
2390
+ "s",
2391
+ "v",
2392
+ "alpha"
2393
+ ],
2394
+ parse: ["--okhsv"],
2395
+ serialize: "--okhsv",
2396
+ fromMode: {
2397
+ oklab: convertOklabToOkhsv,
2398
+ rgb: (c) => convertOklabToOkhsv(convertRgbToOklab(c))
2399
+ },
2400
+ toMode: {
2401
+ oklab: convertOkhsvToOklab,
2402
+ rgb: (c) => convertOklabToRgb(convertOkhsvToOklab(c))
2403
+ }
2404
+ };
2405
+ function parseOklab(color, parsed) {
2406
+ if (!parsed || parsed[0] !== "oklab") return;
2407
+ const res = { mode: "oklab" };
2408
+ const [, l, a, b, alpha] = parsed;
2409
+ if (l.type === Tok.Hue || a.type === Tok.Hue || b.type === Tok.Hue) return;
2410
+ if (l.type !== Tok.None) res.l = Math.min(Math.max(0, l.type === Tok.Number ? l.value : l.value / 100), 1);
2411
+ if (a.type !== Tok.None) res.a = a.type === Tok.Number ? a.value : a.value * .4 / 100;
2412
+ if (b.type !== Tok.None) res.b = b.type === Tok.Number ? b.value : b.value * .4 / 100;
2413
+ if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
2414
+ return res;
2415
+ }
2416
+ var definition$8 = {
2417
+ ...definition$15,
2418
+ mode: "oklab",
2419
+ toMode: {
2420
+ lrgb: convertOklabToLrgb,
2421
+ rgb: convertOklabToRgb
2422
+ },
2423
+ fromMode: {
2424
+ lrgb: convertLrgbToOklab,
2425
+ rgb: convertRgbToOklab
2426
+ },
2427
+ ranges: {
2428
+ l: [0, 1],
2429
+ a: [-.4, .4],
2430
+ b: [-.4, .4]
2431
+ },
2432
+ parse: [parseOklab],
2433
+ serialize: (c) => `oklab(${c.l !== void 0 ? c.l : "none"} ${c.a !== void 0 ? c.a : "none"} ${c.b !== void 0 ? c.b : "none"}${c.alpha < 1 ? ` / ${c.alpha}` : ""})`
2434
+ };
2435
+ function parseOklch(color, parsed) {
2436
+ if (!parsed || parsed[0] !== "oklch") return;
2437
+ const res = { mode: "oklch" };
2438
+ const [, l, c, h, alpha] = parsed;
2439
+ if (l.type !== Tok.None) {
2440
+ if (l.type === Tok.Hue) return;
2441
+ res.l = Math.min(Math.max(0, l.type === Tok.Number ? l.value : l.value / 100), 1);
2442
+ }
2443
+ if (c.type !== Tok.None) res.c = Math.max(0, c.type === Tok.Number ? c.value : c.value * .4 / 100);
2444
+ if (h.type !== Tok.None) {
2445
+ if (h.type === Tok.Percentage) return;
2446
+ res.h = h.value;
2447
+ }
2448
+ if (alpha.type !== Tok.None) res.alpha = Math.min(1, Math.max(0, alpha.type === Tok.Number ? alpha.value : alpha.value / 100));
2449
+ return res;
2450
+ }
2451
+ var definition$7 = {
2452
+ ...definition$13,
2453
+ mode: "oklch",
2454
+ toMode: {
2455
+ oklab: (c) => convertLchToLab(c, "oklab"),
2456
+ rgb: (c) => convertOklabToRgb(convertLchToLab(c, "oklab"))
2457
+ },
2458
+ fromMode: {
2459
+ rgb: (c) => convertLabToLch(convertRgbToOklab(c), "oklch"),
2460
+ oklab: (c) => convertLabToLch(c, "oklch")
2461
+ },
2462
+ parse: [parseOklch],
2463
+ serialize: (c) => `oklch(${c.l !== void 0 ? c.l : "none"} ${c.c !== void 0 ? c.c : "none"} ${c.h !== void 0 ? c.h : "none"}${c.alpha < 1 ? ` / ${c.alpha}` : ""})`,
2464
+ ranges: {
2465
+ l: [0, 1],
2466
+ c: [0, .4],
2467
+ h: [0, 360]
2468
+ }
2469
+ };
2470
+ var convertP3ToXyz65 = (rgb) => {
2471
+ let { r, g, b, alpha } = convertRgbToLrgb(rgb);
2472
+ let res = {
2473
+ mode: "xyz65",
2474
+ x: .486570948648216 * r + .265667693169093 * g + .1982172852343625 * b,
2475
+ y: .2289745640697487 * r + .6917385218365062 * g + .079286914093745 * b,
2476
+ z: 0 * r + .0451133818589026 * g + 1.043944368900976 * b
2477
+ };
2478
+ if (alpha !== void 0) res.alpha = alpha;
2479
+ return res;
2480
+ };
2481
+ var convertXyz65ToP3 = ({ x, y, z, alpha }) => {
2482
+ if (x === void 0) x = 0;
2483
+ if (y === void 0) y = 0;
2484
+ if (z === void 0) z = 0;
2485
+ let res = convertLrgbToRgb({
2486
+ r: x * 2.4934969119414263 - y * .9313836179191242 - .402710784450717 * z,
2487
+ g: x * -.8294889695615749 + y * 1.7626640603183465 + .0236246858419436 * z,
2488
+ b: x * .0358458302437845 - y * .0761723892680418 + .9568845240076871 * z
2489
+ }, "p3");
2490
+ if (alpha !== void 0) res.alpha = alpha;
2491
+ return res;
2492
+ };
2493
+ var definition$6 = {
2494
+ ...definition$27,
2495
+ mode: "p3",
2496
+ parse: ["display-p3"],
2497
+ serialize: "display-p3",
2498
+ fromMode: {
2499
+ rgb: (color) => convertXyz65ToP3(convertRgbToXyz65(color)),
2500
+ xyz65: convertXyz65ToP3
2501
+ },
2502
+ toMode: {
2503
+ rgb: (color) => convertXyz65ToRgb(convertP3ToXyz65(color)),
2504
+ xyz65: convertP3ToXyz65
2505
+ }
2506
+ };
2507
+ var gamma$1 = (v) => {
2508
+ let abs = Math.abs(v);
2509
+ if (abs >= 1 / 512) return Math.sign(v) * Math.pow(abs, 1 / 1.8);
2510
+ return 16 * v;
2511
+ };
2512
+ var convertXyz50ToProphoto = ({ x, y, z, alpha }) => {
2513
+ if (x === void 0) x = 0;
2514
+ if (y === void 0) y = 0;
2515
+ if (z === void 0) z = 0;
2516
+ let res = {
2517
+ mode: "prophoto",
2518
+ r: gamma$1(x * 1.3457868816471585 - y * .2555720873797946 - .0511018649755453 * z),
2519
+ g: gamma$1(x * -.5446307051249019 + y * 1.5082477428451466 + .0205274474364214 * z),
2520
+ b: gamma$1(x * 0 + y * 0 + 1.2119675456389452 * z)
2521
+ };
2522
+ if (alpha !== void 0) res.alpha = alpha;
2523
+ return res;
2524
+ };
2525
+ var linearize$1 = (v = 0) => {
2526
+ let abs = Math.abs(v);
2527
+ if (abs >= 16 / 512) return Math.sign(v) * Math.pow(abs, 1.8);
2528
+ return v / 16;
2529
+ };
2530
+ var convertProphotoToXyz50 = (prophoto) => {
2531
+ let r = linearize$1(prophoto.r);
2532
+ let g = linearize$1(prophoto.g);
2533
+ let b = linearize$1(prophoto.b);
2534
+ let res = {
2535
+ mode: "xyz50",
2536
+ x: .7977666449006423 * r + .1351812974005331 * g + .0313477341283922 * b,
2537
+ y: .2880748288194013 * r + .7118352342418731 * g + 899369387256e-16 * b,
2538
+ z: 0 * r + 0 * g + .8251046025104602 * b
2539
+ };
2540
+ if (prophoto.alpha !== void 0) res.alpha = prophoto.alpha;
2541
+ return res;
2542
+ };
2543
+ var definition$5 = {
2544
+ ...definition$27,
2545
+ mode: "prophoto",
2546
+ parse: ["prophoto-rgb"],
2547
+ serialize: "prophoto-rgb",
2548
+ fromMode: {
2549
+ xyz50: convertXyz50ToProphoto,
2550
+ rgb: (color) => convertXyz50ToProphoto(convertRgbToXyz50(color))
2551
+ },
2552
+ toMode: {
2553
+ xyz50: convertProphotoToXyz50,
2554
+ rgb: (color) => convertXyz50ToRgb(convertProphotoToXyz50(color))
2555
+ }
2556
+ };
2557
+ var α$1 = 1.09929682680944;
2558
+ var β$1 = .018053968510807;
2559
+ var gamma = (v) => {
2560
+ const abs = Math.abs(v);
2561
+ if (abs > β$1) return (Math.sign(v) || 1) * (α$1 * Math.pow(abs, .45) - (α$1 - 1));
2562
+ return 4.5 * v;
2563
+ };
2564
+ var convertXyz65ToRec2020 = ({ x, y, z, alpha }) => {
2565
+ if (x === void 0) x = 0;
2566
+ if (y === void 0) y = 0;
2567
+ if (z === void 0) z = 0;
2568
+ let res = {
2569
+ mode: "rec2020",
2570
+ r: gamma(x * 1.7166511879712683 - y * .3556707837763925 - .2533662813736599 * z),
2571
+ g: gamma(x * -.6666843518324893 + y * 1.6164812366349395 + .0157685458139111 * z),
2572
+ b: gamma(x * .0176398574453108 - y * .0427706132578085 + .9421031212354739 * z)
2573
+ };
2574
+ if (alpha !== void 0) res.alpha = alpha;
2575
+ return res;
2576
+ };
2577
+ var α = 1.09929682680944;
2578
+ var β = .018053968510807;
2579
+ var linearize = (v = 0) => {
2580
+ let abs = Math.abs(v);
2581
+ if (abs < β * 4.5) return v / 4.5;
2582
+ return (Math.sign(v) || 1) * Math.pow((abs + α - 1) / α, 1 / .45);
2583
+ };
2584
+ var convertRec2020ToXyz65 = (rec2020) => {
2585
+ let r = linearize(rec2020.r);
2586
+ let g = linearize(rec2020.g);
2587
+ let b = linearize(rec2020.b);
2588
+ let res = {
2589
+ mode: "xyz65",
2590
+ x: .6369580483012911 * r + .1446169035862083 * g + .1688809751641721 * b,
2591
+ y: .262700212011267 * r + .6779980715188708 * g + .059301716469862 * b,
2592
+ z: 0 * r + .0280726930490874 * g + 1.0609850577107909 * b
2593
+ };
2594
+ if (rec2020.alpha !== void 0) res.alpha = rec2020.alpha;
2595
+ return res;
2596
+ };
2597
+ var definition$4 = {
2598
+ ...definition$27,
2599
+ mode: "rec2020",
2600
+ fromMode: {
2601
+ xyz65: convertXyz65ToRec2020,
2602
+ rgb: (color) => convertXyz65ToRec2020(convertRgbToXyz65(color))
2603
+ },
2604
+ toMode: {
2605
+ xyz65: convertRec2020ToXyz65,
2606
+ rgb: (color) => convertXyz65ToRgb(convertRec2020ToXyz65(color))
2607
+ },
2608
+ parse: ["rec2020"],
2609
+ serialize: "rec2020"
2610
+ };
2611
+ const bias = .0037930732552754493;
2612
+ const bias_cbrt = Math.cbrt(bias);
2613
+ var transfer$1 = (v) => Math.cbrt(v) - bias_cbrt;
2614
+ var convertRgbToXyb = (color) => {
2615
+ const { r, g, b, alpha } = convertRgbToLrgb(color);
2616
+ const l = transfer$1(.3 * r + .622 * g + .078 * b + bias);
2617
+ const m = transfer$1(.23 * r + .692 * g + .078 * b + bias);
2618
+ const s = transfer$1(.2434226892454782 * r + .2047674442449682 * g + .5518098665095535 * b + bias);
2619
+ const res = {
2620
+ mode: "xyb",
2621
+ x: (l - m) / 2,
2622
+ y: (l + m) / 2,
2623
+ b: s - (l + m) / 2
2624
+ };
2625
+ if (alpha !== void 0) res.alpha = alpha;
2626
+ return res;
2627
+ };
2628
+ var transfer = (v) => Math.pow(v + bias_cbrt, 3);
2629
+ var convertXybToRgb = ({ x, y, b, alpha }) => {
2630
+ if (x === void 0) x = 0;
2631
+ if (y === void 0) y = 0;
2632
+ if (b === void 0) b = 0;
2633
+ const l = transfer(x + y) - bias;
2634
+ const m = transfer(y - x) - bias;
2635
+ const s = transfer(b + y) - bias;
2636
+ const res = convertLrgbToRgb({
2637
+ r: 11.031566904639861 * l - 9.866943908131562 * m - .16462299650829934 * s,
2638
+ g: -3.2541473810744237 * l + 4.418770377582723 * m - .16462299650829934 * s,
2639
+ b: -3.6588512867136815 * l + 2.7129230459360922 * m + 1.9459282407775895 * s
2640
+ });
2641
+ if (alpha !== void 0) res.alpha = alpha;
2642
+ return res;
2643
+ };
2644
+ var definition$3 = {
2645
+ mode: "xyb",
2646
+ channels: [
2647
+ "x",
2648
+ "y",
2649
+ "b",
2650
+ "alpha"
2651
+ ],
2652
+ parse: ["--xyb"],
2653
+ serialize: "--xyb",
2654
+ toMode: { rgb: convertXybToRgb },
2655
+ fromMode: { rgb: convertRgbToXyb },
2656
+ ranges: {
2657
+ x: [-.0154, .0281],
2658
+ y: [0, .8453],
2659
+ b: [-.2778, .388]
2660
+ },
2661
+ interpolate: {
2662
+ x: interpolatorLinear,
2663
+ y: interpolatorLinear,
2664
+ b: interpolatorLinear,
2665
+ alpha: {
2666
+ use: interpolatorLinear,
2667
+ fixup: fixupAlpha
2668
+ }
2669
+ }
2670
+ };
2671
+ var definition$2 = {
2672
+ mode: "xyz50",
2673
+ parse: ["xyz-d50"],
2674
+ serialize: "xyz-d50",
2675
+ toMode: {
2676
+ rgb: convertXyz50ToRgb,
2677
+ lab: convertXyz50ToLab
2678
+ },
2679
+ fromMode: {
2680
+ rgb: convertRgbToXyz50,
2681
+ lab: convertLabToXyz50
2682
+ },
2683
+ channels: [
2684
+ "x",
2685
+ "y",
2686
+ "z",
2687
+ "alpha"
2688
+ ],
2689
+ ranges: {
2690
+ x: [0, .964],
2691
+ y: [0, .999],
2692
+ z: [0, .825]
2693
+ },
2694
+ interpolate: {
2695
+ x: interpolatorLinear,
2696
+ y: interpolatorLinear,
2697
+ z: interpolatorLinear,
2698
+ alpha: {
2699
+ use: interpolatorLinear,
2700
+ fixup: fixupAlpha
2701
+ }
2702
+ }
2703
+ };
2704
+ var convertXyz65ToXyz50 = (xyz65) => {
2705
+ let { x, y, z, alpha } = xyz65;
2706
+ if (x === void 0) x = 0;
2707
+ if (y === void 0) y = 0;
2708
+ if (z === void 0) z = 0;
2709
+ let res = {
2710
+ mode: "xyz50",
2711
+ x: 1.0479298208405488 * x + .0229467933410191 * y - .0501922295431356 * z,
2712
+ y: .0296278156881593 * x + .990434484573249 * y - .0170738250293851 * z,
2713
+ z: -.0092430581525912 * x + .0150551448965779 * y + .7518742899580008 * z
2714
+ };
2715
+ if (alpha !== void 0) res.alpha = alpha;
2716
+ return res;
2717
+ };
2718
+ var convertXyz50ToXyz65 = (xyz50) => {
2719
+ let { x, y, z, alpha } = xyz50;
2720
+ if (x === void 0) x = 0;
2721
+ if (y === void 0) y = 0;
2722
+ if (z === void 0) z = 0;
2723
+ let res = {
2724
+ mode: "xyz65",
2725
+ x: .9554734527042182 * x - .0230985368742614 * y + .0632593086610217 * z,
2726
+ y: -.0283697069632081 * x + 1.0099954580058226 * y + .021041398966943 * z,
2727
+ z: .0123140016883199 * x - .0205076964334779 * y + 1.3303659366080753 * z
2728
+ };
2729
+ if (alpha !== void 0) res.alpha = alpha;
2730
+ return res;
2731
+ };
2732
+ var definition$1 = {
2733
+ mode: "xyz65",
2734
+ toMode: {
2735
+ rgb: convertXyz65ToRgb,
2736
+ xyz50: convertXyz65ToXyz50
2737
+ },
2738
+ fromMode: {
2739
+ rgb: convertRgbToXyz65,
2740
+ xyz50: convertXyz50ToXyz65
2741
+ },
2742
+ ranges: {
2743
+ x: [0, .95],
2744
+ y: [0, 1],
2745
+ z: [0, 1.088]
2746
+ },
2747
+ channels: [
2748
+ "x",
2749
+ "y",
2750
+ "z",
2751
+ "alpha"
2752
+ ],
2753
+ parse: ["xyz", "xyz-d65"],
2754
+ serialize: "xyz-d65",
2755
+ interpolate: {
2756
+ x: interpolatorLinear,
2757
+ y: interpolatorLinear,
2758
+ z: interpolatorLinear,
2759
+ alpha: {
2760
+ use: interpolatorLinear,
2761
+ fixup: fixupAlpha
2762
+ }
2763
+ }
2764
+ };
2765
+ var convertRgbToYiq = ({ r, g, b, alpha }) => {
2766
+ if (r === void 0) r = 0;
2767
+ if (g === void 0) g = 0;
2768
+ if (b === void 0) b = 0;
2769
+ const res = {
2770
+ mode: "yiq",
2771
+ y: .29889531 * r + .58662247 * g + .11448223 * b,
2772
+ i: .59597799 * r - .2741761 * g - .32180189 * b,
2773
+ q: .21147017 * r - .52261711 * g + .31114694 * b
2774
+ };
2775
+ if (alpha !== void 0) res.alpha = alpha;
2776
+ return res;
2777
+ };
2778
+ var convertYiqToRgb = ({ y, i, q, alpha }) => {
2779
+ if (y === void 0) y = 0;
2780
+ if (i === void 0) i = 0;
2781
+ if (q === void 0) q = 0;
2782
+ const res = {
2783
+ mode: "rgb",
2784
+ r: y + .95608445 * i + .6208885 * q,
2785
+ g: y - .27137664 * i - .6486059 * q,
2786
+ b: y - 1.10561724 * i + 1.70250126 * q
2787
+ };
2788
+ if (alpha !== void 0) res.alpha = alpha;
2789
+ return res;
2790
+ };
2791
+ var definition = {
2792
+ mode: "yiq",
2793
+ toMode: { rgb: convertYiqToRgb },
2794
+ fromMode: { rgb: convertRgbToYiq },
2795
+ channels: [
2796
+ "y",
2797
+ "i",
2798
+ "q",
2799
+ "alpha"
2800
+ ],
2801
+ parse: ["--yiq"],
2802
+ serialize: "--yiq",
2803
+ ranges: {
2804
+ i: [-.595, .595],
2805
+ q: [-.522, .522]
2806
+ },
2807
+ interpolate: {
2808
+ y: interpolatorLinear,
2809
+ i: interpolatorLinear,
2810
+ q: interpolatorLinear,
2811
+ alpha: {
2812
+ use: interpolatorLinear,
2813
+ fixup: fixupAlpha
2814
+ }
2815
+ }
2816
+ };
2817
+ useMode(definition$26);
2818
+ useMode(definition$25);
2819
+ useMode(definition$24);
2820
+ useMode(definition$23);
2821
+ useMode(definition$22);
2822
+ useMode(definition$21);
2823
+ useMode(definition$20);
2824
+ useMode(definition$19);
2825
+ useMode(definition$18);
2826
+ useMode(definition$17);
2827
+ useMode(definition$16);
2828
+ useMode(definition$15);
2829
+ useMode(definition$14);
2830
+ useMode(definition$13);
2831
+ useMode(definition$12);
2832
+ useMode(definition$11);
2833
+ useMode(definition$10);
2834
+ useMode(definition$9);
2835
+ useMode(modeOkhsl);
2836
+ useMode(modeOkhsv);
2837
+ useMode(definition$8);
2838
+ useMode(definition$7);
2839
+ useMode(definition$6);
2840
+ useMode(definition$5);
2841
+ useMode(definition$4);
2842
+ useMode(definition$27);
2843
+ useMode(definition$3);
2844
+ useMode(definition$2);
2845
+ useMode(definition$1);
2846
+ useMode(definition);
2847
+ function c(e) {
2848
+ return class extends e {
2849
+ constructor(...e) {
2850
+ throw Error(`@adapter: cannot create instance of class.`);
2851
+ }
2852
+ };
2853
+ }
2854
+ function ne$1(e, t) {
2855
+ return e === t ? !0 : e === t;
2856
+ }
2857
+ var l = Symbol(), u = Symbol(), d = Symbol(), f = Symbol(), p = Symbol(), m = Symbol(), h$1 = Symbol(), g = Symbol(), _ = Symbol(), v = Symbol(), re = Symbol();
2858
+ function y(e) {
2859
+ return e && typeof e == `object` && !!e[p];
2860
+ }
2861
+ function b(e) {
2862
+ if (!y(e)) throw Error(`@dto assert given object is not a class decorated with @Dto.`);
2863
+ }
2864
+ var ie = Symbol();
2865
+ function x(e, t = 0, n) {
2866
+ return function(...r) {
2867
+ let i = e[ie] ??= /* @__PURE__ */ new WeakMap(), a = r[t], o = n === void 0 ? `self` : r[n];
2868
+ if (typeof a != `object` || !a) return e.call(this, ...r);
2869
+ i.has(a) || i.set(a, []);
2870
+ let s = i.get(a);
2871
+ if (!s.includes(o)) {
2872
+ s.push(o);
2873
+ try {
2874
+ return e.call(this, ...r);
2875
+ } finally {
2876
+ let e = s.lastIndexOf(o);
2877
+ e !== -1 && s.splice(e, 1), s.length === 0 && i.delete(a);
2878
+ }
2879
+ }
2880
+ };
2881
+ }
2882
+ function S(e) {
2883
+ return b(e), e[f];
2884
+ }
2885
+ var C = x(function(e, t, n, r) {
2886
+ let i = e[re];
2887
+ i(e, t, n, r), e[m] && C(e[m], e[h$1], e[m][e[h$1]]);
2888
+ }, 0, 1), w = x(function(e) {
2889
+ b(e), e[f] && (e[f] = !1, C(e, f, !1, !0)), !(!e[u] || e[u].length === 0) && e[u].filter(S).forEach(w);
2890
+ });
2891
+ var T = x(function(e, t) {
2892
+ b(e), e[f] || (e[f] = !0, C(e, f, !0, !1)), e[m] && T(e[m], e[h$1]);
2893
+ });
2894
+ function E(e, t, n) {
2895
+ t[u] ??= [], !t[u].includes(e) && t[u].push(e), e[m] !== t && (e[m] = t), e[h$1] !== n && (e[h$1] = n);
2896
+ }
2897
+ function D(e, t, n) {
2898
+ if (y(n)) E(n, e, t);
2899
+ else if (Array.isArray(n)) {
2900
+ for (let r of n) y(r) && E(r, e, t);
2901
+ n[m] = e, n[h$1] = t;
2902
+ }
2903
+ }
2904
+ function O$1(e, t) {
2905
+ let n = e[v];
2906
+ n(e, t);
2907
+ }
2908
+ function ce(e, t) {
2909
+ if (u in t) {
2910
+ let n = t[u].indexOf(e);
2911
+ n !== -1 && t[u].splice(n, 1);
2912
+ }
2913
+ e[m] = void 0, e[h$1] = void 0;
2914
+ }
2915
+ function le(e, t) {
2916
+ if (y(t)) ce(t, e);
2917
+ else if (Array.isArray(t)) {
2918
+ for (let n of t) y(n) && ce(n, e);
2919
+ t[m] = void 0, t[h$1] = void 0;
2920
+ }
2921
+ }
2922
+ var k$2 = {};
2923
+ var ue = {
2924
+ deleteProperty(e, t) {
2925
+ if (Reflect.deleteProperty(e, t), A$2(e, t)) return !0;
2926
+ let n = e[m];
2927
+ return n && C(n, e[h$1], n[e[h$1]]), n && T(n, e[h$1]), !0;
2928
+ },
2929
+ get(e, t, n) {
2930
+ if (t === _) return !0;
2931
+ if (A$2(e, t)) return Reflect.get(e, t, n);
2932
+ let r = e[m];
2933
+ return r && O$1(r, e[h$1]), Reflect.get(e, t);
2934
+ },
2935
+ set(e, t, n, r) {
2936
+ if (A$2(e, t)) return Reflect.set(e, t, n, r);
2937
+ let i = e[m];
2938
+ return i && C(i, e[h$1], i[e[h$1]]), i && T(i, e[h$1]), Reflect.set(e, t, n);
2939
+ }
2940
+ };
2941
+ function A$2(e, t) {
2942
+ return typeof t == `symbol` || typeof e[t] == `function` || t === `length`;
2943
+ }
2944
+ var de = {
2945
+ get(e, t, n) {
2946
+ if (t === _) return !0;
2947
+ if (typeof t == `symbol`) return Reflect.get(e, t, n);
2948
+ let r = e[d][t];
2949
+ if (!r || !r.get) return Reflect.get(e, t, n);
2950
+ let i = r.get.call(e);
2951
+ return O$1(e, t), D(e, t, i), i;
2952
+ },
2953
+ getOwnPropertyDescriptor(e, t) {
2954
+ return e[d][t];
2955
+ },
2956
+ ownKeys(e) {
2957
+ return e[g];
2958
+ },
2959
+ set(e, t, n, r) {
2960
+ if (typeof t == `symbol`) return Reflect.set(e, t, n, r);
2961
+ let i = e[d][t];
2962
+ if (!i || !i.set) return Reflect.set(e, t, n, r);
2963
+ let a = i.get?.call(e) ?? void 0;
2964
+ return ne$1(n, a) ? !0 : (le(e, a), Array.isArray(n) && !n[_] && (n = new Proxy(n, ue)), i.set.call(e, n), D(e, t, n), T(e, t), C(e, t, n, a), !0);
2965
+ }
2966
+ }, fe = {
2967
+ get(e, t, n) {
2968
+ return t === `__v_isRef` ? !1 : t === _ ? !0 : t in e ? Reflect.get(e, t, n) : Reflect.get(e.value, t);
2969
+ },
2970
+ getOwnPropertyDescriptor(e, t) {
2971
+ return Reflect.getOwnPropertyDescriptor(e.value, t);
2972
+ },
2973
+ ownKeys(e) {
2974
+ return Reflect.ownKeys(e.value);
2975
+ },
2976
+ set(e, t, n, r) {
2977
+ return t in e ? Reflect.set(e, t, n, r) : Reflect.set(e.value, t, n);
2978
+ }
2979
+ }, pe = { construct(e, t, n) {
2980
+ t = t.map((e) => Array.isArray(e) ? new Proxy(e, ue) : e);
2981
+ let r = customRef((r, i) => {
2982
+ let a = markRaw(Reflect.construct(e, t, n));
2983
+ a[l] = t, a[f] = !1, a[v] = r, a[re] = i;
2984
+ let s = new Proxy(a, de);
2985
+ return {
2986
+ get: () => (r(), s),
2987
+ set: () => void 0
2988
+ };
2989
+ });
2990
+ return new Proxy(r, fe);
2991
+ } };
2992
+ function me() {
2993
+ let e = this;
2994
+ b(e);
2995
+ let t = k$2[e[p]], n = new t(...e[l]);
2996
+ for (let [e, t] of Object.entries(this[d])) t.set && (n[e] = y(this[e]) ? this[e].clone() : this[e]);
2997
+ return n;
2998
+ }
2999
+ function he(e) {
3000
+ for (let t in e) {
3001
+ let n = this[d][t];
3002
+ y(this[t]) && typeof e[t] == `object` ? this[t].fill(e[t]) : n && n.set && (this[t] = e[t]);
3003
+ }
3004
+ }
3005
+ function ge$1() {
3006
+ let e = {};
3007
+ for (let t of this[g]) {
3008
+ let n = this[t];
3009
+ y(n) && (n = n.toJSON()), e[t] = n;
3010
+ }
3011
+ return e;
3012
+ }
3013
+ function j(e) {
3014
+ ve(e);
3015
+ let t = Object.freeze(x$1(e)), a = Object.keys(t);
3016
+ return K$1(e.prototype, d, t), K$1(e.prototype, p, e.name), K$1(e.prototype, g, a), K$1(e, Symbol.hasInstance, (t) => typeof t == `object` && t?.[p] === e.name), G$1(e, `clone`, me), G$1(e, `fill`, he), G$1(e, `toJSON`, ge$1), _e$1(e);
3017
+ }
3018
+ function _e$1(e) {
3019
+ let t = new Proxy(e, pe);
3020
+ return k$2[e.name] = t, t;
3021
+ }
3022
+ function ve(e) {
3023
+ let t = Object.getPrototypeOf(e.prototype);
3024
+ if (p in t) throw Error(`⛔️ @dto ${e.name} cannot extend parent class which is also decorated with @dto ${t[p]}.`);
3025
+ }
3026
+ function V(e, t, n, r) {
3027
+ var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
3028
+ if (typeof Reflect == `object` && typeof Reflect.decorate == `function`) a = Reflect.decorate(e, t, n, r);
3029
+ else for (var s = e.length - 1; s >= 0; s--) (o = e[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a);
3030
+ return i > 3 && a && Object.defineProperty(t, n, a), a;
3031
+ }
3032
+ var H = class {
3033
+ get blob() {
3034
+ return this.#e;
3035
+ }
3036
+ get name() {
3037
+ return this.#t;
3038
+ }
3039
+ #e;
3040
+ #t;
3041
+ constructor(e, t) {
3042
+ this.#e = e, this.#t = t;
3043
+ }
3044
+ };
3045
+ H = V([j], H);
3046
+ var U = class {
3047
+ get items() {
3048
+ return this.#e;
3049
+ }
3050
+ get page() {
3051
+ return this.#t;
3052
+ }
3053
+ get pageSize() {
3054
+ return this.#n;
3055
+ }
3056
+ get pages() {
3057
+ return this.#r;
3058
+ }
3059
+ get total() {
3060
+ return this.#i;
3061
+ }
3062
+ #e;
3063
+ #t;
3064
+ #n;
3065
+ #r;
3066
+ #i;
3067
+ constructor(e, t, n, r, i) {
3068
+ this.#e = e, this.#t = t, this.#n = n, this.#r = r, this.#i = i;
3069
+ }
3070
+ };
3071
+ U = V([j], U);
3072
+ var De = U;
3073
+ var W = class {
3074
+ get code() {
3075
+ return this.#e;
3076
+ }
3077
+ get error() {
3078
+ return this.#t;
3079
+ }
3080
+ get errorDescription() {
3081
+ return this.#n;
3082
+ }
3083
+ get statusCode() {
3084
+ return this.#r;
3085
+ }
3086
+ #e;
3087
+ #t;
3088
+ #n;
3089
+ #r;
3090
+ constructor(e, t, n, r) {
3091
+ this.#e = e, this.#t = t, this.#n = n, this.#r = r;
3092
+ }
3093
+ };
3094
+ W = V([j], W);
3095
+ var G = W;
3096
+ var K = class {
3097
+ get code() {
3098
+ return this.#e;
3099
+ }
3100
+ get error() {
3101
+ return this.#t;
3102
+ }
3103
+ get errorDescription() {
3104
+ return this.#n;
3105
+ }
3106
+ get errors() {
3107
+ return this.#r;
3108
+ }
3109
+ get params() {
3110
+ return this.#i;
3111
+ }
3112
+ #e;
3113
+ #t;
3114
+ #n;
3115
+ #r;
3116
+ #i;
3117
+ constructor(e, t, n, r, i) {
3118
+ this.#e = e, this.#t = t, this.#n = n, this.#r = r, this.#i = i;
3119
+ }
3120
+ };
3121
+ K = V([j], K);
3122
+ var q = K, J;
3123
+ var Y = J = class {
3124
+ static parsePaginatedAdapter(e, t) {
3125
+ return new De(e.items.map(t), e.page, e.page_size, e.pages, e.total);
3126
+ }
3127
+ static parseFileNameFromContentDispositionHeader(t) {
3128
+ let n = `download-${DateTime.now().toFormat(`yyyy-MM-dd HH-mm-ss`)}`;
3129
+ if (!t.startsWith(`attachment`)) return n;
3130
+ let r = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(t);
3131
+ return (r?.length || 0) < 2 ? n : r[1].replaceAll(`'`, ``).replaceAll(`"`, ``).replaceAll(`/`, `-`).replaceAll(`:`, `-`);
3132
+ }
3133
+ static parseRequestError(e, t) {
3134
+ return new G(e.code, e.error, e.error_description, t);
3135
+ }
3136
+ static parseValidationError(e) {
3137
+ let t;
3138
+ return e.errors && (t = {}, Object.entries(e.errors).forEach(([e, n]) => {
3139
+ t[e] = J.parseValidationError(n);
3140
+ })), new q(e.code, e.error, e.error_description, t, e.params);
3141
+ }
3142
+ };
3143
+ Y = J = V([c], Y);
3144
+ converter(`oklch`);
3145
+ RegExp(`[a-z]`), RegExp(`[A-Z]`), RegExp(`[0-9]`), RegExp(`[!"#$%&'()*+,-./:;<=>?@[\\\\\\]^_\`{|}~]`);
3146
+ function h(e, t, n, r = { passive: !0 }) {
3147
+ watch(e, (e, i, a) => {
3148
+ e && (e.addEventListener(t, n, r), a(() => e.removeEventListener(t, n)));
3149
+ }, { immediate: !0 });
3150
+ }
3151
+ [
3152
+ `a:not([disabled])`,
3153
+ `button:not([disabled])`,
3154
+ `input[type=checkbox]:not([disabled])`,
3155
+ `input[type=radio]:not([disabled])`,
3156
+ `input[type=text]:not([disabled])`,
3157
+ `[tabindex]:not([disabled]):not([tabindex="-1"])`
3158
+ ].join(`,`);
3159
+ new class {
3160
+ get active() {
3161
+ return this.current?.isEnabled ?? !1;
3162
+ }
3163
+ get current() {
3164
+ return this.#t[this.#t.length - 1] ?? null;
3165
+ }
3166
+ #e = [];
3167
+ #t = [];
3168
+ add(e, t, n = !0) {
3169
+ let r = {
3170
+ id: e,
3171
+ setEnabled: t,
3172
+ isEnabled: !0
3173
+ };
3174
+ this.current && this.toggle(this.current, !1), this.#t.push(r), n && (this.toggle(r, !0), this.emit());
3175
+ }
3176
+ remove(e) {
3177
+ let t = this.#t.find((t) => t.id === e);
3178
+ t && this.toggle(t, !1);
3179
+ let n = this.current?.id === e;
3180
+ this.#t = this.#t.filter((t) => t.id !== e), n && this.current && this.toggle(this.current, !0), this.emit();
3181
+ }
3182
+ emit() {
3183
+ this.#e.forEach((e) => e(this.active, this.#t));
3184
+ }
3185
+ subscribe(e) {
3186
+ return this.#e.push(e), e(this.active, this.#t), () => this.#e = this.#e.filter((t) => t !== e);
3187
+ }
3188
+ toggle(e, t) {
3189
+ e.setEnabled(t), e.isEnabled = t;
3190
+ }
3191
+ }();
3192
+ globalThis.document;
3193
+ function M(e, t) {
3194
+ let n = `flux/${e}`, r = ref(a() ?? t);
3195
+ function a() {
3196
+ if (n in localStorage) {
3197
+ let e = JSON.parse(localStorage.getItem(n));
3198
+ return Array.isArray(e) && e[0] === `DateTime` && (e = DateTime.fromISO(e[1])), e;
3199
+ }
3200
+ return null;
3201
+ }
3202
+ return watch(r, (e) => {
3203
+ let t = e;
3204
+ DateTime.isDateTime(e) && (t = [`DateTime`, e.toISO({
3205
+ includeOffset: !0,
3206
+ extendedZone: !0
3207
+ })]), localStorage.setItem(n, JSON.stringify(t));
3208
+ }), r;
3209
+ }
3210
+ function N(e) {
3211
+ let t = ref(0), n = ref(0);
3212
+ return e ||= ref(document), h(e, `scroll`, () => {
3213
+ let r = unref(e);
3214
+ r instanceof Document && (r = r.scrollingElement), t.value = r?.scrollLeft ?? 0, n.value = r?.scrollTop ?? 0;
3215
+ }), {
3216
+ x: t,
3217
+ y: n
3218
+ };
3219
+ }
3220
+ const FluxDashboardInjectionKey = Symbol();
3221
+ var Dashboard_module_default = {
3222
+ root: `root`,
3223
+ dashboard: `dashboard`,
3224
+ dashboardMount: `dashboard-mount`,
3225
+ isResizing: `is-resizing`,
3226
+ dashboardNavigation: `dashboard-navigation`,
3227
+ dashboardNavigationCollapsed: `dashboard-navigation-collapsed`,
3228
+ dashboardMenu: `dashboard-menu`,
3229
+ dashboardSide: `dashboard-side`
3230
+ };
3231
+ var FluxDashboard_default = /* @__PURE__ */ defineComponent({
3232
+ __name: "FluxDashboard",
3233
+ setup(__props) {
3234
+ const isMenuCollapsed = M("dashboard-menu-collapsed", true);
3235
+ const isNavigationCollapsed = M("dashboard-navigation-collapsed", true);
3236
+ const isResizing = ref(false);
3237
+ provide(FluxDashboardInjectionKey, {
3238
+ isMenuCollapsed,
3239
+ isNavigationCollapsed
3240
+ });
3241
+ watch(isNavigationCollapsed, (_, __, onCleanup) => {
3242
+ let timeout;
3243
+ function onResize() {
3244
+ clearTimeout(timeout);
3245
+ isResizing.value = true;
3246
+ timeout = setTimeout(() => isResizing.value = false, 10);
3247
+ }
3248
+ window.addEventListener("resize", onResize, { passive: true });
3249
+ onCleanup(() => window.removeEventListener("resize", onResize));
3250
+ }, { immediate: true });
3251
+ return (_ctx, _cache) => {
3252
+ return openBlock(), createElementBlock("div", { class: normalizeClass([unref(Dashboard_module_default).dashboard, isResizing.value && unref(Dashboard_module_default).isResizing]) }, [
3253
+ renderSlot(_ctx.$slots, "navigation"),
3254
+ renderSlot(_ctx.$slots, "menu"),
3255
+ createElementVNode("div", { class: normalizeClass(unref(Dashboard_module_default).dashboardMount) }, [renderSlot(_ctx.$slots, "header"), renderSlot(_ctx.$slots, "default")], 2),
3256
+ renderSlot(_ctx.$slots, "side")
3257
+ ], 2);
3258
+ };
3259
+ }
3260
+ });
3261
+ function useDashboardInjection_default() {
3262
+ const injection = inject(FluxDashboardInjectionKey);
3263
+ if (!injection) throw new Error("[Flux] useDashboardInjection() was used outside a FluxDashboard component.");
3264
+ return injection;
3265
+ }
3266
+ var DashboardContent_module_default = {
3267
+ notice: `notice`,
3268
+ dashboardContent: `dashboard-content`,
3269
+ calendar: `calendar`,
3270
+ table: `table`,
3271
+ calendarActions: `calendar-actions`,
3272
+ tableCell: `table-cell`,
3273
+ tableCellContent: `table-cell-content`,
3274
+ dashboardContentCollapsed: `dashboard-content-collapsed`
3275
+ };
3276
+ var FluxDashboardContent_default = /* @__PURE__ */ defineComponent({
3277
+ __name: "FluxDashboardContent",
3278
+ setup(__props) {
3279
+ const { isMenuCollapsed } = useDashboardInjection_default();
3280
+ return (_ctx, _cache) => {
3281
+ return openBlock(), createElementBlock("main", { class: normalizeClass([unref(DashboardContent_module_default).dashboardContent, !unref(isMenuCollapsed) && unref(DashboardContent_module_default).dashboardContentCollapsed]) }, [renderSlot(_ctx.$slots, "default")], 2);
3282
+ };
3283
+ }
3284
+ });
3285
+ var DashboardTopBar_module_default = {
3286
+ dashboardTopBar: `dashboard-top-bar`,
3287
+ icon: `icon`,
3288
+ separator: `separator`,
3289
+ dashboardHeader: `dashboard-header`,
3290
+ routeTransitionEnterActive: `route-transition-enter-active`,
3291
+ routeTransitionLeaveActive: `route-transition-leave-active`,
3292
+ dashboardHeaderScrolled: `dashboard-header-scrolled dashboard-header`,
3293
+ dashboard: `dashboard`,
3294
+ dashboardTopBarCollapsed: `dashboard-top-bar-collapsed`
3295
+ };
3296
+ var FluxDashboardTopBar_default = /* @__PURE__ */ defineComponent({
3297
+ __name: "FluxDashboardTopBar",
3298
+ setup(__props) {
3299
+ const { isMenuCollapsed } = useDashboardInjection_default();
3300
+ return (_ctx, _cache) => {
3301
+ return openBlock(), createElementBlock("header", { class: normalizeClass([unref(DashboardTopBar_module_default).dashboardTopBar, !unref(isMenuCollapsed) && unref(DashboardTopBar_module_default).dashboardTopBarCollapsed]) }, [renderSlot(_ctx.$slots, "default")], 2);
3302
+ };
3303
+ }
3304
+ });
3305
+ var _hoisted_1$1 = { key: 1 };
3306
+ var FluxDashboardHeader_default = /* @__PURE__ */ defineComponent({
3307
+ __name: "FluxDashboardHeader",
3308
+ props: {
3309
+ icon: {},
3310
+ title: {}
3311
+ },
3312
+ setup(__props) {
3313
+ const { y } = N();
3314
+ return (_ctx, _cache) => {
3315
+ return openBlock(), createBlock(FluxDashboardTopBar_default, { class: normalizeClass(unref(y) > 0 ? unref(DashboardTopBar_module_default).dashboardHeaderScrolled : unref(DashboardTopBar_module_default).dashboardHeader) }, {
3316
+ default: withCtx(() => [
3317
+ renderSlot(_ctx.$slots, "start"),
3318
+ __props.icon ? (openBlock(), createBlock(unref(FluxIcon), {
3319
+ key: 0,
3320
+ name: __props.icon
3321
+ }, null, 8, ["name"])) : createCommentVNode("", true),
3322
+ __props.title ? (openBlock(), createElementBlock("h1", _hoisted_1$1, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
3323
+ createVNode(unref(FluxSpacer)),
3324
+ renderSlot(_ctx.$slots, "end")
3325
+ ]),
3326
+ _: 3
3327
+ }, 8, ["class"]);
3328
+ };
3329
+ }
3330
+ });
3331
+ var DashboardPane_module_default = {
3332
+ dashboardPane: `dashboard-pane`,
3333
+ menuSubHeader: `menu-sub-header`,
3334
+ dashboardTopBar: `dashboard-top-bar`,
3335
+ filter: `filter`,
3336
+ filterHeader: `filter-header`,
3337
+ menu: `menu`,
3338
+ menuItemCommand: `menu-item-command`,
3339
+ menuItemIcon: `menu-item-icon`,
3340
+ divider: `divider`,
3341
+ separator: `separator`,
3342
+ dashboardMenu: `dashboard-menu dashboard-pane`,
3343
+ dashboardMenuBody: `dashboard-menu-body`,
3344
+ dashboardSide: `dashboard-side dashboard-pane`,
3345
+ dashboardMenuCollapsed: `dashboard-menu-collapsed`
3346
+ };
3347
+ var _hoisted_1 = { key: 1 };
3348
+ var FluxDashboardMenu_default = /* @__PURE__ */ defineComponent({
3349
+ __name: "FluxDashboardMenu",
3350
+ props: {
3351
+ icon: {},
3352
+ title: {}
3353
+ },
3354
+ setup(__props) {
3355
+ const { isMenuCollapsed } = useDashboardInjection_default();
3356
+ return (_ctx, _cache) => {
3357
+ return openBlock(), createElementBlock("aside", { class: normalizeClass([unref(DashboardPane_module_default).dashboardMenu, unref(isMenuCollapsed) && unref(DashboardPane_module_default).dashboardMenuCollapsed]) }, [createVNode(FluxDashboardTopBar_default, null, {
3358
+ default: withCtx(() => [
3359
+ renderSlot(_ctx.$slots, "top-bar-start"),
3360
+ __props.icon ? (openBlock(), createBlock(unref(FluxIcon), {
3361
+ key: 0,
3362
+ name: __props.icon
3363
+ }, null, 8, ["name"])) : createCommentVNode("", true),
3364
+ __props.title ? (openBlock(), createElementBlock("h1", _hoisted_1, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
3365
+ createVNode(unref(FluxSpacer)),
3366
+ renderSlot(_ctx.$slots, "top-bar-end")
3367
+ ]),
3368
+ _: 3
3369
+ }), createElementVNode("div", { class: normalizeClass(unref(DashboardPane_module_default).dashboardMenuBody) }, [renderSlot(_ctx.$slots, "default")], 2)], 2);
3370
+ };
3371
+ }
3372
+ });
3373
+ var DashboardNavigation_module_default = {
3374
+ dashboardNavigation: `dashboard-navigation`,
3375
+ divider: `divider`,
3376
+ dividerLine: `divider-line`,
3377
+ menu: `menu`,
3378
+ menuItem: `menu-item`,
3379
+ menuItemHighlighted: `menu-item-highlighted`,
3380
+ menuItemIcon: `menu-item-icon`,
3381
+ menuItemLabel: `menu-item-label`,
3382
+ dashboardNavigationCollapsed: `dashboard-navigation-collapsed dashboard-navigation`,
3383
+ dashboardNavigationLogo: `dashboard-navigation-logo`,
3384
+ dashboardNavigationRoundingFix: `dashboard-navigation-rounding-fix`,
3385
+ dashboard: `dashboard`,
3386
+ dashboardMenu: `dashboard-menu`,
3387
+ dashboardNavigationHeader: `dashboard-navigation-header`,
3388
+ dashboardNavigationNav: `dashboard-navigation-nav`
3389
+ };
3390
+ var FluxDashboardNavigation_default = /* @__PURE__ */ defineComponent({
3391
+ inheritAttrs: false,
3392
+ __name: "FluxDashboardNavigation",
3393
+ props: { logoLocation: {} },
3394
+ setup(__props, { attrs: $attrs }) {
3395
+ const slots = useSlots();
3396
+ const { isMenuCollapsed, isNavigationCollapsed } = useDashboardInjection_default();
3397
+ return (_ctx, _cache) => {
3398
+ const _component_router_link = resolveComponent("router-link");
3399
+ return openBlock(), createElementBlock("nav", mergeProps($attrs, { class: unref(isNavigationCollapsed) ? unref(DashboardNavigation_module_default).dashboardNavigationCollapsed : unref(DashboardNavigation_module_default).dashboardNavigation }), [
3400
+ createElementVNode("header", { class: normalizeClass(unref(DashboardNavigation_module_default).dashboardNavigationHeader) }, [
3401
+ createVNode(unref(FluxMenuItem), {
3402
+ "icon-leading": "bars",
3403
+ onClick: _cache[0] || (_cache[0] = ($event) => isNavigationCollapsed.value = !unref(isNavigationCollapsed))
3404
+ }),
3405
+ slots.logo ? (openBlock(), createBlock(_component_router_link, {
3406
+ key: 0,
3407
+ class: normalizeClass(unref(DashboardNavigation_module_default).dashboardNavigationLogo),
3408
+ to: __props.logoLocation || "/"
3409
+ }, {
3410
+ default: withCtx(() => [renderSlot(_ctx.$slots, "logo", normalizeProps(guardReactiveProps({ isNavigationCollapsed: unref(isNavigationCollapsed) })))]),
3411
+ _: 3
3412
+ }, 8, ["class", "to"])) : createCommentVNode("", true),
3413
+ createVNode(unref(FluxMenuItem), {
3414
+ "icon-leading": "ellipsis-h",
3415
+ onClick: _cache[1] || (_cache[1] = ($event) => isMenuCollapsed.value = !unref(isMenuCollapsed))
3416
+ })
3417
+ ], 2),
3418
+ (openBlock(), createElementBlock(Fragment, null, renderList(2, (index) => {
3419
+ return createElementVNode("div", {
3420
+ key: index,
3421
+ class: normalizeClass(unref(DashboardNavigation_module_default).dashboardNavigationRoundingFix)
3422
+ }, null, 2);
3423
+ }), 64)),
3424
+ createElementVNode("main", { class: normalizeClass(unref(DashboardNavigation_module_default).dashboardNavigationNav) }, [renderSlot(_ctx.$slots, "default")], 2)
3425
+ ], 16);
3426
+ };
3427
+ }
3428
+ });
3429
+ var FluxDashboardSide_default = /* @__PURE__ */ defineComponent({
3430
+ __name: "FluxDashboardSide",
3431
+ props: { title: {} },
3432
+ setup(__props) {
3433
+ return (_ctx, _cache) => {
3434
+ return openBlock(), createElementBlock("aside", { class: normalizeClass(unref(DashboardPane_module_default).dashboardSide) }, [createVNode(FluxDashboardTopBar_default, null, {
3435
+ default: withCtx(() => [
3436
+ renderSlot(_ctx.$slots, "top-bar-start"),
3437
+ createElementVNode("h1", null, toDisplayString(__props.title), 1),
3438
+ createVNode(unref(FluxSpacer)),
3439
+ renderSlot(_ctx.$slots, "top-bar-end")
3440
+ ]),
3441
+ _: 3
3442
+ }), renderSlot(_ctx.$slots, "default")], 2);
3443
+ };
3444
+ }
3445
+ });
3446
+ export { FluxDashboard_default as FluxDashboard, FluxDashboardContent_default as FluxDashboardContent, FluxDashboardHeader_default as FluxDashboardHeader, FluxDashboardInjectionKey, FluxDashboardMenu_default as FluxDashboardMenu, FluxDashboardNavigation_default as FluxDashboardNavigation, FluxDashboardSide_default as FluxDashboardSide, useDashboardInjection_default as useDashboardInjection };
3447
+
3448
+ //# sourceMappingURL=index.js.map