@zen-ui-capri/system 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/capri.mjs CHANGED
@@ -753,8 +753,13 @@ function analyzeRepo(targetDir) {
753
753
  if (allDeps.mongoose || allDeps.mongodb || extCounts['.kt']) {
754
754
  if (repoName === 'JourneyLink') stackSet.add('MongoDB + RabbitMQ + Redis');
755
755
  }
756
- if (allDeps['@zen-ui/system'] || pkg?.name === '@zen-ui/system') {
757
- stackSet.add('@zen-ui/system (CAPRI)');
756
+ if (
757
+ allDeps['@zen-ui/system'] ||
758
+ allDeps['@zen-ui-capri/system'] ||
759
+ pkg?.name === '@zen-ui/system' ||
760
+ pkg?.name === '@zen-ui-capri/system'
761
+ ) {
762
+ stackSet.add('@zen-ui-capri/system (CAPRI)');
758
763
  }
759
764
  if (extCounts['.ts'] || extCounts['.tsx']) stackSet.add('TypeScript');
760
765
  if (extCounts['.ps1']) stackSet.add('PowerShell');
@@ -1 +1 @@
1
- {"version":3,"file":"ZenIcon.d.ts","sourceRoot":"","sources":["../../../src/lib/components/ZenIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,cAAc,GACd,eAAe,GACf,cAAc,GACd,eAAe,GACf,MAAM,GACN,UAAU,GACV,UAAU,GACV,KAAK,GACL,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,MAAM,GACN,UAAU,GACV,MAAM,GACN,SAAS,GACT,SAAS,GACT,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,OAAO,GACP,KAAK,GACL,MAAM,GACN,KAAK,GACL,QAAQ,GACR,OAAO,GACP,SAAS,GACT,MAAM,GACN,aAAa,GACb,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;AAEb,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3D,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AAEb,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAMxD,CAAC;AAaF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAiF1D,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAEtB,CAAC;AAE5B,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,MAAM,CAOT;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAC9E,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,IAAW,EACX,IAAgB,EAChB,WAAe,EACf,IAAY,EACZ,SAAS,EACT,SAAc,EACd,GAAG,IAAI,EACR,EAAE,YAAY,+BAwBd"}
1
+ {"version":3,"file":"ZenIcon.d.ts","sourceRoot":"","sources":["../../../src/lib/components/ZenIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,MAAM,GACN,cAAc,GACd,eAAe,GACf,cAAc,GACd,eAAe,GACf,MAAM,GACN,UAAU,GACV,UAAU,GACV,KAAK,GACL,UAAU,GACV,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,SAAS,GACT,MAAM,GACN,UAAU,GACV,MAAM,GACN,SAAS,GACT,SAAS,GACT,QAAQ,GACR,UAAU,GACV,YAAY,GACZ,OAAO,GACP,KAAK,GACL,MAAM,GACN,KAAK,GACL,QAAQ,GACR,OAAO,GACP,SAAS,GACT,MAAM,GACN,aAAa,GACb,MAAM,GACN,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;AAEb,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3D,MAAM,MAAM,WAAW,GACnB,SAAS,GACT,SAAS,GACT,WAAW,GACX,OAAO,GACP,QAAQ,GACR,SAAS,GACT,SAAS,GACT,QAAQ,CAAC;AAEb,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAMxD,CAAC;AAaF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAiF1D,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAEtB,CAAC;AAE5B,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,MAAM,CAkBT;AAED,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAC9E,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,wBAAgB,OAAO,CAAC,EACtB,IAAI,EACJ,IAAW,EACX,IAAgB,EAChB,WAAe,EACf,IAAY,EACZ,SAAS,EACT,SAAc,EACd,GAAG,IAAI,EACR,EAAE,YAAY,+BA8Bd"}
@@ -1,4 +1,4 @@
1
- export declare const ZEN_UI_VERSION = "1.1.1";
1
+ export declare const ZEN_UI_VERSION = "1.1.2";
2
2
  export declare const ZEN_PACKAGE_NAME = "@zen-ui/system";
3
3
  export { ZenThemeProvider, useZenTheme, syncZenScrollbarStyles, ZEN_THEMES, type ZenThemeId, type ZenThemeMode, type ZenDensityMode, type ZenRadiusMode, type ZenThemeMetadata, type ZenThemeTokenOverrides, type ZenThemeContextValue, type ZenThemeProviderProps, } from './theme/ZenThemeProvider';
4
4
  export { ZenButton, ZenCopyButton, type ZenButtonVariant, type ZenButtonSize, type ZenButtonProps, type ZenCopyButtonProps, } from './components/ZenButton';
package/dist/lib/index.js CHANGED
@@ -1,5 +1,5 @@
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";
1
+ import { c as Ie, u as Le, C as he } from "./zen-universal-CdKK8x-h.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-CdKK8x-h.js";
3
3
  import { jsxs as a, jsx as e, Fragment as ye } from "react/jsx-runtime";
4
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
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";
@@ -3834,7 +3834,7 @@ function Kr({
3834
3834
  /* @__PURE__ */ e(lt, { bridgeRef: s })
3835
3835
  ] });
3836
3836
  }
3837
- const Yr = "1.1.1", Xr = "@zen-ui/system";
3837
+ const Yr = "1.1.2", Xr = "@zen-ui/system";
3838
3838
  export {
3839
3839
  he as CAPRI_SUBROUTINE_SKILLS,
3840
3840
  en as CapriEngine,
@@ -1 +1 @@
1
- {"version":3,"file":"zen-universal.d.ts","sourceRoot":"","sources":["../../../src/lib/universal/zen-universal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zen-universal.d.ts","sourceRoot":"","sources":["../../../src/lib/universal/zen-universal.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { C as s, a, f as t, g as r, h as m, j as i, k as E, m as l, n as o, c as Z, o as c, r as A, s as I, z as S, t as h } from "../zen-universal-C0PD8AI9.js";
1
+ import { C as s, a, f as t, g as r, h as m, j as i, k as E, m as l, n as o, c as Z, o as c, r as A, s as I, z as S, t as h } from "../zen-universal-CdKK8x-h.js";
2
2
  export {
3
3
  s as CAPRI_SUBROUTINE_SKILLS,
4
4
  a as CapriEngine,
@@ -1,9 +1,9 @@
1
1
  var Q = Object.defineProperty;
2
- var J = (l, e, n) => e in l ? Q(l, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : l[e] = n;
3
- var g = (l, e, n) => J(l, typeof e != "symbol" ? e + "" : e, n);
4
- import { jsx as q } from "react/jsx-runtime";
5
- import { createContext as ee, useState as H, useEffect as V, useMemo as te, useContext as ne } from "react";
6
- const k = [
2
+ var J = (s, e, n) => e in s ? Q(s, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : s[e] = n;
3
+ var g = (s, e, n) => J(s, typeof e != "symbol" ? e + "" : e, n);
4
+ import { jsx as K } from "react/jsx-runtime";
5
+ import { createContext as ee, useState as L, useEffect as q, useMemo as te, useContext as ne } from "react";
6
+ const E = [
7
7
  {
8
8
  id: "obsidian-gold",
9
9
  name: "Obsidian Gold",
@@ -84,10 +84,10 @@ const k = [
84
84
  secondaryHex: "#0284C7",
85
85
  inkHex: "#09090D"
86
86
  }
87
- ], G = ee(null);
88
- function K(l, e) {
87
+ ], W = ee(null);
88
+ function Y(s, e) {
89
89
  if (typeof document > "u") return;
90
- const n = (e == null ? void 0 : e.accentPrimary) ?? l.accentHex, t = (e == null ? void 0 : e.bgCanvas) ?? l.canvasHex, a = l.polarity === "dark" ? "rgba(255, 255, 255, 0.12)" : "rgba(15, 23, 42, 0.14)", i = "zen-theme-scrollbar";
90
+ const n = (e == null ? void 0 : e.accentPrimary) ?? s.accentHex, t = (e == null ? void 0 : e.bgCanvas) ?? s.canvasHex, a = s.polarity === "dark" ? "rgba(255, 255, 255, 0.12)" : "rgba(15, 23, 42, 0.14)", i = "zen-theme-scrollbar";
91
91
  let r = document.getElementById(i);
92
92
  r || (r = document.createElement("style"), r.id = i, document.head.appendChild(r)), r.textContent = `
93
93
  @supports (-moz-appearance: none) {
@@ -129,7 +129,7 @@ body::-webkit-scrollbar-thumb:hover,
129
129
  html::-webkit-scrollbar-thumb:active,
130
130
  body::-webkit-scrollbar-thumb:active,
131
131
  *::-webkit-scrollbar-thumb:active {
132
- background-color: ${l.secondaryHex};
132
+ background-color: ${s.secondaryHex};
133
133
  border: 2px solid ${t};
134
134
  }
135
135
  ::-webkit-scrollbar-corner,
@@ -141,56 +141,56 @@ body::-webkit-scrollbar-corner,
141
141
  `.trim();
142
142
  }
143
143
  function ge({
144
- defaultTheme: l = "blackwall-crimson",
144
+ defaultTheme: s = "blackwall-crimson",
145
145
  defaultDensity: e = "comfortable",
146
146
  defaultRadius: n = "architectural",
147
147
  overrides: t,
148
148
  syncDocumentRoot: a = !0,
149
149
  children: i
150
150
  }) {
151
- const [r, d] = H(l), [c, s] = H(e), [m, v] = H(n), [b, h] = H(() => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches), A = k.find((u) => u.id === r) ?? k[0];
152
- V(() => {
151
+ const [r, d] = L(s), [l, c] = L(e), [u, v] = L(n), [b, h] = L(() => typeof window > "u" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches), A = E.find((m) => m.id === r) ?? E[0];
152
+ q(() => {
153
153
  if (typeof window > "u") return;
154
- const u = window.matchMedia("(prefers-reduced-motion: reduce)"), x = (E) => h(E.matches);
155
- return u.addEventListener("change", x), () => u.removeEventListener("change", x);
156
- }, []), V(() => {
154
+ const m = window.matchMedia("(prefers-reduced-motion: reduce)"), x = (k) => h(k.matches);
155
+ return m.addEventListener("change", x), () => m.removeEventListener("change", x);
156
+ }, []), q(() => {
157
157
  if (!a || typeof document > "u") return;
158
- const u = document.documentElement;
159
- u.setAttribute("data-theme", r), u.setAttribute("data-polarity", A.polarity), u.setAttribute("data-density", c), u.setAttribute("data-radius", m), t != null && t.accentPrimary ? u.style.setProperty("--zen-accent-primary", t.accentPrimary) : u.style.removeProperty("--zen-accent-primary"), t != null && t.bgCanvas ? u.style.setProperty("--zen-bg-canvas", t.bgCanvas) : u.style.removeProperty("--zen-bg-canvas"), t != null && t.surface1 ? u.style.setProperty("--zen-surface-1", t.surface1) : u.style.removeProperty("--zen-surface-1"), t != null && t.inkPrimary ? u.style.setProperty("--zen-ink-primary", t.inkPrimary) : u.style.removeProperty("--zen-ink-primary"), K(A, t);
160
- }, [r, A, c, m, t, a]);
158
+ const m = document.documentElement;
159
+ m.setAttribute("data-theme", r), m.setAttribute("data-polarity", A.polarity), m.setAttribute("data-density", l), m.setAttribute("data-radius", u), t != null && t.accentPrimary ? m.style.setProperty("--zen-accent-primary", t.accentPrimary) : m.style.removeProperty("--zen-accent-primary"), t != null && t.bgCanvas ? m.style.setProperty("--zen-bg-canvas", t.bgCanvas) : m.style.removeProperty("--zen-bg-canvas"), t != null && t.surface1 ? m.style.setProperty("--zen-surface-1", t.surface1) : m.style.removeProperty("--zen-surface-1"), t != null && t.inkPrimary ? m.style.setProperty("--zen-ink-primary", t.inkPrimary) : m.style.removeProperty("--zen-ink-primary"), Y(A, t);
160
+ }, [r, A, l, u, t, a]);
161
161
  const C = () => {
162
- d((u) => (k.find((E) => E.id === u) ?? k[0]).polarity === "dark" ? u === "blackwall-crimson" ? "cyber-daylight" : u === "neon-emerald" ? "kyoto-matcha" : u === "midnight-cobalt" ? "nordic-snow" : "atelier-paper" : u === "cyber-daylight" ? "blackwall-crimson" : u === "kyoto-matcha" ? "neon-emerald" : u === "nordic-snow" ? "midnight-cobalt" : "obsidian-gold");
162
+ d((m) => (E.find((k) => k.id === m) ?? E[0]).polarity === "dark" ? m === "blackwall-crimson" ? "cyber-daylight" : m === "neon-emerald" ? "kyoto-matcha" : m === "midnight-cobalt" ? "nordic-snow" : "atelier-paper" : m === "cyber-daylight" ? "blackwall-crimson" : m === "kyoto-matcha" ? "neon-emerald" : m === "nordic-snow" ? "midnight-cobalt" : "obsidian-gold");
163
163
  }, w = te(
164
164
  () => ({
165
165
  theme: r,
166
166
  themeMeta: A,
167
167
  polarity: A.polarity,
168
- density: c,
169
- radius: m,
168
+ density: l,
169
+ radius: u,
170
170
  reducedMotion: b,
171
- themes: k,
171
+ themes: E,
172
172
  setTheme: d,
173
173
  togglePolarity: C,
174
- setDensity: s,
174
+ setDensity: c,
175
175
  setRadius: v
176
176
  }),
177
- [r, A, c, m, b]
177
+ [r, A, l, u, b]
178
178
  );
179
- return /* @__PURE__ */ q(G.Provider, { value: w, children: i });
179
+ return /* @__PURE__ */ K(W.Provider, { value: w, children: i });
180
180
  }
181
181
  function be() {
182
- const l = ne(G);
183
- if (!l)
182
+ const s = ne(W);
183
+ if (!s)
184
184
  throw new Error("useZenTheme must be used within a ZenThemeProvider");
185
- return l;
185
+ return s;
186
186
  }
187
- const Y = {
187
+ const R = {
188
188
  xs: 12,
189
189
  sm: 14,
190
190
  md: 16,
191
191
  lg: 20,
192
192
  xl: 24
193
- }, W = {
193
+ }, P = {
194
194
  inherit: "currentColor",
195
195
  primary: "var(--zen-ink-primary)",
196
196
  secondary: "var(--zen-ink-secondary)",
@@ -199,7 +199,7 @@ const Y = {
199
199
  success: "var(--zen-status-success)",
200
200
  warning: "var(--zen-status-warning)",
201
201
  danger: "var(--zen-status-danger)"
202
- }, F = {
202
+ }, T = {
203
203
  search: '<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>',
204
204
  plus: '<path d="M5 12h14"/><path d="M12 5v14"/>',
205
205
  minus: '<path d="M5 12h14"/>',
@@ -241,14 +241,14 @@ const Y = {
241
241
  globe: '<circle cx="12" cy="12" r="10"/><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"/><path d="M2 12h20"/>',
242
242
  folder: '<path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z"/>'
243
243
  }, fe = Object.keys(
244
- F
244
+ T
245
245
  );
246
- function re(l) {
247
- const e = Y[l.size ?? "md"], n = W[l.tone ?? "inherit"], t = l.strokeWidth ?? 2, a = F[l.name] ?? F.sparkles, i = l.spin ? "animation: spin 1s linear infinite;" : "";
248
- return `<svg xmlns="http://www.w3.org/2000/svg" width="${e}" height="${e}" viewBox="0 0 24 24" fill="none" stroke="${n}" stroke-width="${t}" stroke-linecap="round" stroke-linejoin="round" style="display:inline-block;vertical-align:middle;flex-shrink:0;${i}">${a}</svg>`;
246
+ function re(s) {
247
+ const e = s.size ?? "md", n = Object.prototype.hasOwnProperty.call(R, e) ? R[e] : R.md, t = s.tone ?? "inherit", a = Object.prototype.hasOwnProperty.call(P, t) ? P[t] : P.inherit, i = typeof s.strokeWidth == "number" && Number.isFinite(s.strokeWidth) ? Math.min(Math.max(s.strokeWidth, 0.5), 4) : 2, r = Object.prototype.hasOwnProperty.call(T, s.name) ? T[s.name] : T.sparkles, d = s.spin ? "animation: spin 1s linear infinite;" : "";
248
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${n}" height="${n}" viewBox="0 0 24 24" fill="none" stroke="${a}" stroke-width="${i}" stroke-linecap="round" stroke-linejoin="round" style="display:inline-block;vertical-align:middle;flex-shrink:0;${d}">${r}</svg>`;
249
249
  }
250
250
  function ve({
251
- name: l,
251
+ name: s,
252
252
  size: e = "md",
253
253
  tone: n = "inherit",
254
254
  strokeWidth: t = 2,
@@ -257,16 +257,16 @@ function ve({
257
257
  className: r = "",
258
258
  ...d
259
259
  }) {
260
- const c = Y[e], s = W[n], m = F[l] ?? F.sparkles;
261
- return /* @__PURE__ */ q(
260
+ const l = Object.prototype.hasOwnProperty.call(R, e) ? R[e] : R.md, c = Object.prototype.hasOwnProperty.call(P, n) ? P[n] : P.inherit, u = Object.prototype.hasOwnProperty.call(T, s) ? T[s] : T.sparkles;
261
+ return /* @__PURE__ */ K(
262
262
  "svg",
263
263
  {
264
264
  xmlns: "http://www.w3.org/2000/svg",
265
- width: c,
266
- height: c,
265
+ width: l,
266
+ height: l,
267
267
  viewBox: "0 0 24 24",
268
268
  fill: "none",
269
- stroke: s,
269
+ stroke: c,
270
270
  strokeWidth: t,
271
271
  strokeLinecap: "round",
272
272
  strokeLinejoin: "round",
@@ -274,7 +274,7 @@ function ve({
274
274
  "aria-label": i,
275
275
  "aria-hidden": i ? void 0 : "true",
276
276
  className: `inline-block shrink-0 ${a ? "animate-spin" : ""} ${r}`.trim(),
277
- dangerouslySetInnerHTML: { __html: m },
277
+ dangerouslySetInnerHTML: { __html: u },
278
278
  ...d
279
279
  }
280
280
  );
@@ -507,7 +507,7 @@ class ie {
507
507
  this.activeSubroutine = e;
508
508
  const t = S[e];
509
509
  if (typeof document < "u" && (document.documentElement.setAttribute("data-capri-subroutine", e), n != null && n.applyPresetTheme)) {
510
- const r = k.find((d) => d.id === t.recommendedTheme) ?? k[0];
510
+ const r = E.find((d) => d.id === t.recommendedTheme) ?? E[0];
511
511
  document.documentElement.setAttribute("data-theme", t.recommendedTheme), document.documentElement.setAttribute("data-polarity", r.polarity), document.documentElement.setAttribute("data-radius", t.recommendedRadius), document.documentElement.setAttribute("data-density", t.recommendedDensity), document.documentElement.style.colorScheme = r.polarity, (i = n.onThemeChange) == null || i.call(
512
512
  n,
513
513
  t.recommendedTheme,
@@ -519,7 +519,7 @@ class ie {
519
519
  return this.notify(a), t;
520
520
  }
521
521
  guard(e) {
522
- var u, x, E, z, R;
522
+ var m, x, k, $, O;
523
523
  if (typeof document > "u" || typeof window > "u") {
524
524
  const y = {
525
525
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -542,31 +542,31 @@ class ie {
542
542
  const n = e ?? document, t = document.documentElement, a = t.getAttribute("data-theme") ?? "", i = t.getAttribute("data-polarity") ?? "", r = !!(a && i), d = Math.max(
543
543
  0,
544
544
  Math.round(t.scrollWidth - window.innerWidth)
545
- ), c = Array.from(
545
+ ), l = Array.from(
546
546
  n.querySelectorAll(
547
547
  'button, [role="button"], input:not([type="hidden"]), select, textarea'
548
548
  )
549
- ), s = [];
550
- let m = 0;
551
- for (const y of c) {
552
- const D = (u = y.getAttribute("aria-label")) == null ? void 0 : u.trim(), o = (x = y.getAttribute("aria-labelledby")) == null ? void 0 : x.trim(), p = (E = y.getAttribute("title")) == null ? void 0 : E.trim(), f = (z = y.textContent) == null ? void 0 : z.trim(), T = (R = y.getAttribute("placeholder")) == null ? void 0 : R.trim(), I = y.getAttribute("id"), $ = !!(I && n.querySelector(`label[for="${CSS.escape(I)}"]`)), N = !!y.closest("label");
553
- if (!D && !o && !p && !f && !T && !$ && !N) {
554
- const M = y.tagName.toLowerCase(), Z = y.className ? `.${String(y.className).trim().split(/\s+/).slice(0, 2).join(".")}` : "";
555
- s.push(`${M}${Z}`);
549
+ ), c = [];
550
+ let u = 0;
551
+ for (const y of l) {
552
+ const H = (m = y.getAttribute("aria-label")) == null ? void 0 : m.trim(), o = (x = y.getAttribute("aria-labelledby")) == null ? void 0 : x.trim(), p = (k = y.getAttribute("title")) == null ? void 0 : k.trim(), f = ($ = y.textContent) == null ? void 0 : $.trim(), I = (O = y.getAttribute("placeholder")) == null ? void 0 : O.trim(), M = y.getAttribute("id"), F = !!(M && n.querySelector(`label[for="${CSS.escape(M)}"]`)), U = !!y.closest("label");
553
+ if (!H && !o && !p && !f && !I && !F && !U) {
554
+ const z = y.tagName.toLowerCase(), B = y.className ? `.${String(y.className).trim().split(/\s+/).slice(0, 2).join(".")}` : "";
555
+ c.push(`${z}${B}`);
556
556
  }
557
557
  if (y instanceof HTMLInputElement || y instanceof HTMLTextAreaElement) {
558
- const M = this.scanPromptInjection(y.value || "");
559
- M.safe || (m += M.threatCount);
558
+ const z = this.scanPromptInjection(y.value || "");
559
+ z.safe || (u += z.threatCount);
560
560
  }
561
561
  }
562
562
  const b = n.querySelectorAll(
563
563
  'a[href^="javascript:"], iframe[src^="javascript:"], [onerror], [onload]'
564
564
  ).length, h = [];
565
- m > 0 && h.push({
565
+ u > 0 && h.push({
566
566
  code: "PROMPT_INJECTION_DETECTED",
567
567
  severity: "error",
568
568
  selector: "input, textarea",
569
- message: `${m} prompt-injection or token-spoofing payload(s) detected in active form controls.`,
569
+ message: `${u} prompt-injection or token-spoofing payload(s) detected in active form controls.`,
570
570
  fixHint: "Sanitize untrusted input with capri.sanitizeForPrompt() before forwarding to AI models."
571
571
  }), b > 0 && h.push({
572
572
  code: "UNSAFE_DOM_SINK",
@@ -586,23 +586,23 @@ class ie {
586
586
  selector: "document.documentElement",
587
587
  message: `Horizontal viewport overflow detected (+${d}px beyond ${window.innerWidth}px).`,
588
588
  fixHint: "Add min-w-0 to CSS Grid/Flex children and wrap wide tables in .zen-table-wrapper."
589
- }), s.length > 0 && h.push({
589
+ }), c.length > 0 && h.push({
590
590
  code: "UNLABELED_CONTROL",
591
591
  severity: "error",
592
- selector: s.slice(0, 3).join(", "),
593
- message: `${s.length} interactive control(s) missing an accessible label.`,
592
+ selector: c.slice(0, 3).join(", "),
593
+ message: `${c.length} interactive control(s) missing an accessible label.`,
594
594
  fixHint: 'Pass ariaLabel="..." to ZenIconButton or associate inputs with <label>.'
595
595
  });
596
- const A = m * 35 + b * 35 + (d > 0 ? 35 : 0) + s.length * 15 + (r ? 0 : 15), C = Math.max(0, 100 - A), w = {
596
+ const A = u * 35 + b * 35 + (d > 0 ? 35 : 0) + c.length * 15 + (r ? 0 : 15), C = Math.max(0, 100 - A), w = {
597
597
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
598
598
  passed: h.length === 0,
599
599
  score: C,
600
600
  viewport: `${window.innerWidth}x${window.innerHeight}`,
601
601
  horizontalOverflowPx: d,
602
- unlabeledControlsCount: s.length,
603
- unlabeledSelectors: s,
604
- promptInjectionSafe: m === 0,
605
- promptThreatsCount: m,
602
+ unlabeledControlsCount: c.length,
603
+ unlabeledSelectors: c,
604
+ promptInjectionSafe: u === 0,
605
+ promptThreatsCount: u,
606
606
  unsafeDomSinksCount: b,
607
607
  themeConfigured: r,
608
608
  activeTheme: a || "unconfigured",
@@ -641,7 +641,7 @@ class ie {
641
641
  };
642
642
  }
643
643
  docu(e) {
644
- var z, R, y, D;
644
+ var $, O, y, H;
645
645
  const n = this.telemetry(), t = this.guard(e);
646
646
  if (typeof document > "u" || typeof window > "u") {
647
647
  const o = {
@@ -667,23 +667,23 @@ class ie {
667
667
  markdownBundle: "# Automated Architecture & User-Flow Dossier (SSR)"
668
668
  };
669
669
  }
670
- const a = e ?? document, i = document.title || "zeN-UI Application", r = window.location.pathname || "/", c = Array.from(
670
+ const a = e ?? document, i = document.title || "zeN-UI Application", r = window.location.pathname || "/", l = Array.from(
671
671
  a.querySelectorAll("header, nav, section[id], main, footer")
672
672
  ).slice(0, 12).map((o, p) => {
673
- var _;
674
- const f = o.tagName.toLowerCase(), T = o.id || `${f}-${p + 1}`, I = o.querySelector("h1, h2, h3, h4"), $ = o.getAttribute("aria-label"), N = ((_ = I == null ? void 0 : I.textContent) == null ? void 0 : _.trim()) || ($ == null ? void 0 : $.trim()) || `${f.toUpperCase()} (${T})`, M = this.sanitizeForPrompt(N).replace(/\s+/g, " ").slice(0, 64), Z = o.querySelectorAll(
673
+ var j;
674
+ const f = o.tagName.toLowerCase(), I = o.id || `${f}-${p + 1}`, M = o.querySelector("h1, h2, h3, h4"), F = o.getAttribute("aria-label"), U = ((j = M == null ? void 0 : M.textContent) == null ? void 0 : j.trim()) || (F == null ? void 0 : F.trim()) || `${f.toUpperCase()} (${I})`, z = this.sanitizeForPrompt(U).replace(/\s+/g, " ").slice(0, 64), B = o.querySelectorAll(
675
675
  'button, a[href], [role="button"], [role="radio"], [role="tab"]'
676
676
  ).length, X = o.querySelectorAll(
677
677
  'input, select, textarea, [role="switch"], [role="checkbox"], [role="combobox"]'
678
678
  ).length;
679
679
  return {
680
- id: T,
680
+ id: I,
681
681
  tag: f,
682
- title: M,
683
- interactiveCount: Z,
682
+ title: z,
683
+ interactiveCount: B,
684
684
  formControlsCount: X
685
685
  };
686
- }), s = [
686
+ }), c = [
687
687
  "zen-icon",
688
688
  "zen-ai-construct",
689
689
  "zen-ambient-background",
@@ -691,29 +691,29 @@ class ie {
691
691
  ].filter((o) => {
692
692
  var p;
693
693
  return !!((p = window.customElements) != null && p.get(o));
694
- }), m = {
694
+ }), u = {
695
695
  buttons: a.querySelectorAll("button, .zen-btn-base").length,
696
696
  inputsAndSelects: a.querySelectorAll("input, textarea, select, .zen-input, .zen-select").length,
697
697
  switchesAndRadios: a.querySelectorAll('[role="switch"], [role="radio"], [type="checkbox"]').length,
698
698
  tables: a.querySelectorAll("table, .zen-table").length,
699
699
  cardsAndSurfaces: a.querySelectorAll(".zen-surface-base, .zen-surface-interactive, .zen-surface-selected").length,
700
700
  badgesAndAlerts: a.querySelectorAll('.zen-badge, [role="alert"], [role="status"]').length,
701
- customElements: s
701
+ customElements: c
702
702
  }, v = [], b = Array.from(a.querySelectorAll("nav a[href], nav button")).slice(0, 5);
703
703
  for (const [o, p] of b.entries()) {
704
- const f = ((z = p.textContent) == null ? void 0 : z.trim().replace(/\s+/g, " ").slice(0, 36)) || `Nav Trigger ${o + 1}`, T = p.getAttribute("href") || "Section / State Action";
704
+ const f = (($ = p.textContent) == null ? void 0 : $.trim().replace(/\s+/g, " ").slice(0, 36)) || `Nav Trigger ${o + 1}`, I = p.getAttribute("href") || "Section / State Action";
705
705
  v.push({
706
706
  id: `flow-nav-${o + 1}`,
707
707
  category: "navigation",
708
708
  triggerLabel: f,
709
- targetDescription: `Navigates or jumps to ${T}`
709
+ targetDescription: `Navigates or jumps to ${I}`
710
710
  });
711
711
  }
712
712
  const h = Array.from(
713
713
  a.querySelectorAll("button")
714
714
  ).filter((o) => /modal|drawer|palette|command/i.test(o.textContent ?? "")).slice(0, 3);
715
715
  for (const [o, p] of h.entries()) {
716
- const f = ((R = p.textContent) == null ? void 0 : R.trim().replace(/\s+/g, " ").slice(0, 36)) || `Overlay ${o + 1}`;
716
+ const f = ((O = p.textContent) == null ? void 0 : O.trim().replace(/\s+/g, " ").slice(0, 36)) || `Overlay ${o + 1}`;
717
717
  v.push({
718
718
  id: `flow-overlay-${o + 1}`,
719
719
  category: "overlay-trigger",
@@ -735,7 +735,7 @@ class ie {
735
735
  }
736
736
  const C = Array.from(a.querySelectorAll("table")).slice(0, 2);
737
737
  for (const [o, p] of C.entries()) {
738
- const f = ((D = (y = p.querySelector("caption")) == null ? void 0 : y.textContent) == null ? void 0 : D.trim()) || p.getAttribute("aria-label") || `Data Table ${o + 1}`;
738
+ const f = ((H = (y = p.querySelector("caption")) == null ? void 0 : y.textContent) == null ? void 0 : H.trim()) || p.getAttribute("aria-label") || `Data Table ${o + 1}`;
739
739
  v.push({
740
740
  id: `flow-table-${o + 1}`,
741
741
  category: "data-table",
@@ -743,25 +743,25 @@ class ie {
743
743
  targetDescription: `Tabular data grid (${p.querySelectorAll("tbody tr").length} rows visible)`
744
744
  });
745
745
  }
746
- const w = (o) => o.replace(/["[\]()]/g, "").replace(/\s+/g, " ").trim(), u = [
746
+ const w = (o) => o.replace(/["[\]()]/g, "").replace(/\s+/g, " ").trim(), m = [
747
747
  "flowchart TD",
748
748
  ` AppRoot["${w(i)} (${n.theme} / ${n.polarity})"]`,
749
749
  ` Guard["CapriEngine Guard: ${t.score}/100 (${t.horizontalOverflowPx}px overflow)"]`,
750
750
  " AppRoot --> Guard"
751
751
  ];
752
- c.slice(0, 6).forEach((o, p) => {
752
+ l.slice(0, 6).forEach((o, p) => {
753
753
  const f = `LM_${p + 1}`;
754
- u.push(
754
+ m.push(
755
755
  ` AppRoot --> ${f}["${w(o.id)}: ${w(o.title)} (${o.interactiveCount} actions)"]`
756
756
  );
757
757
  }), v.slice(0, 5).forEach((o, p) => {
758
758
  const f = `UF_${p + 1}`;
759
- u.push(
759
+ m.push(
760
760
  ` Guard --> ${f}["[${o.category}] ${w(o.triggerLabel)}"]`
761
761
  );
762
762
  });
763
- const x = u.join(`
764
- `), E = [
763
+ const x = m.join(`
764
+ `), k = [
765
765
  `# ${i} — Automated Architecture, User-Flow & AI Context Dossier`,
766
766
  `Generated by \`@zen-ui/system\` // \`capri.docu()\` at \`${(/* @__PURE__ */ new Date()).toISOString()}\``,
767
767
  "",
@@ -770,19 +770,19 @@ class ie {
770
770
  `- **Active Theme & Polarity:** \`${n.theme}\` (\`${n.polarity}\`)`,
771
771
  `- **Corner Radius & Density:** \`${n.radius}\` / \`${n.density}\``,
772
772
  `- **Viewport & Reduced Motion:** \`${n.viewportWidth}x${n.viewportHeight}\` (DPR \`${n.devicePixelRatio}\`, reducedMotion=\`${n.reducedMotion}\`)`,
773
- `- **W3C Custom Elements Registered:** ${m.customElements.map((o) => `\`<${o}>\``).join(", ") || "None"}`,
773
+ `- **W3C Custom Elements Registered:** ${u.customElements.map((o) => `\`<${o}>\``).join(", ") || "None"}`,
774
774
  `- **DOM, Security & WCAG 2.2 AA Audit Score:** **${t.score}/100** (${t.passed ? "PASSED" : "VIOLATIONS DETECTED"}, \`${t.horizontalOverflowPx}px\` horizontal overflow, promptInjectionSafe=\`${t.promptInjectionSafe}\`)`,
775
775
  "",
776
776
  "## 2. Component Inventory on Current Screen",
777
- `- **Buttons & Action Triggers:** ${m.buttons}`,
778
- `- **Text Inputs, Textareas & Selects:** ${m.inputsAndSelects}`,
779
- `- **Switches, Checkboxes & Radio Controls:** ${m.switchesAndRadios}`,
780
- `- **Glass Cards & Surface Containers:** ${m.cardsAndSurfaces}`,
781
- `- **Data Tables:** ${m.tables}`,
782
- `- **Status Badges & Live Alerts:** ${m.badgesAndAlerts}`,
777
+ `- **Buttons & Action Triggers:** ${u.buttons}`,
778
+ `- **Text Inputs, Textareas & Selects:** ${u.inputsAndSelects}`,
779
+ `- **Switches, Checkboxes & Radio Controls:** ${u.switchesAndRadios}`,
780
+ `- **Glass Cards & Surface Containers:** ${u.cardsAndSurfaces}`,
781
+ `- **Data Tables:** ${u.tables}`,
782
+ `- **Status Badges & Live Alerts:** ${u.badgesAndAlerts}`,
783
783
  "",
784
784
  "## 3. Semantic Landmark & Section Hierarchy",
785
- ...c.map(
785
+ ...l.map(
786
786
  (o) => `- **\`#${o.id}\` (\`<${o.tag}>\`)** — *${o.title}* (${o.interactiveCount} interactive triggers, ${o.formControlsCount} form controls)`
787
787
  ),
788
788
  "",
@@ -803,11 +803,11 @@ class ie {
803
803
  routePath: r,
804
804
  telemetry: n,
805
805
  audit: t,
806
- landmarks: c,
807
- inventory: m,
806
+ landmarks: l,
807
+ inventory: u,
808
808
  userFlows: v,
809
809
  mermaidDiagram: x,
810
- markdownBundle: E
810
+ markdownBundle: k
811
811
  };
812
812
  }
813
813
  exportMarkdownDocu(e = this.activeSubroutine, n, t = !1) {
@@ -820,7 +820,7 @@ class ie {
820
820
  t ? `
821
821
  ${i.aiVoiceAddendum}` : "",
822
822
  "",
823
- ...i.ruleset.map((d, c) => `${c + 1}. ${d}`),
823
+ ...i.ruleset.map((d, l) => `${l + 1}. ${d}`),
824
824
  r ? `
825
825
  ## 7. Current Developer / AI Task
826
826
  ${r}` : ""
@@ -828,7 +828,7 @@ ${r}` : ""
828
828
  `);
829
829
  }
830
830
  buildAgentPrompt(e = this.activeSubroutine, n, t = !1) {
831
- const a = S[e], i = this.docu(), r = i.audit, d = n ? this.sanitizeForPrompt(n) : "", c = r.violations.length === 0 ? "0 violations detected (Score: 100/100, 0 prompt-injection threats, 0px overflow, 0 unlabeled controls)." : r.violations.map((s) => `- [${s.code}] (${s.selector}): ${s.message} -> Fix: ${s.fixHint}`).join(`
831
+ const a = S[e], i = this.docu(), r = i.audit, d = n ? this.sanitizeForPrompt(n) : "", l = r.violations.length === 0 ? "0 violations detected (Score: 100/100, 0 prompt-injection threats, 0px overflow, 0 unlabeled controls)." : r.violations.map((c) => `- [${c.code}] (${c.selector}): ${c.message} -> Fix: ${c.fixHint}`).join(`
832
832
  `);
833
833
  return [
834
834
  "# @zen-ui/system // CAPRI AI SKILL & ARCHITECTURE CONTEXT",
@@ -842,18 +842,18 @@ ${r}` : ""
842
842
  ${a.aiVoiceAddendum}` : "",
843
843
  "",
844
844
  "## 2. Mandatory Engineering Ruleset",
845
- ...a.ruleset.map((s, m) => `${m + 1}. ${s}`),
845
+ ...a.ruleset.map((c, u) => `${u + 1}. ${c}`),
846
846
  "",
847
847
  "## 3. Automated Screen Architecture & Component Context (capri.docu())",
848
848
  `- Route: ${i.routePath} | Theme: ${r.activeTheme} (${r.activePolarity}) | Viewport: ${r.viewport}`,
849
849
  `- Component Counts: ${i.inventory.buttons} buttons, ${i.inventory.inputsAndSelects} inputs/selects, ${i.inventory.tables} tables, ${i.inventory.cardsAndSurfaces} glass cards`,
850
- `- Landmarks: ${i.landmarks.map((s) => `#${s.id} (${s.interactiveCount} actions)`).join(", ")}`,
851
- `- Key User Flows: ${i.userFlows.slice(0, 6).map((s) => `[${s.category}] ${s.triggerLabel}`).join(" | ")}`,
850
+ `- Landmarks: ${i.landmarks.map((c) => `#${c.id} (${c.interactiveCount} actions)`).join(", ")}`,
851
+ `- Key User Flows: ${i.userFlows.slice(0, 6).map((c) => `[${c.category}] ${c.triggerLabel}`).join(" | ")}`,
852
852
  "",
853
853
  "## 4. Live CapriEngine Security, DOM & WCAG Telemetry",
854
854
  `- Audit Score: ${r.score}/100 (${r.passed ? "PASSED" : "ACTION REQUIRED"}) | Prompt-Injection Firewall: ${r.promptInjectionSafe ? "CLEAN (0 threats)" : `${r.promptThreatsCount} THREAT(S) BLOCKED`}`,
855
855
  `- Findings:
856
- ${c}`,
856
+ ${l}`,
857
857
  d ? `
858
858
  ## 5. Requested Task
859
859
  ${d}` : ""
@@ -870,7 +870,7 @@ ${d}` : ""
870
870
  n(this.activeSubroutine, e);
871
871
  }
872
872
  }
873
- const we = new ie(), P = [
873
+ const we = new ie(), D = [
874
874
  {
875
875
  id: "blackwall-crimson",
876
876
  name: "Capri // Capricorn",
@@ -951,7 +951,7 @@ const we = new ie(), P = [
951
951
  secondaryHex: "#0284C7",
952
952
  inkHex: "#09090D"
953
953
  }
954
- ], O = [
954
+ ], N = [
955
955
  {
956
956
  id: "orion",
957
957
  label: "CAPRI // UNLEASHED",
@@ -1005,8 +1005,8 @@ const we = new ie(), P = [
1005
1005
  ]
1006
1006
  }
1007
1007
  ];
1008
- function j(l) {
1009
- const e = P.find((n) => n.id === l);
1008
+ function G(s) {
1009
+ const e = D.find((n) => n.id === s);
1010
1010
  return e ? e.polarity : "dark";
1011
1011
  }
1012
1012
  class oe {
@@ -1019,13 +1019,13 @@ class oe {
1019
1019
  if (typeof window < "u")
1020
1020
  try {
1021
1021
  const t = window.localStorage.getItem(this.storageKey);
1022
- t && P.some((a) => a.id === t) && (n = t);
1022
+ t && D.some((a) => a.id === t) && (n = t);
1023
1023
  } catch {
1024
1024
  n = (e == null ? void 0 : e.defaultTheme) ?? "blackwall-crimson";
1025
1025
  }
1026
1026
  this.state = {
1027
1027
  theme: n,
1028
- polarity: j(n),
1028
+ polarity: G(n),
1029
1029
  density: (e == null ? void 0 : e.defaultDensity) ?? "comfortable",
1030
1030
  radius: (e == null ? void 0 : e.defaultRadius) ?? "architectural"
1031
1031
  }, this.applyToDom();
@@ -1037,7 +1037,7 @@ class oe {
1037
1037
  if (this.state = {
1038
1038
  ...this.state,
1039
1039
  theme: e,
1040
- polarity: j(e)
1040
+ polarity: G(e)
1041
1041
  }, typeof window < "u")
1042
1042
  try {
1043
1043
  window.localStorage.setItem(this.storageKey, e);
@@ -1070,8 +1070,8 @@ class oe {
1070
1070
  if (typeof document > "u") return;
1071
1071
  const e = document.documentElement;
1072
1072
  e.setAttribute("data-theme", this.state.theme), e.setAttribute("data-polarity", this.state.polarity), e.setAttribute("data-density", this.state.density), e.setAttribute("data-radius", this.state.radius);
1073
- const n = P.find((t) => t.id === this.state.theme) ?? P[0];
1074
- K(n);
1073
+ const n = D.find((t) => t.id === this.state.theme) ?? D[0];
1074
+ Y(n);
1075
1075
  }
1076
1076
  notify() {
1077
1077
  for (const e of this.listeners)
@@ -1099,7 +1099,7 @@ class se {
1099
1099
  }
1100
1100
  }
1101
1101
  }
1102
- const L = new oe(), U = new se();
1102
+ const Z = new oe(), _ = new se();
1103
1103
  class ce extends HTMLElement {
1104
1104
  constructor() {
1105
1105
  super(...arguments);
@@ -1134,16 +1134,16 @@ class ce extends HTMLElement {
1134
1134
  const n = performance.now(), t = (a) => {
1135
1135
  const i = (a - n) * 1e-3;
1136
1136
  if (this.smoothPointer.x += (this.pointer.x - this.smoothPointer.x) * 0.12, this.smoothPointer.y += (this.pointer.y - this.smoothPointer.y) * 0.12, this.figureEl) {
1137
- const r = Math.sin(i * 2.1) * 3.5, d = this.smoothPointer.x * 5.5, c = -this.smoothPointer.y * 3.5;
1138
- this.figureEl.style.transform = `perspective(900px) translateY(${r.toFixed(2)}px) rotateX(${c.toFixed(2)}deg) rotateY(${d.toFixed(2)}deg)`;
1137
+ const r = Math.sin(i * 2.1) * 3.5, d = this.smoothPointer.x * 5.5, l = -this.smoothPointer.y * 3.5;
1138
+ this.figureEl.style.transform = `perspective(900px) translateY(${r.toFixed(2)}px) rotateX(${l.toFixed(2)}deg) rotateY(${d.toFixed(2)}deg)`;
1139
1139
  }
1140
1140
  if (this.canvasEl) {
1141
1141
  const r = this.canvasEl.getContext("2d");
1142
1142
  if (r) {
1143
- const d = this.canvasEl.width, c = this.canvasEl.height;
1144
- r.clearRect(0, 0, d, c);
1145
- const s = Math.sin(i * 1.1 - 1.2) > 0.992 || Math.sin(i * 2.9 - 1.5) > 0.995, m = this.smoothPointer.x * (d * 85e-4), v = this.smoothPointer.y * (c * 55e-4), b = d * 0.562 + m, h = c * 0.233 + v, A = d * 0.474 + m * 0.75, C = c * 0.25 + v * 0.75;
1146
- if (s)
1143
+ const d = this.canvasEl.width, l = this.canvasEl.height;
1144
+ r.clearRect(0, 0, d, l);
1145
+ const c = Math.sin(i * 1.1 - 1.2) > 0.992 || Math.sin(i * 2.9 - 1.5) > 0.995, u = this.smoothPointer.x * (d * 85e-4), v = this.smoothPointer.y * (l * 55e-4), b = d * 0.562 + u, h = l * 0.233 + v, A = d * 0.474 + u * 0.75, C = l * 0.25 + v * 0.75;
1146
+ if (c)
1147
1147
  r.save(), r.strokeStyle = "#00FF66", r.lineWidth = 2.5, r.beginPath(), r.moveTo(b - d * 0.014, h), r.lineTo(b + d * 0.014, h), r.stroke(), r.restore();
1148
1148
  else {
1149
1149
  r.save(), r.globalCompositeOperation = "screen";
@@ -1164,13 +1164,13 @@ class ce extends HTMLElement {
1164
1164
  this.rafId = window.requestAnimationFrame(t);
1165
1165
  }
1166
1166
  render() {
1167
- const n = B(
1167
+ const n = V(
1168
1168
  this.getAttribute("title") ?? "CAPRI // CONSTRUCT"
1169
- ), t = B(
1169
+ ), t = V(
1170
1170
  this.getAttribute("subtitle") ?? "Edgerunners S2 // Soulkiller Net-Driver"
1171
- ), a = me(
1171
+ ), a = ue(
1172
1172
  this.getAttribute("image-src") ?? "/capri-construct-base.png"
1173
- ), i = O.find((c) => c.id === this.activeMode) ?? O[0];
1173
+ ), i = N.find((l) => l.id === this.activeMode) ?? N[0];
1174
1174
  this.innerHTML = `
1175
1175
  <div class="zen-surface-selected" style="padding: 1.25rem; position: relative; overflow: hidden;">
1176
1176
  <div style="display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1rem;">
@@ -1198,29 +1198,29 @@ class ce extends HTMLElement {
1198
1198
  <p style="font-size: 0.75rem; color: var(--zen-ink-secondary); margin: 0;">${i.transmission}</p>
1199
1199
  </div>
1200
1200
  <div style="display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem; margin-top: 0.75rem;">
1201
- ${O.map(
1202
- (c) => `
1203
- <button type="button" data-directive="${c.id}" class="zen-btn-base zen-btn-sm ${c.id === this.activeMode ? "zen-btn-primary" : "zen-btn-secondary"}" style="justify-content: flex-start; font-family: var(--zen-font-mono); font-size: 0.6875rem;">
1204
- ${c.label}
1201
+ ${N.map(
1202
+ (l) => `
1203
+ <button type="button" data-directive="${l.id}" class="zen-btn-base zen-btn-sm ${l.id === this.activeMode ? "zen-btn-primary" : "zen-btn-secondary"}" style="justify-content: flex-start; font-family: var(--zen-font-mono); font-size: 0.6875rem;">
1204
+ ${l.label}
1205
1205
  </button>
1206
1206
  `
1207
1207
  ).join("")}
1208
1208
  </div>
1209
1209
  </div>
1210
- `, this.canvasEl = this.querySelector("[data-capri-eyes]"), this.figureEl = this.querySelector("[data-capri-figure]"), this.querySelectorAll("[data-framing]").forEach((c) => {
1211
- c.addEventListener("click", () => {
1212
- const s = c.getAttribute("framing") ?? c.dataset.framing;
1213
- (s === "portrait" || s === "full") && (U.playMicroClick(560), this.framing = s, this.setAttribute("framing", s), this.render(), this.startEyeLoop());
1210
+ `, this.canvasEl = this.querySelector("[data-capri-eyes]"), this.figureEl = this.querySelector("[data-capri-figure]"), this.querySelectorAll("[data-framing]").forEach((l) => {
1211
+ l.addEventListener("click", () => {
1212
+ const c = l.getAttribute("framing") ?? l.dataset.framing;
1213
+ (c === "portrait" || c === "full") && (_.playMicroClick(560), this.framing = c, this.setAttribute("framing", c), this.render(), this.startEyeLoop());
1214
1214
  });
1215
- }), this.querySelectorAll("[data-directive]").forEach((c) => {
1216
- c.addEventListener("click", () => {
1217
- const s = c.dataset.directive;
1218
- if (!s) return;
1219
- U.playMicroClick(620), this.activeMode = s, this.setAttribute("mode", s);
1220
- const m = O.find((v) => v.id === s);
1221
- m && this.dispatchEvent(
1215
+ }), this.querySelectorAll("[data-directive]").forEach((l) => {
1216
+ l.addEventListener("click", () => {
1217
+ const c = l.dataset.directive;
1218
+ if (!c) return;
1219
+ _.playMicroClick(620), this.activeMode = c, this.setAttribute("mode", c);
1220
+ const u = N.find((v) => v.id === c);
1221
+ u && this.dispatchEvent(
1222
1222
  new CustomEvent("zen-directive", {
1223
- detail: { directive: m },
1223
+ detail: { directive: u },
1224
1224
  bubbles: !0,
1225
1225
  composed: !0
1226
1226
  })
@@ -1252,7 +1252,7 @@ class de extends HTMLElement {
1252
1252
  g(this, "unsubscribe", null);
1253
1253
  }
1254
1254
  connectedCallback() {
1255
- this.unsubscribe = L.subscribe(() => {
1255
+ this.unsubscribe = Z.subscribe(() => {
1256
1256
  this.render();
1257
1257
  });
1258
1258
  }
@@ -1260,10 +1260,10 @@ class de extends HTMLElement {
1260
1260
  this.unsubscribe && (this.unsubscribe(), this.unsubscribe = null);
1261
1261
  }
1262
1262
  render() {
1263
- const { theme: n } = L.getState();
1263
+ const { theme: n } = Z.getState();
1264
1264
  this.innerHTML = `
1265
1265
  <div style="display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;">
1266
- ${P.map(
1266
+ ${D.map(
1267
1267
  (t) => `
1268
1268
  <button
1269
1269
  type="button"
@@ -1279,9 +1279,9 @@ class de extends HTMLElement {
1279
1279
  `, this.querySelectorAll("[data-theme-id]").forEach((t) => {
1280
1280
  t.addEventListener("click", () => {
1281
1281
  const a = t.dataset.themeId;
1282
- a && (U.playMicroClick(540), L.setTheme(a), this.dispatchEvent(
1282
+ a && (_.playMicroClick(540), Z.setTheme(a), this.dispatchEvent(
1283
1283
  new CustomEvent("zen-theme-change", {
1284
- detail: L.getState(),
1284
+ detail: Z.getState(),
1285
1285
  bubbles: !0,
1286
1286
  composed: !0
1287
1287
  })
@@ -1290,7 +1290,7 @@ class de extends HTMLElement {
1290
1290
  });
1291
1291
  }
1292
1292
  }
1293
- class ue extends HTMLElement {
1293
+ class me extends HTMLElement {
1294
1294
  static get observedAttributes() {
1295
1295
  return ["name", "size", "tone", "stroke-width", "spin"];
1296
1296
  }
@@ -1311,15 +1311,15 @@ class ue extends HTMLElement {
1311
1311
  });
1312
1312
  }
1313
1313
  }
1314
- function B(l) {
1315
- return l.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
1314
+ function V(s) {
1315
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
1316
1316
  }
1317
- function me(l) {
1318
- const e = l.trim();
1319
- return /^(?:javascript|data|vbscript)\s*:/i.test(e) ? "/capri-construct-base.png" : B(e);
1317
+ function ue(s) {
1318
+ const e = s.trim(), n = e.replace(/[\u0000-\u0020]+/g, "");
1319
+ return /^(?:javascript|data|vbscript|file):/i.test(n) ? "/capri-construct-base.png" : V(e);
1320
1320
  }
1321
1321
  function Ae() {
1322
- typeof window > "u" || !("customElements" in window) || (window.customElements.get("zen-icon") || window.customElements.define("zen-icon", ue), window.customElements.get("zen-ai-construct") || window.customElements.define("zen-ai-construct", ce), window.customElements.get("zen-ambient-background") || window.customElements.define(
1322
+ typeof window > "u" || !("customElements" in window) || (window.customElements.get("zen-icon") || window.customElements.define("zen-icon", me), window.customElements.get("zen-ai-construct") || window.customElements.define("zen-ai-construct", ce), window.customElements.get("zen-ambient-background") || window.customElements.define(
1323
1323
  "zen-ambient-background",
1324
1324
  le
1325
1325
  ), window.customElements.get("zen-theme-switcher") || window.customElements.define("zen-theme-switcher", de));
@@ -1328,25 +1328,25 @@ export {
1328
1328
  S as C,
1329
1329
  fe as Z,
1330
1330
  ie as a,
1331
- Y as b,
1331
+ R as b,
1332
1332
  we as c,
1333
- F as d,
1334
- k as e,
1335
- P as f,
1333
+ T as d,
1334
+ E as e,
1335
+ D as f,
1336
1336
  ce as g,
1337
1337
  le as h,
1338
1338
  ve as i,
1339
- ue as j,
1339
+ me as j,
1340
1340
  oe as k,
1341
1341
  ge as l,
1342
1342
  de as m,
1343
1343
  se as n,
1344
- B as o,
1344
+ V as o,
1345
1345
  re as p,
1346
- K as q,
1346
+ Y as q,
1347
1347
  Ae as r,
1348
- me as s,
1349
- L as t,
1348
+ ue as s,
1349
+ Z as t,
1350
1350
  be as u,
1351
- U as z
1351
+ _ as z
1352
1352
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zen-ui-capri/system",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "zeN-UI // CAPRI — Universal Multi-Framework Design System (51 Primitives, 40 Vector Icons, 8 Dark/Light Themes & Capri 5-Subroutine AI Co-Pilot)",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -167,10 +167,21 @@ export function renderZenIconSvgMarkup(options: {
167
167
  readonly strokeWidth?: number;
168
168
  readonly spin?: boolean;
169
169
  }): string {
170
- const px = ZEN_ICON_SIZE_PX[options.size ?? 'md'];
171
- const color = TONE_COLOR_MAP[options.tone ?? 'inherit'];
172
- const sw = options.strokeWidth ?? 2;
173
- const inner = ZEN_ICON_SVG_INNER[options.name] ?? ZEN_ICON_SVG_INNER.sparkles;
170
+ const sizeKey = options.size ?? 'md';
171
+ const px = Object.prototype.hasOwnProperty.call(ZEN_ICON_SIZE_PX, sizeKey)
172
+ ? ZEN_ICON_SIZE_PX[sizeKey]
173
+ : ZEN_ICON_SIZE_PX.md;
174
+ const toneKey = options.tone ?? 'inherit';
175
+ const color = Object.prototype.hasOwnProperty.call(TONE_COLOR_MAP, toneKey)
176
+ ? TONE_COLOR_MAP[toneKey]
177
+ : TONE_COLOR_MAP.inherit;
178
+ const sw =
179
+ typeof options.strokeWidth === 'number' && Number.isFinite(options.strokeWidth)
180
+ ? Math.min(Math.max(options.strokeWidth, 0.5), 4)
181
+ : 2;
182
+ const inner = Object.prototype.hasOwnProperty.call(ZEN_ICON_SVG_INNER, options.name)
183
+ ? ZEN_ICON_SVG_INNER[options.name]
184
+ : ZEN_ICON_SVG_INNER.sparkles;
174
185
  const spinStyle = options.spin ? 'animation: spin 1s linear infinite;' : '';
175
186
  return `<svg xmlns="http://www.w3.org/2000/svg" width="${px}" height="${px}" viewBox="0 0 24 24" fill="none" stroke="${color}" stroke-width="${sw}" stroke-linecap="round" stroke-linejoin="round" style="display:inline-block;vertical-align:middle;flex-shrink:0;${spinStyle}">${inner}</svg>`;
176
187
  }
@@ -194,9 +205,15 @@ export function ZenIcon({
194
205
  className = '',
195
206
  ...rest
196
207
  }: ZenIconProps) {
197
- const px = ZEN_ICON_SIZE_PX[size];
198
- const strokeColor = TONE_COLOR_MAP[tone];
199
- const innerMarkup = ZEN_ICON_SVG_INNER[name] ?? ZEN_ICON_SVG_INNER.sparkles;
208
+ const px = Object.prototype.hasOwnProperty.call(ZEN_ICON_SIZE_PX, size)
209
+ ? ZEN_ICON_SIZE_PX[size]
210
+ : ZEN_ICON_SIZE_PX.md;
211
+ const strokeColor = Object.prototype.hasOwnProperty.call(TONE_COLOR_MAP, tone)
212
+ ? TONE_COLOR_MAP[tone]
213
+ : TONE_COLOR_MAP.inherit;
214
+ const innerMarkup = Object.prototype.hasOwnProperty.call(ZEN_ICON_SVG_INNER, name)
215
+ ? ZEN_ICON_SVG_INNER[name]
216
+ : ZEN_ICON_SVG_INNER.sparkles;
200
217
 
201
218
  return (
202
219
  <svg
package/src/lib/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export const ZEN_UI_VERSION = '1.1.1';
1
+ export const ZEN_UI_VERSION = '1.1.2';
2
2
  export const ZEN_PACKAGE_NAME = '@zen-ui/system';
3
3
 
4
4
  export {
@@ -696,7 +696,8 @@ export function escapeZenHtml(raw: string): string {
696
696
 
697
697
  export function sanitizeZenAssetUrl(raw: string): string {
698
698
  const trimmed = raw.trim();
699
- if (/^(?:javascript|data|vbscript)\s*:/i.test(trimmed)) {
699
+ const normalizedSchemeCheck = trimmed.replace(/[\u0000-\u0020]+/g, '');
700
+ if (/^(?:javascript|data|vbscript|file):/i.test(normalizedSchemeCheck)) {
700
701
  return '/capri-construct-base.png';
701
702
  }
702
703
  return escapeZenHtml(trimmed);