@ng-prism/core 22.2.0-beta.4 → 22.2.0-beta.5

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 (116) hide show
  1. package/dist/app/canvas/prism-canvas-bg-pill.component.js +1 -1
  2. package/dist/app/canvas/prism-canvas-rulers.component.js +1 -1
  3. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +6 -0
  4. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
  5. package/dist/app/canvas/prism-canvas-toolbar.component.js +11 -5
  6. package/dist/app/canvas/prism-template-popover.component.js +1 -1
  7. package/dist/app/component-head/prism-component-head.component.js +1 -1
  8. package/dist/app/component-head/prism-stat.component.js +1 -1
  9. package/dist/app/component-header/prism-component-header.component.js +1 -1
  10. package/dist/app/controls/boolean-control.component.js +1 -1
  11. package/dist/app/controls/json-control.component.js +1 -1
  12. package/dist/app/controls/number-control.component.js +1 -1
  13. package/dist/app/controls/string-control.component.js +1 -1
  14. package/dist/app/controls/union-control.component.js +1 -1
  15. package/dist/app/header/prism-header.component.js +1 -1
  16. package/dist/app/icons/icon-registry.d.ts +15 -0
  17. package/dist/app/icons/icon-registry.d.ts.map +1 -0
  18. package/dist/app/icons/icon-registry.js +42 -0
  19. package/dist/app/icons/prism-icon.component.d.ts +2 -2
  20. package/dist/app/icons/prism-icon.component.d.ts.map +1 -1
  21. package/dist/app/icons/prism-icon.component.js +7 -32
  22. package/dist/app/layout-menu/prism-layout-menu.component.js +1 -1
  23. package/dist/app/page-renderer/prism-page-renderer.component.js +1 -1
  24. package/dist/app/panels/a11y/a11y-audit.service.d.ts +1 -1
  25. package/dist/app/panels/a11y/a11y-audit.service.d.ts.map +1 -1
  26. package/dist/app/panels/a11y/a11y-header-badge.component.js +1 -1
  27. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +1 -1
  28. package/dist/app/panels/a11y/a11y-keyboard.component.js +1 -1
  29. package/dist/app/panels/a11y/a11y-keyboard.service.d.ts +1 -1
  30. package/dist/app/panels/a11y/a11y-keyboard.service.d.ts.map +1 -1
  31. package/dist/app/panels/a11y/a11y-overlay-host.component.js +1 -1
  32. package/dist/app/panels/a11y/a11y-panel-state.service.d.ts +1 -1
  33. package/dist/app/panels/a11y/a11y-panel-state.service.d.ts.map +1 -1
  34. package/dist/app/panels/a11y/a11y-panel.component.js +1 -1
  35. package/dist/app/panels/a11y/a11y-perspective.service.d.ts +1 -1
  36. package/dist/app/panels/a11y/a11y-perspective.service.d.ts.map +1 -1
  37. package/dist/app/panels/a11y/a11y-score.component.js +1 -1
  38. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +1 -1
  39. package/dist/app/panels/a11y/a11y-sr.component.js +1 -1
  40. package/dist/app/panels/a11y/a11y-sr.service.d.ts +1 -1
  41. package/dist/app/panels/a11y/a11y-sr.service.d.ts.map +1 -1
  42. package/dist/app/panels/a11y/a11y-summary.d.ts +15 -0
  43. package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -0
  44. package/dist/app/panels/a11y/a11y-summary.js +33 -0
  45. package/dist/app/panels/a11y/a11y-tree.component.js +2 -2
  46. package/dist/app/panels/a11y/a11y-tree.service.d.ts +1 -1
  47. package/dist/app/panels/a11y/a11y-tree.service.d.ts.map +1 -1
  48. package/dist/app/panels/a11y/a11y-violations.component.js +3 -3
  49. package/dist/app/panels/a11y/a11y.types.d.ts +14 -0
  50. package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
  51. package/dist/app/panels/builtin-navigation-decorations.d.ts +8 -0
  52. package/dist/app/panels/builtin-navigation-decorations.d.ts.map +1 -0
  53. package/dist/app/panels/builtin-navigation-decorations.js +20 -0
  54. package/dist/app/panels/controls/prism-controls-panel.component.js +1 -1
  55. package/dist/app/panels/events/prism-events-panel.component.js +1 -1
  56. package/dist/app/panels/events/prism-json-node.component.js +1 -1
  57. package/dist/app/panels/panel-host/panel-badge.d.ts +8 -2
  58. package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
  59. package/dist/app/panels/panel-host/panel-badge.js +8 -13
  60. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +8 -2
  61. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  62. package/dist/app/panels/panel-host/prism-panel-host.component.js +20 -13
  63. package/dist/app/renderer/overlay-resolver.d.ts.map +1 -1
  64. package/dist/app/renderer/overlay-resolver.js +12 -1
  65. package/dist/app/renderer/prism-renderer.component.js +3 -5
  66. package/dist/app/services/prism-canvas.service.d.ts +1 -1
  67. package/dist/app/services/prism-canvas.service.d.ts.map +1 -1
  68. package/dist/app/services/prism-capture.service.d.ts +7 -1
  69. package/dist/app/services/prism-capture.service.d.ts.map +1 -1
  70. package/dist/app/services/prism-capture.service.js +7 -1
  71. package/dist/app/services/prism-event-log.service.d.ts +1 -1
  72. package/dist/app/services/prism-event-log.service.d.ts.map +1 -1
  73. package/dist/app/services/prism-layout.service.d.ts +1 -1
  74. package/dist/app/services/prism-layout.service.d.ts.map +1 -1
  75. package/dist/app/services/prism-manifest.service.d.ts +1 -1
  76. package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
  77. package/dist/app/services/prism-navigation.service.d.ts +1 -1
  78. package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
  79. package/dist/app/services/prism-panel.service.d.ts +1 -1
  80. package/dist/app/services/prism-panel.service.d.ts.map +1 -1
  81. package/dist/app/services/prism-persistence.service.d.ts +1 -1
  82. package/dist/app/services/prism-persistence.service.d.ts.map +1 -1
  83. package/dist/app/services/prism-plugin.service.d.ts +8 -2
  84. package/dist/app/services/prism-plugin.service.d.ts.map +1 -1
  85. package/dist/app/services/prism-plugin.service.js +15 -0
  86. package/dist/app/services/prism-renderer.service.d.ts +1 -1
  87. package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
  88. package/dist/app/services/prism-search.service.d.ts +1 -1
  89. package/dist/app/services/prism-search.service.d.ts.map +1 -1
  90. package/dist/app/services/prism-theme.service.d.ts +1 -1
  91. package/dist/app/services/prism-theme.service.d.ts.map +1 -1
  92. package/dist/app/services/prism-url-state.service.d.ts +1 -1
  93. package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
  94. package/dist/app/services/prism-variant-bg.service.d.ts +1 -1
  95. package/dist/app/services/prism-variant-bg.service.d.ts.map +1 -1
  96. package/dist/app/shell/prism-shell.component.js +2 -2
  97. package/dist/app/sidebar/navigation-decorations.d.ts +67 -0
  98. package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -0
  99. package/dist/app/sidebar/navigation-decorations.js +84 -0
  100. package/dist/app/sidebar/prism-sidebar.component.d.ts +23 -6
  101. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  102. package/dist/app/sidebar/prism-sidebar.component.js +120 -45
  103. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +3 -3
  104. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +1 -1
  105. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +1 -1
  106. package/dist/builder/a11y/a11y-report-reader.d.ts +15 -1
  107. package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
  108. package/dist/builder/a11y/a11y-report-reader.js +37 -0
  109. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  110. package/dist/builder/shared/prism-pipeline.js +19 -2
  111. package/dist/plugin/index.d.ts +2 -1
  112. package/dist/plugin/index.d.ts.map +1 -1
  113. package/dist/plugin/index.js +10 -0
  114. package/dist/plugin/plugin.types.d.ts +33 -0
  115. package/dist/plugin/plugin.types.d.ts.map +1 -1
  116. package/package.json +1 -1
@@ -17,9 +17,20 @@ export function resolveOverlay(panels, activePanelId, options) {
17
17
  }
18
18
  if (panel.loadOverlayComponent) {
19
19
  const cached = options.cache.get(panel.id);
20
+ const loadOverlayComponent = panel.loadOverlayComponent;
20
21
  return cached
21
22
  ? { kind: 'eager', component: cached }
22
- : { kind: 'lazy', panelId: panel.id, load: panel.loadOverlayComponent };
23
+ : {
24
+ kind: 'lazy',
25
+ panelId: panel.id,
26
+ // Wrapped rather than passed by reference: handing the bare method
27
+ // over detaches it from its panel, and the renderer would call it
28
+ // with `this === undefined`. A definition written in method
29
+ // shorthand that reads its own object then throws inside a promise
30
+ // the renderer does not catch, and the overlay silently never
31
+ // appears.
32
+ load: () => loadOverlayComponent.call(panel),
33
+ };
23
34
  }
24
35
  return NONE;
25
36
  }
@@ -55,9 +55,7 @@ export class PrismRendererComponent {
55
55
  });
56
56
  panelService = inject(PrismPanelService);
57
57
  pluginService = inject(PrismPluginService);
58
- outlet = viewChild.required('outlet', {
59
- read: ViewContainerRef,
60
- });
58
+ outlet = viewChild.required('outlet', { ...(ngDevMode ? { debugName: "outlet" } : /* istanbul ignore next */ {}), read: ViewContainerRef });
61
59
  componentRef = null;
62
60
  outputSubscriptions = [];
63
61
  lastProjectedContent = undefined;
@@ -249,13 +247,13 @@ export class PrismRendererComponent {
249
247
  i0.ɵɵadvance();
250
248
  i0.ɵɵconditional(!ctx.capture.active() ? 1 : -1);
251
249
  i0.ɵɵadvance();
252
- i0.ɵɵstyleProp("--zoom", ctx.canvasService.zoom());
250
+ i0.ɵɵstyleProp("--%NS%zoom", ctx.canvasService.zoom());
253
251
  i0.ɵɵattribute("data-prism-rendered", ctx.renderedKey())("data-canvas-layout", ctx.canvasLayout());
254
252
  i0.ɵɵadvance(3);
255
253
  i0.ɵɵconditional(ctx.activeOverlay() ? 5 : -1);
256
254
  } }, dependencies: [PrismCanvasRulersComponent,
257
255
  PrismCanvasBgPillComponent,
258
- NgComponentOutlet], styles: ["[_nghost-%COMP%] { display: block; min-height: 0; flex: 1; }\n\n .prism-canvas-stage[_ngcontent-%COMP%] {\n position: relative;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px;\n min-height: 200px;\n height: 100%;\n background-color: var(--prism-bg-surface);\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n transition: filter var(--dur-base);\n --prism-canvas-overlay-top: 12px;\n --prism-canvas-overlay-inline: 20px;\n }\n .prism-canvas-stage[data-rulers][_ngcontent-%COMP%] {\n --prism-canvas-overlay-top: 28px;\n --prism-canvas-overlay-inline: 28px;\n }\n\n .prism-canvas-stage[data-bg=\"plain\"][_ngcontent-%COMP%] {\n background-image: none;\n }\n \n\n\n\n\n .prism-canvas-stage[data-bg=\"light\"][_ngcontent-%COMP%] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"dark\"][_ngcontent-%COMP%] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: none;\n }\n \n\n\n\n\n\n .prism-canvas-stage[data-bg=\"checker\"][_ngcontent-%COMP%], \n .prism-canvas-stage[data-bg=\"transparent\"][_ngcontent-%COMP%] {\n background-image:\n linear-gradient(45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n\n .stage-crosshair[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--dur-base);\n }\n .stage-crosshair.visible[_ngcontent-%COMP%] { opacity: 1; }\n .stage-crosshair[_ngcontent-%COMP%]::before, \n .stage-crosshair[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n }\n .stage-crosshair[_ngcontent-%COMP%]::before { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair[_ngcontent-%COMP%]::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges[_ngcontent-%COMP%] {\n position: absolute;\n top: var(--prism-canvas-overlay-top);\n left: var(--prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--dur-base), left var(--dur-base);\n }\n .c-badge[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: inline-block;\n transform: scale(var(--zoom, 1));\n transition: transform 0.18s;\n }\n .demo-wrap[data-canvas-layout=\"stretch\"][_ngcontent-%COMP%] {\n display: block;\n width: 100%;\n max-width: 800px;\n }"] });
256
+ NgComponentOutlet], styles: ["[_nghost-%COMP%] { display: block; min-height: 0; flex: 1; }\n\n .prism-canvas-stage[_ngcontent-%COMP%] {\n position: relative;\n overflow: auto;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 32px;\n min-height: 200px;\n height: 100%;\n background-color: var(--%NS%prism-bg-surface);\n background-image: radial-gradient(circle, var(--%NS%prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n transition: filter var(--%NS%dur-base);\n --%NS%prism-canvas-overlay-top: 12px;\n --%NS%prism-canvas-overlay-inline: 20px;\n }\n .prism-canvas-stage[data-rulers][_ngcontent-%COMP%] {\n --%NS%prism-canvas-overlay-top: 28px;\n --%NS%prism-canvas-overlay-inline: 28px;\n }\n\n .prism-canvas-stage[data-bg=\"plain\"][_ngcontent-%COMP%] {\n background-image: none;\n }\n \n\n\n\n\n .prism-canvas-stage[data-bg=\"light\"][_ngcontent-%COMP%] {\n background-color: var(--%NS%prism-void-light, #f7f5fc);\n background-image: none;\n }\n .prism-canvas-stage[data-bg=\"dark\"][_ngcontent-%COMP%] {\n background-color: var(--%NS%prism-void-dark, #07050f);\n background-image: none;\n }\n \n\n\n\n\n\n .prism-canvas-stage[data-bg=\"checker\"][_ngcontent-%COMP%], \n .prism-canvas-stage[data-bg=\"transparent\"][_ngcontent-%COMP%] {\n background-image:\n linear-gradient(45deg, var(--%NS%prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--%NS%prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--%NS%prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--%NS%prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n\n .stage-crosshair[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n pointer-events: none;\n opacity: 0;\n transition: opacity var(--%NS%dur-base);\n }\n .stage-crosshair.visible[_ngcontent-%COMP%] { opacity: 1; }\n .stage-crosshair[_ngcontent-%COMP%]::before, \n .stage-crosshair[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n background: color-mix(in srgb, var(--%NS%prism-primary) 20%, transparent);\n }\n .stage-crosshair[_ngcontent-%COMP%]::before { left: 0; right: 0; top: 50%; height: 1px; }\n .stage-crosshair[_ngcontent-%COMP%]::after { top: 0; bottom: 0; left: 50%; width: 1px; }\n\n .canvas-badges[_ngcontent-%COMP%] {\n position: absolute;\n top: var(--%NS%prism-canvas-overlay-top);\n left: var(--%NS%prism-canvas-overlay-inline);\n display: flex;\n gap: 6px;\n pointer-events: none;\n transition: top var(--%NS%dur-base), left var(--%NS%dur-base);\n }\n .c-badge[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-xs);\n padding: 3px 7px;\n border-radius: 4px;\n background: color-mix(in srgb, var(--%NS%prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--%NS%prism-border);\n color: var(--%NS%prism-text-muted);\n backdrop-filter: blur(8px);\n }\n\n .demo-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: inline-block;\n transform: scale(var(--%NS%zoom, 1));\n transition: transform 0.18s;\n }\n .demo-wrap[data-canvas-layout=\"stretch\"][_ngcontent-%COMP%] {\n display: block;\n width: 100%;\n max-width: 800px;\n }"] });
259
257
  }
260
258
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismRendererComponent, [{
261
259
  type: Component,
@@ -15,6 +15,6 @@ export declare class PrismCanvasService {
15
15
  private loadFromStorage;
16
16
  private save;
17
17
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismCanvasService, never>;
18
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismCanvasService>;
18
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
19
19
  }
20
20
  //# sourceMappingURL=prism-canvas.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-canvas.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-canvas.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;;AAG3E,YAAY,EAAE,QAAQ,EAAE,CAAC;AAIzB,qBACa,kBAAkB;IAC7B,QAAQ,CAAC,EAAE,mDAA4B;IACvC,QAAQ,CAAC,IAAI,iDAAa;IAC1B,QAAQ,CAAC,MAAM,kDAAiB;IAChC,QAAQ,CAAC,MAAM,kDAAiB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;;IAWvD,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAKzB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKxB,YAAY,IAAI,IAAI;IAKpB,YAAY,IAAI,IAAI;IAKpB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,IAAI;yCAnDD,kBAAkB;6CAAlB,kBAAkB;CAiE9B"}
1
+ {"version":3,"file":"prism-canvas.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-canvas.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;;AAG3E,YAAY,EAAE,QAAQ,EAAE,CAAC;AAIzB,qBACa,kBAAkB;IAC7B,QAAQ,CAAC,EAAE,mDAA4B;IACvC,QAAQ,CAAC,IAAI,iDAAa;IAC1B,QAAQ,CAAC,MAAM,kDAAiB;IAChC,QAAQ,CAAC,MAAM,kDAAiB;IAEhC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;;IAWvD,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAKzB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAKxB,YAAY,IAAI,IAAI;IAKpB,YAAY,IAAI,IAAI;IAKpB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,IAAI;yCAnDD,kBAAkB;;CAiE9B"}
@@ -17,6 +17,12 @@ export declare const CAPTURE_ATTRIBUTE = "data-prism-capture";
17
17
  * Above `html` the backdrop is the browser's own and no stylesheet reaches it;
18
18
  * a runner has to clear that with `omitBackground: true`.
19
19
  *
20
+ * `prism-shell` is the *host element* the app bootstraps into, not the
21
+ * `div.prism-shell` inside its template — both are in the chain and either can
22
+ * be given a background, a `:host` rule being the easy way to do it by
23
+ * accident. `.prism-body` is the grid between the shell and `.prism-main` and
24
+ * is listed on the same insurance grounds.
25
+ *
20
26
  * Scoped by `:has()` to a *transparent* stage, so the other five backgrounds
21
27
  * behave exactly as before. Exported so a test can assert the invariant
22
28
  * against the real DOM rather than against this list — the list is the
@@ -61,7 +67,7 @@ export declare class PrismCaptureService {
61
67
  constructor();
62
68
  private applyToDocument;
63
69
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismCaptureService, never>;
64
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismCaptureService>;
70
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
65
71
  }
66
72
  /**
67
73
  * Parses the capture flag out of a `window.location.search` string.
@@ -1 +1 @@
1
- {"version":3,"file":"prism-capture.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-capture.service.ts"],"names":[],"mappings":";AAEA,sFAAsF;AACtF,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAItD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,4BAA4B,QAEgG,CAAC;AA+H1I;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBACa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAItB;IAEF,kEAAkE;IAClE,QAAQ,CAAC,MAAM,0CAA6B;;IAM5C,OAAO,CAAC,eAAe;yCAdZ,mBAAmB;6CAAnB,mBAAmB;CAuB/B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIzD"}
1
+ {"version":3,"file":"prism-capture.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-capture.service.ts"],"names":[],"mappings":";AAEA,sFAAsF;AACtF,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,uBAAuB,CAAC;AAItD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,4BAA4B,QAE0H,CAAC;AA+HpK;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBACa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAItB;IAEF,kEAAkE;IAClE,QAAQ,CAAC,MAAM,0CAA6B;;IAM5C,OAAO,CAAC,eAAe;yCAdZ,mBAAmB;;CAuB/B;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIzD"}
@@ -19,6 +19,12 @@ const STYLE_ELEMENT_ID = 'ng-prism-capture-styles';
19
19
  * Above `html` the backdrop is the browser's own and no stylesheet reaches it;
20
20
  * a runner has to clear that with `omitBackground: true`.
21
21
  *
22
+ * `prism-shell` is the *host element* the app bootstraps into, not the
23
+ * `div.prism-shell` inside its template — both are in the chain and either can
24
+ * be given a background, a `:host` rule being the easy way to do it by
25
+ * accident. `.prism-body` is the grid between the shell and `.prism-main` and
26
+ * is listed on the same insurance grounds.
27
+ *
22
28
  * Scoped by `:has()` to a *transparent* stage, so the other five backgrounds
23
29
  * behave exactly as before. Exported so a test can assert the invariant
24
30
  * against the real DOM rather than against this list — the list is the
@@ -27,7 +33,7 @@ const STYLE_ELEMENT_ID = 'ng-prism-capture-styles';
27
33
  * looks correct; it just silently stops testing transparency.
28
34
  */
29
35
  export const CAPTURE_TRANSPARENT_SELECTOR = `[${CAPTURE_ATTRIBUTE}] .prism-canvas-stage[data-bg='transparent'],\n` +
30
- `[${CAPTURE_ATTRIBUTE}] :is(html, body, .prism-shell, .prism-main, .prism-canvas-wrap):has(.prism-canvas-stage[data-bg='transparent'])`;
36
+ `[${CAPTURE_ATTRIBUTE}] :is(html, body, prism-shell, .prism-shell, .prism-body, .prism-main, .prism-canvas-wrap):has(.prism-canvas-stage[data-bg='transparent'])`;
31
37
  /**
32
38
  * Everything capture mode removes from layout so the canvas owns the viewport.
33
39
  *
@@ -11,6 +11,6 @@ export declare class PrismEventLogService {
11
11
  log(name: string, value: unknown): void;
12
12
  clear(): void;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismEventLogService, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismEventLogService>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
15
15
  }
16
16
  //# sourceMappingURL=prism-event-log.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-event-log.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-event-log.service.ts"],"names":[],"mappings":";AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBACa,oBAAoB;IAC/B,QAAQ,CAAC,MAAM,0DAA+B;IAC9C,OAAO,CAAC,OAAO,CAAK;IAEpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAOvC,KAAK,IAAI,IAAI;yCAXF,oBAAoB;6CAApB,oBAAoB;CAchC"}
1
+ {"version":3,"file":"prism-event-log.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-event-log.service.ts"],"names":[],"mappings":";AAEA,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,qBACa,oBAAoB;IAC/B,QAAQ,CAAC,MAAM,0DAA+B;IAC9C,OAAO,CAAC,OAAO,CAAK;IAEpB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAOvC,KAAK,IAAI,IAAI;yCAXF,oBAAoB;;CAchC"}
@@ -21,6 +21,6 @@ export declare class PrismLayoutService {
21
21
  private loadFromStorage;
22
22
  private saveToStorage;
23
23
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismLayoutService, never>;
24
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismLayoutService>;
24
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
25
25
  }
26
26
  //# sourceMappingURL=prism-layout.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-layout.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-layout.service.ts"],"names":[],"mappings":";AAIA,qBACa,kBAAkB;IAC7B,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,aAAa,kDAAgB;IACtC,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,iBAAiB,6DAAwC;IAClE,QAAQ,CAAC,YAAY,iDAAe;IACpC,QAAQ,CAAC,WAAW,iDAAe;IACnC,QAAQ,CAAC,UAAU,iDAAe;IAClC,QAAQ,CAAC,sBAAsB,kDAAiB;;IAMhD,aAAa,IAAI,IAAI;IAKrB,YAAY,IAAI,IAAI;IAKpB,aAAa,IAAI,IAAI;IAKrB,iBAAiB,IAAI,IAAI;IAKzB,qBAAqB,IAAI,IAAI;IAI7B,oBAAoB,IAAI,IAAI;IAI5B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKhC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/B,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,aAAa;yCAnFV,kBAAkB;6CAAlB,kBAAkB;CA+F9B"}
1
+ {"version":3,"file":"prism-layout.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-layout.service.ts"],"names":[],"mappings":";AAIA,qBACa,kBAAkB;IAC7B,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,aAAa,kDAAgB;IACtC,QAAQ,CAAC,cAAc,kDAAgB;IACvC,QAAQ,CAAC,iBAAiB,6DAAwC;IAClE,QAAQ,CAAC,YAAY,iDAAe;IACpC,QAAQ,CAAC,WAAW,iDAAe;IACnC,QAAQ,CAAC,UAAU,iDAAe;IAClC,QAAQ,CAAC,sBAAsB,kDAAiB;;IAMhD,aAAa,IAAI,IAAI;IAKrB,YAAY,IAAI,IAAI;IAKpB,aAAa,IAAI,IAAI;IAKrB,iBAAiB,IAAI,IAAI;IAKzB,qBAAqB,IAAI,IAAI;IAI7B,oBAAoB,IAAI,IAAI;IAI5B,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKjC,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKhC,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/B,OAAO,CAAC,eAAe;IA0BvB,OAAO,CAAC,aAAa;yCAnFV,kBAAkB;;CA+F9B"}
@@ -10,6 +10,6 @@ export declare class PrismManifestService {
10
10
  readonly groupedByCategory: import("@angular/core").Signal<Map<string, RuntimeComponent[]>>;
11
11
  updateManifest(manifest: RuntimeManifest): void;
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismManifestService, never>;
13
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismManifestService>;
13
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
14
14
  }
15
15
  //# sourceMappingURL=prism-manifest.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-manifest.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-manifest.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAGjE,qBACa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAE7E,QAAQ,CAAC,QAAQ,kDAA+B;IAEhD,QAAQ,CAAC,UAAU,qDAAmE;IAEtF,QAAQ,CAAC,KAAK,mDAAkE;IAEhF,QAAQ,CAAC,UAAU,2CAsBhB;IAEH,QAAQ,CAAC,iBAAiB,kEAUvB;IAEH,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;yCA7CpC,oBAAoB;6CAApB,oBAAoB;CAgDhC"}
1
+ {"version":3,"file":"prism-manifest.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-manifest.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAGjE,qBACa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmD;IAE7E,QAAQ,CAAC,QAAQ,kDAA+B;IAEhD,QAAQ,CAAC,UAAU,qDAAmE;IAEtF,QAAQ,CAAC,KAAK,mDAAkE;IAEhF,QAAQ,CAAC,UAAU,2CAsBhB;IAEH,QAAQ,CAAC,iBAAiB,kEAUvB;IAEH,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;yCA7CpC,oBAAoB;;CAgDhC"}
@@ -24,6 +24,6 @@ export declare class PrismNavigationService {
24
24
  selectPage(page: StyleguidePage): void;
25
25
  selectFirst(): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismNavigationService, never>;
27
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismNavigationService>;
27
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
28
28
  }
29
29
  //# sourceMappingURL=prism-navigation.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-navigation.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAWjE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAG1D;AAeD,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,UAAU,gEAAuC;IAE1D,QAAQ,CAAC,eAAe,0DAQrB;IAEH,QAAQ,CAAC,UAAU,wDAQhB;IAEH,QAAQ,CAAC,WAAW,gDAiFjB;IAEH,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIpC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,IAAI,IAAI;yCArHR,sBAAsB;6CAAtB,sBAAsB;CAkIlC"}
1
+ {"version":3,"file":"prism-navigation.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-navigation.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAWjE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAG1D;AAeD,qBACa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,UAAU,gEAAuC;IAE1D,QAAQ,CAAC,eAAe,0DAQrB;IAEH,QAAQ,CAAC,UAAU,wDAQhB;IAEH,QAAQ,CAAC,WAAW,gDAiFjB;IAEH,MAAM,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAIpC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAItC,WAAW,IAAI,IAAI;yCArHR,sBAAsB;;CAkIlC"}
@@ -14,6 +14,6 @@ export declare class PrismPanelService {
14
14
  */
15
15
  getInjector(panelId: string): EnvironmentInjector | null;
16
16
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismPanelService, never>;
17
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismPanelService>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
18
18
  }
19
19
  //# sourceMappingURL=prism-panel.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-panel.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-panel.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EAIpB,MAAM,eAAe,CAAC;;AAIvB,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IAExE,QAAQ,CAAC,aAAa,iDAA8B;IACpD,QAAQ,CAAC,YAAY,iDAA8B;IAEnD,QAAQ,CAAC,mBAAmB,6DAE1B;IAEF;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;yCAjB7C,iBAAiB;6CAAjB,iBAAiB;CAiC7B"}
1
+ {"version":3,"file":"prism-panel.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-panel.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,mBAAmB,EAIpB,MAAM,eAAe,CAAC;;AAIvB,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA+B;IAC3D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0C;IAExE,QAAQ,CAAC,aAAa,iDAA8B;IACpD,QAAQ,CAAC,YAAY,iDAA8B;IAEnD,QAAQ,CAAC,mBAAmB,6DAE1B;IAEF;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI;yCAjB7C,iBAAiB;;CAiC7B"}
@@ -16,6 +16,6 @@ export declare class PrismPersistenceService {
16
16
  private writeDebounced;
17
17
  private serialize;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismPersistenceService, never>;
19
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismPersistenceService>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
20
20
  }
21
21
  //# sourceMappingURL=prism-persistence.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-persistence.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-persistence.service.ts"],"names":[],"mappings":";AA+BA,qBACa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CACyC;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,cAAc,CAAuB;IAE7C,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,SAAS;yCA5GN,uBAAuB;6CAAvB,uBAAuB;CA0InC"}
1
+ {"version":3,"file":"prism-persistence.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-persistence.service.ts"],"names":[],"mappings":";AA+BA,qBACa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CACyC;IAChE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IACvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkC;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAA8C;IAChE,OAAO,CAAC,cAAc,CAAuB;IAE7C,IAAI,IAAI,IAAI;IAWZ,OAAO,CAAC,kBAAkB;IAmD1B,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,SAAS;yCA5GN,uBAAuB;;CA0InC"}
@@ -1,4 +1,4 @@
1
- import type { ControlDefinition, HeaderWidgetDefinition, PanelDefinition } from '../../plugin/plugin.types.js';
1
+ import type { ControlDefinition, HeaderWidgetDefinition, NavigationDecorationDefinition, PanelDefinition } from '../../plugin/plugin.types.js';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class PrismPluginService {
4
4
  private readonly config;
@@ -9,7 +9,13 @@ export declare class PrismPluginService {
9
9
  readonly headerWidgets: import("@angular/core").Signal<HeaderWidgetDefinition[]>;
10
10
  readonly headerWidgetsStart: import("@angular/core").Signal<HeaderWidgetDefinition[]>;
11
11
  readonly headerWidgetsEnd: import("@angular/core").Signal<HeaderWidgetDefinition[]>;
12
+ /**
13
+ * Plugin-contributed navigation markers. Built-ins are merged in by the
14
+ * consumer via `resolveNavigationDecorations`, the same split `panels` and
15
+ * `headerWidgets` already use.
16
+ */
17
+ readonly navigationDecorations: import("@angular/core").Signal<NavigationDecorationDefinition[]>;
12
18
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismPluginService, never>;
13
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismPluginService>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
14
20
  }
15
21
  //# sourceMappingURL=prism-plugin.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-plugin.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-plugin.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAChB,MAAM,8BAA8B,CAAC;;AAGtC,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAE/C,QAAQ,CAAC,MAAM,oDAQZ;IAEH,QAAQ,CAAC,WAAW,oDAElB;IAEF,QAAQ,CAAC,UAAU,oDAEjB;IAEF,QAAQ,CAAC,QAAQ,sDAQd;IAEH,QAAQ,CAAC,aAAa,2DAQnB;IAEH,QAAQ,CAAC,kBAAkB,2DAEzB;IAEF,QAAQ,CAAC,gBAAgB,2DAEvB;yCA/CS,kBAAkB;6CAAlB,kBAAkB;CAgD9B"}
1
+ {"version":3,"file":"prism-plugin.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-plugin.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,sBAAsB,EACtB,8BAA8B,EAC9B,eAAe,EAChB,MAAM,8BAA8B,CAAC;;AAGtC,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAE/C,QAAQ,CAAC,MAAM,oDAQZ;IAEH,QAAQ,CAAC,WAAW,oDAElB;IAEF,QAAQ,CAAC,UAAU,oDAEjB;IAEF,QAAQ,CAAC,QAAQ,sDAQd;IAEH,QAAQ,CAAC,aAAa,2DAQnB;IAEH,QAAQ,CAAC,kBAAkB,2DAEzB;IAEF,QAAQ,CAAC,gBAAgB,2DAEvB;IAEF;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,mEAU5B;yCAhES,kBAAkB;;CAiE9B"}
@@ -41,6 +41,21 @@ export class PrismPluginService {
41
41
  ...(ngDevMode ? [{ debugName: "headerWidgetsStart" }] : /* istanbul ignore next */ []));
42
42
  headerWidgetsEnd = computed(() => this.headerWidgets().filter((w) => (w.placement ?? 'end') === 'end'), /* @ts-ignore */
43
43
  ...(ngDevMode ? [{ debugName: "headerWidgetsEnd" }] : /* istanbul ignore next */ []));
44
+ /**
45
+ * Plugin-contributed navigation markers. Built-ins are merged in by the
46
+ * consumer via `resolveNavigationDecorations`, the same split `panels` and
47
+ * `headerWidgets` already use.
48
+ */
49
+ navigationDecorations = computed(() => {
50
+ const result = [];
51
+ for (const plugin of this.config.plugins ?? []) {
52
+ if (plugin.navigationDecorations) {
53
+ result.push(...plugin.navigationDecorations);
54
+ }
55
+ }
56
+ return result;
57
+ }, /* @ts-ignore */
58
+ ...(ngDevMode ? [{ debugName: "navigationDecorations" }] : /* istanbul ignore next */ []));
44
59
  static ɵfac = function PrismPluginService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismPluginService)(); };
45
60
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PrismPluginService, factory: PrismPluginService.ɵfac, providedIn: 'root' });
46
61
  }
@@ -22,6 +22,6 @@ export declare class PrismRendererService {
22
22
  resetInputsToVariantDefaults(): void;
23
23
  private applyVariant;
24
24
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismRendererService, never>;
25
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismRendererService>;
25
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
26
26
  }
27
27
  //# sourceMappingURL=prism-renderer.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-renderer.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-renderer.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;;AAGrE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GAC5E,oBAAoB,CA+CtB;AAaD,qBACa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IAEpE,QAAQ,CAAC,kBAAkB,iDAAa;IACxC,QAAQ,CAAC,WAAW,kEAAuC;IAC3D,QAAQ,CAAC,aAAa,sFAAkE;IACxF,QAAQ,CAAC,eAAe,yDAAgC;IAExD,QAAQ,CAAC,eAAe,yCAcrB;IAEH,OAAO,CAAC,cAAc,CAAuB;IAE7C,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAM/C,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IA2CnD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI/C,4BAA4B,IAAI,IAAI;IAMpC,OAAO,CAAC,YAAY;yCA3FT,oBAAoB;6CAApB,oBAAoB;CAqGhC"}
1
+ {"version":3,"file":"prism-renderer.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-renderer.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;;AAGrE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC5D;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,gBAAgB,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,GAC5E,oBAAoB,CA+CtB;AAaD,qBACa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IAEpE,QAAQ,CAAC,kBAAkB,iDAAa;IACxC,QAAQ,CAAC,WAAW,kEAAuC;IAC3D,QAAQ,CAAC,aAAa,sFAAkE;IACxF,QAAQ,CAAC,eAAe,yDAAgC;IAExD,QAAQ,CAAC,eAAe,yCAcrB;IAEH,OAAO,CAAC,cAAc,CAAuB;IAE7C,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAM/C,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,IAAI;IA2CnD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI/C,4BAA4B,IAAI,IAAI;IAMpC,OAAO,CAAC,YAAY;yCA3FT,oBAAoB;;CAqGhC"}
@@ -8,6 +8,6 @@ export declare class PrismSearchService {
8
8
  search(q: string): void;
9
9
  clear(): void;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismSearchService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismSearchService>;
11
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
12
12
  }
13
13
  //# sourceMappingURL=prism-search.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-search.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-search.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAGjE,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,KAAK,iDAAc;IAE5B,QAAQ,CAAC,kBAAkB,8EAYxB;IAEH,QAAQ,CAAC,aAAa,mDAQnB;IAEH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvB,KAAK,IAAI,IAAI;yCAjCF,kBAAkB;6CAAlB,kBAAkB;CAoC9B"}
1
+ {"version":3,"file":"prism-search.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-search.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;;AAGjE,qBACa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,QAAQ,CAAC,KAAK,iDAAc;IAE5B,QAAQ,CAAC,kBAAkB,8EAYxB;IAEH,QAAQ,CAAC,aAAa,mDAQnB;IAEH,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIvB,KAAK,IAAI,IAAI;yCAjCF,kBAAkB;;CAoC9B"}
@@ -16,6 +16,6 @@ export declare class PrismThemeService {
16
16
  private applyFavicon;
17
17
  private readStoredTheme;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismThemeService, never>;
19
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismThemeService>;
19
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
20
20
  }
21
21
  //# sourceMappingURL=prism-theme.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-theme.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-theme.service.ts"],"names":[],"mappings":";AAUA,qBACa,iBAAiB;IAC5B,QAAQ,CAAC,KAAK,2DAAoD;IAClE,QAAQ,CAAC,MAAM,0CAA2C;IAE1D,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,cAAc,CAA8B;;IAYpD,MAAM,IAAI,IAAI;IAId,oBAAoB,CAAC,MAAM,EAAE;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,GAAG,IAAI;IAOR,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,eAAe;yCA/DZ,iBAAiB;6CAAjB,iBAAiB;CAsE7B"}
1
+ {"version":3,"file":"prism-theme.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-theme.service.ts"],"names":[],"mappings":";AAUA,qBACa,iBAAiB;IAC5B,QAAQ,CAAC,KAAK,2DAAoD;IAClE,QAAQ,CAAC,MAAM,0CAA2C;IAE1D,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,aAAa,CAA8B;IACnD,OAAO,CAAC,cAAc,CAA8B;;IAYpD,MAAM,IAAI,IAAI;IAId,oBAAoB,CAAC,MAAM,EAAE;QAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,GAAG,IAAI;IAOR,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,eAAe;yCA/DZ,iBAAiB;;CAsE7B"}
@@ -11,6 +11,6 @@ export declare class PrismUrlStateService {
11
11
  private restoreFromUrl;
12
12
  private writeToUrl;
13
13
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismUrlStateService, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismUrlStateService>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
15
15
  }
16
16
  //# sourceMappingURL=prism-url-state.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-url-state.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-url-state.service.ts"],"names":[],"mappings":";AAgBA,qBACa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAAS;IAE7B,IAAI,IAAI,IAAI;IAqBZ,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,UAAU;yCA5EP,oBAAoB;6CAApB,oBAAoB;CAyHhC"}
1
+ {"version":3,"file":"prism-url-state.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-url-state.service.ts"],"names":[],"mappings":";AAgBA,qBACa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkC;IACpE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoB;IAE7C,OAAO,CAAC,YAAY,CAAS;IAE7B,IAAI,IAAI,IAAI;IAqBZ,OAAO,CAAC,cAAc;IA6CtB,OAAO,CAAC,UAAU;yCA5EP,oBAAoB;;CAyHhC"}
@@ -45,6 +45,6 @@ export declare class PrismVariantBgService {
45
45
  setOverride(bg: CanvasBg): void;
46
46
  clearOverride(): void;
47
47
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismVariantBgService, never>;
48
- static ɵprov: i0.ɵɵInjectableDeclaration<PrismVariantBgService>;
48
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
49
49
  }
50
50
  //# sourceMappingURL=prism-variant-bg.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-variant-bg.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-variant-bg.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;;AAU/D,qBACa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IAEvD,QAAQ,CAAC,WAAW,kDAOjB;IAEH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,QAAQ,CAAC,QAAQ,kDAA+B;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,QAAQ,CAAC,SAAS,2CAIhB;IAEF,gFAAgF;IAChF,QAAQ,CAAC,WAAW,0CAMjB;;IAUH,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAI/B,aAAa,IAAI,IAAI;yCA3EV,qBAAqB;6CAArB,qBAAqB;CA8EjC"}
1
+ {"version":3,"file":"prism-variant-bg.service.d.ts","sourceRoot":"","sources":["../../../src/app/services/prism-variant-bg.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;;AAU/D,qBACa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IACzD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;IAEvD,QAAQ,CAAC,WAAW,kDAOjB;IAEH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,QAAQ,CAAC,QAAQ,kDAA+B;IAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,QAAQ,CAAC,SAAS,2CAIhB;IAEF,gFAAgF;IAChF,QAAQ,CAAC,WAAW,0CAMjB;;IAUH,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAI/B,aAAa,IAAI,IAAI;yCA3EV,qBAAqB;;CA8EjC"}
@@ -183,7 +183,7 @@ export class PrismShellComponent {
183
183
  i0.ɵɵadvance();
184
184
  i0.ɵɵconditional(ctx.layout.sidebarVisible() ? 3 : -1);
185
185
  i0.ɵɵadvance();
186
- i0.ɵɵstyleProp("--ph", ctx.showPanel() ? ctx.layout.panelHeight() : 0, "px");
186
+ i0.ɵɵstyleProp("--%NS%ph", ctx.showPanel() ? ctx.layout.panelHeight() : 0, "px");
187
187
  i0.ɵɵadvance();
188
188
  i0.ɵɵconditional(ctx.navigationService.activeComponent() ? 5 : ctx.navigationService.activePage() ? 6 : 7);
189
189
  } }, dependencies: [PrismHeaderComponent,
@@ -197,7 +197,7 @@ export class PrismShellComponent {
197
197
  PrismViewPanelHostComponent,
198
198
  PrismResizerDirective,
199
199
  PrismCanvasToolbarComponent,
200
- PrismTemplatePopoverComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n .prism-shell[_ngcontent-%COMP%] {\n height: 100vh;\n display: grid;\n grid-template-rows: 52px 1fr;\n background: var(--prism-void);\n font-family: var(--font-sans, var(--prism-font-sans));\n color: var(--prism-text);\n overflow: hidden;\n }\n\n .prism-body[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: var(--sw, 264px) 4px 1fr;\n min-height: 0;\n }\n .prism-body--no-sidebar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] {\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] prism-sidebar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n }\n\n .prism-sidebar-foot[_ngcontent-%COMP%] {\n border-top: 1px solid var(--prism-border);\n padding: 10px 14px;\n font-size: 11px;\n color: var(--prism-text-ghost);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .prism-sidebar-foot__logo[_ngcontent-%COMP%] {\n width: 16px;\n flex-shrink: 0;\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%] {\n color: var(--prism-text-ghost);\n text-decoration: none;\n transition: color var(--dur-fast);\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%]:hover {\n color: var(--prism-text-2);\n }\n\n .prism-resizer-col[_ngcontent-%COMP%] {\n width: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-col[_ngcontent-%COMP%]:hover, \n .prism-resizer-col.active[_ngcontent-%COMP%] {\n background: var(--prism-primary);\n }\n\n .prism-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--prism-void);\n overflow: hidden;\n }\n\n .prism-resizer-row[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-row[_ngcontent-%COMP%]:hover, \n .prism-resizer-row.active[_ngcontent-%COMP%] {\n background: var(--prism-primary);\n }\n\n .prism-canvas-wrap[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr);\n background: var(--prism-bg-surface);\n overflow: hidden;\n position: relative;\n }\n .prism-main__view-bar[_ngcontent-%COMP%] { flex-shrink: 0; }\n .prism-main__canvas[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow: auto; }\n\n .prism-main__panel[_ngcontent-%COMP%] {\n height: var(--ph, 260px);\n flex-shrink: 0;\n overflow: hidden;\n min-height: 0;\n }\n\n .prism-shell__empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n grid-row: 1 / -1;\n }\n .prism-shell__empty-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n color: var(--prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--fs-xl);\n font-weight: 500;\n color: var(--prism-text-muted);\n }\n .prism-shell__empty-hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-ghost);\n }"] });
200
+ PrismTemplatePopoverComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n .prism-shell[_ngcontent-%COMP%] {\n height: 100vh;\n display: grid;\n grid-template-rows: 52px 1fr;\n background: var(--%NS%prism-void);\n font-family: var(--%NS%font-sans, var(--%NS%prism-font-sans));\n color: var(--%NS%prism-text);\n overflow: hidden;\n }\n\n .prism-body[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: var(--%NS%sw, 264px) 4px 1fr;\n min-height: 0;\n }\n .prism-body--no-sidebar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] {\n background: var(--%NS%prism-bg);\n border-right: 1px solid var(--%NS%prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] prism-sidebar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n }\n\n .prism-sidebar-foot[_ngcontent-%COMP%] {\n border-top: 1px solid var(--%NS%prism-border);\n padding: 10px 14px;\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .prism-sidebar-foot__logo[_ngcontent-%COMP%] {\n width: 16px;\n flex-shrink: 0;\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n text-decoration: none;\n transition: color var(--%NS%dur-fast);\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n }\n\n .prism-resizer-col[_ngcontent-%COMP%] {\n width: 4px;\n background: transparent;\n transition: background var(--%NS%dur-fast) var(--%NS%ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-col[_ngcontent-%COMP%]:hover, \n .prism-resizer-col.active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n }\n\n .prism-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--%NS%prism-void);\n overflow: hidden;\n }\n\n .prism-resizer-row[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--%NS%dur-fast) var(--%NS%ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-row[_ngcontent-%COMP%]:hover, \n .prism-resizer-row.active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n }\n\n .prism-canvas-wrap[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr);\n background: var(--%NS%prism-bg-surface);\n overflow: hidden;\n position: relative;\n }\n .prism-main__view-bar[_ngcontent-%COMP%] { flex-shrink: 0; }\n .prism-main__canvas[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow: auto; }\n\n .prism-main__panel[_ngcontent-%COMP%] {\n height: var(--%NS%ph, 260px);\n flex-shrink: 0;\n overflow: hidden;\n min-height: 0;\n }\n\n .prism-shell__empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n grid-row: 1 / -1;\n }\n .prism-shell__empty-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n color: var(--%NS%prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--%NS%fs-xl);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n }\n .prism-shell__empty-hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--%NS%fs-lg);\n color: var(--%NS%prism-text-ghost);\n }"] });
201
201
  }
202
202
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismShellComponent, [{
203
203
  type: Component,
@@ -0,0 +1,67 @@
1
+ import type { ComponentStatus } from '../../decorator/showcase.types.js';
2
+ import type { NavigationDecorationDefinition } from '../../plugin/plugin.types.js';
3
+ import type { NavigationItem } from '../services/navigation-item.types.js';
4
+ /** One source's verdict on one component, resolved for rendering. */
5
+ export interface ItemMark {
6
+ /**
7
+ * The definition's id. `resolveNavigationDecorations` guarantees these are
8
+ * unique, so this is the only field safe to `@for track` by — `icon` is a
9
+ * free-form string on a public extension point and two sources can pick the
10
+ * same one.
11
+ */
12
+ id: string;
13
+ icon: string;
14
+ variant: 'warn' | 'danger';
15
+ label: string;
16
+ }
17
+ export interface ItemDecorations {
18
+ /** Ordered marks — never empty; `decorateItem` returns null instead. */
19
+ marks: ItemMark[];
20
+ /** Worst variant across `marks`. Drives the group roll-up. */
21
+ worst: 'warn' | 'danger';
22
+ /** Newline-joined labels for the item's `title` attribute. */
23
+ tooltip: string;
24
+ }
25
+ export interface CategoryRollup {
26
+ /** Number of items in the category carrying at least one mark. */
27
+ problems: number;
28
+ /** Worst variant among them, or null for a clean category. */
29
+ variant: 'warn' | 'danger' | null;
30
+ }
31
+ /**
32
+ * Built-ins first, then plugin contributions, de-duplicated by id and sorted
33
+ * by `order`.
34
+ *
35
+ * Built-ins win a collision: a plugin must not be able to silence or restyle a
36
+ * core source by claiming its id. Sorting is by `order` alone — the reading
37
+ * contract says position names the source, so registration order must not leak
38
+ * into the result.
39
+ */
40
+ export declare function resolveNavigationDecorations(builtin: readonly NavigationDecorationDefinition[], fromPlugins: readonly NavigationDecorationDefinition[]): NavigationDecorationDefinition[];
41
+ /**
42
+ * Runs every definition against one item.
43
+ *
44
+ * Returns `null` rather than an empty result for a clean component, so callers
45
+ * cannot accidentally render an empty marker container.
46
+ */
47
+ export declare function decorateItem(item: NavigationItem, defs: readonly NavigationDecorationDefinition[]): ItemDecorations | null;
48
+ /**
49
+ * Counts the items in one category that carry at least one mark.
50
+ *
51
+ * Items, not marks: a component with three findings is one thing to look at,
52
+ * and a group head reading "3" for a single broken component would overstate
53
+ * the work.
54
+ *
55
+ * Takes each item's already-resolved `ItemDecorations` rather than the raw
56
+ * items — callers already run `decorateItem` once per item to render its
57
+ * marks, and recomputing it here would both waste the work and let the
58
+ * roll-up drift from what actually renders.
59
+ */
60
+ export declare function rollupCategory(decorations: readonly (ItemDecorations | null)[]): CategoryRollup;
61
+ /**
62
+ * The left icon slot carries lifecycle — what the author declared — in form
63
+ * alone. Colour in the sidebar means exactly one thing, measured quality, so a
64
+ * work-in-progress component must never look like a finding.
65
+ */
66
+ export declare function lifecycleIcon(status: ComponentStatus | undefined): string;
67
+ //# sourceMappingURL=navigation-decorations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-decorations.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/navigation-decorations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,qEAAqE;AACrE,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;CACnC;AAID;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,8BAA8B,EAAE,EAClD,WAAW,EAAE,SAAS,8BAA8B,EAAE,GACrD,8BAA8B,EAAE,CAWlC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,SAAS,8BAA8B,EAAE,GAC9C,eAAe,GAAG,IAAI,CAuBxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,GAC/C,cAAc,CAahB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,84 @@
1
+ const SEVERITY = { warn: 1, danger: 2 };
2
+ /**
3
+ * Built-ins first, then plugin contributions, de-duplicated by id and sorted
4
+ * by `order`.
5
+ *
6
+ * Built-ins win a collision: a plugin must not be able to silence or restyle a
7
+ * core source by claiming its id. Sorting is by `order` alone — the reading
8
+ * contract says position names the source, so registration order must not leak
9
+ * into the result.
10
+ */
11
+ export function resolveNavigationDecorations(builtin, fromPlugins) {
12
+ const seen = new Set();
13
+ const result = [];
14
+ for (const def of [...builtin, ...fromPlugins]) {
15
+ if (seen.has(def.id))
16
+ continue;
17
+ seen.add(def.id);
18
+ result.push(def);
19
+ }
20
+ return result.sort((a, b) => (a.order ?? 0) - (b.order ?? 0));
21
+ }
22
+ /**
23
+ * Runs every definition against one item.
24
+ *
25
+ * Returns `null` rather than an empty result for a clean component, so callers
26
+ * cannot accidentally render an empty marker container.
27
+ */
28
+ export function decorateItem(item, defs) {
29
+ if (item.kind !== 'component')
30
+ return null;
31
+ const marks = [];
32
+ for (const def of defs) {
33
+ const badge = def.badge(item.data);
34
+ if (!badge)
35
+ continue;
36
+ marks.push({
37
+ id: def.id,
38
+ icon: def.icon,
39
+ variant: badge.variant,
40
+ label: badge.label,
41
+ });
42
+ }
43
+ if (marks.length === 0)
44
+ return null;
45
+ let worst = 'warn';
46
+ for (const mark of marks) {
47
+ if (SEVERITY[mark.variant] > SEVERITY[worst])
48
+ worst = mark.variant;
49
+ }
50
+ return { marks, worst, tooltip: marks.map((m) => m.label).join('\n') };
51
+ }
52
+ /**
53
+ * Counts the items in one category that carry at least one mark.
54
+ *
55
+ * Items, not marks: a component with three findings is one thing to look at,
56
+ * and a group head reading "3" for a single broken component would overstate
57
+ * the work.
58
+ *
59
+ * Takes each item's already-resolved `ItemDecorations` rather than the raw
60
+ * items — callers already run `decorateItem` once per item to render its
61
+ * marks, and recomputing it here would both waste the work and let the
62
+ * roll-up drift from what actually renders.
63
+ */
64
+ export function rollupCategory(decorations) {
65
+ let problems = 0;
66
+ let variant = null;
67
+ for (const decoration of decorations) {
68
+ if (!decoration)
69
+ continue;
70
+ problems++;
71
+ if (!variant || SEVERITY[decoration.worst] > SEVERITY[variant]) {
72
+ variant = decoration.worst;
73
+ }
74
+ }
75
+ return { problems, variant };
76
+ }
77
+ /**
78
+ * The left icon slot carries lifecycle — what the author declared — in form
79
+ * alone. Colour in the sidebar means exactly one thing, measured quality, so a
80
+ * work-in-progress component must never look like a finding.
81
+ */
82
+ export function lifecycleIcon(status) {
83
+ return status === 'wip' ? 'box-select' : 'box';
84
+ }
@@ -2,16 +2,30 @@ import type { NavigationItem } from '../services/navigation-item.types.js';
2
2
  import { PrismNavigationService } from '../services/prism-navigation.service.js';
3
3
  import { PrismSearchService } from '../services/prism-search.service.js';
4
4
  import type { ComponentStatus } from '../../decorator/showcase.types.js';
5
+ import { type CategoryRollup, type ItemDecorations } from './navigation-decorations.js';
5
6
  import * as i0 from "@angular/core";
6
7
  interface SidebarCategory {
7
8
  name: string;
8
9
  color: string;
9
10
  items: NavigationItem[];
10
11
  }
12
+ interface SidebarItem {
13
+ item: NavigationItem;
14
+ icon: string;
15
+ decorations: ItemDecorations | null;
16
+ }
17
+ interface ComponentCategory {
18
+ name: string;
19
+ color: string;
20
+ items: SidebarItem[];
21
+ rollup: CategoryRollup;
22
+ }
11
23
  export declare class PrismSidebarComponent {
12
24
  protected readonly navigationService: PrismNavigationService;
13
25
  protected readonly searchService: PrismSearchService;
26
+ private readonly pluginService;
14
27
  private readonly filterInput;
28
+ private readonly decorations;
15
29
  protected onGlobalKey(e: KeyboardEvent): void;
16
30
  private readonly collapsedSet;
17
31
  protected readonly totalPages: import("@angular/core").Signal<number>;
@@ -21,18 +35,21 @@ export declare class PrismSidebarComponent {
21
35
  icon: string;
22
36
  color: string;
23
37
  totalCount: number;
24
- categories: {
25
- name: string;
26
- color: string;
27
- items: NavigationItem[];
28
- }[];
38
+ categories: ComponentCategory[];
29
39
  }[]>;
30
40
  protected isCollapsed(key: string): boolean;
31
41
  protected toggleCollapse(key: string): void;
32
42
  protected itemKey(item: NavigationItem): string;
33
43
  protected itemLabel(item: NavigationItem): string;
34
44
  protected itemStatus(item: NavigationItem): ComponentStatus | undefined;
35
- protected itemTooltip(item: NavigationItem): string | null;
45
+ /**
46
+ * Accessible name for the roll-up pill. The pill otherwise renders a bare
47
+ * number distinguished only by colour — a screen reader would read the
48
+ * group head as "Feedback 3 12" with nothing naming what either number
49
+ * means, and a colour-blind reader can't tell them apart at all.
50
+ */
51
+ protected rollupTooltip(rollup: CategoryRollup): string;
52
+ protected itemTooltip(item: NavigationItem, decorations: ItemDecorations | null): string | null;
36
53
  protected isActive(item: NavigationItem): boolean;
37
54
  protected onSelect(item: NavigationItem): void;
38
55
  private loadCollapsed;