@leonardaustin/ui 0.1.0 → 0.2.0

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.
package/dist/index.js CHANGED
@@ -1,35 +1,34 @@
1
1
  import { Component as e, Fragment as t, createContext as n, forwardRef as r, useCallback as i, useContext as a, useEffect as o, useId as s, useLayoutEffect as c, useMemo as l, useRef as u, useState as d } from "react";
2
2
  import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
3
- import { clsx as h } from "clsx";
4
- import { Accessibility as g, AlertTriangle as _, ArrowDown as v, ArrowLeft as y, ArrowUp as b, BookOpen as x, Calendar as S, Check as C, CheckCircle2 as w, ChevronDown as T, ChevronLeft as E, ChevronRight as D, ChevronsUpDown as O, Columns3 as k, Eye as A, EyeOff as j, Inbox as ee, Info as te, Loader2 as ne, LogOut as re, Menu as ie, Minus as ae, Monitor as oe, Moon as se, Palette as ce, PanelLeft as le, PanelLeftDashed as ue, Search as M, Settings as de, Sun as fe, UploadCloud as pe, X as N, XCircle as me, Zap as he } from "lucide-react";
5
- import { createPortal as P } from "react-dom";
3
+ import { Accessibility as h, AlertTriangle as g, ArrowDown as _, ArrowLeft as v, ArrowUp as y, BookOpen as b, Calendar as x, Check as S, CheckCircle2 as C, ChevronDown as w, ChevronLeft as T, ChevronRight as E, ChevronsUpDown as D, Columns3 as O, Eye as k, EyeOff as A, Inbox as ee, Info as te, Loader2 as ne, LogOut as re, Menu as ie, Minus as ae, Monitor as j, Moon as M, Palette as oe, PanelLeft as se, PanelLeftDashed as ce, Search as N, Settings as le, Sun as ue, UploadCloud as de, X as P, XCircle as fe, Zap as pe } from "lucide-react";
4
+ import { createPortal as F } from "react-dom";
6
5
  //#region src/components/charts/AreaChart.tsx
7
- var F = {
6
+ var I = {
8
7
  top: 16,
9
8
  right: 12,
10
9
  bottom: 28,
11
10
  left: 48
12
11
  };
13
- function ge(e) {
12
+ function me(e) {
14
13
  return e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}k` : String(e);
15
14
  }
16
- function _e({ data: e, height: t = 240 }) {
17
- let n = s(), r = u(null), [i, a] = d(null), o = 600 - F.left - F.right, c = t - F.top - F.bottom, l = Math.min(...e.map((e) => e.value)), h = Math.max(...e.map((e) => e.value)), g = h - l || 1;
15
+ function he({ data: e, height: t = 240 }) {
16
+ let n = s(), r = u(null), [i, a] = d(null), o = 600 - I.left - I.right, c = t - I.top - I.bottom, l = Math.min(...e.map((e) => e.value)), h = Math.max(...e.map((e) => e.value)), g = h - l || 1;
18
17
  function _(t) {
19
- return F.left + t / Math.max(e.length - 1, 1) * o;
18
+ return I.left + t / Math.max(e.length - 1, 1) * o;
20
19
  }
21
20
  function v(e) {
22
- return F.top + c - (e - l) / g * c;
21
+ return I.top + c - (e - l) / g * c;
23
22
  }
24
23
  let y = e.map((e, t) => `${_(t)},${v(e.value)}`).join(" "), b = [
25
- `${_(0)},${F.top + c}`,
24
+ `${_(0)},${I.top + c}`,
26
25
  ...e.map((e, t) => `${_(t)},${v(e.value)}`),
27
- `${_(e.length - 1)},${F.top + c}`
26
+ `${_(e.length - 1)},${I.top + c}`
28
27
  ].join(" "), x = Math.max(1, Math.floor(e.length / 5)), S = e.filter((t, n) => n % x === 0 || n === e.length - 1), C = e.map((e, t) => t).filter((t) => t % x === 0 || t === e.length - 1);
29
28
  function w(t) {
30
29
  let n = r.current;
31
30
  if (!n || e.length === 0) return;
32
- let i = n.getBoundingClientRect(), s = ((t.clientX - i.left) / i.width * 600 - F.left) / o, c = Math.round(s * (e.length - 1)), l = Math.max(0, Math.min(e.length - 1, c));
31
+ let i = n.getBoundingClientRect(), s = ((t.clientX - i.left) / i.width * 600 - I.left) / o, c = Math.round(s * (e.length - 1)), l = Math.max(0, Math.min(e.length - 1, c));
33
32
  a({
34
33
  x: _(l),
35
34
  y: v(e[l].value),
@@ -64,28 +63,28 @@ function _e({ data: e, height: t = 240 }) {
64
63
  })]
65
64
  }) }),
66
65
  /* @__PURE__ */ p("text", {
67
- x: F.left - 8,
68
- y: F.top,
66
+ x: I.left - 8,
67
+ y: I.top,
69
68
  textAnchor: "end",
70
69
  dominantBaseline: "central",
71
70
  fill: "var(--text-tertiary)",
72
71
  fontSize: 10,
73
- children: ge(h)
72
+ children: me(h)
74
73
  }),
75
74
  /* @__PURE__ */ p("text", {
76
- x: F.left - 8,
77
- y: F.top + c,
75
+ x: I.left - 8,
76
+ y: I.top + c,
78
77
  textAnchor: "end",
79
78
  dominantBaseline: "central",
80
79
  fill: "var(--text-tertiary)",
81
80
  fontSize: 10,
82
- children: ge(l)
81
+ children: me(l)
83
82
  }),
84
83
  /* @__PURE__ */ p("line", {
85
- x1: F.left,
86
- y1: F.top + c,
87
- x2: F.left + o,
88
- y2: F.top + c,
84
+ x1: I.left,
85
+ y1: I.top + c,
86
+ x2: I.left + o,
87
+ y2: I.top + c,
89
88
  stroke: "var(--border)",
90
89
  strokeWidth: 1
91
90
  }),
@@ -112,9 +111,9 @@ function _e({ data: e, height: t = 240 }) {
112
111
  i && /* @__PURE__ */ m(f, { children: [
113
112
  /* @__PURE__ */ p("line", {
114
113
  x1: i.x,
115
- y1: F.top,
114
+ y1: I.top,
116
115
  x2: i.x,
117
- y2: F.top + c,
116
+ y2: I.top + c,
118
117
  stroke: "var(--border-strong)",
119
118
  strokeWidth: 1,
120
119
  strokeDasharray: "3 3"
@@ -167,14 +166,14 @@ function _e({ data: e, height: t = 240 }) {
167
166
  }
168
167
  //#endregion
169
168
  //#region src/components/charts/BarChart.tsx
170
- var ve = [
169
+ var ge = [
171
170
  1,
172
171
  .85,
173
172
  .7,
174
173
  .55,
175
174
  .45
176
175
  ];
177
- function ye({ data: e, height: t }) {
176
+ function _e({ data: e, height: t }) {
178
177
  let [n, r] = d(null), i = Math.max(...e.map((e) => e.value));
179
178
  return /* @__PURE__ */ p("svg", {
180
179
  width: "100%",
@@ -220,7 +219,7 @@ function ye({ data: e, height: t }) {
220
219
  height: 22,
221
220
  fill: "var(--accent)",
222
221
  rx: 6,
223
- opacity: s ? 1 : ve[t % ve.length],
222
+ opacity: s ? 1 : ge[t % ge.length],
224
223
  style: { transition: "all 150ms" }
225
224
  }),
226
225
  /* @__PURE__ */ p("text", {
@@ -240,7 +239,19 @@ function ye({ data: e, height: t }) {
240
239
  }
241
240
  //#endregion
242
241
  //#region src/lib/cn.ts
243
- var be = new Set([
242
+ function ve(e) {
243
+ if (typeof e == "string" || typeof e == "number" || typeof e == "bigint") return String(e);
244
+ if (!e || typeof e != "object") return "";
245
+ let t = "";
246
+ if (Array.isArray(e)) for (let n of e) {
247
+ if (!n) continue;
248
+ let e = ve(n);
249
+ e && (t = t ? `${t} ${e}` : e);
250
+ }
251
+ else for (let n in e) e[n] && (t = t ? `${t} ${n}` : n);
252
+ return t;
253
+ }
254
+ var ye = new Set([
244
255
  "block",
245
256
  "contents",
246
257
  "flex",
@@ -250,7 +261,7 @@ var be = new Set([
250
261
  "inline-block",
251
262
  "inline-flex",
252
263
  "table"
253
- ]), xe = new Set([
264
+ ]), be = new Set([
254
265
  "text-2xl",
255
266
  "text-2xs",
256
267
  "text-2xs-f",
@@ -261,16 +272,16 @@ var be = new Set([
261
272
  "text-sm",
262
273
  "text-xl",
263
274
  "text-xs"
264
- ]), Se = new Set([
275
+ ]), xe = new Set([
265
276
  "text-center",
266
277
  "text-left",
267
278
  "text-right"
268
- ]), Ce = new Set(["lowercase", "uppercase"]), we = new Set([
279
+ ]), Se = new Set(["lowercase", "uppercase"]), Ce = new Set([
269
280
  "font-bold",
270
281
  "font-medium",
271
282
  "font-normal",
272
283
  "font-semibold"
273
- ]), Te = {
284
+ ]), we = {
274
285
  m: [
275
286
  "margin-top",
276
287
  "margin-right",
@@ -295,7 +306,7 @@ var be = new Set([
295
306
  pr: ["padding-right"],
296
307
  pb: ["padding-bottom"],
297
308
  pl: ["padding-left"]
298
- }, Ee = {
309
+ }, Te = {
299
310
  inset: [
300
311
  "top",
301
312
  "right",
@@ -310,7 +321,7 @@ var be = new Set([
310
321
  left: ["left"],
311
322
  start: ["inset-inline-start"],
312
323
  end: ["inset-inline-end"]
313
- }, De = {
324
+ }, Ee = {
314
325
  border: [
315
326
  "border-top-width",
316
327
  "border-right-width",
@@ -323,7 +334,7 @@ var be = new Set([
323
334
  "border-r": ["border-right-width"],
324
335
  "border-b": ["border-bottom-width"],
325
336
  "border-l": ["border-left-width"]
326
- }, Oe = {
337
+ }, De = {
327
338
  border: [
328
339
  "border-top-color",
329
340
  "border-right-color",
@@ -336,7 +347,7 @@ var be = new Set([
336
347
  "border-r": ["border-right-color"],
337
348
  "border-b": ["border-bottom-color"],
338
349
  "border-l": ["border-left-color"]
339
- }, ke = new Set([
350
+ }, Oe = new Set([
340
351
  "border-dashed",
341
352
  "border-dotted",
342
353
  "border-double",
@@ -344,14 +355,14 @@ var be = new Set([
344
355
  "border-none",
345
356
  "border-solid"
346
357
  ]);
347
- function I(...e) {
348
- return Ae(h(e));
358
+ function L(...e) {
359
+ return ke(ve(e));
349
360
  }
350
- function Ae(e) {
361
+ function ke(e) {
351
362
  let t = [], n = /* @__PURE__ */ new Map();
352
363
  for (let r of e.split(/\s+/)) {
353
364
  if (!r) continue;
354
- let e = je(r);
365
+ let e = Ae(r);
355
366
  if (e.size === 0) {
356
367
  let i = n.get(r);
357
368
  i !== void 0 && (t[i] = null), n.set(r, t.length), t.push({
@@ -362,7 +373,7 @@ function Ae(e) {
362
373
  }
363
374
  for (let n = t.length - 1; n >= 0; n--) {
364
375
  let r = t[n];
365
- r && Be(r.keys, e) && (t[n] = null);
376
+ r && ze(r.keys, e) && (t[n] = null);
366
377
  }
367
378
  t.push({
368
379
  token: r,
@@ -371,11 +382,11 @@ function Ae(e) {
371
382
  }
372
383
  return t.filter((e) => !!e).map((e) => e.token).join(" ");
373
384
  }
374
- function je(e) {
375
- let t = Me(e), n = t.pop() ?? e, r = n.startsWith("!"), i = Ne(r ? n.slice(1) : n), a = `${t.join(":")}|${r ? "!" : ""}`, o = Pe(i);
385
+ function Ae(e) {
386
+ let t = je(e), n = t.pop() ?? e, r = n.startsWith("!"), i = Me(r ? n.slice(1) : n), a = `${t.join(":")}|${r ? "!" : ""}`, o = Ne(i);
376
387
  return new Set(o.map((e) => `${a}${e}`));
377
388
  }
378
- function Me(e) {
389
+ function je(e) {
379
390
  let t = [], n = 0, r = 0;
380
391
  for (let i = 0; i < e.length; i++) {
381
392
  let a = e[i];
@@ -383,57 +394,57 @@ function Me(e) {
383
394
  }
384
395
  return t.push(e.slice(r)), t;
385
396
  }
386
- function Ne(e) {
397
+ function Me(e) {
387
398
  return e.startsWith("-") ? e.slice(1) : e;
388
399
  }
389
- function Pe(e) {
390
- let t = Fe(e);
391
- if (t) return [...Te[t]];
392
- let n = Ie(e);
393
- if (n) return [...Ee[n]];
394
- let r = Le(e);
395
- if (r) return [...De[r]];
396
- if (be.has(e)) return ["display"];
400
+ function Ne(e) {
401
+ let t = Pe(e);
402
+ if (t) return [...we[t]];
403
+ let n = Fe(e);
404
+ if (n) return [...Te[n]];
405
+ let r = Ie(e);
406
+ if (r) return [...Ee[r]];
407
+ if (ye.has(e)) return ["display"];
397
408
  if (e === "absolute" || e === "fixed" || e === "relative" || e === "static" || e === "sticky") return ["position"];
398
409
  if (e === "visible" || e === "invisible" || e === "collapse") return ["visibility"];
399
410
  if (e === "border-collapse") return ["border-collapse"];
400
- if (ke.has(e)) return ["border-style"];
401
- let i = Re(e);
402
- return i ? [...Oe[i]] : e === "rounded" || e.startsWith("rounded-") ? ["border-radius"] : e.startsWith("bg-") ? ["background"] : xe.has(e) ? ["font-size"] : Se.has(e) ? ["text-align"] : Ce.has(e) ? ["text-transform"] : e.startsWith("text-") ? ["color"] : e === "font-mono" ? ["font-family"] : we.has(e) ? ["font-weight"] : e.startsWith("leading-") ? ["line-height"] : e.startsWith("tracking-") ? ["letter-spacing"] : e.startsWith("w-") ? ["width"] : e.startsWith("min-w-") ? ["min-width"] : e.startsWith("max-w-") ? ["max-width"] : e.startsWith("h-") ? ["height"] : e.startsWith("min-h-") ? ["min-height"] : e.startsWith("max-h-") ? ["max-height"] : e.startsWith("translate-x-") ? ["translate-x"] : e.startsWith("translate-y-") ? ["translate-y"] : e.startsWith("scale-") ? ["scale"] : e.startsWith("rotate-") ? ["rotate"] : e === "transform" ? ["transform"] : e.startsWith("grid-cols-") ? ["grid-template-columns"] : e.startsWith("col-span-") ? ["grid-column"] : e.startsWith("columns-") ? ["columns"] : e === "flex-col" || e === "flex-row" ? ["flex-direction"] : e === "flex-wrap" ? ["flex-wrap"] : e.startsWith("flex-") ? ["flex"] : e === "shrink" || e.startsWith("shrink-") ? ["flex-shrink"] : e === "grow" || e.startsWith("grow-") ? ["flex-grow"] : e.startsWith("items-") ? ["align-items"] : e.startsWith("justify-") ? ["justify-content"] : e.startsWith("gap-") ? ["gap"] : e.startsWith("space-y-") ? ["space-y"] : e.startsWith("overflow-y-") ? ["overflow-y"] : e.startsWith("overflow-x-") ? ["overflow-x"] : e.startsWith("overflow-") ? ["overflow-x", "overflow-y"] : e.startsWith("object-") ? ["object-fit"] : e.startsWith("aspect-") ? ["aspect-ratio"] : e.startsWith("cursor-") ? ["cursor"] : e.startsWith("opacity-") ? ["opacity"] : e.startsWith("shadow-") ? ["box-shadow"] : e === "ring" || /^ring-\d/.test(e) ? ["ring-width"] : e.startsWith("ring-offset-bg-") ? ["ring-offset-color"] : e.startsWith("ring-offset-") ? ["ring-offset-width"] : e.startsWith("ring-") ? ["ring-color"] : e.startsWith("outline-offset-") ? ["outline-offset"] : /^outline-\d/.test(e) ? ["outline-width"] : e === "outline" || e === "outline-none" ? ["outline-style"] : e.startsWith("outline-") ? ["outline-color"] : e.startsWith("transition-") || e === "transition" ? ["transition-property"] : e.startsWith("duration-") ? ["transition-duration"] : e.startsWith("ease-") ? ["transition-timing-function"] : e.startsWith("animate-") ? ["animation"] : e.startsWith("z-") ? ["z-index"] : e.startsWith("whitespace-") ? ["white-space"] : e.startsWith("break-inside-") ? ["break-inside"] : e.startsWith("break-") ? ["word-break"] : e.startsWith("line-clamp-") ? ["line-clamp"] : e === "list-inside" || e === "list-outside" ? ["list-style-position"] : e.startsWith("list-") ? ["list-style-type"] : e.startsWith("resize") ? ["resize"] : e.startsWith("select-") ? ["user-select"] : e.startsWith("pointer-events-") ? ["pointer-events"] : e.startsWith("appearance-") ? ["appearance"] : e.startsWith("accent-") ? ["accent-color"] : [];
411
+ if (Oe.has(e)) return ["border-style"];
412
+ let i = Le(e);
413
+ return i ? [...De[i]] : e === "rounded" || e.startsWith("rounded-") ? ["border-radius"] : e.startsWith("bg-") ? ["background"] : be.has(e) ? ["font-size"] : xe.has(e) ? ["text-align"] : Se.has(e) ? ["text-transform"] : e.startsWith("text-") ? ["color"] : e === "font-mono" ? ["font-family"] : Ce.has(e) ? ["font-weight"] : e.startsWith("leading-") ? ["line-height"] : e.startsWith("tracking-") ? ["letter-spacing"] : e.startsWith("w-") ? ["width"] : e.startsWith("min-w-") ? ["min-width"] : e.startsWith("max-w-") ? ["max-width"] : e.startsWith("h-") ? ["height"] : e.startsWith("min-h-") ? ["min-height"] : e.startsWith("max-h-") ? ["max-height"] : e.startsWith("translate-x-") ? ["translate-x"] : e.startsWith("translate-y-") ? ["translate-y"] : e.startsWith("scale-") ? ["scale"] : e.startsWith("rotate-") ? ["rotate"] : e === "transform" ? ["transform"] : e.startsWith("grid-cols-") ? ["grid-template-columns"] : e.startsWith("col-span-") ? ["grid-column"] : e.startsWith("columns-") ? ["columns"] : e === "flex-col" || e === "flex-row" ? ["flex-direction"] : e === "flex-wrap" ? ["flex-wrap"] : e.startsWith("flex-") ? ["flex"] : e === "shrink" || e.startsWith("shrink-") ? ["flex-shrink"] : e === "grow" || e.startsWith("grow-") ? ["flex-grow"] : e.startsWith("items-") ? ["align-items"] : e.startsWith("justify-") ? ["justify-content"] : e.startsWith("gap-") ? ["gap"] : e.startsWith("space-y-") ? ["space-y"] : e.startsWith("overflow-y-") ? ["overflow-y"] : e.startsWith("overflow-x-") ? ["overflow-x"] : e.startsWith("overflow-") ? ["overflow-x", "overflow-y"] : e.startsWith("object-") ? ["object-fit"] : e.startsWith("aspect-") ? ["aspect-ratio"] : e.startsWith("cursor-") ? ["cursor"] : e.startsWith("opacity-") ? ["opacity"] : e.startsWith("shadow-") ? ["box-shadow"] : e === "ring" || /^ring-\d/.test(e) ? ["ring-width"] : e.startsWith("ring-offset-bg-") ? ["ring-offset-color"] : e.startsWith("ring-offset-") ? ["ring-offset-width"] : e.startsWith("ring-") ? ["ring-color"] : e.startsWith("outline-offset-") ? ["outline-offset"] : /^outline-\d/.test(e) ? ["outline-width"] : e === "outline" || e === "outline-none" ? ["outline-style"] : e.startsWith("outline-") ? ["outline-color"] : e.startsWith("transition-") || e === "transition" ? ["transition-property"] : e.startsWith("duration-") ? ["transition-duration"] : e.startsWith("ease-") ? ["transition-timing-function"] : e.startsWith("animate-") ? ["animation"] : e.startsWith("z-") ? ["z-index"] : e.startsWith("whitespace-") ? ["white-space"] : e.startsWith("break-inside-") ? ["break-inside"] : e.startsWith("break-") ? ["word-break"] : e.startsWith("line-clamp-") ? ["line-clamp"] : e === "list-inside" || e === "list-outside" ? ["list-style-position"] : e.startsWith("list-") ? ["list-style-type"] : e.startsWith("resize") ? ["resize"] : e.startsWith("select-") ? ["user-select"] : e.startsWith("pointer-events-") ? ["pointer-events"] : e.startsWith("appearance-") ? ["appearance"] : e.startsWith("accent-") ? ["accent-color"] : [];
414
+ }
415
+ function Pe(e) {
416
+ return Re(e, we);
403
417
  }
404
418
  function Fe(e) {
405
- return ze(e, Te);
419
+ return Re(e, Te);
406
420
  }
407
421
  function Ie(e) {
408
- return ze(e, Ee);
409
- }
410
- function Le(e) {
411
422
  return e === "border" ? "border" : e.match(/^(border(?:-[xytrbl])?)(?=$|-(?:0|2|4|8|\[))/)?.[1];
412
423
  }
413
- function Re(e) {
424
+ function Le(e) {
414
425
  let t = e.match(/^(border-[xytrbl])-./);
415
426
  return t ? t[1] : e.startsWith("border-") ? "border" : void 0;
416
427
  }
417
- function ze(e, t) {
428
+ function Re(e, t) {
418
429
  return Object.keys(t).sort((e, t) => String(t).length - String(e).length).find((t) => {
419
430
  let n = String(t);
420
431
  return e === n || e.startsWith(`${n}-`);
421
432
  });
422
433
  }
423
- function Be(e, t) {
434
+ function ze(e, t) {
424
435
  for (let n of e) if (!t.has(n)) return !1;
425
436
  return !0;
426
437
  }
427
438
  //#endregion
428
439
  //#region src/components/charts/DonutChart.tsx
429
- var Ve = {
440
+ var Be = {
430
441
  "text-blue": "var(--blue)",
431
442
  "text-green": "var(--green)",
432
443
  "text-purple": "var(--purple)",
433
444
  "text-yellow": "var(--yellow)",
434
445
  "text-red": "var(--red)"
435
446
  };
436
- function He(e, t) {
447
+ function Ve(e, t) {
437
448
  let n = e.reduce((e, t) => e + t.value, 0), r = 0;
438
449
  return e.map((e) => {
439
450
  let i = n > 0 ? e.value / n * t : 0, a = t - i, o = r / t * 360 - 90, s = o + i / t * 180, c = n > 0 ? e.value / n * 100 : 0;
@@ -447,8 +458,8 @@ function He(e, t) {
447
458
  };
448
459
  });
449
460
  }
450
- function Ue({ segments: e, size: t = 180 }) {
451
- let [n, r] = d(null), i = e.reduce((e, t) => e + t.value, 0), a = (t - 28) / 2, o = He(e, 2 * Math.PI * a), s = t + 12, c = s / 2;
461
+ function He({ segments: e, size: t = 180 }) {
462
+ let [n, r] = d(null), i = e.reduce((e, t) => e + t.value, 0), a = (t - 28) / 2, o = Ve(e, 2 * Math.PI * a), s = t + 12, c = s / 2;
452
463
  return /* @__PURE__ */ m("div", {
453
464
  className: "flex flex-col items-center gap-4",
454
465
  children: [/* @__PURE__ */ m("div", {
@@ -480,7 +491,7 @@ function Ue({ segments: e, size: t = 180 }) {
480
491
  cy: c,
481
492
  r: a,
482
493
  fill: "none",
483
- stroke: Ve[e.segment.color] ?? "var(--accent)",
494
+ stroke: Be[e.segment.color] ?? "var(--accent)",
484
495
  strokeWidth: r ? 32 : 28,
485
496
  strokeDasharray: `${e.segmentLength} ${e.dashOffset}`,
486
497
  strokeLinecap: "butt",
@@ -513,7 +524,7 @@ function Ue({ segments: e, size: t = 180 }) {
513
524
  })
514
525
  ]
515
526
  }), n !== null && (() => {
516
- let e = o[n], t = e.midAngle * Math.PI / 180, r = a + 28 / 2 + 20, i = c + Math.cos(t) * r, s = c + Math.sin(t) * r, l = Ve[e.segment.color] ?? "var(--accent)";
527
+ let e = o[n], t = e.midAngle * Math.PI / 180, r = a + 28 / 2 + 20, i = c + Math.cos(t) * r, s = c + Math.sin(t) * r, l = Be[e.segment.color] ?? "var(--accent)";
517
528
  return /* @__PURE__ */ p("div", {
518
529
  className: "bg-bg-tertiary border-border pointer-events-none absolute z-10 rounded-md border px-2.5 py-1.5 shadow-lg",
519
530
  style: {
@@ -554,11 +565,11 @@ function Ue({ segments: e, size: t = 180 }) {
554
565
  type: "button",
555
566
  onMouseEnter: () => r(t),
556
567
  onMouseLeave: () => r(null),
557
- className: I("flex cursor-pointer items-center gap-1.5 transition-opacity duration-[100ms]", n !== null && n !== t && "opacity-50"),
568
+ className: L("flex cursor-pointer items-center gap-1.5 transition-opacity duration-[100ms]", n !== null && n !== t && "opacity-50"),
558
569
  children: [
559
570
  /* @__PURE__ */ p("span", {
560
571
  className: "h-2 w-2 rounded-full",
561
- style: { backgroundColor: Ve[e.color] ?? "var(--accent)" }
572
+ style: { backgroundColor: Be[e.color] ?? "var(--accent)" }
562
573
  }),
563
574
  /* @__PURE__ */ p("span", {
564
575
  className: "text-text-secondary text-xs",
@@ -575,8 +586,8 @@ function Ue({ segments: e, size: t = 180 }) {
575
586
  }
576
587
  //#endregion
577
588
  //#region src/components/charts/RadarChart.tsx
578
- var We = 4;
579
- function Ge({ data: e, maxValue: t, size: n = 240 }) {
589
+ var Ue = 4;
590
+ function We({ data: e, maxValue: t, size: n = 240 }) {
580
591
  let [r, i] = d(null), a = t ?? Math.max(...e.map((e) => e.value)), o = n / 2, s = (n - 60) / 2, c = 2 * Math.PI / e.length;
581
592
  function l(e, t) {
582
593
  return [o + t * Math.cos(e - Math.PI / 2), o + t * Math.sin(e - Math.PI / 2)];
@@ -593,8 +604,8 @@ function Ge({ data: e, maxValue: t, size: n = 240 }) {
593
604
  viewBox: `0 0 ${n} ${n}`,
594
605
  className: "select-none",
595
606
  children: [
596
- Array.from({ length: We }, (t, n) => {
597
- let r = (n + 1) / We * s;
607
+ Array.from({ length: Ue }, (t, n) => {
608
+ let r = (n + 1) / Ue * s;
598
609
  return /* @__PURE__ */ p("polygon", {
599
610
  points: e.map((e, t) => l(t * c, r)).map((e) => `${e[0]},${e[1]}`).join(" "),
600
611
  fill: "none",
@@ -671,7 +682,7 @@ function Ge({ data: e, maxValue: t, size: n = 240 }) {
671
682
  children: [
672
683
  /* @__PURE__ */ p("span", { className: "bg-accent h-2 w-2 shrink-0 rounded-full" }),
673
684
  /* @__PURE__ */ p("span", {
674
- className: I("text-text-secondary text-xs whitespace-nowrap"),
685
+ className: L("text-text-secondary text-xs whitespace-nowrap"),
675
686
  children: e[r].label
676
687
  }),
677
688
  /* @__PURE__ */ p("span", {
@@ -685,7 +696,7 @@ function Ge({ data: e, maxValue: t, size: n = 240 }) {
685
696
  }
686
697
  //#endregion
687
698
  //#region src/components/charts/RadialBarChart.tsx
688
- var Ke = {
699
+ var Ge = {
689
700
  "text-blue": "var(--blue)",
690
701
  "text-green": "var(--green)",
691
702
  "text-purple": "var(--purple)",
@@ -693,7 +704,7 @@ var Ke = {
693
704
  "text-red": "var(--red)",
694
705
  "text-accent": "var(--accent)"
695
706
  };
696
- function qe({ segments: e, size: t = 200 }) {
707
+ function Ke({ segments: e, size: t = 200 }) {
697
708
  let [n, r] = d(null), [i, a] = d({
698
709
  x: 0,
699
710
  y: 0
@@ -719,7 +730,7 @@ function qe({ segments: e, size: t = 200 }) {
719
730
  children: [e.map((e, t) => {
720
731
  let i = c - t * 20;
721
732
  if (i <= 0) return null;
722
- let a = 2 * Math.PI * i, o = a * Math.min(e.value / e.max, 1), l = a - o, u = Ke[e.color] ?? "var(--accent)", d = n === t;
733
+ let a = 2 * Math.PI * i, o = a * Math.min(e.value / e.max, 1), l = a - o, u = Ge[e.color] ?? "var(--accent)", d = n === t;
723
734
  return /* @__PURE__ */ m("g", {
724
735
  onMouseEnter: () => r(t),
725
736
  onMouseLeave: () => r(null),
@@ -760,7 +771,7 @@ function qe({ segments: e, size: t = 200 }) {
760
771
  });
761
772
  })()]
762
773
  }), n !== null && (() => {
763
- let t = e[n], r = Math.round(t.value / t.max * 100), a = Ke[t.color] ?? "var(--accent)";
774
+ let t = e[n], r = Math.round(t.value / t.max * 100), a = Ge[t.color] ?? "var(--accent)";
764
775
  return /* @__PURE__ */ p("div", {
765
776
  className: "bg-bg-tertiary border-border pointer-events-none absolute z-10 rounded-md border px-2.5 py-1.5 shadow-lg",
766
777
  style: {
@@ -805,11 +816,11 @@ function qe({ segments: e, size: t = 200 }) {
805
816
  type: "button",
806
817
  onMouseEnter: () => r(t),
807
818
  onMouseLeave: () => r(null),
808
- className: I("flex cursor-pointer items-center gap-1.5 transition-opacity duration-[100ms]", n !== null && n !== t && "opacity-50"),
819
+ className: L("flex cursor-pointer items-center gap-1.5 transition-opacity duration-[100ms]", n !== null && n !== t && "opacity-50"),
809
820
  children: [
810
821
  /* @__PURE__ */ p("span", {
811
822
  className: "h-2 w-2 rounded-full",
812
- style: { backgroundColor: Ke[e.color] ?? "var(--accent)" }
823
+ style: { backgroundColor: Ge[e.color] ?? "var(--accent)" }
813
824
  }),
814
825
  /* @__PURE__ */ p("span", {
815
826
  className: "text-text-secondary text-xs",
@@ -827,7 +838,7 @@ function qe({ segments: e, size: t = 200 }) {
827
838
  }
828
839
  //#endregion
829
840
  //#region src/components/charts/SparkLine.tsx
830
- function Je({ data: e, width: t = 60, height: n = 20, color: r }) {
841
+ function qe({ data: e, width: t = 60, height: n = 20, color: r }) {
831
842
  if (e.length < 2) return null;
832
843
  let i = Math.min(...e), a = Math.max(...e) - i || 1, o = e.map((r, o) => `${o / (e.length - 1) * t},${n - (r - i) / a * (n - 2) - 1}`).join(" ");
833
844
  return /* @__PURE__ */ p("svg", {
@@ -847,7 +858,7 @@ function Je({ data: e, width: t = 60, height: n = 20, color: r }) {
847
858
  }
848
859
  //#endregion
849
860
  //#region src/components/charts/VerticalBarChart.tsx
850
- var Ye = [
861
+ var Je = [
851
862
  1,
852
863
  .85,
853
864
  .7,
@@ -855,33 +866,33 @@ var Ye = [
855
866
  .45,
856
867
  .35,
857
868
  .25
858
- ], L = {
869
+ ], R = {
859
870
  top: 20,
860
871
  right: 8,
861
872
  bottom: 24,
862
873
  left: 40
863
874
  };
864
- function Xe(e) {
875
+ function Ye(e) {
865
876
  return e >= 1e6 ? `${(e / 1e6).toFixed(1)}M` : e >= 1e3 ? `${(e / 1e3).toFixed(1)}k` : String(e);
866
877
  }
867
- function Ze({ data: e, height: t = 180 }) {
868
- let [n, r] = d(null), i = 600 - L.left - L.right, a = t - L.top - L.bottom, o = Math.max(...e.map((e) => e.value), 1), s = Math.max(4, (i - 6 * (e.length - 1)) / e.length);
878
+ function Xe({ data: e, height: t = 180 }) {
879
+ let [n, r] = d(null), i = 600 - R.left - R.right, a = t - R.top - R.bottom, o = Math.max(...e.map((e) => e.value), 1), s = Math.max(4, (i - 6 * (e.length - 1)) / e.length);
869
880
  return /* @__PURE__ */ m("svg", {
870
881
  width: "100%",
871
882
  viewBox: `0 0 600 ${t}`,
872
883
  className: "select-none",
873
884
  children: [
874
885
  /* @__PURE__ */ p("text", {
875
- x: L.left - 6,
876
- y: L.top + 4,
886
+ x: R.left - 6,
887
+ y: R.top + 4,
877
888
  textAnchor: "end",
878
889
  fill: "var(--text-tertiary)",
879
890
  fontSize: 10,
880
- children: Xe(o)
891
+ children: Ye(o)
881
892
  }),
882
893
  /* @__PURE__ */ p("text", {
883
- x: L.left - 6,
884
- y: L.top + a,
894
+ x: R.left - 6,
895
+ y: R.top + a,
885
896
  textAnchor: "end",
886
897
  dominantBaseline: "central",
887
898
  fill: "var(--text-tertiary)",
@@ -889,32 +900,32 @@ function Ze({ data: e, height: t = 180 }) {
889
900
  children: "0"
890
901
  }),
891
902
  /* @__PURE__ */ p("line", {
892
- x1: L.left,
893
- y1: L.top + a,
894
- x2: L.left + i,
895
- y2: L.top + a,
903
+ x1: R.left,
904
+ y1: R.top + a,
905
+ x2: R.left + i,
906
+ y2: R.top + a,
896
907
  stroke: "var(--border)",
897
908
  strokeWidth: 1
898
909
  }),
899
910
  /* @__PURE__ */ p("line", {
900
- x1: L.left,
901
- y1: L.top + a / 2,
902
- x2: L.left + i,
903
- y2: L.top + a / 2,
911
+ x1: R.left,
912
+ y1: R.top + a / 2,
913
+ x2: R.left + i,
914
+ y2: R.top + a / 2,
904
915
  stroke: "var(--border)",
905
916
  strokeWidth: 1,
906
917
  strokeDasharray: "3 3",
907
918
  opacity: .5
908
919
  }),
909
920
  e.map((e, i) => {
910
- let c = L.left + i * (s + 6), l = e.value / o * a, u = L.top + a - l, d = n === i;
921
+ let c = R.left + i * (s + 6), l = e.value / o * a, u = R.top + a - l, d = n === i;
911
922
  return /* @__PURE__ */ m("g", {
912
923
  onMouseEnter: () => r(i),
913
924
  onMouseLeave: () => r(null),
914
925
  children: [
915
926
  /* @__PURE__ */ p("rect", {
916
927
  x: c,
917
- y: L.top,
928
+ y: R.top,
918
929
  width: s,
919
930
  height: a,
920
931
  fill: "transparent"
@@ -926,7 +937,7 @@ function Ze({ data: e, height: t = 180 }) {
926
937
  height: l,
927
938
  fill: e.color ?? "var(--accent)",
928
939
  rx: 6,
929
- opacity: d ? 1 : Ye[i % Ye.length],
940
+ opacity: d ? 1 : Je[i % Je.length],
930
941
  style: { transition: "all 150ms" }
931
942
  }),
932
943
  /* @__PURE__ */ p("text", {
@@ -954,7 +965,7 @@ function Ze({ data: e, height: t = 180 }) {
954
965
  }
955
966
  //#endregion
956
967
  //#region src/components/app-shell/navigation.ts
957
- function R(e, t) {
968
+ function Ze(e, t) {
958
969
  if (!t) return !1;
959
970
  if (e.end ?? e.path === "/") return t === e.path;
960
971
  let n = e.path.endsWith("/") ? e.path : `${e.path}/`;
@@ -975,17 +986,17 @@ function Qe(e, t) {
975
986
  //#region src/components/app-shell/BottomNav.tsx
976
987
  function $e({ items: e, currentPath: t, onNavigate: n, className: r }) {
977
988
  return e.length === 0 ? null : /* @__PURE__ */ p("nav", {
978
- className: I("bg-bg-secondary border-border font-navigation fixed right-0 bottom-0 left-0 z-30 border-t md:hidden", r),
989
+ className: L("bg-bg-secondary border-border font-navigation fixed right-0 bottom-0 left-0 z-30 border-t md:hidden", r),
979
990
  style: { height: "var(--bottomnav-height)" },
980
991
  children: /* @__PURE__ */ p("ul", {
981
992
  className: "flex h-full items-center justify-around",
982
993
  children: e.map((e) => {
983
- let r = R(e, t);
994
+ let r = Ze(e, t);
984
995
  return /* @__PURE__ */ p("li", { children: /* @__PURE__ */ m("a", {
985
996
  href: e.path,
986
997
  onClick: (t) => z(t, e.path, n),
987
998
  "aria-current": r ? "page" : void 0,
988
- className: I("font-navigation flex h-full w-14 flex-col items-center justify-center gap-0.5", "cursor-pointer transition-colors duration-[100ms]", r ? "text-accent" : "text-text-tertiary"),
999
+ className: L("font-navigation flex h-full w-14 flex-col items-center justify-center gap-0.5", "cursor-pointer transition-colors duration-[100ms]", r ? "text-accent" : "text-text-tertiary"),
989
1000
  children: [/* @__PURE__ */ p(e.icon, { className: "h-5 w-5" }), /* @__PURE__ */ p("span", {
990
1001
  className: "text-2xs",
991
1002
  children: e.shortLabel ?? e.label
@@ -1002,18 +1013,19 @@ function B(e, t) {
1002
1013
  let n = u(null);
1003
1014
  o(() => {
1004
1015
  if (!t || !e.current) return;
1005
- n.current = document.activeElement;
1006
- let r = e.current.querySelectorAll(et);
1007
- r.length > 0 && r[0].focus();
1008
- let i = (t) => {
1016
+ let r = e.current.ownerDocument;
1017
+ n.current = r.activeElement;
1018
+ let i = e.current.querySelectorAll(et);
1019
+ i.length > 0 && i[0].focus();
1020
+ let a = (t) => {
1009
1021
  if (t.key !== "Tab" || !e.current) return;
1010
1022
  let n = e.current.querySelectorAll(et);
1011
1023
  if (n.length === 0) return;
1012
- let r = n[0], i = n[n.length - 1];
1013
- t.shiftKey ? document.activeElement === r && (t.preventDefault(), i.focus()) : document.activeElement === i && (t.preventDefault(), r.focus());
1024
+ let i = n[0], a = n[n.length - 1];
1025
+ t.shiftKey ? r.activeElement === i && (t.preventDefault(), a.focus()) : r.activeElement === a && (t.preventDefault(), i.focus());
1014
1026
  };
1015
- return document.addEventListener("keydown", i), () => {
1016
- document.removeEventListener("keydown", i), n.current instanceof HTMLElement && n.current.focus();
1027
+ return r.addEventListener("keydown", a), () => {
1028
+ r.removeEventListener("keydown", a), n.current instanceof HTMLElement && n.current.focus();
1017
1029
  };
1018
1030
  }, [t, e]);
1019
1031
  }
@@ -1084,7 +1096,7 @@ function ot({ items: e, eventName: t = tt, shortcut: n = nt, placeholder: r = "S
1084
1096
  children: [/* @__PURE__ */ m("div", {
1085
1097
  className: "border-border flex items-center gap-3 border-b px-4",
1086
1098
  children: [
1087
- /* @__PURE__ */ p(M, { className: "text-text-tertiary h-4 w-4 shrink-0" }),
1099
+ /* @__PURE__ */ p(N, { className: "text-text-tertiary h-4 w-4 shrink-0" }),
1088
1100
  /* @__PURE__ */ p("input", {
1089
1101
  ref: b,
1090
1102
  type: "text",
@@ -1117,7 +1129,7 @@ function ot({ items: e, eventName: t = tt, shortcut: n = nt, placeholder: r = "S
1117
1129
  role: "option",
1118
1130
  "aria-selected": t === v,
1119
1131
  onClick: () => E(e),
1120
- className: I("flex h-9 w-full cursor-pointer items-center gap-3 rounded-md px-3 text-left", "transition-colors duration-[100ms]", t === v ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
1132
+ className: L("flex h-9 w-full cursor-pointer items-center gap-3 rounded-md px-3 text-left", "transition-colors duration-[100ms]", t === v ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
1121
1133
  children: [/* @__PURE__ */ p("span", {
1122
1134
  className: "shrink-0 opacity-60",
1123
1135
  children: /* @__PURE__ */ p(e.icon, { className: "h-4 w-4" })
@@ -1149,9 +1161,9 @@ function ct({ open: e, onClose: t, items: n, brand: r, currentPath: i, onNavigat
1149
1161
  document.body.style.overflow = "hidden";
1150
1162
  let n = (e) => {
1151
1163
  e.key === "Escape" && t();
1152
- };
1153
- return document.addEventListener("keydown", n), () => {
1154
- document.body.style.overflow = "", document.removeEventListener("keydown", n);
1164
+ }, r = c.current?.ownerDocument ?? document;
1165
+ return r.addEventListener("keydown", n), () => {
1166
+ document.body.style.overflow = "", r.removeEventListener("keydown", n);
1155
1167
  };
1156
1168
  }, [e, t]), e ? /* @__PURE__ */ m("div", {
1157
1169
  className: "fixed inset-0 z-40 md:hidden",
@@ -1160,26 +1172,26 @@ function ct({ open: e, onClose: t, items: n, brand: r, currentPath: i, onNavigat
1160
1172
  onClick: t
1161
1173
  }), /* @__PURE__ */ m("div", {
1162
1174
  ref: c,
1163
- className: I("bg-bg-sidebar border-border animate-slide-in-left fixed inset-y-0 left-0 z-50 flex w-64 flex-col border-r", s),
1175
+ className: L("bg-bg-sidebar border-border animate-slide-in-left fixed inset-y-0 left-0 z-50 flex w-64 flex-col border-r", s),
1164
1176
  children: [/* @__PURE__ */ m("div", {
1165
1177
  className: "border-border flex h-11 items-center justify-between border-b px-4",
1166
1178
  children: [/* @__PURE__ */ p(st, { brand: r }), /* @__PURE__ */ p("button", {
1167
1179
  onClick: t,
1168
1180
  className: "text-text-tertiary hover:text-text-primary flex h-7 w-7 cursor-pointer items-center justify-center rounded",
1169
1181
  "aria-label": "Close menu",
1170
- children: /* @__PURE__ */ p(N, { className: "h-4 w-4" })
1182
+ children: /* @__PURE__ */ p(P, { className: "h-4 w-4" })
1171
1183
  })]
1172
1184
  }), /* @__PURE__ */ p("nav", {
1173
1185
  className: "min-h-0 flex-1 overflow-y-auto overscroll-contain px-2 py-2",
1174
1186
  children: /* @__PURE__ */ p("ul", {
1175
1187
  className: "space-y-0.5",
1176
1188
  children: n.map((e) => {
1177
- let n = R(e, i);
1189
+ let n = Ze(e, i);
1178
1190
  return /* @__PURE__ */ p("li", { children: /* @__PURE__ */ m("a", {
1179
1191
  href: e.path,
1180
1192
  onClick: (n) => z(n, e.path, a, t),
1181
1193
  "aria-current": n ? "page" : void 0,
1182
- className: I("flex h-10 items-center gap-3 rounded-md px-3", "cursor-pointer transition-colors duration-[100ms]", n ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
1194
+ className: L("flex h-10 items-center gap-3 rounded-md px-3", "cursor-pointer transition-colors duration-[100ms]", n ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
1183
1195
  children: [/* @__PURE__ */ p(e.icon, { className: "h-4 w-4" }), /* @__PURE__ */ p("span", {
1184
1196
  className: "text-sm",
1185
1197
  children: e.label
@@ -1197,7 +1209,7 @@ var lt = [
1197
1209
  {
1198
1210
  value: "dark",
1199
1211
  label: "Dark",
1200
- icon: se,
1212
+ icon: M,
1201
1213
  preview: {
1202
1214
  bg: "#0d0f12",
1203
1215
  fg: "#2a2e38"
@@ -1206,7 +1218,7 @@ var lt = [
1206
1218
  {
1207
1219
  value: "light",
1208
1220
  label: "Light",
1209
- icon: fe,
1221
+ icon: ue,
1210
1222
  preview: {
1211
1223
  bg: "#f5f5f5",
1212
1224
  fg: "#d4d4d8"
@@ -1215,7 +1227,7 @@ var lt = [
1215
1227
  {
1216
1228
  value: "monokai",
1217
1229
  label: "Monokai",
1218
- icon: ce,
1230
+ icon: oe,
1219
1231
  preview: {
1220
1232
  bg: "#272822",
1221
1233
  fg: "#3E3D32"
@@ -1224,7 +1236,7 @@ var lt = [
1224
1236
  {
1225
1237
  value: "solarized",
1226
1238
  label: "Solarized",
1227
- icon: oe,
1239
+ icon: j,
1228
1240
  preview: {
1229
1241
  bg: "#002B36",
1230
1242
  fg: "#0A3F4C"
@@ -1233,7 +1245,7 @@ var lt = [
1233
1245
  {
1234
1246
  value: "cyberBrutalDark",
1235
1247
  label: "Cyber Brutal Dark",
1236
- icon: he,
1248
+ icon: pe,
1237
1249
  preview: {
1238
1250
  bg: "#050505",
1239
1251
  fg: "#18181b"
@@ -1242,7 +1254,7 @@ var lt = [
1242
1254
  {
1243
1255
  value: "cyberBrutalLight",
1244
1256
  label: "Cyber Brutal Light",
1245
- icon: he,
1257
+ icon: pe,
1246
1258
  preview: {
1247
1259
  bg: "#e4e4e7",
1248
1260
  fg: "#d4d4d8"
@@ -1251,7 +1263,7 @@ var lt = [
1251
1263
  {
1252
1264
  value: "hashiTheme",
1253
1265
  label: "HashiTheme",
1254
- icon: x,
1266
+ icon: b,
1255
1267
  preview: {
1256
1268
  bg: "#ffffff",
1257
1269
  fg: "#364153"
@@ -1265,7 +1277,7 @@ var lt = [
1265
1277
  function V(e) {
1266
1278
  return ut.has(e);
1267
1279
  }
1268
- var dt = lt.filter((e) => V(e.value)), ft = lt.filter((e) => !V(e.value)), H = {
1280
+ var dt = lt.filter((e) => V(e.value)), ft = lt.filter((e) => !V(e.value)), pt = {
1269
1281
  uiFont: "inter",
1270
1282
  headingFont: "inter",
1271
1283
  proseFont: "inter",
@@ -1280,7 +1292,7 @@ var dt = lt.filter((e) => V(e.value)), ft = lt.filter((e) => !V(e.value)), H = {
1280
1292
  tracking: .05,
1281
1293
  lineHeight: 1.45,
1282
1294
  density: .25
1283
- }, pt = {
1295
+ }, mt = {
1284
1296
  uiFont: "jetbrains-mono",
1285
1297
  headingFont: "jetbrains-mono",
1286
1298
  proseFont: "jetbrains-mono",
@@ -1295,13 +1307,13 @@ var dt = lt.filter((e) => V(e.value)), ft = lt.filter((e) => !V(e.value)), H = {
1295
1307
  tracking: .2,
1296
1308
  lineHeight: 1.4,
1297
1309
  density: .22
1298
- }, U = {
1299
- dark: H,
1300
- light: H,
1301
- monokai: H,
1302
- solarized: H,
1303
- cyberBrutalDark: pt,
1304
- cyberBrutalLight: pt,
1310
+ }, H = {
1311
+ dark: pt,
1312
+ light: pt,
1313
+ monokai: pt,
1314
+ solarized: pt,
1315
+ cyberBrutalDark: mt,
1316
+ cyberBrutalLight: mt,
1305
1317
  hashiTheme: {
1306
1318
  uiFont: "inter",
1307
1319
  headingFont: "archivo-expanded",
@@ -1318,7 +1330,7 @@ var dt = lt.filter((e) => V(e.value)), ft = lt.filter((e) => !V(e.value)), H = {
1318
1330
  lineHeight: 1.45,
1319
1331
  density: .25
1320
1332
  }
1321
- }, mt = [
1333
+ }, U = [
1322
1334
  {
1323
1335
  value: "archivo-expanded",
1324
1336
  label: "Archivo Expanded"
@@ -1375,28 +1387,30 @@ var dt = lt.filter((e) => V(e.value)), ft = lt.filter((e) => !V(e.value)), H = {
1375
1387
  ];
1376
1388
  //#endregion
1377
1389
  //#region src/hooks/useDismiss.ts
1378
- function W(e, t, n, r) {
1390
+ function W(e, t, n, r, i) {
1391
+ let a = i?.outsideClick ?? !0;
1379
1392
  o(() => {
1380
1393
  if (!e) return;
1381
1394
  let i = (e) => {
1382
1395
  let i = e.target;
1383
1396
  r?.some((e) => e.current?.contains(i)) || n.every((e) => e.current && !e.current.contains(i)) && t();
1384
- }, a = (e) => {
1397
+ }, o = (e) => {
1385
1398
  e.key === "Escape" && t();
1386
1399
  };
1387
- return document.addEventListener("mousedown", i), document.addEventListener("keydown", a), () => {
1388
- document.removeEventListener("mousedown", i), document.removeEventListener("keydown", a);
1400
+ return a && document.addEventListener("mousedown", i), document.addEventListener("keydown", o), () => {
1401
+ a && document.removeEventListener("mousedown", i), document.removeEventListener("keydown", o);
1389
1402
  };
1390
1403
  }, [
1391
1404
  e,
1392
1405
  t,
1393
1406
  n,
1394
- r
1407
+ r,
1408
+ a
1395
1409
  ]);
1396
1410
  }
1397
1411
  //#endregion
1398
1412
  //#region src/providers/SettingsContext.ts
1399
- var G = n({
1413
+ var gt = n({
1400
1414
  fontSize: 15,
1401
1415
  setFontSize: () => {},
1402
1416
  accentColor: "purple",
@@ -1447,44 +1461,44 @@ var G = n({
1447
1461
  });
1448
1462
  //#endregion
1449
1463
  //#region src/hooks/useSettings.ts
1450
- function K() {
1451
- return a(G);
1464
+ function G() {
1465
+ return a(gt);
1452
1466
  }
1453
1467
  //#endregion
1454
1468
  //#region src/components/ui/Avatar.tsx
1455
- var gt = {
1469
+ var _t = {
1456
1470
  xs: "w-5 h-5 text-2xs",
1457
1471
  sm: "w-7 h-7 text-2xs",
1458
1472
  md: "w-10 h-10 text-xs",
1459
1473
  lg: "w-16 h-16 text-lg"
1460
1474
  };
1461
- function _t(e) {
1475
+ function vt(e) {
1462
1476
  return e.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2);
1463
1477
  }
1464
- function vt(e) {
1478
+ function yt(e) {
1465
1479
  let t = 0;
1466
1480
  for (let n = 0; n < e.length; n++) t = e.charCodeAt(n) + ((t << 5) - t);
1467
1481
  return `hsl(${Math.abs(t) % 360}, 50%, 40%)`;
1468
1482
  }
1469
- function q({ name: e, src: t, size: n = "md", className: r }) {
1483
+ function K({ name: e, src: t, size: n = "md", className: r }) {
1470
1484
  return /* @__PURE__ */ p("div", {
1471
- className: I("text-text-on-avatar flex shrink-0 items-center justify-center rounded-full font-semibold", gt[n], r),
1472
- style: { backgroundColor: t ? void 0 : vt(e) },
1485
+ className: L("text-text-on-avatar flex shrink-0 items-center justify-center rounded-full font-semibold", _t[n], r),
1486
+ style: { backgroundColor: t ? void 0 : yt(e) },
1473
1487
  "aria-label": e,
1474
1488
  children: t ? /* @__PURE__ */ p("img", {
1475
1489
  src: t,
1476
1490
  alt: e,
1477
1491
  className: "h-full w-full rounded-full object-cover"
1478
- }) : _t(e)
1492
+ }) : vt(e)
1479
1493
  });
1480
1494
  }
1481
1495
  //#endregion
1482
1496
  //#region src/components/ui/Toast.tsx
1483
- var yt = n({ toast: () => {} });
1484
- function bt() {
1485
- return a(yt);
1497
+ var bt = n({ toast: () => {} });
1498
+ function xt() {
1499
+ return a(bt);
1486
1500
  }
1487
- function xt({ children: e }) {
1501
+ function St({ children: e }) {
1488
1502
  let [t, n] = d([]), r = u(0), a = i((e, t, i = 4e3) => {
1489
1503
  let a = r.current++;
1490
1504
  n((n) => [...n, {
@@ -1496,36 +1510,36 @@ function xt({ children: e }) {
1496
1510
  }, []), o = i((e) => {
1497
1511
  n((t) => t.filter((t) => t.id !== e));
1498
1512
  }, []);
1499
- return /* @__PURE__ */ m(yt.Provider, {
1513
+ return /* @__PURE__ */ m(bt.Provider, {
1500
1514
  value: { toast: a },
1501
1515
  children: [e, /* @__PURE__ */ p("div", {
1502
1516
  className: "pointer-events-none fixed top-3 right-3 z-[100] flex flex-col gap-2",
1503
1517
  "aria-live": "polite",
1504
- children: t.map((e) => /* @__PURE__ */ p(Tt, {
1518
+ children: t.map((e) => /* @__PURE__ */ p(Et, {
1505
1519
  toast: e,
1506
1520
  onDismiss: () => o(e.id)
1507
1521
  }, e.id))
1508
1522
  })]
1509
1523
  });
1510
1524
  }
1511
- var St = {
1512
- success: w,
1513
- error: me,
1514
- warning: _,
1525
+ var Ct = {
1526
+ success: C,
1527
+ error: fe,
1528
+ warning: g,
1515
1529
  info: te
1516
- }, Ct = {
1530
+ }, wt = {
1517
1531
  success: "bg-green",
1518
1532
  error: "bg-red",
1519
1533
  warning: "bg-yellow",
1520
1534
  info: "bg-blue"
1521
- }, wt = {
1535
+ }, Tt = {
1522
1536
  success: "text-green",
1523
1537
  error: "text-red",
1524
1538
  warning: "text-yellow",
1525
1539
  info: "text-blue"
1526
1540
  };
1527
- function Tt({ toast: e, onDismiss: t }) {
1528
- let [n, r] = d(100), i = St[e.type], a = e.type === "error" || e.type === "warning", s = u(t);
1541
+ function Et({ toast: e, onDismiss: t }) {
1542
+ let [n, r] = d(100), i = Ct[e.type], a = e.type === "error" || e.type === "warning", s = u(t);
1529
1543
  return o(() => {
1530
1544
  s.current = t;
1531
1545
  }, [t]), o(() => {
@@ -1539,11 +1553,11 @@ function Tt({ toast: e, onDismiss: t }) {
1539
1553
  "aria-live": a ? "assertive" : "polite",
1540
1554
  className: "bg-bg-secondary border-border animate-slide-down pointer-events-auto relative w-80 overflow-hidden rounded-lg border shadow-lg",
1541
1555
  children: [
1542
- /* @__PURE__ */ p("div", { className: I("absolute top-1.5 bottom-1.5 left-0 w-[3px] rounded-md", Ct[e.type]) }),
1556
+ /* @__PURE__ */ p("div", { className: L("absolute top-1.5 bottom-1.5 left-0 w-[3px] rounded-md", wt[e.type]) }),
1543
1557
  /* @__PURE__ */ m("div", {
1544
1558
  className: "flex items-center gap-2.5 p-3 pl-3.5",
1545
1559
  children: [
1546
- /* @__PURE__ */ p(i, { className: I("h-4 w-4 shrink-0", wt[e.type]) }),
1560
+ /* @__PURE__ */ p(i, { className: L("h-4 w-4 shrink-0", Tt[e.type]) }),
1547
1561
  /* @__PURE__ */ p("p", {
1548
1562
  className: "text-text-primary flex-1 text-xs",
1549
1563
  children: e.message
@@ -1551,7 +1565,7 @@ function Tt({ toast: e, onDismiss: t }) {
1551
1565
  /* @__PURE__ */ p("button", {
1552
1566
  onClick: t,
1553
1567
  className: "text-text-tertiary hover:text-text-primary flex h-5 w-5 cursor-pointer items-center justify-center rounded",
1554
- children: /* @__PURE__ */ p(N, { className: "h-3 w-3" })
1568
+ children: /* @__PURE__ */ p(P, { className: "h-3 w-3" })
1555
1569
  })
1556
1570
  ]
1557
1571
  }),
@@ -1567,14 +1581,14 @@ function Tt({ toast: e, onDismiss: t }) {
1567
1581
  }
1568
1582
  //#endregion
1569
1583
  //#region src/components/app-shell/Sidebar.tsx
1570
- var Et = 140, Dt = 400, Ot = 48;
1571
- function kt({ item: e, collapsed: t, currentPath: n, onNavigate: r }) {
1572
- let i = R(e, n);
1584
+ var Dt = 140, Ot = 400, kt = 48;
1585
+ function At({ item: e, collapsed: t, currentPath: n, onNavigate: r }) {
1586
+ let i = Ze(e, n);
1573
1587
  return /* @__PURE__ */ m("a", {
1574
1588
  href: e.path,
1575
1589
  onClick: (t) => z(t, e.path, r),
1576
1590
  "aria-current": i ? "page" : void 0,
1577
- className: I("font-navigation relative flex items-center gap-2 rounded px-2", "cursor-pointer transition-colors duration-[100ms]", t ? "mx-auto w-[2em] justify-center" : "", i ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
1591
+ className: L("font-navigation relative flex items-center gap-2 rounded px-2", "cursor-pointer transition-colors duration-[100ms]", t ? "mx-auto w-[2em] justify-center" : "", i ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
1578
1592
  style: { height: "2em" },
1579
1593
  title: t ? e.label : void 0,
1580
1594
  children: [
@@ -1596,13 +1610,13 @@ function kt({ item: e, collapsed: t, currentPath: n, onNavigate: r }) {
1596
1610
  ]
1597
1611
  });
1598
1612
  }
1599
- function At({ brand: e, collapsed: t }) {
1613
+ function jt({ brand: e, collapsed: t }) {
1600
1614
  let n = e.icon, r = e.name.trim().charAt(0).toUpperCase();
1601
1615
  return e.logo && !t ? /* @__PURE__ */ p("div", {
1602
1616
  className: "flex min-w-0 items-center gap-2 px-2",
1603
1617
  children: e.logo
1604
1618
  }) : /* @__PURE__ */ m("div", {
1605
- className: I("flex min-w-0 items-center gap-2 px-2", t && "mx-auto justify-center px-0"),
1619
+ className: L("flex min-w-0 items-center gap-2 px-2", t && "mx-auto justify-center px-0"),
1606
1620
  children: [n ? /* @__PURE__ */ p(n, { className: "text-accent h-3.5 w-3.5 shrink-0" }) : t && r && /* @__PURE__ */ p("span", {
1607
1621
  className: "text-accent shrink-0 text-xs font-bold",
1608
1622
  children: r
@@ -1612,16 +1626,16 @@ function At({ brand: e, collapsed: t }) {
1612
1626
  })]
1613
1627
  });
1614
1628
  }
1615
- function jt(e) {
1629
+ function Mt(e) {
1616
1630
  return e.role ?? e.email;
1617
1631
  }
1618
- function Mt({ collapsed: e, accounts: t, initialAccountIndex: n = 0, onAccountChange: r, onSignOut: a, signOutPath: o, signOutLabel: s = "Sign out", onNavigate: c }) {
1632
+ function Nt({ collapsed: e, accounts: t, initialAccountIndex: n = 0, onAccountChange: r, onSignOut: a, signOutPath: o, signOutLabel: s = "Sign out", onNavigate: c }) {
1619
1633
  let [l, h] = d(!1), [g, _] = d(() => Math.min(n, Math.max(t.length - 1, 0))), [v, y] = d({
1620
1634
  bottom: 0,
1621
1635
  left: 0
1622
1636
  }), b = u(null), x = u(null);
1623
1637
  W(l, i(() => h(!1), []), [x], [b]);
1624
- let S = t[g] ?? t[0], w = !!(a || o);
1638
+ let C = t[g] ?? t[0], w = !!(a || o);
1625
1639
  function T() {
1626
1640
  if (!b.current) return;
1627
1641
  let e = b.current.getBoundingClientRect();
@@ -1633,30 +1647,30 @@ function Mt({ collapsed: e, accounts: t, initialAccountIndex: n = 0, onAccountCh
1633
1647
  function E(e, t) {
1634
1648
  _(t), r?.(e, t), h(!1);
1635
1649
  }
1636
- function D() {
1650
+ function O() {
1637
1651
  h(!1), a ? a() : o && Qe(o, c);
1638
1652
  }
1639
- return S ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("button", {
1653
+ return C ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("button", {
1640
1654
  ref: b,
1641
1655
  onClick: T,
1642
- className: I("font-navigation flex w-full cursor-pointer items-center gap-2 rounded px-2 transition-colors duration-[100ms]", "text-text-secondary hover:text-text-primary hover:bg-bg-hover", e && "justify-center px-0"),
1656
+ className: L("font-navigation flex w-full cursor-pointer items-center gap-2 rounded px-2 transition-colors duration-[100ms]", "text-text-secondary hover:text-text-primary hover:bg-bg-hover", e && "justify-center px-0"),
1643
1657
  style: { height: "2.5em" },
1644
- title: e ? S.name : void 0,
1645
- children: [/* @__PURE__ */ p(q, {
1646
- name: S.name,
1647
- src: S.avatarSrc,
1658
+ title: e ? C.name : void 0,
1659
+ children: [/* @__PURE__ */ p(K, {
1660
+ name: C.name,
1661
+ src: C.avatarSrc,
1648
1662
  size: "sm"
1649
1663
  }), !e && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("div", {
1650
1664
  className: "min-w-0 flex-1 text-left",
1651
1665
  children: [/* @__PURE__ */ p("p", {
1652
1666
  className: "text-text-primary truncate text-xs leading-tight font-medium",
1653
- children: S.name
1654
- }), jt(S) && /* @__PURE__ */ p("p", {
1667
+ children: C.name
1668
+ }), Mt(C) && /* @__PURE__ */ p("p", {
1655
1669
  className: "text-2xs text-text-tertiary truncate leading-tight",
1656
- children: jt(S)
1670
+ children: Mt(C)
1657
1671
  })]
1658
- }), /* @__PURE__ */ p(O, { className: "text-text-tertiary h-3 w-3 shrink-0" })] })]
1659
- }), l && P(/* @__PURE__ */ m("div", {
1672
+ }), /* @__PURE__ */ p(D, { className: "text-text-tertiary h-3 w-3 shrink-0" })] })]
1673
+ }), l && F(/* @__PURE__ */ m("div", {
1660
1674
  ref: x,
1661
1675
  className: "bg-bg-tertiary border-border-strong animate-scale-in fixed z-[100] w-56 rounded-md border py-1 shadow-lg",
1662
1676
  style: {
@@ -1672,7 +1686,7 @@ function Mt({ collapsed: e, accounts: t, initialAccountIndex: n = 0, onAccountCh
1672
1686
  onClick: () => E(e, t),
1673
1687
  className: "text-text-secondary hover:text-text-primary hover:bg-bg-hover font-navigation flex h-8 w-full cursor-pointer items-center gap-2.5 px-3 text-xs transition-colors duration-[100ms]",
1674
1688
  children: [
1675
- /* @__PURE__ */ p(q, {
1689
+ /* @__PURE__ */ p(K, {
1676
1690
  name: e.name,
1677
1691
  src: e.avatarSrc,
1678
1692
  size: "sm"
@@ -1687,26 +1701,26 @@ function Mt({ collapsed: e, accounts: t, initialAccountIndex: n = 0, onAccountCh
1687
1701
  children: e.email
1688
1702
  })]
1689
1703
  }),
1690
- t === g && /* @__PURE__ */ p(C, { className: "text-accent h-3.5 w-3.5 shrink-0" })
1704
+ t === g && /* @__PURE__ */ p(S, { className: "text-accent h-3.5 w-3.5 shrink-0" })
1691
1705
  ]
1692
1706
  }, `${e.name}-${e.email ?? t}`)),
1693
1707
  w && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p("div", { className: "border-border my-1 border-t" }), /* @__PURE__ */ m("button", {
1694
- onClick: D,
1708
+ onClick: O,
1695
1709
  className: "text-text-secondary hover:text-text-primary hover:bg-bg-hover font-navigation flex h-7 w-full cursor-pointer items-center gap-2.5 px-3 text-xs transition-colors duration-[100ms]",
1696
1710
  children: [/* @__PURE__ */ p(re, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ p("span", { children: s })]
1697
1711
  })] })
1698
1712
  ]
1699
1713
  }), document.body)] }) : null;
1700
1714
  }
1701
- function Nt({ collapsed: e, settingsPath: t, settingsLabel: n = "All Settings", onOpenSettings: r, onNavigate: a }) {
1715
+ function Pt({ collapsed: e, settingsPath: t, settingsLabel: n = "All Settings", onOpenSettings: r, onNavigate: a }) {
1702
1716
  let [o, s] = d(!1), [c, l] = d({
1703
1717
  bottom: 0,
1704
1718
  left: 0
1705
- }), h = u(null), _ = u(null), { accentColor: v, setAccentColor: y, reducedMotion: b, setReducedMotion: x, colorMode: S, setColorMode: w } = K(), { toast: T } = bt(), E = !!(t || r);
1706
- W(o, i(() => s(!1), []), [_], [h]);
1719
+ }), g = u(null), _ = u(null), { accentColor: v, setAccentColor: y, reducedMotion: b, setReducedMotion: x, colorMode: C, setColorMode: w } = G(), { toast: T } = xt(), E = !!(t || r);
1720
+ W(o, i(() => s(!1), []), [_], [g]);
1707
1721
  function D() {
1708
- if (!h.current) return;
1709
- let e = h.current.getBoundingClientRect();
1722
+ if (!g.current) return;
1723
+ let e = g.current.getBoundingClientRect();
1710
1724
  l({
1711
1725
  bottom: window.innerHeight - e.bottom,
1712
1726
  left: e.right + 6
@@ -1716,16 +1730,16 @@ function Nt({ collapsed: e, settingsPath: t, settingsLabel: n = "All Settings",
1716
1730
  s(!1), r ? r() : t && Qe(t, a);
1717
1731
  }
1718
1732
  return /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("button", {
1719
- ref: h,
1733
+ ref: g,
1720
1734
  onClick: D,
1721
- className: I("font-navigation relative flex w-full items-center gap-2 rounded px-2", "cursor-pointer transition-colors duration-[100ms]", e ? "mx-auto w-[2em] justify-center" : "", o ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
1735
+ className: L("font-navigation relative flex w-full items-center gap-2 rounded px-2", "cursor-pointer transition-colors duration-[100ms]", e ? "mx-auto w-[2em] justify-center" : "", o ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
1722
1736
  style: { height: "2em" },
1723
1737
  title: e ? "Settings" : void 0,
1724
- children: [/* @__PURE__ */ p(de, { className: "h-3.5 w-3.5 shrink-0" }), !e && /* @__PURE__ */ p("span", {
1738
+ children: [/* @__PURE__ */ p(le, { className: "h-3.5 w-3.5 shrink-0" }), !e && /* @__PURE__ */ p("span", {
1725
1739
  className: "truncate text-xs",
1726
1740
  children: "Settings"
1727
1741
  })]
1728
- }), o && P(/* @__PURE__ */ m("div", {
1742
+ }), o && F(/* @__PURE__ */ m("div", {
1729
1743
  ref: _,
1730
1744
  className: "bg-bg-tertiary border-border-strong animate-scale-in fixed z-[100] w-64 rounded-md border py-1 shadow-lg",
1731
1745
  style: {
@@ -1741,17 +1755,17 @@ function Nt({ collapsed: e, settingsPath: t, settingsLabel: n = "All Settings",
1741
1755
  {
1742
1756
  value: "dark",
1743
1757
  label: "Dark",
1744
- Icon: se
1758
+ Icon: M
1745
1759
  },
1746
1760
  {
1747
1761
  value: "light",
1748
1762
  label: "Light",
1749
- Icon: fe
1763
+ Icon: ue
1750
1764
  },
1751
1765
  {
1752
1766
  value: "system",
1753
1767
  label: "System",
1754
- Icon: oe
1768
+ Icon: j
1755
1769
  }
1756
1770
  ].map(({ value: e, label: t, Icon: n }) => /* @__PURE__ */ m("button", {
1757
1771
  onClick: () => w(e),
@@ -1762,7 +1776,7 @@ function Nt({ collapsed: e, settingsPath: t, settingsLabel: n = "All Settings",
1762
1776
  className: "flex-1 text-left",
1763
1777
  children: t
1764
1778
  }),
1765
- S === e && /* @__PURE__ */ p(C, { className: "text-accent h-3.5 w-3.5 shrink-0" })
1779
+ C === e && /* @__PURE__ */ p(S, { className: "text-accent h-3.5 w-3.5 shrink-0" })
1766
1780
  ]
1767
1781
  }, e)),
1768
1782
  /* @__PURE__ */ p("div", { className: "border-border my-1 border-t" }),
@@ -1774,7 +1788,7 @@ function Nt({ collapsed: e, settingsPath: t, settingsLabel: n = "All Settings",
1774
1788
  className: "flex flex-wrap gap-1.5 px-3 pb-2",
1775
1789
  children: ht.map((e) => /* @__PURE__ */ p("button", {
1776
1790
  onClick: () => y(e.value),
1777
- className: I("h-5 w-5 cursor-pointer rounded-full transition-transform duration-[100ms] hover:scale-110", v === e.value && "ring-offset-bg-tertiary scale-110 ring-2 ring-offset-1"),
1791
+ className: L("h-5 w-5 cursor-pointer rounded-full transition-transform duration-[100ms] hover:scale-110", v === e.value && "ring-offset-bg-tertiary scale-110 ring-2 ring-offset-1"),
1778
1792
  style: {
1779
1793
  backgroundColor: e.color,
1780
1794
  ...v === e.value ? { "--utility-ring-color": e.color } : {}
@@ -1789,18 +1803,18 @@ function Nt({ collapsed: e, settingsPath: t, settingsLabel: n = "All Settings",
1789
1803
  },
1790
1804
  className: "text-text-secondary hover:text-text-primary hover:bg-bg-hover font-navigation flex h-7 w-full cursor-pointer items-center gap-2.5 px-3 text-xs transition-colors duration-[100ms]",
1791
1805
  children: [
1792
- /* @__PURE__ */ p(g, { className: "h-3.5 w-3.5 shrink-0" }),
1806
+ /* @__PURE__ */ p(h, { className: "h-3.5 w-3.5 shrink-0" }),
1793
1807
  /* @__PURE__ */ p("span", {
1794
1808
  className: "flex-1 text-left",
1795
1809
  children: "Reduced Motion"
1796
1810
  }),
1797
- b && /* @__PURE__ */ p(C, { className: "text-accent h-3.5 w-3.5 shrink-0" })
1811
+ b && /* @__PURE__ */ p(S, { className: "text-accent h-3.5 w-3.5 shrink-0" })
1798
1812
  ]
1799
1813
  }),
1800
1814
  E && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p("div", { className: "border-border my-1 border-t" }), /* @__PURE__ */ m("button", {
1801
1815
  onClick: O,
1802
1816
  className: "text-text-secondary hover:text-text-primary hover:bg-bg-hover font-navigation flex h-7 w-full cursor-pointer items-center gap-2.5 px-3 text-xs transition-colors duration-[100ms]",
1803
- children: [/* @__PURE__ */ p(de, { className: "h-3.5 w-3.5 shrink-0" }), /* @__PURE__ */ p("span", {
1817
+ children: [/* @__PURE__ */ p(le, { className: "h-3.5 w-3.5 shrink-0" }), /* @__PURE__ */ p("span", {
1804
1818
  className: "flex-1 text-left",
1805
1819
  children: n
1806
1820
  })]
@@ -1808,14 +1822,14 @@ function Nt({ collapsed: e, settingsPath: t, settingsLabel: n = "All Settings",
1808
1822
  ]
1809
1823
  }), document.body)] });
1810
1824
  }
1811
- function Pt({ navSections: e, brand: t, accounts: n = [], initialAccountIndex: r, onAccountChange: a, onSignOut: o, signOutPath: s, signOutLabel: c, settingsPath: l, settingsLabel: f, onOpenSettings: h, currentPath: g, onNavigate: _, className: v }) {
1812
- let { sidebarCollapsed: y, sidebarWidth: b, setSidebarWidth: x } = K(), [S, C] = d(/* @__PURE__ */ new Set()), w = u(null), E = u(!1), D = i((e) => {
1825
+ function Ft({ navSections: e, brand: t, accounts: n = [], initialAccountIndex: r, onAccountChange: a, onSignOut: o, signOutPath: s, signOutLabel: c, settingsPath: l, settingsLabel: f, onOpenSettings: h, currentPath: g, onNavigate: _, className: v }) {
1826
+ let { sidebarCollapsed: y, sidebarWidth: b, setSidebarWidth: x } = G(), [S, C] = d(/* @__PURE__ */ new Set()), T = u(null), E = u(!1), D = i((e) => {
1813
1827
  if (y) return;
1814
1828
  e.preventDefault(), E.current = !0, document.body.style.cursor = "col-resize", document.body.style.userSelect = "none";
1815
1829
  let t = (e) => {
1816
- if (!E.current || !w.current) return;
1817
- let t = w.current.getBoundingClientRect(), n = e.clientX - t.left;
1818
- x(Math.max(Et, Math.min(n, Dt)));
1830
+ if (!E.current || !T.current) return;
1831
+ let t = T.current.getBoundingClientRect(), n = e.clientX - t.left;
1832
+ x(Math.max(Dt, Math.min(n, Ot)));
1819
1833
  }, n = () => {
1820
1834
  E.current = !1, document.body.style.cursor = "", document.body.style.userSelect = "", document.removeEventListener("mousemove", t), document.removeEventListener("mouseup", n);
1821
1835
  };
@@ -1828,9 +1842,9 @@ function Pt({ navSections: e, brand: t, accounts: n = [], initialAccountIndex: r
1828
1842
  });
1829
1843
  }
1830
1844
  return /* @__PURE__ */ m("aside", {
1831
- ref: w,
1832
- className: I("bg-bg-secondary relative hidden shrink-0 flex-col border-r md:flex", "transition-[width] duration-[200ms] ease-out", "border-border", v),
1833
- style: { width: y ? Ot : b },
1845
+ ref: T,
1846
+ className: L("bg-bg-secondary relative hidden shrink-0 flex-col border-r md:flex", "transition-[width] duration-[200ms] ease-out", "border-border", v),
1847
+ style: { width: y ? kt : b },
1834
1848
  children: [
1835
1849
  !y && /* @__PURE__ */ p("div", {
1836
1850
  onMouseDown: D,
@@ -1839,7 +1853,7 @@ function Pt({ navSections: e, brand: t, accounts: n = [], initialAccountIndex: r
1839
1853
  /* @__PURE__ */ p("div", {
1840
1854
  className: "border-border flex shrink-0 items-center border-b px-2",
1841
1855
  style: { height: "var(--topbar-height)" },
1842
- children: /* @__PURE__ */ p(At, {
1856
+ children: /* @__PURE__ */ p(jt, {
1843
1857
  brand: t,
1844
1858
  collapsed: y
1845
1859
  })
@@ -1852,15 +1866,18 @@ function Pt({ navSections: e, brand: t, accounts: n = [], initialAccountIndex: r
1852
1866
  className: "mb-4",
1853
1867
  children: [y ? t > 0 && /* @__PURE__ */ p("hr", { className: "border-border mx-auto my-1.5 w-4/5" }) : /* @__PURE__ */ m("button", {
1854
1868
  onClick: () => O(e.title),
1855
- className: "text-2xs-f text-text-tertiary hover:text-text-secondary font-label flex w-full cursor-pointer items-center justify-between px-2 font-semibold tracking-wider uppercase",
1869
+ className: "text-2xs-f text-text-tertiary hover:text-text-secondary font-label flex w-full cursor-pointer items-center gap-1 px-2 text-left font-semibold tracking-wider uppercase",
1856
1870
  style: {
1857
1871
  paddingTop: "0.35em",
1858
1872
  paddingBottom: "0.35em"
1859
1873
  },
1860
- children: [e.title, /* @__PURE__ */ p(T, { className: I("h-3 w-3 transition-transform", n && "-rotate-90") })]
1874
+ children: [/* @__PURE__ */ p("span", {
1875
+ className: "min-w-0 flex-1",
1876
+ children: e.title
1877
+ }), /* @__PURE__ */ p(w, { className: L("h-3 w-3 shrink-0 transition-transform", n && "-rotate-90") })]
1861
1878
  }), (!n || y) && /* @__PURE__ */ p("ul", {
1862
1879
  className: "flex flex-col gap-1",
1863
- children: e.items.map((e) => /* @__PURE__ */ p("li", { children: /* @__PURE__ */ p(kt, {
1880
+ children: e.items.map((e) => /* @__PURE__ */ p("li", { children: /* @__PURE__ */ p(At, {
1864
1881
  item: e,
1865
1882
  collapsed: y,
1866
1883
  currentPath: g,
@@ -1872,7 +1889,7 @@ function Pt({ navSections: e, brand: t, accounts: n = [], initialAccountIndex: r
1872
1889
  }),
1873
1890
  /* @__PURE__ */ m("div", {
1874
1891
  className: "shrink-0 px-2 py-1.5",
1875
- children: [/* @__PURE__ */ p(Nt, {
1892
+ children: [/* @__PURE__ */ p(Pt, {
1876
1893
  collapsed: y,
1877
1894
  settingsPath: l,
1878
1895
  settingsLabel: f,
@@ -1880,7 +1897,7 @@ function Pt({ navSections: e, brand: t, accounts: n = [], initialAccountIndex: r
1880
1897
  onNavigate: _
1881
1898
  }), n.length > 0 && /* @__PURE__ */ p("div", {
1882
1899
  className: "border-border mt-2 border-t pt-2",
1883
- children: /* @__PURE__ */ p(Mt, {
1900
+ children: /* @__PURE__ */ p(Nt, {
1884
1901
  collapsed: y,
1885
1902
  accounts: n,
1886
1903
  initialAccountIndex: r,
@@ -1897,34 +1914,34 @@ function Pt({ navSections: e, brand: t, accounts: n = [], initialAccountIndex: r
1897
1914
  }
1898
1915
  //#endregion
1899
1916
  //#region src/components/app-shell/Breadcrumbs.tsx
1900
- function Ft(e) {
1917
+ function It(e) {
1901
1918
  return e.charAt(0).toUpperCase() + e.slice(1);
1902
1919
  }
1903
- function It({ homeLabel: e = "Dashboard", labels: t = {}, parents: n = {}, currentPath: r = "/", onNavigate: i, className: a }) {
1920
+ function Lt({ homeLabel: e = "Dashboard", labels: t = {}, parents: n = {}, currentPath: r = "/", onNavigate: i, className: a }) {
1904
1921
  let o = r.split("?")[0].split("/").filter(Boolean), s = [{
1905
1922
  label: e,
1906
1923
  path: "/"
1907
1924
  }, ...o.map((e, r) => {
1908
1925
  let i = o[r - 1];
1909
1926
  return {
1910
- label: t[e] || n[i] || Ft(e),
1927
+ label: t[e] || n[i] || It(e),
1911
1928
  path: "/" + o.slice(0, r + 1).join("/")
1912
1929
  };
1913
1930
  })];
1914
1931
  return /* @__PURE__ */ p("nav", {
1915
1932
  "aria-label": "Breadcrumb",
1916
- className: I("font-navigation flex items-center gap-1 text-xs", a),
1933
+ className: L("font-navigation flex items-center gap-1 text-xs", a),
1917
1934
  children: s.map((e, t) => {
1918
1935
  let n = t === s.length - 1;
1919
1936
  return /* @__PURE__ */ m("span", {
1920
1937
  className: "flex items-center gap-1",
1921
- children: [t > 0 && /* @__PURE__ */ p(D, { className: "text-text-tertiary h-3 w-3" }), n ? /* @__PURE__ */ p("span", {
1938
+ children: [t > 0 && /* @__PURE__ */ p(E, { className: "text-text-tertiary h-3 w-3" }), n ? /* @__PURE__ */ p("span", {
1922
1939
  className: "text-text-primary font-medium",
1923
1940
  children: e.label
1924
1941
  }) : /* @__PURE__ */ p("a", {
1925
1942
  href: e.path,
1926
1943
  onClick: (t) => z(t, e.path, i),
1927
- className: I("text-text-tertiary hover:text-text-primary cursor-pointer transition-colors duration-[100ms]"),
1944
+ className: L("text-text-tertiary hover:text-text-primary cursor-pointer transition-colors duration-[100ms]"),
1928
1945
  children: e.label
1929
1946
  })]
1930
1947
  }, e.path);
@@ -1932,26 +1949,551 @@ function It({ homeLabel: e = "Dashboard", labels: t = {}, parents: n = {}, curre
1932
1949
  });
1933
1950
  }
1934
1951
  //#endregion
1952
+ //#region src/hooks/useApplyTheme.ts
1953
+ function Rt() {
1954
+ let { setPreferredDarkTheme: e, setPreferredLightTheme: t, setColorMode: n } = G();
1955
+ return i((r) => {
1956
+ V(r) ? (t(r), n("light")) : (e(r), n("dark"));
1957
+ }, [
1958
+ e,
1959
+ t,
1960
+ n
1961
+ ]);
1962
+ }
1963
+ //#endregion
1964
+ //#region src/components/ui/Button.tsx
1965
+ var zt = {
1966
+ primary: "bg-accent text-text-on-accent hover:bg-accent-hover active:bg-accent-active",
1967
+ secondary: "bg-bg-secondary text-text-primary border border-border hover:bg-bg-hover hover:border-border-strong",
1968
+ danger: "bg-red-muted text-red border border-transparent hover:bg-red/20",
1969
+ ghost: "text-text-secondary hover:text-text-primary hover:bg-bg-hover",
1970
+ icon: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover"
1971
+ }, Bt = {
1972
+ sm: "h-7 px-2.5 text-xs gap-1.5",
1973
+ md: "h-8 px-3 text-xs gap-2",
1974
+ lg: "h-9 px-4 text-sm gap-2"
1975
+ }, Vt = {
1976
+ sm: "h-7 w-7",
1977
+ md: "h-8 w-8",
1978
+ lg: "h-9 w-9"
1979
+ }, Ht = {
1980
+ sm: "h-3.5 w-3.5",
1981
+ md: "h-3.5 w-3.5",
1982
+ lg: "h-4 w-4"
1983
+ }, Ut = {
1984
+ sm: "hidden sm:inline",
1985
+ md: "hidden md:inline",
1986
+ lg: "hidden lg:inline"
1987
+ }, Wt = {
1988
+ sm: {
1989
+ sm: "px-1.5 sm:px-2.5",
1990
+ md: "px-2 sm:px-3",
1991
+ lg: "px-2.5 sm:px-4"
1992
+ },
1993
+ md: {
1994
+ sm: "px-1.5 md:px-2.5",
1995
+ md: "px-2 md:px-3",
1996
+ lg: "px-2.5 md:px-4"
1997
+ },
1998
+ lg: {
1999
+ sm: "px-1.5 lg:px-2.5",
2000
+ md: "px-2 lg:px-3",
2001
+ lg: "px-2.5 lg:px-4"
2002
+ }
2003
+ }, q = r(({ variant: e = "secondary", size: t = "md", loading: n, icon: r, hideLabel: i, className: a, children: o, disabled: s, ...c }, l) => {
2004
+ let u = e === "icon", d = i === !0 ? "sm" : i === !1 ? void 0 : i;
2005
+ return /* @__PURE__ */ m("button", {
2006
+ ref: l,
2007
+ disabled: s || n,
2008
+ className: L("inline-flex items-center justify-center rounded-md font-medium", "font-control", "transition-colors duration-[100ms] ease-out", "cursor-pointer", "disabled:cursor-not-allowed disabled:opacity-40", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", zt[e], u ? Vt[t] : Bt[t], d && !u && Wt[d]?.[t], a),
2009
+ ...c,
2010
+ children: [
2011
+ n && /* @__PURE__ */ p(ne, { className: "h-3.5 w-3.5 animate-spin" }),
2012
+ r && !n && /* @__PURE__ */ p(r, { className: Ht[t] }),
2013
+ o && (d ? /* @__PURE__ */ p("span", {
2014
+ className: Ut[d],
2015
+ children: o
2016
+ }) : o)
2017
+ ]
2018
+ });
2019
+ });
2020
+ q.displayName = "Button";
2021
+ //#endregion
2022
+ //#region src/components/ui/SectionHeader.tsx
2023
+ function J({ children: e, as: t = "h2", className: n, border: r = !0 }) {
2024
+ return /* @__PURE__ */ p(t, {
2025
+ className: L("text-text-primary font-heading text-xs font-semibold", r && "border-border border-b pb-2", n),
2026
+ children: e
2027
+ });
2028
+ }
2029
+ //#endregion
2030
+ //#region src/hooks/useDropUp.ts
2031
+ function Gt(e, t, n) {
2032
+ let [r, i] = d(!1);
2033
+ return c(() => {
2034
+ if (!e || !n.current || !t.current) return;
2035
+ let r = t.current.getBoundingClientRect(), a = n.current.getBoundingClientRect();
2036
+ i(window.innerHeight - r.bottom < a.height + 8);
2037
+ }, [e]), r;
2038
+ }
2039
+ //#endregion
2040
+ //#region src/components/ui/SelectDropdown.tsx
2041
+ function Y({ options: e, value: t, onChange: n, label: r, placeholder: a = "Select...", className: o, size: c = "md" }) {
2042
+ let [l, f] = d(!1), [h, g] = d(-1), _ = u(null), v = u(null), y = Gt(l, _, v), b = s(), x = `${b}-listbox`, C = e.find((e) => e.value === t);
2043
+ W(l, i(() => f(!1), []), [_]);
2044
+ function T() {
2045
+ if (!l) {
2046
+ let n = e.findIndex((e) => e.value === t);
2047
+ g(n >= 0 ? n : 0);
2048
+ }
2049
+ f(!l);
2050
+ }
2051
+ function E(r) {
2052
+ if (!l) {
2053
+ if (r.key === "ArrowDown" || r.key === "ArrowUp") {
2054
+ r.preventDefault();
2055
+ let n = e.findIndex((e) => e.value === t);
2056
+ g(n >= 0 ? n : 0), f(!0);
2057
+ }
2058
+ return;
2059
+ }
2060
+ switch (r.key) {
2061
+ case "ArrowDown":
2062
+ r.preventDefault(), g((t) => Math.min(t + 1, e.length - 1));
2063
+ break;
2064
+ case "ArrowUp":
2065
+ r.preventDefault(), g((e) => Math.max(e - 1, 0));
2066
+ break;
2067
+ case "Enter":
2068
+ r.preventDefault(), e[h] && (n(e[h].value), f(!1));
2069
+ break;
2070
+ case "Escape":
2071
+ r.preventDefault(), f(!1);
2072
+ break;
2073
+ }
2074
+ }
2075
+ return /* @__PURE__ */ m("div", {
2076
+ className: L("flex flex-col gap-1.5", o),
2077
+ ref: _,
2078
+ children: [r && /* @__PURE__ */ p("span", {
2079
+ className: "text-text-secondary font-label text-xs font-medium",
2080
+ children: r
2081
+ }), /* @__PURE__ */ m("div", {
2082
+ className: "relative",
2083
+ children: [
2084
+ /* @__PURE__ */ p("button", {
2085
+ type: "button",
2086
+ onClick: T,
2087
+ onKeyDown: E,
2088
+ "aria-haspopup": "listbox",
2089
+ "aria-expanded": l,
2090
+ "aria-controls": l ? x : void 0,
2091
+ "aria-activedescendant": l && h >= 0 ? `${b}-option-${h}` : void 0,
2092
+ className: L("font-control flex w-full cursor-pointer items-center rounded-md text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", c === "sm" ? "h-6 px-2 pr-6" : "h-7 px-2 pr-7"),
2093
+ children: C ? C.label : /* @__PURE__ */ p("span", {
2094
+ className: "text-text-disabled",
2095
+ children: a
2096
+ })
2097
+ }),
2098
+ /* @__PURE__ */ p(w, { className: L("text-text-tertiary pointer-events-none absolute top-1/2 h-3 w-3 -translate-y-1/2 transition-transform", c === "sm" ? "right-1.5" : "right-2", l && "rotate-180") }),
2099
+ l && /* @__PURE__ */ p("div", {
2100
+ ref: v,
2101
+ className: L("bg-bg-tertiary border-border-strong animate-scale-in absolute right-0 left-0 z-[100] overflow-hidden rounded-md border shadow-lg", y ? "bottom-full mb-1" : "top-full mt-1"),
2102
+ children: /* @__PURE__ */ p("ul", {
2103
+ id: x,
2104
+ className: "max-h-48 overflow-y-auto py-1",
2105
+ role: "listbox",
2106
+ children: e.map((e, r) => /* @__PURE__ */ m("li", {
2107
+ id: `${b}-option-${r}`,
2108
+ role: "option",
2109
+ "aria-selected": e.value === t,
2110
+ onClick: () => {
2111
+ n(e.value), f(!1);
2112
+ },
2113
+ onMouseEnter: () => g(r),
2114
+ className: L("font-control flex h-7 w-full cursor-pointer items-center gap-2 px-3 text-xs", "transition-colors duration-[100ms]", r === h ? "bg-accent-muted text-accent" : e.value === t ? "text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
2115
+ children: [/* @__PURE__ */ p("span", {
2116
+ className: "flex-1 truncate",
2117
+ children: e.label
2118
+ }), e.value === t && /* @__PURE__ */ p(S, { className: "h-3 w-3 shrink-0" })]
2119
+ }, e.value))
2120
+ })
2121
+ })
2122
+ ]
2123
+ })]
2124
+ });
2125
+ }
2126
+ //#endregion
2127
+ //#region src/components/ui/Slider.tsx
2128
+ function X({ min: e, max: t, step: n = 1, value: r, onChange: i, onCommit: a, label: o, showValue: s, className: c }) {
2129
+ let l = (r - e) / (t - e) * 100;
2130
+ return /* @__PURE__ */ m("div", {
2131
+ className: L("flex flex-col gap-1.5", c),
2132
+ children: [(o || s) && /* @__PURE__ */ m("div", {
2133
+ className: "flex items-center justify-between",
2134
+ children: [o && /* @__PURE__ */ p("span", {
2135
+ className: "text-text-secondary font-label text-xs font-medium",
2136
+ children: o
2137
+ }), s && /* @__PURE__ */ p("span", {
2138
+ className: "text-text-primary font-data text-xs",
2139
+ children: r
2140
+ })]
2141
+ }), /* @__PURE__ */ p("input", {
2142
+ type: "range",
2143
+ min: e,
2144
+ max: t,
2145
+ step: n,
2146
+ value: r,
2147
+ onChange: (e) => i(Number(e.target.value)),
2148
+ onPointerUp: a ? (e) => a(Number(e.target.value)) : void 0,
2149
+ className: "bg-bg-tertiary [&::-webkit-slider-thumb]:bg-accent h-1.5 w-full cursor-pointer appearance-none rounded-md [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:shadow-sm [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:duration-[100ms] [&::-webkit-slider-thumb]:hover:scale-110",
2150
+ style: { background: `linear-gradient(to right, var(--accent) ${l}%, var(--bg-tertiary) ${l}%)` }
2151
+ })]
2152
+ });
2153
+ }
2154
+ //#endregion
2155
+ //#region src/components/ui/ThemePreview.tsx
2156
+ function Kt({ label: e, active: t, icon: n, preview: r, onClick: i, className: a }) {
2157
+ return /* @__PURE__ */ m("button", {
2158
+ type: "button",
2159
+ onClick: i,
2160
+ className: L("flex cursor-pointer flex-col items-center gap-2 rounded-md border p-3 transition-colors duration-[100ms]", t ? "border-accent bg-accent-muted" : "border-border bg-bg-secondary hover:bg-bg-hover hover:border-border-strong", a),
2161
+ children: [/* @__PURE__ */ p("div", {
2162
+ className: "border-border-strong/20 flex h-10 w-full items-center justify-center rounded border",
2163
+ style: { backgroundColor: r?.bg },
2164
+ children: /* @__PURE__ */ p("div", {
2165
+ className: "h-1.5 w-8 rounded-md",
2166
+ style: { backgroundColor: r?.fg }
2167
+ })
2168
+ }), /* @__PURE__ */ m("div", {
2169
+ className: "flex items-center gap-1.5",
2170
+ children: [n && /* @__PURE__ */ p(n, { className: "h-3 w-3" }), /* @__PURE__ */ p("span", {
2171
+ className: "text-xs font-medium",
2172
+ children: e
2173
+ })]
2174
+ })]
2175
+ });
2176
+ }
2177
+ //#endregion
2178
+ //#region src/components/ui/Toggle.tsx
2179
+ function qt({ checked: e, onChange: t, disabled: n, label: r, className: i }) {
2180
+ return /* @__PURE__ */ m("label", {
2181
+ className: L("flex w-fit items-center", n ? "cursor-not-allowed opacity-40" : "cursor-pointer", i),
2182
+ style: { gap: 10 },
2183
+ children: [/* @__PURE__ */ p("button", {
2184
+ type: "button",
2185
+ role: "switch",
2186
+ "aria-checked": e,
2187
+ disabled: n,
2188
+ onClick: () => t(!e),
2189
+ className: L("relative shrink-0 rounded-full border transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", e ? "bg-accent border-accent" : "bg-bg-tertiary border-border", !n && "cursor-pointer"),
2190
+ style: {
2191
+ width: 36,
2192
+ height: 20
2193
+ },
2194
+ children: /* @__PURE__ */ p("span", {
2195
+ className: "bg-control-knob absolute top-1/2 rounded-full transition-[left] duration-[100ms]",
2196
+ style: {
2197
+ width: 14,
2198
+ height: 14,
2199
+ marginTop: -7,
2200
+ left: e ? 19 : 3,
2201
+ boxShadow: "0 0 1px rgba(0,0,0,0.1), 2px 0 4px rgba(0,0,0,0.35)"
2202
+ }
2203
+ })
2204
+ }), r && /* @__PURE__ */ p("span", {
2205
+ className: "text-text-secondary text-xs",
2206
+ children: r
2207
+ })]
2208
+ });
2209
+ }
2210
+ //#endregion
2211
+ //#region src/components/app-shell/themeMenuEvents.ts
2212
+ var Jt = "open-theme-menu";
2213
+ function Yt(e = Jt) {
2214
+ typeof document > "u" || document.dispatchEvent(new CustomEvent(e));
2215
+ }
2216
+ //#endregion
2217
+ //#region src/components/app-shell/ThemeMenu.tsx
2218
+ var Xt = [
2219
+ {
2220
+ value: "dark",
2221
+ label: "Dark",
2222
+ Icon: M
2223
+ },
2224
+ {
2225
+ value: "light",
2226
+ label: "Light",
2227
+ Icon: ue
2228
+ },
2229
+ {
2230
+ value: "system",
2231
+ label: "System",
2232
+ Icon: j
2233
+ }
2234
+ ];
2235
+ function Zt({ className: e, respondToOpenEvent: t = !0 }) {
2236
+ let [n, r] = d(!1), [a, s] = d(!1), [c, l] = d({
2237
+ top: 0,
2238
+ right: 0
2239
+ }), h = u(null), g = u(null), _ = G(), v = Rt(), { toast: y } = xt(), b = i(() => {
2240
+ r(!1), s(!1);
2241
+ }, []);
2242
+ W(n, b, [g], [h], { outsideClick: !a });
2243
+ let x = i(() => {
2244
+ if (!h.current) return;
2245
+ let e = h.current.getBoundingClientRect();
2246
+ l({
2247
+ top: e.bottom + 6,
2248
+ right: window.innerWidth - e.right
2249
+ });
2250
+ }, []);
2251
+ function S() {
2252
+ if (n) {
2253
+ b();
2254
+ return;
2255
+ }
2256
+ x(), r(!0);
2257
+ }
2258
+ o(() => {
2259
+ if (!t) return;
2260
+ let e = () => {
2261
+ x(), r(!0), s(!0);
2262
+ };
2263
+ return document.addEventListener(Jt, e), () => document.removeEventListener(Jt, e);
2264
+ }, [t, x]), o(() => {
2265
+ if (n) return window.addEventListener("resize", x), window.addEventListener("scroll", x, !0), () => {
2266
+ window.removeEventListener("resize", x), window.removeEventListener("scroll", x, !0);
2267
+ };
2268
+ }, [n, x]);
2269
+ let { colorMode: C, setColorMode: w, preferredDarkTheme: T, preferredLightTheme: E, accentColor: D, setAccentColor: O, fontSize: k, setFontSize: A, uiFont: ee, setUiFont: te, headingFont: ne, setHeadingFont: re, proseFont: ie, setProseFont: ae, codeFont: j, setCodeFont: M, borderRadius: se, setBorderRadius: ce, borderWidth: N, setBorderWidth: le, tracking: ue, setTracking: de, lineHeight: P, setLineHeight: fe, density: pe, setDensity: I, reducedMotion: me, setReducedMotion: he, saveThemeCustomization: ge, resetThemeCustomization: _e, hasThemeOverrides: ve, isCustomized: ye, resolvedTheme: be } = _;
2270
+ return /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p("button", {
2271
+ ref: h,
2272
+ onClick: S,
2273
+ "aria-label": "Theme settings",
2274
+ "aria-haspopup": "dialog",
2275
+ "aria-expanded": n,
2276
+ title: "Theme",
2277
+ className: L("flex h-7 w-7 cursor-pointer items-center justify-center rounded transition-colors duration-[100ms]", n ? "text-accent bg-accent-muted" : "text-text-tertiary hover:text-text-primary hover:bg-bg-hover", e),
2278
+ children: /* @__PURE__ */ p(oe, { className: "h-4 w-4" })
2279
+ }), n && F(/* @__PURE__ */ p("div", {
2280
+ ref: g,
2281
+ role: "dialog",
2282
+ "aria-label": "Theme settings",
2283
+ className: "bg-bg-tertiary border-border-strong animate-scale-in fixed z-[100] flex w-80 flex-col overflow-y-auto rounded-md border p-3 shadow-lg",
2284
+ style: {
2285
+ top: c.top,
2286
+ right: c.right,
2287
+ maxHeight: "80vh"
2288
+ },
2289
+ children: /* @__PURE__ */ m("div", {
2290
+ className: "space-y-4",
2291
+ children: [
2292
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p(J, {
2293
+ as: "h3",
2294
+ border: !1,
2295
+ className: "mb-2",
2296
+ children: "Mode"
2297
+ }), /* @__PURE__ */ p("div", {
2298
+ className: "bg-bg-secondary border-border flex gap-1 rounded-md border p-1.5",
2299
+ children: Xt.map(({ value: e, label: t, Icon: n }) => /* @__PURE__ */ m("button", {
2300
+ onClick: () => w(e),
2301
+ className: L("font-navigation flex flex-1 cursor-pointer items-center justify-center gap-1.5 rounded px-2 py-1 text-xs transition-colors duration-[100ms]", C === e ? "bg-accent-muted text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
2302
+ children: [/* @__PURE__ */ p(n, { className: "h-3.5 w-3.5" }), t]
2303
+ }, e))
2304
+ })] }),
2305
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p(J, {
2306
+ as: "h3",
2307
+ border: !1,
2308
+ className: "mb-2",
2309
+ children: "Dark themes"
2310
+ }), /* @__PURE__ */ p("div", {
2311
+ className: "grid grid-cols-2 gap-2",
2312
+ children: ft.map((e) => /* @__PURE__ */ p(Kt, {
2313
+ label: e.label,
2314
+ icon: e.icon,
2315
+ preview: e.preview,
2316
+ active: T === e.value,
2317
+ onClick: () => v(e.value)
2318
+ }, e.value))
2319
+ })] }),
2320
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p(J, {
2321
+ as: "h3",
2322
+ border: !1,
2323
+ className: "mb-2",
2324
+ children: "Light themes"
2325
+ }), /* @__PURE__ */ p("div", {
2326
+ className: "grid grid-cols-2 gap-2",
2327
+ children: dt.map((e) => /* @__PURE__ */ p(Kt, {
2328
+ label: e.label,
2329
+ icon: e.icon,
2330
+ preview: e.preview,
2331
+ active: E === e.value,
2332
+ onClick: () => v(e.value)
2333
+ }, e.value))
2334
+ })] }),
2335
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p(J, {
2336
+ as: "h3",
2337
+ border: !1,
2338
+ className: "mb-2",
2339
+ children: "Accent"
2340
+ }), /* @__PURE__ */ p("div", {
2341
+ className: "flex flex-wrap gap-1.5",
2342
+ children: ht.map((e) => /* @__PURE__ */ p("button", {
2343
+ onClick: () => O(e.value),
2344
+ className: L("h-6 w-6 cursor-pointer rounded-full transition-transform duration-[100ms] hover:scale-110", D === e.value && "ring-offset-bg-tertiary scale-110 ring-2 ring-offset-1"),
2345
+ style: {
2346
+ backgroundColor: e.color,
2347
+ ...D === e.value ? { "--utility-ring-color": e.color } : {}
2348
+ },
2349
+ title: e.value.charAt(0).toUpperCase() + e.value.slice(1),
2350
+ "aria-label": e.value
2351
+ }, e.value))
2352
+ })] }),
2353
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p(J, {
2354
+ as: "h3",
2355
+ border: !1,
2356
+ className: "mb-2",
2357
+ children: "Fonts"
2358
+ }), /* @__PURE__ */ m("div", {
2359
+ className: "grid grid-cols-2 gap-2",
2360
+ children: [
2361
+ /* @__PURE__ */ p(Y, {
2362
+ label: "UI / Body",
2363
+ size: "sm",
2364
+ options: U,
2365
+ value: ee,
2366
+ onChange: (e) => te(e)
2367
+ }),
2368
+ /* @__PURE__ */ p(Y, {
2369
+ label: "Headings",
2370
+ size: "sm",
2371
+ options: U,
2372
+ value: ne,
2373
+ onChange: (e) => re(e)
2374
+ }),
2375
+ /* @__PURE__ */ p(Y, {
2376
+ label: "Prose",
2377
+ size: "sm",
2378
+ options: U,
2379
+ value: ie,
2380
+ onChange: (e) => ae(e)
2381
+ }),
2382
+ /* @__PURE__ */ p(Y, {
2383
+ label: "Code",
2384
+ size: "sm",
2385
+ options: U,
2386
+ value: j,
2387
+ onChange: (e) => M(e)
2388
+ })
2389
+ ]
2390
+ })] }),
2391
+ /* @__PURE__ */ m("div", {
2392
+ className: "space-y-3",
2393
+ children: [
2394
+ /* @__PURE__ */ p(X, {
2395
+ label: "Font size",
2396
+ min: 11,
2397
+ max: 18,
2398
+ value: k,
2399
+ onChange: A,
2400
+ showValue: !0
2401
+ }),
2402
+ /* @__PURE__ */ p(X, {
2403
+ label: "Corner radius",
2404
+ min: 0,
2405
+ max: 16,
2406
+ value: se,
2407
+ onChange: ce,
2408
+ showValue: !0
2409
+ }),
2410
+ /* @__PURE__ */ p(X, {
2411
+ label: "Border width",
2412
+ min: 1,
2413
+ max: 3,
2414
+ value: N,
2415
+ onChange: le,
2416
+ showValue: !0
2417
+ }),
2418
+ /* @__PURE__ */ p(X, {
2419
+ label: "Letter spacing",
2420
+ min: 0,
2421
+ max: .3,
2422
+ step: .01,
2423
+ value: ue,
2424
+ onChange: de,
2425
+ showValue: !0
2426
+ }),
2427
+ /* @__PURE__ */ p(X, {
2428
+ label: "Line height",
2429
+ min: 1.2,
2430
+ max: 2,
2431
+ step: .05,
2432
+ value: P,
2433
+ onChange: fe,
2434
+ showValue: !0
2435
+ }),
2436
+ /* @__PURE__ */ p(X, {
2437
+ label: "Density",
2438
+ min: .18,
2439
+ max: .32,
2440
+ step: .01,
2441
+ value: pe,
2442
+ onChange: I,
2443
+ showValue: !0
2444
+ })
2445
+ ]
2446
+ }),
2447
+ /* @__PURE__ */ p(qt, {
2448
+ label: "Reduced motion",
2449
+ checked: me,
2450
+ onChange: he
2451
+ }),
2452
+ /* @__PURE__ */ m("div", {
2453
+ className: "border-border flex items-center gap-2 border-t pt-3",
2454
+ children: [/* @__PURE__ */ p(q, {
2455
+ variant: "primary",
2456
+ size: "sm",
2457
+ disabled: !ye,
2458
+ onClick: () => {
2459
+ ge(), y("success", `Saved customization for ${lt.find((e) => e.value === be)?.label ?? be}`);
2460
+ },
2461
+ children: "Save for theme"
2462
+ }), /* @__PURE__ */ p(q, {
2463
+ variant: "secondary",
2464
+ size: "sm",
2465
+ disabled: !ve && !ye,
2466
+ onClick: () => {
2467
+ _e(), y("info", "Reset to theme defaults");
2468
+ },
2469
+ children: "Reset"
2470
+ })]
2471
+ })
2472
+ ]
2473
+ })
2474
+ }), document.body)] });
2475
+ }
2476
+ //#endregion
1935
2477
  //#region src/components/app-shell/TopBar.tsx
1936
- var Lt = [
2478
+ var Qt = [
1937
2479
  "dark",
1938
2480
  "light",
1939
2481
  "system"
1940
- ], Rt = {
1941
- dark: se,
1942
- light: fe,
1943
- system: oe
1944
- }, zt = {
2482
+ ], $t = {
2483
+ dark: M,
2484
+ light: ue,
2485
+ system: j
2486
+ }, en = {
1945
2487
  dark: "Dark",
1946
2488
  light: "Light",
1947
2489
  system: "System"
1948
2490
  };
1949
- function Bt({ onMobileMenuToggle: e, breadcrumbs: t, showCommandTrigger: n = !0, commandTriggerLabel: r = "Search", commandShortcut: i = nt, currentPath: a, onNavigate: o, onCommandTrigger: s }) {
1950
- let { sidebarCollapsed: c, setSidebarCollapsed: l, colorMode: u, setColorMode: d } = K();
2491
+ function tn({ onMobileMenuToggle: e, breadcrumbs: t, showCommandTrigger: n = !0, commandTriggerLabel: r = "Search", commandShortcut: i = nt, currentPath: a, onNavigate: o, onCommandTrigger: s }) {
2492
+ let { sidebarCollapsed: c, setSidebarCollapsed: l, colorMode: u, setColorMode: d } = G();
1951
2493
  function h() {
1952
- d(Lt[(Lt.indexOf(u) + 1) % Lt.length]);
2494
+ d(Qt[(Qt.indexOf(u) + 1) % Qt.length]);
1953
2495
  }
1954
- let g = Rt[u];
2496
+ let g = $t[u];
1955
2497
  return /* @__PURE__ */ m("header", {
1956
2498
  className: "border-border bg-bg-secondary font-navigation flex h-9 shrink-0 items-center justify-between border-b px-3",
1957
2499
  style: { height: "var(--topbar-height)" },
@@ -1968,9 +2510,9 @@ function Bt({ onMobileMenuToggle: e, breadcrumbs: t, showCommandTrigger: n = !0,
1968
2510
  onClick: () => l(!c),
1969
2511
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover hidden h-7 w-7 cursor-pointer items-center justify-center rounded md:flex",
1970
2512
  "aria-label": c ? "Expand sidebar" : "Collapse sidebar",
1971
- children: p(c ? ue : le, { className: "h-4 w-4" })
2513
+ children: p(c ? ce : se, { className: "h-4 w-4" })
1972
2514
  }),
1973
- t !== !1 && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p("div", { className: "bg-border hidden h-4 w-px md:block" }), /* @__PURE__ */ p(It, {
2515
+ t !== !1 && /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p("div", { className: "bg-border hidden h-4 w-px md:block" }), /* @__PURE__ */ p(Lt, {
1974
2516
  ...t,
1975
2517
  currentPath: a,
1976
2518
  onNavigate: o
@@ -1978,43 +2520,47 @@ function Bt({ onMobileMenuToggle: e, breadcrumbs: t, showCommandTrigger: n = !0,
1978
2520
  ]
1979
2521
  }), /* @__PURE__ */ m("div", {
1980
2522
  className: "flex items-center gap-1",
1981
- children: [n && /* @__PURE__ */ m("button", {
1982
- onClick: s ?? (() => rt()),
1983
- className: "text-text-tertiary bg-bg-primary border-border hover:border-border-strong hover:text-text-secondary font-navigation hidden h-6 cursor-pointer items-center gap-2 rounded-md border px-2 transition-colors duration-[100ms] sm:flex",
1984
- children: [
1985
- /* @__PURE__ */ p(M, { className: "h-3 w-3" }),
1986
- /* @__PURE__ */ p("span", {
1987
- className: "text-2xs",
1988
- children: r
1989
- }),
1990
- /* @__PURE__ */ p("kbd", {
1991
- className: "text-2xs font-mono opacity-60",
1992
- children: i.label
1993
- })
1994
- ]
1995
- }), /* @__PURE__ */ p("button", {
1996
- onClick: h,
1997
- className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-7 w-7 cursor-pointer items-center justify-center rounded",
1998
- "aria-label": `Color mode: ${zt[u]}. Click to cycle.`,
1999
- title: zt[u],
2000
- children: /* @__PURE__ */ p(g, { className: "h-4 w-4" })
2001
- })]
2523
+ children: [
2524
+ n && /* @__PURE__ */ m("button", {
2525
+ onClick: s ?? (() => rt()),
2526
+ className: "text-text-tertiary bg-bg-primary border-border hover:border-border-strong hover:text-text-secondary font-navigation hidden h-6 cursor-pointer items-center gap-2 rounded-md border px-2 transition-colors duration-[100ms] sm:flex",
2527
+ children: [
2528
+ /* @__PURE__ */ p(N, { className: "h-3 w-3" }),
2529
+ /* @__PURE__ */ p("span", {
2530
+ className: "text-2xs",
2531
+ children: r
2532
+ }),
2533
+ /* @__PURE__ */ p("kbd", {
2534
+ className: "text-2xs font-mono opacity-60",
2535
+ children: i.label
2536
+ })
2537
+ ]
2538
+ }),
2539
+ /* @__PURE__ */ p("button", {
2540
+ onClick: h,
2541
+ className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-7 w-7 cursor-pointer items-center justify-center rounded",
2542
+ "aria-label": `Color mode: ${en[u]}. Click to cycle.`,
2543
+ title: en[u],
2544
+ children: /* @__PURE__ */ p(g, { className: "h-4 w-4" })
2545
+ }),
2546
+ /* @__PURE__ */ p(Zt, {})
2547
+ ]
2002
2548
  })]
2003
2549
  });
2004
2550
  }
2005
2551
  //#endregion
2006
2552
  //#region src/components/app-shell/AppShell.tsx
2007
- function Vt({ children: e, navSections: t, brand: n, accounts: r, bottomNavItems: i = [], commandItems: a, breadcrumbs: o, initialAccountIndex: s, onAccountChange: c, onSignOut: u, signOutPath: f, signOutLabel: h, settingsPath: g, settingsLabel: _, onOpenSettings: v, showCommandPalette: y = !0, showCommandTrigger: b = !0, commandTriggerLabel: x, commandShortcut: S, currentPath: C, onNavigate: w, mainClassName: T, className: E }) {
2553
+ function nn({ children: e, navSections: t, brand: n, accounts: r, bottomNavItems: i = [], commandItems: a, breadcrumbs: o, initialAccountIndex: s, onAccountChange: c, onSignOut: u, signOutPath: f, signOutLabel: h, settingsPath: g, settingsLabel: _, onOpenSettings: v, showCommandPalette: y = !0, showCommandTrigger: b = !0, commandTriggerLabel: x, commandShortcut: S, currentPath: C, onNavigate: w, mainClassName: T, className: E }) {
2008
2554
  let [D, O] = d(!1), k = l(() => t.flatMap((e) => e.items), [t]), A = a ?? k;
2009
2555
  return /* @__PURE__ */ m("div", {
2010
- className: I("bg-bg-primary flex h-svh overflow-hidden", E),
2556
+ className: L("bg-bg-primary flex h-svh overflow-hidden", E),
2011
2557
  children: [
2012
2558
  /* @__PURE__ */ p("a", {
2013
2559
  href: "#main-content",
2014
2560
  className: "skip-link",
2015
2561
  children: "Skip to content"
2016
2562
  }),
2017
- /* @__PURE__ */ p(Pt, {
2563
+ /* @__PURE__ */ p(Ft, {
2018
2564
  navSections: t,
2019
2565
  brand: n,
2020
2566
  accounts: r,
@@ -2031,7 +2577,7 @@ function Vt({ children: e, navSections: t, brand: n, accounts: r, bottomNavItems
2031
2577
  }),
2032
2578
  /* @__PURE__ */ m("div", {
2033
2579
  className: "flex min-w-0 flex-1 flex-col",
2034
- children: [/* @__PURE__ */ p(Bt, {
2580
+ children: [/* @__PURE__ */ p(tn, {
2035
2581
  onMobileMenuToggle: () => O(!0),
2036
2582
  breadcrumbs: o,
2037
2583
  showCommandTrigger: y && b,
@@ -2041,7 +2587,7 @@ function Vt({ children: e, navSections: t, brand: n, accounts: r, bottomNavItems
2041
2587
  onNavigate: w
2042
2588
  }), /* @__PURE__ */ p("main", {
2043
2589
  id: "main-content",
2044
- className: I("flex-1 overflow-y-auto p-4 pb-20 md:p-6 md:pb-6", T),
2590
+ className: L("flex-1 overflow-y-auto p-4 pb-20 md:p-6 md:pb-6", T),
2045
2591
  children: e
2046
2592
  })]
2047
2593
  }),
@@ -2068,9 +2614,9 @@ function Vt({ children: e, navSections: t, brand: n, accounts: r, bottomNavItems
2068
2614
  }
2069
2615
  //#endregion
2070
2616
  //#region src/components/app-shell/AuthLayout.tsx
2071
- function Ht({ children: e, className: t }) {
2617
+ function rn({ children: e, className: t }) {
2072
2618
  return /* @__PURE__ */ m("div", {
2073
- className: I("bg-bg-primary relative flex min-h-svh items-center justify-center p-4", t),
2619
+ className: L("bg-bg-primary relative flex min-h-svh items-center justify-center p-4", t),
2074
2620
  children: [/* @__PURE__ */ p("div", {
2075
2621
  className: "pointer-events-none absolute inset-0 opacity-30",
2076
2622
  style: { background: "radial-gradient(ellipse at 50% 30%, var(--accent-muted) 0%, transparent 60%)" }
@@ -2079,27 +2625,27 @@ function Ht({ children: e, className: t }) {
2079
2625
  }
2080
2626
  //#endregion
2081
2627
  //#region src/components/app-shell/BackLink.tsx
2082
- function Ut({ to: e, children: t, onNavigate: n, className: r }) {
2628
+ function an({ to: e, children: t, onNavigate: n, className: r }) {
2083
2629
  return /* @__PURE__ */ m("a", {
2084
2630
  href: e,
2085
2631
  onClick: (t) => z(t, e, n),
2086
- className: I("inline-flex items-center gap-1.5", "text-text-tertiary text-xs", "hover:text-text-primary", r),
2087
- children: [/* @__PURE__ */ p(y, { className: "h-3.5 w-3.5" }), t]
2632
+ className: L("inline-flex items-center gap-1.5", "text-text-tertiary text-xs", "hover:text-text-primary", r),
2633
+ children: [/* @__PURE__ */ p(v, { className: "h-3.5 w-3.5" }), t]
2088
2634
  });
2089
2635
  }
2090
2636
  //#endregion
2091
2637
  //#region src/components/ui/Checkbox.tsx
2092
- function Wt({ checked: e, indeterminate: t, onChange: n, label: r, disabled: i, className: a }) {
2638
+ function on({ checked: e, indeterminate: t, onChange: n, label: r, disabled: i, className: a }) {
2093
2639
  let o = e || t;
2094
2640
  return /* @__PURE__ */ m("label", {
2095
- className: I("flex w-fit items-center gap-2.5", i ? "cursor-not-allowed opacity-40" : "cursor-pointer", a),
2641
+ className: L("flex w-fit items-center gap-2.5", i ? "cursor-not-allowed opacity-40" : "cursor-pointer", a),
2096
2642
  children: [/* @__PURE__ */ p("button", {
2097
2643
  role: "checkbox",
2098
2644
  "aria-checked": t ? "mixed" : e,
2099
2645
  disabled: i,
2100
2646
  onClick: () => n(!e),
2101
- className: I("flex h-4 w-4 shrink-0 items-center justify-center rounded border", "transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", o ? "bg-accent border-accent" : "bg-bg-secondary border-border", !i && "cursor-pointer"),
2102
- children: t ? /* @__PURE__ */ p(ae, { className: "text-text-on-accent h-3 w-3" }) : e ? /* @__PURE__ */ p(C, { className: "text-text-on-accent h-3 w-3" }) : null
2647
+ className: L("flex h-4 w-4 shrink-0 items-center justify-center rounded border", "transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", o ? "bg-accent border-accent" : "bg-bg-secondary border-border", !i && "cursor-pointer"),
2648
+ children: t ? /* @__PURE__ */ p(ae, { className: "text-text-on-accent h-3 w-3" }) : e ? /* @__PURE__ */ p(S, { className: "text-text-on-accent h-3 w-3" }) : null
2103
2649
  }), r && /* @__PURE__ */ p("span", {
2104
2650
  className: "text-text-primary text-xs",
2105
2651
  children: r
@@ -2108,10 +2654,10 @@ function Wt({ checked: e, indeterminate: t, onChange: n, label: r, disabled: i,
2108
2654
  }
2109
2655
  //#endregion
2110
2656
  //#region src/components/ui/FilterButton.tsx
2111
- var Gt = r(function({ icon: e, children: t, className: n, ...r }, i) {
2657
+ var sn = r(function({ icon: e, children: t, className: n, ...r }, i) {
2112
2658
  return /* @__PURE__ */ m("button", {
2113
2659
  ref: i,
2114
- className: I("flex h-7 cursor-pointer items-center gap-1.5 rounded-md px-2.5", "border-border bg-bg-secondary text-text-secondary border", "hover:bg-bg-hover hover:border-border-strong", "text-xs", "transition-colors duration-[100ms]", n),
2660
+ className: L("flex h-7 cursor-pointer items-center gap-1.5 rounded-md px-2.5", "border-border bg-bg-secondary text-text-secondary border", "hover:bg-bg-hover hover:border-border-strong", "text-xs", "transition-colors duration-[100ms]", n),
2115
2661
  ...r,
2116
2662
  children: [/* @__PURE__ */ p(e, { className: "h-3.5 w-3.5 shrink-0" }), t && /* @__PURE__ */ p("span", {
2117
2663
  className: "hidden sm:inline",
@@ -2121,13 +2667,13 @@ var Gt = r(function({ icon: e, children: t, className: n, ...r }, i) {
2121
2667
  });
2122
2668
  //#endregion
2123
2669
  //#region src/components/tables/ColumnPicker.tsx
2124
- function Kt({ columns: e, hidden: t, onToggle: n }) {
2670
+ function cn({ columns: e, hidden: t, onToggle: n }) {
2125
2671
  let [r, a] = d(!1), o = u(null);
2126
2672
  return W(r, i(() => a(!1), []), [o]), /* @__PURE__ */ m("div", {
2127
2673
  className: "relative",
2128
2674
  ref: o,
2129
- children: [/* @__PURE__ */ p(Gt, {
2130
- icon: k,
2675
+ children: [/* @__PURE__ */ p(sn, {
2676
+ icon: O,
2131
2677
  onClick: () => a(!r),
2132
2678
  children: "Columns"
2133
2679
  }), r && /* @__PURE__ */ m("div", {
@@ -2138,7 +2684,7 @@ function Kt({ columns: e, hidden: t, onToggle: n }) {
2138
2684
  }), e.map((e) => /* @__PURE__ */ m("button", {
2139
2685
  onClick: () => n(e.key),
2140
2686
  className: "text-text-secondary hover:text-text-primary hover:bg-bg-hover flex h-7 w-full cursor-pointer items-center gap-2.5 px-3 text-xs transition-colors duration-[100ms]",
2141
- children: [/* @__PURE__ */ p(Wt, {
2687
+ children: [/* @__PURE__ */ p(on, {
2142
2688
  checked: !t.has(e.key),
2143
2689
  onChange: () => n(e.key)
2144
2690
  }), /* @__PURE__ */ p("span", { children: e.header })]
@@ -2148,7 +2694,7 @@ function Kt({ columns: e, hidden: t, onToggle: n }) {
2148
2694
  }
2149
2695
  //#endregion
2150
2696
  //#region src/components/tables/Pagination.tsx
2151
- function qt({ page: e, totalPages: t, onPageChange: n }) {
2697
+ function ln({ page: e, totalPages: t, onPageChange: n }) {
2152
2698
  if (t <= 1) return null;
2153
2699
  let r = [];
2154
2700
  for (let n = 1; n <= t; n++) n === 1 || n === t || n >= e - 1 && n <= e + 1 ? r.push(n) : r[r.length - 1] !== "ellipsis" && r.push("ellipsis");
@@ -2160,14 +2706,14 @@ function qt({ page: e, totalPages: t, onPageChange: n }) {
2160
2706
  onClick: () => n(e - 1),
2161
2707
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-7 w-7 cursor-pointer items-center justify-center rounded disabled:cursor-not-allowed disabled:opacity-30",
2162
2708
  "aria-label": "Previous page",
2163
- children: /* @__PURE__ */ p(E, { className: "h-3.5 w-3.5" })
2709
+ children: /* @__PURE__ */ p(T, { className: "h-3.5 w-3.5" })
2164
2710
  }),
2165
2711
  r.map((t, r) => t === "ellipsis" ? /* @__PURE__ */ p("span", {
2166
2712
  className: "text-text-tertiary flex h-7 w-7 items-center justify-center text-xs",
2167
2713
  children: "..."
2168
2714
  }, `e${r}`) : /* @__PURE__ */ p("button", {
2169
2715
  onClick: () => n(t),
2170
- className: I("flex h-7 w-7 cursor-pointer items-center justify-center rounded text-xs font-medium", "transition-colors duration-[100ms]", t === e ? "bg-accent text-text-on-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
2716
+ className: L("flex h-7 w-7 cursor-pointer items-center justify-center rounded text-xs font-medium", "transition-colors duration-[100ms]", t === e ? "bg-accent text-text-on-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
2171
2717
  children: t
2172
2718
  }, t)),
2173
2719
  /* @__PURE__ */ p("button", {
@@ -2175,14 +2721,14 @@ function qt({ page: e, totalPages: t, onPageChange: n }) {
2175
2721
  onClick: () => n(e + 1),
2176
2722
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-7 w-7 cursor-pointer items-center justify-center rounded disabled:cursor-not-allowed disabled:opacity-30",
2177
2723
  "aria-label": "Next page",
2178
- children: /* @__PURE__ */ p(D, { className: "h-3.5 w-3.5" })
2724
+ children: /* @__PURE__ */ p(E, { className: "h-3.5 w-3.5" })
2179
2725
  })
2180
2726
  ]
2181
2727
  });
2182
2728
  }
2183
2729
  //#endregion
2184
2730
  //#region src/components/tables/sortRows.ts
2185
- function Jt(e, t, n, r) {
2731
+ function un(e, t, n, r) {
2186
2732
  if (!n) return e;
2187
2733
  let i = t.find((e) => e.key === n)?.getValue;
2188
2734
  return i ? [...e].sort((e, t) => {
@@ -2192,16 +2738,16 @@ function Jt(e, t, n, r) {
2192
2738
  }
2193
2739
  //#endregion
2194
2740
  //#region src/components/tables/ResourceTable.tsx
2195
- function Yt({ data: e, columns: t, getRowId: n, onRowClick: r, emptyMessage: i = "No data", sortKey: a, sortDir: o, onSortChange: s }) {
2196
- let c = s !== void 0, [u, f] = d(null), [h, g] = d("asc"), _ = c ? a ?? null : u, y = c ? o ?? "asc" : h, x = l(() => c ? e : Jt(e, t, _, y), [
2741
+ function dn({ data: e, columns: t, getRowId: n, onRowClick: r, emptyMessage: i = "No data", sortKey: a, sortDir: o, onSortChange: s }) {
2742
+ let c = s !== void 0, [u, f] = d(null), [h, g] = d("asc"), v = c ? a ?? null : u, b = c ? o ?? "asc" : h, x = l(() => c ? e : un(e, t, v, b), [
2197
2743
  c,
2198
2744
  e,
2199
2745
  t,
2200
- _,
2201
- y
2746
+ v,
2747
+ b
2202
2748
  ]);
2203
2749
  function S(e) {
2204
- let t = _ === e && y === "asc" ? "desc" : "asc";
2750
+ let t = v === e && b === "asc" ? "desc" : "asc";
2205
2751
  if (c) {
2206
2752
  s(e, t);
2207
2753
  return;
@@ -2215,12 +2761,12 @@ function Yt({ data: e, columns: t, getRowId: n, onRowClick: r, emptyMessage: i =
2215
2761
  children: [/* @__PURE__ */ p("thead", { children: /* @__PURE__ */ p("tr", {
2216
2762
  className: "border-border bg-bg-secondary border-b",
2217
2763
  children: t.map((e) => /* @__PURE__ */ p("th", {
2218
- className: I("text-2xs text-text-tertiary font-label h-7 px-3 text-left font-semibold tracking-wider uppercase", e.sortable && "hover:text-text-secondary cursor-pointer select-none"),
2764
+ className: L("text-2xs text-text-tertiary font-label h-7 px-3 text-left font-semibold tracking-wider uppercase", e.sortable && "hover:text-text-secondary cursor-pointer select-none"),
2219
2765
  style: { width: e.width },
2220
2766
  onClick: e.sortable ? () => S(e.key) : void 0,
2221
2767
  children: /* @__PURE__ */ m("span", {
2222
2768
  className: "inline-flex items-center gap-1",
2223
- children: [e.header, e.sortable && _ === e.key && p(y === "asc" ? b : v, { className: "h-3 w-3" })]
2769
+ children: [e.header, e.sortable && v === e.key && p(b === "asc" ? y : _, { className: "h-3 w-3" })]
2224
2770
  })
2225
2771
  }, e.key))
2226
2772
  }) }), /* @__PURE__ */ p("tbody", { children: x.length === 0 ? /* @__PURE__ */ p("tr", { children: /* @__PURE__ */ p("td", {
@@ -2228,10 +2774,10 @@ function Yt({ data: e, columns: t, getRowId: n, onRowClick: r, emptyMessage: i =
2228
2774
  className: "text-text-tertiary h-32 text-center",
2229
2775
  children: i
2230
2776
  }) }) : x.map((e) => /* @__PURE__ */ p("tr", {
2231
- className: I("border-border h-8 border-b last:border-b-0", "hover:bg-bg-hover", r && "cursor-pointer"),
2777
+ className: L("border-border h-8 border-b last:border-b-0", "hover:bg-bg-hover", r && "cursor-pointer"),
2232
2778
  onClick: r ? () => r(e) : void 0,
2233
2779
  children: t.map((t) => /* @__PURE__ */ p("td", {
2234
- className: I("text-text-primary px-3 whitespace-nowrap", t.cellClassName),
2780
+ className: L("text-text-primary px-3 whitespace-nowrap", t.cellClassName),
2235
2781
  onClick: t.interactive && r ? (e) => e.stopPropagation() : void 0,
2236
2782
  children: t.render(e)
2237
2783
  }, t.key))
@@ -2241,23 +2787,23 @@ function Yt({ data: e, columns: t, getRowId: n, onRowClick: r, emptyMessage: i =
2241
2787
  }
2242
2788
  //#endregion
2243
2789
  //#region src/components/ui/Alert.tsx
2244
- var Xt = {
2790
+ var fn = {
2245
2791
  success: {
2246
2792
  bg: "bg-green-muted",
2247
2793
  border: "border-green/30",
2248
- icon: w,
2794
+ icon: C,
2249
2795
  iconColor: "text-green"
2250
2796
  },
2251
2797
  warning: {
2252
2798
  bg: "bg-yellow-muted",
2253
2799
  border: "border-yellow/30",
2254
- icon: _,
2800
+ icon: g,
2255
2801
  iconColor: "text-yellow"
2256
2802
  },
2257
2803
  error: {
2258
2804
  bg: "bg-red-muted",
2259
2805
  border: "border-red/30",
2260
- icon: me,
2806
+ icon: fe,
2261
2807
  iconColor: "text-red"
2262
2808
  },
2263
2809
  info: {
@@ -2267,14 +2813,14 @@ var Xt = {
2267
2813
  iconColor: "text-blue"
2268
2814
  }
2269
2815
  };
2270
- function Zt({ type: e, title: t, children: n, dismissible: r, className: i }) {
2816
+ function pn({ type: e, title: t, children: n, dismissible: r, className: i }) {
2271
2817
  let [a, o] = d(!1);
2272
2818
  if (a) return null;
2273
- let s = Xt[e], c = s.icon;
2819
+ let s = fn[e], c = s.icon;
2274
2820
  return /* @__PURE__ */ m("div", {
2275
- className: I("flex gap-2.5 rounded-md border p-3", s.bg, s.border, i),
2821
+ className: L("flex gap-2.5 rounded-md border p-3", s.bg, s.border, i),
2276
2822
  children: [
2277
- /* @__PURE__ */ p(c, { className: I("mt-0.5 h-4 w-4 shrink-0", s.iconColor) }),
2823
+ /* @__PURE__ */ p(c, { className: L("mt-0.5 h-4 w-4 shrink-0", s.iconColor) }),
2278
2824
  /* @__PURE__ */ m("div", {
2279
2825
  className: "min-w-0 flex-1",
2280
2826
  children: [t && /* @__PURE__ */ p("p", {
@@ -2289,16 +2835,16 @@ function Zt({ type: e, title: t, children: n, dismissible: r, className: i }) {
2289
2835
  onClick: () => o(!0),
2290
2836
  className: "text-text-tertiary hover:text-text-primary flex h-5 w-5 cursor-pointer items-center justify-center rounded",
2291
2837
  "aria-label": "Dismiss",
2292
- children: /* @__PURE__ */ p(N, { className: "h-3 w-3" })
2838
+ children: /* @__PURE__ */ p(P, { className: "h-3 w-3" })
2293
2839
  })
2294
2840
  ]
2295
2841
  });
2296
2842
  }
2297
2843
  //#endregion
2298
2844
  //#region src/components/ui/AuthCard.tsx
2299
- function Qt({ title: e, subtitle: t, icon: n, children: r, footer: i, className: a }) {
2845
+ function mn({ title: e, subtitle: t, icon: n, children: r, footer: i, className: a }) {
2300
2846
  return /* @__PURE__ */ p("div", {
2301
- className: I("relative z-10 w-full max-w-sm", a),
2847
+ className: L("relative z-10 w-full max-w-sm", a),
2302
2848
  children: /* @__PURE__ */ m("div", {
2303
2849
  className: "bg-bg-secondary border-border rounded-lg border p-8 shadow-lg",
2304
2850
  children: [
@@ -2330,14 +2876,14 @@ function Qt({ title: e, subtitle: t, icon: n, children: r, footer: i, className:
2330
2876
  }
2331
2877
  //#endregion
2332
2878
  //#region src/components/ui/AuthorByline.tsx
2333
- function $t({ name: e, meta: t, nameAppend: n, size: r = "sm", className: i }) {
2879
+ function hn({ name: e, meta: t, nameAppend: n, size: r = "sm", className: i }) {
2334
2880
  return /* @__PURE__ */ m("div", {
2335
- className: I("flex items-center gap-2", i),
2336
- children: [/* @__PURE__ */ p(q, {
2881
+ className: L("flex items-center gap-2", i),
2882
+ children: [/* @__PURE__ */ p(K, {
2337
2883
  name: e,
2338
2884
  size: "sm"
2339
2885
  }), /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ m("p", {
2340
- className: I("text-text-primary font-label font-medium", r === "md" ? "text-xs" : "text-2xs"),
2886
+ className: L("text-text-primary font-label font-medium", r === "md" ? "text-xs" : "text-2xs"),
2341
2887
  children: [e, n]
2342
2888
  }), t && /* @__PURE__ */ p("p", {
2343
2889
  className: "text-text-tertiary font-label text-2xs",
@@ -2347,14 +2893,14 @@ function $t({ name: e, meta: t, nameAppend: n, size: r = "sm", className: i }) {
2347
2893
  }
2348
2894
  //#endregion
2349
2895
  //#region src/components/ui/Badge.tsx
2350
- var en = {
2896
+ var gn = {
2351
2897
  green: "bg-green-muted text-green",
2352
2898
  yellow: "bg-yellow-muted text-yellow",
2353
2899
  red: "bg-red-muted text-red",
2354
2900
  blue: "bg-blue-muted text-blue",
2355
2901
  purple: "bg-purple-muted text-purple",
2356
2902
  gray: "bg-bg-hover text-text-secondary"
2357
- }, tn = {
2903
+ }, _n = {
2358
2904
  green: "bg-green",
2359
2905
  yellow: "bg-yellow",
2360
2906
  red: "bg-red",
@@ -2362,73 +2908,15 @@ var en = {
2362
2908
  purple: "bg-purple",
2363
2909
  gray: "bg-text-tertiary"
2364
2910
  };
2365
- function nn({ color: e = "gray", dot: t, children: n, className: r }) {
2911
+ function vn({ color: e = "gray", dot: t, children: n, className: r }) {
2366
2912
  return /* @__PURE__ */ m("span", {
2367
- className: I("font-label text-2xs inline-flex items-center gap-1.5 rounded-md px-2 py-0.5 font-medium", en[e], r),
2368
- children: [t && /* @__PURE__ */ p("span", { className: I("h-1.5 w-1.5 rounded-full", tn[e]) }), n]
2913
+ className: L("font-label text-2xs inline-flex items-center gap-1.5 rounded-md px-2 py-0.5 font-medium", gn[e], r),
2914
+ children: [t && /* @__PURE__ */ p("span", { className: L("h-1.5 w-1.5 rounded-full", _n[e]) }), n]
2369
2915
  });
2370
2916
  }
2371
2917
  //#endregion
2372
- //#region src/components/ui/Button.tsx
2373
- var rn = {
2374
- primary: "bg-accent text-text-on-accent hover:bg-accent-hover active:bg-accent-active",
2375
- secondary: "bg-bg-secondary text-text-primary border border-border hover:bg-bg-hover hover:border-border-strong",
2376
- danger: "bg-red-muted text-red border border-transparent hover:bg-red/20",
2377
- ghost: "text-text-secondary hover:text-text-primary hover:bg-bg-hover",
2378
- icon: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover"
2379
- }, an = {
2380
- sm: "h-7 px-2.5 text-xs gap-1.5",
2381
- md: "h-8 px-3 text-xs gap-2",
2382
- lg: "h-9 px-4 text-sm gap-2"
2383
- }, on = {
2384
- sm: "h-7 w-7",
2385
- md: "h-8 w-8",
2386
- lg: "h-9 w-9"
2387
- }, sn = {
2388
- sm: "h-3.5 w-3.5",
2389
- md: "h-3.5 w-3.5",
2390
- lg: "h-4 w-4"
2391
- }, cn = {
2392
- sm: "hidden sm:inline",
2393
- md: "hidden md:inline",
2394
- lg: "hidden lg:inline"
2395
- }, ln = {
2396
- sm: {
2397
- sm: "px-1.5 sm:px-2.5",
2398
- md: "px-2 sm:px-3",
2399
- lg: "px-2.5 sm:px-4"
2400
- },
2401
- md: {
2402
- sm: "px-1.5 md:px-2.5",
2403
- md: "px-2 md:px-3",
2404
- lg: "px-2.5 md:px-4"
2405
- },
2406
- lg: {
2407
- sm: "px-1.5 lg:px-2.5",
2408
- md: "px-2 lg:px-3",
2409
- lg: "px-2.5 lg:px-4"
2410
- }
2411
- }, J = r(({ variant: e = "secondary", size: t = "md", loading: n, icon: r, hideLabel: i, className: a, children: o, disabled: s, ...c }, l) => {
2412
- let u = e === "icon", d = i === !0 ? "sm" : i === !1 ? void 0 : i;
2413
- return /* @__PURE__ */ m("button", {
2414
- ref: l,
2415
- disabled: s || n,
2416
- className: I("inline-flex items-center justify-center rounded-md font-medium", "font-control", "transition-colors duration-[100ms] ease-out", "cursor-pointer", "disabled:cursor-not-allowed disabled:opacity-40", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", rn[e], u ? on[t] : an[t], d && !u && ln[d]?.[t], a),
2417
- ...c,
2418
- children: [
2419
- n && /* @__PURE__ */ p(ne, { className: "h-3.5 w-3.5 animate-spin" }),
2420
- r && !n && /* @__PURE__ */ p(r, { className: sn[t] }),
2421
- o && (d ? /* @__PURE__ */ p("span", {
2422
- className: cn[d],
2423
- children: o
2424
- }) : o)
2425
- ]
2426
- });
2427
- });
2428
- J.displayName = "Button";
2429
- //#endregion
2430
2918
  //#region src/components/ui/CalendarGrid.tsx
2431
- var un = [
2919
+ var yn = [
2432
2920
  "Mo",
2433
2921
  "Tu",
2434
2922
  "We",
@@ -2436,7 +2924,7 @@ var un = [
2436
2924
  "Fr",
2437
2925
  "Sa",
2438
2926
  "Su"
2439
- ], dn = [
2927
+ ], bn = [
2440
2928
  "January",
2441
2929
  "February",
2442
2930
  "March",
@@ -2450,23 +2938,23 @@ var un = [
2450
2938
  "November",
2451
2939
  "December"
2452
2940
  ];
2453
- function Y(e, t) {
2941
+ function xn(e, t) {
2454
2942
  return e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
2455
2943
  }
2456
- function fn(e, t, n) {
2944
+ function Sn(e, t, n) {
2457
2945
  if (!t || !n) return !1;
2458
2946
  let r = e.getTime(), i = Math.min(t.getTime(), n.getTime()), a = Math.max(t.getTime(), n.getTime());
2459
2947
  return r > i && r < a;
2460
2948
  }
2461
- function pn(e, t) {
2949
+ function Cn(e, t) {
2462
2950
  return new Date(e, t + 1, 0).getDate();
2463
2951
  }
2464
- function mn(e, t) {
2952
+ function wn(e, t) {
2465
2953
  let n = new Date(e, t, 1).getDay();
2466
2954
  return n === 0 ? 6 : n - 1;
2467
2955
  }
2468
- function X({ year: e, month: t, selected: n, rangeStart: r, rangeEnd: i, hoverDate: a, onSelect: o, onMonthChange: s, onHover: c, minDate: l, maxDate: f }) {
2469
- let h = pn(e, t), g = mn(e, t), _ = /* @__PURE__ */ new Date(), v = u(null), [y, b] = d(null);
2956
+ function Tn({ year: e, month: t, selected: n, rangeStart: r, rangeEnd: i, hoverDate: a, onSelect: o, onMonthChange: s, onHover: c, minDate: l, maxDate: f }) {
2957
+ let h = Cn(e, t), g = wn(e, t), _ = /* @__PURE__ */ new Date(), v = u(null), [y, b] = d(null);
2470
2958
  function x() {
2471
2959
  return y !== null && y >= 1 && y <= h ? y : n && n.getFullYear() === e && n.getMonth() === t ? n.getDate() : r && r.getFullYear() === e && r.getMonth() === t ? r.getDate() : _.getFullYear() === e && _.getMonth() === t ? _.getDate() : 1;
2472
2960
  }
@@ -2495,7 +2983,7 @@ function X({ year: e, month: t, selected: n, rangeStart: r, rangeEnd: i, hoverDa
2495
2983
  function w() {
2496
2984
  t === 0 ? s(e - 1, 11) : s(e, t - 1);
2497
2985
  }
2498
- function T() {
2986
+ function D() {
2499
2987
  t === 11 ? s(e + 1, 0) : s(e, t + 1);
2500
2988
  }
2501
2989
  let O = [];
@@ -2512,45 +3000,45 @@ function X({ year: e, month: t, selected: n, rangeStart: r, rangeEnd: i, hoverDa
2512
3000
  onClick: w,
2513
3001
  "aria-label": "Previous month",
2514
3002
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-6 w-6 cursor-pointer items-center justify-center rounded-md transition-colors duration-[100ms]",
2515
- children: /* @__PURE__ */ p(E, { className: "h-3.5 w-3.5" })
3003
+ children: /* @__PURE__ */ p(T, { className: "h-3.5 w-3.5" })
2516
3004
  }),
2517
3005
  /* @__PURE__ */ m("span", {
2518
3006
  className: "text-text-primary text-xs font-semibold",
2519
3007
  "aria-live": "polite",
2520
3008
  children: [
2521
- dn[t],
3009
+ bn[t],
2522
3010
  " ",
2523
3011
  e
2524
3012
  ]
2525
3013
  }),
2526
3014
  /* @__PURE__ */ p("button", {
2527
3015
  type: "button",
2528
- onClick: T,
3016
+ onClick: D,
2529
3017
  "aria-label": "Next month",
2530
3018
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-6 w-6 cursor-pointer items-center justify-center rounded-md transition-colors duration-[100ms]",
2531
- children: /* @__PURE__ */ p(D, { className: "h-3.5 w-3.5" })
3019
+ children: /* @__PURE__ */ p(E, { className: "h-3.5 w-3.5" })
2532
3020
  })
2533
3021
  ]
2534
3022
  }), /* @__PURE__ */ m("div", {
2535
3023
  className: "grid grid-cols-7 gap-0",
2536
- children: [un.map((e) => /* @__PURE__ */ p("div", {
3024
+ children: [yn.map((e) => /* @__PURE__ */ p("div", {
2537
3025
  className: "text-text-tertiary text-2xs flex h-8 items-center justify-center font-medium",
2538
3026
  children: e
2539
3027
  }, e)), O.map((s, u) => {
2540
3028
  if (s === null) return /* @__PURE__ */ p("div", { className: "h-8" }, `empty-${u}`);
2541
- let d = new Date(e, t, s), m = Y(d, _), h = n ? Y(d, n) : !1, g = r ? Y(d, r) : !1, v = i ? Y(d, i) : !1, y = fn(d, r ?? null, i ?? a ?? null), b = l && d < l || f && d > f;
3029
+ let d = new Date(e, t, s), m = xn(d, _), h = n ? xn(d, n) : !1, g = r ? xn(d, r) : !1, v = i ? xn(d, i) : !1, y = Sn(d, r ?? null, i ?? a ?? null), b = l && d < l || f && d > f;
2542
3030
  return /* @__PURE__ */ p("button", {
2543
3031
  type: "button",
2544
3032
  "data-day": s,
2545
3033
  disabled: !!b,
2546
3034
  tabIndex: s === S ? 0 : -1,
2547
- "aria-label": `${dn[t]} ${s}, ${e}`,
3035
+ "aria-label": `${bn[t]} ${s}, ${e}`,
2548
3036
  "aria-current": m ? "date" : void 0,
2549
3037
  onClick: () => o(d),
2550
3038
  onKeyDown: (e) => C(e, s),
2551
3039
  onMouseEnter: () => c?.(d),
2552
3040
  onMouseLeave: () => c?.(null),
2553
- className: I("flex h-8 w-full cursor-pointer items-center justify-center text-xs transition-colors duration-[100ms]", "rounded-md", b && "cursor-not-allowed opacity-30", !b && !h && !g && !v && !y && "hover:bg-bg-hover text-text-primary", m && !h && !g && !v && "text-accent font-semibold", (h || g || v) && "bg-accent text-text-on-accent font-semibold", y && !h && !g && !v && "bg-accent-muted text-accent"),
3041
+ className: L("flex h-8 w-full cursor-pointer items-center justify-center text-xs transition-colors duration-[100ms]", "rounded-md", b && "cursor-not-allowed opacity-30", !b && !h && !g && !v && !y && "hover:bg-bg-hover text-text-primary", m && !h && !g && !v && "text-accent font-semibold", (h || g || v) && "bg-accent text-text-on-accent font-semibold", y && !h && !g && !v && "bg-accent-muted text-accent"),
2554
3042
  children: s
2555
3043
  }, s);
2556
3044
  })]
@@ -2559,9 +3047,9 @@ function X({ year: e, month: t, selected: n, rangeStart: r, rangeEnd: i, hoverDa
2559
3047
  }
2560
3048
  //#endregion
2561
3049
  //#region src/components/ui/Card.tsx
2562
- function hn({ children: e, className: t, header: n, footer: r }) {
3050
+ function En({ children: e, className: t, header: n, footer: r }) {
2563
3051
  return /* @__PURE__ */ m("div", {
2564
- className: I("bg-bg-secondary border-border overflow-hidden rounded-md border", t),
3052
+ className: L("bg-bg-secondary border-border overflow-hidden rounded-md border", t),
2565
3053
  children: [
2566
3054
  n && /* @__PURE__ */ p("div", {
2567
3055
  className: "border-border border-b px-3 py-2.5",
@@ -2580,21 +3068,21 @@ function hn({ children: e, className: t, header: n, footer: r }) {
2580
3068
  }
2581
3069
  //#endregion
2582
3070
  //#region src/components/ui/Combobox.tsx
2583
- function gn({ options: e, value: t, onChange: n, placeholder: r = "Select...", label: a, className: o }) {
2584
- let [c, l] = d(!1), [f, h] = d(""), [g, _] = d(0), v = u(null), y = u(null), b = s(), x = e.find((e) => e.value === t), S = e.filter((e) => e.label.toLowerCase().includes(f.toLowerCase()));
2585
- function w(e) {
3071
+ function Dn({ options: e, value: t, onChange: n, placeholder: r = "Select...", label: a, className: o }) {
3072
+ let [c, l] = d(!1), [f, h] = d(""), [g, _] = d(0), v = u(null), y = u(null), b = s(), x = e.find((e) => e.value === t), C = e.filter((e) => e.label.toLowerCase().includes(f.toLowerCase()));
3073
+ function T(e) {
2586
3074
  h(e), _(0);
2587
3075
  }
2588
3076
  function E(e) {
2589
3077
  switch (e.key) {
2590
3078
  case "ArrowDown":
2591
- e.preventDefault(), _((e) => Math.min(e + 1, S.length - 1));
3079
+ e.preventDefault(), _((e) => Math.min(e + 1, C.length - 1));
2592
3080
  break;
2593
3081
  case "ArrowUp":
2594
3082
  e.preventDefault(), _((e) => Math.max(e - 1, 0));
2595
3083
  break;
2596
3084
  case "Enter":
2597
- e.preventDefault(), S[g] && (n(S[g].value), l(!1));
3085
+ e.preventDefault(), C[g] && (n(C[g].value), l(!1));
2598
3086
  break;
2599
3087
  case "Escape":
2600
3088
  l(!1);
@@ -2606,7 +3094,7 @@ function gn({ options: e, value: t, onChange: n, placeholder: r = "Select...", l
2606
3094
  l(!0), h(""), _(0), setTimeout(() => y.current?.focus(), 0);
2607
3095
  }
2608
3096
  return /* @__PURE__ */ m("div", {
2609
- className: I("flex flex-col gap-1.5", o),
3097
+ className: L("flex flex-col gap-1.5", o),
2610
3098
  ref: v,
2611
3099
  children: [a && /* @__PURE__ */ p("span", {
2612
3100
  className: "text-text-secondary font-label text-xs font-medium",
@@ -2620,28 +3108,28 @@ function gn({ options: e, value: t, onChange: n, placeholder: r = "Select...", l
2620
3108
  /* @__PURE__ */ p("button", {
2621
3109
  type: "button",
2622
3110
  onClick: () => c ? l(!1) : D(),
2623
- className: I("font-control flex h-7 w-full cursor-pointer items-center rounded-md px-2 pr-7 text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2"),
3111
+ className: L("font-control flex h-7 w-full cursor-pointer items-center rounded-md px-2 pr-7 text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2"),
2624
3112
  children: x ? x.label : /* @__PURE__ */ p("span", {
2625
3113
  className: "text-text-disabled",
2626
3114
  children: r
2627
3115
  })
2628
3116
  }),
2629
- /* @__PURE__ */ p(T, { className: I("text-text-tertiary pointer-events-none absolute top-1/2 right-2.5 h-3.5 w-3.5 -translate-y-1/2 transition-transform", c && "rotate-180") }),
3117
+ /* @__PURE__ */ p(w, { className: L("text-text-tertiary pointer-events-none absolute top-1/2 right-2.5 h-3.5 w-3.5 -translate-y-1/2 transition-transform", c && "rotate-180") }),
2630
3118
  c && /* @__PURE__ */ m("div", {
2631
3119
  className: "bg-bg-tertiary border-border-strong animate-scale-in absolute top-full right-0 left-0 z-50 mt-1 overflow-hidden rounded-md border shadow-lg",
2632
3120
  children: [/* @__PURE__ */ p("div", {
2633
3121
  className: "border-border border-b p-1.5",
2634
3122
  children: /* @__PURE__ */ m("div", {
2635
3123
  className: "relative",
2636
- children: [/* @__PURE__ */ p(M, { className: "text-text-tertiary absolute top-1/2 left-2 h-3 w-3 -translate-y-1/2" }), /* @__PURE__ */ p("input", {
3124
+ children: [/* @__PURE__ */ p(N, { className: "text-text-tertiary absolute top-1/2 left-2 h-3 w-3 -translate-y-1/2" }), /* @__PURE__ */ p("input", {
2637
3125
  ref: y,
2638
3126
  type: "text",
2639
3127
  "aria-label": "Search options",
2640
3128
  "aria-controls": b,
2641
- "aria-activedescendant": S[g] ? `${b}-${g}` : void 0,
3129
+ "aria-activedescendant": C[g] ? `${b}-${g}` : void 0,
2642
3130
  "aria-autocomplete": "list",
2643
3131
  value: f,
2644
- onChange: (e) => w(e.target.value),
3132
+ onChange: (e) => T(e.target.value),
2645
3133
  onKeyDown: E,
2646
3134
  placeholder: "Search...",
2647
3135
  className: "bg-bg-secondary text-text-primary border-border placeholder:text-text-disabled focus:border-accent font-control h-7 w-full rounded border pr-2 pl-7 text-xs focus:outline-none"
@@ -2651,10 +3139,10 @@ function gn({ options: e, value: t, onChange: n, placeholder: r = "Select...", l
2651
3139
  id: b,
2652
3140
  className: "max-h-48 overflow-y-auto py-1",
2653
3141
  role: "listbox",
2654
- children: S.length === 0 ? /* @__PURE__ */ p("li", {
3142
+ children: C.length === 0 ? /* @__PURE__ */ p("li", {
2655
3143
  className: "text-text-tertiary px-3 py-2 text-center text-xs",
2656
3144
  children: "No results"
2657
- }) : S.map((e, r) => /* @__PURE__ */ m("li", {
3145
+ }) : C.map((e, r) => /* @__PURE__ */ m("li", {
2658
3146
  id: `${b}-${r}`,
2659
3147
  role: "option",
2660
3148
  "aria-selected": e.value === t,
@@ -2662,11 +3150,11 @@ function gn({ options: e, value: t, onChange: n, placeholder: r = "Select...", l
2662
3150
  n(e.value), l(!1);
2663
3151
  },
2664
3152
  onMouseEnter: () => _(r),
2665
- className: I("font-control flex h-7 w-full cursor-pointer items-center gap-2 px-3 text-xs", "transition-colors duration-[100ms]", r === g ? "bg-accent-muted text-accent" : e.value === t ? "text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
3153
+ className: L("font-control flex h-7 w-full cursor-pointer items-center gap-2 px-3 text-xs", "transition-colors duration-[100ms]", r === g ? "bg-accent-muted text-accent" : e.value === t ? "text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
2666
3154
  children: [/* @__PURE__ */ p("span", {
2667
3155
  className: "flex-1 truncate",
2668
3156
  children: e.label
2669
- }), e.value === t && /* @__PURE__ */ p(C, { className: "h-3 w-3 shrink-0" })]
3157
+ }), e.value === t && /* @__PURE__ */ p(S, { className: "h-3 w-3 shrink-0" })]
2670
3158
  }, e.value))
2671
3159
  })]
2672
3160
  })
@@ -2676,9 +3164,9 @@ function gn({ options: e, value: t, onChange: n, placeholder: r = "Select...", l
2676
3164
  }
2677
3165
  //#endregion
2678
3166
  //#region src/components/ui/DangerZone.tsx
2679
- function _n({ title: e = "Danger Zone", description: t, children: n, className: r }) {
3167
+ function On({ title: e = "Danger Zone", description: t, children: n, className: r }) {
2680
3168
  return /* @__PURE__ */ m("div", {
2681
- className: I("border-border mt-8 border-t pt-6", r),
3169
+ className: L("border-border mt-8 border-t pt-6", r),
2682
3170
  children: [
2683
3171
  /* @__PURE__ */ p("h3", {
2684
3172
  className: "text-red mb-2 text-xs font-semibold",
@@ -2693,18 +3181,8 @@ function _n({ title: e = "Danger Zone", description: t, children: n, className:
2693
3181
  });
2694
3182
  }
2695
3183
  //#endregion
2696
- //#region src/hooks/useDropUp.ts
2697
- function vn(e, t, n) {
2698
- let [r, i] = d(!1);
2699
- return c(() => {
2700
- if (!e || !n.current || !t.current) return;
2701
- let r = t.current.getBoundingClientRect(), a = n.current.getBoundingClientRect();
2702
- i(window.innerHeight - r.bottom < a.height + 8);
2703
- }, [e]), r;
2704
- }
2705
- //#endregion
2706
3184
  //#region src/components/ui/DatePicker.tsx
2707
- function yn(e) {
3185
+ function kn(e) {
2708
3186
  return `${[
2709
3187
  "Jan",
2710
3188
  "Feb",
@@ -2720,13 +3198,13 @@ function yn(e) {
2720
3198
  "Dec"
2721
3199
  ][e.getMonth()]} ${e.getDate()}, ${e.getFullYear()}`;
2722
3200
  }
2723
- function bn({ label: e, value: t, onChange: n, placeholder: r = "Select date...", format: a = yn }) {
2724
- let [o, s] = d(!1), c = u(null), l = u(null), f = vn(o, c, l), h = /* @__PURE__ */ new Date(), [g, _] = d(t?.getFullYear() ?? h.getFullYear()), [v, y] = d(t?.getMonth() ?? h.getMonth());
3201
+ function An({ label: e, value: t, onChange: n, placeholder: r = "Select date...", format: a = kn }) {
3202
+ let [o, s] = d(!1), c = u(null), l = u(null), f = Gt(o, c, l), h = /* @__PURE__ */ new Date(), [g, _] = d(t?.getFullYear() ?? h.getFullYear()), [v, y] = d(t?.getMonth() ?? h.getMonth());
2725
3203
  W(o, i(() => s(!1), []), [c]);
2726
3204
  function b(e) {
2727
3205
  n(e), s(!1);
2728
3206
  }
2729
- function x() {
3207
+ function S() {
2730
3208
  !o && t && (_(t.getFullYear()), y(t.getMonth())), s(!o);
2731
3209
  }
2732
3210
  return /* @__PURE__ */ m("div", {
@@ -2740,22 +3218,22 @@ function bn({ label: e, value: t, onChange: n, placeholder: r = "Select date..."
2740
3218
  children: [
2741
3219
  /* @__PURE__ */ p("button", {
2742
3220
  type: "button",
2743
- onClick: x,
3221
+ onClick: S,
2744
3222
  "aria-haspopup": "dialog",
2745
3223
  "aria-expanded": o,
2746
- className: I("flex h-7 w-full cursor-pointer items-center rounded-md text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "px-2 pr-7"),
3224
+ className: L("flex h-7 w-full cursor-pointer items-center rounded-md text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "px-2 pr-7"),
2747
3225
  children: t ? a(t) : /* @__PURE__ */ p("span", {
2748
3226
  className: "text-text-disabled",
2749
3227
  children: r
2750
3228
  })
2751
3229
  }),
2752
- /* @__PURE__ */ p(S, { className: "text-text-tertiary pointer-events-none absolute top-1/2 right-2 h-3 w-3 -translate-y-1/2" }),
3230
+ /* @__PURE__ */ p(x, { className: "text-text-tertiary pointer-events-none absolute top-1/2 right-2 h-3 w-3 -translate-y-1/2" }),
2753
3231
  o && /* @__PURE__ */ p("div", {
2754
3232
  ref: l,
2755
3233
  role: "dialog",
2756
3234
  "aria-label": "Choose date",
2757
- className: I("bg-bg-tertiary border-border-strong animate-scale-in absolute left-0 z-[100] rounded-md border p-3 shadow-lg", f ? "bottom-full mb-1" : "top-full mt-1"),
2758
- children: /* @__PURE__ */ p(X, {
3235
+ className: L("bg-bg-tertiary border-border-strong animate-scale-in absolute left-0 z-[100] rounded-md border p-3 shadow-lg", f ? "bottom-full mb-1" : "top-full mt-1"),
3236
+ children: /* @__PURE__ */ p(Tn, {
2759
3237
  year: g,
2760
3238
  month: v,
2761
3239
  selected: t,
@@ -2771,7 +3249,7 @@ function bn({ label: e, value: t, onChange: n, placeholder: r = "Select date..."
2771
3249
  }
2772
3250
  //#endregion
2773
3251
  //#region src/components/ui/DateRangePicker.tsx
2774
- var xn = [
3252
+ var jn = [
2775
3253
  "Jan",
2776
3254
  "Feb",
2777
3255
  "Mar",
@@ -2785,32 +3263,32 @@ var xn = [
2785
3263
  "Nov",
2786
3264
  "Dec"
2787
3265
  ];
2788
- function Sn(e) {
2789
- return `${xn[e.getMonth()]} ${e.getDate()}, ${e.getFullYear()}`;
3266
+ function Mn(e) {
3267
+ return `${jn[e.getMonth()]} ${e.getDate()}, ${e.getFullYear()}`;
2790
3268
  }
2791
- function Cn(e) {
2792
- return e.start && e.end ? `${Sn(e.start)} – ${Sn(e.end)}` : e.start ? Sn(e.start) : "";
3269
+ function Nn(e) {
3270
+ return e.start && e.end ? `${Mn(e.start)} – ${Mn(e.end)}` : e.start ? Mn(e.start) : "";
2793
3271
  }
2794
- function wn({ label: e, value: t, onChange: n, placeholder: r = "Select date range..." }) {
2795
- let [a, o] = d(!1), s = u(null), c = u(null), l = vn(a, s, c), f = /* @__PURE__ */ new Date(), [h, g] = d(t.start?.getFullYear() ?? f.getFullYear()), [_, v] = d(t.start?.getMonth() ?? f.getMonth()), [y, b] = d(null), [x, C] = d("start"), [w, T] = d(t.start), [E, D] = d(t.end);
3272
+ function Pn({ label: e, value: t, onChange: n, placeholder: r = "Select date range..." }) {
3273
+ let [a, o] = d(!1), s = u(null), c = u(null), l = Gt(a, s, c), f = /* @__PURE__ */ new Date(), [h, g] = d(t.start?.getFullYear() ?? f.getFullYear()), [_, v] = d(t.start?.getMonth() ?? f.getMonth()), [y, b] = d(null), [S, C] = d("start"), [w, T] = d(t.start), [E, D] = d(t.end);
2796
3274
  W(a, i(() => o(!1), []), [s]);
2797
3275
  let O = _ === 11 ? h + 1 : h, k = _ === 11 ? 0 : _ + 1;
2798
3276
  function A() {
2799
3277
  a || (T(t.start), D(t.end), C((t.start && t.end, "start")), t.start && (g(t.start.getFullYear()), v(t.start.getMonth()))), o(!a);
2800
3278
  }
2801
- function j(e) {
2802
- x === "start" ? (T(e), D(null), C("end")) : (w && e < w ? (D(w), T(e)) : D(e), C("start"), n({
3279
+ function ee(e) {
3280
+ S === "start" ? (T(e), D(null), C("end")) : (w && e < w ? (D(w), T(e)) : D(e), C("start"), n({
2803
3281
  start: w && e < w ? e : w,
2804
3282
  end: w && e < w ? w : e
2805
3283
  }), o(!1));
2806
3284
  }
2807
- function ee() {
3285
+ function te() {
2808
3286
  _ === 0 ? (g(h - 1), v(11)) : v(_ - 1);
2809
3287
  }
2810
- function te() {
3288
+ function ne() {
2811
3289
  _ === 11 ? (g(h + 1), v(0)) : v(_ + 1);
2812
3290
  }
2813
- let ne = t.start || t.end ? Cn(t) : "";
3291
+ let re = t.start || t.end ? Nn(t) : "";
2814
3292
  return /* @__PURE__ */ m("div", {
2815
3293
  className: "flex flex-col gap-1.5",
2816
3294
  ref: s,
@@ -2825,24 +3303,24 @@ function wn({ label: e, value: t, onChange: n, placeholder: r = "Select date ran
2825
3303
  onClick: A,
2826
3304
  "aria-haspopup": "dialog",
2827
3305
  "aria-expanded": a,
2828
- className: I("flex h-7 w-full cursor-pointer items-center rounded-md text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "px-2 pr-7"),
2829
- children: ne || /* @__PURE__ */ p("span", {
3306
+ className: L("flex h-7 w-full cursor-pointer items-center rounded-md text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "px-2 pr-7"),
3307
+ children: re || /* @__PURE__ */ p("span", {
2830
3308
  className: "text-text-disabled",
2831
3309
  children: r
2832
3310
  })
2833
3311
  }),
2834
- /* @__PURE__ */ p(S, { className: "text-text-tertiary pointer-events-none absolute top-1/2 right-2 h-3 w-3 -translate-y-1/2" }),
3312
+ /* @__PURE__ */ p(x, { className: "text-text-tertiary pointer-events-none absolute top-1/2 right-2 h-3 w-3 -translate-y-1/2" }),
2835
3313
  a && /* @__PURE__ */ m("div", {
2836
3314
  ref: c,
2837
3315
  role: "dialog",
2838
3316
  "aria-label": "Choose date range",
2839
- className: I("bg-bg-tertiary border-border-strong animate-scale-in absolute left-0 z-[100] rounded-md border p-3 shadow-lg", l ? "bottom-full mb-1" : "top-full mt-1"),
3317
+ className: L("bg-bg-tertiary border-border-strong animate-scale-in absolute left-0 z-[100] rounded-md border p-3 shadow-lg", l ? "bottom-full mb-1" : "top-full mt-1"),
2840
3318
  children: [/* @__PURE__ */ m("div", {
2841
3319
  className: "mb-2 flex items-center justify-between",
2842
3320
  children: [
2843
3321
  /* @__PURE__ */ p("button", {
2844
3322
  type: "button",
2845
- onClick: ee,
3323
+ onClick: te,
2846
3324
  "aria-label": "Previous month",
2847
3325
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-6 w-6 cursor-pointer items-center justify-center rounded-md transition-colors duration-[100ms]",
2848
3326
  children: /* @__PURE__ */ p("span", {
@@ -2853,11 +3331,11 @@ function wn({ label: e, value: t, onChange: n, placeholder: r = "Select date ran
2853
3331
  /* @__PURE__ */ p("span", {
2854
3332
  className: "text-text-tertiary text-2xs",
2855
3333
  "aria-live": "polite",
2856
- children: x === "start" ? "Select start date" : "Select end date"
3334
+ children: S === "start" ? "Select start date" : "Select end date"
2857
3335
  }),
2858
3336
  /* @__PURE__ */ p("button", {
2859
3337
  type: "button",
2860
- onClick: te,
3338
+ onClick: ne,
2861
3339
  "aria-label": "Next month",
2862
3340
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-6 w-6 cursor-pointer items-center justify-center rounded-md transition-colors duration-[100ms]",
2863
3341
  children: /* @__PURE__ */ p("span", {
@@ -2868,24 +3346,24 @@ function wn({ label: e, value: t, onChange: n, placeholder: r = "Select date ran
2868
3346
  ]
2869
3347
  }), /* @__PURE__ */ m("div", {
2870
3348
  className: "flex gap-4",
2871
- children: [/* @__PURE__ */ p(X, {
3349
+ children: [/* @__PURE__ */ p(Tn, {
2872
3350
  year: h,
2873
3351
  month: _,
2874
3352
  rangeStart: w,
2875
3353
  rangeEnd: E,
2876
- hoverDate: x === "end" ? y : null,
2877
- onSelect: j,
3354
+ hoverDate: S === "end" ? y : null,
3355
+ onSelect: ee,
2878
3356
  onMonthChange: (e, t) => {
2879
3357
  g(e), v(t);
2880
3358
  },
2881
3359
  onHover: b
2882
- }), /* @__PURE__ */ p(X, {
3360
+ }), /* @__PURE__ */ p(Tn, {
2883
3361
  year: O,
2884
3362
  month: k,
2885
3363
  rangeStart: w,
2886
3364
  rangeEnd: E,
2887
- hoverDate: x === "end" ? y : null,
2888
- onSelect: j,
3365
+ hoverDate: S === "end" ? y : null,
3366
+ onSelect: ee,
2889
3367
  onMonthChange: (e, t) => {
2890
3368
  t === 0 ? (g(e - 1), v(11)) : (g(e), v(t - 1));
2891
3369
  },
@@ -2899,7 +3377,7 @@ function wn({ label: e, value: t, onChange: n, placeholder: r = "Select date ran
2899
3377
  }
2900
3378
  //#endregion
2901
3379
  //#region src/components/ui/DateTimePicker.tsx
2902
- var Tn = [
3380
+ var Fn = [
2903
3381
  "Jan",
2904
3382
  "Feb",
2905
3383
  "Mar",
@@ -2913,7 +3391,7 @@ var Tn = [
2913
3391
  "Nov",
2914
3392
  "Dec"
2915
3393
  ];
2916
- function En(e) {
3394
+ function In(e) {
2917
3395
  return e === 0 ? {
2918
3396
  hour12: 12,
2919
3397
  period: "AM"
@@ -2928,41 +3406,41 @@ function En(e) {
2928
3406
  period: "PM"
2929
3407
  };
2930
3408
  }
2931
- function Dn(e, t) {
3409
+ function Ln(e, t) {
2932
3410
  return t === "AM" ? e === 12 ? 0 : e : e === 12 ? 12 : e + 12;
2933
3411
  }
2934
- function On(e) {
2935
- let t = Tn[e.getMonth()], n = e.getDate(), r = e.getFullYear(), { hour12: i, period: a } = En(e.getHours());
3412
+ function Rn(e) {
3413
+ let t = Fn[e.getMonth()], n = e.getDate(), r = e.getFullYear(), { hour12: i, period: a } = In(e.getHours());
2936
3414
  return `${t} ${n}, ${r} ${i}:${String(e.getMinutes()).padStart(2, "0")} ${a}`;
2937
3415
  }
2938
- function kn(e) {
3416
+ function zn(e) {
2939
3417
  return String(e).padStart(2, "0");
2940
3418
  }
2941
- function An({ label: e, value: t, onChange: n, placeholder: r = "Select date & time..." }) {
2942
- let [a, o] = d(!1), s = u(null), c = u(null), l = vn(a, s, c), f = /* @__PURE__ */ new Date(), h = t ? En(t.getHours()) : {
3419
+ function Bn({ label: e, value: t, onChange: n, placeholder: r = "Select date & time..." }) {
3420
+ let [a, o] = d(!1), s = u(null), c = u(null), l = Gt(a, s, c), f = /* @__PURE__ */ new Date(), h = t ? In(t.getHours()) : {
2943
3421
  hour12: 12,
2944
3422
  period: "PM"
2945
- }, [g, _] = d(t?.getFullYear() ?? f.getFullYear()), [v, y] = d(t?.getMonth() ?? f.getMonth()), [b, x] = d(String(h.hour12)), [C, w] = d(t ? kn(t.getMinutes()) : "00"), [T, E] = d(h.period), [D, O] = d(t);
3423
+ }, [g, _] = d(t?.getFullYear() ?? f.getFullYear()), [v, y] = d(t?.getMonth() ?? f.getMonth()), [b, S] = d(String(h.hour12)), [C, w] = d(t ? zn(t.getMinutes()) : "00"), [T, E] = d(h.period), [D, O] = d(t);
2946
3424
  W(a, i(() => o(!1), []), [s]);
2947
3425
  function k(e) {
2948
3426
  O(e);
2949
3427
  }
2950
3428
  function A(e) {
2951
3429
  let t = e.replace(/\D/g, "").slice(0, 2);
2952
- x(t);
3430
+ S(t);
2953
3431
  let n = parseInt(t, 10);
2954
- !isNaN(n) && n >= 13 && n <= 23 ? (x(String(n - 12)), E("PM")) : n === 0 && (x("12"), E("AM"));
3432
+ !isNaN(n) && n >= 13 && n <= 23 ? (S(String(n - 12)), E("PM")) : n === 0 && (S("12"), E("AM"));
2955
3433
  }
2956
- function j() {
3434
+ function ee() {
2957
3435
  if (!D) return;
2958
- let e = Math.max(1, Math.min(12, parseInt(b, 10) || 12)), t = Math.max(0, Math.min(59, parseInt(C, 10) || 0)), r = Dn(e, T);
3436
+ let e = Math.max(1, Math.min(12, parseInt(b, 10) || 12)), t = Math.max(0, Math.min(59, parseInt(C, 10) || 0)), r = Ln(e, T);
2959
3437
  n(new Date(D.getFullYear(), D.getMonth(), D.getDate(), r, t)), o(!1);
2960
3438
  }
2961
- function ee() {
3439
+ function te() {
2962
3440
  if (!a && t) {
2963
3441
  _(t.getFullYear()), y(t.getMonth()), O(t);
2964
- let e = En(t.getHours());
2965
- x(String(e.hour12)), E(e.period), w(kn(t.getMinutes()));
3442
+ let e = In(t.getHours());
3443
+ S(String(e.hour12)), E(e.period), w(zn(t.getMinutes()));
2966
3444
  }
2967
3445
  o(!a);
2968
3446
  }
@@ -2977,22 +3455,22 @@ function An({ label: e, value: t, onChange: n, placeholder: r = "Select date & t
2977
3455
  children: [
2978
3456
  /* @__PURE__ */ p("button", {
2979
3457
  type: "button",
2980
- onClick: ee,
3458
+ onClick: te,
2981
3459
  "aria-haspopup": "dialog",
2982
3460
  "aria-expanded": a,
2983
- className: I("flex h-7 w-full cursor-pointer items-center rounded-md text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "px-2 pr-7"),
2984
- children: t ? On(t) : /* @__PURE__ */ p("span", {
3461
+ className: L("flex h-7 w-full cursor-pointer items-center rounded-md text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "px-2 pr-7"),
3462
+ children: t ? Rn(t) : /* @__PURE__ */ p("span", {
2985
3463
  className: "text-text-disabled",
2986
3464
  children: r
2987
3465
  })
2988
3466
  }),
2989
- /* @__PURE__ */ p(S, { className: "text-text-tertiary pointer-events-none absolute top-1/2 right-2 h-3 w-3 -translate-y-1/2" }),
3467
+ /* @__PURE__ */ p(x, { className: "text-text-tertiary pointer-events-none absolute top-1/2 right-2 h-3 w-3 -translate-y-1/2" }),
2990
3468
  a && /* @__PURE__ */ m("div", {
2991
3469
  ref: c,
2992
3470
  role: "dialog",
2993
3471
  "aria-label": "Choose date and time",
2994
- className: I("bg-bg-tertiary border-border-strong animate-scale-in absolute left-0 z-[100] rounded-md border p-3 shadow-lg", l ? "bottom-full mb-1" : "top-full mt-1"),
2995
- children: [/* @__PURE__ */ p(X, {
3472
+ className: L("bg-bg-tertiary border-border-strong animate-scale-in absolute left-0 z-[100] rounded-md border p-3 shadow-lg", l ? "bottom-full mb-1" : "top-full mt-1"),
3473
+ children: [/* @__PURE__ */ p(Tn, {
2996
3474
  year: g,
2997
3475
  month: v,
2998
3476
  selected: D,
@@ -3042,21 +3520,21 @@ function An({ label: e, value: t, onChange: n, placeholder: r = "Select date & t
3042
3520
  type: "button",
3043
3521
  onClick: () => E("AM"),
3044
3522
  "aria-pressed": T === "AM",
3045
- className: I("text-2xs cursor-pointer px-2 py-0.5 font-medium transition-colors duration-[100ms]", T === "AM" ? "bg-accent text-text-on-accent" : "bg-bg-secondary text-text-secondary hover:bg-bg-hover"),
3523
+ className: L("text-2xs cursor-pointer px-2 py-0.5 font-medium transition-colors duration-[100ms]", T === "AM" ? "bg-accent text-text-on-accent" : "bg-bg-secondary text-text-secondary hover:bg-bg-hover"),
3046
3524
  children: "AM"
3047
3525
  }), /* @__PURE__ */ p("button", {
3048
3526
  type: "button",
3049
3527
  onClick: () => E("PM"),
3050
3528
  "aria-pressed": T === "PM",
3051
- className: I("text-2xs cursor-pointer px-2 py-0.5 font-medium transition-colors duration-[100ms]", T === "PM" ? "bg-accent text-text-on-accent" : "bg-bg-secondary text-text-secondary hover:bg-bg-hover"),
3529
+ className: L("text-2xs cursor-pointer px-2 py-0.5 font-medium transition-colors duration-[100ms]", T === "PM" ? "bg-accent text-text-on-accent" : "bg-bg-secondary text-text-secondary hover:bg-bg-hover"),
3052
3530
  children: "PM"
3053
3531
  })]
3054
3532
  }),
3055
3533
  /* @__PURE__ */ p("button", {
3056
3534
  type: "button",
3057
- onClick: j,
3535
+ onClick: ee,
3058
3536
  disabled: !D,
3059
- className: I("ml-auto h-6 rounded-md px-3 text-xs font-medium transition-colors duration-[100ms]", D ? "bg-accent text-text-on-accent hover:bg-accent-hover cursor-pointer" : "bg-bg-hover text-text-disabled cursor-not-allowed"),
3537
+ className: L("ml-auto h-6 rounded-md px-3 text-xs font-medium transition-colors duration-[100ms]", D ? "bg-accent text-text-on-accent hover:bg-accent-hover cursor-pointer" : "bg-bg-hover text-text-disabled cursor-not-allowed"),
3060
3538
  children: "Apply"
3061
3539
  })
3062
3540
  ]
@@ -3068,8 +3546,8 @@ function An({ label: e, value: t, onChange: n, placeholder: r = "Select date & t
3068
3546
  }
3069
3547
  //#endregion
3070
3548
  //#region src/components/ui/DetailPanel.tsx
3071
- var jn = 360, Mn = 260, Nn = 700;
3072
- function Pn({ open: e, onClose: t, title: n, children: r, className: a, resizable: s = !0, defaultWidth: c = jn, minWidth: l = Mn, maxWidth: f = Nn }) {
3549
+ var Vn = 360, Hn = 260, Un = 700;
3550
+ function Wn({ open: e, onClose: t, title: n, children: r, className: a, resizable: s = !0, defaultWidth: c = Vn, minWidth: l = Hn, maxWidth: f = Un }) {
3073
3551
  let [h, g] = d(c), _ = u(!1), v = u(0), y = u(0);
3074
3552
  o(() => {
3075
3553
  if (!e) return;
@@ -3088,7 +3566,7 @@ function Pn({ open: e, onClose: t, title: n, children: r, className: a, resizabl
3088
3566
  _.current = !1;
3089
3567
  }, []);
3090
3568
  return /* @__PURE__ */ p("div", {
3091
- className: I("border-border bg-bg-secondary relative shrink-0 overflow-hidden border-l", "transition-[width] duration-[200ms] ease-out", a),
3569
+ className: L("border-border bg-bg-secondary relative shrink-0 overflow-hidden border-l", "transition-[width] duration-[200ms] ease-out", a),
3092
3570
  style: { width: e ? h : 0 },
3093
3571
  children: e && /* @__PURE__ */ m("div", {
3094
3572
  className: "animate-fade-in flex h-full flex-col",
@@ -3109,7 +3587,7 @@ function Pn({ open: e, onClose: t, title: n, children: r, className: a, resizabl
3109
3587
  onClick: t,
3110
3588
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover flex h-6 w-6 cursor-pointer items-center justify-center rounded",
3111
3589
  "aria-label": "Close panel",
3112
- children: /* @__PURE__ */ p(N, { className: "h-3.5 w-3.5" })
3590
+ children: /* @__PURE__ */ p(P, { className: "h-3.5 w-3.5" })
3113
3591
  })]
3114
3592
  }),
3115
3593
  /* @__PURE__ */ p("div", {
@@ -3122,7 +3600,7 @@ function Pn({ open: e, onClose: t, title: n, children: r, className: a, resizabl
3122
3600
  }
3123
3601
  //#endregion
3124
3602
  //#region src/components/ui/Dialog.tsx
3125
- function Fn({ open: e, onClose: t, title: n, children: r, footer: i, className: a }) {
3603
+ function Gn({ open: e, onClose: t, title: n, children: r, footer: i, className: a }) {
3126
3604
  let c = u(null), l = s();
3127
3605
  return B(c, e), o(() => {
3128
3606
  if (!e) return;
@@ -3132,14 +3610,14 @@ function Fn({ open: e, onClose: t, title: n, children: r, footer: i, className:
3132
3610
  return document.addEventListener("keydown", n), document.body.style.overflow = "hidden", () => {
3133
3611
  document.removeEventListener("keydown", n), document.body.style.overflow = "";
3134
3612
  };
3135
- }, [e, t]), e ? P(/* @__PURE__ */ m("div", {
3613
+ }, [e, t]), e ? F(/* @__PURE__ */ m("div", {
3136
3614
  className: "fixed inset-0 z-50 flex items-start justify-center overflow-y-auto pt-4 md:pt-[5vh]",
3137
3615
  children: [/* @__PURE__ */ p("div", {
3138
3616
  className: "bg-bg-overlay fixed inset-0",
3139
3617
  onClick: t
3140
3618
  }), /* @__PURE__ */ m("div", {
3141
3619
  ref: c,
3142
- className: I("relative z-50 mx-4 mb-8 w-full max-w-[400px] p-6", "bg-bg-secondary border-border rounded-lg border", "animate-scale-in shadow-lg", a),
3620
+ className: L("relative z-50 mx-4 mb-8 w-full max-w-[400px] p-6", "bg-bg-secondary border-border rounded-lg border", "animate-scale-in shadow-lg", a),
3143
3621
  role: "dialog",
3144
3622
  "aria-modal": "true",
3145
3623
  "aria-labelledby": n ? l : void 0,
@@ -3155,7 +3633,7 @@ function Fn({ open: e, onClose: t, title: n, children: r, footer: i, className:
3155
3633
  onClick: t,
3156
3634
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover ml-auto flex h-6 w-6 cursor-pointer items-center justify-center rounded transition-colors duration-[100ms]",
3157
3635
  "aria-label": "Close",
3158
- children: /* @__PURE__ */ p(N, { className: "h-4 w-4" })
3636
+ children: /* @__PURE__ */ p(P, { className: "h-4 w-4" })
3159
3637
  })]
3160
3638
  }),
3161
3639
  r,
@@ -3166,15 +3644,15 @@ function Fn({ open: e, onClose: t, title: n, children: r, footer: i, className:
3166
3644
  }
3167
3645
  //#endregion
3168
3646
  //#region src/components/ui/DialogActions.tsx
3169
- function In({ onCancel: e, onConfirm: t, cancelLabel: n = "Cancel", confirmLabel: r = "Confirm", confirmVariant: i = "primary", className: a }) {
3647
+ function Kn({ onCancel: e, onConfirm: t, cancelLabel: n = "Cancel", confirmLabel: r = "Confirm", confirmVariant: i = "primary", className: a }) {
3170
3648
  return /* @__PURE__ */ m("div", {
3171
- className: I("flex justify-end gap-2", a),
3172
- children: [/* @__PURE__ */ p(J, {
3649
+ className: L("flex justify-end gap-2", a),
3650
+ children: [/* @__PURE__ */ p(q, {
3173
3651
  variant: "ghost",
3174
3652
  size: "sm",
3175
3653
  onClick: e,
3176
3654
  children: n
3177
- }), /* @__PURE__ */ p(J, {
3655
+ }), /* @__PURE__ */ p(q, {
3178
3656
  variant: i,
3179
3657
  size: "sm",
3180
3658
  onClick: t,
@@ -3184,9 +3662,9 @@ function In({ onCancel: e, onConfirm: t, cancelLabel: n = "Cancel", confirmLabel
3184
3662
  }
3185
3663
  //#endregion
3186
3664
  //#region src/components/ui/DividerLabel.tsx
3187
- function Ln({ children: e, className: t }) {
3665
+ function qn({ children: e, className: t }) {
3188
3666
  return /* @__PURE__ */ m("div", {
3189
- className: I("relative my-6", t),
3667
+ className: L("relative my-6", t),
3190
3668
  children: [/* @__PURE__ */ p("div", {
3191
3669
  className: "absolute inset-0 flex items-center",
3192
3670
  children: /* @__PURE__ */ p("div", { className: "border-border w-full border-t" })
@@ -3201,7 +3679,7 @@ function Ln({ children: e, className: t }) {
3201
3679
  }
3202
3680
  //#endregion
3203
3681
  //#region src/components/ui/DropdownMenu.tsx
3204
- function Rn({ trigger: e, items: t, align: n = "right" }) {
3682
+ function Jn({ trigger: e, items: t, align: n = "right" }) {
3205
3683
  let [r, a] = d(!1), [s, c] = d({
3206
3684
  top: 0,
3207
3685
  left: 0,
@@ -3232,12 +3710,12 @@ function Rn({ trigger: e, items: t, align: n = "right" }) {
3232
3710
  triggerWidth: e.width
3233
3711
  }), a(!r), g(-1);
3234
3712
  }
3235
- let S = -1;
3713
+ let C = -1;
3236
3714
  return /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ p("div", {
3237
3715
  ref: _,
3238
3716
  onClick: x,
3239
3717
  children: e
3240
- }), r && P(/* @__PURE__ */ p("div", {
3718
+ }), r && F(/* @__PURE__ */ p("div", {
3241
3719
  ref: v,
3242
3720
  role: "menu",
3243
3721
  className: "bg-bg-tertiary border-border-strong animate-scale-in fixed z-[100] w-max rounded-md border py-1 shadow-lg",
@@ -3251,8 +3729,8 @@ function Rn({ trigger: e, items: t, align: n = "right" }) {
3251
3729
  className: "border-border my-1 border-t",
3252
3730
  role: "separator"
3253
3731
  }, `divider-${t}`);
3254
- S++;
3255
- let n = S;
3732
+ C++;
3733
+ let n = C;
3256
3734
  return /* @__PURE__ */ m("button", {
3257
3735
  role: "menuitem",
3258
3736
  tabIndex: n === h ? 0 : -1,
@@ -3260,7 +3738,7 @@ function Rn({ trigger: e, items: t, align: n = "right" }) {
3260
3738
  e.onClick(), b();
3261
3739
  },
3262
3740
  onMouseEnter: () => g(n),
3263
- className: I("flex h-7 w-full cursor-pointer items-center gap-2 px-4 text-left text-xs", "transition-colors duration-[100ms]", "focus:outline-none", e.danger ? "text-red hover:bg-red-muted focus:bg-red-muted" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover focus:text-text-primary focus:bg-bg-hover"),
3741
+ className: L("flex h-7 w-full cursor-pointer items-center gap-2 px-4 text-left text-xs", "transition-colors duration-[100ms]", "focus:outline-none", e.danger ? "text-red hover:bg-red-muted focus:bg-red-muted" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover focus:text-text-primary focus:bg-bg-hover"),
3264
3742
  children: [
3265
3743
  e.icon && /* @__PURE__ */ p("span", {
3266
3744
  className: "flex h-3.5 w-3.5 shrink-0 items-center",
@@ -3274,7 +3752,7 @@ function Rn({ trigger: e, items: t, align: n = "right" }) {
3274
3752
  className: "text-2xs text-text-tertiary ml-auto pl-4 font-mono",
3275
3753
  children: e.shortcut
3276
3754
  }),
3277
- e.checked && /* @__PURE__ */ p(C, { className: "text-accent ml-auto h-3.5 w-3.5 shrink-0" })
3755
+ e.checked && /* @__PURE__ */ p(S, { className: "text-accent ml-auto h-3.5 w-3.5 shrink-0" })
3278
3756
  ]
3279
3757
  }, e.label || `item-${t}`);
3280
3758
  })
@@ -3282,9 +3760,9 @@ function Rn({ trigger: e, items: t, align: n = "right" }) {
3282
3760
  }
3283
3761
  //#endregion
3284
3762
  //#region src/components/ui/EmptyState.tsx
3285
- function zn({ icon: e, title: t, description: n, action: r, className: i }) {
3763
+ function Yn({ icon: e, title: t, description: n, action: r, className: i }) {
3286
3764
  return /* @__PURE__ */ m("div", {
3287
- className: I("flex flex-col items-center justify-center px-4 py-12", i),
3765
+ className: L("flex flex-col items-center justify-center px-4 py-12", i),
3288
3766
  children: [
3289
3767
  /* @__PURE__ */ p("div", {
3290
3768
  className: "bg-bg-tertiary text-text-tertiary mb-3 flex h-10 w-10 items-center justify-center rounded-md",
@@ -3307,7 +3785,7 @@ function zn({ icon: e, title: t, description: n, action: r, className: i }) {
3307
3785
  }
3308
3786
  //#endregion
3309
3787
  //#region src/components/ui/ErrorBoundary.tsx
3310
- var Bn = class extends e {
3788
+ var Xn = class extends e {
3311
3789
  state = {
3312
3790
  hasError: !1,
3313
3791
  error: null
@@ -3333,7 +3811,7 @@ var Bn = class extends e {
3333
3811
  className: "text-text-secondary mb-6 max-w-md text-xs",
3334
3812
  children: this.state.error?.message ?? "An unexpected error occurred."
3335
3813
  }),
3336
- /* @__PURE__ */ p(J, {
3814
+ /* @__PURE__ */ p(q, {
3337
3815
  variant: "secondary",
3338
3816
  onClick: () => {
3339
3817
  this.setState({
@@ -3349,10 +3827,10 @@ var Bn = class extends e {
3349
3827
  };
3350
3828
  //#endregion
3351
3829
  //#region src/components/ui/FilterDropdown.tsx
3352
- function Vn({ icon: e, children: t, items: n, align: r, className: i }) {
3353
- return /* @__PURE__ */ p(Rn, {
3830
+ function Zn({ icon: e, children: t, items: n, align: r, className: i }) {
3831
+ return /* @__PURE__ */ p(Jn, {
3354
3832
  align: r,
3355
- trigger: /* @__PURE__ */ p(Gt, {
3833
+ trigger: /* @__PURE__ */ p(sn, {
3356
3834
  icon: e,
3357
3835
  className: i,
3358
3836
  children: t
@@ -3362,30 +3840,30 @@ function Vn({ icon: e, children: t, items: n, align: r, className: i }) {
3362
3840
  }
3363
3841
  //#endregion
3364
3842
  //#region src/components/ui/Kbd.tsx
3365
- function Hn({ children: e, className: t }) {
3843
+ function Qn({ children: e, className: t }) {
3366
3844
  return /* @__PURE__ */ p("kbd", {
3367
- className: I("text-2xs inline-flex items-center px-1.5 py-0.5 font-mono font-medium", "bg-bg-tertiary text-text-secondary border-border rounded border", t),
3845
+ className: L("text-2xs inline-flex items-center px-1.5 py-0.5 font-mono font-medium", "bg-bg-tertiary text-text-secondary border-border rounded border", t),
3368
3846
  children: e
3369
3847
  });
3370
3848
  }
3371
3849
  //#endregion
3372
3850
  //#region src/components/ui/LoadingSpinner.tsx
3373
- var Un = {
3851
+ var $n = {
3374
3852
  sm: "w-4 h-4",
3375
3853
  md: "w-6 h-6",
3376
3854
  lg: "w-8 h-8"
3377
3855
  };
3378
- function Wn({ className: e, size: t = "md" }) {
3856
+ function er({ className: e, size: t = "md" }) {
3379
3857
  return /* @__PURE__ */ p("div", {
3380
- className: I("flex min-h-[200px] items-center justify-center", e),
3381
- children: /* @__PURE__ */ p(ne, { className: I("text-accent animate-spin", Un[t]) })
3858
+ className: L("flex min-h-[200px] items-center justify-center", e),
3859
+ children: /* @__PURE__ */ p(ne, { className: L("text-accent animate-spin", $n[t]) })
3382
3860
  });
3383
3861
  }
3384
3862
  //#endregion
3385
3863
  //#region src/components/ui/MetadataGrid.tsx
3386
- function Gn({ items: e, labelWidth: n = "100px", className: r }) {
3864
+ function tr({ items: e, labelWidth: n = "100px", className: r }) {
3387
3865
  return /* @__PURE__ */ p("div", {
3388
- className: I("gap-x-3 gap-y-2 text-xs", r),
3866
+ className: L("gap-x-3 gap-y-2 text-xs", r),
3389
3867
  style: {
3390
3868
  display: "grid",
3391
3869
  gridTemplateColumns: `${n} 1fr`
@@ -3401,11 +3879,11 @@ function Gn({ items: e, labelWidth: n = "100px", className: r }) {
3401
3879
  }
3402
3880
  //#endregion
3403
3881
  //#region src/components/ui/MetricCard.tsx
3404
- function Kn({ label: e, value: t, sub: n, bar: r, icon: i, iconColor: a, className: o }) {
3882
+ function nr({ label: e, value: t, sub: n, bar: r, icon: i, iconColor: a, className: o }) {
3405
3883
  return /* @__PURE__ */ m("div", {
3406
- className: I("bg-bg-secondary border-border relative overflow-hidden rounded-md border p-3", o),
3884
+ className: L("bg-bg-secondary border-border relative overflow-hidden rounded-md border p-3", o),
3407
3885
  children: [
3408
- i && /* @__PURE__ */ p(i, { className: I("absolute -right-9 -bottom-9 h-44 w-44 -rotate-45 opacity-[0.06]", a) }),
3886
+ i && /* @__PURE__ */ p(i, { className: L("absolute -right-9 -bottom-9 h-44 w-44 -rotate-45 opacity-[0.06]", a) }),
3409
3887
  /* @__PURE__ */ p("p", {
3410
3888
  className: "text-2xs-f text-text-tertiary font-label mb-1 font-medium tracking-wider uppercase",
3411
3889
  children: e
@@ -3430,7 +3908,7 @@ function Kn({ label: e, value: t, sub: n, bar: r, icon: i, iconColor: a, classNa
3430
3908
  }
3431
3909
  //#endregion
3432
3910
  //#region src/components/ui/OAuthButton.tsx
3433
- function qn() {
3911
+ function rr() {
3434
3912
  return /* @__PURE__ */ m("svg", {
3435
3913
  className: "h-3.5 w-3.5",
3436
3914
  viewBox: "0 0 24 24",
@@ -3455,7 +3933,7 @@ function qn() {
3455
3933
  ]
3456
3934
  });
3457
3935
  }
3458
- function Jn() {
3936
+ function ir() {
3459
3937
  return /* @__PURE__ */ p("svg", {
3460
3938
  className: "h-3.5 w-3.5",
3461
3939
  viewBox: "0 0 24 24",
@@ -3464,27 +3942,27 @@ function Jn() {
3464
3942
  children: /* @__PURE__ */ p("path", { d: "M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z" })
3465
3943
  });
3466
3944
  }
3467
- var Yn = {
3945
+ var ar = {
3468
3946
  github: "GitHub",
3469
3947
  google: "Google"
3470
- }, Xn = {
3471
- github: Jn,
3472
- google: qn
3948
+ }, or = {
3949
+ github: ir,
3950
+ google: rr
3473
3951
  };
3474
- function Zn({ provider: e, children: t, ...n }) {
3475
- let r = Xn[e];
3476
- return /* @__PURE__ */ m(J, {
3952
+ function sr({ provider: e, children: t, ...n }) {
3953
+ let r = or[e];
3954
+ return /* @__PURE__ */ m(q, {
3477
3955
  variant: "secondary",
3478
3956
  size: "md",
3479
3957
  ...n,
3480
- children: [/* @__PURE__ */ p(r, {}), t ?? Yn[e]]
3958
+ children: [/* @__PURE__ */ p(r, {}), t ?? ar[e]]
3481
3959
  });
3482
3960
  }
3483
3961
  //#endregion
3484
3962
  //#region src/components/ui/PageHeader.tsx
3485
- function Qn({ title: e, subtitle: t, actions: n, className: r }) {
3963
+ function cr({ title: e, subtitle: t, actions: n, className: r }) {
3486
3964
  return /* @__PURE__ */ m("div", {
3487
- className: I("flex items-center justify-between", r),
3965
+ className: L("flex items-center justify-between", r),
3488
3966
  children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("h1", {
3489
3967
  className: "text-text-primary font-heading text-sm font-semibold",
3490
3968
  children: e
@@ -3499,11 +3977,11 @@ function Qn({ title: e, subtitle: t, actions: n, className: r }) {
3499
3977
  }
3500
3978
  //#endregion
3501
3979
  //#region src/components/ui/PageSection.tsx
3502
- function $n({ title: e, description: t, actions: n, children: r, as: i = "h2", className: a, headerClassName: o, contentClassName: s }) {
3980
+ function lr({ title: e, description: t, actions: n, children: r, as: i = "h2", className: a, headerClassName: o, contentClassName: s }) {
3503
3981
  return /* @__PURE__ */ m("section", {
3504
- className: I("space-y-4", a),
3982
+ className: L("space-y-4", a),
3505
3983
  children: [(e || t || n) && /* @__PURE__ */ m("div", {
3506
- className: I("border-border flex items-end justify-between gap-3 border-b pb-2", o),
3984
+ className: L("border-border flex items-end justify-between gap-3 border-b pb-2", o),
3507
3985
  children: [/* @__PURE__ */ m("div", {
3508
3986
  className: "min-w-0",
3509
3987
  children: [e && /* @__PURE__ */ p(i, {
@@ -3524,95 +4002,8 @@ function $n({ title: e, description: t, actions: n, children: r, as: i = "h2", c
3524
4002
  });
3525
4003
  }
3526
4004
  //#endregion
3527
- //#region src/components/ui/SelectDropdown.tsx
3528
- function er({ options: e, value: t, onChange: n, label: r, placeholder: a = "Select...", className: o, size: c = "md" }) {
3529
- let [l, f] = d(!1), [h, g] = d(-1), _ = u(null), v = u(null), y = vn(l, _, v), b = s(), x = `${b}-listbox`, S = e.find((e) => e.value === t);
3530
- W(l, i(() => f(!1), []), [_]);
3531
- function w() {
3532
- if (!l) {
3533
- let n = e.findIndex((e) => e.value === t);
3534
- g(n >= 0 ? n : 0);
3535
- }
3536
- f(!l);
3537
- }
3538
- function E(r) {
3539
- if (!l) {
3540
- if (r.key === "ArrowDown" || r.key === "ArrowUp") {
3541
- r.preventDefault();
3542
- let n = e.findIndex((e) => e.value === t);
3543
- g(n >= 0 ? n : 0), f(!0);
3544
- }
3545
- return;
3546
- }
3547
- switch (r.key) {
3548
- case "ArrowDown":
3549
- r.preventDefault(), g((t) => Math.min(t + 1, e.length - 1));
3550
- break;
3551
- case "ArrowUp":
3552
- r.preventDefault(), g((e) => Math.max(e - 1, 0));
3553
- break;
3554
- case "Enter":
3555
- r.preventDefault(), e[h] && (n(e[h].value), f(!1));
3556
- break;
3557
- case "Escape":
3558
- r.preventDefault(), f(!1);
3559
- break;
3560
- }
3561
- }
3562
- return /* @__PURE__ */ m("div", {
3563
- className: I("flex flex-col gap-1.5", o),
3564
- ref: _,
3565
- children: [r && /* @__PURE__ */ p("span", {
3566
- className: "text-text-secondary font-label text-xs font-medium",
3567
- children: r
3568
- }), /* @__PURE__ */ m("div", {
3569
- className: "relative",
3570
- children: [
3571
- /* @__PURE__ */ p("button", {
3572
- type: "button",
3573
- onClick: w,
3574
- onKeyDown: E,
3575
- "aria-haspopup": "listbox",
3576
- "aria-expanded": l,
3577
- "aria-controls": l ? x : void 0,
3578
- "aria-activedescendant": l && h >= 0 ? `${b}-option-${h}` : void 0,
3579
- className: I("font-control flex w-full cursor-pointer items-center rounded-md text-xs", "bg-bg-secondary border-border text-text-primary border", "hover:bg-bg-hover hover:border-border-strong", "transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", c === "sm" ? "h-6 px-2 pr-6" : "h-7 px-2 pr-7"),
3580
- children: S ? S.label : /* @__PURE__ */ p("span", {
3581
- className: "text-text-disabled",
3582
- children: a
3583
- })
3584
- }),
3585
- /* @__PURE__ */ p(T, { className: I("text-text-tertiary pointer-events-none absolute top-1/2 h-3 w-3 -translate-y-1/2 transition-transform", c === "sm" ? "right-1.5" : "right-2", l && "rotate-180") }),
3586
- l && /* @__PURE__ */ p("div", {
3587
- ref: v,
3588
- className: I("bg-bg-tertiary border-border-strong animate-scale-in absolute right-0 left-0 z-[100] overflow-hidden rounded-md border shadow-lg", y ? "bottom-full mb-1" : "top-full mt-1"),
3589
- children: /* @__PURE__ */ p("ul", {
3590
- id: x,
3591
- className: "max-h-48 overflow-y-auto py-1",
3592
- role: "listbox",
3593
- children: e.map((e, r) => /* @__PURE__ */ m("li", {
3594
- id: `${b}-option-${r}`,
3595
- role: "option",
3596
- "aria-selected": e.value === t,
3597
- onClick: () => {
3598
- n(e.value), f(!1);
3599
- },
3600
- onMouseEnter: () => g(r),
3601
- className: I("font-control flex h-7 w-full cursor-pointer items-center gap-2 px-3 text-xs", "transition-colors duration-[100ms]", r === h ? "bg-accent-muted text-accent" : e.value === t ? "text-accent" : "text-text-secondary hover:text-text-primary hover:bg-bg-hover"),
3602
- children: [/* @__PURE__ */ p("span", {
3603
- className: "flex-1 truncate",
3604
- children: e.label
3605
- }), e.value === t && /* @__PURE__ */ p(C, { className: "h-3 w-3 shrink-0" })]
3606
- }, e.value))
3607
- })
3608
- })
3609
- ]
3610
- })]
3611
- });
3612
- }
3613
- //#endregion
3614
4005
  //#region src/components/ui/PaginationBar.tsx
3615
- var tr = [
4006
+ var ur = [
3616
4007
  {
3617
4008
  value: "10",
3618
4009
  label: "10 per page"
@@ -3626,13 +4017,13 @@ var tr = [
3626
4017
  label: "50 per page"
3627
4018
  }
3628
4019
  ];
3629
- function nr({ page: e, pageSize: t, total: n, pageSizeOptions: r = tr, onPageChange: i, onPageSizeChange: a, className: o }) {
4020
+ function dr({ page: e, pageSize: t, total: n, pageSizeOptions: r = ur, onPageChange: i, onPageSizeChange: a, className: o }) {
3630
4021
  let s = Math.ceil(n / t), c = Math.min((e - 1) * t + 1, n), l = Math.min(e * t, n);
3631
4022
  return /* @__PURE__ */ m("div", {
3632
- className: I("flex items-center justify-between", o),
4023
+ className: L("flex items-center justify-between", o),
3633
4024
  children: [/* @__PURE__ */ m("div", {
3634
4025
  className: "flex items-center gap-3",
3635
- children: [/* @__PURE__ */ p(er, {
4026
+ children: [/* @__PURE__ */ p(Y, {
3636
4027
  size: "sm",
3637
4028
  value: String(t),
3638
4029
  onChange: (e) => a(Number(e)),
@@ -3648,7 +4039,7 @@ function nr({ page: e, pageSize: t, total: n, pageSizeOptions: r = tr, onPageCha
3648
4039
  n
3649
4040
  ]
3650
4041
  })]
3651
- }), /* @__PURE__ */ p(qt, {
4042
+ }), /* @__PURE__ */ p(ln, {
3652
4043
  page: e,
3653
4044
  totalPages: s,
3654
4045
  onPageChange: i
@@ -3657,7 +4048,7 @@ function nr({ page: e, pageSize: t, total: n, pageSizeOptions: r = tr, onPageCha
3657
4048
  }
3658
4049
  //#endregion
3659
4050
  //#region src/components/ui/PasswordInput.tsx
3660
- var rr = r(({ label: e, error: t, className: n, id: r, ...i }, a) => {
4051
+ var fr = r(({ label: e, error: t, className: n, id: r, ...i }, a) => {
3661
4052
  let o = r || e?.toLowerCase().replace(/\s+/g, "-"), [s, c] = d(!1);
3662
4053
  return /* @__PURE__ */ m("div", {
3663
4054
  className: "flex flex-col gap-1.5",
@@ -3677,26 +4068,26 @@ var rr = r(({ label: e, error: t, className: n, id: r, ...i }, a) => {
3677
4068
  ref: a,
3678
4069
  id: o,
3679
4070
  type: s ? "text" : "password",
3680
- className: I("bg-bg-secondary text-text-primary h-7 w-full rounded-md border px-2 pr-8 text-xs", "placeholder:text-text-disabled", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none", t ? "border-red" : "border-border", n),
4071
+ className: L("bg-bg-secondary text-text-primary h-7 w-full rounded-md border px-2 pr-8 text-xs", "placeholder:text-text-disabled", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none", t ? "border-red" : "border-border", n),
3681
4072
  ...i
3682
4073
  }), /* @__PURE__ */ p("button", {
3683
4074
  type: "button",
3684
4075
  onClick: () => c(!s),
3685
4076
  className: "text-text-tertiary hover:text-text-primary absolute top-1/2 right-2.5 -translate-y-1/2 cursor-pointer",
3686
4077
  "aria-label": s ? "Hide password" : "Show password",
3687
- children: p(s ? j : A, { className: "h-3.5 w-3.5" })
4078
+ children: p(s ? A : k, { className: "h-3.5 w-3.5" })
3688
4079
  })]
3689
4080
  })]
3690
4081
  });
3691
4082
  });
3692
- rr.displayName = "PasswordInput";
4083
+ fr.displayName = "PasswordInput";
3693
4084
  //#endregion
3694
4085
  //#region src/components/ui/ProfileHeader.tsx
3695
- function ir({ name: e, subtitle: t, badge: n, meta: r, action: i, className: a }) {
4086
+ function pr({ name: e, subtitle: t, badge: n, meta: r, action: i, className: a }) {
3696
4087
  return /* @__PURE__ */ m("div", {
3697
- className: I("flex items-start gap-4", a),
4088
+ className: L("flex items-start gap-4", a),
3698
4089
  children: [
3699
- /* @__PURE__ */ p(q, {
4090
+ /* @__PURE__ */ p(K, {
3700
4091
  name: e,
3701
4092
  size: "lg"
3702
4093
  }),
@@ -3740,54 +4131,46 @@ function ir({ name: e, subtitle: t, badge: n, meta: r, action: i, className: a }
3740
4131
  }
3741
4132
  //#endregion
3742
4133
  //#region src/components/ui/ProseContent.tsx
3743
- function ar({ children: e, className: t }) {
4134
+ function mr({ children: e, className: t }) {
3744
4135
  return /* @__PURE__ */ p("div", {
3745
- className: I("ui-prose", t),
4136
+ className: L("ui-prose", t),
3746
4137
  children: e
3747
4138
  });
3748
4139
  }
3749
4140
  //#endregion
3750
4141
  //#region src/components/ui/RadioPill.tsx
3751
- function or({ options: e, value: t, onChange: n, disabled: r, className: i, "aria-label": a }) {
4142
+ function hr({ options: e, value: t, onChange: n, disabled: r, className: i, "aria-label": a }) {
3752
4143
  return /* @__PURE__ */ p("div", {
3753
4144
  role: "radiogroup",
3754
4145
  "aria-label": a,
3755
- className: I("border-border inline-flex overflow-hidden rounded-md border", r && "cursor-not-allowed opacity-40", i),
4146
+ className: L("border-border inline-flex overflow-hidden rounded-md border", r && "cursor-not-allowed opacity-40", i),
3756
4147
  children: e.map((e) => /* @__PURE__ */ p("button", {
3757
4148
  role: "radio",
3758
4149
  "aria-checked": e.value === t,
3759
4150
  disabled: r,
3760
4151
  onClick: () => n(e.value),
3761
- className: I("font-control px-3 py-1.5 text-xs font-medium transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-[-2px]", !r && "cursor-pointer", e.value === t ? "bg-accent text-text-on-accent" : "bg-bg-secondary text-text-secondary hover:bg-bg-hover hover:text-text-primary"),
4152
+ className: L("font-control px-3 py-1.5 text-xs font-medium transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-[-2px]", !r && "cursor-pointer", e.value === t ? "bg-accent text-text-on-accent" : "bg-bg-secondary text-text-secondary hover:bg-bg-hover hover:text-text-primary"),
3762
4153
  children: e.label
3763
4154
  }, e.value))
3764
4155
  });
3765
4156
  }
3766
4157
  //#endregion
3767
4158
  //#region src/components/ui/SearchInput.tsx
3768
- function sr({ value: e, onChange: t, placeholder: n = "Search...", className: r }) {
4159
+ function gr({ value: e, onChange: t, placeholder: n = "Search...", className: r }) {
3769
4160
  return /* @__PURE__ */ m("div", {
3770
- className: I("relative", r),
3771
- children: [/* @__PURE__ */ p(M, { className: "text-text-tertiary absolute top-1/2 left-2 h-3.5 w-3.5 -translate-y-1/2" }), /* @__PURE__ */ p("input", {
4161
+ className: L("relative", r),
4162
+ children: [/* @__PURE__ */ p(N, { className: "text-text-tertiary absolute top-1/2 left-2 h-3.5 w-3.5 -translate-y-1/2" }), /* @__PURE__ */ p("input", {
3772
4163
  type: "search",
3773
4164
  value: e,
3774
4165
  onChange: (e) => t(e.target.value),
3775
4166
  placeholder: n,
3776
- className: I("bg-bg-secondary text-text-primary h-7 w-full pr-2 pl-7 text-xs", "border-border rounded-md border", "placeholder:text-text-disabled", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none")
4167
+ className: L("bg-bg-secondary text-text-primary h-7 w-full pr-2 pl-7 text-xs", "border-border rounded-md border", "placeholder:text-text-disabled", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none")
3777
4168
  })]
3778
4169
  });
3779
4170
  }
3780
4171
  //#endregion
3781
- //#region src/components/ui/SectionHeader.tsx
3782
- function cr({ children: e, as: t = "h2", className: n, border: r = !0 }) {
3783
- return /* @__PURE__ */ p(t, {
3784
- className: I("text-text-primary font-heading text-xs font-semibold", r && "border-border border-b pb-2", n),
3785
- children: e
3786
- });
3787
- }
3788
- //#endregion
3789
4172
  //#region src/components/ui/Select.tsx
3790
- var lr = r(({ label: e, error: t, options: n, className: r, id: i, ...a }, o) => {
4173
+ var _r = r(({ label: e, error: t, options: n, className: r, id: i, ...a }, o) => {
3791
4174
  let s = i || e?.toLowerCase().replace(/\s+/g, "-");
3792
4175
  return /* @__PURE__ */ m("div", {
3793
4176
  className: "flex flex-col gap-1.5",
@@ -3806,22 +4189,22 @@ var lr = r(({ label: e, error: t, options: n, className: r, id: i, ...a }, o) =>
3806
4189
  children: [/* @__PURE__ */ p("select", {
3807
4190
  ref: o,
3808
4191
  id: s,
3809
- className: I("bg-bg-secondary text-text-primary font-control h-7 w-full px-2 pr-7 text-xs", "appearance-none rounded-md border", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none", "disabled:cursor-not-allowed disabled:opacity-40", "cursor-pointer", t ? "border-red" : "border-border", r),
4192
+ className: L("bg-bg-secondary text-text-primary font-control h-7 w-full px-2 pr-7 text-xs", "appearance-none rounded-md border", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none", "disabled:cursor-not-allowed disabled:opacity-40", "cursor-pointer", t ? "border-red" : "border-border", r),
3810
4193
  ...a,
3811
4194
  children: n.map((e) => /* @__PURE__ */ p("option", {
3812
4195
  value: e.value,
3813
4196
  children: e.label
3814
4197
  }, e.value))
3815
- }), /* @__PURE__ */ p(T, { className: "text-text-tertiary pointer-events-none absolute top-1/2 right-2.5 h-3.5 w-3.5 -translate-y-1/2" })]
4198
+ }), /* @__PURE__ */ p(w, { className: "text-text-tertiary pointer-events-none absolute top-1/2 right-2.5 h-3.5 w-3.5 -translate-y-1/2" })]
3816
4199
  })]
3817
4200
  });
3818
4201
  });
3819
- lr.displayName = "Select";
4202
+ _r.displayName = "Select";
3820
4203
  //#endregion
3821
4204
  //#region src/components/ui/SettingRow.tsx
3822
- function ur({ label: e, description: t, action: n, className: r }) {
4205
+ function vr({ label: e, description: t, action: n, className: r }) {
3823
4206
  return /* @__PURE__ */ m("div", {
3824
- className: I("border-border flex items-center justify-between border-b py-3", r),
4207
+ className: L("border-border flex items-center justify-between border-b py-3", r),
3825
4208
  children: [/* @__PURE__ */ m("div", {
3826
4209
  className: "min-w-0 flex-1 pr-4",
3827
4210
  children: [/* @__PURE__ */ p("p", {
@@ -3838,36 +4221,8 @@ function ur({ label: e, description: t, action: n, className: r }) {
3838
4221
  });
3839
4222
  }
3840
4223
  //#endregion
3841
- //#region src/components/ui/Slider.tsx
3842
- function dr({ min: e, max: t, step: n = 1, value: r, onChange: i, onCommit: a, label: o, showValue: s, className: c }) {
3843
- let l = (r - e) / (t - e) * 100;
3844
- return /* @__PURE__ */ m("div", {
3845
- className: I("flex flex-col gap-1.5", c),
3846
- children: [(o || s) && /* @__PURE__ */ m("div", {
3847
- className: "flex items-center justify-between",
3848
- children: [o && /* @__PURE__ */ p("span", {
3849
- className: "text-text-secondary font-label text-xs font-medium",
3850
- children: o
3851
- }), s && /* @__PURE__ */ p("span", {
3852
- className: "text-text-primary font-data text-xs",
3853
- children: r
3854
- })]
3855
- }), /* @__PURE__ */ p("input", {
3856
- type: "range",
3857
- min: e,
3858
- max: t,
3859
- step: n,
3860
- value: r,
3861
- onChange: (e) => i(Number(e.target.value)),
3862
- onPointerUp: a ? (e) => a(Number(e.target.value)) : void 0,
3863
- className: "bg-bg-tertiary [&::-webkit-slider-thumb]:bg-accent h-1.5 w-full cursor-pointer appearance-none rounded-md [&::-webkit-slider-thumb]:h-4 [&::-webkit-slider-thumb]:w-4 [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:shadow-sm [&::-webkit-slider-thumb]:transition-transform [&::-webkit-slider-thumb]:duration-[100ms] [&::-webkit-slider-thumb]:hover:scale-110",
3864
- style: { background: `linear-gradient(to right, var(--accent) ${l}%, var(--bg-tertiary) ${l}%)` }
3865
- })]
3866
- });
3867
- }
3868
- //#endregion
3869
4224
  //#region src/components/ui/SideSheet.tsx
3870
- function fr({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "right", widthClassName: s = "w-[360px]", className: c, contentClassName: l }) {
4225
+ function yr({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "right", widthClassName: s = "w-[360px]", className: c, contentClassName: l }) {
3871
4226
  let d = u(null);
3872
4227
  return B(d, e), o(() => {
3873
4228
  if (!e) return;
@@ -3877,7 +4232,7 @@ function fr({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "
3877
4232
  return document.addEventListener("keydown", n), document.body.style.overflow = "hidden", () => {
3878
4233
  document.removeEventListener("keydown", n), document.body.style.overflow = "";
3879
4234
  };
3880
- }, [e, t]), e ? P(/* @__PURE__ */ m("div", {
4235
+ }, [e, t]), e ? F(/* @__PURE__ */ m("div", {
3881
4236
  className: "fixed inset-0 z-50 flex",
3882
4237
  children: [
3883
4238
  a === "right" && /* @__PURE__ */ p("div", {
@@ -3886,7 +4241,7 @@ function fr({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "
3886
4241
  }),
3887
4242
  /* @__PURE__ */ m("div", {
3888
4243
  ref: d,
3889
- className: I("bg-bg-secondary border-border flex flex-col shadow-lg", s, a === "right" ? "animate-slide-in-right border-l" : "animate-slide-in-left border-r", c),
4244
+ className: L("bg-bg-secondary border-border flex flex-col shadow-lg", s, a === "right" ? "animate-slide-in-right border-l" : "animate-slide-in-left border-r", c),
3890
4245
  style: { maxWidth: "calc(100vw - 2rem)" },
3891
4246
  role: "dialog",
3892
4247
  "aria-modal": "true",
@@ -3901,11 +4256,11 @@ function fr({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "
3901
4256
  onClick: t,
3902
4257
  className: "text-text-tertiary hover:text-text-primary hover:bg-bg-hover ml-auto flex h-6 w-6 cursor-pointer items-center justify-center rounded",
3903
4258
  "aria-label": "Close",
3904
- children: /* @__PURE__ */ p(N, { className: "h-3.5 w-3.5" })
4259
+ children: /* @__PURE__ */ p(P, { className: "h-3.5 w-3.5" })
3905
4260
  })]
3906
4261
  }),
3907
4262
  /* @__PURE__ */ p("div", {
3908
- className: I("flex-1 overflow-y-auto p-3", l),
4263
+ className: L("flex-1 overflow-y-auto p-3", l),
3909
4264
  children: r
3910
4265
  }),
3911
4266
  i && /* @__PURE__ */ p("div", {
@@ -3923,54 +4278,54 @@ function fr({ open: e, onClose: t, title: n, children: r, footer: i, side: a = "
3923
4278
  }
3924
4279
  //#endregion
3925
4280
  //#region src/components/ui/SplitPaneLayout.tsx
3926
- function pr({ children: e, direction: t = "row", className: n }) {
4281
+ function br({ children: e, direction: t = "row", className: n }) {
3927
4282
  return /* @__PURE__ */ p("div", {
3928
- className: I("-m-4 md:-m-6", "flex h-[calc(100vh-var(--topbar-height)-var(--bottomnav-height))] gap-0 md:h-[calc(100vh-var(--topbar-height))]", t === "column" && "flex-col", n),
4283
+ className: L("-m-4 md:-m-6", "flex h-[calc(100vh-var(--topbar-height)-var(--bottomnav-height))] gap-0 md:h-[calc(100vh-var(--topbar-height))]", t === "column" && "flex-col", n),
3929
4284
  children: e
3930
4285
  });
3931
4286
  }
3932
- function mr({ children: e, className: t }) {
4287
+ function xr({ children: e, className: t }) {
3933
4288
  return /* @__PURE__ */ p("div", {
3934
- className: I("flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden", t),
4289
+ className: L("flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden", t),
3935
4290
  children: e
3936
4291
  });
3937
4292
  }
3938
- var hr = Object.assign(pr, { Main: mr }), gr = {
4293
+ var Sr = Object.assign(br, { Main: xr }), Cr = {
3939
4294
  active: "bg-green",
3940
4295
  inactive: "bg-text-tertiary",
3941
4296
  pending: "bg-yellow animate-pulse-subtle",
3942
4297
  error: "bg-red"
3943
- }, _r = {
4298
+ }, wr = {
3944
4299
  active: "text-green",
3945
4300
  inactive: "text-text-tertiary",
3946
4301
  pending: "text-yellow",
3947
4302
  error: "text-red"
3948
4303
  };
3949
- function vr({ status: e, label: t, className: n }) {
4304
+ function Tr({ status: e, label: t, className: n }) {
3950
4305
  return /* @__PURE__ */ m("span", {
3951
- className: I("inline-flex items-center gap-1.5", n),
3952
- children: [/* @__PURE__ */ p("span", { className: I("h-2 w-2 rounded-full", gr[e]) }), t && /* @__PURE__ */ p("span", {
3953
- className: I("text-xs", _r[e]),
4306
+ className: L("inline-flex items-center gap-1.5", n),
4307
+ children: [/* @__PURE__ */ p("span", { className: L("h-2 w-2 rounded-full", Cr[e]) }), t && /* @__PURE__ */ p("span", {
4308
+ className: L("text-xs", wr[e]),
3954
4309
  children: t
3955
4310
  })]
3956
4311
  });
3957
4312
  }
3958
4313
  //#endregion
3959
4314
  //#region src/components/ui/StepProgress.tsx
3960
- function yr({ steps: e, currentStep: t, className: n }) {
4315
+ function Er({ steps: e, currentStep: t, className: n }) {
3961
4316
  return /* @__PURE__ */ p("div", {
3962
- className: I("flex items-center justify-between", n),
4317
+ className: L("flex items-center justify-between", n),
3963
4318
  children: e.map((n, r) => /* @__PURE__ */ m("div", {
3964
4319
  className: "flex flex-1 items-center",
3965
4320
  children: [/* @__PURE__ */ m("div", {
3966
4321
  className: "flex flex-col items-center",
3967
4322
  children: [
3968
4323
  /* @__PURE__ */ p("div", {
3969
- className: I("flex h-8 w-8 items-center justify-center rounded-full text-xs", r < t && "bg-accent text-text-on-accent", r === t && "border-accent text-accent border-2 font-semibold", r > t && "bg-bg-tertiary border-border text-text-tertiary border"),
3970
- children: r < t ? /* @__PURE__ */ p(C, { className: "h-4 w-4" }) : r + 1
4324
+ className: L("flex h-8 w-8 items-center justify-center rounded-full text-xs", r < t && "bg-accent text-text-on-accent", r === t && "border-accent text-accent border-2 font-semibold", r > t && "bg-bg-tertiary border-border text-text-tertiary border"),
4325
+ children: r < t ? /* @__PURE__ */ p(S, { className: "h-4 w-4" }) : r + 1
3971
4326
  }),
3972
4327
  /* @__PURE__ */ p("span", {
3973
- className: I("text-2xs mt-1.5 hidden sm:block", r === t && "text-accent", r < t && "text-text-primary", r > t && "text-text-tertiary"),
4328
+ className: L("text-2xs mt-1.5 hidden sm:block", r === t && "text-accent", r < t && "text-text-primary", r > t && "text-text-tertiary"),
3974
4329
  children: n.label
3975
4330
  }),
3976
4331
  n.description && /* @__PURE__ */ p("span", {
@@ -3978,13 +4333,13 @@ function yr({ steps: e, currentStep: t, className: n }) {
3978
4333
  children: n.description
3979
4334
  })
3980
4335
  ]
3981
- }), r < e.length - 1 && /* @__PURE__ */ p("div", { className: I("mx-2 h-0.5 flex-1", r < t ? "bg-accent" : "bg-border") })]
4336
+ }), r < e.length - 1 && /* @__PURE__ */ p("div", { className: L("mx-2 h-0.5 flex-1", r < t ? "bg-accent" : "bg-border") })]
3982
4337
  }, n.label))
3983
4338
  });
3984
4339
  }
3985
4340
  //#endregion
3986
4341
  //#region src/components/ui/Tabs.tsx
3987
- function br({ tabs: e, defaultTab: t, value: n, onChange: r, className: i }) {
4342
+ function Dr({ tabs: e, defaultTab: t, value: n, onChange: r, className: i }) {
3988
4343
  let [a, o] = d(t || e[0]?.key), c = n ?? a, l = e.find((e) => e.key === c);
3989
4344
  function f(e) {
3990
4345
  n === void 0 && o(e), r?.(e);
@@ -4008,7 +4363,7 @@ function br({ tabs: e, defaultTab: t, value: n, onChange: r, className: i }) {
4008
4363
  "aria-controls": `${h}-panel-${e.key}`,
4009
4364
  onClick: () => f(e.key),
4010
4365
  onKeyDown: _,
4011
- className: I("font-control relative cursor-pointer px-3 py-2 text-xs font-medium transition-colors duration-[100ms]", "hover:text-text-primary", e.key === c ? "text-accent" : "text-text-tertiary"),
4366
+ className: L("font-control relative cursor-pointer px-3 py-2 text-xs font-medium transition-colors duration-[100ms]", "hover:text-text-primary", e.key === c ? "text-accent" : "text-text-tertiary"),
4012
4367
  children: [e.label, e.key === c && /* @__PURE__ */ p("div", { className: "bg-accent absolute right-0 bottom-0 left-0 h-0.5 rounded-md" })]
4013
4368
  }, e.key))
4014
4369
  }), /* @__PURE__ */ p("div", {
@@ -4022,7 +4377,7 @@ function br({ tabs: e, defaultTab: t, value: n, onChange: r, className: i }) {
4022
4377
  }
4023
4378
  //#endregion
4024
4379
  //#region src/components/ui/Textarea.tsx
4025
- var xr = r(({ label: e, error: t, showCount: n, maxLength: r, value: i, className: a, id: o, ...s }, c) => {
4380
+ var Or = r(({ label: e, error: t, showCount: n, maxLength: r, value: i, className: a, id: o, ...s }, c) => {
4026
4381
  let l = o || e?.toLowerCase().replace(/\s+/g, "-"), u = typeof i == "string" ? i.length : 0;
4027
4382
  return /* @__PURE__ */ m("div", {
4028
4383
  className: "flex flex-col gap-1.5",
@@ -4037,7 +4392,7 @@ var xr = r(({ label: e, error: t, showCount: n, maxLength: r, value: i, classNam
4037
4392
  id: l,
4038
4393
  value: i,
4039
4394
  maxLength: r,
4040
- className: I("bg-bg-secondary text-text-primary font-control min-h-[72px] w-full px-2 py-1.5 text-xs", "resize-y rounded-md border", "placeholder:text-text-disabled", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none", t ? "border-red" : "border-border", a),
4395
+ className: L("bg-bg-secondary text-text-primary font-control min-h-[72px] w-full px-2 py-1.5 text-xs", "resize-y rounded-md border", "placeholder:text-text-disabled", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none", t ? "border-red" : "border-border", a),
4041
4396
  ...s
4042
4397
  }),
4043
4398
  /* @__PURE__ */ m("div", {
@@ -4057,10 +4412,10 @@ var xr = r(({ label: e, error: t, showCount: n, maxLength: r, value: i, classNam
4057
4412
  ]
4058
4413
  });
4059
4414
  });
4060
- xr.displayName = "Textarea";
4415
+ Or.displayName = "Textarea";
4061
4416
  //#endregion
4062
4417
  //#region src/components/ui/TextInput.tsx
4063
- var Sr = r(({ label: e, error: t, icon: n, className: r, id: i, readOnly: a, ...o }, s) => {
4418
+ var kr = r(({ label: e, error: t, icon: n, className: r, id: i, readOnly: a, ...o }, s) => {
4064
4419
  let c = i || e?.toLowerCase().replace(/\s+/g, "-");
4065
4420
  return /* @__PURE__ */ m("div", {
4066
4421
  className: "flex flex-col gap-1.5",
@@ -4083,25 +4438,25 @@ var Sr = r(({ label: e, error: t, icon: n, className: r, id: i, readOnly: a, ...
4083
4438
  ref: s,
4084
4439
  id: c,
4085
4440
  readOnly: a,
4086
- className: I("bg-bg-secondary text-text-primary font-control h-7 w-full px-2 text-xs", "rounded-md border", "placeholder:text-text-disabled", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none", "disabled:cursor-not-allowed disabled:opacity-40", a && "bg-bg-primary text-text-secondary focus:border-border cursor-default border-dashed", n && "pl-7", t ? "border-red" : !a && "border-border", a && !t && "border-border", r),
4441
+ className: L("bg-bg-secondary text-text-primary font-control h-7 w-full px-2 text-xs", "rounded-md border", "placeholder:text-text-disabled", "transition-colors duration-[100ms]", "focus:border-accent focus:outline-none", "disabled:cursor-not-allowed disabled:opacity-40", a && "bg-bg-primary text-text-secondary focus:border-border cursor-default border-dashed", n && "pl-7", t ? "border-red" : !a && "border-border", a && !t && "border-border", r),
4087
4442
  ...o
4088
4443
  })]
4089
4444
  })]
4090
4445
  });
4091
4446
  });
4092
- Sr.displayName = "TextInput";
4447
+ kr.displayName = "TextInput";
4093
4448
  //#endregion
4094
4449
  //#region src/components/ui/Timeline.tsx
4095
- function Cr({ items: e, className: t }) {
4450
+ function Ar({ items: e, className: t }) {
4096
4451
  return /* @__PURE__ */ p("div", {
4097
- className: I("space-y-0", t),
4452
+ className: L("space-y-0", t),
4098
4453
  children: e.map((t, n) => /* @__PURE__ */ m("div", {
4099
4454
  className: "flex gap-3",
4100
4455
  children: [/* @__PURE__ */ m("div", {
4101
4456
  className: "flex flex-col items-center",
4102
- children: [/* @__PURE__ */ p("div", { className: I(t.dot, "mt-1.5 h-2 w-2 shrink-0 rounded-full") }), n < e.length - 1 && /* @__PURE__ */ p("div", { className: "bg-border mt-1 w-px flex-1" })]
4457
+ children: [/* @__PURE__ */ p("div", { className: L(t.dot, "mt-1.5 h-2 w-2 shrink-0 rounded-full") }), n < e.length - 1 && /* @__PURE__ */ p("div", { className: "bg-border mt-1 w-px flex-1" })]
4103
4458
  }), /* @__PURE__ */ m("div", {
4104
- className: I("pb-4", n === e.length - 1 && "pb-0"),
4459
+ className: L("pb-4", n === e.length - 1 && "pb-0"),
4105
4460
  children: [/* @__PURE__ */ p("p", {
4106
4461
  className: "text-text-primary text-xs",
4107
4462
  children: t.text
@@ -4114,47 +4469,14 @@ function Cr({ items: e, className: t }) {
4114
4469
  });
4115
4470
  }
4116
4471
  //#endregion
4117
- //#region src/components/ui/Toggle.tsx
4118
- function wr({ checked: e, onChange: t, disabled: n, label: r, className: i }) {
4119
- return /* @__PURE__ */ m("label", {
4120
- className: I("flex w-fit items-center", n ? "cursor-not-allowed opacity-40" : "cursor-pointer", i),
4121
- style: { gap: 10 },
4122
- children: [/* @__PURE__ */ p("button", {
4123
- type: "button",
4124
- role: "switch",
4125
- "aria-checked": e,
4126
- disabled: n,
4127
- onClick: () => t(!e),
4128
- className: I("relative shrink-0 rounded-full border transition-colors duration-[100ms]", "focus-visible:outline-accent focus-visible:outline-2 focus-visible:outline-offset-2", e ? "bg-accent border-accent" : "bg-bg-tertiary border-border", !n && "cursor-pointer"),
4129
- style: {
4130
- width: 36,
4131
- height: 20
4132
- },
4133
- children: /* @__PURE__ */ p("span", {
4134
- className: "bg-control-knob absolute top-1/2 rounded-full transition-[left] duration-[100ms]",
4135
- style: {
4136
- width: 14,
4137
- height: 14,
4138
- marginTop: -7,
4139
- left: e ? 19 : 3,
4140
- boxShadow: "0 0 1px rgba(0,0,0,0.1), 2px 0 4px rgba(0,0,0,0.35)"
4141
- }
4142
- })
4143
- }), r && /* @__PURE__ */ p("span", {
4144
- className: "text-text-secondary text-xs",
4145
- children: r
4146
- })]
4147
- });
4148
- }
4149
- //#endregion
4150
4472
  //#region src/components/ui/Tooltip.tsx
4151
- var Tr = {
4473
+ var jr = {
4152
4474
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
4153
4475
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
4154
4476
  left: "right-full top-1/2 -translate-y-1/2 mr-2",
4155
4477
  right: "left-full top-1/2 -translate-y-1/2 ml-2"
4156
4478
  };
4157
- function Er({ content: e, placement: t = "top", children: n }) {
4479
+ function Mr({ content: e, placement: t = "top", children: n }) {
4158
4480
  let [r, i] = d(!1), a = s();
4159
4481
  return /* @__PURE__ */ m("div", {
4160
4482
  className: "relative inline-flex",
@@ -4165,7 +4487,7 @@ function Er({ content: e, placement: t = "top", children: n }) {
4165
4487
  "aria-describedby": r ? a : void 0,
4166
4488
  children: [n, r && /* @__PURE__ */ p("div", {
4167
4489
  id: a,
4168
- className: I("text-2xs absolute z-50 px-2 py-1 font-medium whitespace-nowrap", "bg-bg-tertiary text-text-primary border-border rounded border shadow-md", "animate-fade-in pointer-events-none", Tr[t]),
4490
+ className: L("text-2xs absolute z-50 px-2 py-1 font-medium whitespace-nowrap", "bg-bg-tertiary text-text-primary border-border rounded border shadow-md", "animate-fade-in pointer-events-none", jr[t]),
4169
4491
  role: "tooltip",
4170
4492
  children: e
4171
4493
  })]
@@ -4173,46 +4495,23 @@ function Er({ content: e, placement: t = "top", children: n }) {
4173
4495
  }
4174
4496
  //#endregion
4175
4497
  //#region src/components/ui/Toolbar.tsx
4176
- function Dr({ start: e, end: t, children: n, className: r, startClassName: i, endClassName: a }) {
4498
+ function Nr({ start: e, end: t, children: n, className: r, startClassName: i, endClassName: a }) {
4177
4499
  return /* @__PURE__ */ m("div", {
4178
- className: I("flex items-center justify-between gap-3", r),
4500
+ className: L("flex items-center justify-between gap-3", r),
4179
4501
  children: [/* @__PURE__ */ p("div", {
4180
- className: I("flex flex-1 items-center gap-3", i),
4502
+ className: L("flex flex-1 items-center gap-3", i),
4181
4503
  children: e ?? n
4182
4504
  }), t && /* @__PURE__ */ p("div", {
4183
- className: I("flex items-center gap-1.5", a),
4505
+ className: L("flex items-center gap-1.5", a),
4184
4506
  children: t
4185
4507
  })]
4186
4508
  });
4187
4509
  }
4188
4510
  //#endregion
4189
- //#region src/components/ui/ThemePreview.tsx
4190
- function Or({ label: e, active: t, icon: n, preview: r, onClick: i, className: a }) {
4191
- return /* @__PURE__ */ m("button", {
4192
- type: "button",
4193
- onClick: i,
4194
- className: I("flex cursor-pointer flex-col items-center gap-2 rounded-md border p-3 transition-colors duration-[100ms]", t ? "border-accent bg-accent-muted" : "border-border bg-bg-secondary hover:bg-bg-hover hover:border-border-strong", a),
4195
- children: [/* @__PURE__ */ p("div", {
4196
- className: "border-border-strong/20 flex h-10 w-full items-center justify-center rounded border",
4197
- style: { backgroundColor: r?.bg },
4198
- children: /* @__PURE__ */ p("div", {
4199
- className: "h-1.5 w-8 rounded-md",
4200
- style: { backgroundColor: r?.fg }
4201
- })
4202
- }), /* @__PURE__ */ m("div", {
4203
- className: "flex items-center gap-1.5",
4204
- children: [n && /* @__PURE__ */ p(n, { className: "h-3 w-3" }), /* @__PURE__ */ p("span", {
4205
- className: "text-xs font-medium",
4206
- children: e
4207
- })]
4208
- })]
4209
- });
4210
- }
4211
- //#endregion
4212
4511
  //#region src/components/ui/UploadDropzone.tsx
4213
- function kr({ title: e = "Drag and drop files here, or click to browse", description: t, icon: n, accept: r, multiple: i, disabled: a, onChange: o, className: s }) {
4512
+ function Pr({ title: e = "Drag and drop files here, or click to browse", description: t, icon: n, accept: r, multiple: i, disabled: a, onChange: o, className: s }) {
4214
4513
  return /* @__PURE__ */ m("label", {
4215
- className: I("border-border hover:border-border-strong block rounded-md border-2 border-dashed p-8 text-center transition-colors duration-[100ms]", a ? "cursor-not-allowed opacity-60" : "cursor-pointer hover:bg-bg-hover", s),
4514
+ className: L("border-border hover:border-border-strong block rounded-md border-2 border-dashed p-8 text-center transition-colors duration-[100ms]", a ? "cursor-not-allowed opacity-60" : "cursor-pointer hover:bg-bg-hover", s),
4216
4515
  children: [
4217
4516
  /* @__PURE__ */ p("input", {
4218
4517
  type: "file",
@@ -4224,7 +4523,7 @@ function kr({ title: e = "Drag and drop files here, or click to browse", descrip
4224
4523
  }),
4225
4524
  /* @__PURE__ */ p("div", {
4226
4525
  className: "text-text-tertiary mx-auto mb-3 flex h-9 w-9 items-center justify-center rounded-md bg-bg-tertiary",
4227
- children: n ?? /* @__PURE__ */ p(pe, { className: "h-4.5 w-4.5" })
4526
+ children: n ?? /* @__PURE__ */ p(de, { className: "h-4.5 w-4.5" })
4228
4527
  }),
4229
4528
  /* @__PURE__ */ p("p", {
4230
4529
  className: "text-text-secondary mb-1 text-xs",
@@ -4238,28 +4537,16 @@ function kr({ title: e = "Drag and drop files here, or click to browse", descrip
4238
4537
  });
4239
4538
  }
4240
4539
  //#endregion
4241
- //#region src/hooks/useApplyTheme.ts
4242
- function Ar() {
4243
- let { setPreferredDarkTheme: e, setPreferredLightTheme: t, setColorMode: n } = K();
4244
- return i((r) => {
4245
- V(r) ? (t(r), n("light")) : (e(r), n("dark"));
4246
- }, [
4247
- e,
4248
- t,
4249
- n
4250
- ]);
4251
- }
4252
- //#endregion
4253
4540
  //#region src/providers/ThemeContext.ts
4254
- var jr = n({ theme: "dark" });
4541
+ var Fr = n({ theme: "dark" });
4255
4542
  //#endregion
4256
4543
  //#region src/hooks/useTheme.ts
4257
- function Mr() {
4258
- return a(jr);
4544
+ function Ir() {
4545
+ return a(Fr);
4259
4546
  }
4260
4547
  //#endregion
4261
4548
  //#region src/lib/formatDate.ts
4262
- var Nr = [
4549
+ var Lr = [
4263
4550
  "Jan",
4264
4551
  "Feb",
4265
4552
  "Mar",
@@ -4273,21 +4560,21 @@ var Nr = [
4273
4560
  "Nov",
4274
4561
  "Dec"
4275
4562
  ];
4276
- function Pr(e) {
4563
+ function Rr(e) {
4277
4564
  return (/* @__PURE__ */ new Date(e + "T00:00:00")).toLocaleDateString("en-US", {
4278
4565
  month: "short",
4279
4566
  day: "numeric",
4280
4567
  year: "numeric"
4281
4568
  });
4282
4569
  }
4283
- function Fr(e) {
4570
+ function zr(e) {
4284
4571
  return (/* @__PURE__ */ new Date(e + "T00:00:00")).toLocaleDateString("en-US", {
4285
4572
  month: "long",
4286
4573
  day: "numeric",
4287
4574
  year: "numeric"
4288
4575
  });
4289
4576
  }
4290
- function Ir(e, t = /* @__PURE__ */ new Date()) {
4577
+ function Br(e, t = /* @__PURE__ */ new Date()) {
4291
4578
  let n = t.getTime() - e.getTime(), r = Math.floor(n / 1e3);
4292
4579
  if (r < 60) return "just now";
4293
4580
  let i = Math.floor(r / 60);
@@ -4295,7 +4582,7 @@ function Ir(e, t = /* @__PURE__ */ new Date()) {
4295
4582
  let a = Math.floor(i / 60);
4296
4583
  if (a < 24) return `${a}h ago`;
4297
4584
  if (Math.floor(a / 24) === 1) return "yesterday";
4298
- let o = `${Nr[e.getMonth()]} ${e.getDate()}`;
4585
+ let o = `${Lr[e.getMonth()]} ${e.getDate()}`;
4299
4586
  return e.getFullYear() === t.getFullYear() ? o : `${o}, ${e.getFullYear()}`;
4300
4587
  }
4301
4588
  //#endregion
@@ -4306,7 +4593,7 @@ var Z = {
4306
4593
  "jetbrains-mono": "\"JetBrains Mono\", Menlo, Monaco, Consolas, monospace",
4307
4594
  "pt-serif": "\"PT Serif\", Georgia, ui-serif, Cambria, \"Times New Roman\", Times, serif",
4308
4595
  system: "system-ui, -apple-system, BlinkMacSystemFont, sans-serif"
4309
- }, Lr = {
4596
+ }, Vr = {
4310
4597
  purple: {
4311
4598
  base: "#7C5CFC",
4312
4599
  hover: "#6B4AEB",
@@ -4363,7 +4650,7 @@ var Z = {
4363
4650
  muted: "rgba(99,102,241,0.15)",
4364
4651
  subtle: "rgba(99,102,241,0.08)"
4365
4652
  }
4366
- }, Rr = "leonardaustin-ui-settings", zr = new Set(Object.keys(Lr)), Br = new Set(Object.keys(U)), Q = new Set(Object.keys(Z)), Vr = new Set([
4653
+ }, Hr = "leonardaustin-ui-settings", Ur = new Set(Object.keys(Vr)), Wr = new Set(Object.keys(H)), Q = new Set(Object.keys(Z)), Gr = new Set([
4367
4654
  "light",
4368
4655
  "dark",
4369
4656
  "system"
@@ -4371,13 +4658,13 @@ var Z = {
4371
4658
  function $(e, t, n, r) {
4372
4659
  return typeof e != "number" || !isFinite(e) ? r : Math.min(n, Math.max(t, e));
4373
4660
  }
4374
- function Hr(e) {
4661
+ function Kr(e) {
4375
4662
  let t = {};
4376
- if (zr.has(e.accentColor) && (t.accentColor = e.accentColor), Vr.has(e.colorMode) && (t.colorMode = e.colorMode), Br.has(e.preferredDarkTheme) && !V(e.preferredDarkTheme) && (t.preferredDarkTheme = e.preferredDarkTheme), Br.has(e.preferredLightTheme) && V(e.preferredLightTheme) && (t.preferredLightTheme = e.preferredLightTheme), typeof e.sidebarCollapsed == "boolean" && (t.sidebarCollapsed = e.sidebarCollapsed), typeof e.reducedMotion == "boolean" && (t.reducedMotion = e.reducedMotion), typeof e.sidebarWidth == "number" && (t.sidebarWidth = $(e.sidebarWidth, 160, 400, 220)), e.themeOverrides && typeof e.themeOverrides == "object") {
4663
+ if (Ur.has(e.accentColor) && (t.accentColor = e.accentColor), Gr.has(e.colorMode) && (t.colorMode = e.colorMode), Wr.has(e.preferredDarkTheme) && !V(e.preferredDarkTheme) && (t.preferredDarkTheme = e.preferredDarkTheme), Wr.has(e.preferredLightTheme) && V(e.preferredLightTheme) && (t.preferredLightTheme = e.preferredLightTheme), typeof e.sidebarCollapsed == "boolean" && (t.sidebarCollapsed = e.sidebarCollapsed), typeof e.reducedMotion == "boolean" && (t.reducedMotion = e.reducedMotion), typeof e.sidebarWidth == "number" && (t.sidebarWidth = $(e.sidebarWidth, 160, 400, 220)), e.themeOverrides && typeof e.themeOverrides == "object") {
4377
4664
  let n = {};
4378
4665
  for (let [t, r] of Object.entries(e.themeOverrides)) {
4379
- if (!Br.has(t) || !r || typeof r != "object") continue;
4380
- let e = r, i = U[t];
4666
+ if (!Wr.has(t) || !r || typeof r != "object") continue;
4667
+ let e = r, i = H[t];
4381
4668
  n[t] = {
4382
4669
  uiFont: Q.has(e.uiFont) ? e.uiFont : i.uiFont,
4383
4670
  headingFont: Q.has(e.headingFont) ? e.headingFont : i.headingFont,
@@ -4399,7 +4686,7 @@ function Hr(e) {
4399
4686
  }
4400
4687
  return t;
4401
4688
  }
4402
- var Ur = {
4689
+ var qr = {
4403
4690
  accentColor: "purple",
4404
4691
  sidebarCollapsed: !1,
4405
4692
  sidebarWidth: 220,
@@ -4409,31 +4696,31 @@ var Ur = {
4409
4696
  preferredLightTheme: "light",
4410
4697
  themeOverrides: {}
4411
4698
  };
4412
- function Wr(e) {
4413
- if (typeof localStorage > "u") return Ur;
4699
+ function Jr(e) {
4700
+ if (typeof localStorage > "u") return qr;
4414
4701
  try {
4415
4702
  let t = localStorage.getItem(e);
4416
4703
  if (t) return {
4417
- ...Ur,
4418
- ...Hr(JSON.parse(t))
4704
+ ...qr,
4705
+ ...Kr(JSON.parse(t))
4419
4706
  };
4420
4707
  } catch (e) {
4421
4708
  console.warn("[SettingsProvider] Failed to load settings:", e);
4422
4709
  }
4423
- return Ur;
4710
+ return qr;
4424
4711
  }
4425
- function Gr(e, t) {
4426
- let n = U[e] ?? U.dark;
4712
+ function Yr(e, t) {
4713
+ let n = H[e] ?? H.dark;
4427
4714
  return t[e] ? {
4428
4715
  ...n,
4429
4716
  ...t[e]
4430
4717
  } : n;
4431
4718
  }
4432
- function Kr(e, t) {
4719
+ function Xr(e, t) {
4433
4720
  return e.uiFont === t.uiFont && e.headingFont === t.headingFont && e.proseFont === t.proseFont && e.controlFont === t.controlFont && e.labelFont === t.labelFont && e.navigationFont === t.navigationFont && e.dataFont === t.dataFont && e.codeFont === t.codeFont && e.fontSize === t.fontSize && e.borderRadius === t.borderRadius && e.borderWidth === t.borderWidth && e.tracking === t.tracking && e.lineHeight === t.lineHeight && e.density === t.density;
4434
4721
  }
4435
- function qr({ children: e, storageKey: t = Rr }) {
4436
- let [n, r] = d(() => Wr(t)), [a, s] = d(() => typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches);
4722
+ function Zr({ children: e, storageKey: t = Hr }) {
4723
+ let [n, r] = d(() => Jr(t)), [a, s] = d(() => typeof window < "u" && window.matchMedia("(prefers-color-scheme: dark)").matches);
4437
4724
  o(() => {
4438
4725
  if (typeof window > "u") return;
4439
4726
  let e = window.matchMedia("(prefers-color-scheme: dark)"), t = (e) => s(e.matches);
@@ -4444,9 +4731,9 @@ function qr({ children: e, storageKey: t = Rr }) {
4444
4731
  n.preferredDarkTheme,
4445
4732
  n.preferredLightTheme,
4446
4733
  a
4447
- ]), [u, f] = d(() => Gr(c, n.themeOverrides));
4734
+ ]), [u, f] = d(() => Yr(c, n.themeOverrides));
4448
4735
  o(() => {
4449
- f(Gr(c, n.themeOverrides));
4736
+ f(Yr(c, n.themeOverrides));
4450
4737
  }, [c]);
4451
4738
  let m = i((e) => {
4452
4739
  r((n) => {
@@ -4463,7 +4750,7 @@ function qr({ children: e, storageKey: t = Rr }) {
4463
4750
  });
4464
4751
  }, [t]);
4465
4752
  o(() => {
4466
- let e = document.documentElement, t = Lr[n.accentColor];
4753
+ let e = document.documentElement, t = Vr[n.accentColor];
4467
4754
  e.style.setProperty("--accent", t.base), e.style.setProperty("--accent-hover", t.hover), e.style.setProperty("--accent-active", t.active), e.style.setProperty("--accent-muted", t.muted), e.style.setProperty("--accent-subtle", t.subtle);
4468
4755
  }, [n.accentColor]), o(() => {
4469
4756
  document.documentElement.classList.toggle("reduced-motion", n.reducedMotion);
@@ -4471,7 +4758,7 @@ function qr({ children: e, storageKey: t = Rr }) {
4471
4758
  let e = document.documentElement, t = u.borderRadius;
4472
4759
  e.style.fontSize = `${u.fontSize / 13 * 100}%`, e.style.setProperty("--font-ui", Z[u.uiFont]), e.style.setProperty("--font-heading", Z[u.headingFont]), e.style.setProperty("--font-prose", Z[u.proseFont]), e.style.setProperty("--font-control", Z[u.controlFont]), e.style.setProperty("--font-label", Z[u.labelFont]), e.style.setProperty("--font-navigation", Z[u.navigationFont]), e.style.setProperty("--font-data", Z[u.dataFont]), e.style.setProperty("--font-code", Z[u.codeFont]), e.style.setProperty("--ui-radius", t === 0 ? "0" : `${Math.round(t * 2 / 3)}px`), e.style.setProperty("--ui-radius-md", t === 0 ? "0" : `${t}px`), e.style.setProperty("--ui-radius-lg", t === 0 ? "0" : `${Math.round(t * 4 / 3)}px`), e.style.setProperty("--ui-radius-xl", t === 0 ? "0" : `${t * 2}px`), e.style.setProperty("--ui-border-width", `${u.borderWidth}px`), e.style.setProperty("--ui-tracking", `${u.tracking}em`), e.style.setProperty("--ui-line-height", String(u.lineHeight)), e.style.setProperty("--ui-density", `${u.density}rem`);
4473
4760
  }, [u]);
4474
- let h = l(() => Gr(c, n.themeOverrides), [c, n.themeOverrides]), g = c in n.themeOverrides, _ = !Kr(u, h), v = i(() => {
4761
+ let h = l(() => Yr(c, n.themeOverrides), [c, n.themeOverrides]), g = c in n.themeOverrides, _ = !Xr(u, h), v = i(() => {
4475
4762
  m({ themeOverrides: {
4476
4763
  ...n.themeOverrides,
4477
4764
  [c]: { ...u }
@@ -4483,7 +4770,7 @@ function qr({ children: e, storageKey: t = Rr }) {
4483
4770
  u
4484
4771
  ]), y = i(() => {
4485
4772
  let e = { ...n.themeOverrides };
4486
- delete e[c], m({ themeOverrides: e }), f(U[c] ?? U.dark);
4773
+ delete e[c], m({ themeOverrides: e }), f(H[c] ?? H.dark);
4487
4774
  }, [
4488
4775
  m,
4489
4776
  n.themeOverrides,
@@ -4588,14 +4875,14 @@ function qr({ children: e, storageKey: t = Rr }) {
4588
4875
  g,
4589
4876
  _
4590
4877
  ]);
4591
- return /* @__PURE__ */ p(G.Provider, {
4878
+ return /* @__PURE__ */ p(gt.Provider, {
4592
4879
  value: b,
4593
4880
  children: e
4594
4881
  });
4595
4882
  }
4596
4883
  //#endregion
4597
4884
  //#region src/providers/ThemeProvider.tsx
4598
- var Jr = {
4885
+ var Qr = {
4599
4886
  dark: "",
4600
4887
  light: "theme-light",
4601
4888
  monokai: "theme-monokai",
@@ -4604,19 +4891,19 @@ var Jr = {
4604
4891
  cyberBrutalLight: "theme-cyber-brutal-light",
4605
4892
  hashiTheme: "theme-hashi"
4606
4893
  };
4607
- function Yr({ children: e }) {
4608
- let { resolvedTheme: t } = a(G);
4894
+ function $r({ children: e }) {
4895
+ let { resolvedTheme: t } = a(gt);
4609
4896
  return o(() => {
4610
4897
  let e = document.documentElement;
4611
- Object.values(Jr).forEach((t) => {
4898
+ Object.values(Qr).forEach((t) => {
4612
4899
  t && e.classList.remove(t);
4613
4900
  });
4614
- let n = Jr[t];
4901
+ let n = Qr[t];
4615
4902
  n && e.classList.add(n);
4616
- }, [t]), /* @__PURE__ */ p(jr.Provider, {
4903
+ }, [t]), /* @__PURE__ */ p(Fr.Provider, {
4617
4904
  value: { theme: t },
4618
4905
  children: e
4619
4906
  });
4620
4907
  }
4621
4908
  //#endregion
4622
- export { Zt as Alert, Vt as AppShell, _e as AreaChart, Qt as AuthCard, Ht as AuthLayout, $t as AuthorByline, q as Avatar, Ut as BackLink, nn as Badge, ye as BarChart, $e as BottomNav, It as Breadcrumbs, J as Button, tt as COMMAND_PALETTE_EVENT, X as CalendarGrid, hn as Card, Wt as Checkbox, Kt as ColumnPicker, gn as Combobox, ot as CommandPalette, nt as DEFAULT_COMMAND_PALETTE_SHORTCUT, _n as DangerZone, bn as DatePicker, wn as DateRangePicker, An as DateTimePicker, Pn as DetailPanel, Fn as Dialog, In as DialogActions, Ln as DividerLabel, Ue as DonutChart, Rn as DropdownMenu, zn as EmptyState, Bn as ErrorBoundary, Gt as FilterButton, Vn as FilterDropdown, Hn as Kbd, Wn as LoadingSpinner, Gn as MetadataGrid, Kn as MetricCard, ct as MobileDrawer, Zn as OAuthButton, Qn as PageHeader, $n as PageSection, qt as Pagination, nr as PaginationBar, rr as PasswordInput, ir as ProfileHeader, ar as ProseContent, Ge as RadarChart, qe as RadialBarChart, or as RadioPill, Yt as ResourceTable, sr as SearchInput, cr as SectionHeader, lr as Select, er as SelectDropdown, ur as SettingRow, G as SettingsContext, qr as SettingsProvider, fr as SideSheet, Pt as Sidebar, dr as Slider, Je as SparkLine, hr as SplitPaneLayout, vr as StatusDot, yr as StepProgress, br as Tabs, Sr as TextInput, xr as Textarea, jr as ThemeContext, Or as ThemePreview, Yr as ThemeProvider, Cr as Timeline, xt as ToastProvider, wr as Toggle, Dr as Toolbar, Er as Tooltip, Bt as TopBar, kr as UploadDropzone, Ze as VerticalBarChart, ht as accentItems, I as cn, ft as darkThemes, mt as fontOptions, Fr as formatDateLong, Pr as formatDateShort, Ir as formatRelative, z as handleAppShellNavigate, R as isAppShellPathActive, V as isLightTheme, dt as lightThemes, it as matchesCommandPaletteShortcut, Qe as navigateToPath, rt as openCommandPalette, Jt as sortRows, U as themeDefaults, lt as themeItems, Ar as useApplyTheme, W as useDismiss, B as useFocusTrap, K as useSettings, Mr as useTheme, bt as useToast };
4909
+ export { pn as Alert, nn as AppShell, he as AreaChart, mn as AuthCard, rn as AuthLayout, hn as AuthorByline, K as Avatar, an as BackLink, vn as Badge, _e as BarChart, $e as BottomNav, Lt as Breadcrumbs, q as Button, tt as COMMAND_PALETTE_EVENT, Tn as CalendarGrid, En as Card, on as Checkbox, cn as ColumnPicker, Dn as Combobox, ot as CommandPalette, nt as DEFAULT_COMMAND_PALETTE_SHORTCUT, On as DangerZone, An as DatePicker, Pn as DateRangePicker, Bn as DateTimePicker, Wn as DetailPanel, Gn as Dialog, Kn as DialogActions, qn as DividerLabel, He as DonutChart, Jn as DropdownMenu, Yn as EmptyState, Xn as ErrorBoundary, sn as FilterButton, Zn as FilterDropdown, Qn as Kbd, er as LoadingSpinner, tr as MetadataGrid, nr as MetricCard, ct as MobileDrawer, sr as OAuthButton, cr as PageHeader, lr as PageSection, ln as Pagination, dr as PaginationBar, fr as PasswordInput, pr as ProfileHeader, mr as ProseContent, We as RadarChart, Ke as RadialBarChart, hr as RadioPill, dn as ResourceTable, gr as SearchInput, J as SectionHeader, _r as Select, Y as SelectDropdown, vr as SettingRow, gt as SettingsContext, Zr as SettingsProvider, yr as SideSheet, Ft as Sidebar, X as Slider, qe as SparkLine, Sr as SplitPaneLayout, Tr as StatusDot, Er as StepProgress, Jt as THEME_MENU_EVENT, Dr as Tabs, kr as TextInput, Or as Textarea, Fr as ThemeContext, Zt as ThemeMenu, Kt as ThemePreview, $r as ThemeProvider, Ar as Timeline, St as ToastProvider, qt as Toggle, Nr as Toolbar, Mr as Tooltip, tn as TopBar, Pr as UploadDropzone, Xe as VerticalBarChart, ht as accentItems, L as cn, ft as darkThemes, U as fontOptions, zr as formatDateLong, Rr as formatDateShort, Br as formatRelative, z as handleAppShellNavigate, Ze as isAppShellPathActive, V as isLightTheme, dt as lightThemes, it as matchesCommandPaletteShortcut, Qe as navigateToPath, rt as openCommandPalette, Yt as openThemeMenu, un as sortRows, H as themeDefaults, lt as themeItems, Rt as useApplyTheme, W as useDismiss, B as useFocusTrap, G as useSettings, Ir as useTheme, xt as useToast };