@ng-prism/core 21.12.0 → 22.0.0-beta.1

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 +136 -0
  75. package/dist/schematics/ng-add/index.d.ts.map +1 -1
  76. package/dist/schematics/ng-add/index.js +36 -45
  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
@@ -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"}
@@ -94,20 +94,16 @@ function A11yViolationsComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
94
94
  i0.ɵɵrepeaterCreate(12, A11yViolationsComponent_Conditional_1_For_13_Template, 9, 6, "div", 10, _forTrack0, false, A11yViolationsComponent_Conditional_1_ForEmpty_14_Template, 1, 1);
95
95
  i0.ɵɵelementEnd()();
96
96
  } if (rf & 2) {
97
- let tmp_2_0;
98
- let tmp_3_0;
99
- let tmp_4_0;
100
- let tmp_5_0;
101
97
  const ctx_r0 = i0.ɵɵnextContext();
102
98
  i0.ɵɵclassProp("a11y-body--loading", ctx_r0.auditService.running());
103
99
  i0.ɵɵadvance(2);
104
- i0.ɵɵproperty("score", ((tmp_2_0 = ctx_r0.scoreResult()) == null ? null : tmp_2_0.score) ?? 0);
100
+ i0.ɵɵproperty("score", ctx_r0.scoreResult()?.score ?? 0);
105
101
  i0.ɵɵadvance(4);
106
- i0.ɵɵconditional(((tmp_3_0 = ctx_r0.scoreResult()) == null ? null : tmp_3_0.critical) ? 6 : -1);
102
+ i0.ɵɵconditional(ctx_r0.scoreResult()?.critical ? 6 : -1);
107
103
  i0.ɵɵadvance();
108
- i0.ɵɵconditional(((tmp_4_0 = ctx_r0.scoreResult()) == null ? null : tmp_4_0.moderate) ? 7 : -1);
104
+ i0.ɵɵconditional(ctx_r0.scoreResult()?.moderate ? 7 : -1);
109
105
  i0.ɵɵadvance(3);
110
- i0.ɵɵtextInterpolate1("", ((tmp_5_0 = ctx_r0.scoreResult()) == null ? null : tmp_5_0.passes) ?? 0, " pass");
106
+ i0.ɵɵtextInterpolate1("", ctx_r0.scoreResult()?.passes ?? 0, " pass");
111
107
  i0.ɵɵadvance(2);
112
108
  i0.ɵɵrepeater(ctx_r0.allResults());
113
109
  } }
@@ -133,7 +129,8 @@ function sevColor(impact) {
133
129
  }
134
130
  export class A11yViolationsComponent {
135
131
  auditService = inject(A11yAuditService);
136
- scoreResult = computed(() => this.auditService.scoreResult(), ...(ngDevMode ? [{ debugName: "scoreResult" }] : []));
132
+ scoreResult = computed(() => this.auditService.scoreResult(), /* @ts-ignore */
133
+ ...(ngDevMode ? [{ debugName: "scoreResult" }] : /* istanbul ignore next */ []));
137
134
  allResults = computed(() => {
138
135
  const results = this.auditService.results();
139
136
  if (!results)
@@ -142,7 +139,8 @@ export class A11yViolationsComponent {
142
139
  (IMPACT_ORDER[b.impact ?? ''] ?? 4));
143
140
  const passes = results.passes.slice(0, 4);
144
141
  return [...violations, ...passes];
145
- }, ...(ngDevMode ? [{ debugName: "allResults" }] : []));
142
+ }, /* @ts-ignore */
143
+ ...(ngDevMode ? [{ debugName: "allResults" }] : /* istanbul ignore next */ []));
146
144
  sevColor(impact) {
147
145
  return sevColor(impact);
148
146
  }
@@ -151,7 +149,7 @@ export class A11yViolationsComponent {
151
149
  i0.ɵɵconditionalCreate(0, A11yViolationsComponent_Conditional_0_Template, 2, 1, "div", 0)(1, A11yViolationsComponent_Conditional_1_Template, 15, 7, "div", 1)(2, A11yViolationsComponent_Conditional_2_Template, 2, 0, "div", 2);
152
150
  } if (rf & 2) {
153
151
  i0.ɵɵconditional(ctx.auditService.error() ? 0 : ctx.auditService.results() || ctx.auditService.running() ? 1 : 2);
154
- } }, dependencies: [A11yScoreComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; overflow: auto; }\n\n .a11y-body[_ngcontent-%COMP%] {\n padding: 18px 20px;\n display: grid;\n grid-template-columns: 220px 1fr;\n gap: 20px;\n min-height: 0;\n }\n .a11y-body--loading[_ngcontent-%COMP%] { opacity: 0.55; transition: opacity var(--dur-base); }\n\n .score-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 10px;\n align-self: start;\n }\n\n .score-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }\n .score-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 2px;\n font-size: 11px;\n color: var(--prism-text-muted);\n }\n .score-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n .score-meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { width: 6px; height: 6px; border-radius: 50%; display: block; }\n\n .viol-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 0;\n }\n\n .viol[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n border-left: 3px solid var(--sev-color, var(--prism-primary));\n transition: border-color var(--dur-fast);\n }\n .viol[_ngcontent-%COMP%]:hover { border-color: var(--prism-border-strong); }\n\n .viol-sev[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 9.5px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: var(--radius-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: color-mix(in srgb, var(--sev-color) 15%, transparent);\n color: var(--sev-color);\n }\n\n .viol-text[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--prism-text);\n min-width: 0;\n }\n .viol-text[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n display: block;\n font-weight: 600;\n margin-bottom: 1px;\n }\n .viol-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11.5px;\n }\n\n .viol-rule[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-text-ghost);\n padding: 2px 7px;\n background: var(--prism-input-bg);\n border-radius: var(--radius-xs);\n white-space: nowrap;\n }\n\n .a11y-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n color: var(--prism-text-muted);\n font-size: 13px;\n }\n .a11y-status--error[_ngcontent-%COMP%] { color: var(--prism-danger); }\n\n @media (max-width: 1100px) {\n .a11y-body[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"], changeDetection: 0 });
152
+ } }, dependencies: [A11yScoreComponent], styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; overflow: auto; }\n\n .a11y-body[_ngcontent-%COMP%] {\n padding: 18px 20px;\n display: grid;\n grid-template-columns: 220px 1fr;\n gap: 20px;\n min-height: 0;\n }\n .a11y-body--loading[_ngcontent-%COMP%] { opacity: 0.55; transition: opacity var(--dur-base); }\n\n .score-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 10px;\n padding: 14px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 10px;\n align-self: start;\n }\n\n .score-label[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }\n .score-meta[_ngcontent-%COMP%] {\n display: flex;\n gap: 12px;\n margin-top: 2px;\n font-size: 11px;\n color: var(--prism-text-muted);\n }\n .score-meta[_ngcontent-%COMP%] span[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n .score-meta[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { width: 6px; height: 6px; border-radius: 50%; display: block; }\n\n .viol-list[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-width: 0;\n }\n\n .viol[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 10px 12px;\n background: var(--prism-bg-surface);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n border-left: 3px solid var(--sev-color, var(--prism-primary));\n transition: border-color var(--dur-fast);\n }\n .viol[_ngcontent-%COMP%]:hover { border-color: var(--prism-border-strong); }\n\n .viol-sev[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 9.5px;\n font-weight: 700;\n padding: 2px 6px;\n border-radius: var(--radius-xs);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n background: color-mix(in srgb, var(--sev-color) 15%, transparent);\n color: var(--sev-color);\n }\n\n .viol-text[_ngcontent-%COMP%] {\n font-size: 12.5px;\n color: var(--prism-text);\n min-width: 0;\n }\n .viol-text[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n display: block;\n font-weight: 600;\n margin-bottom: 1px;\n }\n .viol-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] {\n color: var(--prism-text-muted);\n font-size: 11.5px;\n }\n\n .viol-rule[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 11px;\n color: var(--prism-text-ghost);\n padding: 2px 7px;\n background: var(--prism-input-bg);\n border-radius: var(--radius-xs);\n white-space: nowrap;\n }\n\n .a11y-status[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 100px;\n color: var(--prism-text-muted);\n font-size: 13px;\n }\n .a11y-status--error[_ngcontent-%COMP%] { color: var(--prism-danger); }\n\n @media (max-width: 1100px) {\n .a11y-body[_ngcontent-%COMP%] { grid-template-columns: 1fr; }\n }"] });
155
153
  }
156
154
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yViolationsComponent, [{
157
155
  type: Component,
@@ -144,7 +144,8 @@ export class PrismControlsPanelComponent {
144
144
  navigationService = inject(PrismNavigationService);
145
145
  rendererService = inject(PrismRendererService);
146
146
  pluginService = inject(PrismPluginService);
147
- activeComponent = input(null, ...(ngDevMode ? [{ debugName: "activeComponent" }] : []));
147
+ activeComponent = input(null, /* @ts-ignore */
148
+ ...(ngDevMode ? [{ debugName: "activeComponent" }] : /* istanbul ignore next */ []));
148
149
  getCustomControl(input) {
149
150
  return (this.pluginService.controls().find((ctrl) => ctrl.matchType(input)) ??
150
151
  null);
@@ -169,7 +170,7 @@ export class PrismControlsPanelComponent {
169
170
  StringControlComponent,
170
171
  NumberControlComponent,
171
172
  UnionControlComponent,
172
- JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-toolbar[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: var(--prism-bg-elevated);\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-dirty-info[_ngcontent-%COMP%] {\n font-size: 11.5px;\n font-family: var(--font-mono);\n color: var(--prism-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .ctl-dirty-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--prism-primary);\n box-shadow: 0 0 6px color-mix(in srgb, var(--prism-primary) 60%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 10px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 500;\n font-family: var(--font-sans);\n color: var(--prism-text-muted);\n background: transparent;\n border: 1px solid var(--prism-border);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:hover {\n color: var(--prism-text);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, var(--prism-border));\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n }\n\n .ctl-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-row[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ctl-label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n font-weight: 500;\n }\n .ctl-type[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-ghost);\n }\n .ctl-type[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n\n .ctl-input[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }"], changeDetection: 0 });
173
+ JsonControlComponent], styles: [".ctl-panel[_ngcontent-%COMP%] {\n overflow-y: auto;\n height: 100%;\n }\n\n .ctl-toolbar[_ngcontent-%COMP%] {\n position: sticky;\n top: 0;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 20px;\n background: var(--prism-bg-elevated);\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-dirty-info[_ngcontent-%COMP%] {\n font-size: 11.5px;\n font-family: var(--font-mono);\n color: var(--prism-text-muted);\n display: inline-flex;\n align-items: center;\n gap: 6px;\n }\n .ctl-dirty-dot[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 50%;\n background: var(--prism-primary);\n box-shadow: 0 0 6px color-mix(in srgb, var(--prism-primary) 60%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%] {\n height: 24px;\n padding: 0 10px;\n border-radius: 5px;\n font-size: 11.5px;\n font-weight: 500;\n font-family: var(--font-sans);\n color: var(--prism-text-muted);\n background: transparent;\n border: 1px solid var(--prism-border);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: 5px;\n transition: color var(--dur-fast), background var(--dur-fast), border-color var(--dur-fast);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:hover {\n color: var(--prism-text);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, var(--prism-border));\n background: color-mix(in srgb, var(--prism-primary) 8%, transparent);\n }\n .ctl-reset-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n }\n\n .ctl-row[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: 180px 1fr;\n align-items: center;\n gap: 12px;\n padding: 8px 20px;\n min-height: 40px;\n border-bottom: 1px solid var(--prism-border);\n }\n .ctl-row[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ctl-label[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n .ctl-name[_ngcontent-%COMP%] {\n font-size: 13px;\n color: var(--prism-text);\n font-weight: 500;\n }\n .ctl-type[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n color: var(--prism-text-ghost);\n }\n .ctl-type[_ngcontent-%COMP%] b[_ngcontent-%COMP%] {\n color: var(--prism-primary);\n font-weight: 500;\n }\n\n .ctl-input[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n }\n\n .ctl-empty[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n font-size: 13px;\n margin: 0;\n padding: 16px 20px;\n }"] });
173
174
  }
174
175
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismControlsPanelComponent, [{
175
176
  type: Component,