@ng-prism/core 21.4.5 → 21.5.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 (104) hide show
  1. package/dist/app/canvas/prism-canvas-rulers.component.d.ts +16 -0
  2. package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -0
  3. package/dist/app/canvas/prism-canvas-rulers.component.js +177 -0
  4. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +14 -0
  5. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -0
  6. package/dist/app/canvas/prism-canvas-toolbar.component.js +144 -0
  7. package/dist/app/canvas/prism-code-drawer.component.d.ts +12 -0
  8. package/dist/app/canvas/prism-code-drawer.component.d.ts.map +1 -0
  9. package/dist/app/canvas/prism-code-drawer.component.js +114 -0
  10. package/dist/app/component-head/prism-component-head.component.d.ts +15 -0
  11. package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -0
  12. package/dist/app/component-head/prism-component-head.component.js +207 -0
  13. package/dist/app/component-head/prism-stat.component.d.ts +10 -0
  14. package/dist/app/component-head/prism-stat.component.d.ts.map +1 -0
  15. package/dist/app/component-head/prism-stat.component.js +52 -0
  16. package/dist/app/controls/boolean-control.component.d.ts.map +1 -1
  17. package/dist/app/controls/boolean-control.component.js +16 -44
  18. package/dist/app/controls/json-control.component.d.ts.map +1 -1
  19. package/dist/app/controls/json-control.component.js +33 -54
  20. package/dist/app/controls/number-control.component.d.ts.map +1 -1
  21. package/dist/app/controls/number-control.component.js +18 -35
  22. package/dist/app/controls/string-control.component.d.ts.map +1 -1
  23. package/dist/app/controls/string-control.component.js +14 -41
  24. package/dist/app/controls/union-control.component.d.ts.map +1 -1
  25. package/dist/app/controls/union-control.component.js +26 -50
  26. package/dist/app/directives/prism-resizer.directive.d.ts +14 -0
  27. package/dist/app/directives/prism-resizer.directive.d.ts.map +1 -0
  28. package/dist/app/directives/prism-resizer.directive.js +71 -0
  29. package/dist/app/header/prism-header.component.d.ts +3 -0
  30. package/dist/app/header/prism-header.component.d.ts.map +1 -1
  31. package/dist/app/header/prism-header.component.js +91 -215
  32. package/dist/app/icons/prism-icon.component.d.ts +10 -0
  33. package/dist/app/icons/prism-icon.component.d.ts.map +1 -0
  34. package/dist/app/icons/prism-icon.component.js +64 -0
  35. package/dist/app/index.d.ts +4 -3
  36. package/dist/app/index.d.ts.map +1 -1
  37. package/dist/app/index.js +4 -3
  38. package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
  39. package/dist/app/layout-menu/prism-layout-menu.component.js +63 -69
  40. package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -1
  41. package/dist/app/panels/a11y/a11y-core.plugin.js +1 -0
  42. package/dist/app/panels/a11y/a11y-keyboard.component.d.ts.map +1 -1
  43. package/dist/app/panels/a11y/a11y-keyboard.component.js +61 -100
  44. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts +4 -0
  45. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
  46. package/dist/app/panels/a11y/a11y-overlay-host.component.js +87 -11
  47. package/dist/app/panels/a11y/a11y-panel.component.d.ts +0 -2
  48. package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
  49. package/dist/app/panels/a11y/a11y-panel.component.js +70 -85
  50. package/dist/app/panels/a11y/a11y-score.component.d.ts +2 -1
  51. package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
  52. package/dist/app/panels/a11y/a11y-score.component.js +55 -49
  53. package/dist/app/panels/a11y/a11y-sr.component.d.ts +1 -9
  54. package/dist/app/panels/a11y/a11y-sr.component.d.ts.map +1 -1
  55. package/dist/app/panels/a11y/a11y-sr.component.js +60 -208
  56. package/dist/app/panels/a11y/a11y-tree.component.d.ts +2 -4
  57. package/dist/app/panels/a11y/a11y-tree.component.d.ts.map +1 -1
  58. package/dist/app/panels/a11y/a11y-tree.component.js +92 -137
  59. package/dist/app/panels/a11y/a11y-violations.component.d.ts +2 -6
  60. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
  61. package/dist/app/panels/a11y/a11y-violations.component.js +126 -373
  62. package/dist/app/panels/controls/controls-plugin.d.ts.map +1 -1
  63. package/dist/app/panels/controls/controls-plugin.js +1 -0
  64. package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
  65. package/dist/app/panels/controls/prism-controls-panel.component.js +96 -88
  66. package/dist/app/panels/events/events-plugin.d.ts.map +1 -1
  67. package/dist/app/panels/events/events-plugin.js +1 -0
  68. package/dist/app/panels/events/prism-events-panel.component.d.ts +1 -0
  69. package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
  70. package/dist/app/panels/events/prism-events-panel.component.js +44 -46
  71. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +7 -2
  72. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  73. package/dist/app/panels/panel-host/prism-panel-host.component.js +102 -42
  74. package/dist/app/renderer/prism-renderer.component.d.ts +5 -6
  75. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  76. package/dist/app/renderer/prism-renderer.component.js +84 -150
  77. package/dist/app/services/prism-canvas.service.d.ts +18 -0
  78. package/dist/app/services/prism-canvas.service.d.ts.map +1 -0
  79. package/dist/app/services/prism-canvas.service.js +63 -0
  80. package/dist/app/services/prism-theme.service.d.ts +13 -1
  81. package/dist/app/services/prism-theme.service.d.ts.map +1 -1
  82. package/dist/app/services/prism-theme.service.js +56 -9
  83. package/dist/app/shell/prism-shell.component.d.ts +1 -2
  84. package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
  85. package/dist/app/shell/prism-shell.component.js +189 -178
  86. package/dist/app/sidebar/prism-sidebar.component.d.ts +16 -10
  87. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  88. package/dist/app/sidebar/prism-sidebar.component.js +318 -204
  89. package/dist/app/theme/prism-default-theme.d.ts +1 -0
  90. package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
  91. package/dist/app/theme/prism-default-theme.js +53 -34
  92. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +13 -0
  93. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -0
  94. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +134 -0
  95. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
  96. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +15 -11
  97. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  98. package/dist/builder/shared/prism-pipeline.js +22 -5
  99. package/dist/decorator/showcase.decorator.d.ts +1 -3
  100. package/dist/decorator/showcase.decorator.d.ts.map +1 -1
  101. package/dist/decorator/showcase.decorator.js +2 -6
  102. package/dist/plugin/plugin.types.d.ts +1 -0
  103. package/dist/plugin/plugin.types.d.ts.map +1 -1
  104. package/package.json +1 -1
@@ -0,0 +1,64 @@
1
+ import { Component, ChangeDetectionStrategy, input, effect, ElementRef, inject, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ const ICONS = {
4
+ search: '<circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/>',
5
+ 'refresh-cw': '<path d="M21 12a9 9 0 0 1-15.5 6.3L3 16m0 0v5m0-5h5M3 12a9 9 0 0 1 15.5-6.3L21 8m0 0V3m0 5h-5"/>',
6
+ bell: '<path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9"/><path d="M10.3 21a1.94 1.94 0 0 0 3.4 0"/>',
7
+ sun: '<circle cx="12" cy="12" r="4"/><path d="M12 2v2m0 16v2M4.2 4.2l1.4 1.4m12.8 12.8 1.4 1.4M2 12h2m16 0h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4"/>',
8
+ moon: '<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z"/>',
9
+ 'more-horizontal': '<circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/>',
10
+ 'chevron-down': '<path d="m6 9 6 6 6-6"/>',
11
+ 'chevron-right': '<path d="m9 18 6-6-6-6"/>',
12
+ pin: '<path d="M12 17v5"/><path d="M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z"/>',
13
+ box: '<path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"/><path d="m3.3 7 8.7 5 8.7-5M12 22V12"/>',
14
+ 'sliders-horizontal': '<path d="M21 4h-7M10 4H3m18 8h-9M6 12H3m18 8h-5M10 20H3"/><circle cx="8" cy="4" r="2"/><circle cx="14" cy="12" r="2"/><circle cx="18" cy="20" r="2"/>',
15
+ zap: '<path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/>',
16
+ accessibility: '<circle cx="16" cy="4" r="1"/><path d="m18 19 1-7-6 1"/><path d="m5 8 3-3 5.5 3-2.36 3.5"/><path d="M4.24 14.5a5 5 0 0 0 6.88 6"/><path d="M13.76 17.5a5 5 0 0 0-6.88-6"/>',
17
+ 'file-text': '<path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z"/><path d="M14 2v4a2 2 0 0 0 2 2h4"/><path d="M10 9H8m8 4H8m4 4H8"/>',
18
+ figma: '<path d="M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5Z"/><path d="M12 2h3.5a3.5 3.5 0 1 1 0 7H12Z"/><path d="M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0Z"/><path d="M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0Z"/><path d="M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5Z"/>',
19
+ 'box-select': '<path d="M5 3a2 2 0 0 0-2 2"/><path d="M19 3a2 2 0 0 1 2 2"/><path d="M21 19a2 2 0 0 1-2 2"/><path d="M5 21a2 2 0 0 1-2-2"/><path d="M9 3h1m4 0h1M9 21h1m4 0h1M3 9v1m0 4v1M21 9v1m0 4v1"/>',
20
+ activity: '<path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"/>',
21
+ 'shield-check': '<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12 2 2 4-4"/>',
22
+ move: '<path d="M12 2v20M2 12h20m-16-4-4 4 4 4m12-8 4 4-4 4M8 8l-4 4 4 4"/>',
23
+ crosshair: '<circle cx="12" cy="12" r="10"/><path d="M22 12h-4M6 12H2m10-6V2m0 20v-4"/>',
24
+ copy: '<rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>',
25
+ 'maximize-2': '<path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3M3 16v3a2 2 0 0 0 2 2h3m8 0h3a2 2 0 0 0 2-2v-3"/>',
26
+ eye: '<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/>',
27
+ };
28
+ const SVG_NS = 'http://www.w3.org/2000/svg';
29
+ export class PrismIconComponent {
30
+ name = input.required(...(ngDevMode ? [{ debugName: "name" }] : []));
31
+ size = input(16, ...(ngDevMode ? [{ debugName: "size" }] : []));
32
+ el = inject((ElementRef));
33
+ constructor() {
34
+ effect(() => {
35
+ const iconName = this.name();
36
+ const iconSize = this.size();
37
+ const content = ICONS[iconName] ?? '';
38
+ const host = this.el.nativeElement;
39
+ host.innerHTML = '';
40
+ const svg = document.createElementNS(SVG_NS, 'svg');
41
+ svg.setAttribute('width', String(iconSize));
42
+ svg.setAttribute('height', String(iconSize));
43
+ svg.setAttribute('viewBox', '0 0 24 24');
44
+ svg.setAttribute('fill', 'none');
45
+ svg.setAttribute('stroke', 'currentColor');
46
+ svg.setAttribute('stroke-width', '2');
47
+ svg.setAttribute('stroke-linecap', 'round');
48
+ svg.setAttribute('stroke-linejoin', 'round');
49
+ const temp = document.createElementNS(SVG_NS, 'svg');
50
+ temp.innerHTML = content;
51
+ while (temp.firstChild) {
52
+ svg.appendChild(temp.firstChild);
53
+ }
54
+ host.appendChild(svg);
55
+ });
56
+ }
57
+ static ɵfac = function PrismIconComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismIconComponent)(); };
58
+ 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 });
59
+ }
60
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismIconComponent, [{
61
+ type: Component,
62
+ args: [{ selector: 'prism-icon', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: ``, styles: [":host { display: inline-flex; align-items: center; justify-content: center; }"] }]
63
+ }], () => [], { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] }); })();
64
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismIconComponent, { className: "PrismIconComponent", filePath: "app/icons/prism-icon.component.ts", lineNumber: 56 }); })();
@@ -1,12 +1,13 @@
1
- export { PRISM_MANIFEST, PRISM_CONFIG, PRISM_RENDERER_HOOKS } from './tokens/prism-tokens.js';
1
+ export { PRISM_MANIFEST, PRISM_CONFIG, PRISM_RENDERER_HOOKS, } from './tokens/prism-tokens.js';
2
2
  export type { PrismRendererHooks } from './tokens/prism-tokens.js';
3
- export { PRISM_DEFAULT_THEME } from './theme/prism-default-theme.js';
3
+ export { PRISM_DEFAULT_THEME, PRISM_DARK_THEME, PRISM_LIGHT_THEME, PRISM_BASE_TOKENS, } from './theme/prism-default-theme.js';
4
+ export { PrismThemeService } from './services/prism-theme.service.js';
4
5
  export type { NavigationItem } from './services/navigation-item.types.js';
5
6
  export { PrismManifestService } from './services/prism-manifest.service.js';
6
7
  export { PrismSearchService } from './services/prism-search.service.js';
7
8
  export { PrismNavigationService } from './services/prism-navigation.service.js';
8
9
  export { PrismRendererService } from './services/prism-renderer.service.js';
9
- export { PrismEventLogService, type EventLogEntry } from './services/prism-event-log.service.js';
10
+ export { PrismEventLogService, type EventLogEntry, } from './services/prism-event-log.service.js';
10
11
  export { PrismPluginService } from './services/prism-plugin.service.js';
11
12
  export { PrismLayoutService } from './services/prism-layout.service.js';
12
13
  export { PrismUrlStateService } from './services/prism-url-state.service.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAC9F,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAG1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,KAAK,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAG7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAG9F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EACd,YAAY,EACZ,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGnE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAGtE,YAAY,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAG1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EACL,oBAAoB,EACpB,KAAK,aAAa,GACnB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAG7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAGvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kDAAkD,CAAC;AAG9F,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC"}
package/dist/app/index.js CHANGED
@@ -1,13 +1,14 @@
1
1
  // Tokens
2
- export { PRISM_MANIFEST, PRISM_CONFIG, PRISM_RENDERER_HOOKS } from './tokens/prism-tokens.js';
2
+ export { PRISM_MANIFEST, PRISM_CONFIG, PRISM_RENDERER_HOOKS, } from './tokens/prism-tokens.js';
3
3
  // Theme
4
- export { PRISM_DEFAULT_THEME } from './theme/prism-default-theme.js';
4
+ export { PRISM_DEFAULT_THEME, PRISM_DARK_THEME, PRISM_LIGHT_THEME, PRISM_BASE_TOKENS, } from './theme/prism-default-theme.js';
5
+ export { PrismThemeService } from './services/prism-theme.service.js';
5
6
  // Services
6
7
  export { PrismManifestService } from './services/prism-manifest.service.js';
7
8
  export { PrismSearchService } from './services/prism-search.service.js';
8
9
  export { PrismNavigationService } from './services/prism-navigation.service.js';
9
10
  export { PrismRendererService } from './services/prism-renderer.service.js';
10
- export { PrismEventLogService } from './services/prism-event-log.service.js';
11
+ export { PrismEventLogService, } from './services/prism-event-log.service.js';
11
12
  export { PrismPluginService } from './services/prism-plugin.service.js';
12
13
  export { PrismLayoutService } from './services/prism-layout.service.js';
13
14
  export { PrismUrlStateService } from './services/prism-url-state.service.js';
@@ -1 +1 @@
1
- {"version":3,"file":"prism-layout-menu.component.d.ts","sourceRoot":"","sources":["../../../src/app/layout-menu/prism-layout-menu.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;;AAEzE,qBA+Ka,wBAAwB;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IACvD,SAAS,CAAC,QAAQ,CAAC,IAAI,kDAAiB;IAExC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,IAAI;yCAJrE,wBAAwB;2CAAxB,wBAAwB;CAapC"}
1
+ {"version":3,"file":"prism-layout-menu.component.d.ts","sourceRoot":"","sources":["../../../src/app/layout-menu/prism-layout-menu.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;;AAEzE,qBA6La,wBAAwB;IACnC,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IACvD,SAAS,CAAC,QAAQ,CAAC,IAAI,kDAAiB;IAExC,SAAS,CAAC,MAAM,CACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GACvD,IAAI;yCANI,wBAAwB;2CAAxB,wBAAwB;CAuBpC"}
@@ -56,24 +56,6 @@ function PrismLayoutMenuComponent_Conditional_6_Template(rf, ctx) { if (rf & 1)
56
56
  i0.ɵɵdomElementEnd();
57
57
  i0.ɵɵdomElementStart(33, "kbd");
58
58
  i0.ɵɵtext(34, "A");
59
- i0.ɵɵdomElementEnd()()();
60
- i0.ɵɵdomElement(35, "div", 14);
61
- i0.ɵɵdomElementStart(36, "button", 8);
62
- i0.ɵɵdomListener("click", function PrismLayoutMenuComponent_Conditional_6_Template_button_click_36_listener() { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.toggle("orientation")); });
63
- i0.ɵɵdomElementStart(37, "span", 15);
64
- i0.ɵɵnamespaceSVG();
65
- i0.ɵɵdomElementStart(38, "svg", 10);
66
- i0.ɵɵdomElement(39, "rect", 16)(40, "line", 17);
67
- i0.ɵɵdomElementEnd()();
68
- i0.ɵɵnamespaceHTML();
69
- i0.ɵɵdomElementStart(41, "span", 12);
70
- i0.ɵɵtext(42);
71
- i0.ɵɵdomElementEnd();
72
- i0.ɵɵdomElementStart(43, "span", 13)(44, "kbd");
73
- i0.ɵɵtext(45, "\u2325");
74
- i0.ɵɵdomElementEnd();
75
- i0.ɵɵdomElementStart(46, "kbd");
76
- i0.ɵɵtext(47, "D");
77
59
  i0.ɵɵdomElementEnd()()()();
78
60
  } if (rf & 2) {
79
61
  const ctx_r1 = i0.ɵɵnextContext();
@@ -83,8 +65,6 @@ function PrismLayoutMenuComponent_Conditional_6_Template(rf, ctx) { if (rf & 1)
83
65
  i0.ɵɵclassProp("layout-menu__check--on", ctx_r1.layout.toolbarVisible());
84
66
  i0.ɵɵadvance(11);
85
67
  i0.ɵɵclassProp("layout-menu__check--on", ctx_r1.layout.addonsVisible());
86
- i0.ɵɵadvance(17);
87
- i0.ɵɵtextInterpolate1(" Panel: ", ctx_r1.layout.addonsOrientation() === "bottom" ? "bottom \u2192 right" : "right \u2192 bottom", " ");
88
68
  } }
89
69
  export class PrismLayoutMenuComponent {
90
70
  layout = inject(PrismLayoutService);
@@ -107,14 +87,14 @@ export class PrismLayoutMenuComponent {
107
87
  }
108
88
  }
109
89
  static ɵfac = function PrismLayoutMenuComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismLayoutMenuComponent)(); };
110
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismLayoutMenuComponent, selectors: [["prism-layout-menu"]], decls: 7, vars: 3, consts: [[1, "layout-menu"], ["title", "Layout options", 1, "layout-menu__trigger", 3, "click"], ["width", "16", "height", "16", "viewBox", "0 0 16 16", "fill", "none"], ["cx", "8", "cy", "3", "r", "1.25", "fill", "currentColor"], ["cx", "8", "cy", "8", "r", "1.25", "fill", "currentColor"], ["cx", "8", "cy", "13", "r", "1.25", "fill", "currentColor"], [1, "layout-menu__backdrop", 3, "click"], [1, "layout-menu__dropdown"], [1, "layout-menu__item", 3, "click"], [1, "layout-menu__check"], ["width", "12", "height", "12", "viewBox", "0 0 12 12", "fill", "none"], ["d", "M2 6l3 3 5-5", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "layout-menu__label"], [1, "layout-menu__kbd"], [1, "layout-menu__divider"], [1, "layout-menu__icon"], ["x", "1", "y", "1", "width", "10", "height", "10", "rx", "1", "stroke", "currentColor", "stroke-width", "1.2"], ["x1", "6", "y1", "1", "x2", "6", "y2", "11", "stroke", "currentColor", "stroke-width", "1.2"]], template: function PrismLayoutMenuComponent_Template(rf, ctx) { if (rf & 1) {
90
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismLayoutMenuComponent, selectors: [["prism-layout-menu"]], decls: 7, vars: 3, consts: [[1, "layout-menu"], ["title", "Layout options", 1, "layout-menu__trigger", 3, "click"], ["width", "16", "height", "16", "viewBox", "0 0 16 16", "fill", "none"], ["cx", "8", "cy", "3", "r", "1.25", "fill", "currentColor"], ["cx", "8", "cy", "8", "r", "1.25", "fill", "currentColor"], ["cx", "8", "cy", "13", "r", "1.25", "fill", "currentColor"], [1, "layout-menu__backdrop", 3, "click"], [1, "layout-menu__dropdown"], [1, "layout-menu__item", 3, "click"], [1, "layout-menu__check"], ["width", "12", "height", "12", "viewBox", "0 0 12 12", "fill", "none"], ["d", "M2 6l3 3 5-5", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linecap", "round", "stroke-linejoin", "round"], [1, "layout-menu__label"], [1, "layout-menu__kbd"]], template: function PrismLayoutMenuComponent_Template(rf, ctx) { if (rf & 1) {
111
91
  i0.ɵɵdomElementStart(0, "div", 0)(1, "button", 1);
112
92
  i0.ɵɵdomListener("click", function PrismLayoutMenuComponent_Template_button_click_1_listener() { return ctx.open.set(!ctx.open()); });
113
93
  i0.ɵɵnamespaceSVG();
114
94
  i0.ɵɵdomElementStart(2, "svg", 2);
115
95
  i0.ɵɵdomElement(3, "circle", 3)(4, "circle", 4)(5, "circle", 5);
116
96
  i0.ɵɵdomElementEnd()();
117
- i0.ɵɵconditionalCreate(6, PrismLayoutMenuComponent_Conditional_6_Template, 48, 7);
97
+ i0.ɵɵconditionalCreate(6, PrismLayoutMenuComponent_Conditional_6_Template, 35, 6);
118
98
  i0.ɵɵdomElementEnd();
119
99
  } if (rf & 2) {
120
100
  i0.ɵɵadvance();
@@ -134,57 +114,71 @@ export class PrismLayoutMenuComponent {
134
114
  title="Layout options"
135
115
  >
136
116
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none">
137
- <circle cx="8" cy="3" r="1.25" fill="currentColor"/>
138
- <circle cx="8" cy="8" r="1.25" fill="currentColor"/>
139
- <circle cx="8" cy="13" r="1.25" fill="currentColor"/>
117
+ <circle cx="8" cy="3" r="1.25" fill="currentColor" />
118
+ <circle cx="8" cy="8" r="1.25" fill="currentColor" />
119
+ <circle cx="8" cy="13" r="1.25" fill="currentColor" />
140
120
  </svg>
141
121
  </button>
142
122
  @if (open()) {
143
- <div class="layout-menu__backdrop" (click)="open.set(false)"></div>
144
- <div class="layout-menu__dropdown">
145
- <button class="layout-menu__item" (click)="toggle('sidebar')">
146
- <span class="layout-menu__check" [class.layout-menu__check--on]="layout.sidebarVisible()">
147
- <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
148
- <path d="M2 6l3 3 5-5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
149
- </svg>
150
- </span>
151
- <span class="layout-menu__label">Show sidebar</span>
152
- <span class="layout-menu__kbd"><kbd>⌥</kbd><kbd>S</kbd></span>
153
- </button>
154
- <button class="layout-menu__item" (click)="toggle('toolbar')">
155
- <span class="layout-menu__check" [class.layout-menu__check--on]="layout.toolbarVisible()">
156
- <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
157
- <path d="M2 6l3 3 5-5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
158
- </svg>
159
- </span>
160
- <span class="layout-menu__label">Show toolbar</span>
161
- <span class="layout-menu__kbd"><kbd>⌥</kbd><kbd>T</kbd></span>
162
- </button>
163
- <button class="layout-menu__item" (click)="toggle('addons')">
164
- <span class="layout-menu__check" [class.layout-menu__check--on]="layout.addonsVisible()">
165
- <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
166
- <path d="M2 6l3 3 5-5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
167
- </svg>
168
- </span>
169
- <span class="layout-menu__label">Show addons panel</span>
170
- <span class="layout-menu__kbd"><kbd>⌥</kbd><kbd>A</kbd></span>
171
- </button>
172
- <div class="layout-menu__divider"></div>
173
- <button class="layout-menu__item" (click)="toggle('orientation')">
174
- <span class="layout-menu__icon">
175
- <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
176
- <rect x="1" y="1" width="10" height="10" rx="1" stroke="currentColor" stroke-width="1.2"/>
177
- <line x1="6" y1="1" x2="6" y2="11" stroke="currentColor" stroke-width="1.2"/>
178
- </svg>
179
- </span>
180
- <span class="layout-menu__label">
181
- Panel: {{ layout.addonsOrientation() === 'bottom' ? 'bottom → right' : 'right → bottom' }}
182
- </span>
183
- <span class="layout-menu__kbd"><kbd>⌥</kbd><kbd>D</kbd></span>
184
- </button>
185
- </div>
123
+ <div class="layout-menu__backdrop" (click)="open.set(false)"></div>
124
+ <div class="layout-menu__dropdown">
125
+ <button class="layout-menu__item" (click)="toggle('sidebar')">
126
+ <span
127
+ class="layout-menu__check"
128
+ [class.layout-menu__check--on]="layout.sidebarVisible()"
129
+ >
130
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
131
+ <path
132
+ d="M2 6l3 3 5-5"
133
+ stroke="currentColor"
134
+ stroke-width="1.5"
135
+ stroke-linecap="round"
136
+ stroke-linejoin="round"
137
+ />
138
+ </svg>
139
+ </span>
140
+ <span class="layout-menu__label">Show sidebar</span>
141
+ <span class="layout-menu__kbd"><kbd>⌥</kbd><kbd>S</kbd></span>
142
+ </button>
143
+ <button class="layout-menu__item" (click)="toggle('toolbar')">
144
+ <span
145
+ class="layout-menu__check"
146
+ [class.layout-menu__check--on]="layout.toolbarVisible()"
147
+ >
148
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
149
+ <path
150
+ d="M2 6l3 3 5-5"
151
+ stroke="currentColor"
152
+ stroke-width="1.5"
153
+ stroke-linecap="round"
154
+ stroke-linejoin="round"
155
+ />
156
+ </svg>
157
+ </span>
158
+ <span class="layout-menu__label">Show toolbar</span>
159
+ <span class="layout-menu__kbd"><kbd>⌥</kbd><kbd>T</kbd></span>
160
+ </button>
161
+ <button class="layout-menu__item" (click)="toggle('addons')">
162
+ <span
163
+ class="layout-menu__check"
164
+ [class.layout-menu__check--on]="layout.addonsVisible()"
165
+ >
166
+ <svg width="12" height="12" viewBox="0 0 12 12" fill="none">
167
+ <path
168
+ d="M2 6l3 3 5-5"
169
+ stroke="currentColor"
170
+ stroke-width="1.5"
171
+ stroke-linecap="round"
172
+ stroke-linejoin="round"
173
+ />
174
+ </svg>
175
+ </span>
176
+ <span class="layout-menu__label">Show addons panel</span>
177
+ <span class="layout-menu__kbd"><kbd>⌥</kbd><kbd>A</kbd></span>
178
+ </button>
179
+ </div>
186
180
  }
187
181
  </div>
188
182
  `, styles: ["\n .layout-menu { position: relative; }\n\n .layout-menu__trigger {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 30px;\n height: 30px;\n border: 1px solid var(--prism-border);\n border-radius: var(--prism-radius-sm);\n background: transparent;\n color: var(--prism-text-muted);\n cursor: pointer;\n transition: border-color 0.15s, color 0.15s, background 0.15s;\n }\n .layout-menu__trigger:hover,\n .layout-menu__trigger--active {\n border-color: var(--prism-border-strong);\n color: var(--prism-text);\n background: var(--prism-bg-surface);\n }\n\n .layout-menu__backdrop {\n position: fixed;\n inset: 0;\n z-index: 40;\n }\n\n .layout-menu__dropdown {\n position: absolute;\n top: calc(100% + 6px);\n right: 0;\n z-index: 50;\n min-width: 240px;\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--prism-radius);\n box-shadow: 0 8px 32px rgba(0,0,0,0.4);\n padding: 4px;\n }\n\n .layout-menu__item {\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n padding: 7px 10px;\n border: none;\n background: none;\n color: var(--prism-text);\n font-family: var(--prism-font-sans);\n font-size: 13px;\n cursor: pointer;\n border-radius: var(--prism-radius-sm);\n text-align: left;\n transition: background 0.1s;\n }\n .layout-menu__item:hover { background: var(--prism-bg-surface); }\n\n .layout-menu__check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n border: 1px solid var(--prism-border-strong);\n border-radius: 3px;\n flex-shrink: 0;\n color: transparent;\n }\n .layout-menu__check--on {\n background: var(--prism-primary);\n border-color: var(--prism-primary);\n color: white;\n }\n\n .layout-menu__icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--prism-text-muted);\n flex-shrink: 0;\n }\n\n .layout-menu__label { flex: 1; }\n\n .layout-menu__kbd {\n display: flex;\n gap: 2px;\n opacity: 0.6;\n }\n kbd {\n font-family: var(--prism-font-sans);\n font-size: 11px;\n padding: 1px 4px;\n border: 1px solid var(--prism-border-strong);\n border-radius: 3px;\n background: var(--prism-bg-surface);\n color: var(--prism-text-muted);\n }\n\n .layout-menu__divider {\n height: 1px;\n background: var(--prism-border);\n margin: 4px 0;\n }\n "] }]
189
183
  }], null, null); })();
190
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismLayoutMenuComponent, { className: "PrismLayoutMenuComponent", filePath: "app/layout-menu/prism-layout-menu.component.ts", lineNumber: 179 }); })();
184
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismLayoutMenuComponent, { className: "PrismLayoutMenuComponent", filePath: "app/layout-menu/prism-layout-menu.component.ts", lineNumber: 193 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"a11y-core.plugin.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-core.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,eAAO,MAAM,eAAe,EAAE,eAS7B,CAAC"}
1
+ {"version":3,"file":"a11y-core.plugin.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-core.plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,eAAO,MAAM,eAAe,EAAE,eAY7B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export const A11Y_CORE_PANEL = {
2
2
  id: 'a11y',
3
3
  label: 'A11y',
4
+ icon: 'accessibility',
4
5
  position: 'bottom',
5
6
  placement: 'addon',
6
7
  loadComponent: () => import('./a11y-panel.component.js').then((m) => m.A11yPanelComponent),
@@ -1 +1 @@
1
- {"version":3,"file":"a11y-keyboard.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-keyboard.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;;AAEhF,qBAsIa,qBAAqB;IAChC,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+B;IAE/D,QAAQ,CAAC,eAAe,+CAAwB;IAEhD,SAAS,CAAC,QAAQ,CAAC,KAAK,+EAQrB;IAEH,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;yCAhB5B,qBAAqB;2CAArB,qBAAqB;CAoBjC"}
1
+ {"version":3,"file":"a11y-keyboard.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-keyboard.component.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;;AAEhF,qBAwFa,qBAAqB;IAChC,SAAS,CAAC,QAAQ,CAAC,eAAe,uBAAgC;IAClE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+B;IAE/D,QAAQ,CAAC,eAAe,+CAAwB;IAEhD,SAAS,CAAC,QAAQ,CAAC,KAAK,+EAQrB;IAEH,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM;yCAhB5B,qBAAqB;2CAArB,qBAAqB;CAoBjC"}
@@ -1,88 +1,55 @@
1
- import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, inject, input, } from '@angular/core';
2
2
  import { A11yKeyboardService } from './a11y-keyboard.service.js';
3
3
  import { PrismRendererService } from '../../services/prism-renderer.service.js';
4
4
  import * as i0 from "@angular/core";
5
5
  const _forTrack0 = ($index, $item) => $item.index;
6
- function A11yKeyboardComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
7
- i0.ɵɵdomElementStart(0, "div", 1);
8
- i0.ɵɵtext(1, "Select a component to inspect keyboard navigation.");
6
+ function A11yKeyboardComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
7
+ i0.ɵɵdomElementStart(0, "div", 0);
8
+ i0.ɵɵtext(1, " Select a component to inspect keyboard navigation. ");
9
9
  i0.ɵɵdomElementEnd();
10
10
  } }
11
- function A11yKeyboardComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵdomElementStart(0, "div", 1);
11
+ function A11yKeyboardComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵdomElementStart(0, "div", 0);
13
13
  i0.ɵɵtext(1, "No focusable elements found.");
14
14
  i0.ɵɵdomElementEnd();
15
15
  } }
16
- function A11yKeyboardComponent_Conditional_3_For_7_Conditional_6_Template(rf, ctx) { if (rf & 1) {
17
- i0.ɵɵdomElementStart(0, "span", 10);
18
- i0.ɵɵtext(1);
19
- i0.ɵɵdomElementEnd();
20
- i0.ɵɵdomElementStart(2, "span", 11);
21
- i0.ɵɵtext(3);
22
- i0.ɵɵdomElementEnd();
23
- } if (rf & 2) {
24
- const item_r1 = i0.ɵɵnextContext().$implicit;
25
- i0.ɵɵadvance();
26
- i0.ɵɵtextInterpolate1("\"", item_r1.name, "\"");
27
- i0.ɵɵadvance(2);
28
- i0.ɵɵtextInterpolate1("via ", item_r1.nameSource);
29
- } }
30
- function A11yKeyboardComponent_Conditional_3_For_7_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵdomElementStart(0, "span", 12);
32
- i0.ɵɵtext(1);
33
- i0.ɵɵdomElementEnd();
34
- } if (rf & 2) {
35
- const s_r2 = ctx.$implicit;
36
- i0.ɵɵadvance();
37
- i0.ɵɵtextInterpolate(s_r2);
38
- } }
39
- function A11yKeyboardComponent_Conditional_3_For_7_Conditional_7_Template(rf, ctx) { if (rf & 1) {
40
- i0.ɵɵdomElementStart(0, "div", 9);
41
- i0.ɵɵrepeaterCreate(1, A11yKeyboardComponent_Conditional_3_For_7_Conditional_7_For_2_Template, 2, 1, "span", 12, i0.ɵɵrepeaterTrackByIdentity);
42
- i0.ɵɵdomElementEnd();
16
+ function A11yKeyboardComponent_Conditional_2_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
17
+ i0.ɵɵtext(0);
43
18
  } if (rf & 2) {
44
19
  const item_r1 = i0.ɵɵnextContext().$implicit;
45
- i0.ɵɵadvance();
46
- i0.ɵɵrepeater(item_r1.states);
20
+ i0.ɵɵtextInterpolate1(" \u00B7 ", item_r1.states.join(", "), " ");
47
21
  } }
48
- function A11yKeyboardComponent_Conditional_3_For_7_Template(rf, ctx) { if (rf & 1) {
49
- i0.ɵɵdomElementStart(0, "div", 5)(1, "div", 6);
50
- i0.ɵɵtext(2);
51
- i0.ɵɵdomElementEnd();
52
- i0.ɵɵdomElementStart(3, "div", 7)(4, "span", 8);
22
+ function A11yKeyboardComponent_Conditional_2_For_2_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵdomElementStart(0, "div", 2)(1, "div", 3)(2, "kbd");
24
+ i0.ɵɵtext(3);
25
+ i0.ɵɵdomElementEnd()();
26
+ i0.ɵɵdomElementStart(4, "div", 4);
53
27
  i0.ɵɵtext(5);
28
+ i0.ɵɵconditionalCreate(6, A11yKeyboardComponent_Conditional_2_For_2_Conditional_6_Template, 1, 1);
54
29
  i0.ɵɵdomElementEnd();
55
- i0.ɵɵconditionalCreate(6, A11yKeyboardComponent_Conditional_3_For_7_Conditional_6_Template, 4, 2);
56
- i0.ɵɵconditionalCreate(7, A11yKeyboardComponent_Conditional_3_For_7_Conditional_7_Template, 3, 0, "div", 9);
30
+ i0.ɵɵdomElementStart(7, "span", 5);
31
+ i0.ɵɵtext(8);
57
32
  i0.ɵɵdomElementEnd()();
58
33
  } if (rf & 2) {
59
34
  const item_r1 = ctx.$implicit;
60
- const ctx_r2 = i0.ɵɵnextContext(2);
61
- i0.ɵɵadvance(2);
62
- i0.ɵɵtextInterpolate(item_r1.index);
35
+ const ctx_r1 = i0.ɵɵnextContext(2);
63
36
  i0.ɵɵadvance(3);
64
- i0.ɵɵtextInterpolate2("", item_r1.element.tagName.toLowerCase(), "", ctx_r2.typeAttr(item_r1.element));
65
- i0.ɵɵadvance();
66
- i0.ɵɵconditional(item_r1.name ? 6 : -1);
37
+ i0.ɵɵtextInterpolate1("Tab ", item_r1.index);
38
+ i0.ɵɵadvance(2);
39
+ i0.ɵɵtextInterpolate1(" ", item_r1.name ? "\"" + item_r1.name + "\"" : item_r1.element.tagName.toLowerCase() + ctx_r1.typeAttr(item_r1.element), " ");
67
40
  i0.ɵɵadvance();
68
- i0.ɵɵconditional(item_r1.states.length ? 7 : -1);
41
+ i0.ɵɵconditional(item_r1.states.length ? 6 : -1);
42
+ i0.ɵɵadvance(2);
43
+ i0.ɵɵtextInterpolate2("", item_r1.element.tagName.toLowerCase(), "", ctx_r1.typeAttr(item_r1.element));
69
44
  } }
70
- function A11yKeyboardComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
71
- i0.ɵɵdomElementStart(0, "div", 2)(1, "span");
72
- i0.ɵɵtext(2);
73
- i0.ɵɵdomElementEnd();
74
- i0.ɵɵdomElementStart(3, "span", 3);
75
- i0.ɵɵtext(4, "\u25CF Overlay aktiv");
76
- i0.ɵɵdomElementEnd()();
77
- i0.ɵɵdomElementStart(5, "div", 4);
78
- i0.ɵɵrepeaterCreate(6, A11yKeyboardComponent_Conditional_3_For_7_Template, 8, 5, "div", 5, _forTrack0);
45
+ function A11yKeyboardComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵdomElementStart(0, "div", 1);
47
+ i0.ɵɵrepeaterCreate(1, A11yKeyboardComponent_Conditional_2_For_2_Template, 9, 5, "div", 2, _forTrack0);
79
48
  i0.ɵɵdomElementEnd();
80
49
  } if (rf & 2) {
81
- const ctx_r2 = i0.ɵɵnextContext();
82
- i0.ɵɵadvance(2);
83
- i0.ɵɵtextInterpolate1("", ctx_r2.items().length, " fokussierbare Elemente");
84
- i0.ɵɵadvance(4);
85
- i0.ɵɵrepeater(ctx_r2.items());
50
+ const ctx_r1 = i0.ɵɵnextContext();
51
+ i0.ɵɵadvance();
52
+ i0.ɵɵrepeater(ctx_r1.items());
86
53
  } }
87
54
  export class A11yKeyboardComponent {
88
55
  rendererService = inject(PrismRendererService);
@@ -100,51 +67,45 @@ export class A11yKeyboardComponent {
100
67
  return type ? `[type=${type}]` : '';
101
68
  }
102
69
  static ɵfac = function A11yKeyboardComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || A11yKeyboardComponent)(); };
103
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yKeyboardComponent, selectors: [["prism-a11y-keyboard"]], inputs: { activeComponent: [1, "activeComponent"] }, decls: 4, vars: 1, consts: [[1, "prism-a11y-kbd"], [1, "prism-a11y-kbd__empty"], [1, "prism-a11y-kbd__header"], [1, "prism-a11y-kbd__overlay-badge"], [1, "prism-a11y-kbd__list"], [1, "prism-a11y-kbd__item"], [1, "prism-a11y-kbd__num"], [1, "prism-a11y-kbd__info"], [1, "prism-a11y-kbd__tag"], [1, "prism-a11y-kbd__states"], [1, "prism-a11y-kbd__name"], [1, "prism-a11y-kbd__source"], [1, "prism-a11y-kbd__state"]], template: function A11yKeyboardComponent_Template(rf, ctx) { if (rf & 1) {
104
- i0.ɵɵdomElementStart(0, "div", 0);
105
- i0.ɵɵconditionalCreate(1, A11yKeyboardComponent_Conditional_1_Template, 2, 0, "div", 1)(2, A11yKeyboardComponent_Conditional_2_Template, 2, 0, "div", 1)(3, A11yKeyboardComponent_Conditional_3_Template, 8, 1);
106
- i0.ɵɵdomElementEnd();
70
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: A11yKeyboardComponent, selectors: [["prism-a11y-keyboard"]], inputs: { activeComponent: [1, "activeComponent"] }, decls: 3, vars: 1, consts: [[1, "kb-empty"], [1, "kb-body"], [1, "kb-row"], [1, "kb-keys"], [1, "kb-desc"], [1, "kb-tgt"]], template: function A11yKeyboardComponent_Template(rf, ctx) { if (rf & 1) {
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);
107
72
  } if (rf & 2) {
108
- i0.ɵɵadvance();
109
- i0.ɵɵconditional(!ctx.rendererService.renderedElement() ? 1 : !ctx.items().length ? 2 : 3);
110
- } }, styles: ["[_nghost-%COMP%] { display: flex; flex-direction: column; height: 100%; }\n\n .prism-a11y-kbd[_ngcontent-%COMP%] { height: 100%; display: flex; flex-direction: column; }\n\n .prism-a11y-kbd__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 .prism-a11y-kbd__header[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border-bottom: 1px solid var(--prism-border);\n font-size: 12px;\n color: var(--prism-text-muted);\n flex-shrink: 0;\n }\n\n .prism-a11y-kbd__overlay-badge[_ngcontent-%COMP%] {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n background: color-mix(in srgb, #818cf8 12%, transparent);\n color: #818cf8;\n border: 1px solid color-mix(in srgb, #818cf8 22%, transparent);\n }\n\n .prism-a11y-kbd__list[_ngcontent-%COMP%] { flex: 1; overflow: auto; }\n\n .prism-a11y-kbd__item[_ngcontent-%COMP%] {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 10px 16px;\n border-bottom: 1px solid var(--prism-border);\n }\n .prism-a11y-kbd__item[_ngcontent-%COMP%]:hover { background: rgba(129, 140, 248, 0.04); }\n\n .prism-a11y-kbd__num[_ngcontent-%COMP%] {\n width: 20px; height: 20px;\n background: #818cf8;\n color: white;\n border-radius: 50%;\n font-size: 10px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0; margin-top: 1px;\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-kbd__info[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .prism-a11y-kbd__tag[_ngcontent-%COMP%] {\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n color: var(--prism-primary);\n }\n\n .prism-a11y-kbd__name[_ngcontent-%COMP%] {\n font-size: 12px;\n color: var(--prism-text-2);\n }\n\n .prism-a11y-kbd__source[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-text-muted);\n }\n\n .prism-a11y-kbd__states[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 2px;\n }\n\n .prism-a11y-kbd__state[_ngcontent-%COMP%] {\n padding: 0 5px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n background: color-mix(in srgb, #fbbf24 12%, transparent);\n color: #fbbf24;\n }"], changeDetection: 0 });
73
+ i0.ɵɵconditional(!ctx.rendererService.renderedElement() ? 0 : !ctx.items().length ? 1 : 2);
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 }"], changeDetection: 0 });
111
75
  }
112
76
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(A11yKeyboardComponent, [{
113
77
  type: Component,
114
78
  args: [{ selector: 'prism-a11y-keyboard', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
115
- <div class="prism-a11y-kbd">
116
- @if (!rendererService.renderedElement()) {
117
- <div class="prism-a11y-kbd__empty">Select a component to inspect keyboard navigation.</div>
118
- } @else if (!items().length) {
119
- <div class="prism-a11y-kbd__empty">No focusable elements found.</div>
120
- } @else {
121
- <div class="prism-a11y-kbd__header">
122
- <span>{{ items().length }} fokussierbare Elemente</span>
123
- <span class="prism-a11y-kbd__overlay-badge">● Overlay aktiv</span>
79
+ @if (!rendererService.renderedElement()) {
80
+ <div class="kb-empty">
81
+ Select a component to inspect keyboard navigation.
82
+ </div>
83
+ } @else if (!items().length) {
84
+ <div class="kb-empty">No focusable elements found.</div>
85
+ } @else {
86
+ <div class="kb-body">
87
+ @for (item of items(); track item.index) {
88
+ <div class="kb-row">
89
+ <div class="kb-keys">
90
+ <kbd>Tab {{ item.index }}</kbd>
124
91
  </div>
125
- <div class="prism-a11y-kbd__list">
126
- @for (item of items(); track item.index) {
127
- <div class="prism-a11y-kbd__item">
128
- <div class="prism-a11y-kbd__num">{{ item.index }}</div>
129
- <div class="prism-a11y-kbd__info">
130
- <span class="prism-a11y-kbd__tag">{{ item.element.tagName.toLowerCase() }}{{ typeAttr(item.element) }}</span>
131
- @if (item.name) {
132
- <span class="prism-a11y-kbd__name">"{{ item.name }}"</span>
133
- <span class="prism-a11y-kbd__source">via {{ item.nameSource }}</span>
134
- }
135
- @if (item.states.length) {
136
- <div class="prism-a11y-kbd__states">
137
- @for (s of item.states; track s) {
138
- <span class="prism-a11y-kbd__state">{{ s }}</span>
139
- }
140
- </div>
141
- }
142
- </div>
143
- </div>
92
+ <div class="kb-desc">
93
+ {{
94
+ item.name
95
+ ? '"' + item.name + '"'
96
+ : item.element.tagName.toLowerCase() + typeAttr(item.element)
97
+ }}
98
+ @if (item.states.length) { · {{ item.states.join(', ') }}
144
99
  }
145
100
  </div>
101
+ <span class="kb-tgt"
102
+ >{{ item.element.tagName.toLowerCase()
103
+ }}{{ typeAttr(item.element) }}</span
104
+ >
105
+ </div>
146
106
  }
147
107
  </div>
148
- `, styles: ["\n :host { display: flex; flex-direction: column; height: 100%; }\n\n .prism-a11y-kbd { height: 100%; display: flex; flex-direction: column; }\n\n .prism-a11y-kbd__empty {\n display: flex; align-items: center; justify-content: center;\n min-height: 100px; color: var(--prism-text-muted); font-size: 13px;\n }\n\n .prism-a11y-kbd__header {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 16px;\n border-bottom: 1px solid var(--prism-border);\n font-size: 12px;\n color: var(--prism-text-muted);\n flex-shrink: 0;\n }\n\n .prism-a11y-kbd__overlay-badge {\n margin-left: auto;\n padding: 2px 8px;\n border-radius: 10px;\n font-size: 11px;\n font-weight: 600;\n background: color-mix(in srgb, #818cf8 12%, transparent);\n color: #818cf8;\n border: 1px solid color-mix(in srgb, #818cf8 22%, transparent);\n }\n\n .prism-a11y-kbd__list { flex: 1; overflow: auto; }\n\n .prism-a11y-kbd__item {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 10px 16px;\n border-bottom: 1px solid var(--prism-border);\n }\n .prism-a11y-kbd__item:hover { background: rgba(129, 140, 248, 0.04); }\n\n .prism-a11y-kbd__num {\n width: 20px; height: 20px;\n background: #818cf8;\n color: white;\n border-radius: 50%;\n font-size: 10px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0; margin-top: 1px;\n font-family: var(--prism-font-sans, system-ui, sans-serif);\n }\n\n .prism-a11y-kbd__info {\n display: flex;\n flex-direction: column;\n gap: 2px;\n }\n\n .prism-a11y-kbd__tag {\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n color: var(--prism-primary);\n }\n\n .prism-a11y-kbd__name {\n font-size: 12px;\n color: var(--prism-text-2);\n }\n\n .prism-a11y-kbd__source {\n font-size: 11px;\n color: var(--prism-text-muted);\n }\n\n .prism-a11y-kbd__states {\n display: flex;\n flex-wrap: wrap;\n gap: 4px;\n margin-top: 2px;\n }\n\n .prism-a11y-kbd__state {\n padding: 0 5px;\n border-radius: 3px;\n font-size: 10px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n background: color-mix(in srgb, #fbbf24 12%, transparent);\n color: #fbbf24;\n }\n "] }]
108
+ }
109
+ `, styles: ["\n :host { display: block; height: 100%; overflow: auto; }\n\n .kb-empty {\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 {\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n gap: 8px;\n }\n\n .kb-row {\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 { display: flex; gap: 4px; }\n .kb-keys kbd {\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 {\n font-size: 12.5px;\n color: var(--prism-text-2);\n }\n\n .kb-tgt {\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 }\n "] }]
149
110
  }], null, { activeComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeComponent", required: false }] }] }); })();
150
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(A11yKeyboardComponent, { className: "A11yKeyboardComponent", filePath: "app/panels/a11y/a11y-keyboard.component.ts", lineNumber: 139 }); })();
111
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(A11yKeyboardComponent, { className: "A11yKeyboardComponent", filePath: "app/panels/a11y/a11y-keyboard.component.ts", lineNumber: 99 }); })();
@@ -1,5 +1,9 @@
1
1
  import * as i0 from "@angular/core";
2
2
  export declare class A11yOverlayHostComponent {
3
+ private readonly rendererService;
4
+ private readonly keyboardService;
5
+ protected readonly roleLabel: import("@angular/core").Signal<string | null>;
6
+ protected readonly tabLabel: import("@angular/core").Signal<string | null>;
3
7
  static ɵfac: i0.ɵɵFactoryDeclaration<A11yOverlayHostComponent, never>;
4
8
  static ɵcmp: i0.ɵɵComponentDeclaration<A11yOverlayHostComponent, "prism-a11y-overlay-host", never, {}, {}, never, never, true, never>;
5
9
  }
@@ -1 +1 @@
1
- {"version":3,"file":"a11y-overlay-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-overlay-host.component.ts"],"names":[],"mappings":";AAIA,qBAea,wBAAwB;yCAAxB,wBAAwB;2CAAxB,wBAAwB;CAAG"}
1
+ {"version":3,"file":"a11y-overlay-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/a11y/a11y-overlay-host.component.ts"],"names":[],"mappings":";AASA,qBAyCa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA+B;IAE/D,SAAS,CAAC,QAAQ,CAAC,SAAS,gDAKzB;IAEH,SAAS,CAAC,QAAQ,CAAC,QAAQ,gDAUxB;yCArBQ,wBAAwB;2CAAxB,wBAAwB;CAsBpC"}