@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/README.md +3 -4
- package/dist/components/app-shell/MobileDrawer.d.ts.map +1 -1
- package/dist/components/app-shell/ThemeMenu.d.ts +20 -0
- package/dist/components/app-shell/ThemeMenu.d.ts.map +1 -0
- package/dist/components/app-shell/TopBar.d.ts.map +1 -1
- package/dist/components/app-shell/themeMenuEvents.d.ts +9 -0
- package/dist/components/app-shell/themeMenuEvents.d.ts.map +1 -0
- package/dist/components/ui/Button.d.ts +10 -0
- package/dist/components/ui/Button.d.ts.map +1 -1
- package/dist/hooks/useDismiss.d.ts +9 -1
- package/dist/hooks/useDismiss.d.ts.map +1 -1
- package/dist/hooks/useFocusTrap.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1126 -839
- package/dist/lib/cn.d.ts +7 -1
- package/dist/lib/cn.d.ts.map +1 -1
- package/package.json +2 -20
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 {
|
|
4
|
-
import {
|
|
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
|
|
6
|
+
var I = {
|
|
8
7
|
top: 16,
|
|
9
8
|
right: 12,
|
|
10
9
|
bottom: 28,
|
|
11
10
|
left: 48
|
|
12
11
|
};
|
|
13
|
-
function
|
|
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
|
|
17
|
-
let n = s(), r = u(null), [i, a] = d(null), o = 600 -
|
|
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
|
|
18
|
+
return I.left + t / Math.max(e.length - 1, 1) * o;
|
|
20
19
|
}
|
|
21
20
|
function v(e) {
|
|
22
|
-
return
|
|
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)},${
|
|
24
|
+
`${_(0)},${I.top + c}`,
|
|
26
25
|
...e.map((e, t) => `${_(t)},${v(e.value)}`),
|
|
27
|
-
`${_(e.length - 1)},${
|
|
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 -
|
|
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:
|
|
68
|
-
y:
|
|
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:
|
|
72
|
+
children: me(h)
|
|
74
73
|
}),
|
|
75
74
|
/* @__PURE__ */ p("text", {
|
|
76
|
-
x:
|
|
77
|
-
y:
|
|
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:
|
|
81
|
+
children: me(l)
|
|
83
82
|
}),
|
|
84
83
|
/* @__PURE__ */ p("line", {
|
|
85
|
-
x1:
|
|
86
|
-
y1:
|
|
87
|
-
x2:
|
|
88
|
-
y2:
|
|
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:
|
|
114
|
+
y1: I.top,
|
|
116
115
|
x2: i.x,
|
|
117
|
-
y2:
|
|
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
|
|
169
|
+
var ge = [
|
|
171
170
|
1,
|
|
172
171
|
.85,
|
|
173
172
|
.7,
|
|
174
173
|
.55,
|
|
175
174
|
.45
|
|
176
175
|
];
|
|
177
|
-
function
|
|
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 :
|
|
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
|
-
|
|
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
|
-
]),
|
|
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
|
-
]),
|
|
275
|
+
]), xe = new Set([
|
|
265
276
|
"text-center",
|
|
266
277
|
"text-left",
|
|
267
278
|
"text-right"
|
|
268
|
-
]),
|
|
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
|
-
]),
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
348
|
-
return
|
|
358
|
+
function L(...e) {
|
|
359
|
+
return ke(ve(e));
|
|
349
360
|
}
|
|
350
|
-
function
|
|
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 =
|
|
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 &&
|
|
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
|
|
375
|
-
let t =
|
|
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
|
|
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
|
|
397
|
+
function Me(e) {
|
|
387
398
|
return e.startsWith("-") ? e.slice(1) : e;
|
|
388
399
|
}
|
|
389
|
-
function
|
|
390
|
-
let t =
|
|
391
|
-
if (t) return [...
|
|
392
|
-
let n =
|
|
393
|
-
if (n) return [...
|
|
394
|
-
let r =
|
|
395
|
-
if (r) return [...
|
|
396
|
-
if (
|
|
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 (
|
|
401
|
-
let i =
|
|
402
|
-
return i ? [...
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
451
|
-
let [n, r] = d(null), i = e.reduce((e, t) => e + t.value, 0), a = (t - 28) / 2, o =
|
|
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:
|
|
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 =
|
|
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:
|
|
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:
|
|
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
|
|
579
|
-
function
|
|
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:
|
|
597
|
-
let r = (n + 1) /
|
|
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:
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
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
|
-
],
|
|
869
|
+
], R = {
|
|
859
870
|
top: 20,
|
|
860
871
|
right: 8,
|
|
861
872
|
bottom: 24,
|
|
862
873
|
left: 40
|
|
863
874
|
};
|
|
864
|
-
function
|
|
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
|
|
868
|
-
let [n, r] = d(null), i = 600 -
|
|
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:
|
|
876
|
-
y:
|
|
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:
|
|
891
|
+
children: Ye(o)
|
|
881
892
|
}),
|
|
882
893
|
/* @__PURE__ */ p("text", {
|
|
883
|
-
x:
|
|
884
|
-
y:
|
|
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:
|
|
893
|
-
y1:
|
|
894
|
-
x2:
|
|
895
|
-
y2:
|
|
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:
|
|
901
|
-
y1:
|
|
902
|
-
x2:
|
|
903
|
-
y2:
|
|
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 =
|
|
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:
|
|
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 :
|
|
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
|
|
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:
|
|
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 =
|
|
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:
|
|
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
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
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
|
|
1013
|
-
t.shiftKey ?
|
|
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
|
|
1016
|
-
|
|
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(
|
|
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:
|
|
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
|
|
1154
|
-
document.body.style.overflow = "",
|
|
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:
|
|
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(
|
|
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 =
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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)),
|
|
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
|
-
},
|
|
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
|
-
},
|
|
1299
|
-
dark:
|
|
1300
|
-
light:
|
|
1301
|
-
monokai:
|
|
1302
|
-
solarized:
|
|
1303
|
-
cyberBrutalDark:
|
|
1304
|
-
cyberBrutalLight:
|
|
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
|
-
},
|
|
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
|
-
},
|
|
1397
|
+
}, o = (e) => {
|
|
1385
1398
|
e.key === "Escape" && t();
|
|
1386
1399
|
};
|
|
1387
|
-
return document.addEventListener("mousedown", i), document.addEventListener("keydown",
|
|
1388
|
-
document.removeEventListener("mousedown", i), document.removeEventListener("keydown",
|
|
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
|
|
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
|
|
1451
|
-
return a(
|
|
1464
|
+
function G() {
|
|
1465
|
+
return a(gt);
|
|
1452
1466
|
}
|
|
1453
1467
|
//#endregion
|
|
1454
1468
|
//#region src/components/ui/Avatar.tsx
|
|
1455
|
-
var
|
|
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
|
|
1475
|
+
function vt(e) {
|
|
1462
1476
|
return e.split(" ").map((e) => e[0]).join("").toUpperCase().slice(0, 2);
|
|
1463
1477
|
}
|
|
1464
|
-
function
|
|
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
|
|
1483
|
+
function K({ name: e, src: t, size: n = "md", className: r }) {
|
|
1470
1484
|
return /* @__PURE__ */ p("div", {
|
|
1471
|
-
className:
|
|
1472
|
-
style: { backgroundColor: t ? void 0 :
|
|
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
|
-
}) :
|
|
1492
|
+
}) : vt(e)
|
|
1479
1493
|
});
|
|
1480
1494
|
}
|
|
1481
1495
|
//#endregion
|
|
1482
1496
|
//#region src/components/ui/Toast.tsx
|
|
1483
|
-
var
|
|
1484
|
-
function
|
|
1485
|
-
return a(
|
|
1497
|
+
var bt = n({ toast: () => {} });
|
|
1498
|
+
function xt() {
|
|
1499
|
+
return a(bt);
|
|
1486
1500
|
}
|
|
1487
|
-
function
|
|
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(
|
|
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(
|
|
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
|
|
1512
|
-
success:
|
|
1513
|
-
error:
|
|
1514
|
-
warning:
|
|
1525
|
+
var Ct = {
|
|
1526
|
+
success: C,
|
|
1527
|
+
error: fe,
|
|
1528
|
+
warning: g,
|
|
1515
1529
|
info: te
|
|
1516
|
-
},
|
|
1530
|
+
}, wt = {
|
|
1517
1531
|
success: "bg-green",
|
|
1518
1532
|
error: "bg-red",
|
|
1519
1533
|
warning: "bg-yellow",
|
|
1520
1534
|
info: "bg-blue"
|
|
1521
|
-
},
|
|
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
|
|
1528
|
-
let [n, r] = d(100), i =
|
|
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:
|
|
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:
|
|
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(
|
|
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
|
|
1571
|
-
function
|
|
1572
|
-
let i =
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
1629
|
+
function Mt(e) {
|
|
1616
1630
|
return e.role ?? e.email;
|
|
1617
1631
|
}
|
|
1618
|
-
function
|
|
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
|
|
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
|
|
1650
|
+
function O() {
|
|
1637
1651
|
h(!1), a ? a() : o && Qe(o, c);
|
|
1638
1652
|
}
|
|
1639
|
-
return
|
|
1653
|
+
return C ? /* @__PURE__ */ m(f, { children: [/* @__PURE__ */ m("button", {
|
|
1640
1654
|
ref: b,
|
|
1641
1655
|
onClick: T,
|
|
1642
|
-
className:
|
|
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 ?
|
|
1645
|
-
children: [/* @__PURE__ */ p(
|
|
1646
|
-
name:
|
|
1647
|
-
src:
|
|
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:
|
|
1654
|
-
}),
|
|
1667
|
+
children: C.name
|
|
1668
|
+
}), Mt(C) && /* @__PURE__ */ p("p", {
|
|
1655
1669
|
className: "text-2xs text-text-tertiary truncate leading-tight",
|
|
1656
|
-
children:
|
|
1670
|
+
children: Mt(C)
|
|
1657
1671
|
})]
|
|
1658
|
-
}), /* @__PURE__ */ p(
|
|
1659
|
-
}), l &&
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
|
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
|
-
}),
|
|
1706
|
-
W(o, i(() => s(!1), []), [_], [
|
|
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 (!
|
|
1709
|
-
let e =
|
|
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:
|
|
1733
|
+
ref: g,
|
|
1720
1734
|
onClick: D,
|
|
1721
|
-
className:
|
|
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(
|
|
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 &&
|
|
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:
|
|
1758
|
+
Icon: M
|
|
1745
1759
|
},
|
|
1746
1760
|
{
|
|
1747
1761
|
value: "light",
|
|
1748
1762
|
label: "Light",
|
|
1749
|
-
Icon:
|
|
1763
|
+
Icon: ue
|
|
1750
1764
|
},
|
|
1751
1765
|
{
|
|
1752
1766
|
value: "system",
|
|
1753
1767
|
label: "System",
|
|
1754
|
-
Icon:
|
|
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
|
-
|
|
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:
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
1812
|
-
let { sidebarCollapsed: y, sidebarWidth: b, setSidebarWidth: x } =
|
|
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 || !
|
|
1817
|
-
let t =
|
|
1818
|
-
x(Math.max(
|
|
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:
|
|
1832
|
-
className:
|
|
1833
|
-
style: { width: y ?
|
|
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(
|
|
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
|
|
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: [
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
1917
|
+
function It(e) {
|
|
1901
1918
|
return e.charAt(0).toUpperCase() + e.slice(1);
|
|
1902
1919
|
}
|
|
1903
|
-
function
|
|
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] ||
|
|
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:
|
|
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(
|
|
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:
|
|
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
|
|
2478
|
+
var Qt = [
|
|
1937
2479
|
"dark",
|
|
1938
2480
|
"light",
|
|
1939
2481
|
"system"
|
|
1940
|
-
],
|
|
1941
|
-
dark:
|
|
1942
|
-
light:
|
|
1943
|
-
system:
|
|
1944
|
-
},
|
|
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
|
|
1950
|
-
let { sidebarCollapsed: c, setSidebarCollapsed: l, colorMode: u, setColorMode: d } =
|
|
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(
|
|
2494
|
+
d(Qt[(Qt.indexOf(u) + 1) % Qt.length]);
|
|
1953
2495
|
}
|
|
1954
|
-
let g =
|
|
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 ?
|
|
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(
|
|
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: [
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
1988
|
-
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1996
|
-
|
|
1997
|
-
|
|
1998
|
-
|
|
1999
|
-
|
|
2000
|
-
|
|
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
|
|
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:
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
|
2617
|
+
function rn({ children: e, className: t }) {
|
|
2072
2618
|
return /* @__PURE__ */ m("div", {
|
|
2073
|
-
className:
|
|
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
|
|
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:
|
|
2087
|
-
children: [/* @__PURE__ */ p(
|
|
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
|
|
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:
|
|
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:
|
|
2102
|
-
children: t ? /* @__PURE__ */ p(ae, { className: "text-text-on-accent h-3 w-3" }) : e ? /* @__PURE__ */ p(
|
|
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
|
|
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:
|
|
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
|
|
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(
|
|
2130
|
-
icon:
|
|
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(
|
|
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
|
|
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(
|
|
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:
|
|
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(
|
|
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
|
|
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
|
|
2196
|
-
let c = s !== void 0, [u, f] = d(null), [h, g] = d("asc"),
|
|
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
|
-
|
|
2746
|
+
v,
|
|
2747
|
+
b
|
|
2202
2748
|
]);
|
|
2203
2749
|
function S(e) {
|
|
2204
|
-
let t =
|
|
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:
|
|
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 &&
|
|
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:
|
|
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:
|
|
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
|
|
2790
|
+
var fn = {
|
|
2245
2791
|
success: {
|
|
2246
2792
|
bg: "bg-green-muted",
|
|
2247
2793
|
border: "border-green/30",
|
|
2248
|
-
icon:
|
|
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:
|
|
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
|
|
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 =
|
|
2819
|
+
let s = fn[e], c = s.icon;
|
|
2274
2820
|
return /* @__PURE__ */ m("div", {
|
|
2275
|
-
className:
|
|
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:
|
|
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(
|
|
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
|
|
2845
|
+
function mn({ title: e, subtitle: t, icon: n, children: r, footer: i, className: a }) {
|
|
2300
2846
|
return /* @__PURE__ */ p("div", {
|
|
2301
|
-
className:
|
|
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
|
|
2879
|
+
function hn({ name: e, meta: t, nameAppend: n, size: r = "sm", className: i }) {
|
|
2334
2880
|
return /* @__PURE__ */ m("div", {
|
|
2335
|
-
className:
|
|
2336
|
-
children: [/* @__PURE__ */ p(
|
|
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:
|
|
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
|
|
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
|
-
},
|
|
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
|
|
2911
|
+
function vn({ color: e = "gray", dot: t, children: n, className: r }) {
|
|
2366
2912
|
return /* @__PURE__ */ m("span", {
|
|
2367
|
-
className:
|
|
2368
|
-
children: [t && /* @__PURE__ */ p("span", { className:
|
|
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
|
|
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
|
-
],
|
|
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
|
|
2941
|
+
function xn(e, t) {
|
|
2454
2942
|
return e.getFullYear() === t.getFullYear() && e.getMonth() === t.getMonth() && e.getDate() === t.getDate();
|
|
2455
2943
|
}
|
|
2456
|
-
function
|
|
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
|
|
2949
|
+
function Cn(e, t) {
|
|
2462
2950
|
return new Date(e, t + 1, 0).getDate();
|
|
2463
2951
|
}
|
|
2464
|
-
function
|
|
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
|
|
2469
|
-
let h =
|
|
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
|
|
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(
|
|
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
|
-
|
|
3009
|
+
bn[t],
|
|
2522
3010
|
" ",
|
|
2523
3011
|
e
|
|
2524
3012
|
]
|
|
2525
3013
|
}),
|
|
2526
3014
|
/* @__PURE__ */ p("button", {
|
|
2527
3015
|
type: "button",
|
|
2528
|
-
onClick:
|
|
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(
|
|
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: [
|
|
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 =
|
|
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": `${
|
|
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:
|
|
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
|
|
3050
|
+
function En({ children: e, className: t, header: n, footer: r }) {
|
|
2563
3051
|
return /* @__PURE__ */ m("div", {
|
|
2564
|
-
className:
|
|
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
|
|
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),
|
|
2585
|
-
function
|
|
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,
|
|
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(),
|
|
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:
|
|
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:
|
|
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(
|
|
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(
|
|
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":
|
|
3129
|
+
"aria-activedescendant": C[g] ? `${b}-${g}` : void 0,
|
|
2642
3130
|
"aria-autocomplete": "list",
|
|
2643
3131
|
value: f,
|
|
2644
|
-
onChange: (e) =>
|
|
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:
|
|
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
|
-
}) :
|
|
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:
|
|
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(
|
|
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
|
|
3167
|
+
function On({ title: e = "Danger Zone", description: t, children: n, className: r }) {
|
|
2680
3168
|
return /* @__PURE__ */ m("div", {
|
|
2681
|
-
className:
|
|
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
|
|
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
|
|
2724
|
-
let [o, s] = d(!1), c = u(null), l = u(null), f =
|
|
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
|
|
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:
|
|
3221
|
+
onClick: S,
|
|
2744
3222
|
"aria-haspopup": "dialog",
|
|
2745
3223
|
"aria-expanded": o,
|
|
2746
|
-
className:
|
|
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(
|
|
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:
|
|
2758
|
-
children: /* @__PURE__ */ p(
|
|
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
|
|
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
|
|
2789
|
-
return `${
|
|
3266
|
+
function Mn(e) {
|
|
3267
|
+
return `${jn[e.getMonth()]} ${e.getDate()}, ${e.getFullYear()}`;
|
|
2790
3268
|
}
|
|
2791
|
-
function
|
|
2792
|
-
return e.start && e.end ? `${
|
|
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
|
|
2795
|
-
let [a, o] = d(!1), s = u(null), c = u(null), l =
|
|
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
|
|
2802
|
-
|
|
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
|
|
3285
|
+
function te() {
|
|
2808
3286
|
_ === 0 ? (g(h - 1), v(11)) : v(_ - 1);
|
|
2809
3287
|
}
|
|
2810
|
-
function
|
|
3288
|
+
function ne() {
|
|
2811
3289
|
_ === 11 ? (g(h + 1), v(0)) : v(_ + 1);
|
|
2812
3290
|
}
|
|
2813
|
-
let
|
|
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:
|
|
2829
|
-
children:
|
|
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(
|
|
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:
|
|
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:
|
|
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:
|
|
3334
|
+
children: S === "start" ? "Select start date" : "Select end date"
|
|
2857
3335
|
}),
|
|
2858
3336
|
/* @__PURE__ */ p("button", {
|
|
2859
3337
|
type: "button",
|
|
2860
|
-
onClick:
|
|
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(
|
|
3349
|
+
children: [/* @__PURE__ */ p(Tn, {
|
|
2872
3350
|
year: h,
|
|
2873
3351
|
month: _,
|
|
2874
3352
|
rangeStart: w,
|
|
2875
3353
|
rangeEnd: E,
|
|
2876
|
-
hoverDate:
|
|
2877
|
-
onSelect:
|
|
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(
|
|
3360
|
+
}), /* @__PURE__ */ p(Tn, {
|
|
2883
3361
|
year: O,
|
|
2884
3362
|
month: k,
|
|
2885
3363
|
rangeStart: w,
|
|
2886
3364
|
rangeEnd: E,
|
|
2887
|
-
hoverDate:
|
|
2888
|
-
onSelect:
|
|
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
|
|
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
|
|
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
|
|
3409
|
+
function Ln(e, t) {
|
|
2932
3410
|
return t === "AM" ? e === 12 ? 0 : e : e === 12 ? 12 : e + 12;
|
|
2933
3411
|
}
|
|
2934
|
-
function
|
|
2935
|
-
let t =
|
|
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
|
|
3416
|
+
function zn(e) {
|
|
2939
3417
|
return String(e).padStart(2, "0");
|
|
2940
3418
|
}
|
|
2941
|
-
function
|
|
2942
|
-
let [a, o] = d(!1), s = u(null), c = u(null), l =
|
|
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,
|
|
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
|
-
|
|
3430
|
+
S(t);
|
|
2953
3431
|
let n = parseInt(t, 10);
|
|
2954
|
-
!isNaN(n) && n >= 13 && n <= 23 ? (
|
|
3432
|
+
!isNaN(n) && n >= 13 && n <= 23 ? (S(String(n - 12)), E("PM")) : n === 0 && (S("12"), E("AM"));
|
|
2955
3433
|
}
|
|
2956
|
-
function
|
|
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 =
|
|
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
|
|
3439
|
+
function te() {
|
|
2962
3440
|
if (!a && t) {
|
|
2963
3441
|
_(t.getFullYear()), y(t.getMonth()), O(t);
|
|
2964
|
-
let e =
|
|
2965
|
-
|
|
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:
|
|
3458
|
+
onClick: te,
|
|
2981
3459
|
"aria-haspopup": "dialog",
|
|
2982
3460
|
"aria-expanded": a,
|
|
2983
|
-
className:
|
|
2984
|
-
children: t ?
|
|
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(
|
|
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:
|
|
2995
|
-
children: [/* @__PURE__ */ p(
|
|
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:
|
|
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:
|
|
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:
|
|
3535
|
+
onClick: ee,
|
|
3058
3536
|
disabled: !D,
|
|
3059
|
-
className:
|
|
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
|
|
3072
|
-
function
|
|
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:
|
|
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(
|
|
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
|
|
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 ?
|
|
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:
|
|
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(
|
|
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
|
|
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:
|
|
3172
|
-
children: [/* @__PURE__ */ p(
|
|
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(
|
|
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
|
|
3665
|
+
function qn({ children: e, className: t }) {
|
|
3188
3666
|
return /* @__PURE__ */ m("div", {
|
|
3189
|
-
className:
|
|
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
|
|
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
|
|
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 &&
|
|
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
|
-
|
|
3255
|
-
let n =
|
|
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:
|
|
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(
|
|
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
|
|
3763
|
+
function Yn({ icon: e, title: t, description: n, action: r, className: i }) {
|
|
3286
3764
|
return /* @__PURE__ */ m("div", {
|
|
3287
|
-
className:
|
|
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
|
|
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(
|
|
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
|
|
3353
|
-
return /* @__PURE__ */ p(
|
|
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(
|
|
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
|
|
3843
|
+
function Qn({ children: e, className: t }) {
|
|
3366
3844
|
return /* @__PURE__ */ p("kbd", {
|
|
3367
|
-
className:
|
|
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
|
|
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
|
|
3856
|
+
function er({ className: e, size: t = "md" }) {
|
|
3379
3857
|
return /* @__PURE__ */ p("div", {
|
|
3380
|
-
className:
|
|
3381
|
-
children: /* @__PURE__ */ p(ne, { className:
|
|
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
|
|
3864
|
+
function tr({ items: e, labelWidth: n = "100px", className: r }) {
|
|
3387
3865
|
return /* @__PURE__ */ p("div", {
|
|
3388
|
-
className:
|
|
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
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
3945
|
+
var ar = {
|
|
3468
3946
|
github: "GitHub",
|
|
3469
3947
|
google: "Google"
|
|
3470
|
-
},
|
|
3471
|
-
github:
|
|
3472
|
-
google:
|
|
3948
|
+
}, or = {
|
|
3949
|
+
github: ir,
|
|
3950
|
+
google: rr
|
|
3473
3951
|
};
|
|
3474
|
-
function
|
|
3475
|
-
let r =
|
|
3476
|
-
return /* @__PURE__ */ m(
|
|
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 ??
|
|
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
|
|
3963
|
+
function cr({ title: e, subtitle: t, actions: n, className: r }) {
|
|
3486
3964
|
return /* @__PURE__ */ m("div", {
|
|
3487
|
-
className:
|
|
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
|
|
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:
|
|
3982
|
+
className: L("space-y-4", a),
|
|
3505
3983
|
children: [(e || t || n) && /* @__PURE__ */ m("div", {
|
|
3506
|
-
className:
|
|
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
|
|
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
|
|
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:
|
|
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(
|
|
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(
|
|
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
|
|
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:
|
|
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 ?
|
|
4078
|
+
children: p(s ? A : k, { className: "h-3.5 w-3.5" })
|
|
3688
4079
|
})]
|
|
3689
4080
|
})]
|
|
3690
4081
|
});
|
|
3691
4082
|
});
|
|
3692
|
-
|
|
4083
|
+
fr.displayName = "PasswordInput";
|
|
3693
4084
|
//#endregion
|
|
3694
4085
|
//#region src/components/ui/ProfileHeader.tsx
|
|
3695
|
-
function
|
|
4086
|
+
function pr({ name: e, subtitle: t, badge: n, meta: r, action: i, className: a }) {
|
|
3696
4087
|
return /* @__PURE__ */ m("div", {
|
|
3697
|
-
className:
|
|
4088
|
+
className: L("flex items-start gap-4", a),
|
|
3698
4089
|
children: [
|
|
3699
|
-
/* @__PURE__ */ p(
|
|
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
|
|
4134
|
+
function mr({ children: e, className: t }) {
|
|
3744
4135
|
return /* @__PURE__ */ p("div", {
|
|
3745
|
-
className:
|
|
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
|
|
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:
|
|
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:
|
|
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
|
|
4159
|
+
function gr({ value: e, onChange: t, placeholder: n = "Search...", className: r }) {
|
|
3769
4160
|
return /* @__PURE__ */ m("div", {
|
|
3770
|
-
className:
|
|
3771
|
-
children: [/* @__PURE__ */ p(
|
|
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:
|
|
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
|
|
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:
|
|
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(
|
|
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
|
-
|
|
4202
|
+
_r.displayName = "Select";
|
|
3820
4203
|
//#endregion
|
|
3821
4204
|
//#region src/components/ui/SettingRow.tsx
|
|
3822
|
-
function
|
|
4205
|
+
function vr({ label: e, description: t, action: n, className: r }) {
|
|
3823
4206
|
return /* @__PURE__ */ m("div", {
|
|
3824
|
-
className:
|
|
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
|
|
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 ?
|
|
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:
|
|
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(
|
|
4259
|
+
children: /* @__PURE__ */ p(P, { className: "h-3.5 w-3.5" })
|
|
3905
4260
|
})]
|
|
3906
4261
|
}),
|
|
3907
4262
|
/* @__PURE__ */ p("div", {
|
|
3908
|
-
className:
|
|
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
|
|
4281
|
+
function br({ children: e, direction: t = "row", className: n }) {
|
|
3927
4282
|
return /* @__PURE__ */ p("div", {
|
|
3928
|
-
className:
|
|
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
|
|
4287
|
+
function xr({ children: e, className: t }) {
|
|
3933
4288
|
return /* @__PURE__ */ p("div", {
|
|
3934
|
-
className:
|
|
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
|
|
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
|
-
},
|
|
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
|
|
4304
|
+
function Tr({ status: e, label: t, className: n }) {
|
|
3950
4305
|
return /* @__PURE__ */ m("span", {
|
|
3951
|
-
className:
|
|
3952
|
-
children: [/* @__PURE__ */ p("span", { className:
|
|
3953
|
-
className:
|
|
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
|
|
4315
|
+
function Er({ steps: e, currentStep: t, className: n }) {
|
|
3961
4316
|
return /* @__PURE__ */ p("div", {
|
|
3962
|
-
className:
|
|
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:
|
|
3970
|
-
children: r < t ? /* @__PURE__ */ p(
|
|
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:
|
|
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:
|
|
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
|
|
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:
|
|
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
|
|
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:
|
|
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
|
-
|
|
4415
|
+
Or.displayName = "Textarea";
|
|
4061
4416
|
//#endregion
|
|
4062
4417
|
//#region src/components/ui/TextInput.tsx
|
|
4063
|
-
var
|
|
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:
|
|
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
|
-
|
|
4447
|
+
kr.displayName = "TextInput";
|
|
4093
4448
|
//#endregion
|
|
4094
4449
|
//#region src/components/ui/Timeline.tsx
|
|
4095
|
-
function
|
|
4450
|
+
function Ar({ items: e, className: t }) {
|
|
4096
4451
|
return /* @__PURE__ */ p("div", {
|
|
4097
|
-
className:
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
4498
|
+
function Nr({ start: e, end: t, children: n, className: r, startClassName: i, endClassName: a }) {
|
|
4177
4499
|
return /* @__PURE__ */ m("div", {
|
|
4178
|
-
className:
|
|
4500
|
+
className: L("flex items-center justify-between gap-3", r),
|
|
4179
4501
|
children: [/* @__PURE__ */ p("div", {
|
|
4180
|
-
className:
|
|
4502
|
+
className: L("flex flex-1 items-center gap-3", i),
|
|
4181
4503
|
children: e ?? n
|
|
4182
4504
|
}), t && /* @__PURE__ */ p("div", {
|
|
4183
|
-
className:
|
|
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
|
|
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:
|
|
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(
|
|
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
|
|
4541
|
+
var Fr = n({ theme: "dark" });
|
|
4255
4542
|
//#endregion
|
|
4256
4543
|
//#region src/hooks/useTheme.ts
|
|
4257
|
-
function
|
|
4258
|
-
return a(
|
|
4544
|
+
function Ir() {
|
|
4545
|
+
return a(Fr);
|
|
4259
4546
|
}
|
|
4260
4547
|
//#endregion
|
|
4261
4548
|
//#region src/lib/formatDate.ts
|
|
4262
|
-
var
|
|
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
|
|
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
|
|
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
|
|
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 = `${
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
|
4661
|
+
function Kr(e) {
|
|
4375
4662
|
let t = {};
|
|
4376
|
-
if (
|
|
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 (!
|
|
4380
|
-
let e = r, i =
|
|
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
|
|
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
|
|
4413
|
-
if (typeof localStorage > "u") return
|
|
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
|
-
...
|
|
4418
|
-
...
|
|
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
|
|
4710
|
+
return qr;
|
|
4424
4711
|
}
|
|
4425
|
-
function
|
|
4426
|
-
let n =
|
|
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
|
|
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
|
|
4436
|
-
let [n, r] = d(() =>
|
|
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(() =>
|
|
4734
|
+
]), [u, f] = d(() => Yr(c, n.themeOverrides));
|
|
4448
4735
|
o(() => {
|
|
4449
|
-
f(
|
|
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 =
|
|
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(() =>
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
4608
|
-
let { resolvedTheme: t } = a(
|
|
4894
|
+
function $r({ children: e }) {
|
|
4895
|
+
let { resolvedTheme: t } = a(gt);
|
|
4609
4896
|
return o(() => {
|
|
4610
4897
|
let e = document.documentElement;
|
|
4611
|
-
Object.values(
|
|
4898
|
+
Object.values(Qr).forEach((t) => {
|
|
4612
4899
|
t && e.classList.remove(t);
|
|
4613
4900
|
});
|
|
4614
|
-
let n =
|
|
4901
|
+
let n = Qr[t];
|
|
4615
4902
|
n && e.classList.add(n);
|
|
4616
|
-
}, [t]), /* @__PURE__ */ p(
|
|
4903
|
+
}, [t]), /* @__PURE__ */ p(Fr.Provider, {
|
|
4617
4904
|
value: { theme: t },
|
|
4618
4905
|
children: e
|
|
4619
4906
|
});
|
|
4620
4907
|
}
|
|
4621
4908
|
//#endregion
|
|
4622
|
-
export {
|
|
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 };
|