@protonradio/proton-ui 0.9.0 → 0.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
- import { B as z, G as I } from "./colors-Bz89s5kE.mjs";
2
- import { toRgba as M, transparentize as J, saturate as Q, desaturate as V, getScale as j, adjustHue as Z, getLuminance as T, lighten as H, darken as U, hasBadContrast as W } from "color2k";
3
- var x = function(n, o) {
1
+ import { S as N, W as T, D as L, G as X } from "./colors-HcG3PvX2.mjs";
2
+ import { toRgba as I, transparentize as V, saturate as Z, desaturate as tt, getScale as O, adjustHue as nt, getLuminance as x, lighten as Y, darken as F, hasBadContrast as J } from "color2k";
3
+ var U = function(n, o) {
4
4
  return n < o ? -1 : n > o ? 1 : 0;
5
5
  }, $ = function(n) {
6
6
  return n.reduce(function(o, a) {
7
7
  return o + a;
8
8
  }, 0);
9
- }, tt = /* @__PURE__ */ function() {
9
+ }, et = /* @__PURE__ */ function() {
10
10
  function n(a) {
11
11
  this.colors = a;
12
12
  }
@@ -16,7 +16,7 @@ var x = function(n, o) {
16
16
  }, o.map = function(a) {
17
17
  return a;
18
18
  }, n;
19
- }(), nt = function() {
19
+ }(), rt = function() {
20
20
  function n(e, t, s) {
21
21
  return (e << 10) + (t << 5) + s;
22
22
  }
@@ -45,34 +45,34 @@ var x = function(n, o) {
45
45
  }
46
46
  function l() {
47
47
  this.vboxes = new o(function(e, t) {
48
- return x(e.vbox.count() * e.vbox.volume(), t.vbox.count() * t.vbox.volume());
48
+ return U(e.vbox.count() * e.vbox.volume(), t.vbox.count() * t.vbox.volume());
49
49
  });
50
50
  }
51
- function R(e, t) {
51
+ function m(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 r, h, f, g, p = 0, v = [], Y = [];
55
+ var r, h, f, v, d = 0, p = [], D = [];
56
56
  if (c == s) for (r = t.r1; r <= t.r2; r++) {
57
- for (g = 0, h = t.g1; h <= t.g2; h++) for (f = t.b1; f <= t.b2; f++) g += e[n(r, h, f)] || 0;
58
- v[r] = p += g;
57
+ for (v = 0, h = t.g1; h <= t.g2; h++) for (f = t.b1; f <= t.b2; f++) v += e[n(r, h, f)] || 0;
58
+ p[r] = d += v;
59
59
  }
60
60
  else if (c == u) for (r = t.g1; r <= t.g2; r++) {
61
- for (g = 0, h = t.r1; h <= t.r2; h++) for (f = t.b1; f <= t.b2; f++) g += e[n(h, r, f)] || 0;
62
- v[r] = p += g;
61
+ for (v = 0, h = t.r1; h <= t.r2; h++) for (f = t.b1; f <= t.b2; f++) v += e[n(h, r, f)] || 0;
62
+ p[r] = d += v;
63
63
  }
64
64
  else for (r = t.b1; r <= t.b2; r++) {
65
- for (g = 0, h = t.r1; h <= t.r2; h++) for (f = t.g1; f <= t.g2; f++) g += e[n(h, f, r)] || 0;
66
- v[r] = p += g;
65
+ for (v = 0, h = t.r1; h <= t.r2; h++) for (f = t.g1; f <= t.g2; f++) v += e[n(h, f, r)] || 0;
66
+ p[r] = d += v;
67
67
  }
68
- return v.forEach(function(S, m) {
69
- Y[m] = p - S;
70
- }), function(S) {
71
- var m, E, A, d, _, G = S + "1", D = S + "2", P = 0;
72
- for (r = t[G]; r <= t[D]; r++) if (v[r] > p / 2) {
73
- for (A = t.copy(), d = t.copy(), _ = (m = r - t[G]) <= (E = t[D] - r) ? Math.min(t[D] - 1, ~~(r + E / 2)) : Math.max(t[G], ~~(r - 1 - m / 2)); !v[_]; ) _++;
74
- for (P = Y[_]; !P && v[_ - 1]; ) P = Y[--_];
75
- return A[D] = _, d[G] = A[D] + 1, [A, d];
68
+ return p.forEach(function(C, g) {
69
+ D[g] = d - C;
70
+ }), function(C) {
71
+ var g, b, R, A, E, w = C + "1", S = C + "2", M = 0;
72
+ for (r = t[w]; r <= t[S]; r++) if (p[r] > d / 2) {
73
+ for (R = t.copy(), A = t.copy(), E = (g = r - t[w]) <= (b = t[S] - r) ? Math.min(t[S] - 1, ~~(r + b / 2)) : Math.max(t[w], ~~(r - 1 - g / 2)); !p[E]; ) E++;
74
+ for (M = D[E]; !M && p[E - 1]; ) M = D[--E];
75
+ return R[S] = E, A[w] = R[S] + 1, [R, A];
76
76
  }
77
77
  }(c == s ? "r" : c == u ? "g" : "b");
78
78
  }
@@ -94,11 +94,11 @@ var x = function(n, o) {
94
94
  }, avg: function(e) {
95
95
  var t = this, s = t.histo;
96
96
  if (!t._avg || e) {
97
- var u, c, r, h, f = 0, g = 0, p = 0, v = 0;
97
+ var u, c, r, h, 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 (r = t.g1; r <= t.g2; r++) for (h = t.b1; h <= t.b2; h++) f += u = s[n(c, r, h)] || 0, g += u * (c + 0.5) * 8, p += u * (r + 0.5) * 8, v += u * (h + 0.5) * 8;
101
- t._avg = f ? [~~(g / f), ~~(p / f), ~~(v / f)] : [~~(8 * (t.r1 + t.r2 + 1) / 2), ~~(8 * (t.g1 + t.g2 + 1) / 2), ~~(8 * (t.b1 + t.b2 + 1) / 2)];
100
+ for (c = t.r1; c <= t.r2; c++) for (r = t.g1; r <= t.g2; r++) for (h = t.b1; h <= t.b2; h++) f += u = s[n(c, r, h)] || 0, v += u * (c + 0.5) * 8, d += u * (r + 0.5) * 8, p += u * (h + 0.5) * 8;
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
  }
104
104
  return t._avg;
@@ -122,7 +122,7 @@ var x = function(n, o) {
122
122
  }, forcebw: function() {
123
123
  var e = this.vboxes;
124
124
  e.sort(function(c, r) {
125
- return x($(c.color), $(r.color));
125
+ return U($(c.color), $(r.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]);
@@ -135,52 +135,52 @@ var x = function(n, o) {
135
135
  var r = e[c], h = r.join(",");
136
136
  u.has(h) || (u.add(h), s.push(r));
137
137
  }
138
- if (s.length <= t) return new tt(s);
139
- var f = function(m) {
140
- var E, A = new Array(32768);
141
- return m.forEach(function(d) {
142
- E = n(d[0] >> 3, d[1] >> 3, d[2] >> 3), A[E] = (A[E] || 0) + 1;
143
- }), A;
138
+ if (s.length <= t) return new et(s);
139
+ var f = function(g) {
140
+ var b, R = new Array(32768);
141
+ return g.forEach(function(A) {
142
+ b = n(A[0] >> 3, A[1] >> 3, A[2] >> 3), R[b] = (R[b] || 0) + 1;
143
+ }), R;
144
144
  }(e);
145
145
  f.forEach(function() {
146
146
  });
147
- var g = function(m, E) {
148
- var A, d, _, G = 1e6, D = 0, P = 1e6, N = 0, O = 1e6, F = 0;
149
- return m.forEach(function(K) {
150
- (A = K[0] >> 3) < G ? G = A : A > D && (D = A), (d = K[1] >> 3) < P ? P = d : d > N && (N = d), (_ = K[2] >> 3) < O ? O = _ : _ > F && (F = _);
151
- }), new a(G, D, P, N, O, F, E);
152
- }(e, f), p = new o(function(m, E) {
153
- return x(m.count(), E.count());
147
+ var v = function(g, b) {
148
+ var R, A, E, 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), (E = j[2] >> 3) < z ? z = E : E > W && (W = E);
151
+ }), new a(w, S, M, K, z, W, b);
152
+ }(e, f), d = new o(function(g, b) {
153
+ return U(g.count(), b.count());
154
154
  });
155
- function v(m, E) {
156
- for (var A, d = m.size(), _ = 0; _ < 1e3; ) {
157
- if (d >= E || _++ > 1e3) return;
158
- if ((A = m.pop()).count()) {
159
- var G = R(f, A), D = G[0], P = G[1];
160
- if (!D) return;
161
- m.push(D), P && (m.push(P), d++);
162
- } else m.push(A), _++;
155
+ function p(g, b) {
156
+ for (var R, A = g.size(), E = 0; E < 1e3; ) {
157
+ if (A >= b || E++ > 1e3) return;
158
+ if ((R = g.pop()).count()) {
159
+ var w = m(f, R), S = w[0], M = w[1];
160
+ if (!S) return;
161
+ g.push(S), M && (g.push(M), A++);
162
+ } else g.push(R), E++;
163
163
  }
164
164
  }
165
- p.push(g), v(p, 0.75 * t);
166
- for (var Y = new o(function(m, E) {
167
- return x(m.count() * m.volume(), E.count() * E.volume());
168
- }); p.size(); ) Y.push(p.pop());
169
- v(Y, t);
170
- for (var S = new l(); Y.size(); ) S.push(Y.pop());
171
- return S;
165
+ d.push(v), p(d, 0.75 * t);
166
+ for (var D = new o(function(g, b) {
167
+ return U(g.count() * g.volume(), b.count() * b.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;
172
172
  } };
173
- }().quantize, X = function(n) {
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);
175
175
  };
176
- X.prototype.getImageData = function() {
176
+ Q.prototype.getImageData = function() {
177
177
  return this.context.getImageData(0, 0, this.width, this.height);
178
178
  };
179
- var w = function() {
179
+ var G = function() {
180
180
  };
181
- w.prototype.getColor = function(n, o) {
181
+ G.prototype.getColor = function(n, o) {
182
182
  return o === void 0 && (o = 10), this.getPalette(n, 5, o)[0];
183
- }, w.prototype.getPalette = function(n, o, a) {
183
+ }, G.prototype.getPalette = function(n, o, a) {
184
184
  var l = function(s) {
185
185
  var u = s.colorCount, c = s.quality;
186
186
  if (u !== void 0 && Number.isInteger(u)) {
@@ -188,106 +188,80 @@ w.prototype.getColor = function(n, o) {
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: o, quality: a }), R = new X(n), e = function(s, u, c) {
192
- for (var r, h, f, g, p, v = s, Y = [], S = 0; S < u; S += c) h = v[0 + (r = 4 * S)], f = v[r + 1], g = v[r + 2], ((p = v[r + 3]) === void 0 || p >= 125) && (h > 250 && f > 250 && g > 250 || Y.push([h, f, g]));
193
- return Y;
194
- }(R.getImageData().data, R.width * R.height, l.quality), t = nt(e, l.colorCount);
191
+ }({ colorCount: o, quality: a }), m = new Q(n), e = function(s, u, c) {
192
+ for (var r, h, f, v, d, p = s, D = [], C = 0; C < u; C += c) h = p[0 + (r = 4 * C)], f = p[r + 1], v = p[r + 2], ((d = p[r + 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 = rt(e, l.colorCount);
195
195
  return t ? t.palette() : null;
196
- }, w.prototype.getColorFromUrl = function(n, o, a) {
197
- var l = this, R = document.createElement("img");
198
- R.addEventListener("load", function() {
199
- var e = l.getPalette(R, 5, a);
196
+ }, G.prototype.getColorFromUrl = function(n, o, a) {
197
+ var l = this, m = document.createElement("img");
198
+ m.addEventListener("load", function() {
199
+ var e = l.getPalette(m, 5, a);
200
200
  o(e[0], n);
201
- }), R.src = n;
202
- }, w.prototype.getImageData = function(n, o) {
201
+ }), m.src = n;
202
+ }, G.prototype.getImageData = function(n, o) {
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 R = new Array(i), e = 0; e < l.length; e++) R[e] = String.fromCharCode(l[e]);
209
- var t = R.join(""), s = window.btoa(t);
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);
210
210
  o("data:image/png;base64," + s);
211
211
  }
212
212
  }, a.send();
213
- }, w.prototype.getColorAsync = function(n, o, a) {
213
+ }, G.prototype.getColorAsync = function(n, o, a) {
214
214
  var l = this;
215
- this.getImageData(n, function(R) {
215
+ this.getImageData(n, function(m) {
216
216
  var e = document.createElement("img");
217
217
  e.addEventListener("load", function() {
218
218
  var t = l.getPalette(e, 5, a);
219
219
  o(t[0], this);
220
- }), e.src = R;
220
+ }), e.src = m;
221
221
  });
222
222
  };
223
- const et = "rgba(83, 82, 83, 1)", st = {
224
- BASE_COLOR: et,
225
- BRAND: {
226
- PRIMARY: z.PRIMARY,
227
- PRIMARY_LIGHT: z.PRIMARY_LIGHT,
228
- SECONDARY: z.SECONDARY
229
- },
230
- PRIMARY: {
231
- PRIMARY_SUPER_DARK: I.GRAY_SUPER_DARK,
232
- PRIMARY_DARK: I.GRAY_DARK,
233
- PRIMARY_MEDIUM: I.GRAY_MEDIUM,
234
- PRIMARY_MEDIUM_LIGHT: I.GRAY_MEDIUM_LIGHT,
235
- PRIMARY_LIGHT: I.GRAY_LIGHT,
236
- PRIMARY_LIGHTEST: I.GRAY_LIGHTEST,
237
- PRIMARY_SUPER_LIGHT: I.GRAY_SUPER_LIGHT
238
- },
239
- SECONDARY: {
240
- SECONDARY_SUPER_DARK: I.GRAY_SUPER_DARK,
241
- SECONDARY_DARK: I.GRAY_DARK,
242
- SECONDARY_MEDIUM: I.GRAY_MEDIUM,
243
- SECONDARY_MEDIUM_LIGHT: I.GRAY_MEDIUM_LIGHT,
244
- SECONDARY_LIGHT: I.GRAY_LIGHT,
245
- SECONDARY_LIGHTEST: I.GRAY_LIGHTEST,
246
- SECONDARY_SUPER_LIGHT: I.GRAY_SUPER_LIGHT
247
- }
248
- // Success, Warning & Danger palettes go here...
249
- }, B = (n, o) => o === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[0]}, ${n[1]}, ${n[2]}, ${o})`, ut = (n, o) => M(J(n, o)), C = (n, o) => M(Q(n, o)), L = (n, o) => M(V(n, o)), ct = (n) => {
223
+ const k = (n, o) => o === void 0 ? `rgb(${n[0]}, ${n[1]}, ${n[2]})` : `rgba(${n[0]}, ${n[1]}, ${n[2]}, ${o})`, ut = (n, o) => I(V(n, o)), y = (n, o) => I(Z(n, o)), P = (n, o) => I(tt(n, o)), ct = (n) => {
250
224
  try {
251
- return new w().getColor(n);
225
+ return new G().getColor(n);
252
226
  } catch {
253
227
  return [255, 255, 255];
254
228
  }
255
229
  }, lt = (n) => {
256
- const o = B(n), a = j("#FFFFFF", o, "#000000"), l = Array.from({ length: 12 }, (r, h) => {
230
+ const o = k(n), a = O("#FFFFFF", o, "#000000"), l = Array.from({ length: 12 }, (r, h) => {
257
231
  const f = a(h / 11);
258
- return L(f, 85e-4);
259
- }), R = l.map(
260
- (r) => C(q(r), 5e-3)
261
- ), e = M(C(Z(o, 180), 1)), t = j("#FFFFFF", e, "#000000"), s = Array.from({ length: 12 }, (r, h) => {
232
+ return P(f, 85e-4);
233
+ }), m = l.map(
234
+ (r) => y(B(r), 5e-3)
235
+ ), e = I(y(nt(o, 180), 1)), t = O("#FFFFFF", e, "#000000"), s = Array.from({ length: 12 }, (r, h) => {
262
236
  const f = t(h / 11);
263
- return L(f, 0.1);
237
+ return P(f, 0.1);
264
238
  }), u = s.map(
265
- (r) => L(q(r), 0.22)
266
- ), c = rt(
267
- C(R[5], 0.115)
239
+ (r) => P(B(r), 0.22)
240
+ ), c = ot(
241
+ y(m[5], 0.115)
268
242
  );
269
243
  return {
270
- BASE_COLOR: B(n),
244
+ BASE_COLOR: k(n),
271
245
  BRAND: {
272
246
  PRIMARY: c,
273
- PRIMARY_LIGHT: b(c, 0.25, {
247
+ PRIMARY_LIGHT: _(c, 0.25, {
274
248
  min: 0.6,
275
249
  max: 0.8
276
250
  }),
277
- SECONDARY: L(u[4], 0.02)
251
+ SECONDARY: P(u[4], 0.02)
278
252
  },
279
253
  PRIMARY: {
280
254
  //backgrounds
281
- PRIMARY_SUPER_DARK: b(
282
- y(l[9]),
255
+ PRIMARY_SUPER_DARK: _(
256
+ H(l[9]),
283
257
  -0.6,
284
258
  {
285
259
  min: 0,
286
260
  max: 0.02
287
261
  }
288
262
  ),
289
- PRIMARY_DARK: b(
290
- y(l[8]),
263
+ PRIMARY_DARK: _(
264
+ H(l[8]),
291
265
  -0.4,
292
266
  {
293
267
  min: 0.01,
@@ -295,46 +269,46 @@ const et = "rgba(83, 82, 83, 1)", st = {
295
269
  }
296
270
  ),
297
271
  //interactive components
298
- PRIMARY_MEDIUM: b(R[7], -0.2, {
272
+ PRIMARY_MEDIUM: _(m[7], -0.2, {
299
273
  min: 0,
300
274
  max: 0.11
301
275
  }),
302
276
  //borders and seperators
303
- PRIMARY_MEDIUM_LIGHT: b(
304
- L(R[6], 0.1),
277
+ PRIMARY_MEDIUM_LIGHT: _(
278
+ P(m[6], 0.1),
305
279
  0.08
306
280
  ),
307
281
  //solid colors
308
- PRIMARY_LIGHT: b(
309
- C(R[5], 0.1),
282
+ PRIMARY_LIGHT: _(
283
+ y(m[5], 0.1),
310
284
  0.16
311
285
  ),
312
286
  //accessible text
313
- PRIMARY_LIGHTEST: b(
314
- C(R[3], 0.2),
287
+ PRIMARY_LIGHTEST: _(
288
+ y(m[3], 0.2),
315
289
  0.12,
316
290
  {
317
291
  min: 0.5,
318
292
  max: 0.9
319
293
  }
320
294
  ),
321
- PRIMARY_SUPER_LIGHT: b(R[1], 0.02, {
295
+ PRIMARY_SUPER_LIGHT: _(m[1], 0.02, {
322
296
  min: 0.86,
323
297
  max: 0.98
324
298
  })
325
299
  },
326
300
  SECONDARY: {
327
301
  //backgrounds
328
- SECONDARY_SUPER_DARK: b(
329
- y(s[9]),
302
+ SECONDARY_SUPER_DARK: _(
303
+ H(s[9]),
330
304
  -0.6,
331
305
  {
332
306
  min: 0,
333
307
  max: 0.02
334
308
  }
335
309
  ),
336
- SECONDARY_DARK: b(
337
- y(s[8]),
310
+ SECONDARY_DARK: _(
311
+ H(s[8]),
338
312
  -0.4,
339
313
  {
340
314
  min: 0.01,
@@ -342,30 +316,30 @@ const et = "rgba(83, 82, 83, 1)", st = {
342
316
  }
343
317
  ),
344
318
  // interactive components
345
- SECONDARY_MEDIUM: b(u[7], -0.2, {
319
+ SECONDARY_MEDIUM: _(u[7], -0.2, {
346
320
  min: 0,
347
321
  max: 0.11
348
322
  }),
349
323
  //borders and seperators
350
- SECONDARY_MEDIUM_LIGHT: b(
324
+ SECONDARY_MEDIUM_LIGHT: _(
351
325
  u[6],
352
326
  0.1
353
327
  ),
354
328
  //solid colors
355
- SECONDARY_LIGHT: b(
356
- C(u[5], 0.1),
329
+ SECONDARY_LIGHT: _(
330
+ y(u[5], 0.1),
357
331
  0.16
358
332
  ),
359
333
  //accessible text
360
- SECONDARY_LIGHTEST: b(
361
- C(u[3], 0.2),
334
+ SECONDARY_LIGHTEST: _(
335
+ y(u[3], 0.2),
362
336
  0.12,
363
337
  {
364
338
  min: 0.5,
365
339
  max: 0.9
366
340
  }
367
341
  ),
368
- SECONDARY_SUPER_LIGHT: b(
342
+ SECONDARY_SUPER_LIGHT: _(
369
343
  u[0],
370
344
  0.02,
371
345
  {
@@ -373,53 +347,72 @@ const et = "rgba(83, 82, 83, 1)", st = {
373
347
  max: 0.98
374
348
  }
375
349
  )
350
+ },
351
+ SUCCESS: {
352
+ SUCCESS_DARK: N.DARK,
353
+ SUCCESS_MEDIUM: N.MEDIUM,
354
+ SUCCESS_LIGHT: N.LIGHT,
355
+ SUCCESS_SUPER_LIGHT: N.SUPER_LIGHT
356
+ },
357
+ WARNING: {
358
+ WARNING_DARK: T.DARK,
359
+ WARNING_MEDIUM: T.MEDIUM,
360
+ WARNING_LIGHT: T.LIGHT,
361
+ WARNING_SUPER_LIGHT: T.SUPER_LIGHT
362
+ },
363
+ DANGER: {
364
+ DANGER_SUPER_DARK: L.SUPER_DARK,
365
+ DANGER_DARK: L.DARK,
366
+ DANGER_MEDIUM: L.MEDIUM,
367
+ DANGER_LIGHT: L.LIGHT,
368
+ DANGER_SUPER_LIGHT: L.SUPER_LIGHT
376
369
  }
377
370
  };
378
- }, b = (n, o, a = { min: 0.03, max: 0.97 }) => {
379
- let l = n, R = T(l);
371
+ }, _ = (n, o, a = { min: 0.03, max: 0.97 }) => {
372
+ let l = n, m = x(l);
380
373
  if (a.min < 0 && (a.min = 0), a.max > 1 && (a.max = 1), a.min >= a.max)
381
374
  throw new Error("Invalid range: min must be less than max");
382
375
  if (o > 0) {
383
- const t = a.max - R;
384
- if (t <= 0) return M(l);
385
- const s = o * (t / (1 - R));
386
- l = H(l, s);
376
+ const t = a.max - m;
377
+ if (t <= 0) return I(l);
378
+ const s = o * (t / (1 - m));
379
+ l = Y(l, s);
387
380
  } else if (o < 0) {
388
- const t = R - a.min;
389
- if (t <= 0) return M(l);
390
- const s = o * (t / R);
391
- l = U(l, Math.abs(s));
381
+ const t = m - a.min;
382
+ if (t <= 0) return I(l);
383
+ const s = o * (t / m);
384
+ l = F(l, Math.abs(s));
392
385
  }
393
- const e = T(l);
394
- return (e > a.max || e < a.min) && (l = k(l, a)), M(l);
395
- }, k = (n, o) => {
396
- let a = n, l = T(a);
386
+ const e = x(l);
387
+ return (e > a.max || e < a.min) && (l = q(l, a)), I(l);
388
+ }, q = (n, o) => {
389
+ let a = n, l = x(a);
397
390
  for (; l > o.max; )
398
- a = U(a, 0.05), l = T(a);
391
+ a = F(a, 0.05), l = x(a);
399
392
  for (; l < o.min; )
400
- a = H(a, 0.05), l = T(a);
401
- return M(a);
402
- }, y = (n) => {
403
- for (; W(n, "readable", I.GRAY_DARK); )
404
- n = H(n, 0.01);
405
- return M(n);
406
- }, rt = (n) => {
407
- for (; W(I.GRAY_SUPER_LIGHT, "readable", n); )
408
- n = U(n, 0.01);
409
- return M(n);
410
- }, q = (n) => {
411
- let o = n, a = T(M(o)), l = 0;
412
- const R = 6;
413
- for (; a < 0.16 && l < R; )
414
- l++, o = H(o, 0.1), a = T(M(o));
415
- for (; a > 0.6 && l < R; )
416
- l++, o = U(o, 0.1), a = T(M(o));
417
- return M(o);
418
- }, ot = (n) => typeof n == "string" || n instanceof String;
393
+ a = Y(a, 0.05), l = x(a);
394
+ return I(a);
395
+ }, H = (n) => {
396
+ for (; J(n, "readable", X.GRAY_DARK); )
397
+ n = Y(n, 0.01);
398
+ return I(n);
399
+ }, ot = (n) => {
400
+ for (; J(X.GRAY_SUPER_LIGHT, "readable", n); )
401
+ n = F(n, 0.01);
402
+ return I(n);
403
+ }, B = (n) => {
404
+ let o = n, a = x(I(o)), l = 0;
405
+ const m = 6;
406
+ for (; a < 0.16 && l < m; )
407
+ l++, o = Y(o, 0.1), a = x(I(o));
408
+ for (; a > 0.6 && l < m; )
409
+ l++, o = F(o, 0.1), a = x(I(o));
410
+ return I(o);
411
+ }, at = (n) => typeof n == "string" || n instanceof String;
419
412
  function ft(...n) {
420
- return n.filter(ot).join(" ");
413
+ return n.filter(at).join(" ");
421
414
  }
422
- const ht = (n) => n.startsWith("http"), Rt = (n, o) => {
415
+ const ht = (n) => n.startsWith("http"), mt = (n, o) => {
423
416
  if (n.metaKey || n.altKey || n.ctrlKey || n.shiftKey || n.button && n.button !== 0)
424
417
  return;
425
418
  n.preventDefault();
@@ -427,16 +420,14 @@ const ht = (n) => n.startsWith("http"), Rt = (n, o) => {
427
420
  window.history.pushState({}, "", a), window.dispatchEvent(new PopStateEvent("popstate"));
428
421
  };
429
422
  export {
430
- et as D,
431
- st as a,
432
- B as b,
433
- lt as c,
434
- L as d,
435
- ft as e,
423
+ k as a,
424
+ lt as b,
425
+ ft as c,
426
+ P as d,
436
427
  ct as g,
437
- Rt as h,
428
+ mt as h,
438
429
  ht as i,
439
- C as s,
430
+ y as s,
440
431
  ut as t
441
432
  };
442
- //# sourceMappingURL=utils-pGAnEEqC.mjs.map
433
+ //# sourceMappingURL=utils-DV74IbLn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils-DV74IbLn.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} 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 An RGB array.\r\n */\r\nexport const getDominantColor = (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\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","ColorThief","generatePalette","baseColor","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","url","handleInternalNavigation","to","resolvedPath"],"mappings":"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","x_google_ignoreList":[0]}