@ng-prism/core 21.12.0 → 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 (86) 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.js +13 -7
  17. package/dist/app/icons/prism-icon.component.js +5 -3
  18. package/dist/app/layout-menu/prism-layout-menu.component.js +2 -1
  19. package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
  20. package/dist/app/page-renderer/prism-page-renderer.component.js +13 -16
  21. package/dist/app/panels/a11y/a11y-audit.service.js +8 -4
  22. package/dist/app/panels/a11y/a11y-header-badge.component.js +3 -2
  23. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +3 -2
  24. package/dist/app/panels/a11y/a11y-keyboard.component.js +3 -2
  25. package/dist/app/panels/a11y/a11y-overlay-host.component.js +11 -6
  26. package/dist/app/panels/a11y/a11y-panel-state.service.js +2 -1
  27. package/dist/app/panels/a11y/a11y-panel.component.js +7 -4
  28. package/dist/app/panels/a11y/a11y-perspective.service.js +2 -1
  29. package/dist/app/panels/a11y/a11y-score.component.js +7 -4
  30. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +5 -3
  31. package/dist/app/panels/a11y/a11y-sr.component.js +3 -2
  32. package/dist/app/panels/a11y/a11y-tree.component.js +14 -8
  33. package/dist/app/panels/a11y/a11y-violations.component.d.ts +1 -1
  34. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
  35. package/dist/app/panels/a11y/a11y-violations.component.js +9 -11
  36. package/dist/app/panels/controls/prism-controls-panel.component.js +3 -2
  37. package/dist/app/panels/events/prism-events-panel.component.js +3 -2
  38. package/dist/app/panels/events/prism-json-node.component.js +14 -7
  39. package/dist/app/panels/panel-host/prism-panel-host.component.js +15 -8
  40. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  41. package/dist/app/renderer/prism-renderer.component.js +9 -6
  42. package/dist/app/services/prism-canvas.service.js +8 -4
  43. package/dist/app/services/prism-event-log.service.js +2 -1
  44. package/dist/app/services/prism-layout.service.js +16 -8
  45. package/dist/app/services/prism-manifest.service.js +10 -5
  46. package/dist/app/services/prism-navigation.service.js +8 -4
  47. package/dist/app/services/prism-panel.service.js +6 -3
  48. package/dist/app/services/prism-plugin.service.js +14 -7
  49. package/dist/app/services/prism-renderer.service.js +10 -5
  50. package/dist/app/services/prism-search.service.js +6 -3
  51. package/dist/app/services/prism-theme.service.js +4 -2
  52. package/dist/app/services/prism-variant-bg.service.js +8 -4
  53. package/dist/app/shell/prism-shell.component.js +7 -4
  54. package/dist/app/sidebar/prism-sidebar.component.js +15 -8
  55. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +7 -4
  56. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +8 -4
  57. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +2 -1
  58. package/dist/builder/build/index.d.ts.map +1 -1
  59. package/dist/builder/build/index.js +11 -4
  60. package/dist/builder/build/schema.d.ts +1 -0
  61. package/dist/builder/build/schema.d.ts.map +1 -1
  62. package/dist/builder/serve/index.d.ts.map +1 -1
  63. package/dist/builder/serve/index.js +21 -6
  64. package/dist/builder/serve/schema.d.ts +1 -0
  65. package/dist/builder/serve/schema.d.ts.map +1 -1
  66. package/dist/builder/shared/prism-pipeline.d.ts +2 -0
  67. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  68. package/dist/builder/shared/prism-pipeline.js +3 -5
  69. package/dist/builder/shared/resolve-cache-dir.d.ts +8 -0
  70. package/dist/builder/shared/resolve-cache-dir.d.ts.map +1 -0
  71. package/dist/builder/shared/resolve-cache-dir.js +12 -0
  72. package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts +3 -0
  73. package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts.map +1 -0
  74. package/dist/schematics/migrations/v21-13-manifest-cache/index.js +103 -0
  75. package/dist/schematics/ng-add/index.d.ts.map +1 -1
  76. package/dist/schematics/ng-add/index.js +31 -44
  77. package/dist/schematics/utils/index.d.ts +1 -0
  78. package/dist/schematics/utils/index.d.ts.map +1 -1
  79. package/dist/schematics/utils/index.js +1 -0
  80. package/dist/schematics/utils/tsconfig-paths.d.ts +8 -0
  81. package/dist/schematics/utils/tsconfig-paths.d.ts.map +1 -0
  82. package/dist/schematics/utils/tsconfig-paths.js +20 -0
  83. package/package.json +9 -6
  84. package/schematics/migrations.json +10 -0
  85. package/src/builder/build/schema.json +4 -0
  86. package/src/builder/serve/schema.json +4 -0
@@ -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":"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,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"}
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
  }
@@ -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()) {
@@ -69,7 +72,8 @@ export class PrismNavigationService {
69
72
  return catA.localeCompare(catB);
70
73
  });
71
74
  return new Map(sorted);
72
- }, ...(ngDevMode ? [{ debugName: "categoryTree" }] : []));
75
+ }, /* @ts-ignore */
76
+ ...(ngDevMode ? [{ debugName: "categoryTree" }] : /* istanbul ignore next */ []));
73
77
  select(comp) {
74
78
  this.activeItem.set({ kind: 'component', data: comp });
75
79
  }
@@ -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.
@@ -11,9 +11,12 @@ export class PrismPluginService {
11
11
  }
12
12
  }
13
13
  return result;
14
- }, ...(ngDevMode ? [{ debugName: "panels" }] : []));
15
- addonPanels = computed(() => this.panels().filter((p) => p.placement !== 'view'), ...(ngDevMode ? [{ debugName: "addonPanels" }] : []));
16
- viewPanels = computed(() => this.panels().filter((p) => p.placement === 'view'), ...(ngDevMode ? [{ debugName: "viewPanels" }] : []));
14
+ }, /* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "panels" }] : /* istanbul ignore next */ []));
16
+ addonPanels = computed(() => this.panels().filter((p) => p.placement !== 'view'), /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "addonPanels" }] : /* istanbul ignore next */ []));
18
+ viewPanels = computed(() => this.panels().filter((p) => p.placement === 'view'), /* @ts-ignore */
19
+ ...(ngDevMode ? [{ debugName: "viewPanels" }] : /* istanbul ignore next */ []));
17
20
  controls = computed(() => {
18
21
  const result = [];
19
22
  for (const plugin of this.config.plugins ?? []) {
@@ -22,7 +25,8 @@ export class PrismPluginService {
22
25
  }
23
26
  }
24
27
  return result;
25
- }, ...(ngDevMode ? [{ debugName: "controls" }] : []));
28
+ }, /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "controls" }] : /* istanbul ignore next */ []));
26
30
  headerWidgets = computed(() => {
27
31
  const result = [];
28
32
  for (const plugin of this.config.plugins ?? []) {
@@ -31,9 +35,12 @@ export class PrismPluginService {
31
35
  }
32
36
  }
33
37
  return result.sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
34
- }, ...(ngDevMode ? [{ debugName: "headerWidgets" }] : []));
35
- headerWidgetsStart = computed(() => this.headerWidgets().filter((w) => w.placement === 'start'), ...(ngDevMode ? [{ debugName: "headerWidgetsStart" }] : []));
36
- headerWidgetsEnd = computed(() => this.headerWidgets().filter((w) => (w.placement ?? 'end') === 'end'), ...(ngDevMode ? [{ debugName: "headerWidgetsEnd" }] : []));
38
+ }, /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "headerWidgets" }] : /* istanbul ignore next */ []));
40
+ headerWidgetsStart = computed(() => this.headerWidgets().filter((w) => w.placement === 'start'), /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "headerWidgetsStart" }] : /* istanbul ignore next */ []));
42
+ headerWidgetsEnd = computed(() => this.headerWidgets().filter((w) => (w.placement ?? 'end') === 'end'), /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "headerWidgetsEnd" }] : /* istanbul ignore next */ []));
37
44
  static ɵfac = function PrismPluginService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismPluginService)(); };
38
45
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PrismPluginService, factory: PrismPluginService.ɵfac, providedIn: 'root' });
39
46
  }
@@ -56,10 +56,14 @@ function valuesEqual(a, b) {
56
56
  }
57
57
  export class PrismRendererService {
58
58
  navigationService = inject(PrismNavigationService);
59
- activeVariantIndex = signal(0, ...(ngDevMode ? [{ debugName: "activeVariantIndex" }] : []));
60
- inputValues = signal({}, ...(ngDevMode ? [{ debugName: "inputValues" }] : []));
61
- activeContent = signal(undefined, ...(ngDevMode ? [{ debugName: "activeContent" }] : []));
62
- renderedElement = signal(null, ...(ngDevMode ? [{ debugName: "renderedElement" }] : []));
59
+ activeVariantIndex = signal(0, /* @ts-ignore */
60
+ ...(ngDevMode ? [{ debugName: "activeVariantIndex" }] : /* istanbul ignore next */ []));
61
+ inputValues = signal({}, /* @ts-ignore */
62
+ ...(ngDevMode ? [{ debugName: "inputValues" }] : /* istanbul ignore next */ []));
63
+ activeContent = signal(undefined, /* @ts-ignore */
64
+ ...(ngDevMode ? [{ debugName: "activeContent" }] : /* istanbul ignore next */ []));
65
+ renderedElement = signal(null, /* @ts-ignore */
66
+ ...(ngDevMode ? [{ debugName: "renderedElement" }] : /* istanbul ignore next */ []));
63
67
  dirtyInputCount = computed(() => {
64
68
  const comp = this.navigationService.activeComponent();
65
69
  if (!comp)
@@ -76,7 +80,8 @@ export class PrismRendererService {
76
80
  count++;
77
81
  }
78
82
  return count;
79
- }, ...(ngDevMode ? [{ debugName: "dirtyInputCount" }] : []));
83
+ }, /* @ts-ignore */
84
+ ...(ngDevMode ? [{ debugName: "dirtyInputCount" }] : /* istanbul ignore next */ []));
80
85
  _lastClassName = null;
81
86
  resetForComponent(comp) {
82
87
  this._lastClassName = comp.meta.className;
@@ -3,7 +3,8 @@ import { PrismManifestService } from './prism-manifest.service.js';
3
3
  import * as i0 from "@angular/core";
4
4
  export class PrismSearchService {
5
5
  manifestService = inject(PrismManifestService);
6
- query = signal('', ...(ngDevMode ? [{ debugName: "query" }] : []));
6
+ query = signal('', /* @ts-ignore */
7
+ ...(ngDevMode ? [{ debugName: "query" }] : /* istanbul ignore next */ []));
7
8
  filteredComponents = computed(() => {
8
9
  const q = this.query().toLowerCase().trim();
9
10
  const all = this.manifestService.components();
@@ -15,7 +16,8 @@ export class PrismSearchService {
15
16
  (config.category?.toLowerCase().includes(q) ?? false) ||
16
17
  (config.tags?.some((t) => t.toLowerCase().includes(q)) ?? false));
17
18
  });
18
- }, ...(ngDevMode ? [{ debugName: "filteredComponents" }] : []));
19
+ }, /* @ts-ignore */
20
+ ...(ngDevMode ? [{ debugName: "filteredComponents" }] : /* istanbul ignore next */ []));
19
21
  filteredPages = computed(() => {
20
22
  const q = this.query().toLowerCase().trim();
21
23
  const all = this.manifestService.pages();
@@ -23,7 +25,8 @@ export class PrismSearchService {
23
25
  return all;
24
26
  return all.filter((page) => page.title.toLowerCase().includes(q) ||
25
27
  (page.category?.toLowerCase().includes(q) ?? false));
26
- }, ...(ngDevMode ? [{ debugName: "filteredPages" }] : []));
28
+ }, /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "filteredPages" }] : /* istanbul ignore next */ []));
27
30
  search(q) {
28
31
  this.query.set(q);
29
32
  }
@@ -4,8 +4,10 @@ import * as i0 from "@angular/core";
4
4
  const STORAGE_KEY = 'ng-prism-theme';
5
5
  const FAVICON_DATA_URI = `data:image/x-icon;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAADAAAAAAAMAAMAAAAAAAwAA4AAAAAAHAADgAAAAAAcAAPAAAAAADwAA8AAAAAAPAAD4AAAAAB8AAPwAAAAAPwAA/AAAAAA/AAD+AAAAAH8AAP4AAAAAfwAA/wAAAAD/AAD/AAAAAP8AAP+AAAAB/wAA/8AAAAP/AAD/wAAAA/8AAP/gAAAH/wAA/+AAAAf/AAD/8AAAD/8AAP/wAAAP/wAA//gAAB//AAD//AAAP/8AAP/8AAA//wAA//4AAH//AAD//gAAf/8AAP//AAD//wAA//8AAP//AAD//4AB//8AAP//wAP//wAA///AA///AAD//+AH//8AAP//4Af//wAA///wD///AAD///AP//8AAP//+B///wAA///8P///AAD///w///8AAP///n///wAA////////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGYzzAWAAKoGgACqBoAAqgaAAKoGgACqBoAAqgaAAKoGgACqBqoA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`;
6
6
  export class PrismThemeService {
7
- theme = signal(this.readStoredTheme(), ...(ngDevMode ? [{ debugName: "theme" }] : []));
8
- isDark = computed(() => this.theme() === 'dark', ...(ngDevMode ? [{ debugName: "isDark" }] : []));
7
+ theme = signal(this.readStoredTheme(), /* @ts-ignore */
8
+ ...(ngDevMode ? [{ debugName: "theme" }] : /* istanbul ignore next */ []));
9
+ isDark = computed(() => this.theme() === 'dark', /* @ts-ignore */
10
+ ...(ngDevMode ? [{ debugName: "isDark" }] : /* istanbul ignore next */ []));
9
11
  configOverrides = {};
10
12
  darkOverrides = {};
11
13
  lightOverrides = {};
@@ -13,16 +13,20 @@ export class PrismVariantBgService {
13
13
  return null;
14
14
  const variant = comp.meta.showcaseConfig.variants?.[this.renderer.activeVariantIndex()];
15
15
  return variant?.bg ?? comp.meta.showcaseConfig.bg ?? null;
16
- }, ...(ngDevMode ? [{ debugName: "recommended" }] : []));
17
- _override = signal(null, ...(ngDevMode ? [{ debugName: "_override" }] : []));
16
+ }, /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "recommended" }] : /* istanbul ignore next */ []));
18
+ _override = signal(null, /* @ts-ignore */
19
+ ...(ngDevMode ? [{ debugName: "_override" }] : /* istanbul ignore next */ []));
18
20
  override = this._override.asReadonly();
19
- effective = computed(() => this._override() ?? this.recommended() ?? this.canvas.bg(), ...(ngDevMode ? [{ debugName: "effective" }] : []));
21
+ effective = computed(() => this._override() ?? this.recommended() ?? this.canvas.bg(), /* @ts-ignore */
22
+ ...(ngDevMode ? [{ debugName: "effective" }] : /* istanbul ignore next */ []));
20
23
  /** True when the user's override differs from the (non-null) recommended bg. */
21
24
  isDeviating = computed(() => {
22
25
  const override = this._override();
23
26
  const recommended = this.recommended();
24
27
  return (override !== null && recommended !== null && override !== recommended);
25
- }, ...(ngDevMode ? [{ debugName: "isDeviating" }] : []));
28
+ }, /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "isDeviating" }] : /* istanbul ignore next */ []));
26
30
  constructor() {
27
31
  effect(() => {
28
32
  this.navigation.activeComponent();