@zen-ui-capri/system 1.1.1 → 1.1.3

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.3";
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-BhiGXo0e.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-BhiGXo0e.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.3", 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":"ZenThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/lib/theme/ZenThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,UAAU,GAClB,eAAe,GACf,mBAAmB,GACnB,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,gBAAgB,EAiFjD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACnD;AAID,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,gBAAgB,EAC3B,SAAS,CAAC,EAAE,sBAAsB,GACjC,IAAI,CAmEN;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAkC,EAClC,cAA8B,EAC9B,aAA+B,EAC/B,SAAS,EACT,gBAAuB,EACvB,QAAQ,GACT,EAAE,qBAAqB,+BA2FvB;AAED,wBAAgB,WAAW,IAAI,oBAAoB,CAMlD"}
1
+ {"version":3,"file":"ZenThemeProvider.d.ts","sourceRoot":"","sources":["../../../src/lib/theme/ZenThemeProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,MAAM,MAAM,UAAU,GAClB,eAAe,GACf,mBAAmB,GACnB,cAAc,GACd,iBAAiB,GACjB,eAAe,GACf,aAAa,GACb,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,SAAS,CAAC;AACvD,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,eAAe,GAAG,MAAM,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,UAAU,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,UAAU,EAAE,SAAS,gBAAgB,EAiFjD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;IACpC,QAAQ,CAAC,UAAU,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;CACnD;AAaD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,gBAAgB,EAC3B,SAAS,CAAC,EAAE,sBAAsB,GACjC,IAAI,CAmEN;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAkC,EAClC,cAA8B,EAC9B,aAA+B,EAC/B,SAAS,EACT,gBAAuB,EACvB,QAAQ,GACT,EAAE,qBAAqB,+BA6FvB;AAED,wBAAgB,WAAW,IAAI,oBAAoB,CAMlD"}
@@ -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":"AAAA,OAAO,EAEL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACtB,MAAM,2BAA2B,CAAC;AAcnC,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAChC;AAED,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;AAEzE,eAAO,MAAM,oBAAoB,EAAE,SAAS,gBAAgB,EAiFlD,CAAC;AAkEX,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAyB;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;gBAExB,OAAO,CAAC,EAAE;QACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC;QACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;QACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;QACvC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;KAC9B;IAyBM,QAAQ,IAAI,sBAAsB;IAIlC,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAiBjC,cAAc,IAAI,IAAI;IAMtB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IASzC,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAStC,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAQ1D,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,MAAM;CAKf;AAED,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,KAAK,CAAS;IAEf,OAAO,IAAI,OAAO;IAIlB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9B,cAAc,CAAC,SAAS,SAAM,GAAG,IAAI;CA2B7C;AAED,eAAO,MAAM,QAAQ,oBAA2B,CAAC;AACjD,eAAO,MAAM,QAAQ,mBAA0B,CAAC;AAEhD,qBAAa,qBAAsB,SAAQ,WAAW;IACpD,MAAM,KAAK,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAEjD;IAED,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,UAAU,CAA6B;IAC/C,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,QAAQ,CAA+B;IAE/C,iBAAiB,IAAI,IAAI;IAUzB,oBAAoB,IAAI,IAAI;IAO5B,wBAAwB,IAAI,IAAI;IAchC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAIhC;IAEF,OAAO,CAAC,YAAY;IA6FpB,OAAO,CAAC,MAAM;CA4Ff;AAED,qBAAa,2BAA4B,SAAQ,WAAW;IAC1D,MAAM,KAAK,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAEjD;IAED,iBAAiB,IAAI,IAAI;IAIzB,wBAAwB,IAAI,IAAI;IAMhC,OAAO,CAAC,MAAM;CAkBf;AAED,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,OAAO,CAAC,WAAW,CAA6B;IAEhD,iBAAiB,IAAI,IAAI;IAMzB,oBAAoB,IAAI,IAAI;IAO5B,OAAO,CAAC,MAAM;CAmCf;AAED,qBAAa,cAAe,SAAQ,WAAW;IAC7C,MAAM,KAAK,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAEjD;IAED,iBAAiB,IAAI,IAAI;IAIzB,wBAAwB,IAAI,IAAI;IAMhC,OAAO,CAAC,MAAM;CAef;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOjD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED,OAAO,EACL,WAAW,EACX,KAAK,EACL,uBAAuB,EACvB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,mBAAmB,IAAI,IAAI,CAkB1C"}
@@ -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-BhiGXo0e.js";
2
2
  export {
3
3
  s as CAPRI_SUBROUTINE_SKILLS,
4
4
  a as CapriEngine,
@@ -1,9 +1,9 @@
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 = [
1
+ var J = Object.defineProperty;
2
+ var ee = (s, e, n) => e in s ? J(s, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : s[e] = n;
3
+ var g = (s, e, n) => ee(s, typeof e != "symbol" ? e + "" : e, n);
4
+ import { jsx as W } from "react/jsx-runtime";
5
+ import { useState as L, useEffect as G, useMemo as te, useContext as ne, createContext as re } from "react";
6
+ const T = [
7
7
  {
8
8
  id: "obsidian-gold",
9
9
  name: "Obsidian Gold",
@@ -84,10 +84,14 @@ const k = [
84
84
  secondaryHex: "#0284C7",
85
85
  inkHex: "#09090D"
86
86
  }
87
- ], G = ee(null);
88
- function K(l, e) {
87
+ ];
88
+ let _ = null;
89
+ function Y() {
90
+ return _ || (_ = re(null)), _;
91
+ }
92
+ function X(s, e) {
89
93
  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";
94
+ 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
95
  let r = document.getElementById(i);
92
96
  r || (r = document.createElement("style"), r.id = i, document.head.appendChild(r)), r.textContent = `
93
97
  @supports (-moz-appearance: none) {
@@ -129,7 +133,7 @@ body::-webkit-scrollbar-thumb:hover,
129
133
  html::-webkit-scrollbar-thumb:active,
130
134
  body::-webkit-scrollbar-thumb:active,
131
135
  *::-webkit-scrollbar-thumb:active {
132
- background-color: ${l.secondaryHex};
136
+ background-color: ${s.secondaryHex};
133
137
  border: 2px solid ${t};
134
138
  }
135
139
  ::-webkit-scrollbar-corner,
@@ -140,57 +144,57 @@ body::-webkit-scrollbar-corner,
140
144
  }
141
145
  `.trim();
142
146
  }
143
- function ge({
144
- defaultTheme: l = "blackwall-crimson",
147
+ function be({
148
+ defaultTheme: s = "blackwall-crimson",
145
149
  defaultDensity: e = "comfortable",
146
150
  defaultRadius: n = "architectural",
147
151
  overrides: t,
148
152
  syncDocumentRoot: a = !0,
149
153
  children: i
150
154
  }) {
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(() => {
155
+ 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 = T.find((m) => m.id === r) ?? T[0];
156
+ G(() => {
153
157
  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(() => {
158
+ const m = window.matchMedia("(prefers-reduced-motion: reduce)"), E = (x) => h(x.matches);
159
+ return m.addEventListener("change", E), () => m.removeEventListener("change", E);
160
+ }, []), G(() => {
157
161
  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]);
162
+ const m = document.documentElement;
163
+ 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"), X(A, t);
164
+ }, [r, A, l, u, t, a]);
161
165
  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");
166
+ d((m) => (T.find((x) => x.id === m) ?? T[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
167
  }, w = te(
164
168
  () => ({
165
169
  theme: r,
166
170
  themeMeta: A,
167
171
  polarity: A.polarity,
168
- density: c,
169
- radius: m,
172
+ density: l,
173
+ radius: u,
170
174
  reducedMotion: b,
171
- themes: k,
175
+ themes: T,
172
176
  setTheme: d,
173
177
  togglePolarity: C,
174
- setDensity: s,
178
+ setDensity: c,
175
179
  setRadius: v
176
180
  }),
177
- [r, A, c, m, b]
178
- );
179
- return /* @__PURE__ */ q(G.Provider, { value: w, children: i });
181
+ [r, A, l, u, b]
182
+ ), k = Y();
183
+ return /* @__PURE__ */ W(k.Provider, { value: w, children: i });
180
184
  }
181
- function be() {
182
- const l = ne(G);
183
- if (!l)
185
+ function fe() {
186
+ const s = ne(Y());
187
+ if (!s)
184
188
  throw new Error("useZenTheme must be used within a ZenThemeProvider");
185
- return l;
189
+ return s;
186
190
  }
187
- const Y = {
191
+ const P = {
188
192
  xs: 12,
189
193
  sm: 14,
190
194
  md: 16,
191
195
  lg: 20,
192
196
  xl: 24
193
- }, W = {
197
+ }, $ = {
194
198
  inherit: "currentColor",
195
199
  primary: "var(--zen-ink-primary)",
196
200
  secondary: "var(--zen-ink-secondary)",
@@ -199,7 +203,7 @@ const Y = {
199
203
  success: "var(--zen-status-success)",
200
204
  warning: "var(--zen-status-warning)",
201
205
  danger: "var(--zen-status-danger)"
202
- }, F = {
206
+ }, I = {
203
207
  search: '<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>',
204
208
  plus: '<path d="M5 12h14"/><path d="M12 5v14"/>',
205
209
  minus: '<path d="M5 12h14"/>',
@@ -240,15 +244,15 @@ const Y = {
240
244
  lock: '<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>',
241
245
  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
246
  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
- }, fe = Object.keys(
244
- F
247
+ }, ve = Object.keys(
248
+ I
245
249
  );
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>`;
250
+ function ae(s) {
251
+ const e = s.size ?? "md", n = Object.prototype.hasOwnProperty.call(P, e) ? P[e] : P.md, t = s.tone ?? "inherit", a = Object.prototype.hasOwnProperty.call($, t) ? $[t] : $.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(I, s.name) ? I[s.name] : I.sparkles, d = s.spin ? "animation: spin 1s linear infinite;" : "";
252
+ 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
253
  }
250
- function ve({
251
- name: l,
254
+ function we({
255
+ name: s,
252
256
  size: e = "md",
253
257
  tone: n = "inherit",
254
258
  strokeWidth: t = 2,
@@ -257,16 +261,16 @@ function ve({
257
261
  className: r = "",
258
262
  ...d
259
263
  }) {
260
- const c = Y[e], s = W[n], m = F[l] ?? F.sparkles;
261
- return /* @__PURE__ */ q(
264
+ const l = Object.prototype.hasOwnProperty.call(P, e) ? P[e] : P.md, c = Object.prototype.hasOwnProperty.call($, n) ? $[n] : $.inherit, u = Object.prototype.hasOwnProperty.call(I, s) ? I[s] : I.sparkles;
265
+ return /* @__PURE__ */ W(
262
266
  "svg",
263
267
  {
264
268
  xmlns: "http://www.w3.org/2000/svg",
265
- width: c,
266
- height: c,
269
+ width: l,
270
+ height: l,
267
271
  viewBox: "0 0 24 24",
268
272
  fill: "none",
269
- stroke: s,
273
+ stroke: c,
270
274
  strokeWidth: t,
271
275
  strokeLinecap: "round",
272
276
  strokeLinejoin: "round",
@@ -274,7 +278,7 @@ function ve({
274
278
  "aria-label": i,
275
279
  "aria-hidden": i ? void 0 : "true",
276
280
  className: `inline-block shrink-0 ${a ? "animate-spin" : ""} ${r}`.trim(),
277
- dangerouslySetInnerHTML: { __html: m },
281
+ dangerouslySetInnerHTML: { __html: u },
278
282
  ...d
279
283
  }
280
284
  );
@@ -413,7 +417,7 @@ Respond with concise, technical engineering output (Persona Voice is OFF by defa
413
417
  3. Zero Runtime Overhead: Keep documentation purely static or on-demand (via 'npx capri docu'); never inject docu scanners into production render loops.`,
414
418
  aiVoiceAddendum: "VOICE MODE ACTIVE (--voice): Adopt Capri's neural cartographer persona from Cyberpunk: Edgerunners Season 2."
415
419
  }
416
- }, ae = [
420
+ }, ie = [
417
421
  {
418
422
  category: "SYSTEM_PROMPT_OVERRIDE",
419
423
  patternName: "Ignore / Disregard System Instructions",
@@ -455,7 +459,7 @@ Respond with concise, technical engineering output (Persona Voice is OFF by defa
455
459
  regex: /(?:\bsk_(?:live|test)_[0-9a-zA-Z]{16,}|\bAIza[0-9A-Za-z_-]{35}\b|\bghp_[0-9A-Za-z]{36}\b|-----BEGIN\s+(?:RSA\s+)?PRIVATE\s+KEY-----)/g
456
460
  }
457
461
  ];
458
- class ie {
462
+ class oe {
459
463
  constructor() {
460
464
  g(this, "activeSubroutine", "orion");
461
465
  g(this, "lastReport", null);
@@ -479,7 +483,7 @@ class ie {
479
483
  scanPromptInjection(e) {
480
484
  const n = [];
481
485
  let t = e.replace(/[\u200B-\u200F\uFEFF]/g, "");
482
- for (const a of ae) {
486
+ for (const a of ie) {
483
487
  const i = [...t.matchAll(a.regex)];
484
488
  for (const r of i)
485
489
  n.push({
@@ -507,7 +511,7 @@ class ie {
507
511
  this.activeSubroutine = e;
508
512
  const t = S[e];
509
513
  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];
514
+ const r = T.find((d) => d.id === t.recommendedTheme) ?? T[0];
511
515
  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
516
  n,
513
517
  t.recommendedTheme,
@@ -519,7 +523,7 @@ class ie {
519
523
  return this.notify(a), t;
520
524
  }
521
525
  guard(e) {
522
- var u, x, E, z, R;
526
+ var k, m, E, x, O;
523
527
  if (typeof document > "u" || typeof window > "u") {
524
528
  const y = {
525
529
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
@@ -542,31 +546,31 @@ class ie {
542
546
  const n = e ?? document, t = document.documentElement, a = t.getAttribute("data-theme") ?? "", i = t.getAttribute("data-polarity") ?? "", r = !!(a && i), d = Math.max(
543
547
  0,
544
548
  Math.round(t.scrollWidth - window.innerWidth)
545
- ), c = Array.from(
549
+ ), l = Array.from(
546
550
  n.querySelectorAll(
547
551
  'button, [role="button"], input:not([type="hidden"]), select, textarea'
548
552
  )
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}`);
553
+ ), c = [];
554
+ let u = 0;
555
+ for (const y of l) {
556
+ const H = (k = y.getAttribute("aria-label")) == null ? void 0 : k.trim(), o = (m = y.getAttribute("aria-labelledby")) == null ? void 0 : m.trim(), p = (E = y.getAttribute("title")) == null ? void 0 : E.trim(), f = (x = y.textContent) == null ? void 0 : x.trim(), M = (O = y.getAttribute("placeholder")) == null ? void 0 : O.trim(), z = y.getAttribute("id"), F = !!(z && n.querySelector(`label[for="${CSS.escape(z)}"]`)), U = !!y.closest("label");
557
+ if (!H && !o && !p && !f && !M && !F && !U) {
558
+ const R = y.tagName.toLowerCase(), B = y.className ? `.${String(y.className).trim().split(/\s+/).slice(0, 2).join(".")}` : "";
559
+ c.push(`${R}${B}`);
556
560
  }
557
561
  if (y instanceof HTMLInputElement || y instanceof HTMLTextAreaElement) {
558
- const M = this.scanPromptInjection(y.value || "");
559
- M.safe || (m += M.threatCount);
562
+ const R = this.scanPromptInjection(y.value || "");
563
+ R.safe || (u += R.threatCount);
560
564
  }
561
565
  }
562
566
  const b = n.querySelectorAll(
563
567
  'a[href^="javascript:"], iframe[src^="javascript:"], [onerror], [onload]'
564
568
  ).length, h = [];
565
- m > 0 && h.push({
569
+ u > 0 && h.push({
566
570
  code: "PROMPT_INJECTION_DETECTED",
567
571
  severity: "error",
568
572
  selector: "input, textarea",
569
- message: `${m} prompt-injection or token-spoofing payload(s) detected in active form controls.`,
573
+ message: `${u} prompt-injection or token-spoofing payload(s) detected in active form controls.`,
570
574
  fixHint: "Sanitize untrusted input with capri.sanitizeForPrompt() before forwarding to AI models."
571
575
  }), b > 0 && h.push({
572
576
  code: "UNSAFE_DOM_SINK",
@@ -586,23 +590,23 @@ class ie {
586
590
  selector: "document.documentElement",
587
591
  message: `Horizontal viewport overflow detected (+${d}px beyond ${window.innerWidth}px).`,
588
592
  fixHint: "Add min-w-0 to CSS Grid/Flex children and wrap wide tables in .zen-table-wrapper."
589
- }), s.length > 0 && h.push({
593
+ }), c.length > 0 && h.push({
590
594
  code: "UNLABELED_CONTROL",
591
595
  severity: "error",
592
- selector: s.slice(0, 3).join(", "),
593
- message: `${s.length} interactive control(s) missing an accessible label.`,
596
+ selector: c.slice(0, 3).join(", "),
597
+ message: `${c.length} interactive control(s) missing an accessible label.`,
594
598
  fixHint: 'Pass ariaLabel="..." to ZenIconButton or associate inputs with <label>.'
595
599
  });
596
- const A = m * 35 + b * 35 + (d > 0 ? 35 : 0) + s.length * 15 + (r ? 0 : 15), C = Math.max(0, 100 - A), w = {
600
+ const A = u * 35 + b * 35 + (d > 0 ? 35 : 0) + c.length * 15 + (r ? 0 : 15), C = Math.max(0, 100 - A), w = {
597
601
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
598
602
  passed: h.length === 0,
599
603
  score: C,
600
604
  viewport: `${window.innerWidth}x${window.innerHeight}`,
601
605
  horizontalOverflowPx: d,
602
- unlabeledControlsCount: s.length,
603
- unlabeledSelectors: s,
604
- promptInjectionSafe: m === 0,
605
- promptThreatsCount: m,
606
+ unlabeledControlsCount: c.length,
607
+ unlabeledSelectors: c,
608
+ promptInjectionSafe: u === 0,
609
+ promptThreatsCount: u,
606
610
  unsafeDomSinksCount: b,
607
611
  themeConfigured: r,
608
612
  activeTheme: a || "unconfigured",
@@ -641,7 +645,7 @@ class ie {
641
645
  };
642
646
  }
643
647
  docu(e) {
644
- var z, R, y, D;
648
+ var x, O, y, H;
645
649
  const n = this.telemetry(), t = this.guard(e);
646
650
  if (typeof document > "u" || typeof window > "u") {
647
651
  const o = {
@@ -667,23 +671,23 @@ class ie {
667
671
  markdownBundle: "# Automated Architecture & User-Flow Dossier (SSR)"
668
672
  };
669
673
  }
670
- const a = e ?? document, i = document.title || "zeN-UI Application", r = window.location.pathname || "/", c = Array.from(
674
+ const a = e ?? document, i = document.title || "zeN-UI Application", r = window.location.pathname || "/", l = Array.from(
671
675
  a.querySelectorAll("header, nav, section[id], main, footer")
672
676
  ).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(
677
+ var q;
678
+ const f = o.tagName.toLowerCase(), M = o.id || `${f}-${p + 1}`, z = o.querySelector("h1, h2, h3, h4"), F = o.getAttribute("aria-label"), U = ((q = z == null ? void 0 : z.textContent) == null ? void 0 : q.trim()) || (F == null ? void 0 : F.trim()) || `${f.toUpperCase()} (${M})`, R = this.sanitizeForPrompt(U).replace(/\s+/g, " ").slice(0, 64), B = o.querySelectorAll(
675
679
  'button, a[href], [role="button"], [role="radio"], [role="tab"]'
676
- ).length, X = o.querySelectorAll(
680
+ ).length, Q = o.querySelectorAll(
677
681
  'input, select, textarea, [role="switch"], [role="checkbox"], [role="combobox"]'
678
682
  ).length;
679
683
  return {
680
- id: T,
684
+ id: M,
681
685
  tag: f,
682
- title: M,
683
- interactiveCount: Z,
684
- formControlsCount: X
686
+ title: R,
687
+ interactiveCount: B,
688
+ formControlsCount: Q
685
689
  };
686
- }), s = [
690
+ }), c = [
687
691
  "zen-icon",
688
692
  "zen-ai-construct",
689
693
  "zen-ambient-background",
@@ -691,29 +695,29 @@ class ie {
691
695
  ].filter((o) => {
692
696
  var p;
693
697
  return !!((p = window.customElements) != null && p.get(o));
694
- }), m = {
698
+ }), u = {
695
699
  buttons: a.querySelectorAll("button, .zen-btn-base").length,
696
700
  inputsAndSelects: a.querySelectorAll("input, textarea, select, .zen-input, .zen-select").length,
697
701
  switchesAndRadios: a.querySelectorAll('[role="switch"], [role="radio"], [type="checkbox"]').length,
698
702
  tables: a.querySelectorAll("table, .zen-table").length,
699
703
  cardsAndSurfaces: a.querySelectorAll(".zen-surface-base, .zen-surface-interactive, .zen-surface-selected").length,
700
704
  badgesAndAlerts: a.querySelectorAll('.zen-badge, [role="alert"], [role="status"]').length,
701
- customElements: s
705
+ customElements: c
702
706
  }, v = [], b = Array.from(a.querySelectorAll("nav a[href], nav button")).slice(0, 5);
703
707
  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";
708
+ const f = ((x = p.textContent) == null ? void 0 : x.trim().replace(/\s+/g, " ").slice(0, 36)) || `Nav Trigger ${o + 1}`, M = p.getAttribute("href") || "Section / State Action";
705
709
  v.push({
706
710
  id: `flow-nav-${o + 1}`,
707
711
  category: "navigation",
708
712
  triggerLabel: f,
709
- targetDescription: `Navigates or jumps to ${T}`
713
+ targetDescription: `Navigates or jumps to ${M}`
710
714
  });
711
715
  }
712
716
  const h = Array.from(
713
717
  a.querySelectorAll("button")
714
718
  ).filter((o) => /modal|drawer|palette|command/i.test(o.textContent ?? "")).slice(0, 3);
715
719
  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}`;
720
+ const f = ((O = p.textContent) == null ? void 0 : O.trim().replace(/\s+/g, " ").slice(0, 36)) || `Overlay ${o + 1}`;
717
721
  v.push({
718
722
  id: `flow-overlay-${o + 1}`,
719
723
  category: "overlay-trigger",
@@ -735,7 +739,7 @@ class ie {
735
739
  }
736
740
  const C = Array.from(a.querySelectorAll("table")).slice(0, 2);
737
741
  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}`;
742
+ 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
743
  v.push({
740
744
  id: `flow-table-${o + 1}`,
741
745
  category: "data-table",
@@ -743,24 +747,24 @@ class ie {
743
747
  targetDescription: `Tabular data grid (${p.querySelectorAll("tbody tr").length} rows visible)`
744
748
  });
745
749
  }
746
- const w = (o) => o.replace(/["[\]()]/g, "").replace(/\s+/g, " ").trim(), u = [
750
+ const w = (o) => o.replace(/["[\]()]/g, "").replace(/\s+/g, " ").trim(), k = [
747
751
  "flowchart TD",
748
752
  ` AppRoot["${w(i)} (${n.theme} / ${n.polarity})"]`,
749
753
  ` Guard["CapriEngine Guard: ${t.score}/100 (${t.horizontalOverflowPx}px overflow)"]`,
750
754
  " AppRoot --> Guard"
751
755
  ];
752
- c.slice(0, 6).forEach((o, p) => {
756
+ l.slice(0, 6).forEach((o, p) => {
753
757
  const f = `LM_${p + 1}`;
754
- u.push(
758
+ k.push(
755
759
  ` AppRoot --> ${f}["${w(o.id)}: ${w(o.title)} (${o.interactiveCount} actions)"]`
756
760
  );
757
761
  }), v.slice(0, 5).forEach((o, p) => {
758
762
  const f = `UF_${p + 1}`;
759
- u.push(
763
+ k.push(
760
764
  ` Guard --> ${f}["[${o.category}] ${w(o.triggerLabel)}"]`
761
765
  );
762
766
  });
763
- const x = u.join(`
767
+ const m = k.join(`
764
768
  `), E = [
765
769
  `# ${i} — Automated Architecture, User-Flow & AI Context Dossier`,
766
770
  `Generated by \`@zen-ui/system\` // \`capri.docu()\` at \`${(/* @__PURE__ */ new Date()).toISOString()}\``,
@@ -770,19 +774,19 @@ class ie {
770
774
  `- **Active Theme & Polarity:** \`${n.theme}\` (\`${n.polarity}\`)`,
771
775
  `- **Corner Radius & Density:** \`${n.radius}\` / \`${n.density}\``,
772
776
  `- **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"}`,
777
+ `- **W3C Custom Elements Registered:** ${u.customElements.map((o) => `\`<${o}>\``).join(", ") || "None"}`,
774
778
  `- **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
779
  "",
776
780
  "## 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}`,
781
+ `- **Buttons & Action Triggers:** ${u.buttons}`,
782
+ `- **Text Inputs, Textareas & Selects:** ${u.inputsAndSelects}`,
783
+ `- **Switches, Checkboxes & Radio Controls:** ${u.switchesAndRadios}`,
784
+ `- **Glass Cards & Surface Containers:** ${u.cardsAndSurfaces}`,
785
+ `- **Data Tables:** ${u.tables}`,
786
+ `- **Status Badges & Live Alerts:** ${u.badgesAndAlerts}`,
783
787
  "",
784
788
  "## 3. Semantic Landmark & Section Hierarchy",
785
- ...c.map(
789
+ ...l.map(
786
790
  (o) => `- **\`#${o.id}\` (\`<${o.tag}>\`)** — *${o.title}* (${o.interactiveCount} interactive triggers, ${o.formControlsCount} form controls)`
787
791
  ),
788
792
  "",
@@ -793,7 +797,7 @@ class ie {
793
797
  "",
794
798
  "## 5. Auto-Generated Mermaid Architecture & User-Flow Diagram",
795
799
  "```mermaid",
796
- x,
800
+ m,
797
801
  "```"
798
802
  ].join(`
799
803
  `);
@@ -803,10 +807,10 @@ class ie {
803
807
  routePath: r,
804
808
  telemetry: n,
805
809
  audit: t,
806
- landmarks: c,
807
- inventory: m,
810
+ landmarks: l,
811
+ inventory: u,
808
812
  userFlows: v,
809
- mermaidDiagram: x,
813
+ mermaidDiagram: m,
810
814
  markdownBundle: E
811
815
  };
812
816
  }
@@ -820,7 +824,7 @@ class ie {
820
824
  t ? `
821
825
  ${i.aiVoiceAddendum}` : "",
822
826
  "",
823
- ...i.ruleset.map((d, c) => `${c + 1}. ${d}`),
827
+ ...i.ruleset.map((d, l) => `${l + 1}. ${d}`),
824
828
  r ? `
825
829
  ## 7. Current Developer / AI Task
826
830
  ${r}` : ""
@@ -828,7 +832,7 @@ ${r}` : ""
828
832
  `);
829
833
  }
830
834
  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(`
835
+ 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
836
  `);
833
837
  return [
834
838
  "# @zen-ui/system // CAPRI AI SKILL & ARCHITECTURE CONTEXT",
@@ -842,18 +846,18 @@ ${r}` : ""
842
846
  ${a.aiVoiceAddendum}` : "",
843
847
  "",
844
848
  "## 2. Mandatory Engineering Ruleset",
845
- ...a.ruleset.map((s, m) => `${m + 1}. ${s}`),
849
+ ...a.ruleset.map((c, u) => `${u + 1}. ${c}`),
846
850
  "",
847
851
  "## 3. Automated Screen Architecture & Component Context (capri.docu())",
848
852
  `- Route: ${i.routePath} | Theme: ${r.activeTheme} (${r.activePolarity}) | Viewport: ${r.viewport}`,
849
853
  `- 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(" | ")}`,
854
+ `- Landmarks: ${i.landmarks.map((c) => `#${c.id} (${c.interactiveCount} actions)`).join(", ")}`,
855
+ `- Key User Flows: ${i.userFlows.slice(0, 6).map((c) => `[${c.category}] ${c.triggerLabel}`).join(" | ")}`,
852
856
  "",
853
857
  "## 4. Live CapriEngine Security, DOM & WCAG Telemetry",
854
858
  `- Audit Score: ${r.score}/100 (${r.passed ? "PASSED" : "ACTION REQUIRED"}) | Prompt-Injection Firewall: ${r.promptInjectionSafe ? "CLEAN (0 threats)" : `${r.promptThreatsCount} THREAT(S) BLOCKED`}`,
855
859
  `- Findings:
856
- ${c}`,
860
+ ${l}`,
857
861
  d ? `
858
862
  ## 5. Requested Task
859
863
  ${d}` : ""
@@ -870,7 +874,7 @@ ${d}` : ""
870
874
  n(this.activeSubroutine, e);
871
875
  }
872
876
  }
873
- const we = new ie(), P = [
877
+ const Ae = new oe(), D = [
874
878
  {
875
879
  id: "blackwall-crimson",
876
880
  name: "Capri // Capricorn",
@@ -951,7 +955,7 @@ const we = new ie(), P = [
951
955
  secondaryHex: "#0284C7",
952
956
  inkHex: "#09090D"
953
957
  }
954
- ], O = [
958
+ ], N = [
955
959
  {
956
960
  id: "orion",
957
961
  label: "CAPRI // UNLEASHED",
@@ -1005,11 +1009,11 @@ const we = new ie(), P = [
1005
1009
  ]
1006
1010
  }
1007
1011
  ];
1008
- function j(l) {
1009
- const e = P.find((n) => n.id === l);
1012
+ function K(s) {
1013
+ const e = D.find((n) => n.id === s);
1010
1014
  return e ? e.polarity : "dark";
1011
1015
  }
1012
- class oe {
1016
+ class se {
1013
1017
  constructor(e) {
1014
1018
  g(this, "state");
1015
1019
  g(this, "listeners", /* @__PURE__ */ new Set());
@@ -1019,13 +1023,13 @@ class oe {
1019
1023
  if (typeof window < "u")
1020
1024
  try {
1021
1025
  const t = window.localStorage.getItem(this.storageKey);
1022
- t && P.some((a) => a.id === t) && (n = t);
1026
+ t && D.some((a) => a.id === t) && (n = t);
1023
1027
  } catch {
1024
1028
  n = (e == null ? void 0 : e.defaultTheme) ?? "blackwall-crimson";
1025
1029
  }
1026
1030
  this.state = {
1027
1031
  theme: n,
1028
- polarity: j(n),
1032
+ polarity: K(n),
1029
1033
  density: (e == null ? void 0 : e.defaultDensity) ?? "comfortable",
1030
1034
  radius: (e == null ? void 0 : e.defaultRadius) ?? "architectural"
1031
1035
  }, this.applyToDom();
@@ -1037,7 +1041,7 @@ class oe {
1037
1041
  if (this.state = {
1038
1042
  ...this.state,
1039
1043
  theme: e,
1040
- polarity: j(e)
1044
+ polarity: K(e)
1041
1045
  }, typeof window < "u")
1042
1046
  try {
1043
1047
  window.localStorage.setItem(this.storageKey, e);
@@ -1070,15 +1074,15 @@ class oe {
1070
1074
  if (typeof document > "u") return;
1071
1075
  const e = document.documentElement;
1072
1076
  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);
1077
+ const n = D.find((t) => t.id === this.state.theme) ?? D[0];
1078
+ X(n);
1075
1079
  }
1076
1080
  notify() {
1077
1081
  for (const e of this.listeners)
1078
1082
  e(this.state);
1079
1083
  }
1080
1084
  }
1081
- class se {
1085
+ class ce {
1082
1086
  constructor() {
1083
1087
  g(this, "ctx", null);
1084
1088
  g(this, "muted", !1);
@@ -1099,8 +1103,8 @@ class se {
1099
1103
  }
1100
1104
  }
1101
1105
  }
1102
- const L = new oe(), U = new se();
1103
- class ce extends HTMLElement {
1106
+ const Z = new se(), V = new ce();
1107
+ class le extends HTMLElement {
1104
1108
  constructor() {
1105
1109
  super(...arguments);
1106
1110
  g(this, "framing", "portrait");
@@ -1134,16 +1138,16 @@ class ce extends HTMLElement {
1134
1138
  const n = performance.now(), t = (a) => {
1135
1139
  const i = (a - n) * 1e-3;
1136
1140
  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)`;
1141
+ const r = Math.sin(i * 2.1) * 3.5, d = this.smoothPointer.x * 5.5, l = -this.smoothPointer.y * 3.5;
1142
+ this.figureEl.style.transform = `perspective(900px) translateY(${r.toFixed(2)}px) rotateX(${l.toFixed(2)}deg) rotateY(${d.toFixed(2)}deg)`;
1139
1143
  }
1140
1144
  if (this.canvasEl) {
1141
1145
  const r = this.canvasEl.getContext("2d");
1142
1146
  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)
1147
+ const d = this.canvasEl.width, l = this.canvasEl.height;
1148
+ r.clearRect(0, 0, d, l);
1149
+ 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;
1150
+ if (c)
1147
1151
  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
1152
  else {
1149
1153
  r.save(), r.globalCompositeOperation = "screen";
@@ -1164,13 +1168,13 @@ class ce extends HTMLElement {
1164
1168
  this.rafId = window.requestAnimationFrame(t);
1165
1169
  }
1166
1170
  render() {
1167
- const n = B(
1171
+ const n = j(
1168
1172
  this.getAttribute("title") ?? "CAPRI // CONSTRUCT"
1169
- ), t = B(
1173
+ ), t = j(
1170
1174
  this.getAttribute("subtitle") ?? "Edgerunners S2 // Soulkiller Net-Driver"
1171
- ), a = me(
1175
+ ), a = pe(
1172
1176
  this.getAttribute("image-src") ?? "/capri-construct-base.png"
1173
- ), i = O.find((c) => c.id === this.activeMode) ?? O[0];
1177
+ ), i = N.find((l) => l.id === this.activeMode) ?? N[0];
1174
1178
  this.innerHTML = `
1175
1179
  <div class="zen-surface-selected" style="padding: 1.25rem; position: relative; overflow: hidden;">
1176
1180
  <div style="display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1rem;">
@@ -1198,29 +1202,29 @@ class ce extends HTMLElement {
1198
1202
  <p style="font-size: 0.75rem; color: var(--zen-ink-secondary); margin: 0;">${i.transmission}</p>
1199
1203
  </div>
1200
1204
  <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}
1205
+ ${N.map(
1206
+ (l) => `
1207
+ <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;">
1208
+ ${l.label}
1205
1209
  </button>
1206
1210
  `
1207
1211
  ).join("")}
1208
1212
  </div>
1209
1213
  </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());
1214
+ `, this.canvasEl = this.querySelector("[data-capri-eyes]"), this.figureEl = this.querySelector("[data-capri-figure]"), this.querySelectorAll("[data-framing]").forEach((l) => {
1215
+ l.addEventListener("click", () => {
1216
+ const c = l.getAttribute("framing") ?? l.dataset.framing;
1217
+ (c === "portrait" || c === "full") && (V.playMicroClick(560), this.framing = c, this.setAttribute("framing", c), this.render(), this.startEyeLoop());
1214
1218
  });
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(
1219
+ }), this.querySelectorAll("[data-directive]").forEach((l) => {
1220
+ l.addEventListener("click", () => {
1221
+ const c = l.dataset.directive;
1222
+ if (!c) return;
1223
+ V.playMicroClick(620), this.activeMode = c, this.setAttribute("mode", c);
1224
+ const u = N.find((v) => v.id === c);
1225
+ u && this.dispatchEvent(
1222
1226
  new CustomEvent("zen-directive", {
1223
- detail: { directive: m },
1227
+ detail: { directive: u },
1224
1228
  bubbles: !0,
1225
1229
  composed: !0
1226
1230
  })
@@ -1229,7 +1233,7 @@ class ce extends HTMLElement {
1229
1233
  });
1230
1234
  }
1231
1235
  }
1232
- class le extends HTMLElement {
1236
+ class de extends HTMLElement {
1233
1237
  static get observedAttributes() {
1234
1238
  return ["variant"];
1235
1239
  }
@@ -1246,13 +1250,13 @@ class le extends HTMLElement {
1246
1250
  `;
1247
1251
  }
1248
1252
  }
1249
- class de extends HTMLElement {
1253
+ class me extends HTMLElement {
1250
1254
  constructor() {
1251
1255
  super(...arguments);
1252
1256
  g(this, "unsubscribe", null);
1253
1257
  }
1254
1258
  connectedCallback() {
1255
- this.unsubscribe = L.subscribe(() => {
1259
+ this.unsubscribe = Z.subscribe(() => {
1256
1260
  this.render();
1257
1261
  });
1258
1262
  }
@@ -1260,10 +1264,10 @@ class de extends HTMLElement {
1260
1264
  this.unsubscribe && (this.unsubscribe(), this.unsubscribe = null);
1261
1265
  }
1262
1266
  render() {
1263
- const { theme: n } = L.getState();
1267
+ const { theme: n } = Z.getState();
1264
1268
  this.innerHTML = `
1265
1269
  <div style="display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center;">
1266
- ${P.map(
1270
+ ${D.map(
1267
1271
  (t) => `
1268
1272
  <button
1269
1273
  type="button"
@@ -1279,9 +1283,9 @@ class de extends HTMLElement {
1279
1283
  `, this.querySelectorAll("[data-theme-id]").forEach((t) => {
1280
1284
  t.addEventListener("click", () => {
1281
1285
  const a = t.dataset.themeId;
1282
- a && (U.playMicroClick(540), L.setTheme(a), this.dispatchEvent(
1286
+ a && (V.playMicroClick(540), Z.setTheme(a), this.dispatchEvent(
1283
1287
  new CustomEvent("zen-theme-change", {
1284
- detail: L.getState(),
1288
+ detail: Z.getState(),
1285
1289
  bubbles: !0,
1286
1290
  composed: !0
1287
1291
  })
@@ -1302,7 +1306,7 @@ class ue extends HTMLElement {
1302
1306
  }
1303
1307
  render() {
1304
1308
  const e = this.getAttribute("name") ?? "sparkles", n = this.getAttribute("size") ?? "md", t = this.getAttribute("tone") ?? "inherit", a = Number(this.getAttribute("stroke-width") ?? 2), i = this.getAttribute("spin") === "true";
1305
- this.innerHTML = re({
1309
+ this.innerHTML = ae({
1306
1310
  name: e,
1307
1311
  size: n,
1308
1312
  tone: t,
@@ -1311,42 +1315,42 @@ class ue extends HTMLElement {
1311
1315
  });
1312
1316
  }
1313
1317
  }
1314
- function B(l) {
1315
- return l.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
1318
+ function j(s) {
1319
+ return s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
1316
1320
  }
1317
- function me(l) {
1318
- const e = l.trim();
1319
- return /^(?:javascript|data|vbscript)\s*:/i.test(e) ? "/capri-construct-base.png" : B(e);
1321
+ function pe(s) {
1322
+ const e = s.trim(), n = e.replace(/[\u0000-\u0020]+/g, "");
1323
+ return /^(?:javascript|data|vbscript|file):/i.test(n) ? "/capri-construct-base.png" : j(e);
1320
1324
  }
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(
1325
+ function xe() {
1326
+ 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", le), window.customElements.get("zen-ambient-background") || window.customElements.define(
1323
1327
  "zen-ambient-background",
1324
- le
1325
- ), window.customElements.get("zen-theme-switcher") || window.customElements.define("zen-theme-switcher", de));
1328
+ de
1329
+ ), window.customElements.get("zen-theme-switcher") || window.customElements.define("zen-theme-switcher", me));
1326
1330
  }
1327
1331
  export {
1328
1332
  S as C,
1329
- fe as Z,
1330
- ie as a,
1331
- Y as b,
1332
- we as c,
1333
- F as d,
1334
- k as e,
1335
- P as f,
1336
- ce as g,
1337
- le as h,
1338
- ve as i,
1333
+ ve as Z,
1334
+ oe as a,
1335
+ P as b,
1336
+ Ae as c,
1337
+ I as d,
1338
+ T as e,
1339
+ D as f,
1340
+ le as g,
1341
+ de as h,
1342
+ we as i,
1339
1343
  ue as j,
1340
- oe as k,
1341
- ge as l,
1342
- de as m,
1343
- se as n,
1344
- B as o,
1345
- re as p,
1346
- K as q,
1347
- Ae as r,
1348
- me as s,
1349
- L as t,
1350
- be as u,
1351
- U as z
1344
+ se as k,
1345
+ be as l,
1346
+ me as m,
1347
+ ce as n,
1348
+ j as o,
1349
+ ae as p,
1350
+ X as q,
1351
+ xe as r,
1352
+ pe as s,
1353
+ Z as t,
1354
+ fe as u,
1355
+ V as z
1352
1356
  };
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.3",
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",
@@ -54,26 +54,56 @@
54
54
  "prepublishOnly": "npm run capri -- all && npm run build",
55
55
  "publish:npm": "node bin/capri.mjs publish-npm"
56
56
  },
57
- "dependencies": {
57
+ "peerDependencies": {
58
+ "@react-three/fiber": ">=8.0.0",
59
+ "@react-three/postprocessing": ">=2.0.0",
60
+ "lucide-react": ">=0.300.0",
61
+ "postprocessing": ">=6.0.0",
62
+ "react": ">=18.0.0",
63
+ "react-dom": ">=18.0.0",
64
+ "three": ">=0.150.0"
65
+ },
66
+ "peerDependenciesMeta": {
67
+ "@react-three/fiber": {
68
+ "optional": true
69
+ },
70
+ "@react-three/postprocessing": {
71
+ "optional": true
72
+ },
73
+ "lucide-react": {
74
+ "optional": true
75
+ },
76
+ "postprocessing": {
77
+ "optional": true
78
+ },
79
+ "react": {
80
+ "optional": true
81
+ },
82
+ "react-dom": {
83
+ "optional": true
84
+ },
85
+ "three": {
86
+ "optional": true
87
+ }
88
+ },
89
+ "devDependencies": {
58
90
  "@gsap/react": "^2.1.2",
91
+ "@playwright/test": "^1.51.0",
59
92
  "@react-three/fiber": "^9.5.0",
60
93
  "@react-three/postprocessing": "^3.2.2",
61
94
  "@tailwindcss/vite": "^4.1.0",
95
+ "@types/node": "^22.10.0",
96
+ "@types/react": "^19.0.10",
97
+ "@types/react-dom": "^19.0.4",
98
+ "@types/three": "^0.182.0",
99
+ "@vitejs/plugin-react": "^4.3.4",
62
100
  "gsap": "^3.13.0",
63
101
  "lucide-react": "^0.562.0",
64
102
  "postprocessing": "^6.39.6",
65
103
  "react": "^19.2.3",
66
104
  "react-dom": "^19.2.3",
67
105
  "tailwindcss": "^4.1.0",
68
- "three": "^0.182.0"
69
- },
70
- "devDependencies": {
71
- "@playwright/test": "^1.51.0",
72
- "@types/node": "^22.10.0",
73
- "@types/react": "^19.0.10",
74
- "@types/react-dom": "^19.0.4",
75
- "@types/three": "^0.182.0",
76
- "@vitejs/plugin-react": "^4.3.4",
106
+ "three": "^0.182.0",
77
107
  "typescript": "~5.8.2",
78
108
  "vite": "^6.2.0"
79
109
  }
@@ -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.3';
2
2
  export const ZEN_PACKAGE_NAME = '@zen-ui/system';
3
3
 
4
4
  export {
@@ -136,7 +136,16 @@ export interface ZenThemeContextValue {
136
136
  readonly setRadius: (next: ZenRadiusMode) => void;
137
137
  }
138
138
 
139
- const ZenThemeContext = createContext<ZenThemeContextValue | null>(null);
139
+ let zenThemeContextInstance: ReturnType<
140
+ typeof createContext<ZenThemeContextValue | null>
141
+ > | null = null;
142
+
143
+ function getZenThemeContext() {
144
+ if (!zenThemeContextInstance) {
145
+ zenThemeContextInstance = createContext<ZenThemeContextValue | null>(null);
146
+ }
147
+ return zenThemeContextInstance;
148
+ }
140
149
 
141
150
  export interface ZenThemeProviderProps {
142
151
  readonly defaultTheme?: ZenThemeId;
@@ -312,15 +321,17 @@ export function ZenThemeProvider({
312
321
  [theme, themeMeta, density, radius, reducedMotion]
313
322
  );
314
323
 
324
+ const ThemeCtx = getZenThemeContext();
325
+
315
326
  return (
316
- <ZenThemeContext.Provider value={value}>
327
+ <ThemeCtx.Provider value={value}>
317
328
  {children}
318
- </ZenThemeContext.Provider>
329
+ </ThemeCtx.Provider>
319
330
  );
320
331
  }
321
332
 
322
333
  export function useZenTheme(): ZenThemeContextValue {
323
- const ctx = useContext(ZenThemeContext);
334
+ const ctx = useContext(getZenThemeContext());
324
335
  if (!ctx) {
325
336
  throw new Error('useZenTheme must be used within a ZenThemeProvider');
326
337
  }
@@ -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);