@ng-prism/core 22.6.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 (377) hide show
  1. package/README.md +11 -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 +3 -2
  14. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
  15. package/dist/app/canvas/prism-canvas-toolbar.component.js +89 -97
  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/component-head/head-metrics.d.ts +35 -19
  19. package/dist/app/component-head/head-metrics.d.ts.map +1 -1
  20. package/dist/app/component-head/head-metrics.js +57 -27
  21. package/dist/app/component-head/pipe-facts.d.ts +9 -0
  22. package/dist/app/component-head/pipe-facts.d.ts.map +1 -0
  23. package/dist/app/component-head/pipe-facts.js +15 -0
  24. package/dist/app/component-head/prism-component-head.component.d.ts +19 -22
  25. package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
  26. package/dist/app/component-head/prism-component-head.component.js +80 -96
  27. package/dist/app/component-head/prism-head-gauge.component.d.ts +8 -12
  28. package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -1
  29. package/dist/app/component-head/prism-head-gauge.component.js +51 -67
  30. package/dist/app/component-head/prism-head-info.component.d.ts +13 -2
  31. package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -1
  32. package/dist/app/component-head/prism-head-info.component.js +57 -16
  33. package/dist/app/component-head/prism-stat.component.d.ts +4 -5
  34. package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
  35. package/dist/app/component-head/prism-stat.component.js +16 -12
  36. package/dist/app/component-head/service-facts.d.ts +8 -0
  37. package/dist/app/component-head/service-facts.d.ts.map +1 -0
  38. package/dist/app/component-head/service-facts.js +11 -0
  39. package/dist/app/controls/boolean-control.component.js +2 -2
  40. package/dist/app/controls/json-control.component.js +2 -2
  41. package/dist/app/controls/union-control.component.js +4 -3
  42. package/dist/app/header/header-brand.d.ts +25 -0
  43. package/dist/app/header/header-brand.d.ts.map +1 -0
  44. package/dist/app/header/header-brand.js +10 -0
  45. package/dist/app/header/prism-header.component.d.ts +2 -2
  46. package/dist/app/header/prism-header.component.d.ts.map +1 -1
  47. package/dist/app/header/prism-header.component.js +73 -57
  48. package/dist/app/icons/icon-registry.d.ts.map +1 -1
  49. package/dist/app/icons/icon-registry.js +4 -1
  50. package/dist/app/index.d.ts +12 -0
  51. package/dist/app/index.d.ts.map +1 -1
  52. package/dist/app/index.js +12 -1
  53. package/dist/app/layout-menu/prism-layout-menu.component.d.ts +3 -0
  54. package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
  55. package/dist/app/layout-menu/prism-layout-menu.component.js +72 -58
  56. package/dist/app/overview/open-in-playground.d.ts +8 -0
  57. package/dist/app/overview/open-in-playground.d.ts.map +1 -1
  58. package/dist/app/overview/open-in-playground.js +13 -0
  59. package/dist/app/overview/overview-matrix.d.ts +10 -4
  60. package/dist/app/overview/overview-matrix.d.ts.map +1 -1
  61. package/dist/app/overview/overview-matrix.js +3 -3
  62. package/dist/app/overview/prism-overview-cell.component.d.ts +6 -2
  63. package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -1
  64. package/dist/app/overview/prism-overview-cell.component.js +35 -24
  65. package/dist/app/overview/prism-overview-matrix.component.js +46 -55
  66. package/dist/app/page-renderer/prism-page-renderer.component.js +2 -2
  67. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts +1 -4
  68. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
  69. package/dist/app/panels/a11y/a11y-header-badge.component.js +8 -19
  70. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +2 -2
  71. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts +1 -0
  72. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
  73. package/dist/app/panels/a11y/a11y-overlay-host.component.js +4 -3
  74. package/dist/app/panels/a11y/a11y-panel.component.d.ts +4 -1
  75. package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
  76. package/dist/app/panels/a11y/a11y-panel.component.js +32 -54
  77. package/dist/app/panels/a11y/a11y-score.component.d.ts +8 -3
  78. package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
  79. package/dist/app/panels/a11y/a11y-score.component.js +19 -35
  80. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +2 -2
  81. package/dist/app/panels/a11y/a11y-sr.component.js +2 -2
  82. package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -1
  83. package/dist/app/panels/a11y/a11y-summary.js +8 -1
  84. package/dist/app/panels/a11y/a11y-tree.component.js +2 -2
  85. package/dist/app/panels/a11y/a11y-violations.component.d.ts +23 -2
  86. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
  87. package/dist/app/panels/a11y/a11y-violations.component.js +104 -89
  88. package/dist/app/panels/a11y/severity.d.ts +9 -0
  89. package/dist/app/panels/a11y/severity.d.ts.map +1 -0
  90. package/dist/app/panels/a11y/severity.js +12 -0
  91. package/dist/app/panels/controls/non-editable-input-types.d.ts +9 -1
  92. package/dist/app/panels/controls/non-editable-input-types.d.ts.map +1 -1
  93. package/dist/app/panels/controls/non-editable-input-types.js +18 -0
  94. package/dist/app/panels/controls/prism-controls-panel.component.d.ts +2 -1
  95. package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
  96. package/dist/app/panels/controls/prism-controls-panel.component.js +77 -59
  97. package/dist/app/panels/events/prism-events-panel.component.d.ts +2 -0
  98. package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
  99. package/dist/app/panels/events/prism-events-panel.component.js +20 -7
  100. package/dist/app/panels/events/prism-json-node.utils.d.ts +6 -0
  101. package/dist/app/panels/events/prism-json-node.utils.d.ts.map +1 -1
  102. package/dist/app/panels/events/prism-json-node.utils.js +8 -0
  103. package/dist/app/panels/panel-host/addon-panels.d.ts +11 -0
  104. package/dist/app/panels/panel-host/addon-panels.d.ts.map +1 -0
  105. package/dist/app/panels/panel-host/addon-panels.js +12 -0
  106. package/dist/app/panels/panel-host/panel-badge.d.ts +22 -0
  107. package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
  108. package/dist/app/panels/panel-host/panel-badge.js +56 -11
  109. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +4 -1
  110. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  111. package/dist/app/panels/panel-host/prism-panel-host.component.js +36 -70
  112. package/dist/app/renderer/composition.d.ts +20 -0
  113. package/dist/app/renderer/composition.d.ts.map +1 -0
  114. package/dist/app/renderer/composition.js +26 -0
  115. package/dist/app/renderer/input-bindings.d.ts +13 -1
  116. package/dist/app/renderer/input-bindings.d.ts.map +1 -1
  117. package/dist/app/renderer/input-bindings.js +22 -1
  118. package/dist/app/renderer/prism-renderer.component.d.ts +8 -1
  119. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  120. package/dist/app/renderer/prism-renderer.component.js +40 -28
  121. package/dist/app/renderer/snippet-generator.d.ts +14 -2
  122. package/dist/app/renderer/snippet-generator.d.ts.map +1 -1
  123. package/dist/app/renderer/snippet-generator.js +137 -82
  124. package/dist/app/services/navigation-item.d.ts +10 -0
  125. package/dist/app/services/navigation-item.d.ts.map +1 -0
  126. package/dist/app/services/navigation-item.js +20 -0
  127. package/dist/app/services/navigation-item.types.d.ts +8 -0
  128. package/dist/app/services/navigation-item.types.d.ts.map +1 -1
  129. package/dist/app/services/prism-layout.service.d.ts +12 -0
  130. package/dist/app/services/prism-layout.service.d.ts.map +1 -1
  131. package/dist/app/services/prism-layout.service.js +17 -7
  132. package/dist/app/services/prism-manifest.service.d.ts +4 -0
  133. package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
  134. package/dist/app/services/prism-manifest.service.js +4 -0
  135. package/dist/app/services/prism-navigation.service.d.ts +12 -0
  136. package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
  137. package/dist/app/services/prism-navigation.service.js +85 -19
  138. package/dist/app/services/prism-panel.service.d.ts +7 -3
  139. package/dist/app/services/prism-panel.service.d.ts.map +1 -1
  140. package/dist/app/services/prism-panel.service.js +13 -4
  141. package/dist/app/services/prism-renderer.service.d.ts +6 -0
  142. package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
  143. package/dist/app/services/prism-renderer.service.js +40 -6
  144. package/dist/app/services/prism-search.service.d.ts +4 -0
  145. package/dist/app/services/prism-search.service.d.ts.map +1 -1
  146. package/dist/app/services/prism-search.service.js +29 -6
  147. package/dist/app/services/prism-theme.service.d.ts +11 -3
  148. package/dist/app/services/prism-theme.service.d.ts.map +1 -1
  149. package/dist/app/services/prism-theme.service.js +27 -19
  150. package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
  151. package/dist/app/services/prism-url-state.service.js +42 -4
  152. package/dist/app/shared/badge.types.d.ts +7 -0
  153. package/dist/app/shared/badge.types.d.ts.map +1 -0
  154. package/dist/app/shared/badge.types.js +9 -0
  155. package/dist/app/shared/brand-mark.d.ts +35 -0
  156. package/dist/app/shared/brand-mark.d.ts.map +1 -0
  157. package/dist/app/shared/brand-mark.js +52 -0
  158. package/dist/app/shared/metric-bar.d.ts +6 -0
  159. package/dist/app/shared/metric-bar.d.ts.map +1 -0
  160. package/dist/app/shared/metric-bar.js +7 -0
  161. package/dist/app/shared/prism-badge.component.d.ts +21 -0
  162. package/dist/app/shared/prism-badge.component.d.ts.map +1 -0
  163. package/dist/app/shared/prism-badge.component.js +68 -0
  164. package/dist/app/shared/prism-button.component.d.ts +12 -0
  165. package/dist/app/shared/prism-button.component.d.ts.map +1 -0
  166. package/dist/app/shared/prism-button.component.js +28 -0
  167. package/dist/app/shared/prism-icon-button.component.d.ts +17 -0
  168. package/dist/app/shared/prism-icon-button.component.d.ts.map +1 -0
  169. package/dist/app/shared/prism-icon-button.component.js +37 -0
  170. package/dist/app/shared/prism-list-row.component.d.ts +17 -0
  171. package/dist/app/shared/prism-list-row.component.d.ts.map +1 -0
  172. package/dist/app/shared/prism-list-row.component.js +57 -0
  173. package/dist/app/shared/prism-logo.component.d.ts +24 -0
  174. package/dist/app/shared/prism-logo.component.d.ts.map +1 -0
  175. package/dist/app/shared/prism-logo.component.js +77 -0
  176. package/dist/app/shared/prism-metric-badge.component.d.ts +9 -4
  177. package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -1
  178. package/dist/app/shared/prism-metric-badge.component.js +33 -12
  179. package/dist/app/shared/prism-metric-card.component.d.ts +30 -0
  180. package/dist/app/shared/prism-metric-card.component.d.ts.map +1 -0
  181. package/dist/app/shared/prism-metric-card.component.js +111 -0
  182. package/dist/app/shared/prism-panel-toolbar.component.d.ts +13 -0
  183. package/dist/app/shared/prism-panel-toolbar.component.d.ts.map +1 -0
  184. package/dist/app/shared/prism-panel-toolbar.component.js +28 -0
  185. package/dist/app/shared/prism-segmented.component.d.ts +25 -0
  186. package/dist/app/shared/prism-segmented.component.d.ts.map +1 -0
  187. package/dist/app/shared/prism-segmented.component.js +77 -0
  188. package/dist/app/shared/prism-tabs.component.d.ts +44 -0
  189. package/dist/app/shared/prism-tabs.component.d.ts.map +1 -0
  190. package/dist/app/shared/prism-tabs.component.js +134 -0
  191. package/dist/app/shared/roving-focus.d.ts +13 -0
  192. package/dist/app/shared/roving-focus.d.ts.map +1 -0
  193. package/dist/app/shared/roving-focus.js +34 -0
  194. package/dist/app/shell/prism-shell.component.d.ts +13 -0
  195. package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
  196. package/dist/app/shell/prism-shell.component.js +57 -28
  197. package/dist/app/shell/should-select-first.d.ts +17 -0
  198. package/dist/app/shell/should-select-first.d.ts.map +1 -0
  199. package/dist/app/shell/should-select-first.js +13 -0
  200. package/dist/app/sidebar/navigation-decorations.d.ts +23 -1
  201. package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -1
  202. package/dist/app/sidebar/navigation-decorations.js +33 -2
  203. package/dist/app/sidebar/prism-sidebar.component.d.ts +5 -15
  204. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  205. package/dist/app/sidebar/prism-sidebar.component.js +89 -77
  206. package/dist/app/theme/deprecated-tokens.d.ts +15 -0
  207. package/dist/app/theme/deprecated-tokens.d.ts.map +1 -0
  208. package/dist/app/theme/deprecated-tokens.js +22 -0
  209. package/dist/app/theme/favicon.d.ts +3 -0
  210. package/dist/app/theme/favicon.d.ts.map +1 -0
  211. package/dist/app/theme/favicon.js +3 -0
  212. package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
  213. package/dist/app/theme/prism-default-theme.js +116 -61
  214. package/dist/app/theme/resolve-theme-tokens.d.ts +29 -0
  215. package/dist/app/theme/resolve-theme-tokens.d.ts.map +1 -0
  216. package/dist/app/theme/resolve-theme-tokens.js +43 -0
  217. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts +4 -7
  218. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
  219. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +31 -69
  220. package/dist/app/view-tab-bar/next-view-id.d.ts +7 -1
  221. package/dist/app/view-tab-bar/next-view-id.d.ts.map +1 -1
  222. package/dist/app/view-tab-bar/next-view-id.js +9 -1
  223. package/dist/app/view-tab-bar/panel-inputs.d.ts +28 -0
  224. package/dist/app/view-tab-bar/panel-inputs.d.ts.map +1 -0
  225. package/dist/app/view-tab-bar/panel-inputs.js +41 -0
  226. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts +2 -3
  227. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
  228. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +9 -9
  229. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts +6 -0
  230. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
  231. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +22 -29
  232. package/dist/builder/config-loader/deprecated-options.d.ts +4 -2
  233. package/dist/builder/config-loader/deprecated-options.d.ts.map +1 -1
  234. package/dist/builder/config-loader/deprecated-options.js +13 -2
  235. package/dist/builder/manifest/composition-wrapper.generator.d.ts +14 -0
  236. package/dist/builder/manifest/composition-wrapper.generator.d.ts.map +1 -0
  237. package/dist/builder/manifest/composition-wrapper.generator.js +66 -0
  238. package/dist/builder/manifest/host-parser.d.ts +2 -0
  239. package/dist/builder/manifest/host-parser.d.ts.map +1 -1
  240. package/dist/builder/manifest/host-parser.js +9 -4
  241. package/dist/builder/manifest/manifest-imports.d.ts +34 -0
  242. package/dist/builder/manifest/manifest-imports.d.ts.map +1 -0
  243. package/dist/builder/manifest/manifest-imports.js +91 -0
  244. package/dist/builder/manifest/runtime-manifest.generator.d.ts +13 -0
  245. package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
  246. package/dist/builder/manifest/runtime-manifest.generator.js +135 -64
  247. package/dist/builder/manifest/selector-element.d.ts +16 -0
  248. package/dist/builder/manifest/selector-element.d.ts.map +1 -0
  249. package/dist/builder/manifest/selector-element.js +46 -0
  250. package/dist/builder/manifest/template-literal.d.ts +3 -0
  251. package/dist/builder/manifest/template-literal.d.ts.map +1 -0
  252. package/dist/builder/manifest/template-literal.js +4 -0
  253. package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
  254. package/dist/builder/plugin-runner/plugin-runner.js +29 -26
  255. package/dist/builder/scanner/api/angular-decorators.d.ts +84 -0
  256. package/dist/builder/scanner/api/angular-decorators.d.ts.map +1 -0
  257. package/dist/builder/scanner/api/angular-decorators.js +157 -0
  258. package/dist/builder/scanner/api/component-api.extractor.d.ts +13 -0
  259. package/dist/builder/scanner/api/component-api.extractor.d.ts.map +1 -0
  260. package/dist/builder/scanner/api/component-api.extractor.js +104 -0
  261. package/dist/builder/scanner/api/doc-tags.d.ts +13 -0
  262. package/dist/builder/scanner/api/doc-tags.d.ts.map +1 -0
  263. package/dist/builder/scanner/api/doc-tags.js +101 -0
  264. package/dist/builder/scanner/api/export-index.d.ts +18 -0
  265. package/dist/builder/scanner/api/export-index.d.ts.map +1 -0
  266. package/dist/builder/scanner/api/export-index.js +22 -0
  267. package/dist/builder/scanner/api/member.extractor.d.ts +90 -0
  268. package/dist/builder/scanner/api/member.extractor.d.ts.map +1 -0
  269. package/dist/builder/scanner/api/member.extractor.js +270 -0
  270. package/dist/builder/scanner/api/pipe-api.extractor.d.ts +12 -0
  271. package/dist/builder/scanner/api/pipe-api.extractor.d.ts.map +1 -0
  272. package/dist/builder/scanner/api/pipe-api.extractor.js +52 -0
  273. package/dist/builder/scanner/api/service-api.extractor.d.ts +14 -0
  274. package/dist/builder/scanner/api/service-api.extractor.d.ts.map +1 -0
  275. package/dist/builder/scanner/api/service-api.extractor.js +119 -0
  276. package/dist/builder/scanner/api/setup.reader.d.ts +26 -0
  277. package/dist/builder/scanner/api/setup.reader.d.ts.map +1 -0
  278. package/dist/builder/scanner/api/setup.reader.js +89 -0
  279. package/dist/builder/scanner/api/type-collector.d.ts +24 -0
  280. package/dist/builder/scanner/api/type-collector.d.ts.map +1 -0
  281. package/dist/builder/scanner/api/type-collector.js +211 -0
  282. package/dist/builder/scanner/ast-utils.d.ts +8 -0
  283. package/dist/builder/scanner/ast-utils.d.ts.map +1 -1
  284. package/dist/builder/scanner/ast-utils.js +37 -1
  285. package/dist/builder/scanner/class-hierarchy.d.ts +5 -3
  286. package/dist/builder/scanner/class-hierarchy.d.ts.map +1 -1
  287. package/dist/builder/scanner/class-hierarchy.js +12 -6
  288. package/dist/builder/scanner/component.scanner.d.ts +60 -6
  289. package/dist/builder/scanner/component.scanner.d.ts.map +1 -1
  290. package/dist/builder/scanner/component.scanner.js +209 -57
  291. package/dist/builder/scanner/composition/compose-template.d.ts +36 -0
  292. package/dist/builder/scanner/composition/compose-template.d.ts.map +1 -0
  293. package/dist/builder/scanner/composition/compose-template.js +187 -0
  294. package/dist/builder/scanner/composition/declarables.d.ts +54 -0
  295. package/dist/builder/scanner/composition/declarables.d.ts.map +1 -0
  296. package/dist/builder/scanner/composition/declarables.js +182 -0
  297. package/dist/builder/scanner/composition/match-declarables.d.ts +43 -0
  298. package/dist/builder/scanner/composition/match-declarables.d.ts.map +1 -0
  299. package/dist/builder/scanner/composition/match-declarables.js +131 -0
  300. package/dist/builder/scanner/composition/read-composition.d.ts +77 -0
  301. package/dist/builder/scanner/composition/read-composition.d.ts.map +1 -0
  302. package/dist/builder/scanner/composition/read-composition.js +302 -0
  303. package/dist/builder/scanner/composition/template-elements.d.ts +12 -0
  304. package/dist/builder/scanner/composition/template-elements.d.ts.map +1 -0
  305. package/dist/builder/scanner/composition/template-elements.js +41 -0
  306. package/dist/builder/scanner/index.d.ts +4 -0
  307. package/dist/builder/scanner/index.d.ts.map +1 -1
  308. package/dist/builder/scanner/index.js +2 -0
  309. package/dist/builder/scanner/input.extractor.d.ts +31 -2
  310. package/dist/builder/scanner/input.extractor.d.ts.map +1 -1
  311. package/dist/builder/scanner/input.extractor.js +52 -15
  312. package/dist/builder/scanner/pipe.scanner.d.ts +29 -0
  313. package/dist/builder/scanner/pipe.scanner.d.ts.map +1 -0
  314. package/dist/builder/scanner/pipe.scanner.js +65 -0
  315. package/dist/builder/scanner/scanner.d.ts +25 -1
  316. package/dist/builder/scanner/scanner.d.ts.map +1 -1
  317. package/dist/builder/scanner/scanner.js +60 -26
  318. package/dist/builder/scanner/service/angular-decorators.d.ts +80 -0
  319. package/dist/builder/scanner/service/angular-decorators.d.ts.map +1 -0
  320. package/dist/builder/scanner/service/angular-decorators.js +154 -0
  321. package/dist/builder/scanner/service/doc-tags.d.ts +13 -0
  322. package/dist/builder/scanner/service/doc-tags.d.ts.map +1 -0
  323. package/dist/builder/scanner/service/doc-tags.js +97 -0
  324. package/dist/builder/scanner/service/export-index.d.ts +18 -0
  325. package/dist/builder/scanner/service/export-index.d.ts.map +1 -0
  326. package/dist/builder/scanner/service/export-index.js +22 -0
  327. package/dist/builder/scanner/service/member.extractor.d.ts +65 -0
  328. package/dist/builder/scanner/service/member.extractor.d.ts.map +1 -0
  329. package/dist/builder/scanner/service/member.extractor.js +216 -0
  330. package/dist/builder/scanner/service/pipe-api.extractor.d.ts +12 -0
  331. package/dist/builder/scanner/service/pipe-api.extractor.d.ts.map +1 -0
  332. package/dist/builder/scanner/service/pipe-api.extractor.js +72 -0
  333. package/dist/builder/scanner/service/service-api.extractor.d.ts +14 -0
  334. package/dist/builder/scanner/service/service-api.extractor.d.ts.map +1 -0
  335. package/dist/builder/scanner/service/service-api.extractor.js +119 -0
  336. package/dist/builder/scanner/service/setup.reader.d.ts +26 -0
  337. package/dist/builder/scanner/service/setup.reader.d.ts.map +1 -0
  338. package/dist/builder/scanner/service/setup.reader.js +89 -0
  339. package/dist/builder/scanner/service/type-collector.d.ts +23 -0
  340. package/dist/builder/scanner/service/type-collector.d.ts.map +1 -0
  341. package/dist/builder/scanner/service/type-collector.js +210 -0
  342. package/dist/builder/scanner/service.scanner.d.ts +26 -0
  343. package/dist/builder/scanner/service.scanner.d.ts.map +1 -0
  344. package/dist/builder/scanner/service.scanner.js +61 -0
  345. package/dist/builder/scanner/showcase-diagnostics.d.ts +60 -1
  346. package/dist/builder/scanner/showcase-diagnostics.d.ts.map +1 -1
  347. package/dist/builder/scanner/showcase-diagnostics.js +114 -1
  348. package/dist/builder/shared/prism-pipeline.d.ts +6 -0
  349. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  350. package/dist/builder/shared/prism-pipeline.js +43 -5
  351. package/dist/decorator/index.d.ts +1 -1
  352. package/dist/decorator/index.d.ts.map +1 -1
  353. package/dist/decorator/showcase.types.d.ts +79 -9
  354. package/dist/decorator/showcase.types.d.ts.map +1 -1
  355. package/dist/plugin/index.d.ts +6 -1
  356. package/dist/plugin/index.d.ts.map +1 -1
  357. package/dist/plugin/index.js +4 -0
  358. package/dist/plugin/pipe.types.d.ts +36 -0
  359. package/dist/plugin/pipe.types.d.ts.map +1 -0
  360. package/dist/plugin/pipe.types.js +1 -0
  361. package/dist/plugin/plugin.types.d.ts +140 -3
  362. package/dist/plugin/plugin.types.d.ts.map +1 -1
  363. package/dist/plugin/service.types.d.ts +124 -0
  364. package/dist/plugin/service.types.d.ts.map +1 -0
  365. package/dist/plugin/service.types.js +1 -0
  366. package/dist/plugin/status.d.ts +27 -0
  367. package/dist/plugin/status.d.ts.map +1 -0
  368. package/dist/plugin/status.js +26 -0
  369. package/dist/shared/composition.d.ts +30 -0
  370. package/dist/shared/composition.d.ts.map +1 -0
  371. package/dist/shared/composition.js +29 -0
  372. package/dist/shared/pseudo-state.type.d.ts +2 -1
  373. package/dist/shared/pseudo-state.type.d.ts.map +1 -1
  374. package/dist/shared/void-elements.d.ts +3 -0
  375. package/dist/shared/void-elements.d.ts.map +1 -0
  376. package/dist/shared/void-elements.js +2 -0
  377. package/package.json +1 -1
package/README.md CHANGED
@@ -13,6 +13,8 @@
13
13
  - **Zero-config discovery**: TypeScript Compiler API scans your library at build time
14
14
  - **Signal-native**: works with `input()` / `output()` signals
15
15
  - **Directive support**: showcase directives with configurable host elements
16
+ - **Compositions**: show a component with the parts it works with, such as a form field with its input, as a compiled Angular template with `template`, `host: { template }` and `imports`
17
+ - **Services and pipes**: `@Showcase` on a service or pipe gives it an API page, no canvas needed
16
18
  - **Plugin architecture**: JSDoc, A11y, Figma, Performance, Box Model, Coverage
17
19
  - **Live Controls**: auto-generated input controls with type-aware editors
18
20
  - **Code Snippets**: live-updating Angular template snippets per variant
@@ -95,7 +97,7 @@ export default defineConfig({
95
97
 
96
98
  ## Directives
97
99
 
98
- Directives need a host element. Use `host` to wrap them:
100
+ A directive renders on the element its selector names. To put it on another element or component, or inside other markup, such as an input in its form field, configure `host`:
99
101
 
100
102
  ```typescript
101
103
  @Showcase({
@@ -135,14 +137,14 @@ Link to a `@Showcase`-decorated component for combined API docs + custom renderi
135
137
 
136
138
  ## Official Plugins
137
139
 
138
- | Plugin | Package | Description |
139
- | --------- | ------------------------------------ | ------------------------------------------------------------- |
140
- | JSDoc | `@ng-prism/plugin-jsdoc` | API documentation from JSDoc comments |
141
- | Figma | `@ng-prism/plugin-figma` | Figma design embed + visual diff |
142
- | Box Model | `@ng-prism/plugin-box-model` | CSS box model inspector |
143
- | Perf | `@ng-prism/plugin-perf` | Render performance profiling |
144
- | Coverage | `@ng-prism/plugin-coverage` | Per-component test coverage from Istanbul/v8 |
145
- | VRT | `@ng-prism/plugin-visual-regression` | Per-variant visual regression report from a screenshot runner |
140
+ | Plugin | Package | Description |
141
+ | --------- | ------------------------------------ | --------------------------------------------------------------------------- |
142
+ | JSDoc | `@ng-prism/plugin-jsdoc` | API pages for components, directives, services and pipes, with linked types |
143
+ | Figma | `@ng-prism/plugin-figma` | Figma design embed + visual diff |
144
+ | Box Model | `@ng-prism/plugin-box-model` | CSS box model inspector |
145
+ | Perf | `@ng-prism/plugin-perf` | Render performance profiling |
146
+ | Coverage | `@ng-prism/plugin-coverage` | Per-component test coverage from Istanbul/v8 |
147
+ | VRT | `@ng-prism/plugin-visual-regression` | Per-variant visual regression report from a screenshot runner |
146
148
 
147
149
  > **Note:** Accessibility auditing (axe-core) is built into ng-prism core, so no plugin is needed.
148
150
 
@@ -10,5 +10,5 @@
10
10
  * `dark` override it. Capture mode is unaffected: `CAPTURE_STYLES` is a global
11
11
  * stylesheet using `!important`.
12
12
  */
13
- export declare const CANVAS_BG_STYLES = "\n [data-bg=\"dots\"] {\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n }\n\n [data-bg=\"plain\"] {\n background-image: none;\n }\n\n /* Flat, not dotted. \"light\" and \"dark\" name the surface a component was\n designed against, and their colour is absolute rather than a theme token,\n which makes them the values to declare for a screenshot baseline. Use\n \"dots\" for the grid. */\n /* These two also re-point --prism-measure. Other overlays use theme colours\n on theme surfaces, but these grounds ignore the theme: \"light\" stays\n near-white in the dark theme and \"dark\" stays near-black in the light one.\n The dark theme's magenta reaches only 2.85:1 on the light ground, under the\n 4.5:1 its 9px readout needs, so the measurement colour has to follow the\n ground, not the theme.\n\n --prism-measure-plate follows it for the same reason. It is the surface\n the measuring tool's value label paints itself on, so the label reads as a\n gap in the measurement line rather than a badge on top of it. At its\n --prism-stage fallback it would be the theme's stage under a re-pointed\n foreground: the light theme's magenta on the dark theme's stage reads\n 3.71:1, the dark theme's on white 3.08:1. Pinned to the ground the same way,\n the pairs reach 4.54:1 and 6.57:1. A color-mix against the ground would\n work too, but this file already states both grounds literally, and one\n mechanism per decision is enough.\n\n Literal values because this file is theme-independent, like the two\n grounds below. Keep them in step with --prism-measure in\n prism-default-theme.ts; semantic-colours.spec.ts fails if they drift. */\n [data-bg=\"light\"] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: none;\n --prism-measure: #ca00c1;\n --prism-measure-plate: var(--prism-void-light, #f7f5fc);\n }\n [data-bg=\"dark\"] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: none;\n --prism-measure: #f632ff;\n --prism-measure-plate: var(--prism-void-dark, #07050f);\n }\n\n /* \"transparent\" shares the checkerboard. In the app the checkerboard is\n already the UI's sign for \"no surface\", and a see-through stage would only\n show the shell behind it. Only CAPTURE_STYLES tells the two apart. */\n [data-bg=\"checker\"],\n [data-bg=\"transparent\"] {\n background-image:\n linear-gradient(45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n";
13
+ export declare const CANVAS_BG_STYLES = "\n [data-bg=\"dots\"] {\n background-image: radial-gradient(circle, var(--prism-dot) 1px, transparent 1px);\n background-size: 20px 20px;\n }\n\n [data-bg=\"plain\"] {\n background-image: none;\n }\n\n /* Flat, not dotted. \"light\" and \"dark\" name the surface a component was\n designed against, and their colour is absolute rather than a theme token,\n which makes them the values to declare for a screenshot baseline. Use\n \"dots\" for the grid. */\n /* These two also re-point --prism-measure. Other overlays use theme colours\n on theme surfaces, but these grounds ignore the theme: \"light\" stays\n near-white in the dark theme and \"dark\" stays near-black in the light one.\n The dark theme's magenta reaches only 2.85:1 on the light ground, under the\n 4.5:1 its 9px readout needs, so the measurement colour has to follow the\n ground, not the theme.\n\n --prism-measure-plate follows it for the same reason. It is the surface\n the measuring tool's value label paints itself on, so the label reads as a\n gap in the measurement line rather than a badge on top of it. At its\n --prism-stage fallback it would be the theme's stage under a re-pointed\n foreground: the light theme's magenta on the dark theme's stage reads\n 3.71:1, the dark theme's on white 3.08:1. Pinned to the ground the same way,\n the pairs reach 4.54:1 and 6.57:1. A color-mix against the ground would\n work too, but this file already states both grounds literally, and one\n mechanism per decision is enough.\n\n Literal values because this file is theme-independent, like the two\n grounds below. Keep them in step with --prism-measure in canvas-overlay-tokens.ts and\n prism-default-theme.ts; semantic-colours.spec.ts fails if they drift. */\n [data-bg=\"light\"] {\n background-color: var(--prism-void-light, #f7f5fc);\n background-image: none;\n --prism-measure: #ca00c1;\n --prism-measure-plate: var(--prism-void-light, #f7f5fc);\n }\n [data-bg=\"dark\"] {\n background-color: var(--prism-void-dark, #07050f);\n background-image: none;\n --prism-measure: #f632ff;\n --prism-measure-plate: var(--prism-void-dark, #07050f);\n }\n\n /* \"transparent\" shares the checkerboard. In the app the checkerboard is\n already the UI's sign for \"no surface\", and a see-through stage would only\n show the shell behind it. Only CAPTURE_STYLES tells the two apart. */\n [data-bg=\"checker\"],\n [data-bg=\"transparent\"] {\n background-image:\n linear-gradient(45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(-45deg, var(--prism-border) 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, var(--prism-border) 75%),\n linear-gradient(-45deg, transparent 75%, var(--prism-border) 75%);\n background-size: 16px 16px;\n background-position: 0 0, 0 8px, 8px -8px, -8px 0;\n }\n";
14
14
  //# sourceMappingURL=canvas-bg.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"canvas-bg.styles.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/canvas-bg.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,62FA4D5B,CAAC"}
1
+ {"version":3,"file":"canvas-bg.styles.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/canvas-bg.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,04FA4D5B,CAAC"}
@@ -42,7 +42,7 @@ export const CANVAS_BG_STYLES = `
42
42
  mechanism per decision is enough.
43
43
 
44
44
  Literal values because this file is theme-independent, like the two
45
- grounds below. Keep them in step with --prism-measure in
45
+ grounds below. Keep them in step with --prism-measure in canvas-overlay-tokens.ts and
46
46
  prism-default-theme.ts; semantic-colours.spec.ts fails if they drift. */
47
47
  [data-bg="light"] {
48
48
  background-color: var(--prism-void-light, #f7f5fc);
@@ -0,0 +1,12 @@
1
+ import type { CanvasBg } from '../../shared/canvas-bg.type.js';
2
+ /**
3
+ * The overlay tokens for a ground, bound on `.prism-canvas-wrap`. The four
4
+ * theme-following grounds get none: there the defaults in the stylesheet,
5
+ * which point at the theme, apply.
6
+ */
7
+ export declare function canvasOverlayTokens(bg: CanvasBg): Record<string, string>;
8
+ /** The zoom readout's tooltip, which also carries the viewport width the rail no longer prints. */
9
+ export declare function zoomTitle(zoom: number, viewportWidth: number | null): string;
10
+ /** A rail toggle's tooltip: the tool and whether it is on. */
11
+ export declare function railToggleTitle(label: string, on: boolean): string;
12
+ //# sourceMappingURL=canvas-overlay-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canvas-overlay-tokens.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/canvas-overlay-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAoC/D;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIxE;AAED,mGAAmG;AACnG,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAE5E;AAED,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,MAAM,CAElE"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Overlay colours for the two absolute canvas grounds.
3
+ *
4
+ * `light` and `dark` paint the same colour whatever the app theme is, so the
5
+ * tool rail, the background pill and the pin row on top of them have to follow
6
+ * the ground, not the theme: a dark rail on a light canvas under the dark theme
7
+ * is the case this exists for. The values are the theme surfaces of the matching
8
+ * theme, held to 4.5:1 for text and 3:1 for contours by the spec next to this.
9
+ * The measurement colours repeat the ground's from `CANVAS_BG_STYLES`.
10
+ */
11
+ const ON_LIGHT = {
12
+ '--prism-canvas-overlay-bg': '#ffffff',
13
+ '--prism-canvas-overlay-fg': '#0f172a',
14
+ '--prism-canvas-overlay-muted': '#334155',
15
+ '--prism-canvas-overlay-border': '#7b8aa0',
16
+ '--prism-canvas-overlay-primary': '#1d4ed8',
17
+ '--prism-canvas-overlay-active': 'color-mix(in srgb, #2563eb 10%, transparent)',
18
+ // The pin row sits on the plate outside the stage, so it needs the ground's
19
+ // measurement colour too. Same literals as CANVAS_BG_STYLES.
20
+ '--prism-measure': '#ca00c1',
21
+ '--prism-measure-plate': 'var(--prism-void-light, #f7f5fc)'
22
+ };
23
+ const ON_DARK = {
24
+ '--prism-canvas-overlay-bg': '#1a2335',
25
+ '--prism-canvas-overlay-fg': '#f1f5f9',
26
+ '--prism-canvas-overlay-muted': '#cbd5e1',
27
+ '--prism-canvas-overlay-border': '#64748b',
28
+ '--prism-canvas-overlay-primary': '#60a5fa',
29
+ '--prism-canvas-overlay-active': 'color-mix(in srgb, #60a5fa 16%, transparent)',
30
+ '--prism-measure': '#f632ff',
31
+ '--prism-measure-plate': 'var(--prism-void-dark, #07050f)'
32
+ };
33
+ /**
34
+ * The overlay tokens for a ground, bound on `.prism-canvas-wrap`. The four
35
+ * theme-following grounds get none: there the defaults in the stylesheet,
36
+ * which point at the theme, apply.
37
+ */
38
+ export function canvasOverlayTokens(bg) {
39
+ if (bg === 'light')
40
+ return ON_LIGHT;
41
+ if (bg === 'dark')
42
+ return ON_DARK;
43
+ return {};
44
+ }
45
+ /** The zoom readout's tooltip, which also carries the viewport width the rail no longer prints. */
46
+ export function zoomTitle(zoom, viewportWidth) {
47
+ return `Zoom ${Math.round(zoom * 100)}% · Width ${viewportWidth === null ? 'auto' : `${viewportWidth}px`}`;
48
+ }
49
+ /** A rail toggle's tooltip: the tool and whether it is on. */
50
+ export function railToggleTitle(label, on) {
51
+ return `${label}: ${on ? 'on' : 'off'}`;
52
+ }
@@ -27,10 +27,10 @@ export class PrismCanvasBgPillComponent {
27
27
  i0.ɵɵconditionalCreate(0, PrismCanvasBgPillComponent_Conditional_0_Template, 5, 1, "div", 0);
28
28
  } if (rf & 2) {
29
29
  i0.ɵɵconditional(ctx.visible() ? 0 : -1);
30
- } }, styles: ["\n\n\n\n\n\n[_nghost-%COMP%] {\n position: absolute;\n top: var(--%NS%prism-canvas-overlay-top, 12px);\n left: var(--%NS%prism-canvas-overlay-inline, 20px);\n z-index: 2;\n pointer-events: none;\n transition:\n top var(--%NS%dur-base),\n left var(--%NS%dur-base);\n}\n\n.prism-bg-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n padding: 4px 4px 4px 10px;\n font-family: var(--%NS%font-sans);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-text-muted);\n pointer-events: auto;\n background: color-mix(in srgb, var(--%NS%prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 999px;\n backdrop-filter: blur(8px);\n animation: _ngcontent-%COMP%_fade-in var(--%NS%dur-base) ease-out;\n}\n\n.label[_ngcontent-%COMP%] {\n letter-spacing: 0.02em;\n}\n\n.reset[_ngcontent-%COMP%] {\n height: 22px;\n padding: 0 10px;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n color: var(--%NS%prism-text);\n cursor: pointer;\n background: color-mix(in srgb, var(--%NS%prism-primary) 12%, transparent);\n border: 1px solid color-mix(in srgb, var(--%NS%prism-primary) 25%, transparent);\n border-radius: 999px;\n transition: background var(--%NS%dur-fast);\n}\n\n.reset[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-primary) 20%, transparent);\n}\n\n@keyframes _ngcontent-%COMP%_fade-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}"] });
30
+ } }, styles: ["\n\n\n\n\n\n[_nghost-%COMP%] {\n position: absolute;\n top: var(--%NS%prism-canvas-overlay-top, 12px);\n left: var(--%NS%prism-canvas-overlay-inline, 20px);\n z-index: 2;\n pointer-events: none;\n transition:\n top var(--%NS%dur-base),\n left var(--%NS%dur-base);\n}\n\n.prism-bg-pill[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n padding: 4px 4px 4px 10px;\n font-family: var(--%NS%font-sans);\n font-size: var(--%NS%fs-xs);\n color: var(--%NS%prism-canvas-overlay-muted);\n pointer-events: auto;\n background: color-mix(in srgb, var(--%NS%prism-canvas-overlay-bg) 92%, transparent);\n border: 1px solid var(--%NS%prism-canvas-overlay-border);\n border-radius: 999px;\n backdrop-filter: blur(8px);\n animation: _ngcontent-%COMP%_fade-in var(--%NS%dur-base) ease-out;\n}\n\n.label[_ngcontent-%COMP%] {\n letter-spacing: 0.02em;\n}\n\n.reset[_ngcontent-%COMP%] {\n height: 22px;\n padding: 0 10px;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n color: var(--%NS%prism-canvas-overlay-fg);\n cursor: pointer;\n background: var(--%NS%prism-canvas-overlay-active);\n border: 1px solid color-mix(in srgb, var(--%NS%prism-canvas-overlay-primary) 45%, transparent);\n border-radius: 999px;\n transition: background var(--%NS%dur-fast);\n}\n\n.reset[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-canvas-overlay-primary) 22%, transparent);\n}\n\n@keyframes _ngcontent-%COMP%_fade-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}"] });
31
31
  }
32
32
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismCanvasBgPillComponent, [{
33
33
  type: Component,
34
- args: [{ selector: 'prism-canvas-bg-pill', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (visible()) {\n <div class=\"prism-bg-pill\">\n <span class=\"label\">Recommended: {{ recommended() }}</span>\n <button\n type=\"button\"\n class=\"reset\"\n title=\"Reset to recommended background\"\n aria-label=\"Reset to recommended background\"\n (click)=\"reset()\">\n Reset\n </button>\n </div>\n}\n", styles: ["/* Top left, opposite the tool rail. Both used to claim the right corner and\n the rail won, hiding a notice whose whole job is to be noticed. The rail\n is permanent and the notice is not, so the permanent thing keeps the\n corner it sits in and this moves. Nothing else occupies the left corner:\n the zoom badge that used to live here was a duplicate of the readout the\n rail carries. */\n:host {\n position: absolute;\n top: var(--prism-canvas-overlay-top, 12px);\n left: var(--prism-canvas-overlay-inline, 20px);\n z-index: 2;\n pointer-events: none;\n transition:\n top var(--dur-base),\n left var(--dur-base);\n}\n\n.prism-bg-pill {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n padding: 4px 4px 4px 10px;\n font-family: var(--font-sans);\n font-size: var(--fs-xs);\n color: var(--prism-text-muted);\n pointer-events: auto;\n background: color-mix(in srgb, var(--prism-bg-elevated) 90%, transparent);\n border: 1px solid var(--prism-border);\n border-radius: 999px;\n backdrop-filter: blur(8px);\n animation: fade-in var(--dur-base) ease-out;\n}\n\n.label {\n letter-spacing: 0.02em;\n}\n\n.reset {\n height: 22px;\n padding: 0 10px;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n color: var(--prism-text);\n cursor: pointer;\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n border: 1px solid color-mix(in srgb, var(--prism-primary) 25%, transparent);\n border-radius: 999px;\n transition: background var(--dur-fast);\n}\n\n.reset:hover {\n background: color-mix(in srgb, var(--prism-primary) 20%, transparent);\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n"] }]
34
+ args: [{ selector: 'prism-canvas-bg-pill', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (visible()) {\n <div class=\"prism-bg-pill\">\n <span class=\"label\">Recommended: {{ recommended() }}</span>\n <button\n type=\"button\"\n class=\"reset\"\n title=\"Reset to recommended background\"\n aria-label=\"Reset to recommended background\"\n (click)=\"reset()\">\n Reset\n </button>\n </div>\n}\n", styles: ["/* Top left, opposite the tool rail. Both used to claim the right corner and\n the rail won, hiding a notice whose whole job is to be noticed. The rail\n is permanent and the notice is not, so the permanent thing keeps the\n corner it sits in and this moves. Nothing else occupies the left corner:\n the zoom badge that used to live here was a duplicate of the readout the\n rail carries. */\n:host {\n position: absolute;\n top: var(--prism-canvas-overlay-top, 12px);\n left: var(--prism-canvas-overlay-inline, 20px);\n z-index: 2;\n pointer-events: none;\n transition:\n top var(--dur-base),\n left var(--dur-base);\n}\n\n.prism-bg-pill {\n display: inline-flex;\n gap: 8px;\n align-items: center;\n padding: 4px 4px 4px 10px;\n font-family: var(--font-sans);\n font-size: var(--fs-xs);\n color: var(--prism-canvas-overlay-muted);\n pointer-events: auto;\n background: color-mix(in srgb, var(--prism-canvas-overlay-bg) 92%, transparent);\n border: 1px solid var(--prism-canvas-overlay-border);\n border-radius: 999px;\n backdrop-filter: blur(8px);\n animation: fade-in var(--dur-base) ease-out;\n}\n\n.label {\n letter-spacing: 0.02em;\n}\n\n.reset {\n height: 22px;\n padding: 0 10px;\n font-family: inherit;\n font-size: inherit;\n font-weight: 500;\n color: var(--prism-canvas-overlay-fg);\n cursor: pointer;\n background: var(--prism-canvas-overlay-active);\n border: 1px solid color-mix(in srgb, var(--prism-canvas-overlay-primary) 45%, transparent);\n border-radius: 999px;\n transition: background var(--dur-fast);\n}\n\n.reset:hover {\n background: color-mix(in srgb, var(--prism-canvas-overlay-primary) 22%, transparent);\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n transform: translateY(-4px);\n }\n\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n"] }]
35
35
  }], null, null); })();
36
36
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismCanvasBgPillComponent, { className: "PrismCanvasBgPillComponent", filePath: "app/canvas/prism-canvas-bg-pill.component.ts", lineNumber: 11 }); })();
@@ -55,10 +55,10 @@ export class PrismCanvasPinRowComponent {
55
55
  i0.ɵɵconditionalCreate(0, PrismCanvasPinRowComponent_Conditional_0_Template, 3, 0, "div", 0);
56
56
  } if (rf & 2) {
57
57
  i0.ɵɵconditional(ctx.chips().length > 0 ? 0 : -1);
58
- } }, dependencies: [PrismIconComponent], styles: [".pin-row[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--%NS%sp-2);\n align-items: center;\n padding: var(--%NS%sp-2) var(--%NS%sp-3);\n overflow-x: auto;\n background: var(--%NS%prism-bg-surface);\n border-top: 1px solid var(--%NS%prism-border);\n}\n\n.pin-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: var(--%NS%sp-1);\n align-items: center;\n padding: var(--%NS%sp-1) var(--%NS%sp-2);\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-measure);\n white-space: nowrap;\n border: 1px solid var(--%NS%prism-border-strong);\n border-radius: var(--%NS%radius-xs);\n}\n\n.pin-chip__x[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n padding: 0;\n color: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n opacity: 0.6;\n}\n\n.pin-chip__x[_ngcontent-%COMP%]:hover, \n.pin-chip__x[_ngcontent-%COMP%]:focus-visible {\n opacity: 1;\n}"] });
58
+ } }, dependencies: [PrismIconComponent], styles: [".pin-row[_ngcontent-%COMP%] {\n display: flex;\n gap: var(--%NS%sp-2);\n align-items: center;\n padding: var(--%NS%sp-2) var(--%NS%sp-3);\n overflow-x: auto;\n background: var(--%NS%prism-canvas-overlay-bg);\n border-top: 1px solid var(--%NS%prism-border);\n}\n\n.pin-chip[_ngcontent-%COMP%] {\n display: inline-flex;\n gap: var(--%NS%sp-1);\n align-items: center;\n padding: var(--%NS%sp-1) var(--%NS%sp-2);\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-measure);\n white-space: nowrap;\n border: 1px solid var(--%NS%prism-canvas-overlay-border);\n border-radius: var(--%NS%radius-xs);\n}\n\n.pin-chip__x[_ngcontent-%COMP%] {\n display: grid;\n place-items: center;\n padding: 0;\n color: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n opacity: 0.6;\n}\n\n.pin-chip__x[_ngcontent-%COMP%]:hover, \n.pin-chip__x[_ngcontent-%COMP%]:focus-visible {\n opacity: 1;\n}"] });
59
59
  }
60
60
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismCanvasPinRowComponent, [{
61
61
  type: Component,
62
- args: [{ selector: 'prism-canvas-pin-row', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "@if (chips().length > 0) {\n <div\n class=\"pin-row\"\n role=\"group\"\n aria-label=\"Pinned measurements\">\n @for (chip of chips(); track $index) {\n <span class=\"pin-chip\">\n {{ chip }}\n <button\n type=\"button\"\n class=\"pin-chip__x\"\n (click)=\"remove($index)\"\n [attr.aria-label]=\"'Remove measurement ' + chip\">\n <prism-icon\n name=\"x\"\n [size]=\"10\" />\n </button>\n </span>\n }\n </div>\n}\n", styles: [".pin-row {\n display: flex;\n gap: var(--sp-2);\n align-items: center;\n padding: var(--sp-2) var(--sp-3);\n overflow-x: auto;\n background: var(--prism-bg-surface);\n border-top: 1px solid var(--prism-border);\n}\n\n.pin-chip {\n display: inline-flex;\n gap: var(--sp-1);\n align-items: center;\n padding: var(--sp-1) var(--sp-2);\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n font-variant-numeric: tabular-nums;\n color: var(--prism-measure);\n white-space: nowrap;\n border: 1px solid var(--prism-border-strong);\n border-radius: var(--radius-xs);\n}\n\n.pin-chip__x {\n display: grid;\n place-items: center;\n padding: 0;\n color: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n opacity: 0.6;\n}\n\n.pin-chip__x:hover,\n.pin-chip__x:focus-visible {\n opacity: 1;\n}\n"] }]
62
+ args: [{ selector: 'prism-canvas-pin-row', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "@if (chips().length > 0) {\n <div\n class=\"pin-row\"\n role=\"group\"\n aria-label=\"Pinned measurements\">\n @for (chip of chips(); track $index) {\n <span class=\"pin-chip\">\n {{ chip }}\n <button\n type=\"button\"\n class=\"pin-chip__x\"\n (click)=\"remove($index)\"\n [attr.aria-label]=\"'Remove measurement ' + chip\">\n <prism-icon\n name=\"x\"\n [size]=\"10\" />\n </button>\n </span>\n }\n </div>\n}\n", styles: [".pin-row {\n display: flex;\n gap: var(--sp-2);\n align-items: center;\n padding: var(--sp-2) var(--sp-3);\n overflow-x: auto;\n background: var(--prism-canvas-overlay-bg);\n border-top: 1px solid var(--prism-border);\n}\n\n.pin-chip {\n display: inline-flex;\n gap: var(--sp-1);\n align-items: center;\n padding: var(--sp-1) var(--sp-2);\n font-family: var(--font-mono);\n font-size: var(--fs-xs);\n font-variant-numeric: tabular-nums;\n color: var(--prism-measure);\n white-space: nowrap;\n border: 1px solid var(--prism-canvas-overlay-border);\n border-radius: var(--radius-xs);\n}\n\n.pin-chip__x {\n display: grid;\n place-items: center;\n padding: 0;\n color: inherit;\n cursor: pointer;\n background: none;\n border: 0;\n opacity: 0.6;\n}\n\n.pin-chip__x:hover,\n.pin-chip__x:focus-visible {\n opacity: 1;\n}\n"] }]
63
63
  }], null, null); })();
64
64
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismCanvasPinRowComponent, { className: "PrismCanvasPinRowComponent", filePath: "app/canvas/prism-canvas-pin-row.component.ts", lineNumber: 28 }); })();
@@ -4,6 +4,8 @@ export declare class PrismCanvasRulersComponent {
4
4
  protected readonly rulerSize = "20px";
5
5
  protected readonly canvas: PrismCanvasService;
6
6
  private readonly themeService;
7
+ private readonly variantBg;
8
+ private readonly host;
7
9
  private readonly rulerTop;
8
10
  private readonly rulerLeft;
9
11
  private ro;
@@ -1 +1 @@
1
- {"version":3,"file":"prism-canvas-rulers.component.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/prism-canvas-rulers.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;;AAKzE,qBAWa,0BAA0B;IACnC,SAAS,CAAC,QAAQ,CAAC,SAAS,UAAY;IAExC,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAE1D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwD;IACjF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyD;IAEnF,OAAO,CAAC,EAAE,CAA+B;;IAsBzC,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,MAAM;IAgEd,OAAO,CAAC,MAAM;yCA7GL,0BAA0B;2CAA1B,0BAA0B;CAgLtC"}
1
+ {"version":3,"file":"prism-canvas-rulers.component.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/prism-canvas-rulers.component.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;;AAMzE,qBAWa,0BAA0B;IACnC,SAAS,CAAC,QAAQ,CAAC,SAAS,UAAY;IAExC,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiC;IAC3D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+C;IAEpE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwD;IACjF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyD;IAEnF,OAAO,CAAC,EAAE,CAA+B;;IAwBzC,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,MAAM;IAgEd,OAAO,CAAC,MAAM;yCAjHL,0BAA0B;2CAA1B,0BAA0B;CAoLtC"}
@@ -1,6 +1,7 @@
1
- import { ChangeDetectionStrategy, Component, effect, inject, viewChild } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, effect, ElementRef, inject, viewChild } from '@angular/core';
2
2
  import { PrismCanvasService } from '../services/prism-canvas.service.js';
3
3
  import { PrismThemeService } from '../services/prism-theme.service.js';
4
+ import { PrismVariantBgService } from '../services/prism-variant-bg.service.js';
4
5
  import * as i0 from "@angular/core";
5
6
  const _c0 = ["rulerTop"];
6
7
  const _c1 = ["rulerLeft"];
@@ -14,6 +15,8 @@ export class PrismCanvasRulersComponent {
14
15
  rulerSize = `${R}px`;
15
16
  canvas = inject(PrismCanvasService);
16
17
  themeService = inject(PrismThemeService);
18
+ variantBg = inject(PrismVariantBgService);
19
+ host = inject(ElementRef);
17
20
  rulerTop = viewChild('rulerTop', /* @ts-ignore */
18
21
  ...(ngDevMode ? [{ debugName: "rulerTop" }] : /* istanbul ignore next */ []));
19
22
  rulerLeft = viewChild('rulerLeft', /* @ts-ignore */
@@ -24,6 +27,8 @@ export class PrismCanvasRulersComponent {
24
27
  const show = this.canvas.rulers();
25
28
  const zoom = this.canvas.zoom();
26
29
  this.themeService.theme();
30
+ // The rulers sit on the canvas, so they follow its ground, not the theme.
31
+ this.variantBg.effective();
27
32
  if (!show) {
28
33
  this.ro?.disconnect();
29
34
  this.ro = null;
@@ -64,10 +69,10 @@ export class PrismCanvasRulersComponent {
64
69
  el.style.height = h + 'px';
65
70
  const ctx = el.getContext('2d');
66
71
  ctx.scale(dpr, dpr);
67
- const cs = getComputedStyle(document.documentElement);
68
- const bg = cs.getPropertyValue('--prism-bg').trim() || '#0d0b1c';
69
- const fg = cs.getPropertyValue('--prism-text-ghost').trim() || '#6a5d87';
70
- const border = cs.getPropertyValue('--prism-border').trim() || 'rgba(255,255,255,0.08)';
72
+ const cs = getComputedStyle(this.host.nativeElement);
73
+ const bg = cs.getPropertyValue('--prism-canvas-overlay-bg').trim() || '#1a2335';
74
+ const fg = cs.getPropertyValue('--prism-canvas-overlay-muted').trim() || '#cbd5e1';
75
+ const border = cs.getPropertyValue('--prism-border').trim() || '#1f2b3e';
71
76
  ctx.fillStyle = bg;
72
77
  ctx.fillRect(0, 0, w, h);
73
78
  ctx.strokeStyle = border;
@@ -113,10 +118,10 @@ export class PrismCanvasRulersComponent {
113
118
  el.style.height = h + 'px';
114
119
  const ctx = el.getContext('2d');
115
120
  ctx.scale(dpr, dpr);
116
- const cs = getComputedStyle(document.documentElement);
117
- const bg = cs.getPropertyValue('--prism-bg').trim() || '#0d0b1c';
118
- const fg = cs.getPropertyValue('--prism-text-ghost').trim() || '#6a5d87';
119
- const border = cs.getPropertyValue('--prism-border').trim() || 'rgba(255,255,255,0.08)';
121
+ const cs = getComputedStyle(this.host.nativeElement);
122
+ const bg = cs.getPropertyValue('--prism-canvas-overlay-bg').trim() || '#1a2335';
123
+ const fg = cs.getPropertyValue('--prism-canvas-overlay-muted').trim() || '#cbd5e1';
124
+ const border = cs.getPropertyValue('--prism-border').trim() || '#1f2b3e';
120
125
  ctx.fillStyle = bg;
121
126
  ctx.fillRect(0, 0, w, h);
122
127
  ctx.strokeStyle = border;
@@ -161,13 +166,13 @@ export class PrismCanvasRulersComponent {
161
166
  i0.ɵɵconditionalCreate(0, PrismCanvasRulersComponent_Conditional_0_Template, 6, 0, "div", 2);
162
167
  } if (rf & 2) {
163
168
  i0.ɵɵconditional(ctx.canvas.rulers() ? 0 : -1);
164
- } }, styles: ["\n\n\n[_nghost-%COMP%] {\n display: contents;\n}\n\n.ruler-wrap[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n z-index: 4;\n overflow: hidden;\n pointer-events: none;\n}\n\n.ruler[_ngcontent-%COMP%] {\n position: absolute;\n}\n\n.ruler--top[_ngcontent-%COMP%] {\n top: 0;\n right: 0;\n left: var(--%NS%prism-ruler-size);\n height: var(--%NS%prism-ruler-size);\n}\n\n.ruler--left[_ngcontent-%COMP%] {\n top: var(--%NS%prism-ruler-size);\n bottom: 0;\n left: 0;\n width: var(--%NS%prism-ruler-size);\n}\n\n.ruler-corner[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n width: var(--%NS%prism-ruler-size);\n height: var(--%NS%prism-ruler-size);\n background: var(--%NS%prism-bg);\n border-right: 1px solid var(--%NS%prism-border);\n border-bottom: 1px solid var(--%NS%prism-border);\n}"] });
169
+ } }, styles: ["\n\n\n[_nghost-%COMP%] {\n display: contents;\n}\n\n.ruler-wrap[_ngcontent-%COMP%] {\n position: absolute;\n inset: 0;\n z-index: 4;\n overflow: hidden;\n pointer-events: none;\n}\n\n.ruler[_ngcontent-%COMP%] {\n position: absolute;\n}\n\n.ruler--top[_ngcontent-%COMP%] {\n top: 0;\n right: 0;\n left: var(--%NS%prism-ruler-size);\n height: var(--%NS%prism-ruler-size);\n}\n\n.ruler--left[_ngcontent-%COMP%] {\n top: var(--%NS%prism-ruler-size);\n bottom: 0;\n left: 0;\n width: var(--%NS%prism-ruler-size);\n}\n\n.ruler-corner[_ngcontent-%COMP%] {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n width: var(--%NS%prism-ruler-size);\n height: var(--%NS%prism-ruler-size);\n background: var(--%NS%prism-canvas-overlay-bg);\n border-right: 1px solid var(--%NS%prism-border);\n border-bottom: 1px solid var(--%NS%prism-border);\n}"] });
165
170
  }
166
171
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismCanvasRulersComponent, [{
167
172
  type: Component,
168
- args: [{ selector: 'prism-canvas-rulers', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[style.--prism-ruler-size]': 'rulerSize' }, template: "@if (canvas.rulers()) {\n <div class=\"ruler-wrap\">\n <canvas\n #rulerTop\n class=\"ruler ruler--top\"></canvas>\n <canvas\n #rulerLeft\n class=\"ruler ruler--left\"></canvas>\n <div class=\"ruler-corner\"></div>\n </div>\n}\n", styles: ["/* --prism-ruler-size is bound from the host rather than declared here. The\n gutter width is also the canvas size the two rulers are painted at, so R in\n the component is the one place it may be written down. */\n:host {\n display: contents;\n}\n\n.ruler-wrap {\n position: absolute;\n inset: 0;\n z-index: 4;\n overflow: hidden;\n pointer-events: none;\n}\n\n.ruler {\n position: absolute;\n}\n\n.ruler--top {\n top: 0;\n right: 0;\n left: var(--prism-ruler-size);\n height: var(--prism-ruler-size);\n}\n\n.ruler--left {\n top: var(--prism-ruler-size);\n bottom: 0;\n left: 0;\n width: var(--prism-ruler-size);\n}\n\n.ruler-corner {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n width: var(--prism-ruler-size);\n height: var(--prism-ruler-size);\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n border-bottom: 1px solid var(--prism-border);\n}\n"] }]
173
+ args: [{ selector: 'prism-canvas-rulers', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { '[style.--prism-ruler-size]': 'rulerSize' }, template: "@if (canvas.rulers()) {\n <div class=\"ruler-wrap\">\n <canvas\n #rulerTop\n class=\"ruler ruler--top\"></canvas>\n <canvas\n #rulerLeft\n class=\"ruler ruler--left\"></canvas>\n <div class=\"ruler-corner\"></div>\n </div>\n}\n", styles: ["/* --prism-ruler-size is bound from the host rather than declared here. The\n gutter width is also the canvas size the two rulers are painted at, so R in\n the component is the one place it may be written down. */\n:host {\n display: contents;\n}\n\n.ruler-wrap {\n position: absolute;\n inset: 0;\n z-index: 4;\n overflow: hidden;\n pointer-events: none;\n}\n\n.ruler {\n position: absolute;\n}\n\n.ruler--top {\n top: 0;\n right: 0;\n left: var(--prism-ruler-size);\n height: var(--prism-ruler-size);\n}\n\n.ruler--left {\n top: var(--prism-ruler-size);\n bottom: 0;\n left: 0;\n width: var(--prism-ruler-size);\n}\n\n.ruler-corner {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1;\n width: var(--prism-ruler-size);\n height: var(--prism-ruler-size);\n background: var(--prism-canvas-overlay-bg);\n border-right: 1px solid var(--prism-border);\n border-bottom: 1px solid var(--prism-border);\n}\n"] }]
169
174
  }], () => [], { rulerTop: [{ type: i0.ViewChild, args: ['rulerTop', { isSignal: true }] }], rulerLeft: [{ type: i0.ViewChild, args: ['rulerLeft', { isSignal: true }] }] }); })();
170
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismCanvasRulersComponent, { className: "PrismCanvasRulersComponent", filePath: "app/canvas/prism-canvas-rulers.component.ts", lineNumber: 18 }); })();
175
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismCanvasRulersComponent, { className: "PrismCanvasRulersComponent", filePath: "app/canvas/prism-canvas-rulers.component.ts", lineNumber: 19 }); })();
171
176
  function stepFor(zoom) {
172
177
  if (zoom >= 2)
173
178
  return 10;
@@ -11,8 +11,7 @@ import * as i0 from "@angular/core";
11
11
  * Things you toggle constantly (guides, rulers, the viewport constraint) get
12
12
  * their own button; things you set once (background, forced state, zoom,
13
13
  * viewport width) live in the menu. The template is a view rather than a setting and keeps its own
14
- * button. Zoom and the active viewport width are shown as readouts; the width
15
- * only appears while the viewport constraint is on.
14
+ * button. Zoom is shown as a readout, with the viewport width in its tooltip.
16
15
  *
17
16
  * The host generates no box. The rail must be a direct child of
18
17
  * `.prism-canvas-wrap` outside the stage, because that is what capture mode's
@@ -53,6 +52,8 @@ export declare class PrismCanvasToolbarComponent {
53
52
  protected pickState(chip: StateChip): void;
54
53
  /** Angular templates resolve names against the component, not the global scope. */
55
54
  protected readonly Math: Math;
55
+ protected readonly zoomTitle: import("@angular/core").Signal<string>;
56
+ protected railTitle(label: string, on: boolean): string;
56
57
  protected setBg(bg: CanvasBg): void;
57
58
  /**
58
59
  * Every {@link CanvasBg}, taken from the type's canonical list.
@@ -1 +1 @@
1
- {"version":3,"file":"prism-canvas-toolbar.component.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/prism-canvas-toolbar.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAIpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAChF,OAAO,EAAgD,KAAK,SAAS,EAAe,MAAM,kBAAkB,CAAC;;AAE7G;;;;;;;;;;;;;;GAcG;AACH,qBAQa,2BAA2B;IACpC,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IACvD,SAAS,CAAC,QAAQ,CAAC,SAAS,wBAAiC;IAC7D,SAAS,CAAC,QAAQ,CAAC,WAAW,0BAAmC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IAEzD;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,yBAAiB;IAE1C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAIhD,iIAAiI;IACjI,OAAO,CAAC,UAAU;IAQlB,+HAA+H;IAC/H,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiH;IAEhJ,sIAAsI;IACtI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwF;IAE7G,SAAS,CAAC,QAAQ,CAAC,KAAK,8CAAsH;;IAwB9I,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI1C,mFAAmF;IACnF,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAQ;IAE/B,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAQnC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,sBAAc;IAEpC;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAY9C,SAAS,CAAC,QAAQ,CAAC,KAAK;;;QAKtB;IAEF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,oBAAkB;IAE9C,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;yCApI9B,2BAA2B;2CAA3B,2BAA2B;CAuIvC"}
1
+ {"version":3,"file":"prism-canvas-toolbar.component.d.ts","sourceRoot":"","sources":["../../../src/app/canvas/prism-canvas-toolbar.component.ts"],"names":[],"mappings":"AAEA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAiB,KAAK,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAIpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAEzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAGhF,OAAO,EAAgD,KAAK,SAAS,EAAe,MAAM,kBAAkB,CAAC;;AAE7G;;;;;;;;;;;;;GAaG;AACH,qBAQa,2BAA2B;IACpC,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IACvD,SAAS,CAAC,QAAQ,CAAC,SAAS,wBAAiC;IAC7D,SAAS,CAAC,QAAQ,CAAC,WAAW,0BAAmC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgC;IAEzD;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,MAAM,yBAAiB;IAE1C,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAIhD,iIAAiI;IACjI,OAAO,CAAC,UAAU;IAQlB,+HAA+H;IAC/H,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiH;IAEhJ,sIAAsI;IACtI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAE7B;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwF;IAE7G,SAAS,CAAC,QAAQ,CAAC,KAAK,8CAAsH;;IAwB9I,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI1C,mFAAmF;IACnF,SAAS,CAAC,QAAQ,CAAC,IAAI,OAAQ;IAE/B,SAAS,CAAC,QAAQ,CAAC,SAAS,yCAA8E;IAE1G,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,MAAM;IAIvD,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI;IAQnC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,QAAQ,CAAC,GAAG,sBAAc;IAEpC;;;;;;;OAOG;IACH,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAY9C,SAAS,CAAC,QAAQ,CAAC,KAAK;;;QAKtB;IAEF;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,oBAAkB;IAE9C,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;yCA1I9B,2BAA2B;2CAA3B,2BAA2B;CA6IvC"}