@zen-ui-capri/system 0.0.0-stage → 1.1.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.
Files changed (105) hide show
  1. package/.agents/skills/capri-zen-ui/SKILL.md +59 -0
  2. package/AGENTS.md +57 -0
  3. package/CLAUDE.md +7 -0
  4. package/LICENSE +21 -0
  5. package/README.md +93 -2
  6. package/bin/capri.mjs +1187 -0
  7. package/dist/lib/audio/ZenAudioController.d.ts +10 -0
  8. package/dist/lib/audio/ZenAudioController.d.ts.map +1 -0
  9. package/dist/lib/audio/useZenAudioSynth.d.ts +26 -0
  10. package/dist/lib/audio/useZenAudioSynth.d.ts.map +1 -0
  11. package/dist/lib/capri/capri-engine.d.ts +127 -0
  12. package/dist/lib/capri/capri-engine.d.ts.map +1 -0
  13. package/dist/lib/components/ZenAIConstruct.d.ts +24 -0
  14. package/dist/lib/components/ZenAIConstruct.d.ts.map +1 -0
  15. package/dist/lib/components/ZenAmbientBackground.d.ts +8 -0
  16. package/dist/lib/components/ZenAmbientBackground.d.ts.map +1 -0
  17. package/dist/lib/components/ZenBadge.d.ts +21 -0
  18. package/dist/lib/components/ZenBadge.d.ts.map +1 -0
  19. package/dist/lib/components/ZenButton.d.ts +24 -0
  20. package/dist/lib/components/ZenButton.d.ts.map +1 -0
  21. package/dist/lib/components/ZenCard.d.ts +36 -0
  22. package/dist/lib/components/ZenCard.d.ts.map +1 -0
  23. package/dist/lib/components/ZenDataDisplay.d.ts +50 -0
  24. package/dist/lib/components/ZenDataDisplay.d.ts.map +1 -0
  25. package/dist/lib/components/ZenDataTable.d.ts +20 -0
  26. package/dist/lib/components/ZenDataTable.d.ts.map +1 -0
  27. package/dist/lib/components/ZenDossierPanel.d.ts +33 -0
  28. package/dist/lib/components/ZenDossierPanel.d.ts.map +1 -0
  29. package/dist/lib/components/ZenDropdown.d.ts +19 -0
  30. package/dist/lib/components/ZenDropdown.d.ts.map +1 -0
  31. package/dist/lib/components/ZenFeedback.d.ts +24 -0
  32. package/dist/lib/components/ZenFeedback.d.ts.map +1 -0
  33. package/dist/lib/components/ZenForms.d.ts +84 -0
  34. package/dist/lib/components/ZenForms.d.ts.map +1 -0
  35. package/dist/lib/components/ZenHeading.d.ts +15 -0
  36. package/dist/lib/components/ZenHeading.d.ts.map +1 -0
  37. package/dist/lib/components/ZenIcon.d.ts +24 -0
  38. package/dist/lib/components/ZenIcon.d.ts.map +1 -0
  39. package/dist/lib/components/ZenInput.d.ts +12 -0
  40. package/dist/lib/components/ZenInput.d.ts.map +1 -0
  41. package/dist/lib/components/ZenModal.d.ts +12 -0
  42. package/dist/lib/components/ZenModal.d.ts.map +1 -0
  43. package/dist/lib/components/ZenNavbar.d.ts +11 -0
  44. package/dist/lib/components/ZenNavbar.d.ts.map +1 -0
  45. package/dist/lib/components/ZenNavigation.d.ts +52 -0
  46. package/dist/lib/components/ZenNavigation.d.ts.map +1 -0
  47. package/dist/lib/components/ZenOverlays.d.ts +48 -0
  48. package/dist/lib/components/ZenOverlays.d.ts.map +1 -0
  49. package/dist/lib/components/ZenSegmentedControl.d.ts +18 -0
  50. package/dist/lib/components/ZenSegmentedControl.d.ts.map +1 -0
  51. package/dist/lib/components/ZenSwitch.d.ts +11 -0
  52. package/dist/lib/components/ZenSwitch.d.ts.map +1 -0
  53. package/dist/lib/components/ZenTabs.d.ts +17 -0
  54. package/dist/lib/components/ZenTabs.d.ts.map +1 -0
  55. package/dist/lib/components/ZenTimelineCard.d.ts +14 -0
  56. package/dist/lib/components/ZenTimelineCard.d.ts.map +1 -0
  57. package/dist/lib/components/ZenToast.d.ts +18 -0
  58. package/dist/lib/components/ZenToast.d.ts.map +1 -0
  59. package/dist/lib/cosmos/ZenCosmosCanvas.d.ts +10 -0
  60. package/dist/lib/cosmos/ZenCosmosCanvas.d.ts.map +1 -0
  61. package/dist/lib/cosmos/ZenTelemetryHud.d.ts +45 -0
  62. package/dist/lib/cosmos/ZenTelemetryHud.d.ts.map +1 -0
  63. package/dist/lib/index.d.ts +33 -0
  64. package/dist/lib/index.d.ts.map +1 -0
  65. package/dist/lib/index.js +3922 -0
  66. package/dist/lib/theme/ZenThemeProvider.d.ts +47 -0
  67. package/dist/lib/theme/ZenThemeProvider.d.ts.map +1 -0
  68. package/dist/lib/tokens.css +888 -0
  69. package/dist/lib/universal/zen-universal.d.ts +77 -0
  70. package/dist/lib/universal/zen-universal.d.ts.map +1 -0
  71. package/dist/lib/universal/zen-universal.js +18 -0
  72. package/dist/lib/zen-universal-C0PD8AI9.js +1352 -0
  73. package/package.json +78 -4
  74. package/src/lib/audio/ZenAudioController.tsx +114 -0
  75. package/src/lib/audio/useZenAudioSynth.ts +289 -0
  76. package/src/lib/capri/capri-engine.ts +939 -0
  77. package/src/lib/components/ZenAIConstruct.tsx +594 -0
  78. package/src/lib/components/ZenAmbientBackground.tsx +210 -0
  79. package/src/lib/components/ZenBadge.tsx +111 -0
  80. package/src/lib/components/ZenButton.tsx +127 -0
  81. package/src/lib/components/ZenCard.tsx +180 -0
  82. package/src/lib/components/ZenDataDisplay.tsx +349 -0
  83. package/src/lib/components/ZenDataTable.tsx +143 -0
  84. package/src/lib/components/ZenDossierPanel.tsx +120 -0
  85. package/src/lib/components/ZenDropdown.tsx +208 -0
  86. package/src/lib/components/ZenFeedback.tsx +137 -0
  87. package/src/lib/components/ZenForms.tsx +664 -0
  88. package/src/lib/components/ZenHeading.tsx +63 -0
  89. package/src/lib/components/ZenIcon.tsx +220 -0
  90. package/src/lib/components/ZenInput.tsx +120 -0
  91. package/src/lib/components/ZenModal.tsx +103 -0
  92. package/src/lib/components/ZenNavbar.tsx +106 -0
  93. package/src/lib/components/ZenNavigation.tsx +300 -0
  94. package/src/lib/components/ZenOverlays.tsx +386 -0
  95. package/src/lib/components/ZenSegmentedControl.tsx +113 -0
  96. package/src/lib/components/ZenSwitch.tsx +63 -0
  97. package/src/lib/components/ZenTabs.tsx +103 -0
  98. package/src/lib/components/ZenTimelineCard.tsx +64 -0
  99. package/src/lib/components/ZenToast.tsx +96 -0
  100. package/src/lib/cosmos/ZenCosmosCanvas.tsx +931 -0
  101. package/src/lib/cosmos/ZenTelemetryHud.tsx +385 -0
  102. package/src/lib/index.ts +293 -0
  103. package/src/lib/styles/zen-tokens.css +888 -0
  104. package/src/lib/theme/ZenThemeProvider.tsx +328 -0
  105. package/src/lib/universal/zen-universal.ts +743 -0
@@ -0,0 +1,3922 @@
1
+ import { c as Ie, u as Le, C as he } from "./zen-universal-C0PD8AI9.js";
2
+ import { a as en, Z as tn, b as rn, d as nn, e as an, f as sn, g as ln, h as on, i as cn, j as dn, k as mn, l as un, m as pn, n as fn, o as vn, r as hn, p as bn, s as xn, q as gn, z as yn, t as zn } from "./zen-universal-C0PD8AI9.js";
3
+ import { jsxs as a, jsx as e, Fragment as ye } from "react/jsx-runtime";
4
+ import { useState as H, useRef as R, useEffect as q, useId as re, useCallback as ge, useMemo as le, useImperativeHandle as ot, Suspense as ct } from "react";
5
+ import { Loader2 as dt, Check as Ne, Copy as mt, CheckCircle2 as Pe, ArrowUpRight as Ze, ChevronDown as Ke, X as we, AlertTriangle as Ye, Info as Xe, ArrowUp as ut, ArrowDown as pt, ArrowUpDown as ft, Menu as vt, Radio as ht, Minimize2 as bt, Maximize2 as xt, Sparkles as Be, Terminal as gt, Activity as yt, Cpu as zt, ShieldAlert as Qe, FileText as Je, Minus as et, UploadCloud as Nt, Plus as wt, ChevronRight as tt, ChevronLeft as kt, Search as Ct, CornerDownLeft as St, TrendingUp as At, TrendingDown as Tt, Inbox as Et, Volume2 as He, VolumeX as _e, Disc3 as Mt } from "lucide-react";
6
+ import { Canvas as Rt, useFrame as It } from "@react-three/fiber";
7
+ import { EffectComposer as Lt, Bloom as Pt } from "@react-three/postprocessing";
8
+ import * as w from "three";
9
+ const Dt = {
10
+ sm: "px-3.5 py-1.5 text-xs",
11
+ md: "px-5 py-2.5 text-xs sm:text-sm",
12
+ lg: "px-6 py-3.5 text-sm"
13
+ }, $t = {
14
+ primary: "zen-btn-primary",
15
+ secondary: "zen-btn-secondary",
16
+ ghost: "zen-btn-ghost",
17
+ danger: "zen-btn-danger"
18
+ };
19
+ function ze({
20
+ variant: t = "primary",
21
+ size: r = "md",
22
+ pressed: n,
23
+ mono: m = !1,
24
+ loading: i = !1,
25
+ iconLeft: u,
26
+ iconRight: l,
27
+ disabled: s,
28
+ className: c = "",
29
+ children: o,
30
+ ...f
31
+ }) {
32
+ const d = n === !0 && t !== "primary" ? "bg-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)] border-[var(--zen-accent-primary)] shadow-[var(--zen-shadow-btn-primary)]" : "";
33
+ return /* @__PURE__ */ a(
34
+ "button",
35
+ {
36
+ type: "button",
37
+ "data-zen-occlude": "true",
38
+ "aria-pressed": n,
39
+ disabled: s || i,
40
+ className: `zen-btn-base zen-focus-ring ${$t[t]} ${Dt[r]} ${m ? "zen-font-mono" : "zen-font-sans"} ${d} ${c}`.trim(),
41
+ ...f,
42
+ children: [
43
+ i ? /* @__PURE__ */ e(dt, { className: "w-4 h-4 animate-spin shrink-0" }) : u && /* @__PURE__ */ e("span", { className: "shrink-0 inline-flex", children: u }),
44
+ /* @__PURE__ */ e("span", { children: o }),
45
+ l && /* @__PURE__ */ e("span", { className: "shrink-0 inline-flex", children: l })
46
+ ]
47
+ }
48
+ );
49
+ }
50
+ function rt({
51
+ value: t,
52
+ label: r = "COPY",
53
+ copiedLabel: n = "COPIED",
54
+ size: m = "md",
55
+ variant: i = "secondary",
56
+ className: u = ""
57
+ }) {
58
+ const [l, s] = H(!1), c = R(null);
59
+ return q(() => () => {
60
+ c.current !== null && window.clearTimeout(c.current);
61
+ }, []), /* @__PURE__ */ e(
62
+ ze,
63
+ {
64
+ variant: i,
65
+ size: m,
66
+ mono: !0,
67
+ onClick: () => {
68
+ navigator.clipboard.writeText(t), s(!0), c.current !== null && window.clearTimeout(c.current), c.current = window.setTimeout(() => s(!1), 2e3);
69
+ },
70
+ className: u,
71
+ iconLeft: l ? /* @__PURE__ */ e(Ne, { className: "w-3.5 h-3.5 text-[var(--zen-accent-primary)]" }) : /* @__PURE__ */ e(mt, { className: "w-3.5 h-3.5 text-[var(--zen-accent-primary)]" }),
72
+ children: l ? n : r
73
+ }
74
+ );
75
+ }
76
+ const Ot = {
77
+ gold: {
78
+ pill: "bg-[var(--zen-accent-subtle)] text-[var(--zen-accent-primary)] border-[var(--zen-accent-border)]",
79
+ dot: "bg-[var(--zen-accent-primary)]"
80
+ },
81
+ amber: {
82
+ pill: "bg-[color-mix(in_srgb,var(--zen-status-warning)_15%,transparent)] text-[var(--zen-status-warning)] border-[color-mix(in_srgb,var(--zen-status-warning)_45%,transparent)]",
83
+ dot: "bg-[var(--zen-status-warning)]"
84
+ },
85
+ emerald: {
86
+ pill: "bg-[color-mix(in_srgb,var(--zen-status-success)_15%,transparent)] text-[var(--zen-status-success)] border-[color-mix(in_srgb,var(--zen-status-success)_45%,transparent)]",
87
+ dot: "bg-[var(--zen-status-success)]"
88
+ },
89
+ coral: {
90
+ pill: "bg-[color-mix(in_srgb,var(--zen-status-danger)_15%,transparent)] text-[var(--zen-status-danger)] border-[color-mix(in_srgb,var(--zen-status-danger)_45%,transparent)]",
91
+ dot: "bg-[var(--zen-status-danger)]"
92
+ },
93
+ cyan: {
94
+ pill: "bg-[color-mix(in_srgb,var(--zen-status-info)_15%,transparent)] text-[var(--zen-status-info)] border-[color-mix(in_srgb,var(--zen-status-info)_45%,transparent)]",
95
+ dot: "bg-[var(--zen-status-info)]"
96
+ },
97
+ neutral: {
98
+ pill: "bg-[var(--zen-surface-subtle)] text-[var(--zen-ink-secondary)] border-[var(--zen-border-default)]",
99
+ dot: "bg-[var(--zen-ink-muted)]"
100
+ }
101
+ };
102
+ function Ue({
103
+ tone: t = "neutral",
104
+ pulse: r = !1,
105
+ icon: n,
106
+ children: m,
107
+ className: i = ""
108
+ }) {
109
+ const u = Ot[t];
110
+ return /* @__PURE__ */ a(
111
+ "span",
112
+ {
113
+ className: `inline-flex items-center gap-1.5 px-2.5 py-0.5 rounded-full border zen-font-mono text-[11px] font-medium tracking-wide ${u.pill} ${i}`.trim(),
114
+ children: [
115
+ r && /* @__PURE__ */ e(
116
+ "span",
117
+ {
118
+ className: `w-1.5 h-1.5 rounded-full animate-pulse ${u.dot}`,
119
+ "aria-hidden": "true"
120
+ }
121
+ ),
122
+ n && /* @__PURE__ */ e("span", { className: "shrink-0 inline-flex", children: n }),
123
+ /* @__PURE__ */ e("span", { children: m })
124
+ ]
125
+ }
126
+ );
127
+ }
128
+ function nt({ tags: t, className: r = "" }) {
129
+ return /* @__PURE__ */ e("div", { className: `flex flex-wrap gap-2 ${r}`.trim(), children: t.map((n) => /* @__PURE__ */ e(
130
+ "span",
131
+ {
132
+ className: "px-3 py-1 rounded-full border border-[var(--zen-border-default)] bg-[var(--zen-surface-subtle)] zen-font-mono text-[11px] text-[var(--zen-ink-secondary)]",
133
+ children: n
134
+ },
135
+ n
136
+ )) });
137
+ }
138
+ function je({ keys: t, className: r = "" }) {
139
+ return /* @__PURE__ */ e("span", { className: `inline-flex items-center gap-1 ${r}`.trim(), children: t.map((n) => /* @__PURE__ */ e(
140
+ "kbd",
141
+ {
142
+ className: "px-1.5 py-0.5 rounded-md border border-[var(--zen-border-default)] bg-[var(--zen-surface-subtle)] zen-font-mono text-[11px] text-[var(--zen-ink-secondary)] shadow-xs",
143
+ children: n
144
+ },
145
+ n
146
+ )) });
147
+ }
148
+ const Ft = {
149
+ hero: "text-4xl sm:text-5xl lg:text-6xl font-extrabold tracking-tight leading-[1.03]",
150
+ display: "text-3xl sm:text-5xl font-bold tracking-tight leading-[1.04]",
151
+ section: "text-2xl sm:text-4xl font-bold tracking-tight leading-tight",
152
+ title: "text-xl sm:text-2xl font-bold tracking-tight leading-snug",
153
+ subtitle: "text-lg sm:text-xl font-bold tracking-tight leading-snug"
154
+ };
155
+ function lr({
156
+ as: t = "h2",
157
+ size: r = "display",
158
+ eyebrow: n,
159
+ eyebrowIcon: m,
160
+ accentText: i,
161
+ subtitle: u,
162
+ children: l,
163
+ className: s = ""
164
+ }) {
165
+ return /* @__PURE__ */ a("div", { className: s, children: [
166
+ n && /* @__PURE__ */ a("div", { className: "inline-flex items-center gap-2 zen-telemetry-label text-[var(--zen-accent-primary)] mb-2.5", children: [
167
+ m && /* @__PURE__ */ e("span", { className: "shrink-0", children: m }),
168
+ /* @__PURE__ */ e("span", { children: n })
169
+ ] }),
170
+ /* @__PURE__ */ a(
171
+ t,
172
+ {
173
+ className: `zen-font-display text-[var(--zen-ink-primary)] ${Ft[r]}`,
174
+ children: [
175
+ l,
176
+ i && /* @__PURE__ */ a(ye, { children: [
177
+ " ",
178
+ /* @__PURE__ */ e("span", { className: "zen-font-serif italic font-normal text-[var(--zen-accent-primary)]", children: i })
179
+ ] })
180
+ ]
181
+ }
182
+ ),
183
+ u && /* @__PURE__ */ e("div", { className: "zen-font-serif italic text-xl sm:text-2xl text-[var(--zen-accent-primary)] mt-2", children: u })
184
+ ] });
185
+ }
186
+ const Vt = {
187
+ none: "p-0",
188
+ sm: "p-3.5 sm:p-5",
189
+ md: "p-4 sm:p-6 lg:p-8",
190
+ lg: "p-5 sm:p-8 lg:p-12"
191
+ };
192
+ function De({
193
+ variant: t = "static",
194
+ selected: r = !1,
195
+ disabled: n = !1,
196
+ padding: m = "md",
197
+ onSelect: i,
198
+ selectOnHover: u = !1,
199
+ className: l = "",
200
+ children: s,
201
+ onClick: c,
202
+ onMouseEnter: o,
203
+ onKeyDown: f,
204
+ ...p
205
+ }) {
206
+ const d = t === "interactive" || !!i, v = r || t === "selected";
207
+ return /* @__PURE__ */ e(
208
+ "div",
209
+ {
210
+ "data-zen-occlude": "true",
211
+ "data-selected": v ? "true" : "false",
212
+ "data-disabled": n ? "true" : "false",
213
+ role: d ? "button" : void 0,
214
+ "aria-pressed": d ? v : void 0,
215
+ "aria-disabled": n ? !0 : void 0,
216
+ tabIndex: d && !n ? 0 : void 0,
217
+ onClick: (E) => {
218
+ c == null || c(E), n || i == null || i();
219
+ },
220
+ onMouseEnter: (E) => {
221
+ o == null || o(E), !n && u && (i == null || i());
222
+ },
223
+ onKeyDown: (E) => {
224
+ f == null || f(E), !n && d && (E.key === "Enter" || E.key === " ") && (E.preventDefault(), i == null || i());
225
+ },
226
+ className: `rounded-3xl ${d ? "zen-surface-interactive zen-focus-ring cursor-pointer" : v ? "zen-surface-selected" : "zen-surface-static"} ${Vt[m]} ${n ? "opacity-50 pointer-events-none" : ""} ${l}`.trim(),
227
+ ...p,
228
+ children: s
229
+ }
230
+ );
231
+ }
232
+ function Gt({
233
+ metrics: t,
234
+ columns: r = 4,
235
+ className: n = ""
236
+ }) {
237
+ return /* @__PURE__ */ e(
238
+ "div",
239
+ {
240
+ className: `grid ${r === 2 ? "grid-cols-2" : r === 3 ? "grid-cols-2 sm:grid-cols-3" : "grid-cols-2 sm:grid-cols-4"} gap-2.5 p-3 rounded-2xl bg-[var(--zen-surface-subtle)] border border-[var(--zen-border-subtle)] text-center ${n}`.trim(),
241
+ children: t.map((i) => /* @__PURE__ */ a("div", { children: [
242
+ /* @__PURE__ */ e(
243
+ "div",
244
+ {
245
+ className: `zen-font-display font-bold text-xs sm:text-sm ${i.accent ? "text-[var(--zen-accent-primary)]" : "text-[var(--zen-ink-primary)]"}`,
246
+ children: i.value
247
+ }
248
+ ),
249
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label mt-0.5", children: i.label })
250
+ ] }, i.label))
251
+ }
252
+ );
253
+ }
254
+ function Zt({
255
+ label: t = "SYSTEM ARCHITECTURE NOTE",
256
+ children: r,
257
+ className: n = ""
258
+ }) {
259
+ return /* @__PURE__ */ a(
260
+ "div",
261
+ {
262
+ className: `p-4 rounded-2xl bg-[var(--zen-surface-subtle)] border border-[var(--zen-border-default)] ${n}`.trim(),
263
+ children: [
264
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label text-[var(--zen-accent-secondary)] mb-1", children: t }),
265
+ /* @__PURE__ */ e("p", { className: "text-sm leading-relaxed text-[var(--zen-ink-secondary)]", children: r })
266
+ ]
267
+ }
268
+ );
269
+ }
270
+ function at({ items: t, className: r = "" }) {
271
+ return /* @__PURE__ */ e("ul", { className: `space-y-2 ${r}`.trim(), children: t.map((n) => /* @__PURE__ */ a(
272
+ "li",
273
+ {
274
+ className: "flex items-start gap-2 text-xs sm:text-sm text-[var(--zen-ink-secondary)]",
275
+ children: [
276
+ /* @__PURE__ */ e(
277
+ Pe,
278
+ {
279
+ className: "w-3.5 h-3.5 text-[var(--zen-accent-primary)] shrink-0 mt-0.5",
280
+ "aria-hidden": "true"
281
+ }
282
+ ),
283
+ /* @__PURE__ */ e("span", { children: n })
284
+ ]
285
+ },
286
+ n
287
+ )) });
288
+ }
289
+ function or({
290
+ item: t,
291
+ footerSlot: r,
292
+ className: n = ""
293
+ }) {
294
+ return /* @__PURE__ */ a(De, { variant: "selected", padding: "md", className: n, children: [
295
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between zen-telemetry-label text-[var(--zen-accent-primary)] mb-3", children: [
296
+ /* @__PURE__ */ a("span", { children: [
297
+ t.categoryLabel,
298
+ " // ",
299
+ t.index
300
+ ] }),
301
+ /* @__PURE__ */ e("span", { children: t.year })
302
+ ] }),
303
+ /* @__PURE__ */ e("h3", { className: "zen-font-serif italic text-4xl sm:text-5xl mb-1 text-[var(--zen-ink-primary)]", children: t.title }),
304
+ t.role && /* @__PURE__ */ e("div", { className: "zen-font-mono text-xs text-[var(--zen-accent-secondary)] mb-2", children: t.role }),
305
+ /* @__PURE__ */ e("div", { className: "zen-font-mono text-xs text-[var(--zen-ink-muted)] mb-5", children: t.subtitle }),
306
+ t.metrics && t.metrics.length > 0 && /* @__PURE__ */ e(Gt, { metrics: t.metrics, className: "mb-5" }),
307
+ /* @__PURE__ */ e(
308
+ Zt,
309
+ {
310
+ label: t.engineeringLabel ?? "SYSTEM ARCHITECTURE NOTE",
311
+ className: "mb-5",
312
+ children: t.engineeringNote
313
+ }
314
+ ),
315
+ t.highlights && t.highlights.length > 0 && /* @__PURE__ */ e(at, { items: t.highlights, className: "mb-6" }),
316
+ /* @__PURE__ */ e(nt, { tags: t.tags, className: "mb-6" }),
317
+ (t.primaryAction || t.secondaryAction) && /* @__PURE__ */ a("div", { className: "flex flex-col sm:flex-row gap-3", children: [
318
+ t.primaryAction && /* @__PURE__ */ a(
319
+ "a",
320
+ {
321
+ href: t.primaryAction.href,
322
+ target: "_blank",
323
+ rel: "noopener noreferrer",
324
+ className: "zen-btn-base zen-btn-primary zen-focus-ring flex-1 py-3 px-5 text-xs",
325
+ children: [
326
+ t.primaryAction.icon,
327
+ /* @__PURE__ */ e("span", { children: t.primaryAction.label }),
328
+ /* @__PURE__ */ e(Ze, { className: "w-4 h-4" })
329
+ ]
330
+ }
331
+ ),
332
+ t.secondaryAction && /* @__PURE__ */ a(
333
+ "a",
334
+ {
335
+ href: t.secondaryAction.href,
336
+ target: "_blank",
337
+ rel: "noopener noreferrer",
338
+ className: "zen-btn-base zen-btn-secondary zen-focus-ring flex-1 py-3 px-5 text-xs",
339
+ children: [
340
+ t.secondaryAction.icon,
341
+ /* @__PURE__ */ e("span", { children: t.secondaryAction.label }),
342
+ /* @__PURE__ */ e(Ze, { className: "w-4 h-4" })
343
+ ]
344
+ }
345
+ )
346
+ ] }),
347
+ r && /* @__PURE__ */ e("div", { className: "mt-4", children: r })
348
+ ] });
349
+ }
350
+ function cr({
351
+ period: t,
352
+ location: r,
353
+ title: n,
354
+ institution: m,
355
+ summary: i,
356
+ bullets: u,
357
+ tags: l,
358
+ icon: s,
359
+ className: c = ""
360
+ }) {
361
+ return /* @__PURE__ */ a(
362
+ De,
363
+ {
364
+ variant: "static",
365
+ padding: "md",
366
+ className: `flex flex-col justify-between ${c}`.trim(),
367
+ children: [
368
+ /* @__PURE__ */ a("div", { children: [
369
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between gap-2 zen-font-mono text-xs mb-4", children: [
370
+ /* @__PURE__ */ a("span", { className: "inline-flex items-center gap-1.5 text-[var(--zen-accent-primary)]", children: [
371
+ s,
372
+ /* @__PURE__ */ e("span", { children: t })
373
+ ] }),
374
+ /* @__PURE__ */ e("span", { className: "text-[var(--zen-ink-muted)]", children: r })
375
+ ] }),
376
+ /* @__PURE__ */ e("h3", { className: "zen-font-display text-xl sm:text-2xl font-bold text-[var(--zen-ink-primary)]", children: n }),
377
+ /* @__PURE__ */ e("div", { className: "zen-font-serif italic text-xl text-[var(--zen-accent-primary)] mt-0.5 mb-3", children: m }),
378
+ /* @__PURE__ */ e("p", { className: "text-sm text-[var(--zen-ink-secondary)] leading-relaxed mb-4", children: i }),
379
+ u && u.length > 0 && /* @__PURE__ */ e(at, { items: u, className: "mb-5" })
380
+ ] }),
381
+ /* @__PURE__ */ e("div", { className: "pt-3 border-t border-[var(--zen-border-subtle)]", children: /* @__PURE__ */ e(nt, { tags: l }) })
382
+ ]
383
+ }
384
+ );
385
+ }
386
+ function st({
387
+ items: t,
388
+ value: r,
389
+ onChange: n,
390
+ ariaLabel: m,
391
+ size: i = "md",
392
+ className: u = ""
393
+ }) {
394
+ const l = R([]), s = t.map((p, d) => p.disabled ? -1 : d).filter((p) => p !== -1), c = (p) => {
395
+ var v;
396
+ const d = t[p];
397
+ !d || d.disabled || ((v = l.current[p]) == null || v.focus(), n(d.value));
398
+ }, o = (p, d) => {
399
+ const v = s.indexOf(d);
400
+ if (v !== -1)
401
+ if (p.key === "ArrowRight" || p.key === "ArrowDown") {
402
+ p.preventDefault();
403
+ const h = s[(v + 1) % s.length];
404
+ c(h);
405
+ } else if (p.key === "ArrowLeft" || p.key === "ArrowUp") {
406
+ p.preventDefault();
407
+ const h = s[(v - 1 + s.length) % s.length];
408
+ c(h);
409
+ } else p.key === "Home" ? (p.preventDefault(), c(s[0])) : p.key === "End" && (p.preventDefault(), c(s[s.length - 1]));
410
+ }, f = i === "sm" ? "px-2.5 sm:px-3 py-1.5 text-[11px]" : "px-3.5 sm:px-4 py-2 text-xs";
411
+ return /* @__PURE__ */ e(
412
+ "div",
413
+ {
414
+ role: "radiogroup",
415
+ "aria-label": m,
416
+ "data-zen-occlude": "true",
417
+ className: `inline-flex flex-wrap items-center gap-1.5 p-1.5 max-w-full rounded-2xl zen-surface-static ${u}`.trim(),
418
+ children: t.map((p, d) => {
419
+ const v = p.value === r;
420
+ return /* @__PURE__ */ a(
421
+ "button",
422
+ {
423
+ ref: (h) => {
424
+ l.current[d] = h;
425
+ },
426
+ type: "button",
427
+ role: "radio",
428
+ "aria-checked": v,
429
+ disabled: p.disabled,
430
+ tabIndex: v ? 0 : -1,
431
+ onClick: () => n(p.value),
432
+ onKeyDown: (h) => o(h, d),
433
+ className: `zen-focus-ring rounded-xl zen-font-mono ${f} inline-flex items-center gap-1.5 transition-all cursor-pointer ${v ? "bg-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)] font-semibold shadow-sm" : "text-[var(--zen-ink-secondary)] hover:text-[var(--zen-ink-primary)] hover:bg-[var(--zen-surface-subtle)]"} ${p.disabled ? "opacity-40 cursor-not-allowed" : ""}`.trim(),
434
+ children: [
435
+ p.icon && /* @__PURE__ */ e("span", { className: "shrink-0 inline-flex", children: p.icon }),
436
+ /* @__PURE__ */ e("span", { children: p.label }),
437
+ p.count !== void 0 && /* @__PURE__ */ e(
438
+ "span",
439
+ {
440
+ className: `px-1.5 py-0.2 rounded-full text-[10px] ${v ? "bg-black/20 text-[var(--zen-ink-on-accent)]" : "bg-[var(--zen-surface-subtle)] text-[var(--zen-ink-muted)]"}`,
441
+ children: p.count
442
+ }
443
+ )
444
+ ]
445
+ },
446
+ p.value
447
+ );
448
+ })
449
+ }
450
+ );
451
+ }
452
+ function dr({
453
+ tabs: t,
454
+ activeTab: r,
455
+ onChange: n,
456
+ ariaLabel: m,
457
+ className: i = ""
458
+ }) {
459
+ const u = R([]), l = t.map((o, f) => o.disabled ? -1 : f).filter((o) => o !== -1), s = (o) => {
460
+ var p;
461
+ const f = t[o];
462
+ !f || f.disabled || ((p = u.current[o]) == null || p.focus(), n(f.id));
463
+ }, c = (o, f) => {
464
+ const p = l.indexOf(f);
465
+ if (p !== -1)
466
+ if (o.key === "ArrowRight") {
467
+ o.preventDefault();
468
+ const d = l[(p + 1) % l.length];
469
+ s(d);
470
+ } else if (o.key === "ArrowLeft") {
471
+ o.preventDefault();
472
+ const d = l[(p - 1 + l.length) % l.length];
473
+ s(d);
474
+ } else o.key === "Home" ? (o.preventDefault(), s(l[0])) : o.key === "End" && (o.preventDefault(), s(l[l.length - 1]));
475
+ };
476
+ return /* @__PURE__ */ e(
477
+ "div",
478
+ {
479
+ role: "tablist",
480
+ "aria-label": m,
481
+ "data-zen-occlude": "true",
482
+ className: `flex flex-wrap items-center gap-1.5 max-w-full border-b border-[var(--zen-border-subtle)] pb-2 ${i}`.trim(),
483
+ children: t.map((o, f) => {
484
+ const p = o.id === r;
485
+ return /* @__PURE__ */ a(
486
+ "button",
487
+ {
488
+ ref: (d) => {
489
+ u.current[f] = d;
490
+ },
491
+ type: "button",
492
+ role: "tab",
493
+ "aria-selected": p,
494
+ disabled: o.disabled,
495
+ tabIndex: p ? 0 : -1,
496
+ onClick: () => n(o.id),
497
+ onKeyDown: (d) => c(d, f),
498
+ className: `zen-focus-ring px-3 sm:px-4 py-2 rounded-xl zen-font-mono text-xs inline-flex items-center gap-2 shrink-0 transition-all cursor-pointer ${p ? "bg-[var(--zen-accent-subtle)] text-[var(--zen-accent-primary)] border border-[var(--zen-accent-border)] font-semibold" : "text-[var(--zen-ink-secondary)] hover:text-[var(--zen-ink-primary)] hover:bg-[var(--zen-surface-subtle)] border border-transparent"} ${o.disabled ? "opacity-40 cursor-not-allowed" : ""}`.trim(),
499
+ children: [
500
+ o.icon && /* @__PURE__ */ e("span", { className: "shrink-0 inline-flex", children: o.icon }),
501
+ /* @__PURE__ */ e("span", { children: o.label }),
502
+ o.badge !== void 0 && /* @__PURE__ */ e("span", { className: "px-1.5 py-0.5 rounded-full text-[10px] bg-[var(--zen-surface-subtle)] text-[var(--zen-ink-muted)]", children: o.badge })
503
+ ]
504
+ },
505
+ o.id
506
+ );
507
+ })
508
+ }
509
+ );
510
+ }
511
+ function mr({
512
+ label: t,
513
+ hint: r,
514
+ error: n,
515
+ iconLeft: m,
516
+ iconRight: i,
517
+ mono: u = !1,
518
+ capriGuard: l = !0,
519
+ id: s,
520
+ value: c,
521
+ defaultValue: o,
522
+ onChange: f,
523
+ className: p = "",
524
+ ...d
525
+ }) {
526
+ const v = re(), h = s ?? v, T = `${h}-desc`, [E, x] = H(
527
+ typeof o == "string" ? o : ""
528
+ ), g = typeof c == "string" ? c : typeof c == "number" ? String(c) : E, z = l ? Ie.scanInputSecurity(g) : null, $ = z && !z.safe && z.threats[0] ? `CAPRI GUARD BLOCKED [${z.threats[0].category}]: ${z.threats[0].patternName}` : void 0, N = n || $, y = !!(N || r), I = (A) => {
529
+ c === void 0 && x(A.target.value), f == null || f(A);
530
+ };
531
+ return /* @__PURE__ */ a("div", { "data-zen-occlude": "true", className: `flex flex-col gap-1.5 ${p}`.trim(), children: [
532
+ /* @__PURE__ */ e(
533
+ "label",
534
+ {
535
+ htmlFor: h,
536
+ className: "zen-telemetry-label text-[var(--zen-ink-secondary)]",
537
+ children: t
538
+ }
539
+ ),
540
+ /* @__PURE__ */ a(
541
+ "div",
542
+ {
543
+ className: `flex items-center gap-2.5 px-3.5 py-2.5 rounded-xl bg-[var(--zen-surface-1)] border transition-colors ${N ? "border-[var(--zen-status-danger)]" : "border-[var(--zen-border-default)] focus-within:border-[var(--zen-accent-primary)]"}`,
544
+ children: [
545
+ m && /* @__PURE__ */ e("span", { className: "text-[var(--zen-ink-muted)] shrink-0", children: m }),
546
+ /* @__PURE__ */ e(
547
+ "input",
548
+ {
549
+ id: h,
550
+ value: c,
551
+ defaultValue: o,
552
+ onChange: I,
553
+ "aria-invalid": !!N,
554
+ "aria-describedby": y ? T : void 0,
555
+ "data-capri-threat": z && !z.safe && z.threats[0] ? z.threats[0].category : void 0,
556
+ className: `w-full bg-transparent text-sm text-[var(--zen-ink-primary)] placeholder:text-[var(--zen-ink-muted)] focus:outline-none ${u ? "zen-font-mono" : "zen-font-sans"}`,
557
+ ...d
558
+ }
559
+ ),
560
+ i && /* @__PURE__ */ e("span", { className: "text-[var(--zen-ink-muted)] shrink-0", children: i })
561
+ ]
562
+ }
563
+ ),
564
+ y && /* @__PURE__ */ e(
565
+ "span",
566
+ {
567
+ id: T,
568
+ className: `zen-font-mono text-[11px] ${N ? "text-[var(--zen-status-danger)]" : "text-[var(--zen-ink-muted)]"}`,
569
+ children: N ?? r
570
+ }
571
+ )
572
+ ] });
573
+ }
574
+ function ur({
575
+ label: t,
576
+ options: r,
577
+ value: n,
578
+ onChange: m,
579
+ ariaLabel: i,
580
+ align: u = "start",
581
+ className: l = ""
582
+ }) {
583
+ const [s, c] = H(!1), [o, f] = H(
584
+ () => Math.max(
585
+ 0,
586
+ r.findIndex((x) => x.value === n)
587
+ )
588
+ ), p = R(null), d = R(null), v = re(), h = r.find((x) => x.value === n) ?? r[0];
589
+ q(() => {
590
+ const x = r.findIndex((g) => g.value === n);
591
+ x !== -1 && f(x);
592
+ }, [n, r]), q(() => {
593
+ if (!s) return;
594
+ const x = (g) => {
595
+ p.current && !p.current.contains(g.target) && c(!1);
596
+ };
597
+ return window.addEventListener("mousedown", x), () => window.removeEventListener("mousedown", x);
598
+ }, [s]);
599
+ const T = (x) => {
600
+ var g;
601
+ m(x), c(!1), (g = d.current) == null || g.focus();
602
+ }, E = (x) => {
603
+ var g;
604
+ if (!s) {
605
+ (x.key === "ArrowDown" || x.key === "ArrowUp" || x.key === "Enter" || x.key === " ") && (x.preventDefault(), c(!0));
606
+ return;
607
+ }
608
+ if (x.key === "Escape")
609
+ x.preventDefault(), c(!1), (g = d.current) == null || g.focus();
610
+ else if (x.key === "ArrowDown")
611
+ x.preventDefault(), f((z) => (z + 1) % r.length);
612
+ else if (x.key === "ArrowUp")
613
+ x.preventDefault(), f((z) => (z - 1 + r.length) % r.length);
614
+ else if (x.key === "Enter" || x.key === " ") {
615
+ x.preventDefault();
616
+ const z = r[o];
617
+ z && !z.disabled && T(z.value);
618
+ } else x.key === "Tab" && c(!1);
619
+ };
620
+ return /* @__PURE__ */ a(
621
+ "div",
622
+ {
623
+ ref: p,
624
+ "data-zen-occlude": "true",
625
+ className: `relative flex flex-col gap-1.5 min-w-0 ${l}`.trim(),
626
+ children: [
627
+ t && /* @__PURE__ */ e("span", { className: "zen-telemetry-label text-[var(--zen-ink-secondary)]", children: t }),
628
+ /* @__PURE__ */ a(
629
+ "button",
630
+ {
631
+ ref: d,
632
+ type: "button",
633
+ "aria-haspopup": "listbox",
634
+ "aria-expanded": s,
635
+ "aria-controls": v,
636
+ "aria-label": i ?? t,
637
+ onClick: () => c((x) => !x),
638
+ onKeyDown: E,
639
+ className: "zen-focus-ring flex items-center justify-between gap-3 px-3.5 py-2.5 rounded-xl bg-[var(--zen-surface-1)] border border-[var(--zen-border-default)] hover:border-[var(--zen-border-strong)] text-left text-xs sm:text-sm text-[var(--zen-ink-primary)] cursor-pointer transition-colors",
640
+ children: [
641
+ /* @__PURE__ */ a("span", { className: "inline-flex items-center gap-2 truncate min-w-0", children: [
642
+ (h == null ? void 0 : h.icon) && /* @__PURE__ */ e("span", { className: "text-[var(--zen-accent-primary)] shrink-0", children: h.icon }),
643
+ /* @__PURE__ */ e("span", { className: "zen-font-mono font-medium truncate", children: h == null ? void 0 : h.label })
644
+ ] }),
645
+ /* @__PURE__ */ e(
646
+ Ke,
647
+ {
648
+ className: `w-4 h-4 text-[var(--zen-ink-muted)] shrink-0 transition-transform ${s ? "rotate-180 text-[var(--zen-accent-primary)]" : ""}`
649
+ }
650
+ )
651
+ ]
652
+ }
653
+ ),
654
+ s && /* @__PURE__ */ e(
655
+ "ul",
656
+ {
657
+ id: v,
658
+ role: "listbox",
659
+ "aria-label": i ?? t,
660
+ className: `absolute z-50 top-full mt-2 w-full max-w-[calc(100vw-2rem)] max-h-64 overflow-y-auto p-1.5 rounded-2xl bg-[var(--zen-bg-elevated)] border border-[var(--zen-border-strong)] shadow-[var(--zen-shadow-hud)] backdrop-blur-xl ${u === "end" ? "right-0" : "left-0"}`,
661
+ children: r.map((x, g) => {
662
+ const z = x.value === n, $ = g === o;
663
+ return /* @__PURE__ */ a(
664
+ "li",
665
+ {
666
+ role: "option",
667
+ "aria-selected": z,
668
+ "aria-disabled": x.disabled,
669
+ onMouseEnter: () => f(g),
670
+ onMouseDown: (N) => {
671
+ N.preventDefault(), x.disabled || T(x.value);
672
+ },
673
+ className: `flex items-center justify-between gap-3 px-3 py-2 rounded-xl cursor-pointer transition-colors ${$ ? "bg-[var(--zen-accent-subtle)] text-[var(--zen-ink-primary)]" : "text-[var(--zen-ink-secondary)]"} ${x.disabled ? "opacity-40 cursor-not-allowed" : ""}`,
674
+ children: [
675
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2.5 min-w-0", children: [
676
+ x.icon && /* @__PURE__ */ e("span", { className: "text-[var(--zen-accent-primary)] shrink-0", children: x.icon }),
677
+ /* @__PURE__ */ a("div", { className: "min-w-0", children: [
678
+ /* @__PURE__ */ e("div", { className: "zen-font-mono text-xs font-medium truncate", children: x.label }),
679
+ x.description && /* @__PURE__ */ e("div", { className: "text-[11px] text-[var(--zen-ink-muted)] truncate", children: x.description })
680
+ ] })
681
+ ] }),
682
+ z && /* @__PURE__ */ e(Ne, { className: "w-3.5 h-3.5 text-[var(--zen-accent-primary)] shrink-0" })
683
+ ]
684
+ },
685
+ x.value
686
+ );
687
+ })
688
+ }
689
+ )
690
+ ]
691
+ }
692
+ );
693
+ }
694
+ function pr({
695
+ checked: t,
696
+ onChange: r,
697
+ label: n,
698
+ description: m,
699
+ disabled: i = !1,
700
+ className: u = ""
701
+ }) {
702
+ const l = re();
703
+ return /* @__PURE__ */ a(
704
+ "div",
705
+ {
706
+ "data-zen-occlude": "true",
707
+ className: `flex items-center justify-between gap-4 ${u}`.trim(),
708
+ children: [
709
+ /* @__PURE__ */ a("div", { className: "min-w-0", children: [
710
+ /* @__PURE__ */ e(
711
+ "div",
712
+ {
713
+ id: l,
714
+ className: "text-sm font-medium text-[var(--zen-ink-primary)]",
715
+ children: n
716
+ }
717
+ ),
718
+ m && /* @__PURE__ */ e("div", { className: "zen-font-mono text-[11px] text-[var(--zen-ink-muted)] mt-0.5", children: m })
719
+ ] }),
720
+ /* @__PURE__ */ e(
721
+ "button",
722
+ {
723
+ type: "button",
724
+ role: "switch",
725
+ "aria-labelledby": l,
726
+ "aria-checked": t,
727
+ disabled: i,
728
+ onClick: () => r(!t),
729
+ className: `zen-focus-ring relative inline-flex h-6 w-11 shrink-0 items-center rounded-full border transition-colors cursor-pointer ${t ? "bg-[var(--zen-accent-primary)] border-[var(--zen-accent-primary)]" : "bg-[var(--zen-surface-subtle)] border-[var(--zen-border-control)]"} ${i ? "opacity-40 cursor-not-allowed" : ""}`,
730
+ children: /* @__PURE__ */ e(
731
+ "span",
732
+ {
733
+ className: `inline-block h-4 w-4 rounded-full transition-transform ${t ? "translate-x-5 bg-[var(--zen-ink-on-accent)]" : "translate-x-1 bg-[var(--zen-ink-primary)]"}`
734
+ }
735
+ )
736
+ }
737
+ )
738
+ ]
739
+ }
740
+ );
741
+ }
742
+ function fr({
743
+ open: t,
744
+ onClose: r,
745
+ eyebrow: n = "SYSTEM DIALOG",
746
+ title: m,
747
+ subtitle: i,
748
+ footer: u,
749
+ children: l
750
+ }) {
751
+ const s = re(), c = R(null);
752
+ return q(() => {
753
+ var p;
754
+ if (!t) return;
755
+ const o = document.activeElement;
756
+ (p = c.current) == null || p.focus();
757
+ const f = (d) => {
758
+ d.key === "Escape" && (d.preventDefault(), r());
759
+ };
760
+ return window.addEventListener("keydown", f), () => {
761
+ window.removeEventListener("keydown", f), o == null || o.focus();
762
+ };
763
+ }, [t, r]), t ? /* @__PURE__ */ e(
764
+ "div",
765
+ {
766
+ "data-zen-occlude": "true",
767
+ className: "fixed inset-0 z-50 flex items-center justify-center p-3 sm:p-6 bg-black/70 backdrop-blur-md",
768
+ onMouseDown: (o) => {
769
+ o.target === o.currentTarget && r();
770
+ },
771
+ children: /* @__PURE__ */ a(
772
+ "div",
773
+ {
774
+ role: "dialog",
775
+ "aria-modal": "true",
776
+ "aria-labelledby": s,
777
+ className: "w-full max-w-xl max-h-[90dvh] overflow-y-auto rounded-3xl zen-surface-selected p-5 sm:p-8 shadow-2xl",
778
+ children: [
779
+ /* @__PURE__ */ a("div", { className: "flex items-start justify-between gap-4 mb-4", children: [
780
+ /* @__PURE__ */ a("div", { className: "min-w-0", children: [
781
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label text-[var(--zen-accent-primary)] mb-1", children: n }),
782
+ /* @__PURE__ */ e(
783
+ "h2",
784
+ {
785
+ id: s,
786
+ className: "zen-font-display text-xl sm:text-3xl font-bold text-[var(--zen-ink-primary)]",
787
+ children: m
788
+ }
789
+ ),
790
+ i && /* @__PURE__ */ e("div", { className: "zen-font-serif italic text-base sm:text-lg text-[var(--zen-accent-primary)] mt-0.5", children: i })
791
+ ] }),
792
+ /* @__PURE__ */ e(
793
+ "button",
794
+ {
795
+ ref: c,
796
+ type: "button",
797
+ "aria-label": "Close dialog",
798
+ onClick: r,
799
+ className: "zen-focus-ring p-2 rounded-full border border-[var(--zen-border-default)] hover:border-[var(--zen-accent-primary)] text-[var(--zen-ink-secondary)] hover:text-[var(--zen-ink-primary)] cursor-pointer transition-colors shrink-0",
800
+ children: /* @__PURE__ */ e(we, { className: "w-4 h-4" })
801
+ }
802
+ )
803
+ ] }),
804
+ /* @__PURE__ */ e("div", { className: "text-sm text-[var(--zen-ink-secondary)] leading-relaxed", children: l }),
805
+ u && /* @__PURE__ */ e("div", { className: "mt-6 pt-4 border-t border-[var(--zen-border-subtle)] flex flex-wrap items-center justify-end gap-3", children: u })
806
+ ]
807
+ }
808
+ )
809
+ }
810
+ ) : null;
811
+ }
812
+ const Bt = {
813
+ info: /* @__PURE__ */ e(Xe, { className: "w-4 h-4 text-[var(--zen-status-info)] shrink-0" }),
814
+ success: /* @__PURE__ */ e(Pe, { className: "w-4 h-4 text-[var(--zen-status-success)] shrink-0" }),
815
+ warning: /* @__PURE__ */ e(Ye, { className: "w-4 h-4 text-[var(--zen-accent-primary)] shrink-0" })
816
+ };
817
+ function vr({ toasts: t, onDismiss: r }) {
818
+ return t.length === 0 ? null : /* @__PURE__ */ e(
819
+ "div",
820
+ {
821
+ "aria-live": "polite",
822
+ "data-zen-occlude": "true",
823
+ className: "fixed bottom-4 inset-x-4 sm:inset-x-auto sm:bottom-6 sm:right-6 z-50 flex flex-col gap-2.5 sm:max-w-sm sm:w-full pointer-events-none",
824
+ children: t.map((n) => {
825
+ const m = n.tone ?? "info";
826
+ return /* @__PURE__ */ a(
827
+ "div",
828
+ {
829
+ role: "status",
830
+ className: "pointer-events-auto flex items-start justify-between gap-3 p-4 rounded-2xl bg-[var(--zen-bg-elevated)] border border-[var(--zen-border-strong)] shadow-[var(--zen-shadow-hud)] backdrop-blur-xl",
831
+ children: [
832
+ /* @__PURE__ */ a("div", { className: "flex items-start gap-2.5 min-w-0", children: [
833
+ /* @__PURE__ */ e("div", { className: "mt-0.5", children: Bt[m] }),
834
+ /* @__PURE__ */ a("div", { className: "min-w-0", children: [
835
+ /* @__PURE__ */ e("div", { className: "zen-font-mono text-xs font-semibold text-[var(--zen-ink-primary)]", children: n.title }),
836
+ n.detail && /* @__PURE__ */ e("div", { className: "text-xs text-[var(--zen-ink-secondary)] mt-0.5 break-words", children: n.detail })
837
+ ] })
838
+ ] }),
839
+ /* @__PURE__ */ e(
840
+ "button",
841
+ {
842
+ type: "button",
843
+ "aria-label": "Dismiss notification",
844
+ onClick: () => r(n.id),
845
+ className: "zen-focus-ring p-1 rounded-lg text-[var(--zen-ink-muted)] hover:text-[var(--zen-ink-primary)] cursor-pointer shrink-0",
846
+ children: /* @__PURE__ */ e(we, { className: "w-3.5 h-3.5" })
847
+ }
848
+ )
849
+ ]
850
+ },
851
+ n.id
852
+ );
853
+ })
854
+ }
855
+ );
856
+ }
857
+ function hr() {
858
+ const [t, r] = H([]), n = ge((i) => {
859
+ r((u) => u.filter((l) => l.id !== i));
860
+ }, []), m = ge(
861
+ (i) => {
862
+ const u = `${Date.now()}-${Math.random().toString(36).slice(2, 7)}`;
863
+ r((l) => [...l.slice(-3), { ...i, id: u }]), window.setTimeout(() => {
864
+ n(u);
865
+ }, 4200);
866
+ },
867
+ [n]
868
+ );
869
+ return {
870
+ toasts: t,
871
+ pushToast: m,
872
+ dismissToast: n
873
+ };
874
+ }
875
+ function br({
876
+ columns: t,
877
+ rows: r,
878
+ rowKey: n,
879
+ caption: m,
880
+ emptyMessage: i = "No telemetry records available.",
881
+ className: u = ""
882
+ }) {
883
+ const [l, s] = H(null), [c, o] = H("asc"), f = (d) => {
884
+ l === d ? o((v) => v === "asc" ? "desc" : "asc") : (s(d), o("asc"));
885
+ }, p = le(() => {
886
+ if (!l) return r;
887
+ const d = t.find((h) => h.key === l);
888
+ if (!d || !d.sortValue) return r;
889
+ const v = d.sortValue;
890
+ return [...r].sort((h, T) => {
891
+ const E = v(h), x = v(T);
892
+ return E < x ? c === "asc" ? -1 : 1 : E > x ? c === "asc" ? 1 : -1 : 0;
893
+ });
894
+ }, [r, t, l, c]);
895
+ return /* @__PURE__ */ e(
896
+ "div",
897
+ {
898
+ "data-zen-occlude": "true",
899
+ className: `zen-table-wrapper overflow-x-auto rounded-2xl border border-[var(--zen-border-default)] zen-surface-static ${u}`.trim(),
900
+ children: /* @__PURE__ */ a("table", { className: "w-full border-collapse text-left text-xs sm:text-sm", children: [
901
+ m && /* @__PURE__ */ e("caption", { className: "sr-only", children: m }),
902
+ /* @__PURE__ */ e("thead", { children: /* @__PURE__ */ e("tr", { className: "border-b border-[var(--zen-border-subtle)] bg-[var(--zen-surface-subtle)]", children: t.map((d) => {
903
+ const v = l === d.key;
904
+ return /* @__PURE__ */ e(
905
+ "th",
906
+ {
907
+ scope: "col",
908
+ "aria-sort": d.sortable ? v ? c === "asc" ? "ascending" : "descending" : "none" : void 0,
909
+ className: `px-4 py-3 zen-telemetry-label ${d.align === "right" ? "text-right" : "text-left"}`,
910
+ children: d.sortable ? /* @__PURE__ */ a(
911
+ "button",
912
+ {
913
+ type: "button",
914
+ onClick: () => f(d.key),
915
+ className: "zen-focus-ring inline-flex items-center gap-1.5 hover:text-[var(--zen-ink-primary)] cursor-pointer",
916
+ children: [
917
+ /* @__PURE__ */ e("span", { children: d.header }),
918
+ v ? c === "asc" ? /* @__PURE__ */ e(ut, { className: "w-3 h-3 text-[var(--zen-accent-primary)]" }) : /* @__PURE__ */ e(pt, { className: "w-3 h-3 text-[var(--zen-accent-primary)]" }) : /* @__PURE__ */ e(ft, { className: "w-3 h-3 opacity-50" })
919
+ ]
920
+ }
921
+ ) : d.header
922
+ },
923
+ d.key
924
+ );
925
+ }) }) }),
926
+ /* @__PURE__ */ e("tbody", { className: "divide-y divide-[var(--zen-border-subtle)]", children: p.length === 0 ? /* @__PURE__ */ e("tr", { children: /* @__PURE__ */ e(
927
+ "td",
928
+ {
929
+ colSpan: t.length,
930
+ className: "px-4 py-8 text-center zen-font-mono text-xs text-[var(--zen-ink-muted)]",
931
+ children: i
932
+ }
933
+ ) }) : p.map((d) => /* @__PURE__ */ e(
934
+ "tr",
935
+ {
936
+ className: "hover:bg-[var(--zen-surface-subtle)] transition-colors",
937
+ children: t.map((v) => /* @__PURE__ */ e(
938
+ "td",
939
+ {
940
+ className: `px-4 py-3.5 text-[var(--zen-ink-primary)] ${v.align === "right" ? "text-right" : "text-left"} ${v.mono ? "zen-font-mono" : "zen-font-sans"}`,
941
+ children: v.render(d)
942
+ },
943
+ v.key
944
+ ))
945
+ },
946
+ n(d)
947
+ )) })
948
+ ] })
949
+ }
950
+ );
951
+ }
952
+ function xr({
953
+ brandTitle: t,
954
+ brandSubtitle: r,
955
+ navSlot: n,
956
+ actionsSlot: m,
957
+ mobileActionsSlot: i,
958
+ className: u = ""
959
+ }) {
960
+ const [l, s] = H(!1);
961
+ return q(() => {
962
+ if (!l) return;
963
+ const c = (o) => {
964
+ o.key === "Escape" && s(!1);
965
+ };
966
+ return window.addEventListener("keydown", c), () => window.removeEventListener("keydown", c);
967
+ }, [l]), /* @__PURE__ */ a(
968
+ "header",
969
+ {
970
+ "data-zen-occlude": "true",
971
+ className: `fixed top-0 inset-x-0 z-30 border-b border-[var(--zen-border-subtle)] bg-[var(--zen-surface-header)] backdrop-blur-xl ${u}`.trim(),
972
+ children: [
973
+ /* @__PURE__ */ a("div", { className: "max-w-[90rem] mx-auto px-3 sm:px-6 lg:px-8 h-16 sm:h-20 flex items-center justify-between gap-2 sm:gap-4", children: [
974
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-3 min-w-0", children: [
975
+ /* @__PURE__ */ e("span", { className: "zen-font-serif italic text-base min-[360px]:text-lg sm:text-xl lg:text-2xl tracking-tight text-[var(--zen-ink-primary)] inline-flex items-center shrink-0", children: t }),
976
+ r && /* @__PURE__ */ e("span", { className: "hidden xl:inline-block zen-telemetry-label truncate min-w-0", children: r })
977
+ ] }),
978
+ n && /* @__PURE__ */ e(
979
+ "nav",
980
+ {
981
+ "aria-label": "Primary navigation",
982
+ className: "hidden lg:flex items-center gap-1.5 shrink-0",
983
+ children: n
984
+ }
985
+ ),
986
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-1.5 sm:gap-2 shrink-0", children: [
987
+ m,
988
+ n && /* @__PURE__ */ e(
989
+ "button",
990
+ {
991
+ type: "button",
992
+ "aria-label": l ? "Close navigation menu" : "Open navigation menu",
993
+ "aria-expanded": l,
994
+ onClick: () => s((c) => !c),
995
+ className: "zen-focus-ring lg:hidden inline-flex items-center justify-center w-8 h-8 sm:w-9 sm:h-9 rounded-xl border border-[var(--zen-border-default)] bg-[var(--zen-surface-1)] text-[var(--zen-ink-primary)] cursor-pointer shrink-0",
996
+ children: l ? /* @__PURE__ */ e(we, { className: "w-4 h-4 text-[var(--zen-accent-primary)]" }) : /* @__PURE__ */ e(vt, { className: "w-4 h-4 text-[var(--zen-accent-primary)]" })
997
+ }
998
+ )
999
+ ] })
1000
+ ] }),
1001
+ n && l && /* @__PURE__ */ a("div", { className: "lg:hidden border-t border-[var(--zen-border-subtle)] bg-[var(--zen-bg-elevated)] px-4 py-3.5 space-y-3 shadow-xl", children: [
1002
+ r && /* @__PURE__ */ e("div", { className: "px-2 pb-2 border-b border-[var(--zen-border-subtle)] zen-telemetry-label text-[var(--zen-ink-muted)] truncate", children: r }),
1003
+ /* @__PURE__ */ e(
1004
+ "nav",
1005
+ {
1006
+ "aria-label": "Mobile navigation",
1007
+ onClick: () => s(!1),
1008
+ className: "flex flex-col gap-1",
1009
+ children: n
1010
+ }
1011
+ ),
1012
+ i && /* @__PURE__ */ e("div", { className: "pt-2 border-t border-[var(--zen-border-subtle)] flex flex-wrap items-center gap-2", children: i })
1013
+ ] })
1014
+ ]
1015
+ }
1016
+ );
1017
+ }
1018
+ const Me = [
1019
+ {
1020
+ id: "orion",
1021
+ label: "CAPRI // UNLEASHED",
1022
+ status: "UI SYNTHESIS SUBROUTINE",
1023
+ frequency: "51 MODULES · 40 VECTOR ICONS",
1024
+ transmission: he.orion.summary,
1025
+ metrics: [
1026
+ { k: "AI CHAT CMD", v: '"Capri orion"' },
1027
+ { k: "CLI CMD", v: "npx capri skill orion" },
1028
+ { k: "PRIMITIVES", v: "51 UNIVERSAL" },
1029
+ { k: "PROD AVATAR", v: "OMITTED (TREE-SHAKEN)" }
1030
+ ]
1031
+ },
1032
+ {
1033
+ id: "architect",
1034
+ label: "SCS // ARCHITECT",
1035
+ status: "MULTI-STACK & TOKEN GOVERNANCE",
1036
+ frequency: "ZERO ANY · READONLY T[] · --ZEN-*",
1037
+ transmission: he.architect.summary,
1038
+ metrics: [
1039
+ { k: "AI CHAT CMD", v: '"Capri architect"' },
1040
+ { k: "CLI CMD", v: "npx capri skill architect" },
1041
+ { k: "TYPING", v: "0 ANY · READONLY T[]" },
1042
+ { k: "STACKS", v: "REACT / NG 20+ / VUE" }
1043
+ ]
1044
+ },
1045
+ {
1046
+ id: "sentinel",
1047
+ label: "CYBERPSYCHOSIS // GUARD",
1048
+ status: "WCAG 2.2 AA & OVERFLOW AUDITOR",
1049
+ frequency: "ZERO BLUR-RACE · 320PX-4K GUARD",
1050
+ transmission: he.sentinel.summary,
1051
+ metrics: [
1052
+ { k: "AI CHAT CMD", v: '"Capri guard"' },
1053
+ { k: "CLI CMD", v: "npx capri skill guard" },
1054
+ { k: "DROPDOWNS", v: "ONMOUSEDOWN LOCK" },
1055
+ { k: "OVERFLOW", v: "0PX (320PX TO 4K)" }
1056
+ ]
1057
+ },
1058
+ {
1059
+ id: "zen",
1060
+ label: "THEME // MATRIX",
1061
+ status: "8-THEME POLARITY & 60FPS MOTION",
1062
+ frequency: "4 DARK · 4 LIGHT · SPRING PHYSICS",
1063
+ transmission: he.zen.summary,
1064
+ metrics: [
1065
+ { k: "AI CHAT CMD", v: '"Capri zen"' },
1066
+ { k: "CLI CMD", v: "npx capri skill zen" },
1067
+ { k: "POLARITIES", v: "4 DARK · 4 LIGHT" },
1068
+ { k: "MOTION", v: "REDUCED-MOTION SAFE" }
1069
+ ]
1070
+ },
1071
+ {
1072
+ id: "docu",
1073
+ label: "CAPRI // AUTO-DOCU",
1074
+ status: "ARCHITECTURE & USER-FLOW DOCS",
1075
+ frequency: "MERMAID FLOWCHART · 0 MS BUILD COST",
1076
+ transmission: he.docu.summary,
1077
+ metrics: [
1078
+ { k: "AI CHAT CMD", v: '"Capri docu"' },
1079
+ { k: "CLI CMD", v: "npx capri docu" },
1080
+ { k: "OUTPUT", v: "MARKDOWN + MERMAID" },
1081
+ { k: "BUILD COST", v: "0 MS (ON-DEMAND)" }
1082
+ ]
1083
+ }
1084
+ ];
1085
+ function gr({
1086
+ constructName: t = "CAPRI // CAPRICORN",
1087
+ subtitle: r = "EDGERUNNERS S2 SOULKILLER MIXED-CONSTRUCT",
1088
+ defaultMode: n = "orion",
1089
+ defaultFraming: m = "portrait",
1090
+ compact: i = !1,
1091
+ className: u = ""
1092
+ }) {
1093
+ const { polarity: l, themeMeta: s, reducedMotion: c, setTheme: o, setRadius: f, setDensity: p } = Le(), [d, v] = H(n), [h, T] = H(m), [E, x] = H(!1), [g, z] = H(0), $ = R(null), N = R(null), y = R({ x: 0, y: 0 }), I = R(m === "portrait" ? 1 : 0), A = Me.find((k) => k.id === d) ?? Me[0], M = he[d], S = E ? `${M.aiSystemPrompt}
1094
+
1095
+ ${M.aiVoiceAddendum}` : M.aiSystemPrompt;
1096
+ q(() => {
1097
+ const k = new Image();
1098
+ k.src = "/capri-construct-base.png", k.onload = () => {
1099
+ N.current = k;
1100
+ };
1101
+ }, []), q(() => {
1102
+ const k = $.current;
1103
+ if (!k) return;
1104
+ const b = k.getContext("2d");
1105
+ if (!b) return;
1106
+ let _ = 0, U = 0;
1107
+ const se = () => {
1108
+ const F = Math.min(window.devicePixelRatio || 1, 2), D = k.clientWidth || 320, Z = k.clientHeight || 340;
1109
+ (k.width !== D * F || k.height !== Z * F) && (k.width = D * F, k.height = Z * F), b.save(), b.scale(F, F), b.clearRect(0, 0, D, Z), c || (U += 0.026);
1110
+ const B = h === "portrait" ? 1 : 0;
1111
+ I.current += (B - I.current) * 0.12;
1112
+ const K = I.current, te = l === "light", j = "#FF003C", Y = "#FF1268", oe = "#00FF44", X = "#19A0FF", ie = "#FFFFFF", de = y.current.x, fe = y.current.y, ce = D * 0.5, me = Z * 0.48, Te = Math.min(D, Z) * 0.42;
1113
+ if (te) {
1114
+ b.save(), b.strokeStyle = "rgba(15, 23, 42, 0.05)", b.lineWidth = 1;
1115
+ const W = 28;
1116
+ for (let C = W; C < D; C += W)
1117
+ b.beginPath(), b.moveTo(C, 0), b.lineTo(C, Z), b.stroke();
1118
+ for (let C = W; C < Z; C += W)
1119
+ b.beginPath(), b.moveTo(0, C), b.lineTo(D, C), b.stroke();
1120
+ b.restore();
1121
+ }
1122
+ const J = b.createRadialGradient(
1123
+ ce + de * 10,
1124
+ me - 12 + fe * 8,
1125
+ 8,
1126
+ ce,
1127
+ me,
1128
+ Te * 1.45
1129
+ );
1130
+ te ? (J.addColorStop(0, `${s.accentHex}29`), J.addColorStop(0.55, "rgba(225, 29, 72, 0.10)"), J.addColorStop(0.85, `${s.secondaryHex}12`), J.addColorStop(1, "transparent")) : (J.addColorStop(0, "rgba(255, 0, 56, 0.24)"), J.addColorStop(0.55, "rgba(180, 12, 72, 0.10)"), J.addColorStop(0.85, "rgba(110, 24, 150, 0.04)"), J.addColorStop(1, "transparent")), b.fillStyle = J, b.fillRect(0, 0, D, Z);
1131
+ const ne = N.current;
1132
+ if (ne && ne.complete && ne.naturalWidth > 0) {
1133
+ const W = Math.sin(U * 1.85) * 4, C = de * 0.028 + Math.sin(U * 0.9) * 8e-3, O = 1 + K * 0.64, V = (Z - 30) * 0.96 * O, P = ne.naturalWidth / ne.naturalHeight, ae = V * P, G = ce - ae * (0.48 + K * 0.02) + de * 7, ee = -4 - K * 6 + W + fe * 4;
1134
+ b.save(), b.beginPath(), b.rect(0, 0, D, Z - 22), b.clip(), b.translate(ce, me), b.rotate(C), b.translate(-ce, -me), g > 0 && (b.save(), b.globalAlpha = 0.35, b.drawImage(
1135
+ ne,
1136
+ G - 3 * g,
1137
+ ee,
1138
+ ae,
1139
+ V
1140
+ ), b.drawImage(
1141
+ ne,
1142
+ G + 3 * g,
1143
+ ee + 1,
1144
+ ae,
1145
+ V
1146
+ ), b.restore()), te ? (b.save(), b.shadowColor = "rgba(15, 23, 42, 0.22)", b.shadowBlur = 18, b.shadowOffsetY = 6, b.drawImage(ne, G, ee, ae, V), b.restore()) : b.drawImage(ne, G, ee, ae, V);
1147
+ const Oe = Math.sin(U * 1.1 - 1.2) > 0.992, Se = de * (2.8 + K * 1.8), pe = fe * (2.2 + K * 1.4), xe = G + ae * 0.57 + Se, Ae = ee + V * 0.2325 + pe, Ee = ae * 0.0195, Fe = G + ae * 0.4751 + Se * 0.65, Ve = ee + V * 0.2472 + pe * 0.65, Ge = ae * 0.0105;
1148
+ Oe || (b.beginPath(), b.arc(xe, Ae, Ee, 0, Math.PI * 2), b.fillStyle = X, b.fill(), b.beginPath(), b.arc(xe, Ae, Ee * 0.62, 0, Math.PI * 2), b.fillStyle = "#0D1322", b.fill(), b.beginPath(), b.arc(
1149
+ xe + de * 0.6,
1150
+ Ae + fe * 0.5,
1151
+ Ee * 0.44,
1152
+ 0,
1153
+ Math.PI * 2
1154
+ ), b.fillStyle = ie, b.fill(), b.beginPath(), b.arc(Fe, Ve, Ge, 0, Math.PI * 2), b.fillStyle = X, b.fill(), b.beginPath(), b.arc(Fe, Ve, Ge * 0.48, 0, Math.PI * 2), b.fillStyle = ie, b.fill()), b.restore();
1155
+ }
1156
+ const ue = 28, be = D * 0.68 / ue, ke = D * 0.16, Ce = Z - 13;
1157
+ b.globalAlpha = 0.88;
1158
+ for (let W = 0; W < ue; W++) {
1159
+ const O = (1 - Math.abs(W - ue * 0.5) / (ue * 0.5) * 0.72) * (4 + Math.abs(Math.sin(U * 4.2 + W * 0.45)) * (9 + g * 8));
1160
+ b.fillStyle = te ? W % 3 === 0 ? s.accentHex : W % 5 === 0 ? s.secondaryHex : j : W % 3 === 0 ? j : W % 5 === 0 ? oe : Y, b.fillRect(
1161
+ ke + W * be,
1162
+ Ce - O * 0.5,
1163
+ Math.max(2, be - 3),
1164
+ O
1165
+ );
1166
+ }
1167
+ b.restore(), _ = window.requestAnimationFrame(se);
1168
+ };
1169
+ return _ = window.requestAnimationFrame(se), () => window.cancelAnimationFrame(_);
1170
+ }, [l, s.accentHex, s.secondaryHex, c, g, h]);
1171
+ const L = (k) => {
1172
+ v(k), z(1), window.setTimeout(() => z(0), 650);
1173
+ }, Q = () => {
1174
+ Ie.switchSubroutine(d, {
1175
+ applyPresetTheme: !0,
1176
+ onThemeChange: (k, b, _) => {
1177
+ o(k), f(b), p(_);
1178
+ }
1179
+ }), z(1), window.setTimeout(() => z(0), 650);
1180
+ };
1181
+ return /* @__PURE__ */ e(
1182
+ "div",
1183
+ {
1184
+ "data-zen-occlude": "true",
1185
+ onMouseMove: (k) => {
1186
+ const b = k.currentTarget.getBoundingClientRect();
1187
+ y.current = {
1188
+ x: (k.clientX - b.left) / b.width * 2 - 1,
1189
+ y: (k.clientY - b.top) / b.height * 2 - 1
1190
+ };
1191
+ },
1192
+ onMouseLeave: () => {
1193
+ y.current = { x: 0, y: 0 };
1194
+ },
1195
+ className: `zen-surface-selected overflow-hidden p-4 sm:p-6 lg:p-8 ${u}`.trim(),
1196
+ children: /* @__PURE__ */ a("div", { className: "grid grid-cols-1 lg:grid-cols-12 gap-6 items-center", children: [
1197
+ /* @__PURE__ */ a(
1198
+ "div",
1199
+ {
1200
+ className: "lg:col-span-5 relative flex flex-col items-center justify-center rounded-2xl bg-[var(--zen-bg-elevated)] border border-[var(--zen-accent-border)] p-2.5 sm:p-3 overflow-hidden shadow-inner transition-colors",
1201
+ children: [
1202
+ /* @__PURE__ */ a("div", { className: "w-full flex flex-wrap items-center justify-between gap-2 px-2 pt-1 z-10", children: [
1203
+ /* @__PURE__ */ a("span", { className: "zen-telemetry-label text-[var(--zen-accent-primary)] font-semibold flex items-center gap-1.5 truncate", children: [
1204
+ /* @__PURE__ */ e(ht, { className: "w-3.5 h-3.5 animate-pulse shrink-0" }),
1205
+ /* @__PURE__ */ e("span", { className: "truncate", children: A.frequency })
1206
+ ] }),
1207
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-1.5 shrink-0", children: [
1208
+ /* @__PURE__ */ e(
1209
+ "button",
1210
+ {
1211
+ type: "button",
1212
+ onClick: () => T((k) => k === "portrait" ? "full" : "portrait"),
1213
+ className: "zen-focus-ring inline-flex items-center gap-1 px-2.5 py-0.5 rounded-full border border-[var(--zen-accent-border)] bg-[var(--zen-accent-subtle)] zen-font-mono text-[10px] font-medium text-[var(--zen-accent-primary)] hover:bg-[var(--zen-surface-subtle-hover)] cursor-pointer transition-colors",
1214
+ children: h === "portrait" ? /* @__PURE__ */ a(ye, { children: [
1215
+ /* @__PURE__ */ e(bt, { className: "w-2.5 h-2.5" }),
1216
+ /* @__PURE__ */ e("span", { children: "FULL POSE" })
1217
+ ] }) : /* @__PURE__ */ a(ye, { children: [
1218
+ /* @__PURE__ */ e(xt, { className: "w-2.5 h-2.5" }),
1219
+ /* @__PURE__ */ e("span", { children: "PORTRAIT" })
1220
+ ] })
1221
+ }
1222
+ ),
1223
+ /* @__PURE__ */ e(Ue, { tone: "gold", pulse: !0, children: "CAPRI LIVE" })
1224
+ ] })
1225
+ ] }),
1226
+ /* @__PURE__ */ e(
1227
+ "canvas",
1228
+ {
1229
+ ref: $,
1230
+ "aria-label": `${t} Studio Trigger mixed-construct visualization`,
1231
+ className: "w-full h-72 sm:h-96 block"
1232
+ }
1233
+ ),
1234
+ /* @__PURE__ */ a("div", { className: "w-full flex items-center justify-between gap-2 px-2 pb-1 zen-telemetry-label text-[var(--zen-ink-secondary)]", children: [
1235
+ /* @__PURE__ */ e("span", { className: "truncate", children: "ARASAKA // MIXED CONSTRUCT" }),
1236
+ /* @__PURE__ */ e("span", { className: "shrink-0 font-semibold text-[var(--zen-accent-primary)]", children: s.name.toUpperCase() })
1237
+ ] })
1238
+ ]
1239
+ }
1240
+ ),
1241
+ /* @__PURE__ */ a("div", { className: "lg:col-span-7 flex flex-col justify-between space-y-4 sm:space-y-5 min-w-0", children: [
1242
+ /* @__PURE__ */ a("div", { children: [
1243
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center justify-between gap-2 mb-2", children: [
1244
+ /* @__PURE__ */ a("span", { className: "zen-telemetry-label text-[var(--zen-accent-primary)] flex items-center gap-1.5", children: [
1245
+ /* @__PURE__ */ e(Be, { className: "w-3.5 h-3.5 shrink-0" }),
1246
+ /* @__PURE__ */ e("span", { children: r })
1247
+ ] }),
1248
+ /* @__PURE__ */ e("span", { className: "zen-font-mono text-xs text-[var(--zen-accent-secondary)]", children: A.status })
1249
+ ] }),
1250
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-baseline justify-between gap-2 sm:gap-3", children: [
1251
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-baseline gap-2 sm:gap-3", children: [
1252
+ /* @__PURE__ */ e("h3", { className: "zen-font-display text-2xl sm:text-4xl font-extrabold tracking-tight text-[var(--zen-ink-primary)]", children: t }),
1253
+ /* @__PURE__ */ e("span", { className: "zen-font-serif italic text-xl sm:text-2xl text-[var(--zen-accent-primary)]", children: "AI Subroutine Engine & Co-Pilot" })
1254
+ ] }),
1255
+ /* @__PURE__ */ e(
1256
+ "button",
1257
+ {
1258
+ type: "button",
1259
+ "aria-pressed": E,
1260
+ onClick: () => x((k) => !k),
1261
+ className: `zen-focus-ring px-2.5 py-1 rounded-full border zen-font-mono text-[11px] cursor-pointer transition-all ${E ? "bg-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)] border-[var(--zen-accent-primary)] font-semibold" : "bg-[var(--zen-surface-subtle)] text-[var(--zen-ink-secondary)] border-[var(--zen-border-default)] hover:text-[var(--zen-ink-primary)]"}`,
1262
+ children: E ? "Persona Voice: ON (--voice)" : "Persona Voice: OFF (Default)"
1263
+ }
1264
+ )
1265
+ ] }),
1266
+ /* @__PURE__ */ a("div", { className: "mt-3 sm:mt-4 p-3.5 sm:p-4 rounded-2xl bg-[var(--zen-surface-subtle)] border border-[var(--zen-border-default)] space-y-2", children: [
1267
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
1268
+ /* @__PURE__ */ a("div", { className: "zen-telemetry-label text-[var(--zen-accent-secondary)] flex items-center gap-1.5", children: [
1269
+ /* @__PURE__ */ e(gt, { className: "w-3.5 h-3.5 shrink-0" }),
1270
+ /* @__PURE__ */ e("span", { className: "truncate", children: E ? `PERSONA VOICE (--VOICE) // ${A.label}` : `SUBROUTINE SPECIFICATION // ${A.label}` })
1271
+ ] }),
1272
+ /* @__PURE__ */ a("span", { className: "zen-font-mono text-[11px] text-[var(--zen-accent-primary)]", children: [
1273
+ "Ask in Claude / Codex / Gemini: “",
1274
+ E ? M.voiceCommand : M.chatCommand,
1275
+ "”"
1276
+ ] })
1277
+ ] }),
1278
+ /* @__PURE__ */ e("p", { className: "text-xs sm:text-sm text-[var(--zen-ink-primary)] leading-relaxed", children: E ? `“${M.personaQuote}”` : M.summary })
1279
+ ] })
1280
+ ] }),
1281
+ /* @__PURE__ */ e("div", { className: "grid grid-cols-2 sm:grid-cols-4 gap-2 sm:gap-2.5", children: A.metrics.map((k) => /* @__PURE__ */ a(
1282
+ "div",
1283
+ {
1284
+ className: "p-2.5 rounded-xl bg-[var(--zen-surface-subtle)] border border-[var(--zen-border-subtle)] min-w-0",
1285
+ children: [
1286
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label truncate", children: k.k }),
1287
+ /* @__PURE__ */ e("div", { className: "zen-font-mono text-xs font-semibold text-[var(--zen-ink-primary)] mt-0.5 truncate", children: k.v })
1288
+ ]
1289
+ },
1290
+ k.k
1291
+ )) }),
1292
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center gap-2 pt-2 border-t border-[var(--zen-border-subtle)]", children: [
1293
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label mr-1 w-full sm:w-auto", children: "5 CAPRI SUBROUTINES:" }),
1294
+ Me.map((k) => /* @__PURE__ */ e(
1295
+ ze,
1296
+ {
1297
+ size: "sm",
1298
+ mono: !0,
1299
+ variant: k.id === d ? "primary" : "secondary",
1300
+ onClick: () => L(k.id),
1301
+ iconLeft: k.id === "orion" ? /* @__PURE__ */ e(yt, { className: "w-3.5 h-3.5" }) : k.id === "architect" ? /* @__PURE__ */ e(zt, { className: "w-3.5 h-3.5" }) : k.id === "sentinel" ? /* @__PURE__ */ e(Qe, { className: "w-3.5 h-3.5" }) : k.id === "zen" ? /* @__PURE__ */ e(Be, { className: "w-3.5 h-3.5" }) : /* @__PURE__ */ e(Je, { className: "w-3.5 h-3.5" }),
1302
+ children: k.label
1303
+ },
1304
+ k.id
1305
+ ))
1306
+ ] }),
1307
+ /* @__PURE__ */ a("div", { className: "p-3.5 rounded-2xl bg-[var(--zen-surface-subtle)] border border-[var(--zen-border-default)] space-y-2.5", children: [
1308
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center justify-between gap-2", children: [
1309
+ /* @__PURE__ */ a("span", { className: "zen-telemetry-label text-[var(--zen-accent-primary)]", children: [
1310
+ "RULES ENFORCED BY ",
1311
+ M.chatCommand.toUpperCase(),
1312
+ " (",
1313
+ M.cliCommand,
1314
+ ")"
1315
+ ] }),
1316
+ /* @__PURE__ */ e(Ue, { tone: "emerald", children: "0 MS BUILD / RUNTIME COST" })
1317
+ ] }),
1318
+ /* @__PURE__ */ e("ul", { className: "grid grid-cols-1 sm:grid-cols-2 gap-1.5 text-xs text-[var(--zen-ink-secondary)]", children: M.ruleset.map((k) => /* @__PURE__ */ a("li", { className: "flex items-start gap-1.5", children: [
1319
+ /* @__PURE__ */ e("span", { className: "text-[var(--zen-accent-primary)] zen-font-mono", children: "›" }),
1320
+ /* @__PURE__ */ e("span", { children: k })
1321
+ ] }, k)) }),
1322
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center justify-between gap-2 pt-1.5 border-t border-[var(--zen-border-subtle)]", children: [
1323
+ /* @__PURE__ */ e("span", { className: "zen-font-mono text-[11px] text-[var(--zen-ink-muted)]", children: "In production apps, <ZenAIConstruct /> is omitted; use these 5 subroutines in Claude, Codex, Gemini, or CLI." }),
1324
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center gap-2", children: [
1325
+ /* @__PURE__ */ a(
1326
+ ze,
1327
+ {
1328
+ size: "sm",
1329
+ variant: "secondary",
1330
+ mono: !0,
1331
+ onClick: Q,
1332
+ children: [
1333
+ "Switch Preset (",
1334
+ M.recommendedTheme,
1335
+ ")"
1336
+ ]
1337
+ }
1338
+ ),
1339
+ /* @__PURE__ */ e(
1340
+ rt,
1341
+ {
1342
+ size: "sm",
1343
+ variant: "primary",
1344
+ value: S,
1345
+ label: "COPY SKILL FOR CLAUDE / CODEX / GEMINI",
1346
+ copiedLabel: "SKILL COPIED"
1347
+ }
1348
+ )
1349
+ ] })
1350
+ ] })
1351
+ ] })
1352
+ ] })
1353
+ ] })
1354
+ }
1355
+ );
1356
+ }
1357
+ function yr({
1358
+ variant: t = "blackwall-lattice",
1359
+ interactive: r = !0,
1360
+ paused: n = !1
1361
+ }) {
1362
+ const { themeMeta: m, reducedMotion: i } = Le(), u = R(null), l = R({ x: 0.5, y: 0.35 });
1363
+ return q(() => {
1364
+ if (!r) return;
1365
+ const s = (c) => {
1366
+ l.current = {
1367
+ x: c.clientX / Math.max(1, window.innerWidth),
1368
+ y: c.clientY / Math.max(1, window.innerHeight)
1369
+ };
1370
+ };
1371
+ return window.addEventListener("pointermove", s, { passive: !0 }), () => window.removeEventListener("pointermove", s);
1372
+ }, [r]), q(() => {
1373
+ if (t === "minimal-void") return;
1374
+ const s = u.current;
1375
+ if (!s) return;
1376
+ const c = s.getContext("2d");
1377
+ if (!c) return;
1378
+ const o = Array.from({ length: 56 }, (v, h) => ({
1379
+ x: h * 73 % 1e3,
1380
+ y: h * 137 % 1e3,
1381
+ vx: (h % 5 - 2) * 0.22,
1382
+ vy: -0.35 - h % 4 * 0.18,
1383
+ size: 1.2 + h % 3 * 0.9,
1384
+ phase: h * 0.6
1385
+ }));
1386
+ let f = 0, p = 0;
1387
+ const d = () => {
1388
+ const v = Math.min(window.devicePixelRatio || 1, 1.5), h = window.innerWidth, T = window.innerHeight;
1389
+ (s.width !== h * v || s.height !== T * v) && (s.width = h * v, s.height = T * v), c.save(), c.scale(v, v), c.clearRect(0, 0, h, T), !i && !n && (p += 0.014);
1390
+ const E = m.accentHex, x = m.secondaryHex, g = m.polarity === "dark", z = l.current.x * h, $ = l.current.y * T;
1391
+ if (t === "aurora-mesh") {
1392
+ const N = c.createRadialGradient(
1393
+ h * (0.25 + Math.sin(p * 0.7) * 0.12),
1394
+ T * (0.28 + Math.cos(p * 0.5) * 0.1),
1395
+ 20,
1396
+ h * 0.35,
1397
+ T * 0.35,
1398
+ Math.max(h, T) * 0.55
1399
+ );
1400
+ N.addColorStop(0, `${E}${g ? "24" : "18"}`), N.addColorStop(1, "transparent"), c.fillStyle = N, c.fillRect(0, 0, h, T);
1401
+ const y = c.createRadialGradient(
1402
+ h * (0.75 + Math.cos(p * 0.6) * 0.12),
1403
+ T * (0.65 + Math.sin(p * 0.8) * 0.1),
1404
+ 20,
1405
+ h * 0.7,
1406
+ T * 0.65,
1407
+ Math.max(h, T) * 0.5
1408
+ );
1409
+ y.addColorStop(0, `${x}${g ? "20" : "14"}`), y.addColorStop(1, "transparent"), c.fillStyle = y, c.fillRect(0, 0, h, T);
1410
+ } else if (t === "swiss-blueprint") {
1411
+ c.strokeStyle = g ? `${E}14` : `${E}16`, c.lineWidth = 1;
1412
+ for (let y = 0; y < h; y += 48)
1413
+ c.beginPath(), c.moveTo(y, 0), c.lineTo(y, T), c.stroke();
1414
+ for (let y = 0; y < T; y += 48)
1415
+ c.beginPath(), c.moveTo(0, y), c.lineTo(h, y), c.stroke();
1416
+ for (let y = 48; y < h; y += 96)
1417
+ for (let I = 48; I < T; I += 96) {
1418
+ const A = Math.hypot(y - z, I - $), M = Math.max(0, 1 - A / 280);
1419
+ c.fillStyle = M > 0.2 ? E : x, c.globalAlpha = (g ? 0.22 : 0.28) + M * 0.55, c.fillRect(y - 1.5, I - 1.5, 3, 3);
1420
+ }
1421
+ } else {
1422
+ const N = c.createRadialGradient(z, $, 10, z, $, 460);
1423
+ N.addColorStop(0, `${E}${g ? "1c" : "14"}`), N.addColorStop(0.5, `${x}${g ? "0d" : "08"}`), N.addColorStop(1, "transparent"), c.fillStyle = N, c.fillRect(0, 0, h, T);
1424
+ const y = T * 0.52;
1425
+ c.strokeStyle = `${E}${g ? "1f" : "22"}`, c.lineWidth = 1;
1426
+ const I = 18;
1427
+ for (let S = -I; S <= I; S++) {
1428
+ const L = h * 0.5 + S * (h / I) * 0.32, Q = h * 0.5 + S * (h / I) * 1.45;
1429
+ c.beginPath(), c.moveTo(L, y), c.lineTo(Q, T), c.stroke();
1430
+ }
1431
+ const A = 10, M = p * 0.8 % 1;
1432
+ for (let S = 0; S < A; S++) {
1433
+ const L = Math.pow((S + M) / A, 1.75), Q = y + L * (T - y);
1434
+ c.globalAlpha = L * (g ? 0.35 : 0.28), c.beginPath(), c.moveTo(0, Q), c.lineTo(h, Q), c.stroke();
1435
+ }
1436
+ for (let S = 0; S < o.length; S++) {
1437
+ const L = o[S];
1438
+ !i && !n && (L.x = (L.x + L.vx + 1e3) % 1e3, L.y = (L.y + L.vy + 1e3) % 1e3);
1439
+ const Q = L.x / 1e3 * h, k = L.y / 1e3 * T;
1440
+ c.globalAlpha = (g ? 0.35 : 0.4) + Math.sin(p * 2 + L.phase) * 0.2, c.fillStyle = S % 3 === 0 ? x : E, c.fillRect(Q, k, L.size, L.size * 3.2);
1441
+ }
1442
+ }
1443
+ c.restore(), f = window.requestAnimationFrame(d);
1444
+ };
1445
+ return f = window.requestAnimationFrame(d), () => window.cancelAnimationFrame(f);
1446
+ }, [t, m, i, n]), t === "minimal-void" ? null : /* @__PURE__ */ e(
1447
+ "canvas",
1448
+ {
1449
+ ref: u,
1450
+ "aria-hidden": "true",
1451
+ className: "fixed inset-0 z-0 pointer-events-none"
1452
+ }
1453
+ );
1454
+ }
1455
+ function zr({
1456
+ label: t,
1457
+ hint: r,
1458
+ error: n,
1459
+ maxLengthCount: m,
1460
+ mono: i = !1,
1461
+ capriGuard: u = !0,
1462
+ id: l,
1463
+ value: s,
1464
+ defaultValue: c,
1465
+ onChange: o,
1466
+ className: f = "",
1467
+ ...p
1468
+ }) {
1469
+ const d = re(), v = l ?? d, h = `${v}-desc`, [T, E] = H(
1470
+ typeof c == "string" ? c : ""
1471
+ ), x = typeof s == "string" ? s : typeof s == "number" ? String(s) : T, g = x.length, z = u ? Ie.scanInputSecurity(x) : null, $ = z && !z.safe && z.threats[0] ? `CAPRI GUARD BLOCKED [${z.threats[0].category}]: ${z.threats[0].patternName}` : void 0, N = n || $, y = (I) => {
1472
+ s === void 0 && E(I.target.value), o == null || o(I);
1473
+ };
1474
+ return /* @__PURE__ */ a(
1475
+ "div",
1476
+ {
1477
+ "data-zen-occlude": "true",
1478
+ className: `flex flex-col gap-1.5 ${f}`.trim(),
1479
+ children: [
1480
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between gap-2", children: [
1481
+ /* @__PURE__ */ e(
1482
+ "label",
1483
+ {
1484
+ htmlFor: v,
1485
+ className: "zen-telemetry-label text-[var(--zen-ink-secondary)]",
1486
+ children: t
1487
+ }
1488
+ ),
1489
+ m !== void 0 && /* @__PURE__ */ a("span", { className: "zen-telemetry-label", children: [
1490
+ g,
1491
+ " / ",
1492
+ m
1493
+ ] })
1494
+ ] }),
1495
+ /* @__PURE__ */ e(
1496
+ "textarea",
1497
+ {
1498
+ id: v,
1499
+ value: s,
1500
+ defaultValue: c,
1501
+ onChange: y,
1502
+ maxLength: m,
1503
+ "aria-invalid": !!N,
1504
+ "aria-describedby": N || r ? h : void 0,
1505
+ "data-capri-threat": z && !z.safe && z.threats[0] ? z.threats[0].category : void 0,
1506
+ className: `w-full min-h-24 px-3.5 py-2.5 rounded-xl bg-[var(--zen-surface-1)] border text-sm text-[var(--zen-ink-primary)] placeholder:text-[var(--zen-ink-muted)] focus:outline-none transition-colors ${N ? "border-[var(--zen-status-danger)]" : "border-[var(--zen-border-default)] focus:border-[var(--zen-accent-primary)]"} ${i ? "zen-font-mono" : "zen-font-sans"}`,
1507
+ ...p
1508
+ }
1509
+ ),
1510
+ (N || r) && /* @__PURE__ */ e(
1511
+ "span",
1512
+ {
1513
+ id: h,
1514
+ className: `zen-font-mono text-[11px] ${N ? "text-[var(--zen-status-danger)]" : "text-[var(--zen-ink-muted)]"}`,
1515
+ children: N ?? r
1516
+ }
1517
+ )
1518
+ ]
1519
+ }
1520
+ );
1521
+ }
1522
+ function Nr({
1523
+ label: t,
1524
+ value: r,
1525
+ onChange: n,
1526
+ min: m = 0,
1527
+ max: i = 100,
1528
+ step: u = 1,
1529
+ unit: l,
1530
+ disabled: s = !1,
1531
+ className: c = ""
1532
+ }) {
1533
+ const o = re(), f = (() => {
1534
+ const v = String(u), h = v.indexOf(".");
1535
+ return h === -1 ? 0 : v.length - h - 1;
1536
+ })(), p = (v) => {
1537
+ const h = Math.max(m, Math.min(i, v));
1538
+ return Number(h.toFixed(f));
1539
+ }, d = (v) => {
1540
+ s || n(p(r + v * u));
1541
+ };
1542
+ return /* @__PURE__ */ a(
1543
+ "div",
1544
+ {
1545
+ "data-zen-occlude": "true",
1546
+ className: `flex flex-col gap-1.5 ${c}`.trim(),
1547
+ children: [
1548
+ /* @__PURE__ */ e(
1549
+ "span",
1550
+ {
1551
+ id: o,
1552
+ className: "zen-telemetry-label text-[var(--zen-ink-secondary)]",
1553
+ children: t
1554
+ }
1555
+ ),
1556
+ /* @__PURE__ */ a("div", { className: "inline-flex items-center justify-between gap-2 p-1.5 rounded-xl bg-[var(--zen-surface-1)] border border-[var(--zen-border-default)]", children: [
1557
+ /* @__PURE__ */ e(
1558
+ "button",
1559
+ {
1560
+ type: "button",
1561
+ "aria-label": `Decrease ${t}`,
1562
+ disabled: s || r <= m,
1563
+ onClick: () => d(-1),
1564
+ className: "zen-focus-ring p-2 rounded-lg bg-[var(--zen-surface-subtle)] hover:bg-[var(--zen-accent-subtle)] text-[var(--zen-ink-primary)] disabled:opacity-35 cursor-pointer transition-colors",
1565
+ children: /* @__PURE__ */ e(et, { className: "w-3.5 h-3.5" })
1566
+ }
1567
+ ),
1568
+ /* @__PURE__ */ a(
1569
+ "div",
1570
+ {
1571
+ role: "spinbutton",
1572
+ tabIndex: s ? -1 : 0,
1573
+ "aria-labelledby": o,
1574
+ "aria-valuenow": r,
1575
+ "aria-valuemin": m,
1576
+ "aria-valuemax": i,
1577
+ onKeyDown: (v) => {
1578
+ v.key === "ArrowUp" ? (v.preventDefault(), d(1)) : v.key === "ArrowDown" && (v.preventDefault(), d(-1));
1579
+ },
1580
+ className: "zen-focus-ring px-3 py-1 rounded-lg zen-font-mono text-sm font-semibold text-[var(--zen-ink-primary)] text-center min-w-20",
1581
+ children: [
1582
+ r.toFixed(f),
1583
+ l ? /* @__PURE__ */ e("span", { className: "ml-1 text-xs text-[var(--zen-ink-muted)]", children: l }) : null
1584
+ ]
1585
+ }
1586
+ ),
1587
+ /* @__PURE__ */ e(
1588
+ "button",
1589
+ {
1590
+ type: "button",
1591
+ "aria-label": `Increase ${t}`,
1592
+ disabled: s || r >= i,
1593
+ onClick: () => d(1),
1594
+ className: "zen-focus-ring p-2 rounded-lg bg-[var(--zen-surface-subtle)] hover:bg-[var(--zen-accent-subtle)] text-[var(--zen-ink-primary)] disabled:opacity-35 cursor-pointer transition-colors",
1595
+ children: /* @__PURE__ */ e(wt, { className: "w-3.5 h-3.5" })
1596
+ }
1597
+ )
1598
+ ] })
1599
+ ]
1600
+ }
1601
+ );
1602
+ }
1603
+ function wr({
1604
+ checked: t,
1605
+ indeterminate: r = !1,
1606
+ onChange: n,
1607
+ label: m,
1608
+ description: i,
1609
+ disabled: u = !1,
1610
+ className: l = ""
1611
+ }) {
1612
+ const s = R(null), c = re();
1613
+ return q(() => {
1614
+ s.current && (s.current.indeterminate = r);
1615
+ }, [r]), /* @__PURE__ */ a(
1616
+ "label",
1617
+ {
1618
+ htmlFor: c,
1619
+ "data-zen-occlude": "true",
1620
+ className: `flex items-start gap-3 cursor-pointer select-none ${u ? "opacity-45 cursor-not-allowed" : ""} ${l}`.trim(),
1621
+ children: [
1622
+ /* @__PURE__ */ a("div", { className: "relative flex items-center justify-center mt-0.5", children: [
1623
+ /* @__PURE__ */ e(
1624
+ "input",
1625
+ {
1626
+ ref: s,
1627
+ id: c,
1628
+ type: "checkbox",
1629
+ checked: t,
1630
+ disabled: u,
1631
+ "aria-checked": r ? "mixed" : t,
1632
+ onChange: (o) => n(o.target.checked),
1633
+ className: "peer sr-only"
1634
+ }
1635
+ ),
1636
+ /* @__PURE__ */ e(
1637
+ "span",
1638
+ {
1639
+ className: `w-5 h-5 rounded-md border flex items-center justify-center transition-all peer-focus-visible:outline-2 peer-focus-visible:outline-[var(--zen-accent-focus)] peer-focus-visible:outline-offset-2 ${t || r ? "bg-[var(--zen-accent-primary)] border-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)]" : "bg-[var(--zen-surface-1)] border-[var(--zen-border-control)]"}`,
1640
+ children: r ? /* @__PURE__ */ e(et, { className: "w-3.5 h-3.5 stroke-[3]" }) : t ? /* @__PURE__ */ e(Ne, { className: "w-3.5 h-3.5 stroke-[3]" }) : null
1641
+ }
1642
+ )
1643
+ ] }),
1644
+ /* @__PURE__ */ a("div", { className: "min-w-0", children: [
1645
+ /* @__PURE__ */ e("div", { className: "text-sm font-medium text-[var(--zen-ink-primary)]", children: m }),
1646
+ i && /* @__PURE__ */ e("div", { className: "zen-font-mono text-[11px] text-[var(--zen-ink-muted)] mt-0.5", children: i })
1647
+ ] })
1648
+ ]
1649
+ }
1650
+ );
1651
+ }
1652
+ function kr({
1653
+ label: t,
1654
+ options: r,
1655
+ value: n,
1656
+ onChange: m,
1657
+ className: i = ""
1658
+ }) {
1659
+ const u = re(), l = R([]), s = r.map((o, f) => o.disabled ? -1 : f).filter((o) => o !== -1), c = (o, f) => {
1660
+ var d, v;
1661
+ const p = s.indexOf(f);
1662
+ if (p !== -1) {
1663
+ if (o.key === "ArrowDown" || o.key === "ArrowRight") {
1664
+ o.preventDefault();
1665
+ const h = s[(p + 1) % s.length];
1666
+ (d = l.current[h]) == null || d.focus(), m(r[h].value);
1667
+ } else if (o.key === "ArrowUp" || o.key === "ArrowLeft") {
1668
+ o.preventDefault();
1669
+ const h = s[(p - 1 + s.length) % s.length];
1670
+ (v = l.current[h]) == null || v.focus(), m(r[h].value);
1671
+ }
1672
+ }
1673
+ };
1674
+ return /* @__PURE__ */ a(
1675
+ "div",
1676
+ {
1677
+ role: "radiogroup",
1678
+ "aria-labelledby": u,
1679
+ "data-zen-occlude": "true",
1680
+ className: `space-y-2 ${i}`.trim(),
1681
+ children: [
1682
+ /* @__PURE__ */ e(
1683
+ "div",
1684
+ {
1685
+ id: u,
1686
+ className: "zen-telemetry-label text-[var(--zen-ink-secondary)]",
1687
+ children: t
1688
+ }
1689
+ ),
1690
+ /* @__PURE__ */ e("div", { className: "grid grid-cols-1 gap-2", children: r.map((o, f) => {
1691
+ const p = o.value === n;
1692
+ return /* @__PURE__ */ a(
1693
+ "button",
1694
+ {
1695
+ ref: (d) => {
1696
+ l.current[f] = d;
1697
+ },
1698
+ type: "button",
1699
+ role: "radio",
1700
+ "aria-checked": p,
1701
+ disabled: o.disabled,
1702
+ tabIndex: p ? 0 : -1,
1703
+ onClick: () => m(o.value),
1704
+ onKeyDown: (d) => c(d, f),
1705
+ className: `zen-focus-ring flex items-center justify-between gap-3 p-3.5 rounded-xl border text-left cursor-pointer transition-all ${p ? "bg-[var(--zen-accent-subtle)] border-[var(--zen-accent-border)]" : "bg-[var(--zen-surface-1)] border-[var(--zen-border-subtle)] hover:border-[var(--zen-border-strong)]"}`,
1706
+ children: [
1707
+ /* @__PURE__ */ a("div", { className: "flex items-start gap-3 min-w-0", children: [
1708
+ /* @__PURE__ */ e(
1709
+ "span",
1710
+ {
1711
+ className: `mt-0.5 w-4 h-4 rounded-full border flex items-center justify-center shrink-0 ${p ? "border-[var(--zen-accent-primary)]" : "border-[var(--zen-border-control)]"}`,
1712
+ children: p && /* @__PURE__ */ e("span", { className: "w-2 h-2 rounded-full bg-[var(--zen-accent-primary)]" })
1713
+ }
1714
+ ),
1715
+ /* @__PURE__ */ a("div", { className: "min-w-0", children: [
1716
+ /* @__PURE__ */ e("div", { className: "text-xs sm:text-sm font-semibold text-[var(--zen-ink-primary)]", children: o.label }),
1717
+ o.description && /* @__PURE__ */ e("div", { className: "zen-font-mono text-[11px] text-[var(--zen-ink-muted)] mt-0.5", children: o.description })
1718
+ ] })
1719
+ ] }),
1720
+ o.badge && /* @__PURE__ */ e("span", { className: "zen-telemetry-label text-[var(--zen-accent-primary)] shrink-0", children: o.badge })
1721
+ ]
1722
+ },
1723
+ o.value
1724
+ );
1725
+ }) })
1726
+ ]
1727
+ }
1728
+ );
1729
+ }
1730
+ function Cr({
1731
+ label: t,
1732
+ value: r,
1733
+ onChange: n,
1734
+ min: m = 0,
1735
+ max: i = 100,
1736
+ step: u = 1,
1737
+ formatValue: l,
1738
+ disabled: s = !1,
1739
+ className: c = ""
1740
+ }) {
1741
+ const o = re(), f = Math.max(
1742
+ 0,
1743
+ Math.min(100, (r - m) / Math.max(i - m, 1e-6) * 100)
1744
+ );
1745
+ return /* @__PURE__ */ a(
1746
+ "div",
1747
+ {
1748
+ "data-zen-occlude": "true",
1749
+ className: `flex flex-col gap-2 ${c}`.trim(),
1750
+ children: [
1751
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between gap-2", children: [
1752
+ /* @__PURE__ */ e(
1753
+ "label",
1754
+ {
1755
+ htmlFor: o,
1756
+ className: "zen-telemetry-label text-[var(--zen-ink-secondary)]",
1757
+ children: t
1758
+ }
1759
+ ),
1760
+ /* @__PURE__ */ e("span", { className: "zen-font-mono text-xs font-semibold text-[var(--zen-accent-primary)]", children: l ? l(r) : r })
1761
+ ] }),
1762
+ /* @__PURE__ */ a("div", { className: "relative flex items-center", children: [
1763
+ /* @__PURE__ */ e("div", { className: "w-full h-2 rounded-full bg-[var(--zen-surface-subtle)] border border-[var(--zen-border-subtle)] overflow-hidden", children: /* @__PURE__ */ e(
1764
+ "div",
1765
+ {
1766
+ style: { width: `${f}%` },
1767
+ className: "h-full bg-[var(--zen-accent-primary)] transition-all duration-75"
1768
+ }
1769
+ ) }),
1770
+ /* @__PURE__ */ e(
1771
+ "input",
1772
+ {
1773
+ id: o,
1774
+ type: "range",
1775
+ min: m,
1776
+ max: i,
1777
+ step: u,
1778
+ value: r,
1779
+ disabled: s,
1780
+ onChange: (p) => n(Number(p.target.value)),
1781
+ className: "absolute inset-0 w-full h-full opacity-0 cursor-pointer"
1782
+ }
1783
+ )
1784
+ ] })
1785
+ ]
1786
+ }
1787
+ );
1788
+ }
1789
+ function Sr({
1790
+ label: t,
1791
+ options: r,
1792
+ selected: n,
1793
+ onChange: m,
1794
+ className: i = ""
1795
+ }) {
1796
+ const u = (l) => {
1797
+ n.includes(l) ? m(n.filter((s) => s !== l)) : m([...n, l]);
1798
+ };
1799
+ return /* @__PURE__ */ a(
1800
+ "div",
1801
+ {
1802
+ "data-zen-occlude": "true",
1803
+ className: `space-y-2 ${i}`.trim(),
1804
+ children: [
1805
+ t && /* @__PURE__ */ e("div", { className: "zen-telemetry-label text-[var(--zen-ink-secondary)]", children: t }),
1806
+ /* @__PURE__ */ e("div", { className: "flex flex-wrap gap-2", children: r.map((l) => {
1807
+ const s = n.includes(l.value);
1808
+ return /* @__PURE__ */ a(
1809
+ "button",
1810
+ {
1811
+ type: "button",
1812
+ "aria-pressed": s,
1813
+ onClick: () => u(l.value),
1814
+ className: `zen-focus-ring px-3 py-1.5 rounded-full border zen-font-mono text-xs inline-flex items-center gap-1.5 cursor-pointer transition-all ${s ? "bg-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)] border-[var(--zen-accent-primary)] font-semibold" : "bg-[var(--zen-surface-subtle)] text-[var(--zen-ink-secondary)] border-[var(--zen-border-default)] hover:border-[var(--zen-accent-border)]"}`,
1815
+ children: [
1816
+ s && /* @__PURE__ */ e(Ne, { className: "w-3 h-3" }),
1817
+ /* @__PURE__ */ e("span", { children: l.label })
1818
+ ]
1819
+ },
1820
+ l.value
1821
+ );
1822
+ }) })
1823
+ ]
1824
+ }
1825
+ );
1826
+ }
1827
+ function Ar({
1828
+ label: t,
1829
+ acceptHint: r = "JSON, YAML, ICS, or PDF up to 25 MB",
1830
+ files: n,
1831
+ onFilesChange: m,
1832
+ className: i = ""
1833
+ }) {
1834
+ const [u, l] = H(!1), s = R(null), c = (o) => {
1835
+ if (!o) return;
1836
+ const f = Array.from(o).map((p) => ({
1837
+ name: p.name,
1838
+ sizeBytes: p.size
1839
+ }));
1840
+ m([...n, ...f]);
1841
+ };
1842
+ return /* @__PURE__ */ a(
1843
+ "div",
1844
+ {
1845
+ "data-zen-occlude": "true",
1846
+ className: `space-y-2.5 ${i}`.trim(),
1847
+ children: [
1848
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label text-[var(--zen-ink-secondary)]", children: t }),
1849
+ /* @__PURE__ */ a(
1850
+ "div",
1851
+ {
1852
+ role: "button",
1853
+ tabIndex: 0,
1854
+ onClick: () => {
1855
+ var o;
1856
+ return (o = s.current) == null ? void 0 : o.click();
1857
+ },
1858
+ onKeyDown: (o) => {
1859
+ var f;
1860
+ (o.key === "Enter" || o.key === " ") && (o.preventDefault(), (f = s.current) == null || f.click());
1861
+ },
1862
+ onDragOver: (o) => {
1863
+ o.preventDefault(), l(!0);
1864
+ },
1865
+ onDragLeave: () => l(!1),
1866
+ onDrop: (o) => {
1867
+ o.preventDefault(), l(!1), c(o.dataTransfer.files);
1868
+ },
1869
+ className: `zen-focus-ring p-5 rounded-2xl border border-dashed text-center cursor-pointer transition-all ${u ? "border-[var(--zen-accent-primary)] bg-[var(--zen-accent-subtle)]" : "border-[var(--zen-border-strong)] bg-[var(--zen-surface-subtle)] hover:border-[var(--zen-accent-border)]"}`,
1870
+ children: [
1871
+ /* @__PURE__ */ e(
1872
+ "input",
1873
+ {
1874
+ ref: s,
1875
+ type: "file",
1876
+ "aria-label": t,
1877
+ multiple: !0,
1878
+ onChange: (o) => c(o.target.files),
1879
+ className: "sr-only"
1880
+ }
1881
+ ),
1882
+ /* @__PURE__ */ e(Nt, { className: "w-6 h-6 text-[var(--zen-accent-primary)] mx-auto mb-2" }),
1883
+ /* @__PURE__ */ e("div", { className: "text-xs sm:text-sm font-semibold text-[var(--zen-ink-primary)]", children: "Drop artifacts here or click to browse" }),
1884
+ /* @__PURE__ */ e("div", { className: "zen-font-mono text-[11px] text-[var(--zen-ink-muted)] mt-0.5", children: r })
1885
+ ]
1886
+ }
1887
+ ),
1888
+ n.length > 0 && /* @__PURE__ */ e("ul", { className: "space-y-1.5", children: n.map((o, f) => /* @__PURE__ */ a(
1889
+ "li",
1890
+ {
1891
+ className: "flex items-center justify-between gap-2 px-3 py-2 rounded-xl bg-[var(--zen-surface-1)] border border-[var(--zen-border-subtle)] text-xs",
1892
+ children: [
1893
+ /* @__PURE__ */ a("span", { className: "inline-flex items-center gap-2 truncate zen-font-mono", children: [
1894
+ /* @__PURE__ */ e(Je, { className: "w-3.5 h-3.5 text-[var(--zen-accent-primary)] shrink-0" }),
1895
+ /* @__PURE__ */ e("span", { className: "truncate", children: o.name })
1896
+ ] }),
1897
+ /* @__PURE__ */ e(
1898
+ "button",
1899
+ {
1900
+ type: "button",
1901
+ "aria-label": `Remove ${o.name}`,
1902
+ onClick: () => m(n.filter((p, d) => d !== f)),
1903
+ className: "text-[var(--zen-ink-muted)] hover:text-[var(--zen-status-danger)] cursor-pointer",
1904
+ children: /* @__PURE__ */ e(we, { className: "w-3.5 h-3.5" })
1905
+ }
1906
+ )
1907
+ ]
1908
+ },
1909
+ `${o.name}-${f}`
1910
+ )) })
1911
+ ]
1912
+ }
1913
+ );
1914
+ }
1915
+ function Tr({ items: t, className: r = "" }) {
1916
+ return /* @__PURE__ */ e(
1917
+ "nav",
1918
+ {
1919
+ "aria-label": "Breadcrumb",
1920
+ "data-zen-occlude": "true",
1921
+ className: r,
1922
+ children: /* @__PURE__ */ e("ol", { className: "flex flex-wrap items-center gap-1.5 zen-font-mono text-xs", children: t.map((n, m) => {
1923
+ const i = m === t.length - 1;
1924
+ return /* @__PURE__ */ a("li", { className: "inline-flex items-center gap-1.5", children: [
1925
+ m > 0 && /* @__PURE__ */ e(
1926
+ tt,
1927
+ {
1928
+ className: "w-3.5 h-3.5 text-[var(--zen-ink-muted)] shrink-0",
1929
+ "aria-hidden": "true"
1930
+ }
1931
+ ),
1932
+ i ? /* @__PURE__ */ e(
1933
+ "span",
1934
+ {
1935
+ "aria-current": "page",
1936
+ className: "font-semibold text-[var(--zen-accent-primary)]",
1937
+ children: n.label
1938
+ }
1939
+ ) : /* @__PURE__ */ e(
1940
+ "button",
1941
+ {
1942
+ type: "button",
1943
+ onClick: n.onClick,
1944
+ className: "zen-focus-ring text-[var(--zen-ink-secondary)] hover:text-[var(--zen-ink-primary)] cursor-pointer transition-colors",
1945
+ children: n.label
1946
+ }
1947
+ )
1948
+ ] }, n.id);
1949
+ }) })
1950
+ }
1951
+ );
1952
+ }
1953
+ function Er({
1954
+ currentPage: t,
1955
+ totalPages: r,
1956
+ onPageChange: n,
1957
+ className: m = ""
1958
+ }) {
1959
+ const i = Math.max(1, r), u = Array.from({ length: i }, (l, s) => s + 1);
1960
+ return /* @__PURE__ */ a(
1961
+ "nav",
1962
+ {
1963
+ "aria-label": "Pagination",
1964
+ "data-zen-occlude": "true",
1965
+ className: `inline-flex flex-wrap items-center gap-1.5 ${m}`.trim(),
1966
+ children: [
1967
+ /* @__PURE__ */ e(
1968
+ "button",
1969
+ {
1970
+ type: "button",
1971
+ "aria-label": "Previous page",
1972
+ disabled: t <= 1,
1973
+ onClick: () => n(Math.max(1, t - 1)),
1974
+ className: "zen-focus-ring p-2 rounded-xl border border-[var(--zen-border-default)] bg-[var(--zen-surface-1)] text-[var(--zen-ink-primary)] disabled:opacity-40 cursor-pointer",
1975
+ children: /* @__PURE__ */ e(kt, { className: "w-4 h-4" })
1976
+ }
1977
+ ),
1978
+ u.map((l) => {
1979
+ const s = l === t;
1980
+ return /* @__PURE__ */ e(
1981
+ "button",
1982
+ {
1983
+ type: "button",
1984
+ "aria-current": s ? "page" : void 0,
1985
+ onClick: () => n(l),
1986
+ className: `zen-focus-ring min-w-9 h-9 px-2.5 rounded-xl zen-font-mono text-xs font-semibold cursor-pointer transition-all ${s ? "bg-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)] shadow-sm" : "bg-[var(--zen-surface-1)] border border-[var(--zen-border-subtle)] text-[var(--zen-ink-secondary)] hover:text-[var(--zen-ink-primary)]"}`,
1987
+ children: l
1988
+ },
1989
+ l
1990
+ );
1991
+ }),
1992
+ /* @__PURE__ */ e(
1993
+ "button",
1994
+ {
1995
+ type: "button",
1996
+ "aria-label": "Next page",
1997
+ disabled: t >= i,
1998
+ onClick: () => n(Math.min(i, t + 1)),
1999
+ className: "zen-focus-ring p-2 rounded-xl border border-[var(--zen-border-default)] bg-[var(--zen-surface-1)] text-[var(--zen-ink-primary)] disabled:opacity-40 cursor-pointer",
2000
+ children: /* @__PURE__ */ e(tt, { className: "w-4 h-4" })
2001
+ }
2002
+ )
2003
+ ]
2004
+ }
2005
+ );
2006
+ }
2007
+ const We = {
2008
+ 1: "grid-cols-1",
2009
+ 2: "grid-cols-1 sm:grid-cols-2",
2010
+ 3: "grid-cols-1 sm:grid-cols-3",
2011
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
2012
+ };
2013
+ function Mr({
2014
+ steps: t,
2015
+ activeStepIndex: r,
2016
+ onStepClick: n,
2017
+ className: m = ""
2018
+ }) {
2019
+ const i = Math.max(1, Math.min(4, t.length)), u = We[i] ?? We[4];
2020
+ return /* @__PURE__ */ e(
2021
+ "ol",
2022
+ {
2023
+ "data-zen-occlude": "true",
2024
+ className: `grid ${u} gap-3 ${m}`.trim(),
2025
+ children: t.map((l, s) => {
2026
+ const c = s < r, o = s === r;
2027
+ return /* @__PURE__ */ e("li", { className: "min-w-0", children: /* @__PURE__ */ a(
2028
+ "button",
2029
+ {
2030
+ type: "button",
2031
+ "aria-current": o ? "step" : void 0,
2032
+ onClick: () => n == null ? void 0 : n(s),
2033
+ className: `zen-focus-ring w-full p-3.5 rounded-2xl border text-left flex items-center gap-3 cursor-pointer transition-all ${o ? "bg-[var(--zen-accent-subtle)] border-[var(--zen-accent-border)]" : c ? "bg-[var(--zen-surface-1)] border-[var(--zen-border-default)]" : "bg-[var(--zen-surface-subtle)] border-[var(--zen-border-subtle)] opacity-75"}`,
2034
+ children: [
2035
+ /* @__PURE__ */ e(
2036
+ "span",
2037
+ {
2038
+ className: `w-7 h-7 rounded-full zen-font-mono text-xs font-bold flex items-center justify-center shrink-0 ${o || c ? "bg-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)]" : "border border-[var(--zen-border-control)] text-[var(--zen-ink-muted)]"}`,
2039
+ children: c ? /* @__PURE__ */ e(Ne, { className: "w-3.5 h-3.5" }) : s + 1
2040
+ }
2041
+ ),
2042
+ /* @__PURE__ */ a("div", { className: "min-w-0", children: [
2043
+ /* @__PURE__ */ e("div", { className: "zen-font-display text-sm font-bold text-[var(--zen-ink-primary)] truncate", children: l.title }),
2044
+ l.subtitle && /* @__PURE__ */ e("div", { className: "zen-font-mono text-[11px] text-[var(--zen-ink-muted)] truncate", children: l.subtitle })
2045
+ ] })
2046
+ ]
2047
+ }
2048
+ ) }, l.id);
2049
+ })
2050
+ }
2051
+ );
2052
+ }
2053
+ function Rr({
2054
+ title: t,
2055
+ items: r,
2056
+ activeId: n,
2057
+ onSelect: m,
2058
+ className: i = ""
2059
+ }) {
2060
+ return /* @__PURE__ */ a(
2061
+ "aside",
2062
+ {
2063
+ "aria-label": t,
2064
+ "data-zen-occlude": "true",
2065
+ className: `p-4 rounded-3xl zen-surface-static space-y-3 ${i}`.trim(),
2066
+ children: [
2067
+ /* @__PURE__ */ e("div", { className: "px-2 zen-telemetry-label text-[var(--zen-accent-primary)]", children: t }),
2068
+ /* @__PURE__ */ e("ul", { className: "space-y-1", children: r.map((u) => {
2069
+ const l = u.id === n;
2070
+ return /* @__PURE__ */ e("li", { children: /* @__PURE__ */ a(
2071
+ "button",
2072
+ {
2073
+ type: "button",
2074
+ "aria-current": l ? "page" : void 0,
2075
+ onClick: () => m(u.id),
2076
+ className: `zen-focus-ring w-full px-3 py-2.5 rounded-xl flex items-center justify-between gap-2 text-xs sm:text-sm font-medium cursor-pointer transition-all ${l ? "bg-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)] font-semibold shadow-sm" : "text-[var(--zen-ink-secondary)] hover:text-[var(--zen-ink-primary)] hover:bg-[var(--zen-surface-subtle)]"}`,
2077
+ children: [
2078
+ /* @__PURE__ */ a("span", { className: "inline-flex items-center gap-2.5 truncate", children: [
2079
+ u.icon && /* @__PURE__ */ e("span", { className: "shrink-0", children: u.icon }),
2080
+ /* @__PURE__ */ e("span", { className: "truncate", children: u.label })
2081
+ ] }),
2082
+ u.badge !== void 0 && /* @__PURE__ */ e(
2083
+ "span",
2084
+ {
2085
+ className: `zen-font-mono text-[10px] px-2 py-0.5 rounded-full shrink-0 ${l ? "bg-black/20 text-[var(--zen-ink-on-accent)]" : "bg-[var(--zen-surface-subtle)] text-[var(--zen-ink-muted)]"}`,
2086
+ children: u.badge
2087
+ }
2088
+ )
2089
+ ]
2090
+ }
2091
+ ) }, u.id);
2092
+ }) })
2093
+ ]
2094
+ }
2095
+ );
2096
+ }
2097
+ function Ir({
2098
+ ariaLabel: t,
2099
+ active: r = !1,
2100
+ className: n = "",
2101
+ children: m,
2102
+ ...i
2103
+ }) {
2104
+ return /* @__PURE__ */ e(
2105
+ "button",
2106
+ {
2107
+ type: "button",
2108
+ "data-zen-occlude": "true",
2109
+ "aria-label": t,
2110
+ "aria-pressed": r,
2111
+ className: `zen-focus-ring p-2.5 rounded-xl border transition-all cursor-pointer inline-flex items-center justify-center ${r ? "bg-[var(--zen-accent-primary)] text-[var(--zen-ink-on-accent)] border-[var(--zen-accent-primary)]" : "bg-[var(--zen-surface-1)] text-[var(--zen-ink-secondary)] border-[var(--zen-border-default)] hover:border-[var(--zen-accent-border)] hover:text-[var(--zen-ink-primary)]"} ${n}`.trim(),
2112
+ ...i,
2113
+ children: m
2114
+ }
2115
+ );
2116
+ }
2117
+ function Lr({
2118
+ open: t,
2119
+ onClose: r,
2120
+ items: n,
2121
+ placeholder: m = "Execute a command or jump to a primitive..."
2122
+ }) {
2123
+ const [i, u] = H(""), [l, s] = H(0), c = R(null), o = re(), f = n.filter((d) => {
2124
+ if (!i.trim()) return !0;
2125
+ const v = i.toLowerCase();
2126
+ return d.label.toLowerCase().includes(v) || d.group.toLowerCase().includes(v);
2127
+ });
2128
+ return q(() => {
2129
+ s(0);
2130
+ }, [i]), q(() => {
2131
+ t && (u(""), s(0), window.setTimeout(() => {
2132
+ var d;
2133
+ return (d = c.current) == null ? void 0 : d.focus();
2134
+ }, 10));
2135
+ }, [t]), t ? /* @__PURE__ */ e(
2136
+ "div",
2137
+ {
2138
+ "data-zen-occlude": "true",
2139
+ className: "fixed inset-0 z-50 flex items-start justify-center pt-12 sm:pt-20 p-3 sm:p-4 bg-black/70 backdrop-blur-md",
2140
+ onMouseDown: (d) => {
2141
+ d.target === d.currentTarget && r();
2142
+ },
2143
+ children: /* @__PURE__ */ a(
2144
+ "div",
2145
+ {
2146
+ role: "dialog",
2147
+ "aria-modal": "true",
2148
+ "aria-label": "Command Palette",
2149
+ className: "w-full max-w-xl max-h-[85dvh] flex flex-col rounded-3xl zen-surface-selected overflow-hidden shadow-2xl",
2150
+ children: [
2151
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-3 px-4 py-3.5 border-b border-[var(--zen-border-subtle)]", children: [
2152
+ /* @__PURE__ */ e(Ct, { className: "w-4 h-4 text-[var(--zen-accent-primary)] shrink-0" }),
2153
+ /* @__PURE__ */ e(
2154
+ "input",
2155
+ {
2156
+ ref: c,
2157
+ role: "combobox",
2158
+ "aria-expanded": "true",
2159
+ "aria-controls": o,
2160
+ "aria-autocomplete": "list",
2161
+ value: i,
2162
+ onChange: (d) => u(d.target.value),
2163
+ onKeyDown: (d) => {
2164
+ d.key === "Escape" ? (d.preventDefault(), r()) : d.key === "ArrowDown" ? (d.preventDefault(), f.length > 0 && s((v) => (v + 1) % f.length)) : d.key === "ArrowUp" ? (d.preventDefault(), f.length > 0 && s(
2165
+ (v) => (v - 1 + f.length) % f.length
2166
+ )) : d.key === "Enter" && f[l] && (d.preventDefault(), f[l].onSelect(), r());
2167
+ },
2168
+ placeholder: m,
2169
+ className: "w-full bg-transparent text-sm text-[var(--zen-ink-primary)] placeholder:text-[var(--zen-ink-muted)] focus:outline-none zen-font-mono"
2170
+ }
2171
+ ),
2172
+ /* @__PURE__ */ e(je, { keys: ["Esc"] })
2173
+ ] }),
2174
+ /* @__PURE__ */ e(
2175
+ "ul",
2176
+ {
2177
+ id: o,
2178
+ role: "listbox",
2179
+ className: "max-h-80 overflow-y-auto p-2 space-y-1",
2180
+ children: f.length === 0 ? /* @__PURE__ */ e("li", { className: "py-8 text-center zen-font-mono text-xs text-[var(--zen-ink-muted)]", children: "No matching commands found." }) : f.map((d, v) => {
2181
+ const h = v === l;
2182
+ return /* @__PURE__ */ a(
2183
+ "li",
2184
+ {
2185
+ role: "option",
2186
+ "aria-selected": h,
2187
+ onMouseEnter: () => s(v),
2188
+ onMouseDown: (T) => {
2189
+ T.preventDefault(), d.onSelect(), r();
2190
+ },
2191
+ className: `flex items-center justify-between gap-3 px-3.5 py-2.5 rounded-xl cursor-pointer transition-colors ${h ? "bg-[var(--zen-accent-subtle)] text-[var(--zen-ink-primary)]" : "text-[var(--zen-ink-secondary)]"}`,
2192
+ children: [
2193
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2.5 min-w-0", children: [
2194
+ d.icon && /* @__PURE__ */ e("span", { className: "text-[var(--zen-accent-primary)] shrink-0", children: d.icon }),
2195
+ /* @__PURE__ */ a("div", { className: "min-w-0", children: [
2196
+ /* @__PURE__ */ e("div", { className: "text-xs sm:text-sm font-medium truncate", children: d.label }),
2197
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: d.group })
2198
+ ] })
2199
+ ] }),
2200
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2 shrink-0", children: [
2201
+ d.shortcut && /* @__PURE__ */ e(je, { keys: d.shortcut }),
2202
+ h && /* @__PURE__ */ e(St, { className: "w-3.5 h-3.5 text-[var(--zen-accent-primary)]" })
2203
+ ] })
2204
+ ]
2205
+ },
2206
+ d.id
2207
+ );
2208
+ })
2209
+ }
2210
+ )
2211
+ ]
2212
+ }
2213
+ )
2214
+ }
2215
+ ) : null;
2216
+ }
2217
+ function Pr({
2218
+ open: t,
2219
+ onClose: r,
2220
+ title: n,
2221
+ subtitle: m,
2222
+ footer: i,
2223
+ children: u
2224
+ }) {
2225
+ const l = re();
2226
+ return q(() => {
2227
+ if (!t) return;
2228
+ const s = (c) => {
2229
+ c.key === "Escape" && r();
2230
+ };
2231
+ return window.addEventListener("keydown", s), () => window.removeEventListener("keydown", s);
2232
+ }, [t, r]), t ? /* @__PURE__ */ e(
2233
+ "div",
2234
+ {
2235
+ "data-zen-occlude": "true",
2236
+ className: "fixed inset-0 z-50 flex justify-end bg-black/65 backdrop-blur-sm",
2237
+ onMouseDown: (s) => {
2238
+ s.target === s.currentTarget && r();
2239
+ },
2240
+ children: /* @__PURE__ */ a(
2241
+ "div",
2242
+ {
2243
+ role: "dialog",
2244
+ "aria-modal": "true",
2245
+ "aria-labelledby": l,
2246
+ className: "w-full max-w-md h-full bg-[var(--zen-bg-elevated)] border-l border-[var(--zen-border-strong)] p-6 sm:p-8 flex flex-col justify-between shadow-2xl overflow-y-auto",
2247
+ children: [
2248
+ /* @__PURE__ */ a("div", { className: "space-y-6", children: [
2249
+ /* @__PURE__ */ a("div", { className: "flex items-start justify-between gap-4 pb-4 border-b border-[var(--zen-border-subtle)]", children: [
2250
+ /* @__PURE__ */ a("div", { children: [
2251
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label text-[var(--zen-accent-primary)]", children: "SLIDE-OVER INSPECTOR" }),
2252
+ /* @__PURE__ */ e(
2253
+ "h2",
2254
+ {
2255
+ id: l,
2256
+ className: "zen-font-display text-2xl font-bold text-[var(--zen-ink-primary)] mt-1",
2257
+ children: n
2258
+ }
2259
+ ),
2260
+ m && /* @__PURE__ */ e("div", { className: "zen-font-serif italic text-lg text-[var(--zen-accent-primary)]", children: m })
2261
+ ] }),
2262
+ /* @__PURE__ */ e(
2263
+ "button",
2264
+ {
2265
+ type: "button",
2266
+ "aria-label": "Close drawer",
2267
+ onClick: r,
2268
+ className: "zen-focus-ring p-2 rounded-full border border-[var(--zen-border-default)] text-[var(--zen-ink-secondary)] hover:text-[var(--zen-ink-primary)] cursor-pointer",
2269
+ children: /* @__PURE__ */ e(we, { className: "w-4 h-4" })
2270
+ }
2271
+ )
2272
+ ] }),
2273
+ /* @__PURE__ */ e("div", { className: "text-sm text-[var(--zen-ink-secondary)] space-y-4", children: u })
2274
+ ] }),
2275
+ i && /* @__PURE__ */ e("div", { className: "pt-4 border-t border-[var(--zen-border-subtle)] flex justify-end gap-3", children: i })
2276
+ ]
2277
+ }
2278
+ )
2279
+ }
2280
+ ) : null;
2281
+ }
2282
+ function Dr({
2283
+ items: t,
2284
+ defaultOpenId: r,
2285
+ className: n = ""
2286
+ }) {
2287
+ var u;
2288
+ const [m, i] = H(
2289
+ r ?? ((u = t[0]) == null ? void 0 : u.id) ?? null
2290
+ );
2291
+ return /* @__PURE__ */ e(
2292
+ "div",
2293
+ {
2294
+ "data-zen-occlude": "true",
2295
+ className: `space-y-2.5 ${n}`.trim(),
2296
+ children: t.map((l) => {
2297
+ const s = l.id === m;
2298
+ return /* @__PURE__ */ a(
2299
+ "div",
2300
+ {
2301
+ className: "rounded-2xl border border-[var(--zen-border-default)] bg-[var(--zen-surface-1)] overflow-hidden",
2302
+ children: [
2303
+ /* @__PURE__ */ e("h3", { children: /* @__PURE__ */ a(
2304
+ "button",
2305
+ {
2306
+ type: "button",
2307
+ "aria-expanded": s,
2308
+ onClick: () => i(s ? null : l.id),
2309
+ className: "zen-focus-ring w-full px-5 py-4 flex items-center justify-between gap-3 text-left cursor-pointer hover:bg-[var(--zen-surface-subtle)] transition-colors",
2310
+ children: [
2311
+ /* @__PURE__ */ e("span", { className: "zen-font-display font-bold text-sm sm:text-base text-[var(--zen-ink-primary)]", children: l.title }),
2312
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2 shrink-0", children: [
2313
+ l.badge && /* @__PURE__ */ e("span", { className: "zen-telemetry-label text-[var(--zen-accent-primary)]", children: l.badge }),
2314
+ /* @__PURE__ */ e(
2315
+ Ke,
2316
+ {
2317
+ className: `w-4 h-4 text-[var(--zen-ink-muted)] transition-transform ${s ? "rotate-180 text-[var(--zen-accent-primary)]" : ""}`
2318
+ }
2319
+ )
2320
+ ] })
2321
+ ]
2322
+ }
2323
+ ) }),
2324
+ s && /* @__PURE__ */ e("div", { className: "px-5 pb-4 pt-1 text-xs sm:text-sm text-[var(--zen-ink-secondary)] leading-relaxed border-t border-[var(--zen-border-subtle)]", children: l.content })
2325
+ ]
2326
+ },
2327
+ l.id
2328
+ );
2329
+ })
2330
+ }
2331
+ );
2332
+ }
2333
+ function $r({ content: t, children: r }) {
2334
+ const [n, m] = H(!1), i = re();
2335
+ return /* @__PURE__ */ a(
2336
+ "span",
2337
+ {
2338
+ className: "relative inline-flex",
2339
+ onMouseEnter: () => m(!0),
2340
+ onMouseLeave: () => m(!1),
2341
+ onFocus: () => m(!0),
2342
+ onBlur: () => m(!1),
2343
+ onKeyDown: (u) => {
2344
+ u.key === "Escape" && m(!1);
2345
+ },
2346
+ children: [
2347
+ /* @__PURE__ */ e("span", { "aria-describedby": n ? i : void 0, children: r }),
2348
+ n && /* @__PURE__ */ e(
2349
+ "span",
2350
+ {
2351
+ id: i,
2352
+ role: "tooltip",
2353
+ className: "absolute bottom-full left-1/2 -translate-x-1/2 mb-2 px-2.5 py-1 rounded-lg bg-[var(--zen-bg-elevated)] border border-[var(--zen-border-strong)] zen-font-mono text-[11px] text-[var(--zen-ink-primary)] whitespace-nowrap shadow-lg z-50 pointer-events-none",
2354
+ children: t
2355
+ }
2356
+ )
2357
+ ]
2358
+ }
2359
+ );
2360
+ }
2361
+ function Or({ label: t, className: r = "" }) {
2362
+ return t ? /* @__PURE__ */ a("div", { className: `flex items-center gap-3 ${r}`.trim(), children: [
2363
+ /* @__PURE__ */ e("div", { className: "h-px flex-1 bg-[var(--zen-border-subtle)]" }),
2364
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label", children: t }),
2365
+ /* @__PURE__ */ e("div", { className: "h-px flex-1 bg-[var(--zen-border-subtle)]" })
2366
+ ] }) : /* @__PURE__ */ e(
2367
+ "hr",
2368
+ {
2369
+ className: `border-0 border-t border-[var(--zen-border-subtle)] ${r}`.trim()
2370
+ }
2371
+ );
2372
+ }
2373
+ function Ht({
2374
+ data: t,
2375
+ width: r = 140,
2376
+ height: n = 42,
2377
+ className: m = ""
2378
+ }) {
2379
+ const i = re(), u = t.length === 0 ? [0, 0] : t.length === 1 ? [t[0], t[0]] : t, l = Math.min(...u), s = Math.max(...u), c = s - l || 1, f = u.map((d, v) => {
2380
+ const h = v / (u.length - 1) * r, T = s === l ? n * 0.5 : n - 4 - (d - l) / c * (n - 8);
2381
+ return { x: h, y: T };
2382
+ }).map((d, v) => `${v === 0 ? "M" : "L"}${d.x.toFixed(1)},${d.y.toFixed(1)}`).join(" "), p = `${f} L${r},${n} L0,${n} Z`;
2383
+ return /* @__PURE__ */ a(
2384
+ "svg",
2385
+ {
2386
+ width: r,
2387
+ height: n,
2388
+ viewBox: `0 0 ${r} ${n}`,
2389
+ "aria-hidden": "true",
2390
+ className: `overflow-visible ${m}`.trim(),
2391
+ children: [
2392
+ /* @__PURE__ */ e("defs", { children: /* @__PURE__ */ a("linearGradient", { id: i, x1: "0", y1: "0", x2: "0", y2: "1", children: [
2393
+ /* @__PURE__ */ e(
2394
+ "stop",
2395
+ {
2396
+ offset: "0%",
2397
+ stopColor: "var(--zen-accent-primary)",
2398
+ stopOpacity: "0.38"
2399
+ }
2400
+ ),
2401
+ /* @__PURE__ */ e(
2402
+ "stop",
2403
+ {
2404
+ offset: "100%",
2405
+ stopColor: "var(--zen-accent-primary)",
2406
+ stopOpacity: "0.0"
2407
+ }
2408
+ )
2409
+ ] }) }),
2410
+ /* @__PURE__ */ e("path", { d: p, fill: `url(#${i})` }),
2411
+ /* @__PURE__ */ e(
2412
+ "path",
2413
+ {
2414
+ d: f,
2415
+ fill: "none",
2416
+ stroke: "var(--zen-accent-primary)",
2417
+ strokeWidth: "2",
2418
+ strokeLinecap: "round",
2419
+ strokeLinejoin: "round"
2420
+ }
2421
+ )
2422
+ ]
2423
+ }
2424
+ );
2425
+ }
2426
+ function Fr({
2427
+ label: t,
2428
+ value: r,
2429
+ delta: n,
2430
+ trend: m = "up",
2431
+ sparkline: i,
2432
+ subtitle: u,
2433
+ className: l = ""
2434
+ }) {
2435
+ return /* @__PURE__ */ a(
2436
+ De,
2437
+ {
2438
+ variant: "static",
2439
+ padding: "sm",
2440
+ className: `flex flex-col justify-between gap-3 ${l}`.trim(),
2441
+ children: [
2442
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between gap-2", children: [
2443
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label", children: t }),
2444
+ /* @__PURE__ */ a(
2445
+ "span",
2446
+ {
2447
+ className: `inline-flex items-center gap-1 px-2 py-0.5 rounded-full zen-font-mono text-[11px] font-semibold ${m === "up" ? "bg-[var(--zen-status-success)]/15 text-[var(--zen-status-success)]" : "bg-[var(--zen-status-danger)]/15 text-[var(--zen-status-danger)]"}`,
2448
+ children: [
2449
+ m === "up" ? /* @__PURE__ */ e(At, { className: "w-3 h-3" }) : /* @__PURE__ */ e(Tt, { className: "w-3 h-3" }),
2450
+ n
2451
+ ]
2452
+ }
2453
+ )
2454
+ ] }),
2455
+ /* @__PURE__ */ a("div", { className: "flex items-end justify-between gap-3", children: [
2456
+ /* @__PURE__ */ a("div", { children: [
2457
+ /* @__PURE__ */ e("div", { className: "zen-font-display text-2xl sm:text-3xl font-extrabold text-[var(--zen-ink-primary)]", children: r }),
2458
+ u && /* @__PURE__ */ e("div", { className: "zen-font-mono text-[11px] text-[var(--zen-ink-muted)] mt-0.5", children: u })
2459
+ ] }),
2460
+ i && /* @__PURE__ */ e(Ht, { data: i, width: 110, height: 36 })
2461
+ ] })
2462
+ ]
2463
+ }
2464
+ );
2465
+ }
2466
+ function Vr({
2467
+ label: t,
2468
+ value: r,
2469
+ max: n = 100,
2470
+ unit: m = "%",
2471
+ className: i = ""
2472
+ }) {
2473
+ const u = Math.max(0, Math.min(100, r / Math.max(n, 1e-6) * 100));
2474
+ return /* @__PURE__ */ a(
2475
+ "div",
2476
+ {
2477
+ "data-zen-occlude": "true",
2478
+ className: `space-y-1.5 ${i}`.trim(),
2479
+ children: [
2480
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between zen-font-mono text-xs", children: [
2481
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label", children: t }),
2482
+ /* @__PURE__ */ a("span", { className: "font-semibold text-[var(--zen-ink-primary)]", children: [
2483
+ r,
2484
+ m
2485
+ ] })
2486
+ ] }),
2487
+ /* @__PURE__ */ e(
2488
+ "div",
2489
+ {
2490
+ role: "progressbar",
2491
+ "aria-label": t,
2492
+ "aria-valuenow": r,
2493
+ "aria-valuemin": 0,
2494
+ "aria-valuemax": n,
2495
+ className: "w-full h-2.5 rounded-full bg-[var(--zen-surface-subtle)] border border-[var(--zen-border-subtle)] overflow-hidden",
2496
+ children: /* @__PURE__ */ e(
2497
+ "div",
2498
+ {
2499
+ style: { width: `${u}%` },
2500
+ className: "h-full bg-[var(--zen-accent-primary)] transition-all duration-300"
2501
+ }
2502
+ )
2503
+ }
2504
+ )
2505
+ ]
2506
+ }
2507
+ );
2508
+ }
2509
+ function Gr({
2510
+ label: t,
2511
+ value: r,
2512
+ max: n = 100,
2513
+ unit: m = "%",
2514
+ size: i = 96
2515
+ }) {
2516
+ const u = Math.max(0, Math.min(100, r / Math.max(n, 1e-6) * 100)), l = 7, s = (i - l * 2) * 0.5, c = 2 * Math.PI * s, o = c - u / 100 * c;
2517
+ return /* @__PURE__ */ a(
2518
+ "div",
2519
+ {
2520
+ role: "meter",
2521
+ "aria-label": t,
2522
+ "aria-valuenow": r,
2523
+ "aria-valuemin": 0,
2524
+ "aria-valuemax": n,
2525
+ className: "inline-flex flex-col items-center gap-1.5",
2526
+ children: [
2527
+ /* @__PURE__ */ a("div", { className: "relative", style: { width: i, height: i }, children: [
2528
+ /* @__PURE__ */ a("svg", { width: i, height: i, className: "-rotate-90", children: [
2529
+ /* @__PURE__ */ e(
2530
+ "circle",
2531
+ {
2532
+ cx: i * 0.5,
2533
+ cy: i * 0.5,
2534
+ r: s,
2535
+ fill: "none",
2536
+ stroke: "var(--zen-border-subtle)",
2537
+ strokeWidth: l
2538
+ }
2539
+ ),
2540
+ /* @__PURE__ */ e(
2541
+ "circle",
2542
+ {
2543
+ cx: i * 0.5,
2544
+ cy: i * 0.5,
2545
+ r: s,
2546
+ fill: "none",
2547
+ stroke: "var(--zen-accent-primary)",
2548
+ strokeWidth: l,
2549
+ strokeDasharray: c,
2550
+ strokeDashoffset: o,
2551
+ strokeLinecap: "round"
2552
+ }
2553
+ )
2554
+ ] }),
2555
+ /* @__PURE__ */ a("div", { className: "absolute inset-0 flex items-center justify-center zen-font-mono text-xs font-bold text-[var(--zen-ink-primary)]", children: [
2556
+ Math.round(u),
2557
+ m
2558
+ ] })
2559
+ ] }),
2560
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label", children: t })
2561
+ ]
2562
+ }
2563
+ );
2564
+ }
2565
+ function Zr({
2566
+ name: t,
2567
+ src: r,
2568
+ status: n,
2569
+ size: m = "md"
2570
+ }) {
2571
+ const [i, u] = H(!1);
2572
+ q(() => {
2573
+ u(!1);
2574
+ }, [r]);
2575
+ const l = t.split(" ").map((c) => c[0]).join("").slice(0, 2).toUpperCase(), s = m === "sm" ? "w-8 h-8 text-xs" : m === "lg" ? "w-12 h-12 text-base" : "w-10 h-10 text-sm";
2576
+ return /* @__PURE__ */ a("div", { className: "relative inline-flex shrink-0", children: [
2577
+ r && !i ? /* @__PURE__ */ e(
2578
+ "img",
2579
+ {
2580
+ src: r,
2581
+ alt: t,
2582
+ onError: () => u(!0),
2583
+ className: `${s} rounded-full object-cover border border-[var(--zen-border-strong)]`
2584
+ }
2585
+ ) : /* @__PURE__ */ e(
2586
+ "span",
2587
+ {
2588
+ "aria-label": t,
2589
+ className: `${s} rounded-full bg-[var(--zen-accent-subtle)] border border-[var(--zen-accent-border)] text-[var(--zen-accent-primary)] zen-font-mono font-bold inline-flex items-center justify-center`,
2590
+ children: l
2591
+ }
2592
+ ),
2593
+ n && /* @__PURE__ */ e(
2594
+ "span",
2595
+ {
2596
+ className: `absolute bottom-0 right-0 w-2.5 h-2.5 rounded-full ring-2 ring-[var(--zen-bg-canvas)] ${n === "online" ? "bg-[var(--zen-status-success)]" : n === "busy" ? "bg-[var(--zen-status-danger)]" : "bg-[var(--zen-ink-muted)]"}`
2597
+ }
2598
+ )
2599
+ ] });
2600
+ }
2601
+ function Br({
2602
+ title: t,
2603
+ language: r = "TSX",
2604
+ code: n,
2605
+ footerSlot: m,
2606
+ className: i = ""
2607
+ }) {
2608
+ return /* @__PURE__ */ a(
2609
+ "div",
2610
+ {
2611
+ "data-zen-occlude": "true",
2612
+ className: `rounded-2xl border border-[var(--zen-border-default)] bg-[var(--zen-bg-canvas)] overflow-hidden ${i}`.trim(),
2613
+ children: [
2614
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between gap-2 px-4 py-2.5 border-b border-[var(--zen-border-subtle)] bg-[var(--zen-surface-subtle)]", children: [
2615
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2 min-w-0", children: [
2616
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label text-[var(--zen-accent-primary)]", children: r }),
2617
+ /* @__PURE__ */ e("span", { className: "zen-font-mono text-xs text-[var(--zen-ink-secondary)] truncate", children: t })
2618
+ ] }),
2619
+ /* @__PURE__ */ e(rt, { value: n, label: "COPY", size: "sm" })
2620
+ ] }),
2621
+ /* @__PURE__ */ e("pre", { className: "p-4 zen-font-mono text-xs text-[var(--zen-ink-primary)] overflow-x-auto leading-relaxed", children: /* @__PURE__ */ e("code", { children: n }) }),
2622
+ m && /* @__PURE__ */ e("div", { className: "px-4 py-2 border-t border-[var(--zen-border-subtle)]", children: m })
2623
+ ]
2624
+ }
2625
+ );
2626
+ }
2627
+ const _t = {
2628
+ info: {
2629
+ border: "border-[var(--zen-status-info)]/50 bg-[var(--zen-status-info)]/10",
2630
+ icon: /* @__PURE__ */ e(Xe, { className: "w-4 h-4 text-[var(--zen-status-info)] shrink-0" })
2631
+ },
2632
+ success: {
2633
+ border: "border-[var(--zen-status-success)]/50 bg-[var(--zen-status-success)]/10",
2634
+ icon: /* @__PURE__ */ e(Pe, { className: "w-4 h-4 text-[var(--zen-status-success)] shrink-0" })
2635
+ },
2636
+ warning: {
2637
+ border: "border-[var(--zen-status-warning)]/50 bg-[var(--zen-status-warning)]/10",
2638
+ icon: /* @__PURE__ */ e(Ye, { className: "w-4 h-4 text-[var(--zen-status-warning)] shrink-0" })
2639
+ },
2640
+ danger: {
2641
+ border: "border-[var(--zen-status-danger)]/50 bg-[var(--zen-status-danger)]/10",
2642
+ icon: /* @__PURE__ */ e(Qe, { className: "w-4 h-4 text-[var(--zen-status-danger)] shrink-0" })
2643
+ }
2644
+ };
2645
+ function Hr({
2646
+ tone: t = "info",
2647
+ title: r,
2648
+ children: n,
2649
+ actionSlot: m,
2650
+ className: i = ""
2651
+ }) {
2652
+ const u = _t[t];
2653
+ return /* @__PURE__ */ a(
2654
+ "div",
2655
+ {
2656
+ role: t === "danger" || t === "warning" ? "alert" : "status",
2657
+ "data-zen-occlude": "true",
2658
+ className: `p-4 rounded-2xl border flex flex-col sm:flex-row sm:items-center justify-between gap-4 ${u.border} ${i}`.trim(),
2659
+ children: [
2660
+ /* @__PURE__ */ a("div", { className: "flex items-start gap-3", children: [
2661
+ /* @__PURE__ */ e("div", { className: "mt-0.5", children: u.icon }),
2662
+ /* @__PURE__ */ a("div", { children: [
2663
+ /* @__PURE__ */ e("div", { className: "zen-font-mono text-xs font-bold text-[var(--zen-ink-primary)]", children: r }),
2664
+ /* @__PURE__ */ e("div", { className: "text-xs sm:text-sm text-[var(--zen-ink-secondary)] mt-0.5", children: n })
2665
+ ] })
2666
+ ] }),
2667
+ m && /* @__PURE__ */ e("div", { className: "shrink-0", children: m })
2668
+ ]
2669
+ }
2670
+ );
2671
+ }
2672
+ function _r({ lines: t = 3, className: r = "" }) {
2673
+ return /* @__PURE__ */ e(
2674
+ "div",
2675
+ {
2676
+ role: "status",
2677
+ "aria-busy": "true",
2678
+ "aria-label": "Loading content",
2679
+ className: `space-y-2.5 ${r}`.trim(),
2680
+ children: Array.from({ length: t }).map((n, m) => /* @__PURE__ */ e(
2681
+ "div",
2682
+ {
2683
+ style: { width: m === t - 1 ? "65%" : "100%" },
2684
+ className: "h-3.5 rounded-lg bg-[var(--zen-surface-subtle-hover)] animate-pulse"
2685
+ },
2686
+ m
2687
+ ))
2688
+ }
2689
+ );
2690
+ }
2691
+ function Ur({
2692
+ title: t,
2693
+ description: r,
2694
+ icon: n,
2695
+ actionSlot: m,
2696
+ className: i = ""
2697
+ }) {
2698
+ return /* @__PURE__ */ a(
2699
+ "div",
2700
+ {
2701
+ "data-zen-occlude": "true",
2702
+ className: `p-8 rounded-3xl border border-dashed border-[var(--zen-border-strong)] bg-[var(--zen-surface-subtle)] text-center flex flex-col items-center justify-center gap-3 ${i}`.trim(),
2703
+ children: [
2704
+ /* @__PURE__ */ e("div", { className: "p-3 rounded-2xl bg-[var(--zen-accent-subtle)] text-[var(--zen-accent-primary)]", children: n ?? /* @__PURE__ */ e(Et, { className: "w-6 h-6" }) }),
2705
+ /* @__PURE__ */ e("div", { className: "zen-font-display text-lg font-bold text-[var(--zen-ink-primary)]", children: t }),
2706
+ /* @__PURE__ */ e("p", { className: "text-xs sm:text-sm text-[var(--zen-ink-secondary)] max-w-md", children: r }),
2707
+ m && /* @__PURE__ */ e("div", { className: "mt-1", children: m })
2708
+ ]
2709
+ }
2710
+ );
2711
+ }
2712
+ const Re = [
2713
+ {
2714
+ id: "lofi-atelier",
2715
+ label: "Lo-Fi Atelier (Dm9 -> Cmaj9)",
2716
+ bpm: 73,
2717
+ cutoffHz: 520,
2718
+ chords: [
2719
+ [146.83, 220, 261.63, 329.63, 392],
2720
+ [130.81, 196, 246.94, 293.66, 349.23],
2721
+ [116.54, 174.61, 220, 261.63, 329.63],
2722
+ [110, 164.81, 207.65, 246.94, 311.13]
2723
+ ]
2724
+ },
2725
+ {
2726
+ id: "deep-cosmos",
2727
+ label: "Deep Cosmos (Alpha Cen Drone)",
2728
+ bpm: 56,
2729
+ cutoffHz: 390,
2730
+ chords: [
2731
+ [110, 164.81, 220, 277.18, 329.63],
2732
+ [98, 146.83, 196, 246.94, 293.66],
2733
+ [87.31, 130.81, 174.61, 220, 261.63],
2734
+ [92.5, 138.59, 185, 233.08, 277.18]
2735
+ ]
2736
+ },
2737
+ {
2738
+ id: "minimal-pulse",
2739
+ label: "Swiss Precision (Quartal Telemetry)",
2740
+ bpm: 84,
2741
+ cutoffHz: 680,
2742
+ chords: [
2743
+ [164.81, 220, 293.66, 392],
2744
+ [146.83, 196, 261.63, 349.23],
2745
+ [130.81, 174.61, 233.08, 311.13],
2746
+ [146.83, 220, 293.66, 440]
2747
+ ]
2748
+ }
2749
+ ];
2750
+ function jr(t) {
2751
+ const [r, n] = H(!1), [m, i] = H(
2752
+ (t == null ? void 0 : t.defaultPreset) ?? "lofi-atelier"
2753
+ ), [u, l] = H(
2754
+ (t == null ? void 0 : t.defaultVolume) ?? 0.8
2755
+ ), [s, c] = H(0), o = R(null), f = R(null), p = R(null), d = R(null), v = R(u), h = ge(() => {
2756
+ if (typeof window > "u") return null;
2757
+ const x = window.AudioContext;
2758
+ if (!x) return null;
2759
+ if (!o.current || o.current.state === "closed") {
2760
+ const N = new x(), y = N.createGain();
2761
+ y.gain.setValueAtTime(v.current, N.currentTime), y.connect(N.destination);
2762
+ const I = Math.floor(N.sampleRate * 0.09), A = N.createBuffer(1, I, N.sampleRate), M = A.getChannelData(0);
2763
+ for (let S = 0; S < I; S++)
2764
+ M[S] = (Math.random() * 2 - 1) * Math.exp(-S / (I * 0.35));
2765
+ o.current = N, f.current = y, p.current = A;
2766
+ }
2767
+ const g = o.current, z = f.current, $ = p.current;
2768
+ return !g || !z || !$ ? null : (g.state === "suspended" && g.resume(), { ctx: g, master: z, snareBuffer: $ });
2769
+ }, []), T = ge((x) => {
2770
+ const g = Math.max(0, Math.min(1, x));
2771
+ v.current = g, l(g), f.current && o.current && f.current.gain.setTargetAtTime(
2772
+ g,
2773
+ o.current.currentTime,
2774
+ 0.04
2775
+ );
2776
+ }, []), E = ge(
2777
+ (x = 880) => {
2778
+ const g = h();
2779
+ if (!g) return;
2780
+ const { ctx: z, master: $ } = g, N = z.currentTime, y = z.createOscillator(), I = z.createGain();
2781
+ y.type = "sine", y.frequency.setValueAtTime(x, N), y.frequency.exponentialRampToValueAtTime(x * 0.5, N + 0.035), I.gain.setValueAtTime(0.025, N), I.gain.exponentialRampToValueAtTime(1e-4, N + 0.04), y.connect(I), I.connect($), y.start(N), y.stop(N + 0.045);
2782
+ },
2783
+ [h]
2784
+ );
2785
+ return q(() => () => {
2786
+ d.current !== null && window.clearInterval(d.current), o.current && o.current.state !== "closed" && o.current.close();
2787
+ }, []), q(() => {
2788
+ if (!r) {
2789
+ d.current !== null && (window.clearInterval(d.current), d.current = null);
2790
+ return;
2791
+ }
2792
+ const x = h();
2793
+ if (!x) return;
2794
+ const { ctx: g, master: z, snareBuffer: $ } = x, N = Re.find((M) => M.id === m) ?? Re[0], y = Math.round(60 / N.bpm / 2 * 1e3), I = (M) => {
2795
+ const S = g.currentTime, L = M % 8, Q = Math.floor(M / 8) % N.chords.length, k = N.chords[Q];
2796
+ if ((L === 0 || L === 3) && k.forEach((b, _) => {
2797
+ const U = g.createOscillator(), se = g.createGain(), F = g.createBiquadFilter(), D = g.createOscillator(), Z = g.createGain();
2798
+ U.type = _ === 0 ? "sine" : "triangle", U.frequency.setValueAtTime(b, S), D.frequency.setValueAtTime(4.2, S), Z.gain.setValueAtTime(_ === 0 ? 0.2 : 1.1, S), D.connect(Z), Z.connect(U.frequency), F.type = "lowpass", F.frequency.setValueAtTime(N.cutoffHz, S);
2799
+ const B = _ === 0 ? 0.042 : 0.018, K = L === 0 ? 1.45 : 1.95;
2800
+ se.gain.setValueAtTime(1e-4, S), se.gain.linearRampToValueAtTime(B, S + 0.08), se.gain.exponentialRampToValueAtTime(1e-4, S + K), U.connect(F), F.connect(se), se.connect(z), U.start(S), D.start(S), U.stop(S + K + 0.05), D.stop(S + K + 0.05);
2801
+ }), L === 0 || L === 5) {
2802
+ const b = g.createOscillator(), _ = g.createGain();
2803
+ b.type = "sine", b.frequency.setValueAtTime(108, S), b.frequency.exponentialRampToValueAtTime(38, S + 0.14), _.gain.setValueAtTime(0.065, S), _.gain.exponentialRampToValueAtTime(1e-4, S + 0.24), b.connect(_), _.connect(z), b.start(S), b.stop(S + 0.26);
2804
+ }
2805
+ if (L === 2 || L === 6) {
2806
+ const b = g.createBufferSource();
2807
+ b.buffer = $;
2808
+ const _ = g.createBiquadFilter();
2809
+ _.type = "bandpass", _.frequency.setValueAtTime(1150, S);
2810
+ const U = g.createGain();
2811
+ U.gain.setValueAtTime(0.022, S), U.gain.exponentialRampToValueAtTime(1e-4, S + 0.09), b.connect(_), _.connect(U), U.connect(z), b.start(S);
2812
+ }
2813
+ };
2814
+ let A = 0;
2815
+ return c(0), I(0), d.current = window.setInterval(() => {
2816
+ A += 1, c(A % 8), I(A);
2817
+ }, y), () => {
2818
+ d.current !== null && (window.clearInterval(d.current), d.current = null);
2819
+ };
2820
+ }, [r, m, h]), {
2821
+ active: r,
2822
+ presetId: m,
2823
+ volume: u,
2824
+ currentStep: s,
2825
+ presets: Re,
2826
+ toggle: () => n((x) => !x),
2827
+ setPresetId: i,
2828
+ setVolume: T,
2829
+ playMicroClick: E
2830
+ };
2831
+ }
2832
+ function Wr({
2833
+ synth: t,
2834
+ mode: r = "pill",
2835
+ activeLabel: n = "Lo-Fi Radio: ON",
2836
+ idleLabel: m = "Lo-Fi Background",
2837
+ className: i = ""
2838
+ }) {
2839
+ return r === "pill" ? /* @__PURE__ */ e(
2840
+ ze,
2841
+ {
2842
+ variant: "secondary",
2843
+ size: "sm",
2844
+ mono: !0,
2845
+ pressed: t.active,
2846
+ onClick: t.toggle,
2847
+ "aria-label": "Toggle procedural ambient synthesizer",
2848
+ className: i,
2849
+ iconLeft: t.active ? /* @__PURE__ */ e(He, { className: "w-3.5 h-3.5 animate-pulse" }) : /* @__PURE__ */ e(_e, { className: "w-3.5 h-3.5 text-[var(--zen-accent-primary)]" }),
2850
+ children: t.active ? n : m
2851
+ }
2852
+ ) : /* @__PURE__ */ a(
2853
+ "div",
2854
+ {
2855
+ "data-zen-occlude": "true",
2856
+ className: `p-5 rounded-3xl zen-surface-static flex flex-col gap-4 ${i}`.trim(),
2857
+ children: [
2858
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
2859
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-3", children: [
2860
+ /* @__PURE__ */ e(
2861
+ Mt,
2862
+ {
2863
+ className: `w-6 h-6 text-[var(--zen-accent-primary)] ${t.active ? "animate-spin" : ""}`
2864
+ }
2865
+ ),
2866
+ /* @__PURE__ */ a("div", { children: [
2867
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label text-[var(--zen-accent-primary)]", children: "WEB AUDIO PROCEDURAL SYNTHESIZER" }),
2868
+ /* @__PURE__ */ e("div", { className: "zen-font-display font-bold text-base text-[var(--zen-ink-primary)]", children: "Zero-Dependency Acoustic Engine" })
2869
+ ] })
2870
+ ] }),
2871
+ /* @__PURE__ */ e(
2872
+ ze,
2873
+ {
2874
+ variant: t.active ? "primary" : "secondary",
2875
+ size: "sm",
2876
+ mono: !0,
2877
+ pressed: t.active,
2878
+ onClick: t.toggle,
2879
+ iconLeft: t.active ? /* @__PURE__ */ e(He, { className: "w-3.5 h-3.5" }) : /* @__PURE__ */ e(_e, { className: "w-3.5 h-3.5" }),
2880
+ children: t.active ? "SYNTH ACTIVE" : "START SYNTH"
2881
+ }
2882
+ )
2883
+ ] }),
2884
+ /* @__PURE__ */ a("div", { className: "flex flex-col sm:flex-row sm:items-center justify-between gap-4 pt-2 border-t border-[var(--zen-border-subtle)]", children: [
2885
+ /* @__PURE__ */ e(
2886
+ st,
2887
+ {
2888
+ ariaLabel: "Select synthesizer voicing preset",
2889
+ size: "sm",
2890
+ value: t.presetId,
2891
+ onChange: t.setPresetId,
2892
+ items: t.presets.map((u) => ({
2893
+ value: u.id,
2894
+ label: u.label.split(" (")[0]
2895
+ }))
2896
+ }
2897
+ ),
2898
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-1.5", "aria-label": "8-step bar sequencer", children: Array.from({ length: 8 }).map((u, l) => {
2899
+ const s = t.active && t.currentStep === l;
2900
+ return /* @__PURE__ */ e(
2901
+ "span",
2902
+ {
2903
+ className: `h-2.5 w-2.5 rounded-full transition-all ${s ? "bg-[var(--zen-accent-primary)] scale-125" : "bg-[var(--zen-border-default)]"}`
2904
+ },
2905
+ l
2906
+ );
2907
+ }) })
2908
+ ] })
2909
+ ]
2910
+ }
2911
+ );
2912
+ }
2913
+ const it = [
2914
+ {
2915
+ id: "alpha-cen-a",
2916
+ badge: "STELLAR CORE 01 · PRIMARY",
2917
+ name: "Alpha Centauri A (Rigil Kentaurus)",
2918
+ shortName: "Alpha Cen A",
2919
+ classification: "G2V Main-Sequence Yellow Star",
2920
+ massLabel: "1.100 M☉ (2.19 × 10³⁰ kg)",
2921
+ tempLumLabel: "5,790 K · 1.519 L☉",
2922
+ accentHex: "#FBBF24",
2923
+ hitRadius: 0.56,
2924
+ reticleSize: 132
2925
+ },
2926
+ {
2927
+ id: "alpha-cen-b",
2928
+ badge: "STELLAR CORE 02 · SECONDARY",
2929
+ name: "Alpha Centauri B (Toliman)",
2930
+ shortName: "Alpha Cen B",
2931
+ classification: "K1V Main-Sequence Orange Star",
2932
+ massLabel: "0.907 M☉ (1.80 × 10³⁰ kg)",
2933
+ tempLumLabel: "5,260 K · 0.500 L☉",
2934
+ accentHex: "#FB923C",
2935
+ hitRadius: 0.45,
2936
+ reticleSize: 106
2937
+ },
2938
+ {
2939
+ id: "proxima-c",
2940
+ badge: "STELLAR CORE 03 · TERTIARY",
2941
+ name: "Proxima Centauri (Alpha Cen C)",
2942
+ shortName: "Proxima C",
2943
+ classification: "M5.5Ve Red Dwarf Flare Star",
2944
+ massLabel: "0.540 M☉ (Trisolaran Active Flare)",
2945
+ tempLumLabel: "3,042 K · 0.080 L☉",
2946
+ accentHex: "#F87171",
2947
+ hitRadius: 0.36,
2948
+ reticleSize: 86
2949
+ },
2950
+ {
2951
+ id: "trisolaris",
2952
+ badge: "TRISOLARAN HOMEWORLD",
2953
+ name: "Planet Trisolaris",
2954
+ shortName: "Trisolaris",
2955
+ classification: "Silicate-Basalt Rocky Exoplanet",
2956
+ massLabel: "1.08 M⊕ (6.45 × 10²⁴ kg)",
2957
+ tempLumLabel: "3-Sun Tidal & Radiative Flux",
2958
+ accentHex: "#60A5FA",
2959
+ hitRadius: 0.36,
2960
+ reticleSize: 86
2961
+ }
2962
+ ], Ut = '[data-zen-occlude="true"], a, button, input, select, textarea, [role="button"], [role="radiogroup"], [role="tablist"], [role="listbox"], [role="dialog"]';
2963
+ function lt({
2964
+ bridgeRef: t,
2965
+ declarativeData: r
2966
+ }) {
2967
+ const n = R(null), m = R(null), i = R(null), u = R(null), l = R(null), s = R(null), c = R(null), o = R(null), f = R(null);
2968
+ return ot(
2969
+ t,
2970
+ () => ({
2971
+ isOccludedTarget: (p) => {
2972
+ var v;
2973
+ const d = p;
2974
+ return !!((v = d == null ? void 0 : d.closest) != null && v.call(d, Ut));
2975
+ },
2976
+ commitFrame: (p) => {
2977
+ const d = n.current, v = m.current;
2978
+ if (!d || !v) return;
2979
+ if (!p) {
2980
+ d.style.opacity = "0", v.style.opacity = "0";
2981
+ return;
2982
+ }
2983
+ const {
2984
+ screenX: h,
2985
+ screenY: T,
2986
+ reticleSize: E,
2987
+ accentHex: x,
2988
+ badge: g,
2989
+ name: z,
2990
+ classification: $,
2991
+ massLabel: N,
2992
+ tempLumLabel: y,
2993
+ velocityLabel: I,
2994
+ statusLabel: A
2995
+ } = p;
2996
+ v.style.opacity = "1", v.style.width = `${E}px`, v.style.height = `${E}px`, v.style.borderColor = x, v.style.transform = `translate3d(${h - E * 0.5}px, ${T - E * 0.5}px, 0)`;
2997
+ const M = Math.min(
2998
+ Math.max(h + E * 0.5 + 16, 16),
2999
+ window.innerWidth - 336
3000
+ ), S = Math.min(
3001
+ Math.max(T - 76, 88),
3002
+ window.innerHeight - 200
3003
+ );
3004
+ d.style.opacity = "1", d.style.transform = `translate3d(${M}px, ${S}px, 0)`, d.style.borderColor = `${x}77`, i.current && (i.current.textContent = g, i.current.style.color = x), u.current && (u.current.textContent = z), l.current && (l.current.textContent = $), s.current && (s.current.textContent = N), c.current && (c.current.textContent = y), o.current && (o.current.textContent = I), f.current && (f.current.textContent = A);
3005
+ }
3006
+ }),
3007
+ []
3008
+ ), /* @__PURE__ */ a(ye, { children: [
3009
+ /* @__PURE__ */ a("div", { className: "fixed inset-0 z-40 pointer-events-none overflow-hidden", children: [
3010
+ /* @__PURE__ */ e(
3011
+ "div",
3012
+ {
3013
+ ref: m,
3014
+ style: { opacity: 0 },
3015
+ className: "fixed top-0 left-0 rounded-full border border-dashed transition-opacity duration-150"
3016
+ }
3017
+ ),
3018
+ /* @__PURE__ */ a(
3019
+ "div",
3020
+ {
3021
+ ref: n,
3022
+ style: { opacity: 0 },
3023
+ className: "fixed top-0 left-0 w-80 rounded-2xl border bg-[var(--zen-bg-elevated)]/95 backdrop-blur-md p-4 text-[var(--zen-ink-primary)] shadow-[var(--zen-shadow-hud)] transition-opacity duration-150",
3024
+ children: [
3025
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between gap-2 mb-1", children: [
3026
+ /* @__PURE__ */ e(
3027
+ "span",
3028
+ {
3029
+ ref: i,
3030
+ className: "zen-telemetry-label font-semibold"
3031
+ }
3032
+ ),
3033
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label", children: "LIVE TELEMETRY" })
3034
+ ] }),
3035
+ /* @__PURE__ */ e(
3036
+ "div",
3037
+ {
3038
+ ref: u,
3039
+ className: "zen-font-display font-bold text-sm tracking-tight text-[var(--zen-ink-primary)] leading-snug"
3040
+ }
3041
+ ),
3042
+ /* @__PURE__ */ e(
3043
+ "div",
3044
+ {
3045
+ ref: l,
3046
+ className: "zen-font-mono text-xs text-[var(--zen-ink-secondary)] mb-2.5"
3047
+ }
3048
+ ),
3049
+ /* @__PURE__ */ a("div", { className: "grid grid-cols-2 gap-2 pt-2 border-t border-[var(--zen-border-subtle)] zen-font-mono text-xs", children: [
3050
+ /* @__PURE__ */ a("div", { children: [
3051
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: "Mass" }),
3052
+ /* @__PURE__ */ e(
3053
+ "span",
3054
+ {
3055
+ ref: s,
3056
+ className: "text-[var(--zen-ink-primary)] font-medium"
3057
+ }
3058
+ )
3059
+ ] }),
3060
+ /* @__PURE__ */ a("div", { children: [
3061
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: "Thermal / Lum" }),
3062
+ /* @__PURE__ */ e(
3063
+ "span",
3064
+ {
3065
+ ref: c,
3066
+ className: "text-[var(--zen-ink-primary)] font-medium"
3067
+ }
3068
+ )
3069
+ ] }),
3070
+ /* @__PURE__ */ a("div", { children: [
3071
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: "Orbital Speed" }),
3072
+ /* @__PURE__ */ e(
3073
+ "span",
3074
+ {
3075
+ ref: o,
3076
+ className: "text-[var(--zen-accent-primary)] font-semibold"
3077
+ }
3078
+ )
3079
+ ] }),
3080
+ /* @__PURE__ */ a("div", { children: [
3081
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: "State" }),
3082
+ /* @__PURE__ */ e(
3083
+ "span",
3084
+ {
3085
+ ref: f,
3086
+ className: "text-[var(--zen-ink-secondary)] truncate block"
3087
+ }
3088
+ )
3089
+ ] })
3090
+ ] })
3091
+ ]
3092
+ }
3093
+ )
3094
+ ] }),
3095
+ r && /* @__PURE__ */ a(
3096
+ "div",
3097
+ {
3098
+ role: "region",
3099
+ "aria-live": "polite",
3100
+ "aria-label": "Locked celestial telemetry inspector",
3101
+ "data-zen-occlude": "true",
3102
+ style: { borderColor: `${r.accentHex}77` },
3103
+ className: "w-full rounded-2xl border bg-[var(--zen-surface-2)] p-5 text-[var(--zen-ink-primary)] shadow-[var(--zen-shadow-resting)]",
3104
+ children: [
3105
+ /* @__PURE__ */ a("div", { className: "flex items-center justify-between gap-2 mb-1.5", children: [
3106
+ /* @__PURE__ */ e(
3107
+ "span",
3108
+ {
3109
+ style: { color: r.accentHex },
3110
+ className: "zen-telemetry-label font-semibold",
3111
+ children: r.badge
3112
+ }
3113
+ ),
3114
+ /* @__PURE__ */ e("span", { className: "zen-telemetry-label", children: "DECLARATIVE LOCK · A11Y" })
3115
+ ] }),
3116
+ /* @__PURE__ */ e("div", { className: "zen-font-display font-bold text-lg text-[var(--zen-ink-primary)]", children: r.name }),
3117
+ /* @__PURE__ */ e("div", { className: "zen-font-mono text-xs text-[var(--zen-ink-secondary)] mb-3", children: r.classification }),
3118
+ /* @__PURE__ */ a("div", { className: "grid grid-cols-2 sm:grid-cols-4 gap-3 pt-3 border-t border-[var(--zen-border-subtle)] zen-font-mono text-xs", children: [
3119
+ /* @__PURE__ */ a("div", { children: [
3120
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: "Mass" }),
3121
+ /* @__PURE__ */ e("span", { className: "text-[var(--zen-ink-primary)] font-medium", children: r.massLabel })
3122
+ ] }),
3123
+ /* @__PURE__ */ a("div", { children: [
3124
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: "Thermal / Lum" }),
3125
+ /* @__PURE__ */ e("span", { className: "text-[var(--zen-ink-primary)] font-medium", children: r.tempLumLabel })
3126
+ ] }),
3127
+ /* @__PURE__ */ a("div", { children: [
3128
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: "Orbital Speed" }),
3129
+ /* @__PURE__ */ e("span", { className: "text-[var(--zen-accent-primary)] font-semibold", children: r.velocityLabel })
3130
+ ] }),
3131
+ /* @__PURE__ */ a("div", { children: [
3132
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label", children: "State" }),
3133
+ /* @__PURE__ */ e("span", { className: "text-[var(--zen-ink-secondary)]", children: r.statusLabel })
3134
+ ] })
3135
+ ] })
3136
+ ]
3137
+ }
3138
+ )
3139
+ ] });
3140
+ }
3141
+ function qr({
3142
+ activeTarget: t,
3143
+ onSelectTarget: r,
3144
+ catalog: n = it,
3145
+ className: m = ""
3146
+ }) {
3147
+ const i = n.find((u) => u.id === t) ?? null;
3148
+ return /* @__PURE__ */ a("div", { className: `space-y-4 ${m}`.trim(), children: [
3149
+ /* @__PURE__ */ a("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [
3150
+ /* @__PURE__ */ a("div", { children: [
3151
+ /* @__PURE__ */ e("div", { className: "zen-telemetry-label text-[var(--zen-accent-primary)]", children: "SPATIAL TELEMETRY TARGET SELECTOR" }),
3152
+ /* @__PURE__ */ e("p", { className: "text-xs text-[var(--zen-ink-secondary)] mt-0.5", children: "Hover celestial bodies in 3D space or lock a target below via keyboard roving tabindex." })
3153
+ ] }),
3154
+ /* @__PURE__ */ e(
3155
+ st,
3156
+ {
3157
+ ariaLabel: "Select celestial telemetry target",
3158
+ size: "sm",
3159
+ value: t,
3160
+ onChange: r,
3161
+ items: [
3162
+ { value: "auto", label: "Pointer Raycast" },
3163
+ ...n.map((u) => ({
3164
+ value: u.id,
3165
+ label: u.shortName
3166
+ }))
3167
+ ]
3168
+ }
3169
+ )
3170
+ ] }),
3171
+ i && /* @__PURE__ */ e(
3172
+ lt,
3173
+ {
3174
+ declarativeData: {
3175
+ badge: i.badge,
3176
+ name: i.name,
3177
+ classification: i.classification,
3178
+ accentHex: i.accentHex,
3179
+ massLabel: i.massLabel,
3180
+ tempLumLabel: i.tempLumLabel,
3181
+ velocityLabel: i.id === "trisolaris" ? "47.2 km/s" : "24.6 km/s",
3182
+ statusLabel: i.id === "trisolaris" ? "STABLE ERA · TEMPERATE (Pull: Alpha Cen A)" : "Barycentric N-Body Integration Active"
3183
+ }
3184
+ }
3185
+ )
3186
+ ] });
3187
+ }
3188
+ const jt = `
3189
+ attribute float aSize;
3190
+ attribute vec3 aColor;
3191
+ varying vec3 vColor;
3192
+
3193
+ void main() {
3194
+ vColor = aColor;
3195
+ vec4 mvPosition = modelViewMatrix * vec4(position, 1.0);
3196
+ gl_PointSize = clamp(aSize * (18.0 / -mvPosition.z), 1.2, 4.2);
3197
+ gl_Position = projectionMatrix * mvPosition;
3198
+ }
3199
+ `, Wt = `
3200
+ varying vec3 vColor;
3201
+
3202
+ void main() {
3203
+ vec2 uv = gl_PointCoord - vec2(0.5);
3204
+ float r = length(uv) * 2.0;
3205
+ if (r > 1.0) discard;
3206
+ float airy = exp(-r * r * 5.2);
3207
+ gl_FragColor = vec4(vColor * (1.0 + airy * 0.45), airy * 0.92);
3208
+ }
3209
+ `, $e = `
3210
+ float hash31(vec3 p) {
3211
+ p = fract(p * vec3(443.897, 441.423, 437.195));
3212
+ p += dot(p, p.yzx + 19.19);
3213
+ return fract((p.x + p.y) * p.z);
3214
+ }
3215
+
3216
+ float noise3D(vec3 p) {
3217
+ vec3 i = floor(p);
3218
+ vec3 f = fract(p);
3219
+ f = f * f * (3.0 - 2.0 * f);
3220
+ return mix(
3221
+ mix(
3222
+ mix(hash31(i + vec3(0,0,0)), hash31(i + vec3(1,0,0)), f.x),
3223
+ mix(hash31(i + vec3(0,1,0)), hash31(i + vec3(1,1,0)), f.x),
3224
+ f.y
3225
+ ),
3226
+ mix(
3227
+ mix(hash31(i + vec3(0,0,1)), hash31(i + vec3(1,0,1)), f.x),
3228
+ mix(hash31(i + vec3(0,1,1)), hash31(i + vec3(1,1,1)), f.x),
3229
+ f.y
3230
+ ),
3231
+ f.z
3232
+ );
3233
+ }
3234
+
3235
+ float fbm6(vec3 p) {
3236
+ float v = 0.0;
3237
+ float amp = 0.5;
3238
+ mat3 rot = mat3(
3239
+ 0.00, 0.80, 0.60,
3240
+ -0.80, 0.36, -0.48,
3241
+ -0.60, -0.48, 0.64
3242
+ );
3243
+ for (int i = 0; i < 6; i++) {
3244
+ v += amp * noise3D(p);
3245
+ p = rot * p * 2.07 + vec3(1.7, 9.2, 3.4);
3246
+ amp *= 0.48;
3247
+ }
3248
+ return v;
3249
+ }
3250
+
3251
+ float ridgedFbm(vec3 p) {
3252
+ float v = 0.0;
3253
+ float amp = 0.55;
3254
+ float weight = 1.0;
3255
+ for (int i = 0; i < 5; i++) {
3256
+ float n = 1.0 - abs(noise3D(p) * 2.0 - 1.0);
3257
+ n = n * n * weight;
3258
+ weight = clamp(n * 1.8, 0.0, 1.0);
3259
+ v += n * amp;
3260
+ p *= 2.15;
3261
+ amp *= 0.48;
3262
+ }
3263
+ return v;
3264
+ }
3265
+ `, qt = `
3266
+ uniform float uTime;
3267
+ varying vec3 vWorldNormal;
3268
+ varying vec3 vWorldPosition;
3269
+ varying vec3 vLocalPos;
3270
+
3271
+ void main() {
3272
+ vLocalPos = normalize(position);
3273
+ vWorldNormal = normalize(mat3(modelMatrix) * normal);
3274
+ vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;
3275
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
3276
+ }
3277
+ `, Kt = `
3278
+ uniform float uTime;
3279
+ uniform vec3 uCoreColor;
3280
+ uniform vec3 uEdgeColor;
3281
+ uniform vec3 uSpotColor;
3282
+ uniform float uGlowGain;
3283
+ uniform float uGranuleScale;
3284
+ varying vec3 vWorldNormal;
3285
+ varying vec3 vWorldPosition;
3286
+ varying vec3 vLocalPos;
3287
+
3288
+ ${$e}
3289
+
3290
+ void main() {
3291
+ vec3 viewDir = normalize(cameraPosition - vWorldPosition);
3292
+ vec3 n = normalize(vWorldNormal);
3293
+ float mu = clamp(dot(n, viewDir), 0.0, 1.0);
3294
+
3295
+ vec3 flowPos = vLocalPos * uGranuleScale + vec3(uTime * 0.14, -uTime * 0.11, uTime * 0.09);
3296
+ float gran = fbm6(flowPos);
3297
+ float filaments = ridgedFbm(vLocalPos * (uGranuleScale * 0.75) - vec3(uTime * 0.18));
3298
+
3299
+ float spotField = fbm6(vLocalPos * 3.2 + vec3(0.0, uTime * 0.04, 0.0));
3300
+ float sunspotMask = smoothstep(0.64, 0.73, spotField);
3301
+
3302
+ float limbDarkening = pow(mu, 0.52);
3303
+ float spiculeRim = pow(1.0 - mu, 3.2) * (0.6 + 0.8 * filaments);
3304
+
3305
+ vec3 photosphere = mix(uEdgeColor, uCoreColor, clamp(gran * 1.15 + filaments * 0.35, 0.0, 1.0));
3306
+ photosphere = mix(photosphere, uSpotColor, sunspotMask * 0.88);
3307
+ photosphere *= (0.38 + 0.72 * limbDarkening);
3308
+ photosphere += uCoreColor * filaments * 0.42 * (1.0 - sunspotMask);
3309
+ photosphere += mix(uEdgeColor, vec3(1.0, 0.95, 0.82), 0.4) * spiculeRim * 1.35;
3310
+
3311
+ gl_FragColor = vec4(photosphere * uGlowGain, 1.0);
3312
+ }
3313
+ `, Yt = `
3314
+ varying vec3 vWorldNormal;
3315
+ varying vec3 vWorldPosition;
3316
+ varying vec3 vLocalPos;
3317
+
3318
+ void main() {
3319
+ vLocalPos = normalize(position);
3320
+ vWorldNormal = normalize(mat3(modelMatrix) * normal);
3321
+ vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;
3322
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
3323
+ }
3324
+ `, Xt = `
3325
+ uniform float uTime;
3326
+ uniform vec3 uCoronaColor;
3327
+ varying vec3 vWorldNormal;
3328
+ varying vec3 vWorldPosition;
3329
+ varying vec3 vLocalPos;
3330
+
3331
+ ${$e}
3332
+
3333
+ void main() {
3334
+ vec3 viewDir = normalize(cameraPosition - vWorldPosition);
3335
+ vec3 n = normalize(vWorldNormal);
3336
+ float ndv = abs(dot(n, viewDir));
3337
+ float radialFade = pow(clamp(ndv, 0.0, 1.0), 3.2);
3338
+ float streamer = ridgedFbm(vLocalPos * 6.0 + vec3(uTime * 0.35, -uTime * 0.28, uTime * 0.22));
3339
+ float alpha = radialFade * (0.25 + streamer * 0.75);
3340
+ gl_FragColor = vec4(uCoronaColor * (1.1 + streamer * 0.9), clamp(alpha * 0.55, 0.0, 0.75));
3341
+ }
3342
+ `, Qt = `
3343
+ varying vec3 vWorldNormal;
3344
+ varying vec3 vWorldPosition;
3345
+ varying vec3 vLocalPos;
3346
+
3347
+ void main() {
3348
+ vLocalPos = normalize(position);
3349
+ vWorldNormal = normalize(mat3(modelMatrix) * normal);
3350
+ vWorldPosition = (modelMatrix * vec4(position, 1.0)).xyz;
3351
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
3352
+ }
3353
+ `, Jt = `
3354
+ uniform float uTime;
3355
+ uniform vec3 uSun0Pos;
3356
+ uniform vec3 uSun1Pos;
3357
+ uniform vec3 uSun2Pos;
3358
+ uniform float uTidalHeat;
3359
+ uniform float uBolometricFlux;
3360
+ varying vec3 vWorldNormal;
3361
+ varying vec3 vWorldPosition;
3362
+ varying vec3 vLocalPos;
3363
+
3364
+ ${$e}
3365
+
3366
+ void main() {
3367
+ vec3 p = vLocalPos * 3.8;
3368
+ float continent = fbm6(p);
3369
+ float mountains = ridgedFbm(p * 1.85 + vec3(2.4, -1.1, 0.7));
3370
+ float microCrater = ridgedFbm(p * 6.5);
3371
+ float heightField = continent * 0.55 + mountains * 0.35 + microCrater * 0.10;
3372
+
3373
+ vec3 dPdx = dFdx(vWorldPosition);
3374
+ vec3 dPdy = dFdy(vWorldPosition);
3375
+ float dHdx = dFdx(heightField);
3376
+ float dHdy = dFdy(heightField);
3377
+ vec3 baseNorm = normalize(vWorldNormal);
3378
+ vec3 surfGrad = (dHdx * cross(baseNorm, dPdy) + dHdy * cross(dPdx, baseNorm));
3379
+ vec3 n = normalize(baseNorm - surfGrad * 2.8);
3380
+
3381
+ float riftNoise = abs(fbm6(vLocalPos * 4.6 + vec3(1.2, 3.4, -2.1)) - 0.48);
3382
+ float riftMask = smoothstep(0.026, 0.003, riftNoise) * smoothstep(0.32, 0.58, mountains);
3383
+
3384
+ vec3 cloudCoord = vec3(
3385
+ vLocalPos.x * cos(uTime * 0.08) - vLocalPos.z * sin(uTime * 0.08),
3386
+ vLocalPos.y * 1.6,
3387
+ vLocalPos.x * sin(uTime * 0.08) + vLocalPos.z * cos(uTime * 0.08)
3388
+ );
3389
+ float cloudSwirl = fbm6(cloudCoord * 3.4 + vec3(fbm6(cloudCoord * 2.0)));
3390
+ float cloudMask = smoothstep(0.52, 0.74, cloudSwirl) * clamp(1.2 - uBolometricFlux * 0.35, 0.15, 0.9);
3391
+
3392
+ vec3 deepBasaltOcean = vec3(0.04, 0.08, 0.15);
3393
+ vec3 lowlandSilicate = vec3(0.22, 0.19, 0.16);
3394
+ vec3 highlandGranite = vec3(0.42, 0.37, 0.33);
3395
+ vec3 alpinePeak = vec3(0.72, 0.75, 0.80);
3396
+
3397
+ vec3 baseTerrain = deepBasaltOcean;
3398
+ if (heightField > 0.42) {
3399
+ baseTerrain = mix(lowlandSilicate, highlandGranite, smoothstep(0.42, 0.64, heightField));
3400
+ baseTerrain = mix(baseTerrain, alpinePeak, smoothstep(0.64, 0.82, heightField));
3401
+ } else {
3402
+ baseTerrain = mix(deepBasaltOcean, vec3(0.08, 0.15, 0.24), smoothstep(0.28, 0.42, heightField));
3403
+ }
3404
+
3405
+ float freezeFactor = clamp(1.0 - uBolometricFlux * 0.65, 0.0, 0.88);
3406
+ vec3 cryoIce = mix(vec3(0.68, 0.78, 0.90), vec3(0.90, 0.95, 1.0), mountains);
3407
+ vec3 surfaceAlbedo = mix(baseTerrain, cryoIce, freezeFactor * 0.78);
3408
+ surfaceAlbedo = mix(surfaceAlbedo, vec3(0.92, 0.94, 0.98), cloudMask * 0.65);
3409
+
3410
+ vec3 v0 = uSun0Pos - vWorldPosition;
3411
+ vec3 v1 = uSun1Pos - vWorldPosition;
3412
+ vec3 v2 = uSun2Pos - vWorldPosition;
3413
+ vec3 l0 = normalize(v0);
3414
+ vec3 l1 = normalize(v1);
3415
+ vec3 l2 = normalize(v2);
3416
+
3417
+ float d0Sq = max(0.18, dot(v0, v0));
3418
+ float d1Sq = max(0.18, dot(v1, v1));
3419
+ float d2Sq = max(0.18, dot(v2, v2));
3420
+
3421
+ float ndl0 = max(dot(n, l0), 0.0);
3422
+ float ndl1 = max(dot(n, l1), 0.0);
3423
+ float ndl2 = max(dot(n, l2), 0.0);
3424
+
3425
+ vec3 colG2V = vec3(1.0, 0.93, 0.80);
3426
+ vec3 colK1V = vec3(1.0, 0.68, 0.28);
3427
+ vec3 colMDwarf = vec3(0.96, 0.32, 0.12);
3428
+
3429
+ float irr0 = (1.52 / d0Sq) * ndl0;
3430
+ float irr1 = (0.65 / d1Sq) * ndl1;
3431
+ float irr2 = (0.18 / d2Sq) * ndl2;
3432
+ float localIrradiance = irr0 + irr1 + irr2;
3433
+
3434
+ vec3 viewDir = normalize(cameraPosition - vWorldPosition);
3435
+ float oceanMask = (1.0 - smoothstep(0.39, 0.44, heightField)) * (1.0 - freezeFactor) * (1.0 - cloudMask);
3436
+ float spec0 = pow(max(dot(reflect(-l0, n), viewDir), 0.0), 28.0) * oceanMask * (1.52 / d0Sq);
3437
+ float spec1 = pow(max(dot(reflect(-l1, n), viewDir), 0.0), 28.0) * oceanMask * (0.65 / d1Sq);
3438
+
3439
+ vec3 litPlanet = surfaceAlbedo * (
3440
+ vec3(0.03, 0.04, 0.06)
3441
+ + colG2V * irr0 * 0.95
3442
+ + colK1V * irr1 * 0.95
3443
+ + colMDwarf * irr2 * 0.95
3444
+ ) + colG2V * spec0 * 0.45 + colK1V * spec1 * 0.45;
3445
+
3446
+ float subStellarMelt = smoothstep(1.4, 3.5, localIrradiance) * ridgedFbm(p * 3.5);
3447
+ float lavaIntensity = clamp(riftMask * (uTidalHeat * 2.2 + localIrradiance * 0.65) + subStellarMelt * 0.85, 0.0, 2.5);
3448
+ vec3 magmaColor = mix(vec3(0.95, 0.18, 0.02), vec3(1.0, 0.85, 0.28), clamp(lavaIntensity * 0.55, 0.0, 1.0));
3449
+
3450
+ float rim = pow(1.0 - max(dot(viewDir, baseNorm), 0.0), 3.0);
3451
+ vec3 atmoColor = mix(vec3(0.32, 0.60, 0.96), vec3(1.0, 0.48, 0.15), clamp(uBolometricFlux * 0.45, 0.0, 1.0));
3452
+
3453
+ vec3 finalCol = litPlanet + magmaColor * lavaIntensity + atmoColor * rim * 0.48;
3454
+ gl_FragColor = vec4(finalCol, 1.0);
3455
+ }
3456
+ `;
3457
+ function qe(t, r) {
3458
+ const m = t[0].mass, i = t[1].mass, u = t[2].mass, l = m + i, s = l + u, c = 0.96, o = 1.76, f = Math.sqrt(1.5 * l / (c + 0.02)), p = -Math.sqrt(1.5 * s / (o + 0.05));
3459
+ t[0].pos.set(-i / l * c, -u / s * -o, 0), t[0].vel.set(-u / s * p, -i / l * f, 0.08), t[0].acc.set(0, 0, 0), t[1].pos.set(m / l * c, -u / s * -o, 0), t[1].vel.set(-u / s * p, m / l * f, -0.08), t[1].acc.set(0, 0, 0), t[2].pos.set(0, l / s * -o, 0), t[2].vel.set(l / s * p, 0, 0), t[2].acc.set(0, 0, 0), r.pos.set(-1.2, -0.6, 0.08), r.vel.set(-1.5, 0.3, 0.05), r.acc.set(0, 0, 0);
3460
+ }
3461
+ function er({
3462
+ scrollProgressRef: t,
3463
+ pointerNdcRef: r,
3464
+ bridgeRef: n,
3465
+ reducedMotion: m,
3466
+ paused: i,
3467
+ timeScale: u,
3468
+ catalog: l
3469
+ }) {
3470
+ const s = R(null), c = R(null), o = R(null), f = R(null), p = R(null), d = R(null), v = R(0), h = R(0), T = R(1), {
3471
+ sun0Geo: E,
3472
+ sun1Geo: x,
3473
+ sun2Geo: g,
3474
+ planetGeo: z,
3475
+ sunShaderMats: $,
3476
+ coronaShaderMats: N,
3477
+ trisolarisShaderMat: y,
3478
+ starfieldMat: I
3479
+ } = le(() => {
3480
+ const F = (j, Y, oe, X, ie) => new w.ShaderMaterial({
3481
+ uniforms: {
3482
+ uTime: { value: 0 },
3483
+ uCoreColor: { value: new w.Color(j) },
3484
+ uEdgeColor: { value: new w.Color(Y) },
3485
+ uSpotColor: { value: new w.Color(oe) },
3486
+ uGlowGain: { value: X },
3487
+ uGranuleScale: { value: ie }
3488
+ },
3489
+ vertexShader: qt,
3490
+ fragmentShader: Kt,
3491
+ toneMapped: !1
3492
+ }), D = (j) => new w.ShaderMaterial({
3493
+ uniforms: {
3494
+ uTime: { value: 0 },
3495
+ uCoronaColor: { value: new w.Color(j) }
3496
+ },
3497
+ vertexShader: Yt,
3498
+ fragmentShader: Xt,
3499
+ transparent: !0,
3500
+ depthWrite: !1,
3501
+ blending: w.AdditiveBlending,
3502
+ side: w.BackSide,
3503
+ toneMapped: !1
3504
+ }), Z = [
3505
+ F("#FFF3D1", "#D97706", "#290D02", 1.18, 8.5),
3506
+ F("#FDBA74", "#C2410C", "#240A01", 1.12, 7.2),
3507
+ F("#FB7185", "#7F1D1D", "#180303", 1.05, 5)
3508
+ ], B = [
3509
+ D("#FFB347"),
3510
+ D("#F97316"),
3511
+ D("#EF4444")
3512
+ ], K = new w.ShaderMaterial({
3513
+ uniforms: {
3514
+ uTime: { value: 0 },
3515
+ uSun0Pos: { value: new w.Vector3() },
3516
+ uSun1Pos: { value: new w.Vector3() },
3517
+ uSun2Pos: { value: new w.Vector3() },
3518
+ uTidalHeat: { value: 0.4 },
3519
+ uBolometricFlux: { value: 1 }
3520
+ },
3521
+ vertexShader: Qt,
3522
+ fragmentShader: Jt,
3523
+ toneMapped: !1
3524
+ }), te = new w.ShaderMaterial({
3525
+ vertexShader: jt,
3526
+ fragmentShader: Wt,
3527
+ transparent: !0,
3528
+ depthWrite: !1,
3529
+ blending: w.AdditiveBlending
3530
+ });
3531
+ return {
3532
+ sun0Geo: new w.SphereGeometry(0.43, 48, 48),
3533
+ sun1Geo: new w.SphereGeometry(0.33, 48, 48),
3534
+ sun2Geo: new w.SphereGeometry(0.24, 48, 48),
3535
+ planetGeo: new w.SphereGeometry(0.19, 48, 48),
3536
+ sunShaderMats: Z,
3537
+ coronaShaderMats: B,
3538
+ trisolarisShaderMat: K,
3539
+ starfieldMat: te
3540
+ };
3541
+ }, []), { suns: A, trisolaris: M } = le(() => {
3542
+ const F = [
3543
+ {
3544
+ pos: new w.Vector3(),
3545
+ vel: new w.Vector3(),
3546
+ acc: new w.Vector3(),
3547
+ mass: 1.1,
3548
+ luminosity: 1.52,
3549
+ radius: 0.43
3550
+ },
3551
+ {
3552
+ pos: new w.Vector3(),
3553
+ vel: new w.Vector3(),
3554
+ acc: new w.Vector3(),
3555
+ mass: 0.91,
3556
+ luminosity: 0.5,
3557
+ radius: 0.33
3558
+ },
3559
+ {
3560
+ pos: new w.Vector3(),
3561
+ vel: new w.Vector3(),
3562
+ acc: new w.Vector3(),
3563
+ mass: 0.54,
3564
+ luminosity: 0.08,
3565
+ radius: 0.24
3566
+ }
3567
+ ], D = {
3568
+ pos: new w.Vector3(),
3569
+ vel: new w.Vector3(),
3570
+ acc: new w.Vector3(),
3571
+ mass: 3e-6,
3572
+ luminosity: 0,
3573
+ radius: 0.19
3574
+ };
3575
+ return qe(F, D), { suns: F, trisolaris: D };
3576
+ }, []), S = le(() => {
3577
+ const D = new Float32Array(6e3), Z = new Float32Array(2e3), B = new Float32Array(2e3 * 3), K = [
3578
+ new w.Color("#DCE8FF"),
3579
+ new w.Color("#FFF8E7"),
3580
+ new w.Color("#FFE4B5"),
3581
+ new w.Color("#FFC699")
3582
+ ];
3583
+ for (let j = 0; j < 2e3; j++) {
3584
+ const Y = 5.8 + Math.random() * 11.5, oe = Math.random() * Math.PI * 2, X = Math.acos(2 * Math.random() - 1);
3585
+ D[j * 3] = Y * Math.sin(X) * Math.cos(oe), D[j * 3 + 1] = Y * Math.sin(X) * Math.sin(oe), D[j * 3 + 2] = Y * Math.cos(X), Z[j] = 0.85 + Math.pow(Math.random(), 2.1) * 2.25;
3586
+ const ie = K[j % K.length];
3587
+ B[j * 3] = ie.r, B[j * 3 + 1] = ie.g, B[j * 3 + 2] = ie.b;
3588
+ }
3589
+ const te = new w.BufferGeometry();
3590
+ return te.setAttribute("position", new w.BufferAttribute(D, 3)), te.setAttribute("aSize", new w.BufferAttribute(Z, 1)), te.setAttribute("aColor", new w.BufferAttribute(B, 3)), te;
3591
+ }, []);
3592
+ q(() => () => {
3593
+ E.dispose(), x.dispose(), g.dispose(), z.dispose(), S.dispose(), I.dispose(), y.dispose(), $.forEach((F) => F.dispose()), N.forEach((F) => F.dispose());
3594
+ }, [
3595
+ E,
3596
+ x,
3597
+ g,
3598
+ z,
3599
+ S,
3600
+ I,
3601
+ y,
3602
+ $,
3603
+ N
3604
+ ]);
3605
+ const L = le(() => new w.Vector3(), []), Q = le(() => new w.Vector3(), []), k = le(() => new w.Vector3(), []), b = le(() => new w.Vector3(), []), _ = le(() => new w.Vector3(), []), U = le(() => new w.Vector3(), []), se = le(() => new w.Raycaster(), []);
3606
+ return It((F, D) => {
3607
+ var ke, Ce, W;
3608
+ const Z = (t == null ? void 0 : t.current) ?? 0, B = Math.min(D, 0.035), K = (Z - v.current) / Math.max(B, 1e-3);
3609
+ v.current = Z, h.current = w.MathUtils.lerp(
3610
+ h.current,
3611
+ K,
3612
+ B * 12
3613
+ );
3614
+ const te = 0.62 * u, j = h.current < -0.015 ? w.MathUtils.clamp(h.current * 4.5, -3.2, -0.15) : w.MathUtils.clamp(
3615
+ te + Math.max(0, h.current) * 4.2,
3616
+ 0.15,
3617
+ 3.5
3618
+ ), Y = m || i ? 0 : j * T.current, oe = 12, X = B * Y / oe, ie = 1.5, de = 0.04, fe = 0.05, ce = () => {
3619
+ for (let C = 0; C < 3; C++) {
3620
+ A[C].acc.set(0, 0, 0);
3621
+ for (let O = 0; O < 3; O++) {
3622
+ if (C === O) continue;
3623
+ L.subVectors(A[O].pos, A[C].pos);
3624
+ const V = L.lengthSq() + de, P = 1 / Math.pow(V, 1.5);
3625
+ A[C].acc.addScaledVector(L, ie * A[O].mass * P);
3626
+ }
3627
+ }
3628
+ M.acc.set(0, 0, 0);
3629
+ for (let C = 0; C < 3; C++) {
3630
+ L.subVectors(A[C].pos, M.pos);
3631
+ const O = L.lengthSq() + fe, V = 1 / Math.pow(O, 1.5);
3632
+ M.acc.addScaledVector(L, ie * A[C].mass * V);
3633
+ }
3634
+ };
3635
+ if (Y !== 0) {
3636
+ ce();
3637
+ for (let V = 0; V < oe; V++) {
3638
+ for (let P = 0; P < 3; P++)
3639
+ A[P].vel.addScaledVector(A[P].acc, 0.5 * X), A[P].pos.addScaledVector(A[P].vel, X);
3640
+ M.vel.addScaledVector(M.acc, 0.5 * X), M.pos.addScaledVector(M.vel, X), ce();
3641
+ for (let P = 0; P < 3; P++)
3642
+ A[P].vel.addScaledVector(A[P].acc, 0.5 * X);
3643
+ M.vel.addScaledVector(M.acc, 0.5 * X);
3644
+ }
3645
+ const C = 17.64;
3646
+ let O = M.pos.lengthSq() > C && M.pos.dot(M.vel) > 0;
3647
+ for (let V = 0; V < 3; V++)
3648
+ A[V].pos.lengthSq() > C && A[V].pos.dot(A[V].vel) > 0 && (O = !0);
3649
+ O && qe(A, M);
3650
+ }
3651
+ const me = [c.current, o.current, f.current], Te = [1.18, 1.12, 1.05];
3652
+ for (let C = 0; C < 3; C++) {
3653
+ const O = me[C];
3654
+ O && (O.position.copy(A[C].pos), O.rotation.y += B * Y * (0.28 + C * 0.12), O.scale.setScalar(1)), $[C].uniforms.uTime.value += B * Y * 1.4, N[C].uniforms.uTime.value += B * Y * 1.4, $[C].uniforms.uGlowGain.value = Te[C];
3655
+ }
3656
+ p.current && (p.current.position.copy(M.pos), p.current.rotation.y += B * Y * 0.65, p.current.rotation.z = 0.41);
3657
+ let J = 0, ne = 0, ue = 0, be = -1;
3658
+ for (let C = 0; C < 3; C++) {
3659
+ const O = Math.max(0.22, M.pos.distanceToSquared(A[C].pos));
3660
+ J += A[C].luminosity / O;
3661
+ const V = O * O * O;
3662
+ ne += A[C].mass * A[C].mass / (V * 4.5);
3663
+ const P = A[C].mass / O;
3664
+ P > be && (be = P, ue = C);
3665
+ }
3666
+ if (s.current && s.current.updateMatrixWorld(!0), c.current && o.current && f.current && p.current) {
3667
+ c.current.getWorldPosition(Q), o.current.getWorldPosition(k), f.current.getWorldPosition(b), p.current.getWorldPosition(_), y.uniforms.uSun0Pos.value.copy(Q), y.uniforms.uSun1Pos.value.copy(k), y.uniforms.uSun2Pos.value.copy(b);
3668
+ const C = r.current, O = C.x < -10;
3669
+ se.setFromCamera(C, F.camera);
3670
+ const V = [Q, k, b, _];
3671
+ let P = -1, ae = 999;
3672
+ if (!O)
3673
+ for (let G = 0; G < 4; G++) {
3674
+ const ee = ((ke = l[G]) == null ? void 0 : ke.hitRadius) ?? 0.4, ve = se.ray.distanceSqToPoint(V[G]);
3675
+ ve <= ee * ee && ve < ae && (ae = ve, P = G);
3676
+ }
3677
+ T.current = w.MathUtils.lerp(
3678
+ T.current,
3679
+ P !== -1 ? 0 : 1,
3680
+ B * 18
3681
+ );
3682
+ for (let G = 0; G < 3; G++) {
3683
+ const ee = me[G];
3684
+ ee && P === G && ee.scale.setScalar(1.12);
3685
+ }
3686
+ if (p.current && p.current.scale.setScalar(P === 3 ? 1.48 : 1.32), P !== -1 && l[P]) {
3687
+ const G = l[P];
3688
+ U.copy(V[P]).project(F.camera);
3689
+ const ee = (U.x * 0.5 + 0.5) * window.innerWidth, ve = (-U.y * 0.5 + 0.5) * window.innerHeight, Se = `${((P < 3 ? A[P].vel.length() : M.vel.length()) * 29.8).toFixed(1)} km/s`;
3690
+ let pe = "Inner Binary Primary · Barycentric Core";
3691
+ if (P === 3) {
3692
+ const xe = ["Alpha Cen A", "Alpha Cen B", "Proxima C"];
3693
+ pe = `${J > 1.35 ? "CHAOTIC ERA · SCORCHING" : J < 0.55 ? "CHAOTIC ERA · FROZEN" : "STABLE ERA · TEMPERATE"} (Pull: ${xe[ue]})`;
3694
+ } else P === 1 ? pe = "Inner Binary Companion · Eccentric Pair" : P === 2 && (pe = "Retrograde Outer Perturber · Flare Active");
3695
+ (Ce = n.current) == null || Ce.commitFrame({
3696
+ badge: G.badge,
3697
+ name: G.name,
3698
+ classification: G.classification,
3699
+ accentHex: G.accentHex,
3700
+ reticleSize: G.reticleSize,
3701
+ screenX: ee,
3702
+ screenY: ve,
3703
+ massLabel: G.massLabel,
3704
+ tempLumLabel: G.tempLumLabel,
3705
+ velocityLabel: Se,
3706
+ statusLabel: pe
3707
+ });
3708
+ } else
3709
+ (W = n.current) == null || W.commitFrame(null);
3710
+ }
3711
+ y.uniforms.uTime.value += B * Y * 0.9, y.uniforms.uBolometricFlux.value = w.MathUtils.lerp(
3712
+ y.uniforms.uBolometricFlux.value,
3713
+ J,
3714
+ B * 4
3715
+ ), y.uniforms.uTidalHeat.value = w.MathUtils.lerp(
3716
+ y.uniforms.uTidalHeat.value,
3717
+ w.MathUtils.clamp(ne, 0.05, 2.5),
3718
+ B * 4
3719
+ ), d.current && (d.current.rotation.y += B * Y * 0.015);
3720
+ }), /* @__PURE__ */ a("group", { ref: s, children: [
3721
+ /* @__PURE__ */ e(
3722
+ "points",
3723
+ {
3724
+ ref: d,
3725
+ geometry: S,
3726
+ material: I
3727
+ }
3728
+ ),
3729
+ /* @__PURE__ */ a("group", { ref: c, children: [
3730
+ /* @__PURE__ */ e("mesh", { geometry: E, material: $[0] }),
3731
+ /* @__PURE__ */ e(
3732
+ "mesh",
3733
+ {
3734
+ geometry: E,
3735
+ material: N[0],
3736
+ scale: 1.22
3737
+ }
3738
+ ),
3739
+ /* @__PURE__ */ e("pointLight", { color: "#FFF2D6", intensity: 7.5, distance: 6 })
3740
+ ] }),
3741
+ /* @__PURE__ */ a("group", { ref: o, children: [
3742
+ /* @__PURE__ */ e("mesh", { geometry: x, material: $[1] }),
3743
+ /* @__PURE__ */ e(
3744
+ "mesh",
3745
+ {
3746
+ geometry: x,
3747
+ material: N[1],
3748
+ scale: 1.22
3749
+ }
3750
+ ),
3751
+ /* @__PURE__ */ e("pointLight", { color: "#FFAE52", intensity: 5.2, distance: 6 })
3752
+ ] }),
3753
+ /* @__PURE__ */ a("group", { ref: f, children: [
3754
+ /* @__PURE__ */ e("mesh", { geometry: g, material: $[2] }),
3755
+ /* @__PURE__ */ e(
3756
+ "mesh",
3757
+ {
3758
+ geometry: g,
3759
+ material: N[2],
3760
+ scale: 1.25
3761
+ }
3762
+ ),
3763
+ /* @__PURE__ */ e("pointLight", { color: "#F95738", intensity: 3.8, distance: 5 })
3764
+ ] }),
3765
+ /* @__PURE__ */ e("group", { ref: p, scale: 1.32, children: /* @__PURE__ */ e("mesh", { geometry: z, material: y }) })
3766
+ ] });
3767
+ }
3768
+ function Kr({
3769
+ scrollProgressRef: t,
3770
+ paused: r = !1,
3771
+ timeScale: n = 1,
3772
+ catalog: m = it
3773
+ }) {
3774
+ const { reducedMotion: i, polarity: u } = Le(), l = R(new w.Vector2(-99, -99)), s = R(null);
3775
+ return q(() => {
3776
+ const c = (o) => {
3777
+ var f;
3778
+ if ((f = s.current) != null && f.isOccludedTarget(o.target)) {
3779
+ l.current.set(-99, -99);
3780
+ return;
3781
+ }
3782
+ l.current.set(
3783
+ o.clientX / window.innerWidth * 2 - 1,
3784
+ -(o.clientY / window.innerHeight) * 2 + 1
3785
+ );
3786
+ };
3787
+ return window.addEventListener("pointermove", c, {
3788
+ passive: !0
3789
+ }), () => window.removeEventListener("pointermove", c);
3790
+ }, []), /* @__PURE__ */ a(ye, { children: [
3791
+ /* @__PURE__ */ e(
3792
+ "div",
3793
+ {
3794
+ "aria-hidden": "true",
3795
+ className: `fixed inset-0 z-0 pointer-events-none transition-opacity duration-500 ${u === "light" ? "opacity-25" : "opacity-100"}`,
3796
+ children: /* @__PURE__ */ a(
3797
+ Rt,
3798
+ {
3799
+ dpr: [1, 1.5],
3800
+ camera: { position: [0, 0, 5.2], fov: 44 },
3801
+ gl: {
3802
+ antialias: !0,
3803
+ alpha: !0,
3804
+ powerPreference: "high-performance"
3805
+ },
3806
+ children: [
3807
+ /* @__PURE__ */ e("ambientLight", { intensity: 0.25 }),
3808
+ /* @__PURE__ */ e(ct, { fallback: null, children: /* @__PURE__ */ e(
3809
+ er,
3810
+ {
3811
+ scrollProgressRef: t,
3812
+ pointerNdcRef: l,
3813
+ bridgeRef: s,
3814
+ reducedMotion: i,
3815
+ paused: r,
3816
+ timeScale: n,
3817
+ catalog: m
3818
+ }
3819
+ ) }),
3820
+ /* @__PURE__ */ e(Lt, { children: /* @__PURE__ */ e(
3821
+ Pt,
3822
+ {
3823
+ intensity: 0.85,
3824
+ luminanceThreshold: 0.78,
3825
+ luminanceSmoothing: 0.85,
3826
+ mipmapBlur: !0
3827
+ }
3828
+ ) })
3829
+ ]
3830
+ }
3831
+ )
3832
+ }
3833
+ ),
3834
+ /* @__PURE__ */ e(lt, { bridgeRef: s })
3835
+ ] });
3836
+ }
3837
+ const Yr = "1.1.0", Xr = "@zen-ui/system";
3838
+ export {
3839
+ he as CAPRI_SUBROUTINE_SKILLS,
3840
+ en as CapriEngine,
3841
+ it as DEFAULT_CELESTIAL_CATALOG,
3842
+ tn as ZEN_ICON_NAMES,
3843
+ rn as ZEN_ICON_SIZE_PX,
3844
+ nn as ZEN_ICON_SVG_INNER,
3845
+ Xr as ZEN_PACKAGE_NAME,
3846
+ Re as ZEN_SYNTH_PRESETS,
3847
+ an as ZEN_THEMES,
3848
+ Yr as ZEN_UI_VERSION,
3849
+ sn as ZEN_UNIVERSAL_THEMES,
3850
+ gr as ZenAIConstruct,
3851
+ ln as ZenAIConstructElement,
3852
+ Dr as ZenAccordion,
3853
+ Hr as ZenAlert,
3854
+ yr as ZenAmbientBackground,
3855
+ on as ZenAmbientBackgroundElement,
3856
+ Zt as ZenArchitectureNote,
3857
+ Wr as ZenAudioController,
3858
+ Zr as ZenAvatar,
3859
+ Ue as ZenBadge,
3860
+ Tr as ZenBreadcrumbs,
3861
+ ze as ZenButton,
3862
+ De as ZenCard,
3863
+ at as ZenCheckList,
3864
+ wr as ZenCheckbox,
3865
+ Sr as ZenChipFilter,
3866
+ Gr as ZenCircularGauge,
3867
+ Br as ZenCodeBlock,
3868
+ Lr as ZenCommandPalette,
3869
+ rt as ZenCopyButton,
3870
+ Kr as ZenCosmosCanvas,
3871
+ br as ZenDataTable,
3872
+ Or as ZenDivider,
3873
+ or as ZenDossierPanel,
3874
+ Pr as ZenDrawer,
3875
+ ur as ZenDropdown,
3876
+ Ur as ZenEmptyState,
3877
+ Ar as ZenFileUpload,
3878
+ lr as ZenHeading,
3879
+ cn as ZenIcon,
3880
+ Ir as ZenIconButton,
3881
+ dn as ZenIconElement,
3882
+ mr as ZenInput,
3883
+ je as ZenKbd,
3884
+ Fr as ZenKpiCard,
3885
+ Gt as ZenMetricStrip,
3886
+ fr as ZenModal,
3887
+ xr as ZenNavbar,
3888
+ Nr as ZenNumberStepper,
3889
+ Er as ZenPagination,
3890
+ Vr as ZenProgressBar,
3891
+ kr as ZenRadioGroup,
3892
+ st as ZenSegmentedControl,
3893
+ Rr as ZenSidebar,
3894
+ _r as ZenSkeleton,
3895
+ Cr as ZenSlider,
3896
+ Ht as ZenSparkline,
3897
+ Mr as ZenStepper,
3898
+ pr as ZenSwitch,
3899
+ dr as ZenTabs,
3900
+ nt as ZenTagList,
3901
+ lt as ZenTelemetryHud,
3902
+ qr as ZenTelemetryInspector,
3903
+ zr as ZenTextarea,
3904
+ mn as ZenThemeController,
3905
+ un as ZenThemeProvider,
3906
+ pn as ZenThemeSwitcherElement,
3907
+ cr as ZenTimelineCard,
3908
+ vr as ZenToastStack,
3909
+ $r as ZenTooltip,
3910
+ fn as ZenUniversalAudio,
3911
+ Ie as capri,
3912
+ vn as escapeZenHtml,
3913
+ hn as registerZenElements,
3914
+ bn as renderZenIconSvgMarkup,
3915
+ xn as sanitizeZenAssetUrl,
3916
+ gn as syncZenScrollbarStyles,
3917
+ jr as useZenAudioSynth,
3918
+ Le as useZenTheme,
3919
+ hr as useZenToast,
3920
+ yn as zenAudio,
3921
+ zn as zenTheme
3922
+ };