reend-components 0.3.0 → 1.0.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.
@@ -1,55 +1,55 @@
1
- import { jsx as a, jsxs as l } from "react/jsx-runtime";
2
- import * as n from "react";
3
- import * as A from "@radix-ui/react-tooltip";
4
- import { clsx as ne } from "clsx";
5
- import { twMerge as se } from "tailwind-merge";
6
- import * as v from "@radix-ui/react-toast";
7
- import { cva as h } from "class-variance-authority";
8
- import { X as ie, Crosshair as le, Terminal as de, AlertTriangle as ce } from "lucide-react";
9
- import { Toaster as pe } from "sonner";
10
- import { toast as mr } from "sonner";
11
- import { Slot as fe } from "@radix-ui/react-slot";
12
- import * as M from "@radix-ui/react-checkbox";
13
- import * as W from "@radix-ui/react-radio-group";
14
- import * as F from "@radix-ui/react-switch";
15
- import * as x from "@radix-ui/react-select";
16
- import * as j from "@radix-ui/react-avatar";
17
- import * as G from "@radix-ui/react-progress";
18
- import * as k from "@radix-ui/react-accordion";
19
- import * as P from "@radix-ui/react-tabs";
20
- import * as R from "@radix-ui/react-popover";
21
- import * as y from "@radix-ui/react-dialog";
22
- import * as me from "@radix-ui/react-separator";
23
- import { AnimatePresence as ue, motion as V, useInView as ge } from "framer-motion";
24
- function i(...e) {
25
- return se(ne(e));
1
+ import { jsx as e, jsxs as c, Fragment as Le } from "react/jsx-runtime";
2
+ import * as i from "react";
3
+ import * as z from "@radix-ui/react-tooltip";
4
+ import { clsx as $e } from "clsx";
5
+ import { twMerge as Fe } from "tailwind-merge";
6
+ import * as E from "@radix-ui/react-toast";
7
+ import { cva as T } from "class-variance-authority";
8
+ import { X as Be, Crosshair as je, Terminal as ze, AlertTriangle as Ge } from "lucide-react";
9
+ import { Toaster as Ue } from "sonner";
10
+ import { toast as Va } from "sonner";
11
+ import { Slot as He } from "@radix-ui/react-slot";
12
+ import * as oe from "@radix-ui/react-checkbox";
13
+ import * as Te from "@radix-ui/react-radio-group";
14
+ import * as ne from "@radix-ui/react-switch";
15
+ import * as D from "@radix-ui/react-select";
16
+ import * as re from "@radix-ui/react-avatar";
17
+ import * as se from "@radix-ui/react-progress";
18
+ import * as B from "@radix-ui/react-accordion";
19
+ import * as K from "@radix-ui/react-tabs";
20
+ import * as j from "@radix-ui/react-popover";
21
+ import * as M from "@radix-ui/react-dialog";
22
+ import * as Ye from "@radix-ui/react-separator";
23
+ import { AnimatePresence as We, motion as te, useInView as Ke } from "framer-motion";
24
+ function s(...t) {
25
+ return Fe($e(t));
26
26
  }
27
- const sr = A.Provider, ir = A.Root, lr = A.Trigger, be = n.forwardRef(({ className: e, sideOffset: t = 4, ...r }, o) => /* @__PURE__ */ a(
28
- A.Content,
27
+ const Ra = z.Provider, Ia = z.Root, Aa = z.Trigger, qe = i.forwardRef(({ className: t, sideOffset: r = 4, ...a }, o) => /* @__PURE__ */ e(
28
+ z.Content,
29
29
  {
30
30
  ref: o,
31
- sideOffset: t,
32
- className: i(
31
+ sideOffset: r,
32
+ className: s(
33
33
  "z-50 overflow-hidden border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
34
- e
34
+ t
35
35
  ),
36
- ...r
36
+ ...a
37
37
  }
38
38
  ));
39
- be.displayName = A.Content.displayName;
40
- const xe = v.Provider, Y = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
41
- v.Viewport,
39
+ qe.displayName = z.Content.displayName;
40
+ const Xe = E.Provider, Se = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
41
+ E.Viewport,
42
42
  {
43
- ref: r,
44
- className: i(
43
+ ref: a,
44
+ className: s(
45
45
  "fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",
46
- e
46
+ t
47
47
  ),
48
- ...t
48
+ ...r
49
49
  }
50
50
  ));
51
- Y.displayName = v.Viewport.displayName;
52
- const he = h(
51
+ Se.displayName = E.Viewport.displayName;
52
+ const Ze = T(
53
53
  "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
54
54
  {
55
55
  variants: {
@@ -62,96 +62,96 @@ const he = h(
62
62
  variant: "default"
63
63
  }
64
64
  }
65
- ), X = n.forwardRef(({ className: e, variant: t, ...r }, o) => /* @__PURE__ */ a(
66
- v.Root,
65
+ ), ke = i.forwardRef(({ className: t, variant: r, ...a }, o) => /* @__PURE__ */ e(
66
+ E.Root,
67
67
  {
68
68
  ref: o,
69
- className: i(he({ variant: t }), e),
70
- ...r
69
+ className: s(Ze({ variant: r }), t),
70
+ ...a
71
71
  }
72
72
  ));
73
- X.displayName = v.Root.displayName;
74
- const ve = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
75
- v.Action,
73
+ ke.displayName = E.Root.displayName;
74
+ const Qe = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
75
+ E.Action,
76
76
  {
77
- ref: r,
78
- className: i(
77
+ ref: a,
78
+ className: s(
79
79
  "inline-flex h-8 shrink-0 items-center justify-center border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",
80
- e
80
+ t
81
81
  ),
82
- ...t
82
+ ...r
83
83
  }
84
84
  ));
85
- ve.displayName = v.Action.displayName;
86
- const K = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
87
- v.Close,
85
+ Qe.displayName = E.Action.displayName;
86
+ const Re = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
87
+ E.Close,
88
88
  {
89
- ref: r,
90
- className: i(
89
+ ref: a,
90
+ className: s(
91
91
  "absolute right-2 top-2 p-1 text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
92
- e
92
+ t
93
93
  ),
94
94
  "toast-close": "",
95
- ...t,
96
- children: /* @__PURE__ */ a(ie, { className: "h-4 w-4" })
95
+ ...r,
96
+ children: /* @__PURE__ */ e(Be, { className: "h-4 w-4" })
97
97
  }
98
98
  ));
99
- K.displayName = v.Close.displayName;
100
- const q = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
101
- v.Title,
99
+ Re.displayName = E.Close.displayName;
100
+ const Ie = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
101
+ E.Title,
102
102
  {
103
- ref: r,
104
- className: i("text-sm font-semibold", e),
105
- ...t
103
+ ref: a,
104
+ className: s("text-sm font-semibold", t),
105
+ ...r
106
106
  }
107
107
  ));
108
- q.displayName = v.Title.displayName;
109
- const Q = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
110
- v.Description,
108
+ Ie.displayName = E.Title.displayName;
109
+ const Ae = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
110
+ E.Description,
111
111
  {
112
- ref: r,
113
- className: i("text-sm opacity-90", e),
114
- ...t
112
+ ref: a,
113
+ className: s("text-sm opacity-90", t),
114
+ ...r
115
115
  }
116
116
  ));
117
- Q.displayName = v.Description.displayName;
118
- const ye = 1, Ne = 5e3;
119
- let _ = 0;
120
- function we() {
121
- return _ = (_ + 1) % Number.MAX_SAFE_INTEGER, _.toString();
117
+ Ae.displayName = E.Description.displayName;
118
+ const Je = 1, et = 5e3;
119
+ let q = 0;
120
+ function tt() {
121
+ return q = (q + 1) % Number.MAX_SAFE_INTEGER, q.toString();
122
122
  }
123
- const $ = /* @__PURE__ */ new Map(), H = (e) => {
124
- if ($.has(e))
123
+ const X = /* @__PURE__ */ new Map(), ie = (t) => {
124
+ if (X.has(t))
125
125
  return;
126
- const t = setTimeout(() => {
127
- $.delete(e), S({
126
+ const r = setTimeout(() => {
127
+ X.delete(t), $({
128
128
  type: "REMOVE_TOAST",
129
- toastId: e
129
+ toastId: t
130
130
  });
131
- }, Ne);
132
- $.set(e, t);
133
- }, Te = (e, t) => {
134
- switch (t.type) {
131
+ }, et);
132
+ X.set(t, r);
133
+ }, rt = (t, r) => {
134
+ switch (r.type) {
135
135
  case "ADD_TOAST":
136
136
  return {
137
- ...e,
138
- toasts: [t.toast, ...e.toasts].slice(0, ye)
137
+ ...t,
138
+ toasts: [r.toast, ...t.toasts].slice(0, Je)
139
139
  };
140
140
  case "UPDATE_TOAST":
141
141
  return {
142
- ...e,
143
- toasts: e.toasts.map(
144
- (r) => r.id === t.toast.id ? { ...r, ...t.toast } : r
142
+ ...t,
143
+ toasts: t.toasts.map(
144
+ (a) => a.id === r.toast.id ? { ...a, ...r.toast } : a
145
145
  )
146
146
  };
147
147
  case "DISMISS_TOAST": {
148
- const { toastId: r } = t;
149
- return r ? H(r) : e.toasts.forEach((o) => {
150
- H(o.id);
148
+ const { toastId: a } = r;
149
+ return a ? ie(a) : t.toasts.forEach((o) => {
150
+ ie(o.id);
151
151
  }), {
152
- ...e,
153
- toasts: e.toasts.map(
154
- (o) => o.id === r || r === void 0 ? {
152
+ ...t,
153
+ toasts: t.toasts.map(
154
+ (o) => o.id === a || a === void 0 ? {
155
155
  ...o,
156
156
  open: !1
157
157
  } : o
@@ -159,73 +159,73 @@ const $ = /* @__PURE__ */ new Map(), H = (e) => {
159
159
  };
160
160
  }
161
161
  case "REMOVE_TOAST":
162
- return t.toastId === void 0 ? {
163
- ...e,
162
+ return r.toastId === void 0 ? {
163
+ ...t,
164
164
  toasts: []
165
165
  } : {
166
- ...e,
167
- toasts: e.toasts.filter((r) => r.id !== t.toastId)
166
+ ...t,
167
+ toasts: t.toasts.filter((a) => a.id !== r.toastId)
168
168
  };
169
169
  }
170
- }, D = [];
171
- let I = { toasts: [] };
172
- function S(e) {
173
- I = Te(I, e), D.forEach((t) => {
174
- t(I);
170
+ }, Y = [];
171
+ let W = { toasts: [] };
172
+ function $(t) {
173
+ W = rt(W, t), Y.forEach((r) => {
174
+ r(W);
175
175
  });
176
176
  }
177
- function Se({ ...e }) {
178
- const t = we(), r = (s) => S({
177
+ function at({ ...t }) {
178
+ const r = tt(), a = (n) => $({
179
179
  type: "UPDATE_TOAST",
180
- toast: { ...s, id: t }
181
- }), o = () => S({ type: "DISMISS_TOAST", toastId: t });
182
- return S({
180
+ toast: { ...n, id: r }
181
+ }), o = () => $({ type: "DISMISS_TOAST", toastId: r });
182
+ return $({
183
183
  type: "ADD_TOAST",
184
184
  toast: {
185
- ...e,
186
- id: t,
185
+ ...t,
186
+ id: r,
187
187
  open: !0,
188
- onOpenChange: (s) => {
189
- s || o();
188
+ onOpenChange: (n) => {
189
+ n || o();
190
190
  }
191
191
  }
192
192
  }), {
193
- id: t,
193
+ id: r,
194
194
  dismiss: o,
195
- update: r
195
+ update: a
196
196
  };
197
197
  }
198
- function ke() {
199
- const [e, t] = n.useState(I);
200
- return n.useEffect(() => (D.push(t), () => {
201
- const r = D.indexOf(t);
202
- r > -1 && D.splice(r, 1);
203
- }), [e]), {
204
- ...e,
205
- toast: Se,
206
- dismiss: (r) => S({ type: "DISMISS_TOAST", toastId: r })
198
+ function ot() {
199
+ const [t, r] = i.useState(W);
200
+ return i.useEffect(() => (Y.push(r), () => {
201
+ const a = Y.indexOf(r);
202
+ a > -1 && Y.splice(a, 1);
203
+ }), [t]), {
204
+ ...t,
205
+ toast: at,
206
+ dismiss: (a) => $({ type: "DISMISS_TOAST", toastId: a })
207
207
  };
208
208
  }
209
- function dr() {
210
- const { toasts: e } = ke();
211
- return /* @__PURE__ */ l(xe, { children: [
212
- e.map(function({ id: t, title: r, description: o, action: s, ...d }) {
213
- return /* @__PURE__ */ l(X, { ...d, children: [
214
- /* @__PURE__ */ l("div", { className: "grid gap-1", children: [
215
- r && /* @__PURE__ */ a(q, { children: r }),
216
- o && /* @__PURE__ */ a(Q, { children: o })
209
+ function Ca() {
210
+ const { toasts: t } = ot();
211
+ return /* @__PURE__ */ c(Xe, { children: [
212
+ t.map(function({ id: r, title: a, description: o, action: n, ...d }) {
213
+ return /* @__PURE__ */ c(ke, { ...d, children: [
214
+ /* @__PURE__ */ c("div", { className: "grid gap-1", children: [
215
+ a && /* @__PURE__ */ e(Ie, { children: a }),
216
+ o && /* @__PURE__ */ e(Ae, { children: o })
217
217
  ] }),
218
- s,
219
- /* @__PURE__ */ a(K, {})
220
- ] }, t);
218
+ n,
219
+ /* @__PURE__ */ e(Re, {})
220
+ ] }, r);
221
221
  }),
222
- /* @__PURE__ */ a(Y, {})
222
+ /* @__PURE__ */ e(Se, {})
223
223
  ] });
224
224
  }
225
- const cr = ({ theme: e = "dark", ...t }) => /* @__PURE__ */ a(
226
- pe,
225
+ const Da = ({ theme: t = "dark", ...r }) => /* @__PURE__ */ e(
226
+ Ue,
227
227
  {
228
- theme: e,
228
+ theme: t,
229
229
  className: "toaster group",
230
230
  toastOptions: {
231
231
  classNames: {
@@ -235,19 +235,19 @@ const cr = ({ theme: e = "dark", ...t }) => /* @__PURE__ */ a(
235
235
  cancelButton: "group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"
236
236
  }
237
237
  },
238
- ...t
238
+ ...r
239
239
  }
240
- ), U = h(
240
+ ), le = T(
241
241
  "inline-flex items-center justify-center gap-2 font-display font-bold uppercase tracking-[0.1em] transition-all duration-150 select-none whitespace-nowrap focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-40",
242
242
  {
243
243
  variants: {
244
244
  variant: {
245
245
  primary: "clip-corner bg-primary text-primary-foreground hover:brightness-110 hover:shadow-glow active:brightness-90",
246
- secondary: "clip-corner border border-white/25 text-card-foreground bg-transparent hover:border-primary/60 hover:text-primary active:bg-primary/5",
246
+ secondary: "clip-corner border border-border-strong text-card-foreground bg-transparent hover:border-primary/60 hover:text-primary active:bg-primary/5",
247
247
  ghost: "bg-transparent text-muted-foreground hover:text-primary hover:bg-primary/5 active:bg-primary/10",
248
248
  danger: "clip-corner bg-destructive text-destructive-foreground hover:brightness-110 active:brightness-90",
249
249
  link: "bg-transparent text-primary underline-offset-4 hover:underline h-auto p-0",
250
- icon: "bg-white/5 border border-white/10 text-muted-foreground hover:border-primary/30 hover:bg-primary/10 hover:text-primary"
250
+ icon: "bg-surface-2 border border-border text-muted-foreground hover:border-primary/30 hover:bg-primary/10 hover:text-primary"
251
251
  },
252
252
  size: {
253
253
  xs: "h-7 px-3 text-[11px]",
@@ -263,59 +263,59 @@ const cr = ({ theme: e = "dark", ...t }) => /* @__PURE__ */ a(
263
263
  size: "md"
264
264
  }
265
265
  }
266
- ), Re = n.forwardRef(
266
+ ), nt = i.forwardRef(
267
267
  ({
268
- className: e,
269
- variant: t,
270
- size: r,
268
+ className: t,
269
+ variant: r,
270
+ size: a,
271
271
  asChild: o = !1,
272
- loading: s = !1,
272
+ loading: n = !1,
273
273
  disabled: d,
274
- children: c,
275
- type: p = "button",
276
- ...f
277
- }, m) => o ? /* @__PURE__ */ a(
278
- fe,
274
+ children: p,
275
+ type: l = "button",
276
+ ...m
277
+ }, u) => o ? /* @__PURE__ */ e(
278
+ He,
279
279
  {
280
- ref: m,
281
- className: i(U({ variant: t, size: r }), e),
280
+ ref: u,
281
+ className: s(le({ variant: r, size: a }), t),
282
282
  "aria-disabled": d || void 0,
283
- ...f,
284
- children: c
283
+ ...m,
284
+ children: p
285
285
  }
286
- ) : /* @__PURE__ */ l(
286
+ ) : /* @__PURE__ */ c(
287
287
  "button",
288
288
  {
289
- ref: m,
290
- type: p,
291
- className: i(
292
- U({ variant: t, size: r }),
293
- s && "pointer-events-none opacity-80",
294
- e
289
+ ref: u,
290
+ type: l,
291
+ className: s(
292
+ le({ variant: r, size: a }),
293
+ n && "pointer-events-none opacity-80",
294
+ t
295
295
  ),
296
- disabled: d || s,
297
- "aria-busy": s || void 0,
298
- ...f,
296
+ disabled: d || n,
297
+ "aria-busy": n || void 0,
298
+ ...m,
299
299
  children: [
300
- s && /* @__PURE__ */ a(
300
+ n && /* @__PURE__ */ e(
301
301
  "span",
302
302
  {
303
303
  className: "h-4 w-4 shrink-0 border-2 border-current clip-corner-sm animate-diamond-spin",
304
304
  "aria-hidden": "true"
305
305
  }
306
306
  ),
307
- c
307
+ p
308
308
  ]
309
309
  }
310
310
  )
311
311
  );
312
- Re.displayName = "Button";
313
- const Ae = h(
312
+ nt.displayName = "Button";
313
+ const st = T(
314
314
  "inline-flex items-center gap-1.5 border px-2.5 py-0.5 font-mono text-[10px] font-semibold tracking-[0.12em] uppercase transition-colors",
315
315
  {
316
316
  variants: {
317
317
  variant: {
318
- default: "border-white/15 text-muted-foreground bg-white/5",
318
+ default: "border-border text-muted-foreground bg-surface-2",
319
319
  primary: "border-primary/40 text-primary bg-primary/10",
320
320
  info: "border-ef-blue/40 text-ef-blue bg-ef-blue/10",
321
321
  success: "border-ef-green/40 text-ef-green bg-ef-green/10",
@@ -328,21 +328,21 @@ const Ae = h(
328
328
  variant: "default"
329
329
  }
330
330
  }
331
- ), Ce = n.forwardRef(
332
- ({ className: e, variant: t, removable: r, onRemove: o, children: s, ...d }, c) => /* @__PURE__ */ l(
331
+ ), it = i.forwardRef(
332
+ ({ className: t, variant: r, removable: a, onRemove: o, children: n, ...d }, p) => /* @__PURE__ */ c(
333
333
  "span",
334
334
  {
335
- ref: c,
336
- className: i(Ae({ variant: t }), r && "pr-1", e),
335
+ ref: p,
336
+ className: s(st({ variant: r }), a && "pr-1", t),
337
337
  ...d,
338
338
  children: [
339
- s,
340
- r && /* @__PURE__ */ a(
339
+ n,
340
+ a && /* @__PURE__ */ e(
341
341
  "button",
342
342
  {
343
343
  type: "button",
344
- onClick: (p) => {
345
- p.stopPropagation(), o == null || o();
344
+ onClick: (l) => {
345
+ l.stopPropagation(), o == null || o();
346
346
  },
347
347
  className: "ml-0.5 inline-flex items-center justify-center leading-none opacity-50 hover:opacity-100 transition-opacity focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-current",
348
348
  "aria-label": "Remove",
@@ -354,11 +354,11 @@ const Ae = h(
354
354
  }
355
355
  )
356
356
  );
357
- Ce.displayName = "Badge";
358
- const De = "before:content-[''] before:absolute before:-top-px before:-left-px before:w-6 before:h-6 before:border-t-2 before:border-l-2 before:border-primary/40 before:pointer-events-none after:content-[''] after:absolute after:-bottom-px after:-right-px after:w-6 after:h-6 after:border-b-2 after:border-r-2 after:border-primary/40 after:pointer-events-none", Ie = h(
357
+ it.displayName = "Badge";
358
+ const lt = "before:content-[''] before:absolute before:-top-px before:-left-px before:w-6 before:h-6 before:border-t-2 before:border-l-2 before:border-primary/40 before:pointer-events-none after:content-[''] after:absolute after:-bottom-px after:-right-px after:w-6 after:h-6 after:border-b-2 after:border-r-2 after:border-primary/40 after:pointer-events-none", dt = T(
359
359
  [
360
360
  "relative bg-surface-1 border border-border transition-all duration-300",
361
- De
361
+ lt
362
362
  ].join(" "),
363
363
  {
364
364
  variants: {
@@ -383,81 +383,81 @@ const De = "before:content-[''] before:absolute before:-top-px before:-left-px b
383
383
  selected: !1
384
384
  }
385
385
  }
386
- ), Pe = n.forwardRef(
387
- ({ className: e, hoverable: t, selected: r, ...o }, s) => /* @__PURE__ */ a(
386
+ ), ct = i.forwardRef(
387
+ ({ className: t, hoverable: r, selected: a, ...o }, n) => /* @__PURE__ */ e(
388
388
  "div",
389
389
  {
390
- ref: s,
391
- className: i(Ie({ hoverable: t, selected: r }), e),
390
+ ref: n,
391
+ className: s(dt({ hoverable: r, selected: a }), t),
392
392
  ...o
393
393
  }
394
394
  )
395
395
  );
396
- Pe.displayName = "Card";
397
- const Ee = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
396
+ ct.displayName = "Card";
397
+ const pt = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
398
398
  "div",
399
399
  {
400
- ref: r,
401
- className: i("flex items-start justify-between gap-4 p-5", e),
402
- ...t
400
+ ref: a,
401
+ className: s("flex items-start justify-between gap-4 p-5", t),
402
+ ...r
403
403
  }
404
404
  ));
405
- Ee.displayName = "CardHeader";
406
- const _e = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
405
+ pt.displayName = "CardHeader";
406
+ const mt = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
407
407
  "p",
408
408
  {
409
- ref: r,
410
- className: i(
409
+ ref: a,
410
+ className: s(
411
411
  "font-mono text-[10px] tracking-[0.15em] uppercase text-primary mb-2",
412
- e
412
+ t
413
413
  ),
414
- ...t
414
+ ...r
415
415
  }
416
416
  ));
417
- _e.displayName = "CardMeta";
418
- const $e = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
417
+ mt.displayName = "CardMeta";
418
+ const ft = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
419
419
  "h3",
420
420
  {
421
- ref: r,
422
- className: i(
421
+ ref: a,
422
+ className: s(
423
423
  "font-display text-sm font-bold tracking-[0.02em] uppercase text-foreground",
424
- e
424
+ t
425
425
  ),
426
- ...t
426
+ ...r
427
427
  }
428
428
  ));
429
- $e.displayName = "CardTitle";
430
- const Ve = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
429
+ ft.displayName = "CardTitle";
430
+ const ut = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
431
431
  "p",
432
432
  {
433
- ref: r,
434
- className: i("text-sm text-muted-foreground leading-relaxed", e),
435
- ...t
433
+ ref: a,
434
+ className: s("text-sm text-muted-foreground leading-relaxed", t),
435
+ ...r
436
436
  }
437
437
  ));
438
- Ve.displayName = "CardDescription";
439
- const je = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a("div", { ref: r, className: i("p-5", e), ...t }));
440
- je.displayName = "CardBody";
441
- const Oe = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
438
+ ut.displayName = "CardDescription";
439
+ const gt = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e("div", { ref: a, className: s("p-5", t), ...r }));
440
+ gt.displayName = "CardBody";
441
+ const xt = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
442
442
  "div",
443
443
  {
444
- ref: r,
445
- className: i(
444
+ ref: a,
445
+ className: s(
446
446
  "flex items-center gap-3 px-5 py-4 border-t border-border",
447
- e
447
+ t
448
448
  ),
449
- ...t
449
+ ...r
450
450
  }
451
451
  ));
452
- Oe.displayName = "CardFooter";
453
- const Le = h(
452
+ xt.displayName = "CardFooter";
453
+ const bt = T(
454
454
  "relative flex items-center border transition-all duration-150 bg-surface-1",
455
455
  {
456
456
  variants: {
457
457
  state: {
458
458
  default: [
459
- "border-white/[0.12]",
460
- "hover:border-white/20",
459
+ "border-input",
460
+ "hover:border-border-strong",
461
461
  "focus-within:border-primary",
462
462
  "focus-within:shadow-[0_0_0_3px_rgba(255,212,41,0.1)]"
463
463
  ].join(" "),
@@ -478,78 +478,78 @@ const Le = h(
478
478
  size: "md"
479
479
  }
480
480
  }
481
- ), ze = n.forwardRef(
481
+ ), ht = i.forwardRef(
482
482
  ({
483
- className: e,
484
- state: t = "default",
485
- size: r = "md",
483
+ className: t,
484
+ state: r = "default",
485
+ size: a = "md",
486
486
  leftElement: o,
487
- rightElement: s,
487
+ rightElement: n,
488
488
  disabled: d,
489
- ...c
490
- }, p) => {
491
- const f = o || r === "sm" ? "pl-2" : "pl-3", m = s || r === "sm" ? "pr-2" : "pr-3";
492
- return /* @__PURE__ */ l(
489
+ ...p
490
+ }, l) => {
491
+ const m = o || a === "sm" ? "pl-2" : "pl-3", u = n || a === "sm" ? "pr-2" : "pr-3";
492
+ return /* @__PURE__ */ c(
493
493
  "div",
494
494
  {
495
- className: i(
496
- Le({ state: t, size: r }),
495
+ className: s(
496
+ bt({ state: r, size: a }),
497
497
  d && "opacity-40 cursor-not-allowed pointer-events-none bg-background",
498
- e
498
+ t
499
499
  ),
500
500
  children: [
501
- o && /* @__PURE__ */ a("span", { className: "pl-3 flex-shrink-0 text-muted-foreground flex items-center", children: o }),
502
- /* @__PURE__ */ a(
501
+ o && /* @__PURE__ */ e("span", { className: "pl-3 flex-shrink-0 text-muted-foreground flex items-center", children: o }),
502
+ /* @__PURE__ */ e(
503
503
  "input",
504
504
  {
505
- ref: p,
505
+ ref: l,
506
506
  disabled: d,
507
- className: i(
507
+ className: s(
508
508
  "h-full flex-1 min-w-0 bg-transparent text-foreground text-sm font-mono",
509
509
  "placeholder:text-muted-foreground focus:outline-none",
510
- f,
511
- m
510
+ m,
511
+ u
512
512
  ),
513
- ...c
513
+ ...p
514
514
  }
515
515
  ),
516
- s && /* @__PURE__ */ a("span", { className: "pr-3 flex-shrink-0 text-muted-foreground flex items-center", children: s })
516
+ n && /* @__PURE__ */ e("span", { className: "pr-3 flex-shrink-0 text-muted-foreground flex items-center", children: n })
517
517
  ]
518
518
  }
519
519
  );
520
520
  }
521
521
  );
522
- ze.displayName = "Input";
523
- const Be = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
522
+ ht.displayName = "Input";
523
+ const vt = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
524
524
  "label",
525
525
  {
526
- ref: r,
527
- className: i(
526
+ ref: a,
527
+ className: s(
528
528
  "font-display text-[11px] font-semibold uppercase tracking-widest text-muted-foreground",
529
- e
529
+ t
530
530
  ),
531
- ...t
531
+ ...r
532
532
  }
533
533
  ));
534
- Be.displayName = "Label";
535
- const Me = n.forwardRef(
536
- ({ className: e, state: t = "default", ...r }, o) => /* @__PURE__ */ a(
534
+ vt.displayName = "Label";
535
+ const yt = i.forwardRef(
536
+ ({ className: t, state: r = "default", ...a }, o) => /* @__PURE__ */ e(
537
537
  "p",
538
538
  {
539
539
  ref: o,
540
- className: i(
540
+ className: s(
541
541
  "text-[12px] leading-tight",
542
- t === "error" && "text-destructive",
543
- t === "success" && "text-ef-green",
544
- t === "default" && "text-muted-foreground",
545
- e
542
+ r === "error" && "text-destructive",
543
+ r === "success" && "text-ef-green",
544
+ r === "default" && "text-muted-foreground",
545
+ t
546
546
  ),
547
- ...r
547
+ ...a
548
548
  }
549
549
  )
550
550
  );
551
- Me.displayName = "HelperText";
552
- const Fe = h(
551
+ yt.displayName = "HelperText";
552
+ const Nt = T(
553
553
  [
554
554
  "w-full resize-y border bg-surface-1 text-foreground",
555
555
  "placeholder:text-muted-foreground font-mono text-sm",
@@ -561,8 +561,8 @@ const Fe = h(
561
561
  variants: {
562
562
  state: {
563
563
  default: [
564
- "border-white/[0.12]",
565
- "hover:border-white/20",
564
+ "border-input",
565
+ "hover:border-border-strong",
566
566
  "focus:border-primary",
567
567
  "focus:shadow-[0_0_0_3px_rgba(255,212,41,0.1)]"
568
568
  ].join(" "),
@@ -577,154 +577,154 @@ const Fe = h(
577
577
  state: "default"
578
578
  }
579
579
  }
580
- ), Ge = n.forwardRef(
581
- ({ className: e, state: t = "default", showCount: r, maxLength: o, onChange: s, ...d }, c) => {
582
- const [p, f] = n.useState(() => {
583
- const g = d.value ?? d.defaultValue ?? "";
584
- return String(g).length;
580
+ ), wt = i.forwardRef(
581
+ ({ className: t, state: r = "default", showCount: a, maxLength: o, onChange: n, ...d }, p) => {
582
+ const [l, m] = i.useState(() => {
583
+ const f = d.value ?? d.defaultValue ?? "";
584
+ return String(f).length;
585
585
  });
586
- n.useEffect(() => {
587
- d.value !== void 0 && f(String(d.value).length);
586
+ i.useEffect(() => {
587
+ d.value !== void 0 && m(String(d.value).length);
588
588
  }, [d.value]);
589
- const m = () => o !== void 0 && p > o ? "text-destructive" : o !== void 0 && p / o >= 0.8 ? "text-ef-orange" : "text-muted-foreground";
590
- return /* @__PURE__ */ l("div", { className: "relative", children: [
591
- /* @__PURE__ */ a(
589
+ const u = () => o !== void 0 && l > o ? "text-destructive" : o !== void 0 && l / o >= 0.8 ? "text-ef-orange" : "text-muted-foreground";
590
+ return /* @__PURE__ */ c("div", { className: "relative", children: [
591
+ /* @__PURE__ */ e(
592
592
  "textarea",
593
593
  {
594
- ref: c,
594
+ ref: p,
595
595
  maxLength: o,
596
- onChange: (g) => {
597
- f(g.target.value.length), s == null || s(g);
596
+ onChange: (f) => {
597
+ m(f.target.value.length), n == null || n(f);
598
598
  },
599
- className: i(
600
- Fe({ state: t }),
601
- r && "pb-7",
602
- e
599
+ className: s(
600
+ Nt({ state: r }),
601
+ a && "pb-7",
602
+ t
603
603
  ),
604
604
  ...d
605
605
  }
606
606
  ),
607
- r && /* @__PURE__ */ a(
607
+ a && /* @__PURE__ */ e(
608
608
  "span",
609
609
  {
610
- className: i(
610
+ className: s(
611
611
  "absolute bottom-2 right-3 font-mono text-[11px] pointer-events-none select-none",
612
- m()
612
+ u()
613
613
  ),
614
- children: o !== void 0 ? `${p}/${o}` : p
614
+ children: o !== void 0 ? `${l}/${o}` : l
615
615
  }
616
616
  )
617
617
  ] });
618
618
  }
619
619
  );
620
- Ge.displayName = "Textarea";
621
- const He = n.forwardRef(({ className: e, label: t, helperText: r, id: o, ...s }, d) => {
622
- const c = n.useId(), p = o ?? c;
623
- return /* @__PURE__ */ l("div", { className: "flex flex-col gap-1.5", children: [
624
- /* @__PURE__ */ l("div", { className: "flex items-center gap-3", children: [
625
- /* @__PURE__ */ a(
626
- M.Root,
620
+ wt.displayName = "Textarea";
621
+ const Tt = i.forwardRef(({ className: t, label: r, helperText: a, id: o, ...n }, d) => {
622
+ const p = i.useId(), l = o ?? p;
623
+ return /* @__PURE__ */ c("div", { className: "flex flex-col gap-1.5", children: [
624
+ /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [
625
+ /* @__PURE__ */ e(
626
+ oe.Root,
627
627
  {
628
628
  ref: d,
629
- id: p,
630
- className: i(
631
- "group peer h-[18px] w-[18px] shrink-0 border-2 border-white/25 bg-transparent",
629
+ id: l,
630
+ className: s(
631
+ "group peer h-[18px] w-[18px] shrink-0 border-2 border-input bg-transparent",
632
632
  "cursor-pointer transition-all duration-150",
633
633
  "hover:border-primary/60",
634
634
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background",
635
635
  "disabled:cursor-not-allowed disabled:opacity-40",
636
636
  "data-[state=checked]:bg-primary data-[state=checked]:border-primary",
637
637
  "data-[state=indeterminate]:bg-primary/50 data-[state=indeterminate]:border-primary",
638
- e
638
+ t
639
639
  ),
640
- ...s,
641
- children: /* @__PURE__ */ l(M.Indicator, { className: "flex items-center justify-center", children: [
642
- /* @__PURE__ */ a("span", { className: "hidden group-data-[state=checked]:inline leading-none text-primary-foreground text-[10px] font-bold select-none", children: "◆" }),
643
- /* @__PURE__ */ a("span", { className: "hidden group-data-[state=indeterminate]:inline leading-none text-primary-foreground text-sm font-bold select-none", children: "−" })
640
+ ...n,
641
+ children: /* @__PURE__ */ c(oe.Indicator, { className: "flex items-center justify-center", children: [
642
+ /* @__PURE__ */ e("span", { className: "hidden group-data-[state=checked]:inline leading-none text-primary-foreground text-[10px] font-bold select-none", children: "◆" }),
643
+ /* @__PURE__ */ e("span", { className: "hidden group-data-[state=indeterminate]:inline leading-none text-primary-foreground text-sm font-bold select-none", children: "−" })
644
644
  ] })
645
645
  }
646
646
  ),
647
- t && /* @__PURE__ */ a(
647
+ r && /* @__PURE__ */ e(
648
648
  "label",
649
649
  {
650
- htmlFor: p,
650
+ htmlFor: l,
651
651
  className: "text-sm text-foreground cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-40 select-none leading-none",
652
- children: t
652
+ children: r
653
653
  }
654
654
  )
655
655
  ] }),
656
- r && /* @__PURE__ */ a("p", { className: "text-[12px] text-muted-foreground pl-[30px]", children: r })
656
+ a && /* @__PURE__ */ e("p", { className: "text-[12px] text-muted-foreground pl-[30px]", children: a })
657
657
  ] });
658
658
  });
659
- He.displayName = "Checkbox";
660
- const Ue = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
661
- W.Root,
659
+ Tt.displayName = "Checkbox";
660
+ const St = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
661
+ Te.Root,
662
662
  {
663
- ref: r,
664
- className: i("flex flex-col gap-3", e),
665
- ...t
663
+ ref: a,
664
+ className: s("flex flex-col gap-3", t),
665
+ ...r
666
666
  }
667
667
  ));
668
- Ue.displayName = "RadioGroup";
669
- const We = n.forwardRef(({ className: e, label: t, helperText: r, id: o, ...s }, d) => {
670
- const c = n.useId(), p = o ?? c;
671
- return /* @__PURE__ */ l("div", { className: "flex flex-col gap-1", children: [
672
- /* @__PURE__ */ l("div", { className: "flex items-center gap-3", children: [
673
- /* @__PURE__ */ l(
674
- W.Item,
668
+ St.displayName = "RadioGroup";
669
+ const kt = i.forwardRef(({ className: t, label: r, helperText: a, id: o, ...n }, d) => {
670
+ const p = i.useId(), l = o ?? p;
671
+ return /* @__PURE__ */ c("div", { className: "flex flex-col gap-1", children: [
672
+ /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [
673
+ /* @__PURE__ */ c(
674
+ Te.Item,
675
675
  {
676
676
  ref: d,
677
- id: p,
678
- className: i(
677
+ id: l,
678
+ className: s(
679
679
  "group peer cursor-pointer shrink-0 flex items-center justify-center",
680
680
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background",
681
681
  "disabled:cursor-not-allowed disabled:opacity-40",
682
- e
682
+ t
683
683
  ),
684
- ...s,
684
+ ...n,
685
685
  children: [
686
- /* @__PURE__ */ a("span", { className: "text-[18px] leading-none select-none transition-colors duration-150 group-data-[state=unchecked]:inline group-data-[state=checked]:hidden text-muted-foreground/50 group-hover:text-muted-foreground group-data-[disabled]:pointer-events-none", children: "◇" }),
687
- /* @__PURE__ */ a("span", { className: "text-[18px] leading-none select-none transition-colors duration-150 group-data-[state=checked]:inline group-data-[state=unchecked]:hidden text-primary", children: "◆" })
686
+ /* @__PURE__ */ e("span", { className: "text-[18px] leading-none select-none transition-colors duration-150 group-data-[state=unchecked]:inline group-data-[state=checked]:hidden text-muted-foreground/50 group-hover:text-muted-foreground group-data-[disabled]:pointer-events-none", children: "◇" }),
687
+ /* @__PURE__ */ e("span", { className: "text-[18px] leading-none select-none transition-colors duration-150 group-data-[state=checked]:inline group-data-[state=unchecked]:hidden text-primary", children: "◆" })
688
688
  ]
689
689
  }
690
690
  ),
691
- t && /* @__PURE__ */ a(
691
+ r && /* @__PURE__ */ e(
692
692
  "label",
693
693
  {
694
- htmlFor: p,
694
+ htmlFor: l,
695
695
  className: "text-sm text-foreground cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-40 select-none leading-none",
696
- children: t
696
+ children: r
697
697
  }
698
698
  )
699
699
  ] }),
700
- r && /* @__PURE__ */ a("p", { className: "text-[12px] text-muted-foreground pl-[30px]", children: r })
700
+ a && /* @__PURE__ */ e("p", { className: "text-[12px] text-muted-foreground pl-[30px]", children: a })
701
701
  ] });
702
702
  });
703
- We.displayName = "RadioGroupItem";
704
- const Ye = n.forwardRef(({ className: e, label: t, offLabel: r, onLabel: o, id: s, checked: d, ...c }, p) => {
705
- const f = n.useId(), m = s ?? f;
706
- return /* @__PURE__ */ l("div", { className: "flex items-center gap-3", children: [
707
- (r || o) && /* @__PURE__ */ a("span", { className: "text-[11px] font-mono uppercase tracking-widest text-muted-foreground select-none min-w-[32px] text-right", children: d ? o : r }),
708
- /* @__PURE__ */ a(
709
- F.Root,
703
+ kt.displayName = "RadioGroupItem";
704
+ const Rt = i.forwardRef(({ className: t, label: r, offLabel: a, onLabel: o, id: n, checked: d, ...p }, l) => {
705
+ const m = i.useId(), u = n ?? m;
706
+ return /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [
707
+ (a || o) && /* @__PURE__ */ e("span", { className: "text-[11px] font-mono uppercase tracking-widest text-muted-foreground select-none min-w-[32px] text-right", children: d ? o : a }),
708
+ /* @__PURE__ */ e(
709
+ ne.Root,
710
710
  {
711
- ref: p,
712
- id: m,
711
+ ref: l,
712
+ id: u,
713
713
  checked: d,
714
- className: i(
714
+ className: s(
715
715
  "peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-none",
716
- "border border-white/15 bg-white/10",
716
+ "border border-input bg-surface-3",
717
717
  "transition-all duration-200",
718
718
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background",
719
719
  "disabled:cursor-not-allowed disabled:opacity-40",
720
720
  "data-[state=checked]:bg-primary data-[state=checked]:border-primary",
721
- e
721
+ t
722
722
  ),
723
- ...c,
724
- children: /* @__PURE__ */ a(
725
- F.Thumb,
723
+ ...p,
724
+ children: /* @__PURE__ */ e(
725
+ ne.Thumb,
726
726
  {
727
- className: i(
727
+ className: s(
728
728
  "pointer-events-none block h-5 w-5 bg-white shadow-sm ring-0",
729
729
  "transition-transform duration-200",
730
730
  "data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0.5"
@@ -733,144 +733,144 @@ const Ye = n.forwardRef(({ className: e, label: t, offLabel: r, onLabel: o, id:
733
733
  )
734
734
  }
735
735
  ),
736
- t && /* @__PURE__ */ a(
736
+ r && /* @__PURE__ */ e(
737
737
  "label",
738
738
  {
739
- htmlFor: m,
739
+ htmlFor: u,
740
740
  className: "text-sm text-foreground cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-40 select-none",
741
- children: t
741
+ children: r
742
742
  }
743
743
  )
744
744
  ] });
745
745
  });
746
- Ye.displayName = "Switch";
747
- const Xe = x.Root;
748
- Xe.displayName = "Select";
749
- const Ke = x.Group;
750
- Ke.displayName = "SelectGroup";
751
- const qe = x.Value;
752
- qe.displayName = "SelectValue";
753
- const Qe = n.forwardRef(({ className: e, children: t, ...r }, o) => /* @__PURE__ */ l(
754
- x.Trigger,
746
+ Rt.displayName = "Switch";
747
+ const It = D.Root;
748
+ It.displayName = "Select";
749
+ const At = D.Group;
750
+ At.displayName = "SelectGroup";
751
+ const Ct = D.Value;
752
+ Ct.displayName = "SelectValue";
753
+ const Dt = i.forwardRef(({ className: t, children: r, ...a }, o) => /* @__PURE__ */ c(
754
+ D.Trigger,
755
755
  {
756
756
  ref: o,
757
- className: i(
757
+ className: s(
758
758
  "relative flex h-11 w-full items-center justify-between",
759
- "border border-white/[0.12] bg-surface-1 px-3",
759
+ "border border-input bg-surface-1 px-3",
760
760
  "font-mono text-sm text-foreground",
761
761
  "transition-all duration-150",
762
- "hover:border-white/20",
762
+ "hover:border-border-strong",
763
763
  "focus:outline-none focus:border-primary focus:shadow-[0_0_0_3px_rgba(255,212,41,0.1)]",
764
764
  "disabled:cursor-not-allowed disabled:opacity-40 disabled:pointer-events-none",
765
765
  "data-[placeholder]:text-muted-foreground",
766
766
  "[&>span]:line-clamp-1",
767
- e
767
+ t
768
768
  ),
769
- ...r,
769
+ ...a,
770
770
  children: [
771
- t,
772
- /* @__PURE__ */ a(x.Icon, { asChild: !0, children: /* @__PURE__ */ a("span", { className: "shrink-0 text-muted-foreground text-xs ml-2 select-none", children: "▾" }) })
771
+ r,
772
+ /* @__PURE__ */ e(D.Icon, { asChild: !0, children: /* @__PURE__ */ e("span", { className: "shrink-0 text-muted-foreground text-xs ml-2 select-none", children: "▾" }) })
773
773
  ]
774
774
  }
775
775
  ));
776
- Qe.displayName = "SelectTrigger";
777
- const Z = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
778
- x.ScrollUpButton,
776
+ Dt.displayName = "SelectTrigger";
777
+ const Ce = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
778
+ D.ScrollUpButton,
779
779
  {
780
- ref: r,
781
- className: i(
780
+ ref: a,
781
+ className: s(
782
782
  "flex cursor-default items-center justify-center py-1 text-muted-foreground text-xs",
783
- e
783
+ t
784
784
  ),
785
- ...t,
785
+ ...r,
786
786
  children: "▴"
787
787
  }
788
788
  ));
789
- Z.displayName = "SelectScrollUpButton";
790
- const J = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
791
- x.ScrollDownButton,
789
+ Ce.displayName = "SelectScrollUpButton";
790
+ const De = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
791
+ D.ScrollDownButton,
792
792
  {
793
- ref: r,
794
- className: i(
793
+ ref: a,
794
+ className: s(
795
795
  "flex cursor-default items-center justify-center py-1 text-muted-foreground text-xs",
796
- e
796
+ t
797
797
  ),
798
- ...t,
798
+ ...r,
799
799
  children: "▾"
800
800
  }
801
801
  ));
802
- J.displayName = "SelectScrollDownButton";
803
- const Ze = n.forwardRef(({ className: e, children: t, position: r = "popper", ...o }, s) => /* @__PURE__ */ a(x.Portal, { children: /* @__PURE__ */ l(
804
- x.Content,
802
+ De.displayName = "SelectScrollDownButton";
803
+ const Et = i.forwardRef(({ className: t, children: r, position: a = "popper", ...o }, n) => /* @__PURE__ */ e(D.Portal, { children: /* @__PURE__ */ c(
804
+ D.Content,
805
805
  {
806
- ref: s,
807
- className: i(
806
+ ref: n,
807
+ className: s(
808
808
  "relative z-[var(--z-overlay,50)] min-w-[8rem] overflow-hidden",
809
- "bg-surface-2 border border-white/10 shadow-lg",
809
+ "bg-surface-2 border border-border shadow-lg",
810
810
  "data-[state=open]:animate-fade-in-up",
811
811
  "data-[state=closed]:animate-fade-in-up",
812
- r === "popper" && "data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
813
- e
812
+ a === "popper" && "data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",
813
+ t
814
814
  ),
815
- position: r,
815
+ position: a,
816
816
  ...o,
817
817
  children: [
818
- /* @__PURE__ */ a(Z, {}),
819
- /* @__PURE__ */ a(
820
- x.Viewport,
818
+ /* @__PURE__ */ e(Ce, {}),
819
+ /* @__PURE__ */ e(
820
+ D.Viewport,
821
821
  {
822
- className: i(
822
+ className: s(
823
823
  "p-1",
824
- r === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
824
+ a === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
825
825
  ),
826
- children: t
826
+ children: r
827
827
  }
828
828
  ),
829
- /* @__PURE__ */ a(J, {})
829
+ /* @__PURE__ */ e(De, {})
830
830
  ]
831
831
  }
832
832
  ) }));
833
- Ze.displayName = "SelectContent";
834
- const Je = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
835
- x.Label,
833
+ Et.displayName = "SelectContent";
834
+ const _t = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
835
+ D.Label,
836
836
  {
837
- ref: r,
838
- className: i(
837
+ ref: a,
838
+ className: s(
839
839
  "font-mono text-[10px] uppercase tracking-widest text-muted-foreground/60 px-4 py-1.5",
840
- e
840
+ t
841
841
  ),
842
- ...t
842
+ ...r
843
843
  }
844
844
  ));
845
- Je.displayName = "SelectLabel";
846
- const et = n.forwardRef(({ className: e, children: t, danger: r, ...o }, s) => /* @__PURE__ */ a(
847
- x.Item,
845
+ _t.displayName = "SelectLabel";
846
+ const Vt = i.forwardRef(({ className: t, children: r, danger: a, ...o }, n) => /* @__PURE__ */ e(
847
+ D.Item,
848
848
  {
849
- ref: s,
850
- className: i(
849
+ ref: n,
850
+ className: s(
851
851
  "relative flex w-full cursor-pointer select-none items-center px-4 py-2 text-sm text-muted-foreground",
852
852
  "outline-none transition-colors duration-100",
853
853
  "focus:bg-primary/6 focus:text-primary",
854
854
  "data-[state=checked]:text-primary data-[state=checked]:font-medium",
855
855
  "data-[disabled]:pointer-events-none data-[disabled]:opacity-40",
856
- r ? "hover:bg-destructive/6 hover:text-destructive focus:bg-destructive/6 focus:text-destructive" : "hover:bg-primary/6 hover:text-primary",
857
- e
856
+ a ? "hover:bg-destructive/6 hover:text-destructive focus:bg-destructive/6 focus:text-destructive" : "hover:bg-primary/6 hover:text-primary",
857
+ t
858
858
  ),
859
859
  ...o,
860
- children: /* @__PURE__ */ a(x.ItemText, { children: t })
860
+ children: /* @__PURE__ */ e(D.ItemText, { children: r })
861
861
  }
862
862
  ));
863
- et.displayName = "SelectItem";
864
- const tt = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
865
- x.Separator,
863
+ Vt.displayName = "SelectItem";
864
+ const Ot = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
865
+ D.Separator,
866
866
  {
867
- ref: r,
868
- className: i("my-1 h-px bg-white/8", e),
869
- ...t
867
+ ref: a,
868
+ className: s("my-1 h-px bg-border", t),
869
+ ...r
870
870
  }
871
871
  ));
872
- tt.displayName = "SelectSeparator";
873
- const rt = h(
872
+ Ot.displayName = "SelectSeparator";
873
+ const Pt = T(
874
874
  "relative inline-flex shrink-0 overflow-hidden clip-corner-sm",
875
875
  {
876
876
  variants: {
@@ -885,58 +885,58 @@ const rt = h(
885
885
  },
886
886
  defaultVariants: { size: "md" }
887
887
  }
888
- ), at = {
888
+ ), Mt = {
889
889
  online: "text-ef-green",
890
890
  offline: "text-muted-foreground/50",
891
891
  busy: "text-destructive",
892
892
  away: "text-ef-orange"
893
- }, ot = n.forwardRef(({ className: e, size: t, status: r, ...o }, s) => /* @__PURE__ */ l("div", { className: "relative inline-flex shrink-0", children: [
894
- /* @__PURE__ */ a(
895
- j.Root,
893
+ }, Lt = i.forwardRef(({ className: t, size: r, status: a, ...o }, n) => /* @__PURE__ */ c("div", { className: "relative inline-flex shrink-0", children: [
894
+ /* @__PURE__ */ e(
895
+ re.Root,
896
896
  {
897
- ref: s,
898
- className: i(rt({ size: t }), e),
897
+ ref: n,
898
+ className: s(Pt({ size: r }), t),
899
899
  ...o
900
900
  }
901
901
  ),
902
- r && /* @__PURE__ */ a(
902
+ a && /* @__PURE__ */ e(
903
903
  "span",
904
904
  {
905
- className: i(
905
+ className: s(
906
906
  "absolute -bottom-0.5 -right-0.5 text-[10px] leading-none select-none",
907
- at[r]
907
+ Mt[a]
908
908
  ),
909
- "aria-label": r,
909
+ "aria-label": a,
910
910
  children: "◆"
911
911
  }
912
912
  )
913
913
  ] }));
914
- ot.displayName = "Avatar";
915
- const nt = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
916
- j.Image,
914
+ Lt.displayName = "Avatar";
915
+ const $t = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
916
+ re.Image,
917
917
  {
918
- ref: r,
919
- className: i("aspect-square h-full w-full object-cover", e),
920
- ...t
918
+ ref: a,
919
+ className: s("aspect-square h-full w-full object-cover", t),
920
+ ...r
921
921
  }
922
922
  ));
923
- nt.displayName = "AvatarImage";
924
- const st = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
925
- j.Fallback,
923
+ $t.displayName = "AvatarImage";
924
+ const Ft = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
925
+ re.Fallback,
926
926
  {
927
- ref: r,
928
- className: i(
927
+ ref: a,
928
+ className: s(
929
929
  "flex h-full w-full items-center justify-center",
930
930
  "bg-surface-2 font-display text-muted-foreground uppercase text-center",
931
931
  "text-[clamp(8px,35%,28px)]",
932
- e
932
+ t
933
933
  ),
934
- ...t
934
+ ...r
935
935
  }
936
936
  ));
937
- st.displayName = "AvatarFallback";
938
- const it = h(
939
- "relative w-full overflow-hidden bg-white/8",
937
+ Ft.displayName = "AvatarFallback";
938
+ const Bt = T(
939
+ "relative w-full overflow-hidden bg-surface-3",
940
940
  {
941
941
  variants: {
942
942
  size: {
@@ -947,7 +947,7 @@ const it = h(
947
947
  },
948
948
  defaultVariants: { size: "md" }
949
949
  }
950
- ), lt = h(
950
+ ), jt = T(
951
951
  "h-full w-full flex-1 transition-all duration-500 ease-smooth origin-left",
952
952
  {
953
953
  variants: {
@@ -960,65 +960,65 @@ const it = h(
960
960
  },
961
961
  defaultVariants: { variant: "default" }
962
962
  }
963
- ), dt = n.forwardRef(({ className: e, value: t, showLabel: r, size: o, variant: s, ...d }, c) => {
964
- const p = t == null, f = p ? void 0 : Math.min(100, Math.max(0, t));
965
- return /* @__PURE__ */ l("div", { className: "w-full space-y-1", children: [
966
- r && !p && /* @__PURE__ */ a("div", { className: "flex justify-end", children: /* @__PURE__ */ l("span", { className: "font-mono text-[11px] text-muted-foreground", children: [
967
- f,
963
+ ), zt = i.forwardRef(({ className: t, value: r, showLabel: a, size: o, variant: n, ...d }, p) => {
964
+ const l = r == null, m = l ? void 0 : Math.min(100, Math.max(0, r));
965
+ return /* @__PURE__ */ c("div", { className: "w-full space-y-1", children: [
966
+ a && !l && /* @__PURE__ */ e("div", { className: "flex justify-end", children: /* @__PURE__ */ c("span", { className: "font-mono text-[11px] text-muted-foreground", children: [
967
+ m,
968
968
  "%"
969
969
  ] }) }),
970
- /* @__PURE__ */ a(
971
- G.Root,
970
+ /* @__PURE__ */ e(
971
+ se.Root,
972
972
  {
973
- ref: c,
974
- className: i(it({ size: o }), e),
975
- value: f,
973
+ ref: p,
974
+ className: s(Bt({ size: o }), t),
975
+ value: m,
976
976
  ...d,
977
- children: /* @__PURE__ */ a(
978
- G.Indicator,
977
+ children: /* @__PURE__ */ e(
978
+ se.Indicator,
979
979
  {
980
- className: i(
981
- p ? "h-full animate-skeleton" : lt({ variant: s })
980
+ className: s(
981
+ l ? "h-full animate-skeleton" : jt({ variant: n })
982
982
  ),
983
- style: p ? void 0 : { transform: `translateX(-${100 - (f ?? 0)}%)` }
983
+ style: l ? void 0 : { transform: `translateX(-${100 - (m ?? 0)}%)` }
984
984
  }
985
985
  )
986
986
  }
987
987
  )
988
988
  ] });
989
989
  });
990
- dt.displayName = "Progress";
991
- const ct = k.Root;
992
- ct.displayName = "Accordion";
993
- const pt = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
994
- k.Item,
990
+ zt.displayName = "Progress";
991
+ const Gt = B.Root;
992
+ Gt.displayName = "Accordion";
993
+ const Ut = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
994
+ B.Item,
995
995
  {
996
- ref: r,
997
- className: i("border border-white/6", e),
998
- ...t
996
+ ref: a,
997
+ className: s("border border-border", t),
998
+ ...r
999
999
  }
1000
1000
  ));
1001
- pt.displayName = "AccordionItem";
1002
- const ft = n.forwardRef(({ className: e, children: t, ...r }, o) => /* @__PURE__ */ a(k.Header, { className: "flex", children: /* @__PURE__ */ l(
1003
- k.Trigger,
1001
+ Ut.displayName = "AccordionItem";
1002
+ const Ht = i.forwardRef(({ className: t, children: r, ...a }, o) => /* @__PURE__ */ e(B.Header, { className: "flex", children: /* @__PURE__ */ c(
1003
+ B.Trigger,
1004
1004
  {
1005
1005
  ref: o,
1006
- className: i(
1006
+ className: s(
1007
1007
  "group flex flex-1 items-center justify-between px-4 py-3",
1008
1008
  "font-display text-[13px] font-semibold uppercase tracking-wider text-foreground",
1009
1009
  "transition-all duration-200",
1010
- "hover:text-primary hover:bg-white/[0.02]",
1010
+ "hover:text-primary hover:bg-surface-hover",
1011
1011
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-inset",
1012
1012
  "disabled:cursor-not-allowed disabled:opacity-40",
1013
- e
1013
+ t
1014
1014
  ),
1015
- ...r,
1015
+ ...a,
1016
1016
  children: [
1017
- t,
1018
- /* @__PURE__ */ a(
1017
+ r,
1018
+ /* @__PURE__ */ e(
1019
1019
  "span",
1020
1020
  {
1021
- className: i(
1021
+ className: s(
1022
1022
  "font-mono text-base leading-none select-none shrink-0 ml-2",
1023
1023
  "text-muted-foreground transition-colors duration-200",
1024
1024
  "group-hover:text-primary",
@@ -1028,10 +1028,10 @@ const ft = n.forwardRef(({ className: e, children: t, ...r }, o) => /* @__PURE__
1028
1028
  children: "+"
1029
1029
  }
1030
1030
  ),
1031
- /* @__PURE__ */ a(
1031
+ /* @__PURE__ */ e(
1032
1032
  "span",
1033
1033
  {
1034
- className: i(
1034
+ className: s(
1035
1035
  "font-mono text-base leading-none select-none shrink-0 ml-2",
1036
1036
  "text-primary transition-colors duration-200",
1037
1037
  "group-data-[state=open]:inline group-data-[state=closed]:hidden"
@@ -1043,38 +1043,38 @@ const ft = n.forwardRef(({ className: e, children: t, ...r }, o) => /* @__PURE__
1043
1043
  ]
1044
1044
  }
1045
1045
  ) }));
1046
- ft.displayName = "AccordionTrigger";
1047
- const mt = n.forwardRef(({ className: e, children: t, ...r }, o) => /* @__PURE__ */ a(
1048
- k.Content,
1046
+ Ht.displayName = "AccordionTrigger";
1047
+ const Yt = i.forwardRef(({ className: t, children: r, ...a }, o) => /* @__PURE__ */ e(
1048
+ B.Content,
1049
1049
  {
1050
1050
  ref: o,
1051
1051
  className: "overflow-hidden data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up",
1052
- ...r,
1053
- children: /* @__PURE__ */ a("div", { className: i("px-4 pb-4 pt-1 text-sm text-muted-foreground", e), children: t })
1052
+ ...a,
1053
+ children: /* @__PURE__ */ e("div", { className: s("px-4 pb-4 pt-1 text-sm text-muted-foreground", t), children: r })
1054
1054
  }
1055
1055
  ));
1056
- mt.displayName = "AccordionContent";
1057
- const ut = P.Root;
1058
- ut.displayName = "Tabs";
1059
- const gt = h("inline-flex items-center", {
1056
+ Yt.displayName = "AccordionContent";
1057
+ const Wt = K.Root;
1058
+ Wt.displayName = "Tabs";
1059
+ const Kt = T("flex items-center overflow-x-auto", {
1060
1060
  variants: {
1061
1061
  variant: {
1062
- underline: "border-b border-white/10 gap-0",
1063
- pill: "gap-1 bg-surface-1 p-1",
1064
- bordered: "border border-white/10 gap-0"
1062
+ underline: "border-b border-border gap-0 w-full",
1063
+ pill: "gap-1 bg-surface-1 p-1 w-fit",
1064
+ bordered: "border border-border gap-0 w-full"
1065
1065
  }
1066
1066
  },
1067
1067
  defaultVariants: { variant: "underline" }
1068
- }), bt = n.forwardRef(({ className: e, variant: t, ...r }, o) => /* @__PURE__ */ a(
1069
- P.List,
1068
+ }), qt = i.forwardRef(({ className: t, variant: r, ...a }, o) => /* @__PURE__ */ e(
1069
+ K.List,
1070
1070
  {
1071
1071
  ref: o,
1072
- className: i(gt({ variant: t }), e),
1073
- ...r
1072
+ className: s(Kt({ variant: r }), t),
1073
+ ...a
1074
1074
  }
1075
1075
  ));
1076
- bt.displayName = "TabsList";
1077
- const xt = h(
1076
+ qt.displayName = "TabsList";
1077
+ const Xt = T(
1078
1078
  [
1079
1079
  "font-display text-[13px] font-semibold uppercase tracking-wider",
1080
1080
  "transition-all duration-150 cursor-pointer",
@@ -1095,88 +1095,88 @@ const xt = h(
1095
1095
  "data-[state=active]:bg-surface-3 data-[state=active]:text-primary"
1096
1096
  ],
1097
1097
  bordered: [
1098
- "px-4 py-2.5 text-muted-foreground border-r border-white/10 last:border-r-0",
1099
- "hover:text-foreground hover:bg-white/[0.03]",
1100
- "data-[state=active]:text-primary data-[state=active]:bg-white/[0.05]"
1098
+ "px-4 py-2.5 text-muted-foreground border-r border-border last:border-r-0",
1099
+ "hover:text-foreground hover:bg-surface-hover",
1100
+ "data-[state=active]:text-primary data-[state=active]:bg-surface-3"
1101
1101
  ]
1102
1102
  }
1103
1103
  },
1104
1104
  defaultVariants: { variant: "underline" }
1105
1105
  }
1106
- ), ht = n.forwardRef(({ className: e, variant: t, ...r }, o) => /* @__PURE__ */ a(
1107
- P.Trigger,
1106
+ ), Zt = i.forwardRef(({ className: t, variant: r, ...a }, o) => /* @__PURE__ */ e(
1107
+ K.Trigger,
1108
1108
  {
1109
1109
  ref: o,
1110
- className: i(xt({ variant: t }), e),
1111
- ...r
1110
+ className: s(Xt({ variant: r }), t),
1111
+ ...a
1112
1112
  }
1113
1113
  ));
1114
- ht.displayName = "TabsTrigger";
1115
- const vt = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
1116
- P.Content,
1114
+ Zt.displayName = "TabsTrigger";
1115
+ const Qt = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
1116
+ K.Content,
1117
1117
  {
1118
- ref: r,
1119
- className: i(
1118
+ ref: a,
1119
+ className: s(
1120
1120
  "mt-4 text-sm text-muted-foreground",
1121
1121
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-background",
1122
- e
1122
+ t
1123
1123
  ),
1124
- ...t
1124
+ ...r
1125
1125
  }
1126
1126
  ));
1127
- vt.displayName = "TabsContent";
1128
- const yt = R.Root;
1129
- yt.displayName = "Popover";
1130
- const Nt = R.Trigger;
1131
- Nt.displayName = "PopoverTrigger";
1132
- const wt = R.Anchor;
1133
- wt.displayName = "PopoverAnchor";
1134
- const Tt = n.forwardRef(({ className: e, align: t = "center", sideOffset: r = 6, ...o }, s) => /* @__PURE__ */ a(R.Portal, { children: /* @__PURE__ */ a(
1135
- R.Content,
1127
+ Qt.displayName = "TabsContent";
1128
+ const Jt = j.Root;
1129
+ Jt.displayName = "Popover";
1130
+ const er = j.Trigger;
1131
+ er.displayName = "PopoverTrigger";
1132
+ const tr = j.Anchor;
1133
+ tr.displayName = "PopoverAnchor";
1134
+ const rr = i.forwardRef(({ className: t, align: r = "center", sideOffset: a = 6, ...o }, n) => /* @__PURE__ */ e(j.Portal, { children: /* @__PURE__ */ e(
1135
+ j.Content,
1136
1136
  {
1137
- ref: s,
1138
- align: t,
1139
- sideOffset: r,
1140
- className: i(
1137
+ ref: n,
1138
+ align: r,
1139
+ sideOffset: a,
1140
+ className: s(
1141
1141
  "z-50 min-w-[200px]",
1142
- "bg-surface-2 border border-white/10 shadow-lg",
1142
+ "bg-surface-2 border border-border shadow-lg",
1143
1143
  "p-4",
1144
1144
  "data-[state=open]:animate-fade-in-up",
1145
1145
  "data-[state=closed]:animate-fade-in-up",
1146
1146
  "focus:outline-none",
1147
- e
1147
+ t
1148
1148
  ),
1149
1149
  ...o
1150
1150
  }
1151
1151
  ) }));
1152
- Tt.displayName = "PopoverContent";
1153
- const St = y.Root;
1154
- St.displayName = "Dialog";
1155
- const kt = y.Trigger;
1156
- kt.displayName = "DialogTrigger";
1157
- const ee = y.Portal;
1158
- ee.displayName = "DialogPortal";
1159
- const Rt = y.Close;
1160
- Rt.displayName = "DialogClose";
1161
- const te = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
1162
- y.Overlay,
1152
+ rr.displayName = "PopoverContent";
1153
+ const ar = M.Root;
1154
+ ar.displayName = "Dialog";
1155
+ const or = M.Trigger;
1156
+ or.displayName = "DialogTrigger";
1157
+ const Ee = M.Portal;
1158
+ Ee.displayName = "DialogPortal";
1159
+ const nr = M.Close;
1160
+ nr.displayName = "DialogClose";
1161
+ const _e = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
1162
+ M.Overlay,
1163
1163
  {
1164
- ref: r,
1165
- className: i(
1164
+ ref: a,
1165
+ className: s(
1166
1166
  "fixed inset-0 z-50 bg-black/75 backdrop-blur-sm",
1167
1167
  "data-[state=open]:animate-fade-in-up",
1168
- e
1168
+ t
1169
1169
  ),
1170
- ...t
1170
+ ...r
1171
1171
  }
1172
1172
  ));
1173
- te.displayName = "DialogOverlay";
1174
- const At = h(
1173
+ _e.displayName = "DialogOverlay";
1174
+ const sr = T(
1175
1175
  [
1176
1176
  "fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2",
1177
- "bg-surface-2 border border-white/10 shadow-xl",
1178
- "flex flex-col",
1179
- "data-[state=open]:animate-fade-in-up",
1177
+ "bg-surface-2 border border-border shadow-xl",
1178
+ "flex flex-col max-h-[90vh]",
1179
+ "data-[state=open]:animate-dialog-in",
1180
1180
  "focus:outline-none"
1181
1181
  ],
1182
1182
  {
@@ -1191,78 +1191,78 @@ const At = h(
1191
1191
  },
1192
1192
  defaultVariants: { size: "md" }
1193
1193
  }
1194
- ), Ct = n.forwardRef(({ className: e, size: t, children: r, ...o }, s) => /* @__PURE__ */ l(ee, { children: [
1195
- /* @__PURE__ */ a(te, {}),
1196
- /* @__PURE__ */ a(
1197
- y.Content,
1194
+ ), ir = i.forwardRef(({ className: t, size: r, children: a, ...o }, n) => /* @__PURE__ */ c(Ee, { children: [
1195
+ /* @__PURE__ */ e(_e, {}),
1196
+ /* @__PURE__ */ e(
1197
+ M.Content,
1198
1198
  {
1199
- ref: s,
1200
- className: i(At({ size: t }), e),
1199
+ ref: n,
1200
+ className: s(sr({ size: r }), t),
1201
1201
  ...o,
1202
- children: r
1202
+ children: a
1203
1203
  }
1204
1204
  )
1205
1205
  ] }));
1206
- Ct.displayName = "DialogContent";
1207
- function Dt({
1208
- className: e,
1209
- ...t
1206
+ ir.displayName = "DialogContent";
1207
+ function lr({
1208
+ className: t,
1209
+ ...r
1210
1210
  }) {
1211
- return /* @__PURE__ */ a(
1211
+ return /* @__PURE__ */ e(
1212
1212
  "div",
1213
1213
  {
1214
- className: i(
1215
- "flex shrink-0 items-center justify-between border-b border-white/8 px-6 py-4",
1216
- e
1214
+ className: s(
1215
+ "flex shrink-0 items-center justify-between border-b border-border px-6 py-4",
1216
+ t
1217
1217
  ),
1218
- ...t
1218
+ ...r
1219
1219
  }
1220
1220
  );
1221
1221
  }
1222
- Dt.displayName = "DialogHeader";
1223
- function It({
1224
- className: e,
1225
- ...t
1222
+ lr.displayName = "DialogHeader";
1223
+ function dr({
1224
+ className: t,
1225
+ ...r
1226
1226
  }) {
1227
- return /* @__PURE__ */ a(
1227
+ return /* @__PURE__ */ e(
1228
1228
  "div",
1229
1229
  {
1230
- className: i(
1231
- "flex shrink-0 items-center justify-end gap-3 border-t border-white/8 px-6 py-4",
1232
- e
1230
+ className: s(
1231
+ "flex shrink-0 items-center justify-end gap-3 border-t border-border px-6 py-4",
1232
+ t
1233
1233
  ),
1234
- ...t
1234
+ ...r
1235
1235
  }
1236
1236
  );
1237
1237
  }
1238
- It.displayName = "DialogFooter";
1239
- const Pt = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
1240
- y.Title,
1238
+ dr.displayName = "DialogFooter";
1239
+ const cr = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
1240
+ M.Title,
1241
1241
  {
1242
- ref: r,
1243
- className: i(
1242
+ ref: a,
1243
+ className: s(
1244
1244
  "font-display text-base font-semibold uppercase tracking-wider text-foreground",
1245
- e
1245
+ t
1246
1246
  ),
1247
- ...t
1247
+ ...r
1248
1248
  }
1249
1249
  ));
1250
- Pt.displayName = "DialogTitle";
1251
- const Et = n.forwardRef(({ className: e, ...t }, r) => /* @__PURE__ */ a(
1252
- y.Description,
1250
+ cr.displayName = "DialogTitle";
1251
+ const pr = i.forwardRef(({ className: t, ...r }, a) => /* @__PURE__ */ e(
1252
+ M.Description,
1253
1253
  {
1254
- ref: r,
1255
- className: i("flex-1 overflow-y-auto px-6 py-4 text-sm text-muted-foreground", e),
1256
- ...t
1254
+ ref: a,
1255
+ className: s("flex-1 overflow-y-auto px-6 py-4 text-sm text-muted-foreground", t),
1256
+ ...r
1257
1257
  }
1258
1258
  ));
1259
- Et.displayName = "DialogDescription";
1260
- const _t = h("shrink-0", {
1259
+ pr.displayName = "DialogDescription";
1260
+ const mr = T("shrink-0", {
1261
1261
  variants: {
1262
1262
  variant: {
1263
- default: "bg-white/10",
1264
- subtle: "bg-white/5",
1265
- strong: "bg-white/25",
1263
+ default: "bg-border",
1264
+ subtle: "bg-border",
1265
+ strong: "bg-border-strong",
1266
1266
  glow: "bg-gradient-to-r from-transparent via-primary/40 to-transparent",
1267
1267
  accent: "bg-primary/30"
1268
1268
  },
@@ -1275,229 +1275,244 @@ const _t = h("shrink-0", {
1275
1275
  variant: "default",
1276
1276
  orientation: "horizontal"
1277
1277
  }
1278
- }), $t = n.forwardRef(({ className: e, orientation: t = "horizontal", variant: r, decorative: o = !0, ...s }, d) => {
1279
- const c = t ?? "horizontal";
1280
- return /* @__PURE__ */ a(
1281
- me.Root,
1278
+ }), fr = i.forwardRef(({ className: t, orientation: r = "horizontal", variant: a, decorative: o = !0, ...n }, d) => {
1279
+ const p = r ?? "horizontal";
1280
+ return /* @__PURE__ */ e(
1281
+ Ye.Root,
1282
1282
  {
1283
1283
  ref: d,
1284
1284
  decorative: o,
1285
- orientation: c,
1286
- className: i(
1287
- _t({ variant: r, orientation: c }),
1288
- e
1285
+ orientation: p,
1286
+ className: s(
1287
+ mr({ variant: a, orientation: p }),
1288
+ t
1289
1289
  ),
1290
- ...s
1290
+ ...n
1291
1291
  }
1292
1292
  );
1293
1293
  });
1294
- $t.displayName = "Separator";
1295
- const Vt = n.forwardRef(
1296
- ({ children: e, className: t = "" }, r) => /* @__PURE__ */ l("span", { ref: r, className: `relative inline-block ${t}`, children: [
1297
- /* @__PURE__ */ a("span", { className: "relative z-10", children: e }),
1298
- /* @__PURE__ */ a(
1299
- "span",
1300
- {
1301
- "aria-hidden": !0,
1302
- className: "absolute inset-0 text-ef-cyan opacity-70 animate-glitch",
1303
- style: {
1304
- clipPath: "inset(20% 0 50% 0)",
1305
- transform: "translate(-2px, 0)"
1306
- },
1307
- children: e
1308
- }
1309
- ),
1310
- /* @__PURE__ */ a(
1311
- "span",
1294
+ fr.displayName = "Separator";
1295
+ const ur = T("animate-skeleton rounded-none", {
1296
+ variants: {
1297
+ width: {
1298
+ full: "w-full",
1299
+ "3/4": "w-3/4",
1300
+ "1/2": "w-1/2",
1301
+ "1/3": "w-1/3",
1302
+ "1/4": "w-1/4"
1303
+ },
1304
+ height: {
1305
+ xs: "h-2",
1306
+ sm: "h-3",
1307
+ md: "h-4",
1308
+ lg: "h-6"
1309
+ }
1310
+ },
1311
+ defaultVariants: { width: "full", height: "md" }
1312
+ }), F = i.forwardRef(
1313
+ ({ className: t, width: r, height: a, ...o }, n) => /* @__PURE__ */ e(
1314
+ "div",
1315
+ {
1316
+ ref: n,
1317
+ className: s(ur({ width: r, height: a }), t),
1318
+ "aria-hidden": "true",
1319
+ ...o
1320
+ }
1321
+ )
1322
+ );
1323
+ F.displayName = "SkeletonLine";
1324
+ const Ve = i.forwardRef(
1325
+ ({ lines: t = 3, className: r, ...a }, o) => {
1326
+ const n = ["full", "3/4", "full", "1/2", "3/4"];
1327
+ return /* @__PURE__ */ e(
1328
+ "div",
1312
1329
  {
1313
- "aria-hidden": !0,
1314
- className: "absolute inset-0 text-ef-red opacity-70 animate-glitch",
1315
- style: {
1316
- clipPath: "inset(50% 0 20% 0)",
1317
- transform: "translate(2px, 0)",
1318
- animationDelay: "0.1s"
1319
- },
1320
- children: e
1330
+ ref: o,
1331
+ className: s("space-y-2", r),
1332
+ "aria-hidden": "true",
1333
+ ...a,
1334
+ children: Array.from({ length: t }).map((d, p) => /* @__PURE__ */ e(
1335
+ F,
1336
+ {
1337
+ width: n[p % n.length],
1338
+ height: "sm"
1339
+ },
1340
+ p
1341
+ ))
1321
1342
  }
1322
- )
1323
- ] })
1343
+ );
1344
+ }
1324
1345
  );
1325
- Vt.displayName = "GlitchText";
1326
- const jt = { sm: 16, md: 28, lg: 44 }, Ot = n.forwardRef(({ size: e = "md", label: t, className: r }, o) => {
1327
- const s = jt[e];
1328
- return /* @__PURE__ */ l(
1346
+ Ve.displayName = "SkeletonText";
1347
+ const gr = {
1348
+ xs: "w-6 h-6",
1349
+ sm: "w-8 h-8",
1350
+ md: "w-10 h-10",
1351
+ lg: "w-14 h-14",
1352
+ xl: "w-20 h-20"
1353
+ }, Oe = i.forwardRef(
1354
+ ({ size: t = "md", className: r, ...a }, o) => /* @__PURE__ */ e(
1329
1355
  "div",
1330
1356
  {
1331
1357
  ref: o,
1332
- className: `flex flex-col items-center gap-3${r ? ` ${r}` : ""}`,
1358
+ className: s(
1359
+ "animate-skeleton clip-corner-sm shrink-0",
1360
+ gr[t],
1361
+ r
1362
+ ),
1363
+ "aria-hidden": "true",
1364
+ ...a
1365
+ }
1366
+ )
1367
+ );
1368
+ Oe.displayName = "SkeletonAvatar";
1369
+ const xr = i.forwardRef(
1370
+ ({ showAvatar: t = !1, lines: r = 3, className: a, ...o }, n) => /* @__PURE__ */ c(
1371
+ "div",
1372
+ {
1373
+ ref: n,
1374
+ className: s(
1375
+ "border border-border bg-surface-1 p-4 space-y-3",
1376
+ a
1377
+ ),
1378
+ "aria-hidden": "true",
1379
+ ...o,
1333
1380
  children: [
1334
- /* @__PURE__ */ a("div", { className: "relative", style: { width: s * 2, height: s * 2 }, children: [0, 1, 2].map((d) => /* @__PURE__ */ a(
1335
- "div",
1336
- {
1337
- className: "absolute inset-0 border-2 border-primary",
1338
- style: {
1339
- transform: `rotate(45deg) scale(${1 - d * 0.25})`,
1340
- animation: `diamondSpin ${1.2 + d * 0.4}s linear infinite${d === 1 ? " reverse" : ""}`,
1341
- opacity: 1 - d * 0.25
1342
- }
1343
- },
1344
- d
1345
- )) }),
1346
- t && /* @__PURE__ */ a("span", { className: "font-mono text-xs text-muted-foreground tracking-[0.15em] uppercase", children: t })
1381
+ /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [
1382
+ t && /* @__PURE__ */ e(Oe, { size: "md" }),
1383
+ /* @__PURE__ */ c("div", { className: "flex-1 space-y-2", children: [
1384
+ /* @__PURE__ */ e(F, { width: "3/4", height: "md" }),
1385
+ /* @__PURE__ */ e(F, { width: "1/2", height: "sm" })
1386
+ ] })
1387
+ ] }),
1388
+ /* @__PURE__ */ e(Ve, { lines: r }),
1389
+ /* @__PURE__ */ e(F, { width: "1/3", height: "xs" })
1347
1390
  ]
1348
1391
  }
1349
- );
1350
- });
1351
- Ot.displayName = "DiamondLoader";
1352
- const Lt = {
1353
- online: "ONLINE",
1354
- warning: "CAUTION",
1355
- offline: "OFFLINE",
1356
- scanning: "SCANNING"
1357
- }, zt = {
1358
- online: "bg-ef-green",
1359
- warning: "bg-ef-yellow",
1360
- offline: "bg-ef-red",
1361
- scanning: "bg-ef-cyan animate-pulse"
1362
- }, Bt = n.forwardRef(({ title: e, status: t = "online", children: r, className: o }, s) => /* @__PURE__ */ l(
1363
- "div",
1392
+ )
1393
+ );
1394
+ xr.displayName = "SkeletonCard";
1395
+ const de = {
1396
+ search: {
1397
+ title: "NO RESULTS FOUND",
1398
+ description: "Try adjusting your search query."
1399
+ },
1400
+ error: {
1401
+ title: "FAILED TO LOAD",
1402
+ description: "An error occurred. Please try again."
1403
+ },
1404
+ permission: {
1405
+ title: "ACCESS RESTRICTED",
1406
+ description: "You don't have permission to view this."
1407
+ },
1408
+ empty: {
1409
+ title: "NO ITEMS YET",
1410
+ description: "Add your first item to get started."
1411
+ },
1412
+ default: { title: "", description: "" }
1413
+ }, br = T(
1414
+ "flex flex-col items-center justify-center text-center py-16 px-8",
1364
1415
  {
1365
- ref: s,
1366
- className: `relative border border-border bg-surface-1 scanline-overlay${o ? ` ${o}` : ""}`,
1367
- children: [
1368
- /* @__PURE__ */ l("div", { className: "flex items-center justify-between px-4 py-2.5 border-b border-border bg-surface-0", children: [
1369
- /* @__PURE__ */ l("div", { className: "flex items-center gap-3", children: [
1370
- /* @__PURE__ */ a(le, { className: "w-3.5 h-3.5 text-primary" }),
1371
- /* @__PURE__ */ a("span", { className: "font-display text-[11px] font-bold tracking-[0.15em] uppercase text-foreground", children: e })
1372
- ] }),
1373
- /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
1374
- /* @__PURE__ */ a(
1375
- "div",
1376
- {
1377
- className: `w-2 h-2 ${zt[t]}`,
1378
- style: { clipPath: "polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)" }
1379
- }
1380
- ),
1381
- /* @__PURE__ */ a("span", { className: "font-mono text-[10px] tracking-[0.1em] text-muted-foreground", children: Lt[t] })
1382
- ] })
1383
- ] }),
1384
- /* @__PURE__ */ a("div", { className: "absolute top-0 left-0 w-6 h-6 border-t-2 border-l-2 border-primary/40 pointer-events-none" }),
1385
- /* @__PURE__ */ a("div", { className: "absolute top-0 right-0 w-6 h-6 border-t-2 border-r-2 border-primary/40 pointer-events-none" }),
1386
- /* @__PURE__ */ a("div", { className: "absolute bottom-0 left-0 w-6 h-6 border-b-2 border-l-2 border-primary/40 pointer-events-none" }),
1387
- /* @__PURE__ */ a("div", { className: "absolute bottom-0 right-0 w-6 h-6 border-b-2 border-r-2 border-primary/40 pointer-events-none" }),
1388
- /* @__PURE__ */ a("div", { className: "p-5", children: r })
1389
- ]
1416
+ variants: {
1417
+ size: {
1418
+ sm: "py-8 px-4",
1419
+ md: "py-16 px-8",
1420
+ lg: "py-24 px-12"
1421
+ }
1422
+ },
1423
+ defaultVariants: { size: "md" }
1390
1424
  }
1391
- ));
1392
- Bt.displayName = "TacticalPanel";
1393
- const Mt = n.forwardRef(
1394
- ({ title: e, subtitle: t, icon: r, value: o, className: s }, d) => {
1395
- const [c, p] = n.useState(!1);
1396
- return /* @__PURE__ */ l(
1425
+ ), hr = i.forwardRef(
1426
+ ({
1427
+ icon: t,
1428
+ title: r,
1429
+ description: a,
1430
+ action: o,
1431
+ variant: n = "default",
1432
+ size: d,
1433
+ className: p,
1434
+ ...l
1435
+ }, m) => {
1436
+ const u = de[n] ?? de.default, f = r ?? u.title, g = a ?? u.description;
1437
+ return /* @__PURE__ */ c(
1397
1438
  "div",
1398
1439
  {
1399
- ref: d,
1400
- className: `relative clip-corner border border-border bg-surface-1 p-6 overflow-hidden group cursor-pointer transition-all duration-500 hover:border-primary/30${s ? ` ${s}` : ""}`,
1401
- onMouseEnter: () => p(!0),
1402
- onMouseLeave: () => p(!1),
1440
+ ref: m,
1441
+ className: s(br({ size: d }), p),
1442
+ ...l,
1403
1443
  children: [
1404
- /* @__PURE__ */ a(
1405
- "div",
1406
- {
1407
- className: "absolute left-0 right-0 h-px bg-gradient-to-r from-transparent via-primary/60 to-transparent pointer-events-none transition-all",
1408
- style: {
1409
- top: c ? "100%" : "-10%",
1410
- opacity: c ? 1 : 0,
1411
- transitionDuration: "2000ms"
1412
- }
1413
- }
1414
- ),
1415
- /* @__PURE__ */ a(
1416
- "div",
1417
- {
1418
- className: "absolute inset-0 pointer-events-none transition-opacity duration-500",
1419
- style: {
1420
- background: "linear-gradient(135deg, transparent 0%, hsl(var(--primary) / 0.03) 40%, transparent 60%)",
1421
- opacity: c ? 1 : 0
1422
- }
1423
- }
1424
- ),
1425
- /* @__PURE__ */ l("div", { className: "relative z-10", children: [
1426
- /* @__PURE__ */ a(r, { className: "w-5 h-5 text-primary mb-4 group-hover:drop-shadow-[0_0_8px_hsl(var(--primary)/0.5)] transition-all" }),
1427
- o && /* @__PURE__ */ a("p", { className: "font-display text-3xl font-bold text-primary mb-1", children: o }),
1428
- /* @__PURE__ */ a("h4", { className: "font-display text-sm font-bold tracking-[0.05em] uppercase text-foreground mb-1", children: e }),
1429
- /* @__PURE__ */ a("p", { className: "text-sm text-muted-foreground", children: t })
1430
- ] }),
1431
- /* @__PURE__ */ a("div", { className: "absolute bottom-3 right-3 text-primary/20 group-hover:text-primary/60 transition-colors text-xs", children: "◆" })
1444
+ t && /* @__PURE__ */ e("div", { className: "text-muted-foreground/30 mb-6 [&>svg]:w-12 [&>svg]:h-12", children: t }),
1445
+ f && /* @__PURE__ */ e("h3", { className: "font-display text-[18px] font-bold uppercase tracking-wider text-foreground mb-3", children: f }),
1446
+ g && /* @__PURE__ */ e("p", { className: "text-[14px] text-muted-foreground max-w-[360px] leading-relaxed", children: g }),
1447
+ o && /* @__PURE__ */ e("div", { className: "mt-6", children: o })
1432
1448
  ]
1433
1449
  }
1434
1450
  );
1435
1451
  }
1436
1452
  );
1437
- Mt.displayName = "HoloCard";
1438
- const Ft = [
1439
- "[SYS] Initializing ENDFIELD protocol...",
1440
- "[NET] Connection established — latency: 12ms",
1441
- "[SEC] Authentication verified ◆ Level: ALPHA",
1442
- "[DAT] Loading design tokens: 94 variables mapped",
1443
- "[GPU] Render pipeline: Optimized (60fps locked)",
1444
- "[SYS] Component registry: 70 modules online",
1445
- "[NET] Sync complete — all nodes operational",
1446
- "[DAT] Color system: HSL-based, 9 neutrals, 9 accents",
1447
- "[SEC] Encryption: AES-256 ◆ Status: ACTIVE",
1448
- "[SYS] ENDFIELD DESIGN SYSTEM v2.0 ◆ READY"
1449
- ], Gt = n.forwardRef(
1450
- ({ messages: e = Ft, className: t }, r) => {
1451
- const [o, s] = n.useState([]), d = n.useRef(null);
1452
- return n.useEffect(() => {
1453
- let c = 0;
1454
- const p = setInterval(() => {
1455
- s((f) => {
1456
- const m = [...f, e[c % e.length]];
1457
- return m.length > 8 ? m.slice(-8) : m;
1458
- }), c++;
1459
- }, 1200);
1460
- return () => clearInterval(p);
1461
- }, [e]), n.useEffect(() => {
1462
- d.current && (d.current.scrollTop = d.current.scrollHeight);
1463
- }, [o]), /* @__PURE__ */ l(
1453
+ hr.displayName = "EmptyState";
1454
+ const vr = T(
1455
+ "relative flex items-start gap-3 p-4 border-l-[3px] transition-all",
1456
+ {
1457
+ variants: {
1458
+ variant: {
1459
+ info: "bg-ef-blue/[0.08] border-l-ef-blue border border-ef-blue/20",
1460
+ success: "bg-ef-green/[0.08] border-l-ef-green border border-ef-green/20",
1461
+ warning: "bg-ef-orange/[0.08] border-l-ef-orange border border-ef-orange/20",
1462
+ error: "bg-destructive/[0.08] border-l-destructive border border-destructive/20"
1463
+ }
1464
+ },
1465
+ defaultVariants: { variant: "info" }
1466
+ }
1467
+ ), yr = {
1468
+ info: { icon: "◆", color: "text-ef-blue" },
1469
+ success: { icon: "✓", color: "text-ef-green" },
1470
+ warning: { icon: "⚠", color: "text-ef-orange" },
1471
+ error: { icon: "✕", color: "text-destructive" }
1472
+ }, Nr = i.forwardRef(
1473
+ ({
1474
+ variant: t = "info",
1475
+ title: r,
1476
+ dismissible: a = !1,
1477
+ onDismiss: o,
1478
+ icon: n,
1479
+ children: d,
1480
+ className: p,
1481
+ ...l
1482
+ }, m) => {
1483
+ const u = yr[t], f = n !== null, g = n ?? /* @__PURE__ */ e(
1484
+ "span",
1485
+ {
1486
+ "aria-hidden": "true",
1487
+ className: s(
1488
+ "font-mono text-[14px] font-bold leading-none",
1489
+ u.color
1490
+ ),
1491
+ children: u.icon
1492
+ }
1493
+ );
1494
+ return /* @__PURE__ */ c(
1464
1495
  "div",
1465
1496
  {
1466
- ref: r,
1467
- className: `border border-border bg-background clip-corner overflow-hidden${t ? ` ${t}` : ""}`,
1497
+ ref: m,
1498
+ role: "alert",
1499
+ "aria-live": t === "error" ? "assertive" : "polite",
1500
+ className: s(vr({ variant: t }), p),
1501
+ ...l,
1468
1502
  children: [
1469
- /* @__PURE__ */ l("div", { className: "flex items-center gap-2 px-4 py-2 border-b border-border bg-surface-0", children: [
1470
- /* @__PURE__ */ a(de, { className: "w-3.5 h-3.5 text-primary" }),
1471
- /* @__PURE__ */ a("span", { className: "font-mono text-[10px] tracking-[0.1em] text-muted-foreground uppercase", children: "LIVE FEED" }),
1472
- /* @__PURE__ */ l("div", { className: "ml-auto flex items-center gap-1.5", children: [
1473
- /* @__PURE__ */ a(
1474
- "div",
1475
- {
1476
- className: "w-1.5 h-1.5 bg-ef-green animate-pulse",
1477
- style: { clipPath: "polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)" }
1478
- }
1479
- ),
1480
- /* @__PURE__ */ a("span", { className: "font-mono text-[10px] text-ef-green", children: "ACTIVE" })
1481
- ] })
1503
+ f && /* @__PURE__ */ e("div", { className: "shrink-0 mt-0.5", children: g }),
1504
+ /* @__PURE__ */ c("div", { className: "flex-1 min-w-0", children: [
1505
+ r && /* @__PURE__ */ e("p", { className: "font-display text-[13px] font-bold uppercase tracking-wider text-foreground mb-1", children: r }),
1506
+ d && /* @__PURE__ */ e("div", { className: "text-[13px] text-muted-foreground leading-relaxed", children: d })
1482
1507
  ] }),
1483
- /* @__PURE__ */ l(
1484
- "div",
1508
+ a && /* @__PURE__ */ e(
1509
+ "button",
1485
1510
  {
1486
- ref: d,
1487
- className: "p-4 h-48 overflow-y-auto font-mono text-xs space-y-1",
1488
- children: [
1489
- /* @__PURE__ */ a(ue, { children: o.map((c, p) => /* @__PURE__ */ a(
1490
- V.div,
1491
- {
1492
- initial: { opacity: 0, x: -10 },
1493
- animate: { opacity: 1, x: 0 },
1494
- className: c.includes("[SEC]") ? "text-ef-green" : c.includes("[NET]") ? "text-ef-blue" : c.includes("[DAT]") ? "text-ef-cyan" : c.includes("[GPU]") ? "text-ef-purple" : "text-muted-foreground",
1495
- children: c
1496
- },
1497
- `${c}-${p}`
1498
- )) }),
1499
- /* @__PURE__ */ a("span", { className: "inline-block w-2 h-4 bg-primary animate-cursor-blink" })
1500
- ]
1511
+ type: "button",
1512
+ "aria-label": "Dismiss",
1513
+ onClick: o,
1514
+ className: "shrink-0 text-muted-foreground hover:text-foreground transition-colors font-mono text-[12px] leading-none",
1515
+ children: "✕"
1501
1516
  }
1502
1517
  )
1503
1518
  ]
@@ -1505,266 +1520,1187 @@ const Ft = [
1505
1520
  );
1506
1521
  }
1507
1522
  );
1508
- Gt.displayName = "DataStream";
1509
- const Ht = h(
1510
- "inline-flex items-center gap-1.5 clip-corner-sm border px-3 py-1 font-display text-[10px] font-bold tracking-[0.15em] uppercase",
1511
- {
1512
- variants: {
1513
- variant: {
1514
- default: "border-primary/40 text-primary bg-primary/10",
1515
- success: "border-ef-green/40 text-ef-green bg-ef-green/10",
1516
- warning: "border-ef-yellow/40 text-ef-yellow bg-ef-yellow/10",
1517
- danger: "border-ef-red/40 text-ef-red bg-ef-red/10",
1518
- info: "border-ef-cyan/40 text-ef-cyan bg-ef-cyan/10"
1519
- }
1520
- },
1521
- defaultVariants: {
1522
- variant: "default"
1523
+ Nr.displayName = "Alert";
1524
+ const wr = T("", {
1525
+ variants: {
1526
+ status: {
1527
+ complete: "text-primary",
1528
+ current: "text-primary",
1529
+ upcoming: "text-muted-foreground/40"
1523
1530
  }
1524
- }
1525
- ), Ut = n.forwardRef(({ variant: e, className: t, children: r, ...o }, s) => /* @__PURE__ */ l(
1526
- "span",
1527
- {
1528
- ref: s,
1529
- className: i(Ht({ variant: e }), t),
1530
- ...o,
1531
- children: [
1532
- /* @__PURE__ */ a("span", { style: { fontSize: "6px" }, children: "◆" }),
1533
- r
1534
- ]
1535
- }
1536
- ));
1537
- Ut.displayName = "TacticalBadge";
1538
- const Wt = {
1539
- caution: {
1540
- border: "border-ef-yellow/30",
1541
- bg: "bg-ef-yellow/5",
1542
- icon: "text-ef-yellow",
1543
- label: "CAUTION"
1544
1531
  },
1545
- alert: {
1546
- border: "border-ef-orange/30",
1547
- bg: "bg-ef-orange/5",
1548
- icon: "text-ef-orange",
1549
- label: "ALERT"
1550
- },
1551
- critical: {
1552
- border: "border-ef-red/30",
1553
- bg: "bg-ef-red/5",
1554
- icon: "text-ef-red",
1555
- label: "CRITICAL"
1556
- }
1557
- }, Yt = n.forwardRef(({ level: e = "caution", children: t, className: r }, o) => {
1558
- const s = Wt[e];
1559
- return /* @__PURE__ */ l(
1560
- "div",
1561
- {
1562
- ref: o,
1563
- className: `clip-corner border ${s.border} ${s.bg} p-4 flex items-start gap-3${r ? ` ${r}` : ""}`,
1564
- children: [
1565
- /* @__PURE__ */ a(ce, { className: `w-5 h-5 ${s.icon} shrink-0 mt-0.5` }),
1566
- /* @__PURE__ */ l("div", { children: [
1567
- /* @__PURE__ */ a(
1532
+ defaultVariants: { status: "upcoming" }
1533
+ }), Pe = i.forwardRef(
1534
+ ({ date: t, title: r, description: a, status: o = "upcoming", children: n, className: d, ...p }, l) => {
1535
+ const u = o === "complete" || o === "current" ? "◆" : "";
1536
+ return /* @__PURE__ */ c(
1537
+ "div",
1538
+ {
1539
+ ref: l,
1540
+ role: "listitem",
1541
+ "aria-current": o === "current" ? "true" : void 0,
1542
+ className: s("relative pb-8 last:pb-0", d),
1543
+ ...p,
1544
+ children: [
1545
+ /* @__PURE__ */ e(
1568
1546
  "span",
1569
1547
  {
1570
- className: `font-display text-[11px] font-bold tracking-[0.15em] ${s.icon}`,
1571
- children: s.label
1548
+ className: s(
1549
+ "absolute -left-[15px] top-0.5 font-mono text-[11px] leading-none select-none",
1550
+ wr({ status: o }),
1551
+ o === "current" && "drop-shadow-[0_0_6px_rgba(255,212,41,0.6)]"
1552
+ ),
1553
+ "aria-hidden": "true",
1554
+ children: u
1572
1555
  }
1573
1556
  ),
1574
- /* @__PURE__ */ a("p", { className: "text-sm text-muted-foreground mt-1", children: t })
1575
- ] })
1576
- ]
1577
- }
1578
- );
1579
- });
1580
- Yt.displayName = "WarningBanner";
1581
- const Xt = n.forwardRef(
1582
- ({ label: e, className: t }, r) => /* @__PURE__ */ l(
1557
+ t && /* @__PURE__ */ e("p", { className: "font-mono text-[11px] text-muted-foreground/60 mb-1", children: t }),
1558
+ /* @__PURE__ */ e("p", { className: "font-display text-[14px] font-semibold uppercase text-foreground", children: r }),
1559
+ a && /* @__PURE__ */ e("p", { className: "text-[13px] text-muted-foreground mt-1", children: a }),
1560
+ n
1561
+ ]
1562
+ }
1563
+ );
1564
+ }
1565
+ );
1566
+ Pe.displayName = "TimelineItem";
1567
+ const Tr = i.forwardRef(
1568
+ ({ items: t, children: r, className: a, ...o }, n) => /* @__PURE__ */ e(
1583
1569
  "div",
1584
1570
  {
1585
- ref: r,
1586
- className: `relative flex items-center gap-4 py-2${t ? ` ${t}` : ""}`,
1587
- children: [
1588
- /* @__PURE__ */ a("div", { className: "flex-1 h-px bg-gradient-to-r from-transparent via-primary/30 to-transparent" }),
1589
- e && /* @__PURE__ */ l("span", { className: "font-display text-[10px] font-bold tracking-[0.2em] uppercase text-primary/60 flex items-center gap-2", children: [
1590
- /* @__PURE__ */ a("span", { style: { fontSize: "6px" }, children: "◆" }),
1591
- " ",
1592
- e,
1593
- " ",
1594
- /* @__PURE__ */ a("span", { style: { fontSize: "6px" }, children: "◆" })
1595
- ] }),
1596
- /* @__PURE__ */ a("div", { className: "flex-1 h-px bg-gradient-to-r from-transparent via-primary/30 to-transparent" })
1597
- ]
1571
+ ref: n,
1572
+ role: "list",
1573
+ className: s(
1574
+ "relative pl-6 space-y-0",
1575
+ "before:absolute before:left-[9px] before:top-2 before:bottom-2 before:w-px before:bg-border",
1576
+ a
1577
+ ),
1578
+ ...o,
1579
+ children: t ? t.map((d, p) => {
1580
+ const { date: l, title: m, description: u, status: f, children: g, className: h, ...b } = d;
1581
+ return /* @__PURE__ */ e(
1582
+ Pe,
1583
+ {
1584
+ date: l,
1585
+ title: m,
1586
+ description: u,
1587
+ status: f,
1588
+ className: h,
1589
+ ...b,
1590
+ children: g
1591
+ },
1592
+ p
1593
+ );
1594
+ }) : r
1598
1595
  }
1599
1596
  )
1600
1597
  );
1601
- Xt.displayName = "ScanDivider";
1602
- const Kt = n.forwardRef(({ label: e, value: t, unit: r, className: o }, s) => /* @__PURE__ */ l(
1603
- "div",
1604
- {
1605
- ref: s,
1606
- className: `inline-flex items-center border border-border bg-surface-0 overflow-hidden${o ? ` ${o}` : ""}`,
1607
- children: [
1608
- /* @__PURE__ */ a("span", { className: "font-mono text-[10px] tracking-[0.1em] uppercase text-muted-foreground bg-surface-2 px-2.5 py-1.5 border-r border-border", children: e }),
1609
- /* @__PURE__ */ a("span", { className: "font-mono text-xs text-primary px-2.5 py-1.5 font-bold", children: t }),
1610
- r && /* @__PURE__ */ a("span", { className: "font-mono text-[10px] text-muted-foreground pr-2.5", children: r })
1611
- ]
1612
- }
1613
- ));
1614
- Kt.displayName = "CoordinateTag";
1615
- const qt = n.forwardRef(
1616
- ({ data: e, size: t = 260, color: r = "primary", className: o }, s) => {
1617
- const d = n.useRef(null), c = ge(d, { once: !0 }), p = n.useCallback(
1618
- (u) => {
1619
- d.current = u, typeof s == "function" ? s(u) : s && (s.current = u);
1620
- },
1621
- [s]
1622
- ), f = t / 2, m = t / 2, g = t * 0.38, w = 4, re = e.length, O = Math.PI * 2 / re, T = r === "cyan" ? "--ef-cyan" : "--primary", C = (u, b) => ({
1623
- x: f + b * Math.sin(u * O),
1624
- y: m - b * Math.cos(u * O)
1625
- }), ae = Array.from({ length: w }, (u, b) => {
1626
- const N = g * ((b + 1) / w);
1627
- return e.map((E, oe) => C(oe, N)).map((E) => `${E.x},${E.y}`).join(" ");
1628
- }), L = e.map((u, b) => C(b, u.value / 100 * g)), z = L.map((u) => `${u.x},${u.y}`).join(" "), B = e.map(() => `${f},${m}`).join(" ");
1629
- return /* @__PURE__ */ a(
1630
- "div",
1631
- {
1632
- ref: p,
1633
- className: `flex flex-col items-center w-full${o ? ` ${o}` : ""}`,
1634
- children: /* @__PURE__ */ l(
1635
- "svg",
1598
+ Tr.displayName = "Timeline";
1599
+ function ce(t, r) {
1600
+ return t < r ? "complete" : t === r ? "current" : "upcoming";
1601
+ }
1602
+ const Sr = i.forwardRef(
1603
+ ({ steps: t, currentStep: r, orientation: a = "horizontal", className: o, ...n }, d) => a === "vertical" ? /* @__PURE__ */ e(
1604
+ "div",
1605
+ {
1606
+ ref: d,
1607
+ role: "list",
1608
+ "aria-label": "Progress steps",
1609
+ className: s("flex flex-col gap-0", o),
1610
+ ...n,
1611
+ children: t.map((p, l) => {
1612
+ const m = ce(l, r), u = m === "complete", f = m === "current", g = l === t.length - 1, h = u || f ? "◆" : "◇", b = u ? "completed" : f ? "current" : "upcoming";
1613
+ return /* @__PURE__ */ c(
1614
+ "div",
1636
1615
  {
1637
- viewBox: `0 0 ${t} ${t}`,
1638
- className: "w-full max-w-[260px] h-auto overflow-visible",
1616
+ role: "listitem",
1617
+ "aria-label": `Step ${l + 1} of ${t.length}: ${p.label}, ${b}`,
1618
+ "aria-current": f ? "step" : void 0,
1619
+ className: "flex items-start gap-3 relative",
1639
1620
  children: [
1640
- ae.map((u, b) => /* @__PURE__ */ a(
1641
- "polygon",
1642
- {
1643
- points: u,
1644
- fill: "none",
1645
- stroke: "hsl(var(--border))",
1646
- strokeWidth: 1,
1647
- opacity: 0.5
1648
- },
1649
- b
1650
- )),
1651
- e.map((u, b) => {
1652
- const N = C(b, g);
1653
- return /* @__PURE__ */ a(
1654
- "line",
1621
+ /* @__PURE__ */ c("div", { className: "flex flex-col items-center flex-shrink-0", children: [
1622
+ /* @__PURE__ */ e(
1623
+ "span",
1655
1624
  {
1656
- x1: f,
1657
- y1: m,
1658
- x2: N.x,
1659
- y2: N.y,
1660
- stroke: "hsl(var(--border))",
1661
- strokeWidth: 1,
1662
- opacity: 0.3
1663
- },
1664
- b
1665
- );
1666
- }),
1667
- /* @__PURE__ */ a(
1668
- V.polygon,
1669
- {
1670
- points: c ? z : B,
1671
- fill: `hsl(var(${T}) / 0.15)`,
1672
- stroke: `hsl(var(${T}))`,
1673
- strokeWidth: 2,
1674
- initial: !1,
1675
- animate: { points: c ? z : B },
1676
- transition: { duration: 0.8, ease: [0.25, 0.8, 0.25, 1] },
1677
- style: {
1678
- filter: `drop-shadow(0 0 8px hsl(var(${T}) / 0.3))`
1625
+ className: s(
1626
+ "font-mono text-[13px] leading-none",
1627
+ u && "text-primary",
1628
+ f && "text-primary drop-shadow-[0_0_6px_rgba(255,212,41,0.6)]",
1629
+ !u && !f && "text-muted-foreground/40"
1630
+ ),
1631
+ "aria-hidden": "true",
1632
+ children: h
1679
1633
  }
1680
- }
1634
+ ),
1635
+ !g && /* @__PURE__ */ e(
1636
+ "div",
1637
+ {
1638
+ className: s(
1639
+ "flex-1 w-px min-h-6 mt-1",
1640
+ u ? "bg-primary" : "bg-border"
1641
+ )
1642
+ }
1643
+ )
1644
+ ] }),
1645
+ /* @__PURE__ */ c("div", { className: "pb-6 last:pb-0", children: [
1646
+ /* @__PURE__ */ e(
1647
+ "p",
1648
+ {
1649
+ className: s(
1650
+ "font-display text-[11px] uppercase tracking-wider mt-1",
1651
+ f && "text-foreground font-semibold",
1652
+ u && "text-primary",
1653
+ !u && !f && "text-muted-foreground/60"
1654
+ ),
1655
+ children: p.label
1656
+ }
1657
+ ),
1658
+ p.description && /* @__PURE__ */ e("p", { className: "text-[12px] text-muted-foreground/60 mt-0.5", children: p.description })
1659
+ ] })
1660
+ ]
1661
+ },
1662
+ l
1663
+ );
1664
+ })
1665
+ }
1666
+ ) : /* @__PURE__ */ e(
1667
+ "div",
1668
+ {
1669
+ ref: d,
1670
+ role: "list",
1671
+ "aria-label": "Progress steps",
1672
+ className: s("flex items-start w-full min-w-max", o),
1673
+ ...n,
1674
+ children: t.map((p, l) => {
1675
+ const m = ce(l, r), u = m === "complete", f = m === "current", g = l === t.length - 1, h = u || f ? "◆" : "◇", b = u ? "completed" : f ? "current" : "upcoming";
1676
+ return /* @__PURE__ */ c(i.Fragment, { children: [
1677
+ /* @__PURE__ */ c(
1678
+ "div",
1679
+ {
1680
+ role: "listitem",
1681
+ "aria-label": `Step ${l + 1} of ${t.length}: ${p.label}, ${b}`,
1682
+ "aria-current": f ? "step" : void 0,
1683
+ className: "flex flex-col items-center flex-shrink-0",
1684
+ children: [
1685
+ /* @__PURE__ */ e(
1686
+ "span",
1687
+ {
1688
+ className: s(
1689
+ "font-mono text-[13px] leading-none mb-1.5",
1690
+ u && "text-primary",
1691
+ f && "text-primary drop-shadow-[0_0_6px_rgba(255,212,41,0.6)]",
1692
+ !u && !f && "text-muted-foreground/40"
1693
+ ),
1694
+ "aria-hidden": "true",
1695
+ children: h
1696
+ }
1697
+ ),
1698
+ /* @__PURE__ */ e(
1699
+ "p",
1700
+ {
1701
+ className: s(
1702
+ "font-display text-[11px] uppercase tracking-wider mt-1",
1703
+ f && "text-foreground font-semibold",
1704
+ u && "text-primary",
1705
+ !u && !f && "text-muted-foreground/60"
1706
+ ),
1707
+ children: p.label
1708
+ }
1709
+ ),
1710
+ p.description && /* @__PURE__ */ e("p", { className: "text-[12px] text-muted-foreground/60 mt-0.5 text-center", children: p.description })
1711
+ ]
1712
+ }
1713
+ ),
1714
+ !g && /* @__PURE__ */ e(
1715
+ "div",
1716
+ {
1717
+ className: s(
1718
+ "flex-1 h-px self-start mt-[0.45em] mx-2",
1719
+ u ? "bg-primary" : "bg-border"
1720
+ )
1721
+ }
1722
+ )
1723
+ ] }, l);
1724
+ })
1725
+ }
1726
+ )
1727
+ );
1728
+ Sr.displayName = "Stepper";
1729
+ const Z = T(
1730
+ "font-mono text-[12px] w-9 h-9 flex items-center justify-center transition-all border",
1731
+ {
1732
+ variants: {
1733
+ active: {
1734
+ true: "bg-primary text-primary-foreground border-primary font-bold",
1735
+ false: "text-muted-foreground border-border hover:border-primary/40 hover:text-foreground"
1736
+ },
1737
+ disabled: {
1738
+ true: "opacity-40 cursor-not-allowed pointer-events-none",
1739
+ false: ""
1740
+ }
1741
+ },
1742
+ defaultVariants: { active: !1, disabled: !1 }
1743
+ }
1744
+ );
1745
+ function kr(t, r, a) {
1746
+ if (r <= 7) return Array.from({ length: r }, (p, l) => l + 1);
1747
+ const o = Math.max(2, t - a), n = Math.min(r - 1, t + a), d = [1];
1748
+ o > 2 && d.push("...");
1749
+ for (let p = o; p <= n; p++) d.push(p);
1750
+ return n < r - 1 && d.push("..."), d.push(r), d;
1751
+ }
1752
+ const Rr = i.forwardRef(
1753
+ ({
1754
+ totalPages: t,
1755
+ currentPage: r,
1756
+ onPageChange: a,
1757
+ siblingCount: o = 1,
1758
+ className: n,
1759
+ ...d
1760
+ }, p) => {
1761
+ const l = kr(r, t, o), m = r <= 1, u = r >= t;
1762
+ return /* @__PURE__ */ e(
1763
+ "nav",
1764
+ {
1765
+ ref: p,
1766
+ "aria-label": "Pagination",
1767
+ className: s(n),
1768
+ ...d,
1769
+ children: /* @__PURE__ */ c("div", { className: "flex items-center gap-1", children: [
1770
+ /* @__PURE__ */ e(
1771
+ "button",
1772
+ {
1773
+ type: "button",
1774
+ onClick: () => !m && a(r - 1),
1775
+ disabled: m,
1776
+ "aria-label": "Previous page",
1777
+ className: s(
1778
+ Z({
1779
+ active: !1,
1780
+ disabled: m
1781
+ }),
1782
+ "font-display uppercase text-[11px] tracking-wider px-2 w-auto"
1783
+ ),
1784
+ children: "◆ PREV"
1785
+ }
1786
+ ),
1787
+ l.map(
1788
+ (f, g) => f === "..." ? /* @__PURE__ */ e(
1789
+ "span",
1790
+ {
1791
+ className: "w-9 h-9 flex items-center justify-center font-mono text-[12px] text-muted-foreground/40 select-none",
1792
+ "aria-hidden": "true",
1793
+ children: "…"
1794
+ },
1795
+ `ellipsis-${g}`
1796
+ ) : /* @__PURE__ */ e(
1797
+ "button",
1798
+ {
1799
+ type: "button",
1800
+ onClick: () => a(f),
1801
+ "aria-label": `Page ${f}`,
1802
+ "aria-current": f === r ? "page" : void 0,
1803
+ className: s(
1804
+ Z({ active: f === r })
1805
+ ),
1806
+ children: f
1807
+ },
1808
+ f
1809
+ )
1810
+ ),
1811
+ /* @__PURE__ */ e(
1812
+ "button",
1813
+ {
1814
+ type: "button",
1815
+ onClick: () => !u && a(r + 1),
1816
+ disabled: u,
1817
+ "aria-label": "Next page",
1818
+ className: s(
1819
+ Z({
1820
+ active: !1,
1821
+ disabled: u
1822
+ }),
1823
+ "font-display uppercase text-[11px] tracking-wider px-2 w-auto"
1824
+ ),
1825
+ children: "NEXT ◆"
1826
+ }
1827
+ )
1828
+ ] })
1829
+ }
1830
+ );
1831
+ }
1832
+ );
1833
+ Rr.displayName = "Pagination";
1834
+ const Ir = i.forwardRef(
1835
+ ({ items: t, separator: r, className: a, ...o }, n) => /* @__PURE__ */ e(
1836
+ "nav",
1837
+ {
1838
+ ref: n,
1839
+ "aria-label": "Breadcrumb",
1840
+ className: s(a),
1841
+ ...o,
1842
+ children: /* @__PURE__ */ e("ol", { className: "flex items-center gap-2 flex-wrap font-display text-[12px] uppercase tracking-wider", children: t.map((d, p) => {
1843
+ const l = p === t.length - 1;
1844
+ return /* @__PURE__ */ c(i.Fragment, { children: [
1845
+ /* @__PURE__ */ e("li", { children: l || !d.href ? /* @__PURE__ */ e(
1846
+ "span",
1847
+ {
1848
+ "aria-current": l ? "page" : void 0,
1849
+ className: l ? "text-foreground font-semibold" : "text-muted-foreground",
1850
+ children: d.label
1851
+ }
1852
+ ) : /* @__PURE__ */ e(
1853
+ "a",
1854
+ {
1855
+ href: d.href,
1856
+ className: "text-muted-foreground hover:text-primary transition-colors",
1857
+ children: d.label
1858
+ }
1859
+ ) }),
1860
+ !l && /* @__PURE__ */ e(
1861
+ "li",
1862
+ {
1863
+ "aria-hidden": "true",
1864
+ role: "presentation",
1865
+ className: "text-[10px] text-muted-foreground/40 select-none",
1866
+ children: r ?? "›"
1867
+ }
1868
+ )
1869
+ ] }, p);
1870
+ }) })
1871
+ }
1872
+ )
1873
+ );
1874
+ Ir.displayName = "Breadcrumb";
1875
+ const Ar = T(
1876
+ "inline-flex items-center border border-input bg-transparent",
1877
+ {
1878
+ variants: {
1879
+ size: {
1880
+ sm: "h-8",
1881
+ md: "h-9",
1882
+ lg: "h-10"
1883
+ }
1884
+ },
1885
+ defaultVariants: { size: "md" }
1886
+ }
1887
+ ), Cr = i.forwardRef(
1888
+ ({
1889
+ value: t,
1890
+ defaultValue: r,
1891
+ onChange: a,
1892
+ min: o,
1893
+ max: n,
1894
+ step: d = 1,
1895
+ size: p = "md",
1896
+ className: l,
1897
+ disabled: m,
1898
+ ...u
1899
+ }, f) => {
1900
+ const g = t !== void 0, [h, b] = i.useState(
1901
+ r ?? 0
1902
+ ), y = g ? t : h, N = (A) => Math.min(n ?? 1 / 0, Math.max(o ?? -1 / 0, A)), x = (A) => {
1903
+ const V = N(A);
1904
+ g || b(V), a == null || a(V);
1905
+ }, v = () => x(y - d), k = () => x(y + d), _ = o !== void 0 && y <= o, R = n !== void 0 && y >= n, G = "px-2 font-mono text-[13px] text-muted-foreground transition-colors select-none";
1906
+ return /* @__PURE__ */ c("div", { className: s(Ar({ size: p }), l), children: [
1907
+ /* @__PURE__ */ e(
1908
+ "button",
1909
+ {
1910
+ type: "button",
1911
+ onClick: v,
1912
+ disabled: m || _,
1913
+ "aria-label": "Decrement",
1914
+ className: s(
1915
+ G,
1916
+ "h-full border-r border-input",
1917
+ (m || _) && "opacity-40 cursor-not-allowed",
1918
+ !(m || _) && "hover:text-foreground"
1919
+ ),
1920
+ children: "−"
1921
+ }
1922
+ ),
1923
+ /* @__PURE__ */ e(
1924
+ "input",
1925
+ {
1926
+ ref: f,
1927
+ type: "number",
1928
+ value: y,
1929
+ disabled: m,
1930
+ onChange: (A) => {
1931
+ const V = parseFloat(A.target.value);
1932
+ isNaN(V) || x(V);
1933
+ },
1934
+ onKeyDown: (A) => {
1935
+ A.key === "ArrowUp" ? (A.preventDefault(), k()) : A.key === "ArrowDown" && (A.preventDefault(), v());
1936
+ },
1937
+ className: s(
1938
+ "w-16 h-full text-center font-mono text-[13px] text-foreground bg-transparent",
1939
+ "border-x border-input outline-none",
1940
+ "[appearance:textfield] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none",
1941
+ m && "opacity-40 cursor-not-allowed"
1942
+ ),
1943
+ ...u
1944
+ }
1945
+ ),
1946
+ /* @__PURE__ */ e(
1947
+ "button",
1948
+ {
1949
+ type: "button",
1950
+ onClick: k,
1951
+ disabled: m || R,
1952
+ "aria-label": "Increment",
1953
+ className: s(
1954
+ G,
1955
+ "h-full border-l border-input",
1956
+ (m || R) && "opacity-40 cursor-not-allowed",
1957
+ !(m || R) && "hover:text-foreground"
1958
+ ),
1959
+ children: "+"
1960
+ }
1961
+ )
1962
+ ] });
1963
+ }
1964
+ );
1965
+ Cr.displayName = "NumberInput";
1966
+ const Dr = {
1967
+ low: {
1968
+ duration: "6s",
1969
+ clipTop: "15% 0 70% 0",
1970
+ clipBot: "65% 0 15% 0",
1971
+ offset: 1,
1972
+ defaultInterval: 4e3
1973
+ },
1974
+ medium: {
1975
+ duration: "3s",
1976
+ clipTop: "20% 0 50% 0",
1977
+ clipBot: "50% 0 20% 0",
1978
+ offset: 2,
1979
+ defaultInterval: 2500
1980
+ },
1981
+ high: {
1982
+ duration: "1.2s",
1983
+ clipTop: "10% 0 60% 0",
1984
+ clipBot: "55% 0 10% 0",
1985
+ offset: 4,
1986
+ defaultInterval: 1200
1987
+ }
1988
+ }, Er = i.forwardRef(
1989
+ ({
1990
+ children: t,
1991
+ className: r,
1992
+ intensity: a = "medium",
1993
+ continuous: o = !1,
1994
+ continuousInterval: n,
1995
+ ...d
1996
+ }, p) => {
1997
+ const l = Dr[a], m = n ?? l.defaultInterval, [u, f] = i.useState(!1);
1998
+ i.useEffect(() => {
1999
+ if (!o) return;
2000
+ const h = setInterval(() => {
2001
+ f(!0);
2002
+ const b = setTimeout(
2003
+ () => f(!1),
2004
+ parseFloat(l.duration) * 1e3
2005
+ );
2006
+ return () => clearTimeout(b);
2007
+ }, m);
2008
+ return () => clearInterval(h);
2009
+ }, [o, m, l.duration]);
2010
+ const g = u || !o ? "animate-glitch" : "";
2011
+ return /* @__PURE__ */ c(
2012
+ "span",
2013
+ {
2014
+ ref: p,
2015
+ className: s("relative inline-block", r),
2016
+ ...d,
2017
+ children: [
2018
+ /* @__PURE__ */ e("span", { className: "relative z-10", children: t }),
2019
+ /* @__PURE__ */ e(
2020
+ "span",
2021
+ {
2022
+ "aria-hidden": !0,
2023
+ className: s("absolute inset-0 text-ef-cyan opacity-70", g),
2024
+ style: {
2025
+ clipPath: `inset(${l.clipTop})`,
2026
+ transform: `translate(-${l.offset}px, 0)`,
2027
+ animationDuration: l.duration
2028
+ },
2029
+ children: t
2030
+ }
2031
+ ),
2032
+ /* @__PURE__ */ e(
2033
+ "span",
2034
+ {
2035
+ "aria-hidden": !0,
2036
+ className: s("absolute inset-0 text-ef-red opacity-70", g),
2037
+ style: {
2038
+ clipPath: `inset(${l.clipBot})`,
2039
+ transform: `translate(${l.offset}px, 0)`,
2040
+ animationDuration: l.duration,
2041
+ animationDelay: "0.1s"
2042
+ },
2043
+ children: t
2044
+ }
2045
+ )
2046
+ ]
2047
+ }
2048
+ );
2049
+ }
2050
+ );
2051
+ Er.displayName = "GlitchText";
2052
+ const _r = { sm: 16, md: 28, lg: 44 }, Vr = i.forwardRef(({ size: t = "md", label: r, className: a }, o) => {
2053
+ const n = _r[t];
2054
+ return /* @__PURE__ */ c(
2055
+ "div",
2056
+ {
2057
+ ref: o,
2058
+ className: `flex flex-col items-center gap-3${a ? ` ${a}` : ""}`,
2059
+ children: [
2060
+ /* @__PURE__ */ e("div", { className: "relative", style: { width: n * 2, height: n * 2 }, children: [0, 1, 2].map((d) => /* @__PURE__ */ e(
2061
+ "div",
2062
+ {
2063
+ className: "absolute inset-0 border-2 border-primary",
2064
+ style: {
2065
+ transform: `rotate(45deg) scale(${1 - d * 0.25})`,
2066
+ animation: `diamondSpin ${1.2 + d * 0.4}s linear infinite${d === 1 ? " reverse" : ""}`,
2067
+ opacity: 1 - d * 0.25
2068
+ }
2069
+ },
2070
+ d
2071
+ )) }),
2072
+ r && /* @__PURE__ */ e("span", { className: "font-mono text-xs text-muted-foreground tracking-[0.15em] uppercase", children: r })
2073
+ ]
2074
+ }
2075
+ );
2076
+ });
2077
+ Vr.displayName = "DiamondLoader";
2078
+ const Or = {
2079
+ online: "ONLINE",
2080
+ warning: "CAUTION",
2081
+ offline: "OFFLINE",
2082
+ scanning: "SCANNING"
2083
+ }, Pr = {
2084
+ online: "bg-ef-green",
2085
+ warning: "bg-ef-yellow",
2086
+ offline: "bg-ef-red",
2087
+ scanning: "bg-ef-cyan animate-pulse"
2088
+ }, Mr = i.forwardRef(
2089
+ ({
2090
+ title: t,
2091
+ status: r = "online",
2092
+ children: a,
2093
+ className: o,
2094
+ headerAction: n,
2095
+ collapsible: d = !1,
2096
+ defaultCollapsed: p = !1,
2097
+ collapsed: l,
2098
+ onCollapseChange: m,
2099
+ ...u
2100
+ }, f) => {
2101
+ const [g, h] = i.useState(p), b = l !== void 0, y = b ? l : g, N = () => {
2102
+ if (!d) return;
2103
+ const x = !y;
2104
+ b || h(x), m == null || m(x);
2105
+ };
2106
+ return /* @__PURE__ */ c(
2107
+ "div",
2108
+ {
2109
+ ref: f,
2110
+ className: s(
2111
+ "relative border border-border bg-surface-1 scanline-overlay",
2112
+ o
2113
+ ),
2114
+ ...u,
2115
+ children: [
2116
+ /* @__PURE__ */ c(
2117
+ "div",
2118
+ {
2119
+ className: s(
2120
+ "flex items-center justify-between px-4 py-2.5 border-b border-border bg-surface-0",
2121
+ d && "cursor-pointer select-none"
2122
+ ),
2123
+ onClick: N,
2124
+ children: [
2125
+ /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [
2126
+ /* @__PURE__ */ e(je, { className: "w-3.5 h-3.5 text-primary" }),
2127
+ /* @__PURE__ */ e("span", { className: "font-display text-[11px] font-bold tracking-[0.15em] uppercase text-foreground", children: t }),
2128
+ d && /* @__PURE__ */ e("span", { className: "font-mono text-[14px] text-primary/60 ml-1 leading-none", children: y ? "+" : "−" })
2129
+ ] }),
2130
+ /* @__PURE__ */ c("div", { className: "flex items-center gap-3", children: [
2131
+ /* @__PURE__ */ c("div", { className: "flex items-center gap-2", children: [
2132
+ /* @__PURE__ */ e(
2133
+ "div",
2134
+ {
2135
+ className: s("w-2 h-2", Pr[r]),
2136
+ style: {
2137
+ clipPath: "polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)"
2138
+ }
2139
+ }
2140
+ ),
2141
+ /* @__PURE__ */ e("span", { className: "font-mono text-[10px] tracking-[0.1em] text-muted-foreground", children: Or[r] })
2142
+ ] }),
2143
+ n && /* @__PURE__ */ e(
2144
+ "div",
2145
+ {
2146
+ className: "flex items-center",
2147
+ onClick: (x) => x.stopPropagation(),
2148
+ children: n
2149
+ }
2150
+ )
2151
+ ] })
2152
+ ]
2153
+ }
2154
+ ),
2155
+ /* @__PURE__ */ e("div", { className: "absolute top-0 left-0 w-6 h-6 border-t-2 border-l-2 border-primary/40 pointer-events-none" }),
2156
+ /* @__PURE__ */ e("div", { className: "absolute top-0 right-0 w-6 h-6 border-t-2 border-r-2 border-primary/40 pointer-events-none" }),
2157
+ /* @__PURE__ */ e("div", { className: "absolute bottom-0 left-0 w-6 h-6 border-b-2 border-l-2 border-primary/40 pointer-events-none" }),
2158
+ /* @__PURE__ */ e("div", { className: "absolute bottom-0 right-0 w-6 h-6 border-b-2 border-r-2 border-primary/40 pointer-events-none" }),
2159
+ /* @__PURE__ */ e(
2160
+ "div",
2161
+ {
2162
+ className: s(
2163
+ "overflow-hidden transition-all duration-300",
2164
+ y ? "max-h-0" : "max-h-[9999px]"
1681
2165
  ),
1682
- L.map((u, b) => /* @__PURE__ */ a(
1683
- V.circle,
2166
+ children: /* @__PURE__ */ e("div", { className: "p-5", children: a })
2167
+ }
2168
+ )
2169
+ ]
2170
+ }
2171
+ );
2172
+ }
2173
+ );
2174
+ Mr.displayName = "TacticalPanel";
2175
+ const Lr = i.forwardRef(
2176
+ ({ title: t, subtitle: r, icon: a, value: o, className: n }, d) => {
2177
+ const [p, l] = i.useState(!1);
2178
+ return /* @__PURE__ */ c(
2179
+ "div",
2180
+ {
2181
+ ref: d,
2182
+ className: `relative clip-corner border border-border bg-surface-1 p-6 overflow-hidden group cursor-pointer transition-all duration-500 hover:border-primary/30${n ? ` ${n}` : ""}`,
2183
+ onMouseEnter: () => l(!0),
2184
+ onMouseLeave: () => l(!1),
2185
+ children: [
2186
+ /* @__PURE__ */ e(
2187
+ "div",
2188
+ {
2189
+ className: "absolute left-0 right-0 h-px bg-gradient-to-r from-transparent via-primary/60 to-transparent pointer-events-none transition-all",
2190
+ style: {
2191
+ top: p ? "100%" : "-10%",
2192
+ opacity: p ? 1 : 0,
2193
+ transitionDuration: "2000ms"
2194
+ }
2195
+ }
2196
+ ),
2197
+ /* @__PURE__ */ e(
2198
+ "div",
2199
+ {
2200
+ className: "absolute inset-0 pointer-events-none transition-opacity duration-500",
2201
+ style: {
2202
+ background: "linear-gradient(135deg, transparent 0%, hsl(var(--primary) / 0.03) 40%, transparent 60%)",
2203
+ opacity: p ? 1 : 0
2204
+ }
2205
+ }
2206
+ ),
2207
+ /* @__PURE__ */ c("div", { className: "relative z-10", children: [
2208
+ /* @__PURE__ */ e(a, { className: "w-5 h-5 text-primary mb-4 group-hover:drop-shadow-[0_0_8px_hsl(var(--primary)/0.5)] transition-all" }),
2209
+ o && /* @__PURE__ */ e("p", { className: "font-display text-3xl font-bold text-primary mb-1", children: o }),
2210
+ /* @__PURE__ */ e("h4", { className: "font-display text-sm font-bold tracking-[0.05em] uppercase text-foreground mb-1", children: t }),
2211
+ /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground", children: r })
2212
+ ] }),
2213
+ /* @__PURE__ */ e("div", { className: "absolute bottom-3 right-3 text-primary/20 group-hover:text-primary/60 transition-colors text-xs", children: "◆" })
2214
+ ]
2215
+ }
2216
+ );
2217
+ }
2218
+ );
2219
+ Lr.displayName = "HoloCard";
2220
+ const pe = {
2221
+ 1: 2e3,
2222
+ 2: 1500,
2223
+ 3: 1e3,
2224
+ 4: 600,
2225
+ 5: 300
2226
+ }, $r = {
2227
+ mono: "text-muted-foreground",
2228
+ classified: "text-primary",
2229
+ transmission: "text-ef-cyan"
2230
+ }, Fr = {
2231
+ system: "text-muted-foreground",
2232
+ data: "text-ef-cyan",
2233
+ warning: "text-ef-orange",
2234
+ classified: "text-primary"
2235
+ }, Br = [
2236
+ "[SYS] Initializing ENDFIELD protocol...",
2237
+ "[NET] Connection established — latency: 12ms",
2238
+ "[SEC] Authentication verified ◆ Level: ALPHA",
2239
+ "[DAT] Loading design tokens: 94 variables mapped",
2240
+ "[GPU] Render pipeline: Optimized (60fps locked)",
2241
+ "[SYS] Component registry: 70 modules online",
2242
+ "[NET] Sync complete — all nodes operational",
2243
+ "[DAT] Color system: HSL-based, 9 neutrals, 9 accents",
2244
+ "[SEC] Encryption: AES-256 ◆ Status: ACTIVE",
2245
+ "[SYS] ENDFIELD DESIGN SYSTEM v2.0 ◆ READY"
2246
+ ];
2247
+ function me(t) {
2248
+ return typeof t == "string" ? t : t.text;
2249
+ }
2250
+ function jr(t, r) {
2251
+ if (r) return $r[r];
2252
+ if (typeof t != "string" && t.type)
2253
+ return Fr[t.type] ?? "text-muted-foreground";
2254
+ const a = typeof t == "string" ? t : t.text;
2255
+ return a.includes("[SEC]") ? "text-ef-green" : a.includes("[NET]") ? "text-ef-blue" : a.includes("[DAT]") ? "text-ef-cyan" : a.includes("[GPU]") ? "text-ef-purple" : "text-muted-foreground";
2256
+ }
2257
+ const zr = i.forwardRef(
2258
+ ({
2259
+ messages: t = Br,
2260
+ speed: r = 3,
2261
+ messageType: a,
2262
+ className: o,
2263
+ ...n
2264
+ }, d) => {
2265
+ const p = pe[r] ?? pe[3], [l, m] = i.useState([]), u = i.useRef(null);
2266
+ return i.useEffect(() => {
2267
+ let f = 0;
2268
+ const g = setInterval(() => {
2269
+ m((h) => {
2270
+ const b = [...h, t[f % t.length]];
2271
+ return b.length > 8 ? b.slice(-8) : b;
2272
+ }), f++;
2273
+ }, p);
2274
+ return () => clearInterval(g);
2275
+ }, [t, p]), i.useEffect(() => {
2276
+ u.current && (u.current.scrollTop = u.current.scrollHeight);
2277
+ }, [l]), /* @__PURE__ */ c(
2278
+ "div",
2279
+ {
2280
+ ref: d,
2281
+ className: s(
2282
+ "border border-border bg-background clip-corner overflow-hidden",
2283
+ o
2284
+ ),
2285
+ ...n,
2286
+ children: [
2287
+ /* @__PURE__ */ c("div", { className: "flex items-center gap-2 px-4 py-2 border-b border-border bg-surface-0", children: [
2288
+ /* @__PURE__ */ e(ze, { className: "w-3.5 h-3.5 text-primary" }),
2289
+ /* @__PURE__ */ e("span", { className: "font-mono text-[10px] tracking-[0.1em] text-muted-foreground uppercase", children: "LIVE FEED" }),
2290
+ /* @__PURE__ */ c("div", { className: "ml-auto flex items-center gap-1.5", children: [
2291
+ /* @__PURE__ */ e(
2292
+ "div",
1684
2293
  {
1685
- cx: f,
1686
- cy: m,
1687
- r: 4,
1688
- fill: `hsl(var(${T}))`,
1689
- stroke: "hsl(var(--background))",
1690
- strokeWidth: 2,
1691
- initial: !1,
1692
- animate: { cx: c ? u.x : f, cy: c ? u.y : m },
1693
- transition: { duration: 0.8, delay: b * 0.05 },
2294
+ className: "w-1.5 h-1.5 bg-ef-green animate-pulse",
1694
2295
  style: {
1695
- filter: `drop-shadow(0 0 4px hsl(var(${T}) / 0.5))`
2296
+ clipPath: "polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)"
1696
2297
  }
1697
- },
1698
- b
1699
- )),
1700
- e.map((u, b) => {
1701
- const N = C(b, g + 20);
1702
- return /* @__PURE__ */ a(
1703
- "text",
2298
+ }
2299
+ ),
2300
+ /* @__PURE__ */ e("span", { className: "font-mono text-[10px] text-ef-green", children: "ACTIVE" })
2301
+ ] })
2302
+ ] }),
2303
+ /* @__PURE__ */ c(
2304
+ "div",
2305
+ {
2306
+ ref: u,
2307
+ className: "p-4 h-48 overflow-y-auto font-mono text-xs space-y-1",
2308
+ children: [
2309
+ /* @__PURE__ */ e(We, { children: l.map((f, g) => /* @__PURE__ */ e(
2310
+ te.div,
1704
2311
  {
1705
- x: N.x,
1706
- y: N.y,
1707
- textAnchor: "middle",
1708
- dominantBaseline: "middle",
1709
- className: "font-display text-[9px] font-bold tracking-[0.1em] uppercase",
1710
- fill: "hsl(var(--muted-foreground))",
1711
- children: u.label
2312
+ initial: { opacity: 0, x: -10 },
2313
+ animate: { opacity: 1, x: 0 },
2314
+ className: jr(f, a),
2315
+ children: me(f)
1712
2316
  },
1713
- b
1714
- );
1715
- })
1716
- ]
1717
- }
1718
- )
2317
+ `${me(f)}-${g}`
2318
+ )) }),
2319
+ /* @__PURE__ */ e("span", { className: "inline-block w-2 h-4 bg-primary animate-cursor-blink" })
2320
+ ]
2321
+ }
2322
+ )
2323
+ ]
2324
+ }
2325
+ );
2326
+ }
2327
+ );
2328
+ zr.displayName = "DataStream";
2329
+ const Gr = T(
2330
+ "inline-flex items-center gap-1.5 clip-corner-sm border px-3 py-1 font-display text-[10px] font-bold tracking-[0.15em] uppercase",
2331
+ {
2332
+ variants: {
2333
+ variant: {
2334
+ default: "border-primary/40 text-primary bg-primary/10",
2335
+ success: "border-ef-green/40 text-ef-green bg-ef-green/10",
2336
+ warning: "border-ef-yellow/40 text-ef-yellow bg-ef-yellow/10",
2337
+ danger: "border-ef-red/40 text-ef-red bg-ef-red/10",
2338
+ info: "border-ef-cyan/40 text-ef-cyan bg-ef-cyan/10"
2339
+ }
2340
+ },
2341
+ defaultVariants: {
2342
+ variant: "default"
2343
+ }
2344
+ }
2345
+ ), Ur = i.forwardRef(({ variant: t, className: r, children: a, ...o }, n) => /* @__PURE__ */ c(
2346
+ "span",
2347
+ {
2348
+ ref: n,
2349
+ className: s(Gr({ variant: t }), r),
2350
+ ...o,
2351
+ children: [
2352
+ /* @__PURE__ */ e("span", { style: { fontSize: "6px" }, children: "◆" }),
2353
+ a
2354
+ ]
2355
+ }
2356
+ ));
2357
+ Ur.displayName = "TacticalBadge";
2358
+ const Hr = {
2359
+ caution: {
2360
+ border: "border-ef-yellow/30",
2361
+ bg: "bg-ef-yellow/5",
2362
+ icon: "text-ef-yellow",
2363
+ label: "CAUTION"
2364
+ },
2365
+ alert: {
2366
+ border: "border-ef-orange/30",
2367
+ bg: "bg-ef-orange/5",
2368
+ icon: "text-ef-orange",
2369
+ label: "ALERT"
2370
+ },
2371
+ critical: {
2372
+ border: "border-ef-red/30",
2373
+ bg: "bg-ef-red/5",
2374
+ icon: "text-ef-red",
2375
+ label: "CRITICAL"
2376
+ }
2377
+ }, Yr = i.forwardRef(({ level: t = "caution", children: r, className: a }, o) => {
2378
+ const n = Hr[t];
2379
+ return /* @__PURE__ */ c(
2380
+ "div",
2381
+ {
2382
+ ref: o,
2383
+ className: `clip-corner border ${n.border} ${n.bg} p-4 flex items-start gap-3${a ? ` ${a}` : ""}`,
2384
+ children: [
2385
+ /* @__PURE__ */ e(Ge, { className: `w-5 h-5 ${n.icon} shrink-0 mt-0.5` }),
2386
+ /* @__PURE__ */ c("div", { children: [
2387
+ /* @__PURE__ */ e(
2388
+ "span",
2389
+ {
2390
+ className: `font-display text-[11px] font-bold tracking-[0.15em] ${n.icon}`,
2391
+ children: n.label
2392
+ }
2393
+ ),
2394
+ /* @__PURE__ */ e("p", { className: "text-sm text-muted-foreground mt-1", children: r })
2395
+ ] })
2396
+ ]
2397
+ }
2398
+ );
2399
+ });
2400
+ Yr.displayName = "WarningBanner";
2401
+ const Wr = i.forwardRef(
2402
+ ({ label: t, className: r }, a) => /* @__PURE__ */ c(
2403
+ "div",
2404
+ {
2405
+ ref: a,
2406
+ className: `relative flex items-center gap-4 py-2${r ? ` ${r}` : ""}`,
2407
+ children: [
2408
+ /* @__PURE__ */ e("div", { className: "flex-1 h-px bg-gradient-to-r from-transparent via-primary/30 to-transparent" }),
2409
+ t && /* @__PURE__ */ c("span", { className: "font-display text-[10px] font-bold tracking-[0.2em] uppercase text-primary/60 flex items-center gap-2", children: [
2410
+ /* @__PURE__ */ e("span", { style: { fontSize: "6px" }, children: "◆" }),
2411
+ " ",
2412
+ t,
2413
+ " ",
2414
+ /* @__PURE__ */ e("span", { style: { fontSize: "6px" }, children: "◆" })
2415
+ ] }),
2416
+ /* @__PURE__ */ e("div", { className: "flex-1 h-px bg-gradient-to-r from-transparent via-primary/30 to-transparent" })
2417
+ ]
2418
+ }
2419
+ )
2420
+ );
2421
+ Wr.displayName = "ScanDivider";
2422
+ const Kr = i.forwardRef(({ label: t, value: r, unit: a, className: o }, n) => /* @__PURE__ */ c(
2423
+ "div",
2424
+ {
2425
+ ref: n,
2426
+ className: `inline-flex items-center border border-border bg-surface-0 overflow-hidden${o ? ` ${o}` : ""}`,
2427
+ children: [
2428
+ /* @__PURE__ */ e("span", { className: "font-mono text-[10px] tracking-[0.1em] uppercase text-muted-foreground bg-surface-2 px-2.5 py-1.5 border-r border-border", children: t }),
2429
+ /* @__PURE__ */ e("span", { className: "font-mono text-xs text-primary px-2.5 py-1.5 font-bold", children: r }),
2430
+ a && /* @__PURE__ */ e("span", { className: "font-mono text-[10px] text-muted-foreground pr-2.5", children: a })
2431
+ ]
2432
+ }
2433
+ ));
2434
+ Kr.displayName = "CoordinateTag";
2435
+ function L(t, r, a, o, n) {
2436
+ return {
2437
+ x: t + a * Math.sin(n * o),
2438
+ y: r - a * Math.cos(n * o)
2439
+ };
2440
+ }
2441
+ function Q(t) {
2442
+ return t.map((r) => `${r.x},${r.y}`).join(" ");
2443
+ }
2444
+ const qr = i.forwardRef(
2445
+ ({
2446
+ data: t,
2447
+ color: r = "primary",
2448
+ axes: a,
2449
+ datasets: o,
2450
+ showLegend: n = !1,
2451
+ size: d = 260,
2452
+ className: p,
2453
+ ...l
2454
+ }, m) => {
2455
+ const u = i.useRef(null), f = Ke(u, { once: !0 }), g = i.useCallback(
2456
+ (w) => {
2457
+ u.current = w, typeof m == "function" ? m(w) : m && (m.current = w);
2458
+ },
2459
+ [m]
2460
+ ), h = a ?? (t == null ? void 0 : t.map((w) => ({ label: w.label, min: 0, max: 100 }))) ?? [], b = o ?? (t ? [
2461
+ {
2462
+ label: void 0,
2463
+ values: t.map((w) => w.value),
2464
+ color: r === "cyan" ? "hsl(var(--ef-cyan))" : "hsl(var(--primary))"
2465
+ }
2466
+ ] : []), y = h.length;
2467
+ if (y < 3) return null;
2468
+ const N = d / 2, x = d / 2, v = d * 0.38, k = 4, _ = Math.PI * 2 / y, R = Array.from({ length: k }, (w, S) => {
2469
+ const I = v * ((S + 1) / k);
2470
+ return Q(
2471
+ h.map((O, C) => L(N, x, I, _, C))
2472
+ );
2473
+ }), G = h.map(
2474
+ (w, S) => L(N, x, v, _, S)
2475
+ ), A = b.map((w) => {
2476
+ const S = h.map((I, O) => {
2477
+ const C = I.min ?? 0, P = I.max ?? 100, U = P > C ? (w.values[O] - C) / (P - C) : 0;
2478
+ return L(
2479
+ N,
2480
+ x,
2481
+ Math.max(0, Math.min(1, U)) * v,
2482
+ _,
2483
+ O
2484
+ );
2485
+ });
2486
+ return {
2487
+ ds: w,
2488
+ path: Q(S),
2489
+ center: Q(h.map(() => ({ x: N, y: x })))
2490
+ };
2491
+ }), V = [
2492
+ "hsl(var(--primary))",
2493
+ "hsl(var(--ef-blue))",
2494
+ "hsl(var(--ef-green))"
2495
+ ];
2496
+ return /* @__PURE__ */ c(
2497
+ "div",
2498
+ {
2499
+ ref: g,
2500
+ className: s("flex flex-col items-center w-full", p),
2501
+ ...l,
2502
+ children: [
2503
+ /* @__PURE__ */ c(
2504
+ "svg",
2505
+ {
2506
+ viewBox: `0 0 ${d} ${d}`,
2507
+ className: "w-full max-w-[260px] h-auto overflow-visible",
2508
+ children: [
2509
+ R.map((w, S) => /* @__PURE__ */ e(
2510
+ "polygon",
2511
+ {
2512
+ points: w,
2513
+ fill: "none",
2514
+ stroke: "hsl(var(--border))",
2515
+ strokeWidth: 1,
2516
+ opacity: 0.5
2517
+ },
2518
+ S
2519
+ )),
2520
+ G.map((w, S) => /* @__PURE__ */ e(
2521
+ "line",
2522
+ {
2523
+ x1: N,
2524
+ y1: x,
2525
+ x2: w.x,
2526
+ y2: w.y,
2527
+ stroke: "hsl(var(--border))",
2528
+ strokeWidth: 1,
2529
+ opacity: 0.3
2530
+ },
2531
+ S
2532
+ )),
2533
+ A.map(({ ds: w, path: S, center: I }, O) => {
2534
+ const C = w.color ?? V[O % V.length], P = w.fillOpacity ?? 0.15;
2535
+ return /* @__PURE__ */ e(
2536
+ te.polygon,
2537
+ {
2538
+ points: f ? S : I,
2539
+ fill: C,
2540
+ fillOpacity: P,
2541
+ stroke: C,
2542
+ strokeWidth: 2,
2543
+ initial: !1,
2544
+ animate: { points: f ? S : I },
2545
+ transition: {
2546
+ duration: 0.8,
2547
+ ease: [0.25, 0.8, 0.25, 1],
2548
+ delay: O * 0.1
2549
+ },
2550
+ style: {
2551
+ filter: `drop-shadow(0 0 8px ${C.replace(")", " / 0.3)")})`
2552
+ }
2553
+ },
2554
+ O
2555
+ );
2556
+ }),
2557
+ A[0] && (() => {
2558
+ const { ds: w, path: S } = A[0], I = w.color ?? V[0];
2559
+ return h.map((O, C) => {
2560
+ const P = O.min ?? 0, U = O.max ?? 100, Me = U > P ? (w.values[C] - P) / (U - P) : 0, ae = L(
2561
+ N,
2562
+ x,
2563
+ Math.max(0, Math.min(1, Me)) * v,
2564
+ _,
2565
+ C
2566
+ );
2567
+ return /* @__PURE__ */ e(
2568
+ te.circle,
2569
+ {
2570
+ cx: N,
2571
+ cy: x,
2572
+ r: 4,
2573
+ fill: I,
2574
+ stroke: "hsl(var(--background))",
2575
+ strokeWidth: 2,
2576
+ initial: !1,
2577
+ animate: {
2578
+ cx: f ? ae.x : N,
2579
+ cy: f ? ae.y : x
2580
+ },
2581
+ transition: { duration: 0.8, delay: C * 0.05 },
2582
+ style: {
2583
+ filter: `drop-shadow(0 0 4px ${I.replace(")", " / 0.5)")})`
2584
+ }
2585
+ },
2586
+ C
2587
+ );
2588
+ });
2589
+ })(),
2590
+ h.map((w, S) => {
2591
+ const I = L(N, x, v + 20, _, S);
2592
+ return /* @__PURE__ */ e(
2593
+ "text",
2594
+ {
2595
+ x: I.x,
2596
+ y: I.y,
2597
+ textAnchor: "middle",
2598
+ dominantBaseline: "middle",
2599
+ className: "font-display text-[9px] font-bold tracking-[0.1em] uppercase",
2600
+ fill: "hsl(var(--muted-foreground))",
2601
+ children: w.label
2602
+ },
2603
+ S
2604
+ );
2605
+ })
2606
+ ]
2607
+ }
2608
+ ),
2609
+ n && b.some((w) => w.label) && /* @__PURE__ */ e("div", { className: "flex items-center gap-4 mt-3", children: b.map((w, S) => {
2610
+ if (!w.label) return null;
2611
+ const I = w.color ?? V[S % V.length];
2612
+ return /* @__PURE__ */ c("div", { className: "flex items-center gap-1.5", children: [
2613
+ /* @__PURE__ */ e(
2614
+ "span",
2615
+ {
2616
+ className: "inline-block w-2.5 h-2.5",
2617
+ style: { backgroundColor: I }
2618
+ }
2619
+ ),
2620
+ /* @__PURE__ */ e("span", { className: "font-mono text-[11px] text-muted-foreground uppercase tracking-wider", children: w.label })
2621
+ ] }, S);
2622
+ }) })
2623
+ ]
1719
2624
  }
1720
2625
  );
1721
2626
  }
1722
2627
  );
1723
- qt.displayName = "RadarChart";
1724
- const Qt = n.forwardRef(
2628
+ qr.displayName = "RadarChart";
2629
+ const fe = {
2630
+ sm: "w-5 h-5",
2631
+ md: "w-8 h-8",
2632
+ lg: "w-12 h-12"
2633
+ }, Xr = i.forwardRef(
1725
2634
  ({
1726
- children: e,
1727
- systemLabel: t = "SYS::ENDFIELD v2.0",
1728
- lat: r = "LAT 37.7749°N",
2635
+ children: t,
2636
+ systemLabel: r = "SYS::ENDFIELD v2.0",
2637
+ lat: a = "LAT 37.7749°N",
1729
2638
  lon: o = "LON 122.4194°W",
1730
- showCoords: s = !0,
2639
+ showCoords: n = !0,
1731
2640
  showCrosshair: d = !0,
1732
- className: c
1733
- }, p) => {
1734
- const [f, m] = n.useState("");
1735
- return n.useEffect(() => {
1736
- const g = () => m((/* @__PURE__ */ new Date()).toLocaleTimeString("en-GB"));
1737
- g();
1738
- const w = setInterval(g, 1e3);
1739
- return () => clearInterval(w);
1740
- }, []), /* @__PURE__ */ l(
2641
+ showScanlines: p = !0,
2642
+ showNoise: l = !1,
2643
+ bracketSize: m = "md",
2644
+ className: u,
2645
+ ...f
2646
+ }, g) => {
2647
+ const [h, b] = i.useState("");
2648
+ i.useEffect(() => {
2649
+ const N = () => b((/* @__PURE__ */ new Date()).toLocaleTimeString("en-GB"));
2650
+ N();
2651
+ const x = setInterval(N, 1e3);
2652
+ return () => clearInterval(x);
2653
+ }, []);
2654
+ const y = fe[m] ?? fe.md;
2655
+ return /* @__PURE__ */ c(
1741
2656
  "div",
1742
2657
  {
1743
- ref: p,
1744
- className: `relative border border-border bg-surface-0 aspect-video flex items-center justify-center overflow-hidden${c ? ` ${c}` : ""}`,
2658
+ ref: g,
2659
+ className: s(
2660
+ "relative border border-border bg-surface-0 aspect-video flex items-center justify-center overflow-hidden",
2661
+ u
2662
+ ),
2663
+ ...f,
1745
2664
  children: [
1746
- /* @__PURE__ */ a("div", { className: "absolute inset-0 scanline-overlay" }),
2665
+ p && /* @__PURE__ */ e("div", { className: "absolute inset-0 scanline-overlay pointer-events-none" }),
2666
+ l && /* @__PURE__ */ e(
2667
+ "div",
2668
+ {
2669
+ className: "absolute inset-0 pointer-events-none noise-overlay",
2670
+ style: {
2671
+ backgroundImage: `url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E")`,
2672
+ backgroundRepeat: "repeat",
2673
+ backgroundSize: "200px 200px",
2674
+ opacity: 0.6
2675
+ }
2676
+ }
2677
+ ),
1747
2678
  [
1748
- "top-3 left-3 border-t-2 border-l-2",
1749
- "top-3 right-3 border-t-2 border-r-2",
1750
- "bottom-3 left-3 border-b-2 border-l-2",
1751
- "bottom-3 right-3 border-b-2 border-r-2"
1752
- ].map((g, w) => /* @__PURE__ */ a(
2679
+ ["top-3 left-3", "border-t-2 border-l-2"],
2680
+ ["top-3 right-3", "border-t-2 border-r-2"],
2681
+ ["bottom-3 left-3", "border-b-2 border-l-2"],
2682
+ ["bottom-3 right-3", "border-b-2 border-r-2"]
2683
+ ].map(([N, x], v) => /* @__PURE__ */ e(
1753
2684
  "div",
1754
2685
  {
1755
- className: `absolute w-8 h-8 ${g} border-primary/40 pointer-events-none`
2686
+ className: s(
2687
+ "absolute border-primary/40 pointer-events-none",
2688
+ y,
2689
+ N,
2690
+ x
2691
+ )
1756
2692
  },
1757
- w
2693
+ v
1758
2694
  )),
1759
- d && /* @__PURE__ */ l("div", { className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-none", children: [
1760
- /* @__PURE__ */ a(
2695
+ d && /* @__PURE__ */ c("div", { className: "absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 pointer-events-none", children: [
2696
+ /* @__PURE__ */ e(
1761
2697
  "div",
1762
2698
  {
1763
2699
  className: "w-6 h-px bg-primary/20",
1764
2700
  style: { position: "absolute", top: "50%", left: "-12px" }
1765
2701
  }
1766
2702
  ),
1767
- /* @__PURE__ */ a(
2703
+ /* @__PURE__ */ e(
1768
2704
  "div",
1769
2705
  {
1770
2706
  className: "h-6 w-px bg-primary/20",
@@ -1772,136 +2708,1025 @@ const Qt = n.forwardRef(
1772
2708
  }
1773
2709
  )
1774
2710
  ] }),
1775
- s && /* @__PURE__ */ l("div", { className: "absolute top-4 left-12 font-mono text-[9px] text-muted-foreground/60 space-y-0.5", children: [
1776
- /* @__PURE__ */ a("div", { children: t }),
1777
- /* @__PURE__ */ a("div", { className: "text-primary/60", children: f })
2711
+ n && /* @__PURE__ */ c("div", { className: "absolute top-4 left-12 font-mono text-[9px] text-muted-foreground/60 space-y-0.5", children: [
2712
+ /* @__PURE__ */ e("div", { children: r }),
2713
+ /* @__PURE__ */ e("div", { className: "text-primary/60", children: h })
1778
2714
  ] }),
1779
- s && /* @__PURE__ */ l("div", { className: "absolute top-4 right-12 font-mono text-[9px] text-muted-foreground/60 text-right space-y-0.5", children: [
1780
- /* @__PURE__ */ a("div", { children: r }),
1781
- /* @__PURE__ */ a("div", { children: o })
2715
+ n && /* @__PURE__ */ c("div", { className: "absolute top-4 right-12 font-mono text-[9px] text-muted-foreground/60 text-right space-y-0.5", children: [
2716
+ /* @__PURE__ */ e("div", { children: a }),
2717
+ /* @__PURE__ */ e("div", { children: o })
1782
2718
  ] }),
1783
- /* @__PURE__ */ l("div", { className: "absolute bottom-4 left-12 right-12 flex items-center justify-between", children: [
1784
- /* @__PURE__ */ l("div", { className: "flex items-center gap-2", children: [
1785
- /* @__PURE__ */ a(
2719
+ /* @__PURE__ */ c("div", { className: "absolute bottom-4 left-12 right-12 flex items-center justify-between", children: [
2720
+ /* @__PURE__ */ c("div", { className: "flex items-center gap-2", children: [
2721
+ /* @__PURE__ */ e(
1786
2722
  "div",
1787
2723
  {
1788
2724
  className: "w-1.5 h-1.5 bg-ef-green",
1789
- style: { clipPath: "polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)" }
2725
+ style: {
2726
+ clipPath: "polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)"
2727
+ }
1790
2728
  }
1791
2729
  ),
1792
- /* @__PURE__ */ a("span", { className: "font-mono text-[9px] text-ef-green/80", children: "LINK ACTIVE" })
2730
+ /* @__PURE__ */ e("span", { className: "font-mono text-[9px] text-ef-green/80", children: "LINK ACTIVE" })
1793
2731
  ] }),
1794
- /* @__PURE__ */ a("div", { className: "flex gap-4", children: ["FPS:60", "MEM:47%", "NET:12ms"].map((g) => /* @__PURE__ */ a(
2732
+ /* @__PURE__ */ e("div", { className: "flex gap-4", children: ["FPS:60", "MEM:47%", "NET:12ms"].map((N) => /* @__PURE__ */ e(
1795
2733
  "span",
1796
2734
  {
1797
2735
  className: "font-mono text-[9px] text-muted-foreground/50",
1798
- children: g
2736
+ children: N
1799
2737
  },
1800
- g
2738
+ N
1801
2739
  )) })
1802
2740
  ] }),
1803
- /* @__PURE__ */ a("div", { className: "relative z-10", children: e })
2741
+ /* @__PURE__ */ e("div", { className: "relative z-10", children: t })
2742
+ ]
2743
+ }
2744
+ );
2745
+ }
2746
+ );
2747
+ Xr.displayName = "HUDOverlay";
2748
+ const Zr = T(
2749
+ [
2750
+ "relative bg-surface-1 border overflow-hidden transition-all duration-300",
2751
+ "before:absolute before:top-0 before:left-0 before:w-5 before:h-5",
2752
+ "before:border-t-2 before:border-l-2 before:border-primary/40 before:pointer-events-none",
2753
+ "after:absolute after:bottom-0 after:right-0 after:w-5 after:h-5",
2754
+ "after:border-b-2 after:border-r-2 after:border-primary/40 after:pointer-events-none"
2755
+ ].join(" "),
2756
+ {
2757
+ variants: {
2758
+ priority: {
2759
+ low: "border-white/8",
2760
+ medium: "border-ef-blue/30",
2761
+ high: "border-ef-orange/40",
2762
+ critical: "border-ef-red/50 shadow-[0_0_12px_rgba(255,71,87,0.1)]"
2763
+ },
2764
+ status: {
2765
+ active: "",
2766
+ completed: "opacity-70",
2767
+ failed: "opacity-60",
2768
+ pending: "border-dashed",
2769
+ classified: "border-primary/20"
2770
+ },
2771
+ clickable: {
2772
+ true: "cursor-pointer hover:-translate-y-0.5 hover:shadow-lg",
2773
+ false: ""
2774
+ }
2775
+ },
2776
+ defaultVariants: { priority: "medium", status: "active", clickable: !1 }
2777
+ }
2778
+ ), Qr = {
2779
+ active: {
2780
+ label: "ACTIVE",
2781
+ cls: "text-ef-green border-ef-green/40 bg-ef-green/10"
2782
+ },
2783
+ completed: {
2784
+ label: "COMPLETED",
2785
+ cls: "text-muted-foreground border-white/20 bg-white/5"
2786
+ },
2787
+ failed: {
2788
+ label: "FAILED",
2789
+ cls: "text-destructive border-destructive/40 bg-destructive/10"
2790
+ },
2791
+ pending: {
2792
+ label: "PENDING",
2793
+ cls: "text-ef-orange border-ef-orange/40 bg-ef-orange/10"
2794
+ },
2795
+ classified: {
2796
+ label: "CLASSIFIED",
2797
+ cls: "text-primary border-primary/40 bg-primary/10"
2798
+ }
2799
+ }, Jr = {
2800
+ low: { label: "LOW", cls: "text-muted-foreground" },
2801
+ medium: { label: "MEDIUM", cls: "text-ef-blue" },
2802
+ high: { label: "HIGH", cls: "text-ef-orange" },
2803
+ critical: { label: "CRITICAL", cls: "text-destructive" }
2804
+ }, ea = i.forwardRef(
2805
+ ({
2806
+ className: t,
2807
+ title: r,
2808
+ missionId: a,
2809
+ description: o,
2810
+ status: n = "active",
2811
+ priority: d = "medium",
2812
+ date: p,
2813
+ progress: l,
2814
+ tags: m,
2815
+ onClick: u,
2816
+ ...f
2817
+ }, g) => {
2818
+ const h = Qr[n], b = Jr[d], y = !!u, N = (v) => {
2819
+ y && (v.key === "Enter" || v.key === " ") && (v.preventDefault(), u == null || u(v));
2820
+ }, x = l !== void 0 ? Math.min(100, Math.max(0, l)) : void 0;
2821
+ return /* @__PURE__ */ c(
2822
+ "div",
2823
+ {
2824
+ ref: g,
2825
+ role: y ? "button" : "article",
2826
+ "aria-label": `Mission: ${r}`,
2827
+ tabIndex: y ? 0 : void 0,
2828
+ onClick: u,
2829
+ onKeyDown: N,
2830
+ className: s(
2831
+ Zr({ priority: d, status: n, clickable: y }),
2832
+ t
2833
+ ),
2834
+ ...f,
2835
+ children: [
2836
+ /* @__PURE__ */ c("div", { className: "flex items-center justify-between px-4 py-2.5 border-b border-white/8 bg-surface-0", children: [
2837
+ /* @__PURE__ */ c(
2838
+ "span",
2839
+ {
2840
+ className: s(
2841
+ "font-mono text-[10px] font-semibold tracking-[0.1em] uppercase",
2842
+ b.cls
2843
+ ),
2844
+ children: [
2845
+ "◆ PRIORITY: ",
2846
+ b.label
2847
+ ]
2848
+ }
2849
+ ),
2850
+ /* @__PURE__ */ e(
2851
+ "span",
2852
+ {
2853
+ className: s(
2854
+ "font-mono text-[10px] font-semibold tracking-[0.1em] uppercase border px-2 py-0.5",
2855
+ h.cls
2856
+ ),
2857
+ children: h.label
2858
+ }
2859
+ )
2860
+ ] }),
2861
+ /* @__PURE__ */ c("div", { className: "px-4 pt-3 pb-2", children: [
2862
+ /* @__PURE__ */ e("h3", { className: "font-display text-[15px] font-bold uppercase tracking-wider text-foreground leading-tight", children: r }),
2863
+ a && /* @__PURE__ */ c("p", { className: "font-mono text-[11px] text-muted-foreground/60 mt-0.5", children: [
2864
+ "ID: ",
2865
+ a
2866
+ ] }),
2867
+ o && /* @__PURE__ */ e("p", { className: "text-[13px] text-muted-foreground mt-2 leading-relaxed", children: o })
2868
+ ] }),
2869
+ (p !== void 0 || x !== void 0 || m && m.length > 0) && /* @__PURE__ */ c("div", { className: "px-4 pb-3 pt-1 space-y-2", children: [
2870
+ x !== void 0 && /* @__PURE__ */ c("div", { className: "flex items-center gap-2", children: [
2871
+ /* @__PURE__ */ e(
2872
+ "div",
2873
+ {
2874
+ role: "progressbar",
2875
+ "aria-valuenow": x,
2876
+ "aria-valuemin": 0,
2877
+ "aria-valuemax": 100,
2878
+ "aria-label": "Mission progress",
2879
+ className: "flex-1 h-1 bg-white/8 overflow-hidden",
2880
+ children: /* @__PURE__ */ e(
2881
+ "div",
2882
+ {
2883
+ className: "h-full bg-primary transition-all duration-500",
2884
+ style: { width: `${x}%` }
2885
+ }
2886
+ )
2887
+ }
2888
+ ),
2889
+ /* @__PURE__ */ c("span", { className: "font-mono text-[10px] text-muted-foreground shrink-0 w-8 text-right", "aria-hidden": "true", children: [
2890
+ x,
2891
+ "%"
2892
+ ] })
2893
+ ] }),
2894
+ /* @__PURE__ */ c("div", { className: "flex items-center justify-between gap-2 flex-wrap", children: [
2895
+ p && /* @__PURE__ */ e("span", { className: "font-mono text-[11px] text-muted-foreground/60", children: p }),
2896
+ m && m.length > 0 && /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1 ml-auto", children: m.map((v) => /* @__PURE__ */ e(
2897
+ "span",
2898
+ {
2899
+ className: "font-mono text-[9px] uppercase tracking-wider border border-white/10 px-1.5 py-0.5 text-muted-foreground/60",
2900
+ children: v
2901
+ },
2902
+ v
2903
+ )) })
2904
+ ] })
2905
+ ] })
2906
+ ]
2907
+ }
2908
+ );
2909
+ }
2910
+ );
2911
+ ea.displayName = "MissionCard";
2912
+ const ue = {
2913
+ 1: "text-white/40",
2914
+ 2: "text-ef-green/70",
2915
+ 3: "text-ef-blue/80",
2916
+ 4: "text-ef-purple",
2917
+ 5: "text-ef-orange",
2918
+ 6: "text-primary"
2919
+ }, ge = {
2920
+ default: "bg-primary",
2921
+ success: "bg-ef-green",
2922
+ danger: "bg-destructive",
2923
+ info: "bg-ef-blue"
2924
+ }, xe = T(
2925
+ [
2926
+ "relative bg-surface-1 border border-white/8 overflow-hidden transition-all duration-300",
2927
+ "before:absolute before:top-0 before:left-0 before:w-5 before:h-5",
2928
+ "before:border-t-2 before:border-l-2 before:border-primary/40 before:pointer-events-none"
2929
+ ].join(" "),
2930
+ {
2931
+ variants: {
2932
+ size: {
2933
+ compact: "flex gap-3 p-3",
2934
+ default: "p-4"
2935
+ }
2936
+ },
2937
+ defaultVariants: { size: "default" }
2938
+ }
2939
+ );
2940
+ function be({
2941
+ src: t,
2942
+ name: r,
2943
+ initials: a,
2944
+ sizeClass: o
2945
+ }) {
2946
+ return /* @__PURE__ */ e(
2947
+ "div",
2948
+ {
2949
+ className: s(
2950
+ "shrink-0 bg-surface-2 flex items-center justify-center",
2951
+ "font-display font-bold uppercase text-primary",
2952
+ o
2953
+ ),
2954
+ style: {
2955
+ clipPath: "polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%)"
2956
+ },
2957
+ children: t ? /* @__PURE__ */ e("img", { src: t, alt: r, className: "w-full h-full object-cover" }) : /* @__PURE__ */ e("span", { children: a ?? r.slice(0, 2) })
2958
+ }
2959
+ );
2960
+ }
2961
+ function he({ rarity: t }) {
2962
+ const r = ue[t] ?? ue[3];
2963
+ return /* @__PURE__ */ c(
2964
+ "span",
2965
+ {
2966
+ className: "font-mono text-[11px]",
2967
+ "aria-label": `${t} star${t !== 1 ? "s" : ""}`,
2968
+ children: [
2969
+ Array.from({ length: t }).map((a, o) => /* @__PURE__ */ e("span", { className: r, children: "◆" }, `f-${o}`)),
2970
+ Array.from({ length: 6 - t }).map((a, o) => /* @__PURE__ */ e("span", { className: "text-white/15", children: "◇" }, `e-${o}`))
2971
+ ]
2972
+ }
2973
+ );
2974
+ }
2975
+ function ta({ label: t }) {
2976
+ return /* @__PURE__ */ c(
2977
+ "span",
2978
+ {
2979
+ className: [
2980
+ "inline-flex items-center gap-1.5 clip-corner-sm border",
2981
+ "px-2.5 py-0.5 font-display text-[10px] font-bold tracking-[0.15em] uppercase",
2982
+ "border-primary/40 text-primary bg-primary/10"
2983
+ ].join(" "),
2984
+ children: [
2985
+ /* @__PURE__ */ e("span", { style: { fontSize: "6px" }, children: "◆" }),
2986
+ t
2987
+ ]
2988
+ }
2989
+ );
2990
+ }
2991
+ const ra = i.forwardRef(
2992
+ ({
2993
+ className: t,
2994
+ name: r,
2995
+ operatorClass: a,
2996
+ rarity: o = 3,
2997
+ avatarSrc: n,
2998
+ initials: d,
2999
+ stats: p,
3000
+ faction: l,
3001
+ tags: m,
3002
+ size: u,
3003
+ ...f
3004
+ }, g) => {
3005
+ const h = Math.min(6, Math.max(1, o));
3006
+ return u === "compact" ? /* @__PURE__ */ c(
3007
+ "div",
3008
+ {
3009
+ ref: g,
3010
+ className: s(xe({ size: u }), t),
3011
+ ...f,
3012
+ children: [
3013
+ /* @__PURE__ */ e(
3014
+ be,
3015
+ {
3016
+ src: n,
3017
+ name: r,
3018
+ initials: d,
3019
+ sizeClass: "w-12 h-12 text-sm"
3020
+ }
3021
+ ),
3022
+ /* @__PURE__ */ c("div", { className: "flex-1 min-w-0 py-0.5", children: [
3023
+ /* @__PURE__ */ e("p", { className: "font-display text-[13px] font-bold uppercase tracking-wider text-foreground truncate", children: r }),
3024
+ a && /* @__PURE__ */ c("p", { className: "font-mono text-[10px] text-muted-foreground mt-0.5", children: [
3025
+ "◆ ",
3026
+ a.toUpperCase()
3027
+ ] }),
3028
+ /* @__PURE__ */ e("div", { className: "mt-1", children: /* @__PURE__ */ e(he, { rarity: h }) })
3029
+ ] })
3030
+ ]
3031
+ }
3032
+ ) : /* @__PURE__ */ c(
3033
+ "div",
3034
+ {
3035
+ ref: g,
3036
+ className: s(xe({ size: u }), t),
3037
+ ...f,
3038
+ children: [
3039
+ /* @__PURE__ */ c("div", { className: "flex items-start gap-4 mb-3", children: [
3040
+ /* @__PURE__ */ e(
3041
+ be,
3042
+ {
3043
+ src: n,
3044
+ name: r,
3045
+ initials: d,
3046
+ sizeClass: "w-20 h-20 text-xl"
3047
+ }
3048
+ ),
3049
+ /* @__PURE__ */ c("div", { className: "flex-1 min-w-0 pt-1", children: [
3050
+ /* @__PURE__ */ e("h3", { className: "font-display text-[16px] font-bold uppercase tracking-wider text-foreground leading-tight", children: r }),
3051
+ l && /* @__PURE__ */ e("p", { className: "font-mono text-[10px] text-muted-foreground/60 mt-0.5 uppercase tracking-wider", children: l }),
3052
+ a && /* @__PURE__ */ e("div", { className: "mt-1.5", children: /* @__PURE__ */ e(ta, { label: a }) }),
3053
+ /* @__PURE__ */ e("div", { className: "mt-2", children: /* @__PURE__ */ e(he, { rarity: h }) })
3054
+ ] })
3055
+ ] }),
3056
+ m && m.length > 0 && /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-1 mb-3", children: m.map((b) => /* @__PURE__ */ e(
3057
+ "span",
3058
+ {
3059
+ className: "font-mono text-[9px] uppercase tracking-wider border border-white/10 px-1.5 py-0.5 text-muted-foreground/60",
3060
+ children: b
3061
+ },
3062
+ b
3063
+ )) }),
3064
+ p && p.length > 0 && /* @__PURE__ */ e("div", { className: "space-y-2 pt-2 border-t border-white/6", children: p.map((b) => {
3065
+ const y = b.max ?? b.value, N = y > 0 ? Math.min(100, b.value / y * 100) : 0, x = ge[b.color ?? "default"] ?? ge.default;
3066
+ return /* @__PURE__ */ c("div", { className: "flex items-center gap-2", children: [
3067
+ /* @__PURE__ */ e("span", { className: "font-mono text-[10px] uppercase tracking-wider text-muted-foreground w-8 shrink-0", children: b.label }),
3068
+ /* @__PURE__ */ e("div", { className: "flex-1 h-1 bg-white/8 overflow-hidden", children: /* @__PURE__ */ e(
3069
+ "div",
3070
+ {
3071
+ className: s("h-full transition-all duration-500", x),
3072
+ style: { width: `${N}%` }
3073
+ }
3074
+ ) }),
3075
+ /* @__PURE__ */ e("span", { className: "font-mono text-[10px] text-muted-foreground/70 w-12 text-right shrink-0", children: b.value.toLocaleString() })
3076
+ ] }, b.label);
3077
+ }) })
3078
+ ]
3079
+ }
3080
+ );
3081
+ }
3082
+ );
3083
+ ra.displayName = "OperatorCard";
3084
+ const aa = T("flex items-center gap-1.5", {
3085
+ variants: {
3086
+ size: {
3087
+ sm: "[&>span.seg]:w-3 [&>span.seg]:h-2",
3088
+ md: "[&>span.seg]:w-4 [&>span.seg]:h-3",
3089
+ lg: "[&>span.seg]:w-6 [&>span.seg]:h-4"
3090
+ }
3091
+ },
3092
+ defaultVariants: { size: "md" }
3093
+ }), oa = T("seg transition-all duration-200", {
3094
+ variants: {
3095
+ variant: {
3096
+ health: "",
3097
+ energy: "",
3098
+ shield: "",
3099
+ experience: ""
3100
+ }
3101
+ },
3102
+ defaultVariants: { variant: "health" }
3103
+ }), ve = {
3104
+ health: "bg-ef-green",
3105
+ energy: "bg-primary",
3106
+ shield: "bg-ef-blue",
3107
+ experience: "bg-ef-purple"
3108
+ }, na = i.forwardRef(
3109
+ ({
3110
+ className: t,
3111
+ value: r,
3112
+ max: a = 100,
3113
+ segments: o = 10,
3114
+ label: n,
3115
+ showValue: d = !1,
3116
+ size: p,
3117
+ variant: l = "health",
3118
+ ...m
3119
+ }, u) => {
3120
+ const f = Math.min(a, Math.max(0, r)), g = a > 0 ? f / a : 0, h = Math.round(g * o), b = (y) => {
3121
+ if (y >= h) return "bg-white/8";
3122
+ if (l === "health") {
3123
+ if (g <= 0.15) return "bg-destructive";
3124
+ if (g <= 0.3) return "bg-ef-orange";
3125
+ }
3126
+ return ve[l ?? "health"] ?? ve.health;
3127
+ };
3128
+ return /* @__PURE__ */ c(
3129
+ "div",
3130
+ {
3131
+ ref: u,
3132
+ className: s("flex items-center gap-2", t),
3133
+ role: "meter",
3134
+ "aria-valuenow": f,
3135
+ "aria-valuemin": 0,
3136
+ "aria-valuemax": a,
3137
+ "aria-label": n ?? `${l} bar`,
3138
+ ...m,
3139
+ children: [
3140
+ n && /* @__PURE__ */ e("span", { className: "font-mono text-[10px] uppercase tracking-wider text-muted-foreground shrink-0", children: n }),
3141
+ /* @__PURE__ */ e("div", { className: s(aa({ size: p })), children: Array.from({ length: o }).map((y, N) => /* @__PURE__ */ e(
3142
+ "span",
3143
+ {
3144
+ className: s(
3145
+ oa({ variant: l }),
3146
+ b(N)
3147
+ )
3148
+ },
3149
+ N
3150
+ )) }),
3151
+ d && /* @__PURE__ */ c("span", { className: "font-mono text-[10px] text-muted-foreground shrink-0 ml-1", children: [
3152
+ f,
3153
+ "/",
3154
+ a
3155
+ ] })
3156
+ ]
3157
+ }
3158
+ );
3159
+ }
3160
+ );
3161
+ na.displayName = "StatusBar";
3162
+ const sa = {
3163
+ system: { prefix: "[SYS] ", color: "text-muted-foreground", ariaLive: "off" },
3164
+ info: { prefix: "[INFO]", color: "text-ef-blue", ariaLive: "off" },
3165
+ success: { prefix: "[OK] ", color: "text-ef-green", ariaLive: "polite" },
3166
+ warning: { prefix: "[WARN]", color: "text-ef-orange", ariaLive: "polite" },
3167
+ error: { prefix: "[ERR] ", color: "text-destructive", ariaLive: "assertive" }
3168
+ }, ia = i.forwardRef(
3169
+ ({
3170
+ className: t,
3171
+ entries: r,
3172
+ showHeader: a = !0,
3173
+ headerText: o = "TERMINAL",
3174
+ showCursor: n = !0,
3175
+ autoScroll: d = !0,
3176
+ maxHeight: p = "320px",
3177
+ showTimestamp: l = !1,
3178
+ ...m
3179
+ }, u) => {
3180
+ const f = i.useRef(null);
3181
+ return i.useEffect(() => {
3182
+ d && f.current && (f.current.scrollTop = f.current.scrollHeight);
3183
+ }, [r, d]), /* @__PURE__ */ c(
3184
+ "div",
3185
+ {
3186
+ ref: u,
3187
+ className: s(
3188
+ "bg-[#0F0F0F] border border-white/8 font-mono text-[13px]",
3189
+ t
3190
+ ),
3191
+ ...m,
3192
+ children: [
3193
+ a && /* @__PURE__ */ c("div", { className: "flex items-center gap-2 px-4 py-2 border-b border-white/8", children: [
3194
+ /* @__PURE__ */ c("div", { className: "flex gap-1", children: [
3195
+ /* @__PURE__ */ e("span", { className: "w-2.5 h-2.5 bg-white/10" }),
3196
+ /* @__PURE__ */ e("span", { className: "w-2.5 h-2.5 bg-white/10" }),
3197
+ /* @__PURE__ */ e("span", { className: "w-2.5 h-2.5 bg-white/10" })
3198
+ ] }),
3199
+ /* @__PURE__ */ e("span", { className: "font-mono text-[10px] text-muted-foreground/60 uppercase tracking-[0.15em] mx-auto", children: o })
3200
+ ] }),
3201
+ /* @__PURE__ */ c(
3202
+ "div",
3203
+ {
3204
+ ref: f,
3205
+ style: { maxHeight: p },
3206
+ className: "overflow-y-auto py-2 scrollbar-thin",
3207
+ role: "log",
3208
+ "aria-live": "polite",
3209
+ "aria-label": o,
3210
+ children: [
3211
+ r.length === 0 && /* @__PURE__ */ e("div", { className: "px-4 py-2 text-muted-foreground/40 text-[12px]", children: "No output." }),
3212
+ r.map((g, h) => {
3213
+ const b = sa[g.level], y = g.id ?? h;
3214
+ return /* @__PURE__ */ c(
3215
+ "div",
3216
+ {
3217
+ className: "flex gap-3 px-4 py-0.5 hover:bg-white/[0.02] transition-colors",
3218
+ children: [
3219
+ /* @__PURE__ */ e(
3220
+ "span",
3221
+ {
3222
+ className: s(
3223
+ "text-[11px] font-semibold shrink-0 select-none",
3224
+ "w-[54px]",
3225
+ b.color
3226
+ ),
3227
+ children: b.prefix
3228
+ }
3229
+ ),
3230
+ l && /* @__PURE__ */ e("span", { className: "text-[11px] text-muted-foreground/40 shrink-0", children: g.timestamp ?? (/* @__PURE__ */ new Date()).toISOString().slice(0, 19).replace("T", "/") }),
3231
+ /* @__PURE__ */ e("span", { className: "text-[#E0E0E0] break-all", children: g.message })
3232
+ ]
3233
+ },
3234
+ y
3235
+ );
3236
+ }),
3237
+ n && /* @__PURE__ */ c("div", { className: "flex items-center gap-3 px-4 py-0.5 mt-0.5", children: [
3238
+ /* @__PURE__ */ e("span", { className: "w-[54px] shrink-0" }),
3239
+ /* @__PURE__ */ e(
3240
+ "span",
3241
+ {
3242
+ className: "inline-block w-2 h-4 bg-primary animate-pulse",
3243
+ "aria-hidden": !0
3244
+ }
3245
+ )
3246
+ ] })
3247
+ ]
3248
+ }
3249
+ )
3250
+ ]
3251
+ }
3252
+ );
3253
+ }
3254
+ );
3255
+ ia.displayName = "CommandOutput";
3256
+ const la = T(
3257
+ "font-display font-bold text-primary tabular-nums leading-none",
3258
+ {
3259
+ variants: {
3260
+ size: {
3261
+ sm: "text-2xl",
3262
+ md: "text-5xl",
3263
+ lg: "text-7xl"
3264
+ }
3265
+ },
3266
+ defaultVariants: { size: "md" }
3267
+ }
3268
+ ), da = T(
3269
+ "font-mono uppercase tracking-widest text-muted-foreground/60",
3270
+ {
3271
+ variants: {
3272
+ size: {
3273
+ sm: "text-[9px]",
3274
+ md: "text-[10px]",
3275
+ lg: "text-[11px]"
3276
+ }
3277
+ },
3278
+ defaultVariants: { size: "md" }
3279
+ }
3280
+ );
3281
+ function ye(t) {
3282
+ const r = Math.max(0, t - Date.now()), a = Math.floor(r / 1e3 % 60), o = Math.floor(r / 1e3 / 60 % 60), n = Math.floor(r / (1e3 * 60 * 60) % 24);
3283
+ return { days: Math.floor(r / (1e3 * 60 * 60 * 24)), hours: n, minutes: o, seconds: a, total: r };
3284
+ }
3285
+ function J(t) {
3286
+ return String(t).padStart(2, "0");
3287
+ }
3288
+ function H({
3289
+ value: t,
3290
+ unit: r,
3291
+ size: a
3292
+ }) {
3293
+ return /* @__PURE__ */ c("div", { className: "flex flex-col items-center gap-1", children: [
3294
+ /* @__PURE__ */ e("span", { className: la({ size: a }), children: t }),
3295
+ /* @__PURE__ */ e("span", { className: da({ size: a }), children: r })
3296
+ ] });
3297
+ }
3298
+ function ee({ size: t }) {
3299
+ return /* @__PURE__ */ e(
3300
+ "span",
3301
+ {
3302
+ className: s(
3303
+ "font-mono text-primary/30 font-bold select-none mb-4",
3304
+ t === "sm" ? "text-xl" : t === "lg" ? "text-5xl" : "text-3xl"
3305
+ ),
3306
+ children: ":"
3307
+ }
3308
+ );
3309
+ }
3310
+ const ca = i.forwardRef(
3311
+ ({
3312
+ className: t,
3313
+ targetDate: r,
3314
+ seconds: a,
3315
+ onComplete: o,
3316
+ label: n,
3317
+ autoHideZero: d = !1,
3318
+ showDays: p = !0,
3319
+ size: l,
3320
+ ...m
3321
+ }, u) => {
3322
+ const f = i.useMemo(() => r ? new Date(r).getTime() : a !== void 0 ? Date.now() + a * 1e3 : Date.now(), [r, a]), [g, h] = i.useState(
3323
+ () => ye(f)
3324
+ ), b = i.useRef(!1);
3325
+ i.useEffect(() => {
3326
+ b.current = !1;
3327
+ const x = () => {
3328
+ const k = ye(f);
3329
+ h(k), k.total === 0 && !b.current && (b.current = !0, o == null || o());
3330
+ };
3331
+ x();
3332
+ const v = setInterval(x, 1e3);
3333
+ return () => clearInterval(v);
3334
+ }, [f, o]);
3335
+ const y = i.useMemo(
3336
+ () => `Countdown: ${g.days} days ${g.hours} hours ${g.minutes} minutes ${g.seconds} seconds`,
3337
+ [g.days, g.hours, g.minutes]
3338
+ ), N = p && !(d && g.days === 0);
3339
+ return /* @__PURE__ */ c(
3340
+ "div",
3341
+ {
3342
+ ref: u,
3343
+ className: s("flex flex-col items-center gap-4", t),
3344
+ role: "timer",
3345
+ "aria-label": y,
3346
+ "aria-live": "off",
3347
+ ...m,
3348
+ children: [
3349
+ n && /* @__PURE__ */ e("p", { className: "font-mono text-[11px] uppercase tracking-widest text-muted-foreground", children: n }),
3350
+ /* @__PURE__ */ c("div", { className: "flex items-end gap-2", children: [
3351
+ N && /* @__PURE__ */ c(Le, { children: [
3352
+ /* @__PURE__ */ e(H, { value: String(g.days), unit: "DAYS", size: l }),
3353
+ /* @__PURE__ */ e(ee, { size: l })
3354
+ ] }),
3355
+ /* @__PURE__ */ e(H, { value: J(g.hours), unit: "HRS", size: l }),
3356
+ /* @__PURE__ */ e(ee, { size: l }),
3357
+ /* @__PURE__ */ e(H, { value: J(g.minutes), unit: "MIN", size: l }),
3358
+ /* @__PURE__ */ e(ee, { size: l }),
3359
+ /* @__PURE__ */ e(H, { value: J(g.seconds), unit: "SEC", size: l })
3360
+ ] })
1804
3361
  ]
1805
3362
  }
1806
3363
  );
1807
3364
  }
1808
3365
  );
1809
- Qt.displayName = "HUDOverlay";
3366
+ ca.displayName = "CountdownTimer";
3367
+ function pa({
3368
+ active: t,
3369
+ direction: r
3370
+ }) {
3371
+ return t ? /* @__PURE__ */ e("span", { className: "ml-1 text-primary text-[10px]", children: r === "asc" ? "▲" : "▼" }) : /* @__PURE__ */ e("span", { className: "ml-1 text-muted-foreground/20 text-[10px]", children: "↕" });
3372
+ }
3373
+ function ma({ colCount: t }) {
3374
+ return /* @__PURE__ */ e("tr", { children: Array.from({ length: t }).map((r, a) => /* @__PURE__ */ e("td", { className: "px-4 py-3 border-b border-white/[0.04]", children: /* @__PURE__ */ e(
3375
+ "div",
3376
+ {
3377
+ className: s(
3378
+ "h-3 bg-surface-2 animate-skeleton",
3379
+ a === 0 ? "w-3/4" : a % 3 === 0 ? "w-1/2" : "w-full"
3380
+ )
3381
+ }
3382
+ ) }, a)) });
3383
+ }
3384
+ const Ne = {
3385
+ left: "text-left",
3386
+ center: "text-center",
3387
+ right: "text-right"
3388
+ };
3389
+ function fa({
3390
+ className: t,
3391
+ columns: r,
3392
+ data: a,
3393
+ sortKey: o,
3394
+ sortDirection: n,
3395
+ onSort: d,
3396
+ selectable: p = !1,
3397
+ selectedIndices: l,
3398
+ onRowClick: m,
3399
+ loading: u = !1,
3400
+ skeletonRows: f = 4,
3401
+ emptyState: g,
3402
+ caption: h,
3403
+ ...b
3404
+ }, y) {
3405
+ const N = new Set(l ?? []);
3406
+ return /* @__PURE__ */ e(
3407
+ "div",
3408
+ {
3409
+ ref: y,
3410
+ className: s("w-full overflow-x-auto", t),
3411
+ ...b,
3412
+ children: /* @__PURE__ */ c("table", { className: "w-full border-collapse", role: "grid", children: [
3413
+ h && /* @__PURE__ */ e("caption", { className: "sr-only", children: h }),
3414
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ e("tr", { children: r.map((x) => {
3415
+ const v = o === x.key;
3416
+ return /* @__PURE__ */ c(
3417
+ "th",
3418
+ {
3419
+ scope: "col",
3420
+ className: s(
3421
+ "px-4 py-3 border-b border-white/10 bg-surface-0 sticky top-0 z-10",
3422
+ "font-mono text-[11px] font-bold tracking-[0.12em] uppercase text-muted-foreground",
3423
+ x.width ?? "",
3424
+ Ne[x.align ?? "left"],
3425
+ x.sortable && "cursor-pointer select-none hover:text-foreground transition-colors"
3426
+ ),
3427
+ "aria-sort": x.sortable && v ? n === "asc" ? "ascending" : "descending" : void 0,
3428
+ onClick: x.sortable ? () => d == null ? void 0 : d(x.key) : void 0,
3429
+ children: [
3430
+ x.header,
3431
+ x.sortable && /* @__PURE__ */ e(
3432
+ pa,
3433
+ {
3434
+ active: v,
3435
+ direction: n
3436
+ }
3437
+ )
3438
+ ]
3439
+ },
3440
+ x.key
3441
+ );
3442
+ }) }) }),
3443
+ /* @__PURE__ */ e("tbody", { children: u ? Array.from({ length: f }).map((x, v) => /* @__PURE__ */ e(ma, { colCount: r.length }, v)) : a.length === 0 ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e("td", { colSpan: r.length, className: "px-4 py-12 text-center", children: g ?? /* @__PURE__ */ e("span", { className: "font-mono text-[12px] text-muted-foreground/40 uppercase tracking-wider", children: "NO DATA" }) }) }) : a.map((x, v) => {
3444
+ const k = p && N.has(v), _ = v % 2 === 1;
3445
+ return /* @__PURE__ */ e(
3446
+ "tr",
3447
+ {
3448
+ "aria-selected": p ? k : void 0,
3449
+ tabIndex: p ? 0 : void 0,
3450
+ onClick: p ? () => m == null ? void 0 : m(x, v) : void 0,
3451
+ onKeyDown: p ? (R) => {
3452
+ (R.key === "Enter" || R.key === " ") && (R.preventDefault(), m == null || m(x, v));
3453
+ } : void 0,
3454
+ className: s(
3455
+ "transition-colors",
3456
+ k ? "bg-primary/[0.06]" : _ ? "bg-white/[0.015] hover:bg-primary/[0.03]" : "hover:bg-primary/[0.03]",
3457
+ p && "cursor-pointer focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary"
3458
+ ),
3459
+ children: r.map((R) => /* @__PURE__ */ e(
3460
+ "td",
3461
+ {
3462
+ className: s(
3463
+ "px-4 py-3 text-[14px] text-foreground border-b border-white/[0.04]",
3464
+ Ne[R.align ?? "left"]
3465
+ ),
3466
+ children: R.cell ? R.cell(x, v) : x[R.key]
3467
+ },
3468
+ R.key
3469
+ ))
3470
+ },
3471
+ v
3472
+ );
3473
+ }) })
3474
+ ] })
3475
+ }
3476
+ );
3477
+ }
3478
+ const ua = i.forwardRef(fa);
3479
+ ua.displayName = "TacticalTable";
3480
+ const ga = i.forwardRef(
3481
+ ({
3482
+ className: t,
3483
+ cols: r = 20,
3484
+ rows: a = 10,
3485
+ dotSize: o = 4,
3486
+ gap: n = 8,
3487
+ activeColor: d = "bg-primary",
3488
+ activeProbability: p = 0.05,
3489
+ intervalMs: l = 300,
3490
+ static: m = !1,
3491
+ ...u
3492
+ }, f) => {
3493
+ const g = r * a, [h, b] = i.useState(
3494
+ () => /* @__PURE__ */ new Set()
3495
+ ), y = i.useMemo(() => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches, []);
3496
+ return i.useEffect(() => {
3497
+ if (m || y) return;
3498
+ const N = setInterval(() => {
3499
+ b((x) => {
3500
+ const v = new Set(x);
3501
+ for (let k = 0; k < g; k++)
3502
+ Math.random() < p && v.add(k);
3503
+ for (const k of v)
3504
+ Math.random() < 0.3 && v.delete(k);
3505
+ return v;
3506
+ });
3507
+ }, l);
3508
+ return () => clearInterval(N);
3509
+ }, [m, y, g, p, l]), /* @__PURE__ */ e(
3510
+ "div",
3511
+ {
3512
+ ref: f,
3513
+ className: s("overflow-hidden", t),
3514
+ "aria-hidden": "true",
3515
+ ...u,
3516
+ children: /* @__PURE__ */ e(
3517
+ "div",
3518
+ {
3519
+ style: {
3520
+ display: "grid",
3521
+ gridTemplateColumns: `repeat(${r}, ${o}px)`,
3522
+ gap: `${n}px`
3523
+ },
3524
+ children: Array.from({ length: g }).map((N, x) => /* @__PURE__ */ e(
3525
+ "div",
3526
+ {
3527
+ style: { width: o, height: o },
3528
+ className: s(
3529
+ "transition-opacity",
3530
+ m || y ? "duration-0" : "duration-500",
3531
+ h.has(x) ? s("opacity-100", d) : "opacity-10 bg-white"
3532
+ )
3533
+ },
3534
+ x
3535
+ ))
3536
+ }
3537
+ )
3538
+ }
3539
+ );
3540
+ }
3541
+ );
3542
+ ga.displayName = "MatrixGrid";
3543
+ const xa = T("flex items-end gap-px", {
3544
+ variants: {
3545
+ color: {
3546
+ primary: "[&>span]:bg-primary",
3547
+ success: "[&>span]:bg-ef-green",
3548
+ danger: "[&>span]:bg-destructive",
3549
+ info: "[&>span]:bg-ef-blue",
3550
+ muted: "[&>span]:bg-white/20"
3551
+ }
3552
+ },
3553
+ defaultVariants: { color: "primary" }
3554
+ }), we = {
3555
+ slow: "1.4s",
3556
+ medium: "0.8s",
3557
+ fast: "0.4s"
3558
+ }, ba = i.forwardRef(
3559
+ ({
3560
+ className: t,
3561
+ barCount: r = 12,
3562
+ barWidth: a = 3,
3563
+ height: o = 32,
3564
+ speed: n = "medium",
3565
+ paused: d = !1,
3566
+ color: p,
3567
+ style: l,
3568
+ ...m
3569
+ }, u) => {
3570
+ const f = we[n] ?? we.medium, g = i.useMemo(
3571
+ () => Array.from({ length: r }, (h, b) => ({
3572
+ delay: `${(b * 0.13 % 0.9).toFixed(2)}s`
3573
+ })),
3574
+ [r]
3575
+ );
3576
+ return /* @__PURE__ */ e(
3577
+ "div",
3578
+ {
3579
+ ref: u,
3580
+ className: s(xa({ color: p }), t),
3581
+ style: { height: o, ...l },
3582
+ "aria-hidden": "true",
3583
+ ...m,
3584
+ children: g.map((h, b) => /* @__PURE__ */ e(
3585
+ "span",
3586
+ {
3587
+ style: {
3588
+ display: "inline-block",
3589
+ width: a,
3590
+ height: "100%",
3591
+ transformOrigin: "center bottom",
3592
+ animation: `frequency-bar ${f} ease-in-out infinite alternate`,
3593
+ animationDelay: h.delay,
3594
+ animationPlayState: d ? "paused" : "running"
3595
+ }
3596
+ },
3597
+ b
3598
+ ))
3599
+ }
3600
+ );
3601
+ }
3602
+ );
3603
+ ba.displayName = "FrequencyBars";
1810
3604
  export {
1811
- ct as Accordion,
1812
- mt as AccordionContent,
1813
- pt as AccordionItem,
1814
- ft as AccordionTrigger,
1815
- ot as Avatar,
1816
- st as AvatarFallback,
1817
- nt as AvatarImage,
1818
- Ce as Badge,
1819
- Re as Button,
1820
- Pe as Card,
1821
- je as CardBody,
1822
- Ve as CardDescription,
1823
- Oe as CardFooter,
1824
- Ee as CardHeader,
1825
- _e as CardMeta,
1826
- $e as CardTitle,
1827
- He as Checkbox,
1828
- Kt as CoordinateTag,
1829
- Gt as DataStream,
1830
- St as Dialog,
1831
- Rt as DialogClose,
1832
- Ct as DialogContent,
1833
- Et as DialogDescription,
1834
- It as DialogFooter,
1835
- Dt as DialogHeader,
1836
- te as DialogOverlay,
1837
- ee as DialogPortal,
1838
- Pt as DialogTitle,
1839
- kt as DialogTrigger,
1840
- Ot as DiamondLoader,
1841
- Vt as GlitchText,
1842
- Qt as HUDOverlay,
1843
- Me as HelperText,
1844
- Mt as HoloCard,
1845
- ze as Input,
1846
- Be as Label,
1847
- yt as Popover,
1848
- wt as PopoverAnchor,
1849
- Tt as PopoverContent,
1850
- Nt as PopoverTrigger,
1851
- dt as Progress,
1852
- qt as RadarChart,
1853
- Ue as RadioGroup,
1854
- We as RadioGroupItem,
1855
- Xt as ScanDivider,
1856
- Xe as Select,
1857
- Ze as SelectContent,
1858
- Ke as SelectGroup,
1859
- et as SelectItem,
1860
- Je as SelectLabel,
1861
- J as SelectScrollDownButton,
1862
- Z as SelectScrollUpButton,
1863
- tt as SelectSeparator,
1864
- Qe as SelectTrigger,
1865
- qe as SelectValue,
1866
- $t as Separator,
1867
- cr as SonnerToaster,
1868
- Ye as Switch,
1869
- ut as Tabs,
1870
- vt as TabsContent,
1871
- bt as TabsList,
1872
- ht as TabsTrigger,
1873
- Ut as TacticalBadge,
1874
- Bt as TacticalPanel,
1875
- Ge as Textarea,
1876
- X as Toast,
1877
- ve as ToastAction,
1878
- K as ToastClose,
1879
- Q as ToastDescription,
1880
- xe as ToastProvider,
1881
- q as ToastTitle,
1882
- Y as ToastViewport,
1883
- dr as Toaster,
1884
- ir as Tooltip,
1885
- be as TooltipContent,
1886
- sr as TooltipProvider,
1887
- lr as TooltipTrigger,
1888
- Yt as WarningBanner,
1889
- rt as avatarVariants,
1890
- Ae as badgeVariants,
1891
- U as buttonVariants,
1892
- Ie as cardVariants,
1893
- i as cn,
1894
- At as dialogContentVariants,
1895
- Le as inputWrapperVariants,
1896
- lt as progressFillVariants,
1897
- it as progressTrackVariants,
1898
- _t as separatorVariants,
1899
- gt as tabsListVariants,
1900
- xt as tabsTriggerVariants,
1901
- Ht as tacticalBadgeVariants,
1902
- Fe as textareaVariants,
1903
- mr as toast,
1904
- Se as toastAction,
1905
- ke as useToast
3605
+ Gt as Accordion,
3606
+ Yt as AccordionContent,
3607
+ Ut as AccordionItem,
3608
+ Ht as AccordionTrigger,
3609
+ Nr as Alert,
3610
+ Lt as Avatar,
3611
+ Ft as AvatarFallback,
3612
+ $t as AvatarImage,
3613
+ it as Badge,
3614
+ Ir as Breadcrumb,
3615
+ nt as Button,
3616
+ ct as Card,
3617
+ gt as CardBody,
3618
+ ut as CardDescription,
3619
+ xt as CardFooter,
3620
+ pt as CardHeader,
3621
+ mt as CardMeta,
3622
+ ft as CardTitle,
3623
+ Tt as Checkbox,
3624
+ ia as CommandOutput,
3625
+ Kr as CoordinateTag,
3626
+ ca as CountdownTimer,
3627
+ zr as DataStream,
3628
+ ar as Dialog,
3629
+ nr as DialogClose,
3630
+ ir as DialogContent,
3631
+ pr as DialogDescription,
3632
+ dr as DialogFooter,
3633
+ lr as DialogHeader,
3634
+ _e as DialogOverlay,
3635
+ Ee as DialogPortal,
3636
+ cr as DialogTitle,
3637
+ or as DialogTrigger,
3638
+ Vr as DiamondLoader,
3639
+ hr as EmptyState,
3640
+ ba as FrequencyBars,
3641
+ Er as GlitchText,
3642
+ Xr as HUDOverlay,
3643
+ yt as HelperText,
3644
+ Lr as HoloCard,
3645
+ ht as Input,
3646
+ vt as Label,
3647
+ ga as MatrixGrid,
3648
+ ea as MissionCard,
3649
+ Cr as NumberInput,
3650
+ ra as OperatorCard,
3651
+ Rr as Pagination,
3652
+ Jt as Popover,
3653
+ tr as PopoverAnchor,
3654
+ rr as PopoverContent,
3655
+ er as PopoverTrigger,
3656
+ zt as Progress,
3657
+ qr as RadarChart,
3658
+ St as RadioGroup,
3659
+ kt as RadioGroupItem,
3660
+ Wr as ScanDivider,
3661
+ It as Select,
3662
+ Et as SelectContent,
3663
+ At as SelectGroup,
3664
+ Vt as SelectItem,
3665
+ _t as SelectLabel,
3666
+ De as SelectScrollDownButton,
3667
+ Ce as SelectScrollUpButton,
3668
+ Ot as SelectSeparator,
3669
+ Dt as SelectTrigger,
3670
+ Ct as SelectValue,
3671
+ fr as Separator,
3672
+ Oe as SkeletonAvatar,
3673
+ xr as SkeletonCard,
3674
+ F as SkeletonLine,
3675
+ Ve as SkeletonText,
3676
+ Da as SonnerToaster,
3677
+ na as StatusBar,
3678
+ Sr as Stepper,
3679
+ Rt as Switch,
3680
+ Wt as Tabs,
3681
+ Qt as TabsContent,
3682
+ qt as TabsList,
3683
+ Zt as TabsTrigger,
3684
+ Ur as TacticalBadge,
3685
+ Mr as TacticalPanel,
3686
+ ua as TacticalTable,
3687
+ wt as Textarea,
3688
+ Tr as Timeline,
3689
+ Pe as TimelineItem,
3690
+ ke as Toast,
3691
+ Qe as ToastAction,
3692
+ Re as ToastClose,
3693
+ Ae as ToastDescription,
3694
+ Xe as ToastProvider,
3695
+ Ie as ToastTitle,
3696
+ Se as ToastViewport,
3697
+ Ca as Toaster,
3698
+ Ia as Tooltip,
3699
+ qe as TooltipContent,
3700
+ Ra as TooltipProvider,
3701
+ Aa as TooltipTrigger,
3702
+ Yr as WarningBanner,
3703
+ vr as alertVariants,
3704
+ Pt as avatarVariants,
3705
+ st as badgeVariants,
3706
+ le as buttonVariants,
3707
+ dt as cardVariants,
3708
+ s as cn,
3709
+ sr as dialogContentVariants,
3710
+ br as emptyStateVariants,
3711
+ xa as frequencyBarsVariants,
3712
+ bt as inputWrapperVariants,
3713
+ Zr as missionCardVariants,
3714
+ Ar as numberInputVariants,
3715
+ xe as operatorCardVariants,
3716
+ Z as paginationItemVariants,
3717
+ jt as progressFillVariants,
3718
+ Bt as progressTrackVariants,
3719
+ mr as separatorVariants,
3720
+ ur as skeletonLineVariants,
3721
+ aa as statusBarContainerVariants,
3722
+ oa as statusBarSegmentVariants,
3723
+ Kt as tabsListVariants,
3724
+ Xt as tabsTriggerVariants,
3725
+ Gr as tacticalBadgeVariants,
3726
+ Nt as textareaVariants,
3727
+ wr as timelineItemVariants,
3728
+ Va as toast,
3729
+ at as toastAction,
3730
+ ot as useToast
1906
3731
  };
1907
3732
  //# sourceMappingURL=index.mjs.map