@protonradio/proton-ui 0.10.13 → 0.10.14

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.
@@ -1,12 +1,12 @@
1
- import { S as T, W as N, d as L, G as X } from "./palettes-BDp2VnQU.mjs";
2
- import { toRgba as I, transparentize as V, saturate as Z, desaturate as tt, parseToRgba as nt, getScale as O, adjustHue as et, getLuminance as x, lighten as Y, darken as F, hasBadContrast as J } from "color2k";
1
+ import { S as T, W as N, d as P, G as X } from "./palettes-BgYtmc18.mjs";
2
+ import { toRgba as _, transparentize as V, saturate as Z, desaturate as tt, getScale as j, adjustHue as nt, getLuminance as M, lighten as Y, darken as F, hasBadContrast as J } from "color2k";
3
3
  var U = function(n, r) {
4
4
  return n < r ? -1 : n > r ? 1 : 0;
5
5
  }, $ = function(n) {
6
6
  return n.reduce(function(r, a) {
7
7
  return r + a;
8
8
  }, 0);
9
- }, rt = /* @__PURE__ */ function() {
9
+ }, et = /* @__PURE__ */ function() {
10
10
  function n(a) {
11
11
  this.colors = a;
12
12
  }
@@ -16,7 +16,7 @@ var U = function(n, r) {
16
16
  }, r.map = function(a) {
17
17
  return a;
18
18
  }, n;
19
- }(), ot = function() {
19
+ }(), rt = function() {
20
20
  function n(e, t, s) {
21
21
  return (e << 10) + (t << 5) + s;
22
22
  }
@@ -39,40 +39,40 @@ var U = function(n, r) {
39
39
  return s || u(), t;
40
40
  } };
41
41
  }
42
- function a(e, t, s, u, c, o, h) {
42
+ function a(e, t, s, u, c, o, m) {
43
43
  var f = this;
44
- f.r1 = e, f.r2 = t, f.g1 = s, f.g2 = u, f.b1 = c, f.b2 = o, f.histo = h;
44
+ f.r1 = e, f.r2 = t, f.g1 = s, f.g2 = u, f.b1 = c, f.b2 = o, f.histo = m;
45
45
  }
46
46
  function l() {
47
47
  this.vboxes = new r(function(e, t) {
48
48
  return U(e.vbox.count() * e.vbox.volume(), t.vbox.count() * t.vbox.volume());
49
49
  });
50
50
  }
51
- function m(e, t) {
51
+ function h(e, t) {
52
52
  if (t.count()) {
53
53
  var s = t.r2 - t.r1 + 1, u = t.g2 - t.g1 + 1, c = Math.max.apply(null, [s, u, t.b2 - t.b1 + 1]);
54
54
  if (t.count() == 1) return [t.copy()];
55
- var o, h, f, v, d = 0, p = [], D = [];
55
+ var o, m, f, v, d = 0, p = [], C = [];
56
56
  if (c == s) for (o = t.r1; o <= t.r2; o++) {
57
- for (v = 0, h = t.g1; h <= t.g2; h++) for (f = t.b1; f <= t.b2; f++) v += e[n(o, h, f)] || 0;
57
+ for (v = 0, m = t.g1; m <= t.g2; m++) for (f = t.b1; f <= t.b2; f++) v += e[n(o, m, f)] || 0;
58
58
  p[o] = d += v;
59
59
  }
60
60
  else if (c == u) for (o = t.g1; o <= t.g2; o++) {
61
- for (v = 0, h = t.r1; h <= t.r2; h++) for (f = t.b1; f <= t.b2; f++) v += e[n(h, o, f)] || 0;
61
+ for (v = 0, m = t.r1; m <= t.r2; m++) for (f = t.b1; f <= t.b2; f++) v += e[n(m, o, f)] || 0;
62
62
  p[o] = d += v;
63
63
  }
64
64
  else for (o = t.b1; o <= t.b2; o++) {
65
- for (v = 0, h = t.r1; h <= t.r2; h++) for (f = t.g1; f <= t.g2; f++) v += e[n(h, f, o)] || 0;
65
+ for (v = 0, m = t.r1; m <= t.r2; m++) for (f = t.g1; f <= t.g2; f++) v += e[n(m, f, o)] || 0;
66
66
  p[o] = d += v;
67
67
  }
68
- return p.forEach(function(C, g) {
69
- D[g] = d - C;
70
- }), function(C) {
71
- var g, E, R, A, b, w = C + "1", S = C + "2", M = 0;
68
+ return p.forEach(function(D, g) {
69
+ C[g] = d - D;
70
+ }), function(D) {
71
+ var g, b, R, I, E, w = D + "1", S = D + "2", y = 0;
72
72
  for (o = t[w]; o <= t[S]; o++) if (p[o] > d / 2) {
73
- for (R = t.copy(), A = t.copy(), b = (g = o - t[w]) <= (E = t[S] - o) ? Math.min(t[S] - 1, ~~(o + E / 2)) : Math.max(t[w], ~~(o - 1 - g / 2)); !p[b]; ) b++;
74
- for (M = D[b]; !M && p[b - 1]; ) M = D[--b];
75
- return R[S] = b, A[w] = R[S] + 1, [R, A];
73
+ for (R = t.copy(), I = t.copy(), E = (g = o - t[w]) <= (b = t[S] - o) ? Math.min(t[S] - 1, ~~(o + b / 2)) : Math.max(t[w], ~~(o - 1 - g / 2)); !p[E]; ) E++;
74
+ for (y = C[E]; !y && p[E - 1]; ) y = C[--E];
75
+ return R[S] = E, I[w] = R[S] + 1, [R, I];
76
76
  }
77
77
  }(c == s ? "r" : c == u ? "g" : "b");
78
78
  }
@@ -83,9 +83,9 @@ var U = function(n, r) {
83
83
  }, count: function(e) {
84
84
  var t = this, s = t.histo;
85
85
  if (!t._count_set || e) {
86
- var u, c, o, h = 0;
87
- for (u = t.r1; u <= t.r2; u++) for (c = t.g1; c <= t.g2; c++) for (o = t.b1; o <= t.b2; o++) h += s[n(u, c, o)] || 0;
88
- t._count = h, t._count_set = !0;
86
+ var u, c, o, m = 0;
87
+ for (u = t.r1; u <= t.r2; u++) for (c = t.g1; c <= t.g2; c++) for (o = t.b1; o <= t.b2; o++) m += s[n(u, c, o)] || 0;
88
+ t._count = m, t._count_set = !0;
89
89
  }
90
90
  return t._count;
91
91
  }, copy: function() {
@@ -94,10 +94,10 @@ var U = function(n, r) {
94
94
  }, avg: function(e) {
95
95
  var t = this, s = t.histo;
96
96
  if (!t._avg || e) {
97
- var u, c, o, h, f = 0, v = 0, d = 0, p = 0;
97
+ var u, c, o, m, f = 0, v = 0, d = 0, p = 0;
98
98
  if (t.r1 === t.r2 && t.g1 === t.g2 && t.b1 === t.b2) t._avg = [t.r1 << 3, t.g1 << 3, t.b1 << 3];
99
99
  else {
100
- for (c = t.r1; c <= t.r2; c++) for (o = t.g1; o <= t.g2; o++) for (h = t.b1; h <= t.b2; h++) f += u = s[n(c, o, h)] || 0, v += u * (c + 0.5) * 8, d += u * (o + 0.5) * 8, p += u * (h + 0.5) * 8;
100
+ for (c = t.r1; c <= t.r2; c++) for (o = t.g1; o <= t.g2; o++) for (m = t.b1; m <= t.b2; m++) f += u = s[n(c, o, m)] || 0, v += u * (c + 0.5) * 8, d += u * (o + 0.5) * 8, p += u * (m + 0.5) * 8;
101
101
  t._avg = f ? [~~(v / f), ~~(d / f), ~~(p / f)] : [~~(8 * (t.r1 + t.r2 + 1) / 2), ~~(8 * (t.g1 + t.g2 + 1) / 2), ~~(8 * (t.b1 + t.b2 + 1) / 2)];
102
102
  }
103
103
  }
@@ -132,43 +132,43 @@ var U = function(n, r) {
132
132
  if (!Number.isInteger(t) || t < 1 || t > 256) throw new Error("Invalid maximum color count. It must be an integer between 1 and 256.");
133
133
  if (!e.length || t < 2 || t > 256 || !e.length || t < 2 || t > 256) return !1;
134
134
  for (var s = [], u = /* @__PURE__ */ new Set(), c = 0; c < e.length; c++) {
135
- var o = e[c], h = o.join(",");
136
- u.has(h) || (u.add(h), s.push(o));
135
+ var o = e[c], m = o.join(",");
136
+ u.has(m) || (u.add(m), s.push(o));
137
137
  }
138
- if (s.length <= t) return new rt(s);
138
+ if (s.length <= t) return new et(s);
139
139
  var f = function(g) {
140
- var E, R = new Array(32768);
141
- return g.forEach(function(A) {
142
- E = n(A[0] >> 3, A[1] >> 3, A[2] >> 3), R[E] = (R[E] || 0) + 1;
140
+ var b, R = new Array(32768);
141
+ return g.forEach(function(I) {
142
+ b = n(I[0] >> 3, I[1] >> 3, I[2] >> 3), R[b] = (R[b] || 0) + 1;
143
143
  }), R;
144
144
  }(e);
145
145
  f.forEach(function() {
146
146
  });
147
- var v = function(g, E) {
148
- var R, A, b, w = 1e6, S = 0, M = 1e6, K = 0, z = 1e6, W = 0;
149
- return g.forEach(function(j) {
150
- (R = j[0] >> 3) < w ? w = R : R > S && (S = R), (A = j[1] >> 3) < M ? M = A : A > K && (K = A), (b = j[2] >> 3) < z ? z = b : b > W && (W = b);
151
- }), new a(w, S, M, K, z, W, E);
152
- }(e, f), d = new r(function(g, E) {
153
- return U(g.count(), E.count());
147
+ var v = function(g, b) {
148
+ var R, I, E, w = 1e6, S = 0, y = 1e6, K = 0, z = 1e6, O = 0;
149
+ return g.forEach(function(W) {
150
+ (R = W[0] >> 3) < w ? w = R : R > S && (S = R), (I = W[1] >> 3) < y ? y = I : I > K && (K = I), (E = W[2] >> 3) < z ? z = E : E > O && (O = E);
151
+ }), new a(w, S, y, K, z, O, b);
152
+ }(e, f), d = new r(function(g, b) {
153
+ return U(g.count(), b.count());
154
154
  });
155
- function p(g, E) {
156
- for (var R, A = g.size(), b = 0; b < 1e3; ) {
157
- if (A >= E || b++ > 1e3) return;
155
+ function p(g, b) {
156
+ for (var R, I = g.size(), E = 0; E < 1e3; ) {
157
+ if (I >= b || E++ > 1e3) return;
158
158
  if ((R = g.pop()).count()) {
159
- var w = m(f, R), S = w[0], M = w[1];
159
+ var w = h(f, R), S = w[0], y = w[1];
160
160
  if (!S) return;
161
- g.push(S), M && (g.push(M), A++);
162
- } else g.push(R), b++;
161
+ g.push(S), y && (g.push(y), I++);
162
+ } else g.push(R), E++;
163
163
  }
164
164
  }
165
165
  d.push(v), p(d, 0.75 * t);
166
- for (var D = new r(function(g, E) {
167
- return U(g.count() * g.volume(), E.count() * E.volume());
168
- }); d.size(); ) D.push(d.pop());
169
- p(D, t);
170
- for (var C = new l(); D.size(); ) C.push(D.pop());
171
- return C;
166
+ for (var C = new r(function(g, b) {
167
+ return U(g.count() * g.volume(), b.count() * b.volume());
168
+ }); d.size(); ) C.push(d.pop());
169
+ p(C, t);
170
+ for (var D = new l(); C.size(); ) D.push(C.pop());
171
+ return D;
172
172
  } };
173
173
  }().quantize, Q = function(n) {
174
174
  this.canvas = document.createElement("canvas"), this.context = this.canvas.getContext("2d"), this.width = this.canvas.width = n.naturalWidth, this.height = this.canvas.height = n.naturalHeight, this.context.drawImage(n, 0, 0, this.width, this.height);
@@ -188,74 +188,89 @@ G.prototype.getColor = function(n, r) {
188
188
  u = Math.max(u, 2), u = Math.min(u, 20);
189
189
  } else u = 10;
190
190
  return (c === void 0 || !Number.isInteger(c) || c < 1) && (c = 10), { colorCount: u, quality: c };
191
- }({ colorCount: r, quality: a }), m = new Q(n), e = function(s, u, c) {
192
- for (var o, h, f, v, d, p = s, D = [], C = 0; C < u; C += c) h = p[0 + (o = 4 * C)], f = p[o + 1], v = p[o + 2], ((d = p[o + 3]) === void 0 || d >= 125) && (h > 250 && f > 250 && v > 250 || D.push([h, f, v]));
193
- return D;
194
- }(m.getImageData().data, m.width * m.height, l.quality), t = ot(e, l.colorCount);
191
+ }({ colorCount: r, quality: a }), h = new Q(n), e = function(s, u, c) {
192
+ for (var o, m, f, v, d, p = s, C = [], D = 0; D < u; D += c) m = p[0 + (o = 4 * D)], f = p[o + 1], v = p[o + 2], ((d = p[o + 3]) === void 0 || d >= 125) && (m > 250 && f > 250 && v > 250 || C.push([m, f, v]));
193
+ return C;
194
+ }(h.getImageData().data, h.width * h.height, l.quality), t = rt(e, l.colorCount);
195
195
  return t ? t.palette() : null;
196
196
  }, G.prototype.getColorFromUrl = function(n, r, a) {
197
- var l = this, m = document.createElement("img");
198
- m.addEventListener("load", function() {
199
- var e = l.getPalette(m, 5, a);
197
+ var l = this, h = document.createElement("img");
198
+ h.addEventListener("load", function() {
199
+ var e = l.getPalette(h, 5, a);
200
200
  r(e[0], n);
201
- }), m.src = n;
201
+ }), h.src = n;
202
202
  }, G.prototype.getImageData = function(n, r) {
203
203
  var a = new XMLHttpRequest();
204
204
  a.open("GET", n, !0), a.responseType = "arraybuffer", a.onload = function() {
205
205
  if (this.status == 200) {
206
206
  var l = new Uint8Array(this.response);
207
207
  i = l.length;
208
- for (var m = new Array(i), e = 0; e < l.length; e++) m[e] = String.fromCharCode(l[e]);
209
- var t = m.join(""), s = window.btoa(t);
208
+ for (var h = new Array(i), e = 0; e < l.length; e++) h[e] = String.fromCharCode(l[e]);
209
+ var t = h.join(""), s = window.btoa(t);
210
210
  r("data:image/png;base64," + s);
211
211
  }
212
212
  }, a.send();
213
213
  }, G.prototype.getColorAsync = function(n, r, a) {
214
214
  var l = this;
215
- this.getImageData(n, function(m) {
215
+ this.getImageData(n, function(h) {
216
216
  var e = document.createElement("img");
217
217
  e.addEventListener("load", function() {
218
218
  var t = l.getPalette(e, 5, a);
219
219
  r(t[0], this);
220
- }), e.src = m;
220
+ }), e.src = h;
221
221
  });
222
222
  };
223
- const k = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[0]}, ${n[1]}, ${n[2]}, ${r})`, ct = (n, r) => I(V(n, r)), y = (n, r) => I(Z(n, r)), P = (n, r) => I(tt(n, r)), lt = (n) => {
223
+ const k = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[0]}, ${n[1]}, ${n[2]}, ${r})`, lt = (n, r) => _(V(n, r)), x = (n, r) => _(Z(n, r)), L = (n, r) => _(tt(n, r));
224
+ function ft(n) {
225
+ return n instanceof HTMLImageElement ? Promise.resolve(ot(n)) : at(n);
226
+ }
227
+ function ot(n) {
224
228
  try {
225
229
  return new G().getColor(n);
226
230
  } catch {
227
231
  return [255, 255, 255];
228
232
  }
229
- }, ft = (n) => {
230
- const [r, a, l] = nt(n), m = r + a + l;
231
- return m > 500 ? "rgba(132, 133, 144, 0.4)" : m > 290 ? "rgba(93, 94, 105, 0.4)" : "rgba(255,255,255,0.1)";
232
- }, ht = (n) => {
233
- const r = k(n), a = O("#FFFFFF", r, "#000000"), l = Array.from({ length: 12 }, (o, h) => {
234
- const f = a(h / 11);
235
- return P(f, 85e-4);
236
- }), m = l.map(
237
- (o) => y(B(o), 5e-3)
238
- ), e = I(y(et(r, 180), 1)), t = O("#FFFFFF", e, "#000000"), s = Array.from({ length: 12 }, (o, h) => {
239
- const f = t(h / 11);
240
- return P(f, 0.1);
233
+ }
234
+ function at(n) {
235
+ return new Promise((r, a) => {
236
+ const l = document.createElement("img");
237
+ l.crossOrigin = "anonymous", l.onload = () => {
238
+ try {
239
+ const h = new G().getColor(l);
240
+ r(h);
241
+ } catch {
242
+ r([255, 255, 255]);
243
+ }
244
+ }, l.onerror = () => a(new Error("Failed to load image")), l.src = n;
245
+ });
246
+ }
247
+ const mt = (n) => {
248
+ const r = k(n), a = j("#FFFFFF", r, "#000000"), l = Array.from({ length: 12 }, (o, m) => {
249
+ const f = a(m / 11);
250
+ return L(f, 85e-4);
251
+ }), h = l.map(
252
+ (o) => x(B(o), 5e-3)
253
+ ), e = _(x(nt(r, 180), 1)), t = j("#FFFFFF", e, "#000000"), s = Array.from({ length: 12 }, (o, m) => {
254
+ const f = t(m / 11);
255
+ return L(f, 0.1);
241
256
  }), u = s.map(
242
- (o) => P(B(o), 0.22)
243
- ), c = at(
244
- y(m[5], 0.115)
257
+ (o) => L(B(o), 0.22)
258
+ ), c = it(
259
+ x(h[5], 0.115)
245
260
  );
246
261
  return {
247
262
  BASE_COLOR: k(n),
248
263
  BRAND: {
249
264
  PRIMARY: c,
250
- PRIMARY_LIGHT: _(c, 0.25, {
265
+ PRIMARY_LIGHT: A(c, 0.25, {
251
266
  min: 0.6,
252
267
  max: 0.8
253
268
  }),
254
- SECONDARY: P(u[4], 0.02)
269
+ SECONDARY: L(u[4], 0.02)
255
270
  },
256
271
  PRIMARY: {
257
272
  //backgrounds
258
- PRIMARY_SUPER_DARK: _(
273
+ PRIMARY_SUPER_DARK: A(
259
274
  H(l[9]),
260
275
  -0.6,
261
276
  {
@@ -263,7 +278,7 @@ const k = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[
263
278
  max: 0.02
264
279
  }
265
280
  ),
266
- PRIMARY_DARK: _(
281
+ PRIMARY_DARK: A(
267
282
  H(l[8]),
268
283
  -0.4,
269
284
  {
@@ -272,37 +287,37 @@ const k = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[
272
287
  }
273
288
  ),
274
289
  //interactive components
275
- PRIMARY_MEDIUM: _(m[7], -0.2, {
290
+ PRIMARY_MEDIUM: A(h[7], -0.2, {
276
291
  min: 0,
277
292
  max: 0.11
278
293
  }),
279
294
  //borders and seperators
280
- PRIMARY_MEDIUM_LIGHT: _(
281
- P(m[6], 0.1),
295
+ PRIMARY_MEDIUM_LIGHT: A(
296
+ L(h[6], 0.1),
282
297
  0.08
283
298
  ),
284
299
  //solid colors
285
- PRIMARY_LIGHT: _(
286
- y(m[5], 0.1),
300
+ PRIMARY_LIGHT: A(
301
+ x(h[5], 0.1),
287
302
  0.16
288
303
  ),
289
304
  //accessible text
290
- PRIMARY_LIGHTEST: _(
291
- y(m[3], 0.2),
305
+ PRIMARY_LIGHTEST: A(
306
+ x(h[3], 0.2),
292
307
  0.12,
293
308
  {
294
309
  min: 0.5,
295
310
  max: 0.9
296
311
  }
297
312
  ),
298
- PRIMARY_SUPER_LIGHT: _(m[1], 0.02, {
313
+ PRIMARY_SUPER_LIGHT: A(h[1], 0.02, {
299
314
  min: 0.86,
300
315
  max: 0.98
301
316
  })
302
317
  },
303
318
  SECONDARY: {
304
319
  //backgrounds
305
- SECONDARY_SUPER_DARK: _(
320
+ SECONDARY_SUPER_DARK: A(
306
321
  H(s[9]),
307
322
  -0.6,
308
323
  {
@@ -310,7 +325,7 @@ const k = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[
310
325
  max: 0.02
311
326
  }
312
327
  ),
313
- SECONDARY_DARK: _(
328
+ SECONDARY_DARK: A(
314
329
  H(s[8]),
315
330
  -0.4,
316
331
  {
@@ -319,30 +334,30 @@ const k = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[
319
334
  }
320
335
  ),
321
336
  // interactive components
322
- SECONDARY_MEDIUM: _(u[7], -0.2, {
337
+ SECONDARY_MEDIUM: A(u[7], -0.2, {
323
338
  min: 0,
324
339
  max: 0.11
325
340
  }),
326
341
  //borders and seperators
327
- SECONDARY_MEDIUM_LIGHT: _(
342
+ SECONDARY_MEDIUM_LIGHT: A(
328
343
  u[6],
329
344
  0.1
330
345
  ),
331
346
  //solid colors
332
- SECONDARY_LIGHT: _(
333
- y(u[5], 0.1),
347
+ SECONDARY_LIGHT: A(
348
+ x(u[5], 0.1),
334
349
  0.16
335
350
  ),
336
351
  //accessible text
337
- SECONDARY_LIGHTEST: _(
338
- y(u[3], 0.2),
352
+ SECONDARY_LIGHTEST: A(
353
+ x(u[3], 0.2),
339
354
  0.12,
340
355
  {
341
356
  min: 0.5,
342
357
  max: 0.9
343
358
  }
344
359
  ),
345
- SECONDARY_SUPER_LIGHT: _(
360
+ SECONDARY_SUPER_LIGHT: A(
346
361
  u[0],
347
362
  0.02,
348
363
  {
@@ -364,56 +379,56 @@ const k = (n, r) => r === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[
364
379
  WARNING_SUPER_LIGHT: N.SUPER_LIGHT
365
380
  },
366
381
  DANGER: {
367
- DANGER_SUPER_DARK: L.SUPER_DARK,
368
- DANGER_DARK: L.DARK,
369
- DANGER_MEDIUM: L.MEDIUM,
370
- DANGER_LIGHT: L.LIGHT,
371
- DANGER_SUPER_LIGHT: L.SUPER_LIGHT
382
+ DANGER_SUPER_DARK: P.SUPER_DARK,
383
+ DANGER_DARK: P.DARK,
384
+ DANGER_MEDIUM: P.MEDIUM,
385
+ DANGER_LIGHT: P.LIGHT,
386
+ DANGER_SUPER_LIGHT: P.SUPER_LIGHT
372
387
  }
373
388
  };
374
- }, _ = (n, r, a = { min: 0.03, max: 0.97 }) => {
375
- let l = n, m = x(l);
389
+ }, A = (n, r, a = { min: 0.03, max: 0.97 }) => {
390
+ let l = n, h = M(l);
376
391
  if (a.min < 0 && (a.min = 0), a.max > 1 && (a.max = 1), a.min >= a.max)
377
392
  throw new Error("Invalid range: min must be less than max");
378
393
  if (r > 0) {
379
- const t = a.max - m;
380
- if (t <= 0) return I(l);
381
- const s = r * (t / (1 - m));
394
+ const t = a.max - h;
395
+ if (t <= 0) return _(l);
396
+ const s = r * (t / (1 - h));
382
397
  l = Y(l, s);
383
398
  } else if (r < 0) {
384
- const t = m - a.min;
385
- if (t <= 0) return I(l);
386
- const s = r * (t / m);
399
+ const t = h - a.min;
400
+ if (t <= 0) return _(l);
401
+ const s = r * (t / h);
387
402
  l = F(l, Math.abs(s));
388
403
  }
389
- const e = x(l);
390
- return (e > a.max || e < a.min) && (l = q(l, a)), I(l);
404
+ const e = M(l);
405
+ return (e > a.max || e < a.min) && (l = q(l, a)), _(l);
391
406
  }, q = (n, r) => {
392
- let a = n, l = x(a);
407
+ let a = n, l = M(a);
393
408
  for (; l > r.max; )
394
- a = F(a, 0.05), l = x(a);
409
+ a = F(a, 0.05), l = M(a);
395
410
  for (; l < r.min; )
396
- a = Y(a, 0.05), l = x(a);
397
- return I(a);
411
+ a = Y(a, 0.05), l = M(a);
412
+ return _(a);
398
413
  }, H = (n) => {
399
414
  for (; J(n, "readable", X.GRAY_DARK); )
400
415
  n = Y(n, 0.01);
401
- return I(n);
402
- }, at = (n) => {
416
+ return _(n);
417
+ }, it = (n) => {
403
418
  for (; J(X.GRAY_SUPER_LIGHT, "readable", n); )
404
419
  n = F(n, 0.01);
405
- return I(n);
420
+ return _(n);
406
421
  }, B = (n) => {
407
- let r = n, a = x(I(r)), l = 0;
408
- const m = 6;
409
- for (; a < 0.16 && l < m; )
410
- l++, r = Y(r, 0.1), a = x(I(r));
411
- for (; a > 0.6 && l < m; )
412
- l++, r = F(r, 0.1), a = x(I(r));
413
- return I(r);
414
- }, it = (n) => typeof n == "string" || n instanceof String;
415
- function mt(...n) {
416
- return n.filter(it).join(" ");
422
+ let r = n, a = M(_(r)), l = 0;
423
+ const h = 6;
424
+ for (; a < 0.16 && l < h; )
425
+ l++, r = Y(r, 0.1), a = M(_(r));
426
+ for (; a > 0.6 && l < h; )
427
+ l++, r = F(r, 0.1), a = M(_(r));
428
+ return _(r);
429
+ }, st = (n) => typeof n == "string" || n instanceof String;
430
+ function ht(...n) {
431
+ return n.filter(st).join(" ");
417
432
  }
418
433
  const gt = (n) => n.startsWith("http"), vt = (n, r) => {
419
434
  if (n.metaKey || n.altKey || n.ctrlKey || n.shiftKey || n.button && n.button !== 0)
@@ -424,14 +439,13 @@ const gt = (n) => n.startsWith("http"), vt = (n, r) => {
424
439
  };
425
440
  export {
426
441
  k as a,
427
- ft as b,
442
+ mt as b,
428
443
  ht as c,
429
- P as d,
430
- mt as e,
431
- lt as g,
444
+ L as d,
445
+ ft as g,
432
446
  vt as h,
433
447
  gt as i,
434
- y as s,
435
- ct as t
448
+ x as s,
449
+ lt as t
436
450
  };
437
- //# sourceMappingURL=utils-OggAvvvN.mjs.map
451
+ //# sourceMappingURL=utils-BiD166LN.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-BiD166LN.mjs","sources":["../node_modules/colorthief/dist/color-thief.mjs","../src/utils/color.ts","../src/utils/utils.ts"],"sourcesContent":["var t=function(t,r){return t<r?-1:t>r?1:0},r=function(t){return t.reduce(function(t,r){return t+r},0)},n=/*#__PURE__*/function(){function t(t){this.colors=t}var r=t.prototype;return r.palette=function(){return this.colors},r.map=function(t){return t},t}(),o=function(){function o(t,r,n){return(t<<10)+(r<<5)+n}function e(t){var r=[],n=!1;function o(){r.sort(t),n=!0}return{push:function(t){r.push(t),n=!1},peek:function(t){return n||o(),void 0===t&&(t=r.length-1),r[t]},pop:function(){return n||o(),r.pop()},size:function(){return r.length},map:function(t){return r.map(t)},debug:function(){return n||o(),r}}}function i(t,r,n,o,e,i,u){var a=this;a.r1=t,a.r2=r,a.g1=n,a.g2=o,a.b1=e,a.b2=i,a.histo=u}function u(){this.vboxes=new e(function(r,n){return t(r.vbox.count()*r.vbox.volume(),n.vbox.count()*n.vbox.volume())})}function a(t,r){if(r.count()){var n=r.r2-r.r1+1,e=r.g2-r.g1+1,i=Math.max.apply(null,[n,e,r.b2-r.b1+1]);if(1==r.count())return[r.copy()];var u,a,c,f,s=0,h=[],v=[];if(i==n)for(u=r.r1;u<=r.r2;u++){for(f=0,a=r.g1;a<=r.g2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(u,a,c)]||0;h[u]=s+=f}else if(i==e)for(u=r.g1;u<=r.g2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.b1;c<=r.b2;c++)f+=t[o(a,u,c)]||0;h[u]=s+=f}else for(u=r.b1;u<=r.b2;u++){for(f=0,a=r.r1;a<=r.r2;a++)for(c=r.g1;c<=r.g2;c++)f+=t[o(a,c,u)]||0;h[u]=s+=f}return h.forEach(function(t,r){v[r]=s-t}),function(t){var n,o,e,i,a,c=t+\"1\",f=t+\"2\",l=0;for(u=r[c];u<=r[f];u++)if(h[u]>s/2){for(e=r.copy(),i=r.copy(),a=(n=u-r[c])<=(o=r[f]-u)?Math.min(r[f]-1,~~(u+o/2)):Math.max(r[c],~~(u-1-n/2));!h[a];)a++;for(l=v[a];!l&&h[a-1];)l=v[--a];return e[f]=a,i[c]=e[f]+1,[e,i]}}(i==n?\"r\":i==e?\"g\":\"b\")}}return i.prototype={volume:function(t){var r=this;return r._volume&&!t||(r._volume=(r.r2-r.r1+1)*(r.g2-r.g1+1)*(r.b2-r.b1+1)),r._volume},count:function(t){var r=this,n=r.histo;if(!r._count_set||t){var e,i,u,a=0;for(e=r.r1;e<=r.r2;e++)for(i=r.g1;i<=r.g2;i++)for(u=r.b1;u<=r.b2;u++)a+=n[o(e,i,u)]||0;r._count=a,r._count_set=!0}return r._count},copy:function(){var t=this;return new i(t.r1,t.r2,t.g1,t.g2,t.b1,t.b2,t.histo)},avg:function(t){var r=this,n=r.histo;if(!r._avg||t){var e,i,u,a,c=0,f=0,s=0,h=0;if(r.r1===r.r2&&r.g1===r.g2&&r.b1===r.b2)r._avg=[r.r1<<3,r.g1<<3,r.b1<<3];else{for(i=r.r1;i<=r.r2;i++)for(u=r.g1;u<=r.g2;u++)for(a=r.b1;a<=r.b2;a++)c+=e=n[o(i,u,a)]||0,f+=e*(i+.5)*8,s+=e*(u+.5)*8,h+=e*(a+.5)*8;r._avg=c?[~~(f/c),~~(s/c),~~(h/c)]:[~~(8*(r.r1+r.r2+1)/2),~~(8*(r.g1+r.g2+1)/2),~~(8*(r.b1+r.b2+1)/2)]}}return r._avg},contains:function(t){var r=this,n=t[0]>>3;return gval=t[1]>>3,bval=t[2]>>3,n>=r.r1&&n<=r.r2&&gval>=r.g1&&gval<=r.g2&&bval>=r.b1&&bval<=r.b2}},u.prototype={push:function(t){this.vboxes.push({vbox:t,color:t.avg()})},palette:function(){return this.vboxes.map(function(t){return t.color})},size:function(){return this.vboxes.size()},map:function(t){for(var r=this.vboxes,n=0;n<r.size();n++)if(r.peek(n).vbox.contains(t))return r.peek(n).color;return this.nearest(t)},nearest:function(t){for(var r,n,o,e=this.vboxes,i=0;i<e.size();i++)((n=Math.sqrt(Math.pow(t[0]-e.peek(i).color[0],2)+Math.pow(t[1]-e.peek(i).color[1],2)+Math.pow(t[2]-e.peek(i).color[2],2)))<r||void 0===r)&&(r=n,o=e.peek(i).color);return o},forcebw:function(){var n=this.vboxes;n.sort(function(n,o){return t(r(n.color),r(o.color))});var o=n[0].color;o[0]<5&&o[1]<5&&o[2]<5&&(n[0].color=[0,0,0]);var e=n.length-1,i=n[e].color;i[0]>251&&i[1]>251&&i[2]>251&&(n[e].color=[255,255,255])}},{quantize:function(r,c){if(!Number.isInteger(c)||c<1||c>256)throw new Error(\"Invalid maximum color count. It must be an integer between 1 and 256.\");if(!r.length||c<2||c>256)return!1;if(!r.length||c<2||c>256)return!1;for(var f=[],s=new Set,h=0;h<r.length;h++){var v=r[h],l=v.join(\",\");s.has(l)||(s.add(l),f.push(v))}if(f.length<=c)return new n(f);var g=function(t){var r,n=new Array(32768);return t.forEach(function(t){r=o(t[0]>>3,t[1]>>3,t[2]>>3),n[r]=(n[r]||0)+1}),n}(r);g.forEach(function(){});var p=function(t,r){var n,o,e,u=1e6,a=0,c=1e6,f=0,s=1e6,h=0;return t.forEach(function(t){(n=t[0]>>3)<u?u=n:n>a&&(a=n),(o=t[1]>>3)<c?c=o:o>f&&(f=o),(e=t[2]>>3)<s?s=e:e>h&&(h=e)}),new i(u,a,c,f,s,h,r)}(r,g),b=new e(function(r,n){return t(r.count(),n.count())});function m(t,r){for(var n,o=t.size(),e=0;e<1e3;){if(o>=r)return;if(e++>1e3)return;if((n=t.pop()).count()){var i=a(g,n),u=i[0],c=i[1];if(!u)return;t.push(u),c&&(t.push(c),o++)}else t.push(n),e++}}b.push(p),m(b,.75*c);for(var d=new e(function(r,n){return t(r.count()*r.volume(),n.count()*n.volume())});b.size();)d.push(b.pop());m(d,c);for(var w=new u;d.size();)w.push(d.pop());return w}}}().quantize,e=function(t){this.canvas=document.createElement(\"canvas\"),this.context=this.canvas.getContext(\"2d\"),this.width=this.canvas.width=t.naturalWidth,this.height=this.canvas.height=t.naturalHeight,this.context.drawImage(t,0,0,this.width,this.height)};e.prototype.getImageData=function(){return this.context.getImageData(0,0,this.width,this.height)};var u=function(){};u.prototype.getColor=function(t,r){return void 0===r&&(r=10),this.getPalette(t,5,r)[0]},u.prototype.getPalette=function(t,r,n){var i=function(t){var r=t.colorCount,n=t.quality;if(void 0!==r&&Number.isInteger(r)){if(1===r)throw new Error(\"colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()\");r=Math.max(r,2),r=Math.min(r,20)}else r=10;return(void 0===n||!Number.isInteger(n)||n<1)&&(n=10),{colorCount:r,quality:n}}({colorCount:r,quality:n}),u=new e(t),a=function(t,r,n){for(var o,e,i,u,a,c=t,f=[],s=0;s<r;s+=n)e=c[0+(o=4*s)],i=c[o+1],u=c[o+2],(void 0===(a=c[o+3])||a>=125)&&(e>250&&i>250&&u>250||f.push([e,i,u]));return f}(u.getImageData().data,u.width*u.height,i.quality),c=o(a,i.colorCount);return c?c.palette():null},u.prototype.getColorFromUrl=function(t,r,n){var o=this,e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var i=o.getPalette(e,5,n);r(i[0],t)}),e.src=t},u.prototype.getImageData=function(t,r){var n=new XMLHttpRequest;n.open(\"GET\",t,!0),n.responseType=\"arraybuffer\",n.onload=function(){if(200==this.status){var t=new Uint8Array(this.response);i=t.length;for(var n=new Array(i),o=0;o<t.length;o++)n[o]=String.fromCharCode(t[o]);var e=n.join(\"\"),u=window.btoa(e);r(\"data:image/png;base64,\"+u)}},n.send()},u.prototype.getColorAsync=function(t,r,n){var o=this;this.getImageData(t,function(t){var e=document.createElement(\"img\");e.addEventListener(\"load\",function(){var t=o.getPalette(e,5,n);r(t[0],this)}),e.src=t})};export{u as default};\n","import { COLORS } from \"../constants\";\nimport {\n adjustHue,\n getScale,\n saturate as _saturate,\n transparentize as _transparentize,\n desaturate as _desaturate,\n hasBadContrast,\n getLuminance,\n lighten,\n darken,\n toRgba,\n parseToRgba,\n} from \"color2k\";\nimport ColorThief from \"colorthief\";\nimport { Palette } from \"../constants/palettes\";\n\nexport type RGBArray = [number, number, number];\n\n/**\n * Converts an RGB array to a CSS string representation.\n * @param rgb - The RGB array to convert.\n * @param opacity - Optional opacity value.\n * @returns A CSS string representation of the RGB array, using `rgb()`, or `rgba()` if an opacity value is provided.\n */\nexport const arrayToRgbString = (rgb: RGBArray, opacity?: number): string => {\n return opacity === undefined\n ? `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`\n : `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${opacity})`;\n};\n\n/**\n * Transparentizes an input color.\n *\n * @param color - The color string to transparentize.\n * @param amount - The amount to increase the opacity of the color by, given as a decimal between 0 and 1.\n * @returns An RGBA color string.\n */\nexport const transparentize = (color: string, amount: number): string => {\n return toRgba(_transparentize(color, amount));\n};\n\n/**\n * Saturates a color.\n *\n * @param color - Input color\n * @param amount - The amount to saturate, given as a decimal between 0 and 1\n * @returns An RGBA color string.\n */\nexport const saturate = (color: string, amount: number): string => {\n return toRgba(_saturate(color, amount));\n};\n\n/**\n * Desaturates a color.\n *\n * @param color - Input color\n * @param amount - The amount to desaturate, given as a decimal between 0 and 1\n * @returns An RGBA color string.\n */\nexport const desaturate = (color: string, amount: number): string => {\n return toRgba(_desaturate(color, amount));\n};\n\n/**\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\n * @reference https://github.com/lokesh/color-thief/issues/40\n * @param image - The image to get the dominant color from.\n * @returns A Promise that resolves to an RGB array.\n */\nexport function getDominantColor(image: HTMLImageElement): Promise<RGBArray>;\nexport function getDominantColor(image: string): Promise<RGBArray>;\nexport function getDominantColor(\n image: HTMLImageElement | string\n): Promise<RGBArray> {\n if (image instanceof HTMLImageElement) {\n return Promise.resolve(getDominantColorFromImage(image));\n } else {\n return getDominantColorFromImageUrl(image);\n }\n}\n\nfunction getDominantColorFromImage(image: HTMLImageElement): RGBArray {\n try {\n const colorThief = new ColorThief();\n const baseColor = colorThief.getColor(image);\n return baseColor;\n } catch {\n return [255, 255, 255];\n }\n}\n\nfunction getDominantColorFromImageUrl(url: string): Promise<RGBArray> {\n return new Promise((resolve, reject) => {\n const imgElement = document.createElement(\"img\");\n imgElement.crossOrigin = \"anonymous\";\n\n imgElement.onload = () => {\n try {\n const baseColor = new ColorThief().getColor(imgElement);\n resolve(baseColor);\n } catch {\n resolve([255, 255, 255]);\n }\n };\n\n imgElement.onerror = () => reject(new Error(\"Failed to load image\"));\n imgElement.src = url;\n });\n}\n\n/**\n * Generates a complete color palette based on a primary color input.\n * The palette includes primary and secondary color scales with varying shades.\n *\n * @param primaryColor - The base RGB color array to generate the palette from\n * @returns A Palette object containing:\n * - BRAND colors (primary, light primary, and secondary)\n * - PRIMARY scale (7 shades from super dark to super light)\n * - SECONDARY scale (7 shades from super dark to super light)\n *\n * The function:\n * 1. Creates a 12-color scale from white to the primary color to black\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\n * 3. Creates another 12-color scale for the secondary color\n * 4. Maps specific positions from these scales to create the final palette structure\n */\nexport const generatePalette = (baseColor: RGBArray): Palette => {\n const primaryRgba = arrayToRgbString(baseColor);\n\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\n const color = primaryScaleFunc(i / 11);\n return desaturate(color, 0.0085);\n });\n\n const adjustedPrimaryScale = primaryScale.map((color) =>\n saturate(adjustBrightnessForLuminance(color), 0.005)\n );\n\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\n\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\n const color = secondaryScaleFunc(i / 11);\n return desaturate(color, 0.1);\n });\n\n const adjustedSecondaryScale = secondaryScale.map((color) =>\n desaturate(adjustBrightnessForLuminance(color), 0.22)\n );\n\n const brandPrimary = darkenForContrast(\n saturate(adjustedPrimaryScale[5], 0.115)\n );\n\n return {\n BASE_COLOR: arrayToRgbString(baseColor),\n BRAND: {\n PRIMARY: brandPrimary,\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\n min: 0.6,\n max: 0.8,\n }),\n SECONDARY: desaturate(adjustedSecondaryScale[4], 0.02),\n },\n PRIMARY: {\n //backgrounds\n PRIMARY_SUPER_DARK: lightenWithinRange(\n lightenForContrast(primaryScale[9]),\n -0.6,\n {\n min: 0.0,\n max: 0.02,\n }\n ),\n PRIMARY_DARK: lightenWithinRange(\n lightenForContrast(primaryScale[8]),\n -0.4,\n {\n min: 0.01,\n max: 0.02,\n }\n ),\n //interactive components\n PRIMARY_MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\n min: 0.0,\n max: 0.11,\n }),\n //borders and seperators\n PRIMARY_MEDIUM_LIGHT: lightenWithinRange(\n desaturate(adjustedPrimaryScale[6], 0.1),\n 0.08\n ),\n //solid colors\n PRIMARY_LIGHT: lightenWithinRange(\n saturate(adjustedPrimaryScale[5], 0.1),\n 0.16\n ),\n //accessible text\n PRIMARY_LIGHTEST: lightenWithinRange(\n saturate(adjustedPrimaryScale[3], 0.2),\n 0.12,\n {\n min: 0.5,\n max: 0.9,\n }\n ),\n PRIMARY_SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\n min: 0.86,\n max: 0.98,\n }),\n },\n SECONDARY: {\n //backgrounds\n SECONDARY_SUPER_DARK: lightenWithinRange(\n lightenForContrast(secondaryScale[9]),\n -0.6,\n {\n min: 0.0,\n max: 0.02,\n }\n ),\n SECONDARY_DARK: lightenWithinRange(\n lightenForContrast(secondaryScale[8]),\n -0.4,\n {\n min: 0.01,\n max: 0.02,\n }\n ),\n // interactive components\n SECONDARY_MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\n min: 0.0,\n max: 0.11,\n }),\n //borders and seperators\n SECONDARY_MEDIUM_LIGHT: lightenWithinRange(\n adjustedSecondaryScale[6],\n 0.1\n ),\n //solid colors\n SECONDARY_LIGHT: lightenWithinRange(\n saturate(adjustedSecondaryScale[5], 0.1),\n 0.16\n ),\n //accessible text\n SECONDARY_LIGHTEST: lightenWithinRange(\n saturate(adjustedSecondaryScale[3], 0.2),\n 0.12,\n {\n min: 0.5,\n max: 0.9,\n }\n ),\n SECONDARY_SUPER_LIGHT: lightenWithinRange(\n adjustedSecondaryScale[0],\n 0.02,\n {\n min: 0.86,\n max: 0.98,\n }\n ),\n },\n SUCCESS: {\n SUCCESS_DARK: COLORS.SUCCESS.DARK,\n SUCCESS_MEDIUM: COLORS.SUCCESS.MEDIUM,\n SUCCESS_LIGHT: COLORS.SUCCESS.LIGHT,\n SUCCESS_SUPER_LIGHT: COLORS.SUCCESS.SUPER_LIGHT,\n },\n WARNING: {\n WARNING_DARK: COLORS.WARNING.DARK,\n WARNING_MEDIUM: COLORS.WARNING.MEDIUM,\n WARNING_LIGHT: COLORS.WARNING.LIGHT,\n WARNING_SUPER_LIGHT: COLORS.WARNING.SUPER_LIGHT,\n },\n DANGER: {\n DANGER_SUPER_DARK: COLORS.DANGER.SUPER_DARK,\n DANGER_DARK: COLORS.DANGER.DARK,\n DANGER_MEDIUM: COLORS.DANGER.MEDIUM,\n DANGER_LIGHT: COLORS.DANGER.LIGHT,\n DANGER_SUPER_LIGHT: COLORS.DANGER.SUPER_LIGHT,\n },\n };\n};\n\nconst lightenWithinRange = (\n color: string,\n amount: number,\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\n): string => {\n let adjustedColor = color;\n let currentLuminance = getLuminance(adjustedColor);\n\n // Validate range bounds\n if (range.min < 0) range.min = 0;\n if (range.max > 1) range.max = 1;\n if (range.min >= range.max) {\n throw new Error(\"Invalid range: min must be less than max\");\n }\n\n // For lightening (positive amount)\n if (amount > 0) {\n // Calculate how much we can lighten before hitting max\n const remainingLuminance = range.max - currentLuminance;\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\n\n // Scale the amount based on remaining room to lighten\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\n adjustedColor = lighten(adjustedColor, scaledAmount);\n }\n // For darkening (negative amount)\n else if (amount < 0) {\n // Calculate how much we can darken before hitting min\n const remainingLuminance = currentLuminance - range.min;\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\n\n // Scale the amount based on remaining room to darken\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\n }\n\n // Verify final luminance is within bounds\n const finalLuminance = getLuminance(adjustedColor);\n if (finalLuminance > range.max) {\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\n } else if (finalLuminance < range.min) {\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\n }\n\n return toRgba(adjustedColor);\n};\n\nconst adjustBrightnessWithinRange = (\n color: string,\n range: { min: number; max: number }\n): string => {\n let adjustedColor = color;\n let luminance = getLuminance(adjustedColor);\n\n // Darken if too bright\n while (luminance > range.max) {\n adjustedColor = darken(adjustedColor, 0.05);\n luminance = getLuminance(adjustedColor);\n }\n\n // Lighten if too dark\n while (luminance < range.min) {\n adjustedColor = lighten(adjustedColor, 0.05);\n luminance = getLuminance(adjustedColor);\n }\n\n return toRgba(adjustedColor);\n};\n\nconst lightenForContrast = (color: string): string => {\n while (hasBadContrast(color, \"readable\", COLORS.GRAYSCALE.GRAY_DARK)) {\n color = lighten(color, 0.01);\n }\n return toRgba(color);\n};\n\nconst darkenForContrast = (color: string): string => {\n while (hasBadContrast(COLORS.GRAYSCALE.GRAY_SUPER_LIGHT, \"readable\", color)) {\n color = darken(color, 0.01);\n }\n return toRgba(color);\n};\n\nconst adjustBrightnessForLuminance = (color: string): string => {\n let currentColor = color;\n let currentLuminance = getLuminance(toRgba(currentColor));\n let adjustmentAttempts = 0;\n const MAX_ATTEMPTS = 6;\n\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\n adjustmentAttempts++;\n currentColor = lighten(currentColor, 0.1);\n currentLuminance = getLuminance(toRgba(currentColor));\n }\n\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\n adjustmentAttempts++;\n currentColor = darken(currentColor, 0.1);\n currentLuminance = getLuminance(toRgba(currentColor));\n }\n\n return toRgba(currentColor);\n};\n","const isString = (x: unknown): boolean =>\n typeof x === \"string\" || x instanceof String;\n\nexport function csx(...classnames: unknown[]): string {\n return classnames.filter(isString).join(\" \");\n}\n\n/**\n * [isUrlExternal] - determine if passed absolute url is external to the current domain.\n */\nexport const isUrlExternal = (url: string) => {\n return url.startsWith(\"http\");\n};\n\n/**\n * Handles internal navigation clicks by preventing default browser behavior and\n * programmatically updating the URL and history state.\n *\n * @param e - The click event from the anchor element\n * @param to - The destination path to navigate to\n *\n * @remarks\n * - Converts relative paths to absolute by prepending \"/\" if needed\n * - Updates browser history using pushState and dispatches a popstate event\n */\nexport const handleInternalNavigation = (\n e: React.MouseEvent<HTMLAnchorElement>,\n to: string\n) => {\n // Don't handle navigation if modifier keys are pressed\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\n return;\n }\n\n // Don't handle middle clicks or right clicks\n if (e.button && e.button !== 0) {\n return;\n }\n\n e.preventDefault();\n\n // Handle relative paths\n const resolvedPath = to.startsWith(\"/\") ? to : `/${to}`;\n window.history.pushState({}, \"\", resolvedPath);\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\n};\n"],"names":["t","r","n","o","e","i","u","a","c","f","s","h","v","l","g","p","b","m","d","w","arrayToRgbString","rgb","opacity","transparentize","color","amount","toRgba","_transparentize","saturate","_saturate","desaturate","_desaturate","getDominantColor","image","getDominantColorFromImage","getDominantColorFromImageUrl","ColorThief","url","resolve","reject","imgElement","baseColor","generatePalette","primaryRgba","primaryScaleFunc","getScale","primaryScale","_","adjustedPrimaryScale","adjustBrightnessForLuminance","secondaryColor","adjustHue","secondaryScaleFunc","secondaryScale","adjustedSecondaryScale","brandPrimary","darkenForContrast","lightenWithinRange","lightenForContrast","COLORS.SUCCESS","COLORS.WARNING","COLORS.DANGER","range","adjustedColor","currentLuminance","getLuminance","remainingLuminance","scaledAmount","lighten","darken","finalLuminance","adjustBrightnessWithinRange","luminance","hasBadContrast","COLORS.GRAYSCALE","currentColor","adjustmentAttempts","MAX_ATTEMPTS","isString","x","csx","classnames","isUrlExternal","handleInternalNavigation","to","resolvedPath"],"mappings":";;AAAA,IAAIA,IAAE,SAASA,GAAE,GAAE;AAAC,SAAOA,IAAE,IAAE,KAAGA,IAAE,IAAE,IAAE;AAAC,GAAEC,IAAE,SAASD,GAAE;AAAC,SAAOA,EAAE,OAAO,SAASA,GAAEC,GAAE;AAAC,WAAOD,IAAEC;AAAA,EAAC,GAAE,CAAC;AAAC,GAAEC,KAAe,2BAAU;AAAC,WAASF,EAAEA,GAAE;AAAC,SAAK,SAAOA;AAAA,EAAC;AAAC,MAAI,IAAEA,EAAE;AAAU,SAAO,EAAE,UAAQ,WAAU;AAAC,WAAO,KAAK;AAAA,EAAM,GAAE,EAAE,MAAI,SAASA,GAAE;AAAC,WAAOA;AAAA,EAAC,GAAEA;AAAC,EAAC,GAAGG,KAAE,WAAU;AAAC,WAASA,EAAEH,GAAEC,GAAEC,GAAE;AAAC,YAAOF,KAAG,OAAKC,KAAG,KAAGC;AAAA,EAAC;AAAC,WAASE,EAAEJ,GAAE;AAAC,QAAIC,IAAE,CAAE,GAACC,IAAE;AAAG,aAASC,IAAG;AAAC,MAAAF,EAAE,KAAKD,CAAC,GAAEE,IAAE;AAAA,IAAE;AAAC,WAAM,EAAC,MAAK,SAASF,GAAE;AAAC,MAAAC,EAAE,KAAKD,CAAC,GAAEE,IAAE;AAAA,IAAE,GAAE,MAAK,SAASF,GAAE;AAAC,aAAOE,KAAGC,EAAC,GAAYH,MAAT,WAAaA,IAAEC,EAAE,SAAO,IAAGA,EAAED,CAAC;AAAA,IAAC,GAAE,KAAI,WAAU;AAAC,aAAOE,KAAGC,EAAC,GAAGF,EAAE,IAAK;AAAA,IAAA,GAAE,MAAK,WAAU;AAAC,aAAOA,EAAE;AAAA,IAAM,GAAE,KAAI,SAASD,GAAE;AAAC,aAAOC,EAAE,IAAID,CAAC;AAAA,IAAC,GAAE,OAAM,WAAU;AAAC,aAAOE,KAAGC,EAAG,GAACF;AAAA,IAAC,EAAC;AAAA,EAAC;AAAC,WAASI,EAAEL,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAE;AAAC,QAAIC,IAAE;AAAK,IAAAA,EAAE,KAAGP,GAAEO,EAAE,KAAGN,GAAEM,EAAE,KAAGL,GAAEK,EAAE,KAAGJ,GAAEI,EAAE,KAAGH,GAAEG,EAAE,KAAGF,GAAEE,EAAE,QAAMD;AAAA,EAAC;AAAC,WAASA,IAAG;AAAC,SAAK,SAAO,IAAIF,EAAE,SAASH,GAAEC,GAAE;AAAC,aAAOF,EAAEC,EAAE,KAAK,MAAO,IAACA,EAAE,KAAK,OAAQ,GAACC,EAAE,KAAK,MAAK,IAAGA,EAAE,KAAK,OAAM,CAAE;AAAA,IAAC,CAAC;AAAA,EAAC;AAAC,WAASK,EAAEP,GAAEC,GAAE;AAAC,QAAGA,EAAE,SAAQ;AAAC,UAAIC,IAAED,EAAE,KAAGA,EAAE,KAAG,GAAEG,IAAEH,EAAE,KAAGA,EAAE,KAAG,GAAEI,IAAE,KAAK,IAAI,MAAM,MAAK,CAACH,GAAEE,GAAEH,EAAE,KAAGA,EAAE,KAAG,CAAC,CAAC;AAAE,UAAMA,EAAE,MAAO,KAAZ,EAAa,QAAM,CAACA,EAAE,KAAI,CAAE;AAAE,UAAIK,GAAEC,GAAEC,GAAEC,GAAEC,IAAE,GAAEC,IAAE,IAAGC,IAAE,CAAE;AAAC,UAAGP,KAAGH,EAAE,MAAII,IAAEL,EAAE,IAAGK,KAAGL,EAAE,IAAGK,KAAI;AAAC,aAAIG,IAAE,GAAEF,IAAEN,EAAE,IAAGM,KAAGN,EAAE,IAAGM,IAAI,MAAIC,IAAEP,EAAE,IAAGO,KAAGP,EAAE,IAAGO,IAAI,CAAAC,KAAGT,EAAEG,EAAEG,GAAEC,GAAEC,CAAC,CAAC,KAAG;AAAE,QAAAG,EAAEL,CAAC,IAAEI,KAAGD;AAAA,MAAC;AAAA,eAASJ,KAAGD,EAAE,MAAIE,IAAEL,EAAE,IAAGK,KAAGL,EAAE,IAAGK,KAAI;AAAC,aAAIG,IAAE,GAAEF,IAAEN,EAAE,IAAGM,KAAGN,EAAE,IAAGM,IAAI,MAAIC,IAAEP,EAAE,IAAGO,KAAGP,EAAE,IAAGO,IAAI,CAAAC,KAAGT,EAAEG,EAAEI,GAAED,GAAEE,CAAC,CAAC,KAAG;AAAE,QAAAG,EAAEL,CAAC,IAAEI,KAAGD;AAAA,MAAC;AAAA,UAAM,MAAIH,IAAEL,EAAE,IAAGK,KAAGL,EAAE,IAAGK,KAAI;AAAC,aAAIG,IAAE,GAAEF,IAAEN,EAAE,IAAGM,KAAGN,EAAE,IAAGM,IAAI,MAAIC,IAAEP,EAAE,IAAGO,KAAGP,EAAE,IAAGO,IAAI,CAAAC,KAAGT,EAAEG,EAAEI,GAAEC,GAAEF,CAAC,CAAC,KAAG;AAAE,QAAAK,EAAEL,CAAC,IAAEI,KAAGD;AAAA,MAAC;AAAC,aAAOE,EAAE,QAAQ,SAASX,GAAEC,GAAE;AAAC,QAAAW,EAAEX,CAAC,IAAES,IAAEV;AAAA,MAAC,CAAC,GAAE,SAASA,GAAE;AAAC,YAAIE,GAAEC,GAAEC,GAAEC,GAAEE,GAAEC,IAAER,IAAE,KAAIS,IAAET,IAAE,KAAIa,IAAE;AAAE,aAAIP,IAAEL,EAAEO,CAAC,GAAEF,KAAGL,EAAEQ,CAAC,GAAEH,IAAI,KAAGK,EAAEL,CAAC,IAAEI,IAAE,GAAE;AAAC,eAAIN,IAAEH,EAAE,KAAI,GAAGI,IAAEJ,EAAE,KAAI,GAAGM,KAAGL,IAAEI,IAAEL,EAAEO,CAAC,OAAKL,IAAEF,EAAEQ,CAAC,IAAEH,KAAG,KAAK,IAAIL,EAAEQ,CAAC,IAAE,GAAE,CAAC,EAAEH,IAAEH,IAAE,EAAE,IAAE,KAAK,IAAIF,EAAEO,CAAC,GAAE,CAAC,EAAEF,IAAE,IAAEJ,IAAE,EAAE,GAAE,CAACS,EAAEJ,CAAC,IAAG,CAAAA;AAAI,eAAIM,IAAED,EAAEL,CAAC,GAAE,CAACM,KAAGF,EAAEJ,IAAE,CAAC,IAAG,CAAAM,IAAED,EAAE,EAAEL,CAAC;AAAE,iBAAOH,EAAEK,CAAC,IAAEF,GAAEF,EAAEG,CAAC,IAAEJ,EAAEK,CAAC,IAAE,GAAE,CAACL,GAAEC,CAAC;AAAA,QAAC;AAAA,MAAC,EAAEA,KAAGH,IAAE,MAAIG,KAAGD,IAAE,MAAI,GAAG;AAAA,IAAC;AAAA,EAAC;AAAC,SAAOC,EAAE,YAAU,EAAC,QAAO,SAASL,GAAE;AAAC,QAAIC,IAAE;AAAK,WAAOA,EAAE,WAAS,CAACD,MAAIC,EAAE,WAASA,EAAE,KAAGA,EAAE,KAAG,MAAIA,EAAE,KAAGA,EAAE,KAAG,MAAIA,EAAE,KAAGA,EAAE,KAAG,KAAIA,EAAE;AAAA,EAAO,GAAE,OAAM,SAASD,GAAE;AAAC,QAAIC,IAAE,MAAKC,IAAED,EAAE;AAAM,QAAG,CAACA,EAAE,cAAYD,GAAE;AAAC,UAAII,GAAEC,GAAEC,GAAEC,IAAE;AAAE,WAAIH,IAAEH,EAAE,IAAGG,KAAGH,EAAE,IAAGG,IAAI,MAAIC,IAAEJ,EAAE,IAAGI,KAAGJ,EAAE,IAAGI,IAAI,MAAIC,IAAEL,EAAE,IAAGK,KAAGL,EAAE,IAAGK,IAAI,CAAAC,KAAGL,EAAEC,EAAEC,GAAEC,GAAEC,CAAC,CAAC,KAAG;AAAE,MAAAL,EAAE,SAAOM,GAAEN,EAAE,aAAW;AAAA,IAAE;AAAC,WAAOA,EAAE;AAAA,EAAM,GAAE,MAAK,WAAU;AAAC,QAAID,IAAE;AAAK,WAAO,IAAIK,EAAEL,EAAE,IAAGA,EAAE,IAAGA,EAAE,IAAGA,EAAE,IAAGA,EAAE,IAAGA,EAAE,IAAGA,EAAE,KAAK;AAAA,EAAC,GAAE,KAAI,SAASA,GAAE;AAAC,QAAIC,IAAE,MAAKC,IAAED,EAAE;AAAM,QAAG,CAACA,EAAE,QAAMD,GAAE;AAAC,UAAII,GAAEC,GAAEC,GAAEC,GAAEC,IAAE,GAAEC,IAAE,GAAEC,IAAE,GAAEC,IAAE;AAAE,UAAGV,EAAE,OAAKA,EAAE,MAAIA,EAAE,OAAKA,EAAE,MAAIA,EAAE,OAAKA,EAAE,GAAG,CAAAA,EAAE,OAAK,CAACA,EAAE,MAAI,GAAEA,EAAE,MAAI,GAAEA,EAAE,MAAI,CAAC;AAAA,WAAM;AAAC,aAAII,IAAEJ,EAAE,IAAGI,KAAGJ,EAAE,IAAGI,IAAI,MAAIC,IAAEL,EAAE,IAAGK,KAAGL,EAAE,IAAGK,IAAI,MAAIC,IAAEN,EAAE,IAAGM,KAAGN,EAAE,IAAGM,IAAI,CAAAC,KAAGJ,IAAEF,EAAEC,EAAEE,GAAEC,GAAEC,CAAC,CAAC,KAAG,GAAEE,KAAGL,KAAGC,IAAE,OAAI,GAAEK,KAAGN,KAAGE,IAAE,OAAI,GAAEK,KAAGP,KAAGG,IAAE,OAAI;AAAE,QAAAN,EAAE,OAAKO,IAAE,CAAC,CAAC,EAAEC,IAAED,IAAG,CAAC,EAAEE,IAAEF,IAAG,CAAC,EAAEG,IAAEH,EAAE,IAAE,CAAC,CAAC,EAAE,KAAGP,EAAE,KAAGA,EAAE,KAAG,KAAG,IAAG,CAAC,EAAE,KAAGA,EAAE,KAAGA,EAAE,KAAG,KAAG,IAAG,CAAC,EAAE,KAAGA,EAAE,KAAGA,EAAE,KAAG,KAAG,EAAE;AAAA,MAAC;AAAA,IAAC;AAAC,WAAOA,EAAE;AAAA,EAAI,GAAE,UAAS,SAASD,GAAE;AAAC,QAAIC,IAAE,MAAKC,IAAEF,EAAE,CAAC,KAAG;AAAE,WAAO,OAAKA,EAAE,CAAC,KAAG,GAAE,OAAKA,EAAE,CAAC,KAAG,GAAEE,KAAGD,EAAE,MAAIC,KAAGD,EAAE,MAAI,QAAMA,EAAE,MAAI,QAAMA,EAAE,MAAI,QAAMA,EAAE,MAAI,QAAMA,EAAE;AAAA,EAAE,EAAC,GAAEK,EAAE,YAAU,EAAC,MAAK,SAASN,GAAE;AAAC,SAAK,OAAO,KAAK,EAAC,MAAKA,GAAE,OAAMA,EAAE,IAAG,EAAE,CAAC;AAAA,EAAC,GAAE,SAAQ,WAAU;AAAC,WAAO,KAAK,OAAO,IAAI,SAASA,GAAE;AAAC,aAAOA,EAAE;AAAA,IAAK,CAAC;AAAA,EAAC,GAAE,MAAK,WAAU;AAAC,WAAO,KAAK,OAAO,KAAI;AAAA,EAAE,GAAE,KAAI,SAASA,GAAE;AAAC,aAAQC,IAAE,KAAK,QAAOC,IAAE,GAAEA,IAAED,EAAE,KAAI,GAAGC,IAAI,KAAGD,EAAE,KAAKC,CAAC,EAAE,KAAK,SAASF,CAAC,EAAE,QAAOC,EAAE,KAAKC,CAAC,EAAE;AAAM,WAAO,KAAK,QAAQF,CAAC;AAAA,EAAC,GAAE,SAAQ,SAASA,GAAE;AAAC,aAAQC,GAAEC,GAAEC,GAAEC,IAAE,KAAK,QAAOC,IAAE,GAAEA,IAAED,EAAE,KAAI,GAAGC,IAAI,GAAEH,IAAE,KAAK,KAAK,KAAK,IAAIF,EAAE,CAAC,IAAEI,EAAE,KAAKC,CAAC,EAAE,MAAM,CAAC,GAAE,CAAC,IAAE,KAAK,IAAIL,EAAE,CAAC,IAAEI,EAAE,KAAKC,CAAC,EAAE,MAAM,CAAC,GAAE,CAAC,IAAE,KAAK,IAAIL,EAAE,CAAC,IAAEI,EAAE,KAAKC,CAAC,EAAE,MAAM,CAAC,GAAE,CAAC,CAAC,KAAGJ,KAAYA,MAAT,YAAcA,IAAEC,GAAEC,IAAEC,EAAE,KAAKC,CAAC,EAAE;AAAO,WAAOF;AAAA,EAAC,GAAE,SAAQ,WAAU;AAAC,QAAID,IAAE,KAAK;AAAO,IAAAA,EAAE,KAAK,SAASA,GAAE,GAAE;AAAC,aAAOF,EAAEC,EAAEC,EAAE,KAAK,GAAED,EAAE,EAAE,KAAK,CAAC;AAAA,IAAC,CAAC;AAAE,QAAIE,IAAED,EAAE,CAAC,EAAE;AAAM,IAAAC,EAAE,CAAC,IAAE,KAAGA,EAAE,CAAC,IAAE,KAAGA,EAAE,CAAC,IAAE,MAAID,EAAE,CAAC,EAAE,QAAM,CAAC,GAAE,GAAE,CAAC;AAAG,QAAIE,IAAEF,EAAE,SAAO,GAAEG,IAAEH,EAAEE,CAAC,EAAE;AAAM,IAAAC,EAAE,CAAC,IAAE,OAAKA,EAAE,CAAC,IAAE,OAAKA,EAAE,CAAC,IAAE,QAAMH,EAAEE,CAAC,EAAE,QAAM,CAAC,KAAI,KAAI,GAAG;AAAA,EAAE,EAAC,GAAE,EAAC,UAAS,SAASH,GAAEO,GAAE;AAAC,QAAG,CAAC,OAAO,UAAUA,CAAC,KAAGA,IAAE,KAAGA,IAAE,IAAI,OAAM,IAAI,MAAM,uEAAuE;AAAoC,QAA/B,CAACP,EAAE,UAAQO,IAAE,KAAGA,IAAE,OAAgB,CAACP,EAAE,UAAQO,IAAE,KAAGA,IAAE,IAAI,QAAM;AAAG,aAAQC,IAAE,IAAGC,IAAE,oBAAI,OAAIC,IAAE,GAAEA,IAAEV,EAAE,QAAOU,KAAI;AAAC,UAAIC,IAAEX,EAAEU,CAAC,GAAEE,IAAED,EAAE,KAAK,GAAG;AAAE,MAAAF,EAAE,IAAIG,CAAC,MAAIH,EAAE,IAAIG,CAAC,GAAEJ,EAAE,KAAKG,CAAC;AAAA,IAAE;AAAC,QAAGH,EAAE,UAAQD,EAAE,QAAO,IAAIN,GAAEO,CAAC;AAAE,QAAIK,IAAE,SAASd,GAAE;AAAC,UAAIC,GAAEC,IAAE,IAAI,MAAM,KAAK;AAAE,aAAOF,EAAE,QAAQ,SAASA,GAAE;AAAC,QAAAC,IAAEE,EAAEH,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,GAAEA,EAAE,CAAC,KAAG,CAAC,GAAEE,EAAED,CAAC,KAAGC,EAAED,CAAC,KAAG,KAAG;AAAA,MAAC,CAAC,GAAEC;AAAA,IAAC,EAAED,CAAC;AAAE,IAAAa,EAAE,QAAQ,WAAU;AAAA,IAAA,CAAE;AAAE,QAAIC,IAAE,SAASf,GAAEC,GAAE;AAAC,UAAIC,GAAEC,GAAEC,GAAEE,IAAE,KAAIC,IAAE,GAAEC,IAAE,KAAIC,IAAE,GAAEC,IAAE,KAAIC,IAAE;AAAE,aAAOX,EAAE,QAAQ,SAASA,GAAE;AAAC,SAACE,IAAEF,EAAE,CAAC,KAAG,KAAGM,IAAEA,IAAEJ,IAAEA,IAAEK,MAAIA,IAAEL,KAAIC,IAAEH,EAAE,CAAC,KAAG,KAAGQ,IAAEA,IAAEL,IAAEA,IAAEM,MAAIA,IAAEN,KAAIC,IAAEJ,EAAE,CAAC,KAAG,KAAGU,IAAEA,IAAEN,IAAEA,IAAEO,MAAIA,IAAEP;AAAA,MAAE,CAAC,GAAE,IAAIC,EAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEC,GAAEV,CAAC;AAAA,IAAC,EAAEA,GAAEa,CAAC,GAAEE,IAAE,IAAIZ,EAAE,SAASH,GAAEC,GAAE;AAAC,aAAOF,EAAEC,EAAE,MAAO,GAACC,EAAE,MAAO,CAAA;AAAA,IAAC,CAAC;AAAE,aAASe,EAAEjB,GAAEC,GAAE;AAAC,eAAQC,GAAEC,IAAEH,EAAE,KAAM,GAACI,IAAE,GAAEA,IAAE,OAAK;AAAgB,YAAZD,KAAGF,KAAYG,MAAI,IAAI;AAAO,aAAIF,IAAEF,EAAE,IAAK,GAAE,MAAO,GAAC;AAAC,cAAIK,IAAEE,EAAEO,GAAEZ,CAAC,GAAEI,IAAED,EAAE,CAAC,GAAEG,IAAEH,EAAE,CAAC;AAAE,cAAG,CAACC,EAAE;AAAO,UAAAN,EAAE,KAAKM,CAAC,GAAEE,MAAIR,EAAE,KAAKQ,CAAC,GAAEL;AAAA,QAAI,MAAM,CAAAH,EAAE,KAAKE,CAAC,GAAEE;AAAA,MAAG;AAAA,IAAC;AAAC,IAAAY,EAAE,KAAKD,CAAC,GAAEE,EAAED,GAAE,OAAIR,CAAC;AAAE,aAAQU,IAAE,IAAId,EAAE,SAASH,GAAEC,GAAE;AAAC,aAAOF,EAAEC,EAAE,MAAK,IAAGA,EAAE,OAAM,GAAGC,EAAE,MAAO,IAACA,EAAE,OAAM,CAAE;AAAA,IAAC,CAAC,GAAEc,EAAE,KAAM,IAAE,CAAAE,EAAE,KAAKF,EAAE,KAAK;AAAE,IAAAC,EAAEC,GAAEV,CAAC;AAAE,aAAQW,IAAE,IAAIb,KAAEY,EAAE,KAAI,IAAI,CAAAC,EAAE,KAAKD,EAAE,KAAK;AAAE,WAAOC;AAAA,EAAC,EAAC;AAAC,EAAG,EAAC,UAASf,IAAE,SAASJ,GAAE;AAAC,OAAK,SAAO,SAAS,cAAc,QAAQ,GAAE,KAAK,UAAQ,KAAK,OAAO,WAAW,IAAI,GAAE,KAAK,QAAM,KAAK,OAAO,QAAMA,EAAE,cAAa,KAAK,SAAO,KAAK,OAAO,SAAOA,EAAE,eAAc,KAAK,QAAQ,UAAUA,GAAE,GAAE,GAAE,KAAK,OAAM,KAAK,MAAM;AAAC;AAAEI,EAAE,UAAU,eAAa,WAAU;AAAC,SAAO,KAAK,QAAQ,aAAa,GAAE,GAAE,KAAK,OAAM,KAAK,MAAM;AAAC;AAAE,IAAIE,IAAE,WAAU;AAAE;AAACA,EAAE,UAAU,WAAS,SAASN,GAAE,GAAE;AAAC,SAAgB,MAAT,WAAa,IAAE,KAAI,KAAK,WAAWA,GAAE,GAAE,CAAC,EAAE,CAAC;AAAC,GAAEM,EAAE,UAAU,aAAW,SAASN,GAAE,GAAEE,GAAE;AAAC,MAAIG,IAAE,SAASL,GAAE;AAAC,QAAIC,IAAED,EAAE,YAAWE,IAAEF,EAAE;AAAQ,QAAYC,MAAT,UAAY,OAAO,UAAUA,CAAC,GAAE;AAAC,UAAOA,MAAJ,EAAM,OAAM,IAAI,MAAM,kGAAkG;AAAE,MAAAA,IAAE,KAAK,IAAIA,GAAE,CAAC,GAAEA,IAAE,KAAK,IAAIA,GAAE,EAAE;AAAA,IAAC,MAAM,CAAAA,IAAE;AAAG,YAAgBC,MAAT,UAAY,CAAC,OAAO,UAAUA,CAAC,KAAGA,IAAE,OAAKA,IAAE,KAAI,EAAC,YAAWD,GAAE,SAAQC,EAAC;AAAA,EAAC,EAAE,EAAC,YAAW,GAAE,SAAQA,EAAC,CAAC,GAAEI,IAAE,IAAIF,EAAEJ,CAAC,GAAEO,IAAE,SAASP,GAAEC,GAAEC,GAAE;AAAC,aAAQ,GAAEE,GAAEC,GAAEC,GAAEC,GAAEC,IAAER,GAAES,IAAE,CAAE,GAACC,IAAE,GAAEA,IAAET,GAAES,KAAGR,EAAE,CAAAE,IAAEI,EAAE,KAAG,IAAE,IAAEE,EAAE,GAAEL,IAAEG,EAAE,IAAE,CAAC,GAAEF,IAAEE,EAAE,IAAE,CAAC,KAAaD,IAAEC,EAAE,IAAE,CAAC,OAAjB,UAAqBD,KAAG,SAAOH,IAAE,OAAKC,IAAE,OAAKC,IAAE,OAAKG,EAAE,KAAK,CAACL,GAAEC,GAAEC,CAAC,CAAC;AAAG,WAAOG;AAAA,EAAC,EAAEH,EAAE,aAAY,EAAG,MAAKA,EAAE,QAAMA,EAAE,QAAOD,EAAE,OAAO,GAAEG,IAAEL,GAAEI,GAAEF,EAAE,UAAU;AAAE,SAAOG,IAAEA,EAAE,QAAS,IAAC;AAAI,GAAEF,EAAE,UAAU,kBAAgB,SAASN,GAAE,GAAEE,GAAE;AAAC,MAAIC,IAAE,MAAKC,IAAE,SAAS,cAAc,KAAK;AAAE,EAAAA,EAAE,iBAAiB,QAAO,WAAU;AAAC,QAAIC,IAAEF,EAAE,WAAWC,GAAE,GAAEF,CAAC;AAAE,MAAEG,EAAE,CAAC,GAAEL,CAAC;AAAA,EAAC,CAAC,GAAEI,EAAE,MAAIJ;AAAC,GAAEM,EAAE,UAAU,eAAa,SAASN,GAAE,GAAE;AAAC,MAAIE,IAAE,IAAI;AAAe,EAAAA,EAAE,KAAK,OAAMF,GAAE,EAAE,GAAEE,EAAE,eAAa,eAAcA,EAAE,SAAO,WAAU;AAAC,QAAQ,KAAK,UAAV,KAAiB;AAAC,UAAIF,IAAE,IAAI,WAAW,KAAK,QAAQ;AAAE,UAAEA,EAAE;AAAO,eAAQE,IAAE,IAAI,MAAM,CAAC,GAAEC,IAAE,GAAEA,IAAEH,EAAE,QAAOG,IAAI,CAAAD,EAAEC,CAAC,IAAE,OAAO,aAAaH,EAAEG,CAAC,CAAC;AAAE,UAAIC,IAAEF,EAAE,KAAK,EAAE,GAAEI,IAAE,OAAO,KAAKF,CAAC;AAAE,QAAE,2BAAyBE,CAAC;AAAA,IAAC;AAAA,EAAC,GAAEJ,EAAE,KAAI;AAAE,GAAEI,EAAE,UAAU,gBAAc,SAASN,GAAE,GAAEE,GAAE;AAAC,MAAIC,IAAE;AAAK,OAAK,aAAaH,GAAE,SAASA,GAAE;AAAC,QAAI,IAAE,SAAS,cAAc,KAAK;AAAE,MAAE,iBAAiB,QAAO,WAAU;AAAC,UAAI,IAAEG,EAAE,WAAW,GAAE,GAAED,CAAC;AAAE,QAAE,EAAE,CAAC,GAAE,IAAI;AAAA,IAAC,CAAC,GAAE,EAAE,MAAIF;AAAA,EAAC,CAAC;AAAC;ACyBhxM,MAAAoB,IAAmB,CAACC,GAAeC,MACvCA,MAAY,SACf,OAAOD,EAAI,CAAC,CAAC,KAAKA,EAAI,CAAC,CAAC,KAAKA,EAAI,CAAC,CAAC,MACnC,QAAQA,EAAI,CAAC,CAAC,KAAKA,EAAI,CAAC,CAAC,KAAKA,EAAI,CAAC,CAAC,KAAKC,CAAO,KAUzCC,KAAiB,CAACC,GAAeC,MACrCC,EAAOC,EAAgBH,GAAOC,CAAM,CAAC,GAUjCG,IAAW,CAACJ,GAAeC,MAC/BC,EAAOG,EAAUL,GAAOC,CAAM,CAAC,GAU3BK,IAAa,CAACN,GAAeC,MACjCC,EAAOK,GAAYP,GAAOC,CAAM,CAAC;AAWnC,SAASO,GACdC,GACmB;AACnB,SAAIA,aAAiB,mBACZ,QAAQ,QAAQC,GAA0BD,CAAK,CAAC,IAEhDE,GAA6BF,CAAK;AAE7C;AAEA,SAASC,GAA0BD,GAAmC;AAChE,MAAA;AAGK,WAFY,IAAIG,IACM,SAASH,CAAK;AAAA,EACpC,QACD;AACC,WAAA,CAAC,KAAK,KAAK,GAAG;AAAA,EACvB;AACF;AAEA,SAASE,GAA6BE,GAAgC;AACpE,SAAO,IAAI,QAAQ,CAACC,GAASC,MAAW;AAChC,UAAAC,IAAa,SAAS,cAAc,KAAK;AAC/C,IAAAA,EAAW,cAAc,aAEzBA,EAAW,SAAS,MAAM;AACpB,UAAA;AACF,cAAMC,IAAY,IAAIL,EAAW,EAAE,SAASI,CAAU;AACtD,QAAAF,EAAQG,CAAS;AAAA,MAAA,QACX;AACN,QAAAH,EAAQ,CAAC,KAAK,KAAK,GAAG,CAAC;AAAA,MACzB;AAAA,IAAA,GAGFE,EAAW,UAAU,MAAMD,EAAO,IAAI,MAAM,sBAAsB,CAAC,GACnEC,EAAW,MAAMH;AAAA,EAAA,CAClB;AACH;AAkBa,MAAAK,KAAkB,CAACD,MAAiC;AACzD,QAAAE,IAAcvB,EAAiBqB,CAAS,GAExCG,IAAmBC,EAAS,WAAWF,GAAa,SAAS,GAC7DG,IAAe,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAACC,GAAG1C,MAAM;AAClD,UAAAmB,IAAQoB,EAAiBvC,IAAI,EAAE;AAC9B,WAAAyB,EAAWN,GAAO,KAAM;AAAA,EAAA,CAChC,GAEKwB,IAAuBF,EAAa;AAAA,IAAI,CAACtB,MAC7CI,EAASqB,EAA6BzB,CAAK,GAAG,IAAK;AAAA,EAAA,GAG/C0B,IAAiBxB,EAAOE,EAASuB,GAAUR,GAAa,GAAG,GAAG,CAAC,CAAC,GAEhES,IAAqBP,EAAS,WAAWK,GAAgB,SAAS,GAClEG,IAAiB,MAAM,KAAK,EAAE,QAAQ,GAAG,GAAG,CAACN,GAAG1C,MAAM;AACpD,UAAAmB,IAAQ4B,EAAmB/C,IAAI,EAAE;AAChC,WAAAyB,EAAWN,GAAO,GAAG;AAAA,EAAA,CAC7B,GAEK8B,IAAyBD,EAAe;AAAA,IAAI,CAAC7B,MACjDM,EAAWmB,EAA6BzB,CAAK,GAAG,IAAI;AAAA,EAAA,GAGhD+B,IAAeC;AAAA,IACnB5B,EAASoB,EAAqB,CAAC,GAAG,KAAK;AAAA,EAAA;AAGlC,SAAA;AAAA,IACL,YAAY5B,EAAiBqB,CAAS;AAAA,IACtC,OAAO;AAAA,MACL,SAASc;AAAA,MACT,eAAeE,EAAmBF,GAAc,MAAM;AAAA,QACpD,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,MACD,WAAWzB,EAAWwB,EAAuB,CAAC,GAAG,IAAI;AAAA,IACvD;AAAA,IACA,SAAS;AAAA;AAAA,MAEP,oBAAoBG;AAAA,QAClBC,EAAmBZ,EAAa,CAAC,CAAC;AAAA,QAClC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,cAAcW;AAAA,QACZC,EAAmBZ,EAAa,CAAC,CAAC;AAAA,QAClC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA;AAAA,MAEA,gBAAgBW,EAAmBT,EAAqB,CAAC,GAAG,MAAM;AAAA,QAChE,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA;AAAA,MAED,sBAAsBS;AAAA,QACpB3B,EAAWkB,EAAqB,CAAC,GAAG,GAAG;AAAA,QACvC;AAAA,MACF;AAAA;AAAA,MAEA,eAAeS;AAAA,QACb7B,EAASoB,EAAqB,CAAC,GAAG,GAAG;AAAA,QACrC;AAAA,MACF;AAAA;AAAA,MAEA,kBAAkBS;AAAA,QAChB7B,EAASoB,EAAqB,CAAC,GAAG,GAAG;AAAA,QACrC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,qBAAqBS,EAAmBT,EAAqB,CAAC,GAAG,MAAM;AAAA,QACrE,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA,IACH;AAAA,IACA,WAAW;AAAA;AAAA,MAET,sBAAsBS;AAAA,QACpBC,EAAmBL,EAAe,CAAC,CAAC;AAAA,QACpC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,gBAAgBI;AAAA,QACdC,EAAmBL,EAAe,CAAC,CAAC;AAAA,QACpC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA;AAAA,MAEA,kBAAkBI,EAAmBH,EAAuB,CAAC,GAAG,MAAM;AAAA,QACpE,KAAK;AAAA,QACL,KAAK;AAAA,MAAA,CACN;AAAA;AAAA,MAED,wBAAwBG;AAAA,QACtBH,EAAuB,CAAC;AAAA,QACxB;AAAA,MACF;AAAA;AAAA,MAEA,iBAAiBG;AAAA,QACf7B,EAAS0B,EAAuB,CAAC,GAAG,GAAG;AAAA,QACvC;AAAA,MACF;AAAA;AAAA,MAEA,oBAAoBG;AAAA,QAClB7B,EAAS0B,EAAuB,CAAC,GAAG,GAAG;AAAA,QACvC;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,MACA,uBAAuBG;AAAA,QACrBH,EAAuB,CAAC;AAAA,QACxB;AAAA,QACA;AAAA,UACE,KAAK;AAAA,UACL,KAAK;AAAA,QACP;AAAA,MACF;AAAA,IACF;AAAA,IACA,SAAS;AAAA,MACP,cAAcK,EAAe;AAAA,MAC7B,gBAAgBA,EAAe;AAAA,MAC/B,eAAeA,EAAe;AAAA,MAC9B,qBAAqBA,EAAe;AAAA,IACtC;AAAA,IACA,SAAS;AAAA,MACP,cAAcC,EAAe;AAAA,MAC7B,gBAAgBA,EAAe;AAAA,MAC/B,eAAeA,EAAe;AAAA,MAC9B,qBAAqBA,EAAe;AAAA,IACtC;AAAA,IACA,QAAQ;AAAA,MACN,mBAAmBC,EAAc;AAAA,MACjC,aAAaA,EAAc;AAAA,MAC3B,eAAeA,EAAc;AAAA,MAC7B,cAAcA,EAAc;AAAA,MAC5B,oBAAoBA,EAAc;AAAA,IACpC;AAAA,EAAA;AAEJ,GAEMJ,IAAqB,CACzBjC,GACAC,GACAqC,IAAsC,EAAE,KAAK,MAAM,KAAK,WAC7C;AACX,MAAIC,IAAgBvC,GAChBwC,IAAmBC,EAAaF,CAAa;AAK7C,MAFAD,EAAM,MAAM,MAAGA,EAAM,MAAM,IAC3BA,EAAM,MAAM,MAAGA,EAAM,MAAM,IAC3BA,EAAM,OAAOA,EAAM;AACf,UAAA,IAAI,MAAM,0CAA0C;AAI5D,MAAIrC,IAAS,GAAG;AAER,UAAAyC,IAAqBJ,EAAM,MAAME;AACvC,QAAIE,KAAsB,EAAU,QAAAxC,EAAOqC,CAAa;AAGlD,UAAAI,IAAe1C,KAAUyC,KAAsB,IAAIF;AACzC,IAAAD,IAAAK,EAAQL,GAAeI,CAAY;AAAA,EAAA,WAG5C1C,IAAS,GAAG;AAEb,UAAAyC,IAAqBF,IAAmBF,EAAM;AACpD,QAAII,KAAsB,EAAU,QAAAxC,EAAOqC,CAAa;AAGlD,UAAAI,IAAe1C,KAAUyC,IAAqBF;AACpD,IAAAD,IAAgBM,EAAON,GAAe,KAAK,IAAII,CAAY,CAAC;AAAA,EAC9D;AAGM,QAAAG,IAAiBL,EAAaF,CAAa;AAC7C,UAAAO,IAAiBR,EAAM,OAEhBQ,IAAiBR,EAAM,SAChBC,IAAAQ,EAA4BR,GAAeD,CAAK,IAG3DpC,EAAOqC,CAAa;AAC7B,GAEMQ,IAA8B,CAClC/C,GACAsC,MACW;AACX,MAAIC,IAAgBvC,GAChBgD,IAAYP,EAAaF,CAAa;AAGnC,SAAAS,IAAYV,EAAM;AACP,IAAAC,IAAAM,EAAON,GAAe,IAAI,GAC1CS,IAAYP,EAAaF,CAAa;AAIjC,SAAAS,IAAYV,EAAM;AACP,IAAAC,IAAAK,EAAQL,GAAe,IAAI,GAC3CS,IAAYP,EAAaF,CAAa;AAGxC,SAAOrC,EAAOqC,CAAa;AAC7B,GAEML,IAAqB,CAAClC,MAA0B;AACpD,SAAOiD,EAAejD,GAAO,YAAYkD,EAAiB,SAAS;AACzD,IAAAlD,IAAA4C,EAAQ5C,GAAO,IAAI;AAE7B,SAAOE,EAAOF,CAAK;AACrB,GAEMgC,KAAoB,CAAChC,MAA0B;AACnD,SAAOiD,EAAeC,EAAiB,kBAAkB,YAAYlD,CAAK;AAChE,IAAAA,IAAA6C,EAAO7C,GAAO,IAAI;AAE5B,SAAOE,EAAOF,CAAK;AACrB,GAEMyB,IAA+B,CAACzB,MAA0B;AAC9D,MAAImD,IAAenD,GACfwC,IAAmBC,EAAavC,EAAOiD,CAAY,CAAC,GACpDC,IAAqB;AACzB,QAAMC,IAAe;AAEd,SAAAb,IAAmB,QAAQY,IAAqBC;AACrD,IAAAD,KACeD,IAAAP,EAAQO,GAAc,GAAG,GACrBX,IAAAC,EAAavC,EAAOiD,CAAY,CAAC;AAG/C,SAAAX,IAAmB,OAAOY,IAAqBC;AACpD,IAAAD,KACeD,IAAAN,EAAOM,GAAc,GAAG,GACpBX,IAAAC,EAAavC,EAAOiD,CAAY,CAAC;AAGtD,SAAOjD,EAAOiD,CAAY;AAC5B,GCpYMG,KAAW,CAACC,MAChB,OAAOA,KAAM,YAAYA,aAAa;AAEjC,SAASC,MAAOC,GAA+B;AACpD,SAAOA,EAAW,OAAOH,EAAQ,EAAE,KAAK,GAAG;AAC7C;AAKa,MAAAI,KAAgB,CAAC7C,MACrBA,EAAI,WAAW,MAAM,GAcjB8C,KAA2B,CACtC/E,GACAgF,MACG;AAOH,MALIhF,EAAE,WAAWA,EAAE,UAAUA,EAAE,WAAWA,EAAE,YAKxCA,EAAE,UAAUA,EAAE,WAAW;AAC3B;AAGF,EAAAA,EAAE,eAAe;AAGjB,QAAMiF,IAAeD,EAAG,WAAW,GAAG,IAAIA,IAAK,IAAIA,CAAE;AACrD,SAAO,QAAQ,UAAU,CAAC,GAAG,IAAIC,CAAY,GAC7C,OAAO,cAAc,IAAI,cAAc,UAAU,CAAC;AACpD;","x_google_ignoreList":[0]}
package/dist/utils.cjs.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./utils-DdC7qBKJ.js");exports.arrayToRgbString=t.arrayToRgbString;exports.csx=t.csx;exports.desaturate=t.desaturate;exports.generatePalette=t.generatePalette;exports.getCustomDarkElevationColor=t.getCustomDarkElevationColor;exports.getDominantColor=t.getDominantColor;exports.handleInternalNavigation=t.handleInternalNavigation;exports.isUrlExternal=t.isUrlExternal;exports.saturate=t.saturate;exports.transparentize=t.transparentize;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./utils-BOQ-r-2W.js");exports.arrayToRgbString=t.arrayToRgbString;exports.csx=t.csx;exports.desaturate=t.desaturate;exports.generatePalette=t.generatePalette;exports.getDominantColor=t.getDominantColor;exports.handleInternalNavigation=t.handleInternalNavigation;exports.isUrlExternal=t.isUrlExternal;exports.saturate=t.saturate;exports.transparentize=t.transparentize;
2
2
  //# sourceMappingURL=utils.cjs.js.map
package/dist/utils.d.ts CHANGED
@@ -35,19 +35,15 @@ export declare const desaturate: (color: string, amount: number) => string;
35
35
  */
36
36
  export declare const generatePalette: (baseColor: RGBArray) => Palette;
37
37
 
38
- /**
39
- * Returns a constrastful white transparent color based on the brightness of the base color.
40
- * @param baseColor - palette.BASE_COLOR of the current theme
41
- */
42
- export declare const getCustomDarkElevationColor: (baseColor: string) => string | null;
43
-
44
38
  /**
45
39
  * Gets the dominant color of an image. Avoids issues with low contrast colors.
46
40
  * @reference https://github.com/lokesh/color-thief/issues/40
47
41
  * @param image - The image to get the dominant color from.
48
- * @returns An RGB array.
42
+ * @returns A Promise that resolves to an RGB array.
49
43
  */
50
- export declare const getDominantColor: (image: HTMLImageElement) => RGBArray;
44
+ export declare function getDominantColor(image: HTMLImageElement): Promise<RGBArray>;
45
+
46
+ export declare function getDominantColor(image: string): Promise<RGBArray>;
51
47
 
52
48
  /**
53
49
  * Handles internal navigation clicks by preventing default browser behavior and