@ng-prism/core 22.5.0 → 22.7.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/README.md +13 -9
  2. package/dist/app/canvas/canvas-bg.styles.d.ts +1 -1
  3. package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -1
  4. package/dist/app/canvas/canvas-bg.styles.js +1 -1
  5. package/dist/app/canvas/canvas-overlay-tokens.d.ts +12 -0
  6. package/dist/app/canvas/canvas-overlay-tokens.d.ts.map +1 -0
  7. package/dist/app/canvas/canvas-overlay-tokens.js +52 -0
  8. package/dist/app/canvas/prism-canvas-bg-pill.component.js +2 -2
  9. package/dist/app/canvas/prism-canvas-pin-row.component.js +2 -2
  10. package/dist/app/canvas/prism-canvas-rulers.component.d.ts +2 -0
  11. package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -1
  12. package/dist/app/canvas/prism-canvas-rulers.component.js +17 -12
  13. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +25 -3
  14. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
  15. package/dist/app/canvas/prism-canvas-toolbar.component.js +154 -89
  16. package/dist/app/canvas/prism-template-popover.component.d.ts.map +1 -1
  17. package/dist/app/canvas/prism-template-popover.component.js +16 -7
  18. package/dist/app/canvas/state-chips.d.ts +50 -0
  19. package/dist/app/canvas/state-chips.d.ts.map +1 -0
  20. package/dist/app/canvas/state-chips.js +40 -0
  21. package/dist/app/component-head/head-metrics.d.ts +35 -19
  22. package/dist/app/component-head/head-metrics.d.ts.map +1 -1
  23. package/dist/app/component-head/head-metrics.js +57 -27
  24. package/dist/app/component-head/pipe-facts.d.ts +9 -0
  25. package/dist/app/component-head/pipe-facts.d.ts.map +1 -0
  26. package/dist/app/component-head/pipe-facts.js +15 -0
  27. package/dist/app/component-head/prism-component-head.component.d.ts +20 -22
  28. package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
  29. package/dist/app/component-head/prism-component-head.component.js +85 -96
  30. package/dist/app/component-head/prism-head-gauge.component.d.ts +8 -12
  31. package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -1
  32. package/dist/app/component-head/prism-head-gauge.component.js +51 -67
  33. package/dist/app/component-head/prism-head-info.component.d.ts +14 -2
  34. package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -1
  35. package/dist/app/component-head/prism-head-info.component.js +84 -20
  36. package/dist/app/component-head/prism-stat.component.d.ts +4 -5
  37. package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
  38. package/dist/app/component-head/prism-stat.component.js +16 -12
  39. package/dist/app/component-head/service-facts.d.ts +8 -0
  40. package/dist/app/component-head/service-facts.d.ts.map +1 -0
  41. package/dist/app/component-head/service-facts.js +11 -0
  42. package/dist/app/controls/boolean-control.component.js +2 -2
  43. package/dist/app/controls/json-control.component.js +2 -2
  44. package/dist/app/controls/union-control.component.js +4 -3
  45. package/dist/app/directives/resize-value.d.ts +1 -1
  46. package/dist/app/directives/resize-value.js +1 -1
  47. package/dist/app/discovery-manifest.d.ts +2 -2
  48. package/dist/app/discovery-manifest.d.ts.map +1 -1
  49. package/dist/app/discovery-manifest.js +15 -3
  50. package/dist/app/header/header-brand.d.ts +25 -0
  51. package/dist/app/header/header-brand.d.ts.map +1 -0
  52. package/dist/app/header/header-brand.js +10 -0
  53. package/dist/app/header/prism-header.component.d.ts +2 -2
  54. package/dist/app/header/prism-header.component.d.ts.map +1 -1
  55. package/dist/app/header/prism-header.component.js +73 -57
  56. package/dist/app/icons/icon-registry.d.ts.map +1 -1
  57. package/dist/app/icons/icon-registry.js +4 -1
  58. package/dist/app/index.d.ts +12 -0
  59. package/dist/app/index.d.ts.map +1 -1
  60. package/dist/app/index.js +12 -1
  61. package/dist/app/layout-menu/prism-layout-menu.component.d.ts +3 -0
  62. package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
  63. package/dist/app/layout-menu/prism-layout-menu.component.js +72 -58
  64. package/dist/app/overview/open-in-playground.d.ts +19 -0
  65. package/dist/app/overview/open-in-playground.d.ts.map +1 -0
  66. package/dist/app/overview/open-in-playground.js +25 -0
  67. package/dist/app/overview/overview-matrix.d.ts +85 -0
  68. package/dist/app/overview/overview-matrix.d.ts.map +1 -0
  69. package/dist/app/overview/overview-matrix.js +98 -0
  70. package/dist/app/overview/overview-visibility.d.ts +10 -2
  71. package/dist/app/overview/overview-visibility.d.ts.map +1 -1
  72. package/dist/app/overview/overview-visibility.js +14 -3
  73. package/dist/app/overview/prism-overview-cell.component.d.ts +27 -2
  74. package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -1
  75. package/dist/app/overview/prism-overview-cell.component.js +145 -28
  76. package/dist/app/overview/prism-overview-matrix.component.d.ts +29 -0
  77. package/dist/app/overview/prism-overview-matrix.component.d.ts.map +1 -0
  78. package/dist/app/overview/prism-overview-matrix.component.js +155 -0
  79. package/dist/app/overview/prism-overview.component.d.ts +4 -0
  80. package/dist/app/overview/prism-overview.component.d.ts.map +1 -1
  81. package/dist/app/overview/prism-overview.component.js +37 -14
  82. package/dist/app/page-renderer/prism-page-renderer.component.js +2 -2
  83. package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -1
  84. package/dist/app/panels/a11y/a11y-core.plugin.js +0 -1
  85. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts +1 -4
  86. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
  87. package/dist/app/panels/a11y/a11y-header-badge.component.js +8 -19
  88. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +2 -2
  89. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts +1 -0
  90. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
  91. package/dist/app/panels/a11y/a11y-overlay-host.component.js +4 -3
  92. package/dist/app/panels/a11y/a11y-panel.component.d.ts +4 -1
  93. package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
  94. package/dist/app/panels/a11y/a11y-panel.component.js +32 -54
  95. package/dist/app/panels/a11y/a11y-score.component.d.ts +8 -3
  96. package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
  97. package/dist/app/panels/a11y/a11y-score.component.js +19 -35
  98. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +2 -2
  99. package/dist/app/panels/a11y/a11y-sr.component.js +2 -2
  100. package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -1
  101. package/dist/app/panels/a11y/a11y-summary.js +8 -1
  102. package/dist/app/panels/a11y/a11y-tree.component.js +2 -2
  103. package/dist/app/panels/a11y/a11y-violations.component.d.ts +23 -2
  104. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
  105. package/dist/app/panels/a11y/a11y-violations.component.js +104 -89
  106. package/dist/app/panels/a11y/severity.d.ts +9 -0
  107. package/dist/app/panels/a11y/severity.d.ts.map +1 -0
  108. package/dist/app/panels/a11y/severity.js +12 -0
  109. package/dist/app/panels/controls/controls-plugin.d.ts.map +1 -1
  110. package/dist/app/panels/controls/controls-plugin.js +1 -2
  111. package/dist/app/panels/controls/non-editable-input-types.d.ts +9 -1
  112. package/dist/app/panels/controls/non-editable-input-types.d.ts.map +1 -1
  113. package/dist/app/panels/controls/non-editable-input-types.js +18 -0
  114. package/dist/app/panels/controls/prism-controls-panel.component.d.ts +2 -1
  115. package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
  116. package/dist/app/panels/controls/prism-controls-panel.component.js +77 -59
  117. package/dist/app/panels/events/events-plugin.d.ts.map +1 -1
  118. package/dist/app/panels/events/events-plugin.js +1 -2
  119. package/dist/app/panels/events/prism-events-panel.component.d.ts +2 -0
  120. package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
  121. package/dist/app/panels/events/prism-events-panel.component.js +20 -7
  122. package/dist/app/panels/events/prism-json-node.utils.d.ts +6 -0
  123. package/dist/app/panels/events/prism-json-node.utils.d.ts.map +1 -1
  124. package/dist/app/panels/events/prism-json-node.utils.js +8 -0
  125. package/dist/app/panels/panel-host/addon-panels.d.ts +11 -0
  126. package/dist/app/panels/panel-host/addon-panels.d.ts.map +1 -0
  127. package/dist/app/panels/panel-host/addon-panels.js +12 -0
  128. package/dist/app/panels/panel-host/panel-badge.d.ts +22 -0
  129. package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
  130. package/dist/app/panels/panel-host/panel-badge.js +56 -11
  131. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +4 -1
  132. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  133. package/dist/app/panels/panel-host/prism-panel-host.component.js +36 -70
  134. package/dist/app/pseudo/pseudo-state-marker.d.ts +32 -10
  135. package/dist/app/pseudo/pseudo-state-marker.d.ts.map +1 -1
  136. package/dist/app/pseudo/pseudo-state-marker.js +83 -67
  137. package/dist/app/pseudo/pseudo-targets.d.ts +11 -0
  138. package/dist/app/pseudo/pseudo-targets.d.ts.map +1 -0
  139. package/dist/app/pseudo/pseudo-targets.js +46 -0
  140. package/dist/app/pseudo/state-fit.d.ts +28 -0
  141. package/dist/app/pseudo/state-fit.d.ts.map +1 -0
  142. package/dist/app/pseudo/state-fit.js +97 -0
  143. package/dist/app/renderer/composition.d.ts +20 -0
  144. package/dist/app/renderer/composition.d.ts.map +1 -0
  145. package/dist/app/renderer/composition.js +26 -0
  146. package/dist/app/renderer/input-bindings.d.ts +28 -0
  147. package/dist/app/renderer/input-bindings.d.ts.map +1 -0
  148. package/dist/app/renderer/input-bindings.js +42 -0
  149. package/dist/app/renderer/known-inputs.d.ts +8 -1
  150. package/dist/app/renderer/known-inputs.d.ts.map +1 -1
  151. package/dist/app/renderer/known-inputs.js +13 -5
  152. package/dist/app/renderer/prism-renderer.component.d.ts +18 -4
  153. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  154. package/dist/app/renderer/prism-renderer.component.js +78 -44
  155. package/dist/app/renderer/projectable-content.d.ts +8 -1
  156. package/dist/app/renderer/projectable-content.d.ts.map +1 -1
  157. package/dist/app/renderer/projectable-content.js +40 -29
  158. package/dist/app/renderer/rendered-key.d.ts +20 -6
  159. package/dist/app/renderer/rendered-key.d.ts.map +1 -1
  160. package/dist/app/renderer/rendered-key.js +25 -8
  161. package/dist/app/renderer/snippet-generator.d.ts +14 -2
  162. package/dist/app/renderer/snippet-generator.d.ts.map +1 -1
  163. package/dist/app/renderer/snippet-generator.js +138 -81
  164. package/dist/app/services/navigation-item.d.ts +10 -0
  165. package/dist/app/services/navigation-item.d.ts.map +1 -0
  166. package/dist/app/services/navigation-item.js +20 -0
  167. package/dist/app/services/navigation-item.types.d.ts +8 -0
  168. package/dist/app/services/navigation-item.types.d.ts.map +1 -1
  169. package/dist/app/services/prism-layout.service.d.ts +12 -0
  170. package/dist/app/services/prism-layout.service.d.ts.map +1 -1
  171. package/dist/app/services/prism-layout.service.js +17 -7
  172. package/dist/app/services/prism-manifest.service.d.ts +4 -0
  173. package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
  174. package/dist/app/services/prism-manifest.service.js +4 -0
  175. package/dist/app/services/prism-navigation.service.d.ts +12 -0
  176. package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
  177. package/dist/app/services/prism-navigation.service.js +85 -19
  178. package/dist/app/services/prism-panel.service.d.ts +7 -3
  179. package/dist/app/services/prism-panel.service.d.ts.map +1 -1
  180. package/dist/app/services/prism-panel.service.js +13 -4
  181. package/dist/app/services/prism-pseudo-state.service.d.ts +59 -14
  182. package/dist/app/services/prism-pseudo-state.service.d.ts.map +1 -1
  183. package/dist/app/services/prism-pseudo-state.service.js +86 -29
  184. package/dist/app/services/prism-renderer.service.d.ts +23 -0
  185. package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
  186. package/dist/app/services/prism-renderer.service.js +77 -8
  187. package/dist/app/services/prism-search.service.d.ts +4 -0
  188. package/dist/app/services/prism-search.service.d.ts.map +1 -1
  189. package/dist/app/services/prism-search.service.js +29 -6
  190. package/dist/app/services/prism-theme.service.d.ts +11 -3
  191. package/dist/app/services/prism-theme.service.d.ts.map +1 -1
  192. package/dist/app/services/prism-theme.service.js +27 -19
  193. package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
  194. package/dist/app/services/prism-url-state.service.js +81 -12
  195. package/dist/app/shared/badge.types.d.ts +7 -0
  196. package/dist/app/shared/badge.types.d.ts.map +1 -0
  197. package/dist/app/shared/badge.types.js +9 -0
  198. package/dist/app/shared/brand-mark.d.ts +35 -0
  199. package/dist/app/shared/brand-mark.d.ts.map +1 -0
  200. package/dist/app/shared/brand-mark.js +52 -0
  201. package/dist/app/shared/metric-bar.d.ts +6 -0
  202. package/dist/app/shared/metric-bar.d.ts.map +1 -0
  203. package/dist/app/shared/metric-bar.js +7 -0
  204. package/dist/app/shared/prism-badge.component.d.ts +21 -0
  205. package/dist/app/shared/prism-badge.component.d.ts.map +1 -0
  206. package/dist/app/shared/prism-badge.component.js +68 -0
  207. package/dist/app/shared/prism-button.component.d.ts +12 -0
  208. package/dist/app/shared/prism-button.component.d.ts.map +1 -0
  209. package/dist/app/shared/prism-button.component.js +28 -0
  210. package/dist/app/shared/prism-icon-button.component.d.ts +17 -0
  211. package/dist/app/shared/prism-icon-button.component.d.ts.map +1 -0
  212. package/dist/app/shared/prism-icon-button.component.js +37 -0
  213. package/dist/app/shared/prism-list-row.component.d.ts +17 -0
  214. package/dist/app/shared/prism-list-row.component.d.ts.map +1 -0
  215. package/dist/app/shared/prism-list-row.component.js +57 -0
  216. package/dist/app/shared/prism-logo.component.d.ts +24 -0
  217. package/dist/app/shared/prism-logo.component.d.ts.map +1 -0
  218. package/dist/app/shared/prism-logo.component.js +77 -0
  219. package/dist/app/shared/prism-metric-badge.component.d.ts +9 -4
  220. package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -1
  221. package/dist/app/shared/prism-metric-badge.component.js +33 -12
  222. package/dist/app/shared/prism-metric-card.component.d.ts +30 -0
  223. package/dist/app/shared/prism-metric-card.component.d.ts.map +1 -0
  224. package/dist/app/shared/prism-metric-card.component.js +111 -0
  225. package/dist/app/shared/prism-panel-toolbar.component.d.ts +13 -0
  226. package/dist/app/shared/prism-panel-toolbar.component.d.ts.map +1 -0
  227. package/dist/app/shared/prism-panel-toolbar.component.js +28 -0
  228. package/dist/app/shared/prism-segmented.component.d.ts +25 -0
  229. package/dist/app/shared/prism-segmented.component.d.ts.map +1 -0
  230. package/dist/app/shared/prism-segmented.component.js +77 -0
  231. package/dist/app/shared/prism-tabs.component.d.ts +44 -0
  232. package/dist/app/shared/prism-tabs.component.d.ts.map +1 -0
  233. package/dist/app/shared/prism-tabs.component.js +134 -0
  234. package/dist/app/shared/roving-focus.d.ts +13 -0
  235. package/dist/app/shared/roving-focus.d.ts.map +1 -0
  236. package/dist/app/shared/roving-focus.js +34 -0
  237. package/dist/app/shell/prism-shell.component.d.ts +13 -0
  238. package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
  239. package/dist/app/shell/prism-shell.component.js +57 -28
  240. package/dist/app/shell/should-select-first.d.ts +17 -0
  241. package/dist/app/shell/should-select-first.d.ts.map +1 -0
  242. package/dist/app/shell/should-select-first.js +13 -0
  243. package/dist/app/sidebar/navigation-decorations.d.ts +23 -1
  244. package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -1
  245. package/dist/app/sidebar/navigation-decorations.js +33 -2
  246. package/dist/app/sidebar/prism-sidebar.component.d.ts +5 -15
  247. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  248. package/dist/app/sidebar/prism-sidebar.component.js +89 -77
  249. package/dist/app/theme/deprecated-tokens.d.ts +15 -0
  250. package/dist/app/theme/deprecated-tokens.d.ts.map +1 -0
  251. package/dist/app/theme/deprecated-tokens.js +22 -0
  252. package/dist/app/theme/favicon.d.ts +3 -0
  253. package/dist/app/theme/favicon.d.ts.map +1 -0
  254. package/dist/app/theme/favicon.js +3 -0
  255. package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
  256. package/dist/app/theme/prism-default-theme.js +122 -66
  257. package/dist/app/theme/resolve-theme-tokens.d.ts +29 -0
  258. package/dist/app/theme/resolve-theme-tokens.d.ts.map +1 -0
  259. package/dist/app/theme/resolve-theme-tokens.js +43 -0
  260. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +4 -7
  261. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
  262. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +31 -69
  263. package/dist/app/view-tab-bar/next-view-id.d.ts +7 -1
  264. package/dist/app/view-tab-bar/next-view-id.d.ts.map +1 -1
  265. package/dist/app/view-tab-bar/next-view-id.js +9 -1
  266. package/dist/app/view-tab-bar/panel-inputs.d.ts +28 -0
  267. package/dist/app/view-tab-bar/panel-inputs.d.ts.map +1 -0
  268. package/dist/app/view-tab-bar/panel-inputs.js +41 -0
  269. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts +2 -3
  270. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
  271. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +9 -9
  272. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts +6 -0
  273. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
  274. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +22 -29
  275. package/dist/builder/config-loader/deprecated-options.d.ts +9 -0
  276. package/dist/builder/config-loader/deprecated-options.d.ts.map +1 -0
  277. package/dist/builder/config-loader/deprecated-options.js +34 -0
  278. package/dist/builder/manifest/composition-wrapper.generator.d.ts +14 -0
  279. package/dist/builder/manifest/composition-wrapper.generator.d.ts.map +1 -0
  280. package/dist/builder/manifest/composition-wrapper.generator.js +66 -0
  281. package/dist/builder/manifest/host-parser.d.ts +2 -0
  282. package/dist/builder/manifest/host-parser.d.ts.map +1 -1
  283. package/dist/builder/manifest/host-parser.js +9 -4
  284. package/dist/builder/manifest/manifest-imports.d.ts +34 -0
  285. package/dist/builder/manifest/manifest-imports.d.ts.map +1 -0
  286. package/dist/builder/manifest/manifest-imports.js +91 -0
  287. package/dist/builder/manifest/runtime-manifest.generator.d.ts +13 -0
  288. package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
  289. package/dist/builder/manifest/runtime-manifest.generator.js +137 -65
  290. package/dist/builder/manifest/selector-element.d.ts +16 -0
  291. package/dist/builder/manifest/selector-element.d.ts.map +1 -0
  292. package/dist/builder/manifest/selector-element.js +46 -0
  293. package/dist/builder/manifest/template-literal.d.ts +3 -0
  294. package/dist/builder/manifest/template-literal.d.ts.map +1 -0
  295. package/dist/builder/manifest/template-literal.js +4 -0
  296. package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
  297. package/dist/builder/plugin-runner/plugin-runner.js +29 -26
  298. package/dist/builder/scanner/api/angular-decorators.d.ts +84 -0
  299. package/dist/builder/scanner/api/angular-decorators.d.ts.map +1 -0
  300. package/dist/builder/scanner/api/angular-decorators.js +157 -0
  301. package/dist/builder/scanner/api/component-api.extractor.d.ts +13 -0
  302. package/dist/builder/scanner/api/component-api.extractor.d.ts.map +1 -0
  303. package/dist/builder/scanner/api/component-api.extractor.js +104 -0
  304. package/dist/builder/scanner/api/doc-tags.d.ts +13 -0
  305. package/dist/builder/scanner/api/doc-tags.d.ts.map +1 -0
  306. package/dist/builder/scanner/api/doc-tags.js +101 -0
  307. package/dist/builder/scanner/api/export-index.d.ts +18 -0
  308. package/dist/builder/scanner/api/export-index.d.ts.map +1 -0
  309. package/dist/builder/scanner/api/export-index.js +22 -0
  310. package/dist/builder/scanner/api/member.extractor.d.ts +90 -0
  311. package/dist/builder/scanner/api/member.extractor.d.ts.map +1 -0
  312. package/dist/builder/scanner/api/member.extractor.js +270 -0
  313. package/dist/builder/scanner/api/pipe-api.extractor.d.ts +12 -0
  314. package/dist/builder/scanner/api/pipe-api.extractor.d.ts.map +1 -0
  315. package/dist/builder/scanner/api/pipe-api.extractor.js +52 -0
  316. package/dist/builder/scanner/api/service-api.extractor.d.ts +14 -0
  317. package/dist/builder/scanner/api/service-api.extractor.d.ts.map +1 -0
  318. package/dist/builder/scanner/api/service-api.extractor.js +119 -0
  319. package/dist/builder/scanner/api/setup.reader.d.ts +26 -0
  320. package/dist/builder/scanner/api/setup.reader.d.ts.map +1 -0
  321. package/dist/builder/scanner/api/setup.reader.js +89 -0
  322. package/dist/builder/scanner/api/type-collector.d.ts +24 -0
  323. package/dist/builder/scanner/api/type-collector.d.ts.map +1 -0
  324. package/dist/builder/scanner/api/type-collector.js +211 -0
  325. package/dist/builder/scanner/ast-utils.d.ts +8 -0
  326. package/dist/builder/scanner/ast-utils.d.ts.map +1 -1
  327. package/dist/builder/scanner/ast-utils.js +37 -1
  328. package/dist/builder/scanner/class-hierarchy.d.ts +5 -3
  329. package/dist/builder/scanner/class-hierarchy.d.ts.map +1 -1
  330. package/dist/builder/scanner/class-hierarchy.js +12 -6
  331. package/dist/builder/scanner/component.scanner.d.ts +60 -6
  332. package/dist/builder/scanner/component.scanner.d.ts.map +1 -1
  333. package/dist/builder/scanner/component.scanner.js +229 -58
  334. package/dist/builder/scanner/composition/compose-template.d.ts +36 -0
  335. package/dist/builder/scanner/composition/compose-template.d.ts.map +1 -0
  336. package/dist/builder/scanner/composition/compose-template.js +187 -0
  337. package/dist/builder/scanner/composition/declarables.d.ts +54 -0
  338. package/dist/builder/scanner/composition/declarables.d.ts.map +1 -0
  339. package/dist/builder/scanner/composition/declarables.js +182 -0
  340. package/dist/builder/scanner/composition/match-declarables.d.ts +43 -0
  341. package/dist/builder/scanner/composition/match-declarables.d.ts.map +1 -0
  342. package/dist/builder/scanner/composition/match-declarables.js +131 -0
  343. package/dist/builder/scanner/composition/read-composition.d.ts +77 -0
  344. package/dist/builder/scanner/composition/read-composition.d.ts.map +1 -0
  345. package/dist/builder/scanner/composition/read-composition.js +302 -0
  346. package/dist/builder/scanner/composition/template-elements.d.ts +12 -0
  347. package/dist/builder/scanner/composition/template-elements.d.ts.map +1 -0
  348. package/dist/builder/scanner/composition/template-elements.js +41 -0
  349. package/dist/builder/scanner/entry-point-discovery.d.ts +5 -0
  350. package/dist/builder/scanner/entry-point-discovery.d.ts.map +1 -1
  351. package/dist/builder/scanner/entry-point-discovery.js +14 -0
  352. package/dist/builder/scanner/entry-point.scanner.d.ts +3 -1
  353. package/dist/builder/scanner/entry-point.scanner.d.ts.map +1 -1
  354. package/dist/builder/scanner/entry-point.scanner.js +7 -6
  355. package/dist/builder/scanner/index.d.ts +4 -0
  356. package/dist/builder/scanner/index.d.ts.map +1 -1
  357. package/dist/builder/scanner/index.js +2 -0
  358. package/dist/builder/scanner/input.extractor.d.ts +31 -2
  359. package/dist/builder/scanner/input.extractor.d.ts.map +1 -1
  360. package/dist/builder/scanner/input.extractor.js +73 -17
  361. package/dist/builder/scanner/pipe.scanner.d.ts +29 -0
  362. package/dist/builder/scanner/pipe.scanner.d.ts.map +1 -0
  363. package/dist/builder/scanner/pipe.scanner.js +65 -0
  364. package/dist/builder/scanner/pseudo-states.d.ts +1 -0
  365. package/dist/builder/scanner/pseudo-states.d.ts.map +1 -1
  366. package/dist/builder/scanner/pseudo-states.js +1 -1
  367. package/dist/builder/scanner/scanner.d.ts +27 -3
  368. package/dist/builder/scanner/scanner.d.ts.map +1 -1
  369. package/dist/builder/scanner/scanner.js +68 -24
  370. package/dist/builder/scanner/service/angular-decorators.d.ts +80 -0
  371. package/dist/builder/scanner/service/angular-decorators.d.ts.map +1 -0
  372. package/dist/builder/scanner/service/angular-decorators.js +154 -0
  373. package/dist/builder/scanner/service/doc-tags.d.ts +13 -0
  374. package/dist/builder/scanner/service/doc-tags.d.ts.map +1 -0
  375. package/dist/builder/scanner/service/doc-tags.js +97 -0
  376. package/dist/builder/scanner/service/export-index.d.ts +18 -0
  377. package/dist/builder/scanner/service/export-index.d.ts.map +1 -0
  378. package/dist/builder/scanner/service/export-index.js +22 -0
  379. package/dist/builder/scanner/service/member.extractor.d.ts +65 -0
  380. package/dist/builder/scanner/service/member.extractor.d.ts.map +1 -0
  381. package/dist/builder/scanner/service/member.extractor.js +216 -0
  382. package/dist/builder/scanner/service/pipe-api.extractor.d.ts +12 -0
  383. package/dist/builder/scanner/service/pipe-api.extractor.d.ts.map +1 -0
  384. package/dist/builder/scanner/service/pipe-api.extractor.js +72 -0
  385. package/dist/builder/scanner/service/service-api.extractor.d.ts +14 -0
  386. package/dist/builder/scanner/service/service-api.extractor.d.ts.map +1 -0
  387. package/dist/builder/scanner/service/service-api.extractor.js +119 -0
  388. package/dist/builder/scanner/service/setup.reader.d.ts +26 -0
  389. package/dist/builder/scanner/service/setup.reader.d.ts.map +1 -0
  390. package/dist/builder/scanner/service/setup.reader.js +89 -0
  391. package/dist/builder/scanner/service/type-collector.d.ts +23 -0
  392. package/dist/builder/scanner/service/type-collector.d.ts.map +1 -0
  393. package/dist/builder/scanner/service/type-collector.js +210 -0
  394. package/dist/builder/scanner/service.scanner.d.ts +26 -0
  395. package/dist/builder/scanner/service.scanner.d.ts.map +1 -0
  396. package/dist/builder/scanner/service.scanner.js +61 -0
  397. package/dist/builder/scanner/showcase-diagnostics.d.ts +60 -1
  398. package/dist/builder/scanner/showcase-diagnostics.d.ts.map +1 -1
  399. package/dist/builder/scanner/showcase-diagnostics.js +123 -10
  400. package/dist/builder/scanner/showcase-states.d.ts +17 -0
  401. package/dist/builder/scanner/showcase-states.d.ts.map +1 -0
  402. package/dist/builder/scanner/showcase-states.js +58 -0
  403. package/dist/builder/scanner/source-file-cache.d.ts +26 -0
  404. package/dist/builder/scanner/source-file-cache.d.ts.map +1 -0
  405. package/dist/builder/scanner/source-file-cache.js +60 -0
  406. package/dist/builder/shared/prism-pipeline.d.ts +6 -0
  407. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  408. package/dist/builder/shared/prism-pipeline.js +71 -18
  409. package/dist/decorator/index.d.ts +1 -1
  410. package/dist/decorator/index.d.ts.map +1 -1
  411. package/dist/decorator/showcase.types.d.ts +102 -9
  412. package/dist/decorator/showcase.types.d.ts.map +1 -1
  413. package/dist/plugin/index.d.ts +6 -1
  414. package/dist/plugin/index.d.ts.map +1 -1
  415. package/dist/plugin/index.js +4 -0
  416. package/dist/plugin/pipe.types.d.ts +36 -0
  417. package/dist/plugin/pipe.types.d.ts.map +1 -0
  418. package/dist/plugin/pipe.types.js +1 -0
  419. package/dist/plugin/plugin.types.d.ts +184 -8
  420. package/dist/plugin/plugin.types.d.ts.map +1 -1
  421. package/dist/plugin/service.types.d.ts +124 -0
  422. package/dist/plugin/service.types.d.ts.map +1 -0
  423. package/dist/plugin/service.types.js +1 -0
  424. package/dist/plugin/status.d.ts +27 -0
  425. package/dist/plugin/status.d.ts.map +1 -0
  426. package/dist/plugin/status.js +26 -0
  427. package/dist/shared/composition.d.ts +30 -0
  428. package/dist/shared/composition.d.ts.map +1 -0
  429. package/dist/shared/composition.js +29 -0
  430. package/dist/shared/pseudo-state.type.d.ts +2 -1
  431. package/dist/shared/pseudo-state.type.d.ts.map +1 -1
  432. package/dist/shared/void-elements.d.ts +3 -0
  433. package/dist/shared/void-elements.d.ts.map +1 -0
  434. package/dist/shared/void-elements.js +2 -0
  435. package/package.json +1 -1
  436. package/src/builder/build/schema.json +6 -6
  437. package/src/builder/serve/schema.json +6 -6
@@ -1,22 +1,18 @@
1
1
  import { type HeadMetric } from './head-metrics.js';
2
2
  import * as i0 from "@angular/core";
3
3
  /**
4
- * Measurement disclosure for the component head.
4
+ * Measurement disclosure for the component head, right behind the status.
5
5
  *
6
- * Replaces four always-present stat tiles with one element of fixed width at a
7
- * fixed position, so the row does not shift when you switch components. It
8
- * shows a plain count in the nominal green while everything is within
9
- * threshold, and the worst value in plain text when it is not. The full
10
- * readout is one click away and never disappears.
11
- *
12
- * It knows no individual metric. The list arrives already resolved, in the
13
- * same shape `decorateItem` produces for the sidebar, which is less code than
14
- * the five @if branches it replaces and keeps the colour rule in one place.
6
+ * One soft badge in the tone of the worst metric ("VRT diff 10.26%"), or of the
7
+ * first measured one when everything is fine. How many metrics were measured
8
+ * is in the tooltip, not on the chip. The readout behind it lists every metric
9
+ * with its threshold.
15
10
  */
16
11
  export declare class PrismHeadGaugeComponent {
17
12
  readonly metrics: import("@angular/core").InputSignal<readonly HeadMetric[]>;
18
- protected readonly summary: import("@angular/core").Signal<import("./head-metrics.js").GaugeSummary>;
19
- protected readonly ariaLabel: import("@angular/core").Signal<string>;
13
+ protected readonly chip: import("@angular/core").Signal<import("./head-metrics.js").GaugeChip | null>;
14
+ protected readonly tone: import("@angular/core").Signal<import("../shared/badge.types.js").BadgeTone>;
15
+ protected readonly title: import("@angular/core").Signal<string>;
20
16
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismHeadGaugeComponent, never>;
21
17
  static ɵcmp: i0.ɵɵComponentDeclaration<PrismHeadGaugeComponent, "prism-head-gauge", never, { "metrics": { "alias": "metrics"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
22
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"prism-head-gauge.component.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/prism-head-gauge.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,mBAAmB,CAAC;;AAGtE;;;;;;;;;;;;GAYG;AACH,qBAQa,uBAAuB;IAChC,QAAQ,CAAC,OAAO,6DAA2C;IAC3D,SAAS,CAAC,QAAQ,CAAC,OAAO,2EAAoD;IAC9E,SAAS,CAAC,QAAQ,CAAC,SAAS,yCAMzB;yCATM,uBAAuB;2CAAvB,uBAAuB;CAUnC"}
1
+ {"version":3,"file":"prism-head-gauge.component.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/prism-head-gauge.component.ts"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;;AAG/D;;;;;;;GAOG;AACH,qBAQa,uBAAuB;IAChC,QAAQ,CAAC,OAAO,6DAA2C;IAC3D,SAAS,CAAC,QAAQ,CAAC,IAAI,+EAA6C;IACpE,SAAS,CAAC,QAAQ,CAAC,IAAI,+EAIpB;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,yCAKrB;yCAbM,uBAAuB;2CAAvB,uBAAuB;CAcnC"}
@@ -1,91 +1,75 @@
1
1
  import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
2
- import { summarizeMetrics } from './head-metrics.js';
2
+ import { toneForStatus } from '../shared/badge.types.js';
3
+ import { PrismBadgeComponent } from '../shared/prism-badge.component.js';
4
+ import { gaugeChip } from './head-metrics.js';
3
5
  import { PrismStatComponent } from './prism-stat.component.js';
4
6
  import * as i0 from "@angular/core";
5
7
  const _forTrack0 = ($index, $item) => $item.id;
6
- function PrismHeadGaugeComponent_Conditional_2_Conditional_2_Template(rf, ctx) { if (rf & 1) {
7
- i0.ɵɵelementStart(0, "span", 5);
8
- i0.ɵɵtext(1);
9
- i0.ɵɵelementEnd();
8
+ function PrismHeadGaugeComponent_Conditional_0_For_11_Template(rf, ctx) { if (rf & 1) {
9
+ i0.ɵɵelement(0, "prism-stat", 4);
10
10
  } if (rf & 2) {
11
- const ctx_r0 = i0.ɵɵnextContext(2);
12
- i0.ɵɵadvance();
13
- i0.ɵɵtextInterpolate1("+", ctx_r0.summary().others);
11
+ const m_r1 = ctx.$implicit;
12
+ i0.ɵɵproperty("label", m_r1.label)("threshold", m_r1.threshold)("value", m_r1.value)("variant", m_r1.variant);
14
13
  } }
15
- function PrismHeadGaugeComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
16
- i0.ɵɵelementStart(0, "span", 2);
17
- i0.ɵɵtext(1);
14
+ function PrismHeadGaugeComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
15
+ i0.ɵɵelementStart(0, "button", 0);
16
+ i0.ɵɵelement(1, "prism-badge", 1);
18
17
  i0.ɵɵelementEnd();
19
- i0.ɵɵconditionalCreate(2, PrismHeadGaugeComponent_Conditional_2_Conditional_2_Template, 2, 1, "span", 5);
20
- } if (rf & 2) {
21
- const worst_r2 = ctx;
22
- const ctx_r0 = i0.ɵɵnextContext();
23
- i0.ɵɵadvance();
24
- i0.ɵɵtextInterpolate2("", worst_r2.label, " ", worst_r2.value);
25
- i0.ɵɵadvance();
26
- i0.ɵɵconditional(ctx_r0.summary().others > 0 ? 2 : -1);
27
- } }
28
- function PrismHeadGaugeComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelementStart(0, "span", 2);
30
- i0.ɵɵtext(1);
18
+ i0.ɵɵelementStart(2, "div", 2)(3, "div", 3)(4, "span");
19
+ i0.ɵɵtext(5, "Metric");
20
+ i0.ɵɵelementEnd();
21
+ i0.ɵɵelementStart(6, "span");
22
+ i0.ɵɵtext(7, "Threshold");
23
+ i0.ɵɵelementEnd();
24
+ i0.ɵɵelementStart(8, "span");
25
+ i0.ɵɵtext(9, "Value");
26
+ i0.ɵɵelementEnd()();
27
+ i0.ɵɵrepeaterCreate(10, PrismHeadGaugeComponent_Conditional_0_For_11_Template, 1, 4, "prism-stat", 4, _forTrack0);
31
28
  i0.ɵɵelementEnd();
32
29
  } if (rf & 2) {
33
- const ctx_r0 = i0.ɵɵnextContext();
30
+ const c_r2 = ctx;
31
+ const ctx_r2 = i0.ɵɵnextContext();
32
+ i0.ɵɵattribute("aria-label", c_r2.metric.label + " " + c_r2.metric.value + ". " + ctx_r2.title())("title", ctx_r2.title());
34
33
  i0.ɵɵadvance();
35
- i0.ɵɵtextInterpolate(ctx_r0.summary().measured);
36
- } }
37
- function PrismHeadGaugeComponent_For_6_Template(rf, ctx) { if (rf & 1) {
38
- i0.ɵɵelement(0, "prism-stat", 4);
39
- } if (rf & 2) {
40
- const m_r3 = ctx.$implicit;
41
- i0.ɵɵproperty("label", m_r3.label)("value", m_r3.value)("variant", m_r3.variant);
34
+ i0.ɵɵproperty("tone", ctx_r2.tone())("label", c_r2.metric.label)("value", c_r2.metric.value);
35
+ i0.ɵɵadvance(9);
36
+ i0.ɵɵrepeater(ctx_r2.metrics());
42
37
  } }
43
38
  /**
44
- * Measurement disclosure for the component head.
45
- *
46
- * Replaces four always-present stat tiles with one element of fixed width at a
47
- * fixed position, so the row does not shift when you switch components. It
48
- * shows a plain count in the nominal green while everything is within
49
- * threshold, and the worst value in plain text when it is not. The full
50
- * readout is one click away and never disappears.
39
+ * Measurement disclosure for the component head, right behind the status.
51
40
  *
52
- * It knows no individual metric. The list arrives already resolved, in the
53
- * same shape `decorateItem` produces for the sidebar, which is less code than
54
- * the five @if branches it replaces and keeps the colour rule in one place.
41
+ * One soft badge in the tone of the worst metric ("VRT diff 10.26%"), or of the
42
+ * first measured one when everything is fine. How many metrics were measured
43
+ * is in the tooltip, not on the chip. The readout behind it lists every metric
44
+ * with its threshold.
55
45
  */
56
46
  export class PrismHeadGaugeComponent {
57
47
  metrics = input.required(/* @ts-ignore */
58
48
  ...(ngDevMode ? [{ debugName: "metrics" }] : /* istanbul ignore next */ []));
59
- summary = computed(() => summarizeMetrics(this.metrics()), /* @ts-ignore */
60
- ...(ngDevMode ? [{ debugName: "summary" }] : /* istanbul ignore next */ []));
61
- ariaLabel = computed(() => {
62
- const s = this.summary();
63
- return s.worst === null
64
- ? `${s.measured} metrics, all within threshold`
65
- : `${s.worst.label} ${s.worst.value}${s.others > 0 ? `, ${s.others} more deviating` : ''}`;
49
+ chip = computed(() => gaugeChip(this.metrics()), /* @ts-ignore */
50
+ ...(ngDevMode ? [{ debugName: "chip" }] : /* istanbul ignore next */ []));
51
+ tone = computed(() => {
52
+ const chip = this.chip();
53
+ return chip ? toneForStatus(chip.variant) : 'neutral';
54
+ }, /* @ts-ignore */
55
+ ...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
56
+ title = computed(() => {
57
+ const chip = this.chip();
58
+ if (!chip)
59
+ return '';
60
+ return `${chip.measured} ${chip.measured === 1 ? 'metric' : 'metrics'} measured. Show all`;
66
61
  }, /* @ts-ignore */
67
- ...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
62
+ ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
68
63
  static ɵfac = function PrismHeadGaugeComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismHeadGaugeComponent)(); };
69
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismHeadGaugeComponent, selectors: [["prism-head-gauge"]], inputs: { metrics: [1, "metrics"] }, decls: 7, vars: 9, consts: [["type", "button", "popovertarget", "prism-head-gauge", 1, "gauge"], ["aria-hidden", "true", 1, "gauge__dot"], [1, "gauge__text"], ["popover", "", "id", "prism-head-gauge", "role", "dialog", "aria-label", "Component metrics", 1, "gauge-card"], [3, "label", "value", "variant"], [1, "gauge__more"]], template: function PrismHeadGaugeComponent_Template(rf, ctx) { if (rf & 1) {
70
- i0.ɵɵelementStart(0, "button", 0);
71
- i0.ɵɵelement(1, "span", 1);
72
- i0.ɵɵconditionalCreate(2, PrismHeadGaugeComponent_Conditional_2_Template, 3, 3)(3, PrismHeadGaugeComponent_Conditional_3_Template, 2, 1, "span", 2);
73
- i0.ɵɵelementEnd();
74
- i0.ɵɵelementStart(4, "div", 3);
75
- i0.ɵɵrepeaterCreate(5, PrismHeadGaugeComponent_For_6_Template, 1, 3, "prism-stat", 4, _forTrack0);
76
- i0.ɵɵelementEnd();
64
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismHeadGaugeComponent, selectors: [["prism-head-gauge"]], inputs: { metrics: [1, "metrics"] }, decls: 1, vars: 1, consts: [["type", "button", "popovertarget", "prism-head-gauge", 1, "gauge"], ["dot", "", 3, "tone", "label", "value"], ["popover", "", "id", "prism-head-gauge", "role", "dialog", "aria-label", "Component metrics", 1, "gauge-card"], ["aria-hidden", "true", 1, "gauge-card__row", "gauge-card__row--head"], [3, "label", "threshold", "value", "variant"]], template: function PrismHeadGaugeComponent_Template(rf, ctx) { if (rf & 1) {
65
+ i0.ɵɵconditionalCreate(0, PrismHeadGaugeComponent_Conditional_0_Template, 12, 5);
77
66
  } if (rf & 2) {
78
- let tmp_5_0;
79
- i0.ɵɵclassProp("gauge--ok", ctx.summary().variant === "ok")("gauge--warn", ctx.summary().variant === "warn")("gauge--danger", ctx.summary().variant === "danger");
80
- i0.ɵɵattribute("aria-label", ctx.ariaLabel())("title", ctx.ariaLabel());
81
- i0.ɵɵadvance(2);
82
- i0.ɵɵconditional((tmp_5_0 = ctx.summary().worst) ? 2 : 3, tmp_5_0);
83
- i0.ɵɵadvance(3);
84
- i0.ɵɵrepeater(ctx.metrics());
85
- } }, dependencies: [PrismStatComponent], styles: ["[_nghost-%COMP%] {\n display: inline-flex;\n}\n\n.gauge[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: var(--%NS%sp-2);\n align-items: center;\n height: 20px;\n padding: 0 var(--%NS%sp-3);\n anchor-name: --prism-head-gauge;\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-xs);\n font-variant-numeric: tabular-nums;\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: transparent;\n border: 1px solid var(--%NS%prism-border);\n border-radius: var(--%NS%radius-xs);\n}\n\n.gauge[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 1px;\n}\n\n.gauge__dot[_ngcontent-%COMP%] {\n width: 5px;\n height: 5px;\n background: currentcolor;\n border-radius: 50%;\n opacity: 0.5;\n}\n\n.gauge__more[_ngcontent-%COMP%] {\n opacity: 0.6;\n}\n\n\n\n\n.gauge--ok[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-nominal);\n border-color: color-mix(in srgb, var(--%NS%prism-mark-nominal) 40%, transparent);\n}\n\n.gauge--warn[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-attention);\n border-color: color-mix(in srgb, var(--%NS%prism-mark-attention) 40%, transparent);\n}\n\n.gauge--danger[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-critical);\n border-color: color-mix(in srgb, var(--%NS%prism-mark-critical) 45%, transparent);\n}\n\n.gauge--ok[_ngcontent-%COMP%] .gauge__dot[_ngcontent-%COMP%], \n.gauge--warn[_ngcontent-%COMP%] .gauge__dot[_ngcontent-%COMP%], \n.gauge--danger[_ngcontent-%COMP%] .gauge__dot[_ngcontent-%COMP%] {\n opacity: 1;\n}\n\n.gauge-card[_ngcontent-%COMP%] {\n inset: auto;\n gap: 1px;\n min-width: 200px;\n padding: var(--%NS%sp-2);\n margin: 0;\n position-area: block-end span-inline-start;\n position-anchor: --prism-head-gauge;\n position-try-fallbacks: flip-block, flip-inline;\n background: var(--%NS%prism-bg-elevated);\n border: 1px solid var(--%NS%prism-border-strong);\n border-radius: var(--%NS%radius-md);\n box-shadow: 0 8px 28px -10px rgb(0 0 0 / 45%);\n}\n\n\n\n\n\n.gauge-card[_ngcontent-%COMP%]:popover-open {\n display: flex;\n flex-direction: column;\n}"] });
67
+ let tmp_0_0;
68
+ i0.ɵɵconditional((tmp_0_0 = ctx.chip()) ? 0 : -1, tmp_0_0);
69
+ } }, dependencies: [PrismBadgeComponent, PrismStatComponent], styles: ["[_nghost-%COMP%] {\n display: inline-flex;\n}\n\n.gauge[_ngcontent-%COMP%] {\n display: inline-flex;\n padding: 0;\n anchor-name: --prism-head-gauge;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 4px;\n}\n\n.gauge[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n}\n\n.gauge-card[_ngcontent-%COMP%] {\n inset: auto;\n gap: 1px;\n min-width: 200px;\n padding: var(--%NS%sp-2);\n margin: 0;\n position-area: block-end span-inline-end;\n position-anchor: --prism-head-gauge;\n position-try-fallbacks: flip-block, flip-inline;\n background: var(--%NS%prism-bg-elevated);\n border: 1px solid var(--%NS%prism-border);\n border-radius: var(--%NS%radius-md);\n box-shadow: var(--%NS%prism-shadow-md);\n}\n\n\n\n\n\n.gauge-card[_ngcontent-%COMP%]:popover-open {\n display: flex;\n flex-direction: column;\n}\n\n.gauge-card__row--head[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: minmax(110px, 1fr) 90px 70px;\n gap: var(--%NS%sp-4);\n padding: var(--%NS%sp-2) var(--%NS%sp-3) var(--%NS%sp-1);\n font-size: var(--%NS%fs-xs);\n font-weight: 600;\n color: var(--%NS%prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n}\n\n.gauge-card__row--head[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:last-child {\n text-align: right;\n}"] });
86
70
  }
87
71
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeadGaugeComponent, [{
88
72
  type: Component,
89
- args: [{ selector: 'prism-head-gauge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismStatComponent], template: "<button\n class=\"gauge\"\n type=\"button\"\n [class.gauge--ok]=\"summary().variant === 'ok'\"\n [class.gauge--warn]=\"summary().variant === 'warn'\"\n [class.gauge--danger]=\"summary().variant === 'danger'\"\n popovertarget=\"prism-head-gauge\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.title]=\"ariaLabel()\">\n <span\n class=\"gauge__dot\"\n aria-hidden=\"true\"></span>\n @if (summary().worst; as worst) {\n <span class=\"gauge__text\">{{ worst.label }} {{ worst.value }}</span>\n @if (summary().others > 0) {\n <span class=\"gauge__more\">+{{ summary().others }}</span>\n }\n } @else {\n <span class=\"gauge__text\">{{ summary().measured }}</span>\n }\n</button>\n\n<div\n popover\n id=\"prism-head-gauge\"\n class=\"gauge-card\"\n role=\"dialog\"\n aria-label=\"Component metrics\">\n @for (m of metrics(); track m.id) {\n <prism-stat\n [label]=\"m.label\"\n [value]=\"m.value\"\n [variant]=\"m.variant\" />\n }\n</div>\n", styles: [":host {\n display: inline-flex;\n}\n\n.gauge {\n display: inline-flex;\n gap: var(--sp-2);\n align-items: center;\n height: 20px;\n padding: 0 var(--sp-3);\n anchor-name: --prism-head-gauge;\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n font-variant-numeric: tabular-nums;\n color: var(--prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: transparent;\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-xs);\n}\n\n.gauge:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n}\n\n.gauge__dot {\n width: 5px;\n height: 5px;\n background: currentcolor;\n border-radius: 50%;\n opacity: 0.5;\n}\n\n.gauge__more {\n opacity: 0.6;\n}\n\n/* The quiet state is green now, not grey: the gauge says \"these values\n were measured and all of them are fine\", which is a result, not an\n absence. A metric with no data at all stays grey in the readout rows. */\n.gauge--ok {\n color: var(--prism-mark-nominal);\n border-color: color-mix(in srgb, var(--prism-mark-nominal) 40%, transparent);\n}\n\n.gauge--warn {\n color: var(--prism-mark-attention);\n border-color: color-mix(in srgb, var(--prism-mark-attention) 40%, transparent);\n}\n\n.gauge--danger {\n color: var(--prism-mark-critical);\n border-color: color-mix(in srgb, var(--prism-mark-critical) 45%, transparent);\n}\n\n.gauge--ok .gauge__dot,\n.gauge--warn .gauge__dot,\n.gauge--danger .gauge__dot {\n opacity: 1;\n}\n\n.gauge-card {\n inset: auto;\n gap: 1px;\n min-width: 200px;\n padding: var(--sp-2);\n margin: 0;\n position-area: block-end span-inline-start;\n position-anchor: --prism-head-gauge;\n position-try-fallbacks: flip-block, flip-inline;\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--radius-md);\n box-shadow: 0 8px 28px -10px rgb(0 0 0 / 45%);\n}\n\n/* display belongs on :popover-open and nowhere else (see the note in\n prism-template-popover.component.ts). An author display on the base\n rule outranks the UA's [popover]:not(:popover-open) { display: none }\n and pins the readout open. */\n.gauge-card:popover-open {\n display: flex;\n flex-direction: column;\n}\n"] }]
73
+ args: [{ selector: 'prism-head-gauge', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismBadgeComponent, PrismStatComponent], template: "@if (chip(); as c) {\n <button\n class=\"gauge\"\n type=\"button\"\n popovertarget=\"prism-head-gauge\"\n [attr.aria-label]=\"c.metric.label + ' ' + c.metric.value + '. ' + title()\"\n [attr.title]=\"title()\">\n <prism-badge\n dot\n [tone]=\"tone()\"\n [label]=\"c.metric.label\"\n [value]=\"c.metric.value\" />\n </button>\n\n <div\n popover\n id=\"prism-head-gauge\"\n class=\"gauge-card\"\n role=\"dialog\"\n aria-label=\"Component metrics\">\n <div\n class=\"gauge-card__row gauge-card__row--head\"\n aria-hidden=\"true\">\n <span>Metric</span>\n <span>Threshold</span>\n <span>Value</span>\n </div>\n @for (m of metrics(); track m.id) {\n <prism-stat\n [label]=\"m.label\"\n [threshold]=\"m.threshold\"\n [value]=\"m.value\"\n [variant]=\"m.variant\" />\n }\n </div>\n}\n", styles: [":host {\n display: inline-flex;\n}\n\n.gauge {\n display: inline-flex;\n padding: 0;\n anchor-name: --prism-head-gauge;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: 4px;\n}\n\n.gauge:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n}\n\n.gauge-card {\n inset: auto;\n gap: 1px;\n min-width: 200px;\n padding: var(--sp-2);\n margin: 0;\n position-area: block-end span-inline-end;\n position-anchor: --prism-head-gauge;\n position-try-fallbacks: flip-block, flip-inline;\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-md);\n box-shadow: var(--prism-shadow-md);\n}\n\n/* display belongs on :popover-open and nowhere else (see the note in\n prism-template-popover.component.ts). An author display on the base\n rule outranks the UA's [popover]:not(:popover-open) { display: none }\n and pins the readout open. */\n.gauge-card:popover-open {\n display: flex;\n flex-direction: column;\n}\n\n.gauge-card__row--head {\n display: grid;\n grid-template-columns: minmax(110px, 1fr) 90px 70px;\n gap: var(--sp-4);\n padding: var(--sp-2) var(--sp-3) var(--sp-1);\n font-size: var(--fs-xs);\n font-weight: 600;\n color: var(--prism-text-muted);\n text-transform: uppercase;\n letter-spacing: 0.06em;\n}\n\n.gauge-card__row--head span:last-child {\n text-align: right;\n}\n"] }]
90
74
  }], null, { metrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "metrics", required: true }] }] }); })();
91
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeadGaugeComponent, { className: "PrismHeadGaugeComponent", filePath: "app/component-head/prism-head-gauge.component.ts", lineNumber: 26 }); })();
75
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeadGaugeComponent, { className: "PrismHeadGaugeComponent", filePath: "app/component-head/prism-head-gauge.component.ts", lineNumber: 23 }); })();
@@ -7,17 +7,29 @@ import * as i0 from "@angular/core";
7
7
  * them permanently on screen cost a 128px band to say something that belongs
8
8
  * behind one glyph.
9
9
  *
10
+ * A service has no selector, so its code block shows the class name instead,
11
+ * and `facts` carries the plain lines that stand in for the variant and state
12
+ * counts a service does not have. A pipe has none either; its code block is
13
+ * whatever `code` says, which is how it is written in a template.
14
+ *
10
15
  * Opening is click-only, through the native Popover API. Escape, click-outside
11
16
  * dismissal and top-layer placement come with it declaratively; a hover panel
12
17
  * would mean rebuilding all three by hand, and crossing the gap between icon
13
18
  * and card without the card closing is its own problem.
14
19
  */
15
20
  export declare class PrismHeadInfoComponent {
16
- readonly selector: import("@angular/core").InputSignal<string>;
21
+ readonly selector: import("@angular/core").InputSignal<string | undefined>;
22
+ /** Replaces the code block, which otherwise shows the selector of a component or the class name of a service. */
23
+ readonly code: import("@angular/core").InputSignal<string | undefined>;
24
+ readonly className: import("@angular/core").InputSignal<string | undefined>;
17
25
  readonly description: import("@angular/core").InputSignal<string | undefined>;
18
26
  readonly tags: import("@angular/core").InputSignal<readonly string[]>;
19
27
  readonly variantCount: import("@angular/core").InputSignal<number>;
28
+ readonly stateCount: import("@angular/core").InputSignal<number>;
29
+ readonly facts: import("@angular/core").InputSignal<readonly string[]>;
30
+ protected readonly label: import("@angular/core").Signal<"Component details" | "Service details" | "Pipe details">;
31
+ protected readonly codeBlock: import("@angular/core").Signal<string>;
20
32
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismHeadInfoComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<PrismHeadInfoComponent, "prism-head-info", never, { "selector": { "alias": "selector"; "required": true; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "variantCount": { "alias": "variantCount"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<PrismHeadInfoComponent, "prism-head-info", never, { "selector": { "alias": "selector"; "required": false; "isSignal": true; }; "code": { "alias": "code"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "variantCount": { "alias": "variantCount"; "required": false; "isSignal": true; }; "stateCount": { "alias": "stateCount"; "required": false; "isSignal": true; }; "facts": { "alias": "facts"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
22
34
  }
23
35
  //# sourceMappingURL=prism-head-info.component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prism-head-info.component.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/prism-head-info.component.ts"],"names":[],"mappings":";AAGA;;;;;;;;;;;;GAYG;AACH,qBAQa,sBAAsB;IAC/B,QAAQ,CAAC,QAAQ,8CAA4B;IAC7C,QAAQ,CAAC,WAAW,0DAAwC;IAC5D,QAAQ,CAAC,IAAI,yDAAgC;IAC7C,QAAQ,CAAC,YAAY,8CAAoB;yCAJhC,sBAAsB;2CAAtB,sBAAsB;CAKlC"}
1
+ {"version":3,"file":"prism-head-info.component.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/prism-head-info.component.ts"],"names":[],"mappings":";AAGA;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAQa,sBAAsB;IAC/B,QAAQ,CAAC,QAAQ,0DAAwC;IACzD,iHAAiH;IACjH,QAAQ,CAAC,IAAI,0DAAwC;IACrD,QAAQ,CAAC,SAAS,0DAAwC;IAC1D,QAAQ,CAAC,WAAW,0DAAwC;IAC5D,QAAQ,CAAC,IAAI,yDAAgC;IAC7C,QAAQ,CAAC,YAAY,8CAAoB;IACzC,QAAQ,CAAC,UAAU,8CAAoB;IACvC,QAAQ,CAAC,KAAK,yDAAgC;IAE9C,SAAS,CAAC,QAAQ,CAAC,KAAK,2FAGrB;IAEH,SAAS,CAAC,QAAQ,CAAC,SAAS,yCAOzB;yCAvBM,sBAAsB;2CAAtB,sBAAsB;CAwBlC"}
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
2
2
  import { PrismIconComponent } from '../icons/prism-icon.component.js';
3
3
  import * as i0 from "@angular/core";
4
4
  function PrismHeadInfoComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
@@ -10,27 +10,57 @@ function PrismHeadInfoComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
10
10
  i0.ɵɵadvance();
11
11
  i0.ɵɵtextInterpolate(ctx_r0.description());
12
12
  } }
13
+ function PrismHeadInfoComponent_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
14
+ i0.ɵɵtext(0);
15
+ } if (rf & 2) {
16
+ const ctx_r0 = i0.ɵɵnextContext(2);
17
+ i0.ɵɵtextInterpolate2(" ", ctx_r0.variantCount(), " ", ctx_r0.variantCount() === 1 ? "variant" : "variants", " ");
18
+ } }
19
+ function PrismHeadInfoComponent_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵtext(0, " \u00B7 ");
21
+ } }
22
+ function PrismHeadInfoComponent_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
23
+ i0.ɵɵtext(0);
24
+ } if (rf & 2) {
25
+ const ctx_r0 = i0.ɵɵnextContext(2);
26
+ i0.ɵɵtextInterpolate2(" ", ctx_r0.stateCount(), " ", ctx_r0.stateCount() === 1 ? "state" : "states", " ");
27
+ } }
13
28
  function PrismHeadInfoComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
14
29
  i0.ɵɵelementStart(0, "p", 5);
15
- i0.ɵɵtext(1);
30
+ i0.ɵɵconditionalCreate(1, PrismHeadInfoComponent_Conditional_6_Conditional_1_Template, 1, 2);
31
+ i0.ɵɵconditionalCreate(2, PrismHeadInfoComponent_Conditional_6_Conditional_2_Template, 1, 0);
32
+ i0.ɵɵconditionalCreate(3, PrismHeadInfoComponent_Conditional_6_Conditional_3_Template, 1, 2);
16
33
  i0.ɵɵelementEnd();
17
34
  } if (rf & 2) {
18
35
  const ctx_r0 = i0.ɵɵnextContext();
19
36
  i0.ɵɵadvance();
20
- i0.ɵɵtextInterpolate2(" ", ctx_r0.variantCount(), " ", ctx_r0.variantCount() === 1 ? "variant" : "variants", " ");
37
+ i0.ɵɵconditional(ctx_r0.variantCount() > 0 ? 1 : -1);
38
+ i0.ɵɵadvance();
39
+ i0.ɵɵconditional(ctx_r0.variantCount() > 0 && ctx_r0.stateCount() > 0 ? 2 : -1);
40
+ i0.ɵɵadvance();
41
+ i0.ɵɵconditional(ctx_r0.stateCount() > 0 ? 3 : -1);
21
42
  } }
22
- function PrismHeadInfoComponent_Conditional_7_For_2_Template(rf, ctx) { if (rf & 1) {
43
+ function PrismHeadInfoComponent_For_8_Template(rf, ctx) { if (rf & 1) {
44
+ i0.ɵɵelementStart(0, "p", 5);
45
+ i0.ɵɵtext(1);
46
+ i0.ɵɵelementEnd();
47
+ } if (rf & 2) {
48
+ const fact_r2 = ctx.$implicit;
49
+ i0.ɵɵadvance();
50
+ i0.ɵɵtextInterpolate(fact_r2);
51
+ } }
52
+ function PrismHeadInfoComponent_Conditional_9_For_2_Template(rf, ctx) { if (rf & 1) {
23
53
  i0.ɵɵelementStart(0, "span", 7);
24
54
  i0.ɵɵtext(1);
25
55
  i0.ɵɵelementEnd();
26
56
  } if (rf & 2) {
27
- const tag_r2 = ctx.$implicit;
57
+ const tag_r3 = ctx.$implicit;
28
58
  i0.ɵɵadvance();
29
- i0.ɵɵtextInterpolate(tag_r2);
59
+ i0.ɵɵtextInterpolate(tag_r3);
30
60
  } }
31
- function PrismHeadInfoComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
61
+ function PrismHeadInfoComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
32
62
  i0.ɵɵelementStart(0, "div", 6);
33
- i0.ɵɵrepeaterCreate(1, PrismHeadInfoComponent_Conditional_7_For_2_Template, 2, 1, "span", 7, i0.ɵɵrepeaterTrackByIdentity);
63
+ i0.ɵɵrepeaterCreate(1, PrismHeadInfoComponent_Conditional_9_For_2_Template, 2, 1, "span", 7, i0.ɵɵrepeaterTrackByIdentity);
34
64
  i0.ɵɵelementEnd();
35
65
  } if (rf & 2) {
36
66
  const ctx_r0 = i0.ɵɵnextContext();
@@ -45,22 +75,50 @@ function PrismHeadInfoComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
45
75
  * them permanently on screen cost a 128px band to say something that belongs
46
76
  * behind one glyph.
47
77
  *
78
+ * A service has no selector, so its code block shows the class name instead,
79
+ * and `facts` carries the plain lines that stand in for the variant and state
80
+ * counts a service does not have. A pipe has none either; its code block is
81
+ * whatever `code` says, which is how it is written in a template.
82
+ *
48
83
  * Opening is click-only, through the native Popover API. Escape, click-outside
49
84
  * dismissal and top-layer placement come with it declaratively; a hover panel
50
85
  * would mean rebuilding all three by hand, and crossing the gap between icon
51
86
  * and card without the card closing is its own problem.
52
87
  */
53
88
  export class PrismHeadInfoComponent {
54
- selector = input.required(/* @ts-ignore */
89
+ selector = input(undefined, /* @ts-ignore */
55
90
  ...(ngDevMode ? [{ debugName: "selector" }] : /* istanbul ignore next */ []));
91
+ /** Replaces the code block, which otherwise shows the selector of a component or the class name of a service. */
92
+ code = input(undefined, /* @ts-ignore */
93
+ ...(ngDevMode ? [{ debugName: "code" }] : /* istanbul ignore next */ []));
94
+ className = input(undefined, /* @ts-ignore */
95
+ ...(ngDevMode ? [{ debugName: "className" }] : /* istanbul ignore next */ []));
56
96
  description = input(undefined, /* @ts-ignore */
57
97
  ...(ngDevMode ? [{ debugName: "description" }] : /* istanbul ignore next */ []));
58
98
  tags = input([], /* @ts-ignore */
59
99
  ...(ngDevMode ? [{ debugName: "tags" }] : /* istanbul ignore next */ []));
60
100
  variantCount = input(0, /* @ts-ignore */
61
101
  ...(ngDevMode ? [{ debugName: "variantCount" }] : /* istanbul ignore next */ []));
102
+ stateCount = input(0, /* @ts-ignore */
103
+ ...(ngDevMode ? [{ debugName: "stateCount" }] : /* istanbul ignore next */ []));
104
+ facts = input([], /* @ts-ignore */
105
+ ...(ngDevMode ? [{ debugName: "facts" }] : /* istanbul ignore next */ []));
106
+ label = computed(() => {
107
+ if (this.selector() !== undefined)
108
+ return 'Component details';
109
+ return this.code() === undefined ? 'Service details' : 'Pipe details';
110
+ }, /* @ts-ignore */
111
+ ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
112
+ codeBlock = computed(() => {
113
+ const code = this.code();
114
+ if (code !== undefined)
115
+ return code;
116
+ const selector = this.selector();
117
+ return selector ? `<${selector}>` : (this.className() ?? '');
118
+ }, /* @ts-ignore */
119
+ ...(ngDevMode ? [{ debugName: "codeBlock" }] : /* istanbul ignore next */ []));
62
120
  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) {
121
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismHeadInfoComponent, selectors: [["prism-head-info"]], inputs: { selector: [1, "selector"], code: [1, "code"], className: [1, "className"], description: [1, "description"], tags: [1, "tags"], variantCount: [1, "variantCount"], stateCount: [1, "stateCount"], facts: [1, "facts"] }, decls: 10, vars: 8, consts: [["type", "button", "popovertarget", "prism-head-info", 1, "info-btn"], ["name", "info", 3, "size"], ["popover", "", "id", "prism-head-info", "role", "dialog", 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
122
  i0.ɵɵelementStart(0, "button", 0);
65
123
  i0.ɵɵelement(1, "prism-icon", 1);
66
124
  i0.ɵɵelementEnd();
@@ -68,24 +126,30 @@ export class PrismHeadInfoComponent {
68
126
  i0.ɵɵtext(4);
69
127
  i0.ɵɵelementEnd();
70
128
  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);
129
+ i0.ɵɵconditionalCreate(6, PrismHeadInfoComponent_Conditional_6_Template, 4, 3, "p", 5);
130
+ i0.ɵɵrepeaterCreate(7, PrismHeadInfoComponent_For_8_Template, 2, 1, "p", 5, i0.ɵɵrepeaterTrackByIdentity);
131
+ i0.ɵɵconditionalCreate(9, PrismHeadInfoComponent_Conditional_9_Template, 3, 0, "div", 6);
73
132
  i0.ɵɵelementEnd();
74
133
  } if (rf & 2) {
134
+ i0.ɵɵattribute("title", ctx.label())("aria-label", ctx.label());
75
135
  i0.ɵɵadvance();
76
136
  i0.ɵɵproperty("size", 13);
77
- i0.ɵɵadvance(3);
78
- i0.ɵɵtextInterpolate1("<", ctx.selector(), ">");
137
+ i0.ɵɵadvance();
138
+ i0.ɵɵattribute("aria-label", ctx.label());
139
+ i0.ɵɵadvance(2);
140
+ i0.ɵɵtextInterpolate(ctx.codeBlock());
79
141
  i0.ɵɵadvance();
80
142
  i0.ɵɵconditional(ctx.description() ? 5 : -1);
81
143
  i0.ɵɵadvance();
82
- i0.ɵɵconditional(ctx.variantCount() > 0 ? 6 : -1);
144
+ i0.ɵɵconditional(ctx.variantCount() > 0 || ctx.stateCount() > 0 ? 6 : -1);
83
145
  i0.ɵɵadvance();
84
- i0.ɵɵconditional(ctx.tags().length ? 7 : -1);
85
- } }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] {\n display: inline-flex;\n}\n\n.info-btn[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n padding: 0;\n anchor-name: --prism-head-info;\n color: var(--%NS%prism-text-ghost);\n cursor: pointer;\n background: transparent;\n border: 0;\n border-radius: var(--%NS%radius-xs);\n}\n\n.info-btn[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n}\n\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 inset: auto;\n width: 320px;\n max-width: calc(100vw - var(--%NS%sp-6));\n padding: var(--%NS%sp-4);\n margin: 0;\n position-area: block-end span-inline-end;\n position-anchor: --prism-head-info;\n position-try-fallbacks: flip-block, flip-inline;\n color: var(--%NS%prism-text-2);\n background: var(--%NS%prism-bg-elevated);\n border: 1px solid var(--%NS%prism-border-strong);\n border-radius: var(--%NS%radius-md);\n box-shadow: 0 8px 28px -10px rgb(0 0 0 / 45%);\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\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\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\n.info-card__tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: var(--%NS%sp-2);\n margin-top: var(--%NS%sp-4);\n}\n\n.info-card__tag[_ngcontent-%COMP%] {\n padding: 1px var(--%NS%sp-3);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-muted);\n border: 1px solid var(--%NS%prism-border);\n border-radius: var(--%NS%radius-xs);\n}"] });
146
+ i0.ɵɵrepeater(ctx.facts());
147
+ i0.ɵɵadvance(2);
148
+ i0.ɵɵconditional(ctx.tags().length ? 9 : -1);
149
+ } }, dependencies: [PrismIconComponent], styles: ["[_nghost-%COMP%] {\n display: inline-flex;\n}\n\n.info-btn[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n padding: 0;\n anchor-name: --prism-head-info;\n color: var(--%NS%prism-text-muted);\n cursor: pointer;\n background: transparent;\n border: 0;\n border-radius: var(--%NS%radius-xs);\n}\n\n.info-btn[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n}\n\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 inset: auto;\n width: 320px;\n max-width: calc(100vw - var(--%NS%sp-6));\n padding: var(--%NS%sp-4);\n margin: 0;\n position-area: block-end span-inline-end;\n position-anchor: --prism-head-info;\n position-try-fallbacks: flip-block, flip-inline;\n color: var(--%NS%prism-text-2);\n background: var(--%NS%prism-bg-elevated);\n border: 1px solid var(--%NS%prism-border);\n border-radius: var(--%NS%radius-md);\n box-shadow: var(--%NS%prism-shadow-md);\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\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\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\n.info-card__tags[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: var(--%NS%sp-2);\n margin-top: var(--%NS%sp-4);\n}\n\n.info-card__tag[_ngcontent-%COMP%] {\n padding: 1px var(--%NS%sp-3);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-muted);\n border: 1px solid var(--%NS%prism-border);\n border-radius: var(--%NS%radius-xs);\n}"] });
86
150
  }
87
151
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismHeadInfoComponent, [{
88
152
  type: Component,
89
- args: [{ selector: 'prism-head-info', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "<button\n class=\"info-btn\"\n type=\"button\"\n popovertarget=\"prism-head-info\"\n title=\"Component details\"\n aria-label=\"Component details\">\n <prism-icon\n name=\"info\"\n [size]=\"13\" />\n</button>\n\n<div\n popover\n id=\"prism-head-info\"\n class=\"info-card\"\n role=\"dialog\"\n aria-label=\"Component details\">\n <code class=\"info-card__selector\">&lt;{{ selector() }}&gt;</code>\n @if (description()) {\n <p class=\"info-card__desc\">{{ description() }}</p>\n }\n @if (variantCount() > 0) {\n <p class=\"info-card__meta\"> {{ variantCount() }} {{ variantCount() === 1 ? 'variant' : 'variants' }} </p>\n }\n @if (tags().length) {\n <div class=\"info-card__tags\">\n @for (tag of tags(); track tag) {\n <span class=\"info-card__tag\">{{ tag }}</span>\n }\n </div>\n }\n</div>\n", styles: [":host {\n display: inline-flex;\n}\n\n.info-btn {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n padding: 0;\n anchor-name: --prism-head-info;\n color: var(--prism-text-ghost);\n cursor: pointer;\n background: transparent;\n border: 0;\n border-radius: var(--radius-xs);\n}\n\n.info-btn:hover {\n color: var(--prism-text-2);\n}\n\n.info-btn:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n}\n\n.info-card {\n inset: auto;\n width: 320px;\n max-width: calc(100vw - var(--sp-6));\n padding: var(--sp-4);\n margin: 0;\n position-area: block-end span-inline-end;\n position-anchor: --prism-head-info;\n position-try-fallbacks: flip-block, flip-inline;\n color: var(--prism-text-2);\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--radius-md);\n box-shadow: 0 8px 28px -10px rgb(0 0 0 / 45%);\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\n.info-card__desc {\n margin: var(--sp-3) 0 0;\n font-size: var(--fs-lg);\n line-height: 1.55;\n}\n\n/* A plain fact about the component, not a measurement. 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\n.info-card__tags {\n display: flex;\n flex-wrap: wrap;\n gap: var(--sp-2);\n margin-top: var(--sp-4);\n}\n\n.info-card__tag {\n padding: 1px var(--sp-3);\n font-size: var(--fs-xs);\n color: var(--prism-text-muted);\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-xs);\n}\n"] }]
90
- }], 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 }] }] }); })();
91
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeadInfoComponent, { className: "PrismHeadInfoComponent", filePath: "app/component-head/prism-head-info.component.ts", lineNumber: 25 }); })();
153
+ args: [{ selector: 'prism-head-info', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "<button\n class=\"info-btn\"\n type=\"button\"\n popovertarget=\"prism-head-info\"\n [attr.title]=\"label()\"\n [attr.aria-label]=\"label()\">\n <prism-icon\n name=\"info\"\n [size]=\"13\" />\n</button>\n\n<div\n popover\n id=\"prism-head-info\"\n class=\"info-card\"\n role=\"dialog\"\n [attr.aria-label]=\"label()\">\n <code class=\"info-card__selector\">{{ codeBlock() }}</code>\n @if (description()) {\n <p class=\"info-card__desc\">{{ description() }}</p>\n }\n @if (variantCount() > 0 || stateCount() > 0) {\n <p class=\"info-card__meta\">\n @if (variantCount() > 0) {\n {{ variantCount() }} {{ variantCount() === 1 ? 'variant' : 'variants' }}\n }\n @if (variantCount() > 0 && stateCount() > 0) {\n &middot;\n }\n @if (stateCount() > 0) {\n {{ stateCount() }} {{ stateCount() === 1 ? 'state' : 'states' }}\n }\n </p>\n }\n @for (fact of facts(); track fact) {\n <p class=\"info-card__meta\">{{ fact }}</p>\n }\n @if (tags().length) {\n <div class=\"info-card__tags\">\n @for (tag of tags(); track tag) {\n <span class=\"info-card__tag\">{{ tag }}</span>\n }\n </div>\n }\n</div>\n", styles: [":host {\n display: inline-flex;\n}\n\n.info-btn {\n display: grid;\n place-items: center;\n width: 20px;\n height: 20px;\n padding: 0;\n anchor-name: --prism-head-info;\n color: var(--prism-text-muted);\n cursor: pointer;\n background: transparent;\n border: 0;\n border-radius: var(--radius-xs);\n}\n\n.info-btn:hover {\n color: var(--prism-text-2);\n}\n\n.info-btn:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 1px;\n}\n\n.info-card {\n inset: auto;\n width: 320px;\n max-width: calc(100vw - var(--sp-6));\n padding: var(--sp-4);\n margin: 0;\n position-area: block-end span-inline-end;\n position-anchor: --prism-head-info;\n position-try-fallbacks: flip-block, flip-inline;\n color: var(--prism-text-2);\n background: var(--prism-bg-elevated);\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-md);\n box-shadow: var(--prism-shadow-md);\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\n.info-card__desc {\n margin: var(--sp-3) 0 0;\n font-size: var(--fs-lg);\n line-height: 1.55;\n}\n\n/* A plain fact about the component, not a measurement. 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\n.info-card__tags {\n display: flex;\n flex-wrap: wrap;\n gap: var(--sp-2);\n margin-top: var(--sp-4);\n}\n\n.info-card__tag {\n padding: 1px var(--sp-3);\n font-size: var(--fs-xs);\n color: var(--prism-text-muted);\n border: 1px solid var(--prism-border);\n border-radius: var(--radius-xs);\n}\n"] }]
154
+ }], null, { selector: [{ type: i0.Input, args: [{ isSignal: true, alias: "selector", required: false }] }], code: [{ type: i0.Input, args: [{ isSignal: true, alias: "code", required: false }] }], className: [{ type: i0.Input, args: [{ isSignal: true, alias: "className", required: false }] }], 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 }] }], stateCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "stateCount", required: false }] }], facts: [{ type: i0.Input, args: [{ isSignal: true, alias: "facts", required: false }] }] }); })();
155
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismHeadInfoComponent, { className: "PrismHeadInfoComponent", filePath: "app/component-head/prism-head-info.component.ts", lineNumber: 30 }); })();
@@ -1,16 +1,15 @@
1
1
  import type { MetricVariant } from './head-metrics.js';
2
2
  import * as i0 from "@angular/core";
3
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, because it duplicated the caption directly beneath it.
4
+ * One row of the gauge's readout: metric, threshold, value. The three columns
5
+ * line up with the readout's header row through the shared grid template.
8
6
  */
9
7
  export declare class PrismStatComponent {
10
8
  readonly label: import("@angular/core").InputSignal<string>;
9
+ readonly threshold: import("@angular/core").InputSignal<string>;
11
10
  readonly value: import("@angular/core").InputSignal<string | number>;
12
11
  readonly variant: import("@angular/core").InputSignal<MetricVariant>;
13
12
  static ɵfac: i0.ɵɵFactoryDeclaration<PrismStatComponent, 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>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<PrismStatComponent, "prism-stat", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "threshold": { "alias": "threshold"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
14
  }
16
15
  //# 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":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;;AAEvD;;;;;GAKG;AACH,qBAOa,kBAAkB;IAC3B,QAAQ,CAAC,KAAK,8CAA4B;IAC1C,QAAQ,CAAC,KAAK,uDAAqC;IACnD,QAAQ,CAAC,OAAO,qDAA8B;yCAHrC,kBAAkB;2CAAlB,kBAAkB;CAI9B"}
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;;;GAGG;AACH,qBAOa,kBAAkB;IAC3B,QAAQ,CAAC,KAAK,8CAA4B;IAC1C,QAAQ,CAAC,SAAS,8CAAa;IAC/B,QAAQ,CAAC,KAAK,uDAAqC;IACnD,QAAQ,CAAC,OAAO,qDAA8B;yCAJrC,kBAAkB;2CAAlB,kBAAkB;CAK9B"}
@@ -1,38 +1,42 @@
1
1
  import { ChangeDetectionStrategy, Component, input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
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, because it duplicated the caption directly beneath it.
4
+ * One row of the gauge's readout: metric, threshold, value. The three columns
5
+ * line up with the readout's header row through the shared grid template.
8
6
  */
9
7
  export class PrismStatComponent {
10
8
  label = input.required(/* @ts-ignore */
11
9
  ...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
10
+ threshold = input('', /* @ts-ignore */
11
+ ...(ngDevMode ? [{ debugName: "threshold" }] : /* istanbul ignore next */ []));
12
12
  value = input.required(/* @ts-ignore */
13
13
  ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
14
14
  variant = input('ok', /* @ts-ignore */
15
15
  ...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
16
16
  static ɵfac = function PrismStatComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismStatComponent)(); };
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);
17
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismStatComponent, selectors: [["prism-stat"]], inputs: { label: [1, "label"], threshold: [1, "threshold"], value: [1, "value"], variant: [1, "variant"] }, decls: 8, vars: 9, consts: [[1, "stat"], [1, "stat__lbl"], ["aria-hidden", "true", 1, "stat__dot"], [1, "stat__thr"], [1, "stat__val"]], template: function PrismStatComponent_Template(rf, ctx) { if (rf & 1) {
18
+ i0.ɵɵdomElementStart(0, "div", 0)(1, "span", 1);
19
+ i0.ɵɵdomElement(2, "span", 2);
21
20
  i0.ɵɵtext(3);
22
21
  i0.ɵɵdomElementEnd();
23
22
  i0.ɵɵdomElementStart(4, "span", 3);
24
23
  i0.ɵɵtext(5);
24
+ i0.ɵɵdomElementEnd();
25
+ i0.ɵɵdomElementStart(6, "span", 4);
26
+ i0.ɵɵtext(7);
25
27
  i0.ɵɵdomElementEnd()();
26
28
  } if (rf & 2) {
27
29
  i0.ɵɵclassProp("stat--ok", ctx.variant() === "ok")("stat--warn", ctx.variant() === "warn")("stat--danger", ctx.variant() === "danger");
28
30
  i0.ɵɵadvance(3);
29
31
  i0.ɵɵtextInterpolate(ctx.label());
30
32
  i0.ɵɵadvance(2);
33
+ i0.ɵɵtextInterpolate(ctx.threshold());
34
+ i0.ɵɵadvance(2);
31
35
  i0.ɵɵtextInterpolate(ctx.value());
32
- } }, styles: [".stat[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--%NS%sp-3);\n align-items: center;\n padding: var(--%NS%sp-2) var(--%NS%sp-3);\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-text-2);\n border-radius: var(--%NS%radius-xs);\n}\n\n.stat__dot[_ngcontent-%COMP%] {\n flex: none;\n width: 5px;\n height: 5px;\n background: transparent;\n border-radius: 50%;\n}\n\n.stat__lbl[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\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\n.stat--ok[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] {\n background: var(--%NS%prism-mark-nominal);\n}\n\n.stat--ok[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-nominal);\n}\n\n.stat--warn[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] {\n background: var(--%NS%prism-mark-attention);\n}\n\n.stat--warn[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-attention);\n}\n\n.stat--danger[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] {\n background: var(--%NS%prism-mark-critical);\n}\n\n.stat--danger[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-critical);\n}"] });
36
+ } }, styles: [".stat[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: var(--%NS%prism-stat-columns, minmax(110px, 1fr) 90px 70px);\n gap: var(--%NS%sp-4);\n align-items: center;\n padding: var(--%NS%sp-2) var(--%NS%sp-3);\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-text-2);\n border-radius: var(--%NS%radius-xs);\n}\n\n.stat__dot[_ngcontent-%COMP%] {\n display: inline-block;\n flex: none;\n width: 6px;\n height: 6px;\n margin-right: var(--%NS%sp-3);\n vertical-align: 1px;\n background: transparent;\n border-radius: 50%;\n}\n\n.stat__lbl[_ngcontent-%COMP%] {\n white-space: nowrap;\n}\n\n.stat__thr[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: var(--%NS%fs-sm);\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n}\n\n.stat__val[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-variant-numeric: tabular-nums;\n color: var(--%NS%prism-text);\n text-align: right;\n}\n\n\n\n\n\n.stat--ok[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] {\n background: var(--%NS%prism-success);\n}\n\n.stat--ok[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] {\n color: var(--%NS%prism-success);\n}\n\n.stat--warn[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] {\n background: var(--%NS%prism-warn);\n}\n\n.stat--warn[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] {\n color: var(--%NS%prism-warn);\n}\n\n.stat--danger[_ngcontent-%COMP%] .stat__dot[_ngcontent-%COMP%] {\n background: var(--%NS%prism-danger);\n}\n\n.stat--danger[_ngcontent-%COMP%] .stat__val[_ngcontent-%COMP%] {\n color: var(--%NS%prism-danger);\n}"] });
33
37
  }
34
38
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismStatComponent, [{
35
39
  type: Component,
36
- args: [{ selector: 'prism-stat', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"stat\"\n [class.stat--ok]=\"variant() === 'ok'\"\n [class.stat--warn]=\"variant() === 'warn'\"\n [class.stat--danger]=\"variant() === 'danger'\">\n <span\n class=\"stat__dot\"\n aria-hidden=\"true\"></span>\n <span class=\"stat__lbl\">{{ label() }}</span>\n <span class=\"stat__val\">{{ value() }}</span>\n</div>\n", styles: [".stat {\n display: flex;\n gap: var(--sp-3);\n align-items: center;\n padding: var(--sp-2) var(--sp-3);\n font-size: var(--fs-md);\n color: var(--prism-text-2);\n border-radius: var(--radius-xs);\n}\n\n.stat__dot {\n flex: none;\n width: 5px;\n height: 5px;\n background: transparent;\n border-radius: 50%;\n}\n\n.stat__lbl {\n white-space: nowrap;\n}\n\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\n/* Four states, four treatments. \"ok\" gets the nominal green, and \"none\"\n 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 {\n background: var(--prism-mark-nominal);\n}\n\n.stat--ok .stat__val {\n color: var(--prism-mark-nominal);\n}\n\n.stat--warn .stat__dot {\n background: var(--prism-mark-attention);\n}\n\n.stat--warn .stat__val {\n color: var(--prism-mark-attention);\n}\n\n.stat--danger .stat__dot {\n background: var(--prism-mark-critical);\n}\n\n.stat--danger .stat__val {\n color: var(--prism-mark-critical);\n}\n"] }]
37
- }], 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 }] }] }); })();
38
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismStatComponent, { className: "PrismStatComponent", filePath: "app/component-head/prism-stat.component.ts", lineNumber: 17 }); })();
40
+ args: [{ selector: 'prism-stat', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"stat\"\n [class.stat--ok]=\"variant() === 'ok'\"\n [class.stat--warn]=\"variant() === 'warn'\"\n [class.stat--danger]=\"variant() === 'danger'\">\n <span class=\"stat__lbl\"\n ><span\n class=\"stat__dot\"\n aria-hidden=\"true\"></span\n >{{ label() }}</span\n >\n <span class=\"stat__thr\">{{ threshold() }}</span>\n <span class=\"stat__val\">{{ value() }}</span>\n</div>\n", styles: [".stat {\n display: grid;\n grid-template-columns: var(--prism-stat-columns, minmax(110px, 1fr) 90px 70px);\n gap: var(--sp-4);\n align-items: center;\n padding: var(--sp-2) var(--sp-3);\n font-size: var(--fs-md);\n color: var(--prism-text-2);\n border-radius: var(--radius-xs);\n}\n\n.stat__dot {\n display: inline-block;\n flex: none;\n width: 6px;\n height: 6px;\n margin-right: var(--sp-3);\n vertical-align: 1px;\n background: transparent;\n border-radius: 50%;\n}\n\n.stat__lbl {\n white-space: nowrap;\n}\n\n.stat__thr {\n font-family: var(--font-mono);\n font-size: var(--fs-sm);\n color: var(--prism-text-muted);\n white-space: nowrap;\n}\n\n.stat__val {\n font-family: var(--font-mono);\n font-variant-numeric: tabular-nums;\n color: var(--prism-text);\n text-align: right;\n}\n\n/* Four states, four treatments. \"ok\" gets the nominal green, and \"none\"\n 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 {\n background: var(--prism-success);\n}\n\n.stat--ok .stat__val {\n color: var(--prism-success);\n}\n\n.stat--warn .stat__dot {\n background: var(--prism-warn);\n}\n\n.stat--warn .stat__val {\n color: var(--prism-warn);\n}\n\n.stat--danger .stat__dot {\n background: var(--prism-danger);\n}\n\n.stat--danger .stat__val {\n color: var(--prism-danger);\n}\n"] }]
41
+ }], null, { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], threshold: [{ type: i0.Input, args: [{ isSignal: true, alias: "threshold", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }] }); })();
42
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismStatComponent, { className: "PrismStatComponent", filePath: "app/component-head/prism-stat.component.ts", lineNumber: 15 }); })();
@@ -0,0 +1,8 @@
1
+ import type { ServiceProvision } from '../../plugin/service.types.js';
2
+ /**
3
+ * The plain facts about a service for the head's info popover: how it gets into
4
+ * an injector, and where to import it from. The import path is optional on a
5
+ * scanned service, so a service the scanner could not place just has one fact.
6
+ */
7
+ export declare function serviceFacts(provision: ServiceProvision, importPath: string | undefined): string[];
8
+ //# sourceMappingURL=service-facts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-facts.d.ts","sourceRoot":"","sources":["../../../src/app/component-head/service-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,CAKlG"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The plain facts about a service for the head's info popover: how it gets into
3
+ * an injector, and where to import it from. The import path is optional on a
4
+ * scanned service, so a service the scanner could not place just has one fact.
5
+ */
6
+ export function serviceFacts(provision, importPath) {
7
+ const facts = [provision === 'auto' ? 'Provided automatically' : 'Needs a providers entry'];
8
+ if (importPath)
9
+ facts.push(importPath);
10
+ return facts;
11
+ }