@ng-prism/core 22.2.1 → 22.3.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 (292) hide show
  1. package/README.md +22 -24
  2. package/builders.json +11 -11
  3. package/dist/app/canvas/canvas-bg.styles.d.ts +1 -1
  4. package/dist/app/canvas/canvas-bg.styles.d.ts.map +1 -1
  5. package/dist/app/canvas/canvas-bg.styles.js +17 -0
  6. package/dist/app/canvas/prism-canvas-bg-pill.component.d.ts.map +1 -1
  7. package/dist/app/canvas/prism-canvas-bg-pill.component.js +3 -18
  8. package/dist/app/canvas/prism-canvas-rulers.component.d.ts +1 -0
  9. package/dist/app/canvas/prism-canvas-rulers.component.d.ts.map +1 -1
  10. package/dist/app/canvas/prism-canvas-rulers.component.js +9 -14
  11. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts +23 -6
  12. package/dist/app/canvas/prism-canvas-toolbar.component.d.ts.map +1 -1
  13. package/dist/app/canvas/prism-canvas-toolbar.component.js +110 -140
  14. package/dist/app/canvas/prism-template-popover.component.d.ts.map +1 -1
  15. package/dist/app/canvas/prism-template-popover.component.js +8 -49
  16. package/dist/app/canvas/viewport-snap.d.ts +12 -0
  17. package/dist/app/canvas/viewport-snap.d.ts.map +1 -0
  18. package/dist/app/canvas/viewport-snap.js +23 -0
  19. package/dist/app/component-head/head-metrics.d.ts.map +1 -1
  20. package/dist/app/component-head/head-metrics.js +2 -2
  21. package/dist/app/component-head/prism-component-head.component.d.ts +1 -1
  22. package/dist/app/component-head/prism-component-head.component.d.ts.map +1 -1
  23. package/dist/app/component-head/prism-component-head.component.js +17 -50
  24. package/dist/app/component-head/prism-head-gauge.component.d.ts.map +1 -1
  25. package/dist/app/component-head/prism-head-gauge.component.js +4 -36
  26. package/dist/app/component-head/prism-head-info.component.d.ts.map +1 -1
  27. package/dist/app/component-head/prism-head-info.component.js +3 -36
  28. package/dist/app/component-head/prism-stat.component.d.ts.map +1 -1
  29. package/dist/app/component-head/prism-stat.component.js +3 -14
  30. package/dist/app/controls/boolean-control.component.d.ts.map +1 -1
  31. package/dist/app/controls/boolean-control.component.js +4 -12
  32. package/dist/app/controls/json-control.component.d.ts.map +1 -1
  33. package/dist/app/controls/json-control.component.js +4 -24
  34. package/dist/app/controls/number-control.component.d.ts.map +1 -1
  35. package/dist/app/controls/number-control.component.js +4 -11
  36. package/dist/app/controls/string-control.component.d.ts.map +1 -1
  37. package/dist/app/controls/string-control.component.js +4 -11
  38. package/dist/app/controls/union-control.component.d.ts.map +1 -1
  39. package/dist/app/controls/union-control.component.js +4 -16
  40. package/dist/app/directives/prism-resizer.directive.d.ts +24 -1
  41. package/dist/app/directives/prism-resizer.directive.d.ts.map +1 -1
  42. package/dist/app/directives/prism-resizer.directive.js +44 -7
  43. package/dist/app/directives/resize-value.d.ts +22 -0
  44. package/dist/app/directives/resize-value.d.ts.map +1 -0
  45. package/dist/app/directives/resize-value.js +23 -0
  46. package/dist/app/discovery-manifest.d.ts.map +1 -1
  47. package/dist/app/discovery-manifest.js +5 -7
  48. package/dist/app/header/prism-header-widget-host.component.d.ts.map +1 -1
  49. package/dist/app/header/prism-header-widget-host.component.js +4 -8
  50. package/dist/app/header/prism-header.component.d.ts.map +1 -1
  51. package/dist/app/header/prism-header.component.js +8 -77
  52. package/dist/app/hmr.d.ts.map +1 -1
  53. package/dist/app/icons/icon-registry.d.ts.map +1 -1
  54. package/dist/app/icons/icon-registry.js +2 -1
  55. package/dist/app/icons/prism-icon.component.d.ts.map +1 -1
  56. package/dist/app/icons/prism-icon.component.js +5 -5
  57. package/dist/app/index.d.ts +3 -3
  58. package/dist/app/index.d.ts.map +1 -1
  59. package/dist/app/index.js +3 -3
  60. package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -1
  61. package/dist/app/layout-menu/prism-layout-menu.component.js +3 -77
  62. package/dist/app/overview/overview-panel.js +1 -1
  63. package/dist/app/overview/overview-visibility.d.ts.map +1 -1
  64. package/dist/app/overview/prism-overview-cell.component.d.ts.map +1 -1
  65. package/dist/app/overview/prism-overview-cell.component.js +10 -17
  66. package/dist/app/overview/prism-overview.component.d.ts.map +1 -1
  67. package/dist/app/overview/prism-overview.component.js +4 -12
  68. package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -1
  69. package/dist/app/page-renderer/prism-page-renderer.component.js +4 -17
  70. package/dist/app/panels/a11y/a11y-audit.service.d.ts.map +1 -1
  71. package/dist/app/panels/a11y/a11y-audit.service.js +14 -2
  72. package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -1
  73. package/dist/app/panels/a11y/a11y-core.plugin.js +1 -1
  74. package/dist/app/panels/a11y/a11y-dom-utils.d.ts.map +1 -1
  75. package/dist/app/panels/a11y/a11y-dom-utils.js +9 -6
  76. package/dist/app/panels/a11y/a11y-header-badge.component.d.ts.map +1 -1
  77. package/dist/app/panels/a11y/a11y-header-badge.component.js +6 -22
  78. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.d.ts.map +1 -1
  79. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +6 -25
  80. package/dist/app/panels/a11y/a11y-keyboard.component.d.ts.map +1 -1
  81. package/dist/app/panels/a11y/a11y-keyboard.component.js +5 -36
  82. package/dist/app/panels/a11y/a11y-keyboard.service.d.ts.map +1 -1
  83. package/dist/app/panels/a11y/a11y-keyboard.service.js +2 -2
  84. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -1
  85. package/dist/app/panels/a11y/a11y-overlay-host.component.js +5 -32
  86. package/dist/app/panels/a11y/a11y-panel-state.service.d.ts.map +1 -1
  87. package/dist/app/panels/a11y/a11y-panel.component.d.ts +1 -1
  88. package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -1
  89. package/dist/app/panels/a11y/a11y-panel.component.js +7 -69
  90. package/dist/app/panels/a11y/a11y-perspective.service.d.ts.map +1 -1
  91. package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -1
  92. package/dist/app/panels/a11y/a11y-score.component.js +4 -31
  93. package/dist/app/panels/a11y/a11y-sr-overlay.component.d.ts.map +1 -1
  94. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +8 -28
  95. package/dist/app/panels/a11y/a11y-sr.component.d.ts.map +1 -1
  96. package/dist/app/panels/a11y/a11y-sr.component.js +5 -28
  97. package/dist/app/panels/a11y/a11y-sr.service.d.ts.map +1 -1
  98. package/dist/app/panels/a11y/a11y-sr.service.js +4 -7
  99. package/dist/app/panels/a11y/a11y-summary.d.ts.map +1 -1
  100. package/dist/app/panels/a11y/a11y-summary.js +2 -5
  101. package/dist/app/panels/a11y/a11y-thresholds.d.ts.map +1 -1
  102. package/dist/app/panels/a11y/a11y-thresholds.js +1 -1
  103. package/dist/app/panels/a11y/a11y-tree.component.d.ts.map +1 -1
  104. package/dist/app/panels/a11y/a11y-tree.component.js +9 -46
  105. package/dist/app/panels/a11y/a11y-tree.service.d.ts.map +1 -1
  106. package/dist/app/panels/a11y/a11y-tree.service.js +3 -5
  107. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -1
  108. package/dist/app/panels/a11y/a11y-violations.component.js +7 -58
  109. package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -1
  110. package/dist/app/panels/builtin-header-widgets.js +2 -2
  111. package/dist/app/panels/builtin-navigation-decorations.d.ts.map +1 -1
  112. package/dist/app/panels/builtin-navigation-decorations.js +2 -2
  113. package/dist/app/panels/builtin-panels.d.ts.map +1 -1
  114. package/dist/app/panels/builtin-panels.js +2 -7
  115. package/dist/app/panels/controls/controls-plugin.js +3 -3
  116. package/dist/app/panels/controls/non-editable-input-types.d.ts.map +1 -1
  117. package/dist/app/panels/controls/non-editable-input-types.js +1 -5
  118. package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -1
  119. package/dist/app/panels/controls/prism-controls-panel.component.js +5 -95
  120. package/dist/app/panels/events/events-plugin.js +3 -3
  121. package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -1
  122. package/dist/app/panels/events/prism-events-panel.component.js +5 -23
  123. package/dist/app/panels/events/prism-json-node.component.d.ts.map +1 -1
  124. package/dist/app/panels/events/prism-json-node.component.js +4 -86
  125. package/dist/app/panels/events/prism-json-node.utils.d.ts.map +1 -1
  126. package/dist/app/panels/panel-host/panel-badge.d.ts.map +1 -1
  127. package/dist/app/panels/panel-host/panel-badge.js +2 -4
  128. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +1 -1
  129. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -1
  130. package/dist/app/panels/panel-host/prism-panel-host.component.js +12 -67
  131. package/dist/app/provide-prism.d.ts +1 -1
  132. package/dist/app/provide-prism.d.ts.map +1 -1
  133. package/dist/app/provide-prism.js +7 -11
  134. package/dist/app/renderer/known-inputs.d.ts.map +1 -1
  135. package/dist/app/renderer/overlay-resolver.d.ts.map +1 -1
  136. package/dist/app/renderer/overlay-resolver.js +1 -1
  137. package/dist/app/renderer/prism-renderer.component.d.ts +27 -2
  138. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -1
  139. package/dist/app/renderer/prism-renderer.component.js +94 -76
  140. package/dist/app/renderer/projectable-content.d.ts.map +1 -1
  141. package/dist/app/renderer/projectable-content.js +1 -3
  142. package/dist/app/renderer/snippet-generator.d.ts +1 -1
  143. package/dist/app/renderer/snippet-generator.d.ts.map +1 -1
  144. package/dist/app/renderer/snippet-generator.js +7 -22
  145. package/dist/app/services/navigation-item.types.d.ts +1 -1
  146. package/dist/app/services/navigation-item.types.d.ts.map +1 -1
  147. package/dist/app/services/prism-canvas.service.d.ts +22 -0
  148. package/dist/app/services/prism-canvas.service.d.ts.map +1 -1
  149. package/dist/app/services/prism-canvas.service.js +49 -2
  150. package/dist/app/services/prism-capture.service.d.ts.map +1 -1
  151. package/dist/app/services/prism-capture.service.js +2 -6
  152. package/dist/app/services/prism-event-log.service.d.ts.map +1 -1
  153. package/dist/app/services/prism-event-log.service.js +1 -4
  154. package/dist/app/services/prism-layout.service.d.ts.map +1 -1
  155. package/dist/app/services/prism-layout.service.js +5 -4
  156. package/dist/app/services/prism-manifest.service.d.ts +1 -1
  157. package/dist/app/services/prism-manifest.service.d.ts.map +1 -1
  158. package/dist/app/services/prism-manifest.service.js +1 -1
  159. package/dist/app/services/prism-navigation.service.d.ts +1 -1
  160. package/dist/app/services/prism-navigation.service.d.ts.map +1 -1
  161. package/dist/app/services/prism-navigation.service.js +5 -13
  162. package/dist/app/services/prism-panel.service.d.ts.map +1 -1
  163. package/dist/app/services/prism-panel.service.js +2 -5
  164. package/dist/app/services/prism-persistence.service.d.ts.map +1 -1
  165. package/dist/app/services/prism-persistence.service.js +8 -10
  166. package/dist/app/services/prism-plugin.service.d.ts.map +1 -1
  167. package/dist/app/services/prism-renderer.service.d.ts.map +1 -1
  168. package/dist/app/services/prism-renderer.service.js +5 -9
  169. package/dist/app/services/prism-search.service.d.ts.map +1 -1
  170. package/dist/app/services/prism-search.service.js +1 -2
  171. package/dist/app/services/prism-theme.service.d.ts.map +1 -1
  172. package/dist/app/services/prism-theme.service.js +6 -4
  173. package/dist/app/services/prism-url-state.service.d.ts.map +1 -1
  174. package/dist/app/services/prism-url-state.service.js +3 -9
  175. package/dist/app/services/prism-variant-bg.service.d.ts.map +1 -1
  176. package/dist/app/services/prism-variant-bg.service.js +3 -5
  177. package/dist/app/shared/prism-metric-badge.component.d.ts.map +1 -1
  178. package/dist/app/shared/prism-metric-badge.component.js +4 -17
  179. package/dist/app/shell/prism-shell.component.d.ts.map +1 -1
  180. package/dist/app/shell/prism-shell.component.js +20 -122
  181. package/dist/app/sidebar/navigation-decorations.d.ts.map +1 -1
  182. package/dist/app/sidebar/navigation-decorations.js +1 -1
  183. package/dist/app/sidebar/prism-sidebar.component.d.ts +1 -1
  184. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -1
  185. package/dist/app/sidebar/prism-sidebar.component.js +19 -154
  186. package/dist/app/theme/prism-default-theme.d.ts.map +1 -1
  187. package/dist/app/theme/prism-default-theme.js +5 -5
  188. package/dist/app/tokens/prism-tokens.d.ts.map +1 -1
  189. package/dist/app/tokens/prism-tokens.js +1 -1
  190. package/dist/app/variant-ribbon/prism-variant-ribbon.component.d.ts.map +1 -1
  191. package/dist/app/variant-ribbon/prism-variant-ribbon.component.js +4 -49
  192. package/dist/app/variant-ribbon/spectrum.d.ts.map +1 -1
  193. package/dist/app/view-tab-bar/next-view-id.d.ts.map +1 -1
  194. package/dist/app/view-tab-bar/next-view-id.js +1 -3
  195. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -1
  196. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +5 -17
  197. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -1
  198. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +4 -27
  199. package/dist/builder/a11y/a11y-report-reader.d.ts +1 -1
  200. package/dist/builder/a11y/a11y-report-reader.d.ts.map +1 -1
  201. package/dist/builder/a11y/a11y-report-reader.js +7 -7
  202. package/dist/builder/build/index.d.ts.map +1 -1
  203. package/dist/builder/build/index.js +5 -9
  204. package/dist/builder/build/schema.d.ts.map +1 -1
  205. package/dist/builder/config-loader/config-loader.d.ts.map +1 -1
  206. package/dist/builder/config-loader/config-loader.js +4 -5
  207. package/dist/builder/manifest/host-parser.d.ts.map +1 -1
  208. package/dist/builder/manifest/host-parser.js +1 -1
  209. package/dist/builder/manifest/runtime-manifest.generator.d.ts +1 -1
  210. package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -1
  211. package/dist/builder/manifest/runtime-manifest.generator.js +9 -34
  212. package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -1
  213. package/dist/builder/plugin-runner/plugin-runner.js +1 -3
  214. package/dist/builder/scanner/ast-utils.d.ts.map +1 -1
  215. package/dist/builder/scanner/ast-utils.js +2 -8
  216. package/dist/builder/scanner/component.scanner.d.ts.map +1 -1
  217. package/dist/builder/scanner/component.scanner.js +15 -22
  218. package/dist/builder/scanner/entry-point-discovery.d.ts.map +1 -1
  219. package/dist/builder/scanner/entry-point-discovery.js +3 -5
  220. package/dist/builder/scanner/entry-point.scanner.d.ts.map +1 -1
  221. package/dist/builder/scanner/entry-point.scanner.js +1 -3
  222. package/dist/builder/scanner/index.d.ts +1 -1
  223. package/dist/builder/scanner/index.d.ts.map +1 -1
  224. package/dist/builder/scanner/input.extractor.d.ts.map +1 -1
  225. package/dist/builder/scanner/input.extractor.js +11 -28
  226. package/dist/builder/scanner/manifest.generator.d.ts.map +1 -1
  227. package/dist/builder/scanner/manifest.generator.js +2 -4
  228. package/dist/builder/scanner/scanner.d.ts.map +1 -1
  229. package/dist/builder/scanner/scanner.js +4 -4
  230. package/dist/builder/serve/index.d.ts.map +1 -1
  231. package/dist/builder/serve/index.js +8 -10
  232. package/dist/builder/serve/schema.d.ts.map +1 -1
  233. package/dist/builder/shared/index.d.ts +1 -1
  234. package/dist/builder/shared/index.d.ts.map +1 -1
  235. package/dist/builder/shared/index.js +1 -1
  236. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -1
  237. package/dist/builder/shared/prism-pipeline.js +18 -25
  238. package/dist/builder/shared/resolve-cache-dir.d.ts.map +1 -1
  239. package/dist/builder/shared/resolve-cache-dir.js +1 -1
  240. package/dist/builder/watcher/index.d.ts +1 -1
  241. package/dist/builder/watcher/index.d.ts.map +1 -1
  242. package/dist/builder/watcher/prism-watcher.d.ts.map +1 -1
  243. package/dist/builder/watcher/prism-watcher.js +12 -10
  244. package/dist/config/index.d.ts +2 -2
  245. package/dist/config/index.d.ts.map +1 -1
  246. package/dist/config/index.js +1 -1
  247. package/dist/decorator/index.d.ts +1 -1
  248. package/dist/decorator/index.d.ts.map +1 -1
  249. package/dist/decorator/showcase.decorator.d.ts.map +1 -1
  250. package/dist/decorator/showcase.types.d.ts.map +1 -1
  251. package/dist/plugin/index.d.ts +4 -4
  252. package/dist/plugin/index.d.ts.map +1 -1
  253. package/dist/plugin/index.js +2 -2
  254. package/dist/plugin/page-helpers.d.ts +1 -1
  255. package/dist/plugin/page-helpers.d.ts.map +1 -1
  256. package/dist/plugin/page-helpers.js +2 -2
  257. package/dist/plugin/page.types.d.ts.map +1 -1
  258. package/dist/plugin/plugin.types.d.ts +1 -1
  259. package/dist/plugin/plugin.types.d.ts.map +1 -1
  260. package/dist/schematics/migrations/v21-13-manifest-cache/index.d.ts.map +1 -1
  261. package/dist/schematics/migrations/v21-13-manifest-cache/index.js +4 -10
  262. package/dist/schematics/migrations/v22-0-cache-dir-rename/index.d.ts.map +1 -1
  263. package/dist/schematics/migrations/v22-0-cache-dir-rename/index.js +4 -8
  264. package/dist/schematics/ng-add/index.d.ts.map +1 -1
  265. package/dist/schematics/ng-add/index.js +122 -56
  266. package/dist/schematics/ng-add/schema.d.ts.map +1 -1
  267. package/dist/schematics/utils/config-ast.d.ts.map +1 -1
  268. package/dist/schematics/utils/config-ast.js +8 -15
  269. package/dist/schematics/utils/tsconfig-paths.d.ts.map +1 -1
  270. package/dist/schematics/utils/tsconfig-paths.js +1 -1
  271. package/dist/shared/canvas-bg.type.d.ts.map +1 -1
  272. package/dist/shared/canvas-bg.type.js +1 -8
  273. package/dist/shared/canvas-layout.type.d.ts.map +1 -1
  274. package/dist/shared/canvas-layout.type.js +1 -4
  275. package/dist/shared/variant-bg.d.ts.map +1 -1
  276. package/dist/shared/viewport.type.d.ts +47 -0
  277. package/dist/shared/viewport.type.d.ts.map +1 -0
  278. package/dist/shared/viewport.type.js +48 -0
  279. package/dist/transformer/cli.js +0 -0
  280. package/dist/transformer/index.d.ts +2 -2
  281. package/dist/transformer/index.d.ts.map +1 -1
  282. package/dist/transformer/index.js +2 -2
  283. package/dist/transformer/showcase-strip.transformer.d.ts.map +1 -1
  284. package/dist/transformer/showcase-strip.transformer.js +6 -15
  285. package/dist/transformer/strip-directory.d.ts.map +1 -1
  286. package/dist/transformer/strip-directory.js +2 -4
  287. package/package.json +4 -1
  288. package/schematics/collection.json +7 -7
  289. package/schematics/migrations.json +12 -12
  290. package/schematics/ng-add/schema.json +22 -22
  291. package/src/builder/build/schema.json +36 -36
  292. package/src/builder/serve/schema.json +37 -37
@@ -1,24 +1,24 @@
1
- import { Component, computed, effect, inject, untracked, HostListener, ChangeDetectionStrategy, } from '@angular/core';
2
- import { PRISM_CONFIG } from '../tokens/prism-tokens.js';
3
- import { PrismThemeService } from '../services/prism-theme.service.js';
4
- import { PrismLayoutService } from '../services/prism-layout.service.js';
5
- import { PrismNavigationService } from '../services/prism-navigation.service.js';
6
- import { PrismPanelService } from '../services/prism-panel.service.js';
1
+ import { ChangeDetectionStrategy, Component, computed, effect, HostListener, inject, untracked } from '@angular/core';
2
+ import { PrismCanvasToolbarComponent } from '../canvas/prism-canvas-toolbar.component.js';
3
+ import { PrismTemplatePopoverComponent } from '../canvas/prism-template-popover.component.js';
7
4
  import { PrismComponentHeadComponent } from '../component-head/prism-component-head.component.js';
8
- import { PrismVariantRibbonComponent } from '../variant-ribbon/prism-variant-ribbon.component.js';
5
+ import { PrismResizerDirective } from '../directives/prism-resizer.directive.js';
9
6
  import { PrismHeaderComponent } from '../header/prism-header.component.js';
7
+ import { PrismPageRendererComponent } from '../page-renderer/prism-page-renderer.component.js';
10
8
  import { PrismPanelHostComponent } from '../panels/panel-host/prism-panel-host.component.js';
11
9
  import { PrismRendererComponent } from '../renderer/prism-renderer.component.js';
12
- import { PrismSidebarComponent } from '../sidebar/prism-sidebar.component.js';
13
- import { PrismPageRendererComponent } from '../page-renderer/prism-page-renderer.component.js';
14
- import { PrismUrlStateService } from '../services/prism-url-state.service.js';
10
+ import { PrismLayoutService } from '../services/prism-layout.service.js';
11
+ import { PrismNavigationService } from '../services/prism-navigation.service.js';
12
+ import { PrismPanelService } from '../services/prism-panel.service.js';
15
13
  import { PrismPersistenceService } from '../services/prism-persistence.service.js';
16
- import { PrismViewTabBarComponent } from '../view-tab-bar/prism-view-tab-bar.component.js';
17
- import { PrismViewPanelHostComponent } from '../view-tab-bar/prism-view-panel-host.component.js';
18
- import { PrismResizerDirective } from '../directives/prism-resizer.directive.js';
19
- import { PrismCanvasToolbarComponent } from '../canvas/prism-canvas-toolbar.component.js';
20
- import { PrismTemplatePopoverComponent } from '../canvas/prism-template-popover.component.js';
14
+ import { PrismThemeService } from '../services/prism-theme.service.js';
15
+ import { PrismUrlStateService } from '../services/prism-url-state.service.js';
16
+ import { PrismSidebarComponent } from '../sidebar/prism-sidebar.component.js';
17
+ import { PRISM_CONFIG } from '../tokens/prism-tokens.js';
18
+ import { PrismVariantRibbonComponent } from '../variant-ribbon/prism-variant-ribbon.component.js';
21
19
  import { nextViewId } from '../view-tab-bar/next-view-id.js';
20
+ import { PrismViewPanelHostComponent } from '../view-tab-bar/prism-view-panel-host.component.js';
21
+ import { PrismViewTabBarComponent } from '../view-tab-bar/prism-view-tab-bar.component.js';
22
22
  import * as i0 from "@angular/core";
23
23
  function PrismShellComponent_Conditional_3_Template(rf, ctx) { if (rf & 1) {
24
24
  const _r1 = i0.ɵɵgetCurrentView();
@@ -111,9 +111,7 @@ export class PrismShellComponent {
111
111
  urlStateService = inject(PrismUrlStateService);
112
112
  persistenceService = inject(PrismPersistenceService);
113
113
  viewPanels = this.panelService.visibleViewPanels;
114
- showPanel = computed(() => this.layout.addonsVisible() &&
115
- this.panelService.activeViewId() === 'renderer' &&
116
- !this.navigationService.activePage(), /* @ts-ignore */
114
+ showPanel = computed(() => this.layout.addonsVisible() && this.panelService.activeViewId() === 'renderer' && !this.navigationService.activePage(), /* @ts-ignore */
117
115
  ...(ngDevMode ? [{ debugName: "showPanel" }] : /* istanbul ignore next */ []));
118
116
  shellStyle = computed(() => {
119
117
  const sw = this.layout.sidebarVisible() ? this.layout.sidebarWidth() : 0;
@@ -200,7 +198,7 @@ export class PrismShellComponent {
200
198
  PrismViewPanelHostComponent,
201
199
  PrismResizerDirective,
202
200
  PrismCanvasToolbarComponent,
203
- PrismTemplatePopoverComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n .prism-shell[_ngcontent-%COMP%] {\n height: 100vh;\n display: grid;\n grid-template-rows: var(--%NS%band-header) 1fr;\n background: var(--%NS%prism-void);\n font-family: var(--%NS%font-sans, var(--%NS%prism-font-sans));\n color: var(--%NS%prism-text);\n overflow: hidden;\n }\n\n .prism-body[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: var(--%NS%sw, 264px) 4px 1fr;\n min-height: 0;\n }\n .prism-body--no-sidebar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] {\n background: var(--%NS%prism-bg);\n border-right: 1px solid var(--%NS%prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n .prism-sidebar-wrap[_ngcontent-%COMP%] prism-sidebar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n }\n\n .prism-sidebar-foot[_ngcontent-%COMP%] {\n border-top: 1px solid var(--%NS%prism-border);\n padding: 10px 14px;\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .prism-sidebar-foot__logo[_ngcontent-%COMP%] {\n width: 16px;\n flex-shrink: 0;\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n text-decoration: none;\n transition: color var(--%NS%dur-fast);\n }\n .prism-sidebar-foot__link[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n }\n\n .prism-resizer-col[_ngcontent-%COMP%] {\n width: 4px;\n background: transparent;\n transition: background var(--%NS%dur-fast) var(--%NS%ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-col[_ngcontent-%COMP%]:hover, \n .prism-resizer-col.active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n }\n\n .prism-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--%NS%prism-void);\n overflow: hidden;\n }\n\n .prism-resizer-row[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--%NS%dur-fast) var(--%NS%ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-row[_ngcontent-%COMP%]:hover, \n .prism-resizer-row.active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n }\n\n \n\n\n .prism-canvas-wrap[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n display: grid;\n grid-template-rows: minmax(0, 1fr);\n background: var(--%NS%prism-bg-surface);\n overflow: hidden;\n position: relative;\n }\n .prism-main__canvas[_ngcontent-%COMP%] { flex: 1; min-height: 0; overflow: auto; }\n\n .prism-main__panel[_ngcontent-%COMP%] {\n height: var(--%NS%ph, 260px);\n flex-shrink: 0;\n overflow: hidden;\n min-height: 0;\n }\n\n .prism-shell__empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n grid-row: 1 / -1;\n }\n .prism-shell__empty-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n color: var(--%NS%prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--%NS%fs-xl);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n }\n .prism-shell__empty-hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--%NS%fs-lg);\n color: var(--%NS%prism-text-ghost);\n }"] });
201
+ PrismTemplatePopoverComponent], styles: ["[_nghost-%COMP%] {\n display: block;\n height: 100%;\n}\n\n.prism-shell[_ngcontent-%COMP%] {\n display: grid;\n grid-template-rows: var(--%NS%band-header) 1fr;\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n grid-template-columns: minmax(0, 1fr);\n height: 100vh;\n overflow: hidden;\n font-family: var(--%NS%font-sans, var(--%NS%prism-font-sans));\n color: var(--%NS%prism-text);\n background: var(--%NS%prism-void);\n}\n\n.prism-body[_ngcontent-%COMP%] {\n display: grid;\n grid-template-columns: var(--%NS%sw, 264px) 4px 1fr;\n min-height: 0;\n}\n\n.prism-body--no-sidebar[_ngcontent-%COMP%] {\n grid-template-columns: 1fr;\n}\n\n.prism-sidebar-wrap[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n background: var(--%NS%prism-bg);\n border-right: 1px solid var(--%NS%prism-border);\n}\n\n.prism-sidebar-wrap[_ngcontent-%COMP%] prism-sidebar[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n}\n\n.prism-sidebar-foot[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n padding: 10px 14px;\n font-size: 11px;\n color: var(--%NS%prism-text-ghost);\n border-top: 1px solid var(--%NS%prism-border);\n}\n\n.prism-sidebar-foot__logo[_ngcontent-%COMP%] {\n flex-shrink: 0;\n width: 16px;\n}\n\n.prism-sidebar-foot__link[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n text-decoration: none;\n transition: color var(--%NS%dur-fast);\n}\n\n.prism-sidebar-foot__link[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text-2);\n}\n\n.prism-resizer-col[_ngcontent-%COMP%] {\n position: relative;\n z-index: 5;\n width: 4px;\n background: transparent;\n transition: background var(--%NS%dur-fast) var(--%NS%ease-default);\n}\n\n.prism-resizer-col[_ngcontent-%COMP%]:hover, \n.prism-resizer-col.active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n}\n\n.prism-main[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n background: var(--%NS%prism-void);\n}\n\n.prism-resizer-row[_ngcontent-%COMP%] {\n position: relative;\n z-index: 5;\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--%NS%dur-fast) var(--%NS%ease-default);\n}\n\n.prism-resizer-row[_ngcontent-%COMP%]:hover, \n.prism-resizer-row.active[_ngcontent-%COMP%] {\n background: var(--%NS%prism-primary);\n}\n\n\n\n\n.prism-canvas-wrap[_ngcontent-%COMP%] {\n position: relative;\n display: grid;\n flex: 1;\n grid-template-rows: minmax(0, 1fr);\n min-height: 0;\n overflow: hidden;\n background: var(--%NS%prism-bg-surface);\n}\n\n.prism-main__canvas[_ngcontent-%COMP%] {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n\n.prism-main__panel[_ngcontent-%COMP%] {\n flex-shrink: 0;\n height: var(--%NS%ph, 260px);\n min-height: 0;\n overflow: hidden;\n}\n\n.prism-shell__empty[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n grid-row: 1 / -1;\n gap: 8px;\n align-items: center;\n justify-content: center;\n}\n\n.prism-shell__empty-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n margin-bottom: 8px;\n color: var(--%NS%prism-text-ghost);\n}\n\n.prism-shell__empty-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--%NS%fs-xl);\n font-weight: 500;\n color: var(--%NS%prism-text-muted);\n}\n\n.prism-shell__empty-hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: var(--%NS%fs-lg);\n color: var(--%NS%prism-text-ghost);\n}"] });
204
202
  }
205
203
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismShellComponent, [{
206
204
  type: Component,
@@ -216,110 +214,10 @@ export class PrismShellComponent {
216
214
  PrismViewPanelHostComponent,
217
215
  PrismResizerDirective,
218
216
  PrismCanvasToolbarComponent,
219
- PrismTemplatePopoverComponent,
220
- ], template: `
221
- <div class="prism-shell" [style]="shellStyle()">
222
- <prism-header class="prism-shell__header" />
223
-
224
- <div
225
- class="prism-body"
226
- [class.prism-body--no-sidebar]="!layout.sidebarVisible()"
227
- >
228
- @if (layout.sidebarVisible()) {
229
- <aside class="prism-sidebar-wrap">
230
- <prism-sidebar />
231
- <div class="prism-sidebar-foot">
232
- <img
233
- class="prism-sidebar-foot__logo"
234
- alt="ng-prism logo"
235
- src="data:image/png;base64,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"
236
- />
237
- <a
238
- class="prism-sidebar-foot__link"
239
- href="https://dyingangel666.github.io/ng-prism/#/"
240
- target="_blank"
241
- rel="noopener"
242
- >
243
- Powered by ng-prism
244
- </a>
245
- </div>
246
- </aside>
247
- <div
248
- class="prism-resizer-col"
249
- prismResizer
250
- axis="x"
251
- [min]="200"
252
- [max]="360"
253
- [value]="layout.sidebarWidth()"
254
- (valueChange)="layout.setSidebarWidth($event)"
255
- ></div>
256
- }
257
-
258
- <main
259
- class="prism-main"
260
- [style.--ph.px]="showPanel() ? layout.panelHeight() : 0"
261
- >
262
- @if (navigationService.activeComponent()) { @if
263
- (panelService.activeViewId() === 'renderer') {
264
- <prism-component-head>
265
- @if (viewPanels().length > 0) {
266
- <prism-view-tab-bar headEnd />
267
- }
268
- </prism-component-head>
269
- @if (layout.toolbarVisible()) {
270
- <prism-variant-ribbon />
271
- }
272
- <div class="prism-canvas-wrap">
273
- <prism-canvas-toolbar />
274
- <prism-renderer />
275
- <prism-template-popover />
276
- </div>
277
- } @else {
278
- <prism-component-head>
279
- <prism-view-tab-bar headEnd />
280
- </prism-component-head>
281
- <prism-view-panel-host class="prism-main__canvas" />
282
- } @if (showPanel()) {
283
- <div
284
- class="prism-resizer-row"
285
- prismResizer
286
- axis="y"
287
- [min]="200"
288
- [max]="560"
289
- [value]="layout.panelHeight()"
290
- (valueChange)="layout.setPanelHeight($event)"
291
- ></div>
292
- <div class="prism-main__panel">
293
- <prism-panel-host />
294
- </div>
295
- } } @else if (navigationService.activePage()) {
296
- <prism-page-renderer class="prism-main__canvas" />
297
- } @else {
298
- <div class="prism-shell__empty">
299
- <svg
300
- class="prism-shell__empty-icon"
301
- viewBox="0 0 24 24"
302
- fill="none"
303
- stroke="currentColor"
304
- stroke-width="1.5"
305
- stroke-linecap="round"
306
- stroke-linejoin="round"
307
- >
308
- <path d="M12 2L4 14h16L12 2z" />
309
- <path d="M4 14l4 8h8l4-8" />
310
- </svg>
311
- <p class="prism-shell__empty-text">Select a component</p>
312
- <p class="prism-shell__empty-hint">
313
- from the sidebar to preview it here
314
- </p>
315
- </div>
316
- }
317
- </main>
318
- </div>
319
- </div>
320
- `, styles: ["\n :host { display: block; height: 100%; }\n\n .prism-shell {\n height: 100vh;\n display: grid;\n grid-template-rows: var(--band-header) 1fr;\n background: var(--prism-void);\n font-family: var(--font-sans, var(--prism-font-sans));\n color: var(--prism-text);\n overflow: hidden;\n }\n\n .prism-body {\n display: grid;\n grid-template-columns: var(--sw, 264px) 4px 1fr;\n min-height: 0;\n }\n .prism-body--no-sidebar {\n grid-template-columns: 1fr;\n }\n\n .prism-sidebar-wrap {\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n }\n\n .prism-sidebar-wrap prism-sidebar {\n flex: 1;\n min-height: 0;\n }\n\n .prism-sidebar-foot {\n border-top: 1px solid var(--prism-border);\n padding: 10px 14px;\n font-size: 11px;\n color: var(--prism-text-ghost);\n display: flex;\n align-items: center;\n gap: 8px;\n }\n .prism-sidebar-foot__logo {\n width: 16px;\n flex-shrink: 0;\n }\n .prism-sidebar-foot__link {\n color: var(--prism-text-ghost);\n text-decoration: none;\n transition: color var(--dur-fast);\n }\n .prism-sidebar-foot__link:hover {\n color: var(--prism-text-2);\n }\n\n .prism-resizer-col {\n width: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-col:hover,\n .prism-resizer-col.active {\n background: var(--prism-primary);\n }\n\n .prism-main {\n display: flex;\n flex-direction: column;\n min-height: 0;\n background: var(--prism-void);\n overflow: hidden;\n }\n\n .prism-resizer-row {\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n position: relative;\n z-index: 5;\n }\n .prism-resizer-row:hover,\n .prism-resizer-row.active {\n background: var(--prism-primary);\n }\n\n /* One row, not two: the canvas tools no longer occupy a band above the\n stage, they float over it from a rail absolutely positioned against\n this element. The position: relative below is what anchors it. */\n .prism-canvas-wrap {\n flex: 1;\n min-height: 0;\n display: grid;\n grid-template-rows: minmax(0, 1fr);\n background: var(--prism-bg-surface);\n overflow: hidden;\n position: relative;\n }\n .prism-main__canvas { flex: 1; min-height: 0; overflow: auto; }\n\n .prism-main__panel {\n height: var(--ph, 260px);\n flex-shrink: 0;\n overflow: hidden;\n min-height: 0;\n }\n\n .prism-shell__empty {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 8px;\n grid-row: 1 / -1;\n }\n .prism-shell__empty-icon {\n width: 48px;\n height: 48px;\n color: var(--prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text {\n margin: 0;\n font-size: var(--fs-xl);\n font-weight: 500;\n color: var(--prism-text-muted);\n }\n .prism-shell__empty-hint {\n margin: 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-ghost);\n }\n "] }]
217
+ PrismTemplatePopoverComponent
218
+ ], template: "<div\n class=\"prism-shell\"\n [style]=\"shellStyle()\">\n <prism-header class=\"prism-shell__header\" />\n\n <div\n class=\"prism-body\"\n [class.prism-body--no-sidebar]=\"!layout.sidebarVisible()\">\n @if (layout.sidebarVisible()) {\n <aside class=\"prism-sidebar-wrap\">\n <prism-sidebar />\n <div class=\"prism-sidebar-foot\">\n <img\n class=\"prism-sidebar-foot__logo\"\n alt=\"ng-prism logo\"\n src=\"data:image/png;base64,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\" />\n <a\n class=\"prism-sidebar-foot__link\"\n href=\"https://dyingangel666.github.io/ng-prism/#/\"\n target=\"_blank\"\n rel=\"noopener\">\n Powered by ng-prism\n </a>\n </div>\n </aside>\n <div\n class=\"prism-resizer-col\"\n prismResizer\n axis=\"x\"\n [min]=\"200\"\n [max]=\"360\"\n [value]=\"layout.sidebarWidth()\"\n (valueChange)=\"layout.setSidebarWidth($event)\"></div>\n }\n\n <main\n class=\"prism-main\"\n [style.--ph.px]=\"showPanel() ? layout.panelHeight() : 0\">\n @if (navigationService.activeComponent()) {\n @if (panelService.activeViewId() === 'renderer') {\n <prism-component-head>\n @if (viewPanels().length > 0) {\n <prism-view-tab-bar headEnd />\n }\n </prism-component-head>\n @if (layout.toolbarVisible()) {\n <prism-variant-ribbon />\n }\n <div class=\"prism-canvas-wrap\">\n <prism-canvas-toolbar />\n <prism-renderer />\n <prism-template-popover />\n </div>\n } @else {\n <prism-component-head>\n <prism-view-tab-bar headEnd />\n </prism-component-head>\n <prism-view-panel-host class=\"prism-main__canvas\" />\n }\n @if (showPanel()) {\n <div\n class=\"prism-resizer-row\"\n prismResizer\n axis=\"y\"\n [min]=\"200\"\n [max]=\"560\"\n [value]=\"layout.panelHeight()\"\n (valueChange)=\"layout.setPanelHeight($event)\"></div>\n <div class=\"prism-main__panel\">\n <prism-panel-host />\n </div>\n }\n } @else if (navigationService.activePage()) {\n <prism-page-renderer class=\"prism-main__canvas\" />\n } @else {\n <div class=\"prism-shell__empty\">\n <svg\n class=\"prism-shell__empty-icon\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path d=\"M12 2L4 14h16L12 2z\" />\n <path d=\"M4 14l4 8h8l4-8\" />\n </svg>\n <p class=\"prism-shell__empty-text\">Select a component</p>\n <p class=\"prism-shell__empty-hint\"> from the sidebar to preview it here </p>\n </div>\n }\n </main>\n </div>\n</div>\n", styles: [":host {\n display: block;\n height: 100%;\n}\n\n.prism-shell {\n display: grid;\n grid-template-rows: var(--band-header) 1fr;\n\n /* Declared for its minimum, not for its size. An implicit grid track is\n auto, and an auto track's minimum is the min-content width of what sits\n in it -- here the whole body, sidebar and resizer and main together. The\n track therefore grows to whatever the widest panel demands and the\n overflow: hidden below clips the remainder, instead of the viewport ever\n getting a chance to reflow. Measured at a 500px viewport the track stood\n at 763px and held the canvas at 415px however far the window was dragged\n in, so responsive behaviour inside a showcased component was impossible\n to reach.\n The rows stay bare because min-height: 0 is already spelled out on every\n level below them. The inline axis had no such counterpart anywhere, and\n the levels below zero their own minimum through overflow: hidden, which\n is why this one track is the only place that needs saying. */\n grid-template-columns: minmax(0, 1fr);\n height: 100vh;\n overflow: hidden;\n font-family: var(--font-sans, var(--prism-font-sans));\n color: var(--prism-text);\n background: var(--prism-void);\n}\n\n.prism-body {\n display: grid;\n grid-template-columns: var(--sw, 264px) 4px 1fr;\n min-height: 0;\n}\n\n.prism-body--no-sidebar {\n grid-template-columns: 1fr;\n}\n\n.prism-sidebar-wrap {\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n}\n\n.prism-sidebar-wrap prism-sidebar {\n flex: 1;\n min-height: 0;\n}\n\n.prism-sidebar-foot {\n display: flex;\n gap: 8px;\n align-items: center;\n padding: 10px 14px;\n font-size: 11px;\n color: var(--prism-text-ghost);\n border-top: 1px solid var(--prism-border);\n}\n\n.prism-sidebar-foot__logo {\n flex-shrink: 0;\n width: 16px;\n}\n\n.prism-sidebar-foot__link {\n color: var(--prism-text-ghost);\n text-decoration: none;\n transition: color var(--dur-fast);\n}\n\n.prism-sidebar-foot__link:hover {\n color: var(--prism-text-2);\n}\n\n.prism-resizer-col {\n position: relative;\n z-index: 5;\n width: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n}\n\n.prism-resizer-col:hover,\n.prism-resizer-col.active {\n background: var(--prism-primary);\n}\n\n.prism-main {\n display: flex;\n flex-direction: column;\n min-height: 0;\n overflow: hidden;\n background: var(--prism-void);\n}\n\n.prism-resizer-row {\n position: relative;\n z-index: 5;\n flex-shrink: 0;\n height: 4px;\n background: transparent;\n transition: background var(--dur-fast) var(--ease-default);\n}\n\n.prism-resizer-row:hover,\n.prism-resizer-row.active {\n background: var(--prism-primary);\n}\n\n/* One row, not two: the canvas tools no longer occupy a band above the\n stage, they float over it from a rail absolutely positioned against\n this element. The position: relative below is what anchors it. */\n.prism-canvas-wrap {\n position: relative;\n display: grid;\n flex: 1;\n grid-template-rows: minmax(0, 1fr);\n min-height: 0;\n overflow: hidden;\n background: var(--prism-bg-surface);\n}\n\n.prism-main__canvas {\n flex: 1;\n min-height: 0;\n overflow: auto;\n}\n\n.prism-main__panel {\n flex-shrink: 0;\n height: var(--ph, 260px);\n min-height: 0;\n overflow: hidden;\n}\n\n.prism-shell__empty {\n display: flex;\n flex-direction: column;\n grid-row: 1 / -1;\n gap: 8px;\n align-items: center;\n justify-content: center;\n}\n\n.prism-shell__empty-icon {\n width: 48px;\n height: 48px;\n margin-bottom: 8px;\n color: var(--prism-text-ghost);\n}\n\n.prism-shell__empty-text {\n margin: 0;\n font-size: var(--fs-xl);\n font-weight: 500;\n color: var(--prism-text-muted);\n}\n\n.prism-shell__empty-hint {\n margin: 0;\n font-size: var(--fs-lg);\n color: var(--prism-text-ghost);\n}\n"] }]
321
219
  }], () => [], { onKeyDown: [{
322
220
  type: HostListener,
323
221
  args: ['document:keydown', ['$event']]
324
222
  }] }); })();
325
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismShellComponent, { className: "PrismShellComponent", filePath: "app/shell/prism-shell.component.ts", lineNumber: 290 }); })();
223
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismShellComponent, { className: "PrismShellComponent", filePath: "app/shell/prism-shell.component.ts", lineNumber: 45 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-decorations.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/navigation-decorations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,qEAAqE;AACrE,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;CACnC;AAID;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,SAAS,8BAA8B,EAAE,EAClD,WAAW,EAAE,SAAS,8BAA8B,EAAE,GACrD,8BAA8B,EAAE,CAWlC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAC1B,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,SAAS,8BAA8B,EAAE,GAC9C,eAAe,GAAG,IAAI,CAuBxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,GAC/C,cAAc,CAahB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAEzE"}
1
+ {"version":3,"file":"navigation-decorations.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/navigation-decorations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,qEAAqE;AACrE,MAAM,WAAW,QAAQ;IACrB;;;;;OAKG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC5B,wEAAwE;IACxE,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,8DAA8D;IAC9D,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAC;CACrC;AAID;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CACxC,OAAO,EAAE,SAAS,8BAA8B,EAAE,EAClD,WAAW,EAAE,SAAS,8BAA8B,EAAE,GACvD,8BAA8B,EAAE,CAWlC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,8BAA8B,EAAE,GAAG,eAAe,GAAG,IAAI,CA0B1H;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,EAAE,GAAG,cAAc,CAa/F;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,MAAM,CAEzE"}
@@ -37,7 +37,7 @@ export function decorateItem(item, defs) {
37
37
  id: def.id,
38
38
  icon: def.icon,
39
39
  variant: badge.variant,
40
- label: badge.label,
40
+ label: badge.label
41
41
  });
42
42
  }
43
43
  if (marks.length === 0)
@@ -1,7 +1,7 @@
1
+ import type { ComponentStatus } from '../../decorator/showcase.types.js';
1
2
  import type { NavigationItem } from '../services/navigation-item.types.js';
2
3
  import { PrismNavigationService } from '../services/prism-navigation.service.js';
3
4
  import { PrismSearchService } from '../services/prism-search.service.js';
4
- import type { ComponentStatus } from '../../decorator/showcase.types.js';
5
5
  import { type CategoryRollup, type ItemDecorations } from './navigation-decorations.js';
6
6
  import * as i0 from "@angular/core";
7
7
  interface SidebarCategory {
@@ -1 +1 @@
1
- {"version":3,"file":"prism-sidebar.component.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/prism-sidebar.component.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAKL,KAAK,cAAc,EACnB,KAAK,eAAe,EACrB,MAAM,6BAA6B,CAAC;;AAcrC,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED,UAAU,WAAW;IACnB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;CACrC;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,qBAkVa,qBAAqB;IAChC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,aAAa,qBAA8B;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAC6B;IAEzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAK1B;IAGF,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAa7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAE1E,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAE1B;IAEH,SAAS,CAAC,QAAQ,CAAC,cAAc,oDAa9B;IAEH,SAAS,CAAC,QAAQ,CAAC,iBAAiB;;;;;SAmBjC;IAEH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI3C,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAU3C,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAM/C,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAMjD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS;IAMvE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAKvD,SAAS,CAAC,WAAW,CACnB,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,eAAe,GAAG,IAAI,GAClC,MAAM,GAAG,IAAI;IAShB,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAWjD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAQ9C,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;yCAhKV,qBAAqB;2CAArB,qBAAqB;CAqKjC"}
1
+ {"version":3,"file":"prism-sidebar.component.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/prism-sidebar.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,KAAK,cAAc,EAAgB,KAAK,eAAe,EAA+D,MAAM,6BAA6B,CAAC;;AAcnK,UAAU,eAAe;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,cAAc,EAAE,CAAC;CAC3B;AAED,UAAU,WAAW;IACjB,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;CACvC;AAED,UAAU,iBAAiB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;CAC1B;AAED,qBAQa,qBAAqB;IAC9B,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,SAAS,CAAC,QAAQ,CAAC,aAAa,qBAA8B;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0D;IAEtF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4H;IAGxJ,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAS7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6C;IAE1E,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAE1B;IAEH,SAAS,CAAC,QAAQ,CAAC,cAAc,oDAe9B;IAEH,SAAS,CAAC,QAAQ,CAAC,iBAAiB;;;;;SAqBjC;IAEH,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI3C,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAW3C,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAI/C,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAIjD,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS;IAIvE;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM;IAMvD,SAAS,CAAC,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IAU/F,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAUjD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAQ9C,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;yCApJZ,qBAAqB;2CAArB,qBAAqB;CA4JjC"}
@@ -1,10 +1,10 @@
1
- import { Component, computed, inject, signal, viewChild, HostListener, ChangeDetectionStrategy, } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, computed, HostListener, inject, signal, viewChild } from '@angular/core';
2
2
  import { PrismIconComponent } from '../icons/prism-icon.component.js';
3
3
  import { BUILTIN_NAVIGATION_DECORATIONS } from '../panels/builtin-navigation-decorations.js';
4
4
  import { PrismNavigationService } from '../services/prism-navigation.service.js';
5
5
  import { PrismPluginService } from '../services/prism-plugin.service.js';
6
6
  import { PrismSearchService } from '../services/prism-search.service.js';
7
- import { decorateItem, lifecycleIcon, resolveNavigationDecorations, rollupCategory, } from './navigation-decorations.js';
7
+ import { decorateItem, lifecycleIcon, resolveNavigationDecorations, rollupCategory } from './navigation-decorations.js';
8
8
  import * as i0 from "@angular/core";
9
9
  const _c0 = ["filterInput"];
10
10
  const _c1 = () => [];
@@ -182,7 +182,7 @@ function PrismSidebarComponent_For_10_Template(rf, ctx) { if (rf & 1) {
182
182
  const STORAGE_KEY = 'ng-prism-sidebar-collapsed';
183
183
  const SECTION_ICONS = {
184
184
  Components: 'box',
185
- Directives: 'zap',
185
+ Directives: 'zap'
186
186
  };
187
187
  const DEFAULT_SECTION_ICON = 'box-select';
188
188
  function sectionIcon(name) {
@@ -200,9 +200,7 @@ export class PrismSidebarComponent {
200
200
  if (e.key !== '/' || e.ctrlKey || e.metaKey || e.altKey)
201
201
  return;
202
202
  const tag = e.target.tagName;
203
- if (tag === 'INPUT' ||
204
- tag === 'TEXTAREA' ||
205
- e.target.isContentEditable)
203
+ if (tag === 'INPUT' || tag === 'TEXTAREA' || e.target.isContentEditable)
206
204
  return;
207
205
  e.preventDefault();
208
206
  this.filterInput()?.nativeElement.focus();
@@ -224,7 +222,7 @@ export class PrismSidebarComponent {
224
222
  }
225
223
  return [...catMap.entries()].map(([name, items]) => ({
226
224
  name,
227
- items,
225
+ items
228
226
  }));
229
227
  }, /* @ts-ignore */
230
228
  ...(ngDevMode ? [{ debugName: "pageCategories" }] : /* istanbul ignore next */ []));
@@ -238,14 +236,14 @@ export class PrismSidebarComponent {
238
236
  const items = cat.items.map((item) => ({
239
237
  item,
240
238
  icon: lifecycleIcon(this.itemStatus(item)),
241
- decorations: decorateItem(item, defs),
239
+ decorations: decorateItem(item, defs)
242
240
  }));
243
241
  return {
244
242
  name: cat.name,
245
243
  rollup: rollupCategory(items.map((row) => row.decorations)),
246
- items,
244
+ items
247
245
  };
248
- }),
246
+ })
249
247
  }));
250
248
  }, /* @ts-ignore */
251
249
  ...(ngDevMode ? [{ debugName: "componentSections" }] : /* istanbul ignore next */ []));
@@ -264,19 +262,13 @@ export class PrismSidebarComponent {
264
262
  });
265
263
  }
266
264
  itemKey(item) {
267
- return item.kind === 'component'
268
- ? item.data.meta.className
269
- : `page:${item.data.title}`;
265
+ return item.kind === 'component' ? item.data.meta.className : `page:${item.data.title}`;
270
266
  }
271
267
  itemLabel(item) {
272
- return item.kind === 'component'
273
- ? item.data.meta.showcaseConfig.title
274
- : item.data.title;
268
+ return item.kind === 'component' ? item.data.meta.showcaseConfig.title : item.data.title;
275
269
  }
276
270
  itemStatus(item) {
277
- return item.kind === 'component'
278
- ? item.data.meta.showcaseConfig.status
279
- : undefined;
271
+ return item.kind === 'component' ? item.data.meta.showcaseConfig.status : undefined;
280
272
  }
281
273
  /**
282
274
  * Accessible name for the roll-up pill, for the deviating case only. The
@@ -311,7 +303,7 @@ export class PrismSidebarComponent {
311
303
  if (!active || active.kind !== item.kind)
312
304
  return false;
313
305
  if (item.kind === 'component') {
314
- return (item.data.meta.className === active.data.meta.className);
306
+ return item.data.meta.className === active.data.meta.className;
315
307
  }
316
308
  return item.data.title === active.data.title;
317
309
  }
@@ -336,7 +328,10 @@ export class PrismSidebarComponent {
336
328
  try {
337
329
  localStorage.setItem(STORAGE_KEY, JSON.stringify([...set]));
338
330
  }
339
- catch { }
331
+ catch {
332
+ // Storage may be full or disabled (e.g. private browsing); the
333
+ // collapsed set just stays unpersisted for this session.
334
+ }
340
335
  }
341
336
  static ɵfac = function PrismSidebarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismSidebarComponent)(); };
342
337
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismSidebarComponent, selectors: [["prism-sidebar"]], viewQuery: function PrismSidebarComponent_Query(rf, ctx) { if (rf & 1) {
@@ -367,143 +362,13 @@ export class PrismSidebarComponent {
367
362
  i0.ɵɵconditional(ctx.pageCategories().length > 0 ? 8 : -1);
368
363
  i0.ɵɵadvance();
369
364
  i0.ɵɵrepeater(ctx.componentSections());
370
- } }, dependencies: [PrismIconComponent], styles: [".prism-sidebar[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n\n .sb-filter[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 12px;\n padding: 0 10px;\n height: 30px;\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 6px;\n color: var(--%NS%prism-text-muted);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n background: transparent;\n border: 0;\n outline: none;\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-text);\n font-family: var(--%NS%font-sans);\n }\n .sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder { color: var(--%NS%prism-text-muted); }\n .sb-filter[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n color: var(--%NS%prism-text-ghost);\n padding: 1px 5px;\n border: 1px solid var(--%NS%prism-border);\n border-radius: 3px;\n }\n\n .sb-scroll[_ngcontent-%COMP%] {\n flex: 1;\n overflow-y: auto;\n padding: 10px 0 16px;\n padding-top: 0;\n }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar { width: 8px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--%NS%prism-border-strong); border-radius: 4px; }\n .sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-track { background: transparent; }\n\n .sb-pinned[_ngcontent-%COMP%] {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--%NS%prism-border);\n border-top: 1px solid var(--%NS%prism-border);\n }\n .sb-section-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n margin-top: 6px;\n }\n .sb-section-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-section-icon[_ngcontent-%COMP%] { color: var(--%NS%prism-primary); }\n .sb-pinned-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n }\n .sb-pinned-head-l[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 6px; }\n .sb-pinned-pin[_ngcontent-%COMP%] { color: var(--%NS%prism-accent); }\n\n .sb-group[_ngcontent-%COMP%] { margin-bottom: 4px; }\n .sb-group-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--%NS%prism-text-ghost);\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n text-align: left;\n font-family: var(--%NS%font-sans);\n }\n .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] {\n transition: transform var(--%NS%dur-fast);\n color: var(--%NS%prism-text-ghost);\n }\n .sb-group--collapsed[_ngcontent-%COMP%] .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] { transform: rotate(-90deg); }\n\n .sb-group-chip[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--%NS%prism-text-ghost);\n }\n .sb-group-count[_ngcontent-%COMP%] {\n margin-left: auto;\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n color: var(--%NS%prism-text-ghost);\n font-weight: 500;\n }\n .sb-group-count--warn[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-attention); }\n .sb-group-count--danger[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-critical); }\n\n .sb-item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 30px;\n padding: 0 14px 0 28px;\n font-size: 13px;\n color: var(--%NS%prism-text-2);\n cursor: pointer;\n border: none;\n background: none;\n transition: background var(--%NS%dur-fast), color var(--%NS%dur-fast);\n text-align: left;\n font-family: var(--%NS%font-sans);\n }\n .sb-item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--%NS%prism-primary) 5%, transparent);\n color: var(--%NS%prism-text);\n }\n .sb-item--active[_ngcontent-%COMP%] {\n background: color-mix(in srgb, var(--%NS%prism-primary) 12%, transparent);\n font-weight: 500;\n }\n .sb-item-icon[_ngcontent-%COMP%] { flex: 0 0 12px; opacity: 0.7; }\n .sb-item-name[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n \n\n\n\n\n\n\n .sb-item-health[_ngcontent-%COMP%] {\n width: 40px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--%NS%sp-1);\n overflow: hidden;\n }\n\n \n\n\n\n\n .sb-health[_ngcontent-%COMP%] { fill: none; stroke: currentColor; stroke-width: 2; }\n .sb-health--warn[_ngcontent-%COMP%] {\n color: color-mix(in srgb, var(--%NS%prism-mark-attention) 80%, transparent);\n }\n .sb-health--danger[_ngcontent-%COMP%] { color: var(--%NS%prism-mark-critical); }\n\n .sb-item--deprecated[_ngcontent-%COMP%] .sb-item-name[_ngcontent-%COMP%] {\n text-decoration: line-through;\n text-decoration-thickness: 1px;\n color: var(--%NS%prism-text-ghost);\n opacity: 0.7;\n }\n\n\n [_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n }"] });
365
+ } }, dependencies: [PrismIconComponent], styles: [".prism-sidebar[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.sb-filter[_ngcontent-%COMP%] {\n display: flex;\n gap: 8px;\n align-items: center;\n height: 30px;\n padding: 0 10px;\n margin: 12px;\n color: var(--%NS%prism-text-muted);\n background: var(--%NS%prism-input-bg);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 6px;\n}\n\n.sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n font-family: var(--%NS%font-sans);\n font-size: var(--%NS%fs-md);\n color: var(--%NS%prism-text);\n outline: none;\n background: transparent;\n border: 0;\n}\n\n.sb-filter[_ngcontent-%COMP%] input[_ngcontent-%COMP%]::placeholder {\n color: var(--%NS%prism-text-muted);\n}\n\n.sb-filter[_ngcontent-%COMP%] kbd[_ngcontent-%COMP%] {\n padding: 1px 5px;\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n color: var(--%NS%prism-text-ghost);\n border: 1px solid var(--%NS%prism-border);\n border-radius: 3px;\n}\n\n.sb-scroll[_ngcontent-%COMP%] {\n flex: 1;\n padding: 10px 0 16px;\n padding-top: 0;\n overflow-y: auto;\n}\n\n.sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar {\n width: 8px;\n}\n\n.sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb {\n background: var(--%NS%prism-border-strong);\n border-radius: 4px;\n}\n\n.sb-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.sb-pinned[_ngcontent-%COMP%] {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-top: 1px solid var(--%NS%prism-border);\n border-bottom: 1px solid var(--%NS%prism-border);\n}\n\n.sb-section-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n color: var(--%NS%prism-text-ghost);\n text-transform: uppercase;\n letter-spacing: 0.09em;\n}\n\n.sb-section-head-l[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n.sb-section-icon[_ngcontent-%COMP%] {\n color: var(--%NS%prism-primary);\n}\n\n.sb-pinned-head[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n color: var(--%NS%prism-text-ghost);\n text-transform: uppercase;\n letter-spacing: 0.09em;\n}\n\n.sb-pinned-head-l[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n.sb-pinned-pin[_ngcontent-%COMP%] {\n color: var(--%NS%prism-accent);\n}\n\n.sb-group[_ngcontent-%COMP%] {\n margin-bottom: 4px;\n}\n\n.sb-group-head[_ngcontent-%COMP%] {\n display: flex;\n gap: 6px;\n align-items: center;\n width: 100%;\n padding: 8px 14px 6px;\n font-family: var(--%NS%font-sans);\n font-size: 10.5px;\n font-weight: 700;\n color: var(--%NS%prism-text-ghost);\n text-align: left;\n text-transform: uppercase;\n letter-spacing: 0.09em;\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n}\n\n.sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n transition: transform var(--%NS%dur-fast);\n}\n\n.sb-group--collapsed[_ngcontent-%COMP%] .sb-group-head[_ngcontent-%COMP%] prism-icon[_ngcontent-%COMP%] {\n transform: rotate(-90deg);\n}\n\n.sb-group-chip[_ngcontent-%COMP%] {\n width: 6px;\n height: 6px;\n background: var(--%NS%prism-text-ghost);\n border-radius: 2px;\n}\n\n.sb-group-count[_ngcontent-%COMP%] {\n margin-left: auto;\n font-family: var(--%NS%font-mono);\n font-size: 10px;\n font-weight: 500;\n color: var(--%NS%prism-text-ghost);\n}\n\n.sb-group-count--warn[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-attention);\n}\n\n.sb-group-count--danger[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-critical);\n}\n\n.sb-item[_ngcontent-%COMP%] {\n display: flex;\n gap: 10px;\n align-items: center;\n width: 100%;\n height: 30px;\n padding: 0 14px 0 28px;\n font-family: var(--%NS%font-sans);\n font-size: 13px;\n color: var(--%NS%prism-text-2);\n text-align: left;\n cursor: pointer;\n background: none;\n border: none;\n transition:\n background var(--%NS%dur-fast),\n color var(--%NS%dur-fast);\n}\n\n.sb-item[_ngcontent-%COMP%]:hover {\n color: var(--%NS%prism-text);\n background: color-mix(in srgb, var(--%NS%prism-primary) 5%, transparent);\n}\n\n.sb-item--active[_ngcontent-%COMP%] {\n font-weight: 500;\n background: color-mix(in srgb, var(--%NS%prism-primary) 12%, transparent);\n}\n\n.sb-item-icon[_ngcontent-%COMP%] {\n flex: 0 0 12px;\n opacity: 0.7;\n}\n\n.sb-item-name[_ngcontent-%COMP%] {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n\n\n\n\n\n\n\n.sb-item-health[_ngcontent-%COMP%] {\n display: flex;\n flex: none;\n gap: var(--%NS%sp-1);\n align-items: center;\n justify-content: flex-end;\n width: 40px;\n overflow: hidden;\n}\n\n\n\n\n\n\n.sb-health[_ngcontent-%COMP%] {\n fill: none;\n stroke: currentcolor;\n stroke-width: 2;\n}\n\n.sb-health--warn[_ngcontent-%COMP%] {\n color: color-mix(in srgb, var(--%NS%prism-mark-attention) 80%, transparent);\n}\n\n.sb-health--danger[_ngcontent-%COMP%] {\n color: var(--%NS%prism-mark-critical);\n}\n\n.sb-item--deprecated[_ngcontent-%COMP%] .sb-item-name[_ngcontent-%COMP%] {\n color: var(--%NS%prism-text-ghost);\n text-decoration: line-through;\n text-decoration-thickness: 1px;\n opacity: 0.7;\n}\n\n[_ngcontent-%COMP%]:focus-visible {\n outline: 2px solid var(--%NS%prism-primary);\n outline-offset: 2px;\n}"] });
371
366
  }
372
367
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismSidebarComponent, [{
373
368
  type: Component,
374
- args: [{ selector: 'prism-sidebar', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: `
375
- <nav class="prism-sidebar">
376
- <div class="sb-filter">
377
- <prism-icon name="search" [size]="12" />
378
- <input
379
- #filterInput
380
- placeholder="Filter components…"
381
- [value]="searchService.query()"
382
- (input)="searchService.search($any($event.target).value)"
383
- />
384
- <kbd>/</kbd>
385
- </div>
386
-
387
- <div class="sb-scroll">
388
- @if (pageCategories().length > 0) {
389
- <div class="sb-pinned">
390
- <div class="sb-pinned-head">
391
- <span class="sb-pinned-head-l">
392
- <prism-icon name="pin" [size]="10" class="sb-pinned-pin" />
393
- Pages
394
- </span>
395
- <span>{{ totalPages() }}</span>
396
- </div>
397
- @for (cat of pageCategories(); track cat.name) {
398
- <div
399
- class="sb-group"
400
- [class.sb-group--collapsed]="isCollapsed('page:' + cat.name)"
401
- >
402
- <button
403
- class="sb-group-head"
404
- (click)="toggleCollapse('page:' + cat.name)"
405
- [attr.aria-expanded]="!isCollapsed('page:' + cat.name)"
406
- >
407
- <prism-icon name="chevron-down" [size]="10" />
408
- <span class="sb-group-chip"></span>
409
- {{ cat.name }}
410
- </button>
411
- @if (!isCollapsed('page:' + cat.name)) {
412
- <div class="sb-group-body">
413
- @for (item of cat.items; track itemKey(item)) {
414
- <button
415
- class="sb-item"
416
- [class.sb-item--active]="isActive(item)"
417
- (click)="onSelect(item)"
418
- >
419
- <span class="sb-item-name">{{ itemLabel(item) }}</span>
420
- </button>
421
- }
422
- </div>
423
- }
424
- </div>
425
- }
426
- </div>
427
- } @for (section of componentSections(); track section.name) {
428
- <div class="sb-section-head">
429
- <span class="sb-section-head-l">
430
- <prism-icon
431
- [name]="section.icon"
432
- [size]="10"
433
- class="sb-section-icon"
434
- />
435
- {{ section.name }}
436
- </span>
437
- <span>{{ section.totalCount }}</span>
438
- </div>
439
- @for (cat of section.categories; track cat.name) {
440
- <div
441
- class="sb-group"
442
- [class.sb-group--collapsed]="
443
- isCollapsed('sec:' + section.name + ':' + cat.name)
444
- "
445
- >
446
- <button
447
- class="sb-group-head"
448
- (click)="toggleCollapse('sec:' + section.name + ':' + cat.name)"
449
- [attr.aria-expanded]="
450
- !isCollapsed('sec:' + section.name + ':' + cat.name)
451
- "
452
- >
453
- <prism-icon name="chevron-down" [size]="10" />
454
- <span class="sb-group-chip"></span>
455
- {{ cat.name }}
456
- <span
457
- class="sb-group-count"
458
- [class.sb-group-count--warn]="cat.rollup.variant === 'warn'"
459
- [class.sb-group-count--danger]="cat.rollup.variant === 'danger'"
460
- [attr.title]="
461
- cat.rollup.problems ? rollupTooltip(cat.rollup) : null
462
- "
463
- [attr.aria-label]="
464
- cat.rollup.problems ? rollupTooltip(cat.rollup) : null
465
- "
466
- >
467
- @if (cat.rollup.problems) { {{ cat.rollup.problems }}/{{
468
- cat.items.length
469
- }}
470
- } @else { {{ cat.items.length }} }
471
- </span>
472
- </button>
473
- @if (!isCollapsed('sec:' + section.name + ':' + cat.name)) {
474
- <div class="sb-group-body">
475
- @for (row of cat.items; track itemKey(row.item)) {
476
- <button
477
- class="sb-item"
478
- [class.sb-item--active]="isActive(row.item)"
479
- [class.sb-item--deprecated]="
480
- itemStatus(row.item) === 'deprecated'
481
- "
482
- [attr.title]="itemTooltip(row.item, row.decorations)"
483
- (click)="onSelect(row.item)"
484
- >
485
- <prism-icon [name]="row.icon" [size]="12" class="sb-item-icon" />
486
- <span class="sb-item-name">{{ itemLabel(row.item) }}</span>
487
- <span class="sb-item-health">
488
- @for (mark of row.decorations?.marks ?? []; track mark.id) {
489
- <prism-icon
490
- [name]="mark.icon"
491
- [size]="11"
492
- [class]="'sb-health sb-health--' + mark.variant"
493
- />
494
- }
495
- </span>
496
- </button>
497
- }
498
- </div>
499
- }
500
- </div>
501
- } }
502
- </div>
503
- </nav>
504
- `, styles: ["\n .prism-sidebar {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n }\n\n .sb-filter {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 12px;\n padding: 0 10px;\n height: 30px;\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 6px;\n color: var(--prism-text-muted);\n }\n .sb-filter input {\n flex: 1;\n min-width: 0;\n background: transparent;\n border: 0;\n outline: none;\n font-size: var(--fs-md);\n color: var(--prism-text);\n font-family: var(--font-sans);\n }\n .sb-filter input::placeholder { color: var(--prism-text-muted); }\n .sb-filter kbd {\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n padding: 1px 5px;\n border: 1px solid var(--prism-border);\n border-radius: 3px;\n }\n\n .sb-scroll {\n flex: 1;\n overflow-y: auto;\n padding: 10px 0 16px;\n padding-top: 0;\n }\n .sb-scroll::-webkit-scrollbar { width: 8px; }\n .sb-scroll::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 4px; }\n .sb-scroll::-webkit-scrollbar-track { background: transparent; }\n\n .sb-pinned {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-bottom: 1px solid var(--prism-border);\n border-top: 1px solid var(--prism-border);\n }\n .sb-section-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n margin-top: 6px;\n }\n .sb-section-head-l { display: flex; align-items: center; gap: 6px; }\n .sb-section-icon { color: var(--prism-primary); }\n .sb-pinned-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n }\n .sb-pinned-head-l { display: flex; align-items: center; gap: 6px; }\n .sb-pinned-pin { color: var(--prism-accent); }\n\n .sb-group { margin-bottom: 4px; }\n .sb-group-head {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 8px 14px 6px;\n font-size: 10.5px;\n font-weight: 700;\n letter-spacing: 0.09em;\n text-transform: uppercase;\n color: var(--prism-text-ghost);\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-group-head prism-icon {\n transition: transform var(--dur-fast);\n color: var(--prism-text-ghost);\n }\n .sb-group--collapsed .sb-group-head prism-icon { transform: rotate(-90deg); }\n\n .sb-group-chip {\n width: 6px;\n height: 6px;\n border-radius: 2px;\n background: var(--prism-text-ghost);\n }\n .sb-group-count {\n margin-left: auto;\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n font-weight: 500;\n }\n .sb-group-count--warn { color: var(--prism-mark-attention); }\n .sb-group-count--danger { color: var(--prism-mark-critical); }\n\n .sb-item {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n height: 30px;\n padding: 0 14px 0 28px;\n font-size: 13px;\n color: var(--prism-text-2);\n cursor: pointer;\n border: none;\n background: none;\n transition: background var(--dur-fast), color var(--dur-fast);\n text-align: left;\n font-family: var(--font-sans);\n }\n .sb-item:hover {\n background: color-mix(in srgb, var(--prism-primary) 5%, transparent);\n color: var(--prism-text);\n }\n .sb-item--active {\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n font-weight: 500;\n }\n .sb-item-icon { flex: 0 0 12px; opacity: 0.7; }\n .sb-item-name {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n /* Fixed width sized for the three built-in decoration sources (a11y,\n plugin-coverage, plugin-visual-regression) at 11px each plus two\n --sp-1 gaps, with a little headroom. navigationDecorations is an open\n extension point, so a fourth mark from a third-party plugin is\n clipped via overflow: hidden rather than allowed to grow the gutter \u2014\n the point of a fixed-width gutter is that rows never shift\n horizontally as you scan the list. */\n .sb-item-health {\n width: 40px;\n flex: none;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--sp-1);\n overflow: hidden;\n }\n\n /* Outline, not fill, and full saturation only for danger. The mechanism\n behind these marks is already deviation-driven: decorateItem returns\n null for a clean component and every source bails out at variant === 'ok'.\n What made them read as wallpaper was the drawing: a filled shape at full\n saturation, one per row, in a repo where deviating is the normal case. */\n .sb-health { fill: none; stroke: currentColor; stroke-width: 2; }\n .sb-health--warn {\n color: color-mix(in srgb, var(--prism-mark-attention) 80%, transparent);\n }\n .sb-health--danger { color: var(--prism-mark-critical); }\n\n .sb-item--deprecated .sb-item-name {\n text-decoration: line-through;\n text-decoration-thickness: 1px;\n color: var(--prism-text-ghost);\n opacity: 0.7;\n }\n\n\n :focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n }\n "] }]
369
+ args: [{ selector: 'prism-sidebar', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [PrismIconComponent], template: "<nav class=\"prism-sidebar\">\n <div class=\"sb-filter\">\n <prism-icon\n name=\"search\"\n [size]=\"12\" />\n <input\n #filterInput\n placeholder=\"Filter components\u2026\"\n [value]=\"searchService.query()\"\n (input)=\"searchService.search($any($event.target).value)\" />\n <kbd>/</kbd>\n </div>\n\n <div class=\"sb-scroll\">\n @if (pageCategories().length > 0) {\n <div class=\"sb-pinned\">\n <div class=\"sb-pinned-head\">\n <span class=\"sb-pinned-head-l\">\n <prism-icon\n name=\"pin\"\n [size]=\"10\"\n class=\"sb-pinned-pin\" />\n Pages\n </span>\n <span>{{ totalPages() }}</span>\n </div>\n @for (cat of pageCategories(); track cat.name) {\n <div\n class=\"sb-group\"\n [class.sb-group--collapsed]=\"isCollapsed('page:' + cat.name)\">\n <button\n class=\"sb-group-head\"\n (click)=\"toggleCollapse('page:' + cat.name)\"\n [attr.aria-expanded]=\"!isCollapsed('page:' + cat.name)\">\n <prism-icon\n name=\"chevron-down\"\n [size]=\"10\" />\n <span class=\"sb-group-chip\"></span>\n {{ cat.name }}\n </button>\n @if (!isCollapsed('page:' + cat.name)) {\n <div class=\"sb-group-body\">\n @for (item of cat.items; track itemKey(item)) {\n <button\n class=\"sb-item\"\n [class.sb-item--active]=\"isActive(item)\"\n (click)=\"onSelect(item)\">\n <span class=\"sb-item-name\">{{ itemLabel(item) }}</span>\n </button>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n @for (section of componentSections(); track section.name) {\n <div class=\"sb-section-head\">\n <span class=\"sb-section-head-l\">\n <prism-icon\n [name]=\"section.icon\"\n [size]=\"10\"\n class=\"sb-section-icon\" />\n {{ section.name }}\n </span>\n <span>{{ section.totalCount }}</span>\n </div>\n @for (cat of section.categories; track cat.name) {\n <div\n class=\"sb-group\"\n [class.sb-group--collapsed]=\"isCollapsed('sec:' + section.name + ':' + cat.name)\">\n <button\n class=\"sb-group-head\"\n (click)=\"toggleCollapse('sec:' + section.name + ':' + cat.name)\"\n [attr.aria-expanded]=\"!isCollapsed('sec:' + section.name + ':' + cat.name)\">\n <prism-icon\n name=\"chevron-down\"\n [size]=\"10\" />\n <span class=\"sb-group-chip\"></span>\n {{ cat.name }}\n <span\n class=\"sb-group-count\"\n [class.sb-group-count--warn]=\"cat.rollup.variant === 'warn'\"\n [class.sb-group-count--danger]=\"cat.rollup.variant === 'danger'\"\n [attr.title]=\"cat.rollup.problems ? rollupTooltip(cat.rollup) : null\"\n [attr.aria-label]=\"cat.rollup.problems ? rollupTooltip(cat.rollup) : null\">\n @if (cat.rollup.problems) {\n {{ cat.rollup.problems }}/{{ cat.items.length }}\n } @else {\n {{ cat.items.length }}\n }\n </span>\n </button>\n @if (!isCollapsed('sec:' + section.name + ':' + cat.name)) {\n <div class=\"sb-group-body\">\n @for (row of cat.items; track itemKey(row.item)) {\n <button\n class=\"sb-item\"\n [class.sb-item--active]=\"isActive(row.item)\"\n [class.sb-item--deprecated]=\"itemStatus(row.item) === 'deprecated'\"\n [attr.title]=\"itemTooltip(row.item, row.decorations)\"\n (click)=\"onSelect(row.item)\">\n <prism-icon\n [name]=\"row.icon\"\n [size]=\"12\"\n class=\"sb-item-icon\" />\n <span class=\"sb-item-name\">{{ itemLabel(row.item) }}</span>\n <span class=\"sb-item-health\">\n @for (mark of row.decorations?.marks ?? []; track mark.id) {\n <prism-icon\n [name]=\"mark.icon\"\n [size]=\"11\"\n [class]=\"'sb-health sb-health--' + mark.variant\" />\n }\n </span>\n </button>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n</nav>\n", styles: [".prism-sidebar {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-height: 0;\n overflow: hidden;\n}\n\n.sb-filter {\n display: flex;\n gap: 8px;\n align-items: center;\n height: 30px;\n padding: 0 10px;\n margin: 12px;\n color: var(--prism-text-muted);\n background: var(--prism-input-bg);\n border: 1px solid var(--prism-border);\n border-radius: 6px;\n}\n\n.sb-filter input {\n flex: 1;\n min-width: 0;\n font-family: var(--font-sans);\n font-size: var(--fs-md);\n color: var(--prism-text);\n outline: none;\n background: transparent;\n border: 0;\n}\n\n.sb-filter input::placeholder {\n color: var(--prism-text-muted);\n}\n\n.sb-filter kbd {\n padding: 1px 5px;\n font-family: var(--font-mono);\n font-size: 10px;\n color: var(--prism-text-ghost);\n border: 1px solid var(--prism-border);\n border-radius: 3px;\n}\n\n.sb-scroll {\n flex: 1;\n padding: 10px 0 16px;\n padding-top: 0;\n overflow-y: auto;\n}\n\n.sb-scroll::-webkit-scrollbar {\n width: 8px;\n}\n\n.sb-scroll::-webkit-scrollbar-thumb {\n background: var(--prism-border-strong);\n border-radius: 4px;\n}\n\n.sb-scroll::-webkit-scrollbar-track {\n background: transparent;\n}\n\n.sb-pinned {\n padding: 0 0 10px;\n margin-bottom: 4px;\n border-top: 1px solid var(--prism-border);\n border-bottom: 1px solid var(--prism-border);\n}\n\n.sb-section-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n color: var(--prism-text-ghost);\n text-transform: uppercase;\n letter-spacing: 0.09em;\n}\n\n.sb-section-head-l {\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n.sb-section-icon {\n color: var(--prism-primary);\n}\n\n.sb-pinned-head {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 8px 14px 6px;\n margin-top: 6px;\n font-size: 10.5px;\n font-weight: 700;\n color: var(--prism-text-ghost);\n text-transform: uppercase;\n letter-spacing: 0.09em;\n}\n\n.sb-pinned-head-l {\n display: flex;\n gap: 6px;\n align-items: center;\n}\n\n.sb-pinned-pin {\n color: var(--prism-accent);\n}\n\n.sb-group {\n margin-bottom: 4px;\n}\n\n.sb-group-head {\n display: flex;\n gap: 6px;\n align-items: center;\n width: 100%;\n padding: 8px 14px 6px;\n font-family: var(--font-sans);\n font-size: 10.5px;\n font-weight: 700;\n color: var(--prism-text-ghost);\n text-align: left;\n text-transform: uppercase;\n letter-spacing: 0.09em;\n cursor: pointer;\n user-select: none;\n background: none;\n border: none;\n}\n\n.sb-group-head prism-icon {\n color: var(--prism-text-ghost);\n transition: transform var(--dur-fast);\n}\n\n.sb-group--collapsed .sb-group-head prism-icon {\n transform: rotate(-90deg);\n}\n\n.sb-group-chip {\n width: 6px;\n height: 6px;\n background: var(--prism-text-ghost);\n border-radius: 2px;\n}\n\n.sb-group-count {\n margin-left: auto;\n font-family: var(--font-mono);\n font-size: 10px;\n font-weight: 500;\n color: var(--prism-text-ghost);\n}\n\n.sb-group-count--warn {\n color: var(--prism-mark-attention);\n}\n\n.sb-group-count--danger {\n color: var(--prism-mark-critical);\n}\n\n.sb-item {\n display: flex;\n gap: 10px;\n align-items: center;\n width: 100%;\n height: 30px;\n padding: 0 14px 0 28px;\n font-family: var(--font-sans);\n font-size: 13px;\n color: var(--prism-text-2);\n text-align: left;\n cursor: pointer;\n background: none;\n border: none;\n transition:\n background var(--dur-fast),\n color var(--dur-fast);\n}\n\n.sb-item:hover {\n color: var(--prism-text);\n background: color-mix(in srgb, var(--prism-primary) 5%, transparent);\n}\n\n.sb-item--active {\n font-weight: 500;\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n}\n\n.sb-item-icon {\n flex: 0 0 12px;\n opacity: 0.7;\n}\n\n.sb-item-name {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Fixed width sized for the three built-in decoration sources (a11y,\n plugin-coverage, plugin-visual-regression) at 11px each plus two\n --sp-1 gaps, with a little headroom. navigationDecorations is an open\n extension point, so a fourth mark from a third-party plugin is\n clipped via overflow: hidden rather than allowed to grow the gutter \u2014\n the point of a fixed-width gutter is that rows never shift\n horizontally as you scan the list. */\n.sb-item-health {\n display: flex;\n flex: none;\n gap: var(--sp-1);\n align-items: center;\n justify-content: flex-end;\n width: 40px;\n overflow: hidden;\n}\n\n/* Outline, not fill, and full saturation only for danger. The mechanism\n behind these marks is already deviation-driven: decorateItem returns\n null for a clean component and every source bails out at variant === 'ok'.\n What made them read as wallpaper was the drawing: a filled shape at full\n saturation, one per row, in a repo where deviating is the normal case. */\n.sb-health {\n fill: none;\n stroke: currentcolor;\n stroke-width: 2;\n}\n\n.sb-health--warn {\n color: color-mix(in srgb, var(--prism-mark-attention) 80%, transparent);\n}\n\n.sb-health--danger {\n color: var(--prism-mark-critical);\n}\n\n.sb-item--deprecated .sb-item-name {\n color: var(--prism-text-ghost);\n text-decoration: line-through;\n text-decoration-thickness: 1px;\n opacity: 0.7;\n}\n\n:focus-visible {\n outline: 2px solid var(--prism-primary);\n outline-offset: 2px;\n}\n"] }]
505
370
  }], null, { filterInput: [{ type: i0.ViewChild, args: ['filterInput', { isSignal: true }] }], onGlobalKey: [{
506
371
  type: HostListener,
507
372
  args: ['document:keydown', ['$event']]
508
373
  }] }); })();
509
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismSidebarComponent, { className: "PrismSidebarComponent", filePath: "app/sidebar/prism-sidebar.component.ts", lineNumber: 394 }); })();
374
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismSidebarComponent, { className: "PrismSidebarComponent", filePath: "app/sidebar/prism-sidebar.component.ts", lineNumber: 48 }); })();
@@ -1 +1 @@
1
- {"version":3,"file":"prism-default-theme.d.ts","sourceRoot":"","sources":["../../../src/app/theme/prism-default-theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0CnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0CpD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0DpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBAAmB,CAAC"}
1
+ {"version":3,"file":"prism-default-theme.d.ts","sourceRoot":"","sources":["../../../src/app/theme/prism-default-theme.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyCnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyCpD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0DpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBAAmB,CAAC"}