@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 +7 -2
- package/dist/lib/components/ZenIcon.d.ts.map +1 -1
- package/dist/lib/index.d.ts +1 -1
- package/dist/lib/index.js +3 -3
- package/dist/lib/theme/ZenThemeProvider.d.ts.map +1 -1
- package/dist/lib/universal/zen-universal.d.ts.map +1 -1
- package/dist/lib/universal/zen-universal.js +1 -1
- package/dist/lib/{zen-universal-C0PD8AI9.js → zen-universal-BhiGXo0e.js} +194 -190
- package/package.json +41 -11
- package/src/lib/components/ZenIcon.tsx +24 -7
- package/src/lib/index.ts +1 -1
- package/src/lib/theme/ZenThemeProvider.tsx +15 -4
- package/src/lib/universal/zen-universal.ts +2 -1
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 (
|
|
757
|
-
|
|
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,
|
|
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"}
|
package/dist/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare const ZEN_UI_VERSION = "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-
|
|
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-
|
|
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.
|
|
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;
|
|
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":"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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-
|
|
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
|
|
2
|
-
var
|
|
3
|
-
var g = (
|
|
4
|
-
import { jsx as
|
|
5
|
-
import {
|
|
6
|
-
const
|
|
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
|
-
]
|
|
88
|
-
|
|
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) ??
|
|
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: ${
|
|
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
|
|
144
|
-
defaultTheme:
|
|
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] =
|
|
152
|
-
|
|
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
|
|
155
|
-
return
|
|
156
|
-
}, []),
|
|
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
|
|
159
|
-
|
|
160
|
-
}, [r, 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((
|
|
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:
|
|
169
|
-
radius:
|
|
172
|
+
density: l,
|
|
173
|
+
radius: u,
|
|
170
174
|
reducedMotion: b,
|
|
171
|
-
themes:
|
|
175
|
+
themes: T,
|
|
172
176
|
setTheme: d,
|
|
173
177
|
togglePolarity: C,
|
|
174
|
-
setDensity:
|
|
178
|
+
setDensity: c,
|
|
175
179
|
setRadius: v
|
|
176
180
|
}),
|
|
177
|
-
[r, A,
|
|
178
|
-
);
|
|
179
|
-
return /* @__PURE__ */
|
|
181
|
+
[r, A, l, u, b]
|
|
182
|
+
), k = Y();
|
|
183
|
+
return /* @__PURE__ */ W(k.Provider, { value: w, children: i });
|
|
180
184
|
}
|
|
181
|
-
function
|
|
182
|
-
const
|
|
183
|
-
if (!
|
|
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
|
|
189
|
+
return s;
|
|
186
190
|
}
|
|
187
|
-
const
|
|
191
|
+
const P = {
|
|
188
192
|
xs: 12,
|
|
189
193
|
sm: 14,
|
|
190
194
|
md: 16,
|
|
191
195
|
lg: 20,
|
|
192
196
|
xl: 24
|
|
193
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
244
|
-
|
|
247
|
+
}, ve = Object.keys(
|
|
248
|
+
I
|
|
245
249
|
);
|
|
246
|
-
function
|
|
247
|
-
const e =
|
|
248
|
-
return `<svg xmlns="http://www.w3.org/2000/svg" width="${
|
|
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
|
|
251
|
-
name:
|
|
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
|
|
261
|
-
return /* @__PURE__ */
|
|
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:
|
|
266
|
-
height:
|
|
269
|
+
width: l,
|
|
270
|
+
height: l,
|
|
267
271
|
viewBox: "0 0 24 24",
|
|
268
272
|
fill: "none",
|
|
269
|
-
stroke:
|
|
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:
|
|
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
|
-
},
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
-
),
|
|
549
|
+
), l = Array.from(
|
|
546
550
|
n.querySelectorAll(
|
|
547
551
|
'button, [role="button"], input:not([type="hidden"]), select, textarea'
|
|
548
552
|
)
|
|
549
|
-
),
|
|
550
|
-
let
|
|
551
|
-
for (const y of
|
|
552
|
-
const
|
|
553
|
-
if (!
|
|
554
|
-
const
|
|
555
|
-
|
|
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
|
|
559
|
-
|
|
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
|
-
|
|
569
|
+
u > 0 && h.push({
|
|
566
570
|
code: "PROMPT_INJECTION_DETECTED",
|
|
567
571
|
severity: "error",
|
|
568
572
|
selector: "input, textarea",
|
|
569
|
-
message: `${
|
|
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
|
-
}),
|
|
593
|
+
}), c.length > 0 && h.push({
|
|
590
594
|
code: "UNLABELED_CONTROL",
|
|
591
595
|
severity: "error",
|
|
592
|
-
selector:
|
|
593
|
-
message: `${
|
|
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 =
|
|
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:
|
|
603
|
-
unlabeledSelectors:
|
|
604
|
-
promptInjectionSafe:
|
|
605
|
-
promptThreatsCount:
|
|
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
|
|
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 || "/",
|
|
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(),
|
|
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,
|
|
680
|
+
).length, Q = o.querySelectorAll(
|
|
677
681
|
'input, select, textarea, [role="switch"], [role="checkbox"], [role="combobox"]'
|
|
678
682
|
).length;
|
|
679
683
|
return {
|
|
680
|
-
id:
|
|
684
|
+
id: M,
|
|
681
685
|
tag: f,
|
|
682
|
-
title:
|
|
683
|
-
interactiveCount:
|
|
684
|
-
formControlsCount:
|
|
686
|
+
title: R,
|
|
687
|
+
interactiveCount: B,
|
|
688
|
+
formControlsCount: Q
|
|
685
689
|
};
|
|
686
|
-
}),
|
|
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
|
-
}),
|
|
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:
|
|
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 = ((
|
|
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 ${
|
|
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 = ((
|
|
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 = ((
|
|
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(),
|
|
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
|
-
|
|
756
|
+
l.slice(0, 6).forEach((o, p) => {
|
|
753
757
|
const f = `LM_${p + 1}`;
|
|
754
|
-
|
|
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
|
-
|
|
763
|
+
k.push(
|
|
760
764
|
` Guard --> ${f}["[${o.category}] ${w(o.triggerLabel)}"]`
|
|
761
765
|
);
|
|
762
766
|
});
|
|
763
|
-
const
|
|
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:** ${
|
|
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:** ${
|
|
778
|
-
`- **Text Inputs, Textareas & Selects:** ${
|
|
779
|
-
`- **Switches, Checkboxes & Radio Controls:** ${
|
|
780
|
-
`- **Glass Cards & Surface Containers:** ${
|
|
781
|
-
`- **Data Tables:** ${
|
|
782
|
-
`- **Status Badges & Live Alerts:** ${
|
|
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
|
-
...
|
|
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
|
-
|
|
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:
|
|
807
|
-
inventory:
|
|
810
|
+
landmarks: l,
|
|
811
|
+
inventory: u,
|
|
808
812
|
userFlows: v,
|
|
809
|
-
mermaidDiagram:
|
|
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,
|
|
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) : "",
|
|
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((
|
|
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((
|
|
851
|
-
`- Key User Flows: ${i.userFlows.slice(0, 6).map((
|
|
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
|
-
${
|
|
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
|
|
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
|
-
],
|
|
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
|
|
1009
|
-
const e =
|
|
1012
|
+
function K(s) {
|
|
1013
|
+
const e = D.find((n) => n.id === s);
|
|
1010
1014
|
return e ? e.polarity : "dark";
|
|
1011
1015
|
}
|
|
1012
|
-
class
|
|
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 &&
|
|
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:
|
|
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:
|
|
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 =
|
|
1074
|
-
|
|
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
|
|
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
|
|
1103
|
-
class
|
|
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,
|
|
1138
|
-
this.figureEl.style.transform = `perspective(900px) translateY(${r.toFixed(2)}px) rotateX(${
|
|
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,
|
|
1144
|
-
r.clearRect(0, 0, d,
|
|
1145
|
-
const
|
|
1146
|
-
if (
|
|
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 =
|
|
1171
|
+
const n = j(
|
|
1168
1172
|
this.getAttribute("title") ?? "CAPRI // CONSTRUCT"
|
|
1169
|
-
), t =
|
|
1173
|
+
), t = j(
|
|
1170
1174
|
this.getAttribute("subtitle") ?? "Edgerunners S2 // Soulkiller Net-Driver"
|
|
1171
|
-
), a =
|
|
1175
|
+
), a = pe(
|
|
1172
1176
|
this.getAttribute("image-src") ?? "/capri-construct-base.png"
|
|
1173
|
-
), i =
|
|
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
|
-
${
|
|
1202
|
-
(
|
|
1203
|
-
<button type="button" data-directive="${
|
|
1204
|
-
${
|
|
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((
|
|
1211
|
-
|
|
1212
|
-
const
|
|
1213
|
-
(
|
|
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((
|
|
1216
|
-
|
|
1217
|
-
const
|
|
1218
|
-
if (!
|
|
1219
|
-
|
|
1220
|
-
const
|
|
1221
|
-
|
|
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:
|
|
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
|
|
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
|
|
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 =
|
|
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 } =
|
|
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
|
-
${
|
|
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 && (
|
|
1286
|
+
a && (V.playMicroClick(540), Z.setTheme(a), this.dispatchEvent(
|
|
1283
1287
|
new CustomEvent("zen-theme-change", {
|
|
1284
|
-
detail:
|
|
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 =
|
|
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
|
|
1315
|
-
return
|
|
1318
|
+
function j(s) {
|
|
1319
|
+
return s.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
1316
1320
|
}
|
|
1317
|
-
function
|
|
1318
|
-
const e =
|
|
1319
|
-
return /^(?:javascript|data|vbscript)
|
|
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
|
|
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",
|
|
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
|
-
|
|
1325
|
-
), window.customElements.get("zen-theme-switcher") || window.customElements.define("zen-theme-switcher",
|
|
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
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
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
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
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.
|
|
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
|
-
"
|
|
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
|
|
171
|
-
const
|
|
172
|
-
|
|
173
|
-
|
|
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
|
|
198
|
-
|
|
199
|
-
|
|
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
|
@@ -136,7 +136,16 @@ export interface ZenThemeContextValue {
|
|
|
136
136
|
readonly setRadius: (next: ZenRadiusMode) => void;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
-
|
|
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
|
-
<
|
|
327
|
+
<ThemeCtx.Provider value={value}>
|
|
317
328
|
{children}
|
|
318
|
-
</
|
|
329
|
+
</ThemeCtx.Provider>
|
|
319
330
|
);
|
|
320
331
|
}
|
|
321
332
|
|
|
322
333
|
export function useZenTheme(): ZenThemeContextValue {
|
|
323
|
-
const ctx = useContext(
|
|
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
|
-
|
|
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);
|