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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/app/canvas/canvas-bg.styles.d.ts +19 -0
  2. package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -0
  3. package/dist/app/canvas/canvas-bg.styles.js +58 -0
  4. package/dist/app/canvas/prism-canvas-bg-pill.component.d.ts.map +1 -1
  5. package/dist/app/canvas/prism-canvas-bg-pill.component.js +3 -3
  6. package/dist/app/canvas/prism-canvas-rulers.component.js +1 -1
  7. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +31 -7
  8. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
  9. package/dist/app/canvas/prism-canvas-toolbar.component.js +158 -121
  10. package/dist/app/canvas/prism-template-popover.component.d.ts +0 -3
  11. package/dist/app/canvas/prism-template-popover.component.d.ts.map +1 -1
  12. package/dist/app/canvas/prism-template-popover.component.js +43 -59
  13. package/dist/app/component-head/head-metrics.d.ts +41 -0
  14. package/dist/app/component-head/head-metrics.d.ts.map +1 -0
  15. package/dist/app/component-head/head-metrics.js +39 -0
  16. package/dist/app/component-head/prism-component-head.component.d.ts +10 -2
  17. package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
  18. package/dist/app/component-head/prism-component-head.component.js +107 -209
  19. package/dist/app/component-head/prism-head-gauge.component.d.ts +23 -0
  20. package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -0
  21. package/dist/app/component-head/prism-head-gauge.component.js +123 -0
  22. package/dist/app/component-head/prism-head-info.component.d.ts +23 -0
  23. package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -0
  24. package/dist/app/component-head/prism-head-info.component.js +124 -0
  25. package/dist/app/component-head/prism-stat.component.d.ts +10 -4
  26. package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
  27. package/dist/app/component-head/prism-stat.component.js +34 -44
  28. package/dist/app/controls/boolean-control.component.js +1 -1
  29. package/dist/app/controls/json-control.component.js +1 -1
  30. package/dist/app/controls/number-control.component.js +1 -1
  31. package/dist/app/controls/string-control.component.js +1 -1
  32. package/dist/app/controls/union-control.component.js +1 -1
  33. package/dist/app/header/prism-header.component.js +2 -2
  34. package/dist/app/icons/icon-registry.d.ts +15 -0
  35. package/dist/app/icons/icon-registry.d.ts.map +1 -0
  36. package/dist/app/icons/icon-registry.js +44 -0
  37. package/dist/app/icons/prism-icon.component.d.ts +2 -2
  38. package/dist/app/icons/prism-icon.component.d.ts.map +1 -1
  39. package/dist/app/icons/prism-icon.component.js +7 -32
  40. package/dist/app/index.d.ts +3 -1
  41. package/dist/app/index.d.ts.map +1 -1
  42. package/dist/app/index.js +26 -1
  43. package/dist/app/layout-menu/prism-layout-menu.component.js +3 -3
  44. package/dist/app/overview/overview-panel.d.ts +3 -0
  45. package/dist/app/overview/overview-panel.d.ts.map +1 -0
  46. package/dist/app/overview/overview-panel.js +9 -0
  47. package/dist/app/overview/overview-visibility.d.ts +15 -0
  48. package/dist/app/overview/overview-visibility.d.ts.map +1 -0
  49. package/dist/app/overview/overview-visibility.js +18 -0
  50. package/dist/app/overview/prism-overview-cell.component.d.ts +29 -0
  51. package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -0
  52. package/dist/app/overview/prism-overview-cell.component.js +136 -0
  53. package/dist/app/overview/prism-overview.component.d.ts +17 -0
  54. package/dist/app/overview/prism-overview.component.d.ts.map +1 -0
  55. package/dist/app/overview/prism-overview.component.js +53 -0
  56. package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
  57. package/dist/app/page-renderer/prism-page-renderer.component.js +3 -3
  58. package/dist/app/panels/a11y/a11y-audit.service.d.ts +1 -1
  59. package/dist/app/panels/a11y/a11y-audit.service.d.ts.map +1 -1
  60. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
  61. package/dist/app/panels/a11y/a11y-header-badge.component.js +21 -30
  62. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +1 -1
  63. package/dist/app/panels/a11y/a11y-keyboard.component.js +1 -1
  64. package/dist/app/panels/a11y/a11y-keyboard.service.d.ts +1 -1
  65. package/dist/app/panels/a11y/a11y-keyboard.service.d.ts.map +1 -1
  66. package/dist/app/panels/a11y/a11y-overlay-host.component.js +1 -1
  67. package/dist/app/panels/a11y/a11y-panel-state.service.d.ts +1 -1
  68. package/dist/app/panels/a11y/a11y-panel-state.service.d.ts.map +1 -1
  69. package/dist/app/panels/a11y/a11y-panel.component.js +1 -1
  70. package/dist/app/panels/a11y/a11y-perspective.service.d.ts +1 -1
  71. package/dist/app/panels/a11y/a11y-perspective.service.d.ts.map +1 -1
  72. package/dist/app/panels/a11y/a11y-score.component.js +1 -1
  73. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +1 -1
  74. package/dist/app/panels/a11y/a11y-sr.component.js +1 -1
  75. package/dist/app/panels/a11y/a11y-sr.service.d.ts +1 -1
  76. package/dist/app/panels/a11y/a11y-sr.service.d.ts.map +1 -1
  77. package/dist/app/panels/a11y/a11y-summary.d.ts +15 -0
  78. package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -0
  79. package/dist/app/panels/a11y/a11y-summary.js +33 -0
  80. package/dist/app/panels/a11y/a11y-tree.component.js +2 -2
  81. package/dist/app/panels/a11y/a11y-tree.service.d.ts +1 -1
  82. package/dist/app/panels/a11y/a11y-tree.service.d.ts.map +1 -1
  83. package/dist/app/panels/a11y/a11y-violations.component.js +3 -3
  84. package/dist/app/panels/a11y/a11y.types.d.ts +14 -0
  85. package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
  86. package/dist/app/panels/builtin-navigation-decorations.d.ts +8 -0
  87. package/dist/app/panels/builtin-navigation-decorations.d.ts.map +1 -0
  88. package/dist/app/panels/builtin-navigation-decorations.js +20 -0
  89. package/dist/app/panels/builtin-panels.d.ts.map +1 -1
  90. package/dist/app/panels/builtin-panels.js +2 -0
  91. package/dist/app/panels/controls/prism-controls-panel.component.js +1 -1
  92. package/dist/app/panels/events/prism-events-panel.component.js +1 -1
  93. package/dist/app/panels/events/prism-json-node.component.js +1 -1
  94. package/dist/app/panels/panel-host/panel-badge.d.ts +8 -2
  95. package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
  96. package/dist/app/panels/panel-host/panel-badge.js +8 -13
  97. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +8 -2
  98. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  99. package/dist/app/panels/panel-host/prism-panel-host.component.js +33 -22
  100. package/dist/app/renderer/overlay-resolver.d.ts.map +1 -1
  101. package/dist/app/renderer/overlay-resolver.js +12 -1
  102. package/dist/app/renderer/prism-renderer.component.d.ts +0 -1
  103. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  104. package/dist/app/renderer/prism-renderer.component.js +11 -75
  105. package/dist/app/renderer/projectable-content.d.ts +10 -0
  106. package/dist/app/renderer/projectable-content.d.ts.map +1 -0
  107. package/dist/app/renderer/projectable-content.js +60 -0
  108. package/dist/app/services/prism-canvas.service.d.ts +1 -1
  109. package/dist/app/services/prism-canvas.service.d.ts.map +1 -1
  110. package/dist/app/services/prism-capture.service.d.ts +7 -1
  111. package/dist/app/services/prism-capture.service.d.ts.map +1 -1
  112. package/dist/app/services/prism-capture.service.js +27 -1
  113. package/dist/app/services/prism-event-log.service.d.ts +1 -1
  114. package/dist/app/services/prism-event-log.service.d.ts.map +1 -1
  115. package/dist/app/services/prism-layout.service.d.ts +1 -4
  116. package/dist/app/services/prism-layout.service.d.ts.map +1 -1
  117. package/dist/app/services/prism-layout.service.js +0 -8
  118. package/dist/app/services/prism-manifest.service.d.ts +1 -1
  119. package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
  120. package/dist/app/services/prism-navigation.service.d.ts +1 -1
  121. package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
  122. package/dist/app/services/prism-panel.service.d.ts +19 -1
  123. package/dist/app/services/prism-panel.service.d.ts.map +1 -1
  124. package/dist/app/services/prism-panel.service.js +28 -0
  125. package/dist/app/services/prism-persistence.service.d.ts +1 -1
  126. package/dist/app/services/prism-persistence.service.d.ts.map +1 -1
  127. package/dist/app/services/prism-plugin.service.d.ts +8 -2
  128. package/dist/app/services/prism-plugin.service.d.ts.map +1 -1
  129. package/dist/app/services/prism-plugin.service.js +15 -0
  130. package/dist/app/services/prism-renderer.service.d.ts +1 -1
  131. package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
  132. package/dist/app/services/prism-search.service.d.ts +1 -1
  133. package/dist/app/services/prism-search.service.d.ts.map +1 -1
  134. package/dist/app/services/prism-theme.service.d.ts +1 -1
  135. package/dist/app/services/prism-theme.service.d.ts.map +1 -1
  136. package/dist/app/services/prism-url-state.service.d.ts +1 -1
  137. package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
  138. package/dist/app/services/prism-variant-bg.service.d.ts +1 -1
  139. package/dist/app/services/prism-variant-bg.service.d.ts.map +1 -1
  140. package/dist/app/shared/prism-metric-badge.component.d.ts +32 -0
  141. package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -0
  142. package/dist/app/shared/prism-metric-badge.component.js +70 -0
  143. package/dist/app/shell/prism-shell.component.d.ts +0 -1
  144. package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
  145. package/dist/app/shell/prism-shell.component.js +57 -49
  146. package/dist/app/sidebar/navigation-decorations.d.ts +70 -0
  147. package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -0
  148. package/dist/app/sidebar/navigation-decorations.js +87 -0
  149. package/dist/app/sidebar/prism-sidebar.component.d.ts +29 -8
  150. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  151. package/dist/app/sidebar/prism-sidebar.component.js +129 -76
  152. package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
  153. package/dist/app/theme/prism-default-theme.js +44 -4
  154. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +4 -1
  155. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
  156. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +13 -26
  157. package/dist/app/variant-ribbon/spectrum.d.ts +19 -0
  158. package/dist/app/variant-ribbon/spectrum.d.ts.map +1 -0
  159. package/dist/app/variant-ribbon/spectrum.js +15 -0
  160. package/dist/app/view-tab-bar/next-view-id.d.ts +12 -0
  161. package/dist/app/view-tab-bar/next-view-id.d.ts.map +1 -0
  162. package/dist/app/view-tab-bar/next-view-id.js +16 -0
  163. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts +0 -1
  164. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
  165. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +11 -12
  166. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts +0 -1
  167. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
  168. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +6 -13
  169. package/dist/builder/a11y/a11y-report-reader.d.ts +15 -1
  170. package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
  171. package/dist/builder/a11y/a11y-report-reader.js +37 -0
  172. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  173. package/dist/builder/shared/prism-pipeline.js +19 -2
  174. package/dist/plugin/index.d.ts +2 -1
  175. package/dist/plugin/index.d.ts.map +1 -1
  176. package/dist/plugin/index.js +10 -0
  177. package/dist/plugin/plugin.types.d.ts +33 -0
  178. package/dist/plugin/plugin.types.d.ts.map +1 -1
  179. package/dist/transformer/cli.js +0 -0
  180. package/package.json +1 -1
  181. package/dist/app/canvas/prism-code-drawer.component.d.ts +0 -14
  182. package/dist/app/canvas/prism-code-drawer.component.d.ts.map +0 -1
  183. package/dist/app/canvas/prism-code-drawer.component.js +0 -116
  184. package/dist/app/component-header/prism-component-header.component.d.ts +0 -8
  185. package/dist/app/component-header/prism-component-header.component.d.ts.map +0 -1
  186. package/dist/app/component-header/prism-component-header.component.js +0 -77
  187. package/dist/cli/audit-a11y/aggregator.d.ts +0 -10
  188. package/dist/cli/audit-a11y/aggregator.d.ts.map +0 -1
  189. package/dist/cli/audit-a11y/aggregator.js +0 -64
  190. package/dist/cli/audit-a11y/auditor.d.ts +0 -14
  191. package/dist/cli/audit-a11y/auditor.d.ts.map +0 -1
  192. package/dist/cli/audit-a11y/auditor.js +0 -104
  193. package/dist/cli/audit-a11y/cli.d.ts +0 -3
  194. package/dist/cli/audit-a11y/cli.d.ts.map +0 -1
  195. package/dist/cli/audit-a11y/cli.js +0 -143
  196. package/dist/cli/audit-a11y/index.d.ts +0 -4
  197. package/dist/cli/audit-a11y/index.d.ts.map +0 -1
  198. package/dist/cli/audit-a11y/index.js +0 -3
  199. package/dist/cli/audit-a11y/static-server.d.ts +0 -11
  200. package/dist/cli/audit-a11y/static-server.d.ts.map +0 -1
  201. package/dist/cli/audit-a11y/static-server.js +0 -61
@@ -0,0 +1,124 @@
1
+ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
+ import { PrismIconComponent } from '../icons/prism-icon.component.js';
3
+ import * as i0 from "@angular/core";
4
+ function PrismHeadInfoComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
5
+ i0.ɵɵelementStart(0, "p", 4);
6
+ i0.ɵɵtext(1);
7
+ i0.ɵɵelementEnd();
8
+ } if (rf & 2) {
9
+ const ctx_r0 = i0.ɵɵnextContext();
10
+ i0.ɵɵadvance();
11
+ i0.ɵɵtextInterpolate(ctx_r0.description());
12
+ } }
13
+ function PrismHeadInfoComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵelementStart(0, "p", 5);
15
+ i0.ɵɵtext(1);
16
+ i0.ɵɵelementEnd();
17
+ } if (rf & 2) {
18
+ const ctx_r0 = i0.ɵɵnextContext();
19
+ i0.ɵɵadvance();
20
+ i0.ɵɵtextInterpolate2(" ", ctx_r0.variantCount(), " ", ctx_r0.variantCount() === 1 ? "variant" : "variants", " ");
21
+ } }
22
+ function PrismHeadInfoComponent_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵelementStart(0, "span", 7);
24
+ i0.ɵɵtext(1);
25
+ i0.ɵɵelementEnd();
26
+ } if (rf & 2) {
27
+ const tag_r2 = ctx.$implicit;
28
+ i0.ɵɵadvance();
29
+ i0.ɵɵtextInterpolate(tag_r2);
30
+ } }
31
+ function PrismHeadInfoComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
32
+ i0.ɵɵelementStart(0, "div", 6);
33
+ i0.ɵɵrepeaterCreate(1, PrismHeadInfoComponent_Conditional_7_For_2_Template, 2, 1, "span", 7, i0.ɵɵrepeaterTrackByIdentity);
34
+ i0.ɵɵelementEnd();
35
+ } if (rf & 2) {
36
+ const ctx_r0 = i0.ɵɵnextContext();
37
+ i0.ɵɵadvance();
38
+ i0.ɵɵrepeater(ctx_r0.tags());
39
+ } }
40
+ /**
41
+ * Identity disclosure for the component head.
42
+ *
43
+ * Selector, description and tags all answer "what is this component" — a
44
+ * question you read once on arrival and never again while building. Keeping
45
+ * them permanently on screen cost a 128px band to say something that belongs
46
+ * behind one glyph.
47
+ *
48
+ * Opening is click-only, through the native Popover API. Escape, click-outside
49
+ * dismissal and top-layer placement come with it declaratively; a hover panel
50
+ * would mean rebuilding all three by hand, and crossing the gap between icon
51
+ * and card without the card closing is its own problem.
52
+ */
53
+ export class PrismHeadInfoComponent {
54
+ selector = input.required(/* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "selector" }] : /* istanbul ignore next */ []));
56
+ description = input(undefined, /* @ts-ignore */
57
+ ...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
58
+ tags = input([], /* @ts-ignore */
59
+ ...(ngDevMode ? [{ debugName: "tags" }] : /* istanbul ignore next */ []));
60
+ variantCount = input(0, /* @ts-ignore */
61
+ ...(ngDevMode ? [{ debugName: "variantCount" }] : /* istanbul ignore next */ []));
62
+ static ɵfac = function PrismHeadInfoComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismHeadInfoComponent)(); };
63
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismHeadInfoComponent, selectors: [["prism-head-info"]], inputs: { selector: [1, "selector"], description: [1, "description"], tags: [1, "tags"], variantCount: [1, "variantCount"] }, decls: 8, vars: 5, consts: [["type", "button", "popovertarget", "prism-head-info", "title", "Component details", "aria-label", "Component details", 1, "info-btn"], ["name", "info", 3, "size"], ["popover", "", "id", "prism-head-info", "role", "dialog", "aria-label", "Component details", 1, "info-card"], [1, "info-card__selector"], [1, "info-card__desc"], [1, "info-card__meta"], [1, "info-card__tags"], [1, "info-card__tag"]], template: function PrismHeadInfoComponent_Template(rf, ctx) { if (rf & 1) {
64
+ i0.ɵɵelementStart(0, "button", 0);
65
+ i0.ɵɵelement(1, "prism-icon", 1);
66
+ i0.ɵɵelementEnd();
67
+ i0.ɵɵelementStart(2, "div", 2)(3, "code", 3);
68
+ i0.ɵɵtext(4);
69
+ i0.ɵɵelementEnd();
70
+ i0.ɵɵconditionalCreate(5, PrismHeadInfoComponent_Conditional_5_Template, 2, 1, "p", 4);
71
+ i0.ɵɵconditionalCreate(6, PrismHeadInfoComponent_Conditional_6_Template, 2, 2, "p", 5);
72
+ i0.ɵɵconditionalCreate(7, PrismHeadInfoComponent_Conditional_7_Template, 3, 0, "div", 6);
73
+ i0.ɵɵelementEnd();
74
+ } if (rf & 2) {
75
+ i0.ɵɵadvance();
76
+ i0.ɵɵproperty("size", 13);
77
+ i0.ɵɵadvance(3);
78
+ i0.ɵɵtextInterpolate1("<", ctx.selector(), ">");
79
+ i0.ɵɵadvance();
80
+ i0.ɵɵconditional(ctx.description() ? 5 : -1);
81
+ i0.ɵɵadvance();
82
+ i0.ɵɵconditional(ctx.variantCount() > 0 ? 6 : -1);
83
+ i0.ɵɵadvance();
84
+ i0.ɵɵconditional(ctx.tags().length ? 7 : -1);
85
+ } }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] { display: inline-flex; }\n\n .info-btn[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n padding: 0;\n border: 0;\n border-radius: var(--%NS%radius-xs);\n background: transparent;\n color: var(--%NS%prism-text-ghost);\n cursor: pointer;\n anchor-name: --prism-head-info;\n }\n .info-btn[_ngcontent-%COMP%]:hover { color: var(--%NS%prism-text-2); }\n .info-btn[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 1px;\n }\n\n .info-card[_ngcontent-%COMP%] {\n margin: 0;\n padding: var(--%NS%sp-4);\n width: 320px;\n max-width: calc(100vw - var(--%NS%sp-6));\n border: 1px solid var(--%NS%prism-border-strong);\n border-radius: var(--%NS%radius-md);\n background: var(--%NS%prism-bg-elevated);\n color: var(--%NS%prism-text-2);\n box-shadow: 0 8px 28px -10px rgba(0, 0, 0, 0.45);\n position-anchor: --prism-head-info;\n position-area: block-end span-inline-end;\n position-try-fallbacks: flip-block, flip-inline;\n inset: auto;\n }\n\n .info-card__selector[_ngcontent-%COMP%] {\n display: block;\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-primary);\n user-select: all;\n }\n .info-card__desc[_ngcontent-%COMP%] {\n margin: var(--%NS%sp-3) 0 0;\n font-size: var(--%NS%fs-lg);\n line-height: 1.55;\n }\n \n\n\n .info-card__meta[_ngcontent-%COMP%] {\n margin: var(--%NS%sp-3) 0 0;\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-text-muted);\n }\n .info-card__tags[_ngcontent-%COMP%] {\n margin-top: var(--%NS%sp-4);\n display: flex;\n flex-wrap: wrap;\n gap: var(--%NS%sp-2);\n }\n .info-card__tag[_ngcontent-%COMP%] {\n padding: 1px var(--%NS%sp-3);\n font-size: var(--%NS%fs-xs);\n border-radius: var(--%NS%radius-xs);\n border: 1px solid var(--%NS%prism-border);\n color: var(--%NS%prism-text-muted);\n }"] });
86
+ }
87
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeadInfoComponent, [{
88
+ type: Component,
89
+ args: [{ selector: 'prism-head-info', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: `
90
+ <button
91
+ class="info-btn"
92
+ type="button"
93
+ popovertarget="prism-head-info"
94
+ title="Component details"
95
+ aria-label="Component details"
96
+ >
97
+ <prism-icon name="info" [size]="13" />
98
+ </button>
99
+
100
+ <div
101
+ popover
102
+ id="prism-head-info"
103
+ class="info-card"
104
+ role="dialog"
105
+ aria-label="Component details"
106
+ >
107
+ <code class="info-card__selector">&lt;{{ selector() }}&gt;</code>
108
+ @if (description()) {
109
+ <p class="info-card__desc">{{ description() }}</p>
110
+ } @if (variantCount() > 0) {
111
+ <p class="info-card__meta">
112
+ {{ variantCount() }} {{ variantCount() === 1 ? 'variant' : 'variants' }}
113
+ </p>
114
+ } @if (tags().length) {
115
+ <div class="info-card__tags">
116
+ @for (tag of tags(); track tag) {
117
+ <span class="info-card__tag">{{ tag }}</span>
118
+ }
119
+ </div>
120
+ }
121
+ </div>
122
+ `, styles: ["\n :host { display: inline-flex; }\n\n .info-btn {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n padding: 0;\n border: 0;\n border-radius: var(--radius-xs);\n background: transparent;\n color: var(--prism-text-ghost);\n cursor: pointer;\n anchor-name: --prism-head-info;\n }\n .info-btn:hover { color: var(--prism-text-2); }\n .info-btn:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n }\n\n .info-card {\n margin: 0;\n padding: var(--sp-4);\n width: 320px;\n max-width: calc(100vw - var(--sp-6));\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--radius-md);\n background: var(--prism-bg-elevated);\n color: var(--prism-text-2);\n box-shadow: 0 8px 28px -10px rgba(0, 0, 0, 0.45);\n position-anchor: --prism-head-info;\n position-area: block-end span-inline-end;\n position-try-fallbacks: flip-block, flip-inline;\n inset: auto;\n }\n\n .info-card__selector {\n display: block;\n font-family: var(--font-mono);\n font-size: var(--fs-md);\n color: var(--prism-primary);\n user-select: all;\n }\n .info-card__desc {\n margin: var(--sp-3) 0 0;\n font-size: var(--fs-lg);\n line-height: 1.55;\n }\n /* A plain fact about the component, not a measurement \u2014 it sits here with\n the selector and the tags rather than in the gauge, whose numbers all\n answer \"did this pass its threshold\". A count cannot. */\n .info-card__meta {\n margin: var(--sp-3) 0 0;\n font-size: var(--fs-md);\n color: var(--prism-text-muted);\n }\n .info-card__tags {\n margin-top: var(--sp-4);\n display: flex;\n flex-wrap: wrap;\n gap: var(--sp-2);\n }\n .info-card__tag {\n padding: 1px var(--sp-3);\n font-size: var(--fs-xs);\n border-radius: var(--radius-xs);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n }\n "] }]
123
+ }], null, { selector: [{ type: i0.Input, args: [{ isSignal: true, alias: "selector", required: true }] }], description: [{ type: i0.Input, args: [{ isSignal: true, alias: "description", required: false }] }], tags: [{ type: i0.Input, args: [{ isSignal: true, alias: "tags", required: false }] }], variantCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "variantCount", required: false }] }] }); })();
124
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeadInfoComponent, { className: "PrismHeadInfoComponent", filePath: "app/component-head/prism-head-info.component.ts", lineNumber: 129 }); })();
@@ -1,10 +1,16 @@
1
+ import type { MetricVariant } from './head-metrics.js';
1
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * One line of the gauge's readout: caption left, value right.
5
+ *
6
+ * Was a right-aligned tile in the old head. The pill it used to carry is gone
7
+ * rather than restyled — it duplicated the caption directly beneath it.
8
+ */
2
9
  export declare class PrismStatComponent {
3
- readonly value: import("@angular/core").InputSignal<string | number>;
4
10
  readonly label: import("@angular/core").InputSignal<string>;
5
- readonly pill: import("@angular/core").InputSignal<string | undefined>;
6
- readonly pillVariant: import("@angular/core").InputSignal<"ok" | "warn" | "danger">;
11
+ readonly value: import("@angular/core").InputSignal<string | number>;
12
+ readonly variant: import("@angular/core").InputSignal<MetricVariant>;
7
13
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismStatComponent, never>;
8
- static ɵcmp: i0.ɵɵComponentDeclaration<PrismStatComponent, "prism-stat", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; "pill": { "alias": "pill"; "required": false; "isSignal": true; }; "pillVariant": { "alias": "pillVariant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<PrismStatComponent, "prism-stat", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
9
15
  }
10
16
  //# sourceMappingURL=prism-stat.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-stat.component.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/prism-stat.component.ts"],"names":[],"mappings":";AAEA,qBA+Da,kBAAkB;IAC7B,QAAQ,CAAC,KAAK,uDAAqC;IACnD,QAAQ,CAAC,KAAK,8CAA4B;IAC1C,QAAQ,CAAC,IAAI,0DAAmB;IAChC,QAAQ,CAAC,WAAW,gEAAyC;yCAJlD,kBAAkB;2CAAlB,kBAAkB;CAK9B"}
1
+ {"version":3,"file":"prism-stat.component.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/prism-stat.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;;AAEvD;;;;;GAKG;AACH,qBAoDa,kBAAkB;IAC7B,QAAQ,CAAC,KAAK,8CAA4B;IAC1C,QAAQ,CAAC,KAAK,uDAAqC;IACnD,QAAQ,CAAC,OAAO,qDAA8B;yCAHnC,kBAAkB;2CAAlB,kBAAkB;CAI9B"}
@@ -1,59 +1,49 @@
1
- import { Component, ChangeDetectionStrategy, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- function PrismStatComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
4
- i0.ɵɵdomElementStart(0, "span", 4);
5
- i0.ɵɵtext(1);
6
- i0.ɵɵdomElementEnd();
7
- } if (rf & 2) {
8
- const ctx_r0 = i0.ɵɵnextContext();
9
- i0.ɵɵclassProp("warn", ctx_r0.pillVariant() === "warn")("danger", ctx_r0.pillVariant() === "danger");
10
- i0.ɵɵadvance();
11
- i0.ɵɵtextInterpolate(ctx_r0.pill());
12
- } }
3
+ /**
4
+ * One line of the gauge's readout: caption left, value right.
5
+ *
6
+ * Was a right-aligned tile in the old head. The pill it used to carry is gone
7
+ * rather than restyled — it duplicated the caption directly beneath it.
8
+ */
13
9
  export class PrismStatComponent {
14
- value = input.required(/* @ts-ignore */
15
- ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
16
10
  label = input.required(/* @ts-ignore */
17
11
  ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
18
- pill = input(/* @ts-ignore */
19
- ...(ngDevMode ? [undefined, { debugName: "pill" }] : /* istanbul ignore next */ []));
20
- pillVariant = input('ok', /* @ts-ignore */
21
- ...(ngDevMode ? [{ debugName: "pillVariant" }] : /* istanbul ignore next */ []));
12
+ value = input.required(/* @ts-ignore */
13
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
14
+ variant = input('ok', /* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
22
16
  static ɵfac = function PrismStatComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismStatComponent)(); };
23
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismStatComponent, selectors: [["prism-stat"]], inputs: { value: [1, "value"], label: [1, "label"], pill: [1, "pill"], pillVariant: [1, "pillVariant"] }, decls: 6, vars: 3, consts: [[1, "stat"], [1, "stat-val"], [1, "pill", 3, "warn", "danger"], [1, "stat-lbl"], [1, "pill"]], template: function PrismStatComponent_Template(rf, ctx) { if (rf & 1) {
24
- i0.ɵɵdomElementStart(0, "div", 0)(1, "div", 1);
25
- i0.ɵɵtext(2);
26
- i0.ɵɵconditionalCreate(3, PrismStatComponent_Conditional_3_Template, 2, 5, "span", 2);
17
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismStatComponent, selectors: [["prism-stat"]], inputs: { label: [1, "label"], value: [1, "value"], variant: [1, "variant"] }, decls: 6, vars: 8, consts: [[1, "stat"], ["aria-hidden", "true", 1, "stat__dot"], [1, "stat__lbl"], [1, "stat__val"]], template: function PrismStatComponent_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵdomElementStart(0, "div", 0);
19
+ i0.ɵɵdomElement(1, "span", 1);
20
+ i0.ɵɵdomElementStart(2, "span", 2);
21
+ i0.ɵɵtext(3);
27
22
  i0.ɵɵdomElementEnd();
28
- i0.ɵɵdomElementStart(4, "div", 3);
23
+ i0.ɵɵdomElementStart(4, "span", 3);
29
24
  i0.ɵɵtext(5);
30
25
  i0.ɵɵdomElementEnd()();
31
26
  } if (rf & 2) {
32
- i0.ɵɵadvance(2);
33
- i0.ɵɵtextInterpolate1(" ", ctx.value(), " ");
34
- i0.ɵɵadvance();
35
- i0.ɵɵconditional(ctx.pill() ? 3 : -1);
36
- i0.ɵɵadvance(2);
27
+ i0.ɵɵclassProp("stat--ok", ctx.variant() === "ok")("stat--warn", ctx.variant() === "warn")("stat--danger", ctx.variant() === "danger");
28
+ i0.ɵɵadvance(3);
37
29
  i0.ɵɵtextInterpolate(ctx.label());
38
- } }, styles: [".stat[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 2px;\n min-width: 64px;\n }\n .stat-val[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xl);\n font-weight: 600;\n color: var(--prism-text);\n display: flex;\n align-items: center;\n gap: 5px;\n }\n .pill[_ngcontent-%COMP%] {\n padding: 0 5px;\n font-size: 9.5px;\n border-radius: 3px;\n background: color-mix(in srgb, var(--prism-success) 15%, transparent);\n color: var(--prism-success);\n font-weight: 700;\n letter-spacing: 0.04em;\n }\n .pill.warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-warn) 15%, transparent);\n color: var(--prism-warn);\n }\n .pill.danger[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-danger) 15%, transparent);\n color: var(--prism-danger);\n }\n .stat-lbl[_ngcontent-%COMP%] {\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }"] });
30
+ i0.ɵɵadvance(2);
31
+ i0.ɵɵtextInterpolate(ctx.value());
32
+ } }, styles: [".stat[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: var(--%NS%sp-3);\n padding: var(--%NS%sp-2) var(--%NS%sp-3);\n border-radius: var(--%NS%radius-xs);\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-text-2);\n }\n .stat__dot[_ngcontent-%COMP%] {\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: transparent;\n flex: none;\n }\n .stat__lbl[_ngcontent-%COMP%] { white-space: nowrap; }\n .stat__val[_ngcontent-%COMP%] {\n margin-left: auto;\n font-family: var(--%NS%font-mono);\n font-variant-numeric: tabular-nums;\n color: var(--%NS%prism-text);\n }\n \n\n\n\n .stat--ok[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] { background: var(--%NS%prism-mark-nominal); }\n .stat--ok[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-nominal); }\n .stat--warn[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] { background: var(--%NS%prism-mark-attention); }\n .stat--warn[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-attention); }\n .stat--danger[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] { background: var(--%NS%prism-mark-critical); }\n .stat--danger[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-critical); }"] });
39
33
  }
40
34
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismStatComponent, [{
41
35
  type: Component,
42
36
  args: [{ selector: 'prism-stat', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: `
43
- <div class="stat">
44
- <div class="stat-val">
45
- {{ value() }}
46
- @if (pill()) {
47
- <span
48
- class="pill"
49
- [class.warn]="pillVariant() === 'warn'"
50
- [class.danger]="pillVariant() === 'danger'"
51
- >{{ pill() }}</span
52
- >
53
- }
54
- </div>
55
- <div class="stat-lbl">{{ label() }}</div>
37
+ <div
38
+ class="stat"
39
+ [class.stat--ok]="variant() === 'ok'"
40
+ [class.stat--warn]="variant() === 'warn'"
41
+ [class.stat--danger]="variant() === 'danger'"
42
+ >
43
+ <span class="stat__dot" aria-hidden="true"></span>
44
+ <span class="stat__lbl">{{ label() }}</span>
45
+ <span class="stat__val">{{ value() }}</span>
56
46
  </div>
57
- `, styles: ["\n .stat {\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n gap: 2px;\n min-width: 64px;\n }\n .stat-val {\n font-family: var(--font-mono);\n font-size: var(--fs-xl);\n font-weight: 600;\n color: var(--prism-text);\n display: flex;\n align-items: center;\n gap: 5px;\n }\n .pill {\n padding: 0 5px;\n font-size: 9.5px;\n border-radius: 3px;\n background: color-mix(in srgb, var(--prism-success) 15%, transparent);\n color: var(--prism-success);\n font-weight: 700;\n letter-spacing: 0.04em;\n }\n .pill.warn {\n background: color-mix(in srgb, var(--prism-warn) 15%, transparent);\n color: var(--prism-warn);\n }\n .pill.danger {\n background: color-mix(in srgb, var(--prism-danger) 15%, transparent);\n color: var(--prism-danger);\n }\n .stat-lbl {\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n text-transform: uppercase;\n letter-spacing: 0.08em;\n font-weight: 600;\n }\n "] }]
58
- }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], pill: [{ type: i0.Input, args: [{ isSignal: true, alias: "pill", required: false }] }], pillVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "pillVariant", required: false }] }] }); })();
59
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismStatComponent, { className: "PrismStatComponent", filePath: "app/component-head/prism-stat.component.ts", lineNumber: 66 }); })();
47
+ `, styles: ["\n .stat {\n display: flex;\n align-items: center;\n gap: var(--sp-3);\n padding: var(--sp-2) var(--sp-3);\n border-radius: var(--radius-xs);\n font-size: var(--fs-md);\n color: var(--prism-text-2);\n }\n .stat__dot {\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background: transparent;\n flex: none;\n }\n .stat__lbl { white-space: nowrap; }\n .stat__val {\n margin-left: auto;\n font-family: var(--font-mono);\n font-variant-numeric: tabular-nums;\n color: var(--prism-text);\n }\n /* Four states, four treatments. \"ok\" earns the nominal green, and \"none\"\n deliberately does not: a metric with no data has nothing to report, and\n colouring it green would claim a clean result the tool never measured.\n That is the one distinction worth keeping grey. */\n .stat--ok .stat__dot { background: var(--prism-mark-nominal); }\n .stat--ok .stat__val { color: var(--prism-mark-nominal); }\n .stat--warn .stat__dot { background: var(--prism-mark-attention); }\n .stat--warn .stat__val { color: var(--prism-mark-attention); }\n .stat--danger .stat__dot { background: var(--prism-mark-critical); }\n .stat--danger .stat__val { color: var(--prism-mark-critical); }\n "] }]
48
+ }], null, { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] }); })();
49
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismStatComponent, { className: "PrismStatComponent", filePath: "app/component-head/prism-stat.component.ts", lineNumber: 62 }); })();
@@ -16,7 +16,7 @@ export class BooleanControlComponent {
16
16
  } if (rf & 2) {
17
17
  i0.ɵɵclassProp("on", ctx.value());
18
18
  i0.ɵɵattribute("aria-checked", ctx.value());
19
- } }, styles: [".ctl-toggle[_ngcontent-%COMP%] {\n position: relative;\n width: 34px;\n height: 18px;\n border-radius: 9px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n transition: all var(--dur-fast);\n cursor: pointer;\n flex-shrink: 0;\n padding: 0;\n }\n .ctl-toggle[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 2px;\n top: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--prism-text-muted);\n transition: transform var(--dur-fast), background var(--dur-fast);\n }\n .ctl-toggle.on[_ngcontent-%COMP%] {\n background: var(--prism-primary);\n border-color: var(--prism-primary);\n }\n .ctl-toggle.on[_ngcontent-%COMP%]::after {\n transform: translateX(16px);\n background: white;\n }"] });
19
+ } }, styles: [".ctl-toggle[_ngcontent-%COMP%] {\n position: relative;\n width: 34px;\n height: 18px;\n border-radius: 9px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n transition: all var(--%NS%dur-fast);\n cursor: pointer;\n flex-shrink: 0;\n padding: 0;\n }\n .ctl-toggle[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 2px;\n top: 2px;\n width: 12px;\n height: 12px;\n border-radius: 50%;\n background: var(--%NS%prism-text-muted);\n transition: transform var(--%NS%dur-fast), background var(--%NS%dur-fast);\n }\n .ctl-toggle.on[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n border-color: var(--%NS%prism-primary);\n }\n .ctl-toggle.on[_ngcontent-%COMP%]::after {\n transform: translateX(16px);\n background: white;\n }"] });
20
20
  }
21
21
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BooleanControlComponent, [{
22
22
  type: Component,
@@ -101,7 +101,7 @@ export class JsonControlComponent {
101
101
  i0.ɵɵdomProperty("value", ctx.displayText());
102
102
  i0.ɵɵadvance(2);
103
103
  i0.ɵɵconditional(ctx.parseError() ? 7 : -1);
104
- } }, styles: [".json-editor[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n\n .json-overlay[_ngcontent-%COMP%] {\n position: relative;\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-sm);\n overflow: hidden;\n transition: border-color var(--dur-fast);\n }\n .json-overlay[_ngcontent-%COMP%]:focus-within {\n border-color: var(--prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--prism-primary) 30%, transparent);\n }\n\n .json-pre[_ngcontent-%COMP%], .json-input[_ngcontent-%COMP%] {\n margin: 0;\n padding: 4px 8px;\n font-family: var(--font-mono);\n font-size: 12px;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n tab-size: 2;\n }\n\n .json-pre[_ngcontent-%COMP%] {\n min-height: 56px;\n pointer-events: none;\n }\n .json-pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%] { font-family: inherit; }\n\n [_nghost-%COMP%] .jh-key { color: var(--prism-code-attr); }\n [_nghost-%COMP%] .jh-string { color: var(--prism-code-str); }\n [_nghost-%COMP%] .jh-number { color: var(--prism-warn); }\n [_nghost-%COMP%] .jh-bool { color: var(--prism-primary); }\n [_nghost-%COMP%] .jh-null { color: var(--prism-text-ghost); }\n\n .json-input[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n background: transparent;\n color: transparent;\n caret-color: var(--prism-text);\n border: none;\n resize: none;\n overflow: auto;\n box-sizing: border-box;\n }\n .json-input[_ngcontent-%COMP%]:focus { outline: none; }\n .json-input[_ngcontent-%COMP%]::selection { background: rgba(99, 102, 241, 0.3); }\n\n .json-error[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--prism-danger);\n display: block;\n margin-top: 2px;\n }"] });
104
+ } }, styles: [".json-editor[_ngcontent-%COMP%] { flex: 1; min-width: 0; }\n\n .json-overlay[_ngcontent-%COMP%] {\n position: relative;\n border: 1px solid var(--%NS%prism-border);\n border-radius: var(--%NS%radius-sm);\n overflow: hidden;\n transition: border-color var(--%NS%dur-fast);\n }\n .json-overlay[_ngcontent-%COMP%]:focus-within {\n border-color: var(--%NS%prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--%NS%prism-primary) 30%, transparent);\n }\n\n .json-pre[_ngcontent-%COMP%], .json-input[_ngcontent-%COMP%] {\n margin: 0;\n padding: 4px 8px;\n font-family: var(--%NS%font-mono);\n font-size: 12px;\n line-height: 1.4;\n white-space: pre-wrap;\n word-wrap: break-word;\n tab-size: 2;\n }\n\n .json-pre[_ngcontent-%COMP%] {\n min-height: 56px;\n pointer-events: none;\n }\n .json-pre[_ngcontent-%COMP%] code[_ngcontent-%COMP%] { font-family: inherit; }\n\n [_nghost-%COMP%] .jh-key { color: var(--%NS%prism-code-attr); }\n [_nghost-%COMP%] .jh-string { color: var(--%NS%prism-code-str); }\n [_nghost-%COMP%] .jh-number { color: var(--%NS%prism-warn); }\n [_nghost-%COMP%] .jh-bool { color: var(--%NS%prism-primary); }\n [_nghost-%COMP%] .jh-null { color: var(--%NS%prism-text-ghost); }\n\n .json-input[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n background: transparent;\n color: transparent;\n caret-color: var(--%NS%prism-text);\n border: none;\n resize: none;\n overflow: auto;\n box-sizing: border-box;\n }\n .json-input[_ngcontent-%COMP%]:focus { outline: none; }\n .json-input[_ngcontent-%COMP%]::selection { background: rgba(99, 102, 241, 0.3); }\n\n .json-error[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--%NS%prism-danger);\n display: block;\n margin-top: 2px;\n }"] });
105
105
  }
106
106
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(JsonControlComponent, [{
107
107
  type: Component,
@@ -15,7 +15,7 @@ export class NumberControlComponent {
15
15
  i0.ɵɵdomElementEnd();
16
16
  } if (rf & 2) {
17
17
  i0.ɵɵdomProperty("value", ctx.value());
18
- } }, styles: [".ctl-number[_ngcontent-%COMP%] {\n height: 30px;\n padding: 0 10px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-sm);\n color: var(--prism-text);\n font-size: 13px;\n font-family: var(--font-sans);\n flex: 1;\n min-width: 0;\n outline: none;\n transition: border-color var(--dur-fast), box-shadow var(--dur-fast);\n }\n .ctl-number[_ngcontent-%COMP%]:focus {\n border-color: var(--prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--prism-primary) 30%, transparent);\n }"] });
18
+ } }, styles: [".ctl-number[_ngcontent-%COMP%] {\n height: 30px;\n padding: 0 10px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: var(--%NS%radius-sm);\n color: var(--%NS%prism-text);\n font-size: 13px;\n font-family: var(--%NS%font-sans);\n flex: 1;\n min-width: 0;\n outline: none;\n transition: border-color var(--%NS%dur-fast), box-shadow var(--%NS%dur-fast);\n }\n .ctl-number[_ngcontent-%COMP%]:focus {\n border-color: var(--%NS%prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--%NS%prism-primary) 30%, transparent);\n }"] });
19
19
  }
20
20
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NumberControlComponent, [{
21
21
  type: Component,
@@ -15,7 +15,7 @@ export class StringControlComponent {
15
15
  i0.ɵɵdomElementEnd();
16
16
  } if (rf & 2) {
17
17
  i0.ɵɵdomProperty("value", ctx.value());
18
- } }, styles: [".ctl-text[_ngcontent-%COMP%] {\n height: 30px;\n padding: 0 10px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-sm);\n color: var(--prism-text);\n font-size: 13px;\n font-family: var(--font-sans);\n flex: 1;\n min-width: 0;\n outline: none;\n transition: border-color var(--dur-fast), box-shadow var(--dur-fast);\n }\n .ctl-text[_ngcontent-%COMP%]:focus {\n border-color: var(--prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--prism-primary) 30%, transparent);\n }"] });
18
+ } }, styles: [".ctl-text[_ngcontent-%COMP%] {\n height: 30px;\n padding: 0 10px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: var(--%NS%radius-sm);\n color: var(--%NS%prism-text);\n font-size: 13px;\n font-family: var(--%NS%font-sans);\n flex: 1;\n min-width: 0;\n outline: none;\n transition: border-color var(--%NS%dur-fast), box-shadow var(--%NS%dur-fast);\n }\n .ctl-text[_ngcontent-%COMP%]:focus {\n border-color: var(--%NS%prism-primary);\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--%NS%prism-primary) 30%, transparent);\n }"] });
19
19
  }
20
20
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StringControlComponent, [{
21
21
  type: Component,
@@ -31,7 +31,7 @@ export class UnionControlComponent {
31
31
  } if (rf & 2) {
32
32
  i0.ɵɵadvance();
33
33
  i0.ɵɵrepeater(ctx.options());
34
- } }, styles: [".ctl-pills[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n }\n .ctl-pill[_ngcontent-%COMP%] {\n height: 26px;\n padding: 0 10px;\n font-size: var(--fs-sm);\n font-weight: 500;\n border: 1px solid var(--prism-border);\n border-radius: 4px;\n color: var(--prism-text-muted);\n background: transparent;\n cursor: pointer;\n transition: all var(--dur-fast);\n font-family: var(--font-sans);\n }\n .ctl-pill[_ngcontent-%COMP%]:hover {\n color: var(--prism-text);\n border-color: var(--prism-border-strong);\n }\n .ctl-pill--active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--prism-primary) 15%, transparent);\n color: var(--prism-primary);\n border-color: color-mix(in srgb, var(--prism-primary) 40%, transparent);\n font-weight: 600;\n }"] });
34
+ } }, styles: [".ctl-pills[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n flex-wrap: wrap;\n }\n .ctl-pill[_ngcontent-%COMP%] {\n height: 26px;\n padding: 0 10px;\n font-size: var(--%NS%fs-sm);\n font-weight: 500;\n border: 1px solid var(--%NS%prism-border);\n border-radius: 4px;\n color: var(--%NS%prism-text-muted);\n background: transparent;\n cursor: pointer;\n transition: all var(--%NS%dur-fast);\n font-family: var(--%NS%font-sans);\n }\n .ctl-pill[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text);\n border-color: var(--%NS%prism-border-strong);\n }\n .ctl-pill--active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-primary) 15%, transparent);\n color: var(--%NS%prism-primary);\n border-color: color-mix(in srgb, var(--%NS%prism-primary) 40%, transparent);\n font-weight: 600;\n }"] });
35
35
  }
36
36
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UnionControlComponent, [{
37
37
  type: Component,
@@ -158,7 +158,7 @@ export class PrismHeaderComponent {
158
158
  i0.ɵɵconditional(ctx.themeService.isDark() ? 14 : 15);
159
159
  } }, dependencies: [PrismIconComponent,
160
160
  PrismLayoutMenuComponent,
161
- PrismHeaderWidgetHostComponent], styles: [".prism-header[_ngcontent-%COMP%] {\n height: 52px;\n display: grid;\n grid-template-columns: minmax(min-content, var(--sw, 264px)) 1fr auto;\n align-items: center;\n padding: 0 14px 0 0;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n }\n\n .prism-header__brand[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 0 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .prism-header__logo-default[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n flex: 0 0 26px;\n color: var(--prism-primary);\n filter: drop-shadow(0 0 8px var(--prism-glow-strong));\n }\n .prism-header__logo-default[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { width: 30px; }\n\n .prism-header__logo-img[_ngcontent-%COMP%] {\n height: 26px;\n width: auto;\n object-fit: contain;\n }\n\n .prism-header__brand-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n }\n\n .prism-header__brand-name[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: var(--fs-xl);\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--prism-primary), var(--prism-accent) 60%, var(--prism-primary-to));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n\n .prism-header__brand-sub[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n }\n\n .prism-header__cmdbar[_ngcontent-%COMP%] {\n max-width: 540px;\n width: 100%;\n justify-self: center;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 32px;\n padding: 0 12px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n color: var(--prism-text-muted);\n font-size: var(--fs-lg);\n cursor: pointer;\n transition: border-color var(--dur-fast), background var(--dur-fast);\n }\n .prism-header__cmdbar[_ngcontent-%COMP%]:hover {\n border-color: var(--prism-border-strong);\n color: var(--prism-text-2);\n }\n\n .prism-header__cmdbar-text[_ngcontent-%COMP%] {\n flex: 1;\n text-align: left;\n }\n\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] {\n display: flex;\n gap: 3px;\n }\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: 4px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n color: var(--prism-text-muted);\n }\n\n .prism-header__build-pill[_ngcontent-%COMP%] {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 9999px;\n padding: 2px 10px;\n white-space: nowrap;\n line-height: 1.4;\n }\n\n .prism-header__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n }\n\n .prism-header__widgets[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .prism-header__widgets--start[_ngcontent-%COMP%] {\n padding-left: 4px;\n justify-content: flex-start;\n }\n\n .prism-header__icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: grid;\n place-items: center;\n border-radius: 8px;\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: all var(--dur-fast);\n }\n .prism-header__icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }"] });
161
+ PrismHeaderWidgetHostComponent], styles: [".prism-header[_ngcontent-%COMP%] {\n height: var(--%NS%band-header);\n display: grid;\n grid-template-columns: minmax(min-content, var(--%NS%sw, 264px)) 1fr auto;\n align-items: center;\n padding: 0 14px 0 0;\n background: var(--%NS%prism-bg);\n border-bottom: 1px solid var(--%NS%prism-border);\n }\n\n .prism-header__brand[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 0 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .prism-header__logo-default[_ngcontent-%COMP%] {\n width: 26px;\n height: 26px;\n flex: 0 0 26px;\n color: var(--%NS%prism-primary);\n filter: drop-shadow(0 0 8px var(--%NS%prism-glow-strong));\n }\n .prism-header__logo-default[_ngcontent-%COMP%] img[_ngcontent-%COMP%] { width: 30px; }\n\n .prism-header__logo-img[_ngcontent-%COMP%] {\n height: 26px;\n width: auto;\n object-fit: contain;\n }\n\n .prism-header__brand-text[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n }\n\n .prism-header__brand-name[_ngcontent-%COMP%] {\n font-weight: 700;\n font-size: var(--%NS%fs-xl);\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--%NS%prism-primary), var(--%NS%prism-accent) 60%, var(--%NS%prism-primary-to));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n\n .prism-header__brand-sub[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-ghost);\n }\n\n .prism-header__cmdbar[_ngcontent-%COMP%] {\n max-width: 540px;\n width: 100%;\n justify-self: center;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 32px;\n padding: 0 12px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 8px;\n color: var(--%NS%prism-text-muted);\n font-size: var(--%NS%fs-lg);\n cursor: pointer;\n transition: border-color var(--%NS%dur-fast), background var(--%NS%dur-fast);\n }\n .prism-header__cmdbar[_ngcontent-%COMP%]:hover {\n border-color: var(--%NS%prism-border-strong);\n color: var(--%NS%prism-text-2);\n }\n\n .prism-header__cmdbar-text[_ngcontent-%COMP%] {\n flex: 1;\n text-align: left;\n }\n\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] {\n display: flex;\n gap: 3px;\n }\n .prism-header__cmdbar-shortcut[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 10.5px;\n padding: 1px 5px;\n border-radius: 4px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n color: var(--%NS%prism-text-muted);\n }\n\n .prism-header__build-pill[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-ghost);\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 9999px;\n padding: 2px 10px;\n white-space: nowrap;\n line-height: 1.4;\n }\n\n .prism-header__actions[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n }\n\n .prism-header__widgets[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .prism-header__widgets--start[_ngcontent-%COMP%] {\n padding-left: 4px;\n justify-content: flex-start;\n }\n\n .prism-header__icon-btn[_ngcontent-%COMP%] {\n width: 32px;\n height: 32px;\n display: grid;\n place-items: center;\n border-radius: 8px;\n color: var(--%NS%prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: all var(--%NS%dur-fast);\n }\n .prism-header__icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--%NS%prism-input-bg);\n color: var(--%NS%prism-text);\n }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n }"] });
162
162
  }
163
163
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeaderComponent, [{
164
164
  type: Component,
@@ -223,7 +223,7 @@ export class PrismHeaderComponent {
223
223
  <prism-layout-menu />
224
224
  </div>
225
225
  </header>
226
- `, styles: ["\n .prism-header {\n height: 52px;\n display: grid;\n grid-template-columns: minmax(min-content, var(--sw, 264px)) 1fr auto;\n align-items: center;\n padding: 0 14px 0 0;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n }\n\n .prism-header__brand {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 0 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .prism-header__logo-default {\n width: 26px;\n height: 26px;\n flex: 0 0 26px;\n color: var(--prism-primary);\n filter: drop-shadow(0 0 8px var(--prism-glow-strong));\n }\n .prism-header__logo-default img { width: 30px; }\n\n .prism-header__logo-img {\n height: 26px;\n width: auto;\n object-fit: contain;\n }\n\n .prism-header__brand-text {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n }\n\n .prism-header__brand-name {\n font-weight: 700;\n font-size: var(--fs-xl);\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--prism-primary), var(--prism-accent) 60%, var(--prism-primary-to));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n\n .prism-header__brand-sub {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n }\n\n .prism-header__cmdbar {\n max-width: 540px;\n width: 100%;\n justify-self: center;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 32px;\n padding: 0 12px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n color: var(--prism-text-muted);\n font-size: var(--fs-lg);\n cursor: pointer;\n transition: border-color var(--dur-fast), background var(--dur-fast);\n }\n .prism-header__cmdbar:hover {\n border-color: var(--prism-border-strong);\n color: var(--prism-text-2);\n }\n\n .prism-header__cmdbar-text {\n flex: 1;\n text-align: left;\n }\n\n .prism-header__cmdbar-shortcut {\n display: flex;\n gap: 3px;\n }\n .prism-header__cmdbar-shortcut 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 .prism-header__build-pill {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 9999px;\n padding: 2px 10px;\n white-space: nowrap;\n line-height: 1.4;\n }\n\n .prism-header__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n }\n\n .prism-header__widgets {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .prism-header__widgets--start {\n padding-left: 4px;\n justify-content: flex-start;\n }\n\n .prism-header__icon-btn {\n width: 32px;\n height: 32px;\n display: grid;\n place-items: center;\n border-radius: 8px;\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: all var(--dur-fast);\n }\n .prism-header__icon-btn:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
226
+ `, styles: ["\n .prism-header {\n height: var(--band-header);\n display: grid;\n grid-template-columns: minmax(min-content, var(--sw, 264px)) 1fr auto;\n align-items: center;\n padding: 0 14px 0 0;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n }\n\n .prism-header__brand {\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 0 16px;\n cursor: pointer;\n white-space: nowrap;\n }\n\n .prism-header__logo-default {\n width: 26px;\n height: 26px;\n flex: 0 0 26px;\n color: var(--prism-primary);\n filter: drop-shadow(0 0 8px var(--prism-glow-strong));\n }\n .prism-header__logo-default img { width: 30px; }\n\n .prism-header__logo-img {\n height: 26px;\n width: auto;\n object-fit: contain;\n }\n\n .prism-header__brand-text {\n display: flex;\n flex-direction: column;\n line-height: 1.1;\n }\n\n .prism-header__brand-name {\n font-weight: 700;\n font-size: var(--fs-xl);\n letter-spacing: -0.01em;\n background: linear-gradient(90deg, var(--prism-primary), var(--prism-accent) 60%, var(--prism-primary-to));\n -webkit-background-clip: text;\n background-clip: text;\n color: transparent;\n }\n\n .prism-header__brand-sub {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n }\n\n .prism-header__cmdbar {\n max-width: 540px;\n width: 100%;\n justify-self: center;\n display: flex;\n align-items: center;\n gap: 10px;\n height: 32px;\n padding: 0 12px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 8px;\n color: var(--prism-text-muted);\n font-size: var(--fs-lg);\n cursor: pointer;\n transition: border-color var(--dur-fast), background var(--dur-fast);\n }\n .prism-header__cmdbar:hover {\n border-color: var(--prism-border-strong);\n color: var(--prism-text-2);\n }\n\n .prism-header__cmdbar-text {\n flex: 1;\n text-align: left;\n }\n\n .prism-header__cmdbar-shortcut {\n display: flex;\n gap: 3px;\n }\n .prism-header__cmdbar-shortcut 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 .prism-header__build-pill {\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n color: var(--prism-text-ghost);\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 9999px;\n padding: 2px 10px;\n white-space: nowrap;\n line-height: 1.4;\n }\n\n .prism-header__actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n }\n\n .prism-header__widgets {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n }\n .prism-header__widgets--start {\n padding-left: 4px;\n justify-content: flex-start;\n }\n\n .prism-header__icon-btn {\n width: 32px;\n height: 32px;\n display: grid;\n place-items: center;\n border-radius: 8px;\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n position: relative;\n transition: all var(--dur-fast);\n }\n .prism-header__icon-btn:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
227
227
  }], null, { onGlobalKey: [{
228
228
  type: HostListener,
229
229
  args: ['document:keydown', ['$event']]
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The glyph registry backing `prism-icon`, extracted into its own
3
+ * dependency-free module.
4
+ *
5
+ * `plugin/index.ts` re-exports `ICON_NAMES` from here rather than from
6
+ * `prism-icon.component.ts` so a plugin author can resolve the name the docs
7
+ * point them to (`NavigationDecorationDefinition.icon`, `PanelDefinition.icon`)
8
+ * without pulling an `@Component` class into a module graph the builder
9
+ * evaluates in Node.js — the same reason plugin panels are lazy-loaded.
10
+ */
11
+ declare const ICONS: Record<string, string>;
12
+ export { ICONS };
13
+ /** Every name the registry can draw — what a panel's `icon` has to pick from. */
14
+ export declare const ICON_NAMES: readonly string[];
15
+ //# sourceMappingURL=icon-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-registry.d.ts","sourceRoot":"","sources":["../../../src/app/icons/icon-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,QAAA,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA2CjC,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC;AAEjB,iFAAiF;AACjF,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAAuB,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The glyph registry backing `prism-icon`, extracted into its own
3
+ * dependency-free module.
4
+ *
5
+ * `plugin/index.ts` re-exports `ICON_NAMES` from here rather than from
6
+ * `prism-icon.component.ts` so a plugin author can resolve the name the docs
7
+ * point them to (`NavigationDecorationDefinition.icon`, `PanelDefinition.icon`)
8
+ * without pulling an `@Component` class into a module graph the builder
9
+ * evaluates in Node.js — the same reason plugin panels are lazy-loaded.
10
+ */
11
+ const ICONS = {
12
+ search: '<circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/>',
13
+ '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"/>',
14
+ 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"/>',
15
+ 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"/>',
16
+ moon: '<path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z"/>',
17
+ 'more-horizontal': '<circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/>',
18
+ 'chevron-down': '<path d="m6 9 6 6 6-6"/>',
19
+ 'chevron-right': '<path d="m9 18 6-6-6-6"/>',
20
+ 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"/>',
21
+ 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"/>',
22
+ '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"/>',
23
+ 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"/>',
24
+ 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"/>',
25
+ '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"/>',
26
+ 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"/>',
27
+ '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"/>',
28
+ 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"/>',
29
+ '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"/>',
30
+ camera: '<path d="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z"/><circle cx="12" cy="13" r="3"/>',
31
+ move: '<path d="M12 2v20M2 12h20m-16-4-4 4 4 4m12-8 4 4-4 4M8 8l-4 4 4 4"/>',
32
+ crosshair: '<circle cx="12" cy="12" r="10"/><path d="M22 12h-4M6 12H2m10-6V2m0 20v-4"/>',
33
+ 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"/>',
34
+ '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"/>',
35
+ 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"/>',
36
+ code: '<path d="m18 16 4-4-4-4M6 8l-4 4 4 4m8.5-12-5 16"/>',
37
+ x: '<path d="M18 6 6 18M6 6l12 12"/>',
38
+ check: '<path d="M20 6 9 17l-5-5"/>',
39
+ info: '<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',
40
+ 'circle-dashed': '<path d="M10.1 2.18a9.93 9.93 0 0 1 3.8 0"/><path d="M17.6 3.71a9.95 9.95 0 0 1 2.69 2.7"/><path d="M21.82 10.1a9.93 9.93 0 0 1 0 3.8"/><path d="M20.29 17.6a9.95 9.95 0 0 1-2.7 2.69"/><path d="M13.9 21.82a9.94 9.94 0 0 1-3.8 0"/><path d="M6.4 20.29a9.95 9.95 0 0 1-2.69-2.7"/><path d="M2.18 13.9a9.93 9.93 0 0 1 0-3.8"/><path d="M3.71 6.4a9.95 9.95 0 0 1 2.7-2.69"/>',
41
+ };
42
+ export { ICONS };
43
+ /** Every name the registry can draw — what a panel's `icon` has to pick from. */
44
+ export const ICON_NAMES = Object.keys(ICONS);
@@ -1,6 +1,6 @@
1
+ import { ICON_NAMES } from './icon-registry.js';
1
2
  import * as i0 from "@angular/core";
2
- /** Every name the registry can draw — what a panel's `icon` has to pick from. */
3
- export declare const ICON_NAMES: readonly string[];
3
+ export { ICON_NAMES };
4
4
  /**
5
5
  * The glyph markup for `name`, or `undefined` when the registry has no entry.
6
6
  *
@@ -1 +1 @@
1
- {"version":3,"file":"prism-icon.component.d.ts","sourceRoot":"","sources":["../../../src/app/icons/prism-icon.component.ts"],"names":[],"mappings":";AAqDA,iFAAiF;AACjF,eAAO,MAAM,UAAU,EAAE,SAAS,MAAM,EAAuB,CAAC;AAIhE;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW5D;AAED,qBAOa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,8CAA4B;IACzC,QAAQ,CAAC,IAAI,8CAAa;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmC;;yCAJ3C,kBAAkB;2CAAlB,kBAAkB;CAkC9B"}
1
+ {"version":3,"file":"prism-icon.component.d.ts","sourceRoot":"","sources":["../../../src/app/icons/prism-icon.component.ts"],"names":[],"mappings":"AAQA,OAAO,EAAS,UAAU,EAAE,MAAM,oBAAoB,CAAC;;AAMvD,OAAO,EAAE,UAAU,EAAE,CAAC;AAMtB;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW5D;AAED,qBAOa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,8CAA4B;IACzC,QAAQ,CAAC,IAAI,8CAAa;IAE1B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmC;;yCAJ3C,kBAAkB;2CAAlB,kBAAkB;CAkC9B"}
@@ -1,37 +1,12 @@
1
1
  import { Component, ChangeDetectionStrategy, input, effect, ElementRef, inject, } from '@angular/core';
2
+ import { ICONS, ICON_NAMES } from './icon-registry.js';
2
3
  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
- camera: '<path d="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z"/><circle cx="12" cy="13" r="3"/>',
23
- move: '<path d="M12 2v20M2 12h20m-16-4-4 4 4 4m12-8 4 4-4 4M8 8l-4 4 4 4"/>',
24
- crosshair: '<circle cx="12" cy="12" r="10"/><path d="M22 12h-4M6 12H2m10-6V2m0 20v-4"/>',
25
- 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"/>',
26
- '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"/>',
27
- 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"/>',
28
- code: '<path d="m18 16 4-4-4-4M6 8l-4 4 4 4m8.5-12-5 16"/>',
29
- x: '<path d="M18 6 6 18M6 6l12 12"/>',
30
- check: '<path d="M20 6 9 17l-5-5"/>',
31
- };
4
+ // Re-exported for existing consumers of this module. The registry itself
5
+ // lives in `icon-registry.js` — a dependency-free module — so a plugin barrel
6
+ // can re-export `ICON_NAMES` without dragging this `@Component` class (and
7
+ // `@angular/core`) into a module graph the builder evaluates in Node.js.
8
+ export { ICON_NAMES };
32
9
  const SVG_NS = 'http://www.w3.org/2000/svg';
33
- /** Every name the registry can draw — what a panel's `icon` has to pick from. */
34
- export const ICON_NAMES = Object.keys(ICONS);
35
10
  const warnedIcons = new Set();
36
11
  /**
37
12
  * The glyph markup for `name`, or `undefined` when the registry has no entry.
@@ -90,4 +65,4 @@ export class PrismIconComponent {
90
65
  type: Component,
91
66
  args: [{ selector: 'prism-icon', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: ``, styles: [":host { display: inline-flex; align-items: center; justify-content: center; }"] }]
92
67
  }], () => [], { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }] }); })();
93
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismIconComponent, { className: "PrismIconComponent", filePath: "app/icons/prism-icon.component.ts", lineNumber: 91 }); })();
68
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismIconComponent, { className: "PrismIconComponent", filePath: "app/icons/prism-icon.component.ts", lineNumber: 53 }); })();
@@ -1,4 +1,4 @@
1
- export { PRISM_MANIFEST, PRISM_CONFIG, } from './tokens/prism-tokens.js';
1
+ export { PRISM_MANIFEST, PRISM_CONFIG } from './tokens/prism-tokens.js';
2
2
  export { PRISM_DEFAULT_THEME, PRISM_DARK_THEME, PRISM_LIGHT_THEME, PRISM_BASE_TOKENS, } from './theme/prism-default-theme.js';
3
3
  export { PrismThemeService } from './services/prism-theme.service.js';
4
4
  export type { NavigationItem } from './services/navigation-item.types.js';
@@ -16,4 +16,6 @@ export { PrismPageRendererComponent } from './page-renderer/prism-page-renderer.
16
16
  export { providePrism } from './provide-prism.js';
17
17
  export type { ProvidePrismOptions } from './provide-prism.js';
18
18
  export { enablePrismHmr } from './hmr.js';
19
+ export { PrismMetricBadgeComponent } from './shared/prism-metric-badge.component.js';
20
+ export { PrismIconComponent } from './icons/prism-icon.component.js';
19
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/app/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,YAAY,GACb,MAAM,0BAA0B,CAAC;AAGlC,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;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAGlF,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":"AAGA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxE,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;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAGlF,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;AAyB1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC"}