@urcolor/vue 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +155 -0
  2. package/dist/components/ColorArea/ColorAreaCheckerboard.vue.d.ts +10 -0
  3. package/dist/components/ColorArea/ColorAreaGradient.vue.d.ts +36 -0
  4. package/dist/components/ColorArea/ColorAreaImpl.vue.d.ts +45 -0
  5. package/dist/components/ColorArea/ColorAreaRegion.vue.d.ts +15 -0
  6. package/dist/components/ColorArea/ColorAreaRoot.vue.d.ts +101 -0
  7. package/dist/components/ColorArea/ColorAreaThumb.vue.d.ts +17 -0
  8. package/dist/components/ColorArea/ColorAreaThumbX.vue.d.ts +17 -0
  9. package/dist/components/ColorArea/ColorAreaThumbY.vue.d.ts +17 -0
  10. package/dist/components/ColorArea/ColorAreaTrack.vue.d.ts +17 -0
  11. package/dist/components/ColorArea/index.d.ts +9 -0
  12. package/dist/components/ColorArea/utils.d.ts +62 -0
  13. package/dist/components/ColorField/ColorFieldDecrement.vue.d.ts +19 -0
  14. package/dist/components/ColorField/ColorFieldIncrement.vue.d.ts +19 -0
  15. package/dist/components/ColorField/ColorFieldInput.vue.d.ts +17 -0
  16. package/dist/components/ColorField/ColorFieldRoot.vue.d.ts +74 -0
  17. package/dist/components/ColorField/ColorFieldSwatch.vue.d.ts +15 -0
  18. package/dist/components/ColorField/index.d.ts +5 -0
  19. package/dist/components/ColorField/utils.d.ts +8 -0
  20. package/dist/components/ColorSlider/ColorSliderCheckerboard.vue.d.ts +10 -0
  21. package/dist/components/ColorSlider/ColorSliderGradient.vue.d.ts +33 -0
  22. package/dist/components/ColorSlider/ColorSliderRange.vue.d.ts +13 -0
  23. package/dist/components/ColorSlider/ColorSliderRoot.vue.d.ts +49 -0
  24. package/dist/components/ColorSlider/ColorSliderThumb.vue.d.ts +13 -0
  25. package/dist/components/ColorSlider/ColorSliderTrack.vue.d.ts +13 -0
  26. package/dist/components/ColorSlider/index.d.ts +6 -0
  27. package/dist/components/ColorSwatch/ColorSwatchRoot.vue.d.ts +26 -0
  28. package/dist/components/ColorSwatch/index.d.ts +2 -0
  29. package/dist/components/ColorSwatchGroup/ColorSwatchGroupItem.vue.d.ts +25 -0
  30. package/dist/components/ColorSwatchGroup/ColorSwatchGroupRoot.vue.d.ts +58 -0
  31. package/dist/components/ColorSwatchGroup/index.d.ts +5 -0
  32. package/dist/composables/useColor.d.ts +3 -0
  33. package/dist/index.d.ts +5 -0
  34. package/dist/index.js +2852 -0
  35. package/package.json +58 -0
package/dist/index.js ADDED
@@ -0,0 +1,2852 @@
1
+ import { getCurrentScope as Tn, onScopeDispose as zn, watch as ae, computed as h, toValue as gt, shallowRef as je, getCurrentInstance as An, onMounted as Te, ref as q, provide as Vn, inject as En, defineComponent as B, h as zt, watchEffect as Nn, markRaw as Dn, openBlock as D, createBlock as P, unref as s, mergeProps as yt, withCtx as N, renderSlot as O, toRefs as xt, createVNode as Ge, createCommentVNode as jt, normalizeStyle as Ue, onUnmounted as Mt, onBeforeUnmount as Gt, createElementVNode as Ut, toRef as At, nextTick as Pn, withModifiers as xe, withKeys as Pe } from "vue";
2
+ import { createContext as ze, Slot as Vt, Primitive as W, useDirection as Wt, useForwardExpose as H, VisuallyHidden as Zt, SliderRoot as Xn, SliderTrack as In, SliderRange as Bn, SliderThumb as Yn, RovingFocusGroup as Fn, RovingFocusItem as On } from "reka-ui";
3
+ import { Color as Q } from "internationalized-color";
4
+ import { colorSpaces as Hn, getChannelConfig as pe, culoriToDisplay as Be, displayToCulori as Ye, sampleBilinearGrid as Ln, drawGradient as Kn, sampleChannelGrid as qn, interpolateStops as jn, drawLinearGradient as Et } from "@urcolor/core";
5
+ function Gn(t, e) {
6
+ return Tn() ? (zn(t, e), !0) : !1;
7
+ }
8
+ const Un = typeof window < "u" && typeof document < "u";
9
+ typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
10
+ const Wn = Un ? window : void 0;
11
+ function Fe(t) {
12
+ var e;
13
+ const n = gt(t);
14
+ return (e = n?.$el) !== null && e !== void 0 ? e : n;
15
+ }
16
+ // @__NO_SIDE_EFFECTS__
17
+ function Jt() {
18
+ const t = je(!1), e = An();
19
+ return e && Te(() => {
20
+ t.value = !0;
21
+ }, e), t;
22
+ }
23
+ // @__NO_SIDE_EFFECTS__
24
+ function Zn(t) {
25
+ const e = /* @__PURE__ */ Jt();
26
+ return h(() => (e.value, !!t()));
27
+ }
28
+ function Qt(t, e, n = {}) {
29
+ const { window: a = Wn, ...o } = n;
30
+ let l;
31
+ const r = /* @__PURE__ */ Zn(() => a && "ResizeObserver" in a), i = () => {
32
+ l && (l.disconnect(), l = void 0);
33
+ }, u = ae(h(() => {
34
+ const f = gt(t);
35
+ return Array.isArray(f) ? f.map((d) => Fe(d)) : [Fe(f)];
36
+ }), (f) => {
37
+ if (i(), r.value && a) {
38
+ l = new ResizeObserver(e);
39
+ for (const d of f) d && l.observe(d, o);
40
+ }
41
+ }, {
42
+ immediate: !0,
43
+ flush: "post"
44
+ }), p = () => {
45
+ i(), u();
46
+ };
47
+ return Gn(p), {
48
+ isSupported: r,
49
+ stop: p
50
+ };
51
+ }
52
+ const [en, Jn] = ze("ColorAreaThumb");
53
+ function Re(t, e = Number.NEGATIVE_INFINITY, n = Number.POSITIVE_INFINITY) {
54
+ return Math.min(n, Math.max(e, t));
55
+ }
56
+ function Qn(t) {
57
+ return (String(t).split(".")[1] || "").length;
58
+ }
59
+ function ea(t, e) {
60
+ const n = 10 ** e;
61
+ return Math.round(t * n) / n;
62
+ }
63
+ function pt(t, e, n, a) {
64
+ const o = Qn(a), l = ea(Math.round((t - e) / a) * a + e, o);
65
+ return Re(l, e, n);
66
+ }
67
+ function ht(t, e) {
68
+ return (n) => {
69
+ if (t[0] === t[1] || e[0] === e[1])
70
+ return e[0];
71
+ const a = (e[1] - e[0]) / (t[1] - t[0]);
72
+ return e[0] + a * (n - t[0]);
73
+ };
74
+ }
75
+ function Oe(t, e, n) {
76
+ const l = 100 / (n - e) * (t - e);
77
+ return Re(l, 0, 100);
78
+ }
79
+ function ta(t, e) {
80
+ return e > 2 ? `Value ${t + 1} of ${e}` : e === 2 ? ["Minimum", "Maximum"][t] : void 0;
81
+ }
82
+ function Nt(t, e, n) {
83
+ const a = t / 2, l = ht([0, 50], [0, a]);
84
+ return (a - l(e) * n) * n;
85
+ }
86
+ function na(t) {
87
+ return t.slice(0, -1).map((e, n) => t[n + 1] - e);
88
+ }
89
+ function aa(t, e) {
90
+ if (e > 0) {
91
+ const n = na(t);
92
+ return Math.min(...n) >= e;
93
+ }
94
+ return !0;
95
+ }
96
+ function oa(t, e, n, a, o, l) {
97
+ if (t.length === 0)
98
+ return -1;
99
+ if (t.length === 1)
100
+ return 0;
101
+ const r = a - n || 1, i = l - o || 1, u = t.map((f) => {
102
+ const d = (f[0] - e[0]) / r, g = (f[1] - e[1]) / i;
103
+ return Math.sqrt(d * d + g * g);
104
+ }), p = Math.min(...u);
105
+ return u.indexOf(p);
106
+ }
107
+ const la = ["PageUp", "PageDown"], tn = ["ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight"];
108
+ function nn(t) {
109
+ return h(() => gt(t) ? !!Fe(t)?.closest("form") : !0);
110
+ }
111
+ function ra(t) {
112
+ const e = q(), n = h(() => e.value?.width ?? 0), a = h(() => e.value?.height ?? 0);
113
+ return Te(() => {
114
+ const o = Fe(t);
115
+ o ? (e.value = { width: o.offsetWidth, height: o.offsetHeight }, new ResizeObserver((r) => {
116
+ if (!Array.isArray(r) || !r.length)
117
+ return;
118
+ const i = r[0];
119
+ let u, p;
120
+ if ("borderBoxSize" in i) {
121
+ const f = i.borderBoxSize, d = Array.isArray(f) ? f[0] : f;
122
+ u = d.inlineSize, p = d.blockSize;
123
+ } else
124
+ u = o.offsetWidth, p = o.offsetHeight;
125
+ e.value = { width: u, height: p };
126
+ }).observe(o, { box: "border-box" })) : e.value = void 0;
127
+ }), { width: n, height: a };
128
+ }
129
+ const Dt = "data-reka-collection-item";
130
+ function an(t = {}) {
131
+ const { key: e = "", isProvider: n = !1 } = t, a = `${e}CollectionProvider`;
132
+ let o;
133
+ if (n) {
134
+ const f = q(/* @__PURE__ */ new Map());
135
+ o = { collectionRef: q(), itemMap: f }, Vn(a, o);
136
+ } else
137
+ o = En(a);
138
+ const l = (f = !1) => {
139
+ const d = o.collectionRef.value;
140
+ if (!d)
141
+ return [];
142
+ const g = Array.from(d.querySelectorAll(`[${Dt}]`)), $ = Array.from(o.itemMap.value.values()).sort(
143
+ (w, Y) => g.indexOf(w.ref) - g.indexOf(Y.ref)
144
+ );
145
+ return f ? $ : $.filter((w) => w.ref.dataset.disabled !== "");
146
+ }, r = B({
147
+ name: "CollectionSlot",
148
+ inheritAttrs: !1,
149
+ setup(f, { slots: d, attrs: g }) {
150
+ const { primitiveElement: S, currentElement: $ } = Pt();
151
+ return ae($, () => {
152
+ o.collectionRef.value = $.value;
153
+ }), () => zt(Vt, { ref: S, ...g }, d);
154
+ }
155
+ }), i = B({
156
+ name: "CollectionItem",
157
+ inheritAttrs: !1,
158
+ props: {
159
+ value: {
160
+ type: [String, Number, Boolean, Object, Array, Function],
161
+ default: void 0,
162
+ validator: () => !0
163
+ }
164
+ },
165
+ setup(f, { slots: d, attrs: g }) {
166
+ const { primitiveElement: S, currentElement: $ } = Pt();
167
+ return Nn((w) => {
168
+ if ($.value) {
169
+ const Y = Dn($.value);
170
+ o.itemMap.value.set(Y, { ref: $.value, value: f.value }), w(() => o.itemMap.value.delete(Y));
171
+ }
172
+ }), () => zt(Vt, { ...g, [Dt]: "", ref: S }, d);
173
+ }
174
+ }), u = h(() => Array.from(o.itemMap.value.values())), p = h(() => o.itemMap.value.size);
175
+ return { getItems: l, reactiveItems: u, itemMapSize: p, CollectionSlot: r, CollectionItem: i };
176
+ }
177
+ function Pt() {
178
+ const t = q();
179
+ return { primitiveElement: (n) => {
180
+ if (n) {
181
+ const a = n instanceof Element ? n : n?.$el;
182
+ a instanceof Element && (t.value = a);
183
+ }
184
+ }, currentElement: t };
185
+ }
186
+ const ia = /* @__PURE__ */ B({
187
+ __name: "ColorAreaImpl",
188
+ props: {
189
+ as: { default: "span" },
190
+ asChild: { type: Boolean }
191
+ },
192
+ emits: ["slideStart", "slideMove", "slideEnd", "homeKeyDown", "endKeyDown", "pageUpKeyDown", "pageDownKeyDown", "stepKeyDown"],
193
+ setup(t, { emit: e }) {
194
+ const n = t, a = e, o = me();
195
+ return (l, r) => (D(), P(s(W), yt({ "data-slider-area-impl": "" }, n, {
196
+ onKeydown: r[0] || (r[0] = (i) => {
197
+ i.key === "Home" ? (a("homeKeyDown", i), i.preventDefault()) : i.key === "End" ? (a("endKeyDown", i), i.preventDefault()) : i.key === "PageUp" ? (a("pageUpKeyDown", i), i.preventDefault()) : i.key === "PageDown" ? (a("pageDownKeyDown", i), i.preventDefault()) : s(la).concat(s(tn)).includes(i.key) && (a("stepKeyDown", i), i.preventDefault());
198
+ }),
199
+ onPointerdown: r[1] || (r[1] = (i) => {
200
+ const u = i.target;
201
+ u.setPointerCapture(i.pointerId), i.preventDefault(), s(o).thumbXElements.value.includes(u) || s(o).thumbYElements.value.includes(u) ? u.focus() : a("slideStart", i);
202
+ }),
203
+ onPointermove: r[2] || (r[2] = (i) => {
204
+ i.target.hasPointerCapture(i.pointerId) && a("slideMove", i);
205
+ }),
206
+ onPointerup: r[3] || (r[3] = (i) => {
207
+ const u = i.target;
208
+ u.hasPointerCapture(i.pointerId) && (u.releasePointerCapture(i.pointerId), a("slideEnd", i));
209
+ })
210
+ }), {
211
+ default: N(() => [
212
+ O(l.$slots, "default")
213
+ ]),
214
+ _: 3
215
+ }, 16));
216
+ }
217
+ }), on = (t, e) => {
218
+ if (typeof t == "number") {
219
+ if (e === 3)
220
+ return {
221
+ mode: "rgb",
222
+ r: (t >> 8 & 15 | t >> 4 & 240) / 255,
223
+ g: (t >> 4 & 15 | t & 240) / 255,
224
+ b: (t & 15 | t << 4 & 240) / 255
225
+ };
226
+ if (e === 4)
227
+ return {
228
+ mode: "rgb",
229
+ r: (t >> 12 & 15 | t >> 8 & 240) / 255,
230
+ g: (t >> 8 & 15 | t >> 4 & 240) / 255,
231
+ b: (t >> 4 & 15 | t & 240) / 255,
232
+ alpha: (t & 15 | t << 4 & 240) / 255
233
+ };
234
+ if (e === 6)
235
+ return {
236
+ mode: "rgb",
237
+ r: (t >> 16 & 255) / 255,
238
+ g: (t >> 8 & 255) / 255,
239
+ b: (t & 255) / 255
240
+ };
241
+ if (e === 8)
242
+ return {
243
+ mode: "rgb",
244
+ r: (t >> 24 & 255) / 255,
245
+ g: (t >> 16 & 255) / 255,
246
+ b: (t >> 8 & 255) / 255,
247
+ alpha: (t & 255) / 255
248
+ };
249
+ }
250
+ }, ua = {
251
+ aliceblue: 15792383,
252
+ antiquewhite: 16444375,
253
+ aqua: 65535,
254
+ aquamarine: 8388564,
255
+ azure: 15794175,
256
+ beige: 16119260,
257
+ bisque: 16770244,
258
+ black: 0,
259
+ blanchedalmond: 16772045,
260
+ blue: 255,
261
+ blueviolet: 9055202,
262
+ brown: 10824234,
263
+ burlywood: 14596231,
264
+ cadetblue: 6266528,
265
+ chartreuse: 8388352,
266
+ chocolate: 13789470,
267
+ coral: 16744272,
268
+ cornflowerblue: 6591981,
269
+ cornsilk: 16775388,
270
+ crimson: 14423100,
271
+ cyan: 65535,
272
+ darkblue: 139,
273
+ darkcyan: 35723,
274
+ darkgoldenrod: 12092939,
275
+ darkgray: 11119017,
276
+ darkgreen: 25600,
277
+ darkgrey: 11119017,
278
+ darkkhaki: 12433259,
279
+ darkmagenta: 9109643,
280
+ darkolivegreen: 5597999,
281
+ darkorange: 16747520,
282
+ darkorchid: 10040012,
283
+ darkred: 9109504,
284
+ darksalmon: 15308410,
285
+ darkseagreen: 9419919,
286
+ darkslateblue: 4734347,
287
+ darkslategray: 3100495,
288
+ darkslategrey: 3100495,
289
+ darkturquoise: 52945,
290
+ darkviolet: 9699539,
291
+ deeppink: 16716947,
292
+ deepskyblue: 49151,
293
+ dimgray: 6908265,
294
+ dimgrey: 6908265,
295
+ dodgerblue: 2003199,
296
+ firebrick: 11674146,
297
+ floralwhite: 16775920,
298
+ forestgreen: 2263842,
299
+ fuchsia: 16711935,
300
+ gainsboro: 14474460,
301
+ ghostwhite: 16316671,
302
+ gold: 16766720,
303
+ goldenrod: 14329120,
304
+ gray: 8421504,
305
+ green: 32768,
306
+ greenyellow: 11403055,
307
+ grey: 8421504,
308
+ honeydew: 15794160,
309
+ hotpink: 16738740,
310
+ indianred: 13458524,
311
+ indigo: 4915330,
312
+ ivory: 16777200,
313
+ khaki: 15787660,
314
+ lavender: 15132410,
315
+ lavenderblush: 16773365,
316
+ lawngreen: 8190976,
317
+ lemonchiffon: 16775885,
318
+ lightblue: 11393254,
319
+ lightcoral: 15761536,
320
+ lightcyan: 14745599,
321
+ lightgoldenrodyellow: 16448210,
322
+ lightgray: 13882323,
323
+ lightgreen: 9498256,
324
+ lightgrey: 13882323,
325
+ lightpink: 16758465,
326
+ lightsalmon: 16752762,
327
+ lightseagreen: 2142890,
328
+ lightskyblue: 8900346,
329
+ lightslategray: 7833753,
330
+ lightslategrey: 7833753,
331
+ lightsteelblue: 11584734,
332
+ lightyellow: 16777184,
333
+ lime: 65280,
334
+ limegreen: 3329330,
335
+ linen: 16445670,
336
+ magenta: 16711935,
337
+ maroon: 8388608,
338
+ mediumaquamarine: 6737322,
339
+ mediumblue: 205,
340
+ mediumorchid: 12211667,
341
+ mediumpurple: 9662683,
342
+ mediumseagreen: 3978097,
343
+ mediumslateblue: 8087790,
344
+ mediumspringgreen: 64154,
345
+ mediumturquoise: 4772300,
346
+ mediumvioletred: 13047173,
347
+ midnightblue: 1644912,
348
+ mintcream: 16121850,
349
+ mistyrose: 16770273,
350
+ moccasin: 16770229,
351
+ navajowhite: 16768685,
352
+ navy: 128,
353
+ oldlace: 16643558,
354
+ olive: 8421376,
355
+ olivedrab: 7048739,
356
+ orange: 16753920,
357
+ orangered: 16729344,
358
+ orchid: 14315734,
359
+ palegoldenrod: 15657130,
360
+ palegreen: 10025880,
361
+ paleturquoise: 11529966,
362
+ palevioletred: 14381203,
363
+ papayawhip: 16773077,
364
+ peachpuff: 16767673,
365
+ peru: 13468991,
366
+ pink: 16761035,
367
+ plum: 14524637,
368
+ powderblue: 11591910,
369
+ purple: 8388736,
370
+ // Added in CSS Colors Level 4:
371
+ // https://drafts.csswg.org/css-color/#changes-from-3
372
+ rebeccapurple: 6697881,
373
+ red: 16711680,
374
+ rosybrown: 12357519,
375
+ royalblue: 4286945,
376
+ saddlebrown: 9127187,
377
+ salmon: 16416882,
378
+ sandybrown: 16032864,
379
+ seagreen: 3050327,
380
+ seashell: 16774638,
381
+ sienna: 10506797,
382
+ silver: 12632256,
383
+ skyblue: 8900331,
384
+ slateblue: 6970061,
385
+ slategray: 7372944,
386
+ slategrey: 7372944,
387
+ snow: 16775930,
388
+ springgreen: 65407,
389
+ steelblue: 4620980,
390
+ tan: 13808780,
391
+ teal: 32896,
392
+ thistle: 14204888,
393
+ tomato: 16737095,
394
+ turquoise: 4251856,
395
+ violet: 15631086,
396
+ wheat: 16113331,
397
+ white: 16777215,
398
+ whitesmoke: 16119285,
399
+ yellow: 16776960,
400
+ yellowgreen: 10145074
401
+ }, sa = (t) => on(ua[t.toLowerCase()], 6), da = /^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i, fa = (t) => {
402
+ let e;
403
+ return (e = t.match(da)) ? on(parseInt(e[1], 16), e[1].length) : void 0;
404
+ }, he = "([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)", _e = `${he}%`, Ct = `(?:${he}%|${he})`, ca = `(?:${he}(deg|grad|rad|turn)|${he})`, Ce = "\\s*,\\s*", pa = new RegExp(
405
+ `^rgba?\\(\\s*${he}${Ce}${he}${Ce}${he}\\s*(?:,\\s*${Ct}\\s*)?\\)$`
406
+ ), ha = new RegExp(
407
+ `^rgba?\\(\\s*${_e}${Ce}${_e}${Ce}${_e}\\s*(?:,\\s*${Ct}\\s*)?\\)$`
408
+ ), va = (t) => {
409
+ let e = { mode: "rgb" }, n;
410
+ if (n = t.match(pa))
411
+ n[1] !== void 0 && (e.r = n[1] / 255), n[2] !== void 0 && (e.g = n[2] / 255), n[3] !== void 0 && (e.b = n[3] / 255);
412
+ else if (n = t.match(ha))
413
+ n[1] !== void 0 && (e.r = n[1] / 100), n[2] !== void 0 && (e.g = n[2] / 100), n[3] !== void 0 && (e.b = n[3] / 100);
414
+ else
415
+ return;
416
+ return n[4] !== void 0 ? e.alpha = Math.max(0, Math.min(1, n[4] / 100)) : n[5] !== void 0 && (e.alpha = Math.max(0, Math.min(1, +n[5]))), e;
417
+ }, ma = (t, e) => t === void 0 ? void 0 : typeof t != "object" ? _a(t) : t.mode !== void 0 ? t : e ? { ...t, mode: e } : void 0, ba = (t = "rgb") => (e) => (e = ma(e, t)) !== void 0 ? (
418
+ // if the color's mode corresponds to our target mode
419
+ e.mode === t ? (
420
+ // then just return the color
421
+ e
422
+ ) : (
423
+ // otherwise check to see if we have a dedicated
424
+ // converter for the target mode
425
+ le[e.mode][t] ? (
426
+ // and return its result...
427
+ le[e.mode][t](e)
428
+ ) : (
429
+ // ...otherwise pass through RGB as an intermediary step.
430
+ // if the target mode is RGB...
431
+ t === "rgb" ? (
432
+ // just return the RGB
433
+ le[e.mode].rgb(e)
434
+ ) : (
435
+ // otherwise convert color.mode -> RGB -> target_mode
436
+ le.rgb[t](le[e.mode].rgb(e))
437
+ )
438
+ )
439
+ )
440
+ ) : void 0, le = {}, ln = {}, He = [], rn = {}, ga = (t) => t, ya = (t) => (le[t.mode] = {
441
+ ...le[t.mode],
442
+ ...t.toMode
443
+ }, Object.keys(t.fromMode || {}).forEach((e) => {
444
+ le[e] || (le[e] = {}), le[e][t.mode] = t.fromMode[e];
445
+ }), t.ranges || (t.ranges = {}), t.difference || (t.difference = {}), t.channels.forEach((e) => {
446
+ if (t.ranges[e] === void 0 && (t.ranges[e] = [0, 1]), !t.interpolate[e])
447
+ throw new Error(`Missing interpolator for: ${e}`);
448
+ typeof t.interpolate[e] == "function" && (t.interpolate[e] = {
449
+ use: t.interpolate[e]
450
+ }), t.interpolate[e].fixup || (t.interpolate[e].fixup = ga);
451
+ }), ln[t.mode] = t, (t.parse || []).forEach((e) => {
452
+ Ma(e, t.mode);
453
+ }), ba(t.mode)), xa = (t) => ln[t], Ma = (t, e) => {
454
+ if (typeof t == "string") {
455
+ if (!e)
456
+ throw new Error("'mode' required when 'parser' is a string");
457
+ rn[t] = e;
458
+ } else typeof t == "function" && He.indexOf(t) < 0 && He.push(t);
459
+ }, vt = /[^\x00-\x7F]|[a-zA-Z_]/, Ca = /[^\x00-\x7F]|[-\w]/, c = {
460
+ Function: "function",
461
+ Ident: "ident",
462
+ Number: "number",
463
+ Percentage: "percentage",
464
+ ParenClose: ")",
465
+ None: "none",
466
+ Hue: "hue",
467
+ Alpha: "alpha"
468
+ };
469
+ let y = 0;
470
+ function Xe(t) {
471
+ let e = t[y], n = t[y + 1];
472
+ return e === "-" || e === "+" ? /\d/.test(n) || n === "." && /\d/.test(t[y + 2]) : e === "." ? /\d/.test(n) : /\d/.test(e);
473
+ }
474
+ function mt(t) {
475
+ if (y >= t.length)
476
+ return !1;
477
+ let e = t[y];
478
+ if (vt.test(e))
479
+ return !0;
480
+ if (e === "-") {
481
+ if (t.length - y < 2)
482
+ return !1;
483
+ let n = t[y + 1];
484
+ return !!(n === "-" || vt.test(n));
485
+ }
486
+ return !1;
487
+ }
488
+ const wa = {
489
+ deg: 1,
490
+ rad: 180 / Math.PI,
491
+ grad: 9 / 10,
492
+ turn: 360
493
+ };
494
+ function ke(t) {
495
+ let e = "";
496
+ if ((t[y] === "-" || t[y] === "+") && (e += t[y++]), e += Ie(t), t[y] === "." && /\d/.test(t[y + 1]) && (e += t[y++] + Ie(t)), (t[y] === "e" || t[y] === "E") && ((t[y + 1] === "-" || t[y + 1] === "+") && /\d/.test(t[y + 2]) ? e += t[y++] + t[y++] + Ie(t) : /\d/.test(t[y + 1]) && (e += t[y++] + Ie(t))), mt(t)) {
497
+ let n = Le(t);
498
+ return n === "deg" || n === "rad" || n === "turn" || n === "grad" ? { type: c.Hue, value: e * wa[n] } : void 0;
499
+ }
500
+ return t[y] === "%" ? (y++, { type: c.Percentage, value: +e }) : { type: c.Number, value: +e };
501
+ }
502
+ function Ie(t) {
503
+ let e = "";
504
+ for (; /\d/.test(t[y]); )
505
+ e += t[y++];
506
+ return e;
507
+ }
508
+ function Le(t) {
509
+ let e = "";
510
+ for (; y < t.length && Ca.test(t[y]); )
511
+ e += t[y++];
512
+ return e;
513
+ }
514
+ function $a(t) {
515
+ let e = Le(t);
516
+ return t[y] === "(" ? (y++, { type: c.Function, value: e }) : e === "none" ? { type: c.None, value: void 0 } : { type: c.Ident, value: e };
517
+ }
518
+ function Sa(t = "") {
519
+ let e = t.trim(), n = [], a;
520
+ for (y = 0; y < e.length; ) {
521
+ if (a = e[y++], a === `
522
+ ` || a === " " || a === " ") {
523
+ for (; y < e.length && (e[y] === `
524
+ ` || e[y] === " " || e[y] === " "); )
525
+ y++;
526
+ continue;
527
+ }
528
+ if (a === ",")
529
+ return;
530
+ if (a === ")") {
531
+ n.push({ type: c.ParenClose });
532
+ continue;
533
+ }
534
+ if (a === "+") {
535
+ if (y--, Xe(e)) {
536
+ n.push(ke(e));
537
+ continue;
538
+ }
539
+ return;
540
+ }
541
+ if (a === "-") {
542
+ if (y--, Xe(e)) {
543
+ n.push(ke(e));
544
+ continue;
545
+ }
546
+ if (mt(e)) {
547
+ n.push({ type: c.Ident, value: Le(e) });
548
+ continue;
549
+ }
550
+ return;
551
+ }
552
+ if (a === ".") {
553
+ if (y--, Xe(e)) {
554
+ n.push(ke(e));
555
+ continue;
556
+ }
557
+ return;
558
+ }
559
+ if (a === "/") {
560
+ for (; y < e.length && (e[y] === `
561
+ ` || e[y] === " " || e[y] === " "); )
562
+ y++;
563
+ let o;
564
+ if (Xe(e) && (o = ke(e), o.type !== c.Hue)) {
565
+ n.push({ type: c.Alpha, value: o });
566
+ continue;
567
+ }
568
+ if (mt(e) && Le(e) === "none") {
569
+ n.push({
570
+ type: c.Alpha,
571
+ value: { type: c.None, value: void 0 }
572
+ });
573
+ continue;
574
+ }
575
+ return;
576
+ }
577
+ if (/\d/.test(a)) {
578
+ y--, n.push(ke(e));
579
+ continue;
580
+ }
581
+ if (vt.test(a)) {
582
+ y--, n.push($a(e));
583
+ continue;
584
+ }
585
+ return;
586
+ }
587
+ return n;
588
+ }
589
+ function ka(t) {
590
+ t._i = 0;
591
+ let e = t[t._i++];
592
+ if (!e || e.type !== c.Function || e.value !== "color" || (e = t[t._i++], e.type !== c.Ident))
593
+ return;
594
+ const n = rn[e.value];
595
+ if (!n)
596
+ return;
597
+ const a = { mode: n }, o = un(t, !1);
598
+ if (!o)
599
+ return;
600
+ const l = xa(n).channels;
601
+ for (let r = 0, i, u; r < l.length; r++)
602
+ i = o[r], u = l[r], i.type !== c.None && (a[u] = i.type === c.Number ? i.value : i.value / 100, u === "alpha" && (a[u] = Math.max(0, Math.min(1, a[u]))));
603
+ return a;
604
+ }
605
+ function un(t, e) {
606
+ const n = [];
607
+ let a;
608
+ for (; t._i < t.length; ) {
609
+ if (a = t[t._i++], a.type === c.None || a.type === c.Number || a.type === c.Alpha || a.type === c.Percentage || e && a.type === c.Hue) {
610
+ n.push(a);
611
+ continue;
612
+ }
613
+ if (a.type === c.ParenClose) {
614
+ if (t._i < t.length)
615
+ return;
616
+ continue;
617
+ }
618
+ return;
619
+ }
620
+ if (!(n.length < 3 || n.length > 4)) {
621
+ if (n.length === 4) {
622
+ if (n[3].type !== c.Alpha)
623
+ return;
624
+ n[3] = n[3].value;
625
+ }
626
+ return n.length === 3 && n.push({ type: c.None, value: void 0 }), n.every((o) => o.type !== c.Alpha) ? n : void 0;
627
+ }
628
+ }
629
+ function Ra(t, e) {
630
+ t._i = 0;
631
+ let n = t[t._i++];
632
+ if (!n || n.type !== c.Function)
633
+ return;
634
+ let a = un(t, e);
635
+ if (a)
636
+ return a.unshift(n.value), a;
637
+ }
638
+ const _a = (t) => {
639
+ if (typeof t != "string")
640
+ return;
641
+ const e = Sa(t), n = e ? Ra(e, !0) : void 0;
642
+ let a, o = 0, l = He.length;
643
+ for (; o < l; )
644
+ if ((a = He[o++](t, n)) !== void 0)
645
+ return a;
646
+ return e ? ka(e) : void 0;
647
+ };
648
+ function Ta(t, e) {
649
+ if (!e || e[0] !== "rgb" && e[0] !== "rgba")
650
+ return;
651
+ const n = { mode: "rgb" }, [, a, o, l, r] = e;
652
+ if (!(a.type === c.Hue || o.type === c.Hue || l.type === c.Hue))
653
+ return a.type !== c.None && (n.r = a.type === c.Number ? a.value / 255 : a.value / 100), o.type !== c.None && (n.g = o.type === c.Number ? o.value / 255 : o.value / 100), l.type !== c.None && (n.b = l.type === c.Number ? l.value / 255 : l.value / 100), r.type !== c.None && (n.alpha = Math.min(
654
+ 1,
655
+ Math.max(
656
+ 0,
657
+ r.type === c.Number ? r.value : r.value / 100
658
+ )
659
+ )), n;
660
+ }
661
+ const za = (t) => t === "transparent" ? { mode: "rgb", r: 0, g: 0, b: 0, alpha: 0 } : void 0, Aa = (t, e, n) => t + n * (e - t), Va = (t) => {
662
+ let e = [];
663
+ for (let n = 0; n < t.length - 1; n++) {
664
+ let a = t[n], o = t[n + 1];
665
+ a === void 0 && o === void 0 ? e.push(void 0) : a !== void 0 && o !== void 0 ? e.push([a, o]) : e.push(a !== void 0 ? [a, a] : [o, o]);
666
+ }
667
+ return e;
668
+ }, Ea = (t) => (e) => {
669
+ let n = Va(e);
670
+ return (a) => {
671
+ let o = a * n.length, l = a >= 1 ? n.length - 1 : Math.max(Math.floor(o), 0), r = n[l];
672
+ return r === void 0 ? void 0 : t(r[0], r[1], o - l);
673
+ };
674
+ }, _ = Ea(Aa), ve = (t) => {
675
+ let e = !1, n = t.map((a) => a !== void 0 ? (e = !0, a) : 1);
676
+ return e ? n : t;
677
+ }, we = {
678
+ mode: "rgb",
679
+ channels: ["r", "g", "b", "alpha"],
680
+ parse: [
681
+ Ta,
682
+ fa,
683
+ va,
684
+ sa,
685
+ za,
686
+ "srgb"
687
+ ],
688
+ serialize: "srgb",
689
+ interpolate: {
690
+ r: _,
691
+ g: _,
692
+ b: _,
693
+ alpha: { use: _, fixup: ve }
694
+ },
695
+ gamut: !0,
696
+ white: { r: 1, g: 1, b: 1 },
697
+ black: { r: 0, g: 0, b: 0 }
698
+ }, at = (t = 0) => Math.pow(Math.abs(t), 563 / 256) * Math.sign(t), Xt = (t) => {
699
+ let e = at(t.r), n = at(t.g), a = at(t.b), o = {
700
+ mode: "xyz65",
701
+ x: 0.5766690429101305 * e + 0.1855582379065463 * n + 0.1882286462349947 * a,
702
+ y: 0.297344975250536 * e + 0.6273635662554661 * n + 0.0752914584939979 * a,
703
+ z: 0.0270313613864123 * e + 0.0706888525358272 * n + 0.9913375368376386 * a
704
+ };
705
+ return t.alpha !== void 0 && (o.alpha = t.alpha), o;
706
+ }, ot = (t) => Math.pow(Math.abs(t), 256 / 563) * Math.sign(t), It = ({ x: t, y: e, z: n, alpha: a }) => {
707
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
708
+ let o = {
709
+ mode: "a98",
710
+ r: ot(
711
+ t * 2.0415879038107465 - e * 0.5650069742788597 - 0.3447313507783297 * n
712
+ ),
713
+ g: ot(
714
+ t * -0.9692436362808798 + e * 1.8759675015077206 + 0.0415550574071756 * n
715
+ ),
716
+ b: ot(
717
+ t * 0.0134442806320312 - e * 0.1183623922310184 + 1.0151749943912058 * n
718
+ )
719
+ };
720
+ return a !== void 0 && (o.alpha = a), o;
721
+ }, lt = (t = 0) => {
722
+ const e = Math.abs(t);
723
+ return e <= 0.04045 ? t / 12.92 : (Math.sign(t) || 1) * Math.pow((e + 0.055) / 1.055, 2.4);
724
+ }, Ae = ({ r: t, g: e, b: n, alpha: a }) => {
725
+ let o = {
726
+ mode: "lrgb",
727
+ r: lt(t),
728
+ g: lt(e),
729
+ b: lt(n)
730
+ };
731
+ return a !== void 0 && (o.alpha = a), o;
732
+ }, We = (t) => {
733
+ let { r: e, g: n, b: a, alpha: o } = Ae(t), l = {
734
+ mode: "xyz65",
735
+ x: 0.4123907992659593 * e + 0.357584339383878 * n + 0.1804807884018343 * a,
736
+ y: 0.2126390058715102 * e + 0.715168678767756 * n + 0.0721923153607337 * a,
737
+ z: 0.0193308187155918 * e + 0.119194779794626 * n + 0.9505321522496607 * a
738
+ };
739
+ return o !== void 0 && (l.alpha = o), l;
740
+ }, rt = (t = 0) => {
741
+ const e = Math.abs(t);
742
+ return e > 31308e-7 ? (Math.sign(t) || 1) * (1.055 * Math.pow(e, 1 / 2.4) - 0.055) : t * 12.92;
743
+ }, Ve = ({ r: t, g: e, b: n, alpha: a }, o = "rgb") => {
744
+ let l = {
745
+ mode: o,
746
+ r: rt(t),
747
+ g: rt(e),
748
+ b: rt(n)
749
+ };
750
+ return a !== void 0 && (l.alpha = a), l;
751
+ }, Ze = ({ x: t, y: e, z: n, alpha: a }) => {
752
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
753
+ let o = Ve({
754
+ r: t * 3.2409699419045226 - e * 1.537383177570094 - 0.4986107602930034 * n,
755
+ g: t * -0.9692436362808796 + e * 1.8759675015077204 + 0.0415550574071756 * n,
756
+ b: t * 0.0556300796969936 - e * 0.2039769588889765 + 1.0569715142428784 * n
757
+ });
758
+ return a !== void 0 && (o.alpha = a), o;
759
+ }, Na = {
760
+ ...we,
761
+ mode: "a98",
762
+ parse: ["a98-rgb"],
763
+ serialize: "a98-rgb",
764
+ fromMode: {
765
+ rgb: (t) => It(We(t)),
766
+ xyz65: It
767
+ },
768
+ toMode: {
769
+ rgb: (t) => Ze(Xt(t)),
770
+ xyz65: Xt
771
+ }
772
+ }, oe = (t) => (t = t % 360) < 0 ? t + 360 : t, Da = (t, e) => t.map((n, a, o) => {
773
+ if (n === void 0)
774
+ return n;
775
+ let l = oe(n);
776
+ return a === 0 || t[a - 1] === void 0 ? l : e(l - oe(o[a - 1]));
777
+ }).reduce((n, a) => !n.length || a === void 0 || n[n.length - 1] === void 0 ? (n.push(a), n) : (n.push(a + n[n.length - 1]), n), []), Je = (t) => Da(t, (e) => Math.abs(e) <= 180 ? e : e - 360 * Math.sign(e)), sn = (t, e) => {
778
+ if (t.h === void 0 || e.h === void 0 || !t.s || !e.s)
779
+ return 0;
780
+ let n = oe(t.h), a = oe(e.h), o = Math.sin((a - n + 360) / 2 * Math.PI / 180);
781
+ return 2 * Math.sqrt(t.s * e.s) * o;
782
+ }, Pa = (t, e) => {
783
+ if (t.h === void 0 || e.h === void 0)
784
+ return 0;
785
+ let n = oe(t.h), a = oe(e.h);
786
+ return Math.abs(a - n) > 180 ? n - (a - 360 * Math.sign(a - n)) : a - n;
787
+ }, Xa = (t, e) => {
788
+ if (t.h === void 0 || e.h === void 0 || !t.c || !e.c)
789
+ return 0;
790
+ let n = oe(t.h), a = oe(e.h), o = Math.sin((a - n + 360) / 2 * Math.PI / 180);
791
+ return 2 * Math.sqrt(t.c * e.c) * o;
792
+ }, Qe = (t) => {
793
+ let e = t.reduce(
794
+ (a, o) => {
795
+ if (o !== void 0) {
796
+ let l = o * Math.PI / 180;
797
+ a.sin += Math.sin(l), a.cos += Math.cos(l);
798
+ }
799
+ return a;
800
+ },
801
+ { sin: 0, cos: 0 }
802
+ ), n = Math.atan2(e.sin, e.cos) * 180 / Math.PI;
803
+ return n < 0 ? 360 + n : n;
804
+ }, Ke = ({ l: t, a: e, b: n, alpha: a }, o = "lch") => {
805
+ e === void 0 && (e = 0), n === void 0 && (n = 0);
806
+ let l = Math.sqrt(e * e + n * n), r = { mode: o, l: t, c: l };
807
+ return l && (r.h = oe(Math.atan2(n, e) * 180 / Math.PI)), a !== void 0 && (r.alpha = a), r;
808
+ }, qe = ({ l: t, c: e, h: n, alpha: a }, o = "lab") => {
809
+ n === void 0 && (n = 0);
810
+ let l = {
811
+ mode: o,
812
+ l: t,
813
+ a: e ? e * Math.cos(n / 180 * Math.PI) : 0,
814
+ b: e ? e * Math.sin(n / 180 * Math.PI) : 0
815
+ };
816
+ return a !== void 0 && (l.alpha = a), l;
817
+ }, Me = {
818
+ X: 0.3457 / 0.3585,
819
+ Y: 1,
820
+ Z: (1 - 0.3457 - 0.3585) / 0.3585
821
+ };
822
+ function Ia({ h: t, s: e, l: n, alpha: a }) {
823
+ t = oe(t !== void 0 ? t : 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
824
+ let o = n + e * (n < 0.5 ? n : 1 - n), l = o - (o - n) * 2 * Math.abs(t / 60 % 2 - 1), r;
825
+ switch (Math.floor(t / 60)) {
826
+ case 0:
827
+ r = { r: o, g: l, b: 2 * n - o };
828
+ break;
829
+ case 1:
830
+ r = { r: l, g: o, b: 2 * n - o };
831
+ break;
832
+ case 2:
833
+ r = { r: 2 * n - o, g: o, b: l };
834
+ break;
835
+ case 3:
836
+ r = { r: 2 * n - o, g: l, b: o };
837
+ break;
838
+ case 4:
839
+ r = { r: l, g: 2 * n - o, b: o };
840
+ break;
841
+ case 5:
842
+ r = { r: o, g: 2 * n - o, b: l };
843
+ break;
844
+ default:
845
+ r = { r: 2 * n - o, g: 2 * n - o, b: 2 * n - o };
846
+ }
847
+ return r.mode = "rgb", a !== void 0 && (r.alpha = a), r;
848
+ }
849
+ function Ba({ r: t, g: e, b: n, alpha: a }) {
850
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
851
+ let o = Math.max(t, e, n), l = Math.min(t, e, n), r = {
852
+ mode: "hsl",
853
+ s: o === l ? 0 : (o - l) / (1 - Math.abs(o + l - 1)),
854
+ l: 0.5 * (o + l)
855
+ };
856
+ return o - l !== 0 && (r.h = (o === t ? (e - n) / (o - l) + (e < n) * 6 : o === e ? (n - t) / (o - l) + 2 : (t - e) / (o - l) + 4) * 60), a !== void 0 && (r.alpha = a), r;
857
+ }
858
+ const Ya = (t, e) => {
859
+ switch (e) {
860
+ case "deg":
861
+ return +t;
862
+ case "rad":
863
+ return t / Math.PI * 180;
864
+ case "grad":
865
+ return t / 10 * 9;
866
+ case "turn":
867
+ return t * 360;
868
+ }
869
+ }, Fa = new RegExp(
870
+ `^hsla?\\(\\s*${ca}${Ce}${_e}${Ce}${_e}\\s*(?:,\\s*${Ct}\\s*)?\\)$`
871
+ ), Oa = (t) => {
872
+ let e = t.match(Fa);
873
+ if (!e) return;
874
+ let n = { mode: "hsl" };
875
+ return e[3] !== void 0 ? n.h = +e[3] : e[1] !== void 0 && e[2] !== void 0 && (n.h = Ya(e[1], e[2])), e[4] !== void 0 && (n.s = Math.min(Math.max(0, e[4] / 100), 1)), e[5] !== void 0 && (n.l = Math.min(Math.max(0, e[5] / 100), 1)), e[6] !== void 0 ? n.alpha = Math.max(0, Math.min(1, e[6] / 100)) : e[7] !== void 0 && (n.alpha = Math.max(0, Math.min(1, +e[7]))), n;
876
+ };
877
+ function Ha(t, e) {
878
+ if (!e || e[0] !== "hsl" && e[0] !== "hsla")
879
+ return;
880
+ const n = { mode: "hsl" }, [, a, o, l, r] = e;
881
+ if (a.type !== c.None) {
882
+ if (a.type === c.Percentage)
883
+ return;
884
+ n.h = a.value;
885
+ }
886
+ if (o.type !== c.None) {
887
+ if (o.type === c.Hue)
888
+ return;
889
+ n.s = o.value / 100;
890
+ }
891
+ if (l.type !== c.None) {
892
+ if (l.type === c.Hue)
893
+ return;
894
+ n.l = l.value / 100;
895
+ }
896
+ return r.type !== c.None && (n.alpha = Math.min(
897
+ 1,
898
+ Math.max(
899
+ 0,
900
+ r.type === c.Number ? r.value : r.value / 100
901
+ )
902
+ )), n;
903
+ }
904
+ const La = {
905
+ mode: "hsl",
906
+ toMode: {
907
+ rgb: Ia
908
+ },
909
+ fromMode: {
910
+ rgb: Ba
911
+ },
912
+ channels: ["h", "s", "l", "alpha"],
913
+ ranges: {
914
+ h: [0, 360]
915
+ },
916
+ gamut: "rgb",
917
+ parse: [Ha, Oa],
918
+ serialize: (t) => `hsl(${t.h !== void 0 ? t.h : "none"} ${t.s !== void 0 ? t.s * 100 + "%" : "none"} ${t.l !== void 0 ? t.l * 100 + "%" : "none"}${t.alpha < 1 ? ` / ${t.alpha}` : ""})`,
919
+ interpolate: {
920
+ h: { use: _, fixup: Je },
921
+ s: _,
922
+ l: _,
923
+ alpha: { use: _, fixup: ve }
924
+ },
925
+ difference: {
926
+ h: sn
927
+ },
928
+ average: {
929
+ h: Qe
930
+ }
931
+ };
932
+ function dn({ h: t, s: e, v: n, alpha: a }) {
933
+ t = oe(t !== void 0 ? t : 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
934
+ let o = Math.abs(t / 60 % 2 - 1), l;
935
+ switch (Math.floor(t / 60)) {
936
+ case 0:
937
+ l = { r: n, g: n * (1 - e * o), b: n * (1 - e) };
938
+ break;
939
+ case 1:
940
+ l = { r: n * (1 - e * o), g: n, b: n * (1 - e) };
941
+ break;
942
+ case 2:
943
+ l = { r: n * (1 - e), g: n, b: n * (1 - e * o) };
944
+ break;
945
+ case 3:
946
+ l = { r: n * (1 - e), g: n * (1 - e * o), b: n };
947
+ break;
948
+ case 4:
949
+ l = { r: n * (1 - e * o), g: n * (1 - e), b: n };
950
+ break;
951
+ case 5:
952
+ l = { r: n, g: n * (1 - e), b: n * (1 - e * o) };
953
+ break;
954
+ default:
955
+ l = { r: n * (1 - e), g: n * (1 - e), b: n * (1 - e) };
956
+ }
957
+ return l.mode = "rgb", a !== void 0 && (l.alpha = a), l;
958
+ }
959
+ function fn({ r: t, g: e, b: n, alpha: a }) {
960
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
961
+ let o = Math.max(t, e, n), l = Math.min(t, e, n), r = {
962
+ mode: "hsv",
963
+ s: o === 0 ? 0 : 1 - l / o,
964
+ v: o
965
+ };
966
+ return o - l !== 0 && (r.h = (o === t ? (e - n) / (o - l) + (e < n) * 6 : o === e ? (n - t) / (o - l) + 2 : (t - e) / (o - l) + 4) * 60), a !== void 0 && (r.alpha = a), r;
967
+ }
968
+ const Ka = {
969
+ mode: "hsv",
970
+ toMode: {
971
+ rgb: dn
972
+ },
973
+ parse: ["--hsv"],
974
+ serialize: "--hsv",
975
+ fromMode: {
976
+ rgb: fn
977
+ },
978
+ channels: ["h", "s", "v", "alpha"],
979
+ ranges: {
980
+ h: [0, 360]
981
+ },
982
+ gamut: "rgb",
983
+ interpolate: {
984
+ h: { use: _, fixup: Je },
985
+ s: _,
986
+ v: _,
987
+ alpha: { use: _, fixup: ve }
988
+ },
989
+ difference: {
990
+ h: sn
991
+ },
992
+ average: {
993
+ h: Qe
994
+ }
995
+ };
996
+ function qa({ h: t, w: e, b: n, alpha: a }) {
997
+ if (e === void 0 && (e = 0), n === void 0 && (n = 0), e + n > 1) {
998
+ let o = e + n;
999
+ e /= o, n /= o;
1000
+ }
1001
+ return dn({
1002
+ h: t,
1003
+ s: n === 1 ? 1 : 1 - e / (1 - n),
1004
+ v: 1 - n,
1005
+ alpha: a
1006
+ });
1007
+ }
1008
+ function ja(t) {
1009
+ let e = fn(t);
1010
+ if (e === void 0) return;
1011
+ let n = e.s !== void 0 ? e.s : 0, a = e.v !== void 0 ? e.v : 0, o = {
1012
+ mode: "hwb",
1013
+ w: (1 - n) * a,
1014
+ b: 1 - a
1015
+ };
1016
+ return e.h !== void 0 && (o.h = e.h), e.alpha !== void 0 && (o.alpha = e.alpha), o;
1017
+ }
1018
+ function Ga(t, e) {
1019
+ if (!e || e[0] !== "hwb")
1020
+ return;
1021
+ const n = { mode: "hwb" }, [, a, o, l, r] = e;
1022
+ if (a.type !== c.None) {
1023
+ if (a.type === c.Percentage)
1024
+ return;
1025
+ n.h = a.value;
1026
+ }
1027
+ if (o.type !== c.None) {
1028
+ if (o.type === c.Hue)
1029
+ return;
1030
+ n.w = o.value / 100;
1031
+ }
1032
+ if (l.type !== c.None) {
1033
+ if (l.type === c.Hue)
1034
+ return;
1035
+ n.b = l.value / 100;
1036
+ }
1037
+ return r.type !== c.None && (n.alpha = Math.min(
1038
+ 1,
1039
+ Math.max(
1040
+ 0,
1041
+ r.type === c.Number ? r.value : r.value / 100
1042
+ )
1043
+ )), n;
1044
+ }
1045
+ const Ua = {
1046
+ mode: "hwb",
1047
+ toMode: {
1048
+ rgb: qa
1049
+ },
1050
+ fromMode: {
1051
+ rgb: ja
1052
+ },
1053
+ channels: ["h", "w", "b", "alpha"],
1054
+ ranges: {
1055
+ h: [0, 360]
1056
+ },
1057
+ gamut: "rgb",
1058
+ parse: [Ga],
1059
+ serialize: (t) => `hwb(${t.h !== void 0 ? t.h : "none"} ${t.w !== void 0 ? t.w * 100 + "%" : "none"} ${t.b !== void 0 ? t.b * 100 + "%" : "none"}${t.alpha < 1 ? ` / ${t.alpha}` : ""})`,
1060
+ interpolate: {
1061
+ h: { use: _, fixup: Je },
1062
+ w: _,
1063
+ b: _,
1064
+ alpha: { use: _, fixup: ve }
1065
+ },
1066
+ difference: {
1067
+ h: Pa
1068
+ },
1069
+ average: {
1070
+ h: Qe
1071
+ }
1072
+ }, cn = Math.pow(29, 3) / Math.pow(3, 3), pn = Math.pow(6, 3) / Math.pow(29, 3);
1073
+ let it = (t) => Math.pow(t, 3) > pn ? Math.pow(t, 3) : (116 * t - 16) / cn;
1074
+ const wt = ({ l: t, a: e, b: n, alpha: a }) => {
1075
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
1076
+ let o = (t + 16) / 116, l = e / 500 + o, r = o - n / 200, i = {
1077
+ mode: "xyz50",
1078
+ x: it(l) * Me.X,
1079
+ y: it(o) * Me.Y,
1080
+ z: it(r) * Me.Z
1081
+ };
1082
+ return a !== void 0 && (i.alpha = a), i;
1083
+ }, $t = ({ x: t, y: e, z: n, alpha: a }) => {
1084
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
1085
+ let o = Ve({
1086
+ r: t * 3.1341359569958707 - e * 1.6173863321612538 - 0.4906619460083532 * n,
1087
+ g: t * -0.978795502912089 + e * 1.916254567259524 + 0.03344273116131949 * n,
1088
+ b: t * 0.07195537988411677 - e * 0.2289768264158322 + 1.405386058324125 * n
1089
+ });
1090
+ return a !== void 0 && (o.alpha = a), o;
1091
+ }, hn = (t) => $t(wt(t)), St = (t) => {
1092
+ let { r: e, g: n, b: a, alpha: o } = Ae(t), l = {
1093
+ mode: "xyz50",
1094
+ x: 0.436065742824811 * e + 0.3851514688337912 * n + 0.14307845442264197 * a,
1095
+ y: 0.22249319175623702 * e + 0.7168870538238823 * n + 0.06061979053616537 * a,
1096
+ z: 0.013923904500943465 * e + 0.09708128566574634 * n + 0.7140993584005155 * a
1097
+ };
1098
+ return o !== void 0 && (l.alpha = o), l;
1099
+ }, ut = (t) => t > pn ? Math.cbrt(t) : (cn * t + 16) / 116, kt = ({ x: t, y: e, z: n, alpha: a }) => {
1100
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
1101
+ let o = ut(t / Me.X), l = ut(e / Me.Y), r = ut(n / Me.Z), i = {
1102
+ mode: "lab",
1103
+ l: 116 * l - 16,
1104
+ a: 500 * (o - l),
1105
+ b: 200 * (l - r)
1106
+ };
1107
+ return a !== void 0 && (i.alpha = a), i;
1108
+ }, vn = (t) => {
1109
+ let e = kt(St(t));
1110
+ return t.r === t.b && t.b === t.g && (e.a = e.b = 0), e;
1111
+ };
1112
+ function Wa(t, e) {
1113
+ if (!e || e[0] !== "lab")
1114
+ return;
1115
+ const n = { mode: "lab" }, [, a, o, l, r] = e;
1116
+ if (!(a.type === c.Hue || o.type === c.Hue || l.type === c.Hue))
1117
+ return a.type !== c.None && (n.l = Math.min(Math.max(0, a.value), 100)), o.type !== c.None && (n.a = o.type === c.Number ? o.value : o.value * 125 / 100), l.type !== c.None && (n.b = l.type === c.Number ? l.value : l.value * 125 / 100), r.type !== c.None && (n.alpha = Math.min(
1118
+ 1,
1119
+ Math.max(
1120
+ 0,
1121
+ r.type === c.Number ? r.value : r.value / 100
1122
+ )
1123
+ )), n;
1124
+ }
1125
+ const mn = {
1126
+ mode: "lab",
1127
+ toMode: {
1128
+ xyz50: wt,
1129
+ rgb: hn
1130
+ },
1131
+ fromMode: {
1132
+ xyz50: kt,
1133
+ rgb: vn
1134
+ },
1135
+ channels: ["l", "a", "b", "alpha"],
1136
+ ranges: {
1137
+ l: [0, 100],
1138
+ a: [-125, 125],
1139
+ b: [-125, 125]
1140
+ },
1141
+ parse: [Wa],
1142
+ serialize: (t) => `lab(${t.l !== void 0 ? t.l : "none"} ${t.a !== void 0 ? t.a : "none"} ${t.b !== void 0 ? t.b : "none"}${t.alpha < 1 ? ` / ${t.alpha}` : ""})`,
1143
+ interpolate: {
1144
+ l: _,
1145
+ a: _,
1146
+ b: _,
1147
+ alpha: { use: _, fixup: ve }
1148
+ }
1149
+ };
1150
+ function Za(t, e) {
1151
+ if (!e || e[0] !== "lch")
1152
+ return;
1153
+ const n = { mode: "lch" }, [, a, o, l, r] = e;
1154
+ if (a.type !== c.None) {
1155
+ if (a.type === c.Hue)
1156
+ return;
1157
+ n.l = Math.min(Math.max(0, a.value), 100);
1158
+ }
1159
+ if (o.type !== c.None && (n.c = Math.max(
1160
+ 0,
1161
+ o.type === c.Number ? o.value : o.value * 150 / 100
1162
+ )), l.type !== c.None) {
1163
+ if (l.type === c.Percentage)
1164
+ return;
1165
+ n.h = l.value;
1166
+ }
1167
+ return r.type !== c.None && (n.alpha = Math.min(
1168
+ 1,
1169
+ Math.max(
1170
+ 0,
1171
+ r.type === c.Number ? r.value : r.value / 100
1172
+ )
1173
+ )), n;
1174
+ }
1175
+ const bn = {
1176
+ mode: "lch",
1177
+ toMode: {
1178
+ lab: qe,
1179
+ rgb: (t) => hn(qe(t))
1180
+ },
1181
+ fromMode: {
1182
+ rgb: (t) => Ke(vn(t)),
1183
+ lab: Ke
1184
+ },
1185
+ channels: ["l", "c", "h", "alpha"],
1186
+ ranges: {
1187
+ l: [0, 100],
1188
+ c: [0, 150],
1189
+ h: [0, 360]
1190
+ },
1191
+ parse: [Za],
1192
+ serialize: (t) => `lch(${t.l !== void 0 ? t.l : "none"} ${t.c !== void 0 ? t.c : "none"} ${t.h !== void 0 ? t.h : "none"}${t.alpha < 1 ? ` / ${t.alpha}` : ""})`,
1193
+ interpolate: {
1194
+ h: { use: _, fixup: Je },
1195
+ c: _,
1196
+ l: _,
1197
+ alpha: { use: _, fixup: ve }
1198
+ },
1199
+ difference: {
1200
+ h: Xa
1201
+ },
1202
+ average: {
1203
+ h: Qe
1204
+ }
1205
+ }, Ja = {
1206
+ ...we,
1207
+ mode: "lrgb",
1208
+ toMode: {
1209
+ rgb: Ve
1210
+ },
1211
+ fromMode: {
1212
+ rgb: Ae
1213
+ },
1214
+ parse: ["srgb-linear"],
1215
+ serialize: "srgb-linear"
1216
+ }, gn = ({ r: t, g: e, b: n, alpha: a }) => {
1217
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
1218
+ let o = Math.cbrt(
1219
+ 0.412221469470763 * t + 0.5363325372617348 * e + 0.0514459932675022 * n
1220
+ ), l = Math.cbrt(
1221
+ 0.2119034958178252 * t + 0.6806995506452344 * e + 0.1073969535369406 * n
1222
+ ), r = Math.cbrt(
1223
+ 0.0883024591900564 * t + 0.2817188391361215 * e + 0.6299787016738222 * n
1224
+ ), i = {
1225
+ mode: "oklab",
1226
+ l: 0.210454268309314 * o + 0.7936177747023054 * l - 0.0040720430116193 * r,
1227
+ a: 1.9779985324311684 * o - 2.42859224204858 * l + 0.450593709617411 * r,
1228
+ b: 0.0259040424655478 * o + 0.7827717124575296 * l - 0.8086757549230774 * r
1229
+ };
1230
+ return a !== void 0 && (i.alpha = a), i;
1231
+ }, yn = (t) => {
1232
+ let e = gn(Ae(t));
1233
+ return t.r === t.b && t.b === t.g && (e.a = e.b = 0), e;
1234
+ }, xn = ({ l: t, a: e, b: n, alpha: a }) => {
1235
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
1236
+ let o = Math.pow(t + 0.3963377773761749 * e + 0.2158037573099136 * n, 3), l = Math.pow(t - 0.1055613458156586 * e - 0.0638541728258133 * n, 3), r = Math.pow(t - 0.0894841775298119 * e - 1.2914855480194092 * n, 3), i = {
1237
+ mode: "lrgb",
1238
+ r: 4.076741636075957 * o - 3.3077115392580616 * l + 0.2309699031821044 * r,
1239
+ g: -1.2684379732850317 * o + 2.6097573492876887 * l - 0.3413193760026573 * r,
1240
+ b: -0.0041960761386756 * o - 0.7034186179359362 * l + 1.7076146940746117 * r
1241
+ };
1242
+ return a !== void 0 && (i.alpha = a), i;
1243
+ }, Mn = (t) => Ve(xn(t));
1244
+ function Qa(t, e) {
1245
+ if (!e || e[0] !== "oklab")
1246
+ return;
1247
+ const n = { mode: "oklab" }, [, a, o, l, r] = e;
1248
+ if (!(a.type === c.Hue || o.type === c.Hue || l.type === c.Hue))
1249
+ return a.type !== c.None && (n.l = Math.min(
1250
+ Math.max(0, a.type === c.Number ? a.value : a.value / 100),
1251
+ 1
1252
+ )), o.type !== c.None && (n.a = o.type === c.Number ? o.value : o.value * 0.4 / 100), l.type !== c.None && (n.b = l.type === c.Number ? l.value : l.value * 0.4 / 100), r.type !== c.None && (n.alpha = Math.min(
1253
+ 1,
1254
+ Math.max(
1255
+ 0,
1256
+ r.type === c.Number ? r.value : r.value / 100
1257
+ )
1258
+ )), n;
1259
+ }
1260
+ const eo = {
1261
+ ...mn,
1262
+ mode: "oklab",
1263
+ toMode: {
1264
+ lrgb: xn,
1265
+ rgb: Mn
1266
+ },
1267
+ fromMode: {
1268
+ lrgb: gn,
1269
+ rgb: yn
1270
+ },
1271
+ ranges: {
1272
+ l: [0, 1],
1273
+ a: [-0.4, 0.4],
1274
+ b: [-0.4, 0.4]
1275
+ },
1276
+ parse: [Qa],
1277
+ serialize: (t) => `oklab(${t.l !== void 0 ? t.l : "none"} ${t.a !== void 0 ? t.a : "none"} ${t.b !== void 0 ? t.b : "none"}${t.alpha < 1 ? ` / ${t.alpha}` : ""})`
1278
+ };
1279
+ function to(t, e) {
1280
+ if (!e || e[0] !== "oklch")
1281
+ return;
1282
+ const n = { mode: "oklch" }, [, a, o, l, r] = e;
1283
+ if (a.type !== c.None) {
1284
+ if (a.type === c.Hue)
1285
+ return;
1286
+ n.l = Math.min(
1287
+ Math.max(0, a.type === c.Number ? a.value : a.value / 100),
1288
+ 1
1289
+ );
1290
+ }
1291
+ if (o.type !== c.None && (n.c = Math.max(
1292
+ 0,
1293
+ o.type === c.Number ? o.value : o.value * 0.4 / 100
1294
+ )), l.type !== c.None) {
1295
+ if (l.type === c.Percentage)
1296
+ return;
1297
+ n.h = l.value;
1298
+ }
1299
+ return r.type !== c.None && (n.alpha = Math.min(
1300
+ 1,
1301
+ Math.max(
1302
+ 0,
1303
+ r.type === c.Number ? r.value : r.value / 100
1304
+ )
1305
+ )), n;
1306
+ }
1307
+ const no = {
1308
+ ...bn,
1309
+ mode: "oklch",
1310
+ toMode: {
1311
+ oklab: (t) => qe(t, "oklab"),
1312
+ rgb: (t) => Mn(qe(t, "oklab"))
1313
+ },
1314
+ fromMode: {
1315
+ rgb: (t) => Ke(yn(t), "oklch"),
1316
+ oklab: (t) => Ke(t, "oklch")
1317
+ },
1318
+ parse: [to],
1319
+ serialize: (t) => `oklch(${t.l !== void 0 ? t.l : "none"} ${t.c !== void 0 ? t.c : "none"} ${t.h !== void 0 ? t.h : "none"}${t.alpha < 1 ? ` / ${t.alpha}` : ""})`,
1320
+ ranges: {
1321
+ l: [0, 1],
1322
+ c: [0, 0.4],
1323
+ h: [0, 360]
1324
+ }
1325
+ }, Bt = (t) => {
1326
+ let { r: e, g: n, b: a, alpha: o } = Ae(t), l = {
1327
+ mode: "xyz65",
1328
+ x: 0.486570948648216 * e + 0.265667693169093 * n + 0.1982172852343625 * a,
1329
+ y: 0.2289745640697487 * e + 0.6917385218365062 * n + 0.079286914093745 * a,
1330
+ z: 0 * e + 0.0451133818589026 * n + 1.043944368900976 * a
1331
+ };
1332
+ return o !== void 0 && (l.alpha = o), l;
1333
+ }, Yt = ({ x: t, y: e, z: n, alpha: a }) => {
1334
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
1335
+ let o = Ve(
1336
+ {
1337
+ r: t * 2.4934969119414263 - e * 0.9313836179191242 - 0.402710784450717 * n,
1338
+ g: t * -0.8294889695615749 + e * 1.7626640603183465 + 0.0236246858419436 * n,
1339
+ b: t * 0.0358458302437845 - e * 0.0761723892680418 + 0.9568845240076871 * n
1340
+ },
1341
+ "p3"
1342
+ );
1343
+ return a !== void 0 && (o.alpha = a), o;
1344
+ }, ao = {
1345
+ ...we,
1346
+ mode: "p3",
1347
+ parse: ["display-p3"],
1348
+ serialize: "display-p3",
1349
+ fromMode: {
1350
+ rgb: (t) => Yt(We(t)),
1351
+ xyz65: Yt
1352
+ },
1353
+ toMode: {
1354
+ rgb: (t) => Ze(Bt(t)),
1355
+ xyz65: Bt
1356
+ }
1357
+ }, st = (t) => {
1358
+ let e = Math.abs(t);
1359
+ return e >= 1 / 512 ? Math.sign(t) * Math.pow(e, 1 / 1.8) : 16 * t;
1360
+ }, Ft = ({ x: t, y: e, z: n, alpha: a }) => {
1361
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
1362
+ let o = {
1363
+ mode: "prophoto",
1364
+ r: st(
1365
+ t * 1.3457868816471585 - e * 0.2555720873797946 - 0.0511018649755453 * n
1366
+ ),
1367
+ g: st(
1368
+ t * -0.5446307051249019 + e * 1.5082477428451466 + 0.0205274474364214 * n
1369
+ ),
1370
+ b: st(t * 0 + e * 0 + 1.2119675456389452 * n)
1371
+ };
1372
+ return a !== void 0 && (o.alpha = a), o;
1373
+ }, dt = (t = 0) => {
1374
+ let e = Math.abs(t);
1375
+ return e >= 16 / 512 ? Math.sign(t) * Math.pow(e, 1.8) : t / 16;
1376
+ }, Ot = (t) => {
1377
+ let e = dt(t.r), n = dt(t.g), a = dt(t.b), o = {
1378
+ mode: "xyz50",
1379
+ x: 0.7977666449006423 * e + 0.1351812974005331 * n + 0.0313477341283922 * a,
1380
+ y: 0.2880748288194013 * e + 0.7118352342418731 * n + 899369387256e-16 * a,
1381
+ z: 0 * e + 0 * n + 0.8251046025104602 * a
1382
+ };
1383
+ return t.alpha !== void 0 && (o.alpha = t.alpha), o;
1384
+ }, oo = {
1385
+ ...we,
1386
+ mode: "prophoto",
1387
+ parse: ["prophoto-rgb"],
1388
+ serialize: "prophoto-rgb",
1389
+ fromMode: {
1390
+ xyz50: Ft,
1391
+ rgb: (t) => Ft(St(t))
1392
+ },
1393
+ toMode: {
1394
+ xyz50: Ot,
1395
+ rgb: (t) => $t(Ot(t))
1396
+ }
1397
+ }, Ht = 1.09929682680944, lo = 0.018053968510807, ft = (t) => {
1398
+ const e = Math.abs(t);
1399
+ return e > lo ? (Math.sign(t) || 1) * (Ht * Math.pow(e, 0.45) - (Ht - 1)) : 4.5 * t;
1400
+ }, Lt = ({ x: t, y: e, z: n, alpha: a }) => {
1401
+ t === void 0 && (t = 0), e === void 0 && (e = 0), n === void 0 && (n = 0);
1402
+ let o = {
1403
+ mode: "rec2020",
1404
+ r: ft(
1405
+ t * 1.7166511879712683 - e * 0.3556707837763925 - 0.2533662813736599 * n
1406
+ ),
1407
+ g: ft(
1408
+ t * -0.6666843518324893 + e * 1.6164812366349395 + 0.0157685458139111 * n
1409
+ ),
1410
+ b: ft(
1411
+ t * 0.0176398574453108 - e * 0.0427706132578085 + 0.9421031212354739 * n
1412
+ )
1413
+ };
1414
+ return a !== void 0 && (o.alpha = a), o;
1415
+ }, Kt = 1.09929682680944, ro = 0.018053968510807, ct = (t = 0) => {
1416
+ let e = Math.abs(t);
1417
+ return e < ro * 4.5 ? t / 4.5 : (Math.sign(t) || 1) * Math.pow((e + Kt - 1) / Kt, 1 / 0.45);
1418
+ }, qt = (t) => {
1419
+ let e = ct(t.r), n = ct(t.g), a = ct(t.b), o = {
1420
+ mode: "xyz65",
1421
+ x: 0.6369580483012911 * e + 0.1446169035862083 * n + 0.1688809751641721 * a,
1422
+ y: 0.262700212011267 * e + 0.6779980715188708 * n + 0.059301716469862 * a,
1423
+ z: 0 * e + 0.0280726930490874 * n + 1.0609850577107909 * a
1424
+ };
1425
+ return t.alpha !== void 0 && (o.alpha = t.alpha), o;
1426
+ }, io = {
1427
+ ...we,
1428
+ mode: "rec2020",
1429
+ fromMode: {
1430
+ xyz65: Lt,
1431
+ rgb: (t) => Lt(We(t))
1432
+ },
1433
+ toMode: {
1434
+ xyz65: qt,
1435
+ rgb: (t) => Ze(qt(t))
1436
+ },
1437
+ parse: ["rec2020"],
1438
+ serialize: "rec2020"
1439
+ }, uo = {
1440
+ mode: "xyz50",
1441
+ parse: ["xyz-d50"],
1442
+ serialize: "xyz-d50",
1443
+ toMode: {
1444
+ rgb: $t,
1445
+ lab: kt
1446
+ },
1447
+ fromMode: {
1448
+ rgb: St,
1449
+ lab: wt
1450
+ },
1451
+ channels: ["x", "y", "z", "alpha"],
1452
+ ranges: {
1453
+ x: [0, 0.964],
1454
+ y: [0, 0.999],
1455
+ z: [0, 0.825]
1456
+ },
1457
+ interpolate: {
1458
+ x: _,
1459
+ y: _,
1460
+ z: _,
1461
+ alpha: { use: _, fixup: ve }
1462
+ }
1463
+ }, so = (t) => {
1464
+ let { x: e, y: n, z: a, alpha: o } = t;
1465
+ e === void 0 && (e = 0), n === void 0 && (n = 0), a === void 0 && (a = 0);
1466
+ let l = {
1467
+ mode: "xyz50",
1468
+ x: 1.0479298208405488 * e + 0.0229467933410191 * n - 0.0501922295431356 * a,
1469
+ y: 0.0296278156881593 * e + 0.990434484573249 * n - 0.0170738250293851 * a,
1470
+ z: -0.0092430581525912 * e + 0.0150551448965779 * n + 0.7518742899580008 * a
1471
+ };
1472
+ return o !== void 0 && (l.alpha = o), l;
1473
+ }, fo = (t) => {
1474
+ let { x: e, y: n, z: a, alpha: o } = t;
1475
+ e === void 0 && (e = 0), n === void 0 && (n = 0), a === void 0 && (a = 0);
1476
+ let l = {
1477
+ mode: "xyz65",
1478
+ x: 0.9554734527042182 * e - 0.0230985368742614 * n + 0.0632593086610217 * a,
1479
+ y: -0.0283697069632081 * e + 1.0099954580058226 * n + 0.021041398966943 * a,
1480
+ z: 0.0123140016883199 * e - 0.0205076964334779 * n + 1.3303659366080753 * a
1481
+ };
1482
+ return o !== void 0 && (l.alpha = o), l;
1483
+ }, co = {
1484
+ mode: "xyz65",
1485
+ toMode: {
1486
+ rgb: Ze,
1487
+ xyz50: so
1488
+ },
1489
+ fromMode: {
1490
+ rgb: We,
1491
+ xyz50: fo
1492
+ },
1493
+ ranges: {
1494
+ x: [0, 0.95],
1495
+ y: [0, 1],
1496
+ z: [0, 1.088]
1497
+ },
1498
+ channels: ["x", "y", "z", "alpha"],
1499
+ parse: ["xyz", "xyz-d65"],
1500
+ serialize: "xyz-d65",
1501
+ interpolate: {
1502
+ x: _,
1503
+ y: _,
1504
+ z: _,
1505
+ alpha: { use: _, fixup: ve }
1506
+ }
1507
+ }, po = [
1508
+ we,
1509
+ Ka,
1510
+ La,
1511
+ Ua,
1512
+ mn,
1513
+ bn,
1514
+ eo,
1515
+ no,
1516
+ ao,
1517
+ Na,
1518
+ oo,
1519
+ io,
1520
+ uo,
1521
+ co,
1522
+ Ja
1523
+ ];
1524
+ for (const t of po)
1525
+ ya(t);
1526
+ const [me, ho] = ze("ColorAreaRoot"), $o = /* @__PURE__ */ B({
1527
+ inheritAttrs: !1,
1528
+ __name: "ColorAreaRoot",
1529
+ props: {
1530
+ as: { default: "span" },
1531
+ asChild: { type: Boolean },
1532
+ name: {},
1533
+ required: { type: Boolean },
1534
+ modelValue: {},
1535
+ defaultValue: { default: "hsl(0, 100%, 50%)" },
1536
+ disabled: { type: Boolean, default: !1 },
1537
+ dir: {},
1538
+ invertedX: { type: Boolean, default: !1 },
1539
+ invertedY: { type: Boolean, default: !1 },
1540
+ colorSpace: { default: "hsl" },
1541
+ channelX: {},
1542
+ channelY: {},
1543
+ minXStepsBetweenThumbs: { default: 0 },
1544
+ minYStepsBetweenThumbs: { default: 0 },
1545
+ thumbAlignment: { default: "overflow" }
1546
+ },
1547
+ emits: ["update:modelValue", "valueCommit"],
1548
+ setup(t, { emit: e }) {
1549
+ const n = t, a = e, { disabled: o, thumbAlignment: l, dir: r } = xt(n), i = Wt(r), { forwardRef: u, currentElement: p } = H(), f = nn(p), { CollectionSlot: d } = an({ isProvider: !0 }), g = {
1550
+ key: "alpha",
1551
+ label: "Alpha",
1552
+ min: 0,
1553
+ max: 100,
1554
+ step: 1,
1555
+ format: "percentage",
1556
+ culoriMin: 0,
1557
+ culoriMax: 1
1558
+ }, S = h(() => Hn[n.colorSpace]), $ = h(() => n.channelX ?? S.value?.channels[0]?.key ?? "h"), w = h(() => n.channelY ?? S.value?.channels[1]?.key ?? "s"), Y = h(() => $.value === "alpha"), I = h(() => w.value === "alpha"), k = h(() => Y.value ? g : pe(n.colorSpace, $.value)), A = h(() => I.value ? g : pe(n.colorSpace, w.value)), M = h(() => k.value?.min ?? 0), F = h(() => k.value?.max ?? 100), T = h(() => A.value?.min ?? 0), z = h(() => A.value?.max ?? 100), J = h(() => k.value?.step ?? 1), G = h(() => A.value?.step ?? 1);
1559
+ function X(b) {
1560
+ if (b)
1561
+ return b instanceof Q ? b : Q.parse(b) ?? void 0;
1562
+ }
1563
+ const R = je(X(n.modelValue ?? n.defaultValue));
1564
+ ae(() => n.modelValue, (b) => {
1565
+ const m = X(b);
1566
+ m && (R.value = m);
1567
+ });
1568
+ function K(b) {
1569
+ if (!b || !k.value || !A.value) return [[M.value, T.value]];
1570
+ const m = b.to(n.colorSpace);
1571
+ if (!m) return [[M.value, T.value]];
1572
+ const C = Y.value ? b.alpha ?? 1 : m.get($.value, 0), E = I.value ? b.alpha ?? 1 : m.get(w.value, 0);
1573
+ return [[Be(k.value, C), Be(A.value, E)]];
1574
+ }
1575
+ const L = q(K(R.value));
1576
+ ae([R, $, w], ([b]) => {
1577
+ const m = K(b), C = L.value[0];
1578
+ C && Math.abs((C[0] ?? 0) - (m[0]?.[0] ?? 0)) < 1e-3 && Math.abs((C[1] ?? 0) - (m[0]?.[1] ?? 0)) < 1e-3 || (L.value = m);
1579
+ });
1580
+ function ue(b) {
1581
+ if (!b[0] || !R.value || !k.value || !A.value) return;
1582
+ const m = Ye(k.value, b[0][0] ?? 0), C = Ye(A.value, b[0][1] ?? 0), E = {};
1583
+ Y.value || (E[$.value] = m), I.value || (E[w.value] = C);
1584
+ let j = R.value.set({ mode: n.colorSpace, ...E });
1585
+ return Y.value && (j = j.set({ alpha: m })), I.value && (j = j.set({ alpha: C })), j;
1586
+ }
1587
+ const U = h(() => Array.isArray(L.value) ? [...L.value] : []), Z = q(0), re = q(U.value), se = q(), ee = q(), v = h(() => i.value !== "rtl" && !n.invertedX || i.value !== "ltr" && n.invertedX), x = h(() => !n.invertedY);
1588
+ function V() {
1589
+ const b = tt.value[Z.value], m = nt.value[Z.value];
1590
+ return (b || m)?.parentElement;
1591
+ }
1592
+ function ne(b, m) {
1593
+ const C = se.value || p.value.getBoundingClientRect();
1594
+ se.value = C;
1595
+ const E = V(), j = l.value === "contain" && E ? E.clientWidth : 0, te = l.value === "contain" && E ? E.clientHeight : 0;
1596
+ if (!ee.value && !m && l.value === "contain" && E) {
1597
+ const Tt = E.getBoundingClientRect();
1598
+ ee.value = {
1599
+ x: b.clientX - Tt.left,
1600
+ y: b.clientY - Tt.top
1601
+ };
1602
+ }
1603
+ const fe = [0, C.width - j], ie = v.value ? [M.value, F.value] : [F.value, M.value], $e = ht(fe, ie), Se = [0, C.height - te], ce = x.value ? [T.value, z.value] : [z.value, T.value], kn = ht(Se, ce), Rn = m ? b.clientX - C.left - j / 2 : b.clientX - C.left - (ee.value?.x ?? 0), _n = m ? b.clientY - C.top - te / 2 : b.clientY - C.top - (ee.value?.y ?? 0);
1604
+ return [$e(Rn), kn(_n)];
1605
+ }
1606
+ const de = q();
1607
+ function et(b) {
1608
+ const m = ne(b, !0), C = oa(U.value, m, M.value, F.value, T.value, z.value);
1609
+ C !== -1 && (de.value = { x: b.clientX, y: b.clientY }, ye.value = "x", Ne(m, C));
1610
+ }
1611
+ function Ee(b) {
1612
+ const m = ne(b);
1613
+ if (de.value) {
1614
+ const C = Math.abs(b.clientX - de.value.x), E = Math.abs(b.clientY - de.value.y);
1615
+ ye.value = C >= E ? "x" : "y";
1616
+ }
1617
+ de.value = { x: b.clientX, y: b.clientY }, Ne(m, Z.value);
1618
+ }
1619
+ function be() {
1620
+ se.value = void 0, ee.value = void 0, de.value = void 0;
1621
+ const b = re.value[Z.value], m = U.value[Z.value];
1622
+ (b?.[0] !== m?.[0] || b?.[1] !== m?.[1]) && R.value && a("valueCommit", R.value);
1623
+ }
1624
+ const ge = h(() => n.minXStepsBetweenThumbs), wn = h(() => n.minYStepsBetweenThumbs);
1625
+ function _t(b, m, C, E) {
1626
+ if (E <= 0)
1627
+ return b;
1628
+ const j = U.value.map((te, fe) => fe === C ? b : te[m] ?? 0);
1629
+ return aa([...j].sort((te, fe) => te - fe), E) ? b : U.value[C]?.[m] ?? b;
1630
+ }
1631
+ function Ne(b, m, { commit: C } = { commit: !1 }) {
1632
+ const E = pt(b[0] ?? 0, M.value, F.value, J.value), j = pt(b[1] ?? 0, T.value, z.value, G.value), te = _t(E, 0, m, ge.value * J.value), fe = _t(j, 1, m, wn.value * G.value), ie = [...U.value];
1633
+ if (ie[m] = [te, fe], Z.value = m, JSON.stringify(ie) !== JSON.stringify(L.value)) {
1634
+ (ye.value === "x" ? tt.value : nt.value)[Z.value]?.focus(), L.value = ie;
1635
+ const ce = ue(ie);
1636
+ ce && (R.value = ce, a("update:modelValue", ce), C && a("valueCommit", ce));
1637
+ }
1638
+ }
1639
+ const $n = {
1640
+ ArrowRight: { axis: "x", sign: 1 },
1641
+ ArrowLeft: { axis: "x", sign: -1 },
1642
+ ArrowDown: { axis: "y", sign: 1 },
1643
+ ArrowUp: { axis: "y", sign: -1 }
1644
+ };
1645
+ function Sn(b) {
1646
+ const m = $n[b.key];
1647
+ if (!m)
1648
+ return;
1649
+ const C = Z.value, E = U.value[C];
1650
+ if (!E)
1651
+ return;
1652
+ const j = b.shiftKey && tn.includes(b.key) ? 10 : 1;
1653
+ ye.value = m.axis;
1654
+ const te = m.axis === "x" ? v.value ? 1 : -1 : x.value ? 1 : -1, ie = (m.axis === "x" ? J.value : G.value) * j * m.sign * te, $e = E[0] ?? 0, Se = E[1] ?? 0, ce = m.axis === "x" ? [$e + ie, Se] : [$e, Se + ie];
1655
+ Ne(ce, C, { commit: !0 });
1656
+ }
1657
+ function De(b, m) {
1658
+ ye.value = b;
1659
+ const C = Z.value, E = U.value[C];
1660
+ if (!E)
1661
+ return;
1662
+ let j = m;
1663
+ b === "x" && !v.value ? j = m === M.value ? F.value : M.value : b === "y" && !x.value && (j = m === T.value ? z.value : T.value);
1664
+ const te = b === "x" ? [j, E[1] ?? 0] : [E[0] ?? 0, j];
1665
+ Ne(te, C, { commit: !0 });
1666
+ }
1667
+ const tt = q([]), nt = q([]), ye = q("x");
1668
+ return ho({
1669
+ modelValue: L,
1670
+ currentModelValue: U,
1671
+ valueIndexToChangeRef: Z,
1672
+ thumbXElements: tt,
1673
+ thumbYElements: nt,
1674
+ activeDirection: ye,
1675
+ minX: M,
1676
+ maxX: F,
1677
+ minY: T,
1678
+ maxY: z,
1679
+ disabled: o,
1680
+ isSlidingFromLeft: v,
1681
+ isSlidingFromTop: x,
1682
+ thumbAlignment: l,
1683
+ colorSpace: h(() => n.colorSpace),
1684
+ xChannelKey: $,
1685
+ yChannelKey: w,
1686
+ colorRef: R,
1687
+ dir: i
1688
+ }), (b, m) => (D(), P(s(d), null, {
1689
+ default: N(() => [
1690
+ Ge(ia, yt(b.$attrs, {
1691
+ ref: s(u),
1692
+ "as-child": b.asChild,
1693
+ as: b.as,
1694
+ dir: s(i),
1695
+ "aria-disabled": s(o),
1696
+ "data-disabled": s(o) ? "" : void 0,
1697
+ style: {
1698
+ "--reka-slider-area-thumb-transform": `translate(${!v.value && s(l) === "overflow" ? "50%" : "-50%"}, ${!x.value && s(l) === "overflow" ? "50%" : "-50%"})`
1699
+ },
1700
+ onPointerdown: m[0] || (m[0] = () => {
1701
+ s(o) || (re.value = U.value);
1702
+ }),
1703
+ onSlideStart: m[1] || (m[1] = (C) => !s(o) && et(C)),
1704
+ onSlideMove: m[2] || (m[2] = (C) => !s(o) && Ee(C)),
1705
+ onSlideEnd: m[3] || (m[3] = (C) => !s(o) && be()),
1706
+ onHomeKeyDown: m[4] || (m[4] = (C) => !s(o) && De("x", M.value)),
1707
+ onEndKeyDown: m[5] || (m[5] = (C) => !s(o) && De("x", F.value)),
1708
+ onPageUpKeyDown: m[6] || (m[6] = (C) => !s(o) && De("y", T.value)),
1709
+ onPageDownKeyDown: m[7] || (m[7] = (C) => !s(o) && De("y", z.value)),
1710
+ onStepKeyDown: m[8] || (m[8] = (C) => {
1711
+ s(o) || Sn(C);
1712
+ })
1713
+ }), {
1714
+ default: N(() => [
1715
+ O(b.$slots, "default", { modelValue: R.value }),
1716
+ s(f) && b.name ? (D(), P(s(Zt), {
1717
+ key: 0,
1718
+ as: "input",
1719
+ type: "hidden",
1720
+ value: R.value?.toString() ?? "",
1721
+ name: b.name,
1722
+ required: b.required,
1723
+ disabled: s(o)
1724
+ }, null, 8, ["value", "name", "required", "disabled"])) : jt("", !0)
1725
+ ]),
1726
+ _: 3
1727
+ }, 16, ["as-child", "as", "dir", "aria-disabled", "data-disabled", "style"])
1728
+ ]),
1729
+ _: 3
1730
+ }));
1731
+ }
1732
+ }), So = /* @__PURE__ */ B({
1733
+ __name: "ColorAreaRegion",
1734
+ setup(t) {
1735
+ const e = me();
1736
+ H();
1737
+ const n = h(() => e.currentModelValue.value.map(
1738
+ (p) => Oe(p[0] ?? 0, e.minX.value ?? 0, e.maxX.value ?? 100)
1739
+ )), a = h(() => e.currentModelValue.value.map(
1740
+ (p) => Oe(p[1] ?? 0, e.minY.value ?? 0, e.maxY.value ?? 100)
1741
+ )), o = h(() => {
1742
+ const p = n.value, f = a.value;
1743
+ return p.length === 0 ? { startX: 0, startY: 0, endX: 0, endY: 0 } : p.length === 1 ? { startX: 0, startY: 0, endX: p[0], endY: f[0] } : {
1744
+ startX: Math.min(...p),
1745
+ startY: Math.min(...f),
1746
+ endX: Math.max(...p),
1747
+ endY: Math.max(...f)
1748
+ };
1749
+ }), l = h(() => e.isSlidingFromLeft.value ? "left" : "right"), r = h(() => e.isSlidingFromLeft.value ? "right" : "left"), i = h(() => e.isSlidingFromTop.value ? "top" : "bottom"), u = h(() => e.isSlidingFromTop.value ? "bottom" : "top");
1750
+ return (p, f) => (D(), P(s(W), {
1751
+ "data-disabled": s(e).disabled.value ? "" : void 0,
1752
+ "as-child": p.asChild,
1753
+ as: p.as,
1754
+ style: Ue({
1755
+ position: "absolute",
1756
+ [l.value]: `${o.value.startX}%`,
1757
+ [r.value]: `${100 - (o.value.endX ?? 0)}%`,
1758
+ [i.value]: `${o.value.startY}%`,
1759
+ [u.value]: `${100 - (o.value.endY ?? 0)}%`
1760
+ })
1761
+ }, {
1762
+ default: N(() => [
1763
+ O(p.$slots, "default")
1764
+ ]),
1765
+ _: 3
1766
+ }, 8, ["data-disabled", "as-child", "as", "style"]));
1767
+ }
1768
+ }), ko = /* @__PURE__ */ B({
1769
+ inheritAttrs: !1,
1770
+ __name: "ColorAreaThumb",
1771
+ props: {
1772
+ as: { default: "span" },
1773
+ asChild: { type: Boolean }
1774
+ },
1775
+ setup(t) {
1776
+ const e = me(), { forwardRef: n, currentElement: a } = H(), { CollectionItem: o, getItems: l } = an(), r = h(() => a.value ? l(!0).findIndex((w) => w.ref === a.value) : -1), i = h(() => e.modelValue?.value?.[r.value]), u = h(() => i.value === void 0 ? 0 : Oe(i.value[0] ?? 0, e.minX.value ?? 0, e.maxX.value ?? 100)), p = h(() => i.value === void 0 ? 0 : Oe(i.value[1] ?? 0, e.minY.value ?? 0, e.maxY.value ?? 100)), f = h(() => ta(r.value, e.modelValue?.value?.length ?? 0)), d = ra(a), g = h(() => e.thumbAlignment.value === "overflow" || !d.width.value ? 0 : Nt(d.width.value, u.value, e.isSlidingFromLeft.value ? 1 : -1)), S = h(() => e.thumbAlignment.value === "overflow" || !d.height.value ? 0 : Nt(d.height.value, p.value, e.isSlidingFromTop.value ? 1 : -1)), $ = /* @__PURE__ */ Jt();
1777
+ return Jn({
1778
+ index: r
1779
+ }), (w, Y) => (D(), P(s(o), null, {
1780
+ default: N(() => [
1781
+ Ge(s(W), yt(w.$attrs, {
1782
+ ref: s(n),
1783
+ "aria-label": w.$attrs["aria-label"] || f.value,
1784
+ "data-disabled": s(e).disabled.value ? "" : void 0,
1785
+ "aria-roledescription": "2D slider",
1786
+ "as-child": w.asChild,
1787
+ as: w.as,
1788
+ style: {
1789
+ transform: "var(--reka-slider-area-thumb-transform)",
1790
+ position: "absolute",
1791
+ [s(e).isSlidingFromLeft.value ? "left" : "right"]: `calc(${u.value}% + ${g.value}px)`,
1792
+ [s(e).isSlidingFromTop.value ? "top" : "bottom"]: `calc(${p.value}% + ${S.value}px)`,
1793
+ display: !s($) && i.value === void 0 ? "none" : void 0
1794
+ }
1795
+ }), {
1796
+ default: N(() => [
1797
+ O(w.$slots, "default")
1798
+ ]),
1799
+ _: 3
1800
+ }, 16, ["aria-label", "data-disabled", "as-child", "as", "style"])
1801
+ ]),
1802
+ _: 3
1803
+ }));
1804
+ }
1805
+ }), Ro = /* @__PURE__ */ B({
1806
+ __name: "ColorAreaThumbX",
1807
+ props: {
1808
+ as: { default: "span" },
1809
+ asChild: { type: Boolean }
1810
+ },
1811
+ setup(t) {
1812
+ const e = me(), n = en(), { forwardRef: a, currentElement: o } = H(), l = h(() => e.modelValue?.value?.[n.index.value]);
1813
+ return Te(() => {
1814
+ o.value && e.thumbXElements.value.push(o.value);
1815
+ }), Mt(() => {
1816
+ const r = e.thumbXElements.value.findIndex((i) => i === o.value);
1817
+ r >= 0 && e.thumbXElements.value.splice(r, 1);
1818
+ }), (r, i) => (D(), P(s(W), {
1819
+ ref: s(a),
1820
+ role: "slider",
1821
+ tabindex: s(e).disabled.value ? void 0 : s(e).activeDirection.value === "x" ? 0 : -1,
1822
+ "data-disabled": s(e).disabled.value ? "" : void 0,
1823
+ "aria-orientation": "horizontal",
1824
+ "aria-valuenow": l.value ? l.value[0] : void 0,
1825
+ "aria-valuemin": s(e).minX.value,
1826
+ "aria-valuemax": s(e).maxX.value,
1827
+ "as-child": r.asChild,
1828
+ as: r.as,
1829
+ style: {
1830
+ position: "absolute",
1831
+ display: "block",
1832
+ width: "100%",
1833
+ height: "100%"
1834
+ },
1835
+ onFocus: i[0] || (i[0] = () => {
1836
+ s(e).valueIndexToChangeRef.value = s(n).index.value, s(e).activeDirection.value = "x";
1837
+ })
1838
+ }, {
1839
+ default: N(() => [
1840
+ O(r.$slots, "default")
1841
+ ]),
1842
+ _: 3
1843
+ }, 8, ["tabindex", "data-disabled", "aria-valuenow", "aria-valuemin", "aria-valuemax", "as-child", "as"]));
1844
+ }
1845
+ }), _o = /* @__PURE__ */ B({
1846
+ __name: "ColorAreaThumbY",
1847
+ props: {
1848
+ as: { default: "span" },
1849
+ asChild: { type: Boolean }
1850
+ },
1851
+ setup(t) {
1852
+ const e = me(), n = en(), { forwardRef: a, currentElement: o } = H(), l = h(() => e.modelValue?.value?.[n.index.value]);
1853
+ return Te(() => {
1854
+ o.value && e.thumbYElements.value.push(o.value);
1855
+ }), Mt(() => {
1856
+ const r = e.thumbYElements.value.findIndex((i) => i === o.value);
1857
+ r >= 0 && e.thumbYElements.value.splice(r, 1);
1858
+ }), (r, i) => (D(), P(s(W), {
1859
+ ref: s(a),
1860
+ role: "slider",
1861
+ tabindex: s(e).disabled.value ? void 0 : s(e).activeDirection.value === "y" ? 0 : -1,
1862
+ "data-disabled": s(e).disabled.value ? "" : void 0,
1863
+ "aria-orientation": "vertical",
1864
+ "aria-valuenow": l.value ? l.value[1] : void 0,
1865
+ "aria-valuemin": s(e).minY.value,
1866
+ "aria-valuemax": s(e).maxY.value,
1867
+ "as-child": r.asChild,
1868
+ as: r.as,
1869
+ style: {
1870
+ position: "absolute",
1871
+ display: "block",
1872
+ width: "100%",
1873
+ height: "100%"
1874
+ },
1875
+ onFocus: i[0] || (i[0] = () => {
1876
+ s(e).valueIndexToChangeRef.value = s(n).index.value, s(e).activeDirection.value = "y";
1877
+ })
1878
+ }, {
1879
+ default: N(() => [
1880
+ O(r.$slots, "default")
1881
+ ]),
1882
+ _: 3
1883
+ }, 8, ["tabindex", "data-disabled", "aria-valuenow", "aria-valuemin", "aria-valuemax", "as-child", "as"]));
1884
+ }
1885
+ }), To = /* @__PURE__ */ B({
1886
+ __name: "ColorAreaTrack",
1887
+ props: {
1888
+ as: { default: "span" },
1889
+ asChild: { type: Boolean }
1890
+ },
1891
+ setup(t) {
1892
+ const e = me();
1893
+ return H(), (n, a) => (D(), P(s(W), {
1894
+ "as-child": n.asChild,
1895
+ as: n.as,
1896
+ "data-disabled": s(e).disabled.value ? "" : void 0
1897
+ }, {
1898
+ default: N(() => [
1899
+ O(n.$slots, "default")
1900
+ ]),
1901
+ _: 3
1902
+ }, 8, ["as-child", "as", "data-disabled"]));
1903
+ }
1904
+ }), zo = /* @__PURE__ */ B({
1905
+ __name: "ColorAreaGradient",
1906
+ props: {
1907
+ as: { default: "span" },
1908
+ asChild: { type: Boolean },
1909
+ topLeft: {},
1910
+ topRight: {},
1911
+ bottomLeft: {},
1912
+ bottomRight: {},
1913
+ interpolationSpace: {},
1914
+ channelOverrides: { type: [Object, Boolean], default: () => ({ alpha: 1 }) }
1915
+ },
1916
+ setup(t) {
1917
+ const e = t, n = me();
1918
+ H();
1919
+ const a = q(null), o = h(() => n.xChannelKey.value === "alpha"), l = h(() => n.yChannelKey.value === "alpha"), r = h(() => o.value || l.value), i = h(() => {
1920
+ if (r.value) return 1;
1921
+ const d = e.channelOverrides;
1922
+ return d === !1 || typeof d == "object" && d.alpha === void 0 ? n.colorRef.value?.alpha ?? 1 : 1;
1923
+ });
1924
+ function u(d, g, S, $) {
1925
+ const w = d.getContext("2d");
1926
+ if (!w) return;
1927
+ const Y = typeof devicePixelRatio < "u" ? devicePixelRatio : 1, I = Math.round(d.clientWidth * Y), k = Math.round(d.clientHeight * Y);
1928
+ (d.width !== I || d.height !== k) && (d.width = I, d.height = k);
1929
+ const A = new Uint8ClampedArray(g.buffer), M = new ImageData(A, S, $), F = new OffscreenCanvas(S, $), T = F.getContext("2d");
1930
+ T && (T.putImageData(M, 0, 0), w.clearRect(0, 0, I, k), w.imageSmoothingEnabled = !0, w.imageSmoothingQuality = "high", w.drawImage(F, 0, 0, I, k));
1931
+ }
1932
+ function p(d, g) {
1933
+ const S = e.channelOverrides;
1934
+ if (!S) return d;
1935
+ const $ = {};
1936
+ let w = d;
1937
+ for (const [Y, I] of Object.entries(S))
1938
+ Y === "alpha" ? w = w.set({ alpha: I }) : $[Y] = I;
1939
+ return Object.keys($).length > 0 && (w = w.set({ mode: g, ...$ })), w;
1940
+ }
1941
+ function f() {
1942
+ const d = a.value;
1943
+ if (!d) return;
1944
+ const g = n.isSlidingFromLeft.value, S = n.isSlidingFromTop.value, $ = n.colorSpace.value, w = n.xChannelKey.value, Y = n.yChannelKey.value, I = n.colorRef.value;
1945
+ if (e.topLeft || e.topRight || e.bottomLeft || e.bottomRight) {
1946
+ const k = Q.parse(e.topLeft ?? "black"), A = Q.parse(e.topRight ?? "black"), M = Q.parse(e.bottomLeft ?? "black"), F = Q.parse(e.bottomRight ?? "black");
1947
+ if (!k || !A || !M || !F) return;
1948
+ const [T, z, J, G] = (() => {
1949
+ let [X, R, K, L] = [k, A, M, F];
1950
+ return g || ([X, R, K, L] = [R, X, L, K]), S || ([X, R, K, L] = [K, L, X, R]), [X, R, K, L];
1951
+ })();
1952
+ if (e.interpolationSpace) {
1953
+ const K = Ln(T, z, J, G, 64, 64, e.interpolationSpace, r.value);
1954
+ u(d, K, 64, 64);
1955
+ } else
1956
+ Kn(d, T, z, J, G, r.value);
1957
+ return;
1958
+ }
1959
+ if (I && $) {
1960
+ const k = p(I, $), A = o.value ? null : w, M = l.value ? null : Y;
1961
+ if (!(A ?? M)) return;
1962
+ if (A && M) {
1963
+ const T = pe($, A), z = pe($, M);
1964
+ if (!T || !z) return;
1965
+ const J = T.culoriMin ?? T.min, G = T.culoriMax ?? T.max, X = z.culoriMin ?? z.min, R = z.culoriMax ?? z.max, K = 64, L = 64, ue = qn(
1966
+ k,
1967
+ $,
1968
+ A,
1969
+ M,
1970
+ g ? J : G,
1971
+ g ? G : J,
1972
+ S ? X : R,
1973
+ S ? R : X,
1974
+ K,
1975
+ L,
1976
+ r.value
1977
+ );
1978
+ u(d, ue, K, L);
1979
+ } else {
1980
+ const T = A ?? M, z = pe($, T);
1981
+ if (!z) return;
1982
+ const J = z.culoriMin ?? z.min, G = z.culoriMax ?? z.max, X = !!A, R = 64, K = 64, L = X ? g : S, ue = X ? S : g, U = L ? J : G, Z = L ? G : J, re = ue ? 0 : 1, se = ue ? 1 : 0, ee = new Uint8ClampedArray(R * K * 4);
1983
+ for (let v = 0; v < K; v++) {
1984
+ const x = v / (K - 1);
1985
+ for (let V = 0; V < R; V++) {
1986
+ const ne = V / (R - 1), de = X ? U + ne * (Z - U) : U + x * (Z - U), et = X ? re + x * (se - re) : re + ne * (se - re), Ee = k.set({
1987
+ mode: $,
1988
+ [T]: de
1989
+ });
1990
+ if (!Ee) continue;
1991
+ const be = Ee.to("rgb");
1992
+ if (!be) continue;
1993
+ const ge = (v * R + V) * 4;
1994
+ ee[ge] = Math.round(Math.max(0, Math.min(1, be.get("r", 0))) * 255), ee[ge + 1] = Math.round(Math.max(0, Math.min(1, be.get("g", 0))) * 255), ee[ge + 2] = Math.round(Math.max(0, Math.min(1, be.get("b", 0))) * 255), ee[ge + 3] = Math.round(Math.max(0, Math.min(1, et)) * 255);
1995
+ }
1996
+ }
1997
+ u(d, ee, R, K);
1998
+ }
1999
+ }
2000
+ }
2001
+ return Qt(a, () => {
2002
+ f();
2003
+ }), ae(
2004
+ () => [
2005
+ e.topLeft,
2006
+ e.topRight,
2007
+ e.bottomLeft,
2008
+ e.bottomRight,
2009
+ e.interpolationSpace,
2010
+ e.channelOverrides,
2011
+ n.colorSpace.value,
2012
+ n.xChannelKey.value,
2013
+ n.yChannelKey.value,
2014
+ n.colorRef.value,
2015
+ n.isSlidingFromLeft.value,
2016
+ n.isSlidingFromTop.value
2017
+ ],
2018
+ () => f(),
2019
+ { flush: "post" }
2020
+ ), Gt(() => {
2021
+ const d = a.value;
2022
+ if (d) {
2023
+ const g = d.getContext("webgl");
2024
+ g && g.getExtension("WEBGL_lose_context")?.loseContext();
2025
+ }
2026
+ }), (d, g) => (D(), P(s(W), {
2027
+ "as-child": d.asChild,
2028
+ as: d.as,
2029
+ "data-disabled": s(n).disabled.value ? "" : void 0
2030
+ }, {
2031
+ default: N(() => [
2032
+ Ut("canvas", {
2033
+ ref_key: "canvasRef",
2034
+ ref: a,
2035
+ style: Ue({ position: "absolute", inset: "0", width: "100%", height: "100%", pointerEvents: "none", opacity: i.value })
2036
+ }, null, 4),
2037
+ O(d.$slots, "default")
2038
+ ]),
2039
+ _: 3
2040
+ }, 8, ["as-child", "as", "data-disabled"]));
2041
+ }
2042
+ }), Ao = /* @__PURE__ */ B({
2043
+ __name: "ColorAreaCheckerboard",
2044
+ props: {
2045
+ as: { default: "div" },
2046
+ asChild: { type: Boolean }
2047
+ },
2048
+ setup(t) {
2049
+ return H(), (e, n) => (D(), P(s(W), {
2050
+ "as-child": e.asChild,
2051
+ as: e.as,
2052
+ style: { position: "absolute", inset: "0", pointerEvents: "none", background: "repeating-conic-gradient(rgb(230, 230, 230) 0% 25%, white 0% 50%) 0% 50% / 16px 16px" }
2053
+ }, null, 8, ["as-child", "as"]));
2054
+ }
2055
+ }), [vo, mo] = ze("ColorSliderRoot"), Vo = /* @__PURE__ */ B({
2056
+ __name: "ColorSliderRoot",
2057
+ props: {
2058
+ modelValue: {},
2059
+ colorSpace: { default: "hsl" },
2060
+ channel: { default: "h" },
2061
+ disabled: { type: Boolean, default: !1 },
2062
+ dir: {},
2063
+ inverted: { type: Boolean },
2064
+ orientation: {}
2065
+ },
2066
+ emits: ["update:modelValue", "valueCommit"],
2067
+ setup(t, { emit: e }) {
2068
+ const n = t, a = e;
2069
+ H();
2070
+ function o(d) {
2071
+ if (d)
2072
+ return d instanceof Q ? d : Q.parse(d) ?? void 0;
2073
+ }
2074
+ const l = je(o(n.modelValue));
2075
+ ae(() => n.modelValue, (d) => {
2076
+ const g = o(d);
2077
+ g && (l.value = g);
2078
+ });
2079
+ const r = h(() => n.channel === "alpha"), i = { key: "alpha", label: "Alpha", min: 0, max: 100, step: 1, format: "percentage", culoriMin: 0, culoriMax: 1 }, u = h(() => r.value ? i : pe(n.colorSpace, n.channel)), p = h({
2080
+ get() {
2081
+ if (!l.value || !u.value) return [u.value?.min ?? 0];
2082
+ if (r.value)
2083
+ return [Math.round((l.value.alpha ?? 1) * 100)];
2084
+ const d = l.value.to(n.colorSpace);
2085
+ if (!d) return [u.value.min];
2086
+ const g = d.get(n.channel, 0);
2087
+ return [Be(u.value, g)];
2088
+ },
2089
+ set(d) {
2090
+ if (!l.value || !u.value || d[0] === void 0) return;
2091
+ let g;
2092
+ if (r.value)
2093
+ g = l.value.set({ alpha: d[0] / 100 });
2094
+ else {
2095
+ const S = Ye(u.value, d[0]);
2096
+ g = l.value.set({
2097
+ mode: n.colorSpace,
2098
+ [n.channel]: S
2099
+ });
2100
+ }
2101
+ g && (l.value = g, a("update:modelValue", g));
2102
+ }
2103
+ });
2104
+ function f() {
2105
+ l.value && a("valueCommit", l.value);
2106
+ }
2107
+ return mo({ colorRef: l, channel: At(n, "channel"), colorSpace: At(n, "colorSpace") }), (d, g) => (D(), P(s(Xn), {
2108
+ modelValue: p.value,
2109
+ "onUpdate:modelValue": g[0] || (g[0] = (S) => p.value = S),
2110
+ min: u.value?.min ?? 0,
2111
+ max: u.value?.max ?? 100,
2112
+ step: u.value?.step ?? 1,
2113
+ disabled: d.disabled,
2114
+ dir: d.dir,
2115
+ inverted: d.inverted,
2116
+ orientation: d.orientation,
2117
+ onValueCommit: f
2118
+ }, {
2119
+ default: N(() => [
2120
+ O(d.$slots, "default")
2121
+ ]),
2122
+ _: 3
2123
+ }, 8, ["modelValue", "min", "max", "step", "disabled", "dir", "inverted", "orientation"]));
2124
+ }
2125
+ }), Eo = /* @__PURE__ */ B({
2126
+ __name: "ColorSliderTrack",
2127
+ setup(t) {
2128
+ return H(), (e, n) => (D(), P(s(In), null, {
2129
+ default: N(() => [
2130
+ O(e.$slots, "default")
2131
+ ]),
2132
+ _: 3
2133
+ }));
2134
+ }
2135
+ }), No = /* @__PURE__ */ B({
2136
+ __name: "ColorSliderRange",
2137
+ setup(t) {
2138
+ return H(), (e, n) => (D(), P(s(Bn), null, {
2139
+ default: N(() => [
2140
+ O(e.$slots, "default")
2141
+ ]),
2142
+ _: 3
2143
+ }));
2144
+ }
2145
+ }), Do = /* @__PURE__ */ B({
2146
+ __name: "ColorSliderThumb",
2147
+ setup(t) {
2148
+ return H(), (e, n) => (D(), P(s(Yn), null, {
2149
+ default: N(() => [
2150
+ O(e.$slots, "default")
2151
+ ]),
2152
+ _: 3
2153
+ }));
2154
+ }
2155
+ }), Po = /* @__PURE__ */ B({
2156
+ __name: "ColorSliderGradient",
2157
+ props: {
2158
+ as: { default: "span" },
2159
+ asChild: { type: Boolean },
2160
+ colors: {},
2161
+ vertical: { type: Boolean, default: !1 },
2162
+ interpolationSpace: {},
2163
+ channelOverrides: { type: [Object, Boolean], default: () => ({ alpha: 1 }) }
2164
+ },
2165
+ setup(t) {
2166
+ const e = t;
2167
+ H();
2168
+ const n = vo(), a = h(() => n.channel.value === "alpha"), o = h(() => {
2169
+ const u = e.channelOverrides;
2170
+ return a.value ? 1 : u === !1 || !u.alpha ? n.colorRef.value?.alpha ?? 1 : 1;
2171
+ }), l = h(() => {
2172
+ if (e.colors) return null;
2173
+ const u = n.colorRef.value, p = n.channel.value, f = n.colorSpace.value;
2174
+ if (!u) return null;
2175
+ const d = e.channelOverrides;
2176
+ if (a.value) {
2177
+ let k = u;
2178
+ if (d && typeof d == "object") {
2179
+ const F = {};
2180
+ for (const [T, z] of Object.entries(d))
2181
+ T !== "alpha" && (F[T] = z);
2182
+ Object.keys(F).length > 0 && (k = u.set({ mode: f, ...F }));
2183
+ }
2184
+ const A = k.set({ alpha: 0 }), M = k.set({ alpha: 1 });
2185
+ return [A, M];
2186
+ }
2187
+ const g = pe(f, p);
2188
+ if (!g) return null;
2189
+ const S = 12, $ = [], w = g.culoriMin ?? g.min, Y = g.culoriMax ?? g.max;
2190
+ let I = u;
2191
+ if (d && typeof d == "object") {
2192
+ const k = {};
2193
+ for (const [A, M] of Object.entries(d))
2194
+ A !== "alpha" && (k[A] = M);
2195
+ Object.keys(k).length > 0 && (I = u.set({ mode: f, ...k })), d.alpha !== void 0 && (I = I.set({ alpha: d.alpha }));
2196
+ }
2197
+ for (let k = 0; k < S; k++) {
2198
+ const A = k / (S - 1), M = w + A * (Y - w), F = I.set({ mode: f, [p]: M });
2199
+ F && $.push(F);
2200
+ }
2201
+ return $;
2202
+ }), r = q(null);
2203
+ function i() {
2204
+ const u = r.value;
2205
+ if (!u) return;
2206
+ let p;
2207
+ if (e.colors) {
2208
+ const f = e.colors.map((d) => Q.parse(d));
2209
+ if (f.some((d) => !d) || f.length < 2) return;
2210
+ p = f;
2211
+ } else if (l.value) {
2212
+ if (p = l.value, p.length < 2) return;
2213
+ } else
2214
+ return;
2215
+ if (e.interpolationSpace) {
2216
+ const f = jn(p, 32, e.interpolationSpace);
2217
+ Et(u, f, e.vertical, a.value);
2218
+ } else
2219
+ Et(u, p, e.vertical, a.value);
2220
+ }
2221
+ return Qt(r, () => {
2222
+ i();
2223
+ }), ae(
2224
+ () => [e.colors, e.vertical, e.interpolationSpace, e.channelOverrides, l.value],
2225
+ () => i(),
2226
+ { flush: "post", deep: !0 }
2227
+ ), Gt(() => {
2228
+ const u = r.value;
2229
+ if (u) {
2230
+ const p = u.getContext("webgl");
2231
+ p && p.getExtension("WEBGL_lose_context")?.loseContext();
2232
+ }
2233
+ }), (u, p) => (D(), P(s(W), {
2234
+ "as-child": u.asChild,
2235
+ as: u.as
2236
+ }, {
2237
+ default: N(() => [
2238
+ Ut("canvas", {
2239
+ ref_key: "canvasRef",
2240
+ ref: r,
2241
+ style: Ue({ position: "absolute", inset: "0", width: "100%", height: "100%", pointerEvents: "none", opacity: o.value })
2242
+ }, null, 4),
2243
+ O(u.$slots, "default")
2244
+ ]),
2245
+ _: 3
2246
+ }, 8, ["as-child", "as"]));
2247
+ }
2248
+ }), Xo = /* @__PURE__ */ B({
2249
+ __name: "ColorSliderCheckerboard",
2250
+ props: {
2251
+ as: { default: "div" },
2252
+ asChild: { type: Boolean }
2253
+ },
2254
+ setup(t) {
2255
+ return H(), (e, n) => (D(), P(s(W), {
2256
+ "as-child": e.asChild,
2257
+ as: e.as,
2258
+ style: { position: "absolute", inset: "0", pointerEvents: "none", background: "repeating-conic-gradient(rgb(230, 230, 230) 0% 25%, white 0% 50%) 0% 50% / 16px 16px" }
2259
+ }, null, 8, ["as-child", "as"]));
2260
+ }
2261
+ }), [Rt, bo] = ze("ColorFieldRoot"), Io = /* @__PURE__ */ B({
2262
+ __name: "ColorFieldRoot",
2263
+ props: {
2264
+ as: { default: "div" },
2265
+ asChild: { type: Boolean },
2266
+ modelValue: {},
2267
+ colorSpace: { default: "hsl" },
2268
+ channel: { default: "h" },
2269
+ format: {},
2270
+ min: {},
2271
+ max: {},
2272
+ step: {},
2273
+ disabled: { type: Boolean, default: !1 },
2274
+ readOnly: { type: Boolean, default: !1 },
2275
+ name: {},
2276
+ required: { type: Boolean, default: !1 }
2277
+ },
2278
+ emits: ["update:modelValue", "valueCommit"],
2279
+ setup(t, { emit: e }) {
2280
+ const n = t, a = e, { disabled: o, readOnly: l } = xt(n), { forwardRef: r, currentElement: i } = H(), u = nn(i);
2281
+ function p(v) {
2282
+ if (v)
2283
+ return v instanceof Q ? v : Q.parse(v) ?? void 0;
2284
+ }
2285
+ const f = je(p(n.modelValue));
2286
+ ae(() => n.modelValue, (v) => {
2287
+ const x = p(v);
2288
+ x && (f.value = x);
2289
+ });
2290
+ const d = h(() => n.channel === "alpha"), g = { key: "alpha", label: "Alpha", min: 0, max: 100, step: 1, format: "percentage", culoriMin: 0, culoriMax: 1 }, S = h(() => d.value ? g : pe(n.colorSpace, n.channel)), $ = h(() => n.min ?? S.value?.min ?? 0), w = h(() => n.max ?? S.value?.max ?? (k.value ? 16777215 : 100)), Y = h(() => n.step ?? S.value?.step ?? 1), I = h(() => n.format ?? S.value?.format ?? "number"), k = h(() => I.value === "hex");
2291
+ function A() {
2292
+ if (!f.value) return;
2293
+ if (k.value) {
2294
+ const V = f.value.toHex()?.replace(/^#/, "");
2295
+ return V ? Number.parseInt(V.slice(0, 6), 16) : void 0;
2296
+ }
2297
+ if (!S.value) return;
2298
+ if (d.value)
2299
+ return Math.round((f.value.alpha ?? 1) * 100);
2300
+ const v = f.value.to(n.colorSpace);
2301
+ if (!v) return;
2302
+ const x = v.get(n.channel, 0);
2303
+ return Be(S.value, x);
2304
+ }
2305
+ const M = q(A());
2306
+ ae(f, () => {
2307
+ const v = A();
2308
+ v !== void 0 && Math.abs((v ?? 0) - (M.value ?? 0)) > 1e-3 && (M.value = v);
2309
+ });
2310
+ function F(v) {
2311
+ if (!f.value) return;
2312
+ if (k.value) {
2313
+ const V = `#${Math.round(Re(v, 0, 16777215)).toString(16).padStart(6, "0")}`;
2314
+ return Q.parse(V) ?? void 0;
2315
+ }
2316
+ if (!S.value) return;
2317
+ if (d.value)
2318
+ return f.value.set({ alpha: v / 100 });
2319
+ const x = Ye(S.value, v);
2320
+ return f.value.set({
2321
+ mode: n.colorSpace,
2322
+ [n.channel]: x
2323
+ });
2324
+ }
2325
+ const T = q();
2326
+ function z(v) {
2327
+ if (v === void 0) return "";
2328
+ switch (I.value) {
2329
+ case "degree":
2330
+ return `${v}°`;
2331
+ case "percentage":
2332
+ return `${v}%`;
2333
+ case "hex":
2334
+ return `#${Math.round(v).toString(16).padStart(6, "0")}`;
2335
+ default:
2336
+ return String(v);
2337
+ }
2338
+ }
2339
+ function J(v) {
2340
+ const x = v.trim();
2341
+ if (x !== "")
2342
+ switch (I.value) {
2343
+ case "degree":
2344
+ return Number.parseFloat(x.replace(/[°]$|deg$/i, ""));
2345
+ case "percentage":
2346
+ return Number.parseFloat(x.replace(/%$/, ""));
2347
+ case "hex": {
2348
+ const V = x.replace(/^#/, "");
2349
+ return /^[0-9a-f]*$/i.test(V) ? Number.parseInt(V, 16) : void 0;
2350
+ }
2351
+ default:
2352
+ return Number.parseFloat(x);
2353
+ }
2354
+ }
2355
+ function G(v) {
2356
+ let x = Re(v, $.value, w.value);
2357
+ return x = pt(x, $.value, w.value, Y.value), x;
2358
+ }
2359
+ const X = q(z(M.value));
2360
+ ae(M, (v) => {
2361
+ X.value = z(v);
2362
+ });
2363
+ function R(v) {
2364
+ const x = F(v);
2365
+ return x && (f.value = x, a("update:modelValue", x)), x;
2366
+ }
2367
+ function K(v) {
2368
+ if (v === void 0 || Number.isNaN(v)) {
2369
+ M.value = void 0, X.value = "";
2370
+ return;
2371
+ }
2372
+ const x = k.value ? Re(Math.round(v), $.value, w.value) : G(v);
2373
+ M.value = x, X.value = z(x);
2374
+ const V = R(x);
2375
+ V && a("valueCommit", V);
2376
+ }
2377
+ function L(v) {
2378
+ X.value = v;
2379
+ const x = J(v);
2380
+ x !== void 0 && !Number.isNaN(x) && (M.value = x, R(x));
2381
+ }
2382
+ function ue(v = 1) {
2383
+ if (n.disabled || n.readOnly) return;
2384
+ const x = M.value ?? 0, V = G(x + Y.value * v);
2385
+ M.value = V, X.value = z(V);
2386
+ const ne = R(V);
2387
+ ne && a("valueCommit", ne);
2388
+ }
2389
+ function U(v = 1) {
2390
+ if (n.disabled || n.readOnly) return;
2391
+ const x = M.value ?? 0, V = G(x - Y.value * v);
2392
+ M.value = V, X.value = z(V);
2393
+ const ne = R(V);
2394
+ ne && a("valueCommit", ne);
2395
+ }
2396
+ function Z(v) {
2397
+ if (n.disabled || n.readOnly) return;
2398
+ const x = v === "min" ? $.value : w.value;
2399
+ M.value = x, X.value = z(x);
2400
+ const V = R(x);
2401
+ V && a("valueCommit", V);
2402
+ }
2403
+ const re = h(() => M.value === void 0 ? !1 : G(M.value) <= $.value), se = h(() => M.value === void 0 ? !1 : G(M.value) >= w.value);
2404
+ function ee(v) {
2405
+ T.value = v;
2406
+ }
2407
+ return bo({
2408
+ modelValue: M,
2409
+ displayValue: X,
2410
+ disabled: o,
2411
+ readOnly: l,
2412
+ isDecreaseDisabled: re,
2413
+ isIncreaseDisabled: se,
2414
+ handleIncrease: ue,
2415
+ handleDecrease: U,
2416
+ handleMinMaxValue: Z,
2417
+ commitValue: K,
2418
+ onInputChange: L,
2419
+ inputEl: T,
2420
+ onInputElement: ee,
2421
+ format: I
2422
+ }), (v, x) => (D(), P(s(W), {
2423
+ ref: s(r),
2424
+ as: v.as,
2425
+ "as-child": v.asChild,
2426
+ dir: void 0,
2427
+ "data-disabled": s(o) ? "" : void 0,
2428
+ "data-readonly": s(l) ? "" : void 0
2429
+ }, {
2430
+ default: N(() => [
2431
+ O(v.$slots, "default"),
2432
+ s(u) && v.name ? (D(), P(s(Zt), {
2433
+ key: 0,
2434
+ as: "input",
2435
+ type: "hidden",
2436
+ value: M.value !== void 0 ? M.value : "",
2437
+ name: v.name,
2438
+ required: v.required,
2439
+ disabled: s(o)
2440
+ }, null, 8, ["value", "name", "required", "disabled"])) : jt("", !0)
2441
+ ]),
2442
+ _: 3
2443
+ }, 8, ["as", "as-child", "data-disabled", "data-readonly"]));
2444
+ }
2445
+ }), Bo = /* @__PURE__ */ B({
2446
+ __name: "ColorFieldInput",
2447
+ props: {
2448
+ as: { default: "input" },
2449
+ asChild: { type: Boolean }
2450
+ },
2451
+ setup(t) {
2452
+ const e = Rt(), { forwardRef: n, currentElement: a } = H();
2453
+ Te(() => {
2454
+ a.value && e.onInputElement(a.value);
2455
+ });
2456
+ function o(u) {
2457
+ const p = u.target;
2458
+ e.onInputChange(p.value);
2459
+ }
2460
+ function l(u) {
2461
+ const p = u.target;
2462
+ Pn(() => p.select()).catch(() => {
2463
+ });
2464
+ }
2465
+ function r() {
2466
+ e.displayValue.value, e.commitValue(
2467
+ e.modelValue.value !== void 0 ? e.modelValue.value : void 0
2468
+ );
2469
+ }
2470
+ function i(u) {
2471
+ if (!(e.disabled.value || e.readOnly.value)) {
2472
+ if (u.key === "Enter") {
2473
+ e.commitValue(e.modelValue.value);
2474
+ return;
2475
+ }
2476
+ switch (u.key) {
2477
+ case "ArrowUp":
2478
+ u.preventDefault(), e.handleIncrease();
2479
+ break;
2480
+ case "ArrowDown":
2481
+ u.preventDefault(), e.handleDecrease();
2482
+ break;
2483
+ case "PageUp":
2484
+ u.preventDefault(), e.handleIncrease(10);
2485
+ break;
2486
+ case "PageDown":
2487
+ u.preventDefault(), e.handleDecrease(10);
2488
+ break;
2489
+ case "Home":
2490
+ u.preventDefault(), e.handleMinMaxValue("min");
2491
+ break;
2492
+ case "End":
2493
+ u.preventDefault(), e.handleMinMaxValue("max");
2494
+ break;
2495
+ }
2496
+ }
2497
+ }
2498
+ return (u, p) => (D(), P(s(W), {
2499
+ ref: s(n),
2500
+ as: u.as,
2501
+ "as-child": u.asChild,
2502
+ type: "text",
2503
+ role: "spinbutton",
2504
+ "aria-valuenow": s(e).modelValue.value,
2505
+ "aria-valuemin": void 0,
2506
+ "aria-valuemax": void 0,
2507
+ value: s(e).displayValue.value,
2508
+ disabled: s(e).disabled.value || void 0,
2509
+ readonly: s(e).readOnly.value || void 0,
2510
+ "data-disabled": s(e).disabled.value ? "" : void 0,
2511
+ "data-readonly": s(e).readOnly.value ? "" : void 0,
2512
+ autocomplete: "off",
2513
+ autocorrect: "off",
2514
+ spellcheck: "false",
2515
+ inputmode: "text",
2516
+ onInput: o,
2517
+ onFocus: l,
2518
+ onBlur: r,
2519
+ onKeydown: i
2520
+ }, {
2521
+ default: N(() => [
2522
+ O(u.$slots, "default")
2523
+ ]),
2524
+ _: 3
2525
+ }, 8, ["as", "as-child", "aria-valuenow", "value", "disabled", "readonly", "data-disabled", "data-readonly"]));
2526
+ }
2527
+ });
2528
+ function Cn(t) {
2529
+ const { disabled: e, onTrigger: n } = t, a = q(!1);
2530
+ let o;
2531
+ function l() {
2532
+ o !== void 0 && (clearTimeout(o), o = void 0);
2533
+ }
2534
+ function r(u) {
2535
+ l(), !e.value && (n(), o = setTimeout(() => r(60), u));
2536
+ }
2537
+ function i(u) {
2538
+ if (u.button !== 0 || a.value || e.value) return;
2539
+ u.preventDefault(), a.value = !0, r(400);
2540
+ const p = () => {
2541
+ a.value = !1, l(), window.removeEventListener("pointerup", p), window.removeEventListener("pointercancel", p);
2542
+ };
2543
+ window.addEventListener("pointerup", p), window.addEventListener("pointercancel", p);
2544
+ }
2545
+ return Mt(l), { isPressed: a, onPointerDown: i };
2546
+ }
2547
+ const Yo = /* @__PURE__ */ B({
2548
+ __name: "ColorFieldIncrement",
2549
+ props: {
2550
+ as: { default: "button" },
2551
+ asChild: { type: Boolean },
2552
+ disabled: { type: Boolean, default: !1 }
2553
+ },
2554
+ setup(t) {
2555
+ const e = t, n = Rt();
2556
+ H();
2557
+ const a = h(
2558
+ () => n.disabled.value || n.readOnly.value || e.disabled || n.isIncreaseDisabled.value
2559
+ ), { isPressed: o, onPointerDown: l } = Cn({
2560
+ disabled: a,
2561
+ onTrigger: () => n.handleIncrease()
2562
+ });
2563
+ return (r, i) => (D(), P(s(W), {
2564
+ as: r.as,
2565
+ "as-child": r.asChild,
2566
+ tabindex: "-1",
2567
+ "aria-label": "Increase",
2568
+ disabled: a.value || void 0,
2569
+ "data-pressed": s(o) ? "" : void 0,
2570
+ "data-disabled": a.value ? "" : void 0,
2571
+ onPointerdown: s(l),
2572
+ onContextmenu: i[0] || (i[0] = xe(() => {
2573
+ }, ["prevent"]))
2574
+ }, {
2575
+ default: N(() => [
2576
+ O(r.$slots, "default")
2577
+ ]),
2578
+ _: 3
2579
+ }, 8, ["as", "as-child", "disabled", "data-pressed", "data-disabled", "onPointerdown"]));
2580
+ }
2581
+ }), Fo = /* @__PURE__ */ B({
2582
+ __name: "ColorFieldDecrement",
2583
+ props: {
2584
+ as: { default: "button" },
2585
+ asChild: { type: Boolean },
2586
+ disabled: { type: Boolean, default: !1 }
2587
+ },
2588
+ setup(t) {
2589
+ const e = t, n = Rt();
2590
+ H();
2591
+ const a = h(
2592
+ () => n.disabled.value || n.readOnly.value || e.disabled || n.isDecreaseDisabled.value
2593
+ ), { isPressed: o, onPointerDown: l } = Cn({
2594
+ disabled: a,
2595
+ onTrigger: () => n.handleDecrease()
2596
+ });
2597
+ return (r, i) => (D(), P(s(W), {
2598
+ as: r.as,
2599
+ "as-child": r.asChild,
2600
+ tabindex: "-1",
2601
+ "aria-label": "Decrease",
2602
+ disabled: a.value || void 0,
2603
+ "data-pressed": s(o) ? "" : void 0,
2604
+ "data-disabled": a.value ? "" : void 0,
2605
+ onPointerdown: s(l),
2606
+ onContextmenu: i[0] || (i[0] = xe(() => {
2607
+ }, ["prevent"]))
2608
+ }, {
2609
+ default: N(() => [
2610
+ O(r.$slots, "default")
2611
+ ]),
2612
+ _: 3
2613
+ }, 8, ["as", "as-child", "disabled", "data-pressed", "data-disabled", "onPointerdown"]));
2614
+ }
2615
+ }), bt = /* @__PURE__ */ B({
2616
+ __name: "ColorSwatchRoot",
2617
+ props: {
2618
+ as: { default: "div" },
2619
+ asChild: { type: Boolean },
2620
+ modelValue: {},
2621
+ checkerSize: { default: 16 },
2622
+ alpha: { type: Boolean }
2623
+ },
2624
+ setup(t) {
2625
+ const e = t, { forwardRef: n } = H();
2626
+ function a(p) {
2627
+ if (p)
2628
+ return p instanceof Q ? p : Q.parse(p) ?? void 0;
2629
+ }
2630
+ const o = h(() => a(e.modelValue)), l = h(() => {
2631
+ if (!o.value) return "transparent";
2632
+ const p = o.value.set({ alpha: 1 });
2633
+ if (!p) return "transparent";
2634
+ const f = p.to("rgb");
2635
+ return f ? f.toString("css") : "transparent";
2636
+ }), r = h(() => o.value ? o.value.alpha ?? 1 : 1), i = h(() => {
2637
+ if (!o.value) return "transparent";
2638
+ if (!e.alpha) return l.value;
2639
+ const p = o.value.to("rgb");
2640
+ return p ? p.toString("css") : "transparent";
2641
+ }), u = h(() => {
2642
+ const p = e.checkerSize, f = `repeating-conic-gradient(rgb(230, 230, 230) 0%, rgb(230, 230, 230) 25%, white 0%, white 50%) 0% 50% / ${p}px ${p}px`;
2643
+ return {
2644
+ "--swatch-color-opaque": l.value,
2645
+ "--swatch-alpha": r.value,
2646
+ "--swatch-checkerboard": f,
2647
+ "--swatch-color": i.value,
2648
+ background: `linear-gradient(${i.value}, ${i.value}), ${f}`
2649
+ };
2650
+ });
2651
+ return (p, f) => (D(), P(s(W), {
2652
+ ref: s(n),
2653
+ as: p.as,
2654
+ "as-child": p.asChild,
2655
+ role: "img",
2656
+ style: Ue(u.value)
2657
+ }, {
2658
+ default: N(() => [
2659
+ O(p.$slots, "default")
2660
+ ]),
2661
+ _: 3
2662
+ }, 8, ["as", "as-child", "style"]));
2663
+ }
2664
+ }), Oo = /* @__PURE__ */ B({
2665
+ __name: "ColorFieldSwatch",
2666
+ setup(t) {
2667
+ return H(), (e, n) => (D(), P(bt, {
2668
+ as: e.as,
2669
+ "as-child": e.asChild,
2670
+ "model-value": e.modelValue,
2671
+ "checker-size": e.checkerSize,
2672
+ alpha: e.alpha
2673
+ }, {
2674
+ default: N(() => [
2675
+ O(e.$slots, "default")
2676
+ ]),
2677
+ _: 3
2678
+ }, 8, ["as", "as-child", "model-value", "checker-size", "alpha"]));
2679
+ }
2680
+ }), [go, yo] = ze("ColorSwatchGroupRoot"), Ho = /* @__PURE__ */ B({
2681
+ __name: "ColorSwatchGroupRoot",
2682
+ props: {
2683
+ as: { default: "div" },
2684
+ asChild: { type: Boolean },
2685
+ type: { default: "single" },
2686
+ modelValue: {},
2687
+ defaultValue: { default: () => [] },
2688
+ disabled: { type: Boolean, default: !1 },
2689
+ orientation: { default: "horizontal" },
2690
+ loop: { type: Boolean, default: !0 },
2691
+ rovingFocus: { type: Boolean, default: !0 },
2692
+ dir: {}
2693
+ },
2694
+ emits: ["update:modelValue"],
2695
+ setup(t, { emit: e }) {
2696
+ const n = t, a = e, { disabled: o, dir: l } = xt(n), r = Wt(l), { forwardRef: i } = H(), u = q(n.modelValue ?? n.defaultValue);
2697
+ ae(
2698
+ () => n.modelValue,
2699
+ (f) => {
2700
+ f !== void 0 && (u.value = f);
2701
+ }
2702
+ );
2703
+ function p(f) {
2704
+ let d;
2705
+ n.type === "single" ? d = u.value.includes(f) ? [] : [f] : d = u.value.includes(f) ? u.value.filter((g) => g !== f) : [...u.value, f], u.value = d, a("update:modelValue", d);
2706
+ }
2707
+ return yo({
2708
+ modelValue: u,
2709
+ type: h(() => n.type),
2710
+ disabled: o,
2711
+ rovingFocus: h(() => n.rovingFocus),
2712
+ changeModelValue: p
2713
+ }), (f, d) => f.rovingFocus ? (D(), P(s(Fn), {
2714
+ key: 0,
2715
+ "as-child": "",
2716
+ orientation: f.orientation,
2717
+ dir: s(r),
2718
+ loop: f.loop
2719
+ }, {
2720
+ default: N(() => [
2721
+ Ge(s(W), {
2722
+ ref: s(i),
2723
+ as: f.as,
2724
+ "as-child": f.asChild,
2725
+ role: "group",
2726
+ dir: s(r),
2727
+ "data-orientation": f.orientation
2728
+ }, {
2729
+ default: N(() => [
2730
+ O(f.$slots, "default")
2731
+ ]),
2732
+ _: 3
2733
+ }, 8, ["as", "as-child", "dir", "data-orientation"])
2734
+ ]),
2735
+ _: 3
2736
+ }, 8, ["orientation", "dir", "loop"])) : (D(), P(s(W), {
2737
+ key: 1,
2738
+ ref: s(i),
2739
+ as: f.as,
2740
+ "as-child": f.asChild,
2741
+ role: "group",
2742
+ dir: s(r),
2743
+ "data-orientation": f.orientation
2744
+ }, {
2745
+ default: N(() => [
2746
+ O(f.$slots, "default")
2747
+ ]),
2748
+ _: 3
2749
+ }, 8, ["as", "as-child", "dir", "data-orientation"]));
2750
+ }
2751
+ }), Lo = /* @__PURE__ */ B({
2752
+ __name: "ColorSwatchGroupItem",
2753
+ props: {
2754
+ as: { default: "button" },
2755
+ asChild: { type: Boolean },
2756
+ value: {},
2757
+ disabled: { type: Boolean, default: !1 },
2758
+ checkerSize: {},
2759
+ alpha: { type: Boolean }
2760
+ },
2761
+ setup(t) {
2762
+ const e = t, { forwardRef: n } = H(), a = go(), o = h(() => e.disabled || a.disabled.value), l = h(() => a.modelValue.value.includes(e.value)), r = h(() => l.value ? "on" : "off"), i = h(() => a.type.value === "single" ? "radio" : "checkbox"), u = h(() => l.value);
2763
+ function p() {
2764
+ o.value || a.changeModelValue(e.value);
2765
+ }
2766
+ return (f, d) => s(a).rovingFocus.value ? (D(), P(s(On), {
2767
+ key: 0,
2768
+ "as-child": "",
2769
+ focusable: !o.value
2770
+ }, {
2771
+ default: N(() => [
2772
+ Ge(bt, {
2773
+ ref: s(n),
2774
+ as: f.as,
2775
+ "as-child": f.asChild,
2776
+ "model-value": f.value,
2777
+ "checker-size": f.checkerSize,
2778
+ alpha: f.alpha,
2779
+ role: i.value,
2780
+ "aria-checked": u.value,
2781
+ "aria-pressed": l.value,
2782
+ "aria-disabled": o.value || void 0,
2783
+ "data-state": r.value,
2784
+ "data-disabled": o.value ? "" : void 0,
2785
+ tabindex: o.value ? -1 : void 0,
2786
+ onClick: p,
2787
+ onKeydown: [
2788
+ Pe(xe(p, ["prevent"]), ["enter"]),
2789
+ Pe(xe(p, ["prevent"]), ["space"])
2790
+ ]
2791
+ }, {
2792
+ default: N(() => [
2793
+ O(f.$slots, "default")
2794
+ ]),
2795
+ _: 3
2796
+ }, 8, ["as", "as-child", "model-value", "checker-size", "alpha", "role", "aria-checked", "aria-pressed", "aria-disabled", "data-state", "data-disabled", "tabindex", "onKeydown"])
2797
+ ]),
2798
+ _: 3
2799
+ }, 8, ["focusable"])) : (D(), P(bt, {
2800
+ key: 1,
2801
+ ref: s(n),
2802
+ as: f.as,
2803
+ "as-child": f.asChild,
2804
+ "model-value": f.value,
2805
+ "checker-size": f.checkerSize,
2806
+ alpha: f.alpha,
2807
+ role: i.value,
2808
+ "aria-checked": u.value,
2809
+ "aria-pressed": l.value,
2810
+ "aria-disabled": o.value || void 0,
2811
+ "data-state": r.value,
2812
+ "data-disabled": o.value ? "" : void 0,
2813
+ onClick: p,
2814
+ onKeydown: [
2815
+ Pe(xe(p, ["prevent"]), ["enter"]),
2816
+ Pe(xe(p, ["prevent"]), ["space"])
2817
+ ]
2818
+ }, {
2819
+ default: N(() => [
2820
+ O(f.$slots, "default")
2821
+ ]),
2822
+ _: 3
2823
+ }, 8, ["as", "as-child", "model-value", "checker-size", "alpha", "role", "aria-checked", "aria-pressed", "aria-disabled", "data-state", "data-disabled", "onKeydown"]));
2824
+ }
2825
+ });
2826
+ export {
2827
+ Ao as ColorAreaCheckerboard,
2828
+ zo as ColorAreaGradient,
2829
+ So as ColorAreaRegion,
2830
+ $o as ColorAreaRoot,
2831
+ ko as ColorAreaThumb,
2832
+ Ro as ColorAreaThumbX,
2833
+ _o as ColorAreaThumbY,
2834
+ To as ColorAreaTrack,
2835
+ Fo as ColorFieldDecrement,
2836
+ Yo as ColorFieldIncrement,
2837
+ Bo as ColorFieldInput,
2838
+ Io as ColorFieldRoot,
2839
+ Oo as ColorFieldSwatch,
2840
+ Xo as ColorSliderCheckerboard,
2841
+ Po as ColorSliderGradient,
2842
+ No as ColorSliderRange,
2843
+ Vo as ColorSliderRoot,
2844
+ Do as ColorSliderThumb,
2845
+ Eo as ColorSliderTrack,
2846
+ Lo as ColorSwatchGroupItem,
2847
+ Ho as ColorSwatchGroupRoot,
2848
+ bt as ColorSwatchRoot,
2849
+ me as injectColorAreaRootContext,
2850
+ vo as injectColorSliderRootContext,
2851
+ go as injectColorSwatchGroupContext
2852
+ };