@ng-prism/core 21.5.3 → 21.5.4

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.
@@ -86,7 +86,7 @@ export class JsonControlComponent {
86
86
  i0.ɵɵdomProperty("value", ctx.displayText());
87
87
  i0.ɵɵadvance(2);
88
88
  i0.ɵɵconditional(ctx.parseError() ? 7 : -1);
89
- } }, styles: [".json-editor[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n\n .json-overlay[_ngcontent-%COMP%] {\n position: relative;\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-sm);\n overflow: hidden;\n transition: border-color var(--dur-fast);\n }\n .json-overlay[_ngcontent-%COMP%]:focus-within {\n border-color: var(--prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--prism-primary) 30%, transparent);\n }\n\n .json-pre[_ngcontent-%COMP%], .json-input[_ngcontent-%COMP%] {\n margin: 0;\n padding: 4px 8px;\n font-family: var(--font-mono);\n font-size: 12px;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n tab-size: 2;\n }\n\n .json-pre[_ngcontent-%COMP%] {\n min-height: 56px;\n pointer-events: none;\n }\n .json-pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%] { font-family: inherit; }\n\n [_nghost-%COMP%] .jh-key { color: #93c5fd; }\n [_nghost-%COMP%] .jh-string { color: #86efac; }\n [_nghost-%COMP%] .jh-number { color: #fbbf24; }\n [_nghost-%COMP%] .jh-bool { color: #a78bfa; }\n [_nghost-%COMP%] .jh-null { color: var(--prism-text-ghost); }\n\n .json-input[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n background: transparent;\n color: transparent;\n caret-color: var(--prism-text);\n border: none;\n resize: none;\n overflow: auto;\n box-sizing: border-box;\n }\n .json-input[_ngcontent-%COMP%]:focus { outline: none; }\n .json-input[_ngcontent-%COMP%]::selection { background: rgba(99, 102, 241, 0.3); }\n\n .json-error[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-danger);\n display: block;\n margin-top: 2px;\n }"], changeDetection: 0 });
89
+ } }, styles: [".json-editor[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n\n .json-overlay[_ngcontent-%COMP%] {\n position: relative;\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-sm);\n overflow: hidden;\n transition: border-color var(--dur-fast);\n }\n .json-overlay[_ngcontent-%COMP%]:focus-within {\n border-color: var(--prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--prism-primary) 30%, transparent);\n }\n\n .json-pre[_ngcontent-%COMP%], .json-input[_ngcontent-%COMP%] {\n margin: 0;\n padding: 4px 8px;\n font-family: var(--font-mono);\n font-size: 12px;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n tab-size: 2;\n }\n\n .json-pre[_ngcontent-%COMP%] {\n min-height: 56px;\n pointer-events: none;\n }\n .json-pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%] { font-family: inherit; }\n\n [_nghost-%COMP%] .jh-key { color: var(--prism-code-attr); }\n [_nghost-%COMP%] .jh-string { color: var(--prism-code-str); }\n [_nghost-%COMP%] .jh-number { color: var(--prism-warn); }\n [_nghost-%COMP%] .jh-bool { color: var(--prism-primary); }\n [_nghost-%COMP%] .jh-null { color: var(--prism-text-ghost); }\n\n .json-input[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n background: transparent;\n color: transparent;\n caret-color: var(--prism-text);\n border: none;\n resize: none;\n overflow: auto;\n box-sizing: border-box;\n }\n .json-input[_ngcontent-%COMP%]:focus { outline: none; }\n .json-input[_ngcontent-%COMP%]::selection { background: rgba(99, 102, 241, 0.3); }\n\n .json-error[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-danger);\n display: block;\n margin-top: 2px;\n }"], changeDetection: 0 });
90
90
  }
91
91
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JsonControlComponent, [{
92
92
  type: Component,
@@ -110,6 +110,6 @@ export class JsonControlComponent {
110
110
  <span class="json-error">Invalid JSON</span>
111
111
  }
112
112
  </div>
113
- `, styles: ["\n .json-editor { flex: 1; min-width: 0; }\n\n .json-overlay {\n position: relative;\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-sm);\n overflow: hidden;\n transition: border-color var(--dur-fast);\n }\n .json-overlay:focus-within {\n border-color: var(--prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--prism-primary) 30%, transparent);\n }\n\n .json-pre, .json-input {\n margin: 0;\n padding: 4px 8px;\n font-family: var(--font-mono);\n font-size: 12px;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n tab-size: 2;\n }\n\n .json-pre {\n min-height: 56px;\n pointer-events: none;\n }\n .json-pre code { font-family: inherit; }\n\n :host ::ng-deep .jh-key { color: #93c5fd; }\n :host ::ng-deep .jh-string { color: #86efac; }\n :host ::ng-deep .jh-number { color: #fbbf24; }\n :host ::ng-deep .jh-bool { color: #a78bfa; }\n :host ::ng-deep .jh-null { color: var(--prism-text-ghost); }\n\n .json-input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n background: transparent;\n color: transparent;\n caret-color: var(--prism-text);\n border: none;\n resize: none;\n overflow: auto;\n box-sizing: border-box;\n }\n .json-input:focus { outline: none; }\n .json-input::selection { background: rgba(99, 102, 241, 0.3); }\n\n .json-error {\n font-size: 11px;\n color: var(--prism-danger);\n display: block;\n margin-top: 2px;\n }\n "] }]
113
+ `, styles: ["\n .json-editor { flex: 1; min-width: 0; }\n\n .json-overlay {\n position: relative;\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-sm);\n overflow: hidden;\n transition: border-color var(--dur-fast);\n }\n .json-overlay:focus-within {\n border-color: var(--prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--prism-primary) 30%, transparent);\n }\n\n .json-pre, .json-input {\n margin: 0;\n padding: 4px 8px;\n font-family: var(--font-mono);\n font-size: 12px;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n tab-size: 2;\n }\n\n .json-pre {\n min-height: 56px;\n pointer-events: none;\n }\n .json-pre code { font-family: inherit; }\n\n :host ::ng-deep .jh-key { color: var(--prism-code-attr); }\n :host ::ng-deep .jh-string { color: var(--prism-code-str); }\n :host ::ng-deep .jh-number { color: var(--prism-warn); }\n :host ::ng-deep .jh-bool { color: var(--prism-primary); }\n :host ::ng-deep .jh-null { color: var(--prism-text-ghost); }\n\n .json-input {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n background: transparent;\n color: transparent;\n caret-color: var(--prism-text);\n border: none;\n resize: none;\n overflow: auto;\n box-sizing: border-box;\n }\n .json-input:focus { outline: none; }\n .json-input::selection { background: rgba(99, 102, 241, 0.3); }\n\n .json-error {\n font-size: 11px;\n color: var(--prism-danger);\n display: block;\n margin-top: 2px;\n }\n "] }]
114
114
  }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], typeName: [{ type: i0.Input, args: [{ isSignal: true, alias: "typeName", required: false }] }], valueChange: [{ type: i0.Output, args: ["valueChange"] }], textareaEl: [{ type: i0.ViewChild, args: ['textareaEl', { isSignal: true }] }], preEl: [{ type: i0.ViewChild, args: ['preEl', { isSignal: true }] }] }); })();
115
115
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(JsonControlComponent, { className: "JsonControlComponent", filePath: "app/controls/json-control.component.ts", lineNumber: 113 }); })();
@@ -77,7 +77,7 @@ export class A11yKeyboardOverlayComponent {
77
77
  i0.ɵɵconditionalCreate(0, A11yKeyboardOverlayComponent_Conditional_0_Template, 2, 0);
78
78
  } if (rf & 2) {
79
79
  i0.ɵɵconditional(ctx.panelState.activeTab() === "keyboard" ? 0 : -1);
80
- } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-kbd-ov__highlight[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid rgba(129, 140, 248, 0.5);\n border-radius: 4px;\n background: rgba(129, 140, 248, 0.06);\n box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.08);\n pointer-events: none;\n }\n\n .prism-a11y-kbd-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n width: 20px;\n height: 20px;\n background: #818cf8;\n color: white;\n border-radius: 50%;\n font-size: 10px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px white, 0 2px 6px rgba(0, 0, 0, 0.3);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n pointer-events: auto;\n cursor: default;\n }"], changeDetection: 0 });
80
+ } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-kbd-ov__highlight[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid rgba(129, 140, 248, 0.5);\n border-radius: 4px;\n background: rgba(129, 140, 248, 0.06);\n box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.08);\n pointer-events: none;\n }\n\n .prism-a11y-kbd-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n width: 20px;\n height: 20px;\n background: var(--prism-primary);\n color: white;\n border-radius: 50%;\n font-size: 10px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px white, 0 2px 6px rgba(0, 0, 0, 0.3);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n pointer-events: auto;\n cursor: default;\n }"], changeDetection: 0 });
81
81
  }
82
82
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yKeyboardOverlayComponent, [{
83
83
  type: Component,
@@ -99,6 +99,6 @@ export class A11yKeyboardOverlayComponent {
99
99
  >{{ badge.index }}</div>
100
100
  }
101
101
  }
102
- `, styles: ["\n :host {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-kbd-ov__highlight {\n position: absolute;\n border: 2px solid rgba(129, 140, 248, 0.5);\n border-radius: 4px;\n background: rgba(129, 140, 248, 0.06);\n box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.08);\n pointer-events: none;\n }\n\n .prism-a11y-kbd-ov__badge {\n position: absolute;\n width: 20px;\n height: 20px;\n background: #818cf8;\n color: white;\n border-radius: 50%;\n font-size: 10px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px white, 0 2px 6px rgba(0, 0, 0, 0.3);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n pointer-events: auto;\n cursor: default;\n }\n "] }]
102
+ `, styles: ["\n :host {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-kbd-ov__highlight {\n position: absolute;\n border: 2px solid rgba(129, 140, 248, 0.5);\n border-radius: 4px;\n background: rgba(129, 140, 248, 0.06);\n box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.08);\n pointer-events: none;\n }\n\n .prism-a11y-kbd-ov__badge {\n position: absolute;\n width: 20px;\n height: 20px;\n background: var(--prism-primary);\n color: white;\n border-radius: 50%;\n font-size: 10px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px white, 0 2px 6px rgba(0, 0, 0, 0.3);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n pointer-events: auto;\n cursor: default;\n }\n "] }]
103
103
  }], () => [], null); })();
104
104
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(A11yKeyboardOverlayComponent, { className: "A11yKeyboardOverlayComponent", filePath: "app/panels/a11y/a11y-keyboard-overlay.component.ts", lineNumber: 83 }); })();
@@ -50,7 +50,7 @@ export class A11yOverlayHostComponent {
50
50
  i0.ɵɵconditional(ctx.roleLabel() ? 1 : -1);
51
51
  i0.ɵɵadvance();
52
52
  i0.ɵɵconditional(ctx.tabLabel() ? 2 : -1);
53
- } }, styles: ["[_nghost-%COMP%] { display: contents; }\n .a11y-mark[_ngcontent-%COMP%] {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n }\n .outline[_ngcontent-%COMP%] {\n border: 2px solid rgba(59, 130, 246, 0.95);\n border-radius: 4px;\n background: rgba(59, 130, 246, 0.08);\n }\n .tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 4px;\n background: rgba(17, 24, 39, 0.92);\n color: #fff;\n font: 11px/1.4 var(--font-mono);\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);\n }\n .kb[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%] { background: rgba(5, 150, 105, 0.95); }"], changeDetection: 0 });
53
+ } }, styles: ["[_nghost-%COMP%] { display: contents; }\n .a11y-mark[_ngcontent-%COMP%] {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n }\n .outline[_ngcontent-%COMP%] {\n border: 2px solid rgba(59, 130, 246, 0.95);\n border-radius: 4px;\n background: rgba(59, 130, 246, 0.08);\n }\n .tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 4px;\n background: rgba(17, 24, 39, 0.92);\n color: var(--prism-text-light, #fff);\n font: 11px/1.4 var(--font-mono);\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);\n }\n .kb[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%] { background: rgba(5, 150, 105, 0.95); }"], changeDetection: 0 });
54
54
  }
55
55
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yOverlayHostComponent, [{
56
56
  type: Component,
@@ -65,7 +65,7 @@ export class A11yOverlayHostComponent {
65
65
  <span class="tag">{{ tabLabel() }}</span>
66
66
  </div>
67
67
  }
68
- `, styles: ["\n :host { display: contents; }\n .a11y-mark {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n }\n .outline {\n border: 2px solid rgba(59, 130, 246, 0.95);\n border-radius: 4px;\n background: rgba(59, 130, 246, 0.08);\n }\n .tag {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 4px;\n background: rgba(17, 24, 39, 0.92);\n color: #fff;\n font: 11px/1.4 var(--font-mono);\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);\n }\n .kb .tag { background: rgba(5, 150, 105, 0.95); }\n "] }]
68
+ `, styles: ["\n :host { display: contents; }\n .a11y-mark {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n }\n .outline {\n border: 2px solid rgba(59, 130, 246, 0.95);\n border-radius: 4px;\n background: rgba(59, 130, 246, 0.08);\n }\n .tag {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 4px;\n background: rgba(17, 24, 39, 0.92);\n color: var(--prism-text-light, #fff);\n font: 11px/1.4 var(--font-mono);\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);\n }\n .kb .tag { background: rgba(5, 150, 105, 0.95); }\n "] }]
69
69
  }], null, null); })();
70
70
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(A11yOverlayHostComponent, { className: "A11yOverlayHostComponent", filePath: "app/panels/a11y/a11y-overlay-host.component.ts", lineNumber: 51 }); })();
71
71
  function implicitRole(el) {
@@ -1 +1 @@
1
- {"version":3,"file":"a11y-score.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-score.component.ts"],"names":[],"mappings":";AAWA,qBAwFa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK,8CAA4B;IAC1C,QAAQ,CAAC,OAAO,+CAAgB;IAEhC,SAAS,CAAC,QAAQ,CAAC,UAAU,SAA0B;IACvD,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAK;IACzB,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAiB;IAExC,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAE3B;yCAVS,kBAAkB;2CAAlB,kBAAkB;CAW9B"}
1
+ {"version":3,"file":"a11y-score.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-score.component.ts"],"names":[],"mappings":";AAWA,qBA0Fa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK,8CAA4B;IAC1C,QAAQ,CAAC,OAAO,+CAAgB;IAEhC,SAAS,CAAC,QAAQ,CAAC,UAAU,SAA0B;IACvD,SAAS,CAAC,QAAQ,CAAC,CAAC,MAAK;IACzB,SAAS,CAAC,QAAQ,CAAC,IAAI,SAAiB;IAExC,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAE3B;yCAVS,kBAAkB;2CAAlB,kBAAkB;CAW9B"}
@@ -23,7 +23,7 @@ export class A11yScoreComponent {
23
23
  CIRC = CIRCUMFERENCE;
24
24
  dashOffset = computed(() => CIRCUMFERENCE - (this.score() / 100) * CIRCUMFERENCE, ...(ngDevMode ? [{ debugName: "dashOffset" }] : []));
25
25
  static ɵfac = function A11yScoreComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11yScoreComponent)(); };
26
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yScoreComponent, selectors: [["prism-a11y-score"]], inputs: { score: [1, "score"], compact: [1, "compact"] }, decls: 9, vars: 7, consts: [[1, "score-ring"], ["viewBox", "0 0 128 128"], ["x1", "0", "y1", "0", "x2", "1", "y2", "1", 3, "id"], ["offset", "0%", "stop-color", "#a78bfa"], ["offset", "100%", "stop-color", "#3b82f6"], ["cx", "64", "cy", "64", 1, "track"], ["cx", "64", "cy", "64", 1, "fill"], [1, "score-val"], [1, "score-num"], [1, "score-max"]], template: function A11yScoreComponent_Template(rf, ctx) { if (rf & 1) {
26
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yScoreComponent, selectors: [["prism-a11y-score"]], inputs: { score: [1, "score"], compact: [1, "compact"] }, decls: 9, vars: 7, consts: [[1, "score-ring"], ["viewBox", "0 0 128 128"], ["x1", "0", "y1", "0", "x2", "1", "y2", "1", 3, "id"], ["offset", "0%", 1, "gradient-start"], ["offset", "100%", 1, "gradient-end"], ["cx", "64", "cy", "64", 1, "track"], ["cx", "64", "cy", "64", 1, "fill"], [1, "score-val"], [1, "score-num"], [1, "score-max"]], template: function A11yScoreComponent_Template(rf, ctx) { if (rf & 1) {
27
27
  i0.ɵɵdomElementStart(0, "div", 0);
28
28
  i0.ɵɵnamespaceSVG();
29
29
  i0.ɵɵdomElementStart(1, "svg", 1)(2, "defs")(3, "linearGradient", 2);
@@ -42,7 +42,7 @@ export class A11yScoreComponent {
42
42
  i0.ɵɵattribute("r", ctx.R)("stroke-dasharray", ctx.CIRC)("stroke-dashoffset", ctx.dashOffset())("stroke", "url(#" + ctx.gradientId + ")");
43
43
  i0.ɵɵadvance();
44
44
  i0.ɵɵconditional(!ctx.compact() ? 8 : -1);
45
- } }, styles: ["[_nghost-%COMP%] { display: inline-flex; }\n\n .score-ring[_ngcontent-%COMP%] {\n position: relative;\n width: 128px;\n height: 128px;\n }\n .compact[_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], .compact [_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], \n [style*=\"width:18px\"][_nghost-%COMP%] .score-ring[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] circle[_ngcontent-%COMP%] {\n fill: none;\n stroke-width: 10;\n }\n .track[_ngcontent-%COMP%] { stroke: var(--prism-input-bg); }\n .fill[_ngcontent-%COMP%] {\n stroke-linecap: round;\n transition: stroke-dashoffset 0.5s ease;\n }\n\n .score-val[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n }\n .score-num[_ngcontent-%COMP%] {\n font-size: 30px;\n font-weight: 700;\n letter-spacing: -0.02em;\n background: linear-gradient(135deg, var(--prism-primary), var(--prism-accent));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n font-family: var(--font-mono);\n }\n .score-max[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }"], changeDetection: 0 });
45
+ } }, styles: ["[_nghost-%COMP%] { display: inline-flex; }\n\n .score-ring[_ngcontent-%COMP%] {\n position: relative;\n width: 128px;\n height: 128px;\n }\n .compact[_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], .compact [_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], \n [style*=\"width:18px\"][_nghost-%COMP%] .score-ring[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] circle[_ngcontent-%COMP%] {\n fill: none;\n stroke-width: 10;\n }\n .track[_ngcontent-%COMP%] { stroke: var(--prism-input-bg); }\n .gradient-start[_ngcontent-%COMP%] { stop-color: var(--prism-primary); }\n .gradient-end[_ngcontent-%COMP%] { stop-color: var(--prism-accent); }\n .fill[_ngcontent-%COMP%] {\n stroke-linecap: round;\n transition: stroke-dashoffset 0.5s ease;\n }\n\n .score-val[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n }\n .score-num[_ngcontent-%COMP%] {\n font-size: 30px;\n font-weight: 700;\n letter-spacing: -0.02em;\n background: linear-gradient(135deg, var(--prism-primary), var(--prism-accent));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n font-family: var(--font-mono);\n }\n .score-max[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }"], changeDetection: 0 });
46
46
  }
47
47
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yScoreComponent, [{
48
48
  type: Component,
@@ -51,8 +51,8 @@ export class A11yScoreComponent {
51
51
  <svg viewBox="0 0 128 128">
52
52
  <defs>
53
53
  <linearGradient [id]="gradientId" x1="0" y1="0" x2="1" y2="1">
54
- <stop offset="0%" stop-color="#a78bfa" />
55
- <stop offset="100%" stop-color="#3b82f6" />
54
+ <stop offset="0%" class="gradient-start" />
55
+ <stop offset="100%" class="gradient-end" />
56
56
  </linearGradient>
57
57
  </defs>
58
58
  <circle class="track" cx="64" cy="64" [attr.r]="R" />
@@ -73,6 +73,6 @@ export class A11yScoreComponent {
73
73
  </div>
74
74
  }
75
75
  </div>
76
- `, styles: ["\n :host { display: inline-flex; }\n\n .score-ring {\n position: relative;\n width: 128px;\n height: 128px;\n }\n :host-context(.compact) .score-ring,\n :host([style*=\"width:18px\"]) .score-ring {\n width: 100%;\n height: 100%;\n }\n\n .score-ring svg {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n\n .score-ring circle {\n fill: none;\n stroke-width: 10;\n }\n .track { stroke: var(--prism-input-bg); }\n .fill {\n stroke-linecap: round;\n transition: stroke-dashoffset 0.5s ease;\n }\n\n .score-val {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n }\n .score-num {\n font-size: 30px;\n font-weight: 700;\n letter-spacing: -0.02em;\n background: linear-gradient(135deg, var(--prism-primary), var(--prism-accent));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n font-family: var(--font-mono);\n }\n .score-max {\n font-size: 11px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }\n "] }]
76
+ `, styles: ["\n :host { display: inline-flex; }\n\n .score-ring {\n position: relative;\n width: 128px;\n height: 128px;\n }\n :host-context(.compact) .score-ring,\n :host([style*=\"width:18px\"]) .score-ring {\n width: 100%;\n height: 100%;\n }\n\n .score-ring svg {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n\n .score-ring circle {\n fill: none;\n stroke-width: 10;\n }\n .track { stroke: var(--prism-input-bg); }\n .gradient-start { stop-color: var(--prism-primary); }\n .gradient-end { stop-color: var(--prism-accent); }\n .fill {\n stroke-linecap: round;\n transition: stroke-dashoffset 0.5s ease;\n }\n\n .score-val {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n }\n .score-num {\n font-size: 30px;\n font-weight: 700;\n letter-spacing: -0.02em;\n background: linear-gradient(135deg, var(--prism-primary), var(--prism-accent));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n font-family: var(--font-mono);\n }\n .score-max {\n font-size: 11px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }\n "] }]
77
77
  }], null, { score: [{ type: i0.Input, args: [{ isSignal: true, alias: "score", required: true }] }], compact: [{ type: i0.Input, args: [{ isSignal: true, alias: "compact", required: false }] }] }); })();
78
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(A11yScoreComponent, { className: "A11yScoreComponent", filePath: "app/panels/a11y/a11y-score.component.ts", lineNumber: 100 }); })();
78
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(A11yScoreComponent, { className: "A11yScoreComponent", filePath: "app/panels/a11y/a11y-score.component.ts", lineNumber: 102 }); })();
@@ -98,7 +98,7 @@ export class A11ySrOverlayComponent {
98
98
  i0.ɵɵconditionalCreate(0, A11ySrOverlayComponent_Conditional_0_Template, 2, 0);
99
99
  } if (rf & 2) {
100
100
  i0.ɵɵconditional(ctx.showOverlay() ? 0 : -1);
101
- } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-sr-ov__focus[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid #a78bfa;\n border-radius: 4px;\n background: rgba(167, 139, 250, 0.08);\n box-shadow: 0 0 0 4px rgba(167, 139, 250, 0.12);\n }\n\n .prism-a11y-sr-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n height: 18px;\n padding: 0 5px;\n min-width: 18px;\n background: #a78bfa;\n color: white;\n border-radius: 9px;\n font-size: 9px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 1.5px white, 0 2px 4px rgba(0, 0, 0, 0.25);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-sr-ov__badge--active[_ngcontent-%COMP%] {\n background: #7c3aed;\n box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(124, 58, 237, 0.4);\n }"], changeDetection: 0 });
101
+ } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-sr-ov__focus[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid var(--prism-primary);\n border-radius: 4px;\n background: rgba(167, 139, 250, 0.08);\n box-shadow: 0 0 0 4px rgba(167, 139, 250, 0.12);\n }\n\n .prism-a11y-sr-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n height: 18px;\n padding: 0 5px;\n min-width: 18px;\n background: var(--prism-primary);\n color: white;\n border-radius: 9px;\n font-size: 9px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 1.5px white, 0 2px 4px rgba(0, 0, 0, 0.25);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-sr-ov__badge--active[_ngcontent-%COMP%] {\n background: var(--prism-primary-from);\n box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(124, 58, 237, 0.4);\n }"], changeDetection: 0 });
102
102
  }
103
103
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11ySrOverlayComponent, [{
104
104
  type: Component,
@@ -122,6 +122,6 @@ export class A11ySrOverlayComponent {
122
122
  >{{ badge.index }}</div>
123
123
  }
124
124
  }
125
- `, styles: ["\n :host {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-sr-ov__focus {\n position: absolute;\n border: 2px solid #a78bfa;\n border-radius: 4px;\n background: rgba(167, 139, 250, 0.08);\n box-shadow: 0 0 0 4px rgba(167, 139, 250, 0.12);\n }\n\n .prism-a11y-sr-ov__badge {\n position: absolute;\n height: 18px;\n padding: 0 5px;\n min-width: 18px;\n background: #a78bfa;\n color: white;\n border-radius: 9px;\n font-size: 9px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 1.5px white, 0 2px 4px rgba(0, 0, 0, 0.25);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-sr-ov__badge--active {\n background: #7c3aed;\n box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(124, 58, 237, 0.4);\n }\n "] }]
125
+ `, styles: ["\n :host {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-sr-ov__focus {\n position: absolute;\n border: 2px solid var(--prism-primary);\n border-radius: 4px;\n background: rgba(167, 139, 250, 0.08);\n box-shadow: 0 0 0 4px rgba(167, 139, 250, 0.12);\n }\n\n .prism-a11y-sr-ov__badge {\n position: absolute;\n height: 18px;\n padding: 0 5px;\n min-width: 18px;\n background: var(--prism-primary);\n color: white;\n border-radius: 9px;\n font-size: 9px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 1.5px white, 0 2px 4px rgba(0, 0, 0, 0.25);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-sr-ov__badge--active {\n background: var(--prism-primary-from);\n box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(124, 58, 237, 0.4);\n }\n "] }]
126
126
  }], () => [], null); })();
127
127
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(A11ySrOverlayComponent, { className: "A11ySrOverlayComponent", filePath: "app/panels/a11y/a11y-sr-overlay.component.ts", lineNumber: 88 }); })();
@@ -259,7 +259,7 @@ export class PrismJsonNodeComponent {
259
259
  } if (rf & 2) {
260
260
  let tmp_0_0;
261
261
  i0.ɵɵconditional((tmp_0_0 = ctx.type()) === "object" ? 0 : tmp_0_0 === "array" ? 1 : tmp_0_0 === "string" ? 2 : tmp_0_0 === "number" ? 3 : tmp_0_0 === "boolean" ? 4 : tmp_0_0 === "null" ? 5 : tmp_0_0 === "undefined" ? 6 : -1);
262
- } }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: inline;\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n }\n .json-expandable[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: baseline;\n gap: 2px;\n }\n .json-expandable[_ngcontent-%COMP%]:hover .json-summary[_ngcontent-%COMP%] {\n opacity: 0.8;\n }\n .json-chevron[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 10px;\n width: 10px;\n flex-shrink: 0;\n }\n .json-summary[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n }\n .json-children[_ngcontent-%COMP%] {\n display: block;\n padding-left: 16px;\n border-left: 1px solid var(--prism-border);\n margin: 2px 0;\n }\n .json-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0;\n padding: 1px 0;\n }\n .json-key[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n }\n .json-index[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n .json-colon[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n }\n .json-brace[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n }\n .json-string[_ngcontent-%COMP%] {\n color: #7dd3fc;\n }\n .json-number[_ngcontent-%COMP%] {\n color: #fb923c;\n }\n .json-boolean[_ngcontent-%COMP%] {\n color: #c084fc;\n }\n .json-null[_ngcontent-%COMP%], \n .json-undefined[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-style: italic;\n }"] });
262
+ } }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: inline;\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n }\n .json-expandable[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: baseline;\n gap: 2px;\n }\n .json-expandable[_ngcontent-%COMP%]:hover .json-summary[_ngcontent-%COMP%] {\n opacity: 0.8;\n }\n .json-chevron[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 10px;\n width: 10px;\n flex-shrink: 0;\n }\n .json-summary[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n }\n .json-children[_ngcontent-%COMP%] {\n display: block;\n padding-left: 16px;\n border-left: 1px solid var(--prism-border);\n margin: 2px 0;\n }\n .json-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0;\n padding: 1px 0;\n }\n .json-key[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n }\n .json-index[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n .json-colon[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n }\n .json-brace[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n }\n .json-string[_ngcontent-%COMP%] {\n color: var(--prism-code-attr);\n }\n .json-number[_ngcontent-%COMP%] {\n color: var(--prism-warn);\n }\n .json-boolean[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n }\n .json-null[_ngcontent-%COMP%], \n .json-undefined[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-style: italic;\n }"] });
263
263
  }
264
264
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismJsonNodeComponent, [{
265
265
  type: Component,
@@ -345,6 +345,6 @@ export class PrismJsonNodeComponent {
345
345
  <span class="json-undefined">undefined</span>
346
346
  }
347
347
  }
348
- `, styles: ["\n :host {\n display: inline;\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n }\n .json-expandable {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: baseline;\n gap: 2px;\n }\n .json-expandable:hover .json-summary {\n opacity: 0.8;\n }\n .json-chevron {\n color: var(--prism-text-muted);\n font-size: 10px;\n width: 10px;\n flex-shrink: 0;\n }\n .json-summary {\n color: var(--prism-text-muted);\n }\n .json-children {\n display: block;\n padding-left: 16px;\n border-left: 1px solid var(--prism-border);\n margin: 2px 0;\n }\n .json-row {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0;\n padding: 1px 0;\n }\n .json-key {\n color: var(--prism-text-muted);\n }\n .json-index {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n .json-colon {\n color: var(--prism-text-muted);\n }\n .json-brace {\n color: var(--prism-text-muted);\n }\n .json-string {\n color: #7dd3fc;\n }\n .json-number {\n color: #fb923c;\n }\n .json-boolean {\n color: #c084fc;\n }\n .json-null,\n .json-undefined {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n "] }]
348
+ `, styles: ["\n :host {\n display: inline;\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n }\n .json-expandable {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: baseline;\n gap: 2px;\n }\n .json-expandable:hover .json-summary {\n opacity: 0.8;\n }\n .json-chevron {\n color: var(--prism-text-muted);\n font-size: 10px;\n width: 10px;\n flex-shrink: 0;\n }\n .json-summary {\n color: var(--prism-text-muted);\n }\n .json-children {\n display: block;\n padding-left: 16px;\n border-left: 1px solid var(--prism-border);\n margin: 2px 0;\n }\n .json-row {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0;\n padding: 1px 0;\n }\n .json-key {\n color: var(--prism-text-muted);\n }\n .json-index {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n .json-colon {\n color: var(--prism-text-muted);\n }\n .json-brace {\n color: var(--prism-text-muted);\n }\n .json-string {\n color: var(--prism-code-attr);\n }\n .json-number {\n color: var(--prism-warn);\n }\n .json-boolean {\n color: var(--prism-primary);\n }\n .json-null,\n .json-undefined {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n "] }]
349
349
  }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], depth: [{ type: i0.Input, args: [{ isSignal: true, alias: "depth", required: false }] }] }); })();
350
350
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismJsonNodeComponent, { className: "PrismJsonNodeComponent", filePath: "app/panels/events/prism-json-node.component.ts", lineNumber: 173 }); })();
@@ -220,7 +220,7 @@ export class PrismRendererComponent {
220
220
  i0.ɵɵstyleProp("--zoom", ctx.canvasService.zoom());
221
221
  i0.ɵɵadvance(3);
222
222
  i0.ɵɵconditional(ctx.activeOverlay() ? 9 : -1);
223
- } }, dependencies: [PrismCanvasRulersComponent, NgComponentOutlet], styles: ["[_nghost-%COMP%] { display: block; min-height: 0; flex: 1; }\n\n .prism-canvas-stage[_ngcontent-%COMP%] {\n position: relative;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px;\n min-height: 200px;\n height: 100%;\n background-color: var(--prism-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n transition: filter var(--dur-base);\n }\n\n .prism-canvas-stage[data-bg=\"plain\"][_ngcontent-%COMP%] {\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"light\"][_ngcontent-%COMP%] {\n background-color: #f7f5fc;\n background-image: radial-gradient(circle, rgba(124, 58, 237, 0.15) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"dark\"][_ngcontent-%COMP%] {\n background-color: #07050f;\n background-image: radial-gradient(circle, rgba(167, 139, 250, 0.18) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"checker\"][_ngcontent-%COMP%] {\n background-image:\n linear-gradient(45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n\n .stage-crosshair[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--dur-base);\n }\n .stage-crosshair.visible[_ngcontent-%COMP%] { opacity: 1; }\n .stage-crosshair[_ngcontent-%COMP%]::before, \n .stage-crosshair[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n .stage-crosshair[_ngcontent-%COMP%]::before { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair[_ngcontent-%COMP%]::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges[_ngcontent-%COMP%] {\n position: absolute;\n top: 12px;\n left: 20px;\n display: flex;\n gap: 6px;\n pointer-events: none;\n }\n .c-badge[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap[_ngcontent-%COMP%] {\n position: relative;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n }"], changeDetection: 0 });
223
+ } }, dependencies: [PrismCanvasRulersComponent, NgComponentOutlet], styles: ["[_nghost-%COMP%] { display: block; min-height: 0; flex: 1; }\n\n .prism-canvas-stage[_ngcontent-%COMP%] {\n position: relative;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px;\n min-height: 200px;\n height: 100%;\n background-color: var(--prism-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n transition: filter var(--dur-base);\n }\n\n .prism-canvas-stage[data-bg=\"plain\"][_ngcontent-%COMP%] {\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"light\"][_ngcontent-%COMP%] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary-from) 15%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"dark\"][_ngcontent-%COMP%] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary) 18%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"checker\"][_ngcontent-%COMP%] {\n background-image:\n linear-gradient(45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n\n .stage-crosshair[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--dur-base);\n }\n .stage-crosshair.visible[_ngcontent-%COMP%] { opacity: 1; }\n .stage-crosshair[_ngcontent-%COMP%]::before, \n .stage-crosshair[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n .stage-crosshair[_ngcontent-%COMP%]::before { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair[_ngcontent-%COMP%]::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges[_ngcontent-%COMP%] {\n position: absolute;\n top: 12px;\n left: 20px;\n display: flex;\n gap: 6px;\n pointer-events: none;\n }\n .c-badge[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap[_ngcontent-%COMP%] {\n position: relative;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n }"], changeDetection: 0 });
224
224
  }
225
225
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismRendererComponent, [{
226
226
  type: Component,
@@ -250,7 +250,7 @@ export class PrismRendererComponent {
250
250
  }
251
251
  </div>
252
252
  </div>
253
- `, styles: ["\n :host { display: block; min-height: 0; flex: 1; }\n\n .prism-canvas-stage {\n position: relative;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px;\n min-height: 200px;\n height: 100%;\n background-color: var(--prism-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n transition: filter var(--dur-base);\n }\n\n .prism-canvas-stage[data-bg=\"plain\"] {\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"light\"] {\n background-color: #f7f5fc;\n background-image: radial-gradient(circle, rgba(124, 58, 237, 0.15) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"dark\"] {\n background-color: #07050f;\n background-image: radial-gradient(circle, rgba(167, 139, 250, 0.18) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"checker\"] {\n background-image:\n linear-gradient(45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n\n .stage-crosshair {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--dur-base);\n }\n .stage-crosshair.visible { opacity: 1; }\n .stage-crosshair::before,\n .stage-crosshair::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n .stage-crosshair::before { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges {\n position: absolute;\n top: 12px;\n left: 20px;\n display: flex;\n gap: 6px;\n pointer-events: none;\n }\n .c-badge {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap {\n position: relative;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n }\n\n "] }]
253
+ `, styles: ["\n :host { display: block; min-height: 0; flex: 1; }\n\n .prism-canvas-stage {\n position: relative;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px;\n min-height: 200px;\n height: 100%;\n background-color: var(--prism-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n transition: filter var(--dur-base);\n }\n\n .prism-canvas-stage[data-bg=\"plain\"] {\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"light\"] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary-from) 15%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"dark\"] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: radial-gradient(circle, color-mix(in srgb, var(--prism-primary) 18%, transparent) 1px, transparent 1px);\n }\n .prism-canvas-stage[data-bg=\"checker\"] {\n background-image:\n linear-gradient(45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n\n .stage-crosshair {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--dur-base);\n }\n .stage-crosshair.visible { opacity: 1; }\n .stage-crosshair::before,\n .stage-crosshair::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n .stage-crosshair::before { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges {\n position: absolute;\n top: 12px;\n left: 20px;\n display: flex;\n gap: 6px;\n pointer-events: none;\n }\n .c-badge {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap {\n position: relative;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n }\n\n "] }]
254
254
  }], () => [], { outlet: [{ type: i0.ViewChild, args: ['outlet', { ...{
255
255
  read: ViewContainerRef,
256
256
  }, isSignal: true }] }] }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"prism-default-theme.d.ts","sourceRoot":"","sources":["../../../src/app/theme/prism-default-theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiCnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiCpD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyBpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBAAmB,CAAC"}
1
+ {"version":3,"file":"prism-default-theme.d.ts","sourceRoot":"","sources":["../../../src/app/theme/prism-default-theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiCnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiCpD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6BpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBAAmB,CAAC"}
@@ -69,6 +69,9 @@ export const PRISM_BASE_TOKENS = {
69
69
  '--dur-fast': '0.12s',
70
70
  '--dur-base': '0.2s',
71
71
  '--dur-slow': '0.3s',
72
+ '--prism-void-light': '#f7f5fc',
73
+ '--prism-void-dark': '#07050f',
74
+ '--prism-text-light': '#ede9f8',
72
75
  '--prism-header-height': '52px',
73
76
  '--prism-font-sans': 'var(--font-sans)',
74
77
  '--prism-font-mono': 'var(--font-mono)',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ng-prism/core",
3
- "version": "21.5.3",
3
+ "version": "21.5.4",
4
4
  "description": "Lightweight Angular-native component showcase — no story files needed.",
5
5
  "keywords": [
6
6
  "angular",