@protonradio/proton-ui 0.10.13-beta.1 → 0.10.13-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
1
  import { S as T, W as N, d as P, G as X } from "./palettes-BDp2VnQU.mjs";
2
- import { toRgba as _, transparentize as V, saturate as Z, desaturate as tt, parseToRgba as nt, getScale as j, adjustHue as et, getLuminance as M, lighten as Y, darken as F, hasBadContrast as J } from "color2k";
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,53 +16,53 @@ 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
  }
23
23
  function r(e) {
24
24
  var t = [], s = !1;
25
- function c() {
25
+ function u() {
26
26
  t.sort(e), s = !0;
27
27
  }
28
- return { push: function(l) {
29
- t.push(l), s = !1;
30
- }, peek: function(l) {
31
- return s || c(), l === void 0 && (l = t.length - 1), t[l];
28
+ return { push: function(c) {
29
+ t.push(c), s = !1;
30
+ }, peek: function(c) {
31
+ return s || u(), c === void 0 && (c = t.length - 1), t[c];
32
32
  }, pop: function() {
33
- return s || c(), t.pop();
33
+ return s || u(), t.pop();
34
34
  }, size: function() {
35
35
  return t.length;
36
- }, map: function(l) {
37
- return t.map(l);
36
+ }, map: function(c) {
37
+ return t.map(c);
38
38
  }, debug: function() {
39
- return s || c(), t;
39
+ return s || u(), t;
40
40
  } };
41
41
  }
42
- function a(e, t, s, c, l, 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 = c, f.b1 = l, 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
- function u() {
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
- var s = t.r2 - t.r1 + 1, c = t.g2 - t.g1 + 1, l = Math.max.apply(null, [s, c, t.b2 - t.b1 + 1]);
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 = [], C = [];
56
- if (l == 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;
55
+ var o, m, f, v, d = 0, p = [], C = [];
56
+ if (c == s) for (o = t.r1; o <= t.r2; o++) {
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
- else if (l == c) 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;
60
+ else if (c == u) for (o = t.g1; o <= t.g2; o++) {
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
68
  return p.forEach(function(D, g) {
@@ -74,7 +74,7 @@ var U = function(n, r) {
74
74
  for (y = C[E]; !y && p[E - 1]; ) y = C[--E];
75
75
  return R[S] = E, A[w] = R[S] + 1, [R, A];
76
76
  }
77
- }(l == s ? "r" : l == c ? "g" : "b");
77
+ }(c == s ? "r" : c == u ? "g" : "b");
78
78
  }
79
79
  }
80
80
  return a.prototype = { volume: function(e) {
@@ -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 c, l, o, h = 0;
87
- for (c = t.r1; c <= t.r2; c++) for (l = t.g1; l <= t.g2; l++) for (o = t.b1; o <= t.b2; o++) h += s[n(c, l, 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 c, l, 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 (l = t.r1; l <= t.r2; l++) for (o = t.g1; o <= t.g2; o++) for (h = t.b1; h <= t.b2; h++) f += c = s[n(l, o, h)] || 0, v += c * (l + 0.5) * 8, d += c * (o + 0.5) * 8, p += c * (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
  }
@@ -105,7 +105,7 @@ var U = function(n, r) {
105
105
  }, contains: function(e) {
106
106
  var t = this, s = e[0] >> 3;
107
107
  return gval = e[1] >> 3, bval = e[2] >> 3, s >= t.r1 && s <= t.r2 && gval >= t.g1 && gval <= t.g2 && bval >= t.b1 && bval <= t.b2;
108
- } }, u.prototype = { push: function(e) {
108
+ } }, l.prototype = { push: function(e) {
109
109
  this.vboxes.push({ vbox: e, color: e.avg() });
110
110
  }, palette: function() {
111
111
  return this.vboxes.map(function(e) {
@@ -117,25 +117,25 @@ var U = function(n, r) {
117
117
  for (var t = this.vboxes, s = 0; s < t.size(); s++) if (t.peek(s).vbox.contains(e)) return t.peek(s).color;
118
118
  return this.nearest(e);
119
119
  }, nearest: function(e) {
120
- for (var t, s, c, l = this.vboxes, o = 0; o < l.size(); o++) ((s = Math.sqrt(Math.pow(e[0] - l.peek(o).color[0], 2) + Math.pow(e[1] - l.peek(o).color[1], 2) + Math.pow(e[2] - l.peek(o).color[2], 2))) < t || t === void 0) && (t = s, c = l.peek(o).color);
121
- return c;
120
+ for (var t, s, u, c = this.vboxes, o = 0; o < c.size(); o++) ((s = Math.sqrt(Math.pow(e[0] - c.peek(o).color[0], 2) + Math.pow(e[1] - c.peek(o).color[1], 2) + Math.pow(e[2] - c.peek(o).color[2], 2))) < t || t === void 0) && (t = s, u = c.peek(o).color);
121
+ return u;
122
122
  }, forcebw: function() {
123
123
  var e = this.vboxes;
124
- e.sort(function(l, o) {
125
- return U($(l.color), $(o.color));
124
+ e.sort(function(c, o) {
125
+ return U($(c.color), $(o.color));
126
126
  });
127
127
  var t = e[0].color;
128
128
  t[0] < 5 && t[1] < 5 && t[2] < 5 && (e[0].color = [0, 0, 0]);
129
- var s = e.length - 1, c = e[s].color;
130
- c[0] > 251 && c[1] > 251 && c[2] > 251 && (e[s].color = [255, 255, 255]);
129
+ var s = e.length - 1, u = e[s].color;
130
+ u[0] > 251 && u[1] > 251 && u[2] > 251 && (e[s].color = [255, 255, 255]);
131
131
  } }, { quantize: function(e, t) {
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
- for (var s = [], c = /* @__PURE__ */ new Set(), l = 0; l < e.length; l++) {
135
- var o = e[l], h = o.join(",");
136
- c.has(h) || (c.add(h), s.push(o));
134
+ for (var s = [], u = /* @__PURE__ */ new Set(), c = 0; c < e.length; c++) {
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
140
  var b, R = new Array(32768);
141
141
  return g.forEach(function(A) {
@@ -156,7 +156,7 @@ var U = function(n, r) {
156
156
  for (var R, A = g.size(), E = 0; E < 1e3; ) {
157
157
  if (A >= b || E++ > 1e3) return;
158
158
  if ((R = g.pop()).count()) {
159
- var w = m(f, R), S = w[0], y = w[1];
159
+ var w = h(f, R), S = w[0], y = w[1];
160
160
  if (!S) return;
161
161
  g.push(S), y && (g.push(y), A++);
162
162
  } else g.push(R), E++;
@@ -167,7 +167,7 @@ var U = function(n, r) {
167
167
  return U(g.count() * g.volume(), b.count() * b.volume());
168
168
  }); d.size(); ) C.push(d.pop());
169
169
  p(C, t);
170
- for (var D = new u(); C.size(); ) D.push(C.pop());
170
+ for (var D = new l(); C.size(); ) D.push(C.pop());
171
171
  return D;
172
172
  } };
173
173
  }().quantize, Q = function(n) {
@@ -181,100 +181,97 @@ var G = function() {
181
181
  G.prototype.getColor = function(n, r) {
182
182
  return r === void 0 && (r = 10), this.getPalette(n, 5, r)[0];
183
183
  }, G.prototype.getPalette = function(n, r, a) {
184
- var u = function(s) {
185
- var c = s.colorCount, l = s.quality;
186
- if (c !== void 0 && Number.isInteger(c)) {
187
- if (c === 1) throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");
188
- c = Math.max(c, 2), c = Math.min(c, 20);
189
- } else c = 10;
190
- return (l === void 0 || !Number.isInteger(l) || l < 1) && (l = 10), { colorCount: c, quality: l };
191
- }({ colorCount: r, quality: a }), m = new Q(n), e = function(s, c, l) {
192
- for (var o, h, f, v, d, p = s, C = [], D = 0; D < c; D += l) h = p[0 + (o = 4 * D)], f = p[o + 1], v = p[o + 2], ((d = p[o + 3]) === void 0 || d >= 125) && (h > 250 && f > 250 && v > 250 || C.push([h, f, v]));
184
+ var l = function(s) {
185
+ var u = s.colorCount, c = s.quality;
186
+ if (u !== void 0 && Number.isInteger(u)) {
187
+ if (u === 1) throw new Error("colorCount should be between 2 and 20. To get one color, call getColor() instead of getPalette()");
188
+ u = Math.max(u, 2), u = Math.min(u, 20);
189
+ } else u = 10;
190
+ return (c === void 0 || !Number.isInteger(c) || c < 1) && (c = 10), { colorCount: u, quality: c };
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
193
  return C;
194
- }(m.getImageData().data, m.width * m.height, u.quality), t = ot(e, u.colorCount);
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 u = this, m = document.createElement("img");
198
- m.addEventListener("load", function() {
199
- var e = u.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
- var u = new Uint8Array(this.response);
207
- i = u.length;
208
- for (var m = new Array(i), e = 0; e < u.length; e++) m[e] = String.fromCharCode(u[e]);
209
- var t = m.join(""), s = window.btoa(t);
206
+ var l = new Uint8Array(this.response);
207
+ i = l.length;
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
- var u = this;
215
- this.getImageData(n, function(m) {
214
+ var l = this;
215
+ this.getImageData(n, function(h) {
216
216
  var e = document.createElement("img");
217
217
  e.addEventListener("load", function() {
218
- var t = u.getPalette(e, 5, a);
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})`, ft = (n, r) => _(V(n, r)), x = (n, r) => _(Z(n, r)), L = (n, r) => _(tt(n, r));
224
- function mt(n) {
225
- return n instanceof HTMLImageElement ? Promise.resolve(at(n)) : it(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
226
  }
227
- function at(n) {
227
+ function ot(n) {
228
228
  try {
229
229
  return new G().getColor(n);
230
230
  } catch {
231
231
  return [255, 255, 255];
232
232
  }
233
233
  }
234
- function it(n) {
234
+ function at(n) {
235
235
  return new Promise((r, a) => {
236
- const u = document.createElement("img");
237
- u.crossOrigin = "anonymous", u.onload = () => {
236
+ const l = document.createElement("img");
237
+ l.crossOrigin = "anonymous", l.onload = () => {
238
238
  try {
239
- const m = new G().getColor(u);
240
- r(m);
239
+ const h = new G().getColor(l);
240
+ r(h);
241
241
  } catch {
242
242
  r([255, 255, 255]);
243
243
  }
244
- }, u.onerror = () => a(new Error("Failed to load image")), u.src = n;
244
+ }, l.onerror = () => a(new Error("Failed to load image")), l.src = n;
245
245
  });
246
246
  }
247
- const ht = (n) => {
248
- const [r, a, u] = nt(n), m = r + a + u;
249
- return m > 500 ? "rgba(132, 133, 144, 0.4)" : m > 290 ? "rgba(93, 94, 105, 0.4)" : "rgba(255,255,255,0.1)";
250
- }, gt = (n) => {
251
- const r = k(n), a = j("#FFFFFF", r, "#000000"), u = Array.from({ length: 12 }, (o, h) => {
252
- const f = a(h / 11);
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);
253
250
  return L(f, 85e-4);
254
- }), m = u.map(
251
+ }), h = l.map(
255
252
  (o) => x(B(o), 5e-3)
256
- ), e = _(x(et(r, 180), 1)), t = j("#FFFFFF", e, "#000000"), s = Array.from({ length: 12 }, (o, h) => {
257
- const f = t(h / 11);
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);
258
255
  return L(f, 0.1);
259
- }), c = s.map(
256
+ }), u = s.map(
260
257
  (o) => L(B(o), 0.22)
261
- ), l = st(
262
- x(m[5], 0.115)
258
+ ), c = it(
259
+ x(h[5], 0.115)
263
260
  );
264
261
  return {
265
262
  BASE_COLOR: k(n),
266
263
  BRAND: {
267
- PRIMARY: l,
268
- PRIMARY_LIGHT: I(l, 0.25, {
264
+ PRIMARY: c,
265
+ PRIMARY_LIGHT: I(c, 0.25, {
269
266
  min: 0.6,
270
267
  max: 0.8
271
268
  }),
272
- SECONDARY: L(c[4], 0.02)
269
+ SECONDARY: L(u[4], 0.02)
273
270
  },
274
271
  PRIMARY: {
275
272
  //backgrounds
276
273
  PRIMARY_SUPER_DARK: I(
277
- H(u[9]),
274
+ H(l[9]),
278
275
  -0.6,
279
276
  {
280
277
  min: 0,
@@ -282,7 +279,7 @@ const ht = (n) => {
282
279
  }
283
280
  ),
284
281
  PRIMARY_DARK: I(
285
- H(u[8]),
282
+ H(l[8]),
286
283
  -0.4,
287
284
  {
288
285
  min: 0.01,
@@ -290,30 +287,30 @@ const ht = (n) => {
290
287
  }
291
288
  ),
292
289
  //interactive components
293
- PRIMARY_MEDIUM: I(m[7], -0.2, {
290
+ PRIMARY_MEDIUM: I(h[7], -0.2, {
294
291
  min: 0,
295
292
  max: 0.11
296
293
  }),
297
294
  //borders and seperators
298
295
  PRIMARY_MEDIUM_LIGHT: I(
299
- L(m[6], 0.1),
296
+ L(h[6], 0.1),
300
297
  0.08
301
298
  ),
302
299
  //solid colors
303
300
  PRIMARY_LIGHT: I(
304
- x(m[5], 0.1),
301
+ x(h[5], 0.1),
305
302
  0.16
306
303
  ),
307
304
  //accessible text
308
305
  PRIMARY_LIGHTEST: I(
309
- x(m[3], 0.2),
306
+ x(h[3], 0.2),
310
307
  0.12,
311
308
  {
312
309
  min: 0.5,
313
310
  max: 0.9
314
311
  }
315
312
  ),
316
- PRIMARY_SUPER_LIGHT: I(m[1], 0.02, {
313
+ PRIMARY_SUPER_LIGHT: I(h[1], 0.02, {
317
314
  min: 0.86,
318
315
  max: 0.98
319
316
  })
@@ -337,23 +334,23 @@ const ht = (n) => {
337
334
  }
338
335
  ),
339
336
  // interactive components
340
- SECONDARY_MEDIUM: I(c[7], -0.2, {
337
+ SECONDARY_MEDIUM: I(u[7], -0.2, {
341
338
  min: 0,
342
339
  max: 0.11
343
340
  }),
344
341
  //borders and seperators
345
342
  SECONDARY_MEDIUM_LIGHT: I(
346
- c[6],
343
+ u[6],
347
344
  0.1
348
345
  ),
349
346
  //solid colors
350
347
  SECONDARY_LIGHT: I(
351
- x(c[5], 0.1),
348
+ x(u[5], 0.1),
352
349
  0.16
353
350
  ),
354
351
  //accessible text
355
352
  SECONDARY_LIGHTEST: I(
356
- x(c[3], 0.2),
353
+ x(u[3], 0.2),
357
354
  0.12,
358
355
  {
359
356
  min: 0.5,
@@ -361,7 +358,7 @@ const ht = (n) => {
361
358
  }
362
359
  ),
363
360
  SECONDARY_SUPER_LIGHT: I(
364
- c[0],
361
+ u[0],
365
362
  0.02,
366
363
  {
367
364
  min: 0.86,
@@ -390,50 +387,50 @@ const ht = (n) => {
390
387
  }
391
388
  };
392
389
  }, I = (n, r, a = { min: 0.03, max: 0.97 }) => {
393
- let u = n, m = M(u);
390
+ let l = n, h = M(l);
394
391
  if (a.min < 0 && (a.min = 0), a.max > 1 && (a.max = 1), a.min >= a.max)
395
392
  throw new Error("Invalid range: min must be less than max");
396
393
  if (r > 0) {
397
- const t = a.max - m;
398
- if (t <= 0) return _(u);
399
- const s = r * (t / (1 - m));
400
- u = Y(u, s);
394
+ const t = a.max - h;
395
+ if (t <= 0) return _(l);
396
+ const s = r * (t / (1 - h));
397
+ l = Y(l, s);
401
398
  } else if (r < 0) {
402
- const t = m - a.min;
403
- if (t <= 0) return _(u);
404
- const s = r * (t / m);
405
- u = F(u, Math.abs(s));
399
+ const t = h - a.min;
400
+ if (t <= 0) return _(l);
401
+ const s = r * (t / h);
402
+ l = F(l, Math.abs(s));
406
403
  }
407
- const e = M(u);
408
- return (e > a.max || e < a.min) && (u = q(u, a)), _(u);
404
+ const e = M(l);
405
+ return (e > a.max || e < a.min) && (l = q(l, a)), _(l);
409
406
  }, q = (n, r) => {
410
- let a = n, u = M(a);
411
- for (; u > r.max; )
412
- a = F(a, 0.05), u = M(a);
413
- for (; u < r.min; )
414
- a = Y(a, 0.05), u = M(a);
407
+ let a = n, l = M(a);
408
+ for (; l > r.max; )
409
+ a = F(a, 0.05), l = M(a);
410
+ for (; l < r.min; )
411
+ a = Y(a, 0.05), l = M(a);
415
412
  return _(a);
416
413
  }, H = (n) => {
417
414
  for (; J(n, "readable", X.GRAY_DARK); )
418
415
  n = Y(n, 0.01);
419
416
  return _(n);
420
- }, st = (n) => {
417
+ }, it = (n) => {
421
418
  for (; J(X.GRAY_SUPER_LIGHT, "readable", n); )
422
419
  n = F(n, 0.01);
423
420
  return _(n);
424
421
  }, B = (n) => {
425
- let r = n, a = M(_(r)), u = 0;
426
- const m = 6;
427
- for (; a < 0.16 && u < m; )
428
- u++, r = Y(r, 0.1), a = M(_(r));
429
- for (; a > 0.6 && u < m; )
430
- u++, r = F(r, 0.1), a = M(_(r));
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));
431
428
  return _(r);
432
- }, ut = (n) => typeof n == "string" || n instanceof String;
433
- function vt(...n) {
434
- return n.filter(ut).join(" ");
429
+ }, st = (n) => typeof n == "string" || n instanceof String;
430
+ function ht(...n) {
431
+ return n.filter(st).join(" ");
435
432
  }
436
- const pt = (n) => n.startsWith("http"), Rt = (n, r) => {
433
+ const gt = (n) => n.startsWith("http"), vt = (n, r) => {
437
434
  if (n.metaKey || n.altKey || n.ctrlKey || n.shiftKey || n.button && n.button !== 0)
438
435
  return;
439
436
  n.preventDefault();
@@ -442,14 +439,13 @@ const pt = (n) => n.startsWith("http"), Rt = (n, r) => {
442
439
  };
443
440
  export {
444
441
  k as a,
445
- ht as b,
446
- gt as c,
442
+ mt as b,
443
+ ht as c,
447
444
  L as d,
448
- vt as e,
449
- mt as g,
450
- Rt as h,
451
- pt as i,
445
+ ft as g,
446
+ vt as h,
447
+ gt as i,
452
448
  x as s,
453
- ft as t
449
+ lt as t
454
450
  };
455
- //# sourceMappingURL=utils-DRhYCcfX.mjs.map
451
+ //# sourceMappingURL=utils-CRsxDkRV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-CRsxDkRV.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\";\r\nimport {\r\n adjustHue,\r\n getScale,\r\n saturate as _saturate,\r\n transparentize as _transparentize,\r\n desaturate as _desaturate,\r\n hasBadContrast,\r\n getLuminance,\r\n lighten,\r\n darken,\r\n toRgba,\r\n parseToRgba,\r\n} from \"color2k\";\r\nimport ColorThief from \"colorthief\";\r\nimport { Palette } from \"../constants/palettes\";\r\n\r\nexport type RGBArray = [number, number, number];\r\n\r\n/**\r\n * Converts an RGB array to a CSS string representation.\r\n * @param rgb - The RGB array to convert.\r\n * @param opacity - Optional opacity value.\r\n * @returns A CSS string representation of the RGB array, using `rgb()`, or `rgba()` if an opacity value is provided.\r\n */\r\nexport const arrayToRgbString = (rgb: RGBArray, opacity?: number): string => {\r\n return opacity === undefined\r\n ? `rgb(${rgb[0]}, ${rgb[1]}, ${rgb[2]})`\r\n : `rgba(${rgb[0]}, ${rgb[1]}, ${rgb[2]}, ${opacity})`;\r\n};\r\n\r\n/**\r\n * Transparentizes an input color.\r\n *\r\n * @param color - The color string to transparentize.\r\n * @param amount - The amount to increase the opacity of the color by, given as a decimal between 0 and 1.\r\n * @returns An RGBA color string.\r\n */\r\nexport const transparentize = (color: string, amount: number): string => {\r\n return toRgba(_transparentize(color, amount));\r\n};\r\n\r\n/**\r\n * Saturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to saturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const saturate = (color: string, amount: number): string => {\r\n return toRgba(_saturate(color, amount));\r\n};\r\n\r\n/**\r\n * Desaturates a color.\r\n *\r\n * @param color - Input color\r\n * @param amount - The amount to desaturate, given as a decimal between 0 and 1\r\n * @returns An RGBA color string.\r\n */\r\nexport const desaturate = (color: string, amount: number): string => {\r\n return toRgba(_desaturate(color, amount));\r\n};\r\n\r\n/**\r\n * Gets the dominant color of an image. Avoids issues with low contrast colors.\r\n * @reference https://github.com/lokesh/color-thief/issues/40\r\n * @param image - The image to get the dominant color from.\r\n * @returns A Promise that resolves to an RGB array.\r\n */\r\nexport function getDominantColor(image: HTMLImageElement): Promise<RGBArray>;\r\nexport function getDominantColor(image: string): Promise<RGBArray>;\r\nexport function getDominantColor(\r\n image: HTMLImageElement | string\r\n): Promise<RGBArray> {\r\n if (image instanceof HTMLImageElement) {\r\n return Promise.resolve(getDominantColorFromElement(image));\r\n } else {\r\n return getDominantColorFromUrl(image);\r\n }\r\n}\r\n\r\nfunction getDominantColorFromElement(image: HTMLImageElement): RGBArray {\r\n try {\r\n const colorThief = new ColorThief();\r\n const baseColor = colorThief.getColor(image);\r\n return baseColor;\r\n } catch {\r\n return [255, 255, 255];\r\n }\r\n}\r\n\r\nfunction getDominantColorFromUrl(url: string): Promise<RGBArray> {\r\n return new Promise((resolve, reject) => {\r\n const imgElement = document.createElement(\"img\");\r\n imgElement.crossOrigin = \"anonymous\";\r\n\r\n imgElement.onload = () => {\r\n try {\r\n const baseColor = new ColorThief().getColor(imgElement);\r\n resolve(baseColor);\r\n } catch {\r\n resolve([255, 255, 255]);\r\n }\r\n };\r\n\r\n imgElement.onerror = () => reject(new Error(\"Failed to load image\"));\r\n imgElement.src = url;\r\n });\r\n}\r\n\r\n/**\r\n * Generates a complete color palette based on a primary color input.\r\n * The palette includes primary and secondary color scales with varying shades.\r\n *\r\n * @param primaryColor - The base RGB color array to generate the palette from\r\n * @returns A Palette object containing:\r\n * - BRAND colors (primary, light primary, and secondary)\r\n * - PRIMARY scale (7 shades from super dark to super light)\r\n * - SECONDARY scale (7 shades from super dark to super light)\r\n *\r\n * The function:\r\n * 1. Creates a 12-color scale from white to the primary color to black\r\n * 2. Generates a complementary secondary color by shifting the hue 180 degrees\r\n * 3. Creates another 12-color scale for the secondary color\r\n * 4. Maps specific positions from these scales to create the final palette structure\r\n */\r\nexport const generatePalette = (baseColor: RGBArray): Palette => {\r\n const primaryRgba = arrayToRgbString(baseColor);\r\n\r\n const primaryScaleFunc = getScale(\"#FFFFFF\", primaryRgba, \"#000000\");\r\n const primaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = primaryScaleFunc(i / 11);\r\n return desaturate(color, 0.0085);\r\n });\r\n\r\n const adjustedPrimaryScale = primaryScale.map((color) =>\r\n saturate(adjustBrightnessForLuminance(color), 0.005)\r\n );\r\n\r\n const secondaryColor = toRgba(saturate(adjustHue(primaryRgba, 180), 1));\r\n\r\n const secondaryScaleFunc = getScale(\"#FFFFFF\", secondaryColor, \"#000000\");\r\n const secondaryScale = Array.from({ length: 12 }, (_, i) => {\r\n const color = secondaryScaleFunc(i / 11);\r\n return desaturate(color, 0.1);\r\n });\r\n\r\n const adjustedSecondaryScale = secondaryScale.map((color) =>\r\n desaturate(adjustBrightnessForLuminance(color), 0.22)\r\n );\r\n\r\n const brandPrimary = darkenForContrast(\r\n saturate(adjustedPrimaryScale[5], 0.115)\r\n );\r\n\r\n return {\r\n BASE_COLOR: arrayToRgbString(baseColor),\r\n BRAND: {\r\n PRIMARY: brandPrimary,\r\n PRIMARY_LIGHT: lightenWithinRange(brandPrimary, 0.25, {\r\n min: 0.6,\r\n max: 0.8,\r\n }),\r\n SECONDARY: desaturate(adjustedSecondaryScale[4], 0.02),\r\n },\r\n PRIMARY: {\r\n //backgrounds\r\n PRIMARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n PRIMARY_DARK: lightenWithinRange(\r\n lightenForContrast(primaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n //interactive components\r\n PRIMARY_MEDIUM: lightenWithinRange(adjustedPrimaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n PRIMARY_MEDIUM_LIGHT: lightenWithinRange(\r\n desaturate(adjustedPrimaryScale[6], 0.1),\r\n 0.08\r\n ),\r\n //solid colors\r\n PRIMARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n PRIMARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedPrimaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n PRIMARY_SUPER_LIGHT: lightenWithinRange(adjustedPrimaryScale[1], 0.02, {\r\n min: 0.86,\r\n max: 0.98,\r\n }),\r\n },\r\n SECONDARY: {\r\n //backgrounds\r\n SECONDARY_SUPER_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[9]),\r\n -0.6,\r\n {\r\n min: 0.0,\r\n max: 0.02,\r\n }\r\n ),\r\n SECONDARY_DARK: lightenWithinRange(\r\n lightenForContrast(secondaryScale[8]),\r\n -0.4,\r\n {\r\n min: 0.01,\r\n max: 0.02,\r\n }\r\n ),\r\n // interactive components\r\n SECONDARY_MEDIUM: lightenWithinRange(adjustedSecondaryScale[7], -0.2, {\r\n min: 0.0,\r\n max: 0.11,\r\n }),\r\n //borders and seperators\r\n SECONDARY_MEDIUM_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[6],\r\n 0.1\r\n ),\r\n //solid colors\r\n SECONDARY_LIGHT: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[5], 0.1),\r\n 0.16\r\n ),\r\n //accessible text\r\n SECONDARY_LIGHTEST: lightenWithinRange(\r\n saturate(adjustedSecondaryScale[3], 0.2),\r\n 0.12,\r\n {\r\n min: 0.5,\r\n max: 0.9,\r\n }\r\n ),\r\n SECONDARY_SUPER_LIGHT: lightenWithinRange(\r\n adjustedSecondaryScale[0],\r\n 0.02,\r\n {\r\n min: 0.86,\r\n max: 0.98,\r\n }\r\n ),\r\n },\r\n SUCCESS: {\r\n SUCCESS_DARK: COLORS.SUCCESS.DARK,\r\n SUCCESS_MEDIUM: COLORS.SUCCESS.MEDIUM,\r\n SUCCESS_LIGHT: COLORS.SUCCESS.LIGHT,\r\n SUCCESS_SUPER_LIGHT: COLORS.SUCCESS.SUPER_LIGHT,\r\n },\r\n WARNING: {\r\n WARNING_DARK: COLORS.WARNING.DARK,\r\n WARNING_MEDIUM: COLORS.WARNING.MEDIUM,\r\n WARNING_LIGHT: COLORS.WARNING.LIGHT,\r\n WARNING_SUPER_LIGHT: COLORS.WARNING.SUPER_LIGHT,\r\n },\r\n DANGER: {\r\n DANGER_SUPER_DARK: COLORS.DANGER.SUPER_DARK,\r\n DANGER_DARK: COLORS.DANGER.DARK,\r\n DANGER_MEDIUM: COLORS.DANGER.MEDIUM,\r\n DANGER_LIGHT: COLORS.DANGER.LIGHT,\r\n DANGER_SUPER_LIGHT: COLORS.DANGER.SUPER_LIGHT,\r\n },\r\n };\r\n};\r\n\r\nconst lightenWithinRange = (\r\n color: string,\r\n amount: number,\r\n range: { min: number; max: number } = { min: 0.03, max: 0.97 }\r\n): string => {\r\n let adjustedColor = color;\r\n let currentLuminance = getLuminance(adjustedColor);\r\n\r\n // Validate range bounds\r\n if (range.min < 0) range.min = 0;\r\n if (range.max > 1) range.max = 1;\r\n if (range.min >= range.max) {\r\n throw new Error(\"Invalid range: min must be less than max\");\r\n }\r\n\r\n // For lightening (positive amount)\r\n if (amount > 0) {\r\n // Calculate how much we can lighten before hitting max\r\n const remainingLuminance = range.max - currentLuminance;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to lighten\r\n const scaledAmount = amount * (remainingLuminance / (1 - currentLuminance));\r\n adjustedColor = lighten(adjustedColor, scaledAmount);\r\n }\r\n // For darkening (negative amount)\r\n else if (amount < 0) {\r\n // Calculate how much we can darken before hitting min\r\n const remainingLuminance = currentLuminance - range.min;\r\n if (remainingLuminance <= 0) return toRgba(adjustedColor);\r\n\r\n // Scale the amount based on remaining room to darken\r\n const scaledAmount = amount * (remainingLuminance / currentLuminance);\r\n adjustedColor = darken(adjustedColor, Math.abs(scaledAmount));\r\n }\r\n\r\n // Verify final luminance is within bounds\r\n const finalLuminance = getLuminance(adjustedColor);\r\n if (finalLuminance > range.max) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n } else if (finalLuminance < range.min) {\r\n adjustedColor = adjustBrightnessWithinRange(adjustedColor, range);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst adjustBrightnessWithinRange = (\r\n color: string,\r\n range: { min: number; max: number }\r\n): string => {\r\n let adjustedColor = color;\r\n let luminance = getLuminance(adjustedColor);\r\n\r\n // Darken if too bright\r\n while (luminance > range.max) {\r\n adjustedColor = darken(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n // Lighten if too dark\r\n while (luminance < range.min) {\r\n adjustedColor = lighten(adjustedColor, 0.05);\r\n luminance = getLuminance(adjustedColor);\r\n }\r\n\r\n return toRgba(adjustedColor);\r\n};\r\n\r\nconst lightenForContrast = (color: string): string => {\r\n while (hasBadContrast(color, \"readable\", COLORS.GRAYSCALE.GRAY_DARK)) {\r\n color = lighten(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst darkenForContrast = (color: string): string => {\r\n while (hasBadContrast(COLORS.GRAYSCALE.GRAY_SUPER_LIGHT, \"readable\", color)) {\r\n color = darken(color, 0.01);\r\n }\r\n return toRgba(color);\r\n};\r\n\r\nconst adjustBrightnessForLuminance = (color: string): string => {\r\n let currentColor = color;\r\n let currentLuminance = getLuminance(toRgba(currentColor));\r\n let adjustmentAttempts = 0;\r\n const MAX_ATTEMPTS = 6;\r\n\r\n while (currentLuminance < 0.16 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = lighten(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n while (currentLuminance > 0.6 && adjustmentAttempts < MAX_ATTEMPTS) {\r\n adjustmentAttempts++;\r\n currentColor = darken(currentColor, 0.1);\r\n currentLuminance = getLuminance(toRgba(currentColor));\r\n }\r\n\r\n return toRgba(currentColor);\r\n};\r\n","const isString = (x: unknown): boolean =>\r\n typeof x === \"string\" || x instanceof String;\r\n\r\nexport function csx(...classnames: unknown[]): string {\r\n return classnames.filter(isString).join(\" \");\r\n}\r\n\r\n/**\r\n * [isUrlExternal] - determine if passed absolute url is external to the current domain.\r\n */\r\nexport const isUrlExternal = (url: string) => {\r\n return url.startsWith(\"http\");\r\n};\r\n\r\n/**\r\n * Handles internal navigation clicks by preventing default browser behavior and\r\n * programmatically updating the URL and history state.\r\n *\r\n * @param e - The click event from the anchor element\r\n * @param to - The destination path to navigate to\r\n *\r\n * @remarks\r\n * - Converts relative paths to absolute by prepending \"/\" if needed\r\n * - Updates browser history using pushState and dispatches a popstate event\r\n */\r\nexport const handleInternalNavigation = (\r\n e: React.MouseEvent<HTMLAnchorElement>,\r\n to: string\r\n) => {\r\n // Don't handle navigation if modifier keys are pressed\r\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) {\r\n return;\r\n }\r\n\r\n // Don't handle middle clicks or right clicks\r\n if (e.button && e.button !== 0) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n\r\n // Handle relative paths\r\n const resolvedPath = to.startsWith(\"/\") ? to : `/${to}`;\r\n window.history.pushState({}, \"\", resolvedPath);\r\n window.dispatchEvent(new PopStateEvent(\"popstate\"));\r\n};\r\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","getDominantColorFromElement","getDominantColorFromUrl","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":"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","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-Bg77Dlyi.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-B6kgnxF2.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,12 +35,6 @@ 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
package/dist/utils.es.js CHANGED
@@ -1,14 +1,13 @@
1
- import { a as e, e as s, d as r, c as n, b as o, g as i, h as l, i as g, s as d, t as m } from "./utils-DRhYCcfX.mjs";
1
+ import { a as e, c as s, d as r, b as n, g as i, h as o, i as g, s as l, t as d } from "./utils-CRsxDkRV.mjs";
2
2
  export {
3
3
  e as arrayToRgbString,
4
4
  s as csx,
5
5
  r as desaturate,
6
6
  n as generatePalette,
7
- o as getCustomDarkElevationColor,
8
7
  i as getDominantColor,
9
- l as handleInternalNavigation,
8
+ o as handleInternalNavigation,
10
9
  g as isUrlExternal,
11
- d as saturate,
12
- m as transparentize
10
+ l as saturate,
11
+ d as transparentize
13
12
  };
14
13
  //# sourceMappingURL=utils.es.js.map