@ng-prism/core 21.0.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 (307) hide show
  1. package/README.md +170 -0
  2. package/builders.json +14 -0
  3. package/dist/app/component-header/prism-component-header.component.d.ts +8 -0
  4. package/dist/app/component-header/prism-component-header.component.d.ts.map +1 -0
  5. package/dist/app/component-header/prism-component-header.component.js +77 -0
  6. package/dist/app/controls/boolean-control.component.d.ts +10 -0
  7. package/dist/app/controls/boolean-control.component.d.ts.map +1 -0
  8. package/dist/app/controls/boolean-control.component.js +58 -0
  9. package/dist/app/controls/json-control.component.d.ts +19 -0
  10. package/dist/app/controls/json-control.component.d.ts.map +1 -0
  11. package/dist/app/controls/json-control.component.js +136 -0
  12. package/dist/app/controls/number-control.component.d.ts +10 -0
  13. package/dist/app/controls/number-control.component.d.ts.map +1 -0
  14. package/dist/app/controls/number-control.component.js +55 -0
  15. package/dist/app/controls/string-control.component.d.ts +10 -0
  16. package/dist/app/controls/string-control.component.d.ts.map +1 -0
  17. package/dist/app/controls/string-control.component.js +55 -0
  18. package/dist/app/controls/union-control.component.d.ts +11 -0
  19. package/dist/app/controls/union-control.component.d.ts.map +1 -0
  20. package/dist/app/controls/union-control.component.js +72 -0
  21. package/dist/app/header/prism-header.component.d.ts +10 -0
  22. package/dist/app/header/prism-header.component.d.ts.map +1 -0
  23. package/dist/app/header/prism-header.component.js +241 -0
  24. package/dist/app/hmr.d.ts +4 -0
  25. package/dist/app/hmr.d.ts.map +1 -0
  26. package/dist/app/hmr.js +5 -0
  27. package/dist/app/index.d.ts +18 -0
  28. package/dist/app/index.d.ts.map +1 -0
  29. package/dist/app/index.js +21 -0
  30. package/dist/app/layout-menu/prism-layout-menu.component.d.ts +10 -0
  31. package/dist/app/layout-menu/prism-layout-menu.component.d.ts.map +1 -0
  32. package/dist/app/layout-menu/prism-layout-menu.component.js +190 -0
  33. package/dist/app/page-renderer/prism-icon-page.component.d.ts +8 -0
  34. package/dist/app/page-renderer/prism-icon-page.component.d.ts.map +1 -0
  35. package/dist/app/page-renderer/prism-icon-page.component.js +42 -0
  36. package/dist/app/page-renderer/prism-page-renderer.component.d.ts +8 -0
  37. package/dist/app/page-renderer/prism-page-renderer.component.d.ts.map +1 -0
  38. package/dist/app/page-renderer/prism-page-renderer.component.js +72 -0
  39. package/dist/app/page-renderer/prism-token-page.component.d.ts +8 -0
  40. package/dist/app/page-renderer/prism-token-page.component.d.ts.map +1 -0
  41. package/dist/app/page-renderer/prism-token-page.component.js +164 -0
  42. package/dist/app/panels/a11y/a11y-audit.service.d.ts +17 -0
  43. package/dist/app/panels/a11y/a11y-audit.service.d.ts.map +1 -0
  44. package/dist/app/panels/a11y/a11y-audit.service.js +71 -0
  45. package/dist/app/panels/a11y/a11y-core.plugin.d.ts +3 -0
  46. package/dist/app/panels/a11y/a11y-core.plugin.d.ts.map +1 -0
  47. package/dist/app/panels/a11y/a11y-core.plugin.js +8 -0
  48. package/dist/app/panels/a11y/a11y-dom-utils.d.ts +11 -0
  49. package/dist/app/panels/a11y/a11y-dom-utils.d.ts.map +1 -0
  50. package/dist/app/panels/a11y/a11y-dom-utils.js +149 -0
  51. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.d.ts +24 -0
  52. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.d.ts.map +1 -0
  53. package/dist/app/panels/a11y/a11y-keyboard-overlay.component.js +104 -0
  54. package/dist/app/panels/a11y/a11y-keyboard.component.d.ts +12 -0
  55. package/dist/app/panels/a11y/a11y-keyboard.component.d.ts.map +1 -0
  56. package/dist/app/panels/a11y/a11y-keyboard.component.js +150 -0
  57. package/dist/app/panels/a11y/a11y-keyboard.service.d.ts +8 -0
  58. package/dist/app/panels/a11y/a11y-keyboard.service.d.ts.map +1 -0
  59. package/dist/app/panels/a11y/a11y-keyboard.service.js +71 -0
  60. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts +6 -0
  61. package/dist/app/panels/a11y/a11y-overlay-host.component.d.ts.map +1 -0
  62. package/dist/app/panels/a11y/a11y-overlay-host.component.js +18 -0
  63. package/dist/app/panels/a11y/a11y-panel-state.service.d.ts +8 -0
  64. package/dist/app/panels/a11y/a11y-panel-state.service.d.ts.map +1 -0
  65. package/dist/app/panels/a11y/a11y-panel-state.service.js +11 -0
  66. package/dist/app/panels/a11y/a11y-panel.component.d.ts +14 -0
  67. package/dist/app/panels/a11y/a11y-panel.component.d.ts.map +1 -0
  68. package/dist/app/panels/a11y/a11y-panel.component.js +183 -0
  69. package/dist/app/panels/a11y/a11y-perspective.service.d.ts +8 -0
  70. package/dist/app/panels/a11y/a11y-perspective.service.d.ts.map +1 -0
  71. package/dist/app/panels/a11y/a11y-perspective.service.js +11 -0
  72. package/dist/app/panels/a11y/a11y-score.component.d.ts +11 -0
  73. package/dist/app/panels/a11y/a11y-score.component.d.ts.map +1 -0
  74. package/dist/app/panels/a11y/a11y-score.component.js +72 -0
  75. package/dist/app/panels/a11y/a11y-sr-overlay.component.d.ts +27 -0
  76. package/dist/app/panels/a11y/a11y-sr-overlay.component.d.ts.map +1 -0
  77. package/dist/app/panels/a11y/a11y-sr-overlay.component.js +127 -0
  78. package/dist/app/panels/a11y/a11y-sr.component.d.ts +19 -0
  79. package/dist/app/panels/a11y/a11y-sr.component.d.ts.map +1 -0
  80. package/dist/app/panels/a11y/a11y-sr.component.js +257 -0
  81. package/dist/app/panels/a11y/a11y-sr.service.d.ts +8 -0
  82. package/dist/app/panels/a11y/a11y-sr.service.d.ts.map +1 -0
  83. package/dist/app/panels/a11y/a11y-sr.service.js +102 -0
  84. package/dist/app/panels/a11y/a11y-tree.component.d.ts +27 -0
  85. package/dist/app/panels/a11y/a11y-tree.component.d.ts.map +1 -0
  86. package/dist/app/panels/a11y/a11y-tree.component.js +229 -0
  87. package/dist/app/panels/a11y/a11y-tree.service.d.ts +8 -0
  88. package/dist/app/panels/a11y/a11y-tree.service.d.ts.map +1 -0
  89. package/dist/app/panels/a11y/a11y-tree.service.js +47 -0
  90. package/dist/app/panels/a11y/a11y-violations.component.d.ts +15 -0
  91. package/dist/app/panels/a11y/a11y-violations.component.d.ts.map +1 -0
  92. package/dist/app/panels/a11y/a11y-violations.component.js +457 -0
  93. package/dist/app/panels/a11y/a11y.types.d.ts +44 -0
  94. package/dist/app/panels/a11y/a11y.types.d.ts.map +1 -0
  95. package/dist/app/panels/a11y/a11y.types.js +1 -0
  96. package/dist/app/panels/builtin-panels.d.ts +3 -0
  97. package/dist/app/panels/builtin-panels.d.ts.map +1 -0
  98. package/dist/app/panels/builtin-panels.js +8 -0
  99. package/dist/app/panels/controls/controls-plugin.d.ts +3 -0
  100. package/dist/app/panels/controls/controls-plugin.d.ts.map +1 -0
  101. package/dist/app/panels/controls/controls-plugin.js +12 -0
  102. package/dist/app/panels/controls/prism-controls-panel.component.d.ts +13 -0
  103. package/dist/app/panels/controls/prism-controls-panel.component.d.ts.map +1 -0
  104. package/dist/app/panels/controls/prism-controls-panel.component.js +178 -0
  105. package/dist/app/panels/events/events-plugin.d.ts +3 -0
  106. package/dist/app/panels/events/events-plugin.d.ts.map +1 -0
  107. package/dist/app/panels/events/events-plugin.js +12 -0
  108. package/dist/app/panels/events/prism-events-panel.component.d.ts +9 -0
  109. package/dist/app/panels/events/prism-events-panel.component.d.ts.map +1 -0
  110. package/dist/app/panels/events/prism-events-panel.component.js +83 -0
  111. package/dist/app/panels/events/prism-json-node.component.d.ts +22 -0
  112. package/dist/app/panels/events/prism-json-node.component.d.ts.map +1 -0
  113. package/dist/app/panels/events/prism-json-node.component.js +350 -0
  114. package/dist/app/panels/events/prism-json-node.utils.d.ts +2 -0
  115. package/dist/app/panels/events/prism-json-node.utils.d.ts.map +1 -0
  116. package/dist/app/panels/events/prism-json-node.utils.js +40 -0
  117. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts +26 -0
  118. package/dist/app/panels/panel-host/prism-panel-host.component.d.ts.map +1 -0
  119. package/dist/app/panels/panel-host/prism-panel-host.component.js +157 -0
  120. package/dist/app/provide-prism.d.ts +8 -0
  121. package/dist/app/provide-prism.d.ts.map +1 -0
  122. package/dist/app/provide-prism.js +21 -0
  123. package/dist/app/renderer/highlight-xml.d.ts +2 -0
  124. package/dist/app/renderer/highlight-xml.d.ts.map +1 -0
  125. package/dist/app/renderer/highlight-xml.js +27 -0
  126. package/dist/app/renderer/prism-renderer.component.d.ts +32 -0
  127. package/dist/app/renderer/prism-renderer.component.d.ts.map +1 -0
  128. package/dist/app/renderer/prism-renderer.component.js +346 -0
  129. package/dist/app/renderer/snippet-generator.d.ts +7 -0
  130. package/dist/app/renderer/snippet-generator.d.ts.map +1 -0
  131. package/dist/app/renderer/snippet-generator.js +162 -0
  132. package/dist/app/services/navigation-item.types.d.ts +10 -0
  133. package/dist/app/services/navigation-item.types.d.ts.map +1 -0
  134. package/dist/app/services/navigation-item.types.js +1 -0
  135. package/dist/app/services/prism-event-log.service.d.ts +16 -0
  136. package/dist/app/services/prism-event-log.service.d.ts.map +1 -0
  137. package/dist/app/services/prism-event-log.service.js +21 -0
  138. package/dist/app/services/prism-layout.service.d.ts +23 -0
  139. package/dist/app/services/prism-layout.service.d.ts.map +1 -0
  140. package/dist/app/services/prism-layout.service.js +85 -0
  141. package/dist/app/services/prism-manifest.service.d.ts +15 -0
  142. package/dist/app/services/prism-manifest.service.d.ts.map +1 -0
  143. package/dist/app/services/prism-manifest.service.js +53 -0
  144. package/dist/app/services/prism-navigation.service.d.ts +18 -0
  145. package/dist/app/services/prism-navigation.service.d.ts.map +1 -0
  146. package/dist/app/services/prism-navigation.service.js +94 -0
  147. package/dist/app/services/prism-panel.service.d.ts +8 -0
  148. package/dist/app/services/prism-panel.service.d.ts.map +1 -0
  149. package/dist/app/services/prism-panel.service.js +12 -0
  150. package/dist/app/services/prism-plugin.service.d.ts +12 -0
  151. package/dist/app/services/prism-plugin.service.d.ts.map +1 -0
  152. package/dist/app/services/prism-plugin.service.js +32 -0
  153. package/dist/app/services/prism-renderer.service.d.ts +18 -0
  154. package/dist/app/services/prism-renderer.service.d.ts.map +1 -0
  155. package/dist/app/services/prism-renderer.service.js +84 -0
  156. package/dist/app/services/prism-search.service.d.ts +13 -0
  157. package/dist/app/services/prism-search.service.d.ts.map +1 -0
  158. package/dist/app/services/prism-search.service.js +39 -0
  159. package/dist/app/services/prism-theme.service.d.ts +9 -0
  160. package/dist/app/services/prism-theme.service.d.ts.map +1 -0
  161. package/dist/app/services/prism-theme.service.js +23 -0
  162. package/dist/app/services/prism-url-state.service.d.ts +16 -0
  163. package/dist/app/services/prism-url-state.service.d.ts.map +1 -0
  164. package/dist/app/services/prism-url-state.service.js +108 -0
  165. package/dist/app/shell/prism-shell.component.d.ts +22 -0
  166. package/dist/app/shell/prism-shell.component.d.ts.map +1 -0
  167. package/dist/app/shell/prism-shell.component.js +283 -0
  168. package/dist/app/sidebar/prism-sidebar.component.d.ts +14 -0
  169. package/dist/app/sidebar/prism-sidebar.component.d.ts.map +1 -0
  170. package/dist/app/sidebar/prism-sidebar.component.js +105 -0
  171. package/dist/app/theme/prism-default-theme.d.ts +4 -0
  172. package/dist/app/theme/prism-default-theme.d.ts.map +1 -0
  173. package/dist/app/theme/prism-default-theme.js +57 -0
  174. package/dist/app/tokens/prism-tokens.d.ts +11 -0
  175. package/dist/app/tokens/prism-tokens.d.ts.map +1 -0
  176. package/dist/app/tokens/prism-tokens.js +7 -0
  177. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts +22 -0
  178. package/dist/app/view-tab-bar/prism-view-panel-host.component.d.ts.map +1 -0
  179. package/dist/app/view-tab-bar/prism-view-panel-host.component.js +90 -0
  180. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts +10 -0
  181. package/dist/app/view-tab-bar/prism-view-tab-bar.component.d.ts.map +1 -0
  182. package/dist/app/view-tab-bar/prism-view-tab-bar.component.js +65 -0
  183. package/dist/builder/build/index.d.ts +6 -0
  184. package/dist/builder/build/index.d.ts.map +1 -0
  185. package/dist/builder/build/index.js +15 -0
  186. package/dist/builder/build/schema.d.ts +9 -0
  187. package/dist/builder/build/schema.d.ts.map +1 -0
  188. package/dist/builder/build/schema.js +1 -0
  189. package/dist/builder/config-loader/config-loader.d.ts +8 -0
  190. package/dist/builder/config-loader/config-loader.d.ts.map +1 -0
  191. package/dist/builder/config-loader/config-loader.js +33 -0
  192. package/dist/builder/config-loader/index.d.ts +3 -0
  193. package/dist/builder/config-loader/index.d.ts.map +1 -0
  194. package/dist/builder/config-loader/index.js +1 -0
  195. package/dist/builder/icon-resolver/icon-resolver.d.ts +7 -0
  196. package/dist/builder/icon-resolver/icon-resolver.d.ts.map +1 -0
  197. package/dist/builder/icon-resolver/icon-resolver.js +12 -0
  198. package/dist/builder/icon-resolver/index.d.ts +2 -0
  199. package/dist/builder/icon-resolver/index.d.ts.map +1 -0
  200. package/dist/builder/icon-resolver/index.js +1 -0
  201. package/dist/builder/manifest/host-parser.d.ts +6 -0
  202. package/dist/builder/manifest/host-parser.d.ts.map +1 -0
  203. package/dist/builder/manifest/host-parser.js +9 -0
  204. package/dist/builder/manifest/index.d.ts +3 -0
  205. package/dist/builder/manifest/index.d.ts.map +1 -0
  206. package/dist/builder/manifest/index.js +1 -0
  207. package/dist/builder/manifest/runtime-manifest.generator.d.ts +9 -0
  208. package/dist/builder/manifest/runtime-manifest.generator.d.ts.map +1 -0
  209. package/dist/builder/manifest/runtime-manifest.generator.js +216 -0
  210. package/dist/builder/plugin-runner/index.d.ts +2 -0
  211. package/dist/builder/plugin-runner/index.d.ts.map +1 -0
  212. package/dist/builder/plugin-runner/index.js +1 -0
  213. package/dist/builder/plugin-runner/plugin-runner.d.ts +3 -0
  214. package/dist/builder/plugin-runner/plugin-runner.d.ts.map +1 -0
  215. package/dist/builder/plugin-runner/plugin-runner.js +38 -0
  216. package/dist/builder/scanner/ast-utils.d.ts +20 -0
  217. package/dist/builder/scanner/ast-utils.d.ts.map +1 -0
  218. package/dist/builder/scanner/ast-utils.js +100 -0
  219. package/dist/builder/scanner/component.scanner.d.ts +7 -0
  220. package/dist/builder/scanner/component.scanner.d.ts.map +1 -0
  221. package/dist/builder/scanner/component.scanner.js +113 -0
  222. package/dist/builder/scanner/entry-point-discovery.d.ts +6 -0
  223. package/dist/builder/scanner/entry-point-discovery.d.ts.map +1 -0
  224. package/dist/builder/scanner/entry-point-discovery.js +38 -0
  225. package/dist/builder/scanner/entry-point.scanner.d.ts +11 -0
  226. package/dist/builder/scanner/entry-point.scanner.d.ts.map +1 -0
  227. package/dist/builder/scanner/entry-point.scanner.js +19 -0
  228. package/dist/builder/scanner/index.d.ts +8 -0
  229. package/dist/builder/scanner/index.d.ts.map +1 -0
  230. package/dist/builder/scanner/index.js +6 -0
  231. package/dist/builder/scanner/input.extractor.d.ts +11 -0
  232. package/dist/builder/scanner/input.extractor.d.ts.map +1 -0
  233. package/dist/builder/scanner/input.extractor.js +169 -0
  234. package/dist/builder/scanner/manifest.generator.d.ts +6 -0
  235. package/dist/builder/scanner/manifest.generator.d.ts.map +1 -0
  236. package/dist/builder/scanner/manifest.generator.js +59 -0
  237. package/dist/builder/scanner/scanner.d.ts +16 -0
  238. package/dist/builder/scanner/scanner.d.ts.map +1 -0
  239. package/dist/builder/scanner/scanner.js +28 -0
  240. package/dist/builder/serve/index.d.ts +6 -0
  241. package/dist/builder/serve/index.d.ts.map +1 -0
  242. package/dist/builder/serve/index.js +48 -0
  243. package/dist/builder/serve/schema.d.ts +9 -0
  244. package/dist/builder/serve/schema.d.ts.map +1 -0
  245. package/dist/builder/serve/schema.js +1 -0
  246. package/dist/builder/shared/index.d.ts +3 -0
  247. package/dist/builder/shared/index.d.ts.map +1 -0
  248. package/dist/builder/shared/index.js +1 -0
  249. package/dist/builder/shared/prism-pipeline.d.ts +21 -0
  250. package/dist/builder/shared/prism-pipeline.d.ts.map +1 -0
  251. package/dist/builder/shared/prism-pipeline.js +95 -0
  252. package/dist/builder/token-scanner/index.d.ts +2 -0
  253. package/dist/builder/token-scanner/index.d.ts.map +1 -0
  254. package/dist/builder/token-scanner/index.js +1 -0
  255. package/dist/builder/token-scanner/token-scanner.d.ts +9 -0
  256. package/dist/builder/token-scanner/token-scanner.d.ts.map +1 -0
  257. package/dist/builder/token-scanner/token-scanner.js +95 -0
  258. package/dist/builder/watcher/index.d.ts +3 -0
  259. package/dist/builder/watcher/index.d.ts.map +1 -0
  260. package/dist/builder/watcher/index.js +1 -0
  261. package/dist/builder/watcher/prism-watcher.d.ts +29 -0
  262. package/dist/builder/watcher/prism-watcher.d.ts.map +1 -0
  263. package/dist/builder/watcher/prism-watcher.js +79 -0
  264. package/dist/config/index.d.ts +6 -0
  265. package/dist/config/index.d.ts.map +1 -0
  266. package/dist/config/index.js +2 -0
  267. package/dist/decorator/index.d.ts +3 -0
  268. package/dist/decorator/index.d.ts.map +1 -0
  269. package/dist/decorator/index.js +1 -0
  270. package/dist/decorator/showcase.decorator.d.ts +5 -0
  271. package/dist/decorator/showcase.decorator.d.ts.map +1 -0
  272. package/dist/decorator/showcase.decorator.js +7 -0
  273. package/dist/decorator/showcase.types.d.ts +54 -0
  274. package/dist/decorator/showcase.types.d.ts.map +1 -0
  275. package/dist/decorator/showcase.types.js +1 -0
  276. package/dist/index.d.ts +4 -0
  277. package/dist/index.d.ts.map +1 -0
  278. package/dist/index.js +6 -0
  279. package/dist/plugin/define-config.d.ts +4 -0
  280. package/dist/plugin/define-config.d.ts.map +1 -0
  281. package/dist/plugin/define-config.js +4 -0
  282. package/dist/plugin/index.d.ts +8 -0
  283. package/dist/plugin/index.d.ts.map +1 -0
  284. package/dist/plugin/index.js +3 -0
  285. package/dist/plugin/page-helpers.d.ts +19 -0
  286. package/dist/plugin/page-helpers.d.ts.map +1 -0
  287. package/dist/plugin/page-helpers.js +20 -0
  288. package/dist/plugin/page.types.d.ts +19 -0
  289. package/dist/plugin/page.types.d.ts.map +1 -0
  290. package/dist/plugin/page.types.js +1 -0
  291. package/dist/plugin/plugin.types.d.ts +98 -0
  292. package/dist/plugin/plugin.types.d.ts.map +1 -0
  293. package/dist/plugin/plugin.types.js +1 -0
  294. package/dist/schematics/ng-add/index.d.ts +4 -0
  295. package/dist/schematics/ng-add/index.d.ts.map +1 -0
  296. package/dist/schematics/ng-add/index.js +179 -0
  297. package/dist/schematics/ng-add/schema.d.ts +5 -0
  298. package/dist/schematics/ng-add/schema.d.ts.map +1 -0
  299. package/dist/schematics/ng-add/schema.js +1 -0
  300. package/dist/test-setup-browser.d.ts +2 -0
  301. package/dist/test-setup-browser.d.ts.map +1 -0
  302. package/dist/test-setup-browser.js +4 -0
  303. package/package.json +73 -0
  304. package/schematics/collection.json +10 -0
  305. package/schematics/ng-add/schema.json +20 -0
  306. package/src/builder/build/schema.json +35 -0
  307. package/src/builder/serve/schema.json +36 -0
@@ -0,0 +1,108 @@
1
+ import { effect, inject, Injectable, Injector } from '@angular/core';
2
+ import { PRISM_CONFIG } from '../tokens/prism-tokens.js';
3
+ import { PrismManifestService } from './prism-manifest.service.js';
4
+ import { PrismNavigationService } from './prism-navigation.service.js';
5
+ import { PrismPanelService } from './prism-panel.service.js';
6
+ import { PrismRendererService } from './prism-renderer.service.js';
7
+ import * as i0 from "@angular/core";
8
+ const PARAM_COMPONENT = 'component';
9
+ const PARAM_PAGE = 'page';
10
+ const PARAM_VARIANT = 'variant';
11
+ const PARAM_VIEW = 'view';
12
+ const DEFAULT_VIEW = 'renderer';
13
+ export class PrismUrlStateService {
14
+ manifestService = inject(PrismManifestService);
15
+ navigationService = inject(PrismNavigationService);
16
+ rendererService = inject(PrismRendererService);
17
+ panelService = inject(PrismPanelService);
18
+ config = inject(PRISM_CONFIG);
19
+ injector = inject(Injector);
20
+ suppressSync = false;
21
+ init() {
22
+ if (this.config.urlState === false)
23
+ return;
24
+ this.restoreFromUrl();
25
+ effect(() => {
26
+ const item = this.navigationService.activeItem();
27
+ const variantIndex = this.rendererService.activeVariantIndex();
28
+ const viewId = this.panelService.activeViewId();
29
+ if (this.suppressSync)
30
+ return;
31
+ this.writeToUrl(item, variantIndex, viewId);
32
+ }, { injector: this.injector });
33
+ window.addEventListener('popstate', () => this.restoreFromUrl());
34
+ }
35
+ restoreFromUrl() {
36
+ const params = new URLSearchParams(window.location.search);
37
+ const componentClassName = params.get(PARAM_COMPONENT);
38
+ const pageTitle = params.get(PARAM_PAGE);
39
+ const variantParam = params.get(PARAM_VARIANT);
40
+ const viewId = params.get(PARAM_VIEW);
41
+ this.suppressSync = true;
42
+ try {
43
+ if (componentClassName) {
44
+ const comp = this.manifestService.components()
45
+ .find((c) => c.meta.className === componentClassName);
46
+ if (comp) {
47
+ this.navigationService.select(comp);
48
+ if (variantParam !== null) {
49
+ const index = parseInt(variantParam, 10);
50
+ const maxIndex = (comp.meta.showcaseConfig.variants?.length ?? 1) - 1;
51
+ if (!Number.isNaN(index) && index >= 0 && index <= maxIndex) {
52
+ this.rendererService.activeVariantIndex.set(index);
53
+ }
54
+ }
55
+ }
56
+ }
57
+ else if (pageTitle) {
58
+ const page = this.manifestService.pages()
59
+ .find((p) => p.title === pageTitle);
60
+ if (page) {
61
+ this.navigationService.selectPage(page);
62
+ }
63
+ }
64
+ if (viewId) {
65
+ this.panelService.activeViewId.set(viewId);
66
+ }
67
+ }
68
+ finally {
69
+ this.suppressSync = false;
70
+ }
71
+ }
72
+ writeToUrl(item, variantIndex, viewId) {
73
+ const params = new URLSearchParams();
74
+ if (item?.kind === 'component') {
75
+ params.set(PARAM_COMPONENT, item.data.meta.className);
76
+ if (variantIndex > 0) {
77
+ params.set(PARAM_VARIANT, String(variantIndex));
78
+ }
79
+ }
80
+ else if (item?.kind === 'page') {
81
+ params.set(PARAM_PAGE, item.data.title);
82
+ }
83
+ if (viewId && viewId !== DEFAULT_VIEW) {
84
+ params.set(PARAM_VIEW, viewId);
85
+ }
86
+ const queryString = params.toString();
87
+ const newUrl = queryString
88
+ ? `${window.location.pathname}?${queryString}`
89
+ : window.location.pathname;
90
+ if (newUrl === window.location.pathname + window.location.search)
91
+ return;
92
+ const currentParams = new URLSearchParams(window.location.search);
93
+ const prevNavKey = currentParams.get(PARAM_COMPONENT) ?? currentParams.get(PARAM_PAGE);
94
+ const newNavKey = params.get(PARAM_COMPONENT) ?? params.get(PARAM_PAGE);
95
+ if (prevNavKey !== newNavKey) {
96
+ window.history.pushState(null, '', newUrl);
97
+ }
98
+ else {
99
+ window.history.replaceState(null, '', newUrl);
100
+ }
101
+ }
102
+ static ɵfac = function PrismUrlStateService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismUrlStateService)(); };
103
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PrismUrlStateService, factory: PrismUrlStateService.ɵfac, providedIn: 'root' });
104
+ }
105
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismUrlStateService, [{
106
+ type: Injectable,
107
+ args: [{ providedIn: 'root' }]
108
+ }], null, null); })();
@@ -0,0 +1,22 @@
1
+ import { PrismLayoutService } from '../services/prism-layout.service.js';
2
+ import { PrismNavigationService } from '../services/prism-navigation.service.js';
3
+ import { PrismPanelService } from '../services/prism-panel.service.js';
4
+ import * as i0 from "@angular/core";
5
+ export declare class PrismShellComponent {
6
+ private readonly config;
7
+ protected readonly navigationService: PrismNavigationService;
8
+ private readonly themeService;
9
+ protected readonly layout: PrismLayoutService;
10
+ protected readonly panelService: PrismPanelService;
11
+ private readonly pluginService;
12
+ private readonly urlStateService;
13
+ protected readonly viewPanels: import("@angular/core").Signal<import("../../plugin/plugin.types.js").PanelDefinition[]>;
14
+ protected readonly shellStyle: import("@angular/core").Signal<string>;
15
+ constructor();
16
+ protected onKeyDown(e: KeyboardEvent): void;
17
+ protected startSidebarResize(e: MouseEvent): void;
18
+ protected startPanelResize(e: MouseEvent): void;
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<PrismShellComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<PrismShellComponent, "prism-shell", never, {}, {}, never, never, true, never>;
21
+ }
22
+ //# sourceMappingURL=prism-shell.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prism-shell.component.d.ts","sourceRoot":"","sources":["../../../src/app/shell/prism-shell.component.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;;AAavE,qBA+Ka,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IACtE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA6B;IAC1D,SAAS,CAAC,QAAQ,CAAC,MAAM,qBAA8B;IACvD,SAAS,CAAC,QAAQ,CAAC,YAAY,oBAA6B;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA8B;IAC5D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgC;IAEhE,SAAS,CAAC,QAAQ,CAAC,UAAU,2FAG1B;IAEH,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAQ1B;;IA6BH,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,IAAI;IAU3C,SAAS,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;IAajD,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,UAAU,GAAG,IAAI;yCA1EpC,mBAAmB;2CAAnB,mBAAmB;CAmG/B"}
@@ -0,0 +1,283 @@
1
+ import { Component, computed, effect, inject, untracked, HostListener } from '@angular/core';
2
+ import { PRISM_CONFIG } from '../tokens/prism-tokens.js';
3
+ import { PRISM_DARK_THEME, PRISM_LIGHT_THEME } from '../theme/prism-default-theme.js';
4
+ import { PrismThemeService } from '../services/prism-theme.service.js';
5
+ import { PrismLayoutService } from '../services/prism-layout.service.js';
6
+ import { PrismNavigationService } from '../services/prism-navigation.service.js';
7
+ import { PrismPanelService } from '../services/prism-panel.service.js';
8
+ import { PrismPluginService } from '../services/prism-plugin.service.js';
9
+ import { PrismComponentHeaderComponent } from '../component-header/prism-component-header.component.js';
10
+ import { PrismHeaderComponent } from '../header/prism-header.component.js';
11
+ import { PrismPanelHostComponent } from '../panels/panel-host/prism-panel-host.component.js';
12
+ import { PrismRendererComponent } from '../renderer/prism-renderer.component.js';
13
+ import { PrismSidebarComponent } from '../sidebar/prism-sidebar.component.js';
14
+ import { PrismPageRendererComponent } from '../page-renderer/prism-page-renderer.component.js';
15
+ import { BUILTIN_PANELS } from '../panels/builtin-panels.js';
16
+ import { PrismUrlStateService } from '../services/prism-url-state.service.js';
17
+ import { PrismViewTabBarComponent } from '../view-tab-bar/prism-view-tab-bar.component.js';
18
+ import { PrismViewPanelHostComponent } from '../view-tab-bar/prism-view-panel-host.component.js';
19
+ import * as i0 from "@angular/core";
20
+ function PrismShellComponent_Conditional_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
21
+ i0.ɵɵelement(0, "prism-view-tab-bar", 7);
22
+ } }
23
+ function PrismShellComponent_Conditional_6_Conditional_1_Conditional_0_Template(rf, ctx) { if (rf & 1) {
24
+ i0.ɵɵelement(0, "prism-component-header", 8);
25
+ } }
26
+ function PrismShellComponent_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
27
+ i0.ɵɵconditionalCreate(0, PrismShellComponent_Conditional_6_Conditional_1_Conditional_0_Template, 1, 0, "prism-component-header", 8);
28
+ i0.ɵɵelement(1, "prism-renderer", 5);
29
+ } if (rf & 2) {
30
+ const ctx_r0 = i0.ɵɵnextContext(2);
31
+ i0.ɵɵconditional(ctx_r0.layout.toolbarVisible() ? 0 : -1);
32
+ } }
33
+ function PrismShellComponent_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
34
+ i0.ɵɵelement(0, "prism-view-panel-host", 5);
35
+ } }
36
+ function PrismShellComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
37
+ i0.ɵɵconditionalCreate(0, PrismShellComponent_Conditional_6_Conditional_0_Template, 1, 0, "prism-view-tab-bar", 7);
38
+ i0.ɵɵconditionalCreate(1, PrismShellComponent_Conditional_6_Conditional_1_Template, 2, 1)(2, PrismShellComponent_Conditional_6_Conditional_2_Template, 1, 0, "prism-view-panel-host", 5);
39
+ } if (rf & 2) {
40
+ const ctx_r0 = i0.ɵɵnextContext();
41
+ i0.ɵɵconditional(ctx_r0.viewPanels().length > 0 ? 0 : -1);
42
+ i0.ɵɵadvance();
43
+ i0.ɵɵconditional(ctx_r0.panelService.activeViewId() === "renderer" ? 1 : 2);
44
+ } }
45
+ function PrismShellComponent_Conditional_7_Template(rf, ctx) { if (rf & 1) {
46
+ i0.ɵɵelement(0, "prism-page-renderer", 5);
47
+ } }
48
+ function PrismShellComponent_Conditional_8_Template(rf, ctx) { if (rf & 1) {
49
+ i0.ɵɵelementStart(0, "div", 6)(1, "div", 9);
50
+ i0.ɵɵnamespaceSVG();
51
+ i0.ɵɵelementStart(2, "svg", 10);
52
+ i0.ɵɵelement(3, "path", 11)(4, "path", 12);
53
+ i0.ɵɵelementEnd();
54
+ i0.ɵɵnamespaceHTML();
55
+ i0.ɵɵelementStart(5, "p", 13);
56
+ i0.ɵɵtext(6, "Select a component");
57
+ i0.ɵɵelementEnd();
58
+ i0.ɵɵelementStart(7, "p", 14);
59
+ i0.ɵɵtext(8, "from the sidebar to preview it here");
60
+ i0.ɵɵelementEnd()()();
61
+ } }
62
+ function PrismShellComponent_Conditional_9_Template(rf, ctx) { if (rf & 1) {
63
+ const _r2 = i0.ɵɵgetCurrentView();
64
+ i0.ɵɵelementStart(0, "div", 15);
65
+ i0.ɵɵlistener("mousedown", function PrismShellComponent_Conditional_9_Template_div_mousedown_0_listener($event) { i0.ɵɵrestoreView(_r2); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.startPanelResize($event)); });
66
+ i0.ɵɵelementEnd();
67
+ i0.ɵɵelementStart(1, "div", 16);
68
+ i0.ɵɵelement(2, "prism-panel-host");
69
+ i0.ɵɵelementEnd();
70
+ } }
71
+ export class PrismShellComponent {
72
+ config = inject(PRISM_CONFIG);
73
+ navigationService = inject(PrismNavigationService);
74
+ themeService = inject(PrismThemeService);
75
+ layout = inject(PrismLayoutService);
76
+ panelService = inject(PrismPanelService);
77
+ pluginService = inject(PrismPluginService);
78
+ urlStateService = inject(PrismUrlStateService);
79
+ viewPanels = computed(() => [
80
+ ...BUILTIN_PANELS.filter((p) => p.placement === 'view'),
81
+ ...this.pluginService.viewPanels(),
82
+ ], ...(ngDevMode ? [{ debugName: "viewPanels" }] : []));
83
+ shellStyle = computed(() => {
84
+ const base = this.themeService.isDark() ? PRISM_DARK_THEME : PRISM_LIGHT_THEME;
85
+ const merged = { ...base, ...(this.config.theme ?? {}) };
86
+ const tokens = Object.entries(merged).map(([k, v]) => `${k}: ${v}`).join('; ');
87
+ const sw = this.layout.sidebarVisible() ? this.layout.sidebarWidth() : 0;
88
+ const ph = this.layout.addonsOrientation() === 'bottom' ? this.layout.panelHeight() : 0;
89
+ const pw = this.layout.addonsOrientation() === 'right' ? this.layout.panelWidth() : 0;
90
+ return `${tokens}; --sw: ${sw}px; --ph: ${ph}px; --pw: ${pw}px;`;
91
+ }, ...(ngDevMode ? [{ debugName: "shellStyle" }] : []));
92
+ constructor() {
93
+ this.navigationService.selectFirst();
94
+ this.urlStateService.init();
95
+ let lastItemKey = null;
96
+ effect(() => {
97
+ const item = this.navigationService.activeItem();
98
+ const key = item
99
+ ? (item.kind === 'component' ? item.data.meta.className : item.data.title)
100
+ : null;
101
+ if (lastItemKey !== null && lastItemKey !== key) {
102
+ untracked(() => this.panelService.activeViewId.set('renderer'));
103
+ }
104
+ lastItemKey = key;
105
+ });
106
+ effect(() => {
107
+ const item = this.navigationService.activeItem();
108
+ const activeComp = this.navigationService.activeComponent();
109
+ const activePage = this.navigationService.activePage();
110
+ if (item !== null && activeComp === null && activePage === null) {
111
+ untracked(() => this.navigationService.selectFirst());
112
+ }
113
+ });
114
+ }
115
+ onKeyDown(e) {
116
+ if (!e.altKey)
117
+ return;
118
+ switch (e.key.toLowerCase()) {
119
+ case 's':
120
+ e.preventDefault();
121
+ this.layout.toggleSidebar();
122
+ break;
123
+ case 't':
124
+ e.preventDefault();
125
+ this.layout.toggleToolbar();
126
+ break;
127
+ case 'a':
128
+ e.preventDefault();
129
+ this.layout.toggleAddons();
130
+ break;
131
+ case 'd':
132
+ e.preventDefault();
133
+ this.layout.toggleOrientation();
134
+ break;
135
+ }
136
+ }
137
+ startSidebarResize(e) {
138
+ e.preventDefault();
139
+ const startX = e.clientX;
140
+ const startW = this.layout.sidebarWidth();
141
+ const onMove = (ev) => this.layout.setSidebarWidth(startW + ev.clientX - startX);
142
+ const onUp = () => {
143
+ document.removeEventListener('mousemove', onMove);
144
+ document.removeEventListener('mouseup', onUp);
145
+ };
146
+ document.addEventListener('mousemove', onMove);
147
+ document.addEventListener('mouseup', onUp);
148
+ }
149
+ startPanelResize(e) {
150
+ e.preventDefault();
151
+ const isRight = this.layout.addonsOrientation() === 'right';
152
+ if (isRight) {
153
+ const startX = e.clientX;
154
+ const startW = this.layout.panelWidth();
155
+ const onMove = (ev) => this.layout.setPanelWidth(startW - (ev.clientX - startX));
156
+ const onUp = () => {
157
+ document.removeEventListener('mousemove', onMove);
158
+ document.removeEventListener('mouseup', onUp);
159
+ };
160
+ document.addEventListener('mousemove', onMove);
161
+ document.addEventListener('mouseup', onUp);
162
+ }
163
+ else {
164
+ const startY = e.clientY;
165
+ const startH = this.layout.panelHeight();
166
+ const onMove = (ev) => this.layout.setPanelHeight(startH - (ev.clientY - startY));
167
+ const onUp = () => {
168
+ document.removeEventListener('mousemove', onMove);
169
+ document.removeEventListener('mouseup', onUp);
170
+ };
171
+ document.addEventListener('mousemove', onMove);
172
+ document.addEventListener('mouseup', onUp);
173
+ }
174
+ }
175
+ static ɵfac = function PrismShellComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismShellComponent)(); };
176
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismShellComponent, selectors: [["prism-shell"]], hostBindings: function PrismShellComponent_HostBindings(rf, ctx) { if (rf & 1) {
177
+ i0.ɵɵlistener("keydown", function PrismShellComponent_keydown_HostBindingHandler($event) { return ctx.onKeyDown($event); }, i0.ɵɵresolveDocument);
178
+ } }, decls: 10, vars: 8, consts: [[1, "prism-shell"], [1, "prism-shell__header"], [1, "prism-shell__sidebar"], [1, "prism-shell__sidebar-handle", 3, "mousedown"], [1, "prism-shell__main"], [1, "prism-shell__canvas"], [1, "prism-shell__empty"], [1, "prism-shell__view-bar"], [1, "prism-shell__toolbar"], [1, "prism-shell__empty-inner"], ["viewBox", "0 0 24 24", "fill", "none", "xmlns", "http://www.w3.org/2000/svg", 1, "prism-shell__empty-icon"], ["d", "M12 2L4 14h16L12 2z", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linejoin", "round"], ["d", "M4 14l4 8h8l4-8", "stroke", "currentColor", "stroke-width", "1.5", "stroke-linejoin", "round"], [1, "prism-shell__empty-text"], [1, "prism-shell__empty-hint"], [1, "prism-shell__panel-handle", 3, "mousedown"], [1, "prism-shell__panel"]], template: function PrismShellComponent_Template(rf, ctx) { if (rf & 1) {
179
+ i0.ɵɵelementStart(0, "div", 0);
180
+ i0.ɵɵelement(1, "prism-header", 1);
181
+ i0.ɵɵelementStart(2, "aside", 2);
182
+ i0.ɵɵelement(3, "prism-sidebar");
183
+ i0.ɵɵelementEnd();
184
+ i0.ɵɵelementStart(4, "div", 3);
185
+ i0.ɵɵlistener("mousedown", function PrismShellComponent_Template_div_mousedown_4_listener($event) { return ctx.startSidebarResize($event); });
186
+ i0.ɵɵelementEnd();
187
+ i0.ɵɵelementStart(5, "main", 4);
188
+ i0.ɵɵconditionalCreate(6, PrismShellComponent_Conditional_6_Template, 3, 2)(7, PrismShellComponent_Conditional_7_Template, 1, 0, "prism-page-renderer", 5)(8, PrismShellComponent_Conditional_8_Template, 9, 0, "div", 6);
189
+ i0.ɵɵelementEnd();
190
+ i0.ɵɵconditionalCreate(9, PrismShellComponent_Conditional_9_Template, 3, 0);
191
+ i0.ɵɵelementEnd();
192
+ } if (rf & 2) {
193
+ i0.ɵɵstyleMap(ctx.shellStyle());
194
+ i0.ɵɵattribute("data-sidebar", ctx.layout.sidebarVisible() ? "visible" : "hidden")("data-addons", ctx.layout.addonsVisible() && ctx.panelService.activeViewId() === "renderer" ? "visible" : "hidden")("data-orientation", ctx.layout.addonsOrientation())("data-toolbar", ctx.layout.toolbarVisible() ? "visible" : "hidden");
195
+ i0.ɵɵadvance(6);
196
+ i0.ɵɵconditional(ctx.navigationService.activeComponent() ? 6 : ctx.navigationService.activePage() ? 7 : 8);
197
+ i0.ɵɵadvance(3);
198
+ i0.ɵɵconditional(ctx.layout.addonsVisible() && ctx.panelService.activeViewId() === "renderer" ? 9 : -1);
199
+ } }, dependencies: [PrismHeaderComponent,
200
+ PrismSidebarComponent,
201
+ PrismComponentHeaderComponent,
202
+ PrismRendererComponent,
203
+ PrismPanelHostComponent,
204
+ PrismPageRendererComponent,
205
+ PrismViewTabBarComponent,
206
+ PrismViewPanelHostComponent], styles: ["[_nghost-%COMP%] { display: block; height: 100%; }\n\n .prism-shell[_ngcontent-%COMP%] {\n display: grid;\n height: 100%;\n font-family: var(--prism-font-sans);\n color: var(--prism-text);\n background: var(--prism-bg);\n overflow: hidden;\n\n grid-template-columns: var(--sw) 4px 1fr;\n grid-template-rows: var(--prism-header-height) 1fr 4px var(--ph);\n grid-template-areas:\n \"header header header\"\n \"sidebar shdrag main\"\n \"sidebar shdrag phdrag\"\n \"sidebar shdrag panel\";\n }\n\n .prism-shell[data-sidebar=\"hidden\"][_ngcontent-%COMP%] {\n grid-template-columns: 0 0 1fr;\n }\n\n .prism-shell[data-addons=\"hidden\"][_ngcontent-%COMP%] {\n grid-template-rows: var(--prism-header-height) 1fr;\n grid-template-areas:\n \"header header header\"\n \"sidebar shdrag main\";\n }\n\n .prism-shell[data-orientation=\"right\"][data-addons=\"visible\"][_ngcontent-%COMP%] {\n grid-template-columns: var(--sw) 4px 1fr 4px var(--pw);\n grid-template-rows: var(--prism-header-height) 1fr;\n grid-template-areas:\n \"header header header header header\"\n \"sidebar shdrag main phdrag panel\";\n }\n\n .prism-shell__header[_ngcontent-%COMP%] { grid-area: header; }\n .prism-shell__sidebar[_ngcontent-%COMP%] { grid-area: sidebar; overflow: hidden; min-width: 0; background: var(--prism-bg); }\n .prism-shell__main[_ngcontent-%COMP%] { grid-area: main; display: flex; flex-direction: column; overflow: hidden; min-height: 0; }\n .prism-shell__panel[_ngcontent-%COMP%] { grid-area: panel; overflow: hidden; min-height: 0; min-width: 0; }\n\n .prism-shell__sidebar-handle[_ngcontent-%COMP%] {\n grid-area: shdrag;\n cursor: col-resize;\n background: transparent;\n transition: background 0.15s;\n z-index: 10;\n }\n .prism-shell__sidebar-handle[_ngcontent-%COMP%]:hover { background: var(--prism-border); }\n\n .prism-shell__panel-handle[_ngcontent-%COMP%] {\n grid-area: phdrag;\n background: transparent;\n transition: background 0.15s;\n z-index: 10;\n cursor: row-resize;\n }\n .prism-shell__panel-handle[_ngcontent-%COMP%]:hover { background: var(--prism-border); }\n\n .prism-shell[data-orientation=\"right\"][_ngcontent-%COMP%] .prism-shell__panel-handle[_ngcontent-%COMP%] {\n cursor: col-resize;\n }\n\n .prism-shell__view-bar[_ngcontent-%COMP%] { flex-shrink: 0; }\n .prism-shell__toolbar[_ngcontent-%COMP%] { flex-shrink: 0; }\n .prism-shell__canvas[_ngcontent-%COMP%] { flex: 1; overflow: auto; min-height: 0; }\n\n .prism-shell__empty[_ngcontent-%COMP%] {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .prism-shell__empty-inner[_ngcontent-%COMP%] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n text-align: center;\n }\n .prism-shell__empty-icon[_ngcontent-%COMP%] {\n width: 48px;\n height: 48px;\n color: var(--prism-text-ghost);\n margin-bottom: 8px;\n }\n .prism-shell__empty-text[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 14px;\n font-weight: 500;\n color: var(--prism-text-muted);\n }\n .prism-shell__empty-hint[_ngcontent-%COMP%] {\n margin: 0;\n font-size: 13px;\n color: var(--prism-text-ghost);\n }"] });
207
+ }
208
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismShellComponent, [{
209
+ type: Component,
210
+ args: [{ selector: 'prism-shell', standalone: true, imports: [
211
+ PrismHeaderComponent,
212
+ PrismSidebarComponent,
213
+ PrismComponentHeaderComponent,
214
+ PrismRendererComponent,
215
+ PrismPanelHostComponent,
216
+ PrismPageRendererComponent,
217
+ PrismViewTabBarComponent,
218
+ PrismViewPanelHostComponent,
219
+ ], template: `
220
+ <div
221
+ class="prism-shell"
222
+ [style]="shellStyle()"
223
+ [attr.data-sidebar]="layout.sidebarVisible() ? 'visible' : 'hidden'"
224
+ [attr.data-addons]="layout.addonsVisible() && panelService.activeViewId() === 'renderer' ? 'visible' : 'hidden'"
225
+ [attr.data-orientation]="layout.addonsOrientation()"
226
+ [attr.data-toolbar]="layout.toolbarVisible() ? 'visible' : 'hidden'"
227
+ >
228
+ <prism-header class="prism-shell__header" />
229
+
230
+ <aside class="prism-shell__sidebar">
231
+ <prism-sidebar />
232
+ </aside>
233
+ <div
234
+ class="prism-shell__sidebar-handle"
235
+ (mousedown)="startSidebarResize($event)"
236
+ ></div>
237
+
238
+ <main class="prism-shell__main">
239
+ @if (navigationService.activeComponent()) {
240
+ @if (viewPanels().length > 0) {
241
+ <prism-view-tab-bar class="prism-shell__view-bar" />
242
+ }
243
+
244
+ @if (panelService.activeViewId() === 'renderer') {
245
+ @if (layout.toolbarVisible()) {
246
+ <prism-component-header class="prism-shell__toolbar" />
247
+ }
248
+ <prism-renderer class="prism-shell__canvas" />
249
+ } @else {
250
+ <prism-view-panel-host class="prism-shell__canvas" />
251
+ }
252
+ } @else if (navigationService.activePage()) {
253
+ <prism-page-renderer class="prism-shell__canvas" />
254
+ } @else {
255
+ <div class="prism-shell__empty">
256
+ <div class="prism-shell__empty-inner">
257
+ <svg class="prism-shell__empty-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
258
+ <path d="M12 2L4 14h16L12 2z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/>
259
+ <path d="M4 14l4 8h8l4-8" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round"/>
260
+ </svg>
261
+ <p class="prism-shell__empty-text">Select a component</p>
262
+ <p class="prism-shell__empty-hint">from the sidebar to preview it here</p>
263
+ </div>
264
+ </div>
265
+ }
266
+ </main>
267
+
268
+ @if (layout.addonsVisible() && panelService.activeViewId() === 'renderer') {
269
+ <div
270
+ class="prism-shell__panel-handle"
271
+ (mousedown)="startPanelResize($event)"
272
+ ></div>
273
+ <div class="prism-shell__panel">
274
+ <prism-panel-host />
275
+ </div>
276
+ }
277
+ </div>
278
+ `, styles: ["\n :host { display: block; height: 100%; }\n\n .prism-shell {\n display: grid;\n height: 100%;\n font-family: var(--prism-font-sans);\n color: var(--prism-text);\n background: var(--prism-bg);\n overflow: hidden;\n\n grid-template-columns: var(--sw) 4px 1fr;\n grid-template-rows: var(--prism-header-height) 1fr 4px var(--ph);\n grid-template-areas:\n \"header header header\"\n \"sidebar shdrag main\"\n \"sidebar shdrag phdrag\"\n \"sidebar shdrag panel\";\n }\n\n .prism-shell[data-sidebar=\"hidden\"] {\n grid-template-columns: 0 0 1fr;\n }\n\n .prism-shell[data-addons=\"hidden\"] {\n grid-template-rows: var(--prism-header-height) 1fr;\n grid-template-areas:\n \"header header header\"\n \"sidebar shdrag main\";\n }\n\n .prism-shell[data-orientation=\"right\"][data-addons=\"visible\"] {\n grid-template-columns: var(--sw) 4px 1fr 4px var(--pw);\n grid-template-rows: var(--prism-header-height) 1fr;\n grid-template-areas:\n \"header header header header header\"\n \"sidebar shdrag main phdrag panel\";\n }\n\n .prism-shell__header { grid-area: header; }\n .prism-shell__sidebar { grid-area: sidebar; overflow: hidden; min-width: 0; background: var(--prism-bg); }\n .prism-shell__main { grid-area: main; display: flex; flex-direction: column; overflow: hidden; min-height: 0; }\n .prism-shell__panel { grid-area: panel; overflow: hidden; min-height: 0; min-width: 0; }\n\n .prism-shell__sidebar-handle {\n grid-area: shdrag;\n cursor: col-resize;\n background: transparent;\n transition: background 0.15s;\n z-index: 10;\n }\n .prism-shell__sidebar-handle:hover { background: var(--prism-border); }\n\n .prism-shell__panel-handle {\n grid-area: phdrag;\n background: transparent;\n transition: background 0.15s;\n z-index: 10;\n cursor: row-resize;\n }\n .prism-shell__panel-handle:hover { background: var(--prism-border); }\n\n .prism-shell[data-orientation=\"right\"] .prism-shell__panel-handle {\n cursor: col-resize;\n }\n\n .prism-shell__view-bar { flex-shrink: 0; }\n .prism-shell__toolbar { flex-shrink: 0; }\n .prism-shell__canvas { flex: 1; overflow: auto; min-height: 0; }\n\n .prism-shell__empty {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .prism-shell__empty-inner {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n text-align: center;\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: 14px;\n font-weight: 500;\n color: var(--prism-text-muted);\n }\n .prism-shell__empty-hint {\n margin: 0;\n font-size: 13px;\n color: var(--prism-text-ghost);\n }\n "] }]
279
+ }], () => [], { onKeyDown: [{
280
+ type: HostListener,
281
+ args: ['document:keydown', ['$event']]
282
+ }] }); })();
283
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismShellComponent, { className: "PrismShellComponent", filePath: "app/shell/prism-shell.component.ts", lineNumber: 196 }); })();
@@ -0,0 +1,14 @@
1
+ import type { NavigationItem } from '../services/navigation-item.types.js';
2
+ import { PrismNavigationService } from '../services/prism-navigation.service.js';
3
+ import * as i0 from "@angular/core";
4
+ export declare class PrismSidebarComponent {
5
+ protected readonly navigationService: PrismNavigationService;
6
+ protected readonly entries: import("@angular/core").Signal<[string, NavigationItem[]][]>;
7
+ protected itemKey(item: NavigationItem): string;
8
+ protected itemLabel(item: NavigationItem): string;
9
+ protected isActive(item: NavigationItem): boolean;
10
+ protected onSelect(item: NavigationItem): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<PrismSidebarComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<PrismSidebarComponent, "prism-sidebar", never, {}, {}, never, never, true, never>;
13
+ }
14
+ //# sourceMappingURL=prism-sidebar.component.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prism-sidebar.component.d.ts","sourceRoot":"","sources":["../../../src/app/sidebar/prism-sidebar.component.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;;AAEjF,qBA0Fa,qBAAqB;IAChC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,yBAAkC;IAEtE,SAAS,CAAC,QAAQ,CAAC,OAAO,+DAC8B;IAExD,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAM/C,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM;IAMjD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IASjD,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;yCA3BnC,qBAAqB;2CAArB,qBAAqB;CAkCjC"}
@@ -0,0 +1,105 @@
1
+ import { Component, computed, inject } from '@angular/core';
2
+ import { PrismNavigationService } from '../services/prism-navigation.service.js';
3
+ import * as i0 from "@angular/core";
4
+ const _forTrack0 = ($index, $item) => $item[0];
5
+ function _forTrack1($index, $item) { return this.itemKey($item); }
6
+ function PrismSidebarComponent_For_2_For_4_Conditional_1_Template(rf, ctx) { if (rf & 1) {
7
+ i0.ɵɵdomElementStart(0, "span", 5);
8
+ i0.ɵɵtext(1, "\u25C8");
9
+ i0.ɵɵdomElementEnd();
10
+ } }
11
+ function PrismSidebarComponent_For_2_For_4_Template(rf, ctx) { if (rf & 1) {
12
+ const _r1 = i0.ɵɵgetCurrentView();
13
+ i0.ɵɵdomElementStart(0, "button", 4);
14
+ i0.ɵɵdomListener("click", function PrismSidebarComponent_For_2_For_4_Template_button_click_0_listener() { const item_r2 = i0.ɵɵrestoreView(_r1).$implicit; const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.onSelect(item_r2)); });
15
+ i0.ɵɵconditionalCreate(1, PrismSidebarComponent_For_2_For_4_Conditional_1_Template, 2, 0, "span", 5);
16
+ i0.ɵɵtext(2);
17
+ i0.ɵɵdomElementEnd();
18
+ } if (rf & 2) {
19
+ const item_r2 = ctx.$implicit;
20
+ const ctx_r2 = i0.ɵɵnextContext(2);
21
+ i0.ɵɵclassProp("prism-sidebar__item--active", ctx_r2.isActive(item_r2))("prism-sidebar__item--page", item_r2.kind === "page");
22
+ i0.ɵɵadvance();
23
+ i0.ɵɵconditional(item_r2.kind === "page" ? 1 : -1);
24
+ i0.ɵɵadvance();
25
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.itemLabel(item_r2), " ");
26
+ } }
27
+ function PrismSidebarComponent_For_2_Template(rf, ctx) { if (rf & 1) {
28
+ i0.ɵɵdomElementStart(0, "div", 1)(1, "h3", 2);
29
+ i0.ɵɵtext(2);
30
+ i0.ɵɵdomElementEnd();
31
+ i0.ɵɵrepeaterCreate(3, PrismSidebarComponent_For_2_For_4_Template, 3, 6, "button", 3, _forTrack1, true);
32
+ i0.ɵɵdomElementEnd();
33
+ } if (rf & 2) {
34
+ const entry_r4 = ctx.$implicit;
35
+ i0.ɵɵadvance(2);
36
+ i0.ɵɵtextInterpolate(entry_r4[0]);
37
+ i0.ɵɵadvance();
38
+ i0.ɵɵrepeater(entry_r4[1]);
39
+ } }
40
+ export class PrismSidebarComponent {
41
+ navigationService = inject(PrismNavigationService);
42
+ entries = computed(() => [...this.navigationService.categoryTree().entries()], ...(ngDevMode ? [{ debugName: "entries" }] : []));
43
+ itemKey(item) {
44
+ return item.kind === 'component'
45
+ ? item.data.meta.className
46
+ : `page:${item.data.title}`;
47
+ }
48
+ itemLabel(item) {
49
+ return item.kind === 'component'
50
+ ? item.data.meta.showcaseConfig.title
51
+ : item.data.title;
52
+ }
53
+ isActive(item) {
54
+ const active = this.navigationService.activeItem();
55
+ if (!active || active.kind !== item.kind)
56
+ return false;
57
+ if (item.kind === 'component') {
58
+ return item.data.meta.className === active.data.meta.className;
59
+ }
60
+ return item.data.title === active.data.title;
61
+ }
62
+ onSelect(item) {
63
+ if (item.kind === 'component') {
64
+ this.navigationService.select(item.data);
65
+ }
66
+ else {
67
+ this.navigationService.selectPage(item.data);
68
+ }
69
+ }
70
+ static ɵfac = function PrismSidebarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PrismSidebarComponent)(); };
71
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrismSidebarComponent, selectors: [["prism-sidebar"]], decls: 3, vars: 0, consts: [[1, "prism-sidebar"], [1, "prism-sidebar__category"], [1, "prism-sidebar__category-title"], [1, "prism-sidebar__item", 3, "prism-sidebar__item--active", "prism-sidebar__item--page"], [1, "prism-sidebar__item", 3, "click"], [1, "prism-sidebar__page-icon"]], template: function PrismSidebarComponent_Template(rf, ctx) { if (rf & 1) {
72
+ i0.ɵɵdomElementStart(0, "nav", 0);
73
+ i0.ɵɵrepeaterCreate(1, PrismSidebarComponent_For_2_Template, 5, 1, "div", 1, _forTrack0);
74
+ i0.ɵɵdomElementEnd();
75
+ } if (rf & 2) {
76
+ i0.ɵɵadvance();
77
+ i0.ɵɵrepeater(ctx.entries());
78
+ } }, styles: [".prism-sidebar[_ngcontent-%COMP%] {\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px 0;\n height: 100%;\n }\n .prism-sidebar[_ngcontent-%COMP%]::-webkit-scrollbar { width: 4px; }\n .prism-sidebar[_ngcontent-%COMP%]::-webkit-scrollbar-track { background: transparent; }\n .prism-sidebar[_ngcontent-%COMP%]::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 2px; }\n\n .prism-sidebar__category[_ngcontent-%COMP%] { margin-bottom: 4px; }\n\n .prism-sidebar__category-title[_ngcontent-%COMP%] {\n margin: 0;\n padding: 10px 16px 4px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: var(--prism-text-ghost);\n font-family: var(--prism-font-sans);\n }\n\n .prism-sidebar__item[_ngcontent-%COMP%] {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 6px 14px 6px 11px;\n font-size: 13px;\n font-family: var(--prism-font-sans);\n border: none;\n background: none;\n color: var(--prism-text-muted);\n cursor: pointer;\n border-left: 3px solid transparent;\n text-align: left;\n transition: background 0.1s, color 0.1s, border-color 0.1s;\n }\n\n .prism-sidebar__item[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 6%, transparent);\n color: var(--prism-text-2);\n }\n\n .prism-sidebar__item--active[_ngcontent-%COMP%] {\n border-left-color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 10%, transparent);\n color: var(--prism-text);\n font-weight: 500;\n }\n\n .prism-sidebar__item--active[_ngcontent-%COMP%]:hover {\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n }\n\n .prism-sidebar__page-icon[_ngcontent-%COMP%] {\n font-size: 10px;\n opacity: 0.6;\n }"] });
79
+ }
80
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrismSidebarComponent, [{
81
+ type: Component,
82
+ args: [{ selector: 'prism-sidebar', standalone: true, template: `
83
+ <nav class="prism-sidebar">
84
+ @for (entry of entries(); track entry[0]) {
85
+ <div class="prism-sidebar__category">
86
+ <h3 class="prism-sidebar__category-title">{{ entry[0] }}</h3>
87
+ @for (item of entry[1]; track itemKey(item)) {
88
+ <button
89
+ class="prism-sidebar__item"
90
+ [class.prism-sidebar__item--active]="isActive(item)"
91
+ [class.prism-sidebar__item--page]="item.kind === 'page'"
92
+ (click)="onSelect(item)"
93
+ >
94
+ @if (item.kind === 'page') {
95
+ <span class="prism-sidebar__page-icon">◈</span>
96
+ }
97
+ {{ itemLabel(item) }}
98
+ </button>
99
+ }
100
+ </div>
101
+ }
102
+ </nav>
103
+ `, styles: ["\n .prism-sidebar {\n background: var(--prism-bg);\n border-right: 1px solid var(--prism-border);\n overflow-y: auto;\n overflow-x: hidden;\n padding: 8px 0;\n height: 100%;\n }\n .prism-sidebar::-webkit-scrollbar { width: 4px; }\n .prism-sidebar::-webkit-scrollbar-track { background: transparent; }\n .prism-sidebar::-webkit-scrollbar-thumb { background: var(--prism-border-strong); border-radius: 2px; }\n\n .prism-sidebar__category { margin-bottom: 4px; }\n\n .prism-sidebar__category-title {\n margin: 0;\n padding: 10px 16px 4px;\n font-size: 11px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n color: var(--prism-text-ghost);\n font-family: var(--prism-font-sans);\n }\n\n .prism-sidebar__item {\n display: flex;\n align-items: center;\n gap: 6px;\n width: 100%;\n padding: 6px 14px 6px 11px;\n font-size: 13px;\n font-family: var(--prism-font-sans);\n border: none;\n background: none;\n color: var(--prism-text-muted);\n cursor: pointer;\n border-left: 3px solid transparent;\n text-align: left;\n transition: background 0.1s, color 0.1s, border-color 0.1s;\n }\n\n .prism-sidebar__item:hover {\n background: color-mix(in srgb, var(--prism-primary) 6%, transparent);\n color: var(--prism-text-2);\n }\n\n .prism-sidebar__item--active {\n border-left-color: var(--prism-primary);\n background: color-mix(in srgb, var(--prism-primary) 10%, transparent);\n color: var(--prism-text);\n font-weight: 500;\n }\n\n .prism-sidebar__item--active:hover {\n background: color-mix(in srgb, var(--prism-primary) 12%, transparent);\n }\n\n .prism-sidebar__page-icon {\n font-size: 10px;\n opacity: 0.6;\n }\n "] }]
104
+ }], null, null); })();
105
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PrismSidebarComponent, { className: "PrismSidebarComponent", filePath: "app/sidebar/prism-sidebar.component.ts", lineNumber: 95 }); })();
@@ -0,0 +1,4 @@
1
+ export declare const PRISM_DARK_THEME: Record<string, string>;
2
+ export declare const PRISM_LIGHT_THEME: Record<string, string>;
3
+ export declare const PRISM_DEFAULT_THEME: Record<string, string>;
4
+ //# sourceMappingURL=prism-default-theme.d.ts.map
@@ -0,0 +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,CAiCnD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAiCpD,CAAC;AAEF,eAAO,MAAM,mBAAmB,wBAAmB,CAAC"}
@@ -0,0 +1,57 @@
1
+ export const PRISM_DARK_THEME = {
2
+ '--prism-void': '#07050f',
3
+ '--prism-bg': '#0d0b1c',
4
+ '--prism-bg-surface': '#131022',
5
+ '--prism-bg-elevated': '#1a1535',
6
+ '--prism-text': '#ede9f8',
7
+ '--prism-text-2': '#b0a6c8',
8
+ '--prism-text-muted': '#8476a2',
9
+ '--prism-text-ghost': '#6a5d87',
10
+ '--prism-primary': '#a78bfa',
11
+ '--prism-primary-from': '#7c3aed',
12
+ '--prism-primary-to': '#3b82f6',
13
+ '--prism-accent': '#ec4899',
14
+ '--prism-border': 'rgba(255,255,255,0.08)',
15
+ '--prism-border-strong': 'rgba(255,255,255,0.16)',
16
+ '--prism-glow': 'rgba(139,92,246,0.18)',
17
+ '--prism-glow-strong': 'rgba(139,92,246,0.35)',
18
+ '--prism-input-bg': 'rgba(255,255,255,0.05)',
19
+ '--prism-sidebar-bg': '#0d0b1c',
20
+ '--prism-header-height': '52px',
21
+ '--prism-toolbar-height': '40px',
22
+ '--prism-font-sans': "'Inter', system-ui, -apple-system, sans-serif",
23
+ '--prism-font-mono': "'Cascadia Code', 'Fira Code', ui-monospace, monospace",
24
+ '--prism-radius-xs': '3px',
25
+ '--prism-radius-sm': '5px',
26
+ '--prism-radius': '8px',
27
+ '--prism-radius-lg': '12px',
28
+ };
29
+ export const PRISM_LIGHT_THEME = {
30
+ '--prism-void': '#f0ecff',
31
+ '--prism-bg': '#faf8ff',
32
+ '--prism-bg-surface': '#f3efff',
33
+ '--prism-bg-elevated': '#ffffff',
34
+ '--prism-text': '#1a0e2e',
35
+ '--prism-text-2': '#4a3d65',
36
+ '--prism-text-muted': '#6b5e80',
37
+ '--prism-text-ghost': '#b0a6c8',
38
+ '--prism-primary': '#6d28d9',
39
+ '--prism-primary-from': '#7c3aed',
40
+ '--prism-primary-to': '#2563eb',
41
+ '--prism-accent': '#db2777',
42
+ '--prism-border': 'rgba(109,40,217,0.12)',
43
+ '--prism-border-strong': 'rgba(109,40,217,0.24)',
44
+ '--prism-glow': 'rgba(109,40,217,0.10)',
45
+ '--prism-glow-strong': 'rgba(109,40,217,0.20)',
46
+ '--prism-input-bg': 'rgba(109,40,217,0.04)',
47
+ '--prism-sidebar-bg': '#f3efff',
48
+ '--prism-header-height': '52px',
49
+ '--prism-toolbar-height': '40px',
50
+ '--prism-font-sans': "'Inter', system-ui, -apple-system, sans-serif",
51
+ '--prism-font-mono': "'Cascadia Code', 'Fira Code', ui-monospace, monospace",
52
+ '--prism-radius-xs': '3px',
53
+ '--prism-radius-sm': '5px',
54
+ '--prism-radius': '8px',
55
+ '--prism-radius-lg': '12px',
56
+ };
57
+ export const PRISM_DEFAULT_THEME = PRISM_DARK_THEME;
@@ -0,0 +1,11 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import type { NgPrismConfig, RuntimeManifest } from '../../plugin/plugin.types.js';
3
+ export declare const PRISM_MANIFEST: InjectionToken<RuntimeManifest>;
4
+ export declare const PRISM_CONFIG: InjectionToken<NgPrismConfig>;
5
+ export interface PrismRendererHooks {
6
+ onBeforeCreate?(selector: string): void;
7
+ onAfterCreate?(selector: string): void;
8
+ onAfterDestroy?(selector: string): void;
9
+ }
10
+ export declare const PRISM_RENDERER_HOOKS: InjectionToken<PrismRendererHooks>;
11
+ //# sourceMappingURL=prism-tokens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prism-tokens.d.ts","sourceRoot":"","sources":["../../../src/app/tokens/prism-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,eAAO,MAAM,cAAc,iCAAwD,CAAC;AAEpF,eAAO,MAAM,YAAY,+BAGvB,CAAC;AAEH,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,cAAc,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,oBAAoB,oCAC+B,CAAC"}