@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
@@ -77,20 +77,25 @@ export class PrismHeaderComponent {
77
77
  widgetsStart = computed(() => [
78
78
  ...BUILTIN_HEADER_WIDGETS.filter((w) => w.placement === 'start'),
79
79
  ...this.pluginService.headerWidgetsStart(),
80
- ].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), ...(ngDevMode ? [{ debugName: "widgetsStart" }] : []));
80
+ ].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), /* @ts-ignore */
81
+ ...(ngDevMode ? [{ debugName: "widgetsStart" }] : /* istanbul ignore next */ []));
81
82
  widgetsEnd = computed(() => [
82
83
  ...BUILTIN_HEADER_WIDGETS.filter((w) => (w.placement ?? 'end') === 'end'),
83
84
  ...this.pluginService.headerWidgetsEnd(),
84
- ].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), ...(ngDevMode ? [{ debugName: "widgetsEnd" }] : []));
85
+ ].sort((a, b) => (a.order ?? 0) - (b.order ?? 0)), /* @ts-ignore */
86
+ ...(ngDevMode ? [{ debugName: "widgetsEnd" }] : /* istanbul ignore next */ []));
85
87
  logoUrl = computed(() => {
86
88
  const logo = this.config.logo;
87
89
  if (!logo)
88
90
  return null;
89
91
  const isDark = this.themeService.isDark();
90
92
  return (isDark ? logo.dark ?? logo.light : logo.light ?? logo.dark) ?? null;
91
- }, ...(ngDevMode ? [{ debugName: "logoUrl" }] : []));
92
- title = computed(() => this.config.title ?? 'ng-prism', ...(ngDevMode ? [{ debugName: "title" }] : []));
93
- subtitle = computed(() => this.config.subtitle ?? null, ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
93
+ }, /* @ts-ignore */
94
+ ...(ngDevMode ? [{ debugName: "logoUrl" }] : /* istanbul ignore next */ []));
95
+ title = computed(() => this.config.title ?? 'ng-prism', /* @ts-ignore */
96
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
97
+ subtitle = computed(() => this.config.subtitle ?? null, /* @ts-ignore */
98
+ ...(ngDevMode ? [{ debugName: "subtitle" }] : /* istanbul ignore next */ []));
94
99
  buildInfoLabel = computed(() => {
95
100
  const info = this.config.buildInfo;
96
101
  if (!info)
@@ -101,7 +106,8 @@ export class PrismHeaderComponent {
101
106
  if (info.gitHash)
102
107
  parts.push(info.gitHash.slice(0, 7));
103
108
  return parts.length ? parts.join(' · ') : null;
104
- }, ...(ngDevMode ? [{ debugName: "buildInfoLabel" }] : []));
109
+ }, /* @ts-ignore */
110
+ ...(ngDevMode ? [{ debugName: "buildInfoLabel" }] : /* istanbul ignore next */ []));
105
111
  onGlobalKey(e) {
106
112
  if ((e.metaKey || e.ctrlKey) && e.key === 'k') {
107
113
  e.preventDefault();
@@ -152,7 +158,7 @@ export class PrismHeaderComponent {
152
158
  i0.ɵɵconditional(ctx.themeService.isDark() ? 14 : 15);
153
159
  } }, dependencies: [PrismIconComponent,
154
160
  PrismLayoutMenuComponent,
155
- PrismHeaderWidgetHostComponent], styles: [".prism-header[_ngcontent-%COMP%] {\n height: 52px;\n display: grid;\n grid-template-columns: minmax(min-content, var(--sw, 264px)) 1fr auto;\n align-items: center;\n padding: 0 14px 0 0;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n }\n\n .prism-header__brand[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 0 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .prism-header__logo-default[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n flex: 0 0 26px;\n color: var(--prism-primary);\n filter: drop-shadow(0 0 8px var(--prism-glow-strong));\n }\n .prism-header__logo-default[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { width: 30px; }\n\n .prism-header__logo-img[_ngcontent-%COMP%] {\n height: 26px;\n width: auto;\n object-fit: contain;\n }\n\n .prism-header__brand-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n }\n\n .prism-header__brand-name[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: var(--fs-xl);\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--prism-primary), var(--prism-accent) 60%, var(--prism-primary-to));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n\n .prism-header__brand-sub[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n }\n\n .prism-header__cmdbar[_ngcontent-%COMP%] {\n max-width: 540px;\n width: 100%;\n justify-self: center;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 32px;\n padding: 0 12px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n color: var(--prism-text-muted);\n font-size: var(--fs-lg);\n cursor: pointer;\n transition: border-color var(--dur-fast), background var(--dur-fast);\n }\n .prism-header__cmdbar[_ngcontent-%COMP%]:hover {\n border-color: var(--prism-border-strong);\n color: var(--prism-text-2);\n }\n\n .prism-header__cmdbar-text[_ngcontent-%COMP%] {\n flex: 1;\n text-align: left;\n }\n\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] {\n display: flex;\n gap: 3px;\n }\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: 4px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n }\n\n .prism-header__build-pill[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 9999px;\n padding: 2px 10px;\n white-space: nowrap;\n line-height: 1.4;\n }\n\n .prism-header__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n }\n\n .prism-header__widgets[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .prism-header__widgets--start[_ngcontent-%COMP%] {\n padding-left: 4px;\n justify-content: flex-start;\n }\n\n .prism-header__icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: grid;\n place-items: center;\n border-radius: 8px;\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: all var(--dur-fast);\n }\n .prism-header__icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"], changeDetection: 0 });
161
+ PrismHeaderWidgetHostComponent], styles: [".prism-header[_ngcontent-%COMP%] {\n height: 52px;\n display: grid;\n grid-template-columns: minmax(min-content, var(--sw, 264px)) 1fr auto;\n align-items: center;\n padding: 0 14px 0 0;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n }\n\n .prism-header__brand[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 0 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .prism-header__logo-default[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n flex: 0 0 26px;\n color: var(--prism-primary);\n filter: drop-shadow(0 0 8px var(--prism-glow-strong));\n }\n .prism-header__logo-default[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { width: 30px; }\n\n .prism-header__logo-img[_ngcontent-%COMP%] {\n height: 26px;\n width: auto;\n object-fit: contain;\n }\n\n .prism-header__brand-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n }\n\n .prism-header__brand-name[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: var(--fs-xl);\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--prism-primary), var(--prism-accent) 60%, var(--prism-primary-to));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n\n .prism-header__brand-sub[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n }\n\n .prism-header__cmdbar[_ngcontent-%COMP%] {\n max-width: 540px;\n width: 100%;\n justify-self: center;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 32px;\n padding: 0 12px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n color: var(--prism-text-muted);\n font-size: var(--fs-lg);\n cursor: pointer;\n transition: border-color var(--dur-fast), background var(--dur-fast);\n }\n .prism-header__cmdbar[_ngcontent-%COMP%]:hover {\n border-color: var(--prism-border-strong);\n color: var(--prism-text-2);\n }\n\n .prism-header__cmdbar-text[_ngcontent-%COMP%] {\n flex: 1;\n text-align: left;\n }\n\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] {\n display: flex;\n gap: 3px;\n }\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: 4px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n }\n\n .prism-header__build-pill[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 9999px;\n padding: 2px 10px;\n white-space: nowrap;\n line-height: 1.4;\n }\n\n .prism-header__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n }\n\n .prism-header__widgets[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .prism-header__widgets--start[_ngcontent-%COMP%] {\n padding-left: 4px;\n justify-content: flex-start;\n }\n\n .prism-header__icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: grid;\n place-items: center;\n border-radius: 8px;\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: all var(--dur-fast);\n }\n .prism-header__icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"] });
156
162
  }
157
163
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeaderComponent, [{
158
164
  type: Component,
@@ -190,8 +196,7 @@ export class PrismHeaderComponent {
190
196
  <div class="prism-header__actions">
191
197
  @for (w of widgetsEnd(); track w.id) {
192
198
  <prism-header-widget-host [widget]="w" />
193
- }
194
- @if (buildInfoLabel()) {
199
+ } @if (buildInfoLabel()) {
195
200
  <span class="prism-header__build-pill">{{ buildInfoLabel() }}</span>
196
201
  }
197
202
  <button
@@ -223,4 +228,4 @@ export class PrismHeaderComponent {
223
228
  type: HostListener,
224
229
  args: ['document:keydown', ['$event']]
225
230
  }] }); })();
226
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeaderComponent, { className: "PrismHeaderComponent", filePath: "app/header/prism-header.component.ts", lineNumber: 238 }); })();
231
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeaderComponent, { className: "PrismHeaderComponent", filePath: "app/header/prism-header.component.ts", lineNumber: 237 }); })();
@@ -30,8 +30,10 @@ const ICONS = {
30
30
  };
31
31
  const SVG_NS = 'http://www.w3.org/2000/svg';
32
32
  export class PrismIconComponent {
33
- name = input.required(...(ngDevMode ? [{ debugName: "name" }] : []));
34
- size = input(16, ...(ngDevMode ? [{ debugName: "size" }] : []));
33
+ name = input.required(/* @ts-ignore */
34
+ ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
35
+ size = input(16, /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
35
37
  el = inject((ElementRef));
36
38
  constructor() {
37
39
  effect(() => {
@@ -58,7 +60,7 @@ export class PrismIconComponent {
58
60
  });
59
61
  }
60
62
  static ɵfac = function PrismIconComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismIconComponent)(); };
61
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismIconComponent, selectors: [["prism-icon"]], inputs: { name: [1, "name"], size: [1, "size"] }, decls: 0, vars: 0, template: function PrismIconComponent_Template(rf, ctx) { }, styles: ["[_nghost-%COMP%] { display: inline-flex; align-items: center; justify-content: center; }"], changeDetection: 0 });
63
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismIconComponent, selectors: [["prism-icon"]], inputs: { name: [1, "name"], size: [1, "size"] }, decls: 0, vars: 0, template: function PrismIconComponent_Template(rf, ctx) { }, styles: ["[_nghost-%COMP%] { display: inline-flex; align-items: center; justify-content: center; }"] });
62
64
  }
63
65
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismIconComponent, [{
64
66
  type: Component,
@@ -68,7 +68,8 @@ function PrismLayoutMenuComponent_Conditional_6_Template(rf, ctx) { if (rf & 1)
68
68
  } }
69
69
  export class PrismLayoutMenuComponent {
70
70
  layout = inject(PrismLayoutService);
71
- open = signal(false, ...(ngDevMode ? [{ debugName: "open" }] : []));
71
+ open = signal(false, /* @ts-ignore */
72
+ ...(ngDevMode ? [{ debugName: "open" }] : /* istanbul ignore next */ []));
72
73
  toggle(target) {
73
74
  this.open.set(false);
74
75
  switch (target) {
@@ -1 +1 @@
1
- {"version":3,"file":"prism-page-renderer.component.d.ts","sourceRoot":"","sources":["../../../src/app/page-renderer/prism-page-renderer.component.ts"],"names":[],"mappings":";AAIA,qBAiDa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,SAAS,CAAC,QAAQ,CAAC,IAAI,iFAAuB;;yCAHnC,0BAA0B;2CAA1B,0BAA0B;CAWtC"}
1
+ {"version":3,"file":"prism-page-renderer.component.d.ts","sourceRoot":"","sources":["../../../src/app/page-renderer/prism-page-renderer.component.ts"],"names":[],"mappings":";AAIA,qBA8Ca,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAmC;IACxD,SAAS,CAAC,QAAQ,CAAC,IAAI,iFAAuB;;yCAHnC,0BAA0B;2CAA1B,0BAA0B;CAWtC"}
@@ -1,5 +1,5 @@
1
1
  import { Component, effect, ElementRef, inject } from '@angular/core';
2
- import { NgComponentOutlet } from '@angular/common';
2
+ import { JsonPipe, NgComponentOutlet } from '@angular/common';
3
3
  import { PrismNavigationService } from '../services/prism-navigation.service.js';
4
4
  import * as i0 from "@angular/core";
5
5
  function PrismPageRendererComponent_Conditional_0_Case_3_Template(rf, ctx) { if (rf & 1) {
@@ -54,26 +54,23 @@ export class PrismPageRendererComponent {
54
54
  } if (rf & 2) {
55
55
  let tmp_0_0;
56
56
  i0.ɵɵconditional((tmp_0_0 = ctx.page()) ? 0 : -1, tmp_0_0);
57
- } }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] { display: block; flex: 1; overflow-y: auto; }\n .prism-page-renderer__title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 16px 20px;\n font-size: 18px;\n font-weight: 600;\n letter-spacing: -0.01em;\n color: var(--prism-text);\n font-family: var(--prism-font-sans);\n border-bottom: 1px solid var(--prism-border);\n border-left: 3px solid;\n border-image: linear-gradient(180deg, var(--prism-primary-from), var(--prism-primary-to)) 1;\n background: var(--prism-bg-surface);\n }\n .prism-page-renderer__component[_ngcontent-%COMP%] {\n padding: 16px 20px;\n }\n .prism-page-renderer__json[_ngcontent-%COMP%] {\n margin: 0;\n padding: 24px;\n font-size: 12px;\n font-family: monospace;\n color: var(--prism-text-muted);\n white-space: pre-wrap;\n }"] });
57
+ } }, dependencies: [NgComponentOutlet, JsonPipe], styles: ["[_nghost-%COMP%] { display: block; flex: 1; overflow-y: auto; }\n .prism-page-renderer__title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 16px 20px;\n font-size: 18px;\n font-weight: 600;\n letter-spacing: -0.01em;\n color: var(--prism-text);\n font-family: var(--prism-font-sans);\n border-bottom: 1px solid var(--prism-border);\n border-left: 3px solid;\n border-image: linear-gradient(180deg, var(--prism-primary-from), var(--prism-primary-to)) 1;\n background: var(--prism-bg-surface);\n }\n .prism-page-renderer__component[_ngcontent-%COMP%] {\n padding: 16px 20px;\n }\n .prism-page-renderer__json[_ngcontent-%COMP%] {\n margin: 0;\n padding: 24px;\n font-size: 12px;\n font-family: monospace;\n color: var(--prism-text-muted);\n white-space: pre-wrap;\n }"] });
58
58
  }
59
59
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismPageRendererComponent, [{
60
60
  type: Component,
61
- args: [{ selector: 'prism-page-renderer', standalone: true, imports: [NgComponentOutlet], template: `
61
+ args: [{ selector: 'prism-page-renderer', standalone: true, imports: [JsonPipe, NgComponentOutlet], template: `
62
62
  @if (page(); as p) {
63
- <div class="prism-page-renderer">
64
- <h2 class="prism-page-renderer__title">{{ p.title }}</h2>
65
- @switch (p.type) {
66
- @case ('custom') {
67
- <pre class="prism-page-renderer__json">{{ $any(p).data | json }}</pre>
68
- }
69
- @case ('component') {
70
- <div class="prism-page-renderer__component">
71
- <ng-container *ngComponentOutlet="$any(p).component" />
72
- </div>
73
- }
74
- }
63
+ <div class="prism-page-renderer">
64
+ <h2 class="prism-page-renderer__title">{{ p.title }}</h2>
65
+ @switch (p.type) { @case ('custom') {
66
+ <pre class="prism-page-renderer__json">{{ $any(p).data | json }}</pre>
67
+ } @case ('component') {
68
+ <div class="prism-page-renderer__component">
69
+ <ng-container *ngComponentOutlet="$any(p).component" />
75
70
  </div>
71
+ } }
72
+ </div>
76
73
  }
77
74
  `, styles: ["\n :host { display: block; flex: 1; overflow-y: auto; }\n .prism-page-renderer__title {\n margin: 0;\n padding: 16px 20px;\n font-size: 18px;\n font-weight: 600;\n letter-spacing: -0.01em;\n color: var(--prism-text);\n font-family: var(--prism-font-sans);\n border-bottom: 1px solid var(--prism-border);\n border-left: 3px solid;\n border-image: linear-gradient(180deg, var(--prism-primary-from), var(--prism-primary-to)) 1;\n background: var(--prism-bg-surface);\n }\n .prism-page-renderer__component {\n padding: 16px 20px;\n }\n .prism-page-renderer__json {\n margin: 0;\n padding: 24px;\n font-size: 12px;\n font-family: monospace;\n color: var(--prism-text-muted);\n white-space: pre-wrap;\n }\n "] }]
78
75
  }], () => [], null); })();
79
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPageRendererComponent, { className: "PrismPageRendererComponent", filePath: "app/page-renderer/prism-page-renderer.component.ts", lineNumber: 54 }); })();
76
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPageRendererComponent, { className: "PrismPageRendererComponent", filePath: "app/page-renderer/prism-page-renderer.component.ts", lineNumber: 51 }); })();
@@ -30,13 +30,17 @@ export async function runCoreAudit(element, config) {
30
30
  return axe.default.run(element, options);
31
31
  }
32
32
  export class A11yAuditService {
33
- results = signal(null, ...(ngDevMode ? [{ debugName: "results" }] : []));
34
- running = signal(false, ...(ngDevMode ? [{ debugName: "running" }] : []));
35
- error = signal(null, ...(ngDevMode ? [{ debugName: "error" }] : []));
33
+ results = signal(null, /* @ts-ignore */
34
+ ...(ngDevMode ? [{ debugName: "results" }] : /* istanbul ignore next */ []));
35
+ running = signal(false, /* @ts-ignore */
36
+ ...(ngDevMode ? [{ debugName: "running" }] : /* istanbul ignore next */ []));
37
+ error = signal(null, /* @ts-ignore */
38
+ ...(ngDevMode ? [{ debugName: "error" }] : /* istanbul ignore next */ []));
36
39
  scoreResult = computed(() => {
37
40
  const r = this.results();
38
41
  return r ? calculateScore(r) : null;
39
- }, ...(ngDevMode ? [{ debugName: "scoreResult" }] : []));
42
+ }, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "scoreResult" }] : /* istanbul ignore next */ []));
40
44
  timer = null;
41
45
  destroyed = false;
42
46
  constructor() {
@@ -41,7 +41,8 @@ export class A11yHeaderBadgeComponent {
41
41
  `Violations: ${meta.total.critical} critical · ${meta.total.serious} serious · ` +
42
42
  `${meta.total.moderate} moderate · ${meta.total.minor} minor`,
43
43
  };
44
- }, ...(ngDevMode ? [{ debugName: "data" }] : []));
44
+ }, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
45
46
  computeVariant(score, total, thresholds) {
46
47
  if (total.critical > thresholds.critical)
47
48
  return 'danger';
@@ -61,7 +62,7 @@ export class A11yHeaderBadgeComponent {
61
62
  } if (rf & 2) {
62
63
  let tmp_0_0;
63
64
  i0.ɵɵconditional((tmp_0_0 = ctx.data()) ? 0 : -1, tmp_0_0);
64
- } }, styles: ["[_nghost-%COMP%] { display: inline-flex; align-items: center; }\n\n .a11y-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 2px 10px;\n border-radius: 9999px;\n line-height: 1.4;\n border: 1px solid var(--prism-border);\n background: var(--prism-input-bg);\n color: var(--prism-text-muted);\n white-space: nowrap;\n }\n\n .a11y-pill__dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentColor;\n }\n\n .a11y-pill__label[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n letter-spacing: 0.02em;\n }\n\n .a11y-pill__value[_ngcontent-%COMP%] {\n color: var(--prism-text);\n font-weight: 600;\n }\n .a11y-pill__value[_ngcontent-%COMP%] small[_ngcontent-%COMP%] {\n font-size: 9px;\n margin-left: 1px;\n color: var(--prism-text-muted);\n font-weight: 500;\n }\n\n .a11y-pill--ok[_ngcontent-%COMP%] {\n color: var(--prism-success);\n border-color: color-mix(in srgb, var(--prism-success) 35%, transparent);\n background: color-mix(in srgb, var(--prism-success) 12%, transparent);\n }\n .a11y-pill--ok[_ngcontent-%COMP%] .a11y-pill__label[_ngcontent-%COMP%], \n .a11y-pill--ok[_ngcontent-%COMP%] .a11y-pill__value[_ngcontent-%COMP%] { color: var(--prism-success); }\n\n .a11y-pill--warn[_ngcontent-%COMP%] {\n color: var(--prism-warn);\n border-color: color-mix(in srgb, var(--prism-warn) 35%, transparent);\n background: color-mix(in srgb, var(--prism-warn) 12%, transparent);\n }\n .a11y-pill--warn[_ngcontent-%COMP%] .a11y-pill__label[_ngcontent-%COMP%], \n .a11y-pill--warn[_ngcontent-%COMP%] .a11y-pill__value[_ngcontent-%COMP%] { color: var(--prism-warn); }\n\n .a11y-pill--danger[_ngcontent-%COMP%] {\n color: var(--prism-danger);\n border-color: color-mix(in srgb, var(--prism-danger) 35%, transparent);\n background: color-mix(in srgb, var(--prism-danger) 12%, transparent);\n }\n .a11y-pill--danger[_ngcontent-%COMP%] .a11y-pill__label[_ngcontent-%COMP%], \n .a11y-pill--danger[_ngcontent-%COMP%] .a11y-pill__value[_ngcontent-%COMP%] { color: var(--prism-danger); }"], changeDetection: 0 });
65
+ } }, styles: ["[_nghost-%COMP%] { display: inline-flex; align-items: center; }\n\n .a11y-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 2px 10px;\n border-radius: 9999px;\n line-height: 1.4;\n border: 1px solid var(--prism-border);\n background: var(--prism-input-bg);\n color: var(--prism-text-muted);\n white-space: nowrap;\n }\n\n .a11y-pill__dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: currentColor;\n }\n\n .a11y-pill__label[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n letter-spacing: 0.02em;\n }\n\n .a11y-pill__value[_ngcontent-%COMP%] {\n color: var(--prism-text);\n font-weight: 600;\n }\n .a11y-pill__value[_ngcontent-%COMP%] small[_ngcontent-%COMP%] {\n font-size: 9px;\n margin-left: 1px;\n color: var(--prism-text-muted);\n font-weight: 500;\n }\n\n .a11y-pill--ok[_ngcontent-%COMP%] {\n color: var(--prism-success);\n border-color: color-mix(in srgb, var(--prism-success) 35%, transparent);\n background: color-mix(in srgb, var(--prism-success) 12%, transparent);\n }\n .a11y-pill--ok[_ngcontent-%COMP%] .a11y-pill__label[_ngcontent-%COMP%], \n .a11y-pill--ok[_ngcontent-%COMP%] .a11y-pill__value[_ngcontent-%COMP%] { color: var(--prism-success); }\n\n .a11y-pill--warn[_ngcontent-%COMP%] {\n color: var(--prism-warn);\n border-color: color-mix(in srgb, var(--prism-warn) 35%, transparent);\n background: color-mix(in srgb, var(--prism-warn) 12%, transparent);\n }\n .a11y-pill--warn[_ngcontent-%COMP%] .a11y-pill__label[_ngcontent-%COMP%], \n .a11y-pill--warn[_ngcontent-%COMP%] .a11y-pill__value[_ngcontent-%COMP%] { color: var(--prism-warn); }\n\n .a11y-pill--danger[_ngcontent-%COMP%] {\n color: var(--prism-danger);\n border-color: color-mix(in srgb, var(--prism-danger) 35%, transparent);\n background: color-mix(in srgb, var(--prism-danger) 12%, transparent);\n }\n .a11y-pill--danger[_ngcontent-%COMP%] .a11y-pill__label[_ngcontent-%COMP%], \n .a11y-pill--danger[_ngcontent-%COMP%] .a11y-pill__value[_ngcontent-%COMP%] { color: var(--prism-danger); }"] });
65
66
  }
66
67
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yHeaderBadgeComponent, [{
67
68
  type: Component,
@@ -29,7 +29,8 @@ export class A11yKeyboardOverlayComponent {
29
29
  rendererService = inject(PrismRendererService);
30
30
  keyboardService = inject(A11yKeyboardService);
31
31
  elementRef = inject((ElementRef));
32
- badges = signal([], ...(ngDevMode ? [{ debugName: "badges" }] : []));
32
+ badges = signal([], /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "badges" }] : /* istanbul ignore next */ []));
33
34
  rafId = null;
34
35
  constructor() {
35
36
  effect(() => {
@@ -77,7 +78,7 @@ export class A11yKeyboardOverlayComponent {
77
78
  i0.ɵɵconditionalCreate(0, A11yKeyboardOverlayComponent_Conditional_0_Template, 2, 0);
78
79
  } if (rf & 2) {
79
80
  i0.ɵɵconditional(ctx.panelState.activeTab() === "keyboard" ? 0 : -1);
80
- } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-kbd-ov__highlight[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid rgba(129, 140, 248, 0.5);\n border-radius: 4px;\n background: rgba(129, 140, 248, 0.06);\n box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.08);\n pointer-events: none;\n }\n\n .prism-a11y-kbd-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n width: 20px;\n height: 20px;\n background: var(--prism-primary);\n color: white;\n border-radius: 50%;\n font-size: 10px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px white, 0 2px 6px rgba(0, 0, 0, 0.3);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n pointer-events: auto;\n cursor: default;\n }"], changeDetection: 0 });
81
+ } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-kbd-ov__highlight[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid rgba(129, 140, 248, 0.5);\n border-radius: 4px;\n background: rgba(129, 140, 248, 0.06);\n box-shadow: 0 0 0 4px rgba(129, 140, 248, 0.08);\n pointer-events: none;\n }\n\n .prism-a11y-kbd-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n width: 20px;\n height: 20px;\n background: var(--prism-primary);\n color: white;\n border-radius: 50%;\n font-size: 10px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 2px white, 0 2px 6px rgba(0, 0, 0, 0.3);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n pointer-events: auto;\n cursor: default;\n }"] });
81
82
  }
82
83
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yKeyboardOverlayComponent, [{
83
84
  type: Component,
@@ -60,7 +60,8 @@ export class A11yKeyboardComponent {
60
60
  return [];
61
61
  const doc = root.ownerDocument;
62
62
  return this.keyboardService.extractTabOrder(root, doc ? (id) => doc.getElementById(id) : undefined);
63
- }, ...(ngDevMode ? [{ debugName: "items" }] : []));
63
+ }, /* @ts-ignore */
64
+ ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
64
65
  typeAttr(el) {
65
66
  const type = el.getAttribute('type');
66
67
  return type ? `[type=${type}]` : '';
@@ -70,7 +71,7 @@ export class A11yKeyboardComponent {
70
71
  i0.ɵɵconditionalCreate(0, A11yKeyboardComponent_Conditional_0_Template, 2, 0, "div", 0)(1, A11yKeyboardComponent_Conditional_1_Template, 2, 0, "div", 0)(2, A11yKeyboardComponent_Conditional_2_Template, 3, 0, "div", 1);
71
72
  } if (rf & 2) {
72
73
  i0.ɵɵconditional(!ctx.rendererService.renderedElement() ? 0 : !ctx.items().length ? 1 : 2);
73
- } }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .kb-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--prism-text-muted); font-size: 13px;\n }\n\n .kb-body[_ngcontent-%COMP%] {\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .kb-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 110px 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 9px 14px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n }\n\n .kb-keys[_ngcontent-%COMP%] { display: flex; gap: 4px; }\n .kb-keys[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: 4px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n }\n\n .kb-desc[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--prism-text-2);\n }\n\n .kb-tgt[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-primary);\n padding: 2px 7px;\n background: color-mix(in srgb, var(--prism-primary) 10%, transparent);\n border-radius: var(--radius-xs);\n }"], changeDetection: 0 });
74
+ } }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .kb-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--prism-text-muted); font-size: 13px;\n }\n\n .kb-body[_ngcontent-%COMP%] {\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .kb-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 110px 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 9px 14px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n }\n\n .kb-keys[_ngcontent-%COMP%] { display: flex; gap: 4px; }\n .kb-keys[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: 4px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n }\n\n .kb-desc[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--prism-text-2);\n }\n\n .kb-tgt[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-primary);\n padding: 2px 7px;\n background: color-mix(in srgb, var(--prism-primary) 10%, transparent);\n border-radius: var(--radius-xs);\n }"] });
74
75
  }
75
76
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yKeyboardComponent, [{
76
77
  type: Component,
@@ -37,10 +37,12 @@ function A11yOverlayHostComponent_Conditional_0_Template(rf, ctx) { if (rf & 1)
37
37
  i0.ɵɵconditional(ctx_r1.tabLabel() ? 2 : -1);
38
38
  } }
39
39
  export class A11yOverlayHostComponent {
40
- rendererService = input.required(...(ngDevMode ? [{ debugName: "rendererService" }] : []));
40
+ rendererService = input.required(/* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "rendererService" }] : /* istanbul ignore next */ []));
41
42
  keyboardService = inject(A11yKeyboardService);
42
43
  elementRef = inject((ElementRef));
43
- layoutTick = signal(0, ...(ngDevMode ? [{ debugName: "layoutTick" }] : []));
44
+ layoutTick = signal(0, /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "layoutTick" }] : /* istanbul ignore next */ []));
44
46
  bounds = computed(() => {
45
47
  const el = this.rendererService().renderedElement();
46
48
  this.layoutTick();
@@ -57,14 +59,16 @@ export class A11yOverlayHostComponent {
57
59
  width: elRect.width,
58
60
  height: elRect.height,
59
61
  };
60
- }, ...(ngDevMode ? [{ debugName: "bounds" }] : []));
62
+ }, /* @ts-ignore */
63
+ ...(ngDevMode ? [{ debugName: "bounds" }] : /* istanbul ignore next */ []));
61
64
  roleLabel = computed(() => {
62
65
  const el = this.rendererService().renderedElement();
63
66
  if (!el)
64
67
  return null;
65
68
  const role = el.getAttribute('role') ?? implicitRole(el);
66
69
  return role ? `role="${role}"` : null;
67
- }, ...(ngDevMode ? [{ debugName: "roleLabel" }] : []));
70
+ }, /* @ts-ignore */
71
+ ...(ngDevMode ? [{ debugName: "roleLabel" }] : /* istanbul ignore next */ []));
68
72
  tabLabel = computed(() => {
69
73
  const el = this.rendererService().renderedElement();
70
74
  if (!el)
@@ -74,7 +78,8 @@ export class A11yOverlayHostComponent {
74
78
  if (items.length === 0)
75
79
  return null;
76
80
  return `Tab ${items[0].index}`;
77
- }, ...(ngDevMode ? [{ debugName: "tabLabel" }] : []));
81
+ }, /* @ts-ignore */
82
+ ...(ngDevMode ? [{ debugName: "tabLabel" }] : /* istanbul ignore next */ []));
78
83
  constructor() {
79
84
  effect((onCleanup) => {
80
85
  const el = this.rendererService().renderedElement();
@@ -99,7 +104,7 @@ export class A11yOverlayHostComponent {
99
104
  } if (rf & 2) {
100
105
  let tmp_0_0;
101
106
  i0.ɵɵconditional((tmp_0_0 = ctx.bounds()) ? 0 : -1, tmp_0_0);
102
- } }, styles: ["[_nghost-%COMP%] { display: contents; }\n .a11y-mark[_ngcontent-%COMP%] {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n }\n .outline[_ngcontent-%COMP%] {\n border: 2px solid rgba(59, 130, 246, 0.95);\n border-radius: 4px;\n background: rgba(59, 130, 246, 0.08);\n }\n .tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 4px;\n background: rgba(17, 24, 39, 0.92);\n color: var(--prism-text-light, #fff);\n font: 11px/1.4 var(--font-mono);\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);\n }\n .kb[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%] { background: rgba(5, 150, 105, 0.95); }"], changeDetection: 0 });
107
+ } }, styles: ["[_nghost-%COMP%] { display: contents; }\n .a11y-mark[_ngcontent-%COMP%] {\n position: absolute;\n pointer-events: none;\n z-index: 1;\n }\n .outline[_ngcontent-%COMP%] {\n border: 2px solid rgba(59, 130, 246, 0.95);\n border-radius: 4px;\n background: rgba(59, 130, 246, 0.08);\n }\n .tag[_ngcontent-%COMP%] {\n display: inline-block;\n padding: 2px 6px;\n border-radius: 4px;\n background: rgba(17, 24, 39, 0.92);\n color: var(--prism-text-light, #fff);\n font: 11px/1.4 var(--font-mono);\n white-space: nowrap;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);\n }\n .kb[_ngcontent-%COMP%] .tag[_ngcontent-%COMP%] { background: rgba(5, 150, 105, 0.95); }"] });
103
108
  }
104
109
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yOverlayHostComponent, [{
105
110
  type: Component,
@@ -1,7 +1,8 @@
1
1
  import { Injectable, signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class A11yPanelStateService {
4
- activeTab = signal('violations', ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
4
+ activeTab = signal('violations', /* @ts-ignore */
5
+ ...(ngDevMode ? [{ debugName: "activeTab" }] : /* istanbul ignore next */ []));
5
6
  static ɵfac = function A11yPanelStateService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11yPanelStateService)(); };
6
7
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: A11yPanelStateService, factory: A11yPanelStateService.ɵfac, providedIn: 'root' });
7
8
  }
@@ -43,16 +43,19 @@ function A11yPanelComponent_Conditional_13_Template(rf, ctx) { if (rf & 1) {
43
43
  export class A11yPanelComponent {
44
44
  auditService = inject(A11yAuditService);
45
45
  state = inject(A11yPanelStateService);
46
- activeComponent = input(null, ...(ngDevMode ? [{ debugName: "activeComponent" }] : []));
46
+ activeComponent = input(null, /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
47
48
  disabled = computed(() => {
48
49
  const comp = this.activeComponent();
49
50
  const config = comp?.meta.showcaseConfig.meta?.['a11y'];
50
51
  return config?.disable === true;
51
- }, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
52
+ }, /* @ts-ignore */
53
+ ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
52
54
  violationCount = computed(() => {
53
55
  const r = this.auditService.results();
54
56
  return r ? r.violations.length : null;
55
- }, ...(ngDevMode ? [{ debugName: "violationCount" }] : []));
57
+ }, /* @ts-ignore */
58
+ ...(ngDevMode ? [{ debugName: "violationCount" }] : /* istanbul ignore next */ []));
56
59
  static ɵfac = function A11yPanelComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11yPanelComponent)(); };
57
60
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yPanelComponent, selectors: [["prism-a11y-panel"]], inputs: { activeComponent: [1, "activeComponent"] }, decls: 14, vars: 10, consts: [[1, "a11y-panel"], [1, "subtabs"], [1, "st-tab", 3, "click"], [1, "st-badge", 3, "st-badge--ok", "st-badge--warn"], [1, "a11y-content"], [1, "a11y-disabled"], [1, "st-badge"]], template: function A11yPanelComponent_Template(rf, ctx) { if (rf & 1) {
58
61
  i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "button", 2);
@@ -91,7 +94,7 @@ export class A11yPanelComponent {
91
94
  } }, dependencies: [A11yViolationsComponent,
92
95
  A11yKeyboardComponent,
93
96
  A11yTreeComponent,
94
- A11ySrComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .a11y-panel[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .subtabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n padding: 10px 20px 0;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg-elevated);\n position: sticky;\n top: 0;\n z-index: 2;\n }\n\n .st-tab[_ngcontent-%COMP%] {\n padding: 7px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--prism-text-muted);\n border-radius: var(--radius-sm) var(--radius-sm) 0 0;\n position: relative;\n display: flex;\n align-items: center;\n gap: 6px;\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n transition: color var(--dur-fast);\n }\n .st-tab[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .st-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .st-tab--active[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: var(--prism-primary);\n border-radius: 1px;\n }\n\n .st-badge[_ngcontent-%COMP%] {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n }\n .st-badge--ok[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-success) 18%, transparent);\n color: var(--prism-success);\n }\n .st-badge--warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n\n .a11y-content[_ngcontent-%COMP%] { flex: 1; overflow: auto; min-height: 0; }\n\n .a11y-disabled[_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 }"], changeDetection: 0 });
97
+ A11ySrComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .a11y-panel[_ngcontent-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .subtabs[_ngcontent-%COMP%] {\n display: flex;\n gap: 2px;\n padding: 10px 20px 0;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg-elevated);\n position: sticky;\n top: 0;\n z-index: 2;\n }\n\n .st-tab[_ngcontent-%COMP%] {\n padding: 7px 12px;\n font-size: 12px;\n font-weight: 500;\n color: var(--prism-text-muted);\n border-radius: var(--radius-sm) var(--radius-sm) 0 0;\n position: relative;\n display: flex;\n align-items: center;\n gap: 6px;\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n transition: color var(--dur-fast);\n }\n .st-tab[_ngcontent-%COMP%]:hover { color: var(--prism-text-2); }\n .st-tab--active[_ngcontent-%COMP%] { color: var(--prism-text); }\n .st-tab--active[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: var(--prism-primary);\n border-radius: 1px;\n }\n\n .st-badge[_ngcontent-%COMP%] {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n }\n .st-badge--ok[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-success) 18%, transparent);\n color: var(--prism-success);\n }\n .st-badge--warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n\n .a11y-content[_ngcontent-%COMP%] { flex: 1; overflow: auto; min-height: 0; }\n\n .a11y-disabled[_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 }"] });
95
98
  }
96
99
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yPanelComponent, [{
97
100
  type: Component,
@@ -1,7 +1,8 @@
1
1
  import { Injectable, signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class A11yPerspectiveService {
4
- mode = signal('visual', ...(ngDevMode ? [{ debugName: "mode" }] : []));
4
+ mode = signal('visual', /* @ts-ignore */
5
+ ...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
5
6
  static ɵfac = function A11yPerspectiveService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11yPerspectiveService)(); };
6
7
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: A11yPerspectiveService, factory: A11yPerspectiveService.ɵfac, providedIn: 'root' });
7
8
  }
@@ -16,12 +16,15 @@ const R = 54;
16
16
  const CIRCUMFERENCE = 2 * Math.PI * R;
17
17
  let nextId = 0;
18
18
  export class A11yScoreComponent {
19
- score = input.required(...(ngDevMode ? [{ debugName: "score" }] : []));
20
- compact = input(false, ...(ngDevMode ? [{ debugName: "compact" }] : []));
19
+ score = input.required(/* @ts-ignore */
20
+ ...(ngDevMode ? [{ debugName: "score" }] : /* istanbul ignore next */ []));
21
+ compact = input(false, /* @ts-ignore */
22
+ ...(ngDevMode ? [{ debugName: "compact" }] : /* istanbul ignore next */ []));
21
23
  gradientId = `prism-sg-${nextId++}`;
22
24
  R = R;
23
25
  CIRC = CIRCUMFERENCE;
24
- dashOffset = computed(() => CIRCUMFERENCE - (this.score() / 100) * CIRCUMFERENCE, ...(ngDevMode ? [{ debugName: "dashOffset" }] : []));
26
+ dashOffset = computed(() => CIRCUMFERENCE - (this.score() / 100) * CIRCUMFERENCE, /* @ts-ignore */
27
+ ...(ngDevMode ? [{ debugName: "dashOffset" }] : /* istanbul ignore next */ []));
25
28
  static ɵfac = function A11yScoreComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11yScoreComponent)(); };
26
29
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yScoreComponent, selectors: [["prism-a11y-score"]], inputs: { score: [1, "score"], compact: [1, "compact"] }, decls: 9, vars: 7, consts: [[1, "score-ring"], ["viewBox", "0 0 128 128"], ["x1", "0", "y1", "0", "x2", "1", "y2", "1", 3, "id"], ["offset", "0%", 1, "gradient-start"], ["offset", "100%", 1, "gradient-end"], ["cx", "64", "cy", "64", 1, "track"], ["cx", "64", "cy", "64", 1, "fill"], [1, "score-val"], [1, "score-num"], [1, "score-max"]], template: function A11yScoreComponent_Template(rf, ctx) { if (rf & 1) {
27
30
  i0.ɵɵdomElementStart(0, "div", 0);
@@ -42,7 +45,7 @@ export class A11yScoreComponent {
42
45
  i0.ɵɵattribute("r", ctx.R)("stroke-dasharray", ctx.CIRC)("stroke-dashoffset", ctx.dashOffset())("stroke", "url(#" + ctx.gradientId + ")");
43
46
  i0.ɵɵadvance();
44
47
  i0.ɵɵconditional(!ctx.compact() ? 8 : -1);
45
- } }, styles: ["[_nghost-%COMP%] { display: inline-flex; }\n\n .score-ring[_ngcontent-%COMP%] {\n position: relative;\n width: 128px;\n height: 128px;\n }\n .compact[_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], .compact [_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], \n [style*=\"width:18px\"][_nghost-%COMP%] .score-ring[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] circle[_ngcontent-%COMP%] {\n fill: none;\n stroke-width: 10;\n }\n .track[_ngcontent-%COMP%] { stroke: var(--prism-input-bg); }\n .gradient-start[_ngcontent-%COMP%] { stop-color: var(--prism-primary); }\n .gradient-end[_ngcontent-%COMP%] { stop-color: var(--prism-accent); }\n .fill[_ngcontent-%COMP%] {\n stroke-linecap: round;\n transition: stroke-dashoffset 0.5s ease;\n }\n\n .score-val[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n }\n .score-num[_ngcontent-%COMP%] {\n font-size: 30px;\n font-weight: 700;\n letter-spacing: -0.02em;\n background: linear-gradient(135deg, var(--prism-primary), var(--prism-accent));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n font-family: var(--font-mono);\n }\n .score-max[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }"], changeDetection: 0 });
48
+ } }, styles: ["[_nghost-%COMP%] { display: inline-flex; }\n\n .score-ring[_ngcontent-%COMP%] {\n position: relative;\n width: 128px;\n height: 128px;\n }\n .compact[_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], .compact [_nghost-%COMP%] .score-ring[_ngcontent-%COMP%], \n [style*=\"width:18px\"][_nghost-%COMP%] .score-ring[_ngcontent-%COMP%] {\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] svg[_ngcontent-%COMP%] {\n transform: rotate(-90deg);\n width: 100%;\n height: 100%;\n }\n\n .score-ring[_ngcontent-%COMP%] circle[_ngcontent-%COMP%] {\n fill: none;\n stroke-width: 10;\n }\n .track[_ngcontent-%COMP%] { stroke: var(--prism-input-bg); }\n .gradient-start[_ngcontent-%COMP%] { stop-color: var(--prism-primary); }\n .gradient-end[_ngcontent-%COMP%] { stop-color: var(--prism-accent); }\n .fill[_ngcontent-%COMP%] {\n stroke-linecap: round;\n transition: stroke-dashoffset 0.5s ease;\n }\n\n .score-val[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 0;\n }\n .score-num[_ngcontent-%COMP%] {\n font-size: 30px;\n font-weight: 700;\n letter-spacing: -0.02em;\n background: linear-gradient(135deg, var(--prism-primary), var(--prism-accent));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n font-family: var(--font-mono);\n }\n .score-max[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }"] });
46
49
  }
47
50
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yScoreComponent, [{
48
51
  type: Component,
@@ -37,8 +37,10 @@ export class A11ySrOverlayComponent {
37
37
  rendererService = inject(PrismRendererService);
38
38
  srService = inject(A11ySrService);
39
39
  elementRef = inject((ElementRef));
40
- badges = signal([], ...(ngDevMode ? [{ debugName: "badges" }] : []));
41
- showOverlay = signal(false, ...(ngDevMode ? [{ debugName: "showOverlay" }] : []));
40
+ badges = signal([], /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "badges" }] : /* istanbul ignore next */ []));
42
+ showOverlay = signal(false, /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "showOverlay" }] : /* istanbul ignore next */ []));
42
44
  activeIdx = 0;
43
45
  rafId = null;
44
46
  constructor() {
@@ -98,7 +100,7 @@ export class A11ySrOverlayComponent {
98
100
  i0.ɵɵconditionalCreate(0, A11ySrOverlayComponent_Conditional_0_Template, 2, 0);
99
101
  } if (rf & 2) {
100
102
  i0.ɵɵconditional(ctx.showOverlay() ? 0 : -1);
101
- } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-sr-ov__focus[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid var(--prism-primary);\n border-radius: 4px;\n background: rgba(167, 139, 250, 0.08);\n box-shadow: 0 0 0 4px rgba(167, 139, 250, 0.12);\n }\n\n .prism-a11y-sr-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n height: 18px;\n padding: 0 5px;\n min-width: 18px;\n background: var(--prism-primary);\n color: white;\n border-radius: 9px;\n font-size: 9px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 1.5px white, 0 2px 4px rgba(0, 0, 0, 0.25);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-sr-ov__badge--active[_ngcontent-%COMP%] {\n background: var(--prism-primary-from);\n box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(124, 58, 237, 0.4);\n }"], changeDetection: 0 });
103
+ } }, styles: ["[_nghost-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n z-index: 100;\n overflow: hidden;\n }\n\n .prism-a11y-sr-ov__focus[_ngcontent-%COMP%] {\n position: absolute;\n border: 2px solid var(--prism-primary);\n border-radius: 4px;\n background: rgba(167, 139, 250, 0.08);\n box-shadow: 0 0 0 4px rgba(167, 139, 250, 0.12);\n }\n\n .prism-a11y-sr-ov__badge[_ngcontent-%COMP%] {\n position: absolute;\n height: 18px;\n padding: 0 5px;\n min-width: 18px;\n background: var(--prism-primary);\n color: white;\n border-radius: 9px;\n font-size: 9px;\n font-weight: 700;\n display: flex;\n align-items: center;\n justify-content: center;\n box-shadow: 0 0 0 1.5px white, 0 2px 4px rgba(0, 0, 0, 0.25);\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-sr-ov__badge--active[_ngcontent-%COMP%] {\n background: var(--prism-primary-from);\n box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(124, 58, 237, 0.4);\n }"] });
102
104
  }
103
105
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11ySrOverlayComponent, [{
104
106
  type: Component,
@@ -70,13 +70,14 @@ export class A11ySrComponent {
70
70
  return [];
71
71
  const doc = root.ownerDocument;
72
72
  return this.srService.buildAnnouncementList(root, doc ? (id) => doc.getElementById(id) : undefined);
73
- }, ...(ngDevMode ? [{ debugName: "announcements" }] : []));
73
+ }, /* @ts-ignore */
74
+ ...(ngDevMode ? [{ debugName: "announcements" }] : /* istanbul ignore next */ []));
74
75
  static ɵfac = function A11ySrComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11ySrComponent)(); };
75
76
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11ySrComponent, selectors: [["prism-a11y-sr"]], decls: 3, vars: 1, consts: [[1, "sr-empty"], [1, "sr-body"], [1, "sr-line"], [1, "sr-step"], [1, "sr-text"], [1, "sr-name"]], template: function A11ySrComponent_Template(rf, ctx) { if (rf & 1) {
76
77
  i0.ɵɵconditionalCreate(0, A11ySrComponent_Conditional_0_Template, 2, 0, "div", 0)(1, A11ySrComponent_Conditional_1_Template, 2, 0, "div", 0)(2, A11ySrComponent_Conditional_2_Template, 3, 0, "div", 1);
77
78
  } if (rf & 2) {
78
79
  i0.ɵɵconditional(!ctx.rendererService.renderedElement() ? 0 : !ctx.announcements().length ? 1 : 2);
79
- } }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .sr-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--prism-text-muted); font-size: 13px;\n }\n\n .sr-body[_ngcontent-%COMP%] {\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .sr-line[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 56px 1fr;\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 }\n\n .sr-step[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-text-ghost);\n font-weight: 600;\n }\n\n .sr-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n line-height: 1.5;\n }\n\n .sr-name[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 600;\n font-style: normal;\n }\n\n .sr-text[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11.5px;\n color: var(--prism-text-muted);\n padding: 1px 5px;\n background: var(--prism-input-bg);\n border-radius: var(--radius-xs);\n }"], changeDetection: 0 });
80
+ } }, styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .sr-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--prism-text-muted); font-size: 13px;\n }\n\n .sr-body[_ngcontent-%COMP%] {\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 10px;\n }\n\n .sr-line[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 56px 1fr;\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 }\n\n .sr-step[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-text-ghost);\n font-weight: 600;\n }\n\n .sr-text[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n line-height: 1.5;\n }\n\n .sr-name[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 600;\n font-style: normal;\n }\n\n .sr-text[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11.5px;\n color: var(--prism-text-muted);\n padding: 1px 5px;\n background: var(--prism-input-bg);\n border-radius: var(--radius-xs);\n }"] });
80
81
  }
81
82
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11ySrComponent, [{
82
83
  type: Component,
@@ -69,10 +69,14 @@ function A11yTreeComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
69
69
  i0.ɵɵproperty("node", ctx_r0.tree())("depth", 0)("isLast", true);
70
70
  } }
71
71
  export class A11yTreeNodeComponent {
72
- node = input.required(...(ngDevMode ? [{ debugName: "node" }] : []));
73
- depth = input(0, ...(ngDevMode ? [{ debugName: "depth" }] : []));
74
- isLast = input(false, ...(ngDevMode ? [{ debugName: "isLast" }] : []));
75
- expanded = signal(true, ...(ngDevMode ? [{ debugName: "expanded" }] : []));
72
+ node = input.required(/* @ts-ignore */
73
+ ...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
74
+ depth = input(0, /* @ts-ignore */
75
+ ...(ngDevMode ? [{ debugName: "depth" }] : /* istanbul ignore next */ []));
76
+ isLast = input(false, /* @ts-ignore */
77
+ ...(ngDevMode ? [{ debugName: "isLast" }] : /* istanbul ignore next */ []));
78
+ expanded = signal(true, /* @ts-ignore */
79
+ ...(ngDevMode ? [{ debugName: "expanded" }] : /* istanbul ignore next */ []));
76
80
  lastElement = null;
77
81
  constructor() {
78
82
  effect(() => {
@@ -93,7 +97,8 @@ export class A11yTreeNodeComponent {
93
97
  key,
94
98
  label: value === true ? key : `${key}=${value}`,
95
99
  }));
96
- }, ...(ngDevMode ? [{ debugName: "stateEntries" }] : []));
100
+ }, /* @ts-ignore */
101
+ ...(ngDevMode ? [{ debugName: "stateEntries" }] : /* istanbul ignore next */ []));
97
102
  toggleExpanded() {
98
103
  if (this.node().children.length) {
99
104
  this.expanded.update((v) => !v);
@@ -128,7 +133,7 @@ export class A11yTreeNodeComponent {
128
133
  i0.ɵɵrepeater(ctx.stateEntries());
129
134
  i0.ɵɵadvance(2);
130
135
  i0.ɵɵconditional(ctx.expanded() && ctx.node().children.length ? 9 : -1);
131
- } }, dependencies: [A11yTreeNodeComponent], styles: ["[_nghost-%COMP%] { display: block; }\n\n .aria-tree-line[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 2px 0;\n font-family: var(--font-mono);\n font-size: 12.5px;\n line-height: 1.8;\n color: var(--prism-text-2);\n }\n .aria-tree-line--hidden[_ngcontent-%COMP%] { opacity: 0.4; }\n\n .indent[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n opacity: 0.5;\n user-select: none;\n flex-shrink: 0;\n white-space: pre;\n font-size: 12px;\n text-align: right;\n }\n\n .tree-toggle[_ngcontent-%COMP%] {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 10px;\n color: var(--prism-text-muted);\n padding: 0;\n width: 12px;\n flex-shrink: 0;\n }\n\n .role[_ngcontent-%COMP%] { color: var(--prism-primary); font-weight: 600; }\n .name[_ngcontent-%COMP%] { color: var(--prism-text); }\n .attr[_ngcontent-%COMP%] { color: var(--prism-text-ghost); }"], changeDetection: 0 });
136
+ } }, dependencies: [A11yTreeNodeComponent], styles: ["[_nghost-%COMP%] { display: block; }\n\n .aria-tree-line[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 2px 0;\n font-family: var(--font-mono);\n font-size: 12.5px;\n line-height: 1.8;\n color: var(--prism-text-2);\n }\n .aria-tree-line--hidden[_ngcontent-%COMP%] { opacity: 0.4; }\n\n .indent[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n opacity: 0.5;\n user-select: none;\n flex-shrink: 0;\n white-space: pre;\n font-size: 12px;\n text-align: right;\n }\n\n .tree-toggle[_ngcontent-%COMP%] {\n background: none;\n border: none;\n cursor: pointer;\n font-size: 10px;\n color: var(--prism-text-muted);\n padding: 0;\n width: 12px;\n flex-shrink: 0;\n }\n\n .role[_ngcontent-%COMP%] { color: var(--prism-primary); font-weight: 600; }\n .name[_ngcontent-%COMP%] { color: var(--prism-text); }\n .attr[_ngcontent-%COMP%] { color: var(--prism-text-ghost); }"] });
132
137
  }
133
138
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yTreeNodeComponent, [{
134
139
  type: Component,
@@ -171,13 +176,14 @@ export class A11yTreeComponent {
171
176
  return null;
172
177
  const doc = root.ownerDocument;
173
178
  return this.treeService.buildTree(root, doc ? (id) => doc.getElementById(id) : undefined);
174
- }, ...(ngDevMode ? [{ debugName: "tree" }] : []));
179
+ }, /* @ts-ignore */
180
+ ...(ngDevMode ? [{ debugName: "tree" }] : /* istanbul ignore next */ []));
175
181
  static ɵfac = function A11yTreeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11yTreeComponent)(); };
176
182
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yTreeComponent, selectors: [["prism-a11y-tree"]], decls: 2, vars: 1, consts: [[1, "tree-empty"], [1, "aria-tree"], [3, "node", "depth", "isLast"]], template: function A11yTreeComponent_Template(rf, ctx) { if (rf & 1) {
177
183
  i0.ɵɵconditionalCreate(0, A11yTreeComponent_Conditional_0_Template, 2, 0, "div", 0)(1, A11yTreeComponent_Conditional_1_Template, 2, 3, "div", 1);
178
184
  } if (rf & 2) {
179
185
  i0.ɵɵconditional(!ctx.rendererService.renderedElement() ? 0 : ctx.tree() ? 1 : -1);
180
- } }, dependencies: [A11yTreeNodeComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .aria-tree[_ngcontent-%COMP%] {\n padding: 14px 20px;\n }\n\n .tree-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--prism-text-muted); font-size: 13px;\n }"], changeDetection: 0 });
186
+ } }, dependencies: [A11yTreeNodeComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; overflow: auto; }\n\n .aria-tree[_ngcontent-%COMP%] {\n padding: 14px 20px;\n }\n\n .tree-empty[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--prism-text-muted); font-size: 13px;\n }"] });
181
187
  }
182
188
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yTreeComponent, [{
183
189
  type: Component,
@@ -4,7 +4,7 @@ export declare class A11yViolationsComponent {
4
4
  protected readonly auditService: A11yAuditService;
5
5
  protected readonly scoreResult: import("@angular/core").Signal<import("./a11y.types.js").A11yScoreResult | null>;
6
6
  protected readonly allResults: import("@angular/core").Signal<import("axe-core").Result[]>;
7
- protected sevColor(impact: string | undefined): string;
7
+ protected sevColor(impact: string | null | undefined): string;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<A11yViolationsComponent, never>;
9
9
  static ɵcmp: i0.ɵɵComponentDeclaration<A11yViolationsComponent, "prism-a11y-violations", never, {}, {}, never, never, true, never>;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"a11y-violations.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-violations.component.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;;AAqB3D,qBA0Ka,uBAAuB;IAClC,SAAS,CAAC,QAAQ,CAAC,YAAY,mBAA4B;IAE3D,SAAS,CAAC,QAAQ,CAAC,WAAW,mFAE5B;IAEF,SAAS,CAAC,QAAQ,CAAC,UAAU,8DAU1B;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;yCAnB3C,uBAAuB;2CAAvB,uBAAuB;CAsBnC"}
1
+ {"version":3,"file":"a11y-violations.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-violations.component.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;;AAqB3D,qBA0Ka,uBAAuB;IAClC,SAAS,CAAC,QAAQ,CAAC,YAAY,mBAA4B;IAE3D,SAAS,CAAC,QAAQ,CAAC,WAAW,mFAE5B;IAEF,SAAS,CAAC,QAAQ,CAAC,UAAU,8DAU1B;IAEH,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;yCAnBlD,uBAAuB;2CAAvB,uBAAuB;CAsBnC"}