@ng-prism/core 21.12.0-beta.2 → 23.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/README.md +10 -13
  2. package/dist/app/canvas/prism-canvas-bg-pill.component.js +1 -1
  3. package/dist/app/canvas/prism-canvas-rulers.component.js +5 -3
  4. package/dist/app/canvas/prism-canvas-toolbar.component.js +1 -1
  5. package/dist/app/canvas/prism-template-popover.component.js +7 -4
  6. package/dist/app/component-head/prism-component-head.component.js +20 -11
  7. package/dist/app/component-head/prism-stat.component.js +9 -5
  8. package/dist/app/component-header/prism-component-header.component.js +1 -1
  9. package/dist/app/controls/boolean-control.component.js +7 -4
  10. package/dist/app/controls/json-control.component.js +19 -10
  11. package/dist/app/controls/number-control.component.js +7 -4
  12. package/dist/app/controls/string-control.component.js +7 -4
  13. package/dist/app/controls/union-control.component.js +9 -5
  14. package/dist/app/directives/prism-resizer.directive.js +8 -4
  15. package/dist/app/header/prism-header-widget-host.component.js +5 -3
  16. package/dist/app/header/prism-header.component.d.ts.map +1 -1
  17. package/dist/app/header/prism-header.component.js +15 -10
  18. package/dist/app/icons/prism-icon.component.js +5 -3
  19. package/dist/app/layout-menu/prism-layout-menu.component.js +2 -1
  20. package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
  21. package/dist/app/page-renderer/prism-page-renderer.component.js +13 -16
  22. package/dist/app/panels/a11y/a11y-audit.service.js +8 -4
  23. package/dist/app/panels/a11y/a11y-header-badge.component.js +3 -2
  24. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +3 -2
  25. package/dist/app/panels/a11y/a11y-keyboard.component.js +3 -2
  26. package/dist/app/panels/a11y/a11y-overlay-host.component.js +11 -6
  27. package/dist/app/panels/a11y/a11y-panel-state.service.js +2 -1
  28. package/dist/app/panels/a11y/a11y-panel.component.js +7 -4
  29. package/dist/app/panels/a11y/a11y-perspective.service.js +2 -1
  30. package/dist/app/panels/a11y/a11y-score.component.js +7 -4
  31. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +5 -3
  32. package/dist/app/panels/a11y/a11y-sr.component.js +3 -2
  33. package/dist/app/panels/a11y/a11y-tree.component.js +14 -8
  34. package/dist/app/panels/a11y/a11y-violations.component.d.ts +1 -1
  35. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
  36. package/dist/app/panels/a11y/a11y-violations.component.js +9 -11
  37. package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
  38. package/dist/app/panels/controls/prism-controls-panel.component.js +3 -2
  39. package/dist/app/panels/events/prism-events-panel.component.js +3 -2
  40. package/dist/app/panels/events/prism-json-node.component.js +14 -7
  41. package/dist/app/panels/panel-host/prism-panel-host.component.js +15 -8
  42. package/dist/app/provide-prism.d.ts.map +1 -1
  43. package/dist/app/provide-prism.js +12 -3
  44. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  45. package/dist/app/renderer/prism-renderer.component.js +9 -6
  46. package/dist/app/services/prism-canvas.service.js +8 -4
  47. package/dist/app/services/prism-event-log.service.js +2 -1
  48. package/dist/app/services/prism-layout.service.js +16 -8
  49. package/dist/app/services/prism-manifest.service.js +10 -5
  50. package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
  51. package/dist/app/services/prism-navigation.service.js +27 -19
  52. package/dist/app/services/prism-panel.service.js +6 -3
  53. package/dist/app/services/prism-plugin.service.js +14 -7
  54. package/dist/app/services/prism-renderer.service.js +10 -5
  55. package/dist/app/services/prism-search.service.js +6 -3
  56. package/dist/app/services/prism-theme.service.js +4 -2
  57. package/dist/app/services/prism-variant-bg.service.js +8 -4
  58. package/dist/app/shell/prism-shell.component.js +7 -4
  59. package/dist/app/sidebar/prism-sidebar.component.js +15 -8
  60. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +7 -4
  61. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +8 -4
  62. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +2 -1
  63. package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
  64. package/dist/builder/a11y/a11y-report-reader.js +20 -4
  65. package/dist/builder/build/index.d.ts.map +1 -1
  66. package/dist/builder/build/index.js +11 -4
  67. package/dist/builder/build/schema.d.ts +1 -0
  68. package/dist/builder/build/schema.d.ts.map +1 -1
  69. package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
  70. package/dist/builder/manifest/runtime-manifest.generator.js +11 -3
  71. package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
  72. package/dist/builder/serve/index.d.ts.map +1 -1
  73. package/dist/builder/serve/index.js +21 -6
  74. package/dist/builder/serve/schema.d.ts +1 -0
  75. package/dist/builder/serve/schema.d.ts.map +1 -1
  76. package/dist/builder/shared/prism-pipeline.d.ts +2 -0
  77. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  78. package/dist/builder/shared/prism-pipeline.js +3 -5
  79. package/dist/builder/shared/resolve-cache-dir.d.ts +8 -0
  80. package/dist/builder/shared/resolve-cache-dir.d.ts.map +1 -0
  81. package/dist/builder/shared/resolve-cache-dir.js +12 -0
  82. package/dist/decorator/index.d.ts +1 -1
  83. package/dist/decorator/index.d.ts.map +1 -1
  84. package/dist/decorator/showcase.decorator.d.ts.map +1 -1
  85. package/dist/decorator/showcase.types.d.ts.map +1 -1
  86. package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts +3 -0
  87. package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts.map +1 -0
  88. package/dist/schematics/migrations/v21-13-manifest-cache/index.js +103 -0
  89. package/dist/schematics/ng-add/index.d.ts.map +1 -1
  90. package/dist/schematics/ng-add/index.js +56 -39
  91. package/dist/schematics/utils/config-ast.d.ts +17 -0
  92. package/dist/schematics/utils/config-ast.d.ts.map +1 -0
  93. package/dist/schematics/utils/config-ast.js +118 -0
  94. package/dist/schematics/utils/index.d.ts +3 -0
  95. package/dist/schematics/utils/index.d.ts.map +1 -0
  96. package/dist/schematics/utils/index.js +2 -0
  97. package/dist/schematics/utils/tsconfig-paths.d.ts +8 -0
  98. package/dist/schematics/utils/tsconfig-paths.d.ts.map +1 -0
  99. package/dist/schematics/utils/tsconfig-paths.js +20 -0
  100. package/package.json +17 -6
  101. package/schematics/migrations.json +10 -0
  102. package/src/builder/build/schema.json +4 -0
  103. package/src/builder/serve/schema.json +4 -0
@@ -94,20 +94,16 @@ function A11yViolationsComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
94
94
  i0.ɵɵrepeaterCreate(12, A11yViolationsComponent_Conditional_1_For_13_Template, 9, 6, "div", 10, _forTrack0, false, A11yViolationsComponent_Conditional_1_ForEmpty_14_Template, 1, 1);
95
95
  i0.ɵɵelementEnd()();
96
96
  } if (rf & 2) {
97
- let tmp_2_0;
98
- let tmp_3_0;
99
- let tmp_4_0;
100
- let tmp_5_0;
101
97
  const ctx_r0 = i0.ɵɵnextContext();
102
98
  i0.ɵɵclassProp("a11y-body--loading", ctx_r0.auditService.running());
103
99
  i0.ɵɵadvance(2);
104
- i0.ɵɵproperty("score", ((tmp_2_0 = ctx_r0.scoreResult()) == null ? null : tmp_2_0.score) ?? 0);
100
+ i0.ɵɵproperty("score", ctx_r0.scoreResult()?.score ?? 0);
105
101
  i0.ɵɵadvance(4);
106
- i0.ɵɵconditional(((tmp_3_0 = ctx_r0.scoreResult()) == null ? null : tmp_3_0.critical) ? 6 : -1);
102
+ i0.ɵɵconditional(ctx_r0.scoreResult()?.critical ? 6 : -1);
107
103
  i0.ɵɵadvance();
108
- i0.ɵɵconditional(((tmp_4_0 = ctx_r0.scoreResult()) == null ? null : tmp_4_0.moderate) ? 7 : -1);
104
+ i0.ɵɵconditional(ctx_r0.scoreResult()?.moderate ? 7 : -1);
109
105
  i0.ɵɵadvance(3);
110
- i0.ɵɵtextInterpolate1("", ((tmp_5_0 = ctx_r0.scoreResult()) == null ? null : tmp_5_0.passes) ?? 0, " pass");
106
+ i0.ɵɵtextInterpolate1("", ctx_r0.scoreResult()?.passes ?? 0, " pass");
111
107
  i0.ɵɵadvance(2);
112
108
  i0.ɵɵrepeater(ctx_r0.allResults());
113
109
  } }
@@ -133,7 +129,8 @@ function sevColor(impact) {
133
129
  }
134
130
  export class A11yViolationsComponent {
135
131
  auditService = inject(A11yAuditService);
136
- scoreResult = computed(() => this.auditService.scoreResult(), ...(ngDevMode ? [{ debugName: "scoreResult" }] : []));
132
+ scoreResult = computed(() => this.auditService.scoreResult(), /* @ts-ignore */
133
+ ...(ngDevMode ? [{ debugName: "scoreResult" }] : /* istanbul ignore next */ []));
137
134
  allResults = computed(() => {
138
135
  const results = this.auditService.results();
139
136
  if (!results)
@@ -142,7 +139,8 @@ export class A11yViolationsComponent {
142
139
  (IMPACT_ORDER[b.impact ?? ''] ?? 4));
143
140
  const passes = results.passes.slice(0, 4);
144
141
  return [...violations, ...passes];
145
- }, ...(ngDevMode ? [{ debugName: "allResults" }] : []));
142
+ }, /* @ts-ignore */
143
+ ...(ngDevMode ? [{ debugName: "allResults" }] : /* istanbul ignore next */ []));
146
144
  sevColor(impact) {
147
145
  return sevColor(impact);
148
146
  }
@@ -151,7 +149,7 @@ export class A11yViolationsComponent {
151
149
  i0.ɵɵconditionalCreate(0, A11yViolationsComponent_Conditional_0_Template, 2, 1, "div", 0)(1, A11yViolationsComponent_Conditional_1_Template, 15, 7, "div", 1)(2, A11yViolationsComponent_Conditional_2_Template, 2, 0, "div", 2);
152
150
  } if (rf & 2) {
153
151
  i0.ɵɵconditional(ctx.auditService.error() ? 0 : ctx.auditService.results() || ctx.auditService.running() ? 1 : 2);
154
- } }, dependencies: [A11yScoreComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; overflow: auto; }\n\n .a11y-body[_ngcontent-%COMP%] {\n padding: 18px 20px;\n display: grid;\n grid-template-columns: 220px 1fr;\n gap: 20px;\n min-height: 0;\n }\n .a11y-body--loading[_ngcontent-%COMP%] { opacity: 0.55; transition: opacity var(--dur-base); }\n\n .score-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 10px;\n align-self: start;\n }\n\n .score-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }\n .score-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 2px;\n font-size: 11px;\n color: var(--prism-text-muted);\n }\n .score-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n .score-meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { width: 6px; height: 6px; border-radius: 50%; display: block; }\n\n .viol-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 0;\n }\n\n .viol[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n border-left: 3px solid var(--sev-color, var(--prism-primary));\n transition: border-color var(--dur-fast);\n }\n .viol[_ngcontent-%COMP%]:hover { border-color: var(--prism-border-strong); }\n\n .viol-sev[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 9.5px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: var(--radius-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: color-mix(in srgb, var(--sev-color) 15%, transparent);\n color: var(--sev-color);\n }\n\n .viol-text[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--prism-text);\n min-width: 0;\n }\n .viol-text[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n display: block;\n font-weight: 600;\n margin-bottom: 1px;\n }\n .viol-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11.5px;\n }\n\n .viol-rule[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-text-ghost);\n padding: 2px 7px;\n background: var(--prism-input-bg);\n border-radius: var(--radius-xs);\n white-space: nowrap;\n }\n\n .a11y-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n color: var(--prism-text-muted);\n font-size: 13px;\n }\n .a11y-status--error[_ngcontent-%COMP%] { color: var(--prism-danger); }\n\n @media (max-width: 1100px) {\n .a11y-body[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"], changeDetection: 0 });
152
+ } }, dependencies: [A11yScoreComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; overflow: auto; }\n\n .a11y-body[_ngcontent-%COMP%] {\n padding: 18px 20px;\n display: grid;\n grid-template-columns: 220px 1fr;\n gap: 20px;\n min-height: 0;\n }\n .a11y-body--loading[_ngcontent-%COMP%] { opacity: 0.55; transition: opacity var(--dur-base); }\n\n .score-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 10px;\n align-self: start;\n }\n\n .score-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }\n .score-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 2px;\n font-size: 11px;\n color: var(--prism-text-muted);\n }\n .score-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n .score-meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { width: 6px; height: 6px; border-radius: 50%; display: block; }\n\n .viol-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 0;\n }\n\n .viol[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n border-left: 3px solid var(--sev-color, var(--prism-primary));\n transition: border-color var(--dur-fast);\n }\n .viol[_ngcontent-%COMP%]:hover { border-color: var(--prism-border-strong); }\n\n .viol-sev[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 9.5px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: var(--radius-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: color-mix(in srgb, var(--sev-color) 15%, transparent);\n color: var(--sev-color);\n }\n\n .viol-text[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--prism-text);\n min-width: 0;\n }\n .viol-text[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n display: block;\n font-weight: 600;\n margin-bottom: 1px;\n }\n .viol-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11.5px;\n }\n\n .viol-rule[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-text-ghost);\n padding: 2px 7px;\n background: var(--prism-input-bg);\n border-radius: var(--radius-xs);\n white-space: nowrap;\n }\n\n .a11y-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n color: var(--prism-text-muted);\n font-size: 13px;\n }\n .a11y-status--error[_ngcontent-%COMP%] { color: var(--prism-danger); }\n\n @media (max-width: 1100px) {\n .a11y-body[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"] });
155
153
  }
156
154
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yViolationsComponent, [{
157
155
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"a11y.types.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,KAAK,EAAE,eAAe,GAAG;QAAE,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"a11y.types.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,uFAAuF;IACvF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,mEAAmE;IACnE,KAAK,EAAE,eAAe,GAAG;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC3B,UAAU,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACrC,iGAAiG;IACjG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC;IACzC,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB"}
@@ -144,7 +144,8 @@ export class PrismControlsPanelComponent {
144
144
  navigationService = inject(PrismNavigationService);
145
145
  rendererService = inject(PrismRendererService);
146
146
  pluginService = inject(PrismPluginService);
147
- activeComponent = input(null, ...(ngDevMode ? [{ debugName: "activeComponent" }] : []));
147
+ activeComponent = input(null, /* @ts-ignore */
148
+ ...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
148
149
  getCustomControl(input) {
149
150
  return (this.pluginService.controls().find((ctrl) => ctrl.matchType(input)) ??
150
151
  null);
@@ -169,7 +170,7 @@ export class PrismControlsPanelComponent {
169
170
  StringControlComponent,
170
171
  NumberControlComponent,
171
172
  UnionControlComponent,
172
- JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-toolbar[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: var(--prism-bg-elevated);\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-dirty-info[_ngcontent-%COMP%] {\n font-size: 11.5px;\n font-family: var(--font-mono);\n color: var(--prism-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .ctl-dirty-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--prism-primary);\n box-shadow: 0 0 6px color-mix(in srgb, var(--prism-primary) 60%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 10px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 500;\n font-family: var(--font-sans);\n color: var(--prism-text-muted);\n background: transparent;\n border: 1px solid var(--prism-border);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:hover {\n color: var(--prism-text);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, var(--prism-border));\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n }\n\n .ctl-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-row[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ctl-label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n font-weight: 500;\n }\n .ctl-type[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-ghost);\n }\n .ctl-type[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n\n .ctl-input[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }"], changeDetection: 0 });
173
+ JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-toolbar[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: var(--prism-bg-elevated);\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-dirty-info[_ngcontent-%COMP%] {\n font-size: 11.5px;\n font-family: var(--font-mono);\n color: var(--prism-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .ctl-dirty-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--prism-primary);\n box-shadow: 0 0 6px color-mix(in srgb, var(--prism-primary) 60%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 10px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 500;\n font-family: var(--font-sans);\n color: var(--prism-text-muted);\n background: transparent;\n border: 1px solid var(--prism-border);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:hover {\n color: var(--prism-text);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, var(--prism-border));\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n }\n\n .ctl-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-row[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ctl-label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n font-weight: 500;\n }\n .ctl-type[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-ghost);\n }\n .ctl-type[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n\n .ctl-input[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }"] });
173
174
  }
174
175
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismControlsPanelComponent, [{
175
176
  type: Component,
@@ -36,7 +36,8 @@ function PrismEventsPanelComponent_ForEmpty_4_Template(rf, ctx) { if (rf & 1) {
36
36
  } }
37
37
  export class PrismEventsPanelComponent {
38
38
  eventLogService = inject(PrismEventLogService);
39
- activeComponent = input(null, ...(ngDevMode ? [{ debugName: "activeComponent" }] : []));
39
+ activeComponent = input(null, /* @ts-ignore */
40
+ ...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
40
41
  formatTime(ts) {
41
42
  const d = new Date(ts);
42
43
  return d.toLocaleTimeString('en-US', {
@@ -55,7 +56,7 @@ export class PrismEventsPanelComponent {
55
56
  } if (rf & 2) {
56
57
  i0.ɵɵadvance(2);
57
58
  i0.ɵɵrepeater(ctx.eventLogService.events());
58
- } }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body[_ngcontent-%COMP%] {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n min-height: 32px;\n }\n .ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ev-time[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11px;\n }\n .ev-name[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n .ev-args[_ngcontent-%COMP%] {\n color: var(--prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }"], changeDetection: 0 });
59
+ } }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body[_ngcontent-%COMP%] {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n min-height: 32px;\n }\n .ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ev-time[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11px;\n }\n .ev-name[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n .ev-args[_ngcontent-%COMP%] {\n color: var(--prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }"] });
59
60
  }
60
61
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismEventsPanelComponent, [{
61
62
  type: Component,
@@ -226,12 +226,16 @@ function getType(val) {
226
226
  return typeof val;
227
227
  }
228
228
  export class PrismJsonNodeComponent {
229
- value = input(undefined, ...(ngDevMode ? [{ debugName: "value" }] : []));
230
- depth = input(0, ...(ngDevMode ? [{ debugName: "depth" }] : []));
229
+ value = input(undefined, /* @ts-ignore */
230
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
231
+ depth = input(0, /* @ts-ignore */
232
+ ...(ngDevMode ? [{ debugName: "depth" }] : /* istanbul ignore next */ []));
231
233
  maxDepth = MAX_DEPTH;
232
234
  self = PrismJsonNodeComponent;
233
- type = computed(() => getType(this.value()), ...(ngDevMode ? [{ debugName: "type" }] : []));
234
- expanded = signal(false, ...(ngDevMode ? [{ debugName: "expanded" }] : []));
235
+ type = computed(() => getType(this.value()), /* @ts-ignore */
236
+ ...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
237
+ expanded = signal(false, /* @ts-ignore */
238
+ ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
235
239
  entries = computed(() => {
236
240
  const v = this.value();
237
241
  if (typeof v !== 'object' || v === null || Array.isArray(v))
@@ -244,12 +248,15 @@ export class PrismJsonNodeComponent {
244
248
  catch {
245
249
  return [];
246
250
  }
247
- }, ...(ngDevMode ? [{ debugName: "entries" }] : []));
251
+ }, /* @ts-ignore */
252
+ ...(ngDevMode ? [{ debugName: "entries" }] : /* istanbul ignore next */ []));
248
253
  items = computed(() => {
249
254
  const v = this.value();
250
255
  return Array.isArray(v) ? v : [];
251
- }, ...(ngDevMode ? [{ debugName: "items" }] : []));
252
- summary = computed(() => summarizeValue(this.value()), ...(ngDevMode ? [{ debugName: "summary" }] : []));
256
+ }, /* @ts-ignore */
257
+ ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
258
+ summary = computed(() => summarizeValue(this.value()), /* @ts-ignore */
259
+ ...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
253
260
  toggle() {
254
261
  this.expanded.update((v) => !v);
255
262
  }
@@ -67,18 +67,21 @@ export class PrismPanelHostComponent {
67
67
  envInjector = inject(EnvironmentInjector);
68
68
  auditService = inject(A11yAuditService);
69
69
  rendererService = inject(PrismRendererService);
70
- a11yScore = computed(() => this.auditService.scoreResult()?.score ?? null, ...(ngDevMode ? [{ debugName: "a11yScore" }] : []));
70
+ a11yScore = computed(() => this.auditService.scoreResult()?.score ?? null, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "a11yScore" }] : /* istanbul ignore next */ []));
71
72
  coverageScore = computed(() => {
72
73
  const comp = this.nav.activeComponent();
73
74
  const coverage = comp?.meta?.showcaseConfig?.meta?.['coverage'];
74
75
  if (!coverage?.found)
75
76
  return null;
76
77
  return coverage.score;
77
- }, ...(ngDevMode ? [{ debugName: "coverageScore" }] : []));
78
+ }, /* @ts-ignore */
79
+ ...(ngDevMode ? [{ debugName: "coverageScore" }] : /* istanbul ignore next */ []));
78
80
  inputCount = computed(() => {
79
81
  const comp = this.nav.activeComponent();
80
82
  return comp?.meta.inputs.length ?? 0;
81
- }, ...(ngDevMode ? [{ debugName: "inputCount" }] : []));
83
+ }, /* @ts-ignore */
84
+ ...(ngDevMode ? [{ debugName: "inputCount" }] : /* istanbul ignore next */ []));
82
85
  panelBadge(panelId) {
83
86
  if (panelId === 'controls') {
84
87
  const count = this.inputCount();
@@ -114,13 +117,17 @@ export class PrismPanelHostComponent {
114
117
  if (!comp)
115
118
  return panels;
116
119
  return panels.filter((p) => !p.isVisible || p.isVisible(comp));
117
- }, ...(ngDevMode ? [{ debugName: "allPanels" }] : []));
120
+ }, /* @ts-ignore */
121
+ ...(ngDevMode ? [{ debugName: "allPanels" }] : /* istanbul ignore next */ []));
118
122
  panelInputs = computed(() => ({
119
123
  activeComponent: this.nav.activeComponent(),
120
- }), ...(ngDevMode ? [{ debugName: "panelInputs" }] : []));
124
+ }), /* @ts-ignore */
125
+ ...(ngDevMode ? [{ debugName: "panelInputs" }] : /* istanbul ignore next */ []));
121
126
  lazyCache = new Map();
122
- renderedPanels = signal(new Map(), ...(ngDevMode ? [{ debugName: "renderedPanels" }] : []));
123
- renderedPanelsArray = computed(() => Array.from(this.renderedPanels().values()), ...(ngDevMode ? [{ debugName: "renderedPanelsArray" }] : []));
127
+ renderedPanels = signal(new Map(), /* @ts-ignore */
128
+ ...(ngDevMode ? [{ debugName: "renderedPanels" }] : /* istanbul ignore next */ []));
129
+ renderedPanelsArray = computed(() => Array.from(this.renderedPanels().values()), /* @ts-ignore */
130
+ ...(ngDevMode ? [{ debugName: "renderedPanelsArray" }] : /* istanbul ignore next */ []));
124
131
  constructor() {
125
132
  effect(() => {
126
133
  const element = this.rendererService.renderedElement();
@@ -214,7 +221,7 @@ export class PrismPanelHostComponent {
214
221
  i0.ɵɵproperty("id", "panel-" + ctx.panelService.activePanelId());
215
222
  i0.ɵɵadvance();
216
223
  i0.ɵɵrepeater(ctx.renderedPanelsArray());
217
- } }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs[_ngcontent-%COMP%]::-webkit-scrollbar { display: none; }\n\n .p-tab[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n .p-tab[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .p-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .p-tab--active[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge[_ngcontent-%COMP%] {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.ok[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-success) 18%, transparent);\n color: var(--prism-success);\n }\n .p-tab-badge.warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--prism-danger);\n }\n\n .panel-tabs-right[_ngcontent-%COMP%] {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--radius-sm);\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--dur-fast);\n }\n .icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n\n .panel-pane[_ngcontent-%COMP%] { height: 100%; }\n .panel-pane[hidden][_ngcontent-%COMP%] { display: none; }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"], changeDetection: 0 });
224
+ } }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs[_ngcontent-%COMP%]::-webkit-scrollbar { display: none; }\n\n .p-tab[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n .p-tab[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .p-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .p-tab--active[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge[_ngcontent-%COMP%] {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.ok[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-success) 18%, transparent);\n color: var(--prism-success);\n }\n .p-tab-badge.warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--prism-danger);\n }\n\n .panel-tabs-right[_ngcontent-%COMP%] {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--radius-sm);\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--dur-fast);\n }\n .icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n\n .panel-pane[_ngcontent-%COMP%] { height: 100%; }\n .panel-pane[hidden][_ngcontent-%COMP%] { display: none; }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"] });
218
225
  }
219
226
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismPanelHostComponent, [{
220
227
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"provide-prism.d.ts","sourceRoot":"","sources":["../../src/app/provide-prism.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAEpF,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAStE,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACzC;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,oBAAoB,CA8BtB"}
1
+ {"version":3,"file":"provide-prism.d.ts","sourceRoot":"","sources":["../../src/app/provide-prism.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAStE,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACzC;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,oBAAoB,CAuCtB"}
@@ -1,11 +1,17 @@
1
- import { makeEnvironmentProviders } from '@angular/core';
1
+ import { makeEnvironmentProviders, } from '@angular/core';
2
2
  import { provideHighlightOptions } from 'ngx-highlightjs';
3
3
  import { componentPage } from '../plugin/page-helpers.js';
4
4
  import { BUILTIN_PANELS } from './panels/builtin-panels.js';
5
5
  import { PRISM_BUILTIN_PANELS, PRISM_CONFIG, PRISM_MANIFEST, } from './tokens/prism-tokens.js';
6
6
  export function providePrism(manifest, config, options) {
7
7
  const mergedManifest = options?.componentPages?.length
8
- ? { ...manifest, pages: [...(manifest.pages ?? []), ...options.componentPages.map(o => componentPage(o))] }
8
+ ? {
9
+ ...manifest,
10
+ pages: [
11
+ ...(manifest.pages ?? []),
12
+ ...options.componentPages.map((o) => componentPage(o)),
13
+ ],
14
+ }
9
15
  : manifest;
10
16
  // Exposes a thin discovery view of the manifest to external audit tooling.
11
17
  // We intentionally only expose className + variant info — no Angular type references.
@@ -13,7 +19,10 @@ export function providePrism(manifest, config, options) {
13
19
  globalThis['__PRISM_MANIFEST__'] = {
14
20
  components: mergedManifest.components.map((c) => ({
15
21
  className: c.meta.className,
16
- variants: c.meta.showcaseConfig.variants?.map((v, i) => ({ name: v.name, index: i })) ?? [{ name: 'Default', index: 0 }],
22
+ variants: c.meta.showcaseConfig.variants?.map((v, i) => ({
23
+ name: v.name,
24
+ index: i,
25
+ })) ?? [{ name: 'Default', index: 0 }],
17
26
  })),
18
27
  pages: (mergedManifest.pages ?? []).map((p) => ({ title: p.title })),
19
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prism-renderer.component.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/prism-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,QAAQ,EAER,KAAK,IAAI,EAIV,MAAM,eAAe,CAAC;AAYvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAIhF,qBA6Ia,sBAAsB;IACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAQ;IAC/B,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,SAAS,CAAC,QAAQ,CAAC,aAAa,qBAA8B;IAC9D,SAAS,CAAC,QAAQ,CAAC,SAAS,wBAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE3B;IAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,oBAAoB,CAChB;IACZ,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,QAAQ,CAAC,aAAa,+DAAsC;IAC5D,wFAAwF;IACxF,SAAS,CAAC,QAAQ,CAAC,WAAW,gDAM3B;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa;;MAA6C;IAC7E,SAAS,CAAC,QAAQ,CAAC,eAAe,yFAG/B;;IA0FH,OAAO,CAAC,eAAe;IA6FvB,OAAO,CAAC,OAAO;yCAhOJ,sBAAsB;2CAAtB,sBAAsB;CA8OlC"}
1
+ {"version":3,"file":"prism-renderer.component.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/prism-renderer.component.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,QAAQ,EAER,KAAK,IAAI,EAIV,MAAM,eAAe,CAAC;AAYvB,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAGjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;;AAIhF,qBAkJa,sBAAsB;IACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAQ;IAC/B,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,SAAS,CAAC,QAAQ,CAAC,aAAa,qBAA8B;IAC9D,SAAS,CAAC,QAAQ,CAAC,SAAS,wBAAiC;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAsB;IACjD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAE3B;IAEH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAE5D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAEpB;IACH,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,mBAAmB,CAAsC;IACjE,OAAO,CAAC,oBAAoB,CAChB;IACZ,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAoC;IACjE,QAAQ,CAAC,aAAa,+DAAsC;IAC5D,wFAAwF;IACxF,SAAS,CAAC,QAAQ,CAAC,WAAW,gDAQ3B;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa;;MAA6C;IAC7E,SAAS,CAAC,QAAQ,CAAC,eAAe,yFAG/B;;IA0FH,OAAO,CAAC,eAAe;IA6FvB,OAAO,CAAC,OAAO;yCAlOJ,sBAAsB;2CAAtB,sBAAsB;CAgPlC"}
@@ -47,7 +47,8 @@ export class PrismRendererComponent {
47
47
  lastProjectedContent = undefined;
48
48
  isRenderPage = false;
49
49
  overlayCache = new Map();
50
- activeOverlay = signal(null, ...(ngDevMode ? [{ debugName: "activeOverlay" }] : []));
50
+ activeOverlay = signal(null, /* @ts-ignore */
51
+ ...(ngDevMode ? [{ debugName: "activeOverlay" }] : /* istanbul ignore next */ []));
51
52
  /** Identifier of the currently rendered component/variant (for audit tooling / e2e). */
52
53
  renderedKey = computed(() => {
53
54
  const el = this.rendererService.renderedElement();
@@ -57,12 +58,14 @@ export class PrismRendererComponent {
57
58
  if (!comp)
58
59
  return null;
59
60
  return `${comp.meta.className}:${this.rendererService.activeVariantIndex()}`;
60
- }, ...(ngDevMode ? [{ debugName: "renderedKey" }] : []));
61
+ }, /* @ts-ignore */
62
+ ...(ngDevMode ? [{ debugName: "renderedKey" }] : /* istanbul ignore next */ []));
61
63
  overlayInputs = { rendererService: this.rendererService };
62
64
  overlayInjector = computed(() => {
63
65
  const panelInjector = this.panelService.activePanelInjector();
64
66
  return panelInjector ?? this.injector;
65
- }, ...(ngDevMode ? [{ debugName: "overlayInjector" }] : []));
67
+ }, /* @ts-ignore */
68
+ ...(ngDevMode ? [{ debugName: "overlayInjector" }] : /* istanbul ignore next */ []));
66
69
  constructor() {
67
70
  effect(() => {
68
71
  const comp = this.navigationService.activeComponent();
@@ -239,7 +242,7 @@ export class PrismRendererComponent {
239
242
  i0.ɵɵconditional(ctx.activeOverlay() ? 10 : -1);
240
243
  } }, dependencies: [PrismCanvasRulersComponent,
241
244
  PrismCanvasBgPillComponent,
242
- 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 --prism-canvas-overlay-top: 12px;\n --prism-canvas-overlay-inline: 20px;\n }\n .prism-canvas-stage[data-rulers][_ngcontent-%COMP%] {\n --prism-canvas-overlay-top: 28px;\n --prism-canvas-overlay-inline: 28px;\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: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\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 display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 600px;\n }"], changeDetection: 0 });
245
+ 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 --prism-canvas-overlay-top: 12px;\n --prism-canvas-overlay-inline: 20px;\n }\n .prism-canvas-stage[data-rulers][_ngcontent-%COMP%] {\n --prism-canvas-overlay-top: 28px;\n --prism-canvas-overlay-inline: 28px;\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: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\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 display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 600px;\n\n > * {\n flex: 1 1 auto;\n text-align: center;\n }\n }"] });
243
246
  }
244
247
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismRendererComponent, [{
245
248
  type: Component,
@@ -282,11 +285,11 @@ export class PrismRendererComponent {
282
285
  }
283
286
  </div>
284
287
  </div>
285
- `, 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 --prism-canvas-overlay-top: 12px;\n --prism-canvas-overlay-inline: 20px;\n }\n .prism-canvas-stage[data-rulers] {\n --prism-canvas-overlay-top: 28px;\n --prism-canvas-overlay-inline: 28px;\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: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\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 display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 600px;\n }\n\n "] }]
288
+ `, 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 --prism-canvas-overlay-top: 12px;\n --prism-canvas-overlay-inline: 20px;\n }\n .prism-canvas-stage[data-rulers] {\n --prism-canvas-overlay-top: 28px;\n --prism-canvas-overlay-inline: 28px;\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: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\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 display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n max-width: 600px;\n\n > * {\n flex: 1 1 auto;\n text-align: center;\n }\n }\n\n "] }]
286
289
  }], () => [], { outlet: [{ type: i0.ViewChild, args: ['outlet', { ...{
287
290
  read: ViewContainerRef,
288
291
  }, isSignal: true }] }] }); })();
289
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismRendererComponent, { className: "PrismRendererComponent", filePath: "app/renderer/prism-renderer.component.ts", lineNumber: 178 }); })();
292
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismRendererComponent, { className: "PrismRendererComponent", filePath: "app/renderer/prism-renderer.component.ts", lineNumber: 183 }); })();
290
293
  function parseContentToNodes(content) {
291
294
  if (typeof content === 'string') {
292
295
  return [htmlToNodes(content)];
@@ -3,10 +3,14 @@ import { CANVAS_BGS } from '../../shared/canvas-bg.type.js';
3
3
  import * as i0 from "@angular/core";
4
4
  const STORAGE_KEY = 'ng-prism-canvas';
5
5
  export class PrismCanvasService {
6
- bg = signal('dots', ...(ngDevMode ? [{ debugName: "bg" }] : []));
7
- zoom = signal(1, ...(ngDevMode ? [{ debugName: "zoom" }] : []));
8
- guides = signal(false, ...(ngDevMode ? [{ debugName: "guides" }] : []));
9
- rulers = signal(false, ...(ngDevMode ? [{ debugName: "rulers" }] : []));
6
+ bg = signal('dots', /* @ts-ignore */
7
+ ...(ngDevMode ? [{ debugName: "bg" }] : /* istanbul ignore next */ []));
8
+ zoom = signal(1, /* @ts-ignore */
9
+ ...(ngDevMode ? [{ debugName: "zoom" }] : /* istanbul ignore next */ []));
10
+ guides = signal(false, /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "guides" }] : /* istanbul ignore next */ []));
12
+ rulers = signal(false, /* @ts-ignore */
13
+ ...(ngDevMode ? [{ debugName: "rulers" }] : /* istanbul ignore next */ []));
10
14
  constructor() {
11
15
  this.loadFromStorage();
12
16
  }
@@ -1,7 +1,8 @@
1
1
  import { Injectable, signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class PrismEventLogService {
4
- events = signal([], ...(ngDevMode ? [{ debugName: "events" }] : []));
4
+ events = signal([], /* @ts-ignore */
5
+ ...(ngDevMode ? [{ debugName: "events" }] : /* istanbul ignore next */ []));
5
6
  _nextId = 0;
6
7
  log(name, value) {
7
8
  this.events.update((prev) => [
@@ -2,14 +2,22 @@ import { Injectable, signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  const STORAGE_KEY = 'ng-prism-layout';
4
4
  export class PrismLayoutService {
5
- sidebarVisible = signal(true, ...(ngDevMode ? [{ debugName: "sidebarVisible" }] : []));
6
- addonsVisible = signal(true, ...(ngDevMode ? [{ debugName: "addonsVisible" }] : []));
7
- toolbarVisible = signal(true, ...(ngDevMode ? [{ debugName: "toolbarVisible" }] : []));
8
- addonsOrientation = signal('bottom', ...(ngDevMode ? [{ debugName: "addonsOrientation" }] : []));
9
- sidebarWidth = signal(280, ...(ngDevMode ? [{ debugName: "sidebarWidth" }] : []));
10
- panelHeight = signal(300, ...(ngDevMode ? [{ debugName: "panelHeight" }] : []));
11
- panelWidth = signal(320, ...(ngDevMode ? [{ debugName: "panelWidth" }] : []));
12
- templatePopoverVisible = signal(false, ...(ngDevMode ? [{ debugName: "templatePopoverVisible" }] : []));
5
+ sidebarVisible = signal(true, /* @ts-ignore */
6
+ ...(ngDevMode ? [{ debugName: "sidebarVisible" }] : /* istanbul ignore next */ []));
7
+ addonsVisible = signal(true, /* @ts-ignore */
8
+ ...(ngDevMode ? [{ debugName: "addonsVisible" }] : /* istanbul ignore next */ []));
9
+ toolbarVisible = signal(true, /* @ts-ignore */
10
+ ...(ngDevMode ? [{ debugName: "toolbarVisible" }] : /* istanbul ignore next */ []));
11
+ addonsOrientation = signal('bottom', /* @ts-ignore */
12
+ ...(ngDevMode ? [{ debugName: "addonsOrientation" }] : /* istanbul ignore next */ []));
13
+ sidebarWidth = signal(280, /* @ts-ignore */
14
+ ...(ngDevMode ? [{ debugName: "sidebarWidth" }] : /* istanbul ignore next */ []));
15
+ panelHeight = signal(300, /* @ts-ignore */
16
+ ...(ngDevMode ? [{ debugName: "panelHeight" }] : /* istanbul ignore next */ []));
17
+ panelWidth = signal(320, /* @ts-ignore */
18
+ ...(ngDevMode ? [{ debugName: "panelWidth" }] : /* istanbul ignore next */ []));
19
+ templatePopoverVisible = signal(false, /* @ts-ignore */
20
+ ...(ngDevMode ? [{ debugName: "templatePopoverVisible" }] : /* istanbul ignore next */ []));
13
21
  constructor() {
14
22
  this.loadFromStorage();
15
23
  }
@@ -2,10 +2,13 @@ import { computed, inject, Injectable, signal } from '@angular/core';
2
2
  import { PRISM_MANIFEST } from '../tokens/prism-tokens.js';
3
3
  import * as i0 from "@angular/core";
4
4
  export class PrismManifestService {
5
- _manifest = signal(inject(PRISM_MANIFEST), ...(ngDevMode ? [{ debugName: "_manifest" }] : []));
5
+ _manifest = signal(inject(PRISM_MANIFEST), /* @ts-ignore */
6
+ ...(ngDevMode ? [{ debugName: "_manifest" }] : /* istanbul ignore next */ []));
6
7
  manifest = this._manifest.asReadonly();
7
- components = computed(() => this._manifest().components, ...(ngDevMode ? [{ debugName: "components" }] : []));
8
- pages = computed(() => this._manifest().pages ?? [], ...(ngDevMode ? [{ debugName: "pages" }] : []));
8
+ components = computed(() => this._manifest().components, /* @ts-ignore */
9
+ ...(ngDevMode ? [{ debugName: "components" }] : /* istanbul ignore next */ []));
10
+ pages = computed(() => this._manifest().pages ?? [], /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "pages" }] : /* istanbul ignore next */ []));
9
12
  categories = computed(() => {
10
13
  const manifest = this._manifest();
11
14
  const orderMap = new Map();
@@ -29,7 +32,8 @@ export class PrismManifestService {
29
32
  return orderA - orderB;
30
33
  return a.localeCompare(b);
31
34
  });
32
- }, ...(ngDevMode ? [{ debugName: "categories" }] : []));
35
+ }, /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "categories" }] : /* istanbul ignore next */ []));
33
37
  groupedByCategory = computed(() => {
34
38
  const manifest = this._manifest();
35
39
  const map = new Map();
@@ -40,7 +44,8 @@ export class PrismManifestService {
40
44
  map.set(cat, list);
41
45
  }
42
46
  return map;
43
- }, ...(ngDevMode ? [{ debugName: "groupedByCategory" }] : []));
47
+ }, /* @ts-ignore */
48
+ ...(ngDevMode ? [{ debugName: "groupedByCategory" }] : /* istanbul ignore next */ []));
44
49
  updateManifest(manifest) {
45
50
  this._manifest.set(manifest);
46
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prism-navigation.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAIjE,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,UAAU,gEAAuC;IAE1D,QAAQ,CAAC,eAAe,0DAMrB;IAEH,QAAQ,CAAC,UAAU,wDAMhB;IAEH,QAAQ,CAAC,YAAY,gEAkDlB;IAEH,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIpC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,IAAI,IAAI;yCAlFR,sBAAsB;6CAAtB,sBAAsB;CA+FlC"}
1
+ {"version":3,"file":"prism-navigation.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAIjE,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,UAAU,gEAAuC;IAE1D,QAAQ,CAAC,eAAe,0DAQrB;IAEH,QAAQ,CAAC,UAAU,wDAQhB;IAEH,QAAQ,CAAC,YAAY,gEA0DlB;IAEH,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIpC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,IAAI,IAAI;yCA9FR,sBAAsB;6CAAtB,sBAAsB;CA2GlC"}
@@ -5,7 +5,8 @@ import * as i0 from "@angular/core";
5
5
  export class PrismNavigationService {
6
6
  searchService = inject(PrismSearchService);
7
7
  manifestService = inject(PrismManifestService);
8
- activeItem = signal(null, ...(ngDevMode ? [{ debugName: "activeItem" }] : []));
8
+ activeItem = signal(null, /* @ts-ignore */
9
+ ...(ngDevMode ? [{ debugName: "activeItem" }] : /* istanbul ignore next */ []));
9
10
  activeComponent = computed(() => {
10
11
  const item = this.activeItem();
11
12
  if (item?.kind !== 'component')
@@ -13,7 +14,8 @@ export class PrismNavigationService {
13
14
  const manifest = this.manifestService.manifest();
14
15
  const relinked = manifest.components.find((c) => c.meta.className === item.data.meta.className);
15
16
  return relinked ?? null;
16
- }, ...(ngDevMode ? [{ debugName: "activeComponent" }] : []));
17
+ }, /* @ts-ignore */
18
+ ...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
17
19
  activePage = computed(() => {
18
20
  const item = this.activeItem();
19
21
  if (item?.kind !== 'page')
@@ -21,7 +23,8 @@ export class PrismNavigationService {
21
23
  const manifest = this.manifestService.manifest();
22
24
  const relinked = manifest.pages?.find((p) => p.title === item.data.title && p.type === item.data.type);
23
25
  return relinked ?? null;
24
- }, ...(ngDevMode ? [{ debugName: "activePage" }] : []));
26
+ }, /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "activePage" }] : /* istanbul ignore next */ []));
25
28
  categoryTree = computed(() => {
26
29
  const map = new Map();
27
30
  for (const comp of this.searchService.filteredComponents()) {
@@ -39,33 +42,38 @@ export class PrismNavigationService {
39
42
  for (const items of map.values()) {
40
43
  items.sort((a, b) => {
41
44
  const orderA = a.kind === 'component'
42
- ? (a.data.meta.showcaseConfig.componentOrder ?? Infinity)
43
- : (a.data.order ?? Infinity);
45
+ ? a.data.meta.showcaseConfig.componentOrder ?? Infinity
46
+ : a.data.order ?? Infinity;
44
47
  const orderB = b.kind === 'component'
45
- ? (b.data.meta.showcaseConfig.componentOrder ?? Infinity)
46
- : (b.data.order ?? Infinity);
48
+ ? b.data.meta.showcaseConfig.componentOrder ?? Infinity
49
+ : b.data.order ?? Infinity;
47
50
  if (orderA !== orderB)
48
51
  return orderA - orderB;
49
- const labelA = a.kind === 'component' ? a.data.meta.showcaseConfig.title : a.data.title;
50
- const labelB = b.kind === 'component' ? b.data.meta.showcaseConfig.title : b.data.title;
52
+ const labelA = a.kind === 'component'
53
+ ? a.data.meta.showcaseConfig.title
54
+ : a.data.title;
55
+ const labelB = b.kind === 'component'
56
+ ? b.data.meta.showcaseConfig.title
57
+ : b.data.title;
51
58
  return labelA.localeCompare(labelB);
52
59
  });
53
60
  }
54
61
  const sorted = [...map.entries()].sort(([catA, itemsA], [catB, itemsB]) => {
55
62
  const catOrders = itemsA.map((i) => i.kind === 'component'
56
- ? (i.data.meta.showcaseConfig.categoryOrder ?? Infinity)
57
- : (i.data.categoryOrder ?? Infinity));
63
+ ? i.data.meta.showcaseConfig.categoryOrder ?? Infinity
64
+ : i.data.categoryOrder ?? Infinity);
58
65
  const orderA = Math.min(...catOrders);
59
66
  const catOrdersB = itemsB.map((i) => i.kind === 'component'
60
- ? (i.data.meta.showcaseConfig.categoryOrder ?? Infinity)
61
- : (i.data.categoryOrder ?? Infinity));
67
+ ? i.data.meta.showcaseConfig.categoryOrder ?? Infinity
68
+ : i.data.categoryOrder ?? Infinity);
62
69
  const orderB = Math.min(...catOrdersB);
63
70
  if (orderA !== orderB)
64
71
  return orderA - orderB;
65
72
  return catA.localeCompare(catB);
66
73
  });
67
74
  return new Map(sorted);
68
- }, ...(ngDevMode ? [{ debugName: "categoryTree" }] : []));
75
+ }, /* @ts-ignore */
76
+ ...(ngDevMode ? [{ debugName: "categoryTree" }] : /* istanbul ignore next */ []));
69
77
  select(comp) {
70
78
  this.activeItem.set({ kind: 'component', data: comp });
71
79
  }
@@ -73,16 +81,16 @@ export class PrismNavigationService {
73
81
  this.activeItem.set({ kind: 'page', data: page });
74
82
  }
75
83
  selectFirst() {
76
- const comps = this.searchService.filteredComponents();
77
- if (comps.length > 0) {
78
- this.activeItem.set({ kind: 'component', data: comps[0] });
79
- return;
80
- }
81
84
  const pages = this.searchService.filteredPages();
82
85
  if (pages.length > 0) {
83
86
  this.activeItem.set({ kind: 'page', data: pages[0] });
84
87
  return;
85
88
  }
89
+ const comps = this.searchService.filteredComponents();
90
+ if (comps.length > 0) {
91
+ this.activeItem.set({ kind: 'component', data: comps[0] });
92
+ return;
93
+ }
86
94
  this.activeItem.set(null);
87
95
  }
88
96
  static ɵfac = function PrismNavigationService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismNavigationService)(); };
@@ -7,9 +7,12 @@ export class PrismPanelService {
7
7
  pluginService = inject(PrismPluginService);
8
8
  builtinPanels = inject(PRISM_BUILTIN_PANELS);
9
9
  injectorCache = new Map();
10
- activePanelId = signal('controls', ...(ngDevMode ? [{ debugName: "activePanelId" }] : []));
11
- activeViewId = signal('renderer', ...(ngDevMode ? [{ debugName: "activeViewId" }] : []));
12
- activePanelInjector = computed(() => this.getInjector(this.activePanelId()), ...(ngDevMode ? [{ debugName: "activePanelInjector" }] : []));
10
+ activePanelId = signal('controls', /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "activePanelId" }] : /* istanbul ignore next */ []));
12
+ activeViewId = signal('renderer', /* @ts-ignore */
13
+ ...(ngDevMode ? [{ debugName: "activeViewId" }] : /* istanbul ignore next */ []));
14
+ activePanelInjector = computed(() => this.getInjector(this.activePanelId()), /* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "activePanelInjector" }] : /* istanbul ignore next */ []));
13
16
  /**
14
17
  * Returns (and lazily creates) the EnvironmentInjector scoped to the given panel.
15
18
  * Returns `null` when the panel has no providers.