@ng-prism/core 22.2.1 → 22.4.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 (359) hide show
  1. package/README.md +34 -36
  2. package/builders.json +11 -11
  3. package/dist/app/canvas/canvas-bg.styles.d.ts +7 -12
  4. package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -1
  5. package/dist/app/canvas/canvas-bg.styles.js +37 -22
  6. package/dist/app/canvas/measure-geometry.d.ts +140 -0
  7. package/dist/app/canvas/measure-geometry.d.ts.map +1 -0
  8. package/dist/app/canvas/measure-geometry.js +217 -0
  9. package/dist/app/canvas/measure-keyboard.d.ts +20 -0
  10. package/dist/app/canvas/measure-keyboard.d.ts.map +1 -0
  11. package/dist/app/canvas/measure-keyboard.js +34 -0
  12. package/dist/app/canvas/measure-quad.d.ts +114 -0
  13. package/dist/app/canvas/measure-quad.d.ts.map +1 -0
  14. package/dist/app/canvas/measure-quad.js +173 -0
  15. package/dist/app/canvas/measure-snap.d.ts +35 -0
  16. package/dist/app/canvas/measure-snap.d.ts.map +1 -0
  17. package/dist/app/canvas/measure-snap.js +63 -0
  18. package/dist/app/canvas/prism-canvas-bg-pill.component.d.ts.map +1 -1
  19. package/dist/app/canvas/prism-canvas-bg-pill.component.js +3 -18
  20. package/dist/app/canvas/prism-canvas-measure.component.d.ts +142 -0
  21. package/dist/app/canvas/prism-canvas-measure.component.d.ts.map +1 -0
  22. package/dist/app/canvas/prism-canvas-measure.component.js +554 -0
  23. package/dist/app/canvas/prism-canvas-pin-row.component.d.ts +23 -0
  24. package/dist/app/canvas/prism-canvas-pin-row.component.d.ts.map +1 -0
  25. package/dist/app/canvas/prism-canvas-pin-row.component.js +64 -0
  26. package/dist/app/canvas/prism-canvas-rulers.component.d.ts +1 -0
  27. package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -1
  28. package/dist/app/canvas/prism-canvas-rulers.component.js +9 -14
  29. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +28 -28
  30. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
  31. package/dist/app/canvas/prism-canvas-toolbar.component.js +124 -162
  32. package/dist/app/canvas/prism-template-popover.component.d.ts.map +1 -1
  33. package/dist/app/canvas/prism-template-popover.component.js +8 -49
  34. package/dist/app/canvas/viewport-snap.d.ts +12 -0
  35. package/dist/app/canvas/viewport-snap.d.ts.map +1 -0
  36. package/dist/app/canvas/viewport-snap.js +23 -0
  37. package/dist/app/component-head/head-metrics.d.ts +2 -2
  38. package/dist/app/component-head/head-metrics.d.ts.map +1 -1
  39. package/dist/app/component-head/head-metrics.js +3 -3
  40. package/dist/app/component-head/prism-component-head.component.d.ts +3 -3
  41. package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
  42. package/dist/app/component-head/prism-component-head.component.js +24 -64
  43. package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -1
  44. package/dist/app/component-head/prism-head-gauge.component.js +4 -36
  45. package/dist/app/component-head/prism-head-info.component.d.ts +1 -1
  46. package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -1
  47. package/dist/app/component-head/prism-head-info.component.js +4 -37
  48. package/dist/app/component-head/prism-stat.component.d.ts +1 -1
  49. package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
  50. package/dist/app/component-head/prism-stat.component.js +4 -15
  51. package/dist/app/controls/boolean-control.component.d.ts.map +1 -1
  52. package/dist/app/controls/boolean-control.component.js +4 -12
  53. package/dist/app/controls/json-control.component.d.ts.map +1 -1
  54. package/dist/app/controls/json-control.component.js +4 -24
  55. package/dist/app/controls/number-control.component.d.ts.map +1 -1
  56. package/dist/app/controls/number-control.component.js +4 -11
  57. package/dist/app/controls/string-control.component.d.ts.map +1 -1
  58. package/dist/app/controls/string-control.component.js +4 -11
  59. package/dist/app/controls/union-control.component.d.ts.map +1 -1
  60. package/dist/app/controls/union-control.component.js +4 -16
  61. package/dist/app/directives/prism-resizer.directive.d.ts +24 -1
  62. package/dist/app/directives/prism-resizer.directive.d.ts.map +1 -1
  63. package/dist/app/directives/prism-resizer.directive.js +44 -7
  64. package/dist/app/directives/resize-value.d.ts +22 -0
  65. package/dist/app/directives/resize-value.d.ts.map +1 -0
  66. package/dist/app/directives/resize-value.js +23 -0
  67. package/dist/app/discovery-manifest.d.ts +2 -2
  68. package/dist/app/discovery-manifest.d.ts.map +1 -1
  69. package/dist/app/discovery-manifest.js +16 -22
  70. package/dist/app/header/prism-header-widget-host.component.d.ts.map +1 -1
  71. package/dist/app/header/prism-header-widget-host.component.js +4 -8
  72. package/dist/app/header/prism-header.component.d.ts.map +1 -1
  73. package/dist/app/header/prism-header.component.js +9 -78
  74. package/dist/app/hmr.d.ts.map +1 -1
  75. package/dist/app/icons/icon-registry.d.ts +2 -2
  76. package/dist/app/icons/icon-registry.d.ts.map +1 -1
  77. package/dist/app/icons/icon-registry.js +5 -3
  78. package/dist/app/icons/prism-icon.component.d.ts +2 -2
  79. package/dist/app/icons/prism-icon.component.d.ts.map +1 -1
  80. package/dist/app/icons/prism-icon.component.js +9 -9
  81. package/dist/app/index.d.ts +3 -3
  82. package/dist/app/index.d.ts.map +1 -1
  83. package/dist/app/index.js +17 -24
  84. package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
  85. package/dist/app/layout-menu/prism-layout-menu.component.js +3 -77
  86. package/dist/app/overview/overview-panel.js +1 -1
  87. package/dist/app/overview/overview-visibility.d.ts +1 -1
  88. package/dist/app/overview/overview-visibility.d.ts.map +1 -1
  89. package/dist/app/overview/overview-visibility.js +1 -1
  90. package/dist/app/overview/prism-overview-cell.component.d.ts +2 -2
  91. package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -1
  92. package/dist/app/overview/prism-overview-cell.component.js +17 -25
  93. package/dist/app/overview/prism-overview.component.d.ts +2 -2
  94. package/dist/app/overview/prism-overview.component.d.ts.map +1 -1
  95. package/dist/app/overview/prism-overview.component.js +6 -14
  96. package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
  97. package/dist/app/page-renderer/prism-page-renderer.component.js +4 -17
  98. package/dist/app/panels/a11y/a11y-audit.service.d.ts.map +1 -1
  99. package/dist/app/panels/a11y/a11y-audit.service.js +14 -2
  100. package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -1
  101. package/dist/app/panels/a11y/a11y-core.plugin.js +1 -1
  102. package/dist/app/panels/a11y/a11y-dom-utils.d.ts.map +1 -1
  103. package/dist/app/panels/a11y/a11y-dom-utils.js +9 -6
  104. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
  105. package/dist/app/panels/a11y/a11y-header-badge.component.js +6 -22
  106. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.d.ts.map +1 -1
  107. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +6 -25
  108. package/dist/app/panels/a11y/a11y-keyboard.component.d.ts.map +1 -1
  109. package/dist/app/panels/a11y/a11y-keyboard.component.js +5 -36
  110. package/dist/app/panels/a11y/a11y-keyboard.service.d.ts.map +1 -1
  111. package/dist/app/panels/a11y/a11y-keyboard.service.js +2 -2
  112. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
  113. package/dist/app/panels/a11y/a11y-overlay-host.component.js +5 -32
  114. package/dist/app/panels/a11y/a11y-panel-state.service.d.ts.map +1 -1
  115. package/dist/app/panels/a11y/a11y-panel.component.d.ts +1 -1
  116. package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
  117. package/dist/app/panels/a11y/a11y-panel.component.js +7 -69
  118. package/dist/app/panels/a11y/a11y-perspective.service.d.ts.map +1 -1
  119. package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
  120. package/dist/app/panels/a11y/a11y-score.component.js +4 -31
  121. package/dist/app/panels/a11y/a11y-sr-overlay.component.d.ts.map +1 -1
  122. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +8 -28
  123. package/dist/app/panels/a11y/a11y-sr.component.d.ts.map +1 -1
  124. package/dist/app/panels/a11y/a11y-sr.component.js +5 -28
  125. package/dist/app/panels/a11y/a11y-sr.service.d.ts.map +1 -1
  126. package/dist/app/panels/a11y/a11y-sr.service.js +4 -7
  127. package/dist/app/panels/a11y/a11y-summary.d.ts +3 -4
  128. package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -1
  129. package/dist/app/panels/a11y/a11y-summary.js +5 -9
  130. package/dist/app/panels/a11y/a11y-thresholds.d.ts +1 -1
  131. package/dist/app/panels/a11y/a11y-thresholds.d.ts.map +1 -1
  132. package/dist/app/panels/a11y/a11y-thresholds.js +2 -2
  133. package/dist/app/panels/a11y/a11y-tree.component.d.ts.map +1 -1
  134. package/dist/app/panels/a11y/a11y-tree.component.js +9 -46
  135. package/dist/app/panels/a11y/a11y-tree.service.d.ts.map +1 -1
  136. package/dist/app/panels/a11y/a11y-tree.service.js +3 -5
  137. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
  138. package/dist/app/panels/a11y/a11y-violations.component.js +7 -58
  139. package/dist/app/panels/a11y/a11y.types.d.ts +1 -1
  140. package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
  141. package/dist/app/panels/builtin-header-widgets.js +2 -2
  142. package/dist/app/panels/builtin-navigation-decorations.d.ts +1 -1
  143. package/dist/app/panels/builtin-navigation-decorations.d.ts.map +1 -1
  144. package/dist/app/panels/builtin-navigation-decorations.js +3 -3
  145. package/dist/app/panels/builtin-panels.d.ts.map +1 -1
  146. package/dist/app/panels/builtin-panels.js +2 -7
  147. package/dist/app/panels/controls/controls-plugin.js +3 -3
  148. package/dist/app/panels/controls/non-editable-input-types.d.ts.map +1 -1
  149. package/dist/app/panels/controls/non-editable-input-types.js +2 -6
  150. package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
  151. package/dist/app/panels/controls/prism-controls-panel.component.js +5 -95
  152. package/dist/app/panels/events/events-plugin.js +3 -3
  153. package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
  154. package/dist/app/panels/events/prism-events-panel.component.js +5 -23
  155. package/dist/app/panels/events/prism-json-node.component.d.ts.map +1 -1
  156. package/dist/app/panels/events/prism-json-node.component.js +4 -86
  157. package/dist/app/panels/events/prism-json-node.utils.d.ts.map +1 -1
  158. package/dist/app/panels/panel-host/panel-badge.d.ts +1 -1
  159. package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
  160. package/dist/app/panels/panel-host/panel-badge.js +2 -4
  161. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +1 -1
  162. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  163. package/dist/app/panels/panel-host/prism-panel-host.component.js +12 -67
  164. package/dist/app/provide-prism.d.ts +1 -1
  165. package/dist/app/provide-prism.d.ts.map +1 -1
  166. package/dist/app/provide-prism.js +8 -12
  167. package/dist/app/renderer/known-inputs.d.ts +1 -1
  168. package/dist/app/renderer/known-inputs.d.ts.map +1 -1
  169. package/dist/app/renderer/known-inputs.js +1 -1
  170. package/dist/app/renderer/overlay-resolver.d.ts +17 -3
  171. package/dist/app/renderer/overlay-resolver.d.ts.map +1 -1
  172. package/dist/app/renderer/overlay-resolver.js +10 -5
  173. package/dist/app/renderer/prism-renderer.component.d.ts +28 -3
  174. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  175. package/dist/app/renderer/prism-renderer.component.js +107 -80
  176. package/dist/app/renderer/projectable-content.d.ts.map +1 -1
  177. package/dist/app/renderer/projectable-content.js +4 -6
  178. package/dist/app/renderer/snippet-generator.d.ts +1 -1
  179. package/dist/app/renderer/snippet-generator.d.ts.map +1 -1
  180. package/dist/app/renderer/snippet-generator.js +7 -22
  181. package/dist/app/services/navigation-item.types.d.ts +1 -1
  182. package/dist/app/services/navigation-item.types.d.ts.map +1 -1
  183. package/dist/app/services/prism-canvas.service.d.ts +33 -0
  184. package/dist/app/services/prism-canvas.service.d.ts.map +1 -1
  185. package/dist/app/services/prism-canvas.service.js +71 -6
  186. package/dist/app/services/prism-capture.service.d.ts +24 -50
  187. package/dist/app/services/prism-capture.service.d.ts.map +1 -1
  188. package/dist/app/services/prism-capture.service.js +62 -146
  189. package/dist/app/services/prism-event-log.service.d.ts.map +1 -1
  190. package/dist/app/services/prism-event-log.service.js +1 -4
  191. package/dist/app/services/prism-layout.service.d.ts.map +1 -1
  192. package/dist/app/services/prism-layout.service.js +5 -4
  193. package/dist/app/services/prism-manifest.service.d.ts +1 -1
  194. package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
  195. package/dist/app/services/prism-manifest.service.js +1 -1
  196. package/dist/app/services/prism-measure.service.d.ts +44 -0
  197. package/dist/app/services/prism-measure.service.d.ts.map +1 -0
  198. package/dist/app/services/prism-measure.service.js +91 -0
  199. package/dist/app/services/prism-navigation.service.d.ts +1 -1
  200. package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
  201. package/dist/app/services/prism-navigation.service.js +5 -13
  202. package/dist/app/services/prism-panel.service.d.ts +2 -2
  203. package/dist/app/services/prism-panel.service.d.ts.map +1 -1
  204. package/dist/app/services/prism-panel.service.js +4 -7
  205. package/dist/app/services/prism-persistence.service.d.ts.map +1 -1
  206. package/dist/app/services/prism-persistence.service.js +9 -11
  207. package/dist/app/services/prism-plugin.service.d.ts.map +1 -1
  208. package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
  209. package/dist/app/services/prism-renderer.service.js +5 -9
  210. package/dist/app/services/prism-search.service.d.ts.map +1 -1
  211. package/dist/app/services/prism-search.service.js +1 -2
  212. package/dist/app/services/prism-theme.service.d.ts.map +1 -1
  213. package/dist/app/services/prism-theme.service.js +6 -4
  214. package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
  215. package/dist/app/services/prism-url-state.service.js +4 -10
  216. package/dist/app/services/prism-variant-bg.service.d.ts +10 -24
  217. package/dist/app/services/prism-variant-bg.service.d.ts.map +1 -1
  218. package/dist/app/services/prism-variant-bg.service.js +13 -29
  219. package/dist/app/shared/prism-metric-badge.component.d.ts +9 -15
  220. package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -1
  221. package/dist/app/shared/prism-metric-badge.component.js +13 -32
  222. package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
  223. package/dist/app/shell/prism-shell.component.js +26 -125
  224. package/dist/app/sidebar/navigation-decorations.d.ts +4 -4
  225. package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -1
  226. package/dist/app/sidebar/navigation-decorations.js +3 -3
  227. package/dist/app/sidebar/prism-sidebar.component.d.ts +3 -3
  228. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  229. package/dist/app/sidebar/prism-sidebar.component.js +21 -156
  230. package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
  231. package/dist/app/theme/prism-default-theme.js +6 -6
  232. package/dist/app/tokens/prism-tokens.d.ts.map +1 -1
  233. package/dist/app/tokens/prism-tokens.js +1 -1
  234. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
  235. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +4 -49
  236. package/dist/app/variant-ribbon/spectrum.d.ts +1 -1
  237. package/dist/app/variant-ribbon/spectrum.d.ts.map +1 -1
  238. package/dist/app/variant-ribbon/spectrum.js +1 -1
  239. package/dist/app/view-tab-bar/next-view-id.d.ts +1 -1
  240. package/dist/app/view-tab-bar/next-view-id.d.ts.map +1 -1
  241. package/dist/app/view-tab-bar/next-view-id.js +2 -4
  242. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
  243. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +5 -17
  244. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
  245. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +4 -27
  246. package/dist/builder/a11y/a11y-report-reader.d.ts +2 -2
  247. package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
  248. package/dist/builder/a11y/a11y-report-reader.js +8 -8
  249. package/dist/builder/build/index.d.ts.map +1 -1
  250. package/dist/builder/build/index.js +5 -9
  251. package/dist/builder/build/schema.d.ts.map +1 -1
  252. package/dist/builder/config-loader/config-loader.d.ts.map +1 -1
  253. package/dist/builder/config-loader/config-loader.js +4 -5
  254. package/dist/builder/manifest/host-parser.d.ts.map +1 -1
  255. package/dist/builder/manifest/host-parser.js +1 -1
  256. package/dist/builder/manifest/runtime-manifest.generator.d.ts +1 -1
  257. package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
  258. package/dist/builder/manifest/runtime-manifest.generator.js +14 -35
  259. package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
  260. package/dist/builder/plugin-runner/plugin-runner.js +2 -4
  261. package/dist/builder/scanner/ast-utils.d.ts +46 -2
  262. package/dist/builder/scanner/ast-utils.d.ts.map +1 -1
  263. package/dist/builder/scanner/ast-utils.js +338 -38
  264. package/dist/builder/scanner/class-hierarchy.d.ts +33 -0
  265. package/dist/builder/scanner/class-hierarchy.d.ts.map +1 -0
  266. package/dist/builder/scanner/class-hierarchy.js +87 -0
  267. package/dist/builder/scanner/component.scanner.d.ts +7 -1
  268. package/dist/builder/scanner/component.scanner.d.ts.map +1 -1
  269. package/dist/builder/scanner/component.scanner.js +113 -72
  270. package/dist/builder/scanner/entry-point-discovery.d.ts.map +1 -1
  271. package/dist/builder/scanner/entry-point-discovery.js +3 -5
  272. package/dist/builder/scanner/entry-point.scanner.d.ts.map +1 -1
  273. package/dist/builder/scanner/entry-point.scanner.js +1 -3
  274. package/dist/builder/scanner/index.d.ts +1 -1
  275. package/dist/builder/scanner/index.d.ts.map +1 -1
  276. package/dist/builder/scanner/input.extractor.d.ts +7 -4
  277. package/dist/builder/scanner/input.extractor.d.ts.map +1 -1
  278. package/dist/builder/scanner/input.extractor.js +157 -76
  279. package/dist/builder/scanner/manifest.generator.d.ts.map +1 -1
  280. package/dist/builder/scanner/manifest.generator.js +8 -6
  281. package/dist/builder/scanner/scanner.d.ts +3 -1
  282. package/dist/builder/scanner/scanner.d.ts.map +1 -1
  283. package/dist/builder/scanner/scanner.js +10 -8
  284. package/dist/builder/scanner/showcase-diagnostics.d.ts +25 -0
  285. package/dist/builder/scanner/showcase-diagnostics.d.ts.map +1 -0
  286. package/dist/builder/scanner/showcase-diagnostics.js +96 -0
  287. package/dist/builder/serve/index.d.ts.map +1 -1
  288. package/dist/builder/serve/index.js +8 -10
  289. package/dist/builder/serve/schema.d.ts.map +1 -1
  290. package/dist/builder/shared/index.d.ts +1 -1
  291. package/dist/builder/shared/index.d.ts.map +1 -1
  292. package/dist/builder/shared/index.js +1 -1
  293. package/dist/builder/shared/prism-pipeline.d.ts +1 -1
  294. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  295. package/dist/builder/shared/prism-pipeline.js +29 -38
  296. package/dist/builder/shared/resolve-cache-dir.d.ts.map +1 -1
  297. package/dist/builder/shared/resolve-cache-dir.js +1 -1
  298. package/dist/builder/watcher/index.d.ts +1 -1
  299. package/dist/builder/watcher/index.d.ts.map +1 -1
  300. package/dist/builder/watcher/prism-watcher.d.ts.map +1 -1
  301. package/dist/builder/watcher/prism-watcher.js +14 -12
  302. package/dist/config/index.d.ts +2 -2
  303. package/dist/config/index.d.ts.map +1 -1
  304. package/dist/config/index.js +1 -1
  305. package/dist/decorator/index.d.ts +1 -1
  306. package/dist/decorator/index.d.ts.map +1 -1
  307. package/dist/decorator/showcase.decorator.d.ts.map +1 -1
  308. package/dist/decorator/showcase.types.d.ts +11 -9
  309. package/dist/decorator/showcase.types.d.ts.map +1 -1
  310. package/dist/index.js +3 -3
  311. package/dist/plugin/define-config.js +1 -1
  312. package/dist/plugin/index.d.ts +4 -4
  313. package/dist/plugin/index.d.ts.map +1 -1
  314. package/dist/plugin/index.js +7 -11
  315. package/dist/plugin/page-helpers.d.ts +1 -1
  316. package/dist/plugin/page-helpers.d.ts.map +1 -1
  317. package/dist/plugin/page-helpers.js +2 -2
  318. package/dist/plugin/page.types.d.ts.map +1 -1
  319. package/dist/plugin/plugin.types.d.ts +31 -14
  320. package/dist/plugin/plugin.types.d.ts.map +1 -1
  321. package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts.map +1 -1
  322. package/dist/schematics/migrations/v21-13-manifest-cache/index.js +4 -10
  323. package/dist/schematics/migrations/v22-0-cache-dir-rename/index.d.ts.map +1 -1
  324. package/dist/schematics/migrations/v22-0-cache-dir-rename/index.js +6 -10
  325. package/dist/schematics/ng-add/index.d.ts.map +1 -1
  326. package/dist/schematics/ng-add/index.js +122 -56
  327. package/dist/schematics/ng-add/schema.d.ts.map +1 -1
  328. package/dist/schematics/utils/config-ast.d.ts.map +1 -1
  329. package/dist/schematics/utils/config-ast.js +8 -15
  330. package/dist/schematics/utils/tsconfig-paths.d.ts.map +1 -1
  331. package/dist/schematics/utils/tsconfig-paths.js +1 -1
  332. package/dist/shared/canvas-bg.type.d.ts +5 -6
  333. package/dist/shared/canvas-bg.type.d.ts.map +1 -1
  334. package/dist/shared/canvas-bg.type.js +5 -13
  335. package/dist/shared/canvas-layout.type.d.ts.map +1 -1
  336. package/dist/shared/canvas-layout.type.js +1 -4
  337. package/dist/shared/measure.type.d.ts +52 -0
  338. package/dist/shared/measure.type.d.ts.map +1 -0
  339. package/dist/shared/measure.type.js +21 -0
  340. package/dist/shared/variant-bg.d.ts +20 -31
  341. package/dist/shared/variant-bg.d.ts.map +1 -1
  342. package/dist/shared/variant-bg.js +20 -31
  343. package/dist/shared/viewport.type.d.ts +43 -0
  344. package/dist/shared/viewport.type.d.ts.map +1 -0
  345. package/dist/shared/viewport.type.js +44 -0
  346. package/dist/transformer/cli.js +0 -0
  347. package/dist/transformer/index.d.ts +2 -2
  348. package/dist/transformer/index.d.ts.map +1 -1
  349. package/dist/transformer/index.js +2 -2
  350. package/dist/transformer/showcase-strip.transformer.d.ts.map +1 -1
  351. package/dist/transformer/showcase-strip.transformer.js +7 -16
  352. package/dist/transformer/strip-directory.d.ts.map +1 -1
  353. package/dist/transformer/strip-directory.js +2 -4
  354. package/package.json +5 -2
  355. package/schematics/collection.json +7 -7
  356. package/schematics/migrations.json +12 -12
  357. package/schematics/ng-add/schema.json +22 -22
  358. package/src/builder/build/schema.json +36 -36
  359. package/src/builder/serve/schema.json +37 -37
@@ -1,4 +1,4 @@
1
- import { Component, inject, input, ChangeDetectionStrategy } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
2
2
  import { PrismEventLogService } from '../../services/prism-event-log.service.js';
3
3
  import { PrismJsonNodeComponent } from './prism-json-node.component.js';
4
4
  import * as i0 from "@angular/core";
@@ -42,7 +42,7 @@ export class PrismEventsPanelComponent {
42
42
  const d = new Date(ts);
43
43
  return d.toLocaleTimeString('en-US', {
44
44
  hour12: false,
45
- fractionalSecondDigits: 3,
45
+ fractionalSecondDigits: 3
46
46
  });
47
47
  }
48
48
  padIdx(n) {
@@ -56,28 +56,10 @@ export class PrismEventsPanelComponent {
56
56
  } if (rf & 2) {
57
57
  i0.ɵɵadvance(2);
58
58
  i0.ɵɵrepeater(ctx.eventLogService.events());
59
- } }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body[_ngcontent-%COMP%] {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--%NS%font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--%NS%prism-border);\n min-height: 32px;\n }\n .ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-primary) 3%, transparent);\n }\n\n .ev-time[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-size: 11px;\n }\n .ev-name[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n font-weight: 500;\n }\n .ev-args[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }"] });
59
+ } }, dependencies: [PrismJsonNodeComponent], styles: [".ev-panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.ev-body[_ngcontent-%COMP%] {\n flex: 1;\n padding: 6px 0;\n overflow-y: auto;\n}\n\n.ev[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n gap: 12px;\n align-items: center;\n min-height: 32px;\n padding: 6px 20px;\n font-family: var(--%NS%font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n.ev[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-primary) 3%, transparent);\n}\n\n.ev-time[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n}\n\n.ev-idx[_ngcontent-%COMP%] {\n font-size: 11px;\n color: var(--%NS%prism-text-muted);\n}\n\n.ev-name[_ngcontent-%COMP%] {\n font-weight: 500;\n color: var(--%NS%prism-primary);\n}\n\n.ev-args[_ngcontent-%COMP%] {\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--%NS%prism-text-2);\n white-space: nowrap;\n}\n\n.ev-empty[_ngcontent-%COMP%] {\n padding: 16px 20px;\n margin: 0;\n font-size: 13px;\n color: var(--%NS%prism-text-ghost);\n}"] });
60
60
  }
61
61
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismEventsPanelComponent, [{
62
62
  type: Component,
63
- args: [{ selector: 'prism-events-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismJsonNodeComponent], template: `
64
- <div class="ev-panel">
65
- <div class="ev-body">
66
- @for (entry of eventLogService.events(); track entry.id; let i = $index)
67
- {
68
- <div class="ev">
69
- <span class="ev-time">{{ formatTime(entry.timestamp) }}</span>
70
- <span class="ev-idx"
71
- >#{{ padIdx(eventLogService.events().length - i) }}</span
72
- >
73
- <span class="ev-name">{{ entry.name }}</span>
74
- <span class="ev-args"><prism-json-node [value]="entry.value" /></span>
75
- </div>
76
- } @empty {
77
- <p class="ev-empty">No events recorded</p>
78
- }
79
- </div>
80
- </div>
81
- `, styles: ["\n .ev-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n }\n\n .ev-body {\n padding: 6px 0;\n overflow-y: auto;\n flex: 1;\n }\n\n .ev {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n align-items: center;\n gap: 12px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n min-height: 32px;\n }\n .ev:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n }\n\n .ev-time {\n color: var(--prism-text-ghost);\n font-size: 11px;\n }\n .ev-idx {\n color: var(--prism-text-muted);\n font-size: 11px;\n }\n .ev-name {\n color: var(--prism-primary);\n font-weight: 500;\n }\n .ev-args {\n color: var(--prism-text-2);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ev-empty {\n color: var(--prism-text-ghost);\n font-size: 13px;\n padding: 16px 20px;\n margin: 0;\n }\n "] }]
63
+ args: [{ selector: 'prism-events-panel', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismJsonNodeComponent], template: "<div class=\"ev-panel\">\n <div class=\"ev-body\">\n @for (entry of eventLogService.events(); track entry.id; let i = $index) {\n <div class=\"ev\">\n <span class=\"ev-time\">{{ formatTime(entry.timestamp) }}</span>\n <span class=\"ev-idx\">#{{ padIdx(eventLogService.events().length - i) }}</span>\n <span class=\"ev-name\">{{ entry.name }}</span>\n <span class=\"ev-args\"><prism-json-node [value]=\"entry.value\" /></span>\n </div>\n } @empty {\n <p class=\"ev-empty\">No events recorded</p>\n }\n </div>\n</div>\n", styles: [".ev-panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n\n.ev-body {\n flex: 1;\n padding: 6px 0;\n overflow-y: auto;\n}\n\n.ev {\n display: grid;\n grid-template-columns: auto auto 1fr auto;\n gap: 12px;\n align-items: center;\n min-height: 32px;\n padding: 6px 20px;\n font-family: var(--font-mono);\n font-size: 12px;\n border-bottom: 1px solid var(--prism-border);\n}\n\n.ev:hover {\n background: color-mix(in srgb, var(--prism-primary) 3%, transparent);\n}\n\n.ev-time {\n font-size: 11px;\n color: var(--prism-text-ghost);\n}\n\n.ev-idx {\n font-size: 11px;\n color: var(--prism-text-muted);\n}\n\n.ev-name {\n font-weight: 500;\n color: var(--prism-primary);\n}\n\n.ev-args {\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--prism-text-2);\n white-space: nowrap;\n}\n\n.ev-empty {\n padding: 16px 20px;\n margin: 0;\n font-size: 13px;\n color: var(--prism-text-ghost);\n}\n"] }]
82
64
  }], null, { activeComponent: [{ type: i0.Input, args: [{ isSignal: true, alias: "activeComponent", required: false }] }] }); })();
83
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismEventsPanelComponent, { className: "PrismEventsPanelComponent", filePath: "app/panels/events/prism-events-panel.component.ts", lineNumber: 85 }); })();
65
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismEventsPanelComponent, { className: "PrismEventsPanelComponent", filePath: "app/panels/events/prism-events-panel.component.ts", lineNumber: 14 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"prism-json-node.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-json-node.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,IAAI,EAAE,MAAM,eAAe,CAAC;;AAOzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAShG,qBA0Ja,sBAAsB;IACjC,QAAQ,CAAC,KAAK,+CAA6B;IAC3C,QAAQ,CAAC,KAAK,8CAAoB;IAElC,SAAS,CAAC,QAAQ,CAAC,QAAQ,MAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAA0B;IAE/E,SAAS,CAAC,QAAQ,CAAC,IAAI,+CAAyC;IAChE,SAAS,CAAC,QAAQ,CAAC,QAAQ,kDAAiB;IAE5C,SAAS,CAAC,QAAQ,CAAC,OAAO;aAAmB,MAAM;eAAS,OAAO;SAUhE;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,4CAGrB;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,yCAAgD;IAE1E,SAAS,CAAC,MAAM,IAAI,IAAI;yCA7Bb,sBAAsB;2CAAtB,sBAAsB;CAgClC"}
1
+ {"version":3,"file":"prism-json-node.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-json-node.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAsC,IAAI,EAAE,MAAM,eAAe,CAAC;;AAMzE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,KAAK,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAShG,qBAOa,sBAAsB;IAC/B,QAAQ,CAAC,KAAK,+CAA6B;IAC3C,QAAQ,CAAC,KAAK,8CAAoB;IAElC,SAAS,CAAC,QAAQ,CAAC,QAAQ,MAAa;IACxC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAA0B;IAE/E,SAAS,CAAC,QAAQ,CAAC,IAAI,+CAAyC;IAChE,SAAS,CAAC,QAAQ,CAAC,QAAQ,kDAAiB;IAE5C,SAAS,CAAC,QAAQ,CAAC,OAAO;aAAmB,MAAM;eAAS,OAAO;SAWhE;IAEH,SAAS,CAAC,QAAQ,CAAC,KAAK,4CAIrB;IAEH,SAAS,CAAC,QAAQ,CAAC,OAAO,yCAAgD;IAE1E,SAAS,CAAC,MAAM,IAAI,IAAI;yCA/Bf,sBAAsB;2CAAtB,sBAAsB;CAkClC"}
@@ -1,5 +1,5 @@
1
- import { Component, computed, input, signal } from '@angular/core';
2
1
  import { NgComponentOutlet } from '@angular/common';
2
+ import { Component, computed, input, signal } from '@angular/core';
3
3
  import { summarizeValue } from './prism-json-node.utils.js';
4
4
  import * as i0 from "@angular/core";
5
5
  const _c0 = (a0, a1) => ({ value: a0, depth: a1 });
@@ -266,92 +266,10 @@ export class PrismJsonNodeComponent {
266
266
  } if (rf & 2) {
267
267
  let tmp_0_0;
268
268
  i0.ɵɵconditional((tmp_0_0 = ctx.type()) === "object" ? 0 : tmp_0_0 === "array" ? 1 : tmp_0_0 === "string" ? 2 : tmp_0_0 === "number" ? 3 : tmp_0_0 === "boolean" ? 4 : tmp_0_0 === "null" ? 5 : tmp_0_0 === "undefined" ? 6 : -1);
269
- } }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: inline;\n font-family: var(--%NS%prism-font-mono, monospace);\n font-size: 12px;\n }\n .json-expandable[_ngcontent-%COMP%] {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: baseline;\n gap: 2px;\n }\n .json-expandable[_ngcontent-%COMP%]:hover .json-summary[_ngcontent-%COMP%] {\n opacity: 0.8;\n }\n .json-chevron[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-size: 10px;\n width: 10px;\n flex-shrink: 0;\n }\n .json-summary[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n }\n .json-children[_ngcontent-%COMP%] {\n display: block;\n padding-left: 16px;\n border-left: 1px solid var(--%NS%prism-border);\n margin: 2px 0;\n }\n .json-row[_ngcontent-%COMP%] {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0;\n padding: 1px 0;\n }\n .json-key[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n }\n .json-index[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-style: italic;\n }\n .json-colon[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n }\n .json-brace[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n }\n .json-string[_ngcontent-%COMP%] {\n color: var(--%NS%prism-code-attr);\n }\n .json-number[_ngcontent-%COMP%] {\n color: var(--%NS%prism-warn);\n }\n .json-boolean[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n }\n .json-null[_ngcontent-%COMP%], \n .json-undefined[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n font-style: italic;\n }"] });
269
+ } }, dependencies: [NgComponentOutlet], styles: ["[_nghost-%COMP%] {\n display: inline;\n font-family: var(--%NS%prism-font-mono, monospace);\n font-size: 12px;\n}\n\n.json-expandable[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 2px;\n align-items: baseline;\n cursor: pointer;\n user-select: none;\n}\n\n.json-expandable[_ngcontent-%COMP%]:hover .json-summary[_ngcontent-%COMP%] {\n opacity: 0.8;\n}\n\n.json-chevron[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 10px;\n font-size: 10px;\n color: var(--%NS%prism-text-muted);\n}\n\n.json-summary[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n}\n\n.json-children[_ngcontent-%COMP%] {\n display: block;\n padding-left: 16px;\n margin: 2px 0;\n border-left: 1px solid var(--%NS%prism-border);\n}\n\n.json-row[_ngcontent-%COMP%] {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n align-items: baseline;\n padding: 1px 0;\n}\n\n.json-key[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n}\n\n.json-index[_ngcontent-%COMP%] {\n font-style: italic;\n color: var(--%NS%prism-text-muted);\n}\n\n.json-colon[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n}\n\n.json-brace[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-muted);\n}\n\n.json-string[_ngcontent-%COMP%] {\n color: var(--%NS%prism-code-attr);\n}\n\n.json-number[_ngcontent-%COMP%] {\n color: var(--%NS%prism-warn);\n}\n\n.json-boolean[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n}\n\n.json-null[_ngcontent-%COMP%], \n.json-undefined[_ngcontent-%COMP%] {\n font-style: italic;\n color: var(--%NS%prism-text-muted);\n}"] });
270
270
  }
271
271
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismJsonNodeComponent, [{
272
272
  type: Component,
273
- args: [{ selector: 'prism-json-node', standalone: true, imports: [NgComponentOutlet], template: `
274
- @switch (type()) {
275
- @case ('object') {
276
- @if (entries().length === 0) {
277
- <span class="json-brace">{{ '{}' }}</span>
278
- } @else {
279
- <span class="json-expandable" (click)="toggle()">
280
- <span class="json-chevron">{{ expanded() ? '▾' : '▸' }}</span>
281
- @if (!expanded()) {
282
- <span class="json-summary">{{ summary() }}</span>
283
- }
284
- </span>
285
- @if (expanded()) {
286
- @if (depth() >= maxDepth) {
287
- <span class="json-summary">…</span>
288
- } @else {
289
- <span class="json-brace">{{ '{' }}</span>
290
- <div class="json-children">
291
- @for (entry of entries(); track entry.key) {
292
- <div class="json-row">
293
- <span class="json-key">{{ entry.key }}</span>
294
- <span class="json-colon">:&nbsp;</span>
295
- <ng-container
296
- [ngComponentOutlet]="self"
297
- [ngComponentOutletInputs]="{ value: entry.value, depth: depth() + 1 }"
298
- />
299
- </div>
300
- }
301
- </div>
302
- <span class="json-brace">{{ '}' }}</span>
303
- }
304
- }
305
- }
306
- }
307
- @case ('array') {
308
- @if (items().length === 0) {
309
- <span class="json-brace">[]</span>
310
- } @else {
311
- <span class="json-expandable" (click)="toggle()">
312
- <span class="json-chevron">{{ expanded() ? '▾' : '▸' }}</span>
313
- @if (!expanded()) {
314
- <span class="json-summary">{{ summary() }}</span>
315
- }
316
- </span>
317
- @if (expanded()) {
318
- @if (depth() >= maxDepth) {
319
- <span class="json-summary">…</span>
320
- } @else {
321
- <span class="json-brace">[</span>
322
- <div class="json-children">
323
- @for (item of items(); track $index) {
324
- <div class="json-row">
325
- <span class="json-index">{{ $index }}</span>
326
- <span class="json-colon">:&nbsp;</span>
327
- <ng-container
328
- [ngComponentOutlet]="self"
329
- [ngComponentOutletInputs]="{ value: item, depth: depth() + 1 }"
330
- />
331
- </div>
332
- }
333
- </div>
334
- <span class="json-brace">]</span>
335
- }
336
- }
337
- }
338
- }
339
- @case ('string') {
340
- <span class="json-string">"{{ value() }}"</span>
341
- }
342
- @case ('number') {
343
- <span class="json-number">{{ value() }}</span>
344
- }
345
- @case ('boolean') {
346
- <span class="json-boolean">{{ value() }}</span>
347
- }
348
- @case ('null') {
349
- <span class="json-null">null</span>
350
- }
351
- @case ('undefined') {
352
- <span class="json-undefined">undefined</span>
353
- }
354
- }
355
- `, styles: ["\n :host {\n display: inline;\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n }\n .json-expandable {\n cursor: pointer;\n user-select: none;\n display: inline-flex;\n align-items: baseline;\n gap: 2px;\n }\n .json-expandable:hover .json-summary {\n opacity: 0.8;\n }\n .json-chevron {\n color: var(--prism-text-muted);\n font-size: 10px;\n width: 10px;\n flex-shrink: 0;\n }\n .json-summary {\n color: var(--prism-text-muted);\n }\n .json-children {\n display: block;\n padding-left: 16px;\n border-left: 1px solid var(--prism-border);\n margin: 2px 0;\n }\n .json-row {\n display: flex;\n align-items: baseline;\n flex-wrap: wrap;\n gap: 0;\n padding: 1px 0;\n }\n .json-key {\n color: var(--prism-text-muted);\n }\n .json-index {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n .json-colon {\n color: var(--prism-text-muted);\n }\n .json-brace {\n color: var(--prism-text-muted);\n }\n .json-string {\n color: var(--prism-code-attr);\n }\n .json-number {\n color: var(--prism-warn);\n }\n .json-boolean {\n color: var(--prism-primary);\n }\n .json-null,\n .json-undefined {\n color: var(--prism-text-muted);\n font-style: italic;\n }\n "] }]
273
+ args: [{ selector: 'prism-json-node', standalone: true, imports: [NgComponentOutlet], template: "@switch (type()) {\n @case ('object') {\n @if (entries().length === 0) {\n <span class=\"json-brace\">{{ '{}' }}</span>\n } @else {\n <span\n class=\"json-expandable\"\n (click)=\"toggle()\">\n <span class=\"json-chevron\">{{ expanded() ? '\u25BE' : '\u25B8' }}</span>\n @if (!expanded()) {\n <span class=\"json-summary\">{{ summary() }}</span>\n }\n </span>\n @if (expanded()) {\n @if (depth() >= maxDepth) {\n <span class=\"json-summary\">\u2026</span>\n } @else {\n <span class=\"json-brace\">{{ '{' }}</span>\n <div class=\"json-children\">\n @for (entry of entries(); track entry.key) {\n <div class=\"json-row\">\n <span class=\"json-key\">{{ entry.key }}</span>\n <span class=\"json-colon\">:&nbsp;</span>\n <ng-container\n [ngComponentOutlet]=\"self\"\n [ngComponentOutletInputs]=\"{ value: entry.value, depth: depth() + 1 }\" />\n </div>\n }\n </div>\n <span class=\"json-brace\">{{ '}' }}</span>\n }\n }\n }\n }\n @case ('array') {\n @if (items().length === 0) {\n <span class=\"json-brace\">[]</span>\n } @else {\n <span\n class=\"json-expandable\"\n (click)=\"toggle()\">\n <span class=\"json-chevron\">{{ expanded() ? '\u25BE' : '\u25B8' }}</span>\n @if (!expanded()) {\n <span class=\"json-summary\">{{ summary() }}</span>\n }\n </span>\n @if (expanded()) {\n @if (depth() >= maxDepth) {\n <span class=\"json-summary\">\u2026</span>\n } @else {\n <span class=\"json-brace\">[</span>\n <div class=\"json-children\">\n @for (item of items(); track $index) {\n <div class=\"json-row\">\n <span class=\"json-index\">{{ $index }}</span>\n <span class=\"json-colon\">:&nbsp;</span>\n <ng-container\n [ngComponentOutlet]=\"self\"\n [ngComponentOutletInputs]=\"{ value: item, depth: depth() + 1 }\" />\n </div>\n }\n </div>\n <span class=\"json-brace\">]</span>\n }\n }\n }\n }\n @case ('string') {\n <span class=\"json-string\">\"{{ value() }}\"</span>\n }\n @case ('number') {\n <span class=\"json-number\">{{ value() }}</span>\n }\n @case ('boolean') {\n <span class=\"json-boolean\">{{ value() }}</span>\n }\n @case ('null') {\n <span class=\"json-null\">null</span>\n }\n @case ('undefined') {\n <span class=\"json-undefined\">undefined</span>\n }\n}\n", styles: [":host {\n display: inline;\n font-family: var(--prism-font-mono, monospace);\n font-size: 12px;\n}\n\n.json-expandable {\n display: inline-flex;\n gap: 2px;\n align-items: baseline;\n cursor: pointer;\n user-select: none;\n}\n\n.json-expandable:hover .json-summary {\n opacity: 0.8;\n}\n\n.json-chevron {\n flex-shrink: 0;\n width: 10px;\n font-size: 10px;\n color: var(--prism-text-muted);\n}\n\n.json-summary {\n color: var(--prism-text-muted);\n}\n\n.json-children {\n display: block;\n padding-left: 16px;\n margin: 2px 0;\n border-left: 1px solid var(--prism-border);\n}\n\n.json-row {\n display: flex;\n flex-wrap: wrap;\n gap: 0;\n align-items: baseline;\n padding: 1px 0;\n}\n\n.json-key {\n color: var(--prism-text-muted);\n}\n\n.json-index {\n font-style: italic;\n color: var(--prism-text-muted);\n}\n\n.json-colon {\n color: var(--prism-text-muted);\n}\n\n.json-brace {\n color: var(--prism-text-muted);\n}\n\n.json-string {\n color: var(--prism-code-attr);\n}\n\n.json-number {\n color: var(--prism-warn);\n}\n\n.json-boolean {\n color: var(--prism-primary);\n}\n\n.json-null,\n.json-undefined {\n font-style: italic;\n color: var(--prism-text-muted);\n}\n"] }]
356
274
  }], null, { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], depth: [{ type: i0.Input, args: [{ isSignal: true, alias: "depth", required: false }] }] }); })();
357
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismJsonNodeComponent, { className: "PrismJsonNodeComponent", filePath: "app/panels/events/prism-json-node.component.ts", lineNumber: 173 }); })();
275
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismJsonNodeComponent, { className: "PrismJsonNodeComponent", filePath: "app/panels/events/prism-json-node.component.ts", lineNumber: 26 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"prism-json-node.utils.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-json-node.utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,SAAI,EAAE,OAAO,kBAAwB,GAAG,MAAM,CA8B/F"}
1
+ {"version":3,"file":"prism-json-node.utils.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/events/prism-json-node.utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,SAAI,EAAE,OAAO,kBAAwB,GAAG,MAAM,CAmC/F"}
@@ -6,7 +6,7 @@ import type { A11yScoreResult, A11yThresholds } from '../a11y/a11y.types.js';
6
6
  * Passed in rather than injected so this stays a pure function. The panel host
7
7
  * reads them from its own services and hands them over; that is the whole
8
8
  * reason the built-in chain could not simply be expressed as
9
- * {@link PanelDefinition.badge} callbacks — `a11y` reports a running audit, not
9
+ * {@link PanelDefinition.badge} callbacks: `a11y` reports a running audit, not
10
10
  * anything the component's meta holds.
11
11
  *
12
12
  * The thresholds travel with the audit result rather than being baked in here.
@@ -1 +1 @@
1
- {"version":3,"file":"panel-badge.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/panel-badge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EACjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,SAAS,EAAE,gBAAgB,GAAG,IAAI,EAClC,OAAO,EAAE,iBAAiB,GACzB,UAAU,GAAG,IAAI,CAyBnB"}
1
+ {"version":3,"file":"panel-badge.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/panel-badge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAErG,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE7E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAiB;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,cAAc,CAAC;CAClC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,GAAG,IAAI,EAAE,OAAO,EAAE,iBAAiB,GAAG,UAAU,GAAG,IAAI,CAwB3I"}
@@ -18,9 +18,7 @@ export function resolvePanelBadge(panel, component, context) {
18
18
  return component ? panel.badge(component) : null;
19
19
  }
20
20
  if (panel.id === 'controls') {
21
- return context.inputCount > 0
22
- ? { text: String(context.inputCount), variant: 'default' }
23
- : null;
21
+ return context.inputCount > 0 ? { text: String(context.inputCount), variant: 'default' } : null;
24
22
  }
25
23
  if (panel.id === 'a11y') {
26
24
  // `=== null` rather than a falsy check: a score of 0 is a real, and the
@@ -30,7 +28,7 @@ export function resolvePanelBadge(panel, component, context) {
30
28
  return null;
31
29
  return {
32
30
  text: String(result.score),
33
- variant: deriveA11ySummary(result, context.a11yThresholds).variant,
31
+ variant: deriveA11ySummary(result, context.a11yThresholds).variant
34
32
  };
35
33
  }
36
34
  return null;
@@ -1,6 +1,6 @@
1
1
  import { EnvironmentInjector, type Type } from '@angular/core';
2
- import { PrismPanelService } from '../../services/prism-panel.service.js';
3
2
  import type { PanelDefinition } from '../../../plugin/plugin.types.js';
3
+ import { PrismPanelService } from '../../services/prism-panel.service.js';
4
4
  import * as i0 from "@angular/core";
5
5
  type RenderedPanelEntry = {
6
6
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"prism-panel-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/prism-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,mBAAmB,EAGnB,KAAK,IAAI,EAGV,MAAM,eAAe,CAAC;AAKvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAM1E,OAAO,KAAK,EAEV,eAAe,EAEhB,MAAM,iCAAiC,CAAC;;AAGzC,KAAK,kBAAkB,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,qBAkLa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAC5D,SAAS,CAAC,QAAQ,CAAC,WAAW,sBAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAM5B;IAEH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAGxB;IAEH,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe;IAQ3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,oDAQzB;IAEH,SAAS,CAAC,QAAQ,CAAC,WAAW;;OAE1B;IAEJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAE9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IACF,SAAS,CAAC,QAAQ,CAAC,mBAAmB,uDAEpC;;IAsCF,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,mBAAmB;yCAtIhB,uBAAuB;2CAAvB,uBAAuB;CA0JnC"}
1
+ {"version":3,"file":"prism-panel-host.component.d.ts","sourceRoot":"","sources":["../../../../src/app/panels/panel-host/prism-panel-host.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAwD,mBAAmB,EAAkB,KAAK,IAAI,EAAa,MAAM,eAAe,CAAC;AAChJ,OAAO,KAAK,EAAiB,eAAe,EAAmB,MAAM,iCAAiC,CAAC;AAGvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;;AAU1E,KAAK,kBAAkB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACzB,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,qBAQa,uBAAuB;IAChC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAkC;IACtD,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAC5D,SAAS,CAAC,QAAQ,CAAC,WAAW,sBAA+B;IAC7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAChE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAE9D;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAO5B;IAEH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAIxB;IAEH,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,eAAe;IAQ3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkB;IAEhD,SAAS,CAAC,QAAQ,CAAC,SAAS,oDAMzB;IAEH,SAAS,CAAC,QAAQ,CAAC,WAAW;;OAE1B;IAEJ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAE9D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsD;IACrF,SAAS,CAAC,QAAQ,CAAC,mBAAmB,uDAA8D;;IAwCpG,OAAO,CAAC,iBAAiB;IAwBzB,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,mBAAmB;yCAnIlB,uBAAuB;2CAAvB,uBAAuB;CAuJnC"}
@@ -1,14 +1,14 @@
1
1
  import { NgComponentOutlet } from '@angular/common';
2
- import { Component, computed, effect, EnvironmentInjector, inject, signal, ChangeDetectionStrategy, untracked, } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, computed, effect, EnvironmentInjector, inject, signal, untracked } from '@angular/core';
3
3
  import { PrismIconComponent } from '../../icons/prism-icon.component.js';
4
- import { BUILTIN_PANELS } from '../builtin-panels.js';
5
- import { A11yAuditService } from '../a11y/a11y-audit.service.js';
6
4
  import { PrismNavigationService } from '../../services/prism-navigation.service.js';
7
5
  import { PrismPanelService } from '../../services/prism-panel.service.js';
8
6
  import { PrismPluginService } from '../../services/prism-plugin.service.js';
9
7
  import { PrismRendererService } from '../../services/prism-renderer.service.js';
10
- import { resolveA11yThresholds } from '../a11y/a11y-thresholds.js';
11
8
  import { PRISM_CONFIG, PRISM_MANIFEST } from '../../tokens/prism-tokens.js';
9
+ import { A11yAuditService } from '../a11y/a11y-audit.service.js';
10
+ import { resolveA11yThresholds } from '../a11y/a11y-thresholds.js';
11
+ import { BUILTIN_PANELS } from '../builtin-panels.js';
12
12
  import { resolvePanelBadge } from './panel-badge.js';
13
13
  import * as i0 from "@angular/core";
14
14
  const _forTrack0 = ($index, $item) => $item.id;
@@ -86,7 +86,7 @@ export class PrismPanelHostComponent {
86
86
  const meta = this.manifest.meta?.['a11y'];
87
87
  return resolveA11yThresholds({
88
88
  ...meta?.thresholds,
89
- ...this.config.a11y?.thresholds,
89
+ ...this.config.a11y?.thresholds
90
90
  });
91
91
  }, /* @ts-ignore */
92
92
  ...(ngDevMode ? [{ debugName: "a11yThresholds" }] : /* istanbul ignore next */ []));
@@ -99,23 +99,20 @@ export class PrismPanelHostComponent {
99
99
  return resolvePanelBadge(panel, this.nav.activeComponent(), {
100
100
  inputCount: this.inputCount(),
101
101
  a11yResult: this.auditService.scoreResult(),
102
- a11yThresholds: this.a11yThresholds(),
102
+ a11yThresholds: this.a11yThresholds()
103
103
  });
104
104
  }
105
105
  builtInPanels = BUILTIN_PANELS;
106
106
  allPanels = computed(() => {
107
107
  const comp = this.nav.activeComponent();
108
- const panels = [
109
- ...this.builtInPanels.filter((p) => p.placement !== 'view'),
110
- ...this.pluginService.addonPanels(),
111
- ];
108
+ const panels = [...this.builtInPanels.filter((p) => p.placement !== 'view'), ...this.pluginService.addonPanels()];
112
109
  if (!comp)
113
110
  return panels;
114
111
  return panels.filter((p) => !p.isVisible || p.isVisible(comp));
115
112
  }, /* @ts-ignore */
116
113
  ...(ngDevMode ? [{ debugName: "allPanels" }] : /* istanbul ignore next */ []));
117
114
  panelInputs = computed(() => ({
118
- activeComponent: this.nav.activeComponent(),
115
+ activeComponent: this.nav.activeComponent()
119
116
  }), /* @ts-ignore */
120
117
  ...(ngDevMode ? [{ debugName: "panelInputs" }] : /* istanbul ignore next */ []));
121
118
  lazyCache = new Map();
@@ -179,7 +176,7 @@ export class PrismPanelHostComponent {
179
176
  id: panel.id,
180
177
  component,
181
178
  injector: this.panelService.getInjector(panel.id),
182
- keepAlive: panel.keepAlive === true,
179
+ keepAlive: panel.keepAlive === true
183
180
  });
184
181
  this.renderedPanels.set(next);
185
182
  }
@@ -216,62 +213,10 @@ export class PrismPanelHostComponent {
216
213
  i0.ɵɵproperty("id", "panel-" + ctx.panelService.activePanelId());
217
214
  i0.ɵɵadvance();
218
215
  i0.ɵɵrepeater(ctx.renderedPanelsArray());
219
- } }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n background: var(--%NS%prism-bg-elevated);\n border-top: 1px solid var(--%NS%prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--%NS%prism-border);\n background: var(--%NS%prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs[_ngcontent-%COMP%]::-webkit-scrollbar { display: none; }\n\n .p-tab[_ngcontent-%COMP%] {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--%NS%fs-md);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n transition: color var(--%NS%dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--%NS%font-sans);\n }\n .p-tab[_ngcontent-%COMP%]:hover { color: var(--%NS%prism-text-2); }\n .p-tab--active[_ngcontent-%COMP%] { color: var(--%NS%prism-text); }\n .p-tab--%NS%active[_ngcontent-%COMP%]::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--%NS%prism-primary-from), var(--%NS%prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge[_ngcontent-%COMP%] {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--%NS%prism-primary) 18%, transparent);\n color: var(--%NS%prism-primary);\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.warn[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-warn) 18%, transparent);\n color: var(--%NS%prism-warn);\n }\n .p-tab-badge.danger[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-danger) 18%, transparent);\n color: var(--%NS%prism-danger);\n }\n\n .panel-tabs-right[_ngcontent-%COMP%] {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn[_ngcontent-%COMP%] {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--%NS%radius-sm);\n color: var(--%NS%prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--%NS%dur-fast);\n }\n .icon-btn[_ngcontent-%COMP%]:hover {\n background: var(--%NS%prism-input-bg);\n color: var(--%NS%prism-text);\n }\n\n .panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--%NS%prism-bg-elevated);\n }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--%NS%prism-border-strong); border-radius: 4px; }\n\n .panel-pane[_ngcontent-%COMP%] { height: 100%; }\n .panel-pane[hidden][_ngcontent-%COMP%] { display: none; }\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n }"] });
216
+ } }, dependencies: [NgComponentOutlet, PrismIconComponent], styles: [".panel[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n background: var(--%NS%prism-bg-elevated);\n border-top: 1px solid var(--%NS%prism-border);\n}\n\n.panel-tabs[_ngcontent-%COMP%] {\n display: flex;\n flex-shrink: 0;\n gap: 2px;\n align-items: center;\n height: 40px;\n padding: 0 16px;\n overflow-x: auto;\n scrollbar-width: none;\n background: var(--%NS%prism-bg);\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n.panel-tabs[_ngcontent-%COMP%]::-webkit-scrollbar {\n display: none;\n}\n\n.p-tab[_ngcontent-%COMP%] {\n position: relative;\n display: flex;\n gap: 7px;\n align-items: center;\n height: 100%;\n padding: 0 12px;\n font-family: var(--%NS%font-sans);\n font-size: var(--%NS%fs-md);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: none;\n transition: color var(--%NS%dur-fast);\n}\n\n.p-tab[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n}\n\n.p-tab--active[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text);\n}\n\n.p-tab--%NS%active[_ngcontent-%COMP%]::after {\n position: absolute;\n right: 8px;\n bottom: -1px;\n left: 8px;\n height: 2px;\n content: '';\n background: linear-gradient(90deg, var(--%NS%prism-primary-from), var(--%NS%prism-primary-to));\n border-radius: 1px;\n}\n\n.p-tab-badge[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n font-weight: 700;\n color: var(--%NS%prism-primary);\n background: color-mix(in srgb, var(--%NS%prism-primary) 18%, transparent);\n border-radius: 8px;\n}\n\n.p-tab-badge.warn[_ngcontent-%COMP%] {\n color: var(--%NS%prism-warn);\n background: color-mix(in srgb, var(--%NS%prism-warn) 18%, transparent);\n}\n\n.p-tab-badge.danger[_ngcontent-%COMP%] {\n color: var(--%NS%prism-danger);\n background: color-mix(in srgb, var(--%NS%prism-danger) 18%, transparent);\n}\n\n.panel-tabs-right[_ngcontent-%COMP%] {\n display: flex;\n gap: 4px;\n align-items: center;\n padding-left: 10px;\n margin-left: auto;\n}\n\n.icon-btn[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n width: 28px;\n height: 28px;\n color: var(--%NS%prism-text-muted);\n cursor: pointer;\n background: none;\n border: none;\n border-radius: var(--%NS%radius-sm);\n transition: all var(--%NS%dur-fast);\n}\n\n.icon-btn[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text);\n background: var(--%NS%prism-input-bg);\n}\n\n.panel-body[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--%NS%prism-bg-elevated);\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n.panel-body[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--%NS%prism-border-strong);\n border-radius: 4px;\n}\n\n.panel-pane[_ngcontent-%COMP%] {\n height: 100%;\n}\n\n.panel-pane[hidden][_ngcontent-%COMP%] {\n display: none;\n}\n\n[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n}"] });
220
217
  }
221
218
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismPanelHostComponent, [{
222
219
  type: Component,
223
- args: [{ selector: 'prism-panel-host', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet, PrismIconComponent], template: `
224
- <div class="panel">
225
- <nav class="panel-tabs" role="tablist">
226
- @for (panel of allPanels(); track panel.id) {
227
- <button
228
- class="p-tab"
229
- [class.p-tab--active]="panelService.activePanelId() === panel.id"
230
- (click)="panelService.activePanelId.set(panel.id)"
231
- role="tab"
232
- [attr.aria-selected]="panelService.activePanelId() === panel.id"
233
- [attr.aria-controls]="
234
- panelService.activePanelId() === panel.id
235
- ? 'panel-' + panel.id
236
- : null
237
- "
238
- >
239
- @if (panel.icon) {
240
- <prism-icon [name]="panel.icon" [size]="13" />
241
- }
242
- {{ panel.label }}
243
- @if (panelBadge(panel); as badge) { @if (badge.variant !== 'ok') {
244
- <span
245
- class="p-tab-badge"
246
- [class.warn]="badge.variant === 'warn'"
247
- [class.danger]="badge.variant === 'danger'"
248
- >{{ badge.text }}</span
249
- >
250
- } }
251
- </button>
252
- }
253
- </nav>
254
- <div
255
- class="panel-body"
256
- [id]="'panel-' + panelService.activePanelId()"
257
- role="tabpanel"
258
- >
259
- @for (entry of renderedPanelsArray(); track entry.id) {
260
- <div
261
- class="panel-pane"
262
- [hidden]="entry.id !== panelService.activePanelId()"
263
- >
264
- <ng-container
265
- *ngComponentOutlet="
266
- entry.component;
267
- inputs: panelInputs();
268
- injector: entry.injector ?? envInjector
269
- "
270
- />
271
- </div>
272
- }
273
- </div>
274
- </div>
275
- `, styles: ["\n .panel {\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n height: 100%;\n }\n\n .panel-tabs {\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 16px;\n height: 40px;\n border-bottom: 1px solid var(--prism-border);\n background: var(--prism-bg);\n overflow-x: auto;\n scrollbar-width: none;\n flex-shrink: 0;\n }\n .panel-tabs::-webkit-scrollbar { display: none; }\n\n .p-tab {\n position: relative;\n height: 100%;\n display: flex;\n align-items: center;\n gap: 7px;\n padding: 0 12px;\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n transition: color var(--dur-fast);\n background: none;\n border: none;\n cursor: pointer;\n font-family: var(--font-sans);\n }\n .p-tab:hover { color: var(--prism-text-2); }\n .p-tab--active { color: var(--prism-text); }\n .p-tab--active::after {\n content: '';\n position: absolute;\n left: 8px;\n right: 8px;\n bottom: -1px;\n height: 2px;\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n }\n\n .p-tab-badge {\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n border-radius: 8px;\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n color: var(--prism-primary);\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n display: grid;\n place-items: center;\n }\n .p-tab-badge.warn {\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n color: var(--prism-warn);\n }\n .p-tab-badge.danger {\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n color: var(--prism-danger);\n }\n\n .panel-tabs-right {\n margin-left: auto;\n display: flex;\n align-items: center;\n gap: 4px;\n padding-left: 10px;\n }\n\n .icon-btn {\n width: 28px;\n height: 28px;\n display: grid;\n place-items: center;\n border-radius: var(--radius-sm);\n color: var(--prism-text-muted);\n background: none;\n border: none;\n cursor: pointer;\n transition: all var(--dur-fast);\n }\n .icon-btn:hover {\n background: var(--prism-input-bg);\n color: var(--prism-text);\n }\n\n .panel-body {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n }\n .panel-body::-webkit-scrollbar { width: 8px; height: 8px; }\n .panel-body::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n\n .panel-pane { height: 100%; }\n .panel-pane[hidden] { display: none; }\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
220
+ args: [{ selector: 'prism-panel-host', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [NgComponentOutlet, PrismIconComponent], template: "<div class=\"panel\">\n <nav\n class=\"panel-tabs\"\n role=\"tablist\">\n @for (panel of allPanels(); track panel.id) {\n <button\n class=\"p-tab\"\n [class.p-tab--active]=\"panelService.activePanelId() === panel.id\"\n (click)=\"panelService.activePanelId.set(panel.id)\"\n role=\"tab\"\n [attr.aria-selected]=\"panelService.activePanelId() === panel.id\"\n [attr.aria-controls]=\"panelService.activePanelId() === panel.id ? 'panel-' + panel.id : null\">\n @if (panel.icon) {\n <prism-icon\n [name]=\"panel.icon\"\n [size]=\"13\" />\n }\n {{ panel.label }}\n @if (panelBadge(panel); as badge) {\n @if (badge.variant !== 'ok') {\n <span\n class=\"p-tab-badge\"\n [class.warn]=\"badge.variant === 'warn'\"\n [class.danger]=\"badge.variant === 'danger'\"\n >{{ badge.text }}</span\n >\n }\n }\n </button>\n }\n </nav>\n <div\n class=\"panel-body\"\n [id]=\"'panel-' + panelService.activePanelId()\"\n role=\"tabpanel\">\n @for (entry of renderedPanelsArray(); track entry.id) {\n <div\n class=\"panel-pane\"\n [hidden]=\"entry.id !== panelService.activePanelId()\">\n <ng-container *ngComponentOutlet=\"entry.component; inputs: panelInputs(); injector: entry.injector ?? envInjector\" />\n </div>\n }\n </div>\n</div>\n", styles: [".panel {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n background: var(--prism-bg-elevated);\n border-top: 1px solid var(--prism-border);\n}\n\n.panel-tabs {\n display: flex;\n flex-shrink: 0;\n gap: 2px;\n align-items: center;\n height: 40px;\n padding: 0 16px;\n overflow-x: auto;\n scrollbar-width: none;\n background: var(--prism-bg);\n border-bottom: 1px solid var(--prism-border);\n}\n\n.panel-tabs::-webkit-scrollbar {\n display: none;\n}\n\n.p-tab {\n position: relative;\n display: flex;\n gap: 7px;\n align-items: center;\n height: 100%;\n padding: 0 12px;\n font-family: var(--font-sans);\n font-size: var(--fs-md);\n font-weight: 500;\n color: var(--prism-text-muted);\n white-space: nowrap;\n cursor: pointer;\n background: none;\n border: none;\n transition: color var(--dur-fast);\n}\n\n.p-tab:hover {\n color: var(--prism-text-2);\n}\n\n.p-tab--active {\n color: var(--prism-text);\n}\n\n.p-tab--active::after {\n position: absolute;\n right: 8px;\n bottom: -1px;\n left: 8px;\n height: 2px;\n content: '';\n background: linear-gradient(90deg, var(--prism-primary-from), var(--prism-primary-to));\n border-radius: 1px;\n}\n\n.p-tab-badge {\n display: grid;\n place-items: center;\n min-width: 16px;\n height: 16px;\n padding: 0 5px;\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 700;\n color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 18%, transparent);\n border-radius: 8px;\n}\n\n.p-tab-badge.warn {\n color: var(--prism-warn);\n background: color-mix(in srgb, var(--prism-warn) 18%, transparent);\n}\n\n.p-tab-badge.danger {\n color: var(--prism-danger);\n background: color-mix(in srgb, var(--prism-danger) 18%, transparent);\n}\n\n.panel-tabs-right {\n display: flex;\n gap: 4px;\n align-items: center;\n padding-left: 10px;\n margin-left: auto;\n}\n\n.icon-btn {\n display: grid;\n place-items: center;\n width: 28px;\n height: 28px;\n color: var(--prism-text-muted);\n cursor: pointer;\n background: none;\n border: none;\n border-radius: var(--radius-sm);\n transition: all var(--dur-fast);\n}\n\n.icon-btn:hover {\n color: var(--prism-text);\n background: var(--prism-input-bg);\n}\n\n.panel-body {\n flex: 1;\n min-height: 0;\n overflow: auto;\n background: var(--prism-bg-elevated);\n}\n\n.panel-body::-webkit-scrollbar {\n width: 8px;\n height: 8px;\n}\n\n.panel-body::-webkit-scrollbar-thumb {\n background: var(--prism-border-strong);\n border-radius: 4px;\n}\n\n.panel-pane {\n height: 100%;\n}\n\n.panel-pane[hidden] {\n display: none;\n}\n\n:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n}\n"] }]
276
221
  }], () => [], null); })();
277
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelHostComponent, { className: "PrismPanelHostComponent", filePath: "app/panels/panel-host/prism-panel-host.component.ts", lineNumber: 215 }); })();
222
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismPanelHostComponent, { className: "PrismPanelHostComponent", filePath: "app/panels/panel-host/prism-panel-host.component.ts", lineNumber: 31 }); })();
@@ -1,6 +1,6 @@
1
1
  import { type EnvironmentProviders } from '@angular/core';
2
- import type { NgPrismConfig, RuntimeManifest } from '../plugin/plugin.types.js';
3
2
  import type { ComponentPageOptions } from '../plugin/page-helpers.js';
3
+ import type { NgPrismConfig, RuntimeManifest } from '../plugin/plugin.types.js';
4
4
  export interface ProvidePrismOptions {
5
5
  componentPages?: ComponentPageOptions[];
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provide-prism.d.ts","sourceRoot":"","sources":["../../src/app/provide-prism.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAUtE,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;CACzC;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,eAAe,EACzB,MAAM,CAAC,EAAE,aAAa,EACtB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,oBAAoB,CAiCtB"}
1
+ {"version":3,"file":"provide-prism.d.ts","sourceRoot":"","sources":["../../src/app/provide-prism.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,oBAAoB,EAA4B,MAAM,eAAe,CAAC;AAEpF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKhF,MAAM,WAAW,mBAAmB;IAChC,cAAc,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC3C;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,oBAAoB,CA6BnI"}
@@ -1,26 +1,22 @@
1
- import { makeEnvironmentProviders, } from '@angular/core';
1
+ import { makeEnvironmentProviders } from '@angular/core';
2
2
  import { provideHighlightOptions } from 'ngx-highlightjs';
3
3
  import { componentPage } from '../plugin/page-helpers.js';
4
4
  import { buildDiscoveryManifest } from './discovery-manifest.js';
5
5
  import { BUILTIN_PANELS } from './panels/builtin-panels.js';
6
- import { PRISM_BUILTIN_PANELS, PRISM_CONFIG, PRISM_MANIFEST, } from './tokens/prism-tokens.js';
6
+ import { PRISM_BUILTIN_PANELS, PRISM_CONFIG, PRISM_MANIFEST } from './tokens/prism-tokens.js';
7
7
  export function providePrism(manifest, config, options) {
8
8
  const mergedManifest = options?.componentPages?.length
9
9
  ? {
10
10
  ...manifest,
11
- pages: [
12
- ...(manifest.pages ?? []),
13
- ...options.componentPages.map((o) => componentPage(o)),
14
- ],
11
+ pages: [...(manifest.pages ?? []), ...options.componentPages.map((o) => componentPage(o))]
15
12
  }
16
13
  : manifest;
17
14
  // Exposes a thin discovery view of the manifest to external audit tooling:
18
15
  // class name, title, variants, and the `@Showcase` metadata a tool needs to
19
- // decide how to treat a variant. Still no Angular type references — see
16
+ // decide how to treat a variant. Still no Angular type references; see
20
17
  // buildDiscoveryManifest for what gets stripped and why.
21
18
  if (typeof globalThis !== 'undefined') {
22
- globalThis['__PRISM_MANIFEST__'] =
23
- buildDiscoveryManifest(mergedManifest);
19
+ globalThis['__PRISM_MANIFEST__'] = buildDiscoveryManifest(mergedManifest);
24
20
  }
25
21
  return makeEnvironmentProviders([
26
22
  { provide: PRISM_MANIFEST, useValue: mergedManifest },
@@ -31,8 +27,8 @@ export function providePrism(manifest, config, options) {
31
27
  coreLibraryLoader: () => import('highlight.js/lib/core'),
32
28
  languages: {
33
29
  xml: () => import('highlight.js/lib/languages/xml'),
34
- typescript: () => import('highlight.js/lib/languages/typescript'),
35
- },
36
- }),
30
+ typescript: () => import('highlight.js/lib/languages/typescript')
31
+ }
32
+ })
37
33
  ]);
38
34
  }
@@ -1,7 +1,7 @@
1
1
  import type { RuntimeComponent } from '../../plugin/plugin.types.js';
2
2
  /** Synthetic input the manifest generator emits on directive wrapper classes
3
3
  * to project per-variant `content` text into the host element. The directive
4
- * itself doesn't declare it, so it isn't in `meta.inputs` — code that
4
+ * itself doesn't declare it, so it isn't in `meta.inputs`, and code that
5
5
  * validates / filters inputs against that list must allow this key through.
6
6
  */
7
7
  export declare const PRISM_CONTENT_INPUT = "__prismContent__";
@@ -1 +1 @@
1
- {"version":3,"file":"known-inputs.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/known-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,CAMpE"}
1
+ {"version":3,"file":"known-inputs.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/known-inputs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AAEtD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,CAOpE"}
@@ -1,6 +1,6 @@
1
1
  /** Synthetic input the manifest generator emits on directive wrapper classes
2
2
  * to project per-variant `content` text into the host element. The directive
3
- * itself doesn't declare it, so it isn't in `meta.inputs` — code that
3
+ * itself doesn't declare it, so it isn't in `meta.inputs`, and code that
4
4
  * validates / filters inputs against that list must allow this key through.
5
5
  */
6
6
  export const PRISM_CONTENT_INPUT = '__prismContent__';
@@ -14,12 +14,26 @@ export type OverlayResolution = {
14
14
  /**
15
15
  * Decides which overlay component belongs to the active panel.
16
16
  *
17
- * Panel overlays render *inside* `.demo-wrap` — the same element external
18
- * screenshot tools capture — so capture mode resolves to `none` regardless of
19
- * which panel is active, and never triggers a lazy overlay load.
17
+ * Resolves to `none` regardless of which panel is active, and never
18
+ * triggers a lazy overlay load, under either of two independent
19
+ * conditions:
20
+ *
21
+ * - Capture mode: panel overlays render *inside* `.demo-wrap`, the same
22
+ * element external screenshot tools capture.
23
+ * - Measure mode: see the `measureActive` option below for why a running
24
+ * measuring tool preempts every panel overlay the same way.
20
25
  */
21
26
  export declare function resolveOverlay(panels: readonly PanelDefinition[], activePanelId: string, options: {
22
27
  captureActive: boolean;
28
+ /**
29
+ * True while the measuring tool is running.
30
+ *
31
+ * A bridge for now: once the tool can attribute a measured pixel gap
32
+ * to the CSS property that produced it, the box-model plugin has
33
+ * nothing left that it alone can do, and the competition for the
34
+ * pointer dissolves. See Spec §13.
35
+ */
36
+ measureActive: boolean;
23
37
  cache: ReadonlyMap<string, Type<unknown>>;
24
38
  }): OverlayResolution;
25
39
  //# sourceMappingURL=overlay-resolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-resolver.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/overlay-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,GAC3C;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CACpC,CAAC;AAIN;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IACP,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CAC3C,GACA,iBAAiB,CA6BnB"}
1
+ {"version":3,"file":"overlay-resolver.d.ts","sourceRoot":"","sources":["../../../src/app/renderer/overlay-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,6EAA6E;AAC7E,MAAM,MAAM,iBAAiB,GACvB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;CAAE,GAC3C;IACI,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CACtC,CAAC;AAIR;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC1B,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE;IACL,aAAa,EAAE,OAAO,CAAC;IACvB;;;;;;;OAOG;IACH,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CAC7C,GACF,iBAAiB,CA+BnB"}
@@ -2,12 +2,17 @@ const NONE = { kind: 'none' };
2
2
  /**
3
3
  * Decides which overlay component belongs to the active panel.
4
4
  *
5
- * Panel overlays render *inside* `.demo-wrap` — the same element external
6
- * screenshot tools capture — so capture mode resolves to `none` regardless of
7
- * which panel is active, and never triggers a lazy overlay load.
5
+ * Resolves to `none` regardless of which panel is active, and never
6
+ * triggers a lazy overlay load, under either of two independent
7
+ * conditions:
8
+ *
9
+ * - Capture mode: panel overlays render *inside* `.demo-wrap`, the same
10
+ * element external screenshot tools capture.
11
+ * - Measure mode: see the `measureActive` option below for why a running
12
+ * measuring tool preempts every panel overlay the same way.
8
13
  */
9
14
  export function resolveOverlay(panels, activePanelId, options) {
10
- if (options.captureActive)
15
+ if (options.captureActive || options.measureActive)
11
16
  return NONE;
12
17
  const panel = panels.find((p) => p.id === activePanelId);
13
18
  if (!panel)
@@ -29,7 +34,7 @@ export function resolveOverlay(panels, activePanelId, options) {
29
34
  // shorthand that reads its own object then throws inside a promise
30
35
  // the renderer does not catch, and the overlay silently never
31
36
  // appears.
32
- load: () => loadOverlayComponent.call(panel),
37
+ load: () => loadOverlayComponent.call(panel)
33
38
  };
34
39
  }
35
40
  return NONE;