@cratis/scene.blueprint.components 0.1.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 (332) hide show
  1. package/.storybook/main.ts +61 -0
  2. package/.storybook/preview.tsx +42 -0
  3. package/BorrowedComponentName.ts +22 -0
  4. package/ComponentName.ts +27 -0
  5. package/CompositeName.ts +97 -0
  6. package/README.md +40 -0
  7. package/componentsBlueprint.ts +72 -0
  8. package/componentsBlueprintComponents.ts +23 -0
  9. package/dist/cjs/BorrowedComponentName.js +25 -0
  10. package/dist/cjs/BorrowedComponentName.js.map +1 -0
  11. package/dist/cjs/ComponentName.js +30 -0
  12. package/dist/cjs/ComponentName.js.map +1 -0
  13. package/dist/cjs/CompositeName.js +52 -0
  14. package/dist/cjs/CompositeName.js.map +1 -0
  15. package/dist/cjs/componentsBlueprint.js +93 -0
  16. package/dist/cjs/componentsBlueprint.js.map +1 -0
  17. package/dist/cjs/componentsBlueprintComponents.js +27 -0
  18. package/dist/cjs/componentsBlueprintComponents.js.map +1 -0
  19. package/dist/cjs/gallery/DialogTemplatePreview.js +46 -0
  20. package/dist/cjs/gallery/DialogTemplatePreview.js.map +1 -0
  21. package/dist/cjs/gallery/GalleryScreenPreview.js +65 -0
  22. package/dist/cjs/gallery/GalleryScreenPreview.js.map +1 -0
  23. package/dist/cjs/gallery/applicationChrome.js +137 -0
  24. package/dist/cjs/gallery/applicationChrome.js.map +1 -0
  25. package/dist/cjs/gallery/navigation.js +128 -0
  26. package/dist/cjs/gallery/navigation.js.map +1 -0
  27. package/dist/cjs/gallery/previewProfile.js +87 -0
  28. package/dist/cjs/gallery/previewProfile.js.map +1 -0
  29. package/dist/cjs/gallery/screens.js +80 -0
  30. package/dist/cjs/gallery/screens.js.map +1 -0
  31. package/dist/cjs/header/ArcPageHeader.js +65 -0
  32. package/dist/cjs/header/ArcPageHeader.js.map +1 -0
  33. package/dist/cjs/header/deriveArcHeading.js +51 -0
  34. package/dist/cjs/header/deriveArcHeading.js.map +1 -0
  35. package/dist/cjs/header/humanizeBindingName.js +36 -0
  36. package/dist/cjs/header/humanizeBindingName.js.map +1 -0
  37. package/dist/cjs/index.js +119 -0
  38. package/dist/cjs/index.js.map +1 -0
  39. package/dist/cjs/package.json +3 -0
  40. package/dist/cjs/packageName.js +15 -0
  41. package/dist/cjs/packageName.js.map +1 -0
  42. package/dist/cjs/templates/SampleBindingName.js +39 -0
  43. package/dist/cjs/templates/SampleBindingName.js.map +1 -0
  44. package/dist/cjs/templates/commandTemplates.js +82 -0
  45. package/dist/cjs/templates/commandTemplates.js.map +1 -0
  46. package/dist/cjs/templates/dataElements.js +131 -0
  47. package/dist/cjs/templates/dataElements.js.map +1 -0
  48. package/dist/cjs/templates/dialogElements.js +69 -0
  49. package/dist/cjs/templates/dialogElements.js.map +1 -0
  50. package/dist/cjs/templates/dialogTemplates.js +118 -0
  51. package/dist/cjs/templates/dialogTemplates.js.map +1 -0
  52. package/dist/cjs/templates/editorElements.js +81 -0
  53. package/dist/cjs/templates/editorElements.js.map +1 -0
  54. package/dist/cjs/templates/editorTemplates.js +172 -0
  55. package/dist/cjs/templates/editorTemplates.js.map +1 -0
  56. package/dist/cjs/templates/elements.js +101 -0
  57. package/dist/cjs/templates/elements.js.map +1 -0
  58. package/dist/cjs/templates/formElements.js +77 -0
  59. package/dist/cjs/templates/formElements.js.map +1 -0
  60. package/dist/cjs/templates/listTemplates.js +187 -0
  61. package/dist/cjs/templates/listTemplates.js.map +1 -0
  62. package/dist/cjs/templates/nesting.js +150 -0
  63. package/dist/cjs/templates/nesting.js.map +1 -0
  64. package/dist/cjs/templates/sampleData.js +141 -0
  65. package/dist/cjs/templates/sampleData.js.map +1 -0
  66. package/dist/cjs/templates/screenTemplates.js +41 -0
  67. package/dist/cjs/templates/screenTemplates.js.map +1 -0
  68. package/dist/cjs/templates/workspaceTemplates.js +212 -0
  69. package/dist/cjs/templates/workspaceTemplates.js.map +1 -0
  70. package/dist/esm/BorrowedComponentName.d.ts +4 -0
  71. package/dist/esm/BorrowedComponentName.d.ts.map +1 -0
  72. package/dist/esm/BorrowedComponentName.js +23 -0
  73. package/dist/esm/BorrowedComponentName.js.map +1 -0
  74. package/dist/esm/ComponentName.d.ts +4 -0
  75. package/dist/esm/ComponentName.d.ts.map +1 -0
  76. package/dist/esm/ComponentName.js +28 -0
  77. package/dist/esm/ComponentName.js.map +1 -0
  78. package/dist/esm/CompositeName.d.ts +28 -0
  79. package/dist/esm/CompositeName.d.ts.map +1 -0
  80. package/dist/esm/CompositeName.js +50 -0
  81. package/dist/esm/CompositeName.js.map +1 -0
  82. package/dist/esm/componentsBlueprint.d.ts +5 -0
  83. package/dist/esm/componentsBlueprint.d.ts.map +1 -0
  84. package/dist/esm/componentsBlueprint.js +90 -0
  85. package/dist/esm/componentsBlueprint.js.map +1 -0
  86. package/dist/esm/componentsBlueprintComponents.d.ts +3 -0
  87. package/dist/esm/componentsBlueprintComponents.d.ts.map +1 -0
  88. package/dist/esm/componentsBlueprintComponents.js +25 -0
  89. package/dist/esm/componentsBlueprintComponents.js.map +1 -0
  90. package/dist/esm/for_ArcPageHeader/when_rendering_a_gallery_screen.d.ts +2 -0
  91. package/dist/esm/for_ArcPageHeader/when_rendering_a_gallery_screen.d.ts.map +1 -0
  92. package/dist/esm/for_ArcPageHeader/when_rendering_a_gallery_screen.js +57 -0
  93. package/dist/esm/for_ArcPageHeader/when_rendering_a_gallery_screen.js.map +1 -0
  94. package/dist/esm/for_CompositeName/when_checking_the_names_against_the_packages_that_declare_them.d.ts +2 -0
  95. package/dist/esm/for_CompositeName/when_checking_the_names_against_the_packages_that_declare_them.d.ts.map +1 -0
  96. package/dist/esm/for_CompositeName/when_checking_the_names_against_the_packages_that_declare_them.js +26 -0
  97. package/dist/esm/for_CompositeName/when_checking_the_names_against_the_packages_that_declare_them.js.map +1 -0
  98. package/dist/esm/for_componentsBlueprint/when_resolving_its_dependencies.d.ts +2 -0
  99. package/dist/esm/for_componentsBlueprint/when_resolving_its_dependencies.d.ts.map +1 -0
  100. package/dist/esm/for_componentsBlueprint/when_resolving_its_dependencies.js +65 -0
  101. package/dist/esm/for_componentsBlueprint/when_resolving_its_dependencies.js.map +1 -0
  102. package/dist/esm/for_componentsBlueprint/when_validating_the_bundle.d.ts +2 -0
  103. package/dist/esm/for_componentsBlueprint/when_validating_the_bundle.d.ts.map +1 -0
  104. package/dist/esm/for_componentsBlueprint/when_validating_the_bundle.js +41 -0
  105. package/dist/esm/for_componentsBlueprint/when_validating_the_bundle.js.map +1 -0
  106. package/dist/esm/for_componentsGalleryScreens/when_checking_the_layouts_and_slots_they_fill.d.ts +2 -0
  107. package/dist/esm/for_componentsGalleryScreens/when_checking_the_layouts_and_slots_they_fill.d.ts.map +1 -0
  108. package/dist/esm/for_componentsGalleryScreens/when_checking_the_layouts_and_slots_they_fill.js +38 -0
  109. package/dist/esm/for_componentsGalleryScreens/when_checking_the_layouts_and_slots_they_fill.js.map +1 -0
  110. package/dist/esm/for_componentsScreenTemplates/when_checking_that_arrangements_reference_declared_slots.d.ts +2 -0
  111. package/dist/esm/for_componentsScreenTemplates/when_checking_that_arrangements_reference_declared_slots.d.ts.map +1 -0
  112. package/dist/esm/for_componentsScreenTemplates/when_checking_that_arrangements_reference_declared_slots.js +47 -0
  113. package/dist/esm/for_componentsScreenTemplates/when_checking_that_arrangements_reference_declared_slots.js.map +1 -0
  114. package/dist/esm/for_componentsScreenTemplates/when_following_the_nesting_chain.d.ts +2 -0
  115. package/dist/esm/for_componentsScreenTemplates/when_following_the_nesting_chain.d.ts.map +1 -0
  116. package/dist/esm/for_componentsScreenTemplates/when_following_the_nesting_chain.js +56 -0
  117. package/dist/esm/for_componentsScreenTemplates/when_following_the_nesting_chain.js.map +1 -0
  118. package/dist/esm/for_componentsScreenTemplates/when_placing_them_in_the_default_blueprint_layout.d.ts +2 -0
  119. package/dist/esm/for_componentsScreenTemplates/when_placing_them_in_the_default_blueprint_layout.d.ts.map +1 -0
  120. package/dist/esm/for_componentsScreenTemplates/when_placing_them_in_the_default_blueprint_layout.js +31 -0
  121. package/dist/esm/for_componentsScreenTemplates/when_placing_them_in_the_default_blueprint_layout.js.map +1 -0
  122. package/dist/esm/for_componentsScreenTemplates/when_resolving_the_component_names_they_reference.d.ts +2 -0
  123. package/dist/esm/for_componentsScreenTemplates/when_resolving_the_component_names_they_reference.d.ts.map +1 -0
  124. package/dist/esm/for_componentsScreenTemplates/when_resolving_the_component_names_they_reference.js +54 -0
  125. package/dist/esm/for_componentsScreenTemplates/when_resolving_the_component_names_they_reference.js.map +1 -0
  126. package/dist/esm/for_deriveArcHeading/when_no_binding_is_named.d.ts +2 -0
  127. package/dist/esm/for_deriveArcHeading/when_no_binding_is_named.d.ts.map +1 -0
  128. package/dist/esm/for_deriveArcHeading/when_no_binding_is_named.js +27 -0
  129. package/dist/esm/for_deriveArcHeading/when_no_binding_is_named.js.map +1 -0
  130. package/dist/esm/for_deriveArcHeading/when_the_binding_is_not_registered.d.ts +2 -0
  131. package/dist/esm/for_deriveArcHeading/when_the_binding_is_not_registered.d.ts.map +1 -0
  132. package/dist/esm/for_deriveArcHeading/when_the_binding_is_not_registered.js +18 -0
  133. package/dist/esm/for_deriveArcHeading/when_the_binding_is_not_registered.js.map +1 -0
  134. package/dist/esm/for_deriveArcHeading/when_the_binding_is_registered.d.ts +2 -0
  135. package/dist/esm/for_deriveArcHeading/when_the_binding_is_registered.d.ts.map +1 -0
  136. package/dist/esm/for_deriveArcHeading/when_the_binding_is_registered.js +26 -0
  137. package/dist/esm/for_deriveArcHeading/when_the_binding_is_registered.js.map +1 -0
  138. package/dist/esm/for_humanizeBindingName/when_reading_a_proxy_name.d.ts +2 -0
  139. package/dist/esm/for_humanizeBindingName/when_reading_a_proxy_name.d.ts.map +1 -0
  140. package/dist/esm/for_humanizeBindingName/when_reading_a_proxy_name.js +25 -0
  141. package/dist/esm/for_humanizeBindingName/when_reading_a_proxy_name.js.map +1 -0
  142. package/dist/esm/gallery/ArcPages.stories.d.ts +30 -0
  143. package/dist/esm/gallery/ArcPages.stories.d.ts.map +1 -0
  144. package/dist/esm/gallery/ArcPages.stories.js +34 -0
  145. package/dist/esm/gallery/ArcPages.stories.js.map +1 -0
  146. package/dist/esm/gallery/Bindings.stories.d.ts +22 -0
  147. package/dist/esm/gallery/Bindings.stories.d.ts.map +1 -0
  148. package/dist/esm/gallery/Bindings.stories.js +78 -0
  149. package/dist/esm/gallery/Bindings.stories.js.map +1 -0
  150. package/dist/esm/gallery/DialogTemplatePreview.d.ts +7 -0
  151. package/dist/esm/gallery/DialogTemplatePreview.d.ts.map +1 -0
  152. package/dist/esm/gallery/DialogTemplatePreview.js +44 -0
  153. package/dist/esm/gallery/DialogTemplatePreview.js.map +1 -0
  154. package/dist/esm/gallery/DialogTemplates.stories.d.ts +21 -0
  155. package/dist/esm/gallery/DialogTemplates.stories.d.ts.map +1 -0
  156. package/dist/esm/gallery/DialogTemplates.stories.js +23 -0
  157. package/dist/esm/gallery/DialogTemplates.stories.js.map +1 -0
  158. package/dist/esm/gallery/GalleryScreenPreview.d.ts +10 -0
  159. package/dist/esm/gallery/GalleryScreenPreview.d.ts.map +1 -0
  160. package/dist/esm/gallery/GalleryScreenPreview.js +62 -0
  161. package/dist/esm/gallery/GalleryScreenPreview.js.map +1 -0
  162. package/dist/esm/gallery/applicationChrome.d.ts +3 -0
  163. package/dist/esm/gallery/applicationChrome.d.ts.map +1 -0
  164. package/dist/esm/gallery/applicationChrome.js +135 -0
  165. package/dist/esm/gallery/applicationChrome.js.map +1 -0
  166. package/dist/esm/gallery/index.d.ts +7 -0
  167. package/dist/esm/gallery/index.d.ts.map +1 -0
  168. package/dist/esm/gallery/index.js +7 -0
  169. package/dist/esm/gallery/index.js.map +1 -0
  170. package/dist/esm/gallery/navigation.d.ts +9 -0
  171. package/dist/esm/gallery/navigation.d.ts.map +1 -0
  172. package/dist/esm/gallery/navigation.js +121 -0
  173. package/dist/esm/gallery/navigation.js.map +1 -0
  174. package/dist/esm/gallery/previewProfile.d.ts +6 -0
  175. package/dist/esm/gallery/previewProfile.d.ts.map +1 -0
  176. package/dist/esm/gallery/previewProfile.js +83 -0
  177. package/dist/esm/gallery/previewProfile.js.map +1 -0
  178. package/dist/esm/gallery/screens.d.ts +4 -0
  179. package/dist/esm/gallery/screens.d.ts.map +1 -0
  180. package/dist/esm/gallery/screens.js +77 -0
  181. package/dist/esm/gallery/screens.js.map +1 -0
  182. package/dist/esm/header/ArcHeading.d.ts +9 -0
  183. package/dist/esm/header/ArcHeading.d.ts.map +1 -0
  184. package/dist/esm/header/ArcHeading.js +2 -0
  185. package/dist/esm/header/ArcHeading.js.map +1 -0
  186. package/dist/esm/header/ArcPageHeader.d.ts +3 -0
  187. package/dist/esm/header/ArcPageHeader.d.ts.map +1 -0
  188. package/dist/esm/header/ArcPageHeader.js +63 -0
  189. package/dist/esm/header/ArcPageHeader.js.map +1 -0
  190. package/dist/esm/header/deriveArcHeading.d.ts +4 -0
  191. package/dist/esm/header/deriveArcHeading.d.ts.map +1 -0
  192. package/dist/esm/header/deriveArcHeading.js +49 -0
  193. package/dist/esm/header/deriveArcHeading.js.map +1 -0
  194. package/dist/esm/header/humanizeBindingName.d.ts +2 -0
  195. package/dist/esm/header/humanizeBindingName.d.ts.map +1 -0
  196. package/dist/esm/header/humanizeBindingName.js +34 -0
  197. package/dist/esm/header/humanizeBindingName.js.map +1 -0
  198. package/dist/esm/header/index.d.ts +5 -0
  199. package/dist/esm/header/index.d.ts.map +1 -0
  200. package/dist/esm/header/index.js +5 -0
  201. package/dist/esm/header/index.js.map +1 -0
  202. package/dist/esm/index.d.ts +10 -0
  203. package/dist/esm/index.d.ts.map +1 -0
  204. package/dist/esm/index.js +30 -0
  205. package/dist/esm/index.js.map +1 -0
  206. package/dist/esm/package.json +3 -0
  207. package/dist/esm/packageName.d.ts +2 -0
  208. package/dist/esm/packageName.d.ts.map +1 -0
  209. package/dist/esm/packageName.js +13 -0
  210. package/dist/esm/packageName.js.map +1 -0
  211. package/dist/esm/templates/ArcHeaderOptions.d.ts +8 -0
  212. package/dist/esm/templates/ArcHeaderOptions.d.ts.map +1 -0
  213. package/dist/esm/templates/ArcHeaderOptions.js +2 -0
  214. package/dist/esm/templates/ArcHeaderOptions.js.map +1 -0
  215. package/dist/esm/templates/ColumnDefinition.d.ts +5 -0
  216. package/dist/esm/templates/ColumnDefinition.d.ts.map +1 -0
  217. package/dist/esm/templates/ColumnDefinition.js +2 -0
  218. package/dist/esm/templates/ColumnDefinition.js.map +1 -0
  219. package/dist/esm/templates/SampleBindingName.d.ts +11 -0
  220. package/dist/esm/templates/SampleBindingName.d.ts.map +1 -0
  221. package/dist/esm/templates/SampleBindingName.js +37 -0
  222. package/dist/esm/templates/SampleBindingName.js.map +1 -0
  223. package/dist/esm/templates/TableOptions.d.ts +6 -0
  224. package/dist/esm/templates/TableOptions.d.ts.map +1 -0
  225. package/dist/esm/templates/TableOptions.js +2 -0
  226. package/dist/esm/templates/TableOptions.js.map +1 -0
  227. package/dist/esm/templates/commandTemplates.d.ts +4 -0
  228. package/dist/esm/templates/commandTemplates.d.ts.map +1 -0
  229. package/dist/esm/templates/commandTemplates.js +79 -0
  230. package/dist/esm/templates/commandTemplates.js.map +1 -0
  231. package/dist/esm/templates/dataElements.d.ts +11 -0
  232. package/dist/esm/templates/dataElements.d.ts.map +1 -0
  233. package/dist/esm/templates/dataElements.js +123 -0
  234. package/dist/esm/templates/dataElements.js.map +1 -0
  235. package/dist/esm/templates/dialogElements.d.ts +5 -0
  236. package/dist/esm/templates/dialogElements.d.ts.map +1 -0
  237. package/dist/esm/templates/dialogElements.js +65 -0
  238. package/dist/esm/templates/dialogElements.js.map +1 -0
  239. package/dist/esm/templates/dialogTemplates.d.ts +6 -0
  240. package/dist/esm/templates/dialogTemplates.d.ts.map +1 -0
  241. package/dist/esm/templates/dialogTemplates.js +113 -0
  242. package/dist/esm/templates/dialogTemplates.js.map +1 -0
  243. package/dist/esm/templates/editorElements.d.ts +11 -0
  244. package/dist/esm/templates/editorElements.d.ts.map +1 -0
  245. package/dist/esm/templates/editorElements.js +74 -0
  246. package/dist/esm/templates/editorElements.js.map +1 -0
  247. package/dist/esm/templates/editorTemplates.d.ts +5 -0
  248. package/dist/esm/templates/editorTemplates.d.ts.map +1 -0
  249. package/dist/esm/templates/editorTemplates.js +168 -0
  250. package/dist/esm/templates/editorTemplates.js.map +1 -0
  251. package/dist/esm/templates/elements.d.ts +11 -0
  252. package/dist/esm/templates/elements.d.ts.map +1 -0
  253. package/dist/esm/templates/elements.js +92 -0
  254. package/dist/esm/templates/elements.js.map +1 -0
  255. package/dist/esm/templates/formElements.d.ts +11 -0
  256. package/dist/esm/templates/formElements.d.ts.map +1 -0
  257. package/dist/esm/templates/formElements.js +70 -0
  258. package/dist/esm/templates/formElements.js.map +1 -0
  259. package/dist/esm/templates/index.d.ts +18 -0
  260. package/dist/esm/templates/index.d.ts.map +1 -0
  261. package/dist/esm/templates/index.js +18 -0
  262. package/dist/esm/templates/index.js.map +1 -0
  263. package/dist/esm/templates/listTemplates.d.ts +6 -0
  264. package/dist/esm/templates/listTemplates.d.ts.map +1 -0
  265. package/dist/esm/templates/listTemplates.js +182 -0
  266. package/dist/esm/templates/listTemplates.js.map +1 -0
  267. package/dist/esm/templates/nesting.d.ts +6 -0
  268. package/dist/esm/templates/nesting.d.ts.map +1 -0
  269. package/dist/esm/templates/nesting.js +145 -0
  270. package/dist/esm/templates/nesting.js.map +1 -0
  271. package/dist/esm/templates/sampleData.d.ts +10 -0
  272. package/dist/esm/templates/sampleData.d.ts.map +1 -0
  273. package/dist/esm/templates/sampleData.js +134 -0
  274. package/dist/esm/templates/sampleData.js.map +1 -0
  275. package/dist/esm/templates/screenTemplates.d.ts +4 -0
  276. package/dist/esm/templates/screenTemplates.d.ts.map +1 -0
  277. package/dist/esm/templates/screenTemplates.js +38 -0
  278. package/dist/esm/templates/screenTemplates.js.map +1 -0
  279. package/dist/esm/templates/workspaceTemplates.d.ts +5 -0
  280. package/dist/esm/templates/workspaceTemplates.d.ts.map +1 -0
  281. package/dist/esm/templates/workspaceTemplates.js +208 -0
  282. package/dist/esm/templates/workspaceTemplates.js.map +1 -0
  283. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  284. package/for_ArcPageHeader/when_rendering_a_gallery_screen.tsx +79 -0
  285. package/for_CompositeName/when_checking_the_names_against_the_packages_that_declare_them.ts +41 -0
  286. package/for_componentsBlueprint/when_resolving_its_dependencies.ts +85 -0
  287. package/for_componentsBlueprint/when_validating_the_bundle.ts +55 -0
  288. package/for_componentsGalleryScreens/when_checking_the_layouts_and_slots_they_fill.ts +56 -0
  289. package/for_componentsScreenTemplates/when_checking_that_arrangements_reference_declared_slots.ts +66 -0
  290. package/for_componentsScreenTemplates/when_following_the_nesting_chain.ts +83 -0
  291. package/for_componentsScreenTemplates/when_placing_them_in_the_default_blueprint_layout.ts +51 -0
  292. package/for_componentsScreenTemplates/when_resolving_the_component_names_they_reference.ts +72 -0
  293. package/for_deriveArcHeading/when_no_binding_is_named.ts +42 -0
  294. package/for_deriveArcHeading/when_the_binding_is_not_registered.ts +25 -0
  295. package/for_deriveArcHeading/when_the_binding_is_registered.ts +35 -0
  296. package/for_humanizeBindingName/when_reading_a_proxy_name.ts +34 -0
  297. package/gallery/ArcPages.stories.tsx +80 -0
  298. package/gallery/Bindings.stories.tsx +134 -0
  299. package/gallery/DialogTemplatePreview.tsx +49 -0
  300. package/gallery/DialogTemplates.stories.tsx +44 -0
  301. package/gallery/GalleryScreenPreview.tsx +70 -0
  302. package/gallery/applicationChrome.ts +108 -0
  303. package/gallery/index.ts +9 -0
  304. package/gallery/navigation.ts +63 -0
  305. package/gallery/previewProfile.ts +68 -0
  306. package/gallery/screens.ts +75 -0
  307. package/header/ArcHeading.ts +39 -0
  308. package/header/ArcPageHeader.tsx +44 -0
  309. package/header/deriveArcHeading.ts +47 -0
  310. package/header/humanizeBindingName.ts +36 -0
  311. package/header/index.ts +7 -0
  312. package/index.ts +12 -0
  313. package/package.json +71 -0
  314. package/packageName.ts +12 -0
  315. package/templates/ArcHeaderOptions.ts +27 -0
  316. package/templates/ColumnDefinition.ts +18 -0
  317. package/templates/SampleBindingName.ts +50 -0
  318. package/templates/TableOptions.ts +22 -0
  319. package/templates/commandTemplates.ts +59 -0
  320. package/templates/dataElements.ts +97 -0
  321. package/templates/dialogElements.ts +53 -0
  322. package/templates/dialogTemplates.ts +105 -0
  323. package/templates/editorElements.ts +69 -0
  324. package/templates/editorTemplates.ts +129 -0
  325. package/templates/elements.ts +81 -0
  326. package/templates/formElements.ts +61 -0
  327. package/templates/index.ts +20 -0
  328. package/templates/listTemplates.ts +142 -0
  329. package/templates/nesting.ts +118 -0
  330. package/templates/sampleData.ts +81 -0
  331. package/templates/screenTemplates.ts +35 -0
  332. package/templates/workspaceTemplates.ts +163 -0
@@ -0,0 +1,62 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { coreComponents, SceneElementView } from '@cratis/scene.react';
4
+ import { cratisComponents } from '@cratis/scene.components';
5
+ import { defaultBlueprintComponents, resolveElementComponentNames, composeScreenElement, LayoutConfigProvider, LayoutThemeProvider, defaultBlueprintThemes } from '@cratis/scene.blueprint.default';
6
+ import { componentsBlueprintComponents } from '../componentsBlueprintComponents.js';
7
+ import { componentsBlueprintProfile, componentsBlueprintCatalog } from './previewProfile.js';
8
+ import { componentsGalleryScreen } from './screens.js';
9
+
10
+ /**
11
+ * The registry a preview resolves against: `core`, `Cratis.Components`, the default blueprint, and this one.
12
+ *
13
+ * Merged by hand rather than through `mergePackageRegistries`, because reaching for this blueprint's own
14
+ * *bundle* here would be circular - the bundle is assembled from the gallery this file belongs to. Registry
15
+ * keys carry their package name, so merge order cannot cause a collision either way.
16
+ *
17
+ * Four of the profile's five packages are present. `PrimeReact` is not, which is why a `column` inside a
18
+ * table comes out unresolved - and it never reaches the DOM, because the table it belongs to is a
19
+ * placeholder until a host registers its query.
20
+ */ const componentsPreviewRegistry = {
21
+ ...coreComponents,
22
+ ...cratisComponents,
23
+ ...defaultBlueprintComponents,
24
+ ...componentsBlueprintComponents
25
+ };
26
+ /**
27
+ * Boots one gallery screen through the real engine.
28
+ *
29
+ * Nothing here is a preview-only path: the screen is a real `Screen`, its element tree is resolved by the
30
+ * real `resolveComponentName`, and it is rendered by the real `SceneElementView` against the real registry.
31
+ * That is the point of shipping a gallery at all - a mockup proves someone can draw an invoice list, and
32
+ * this proves the blueprint renders one.
33
+ *
34
+ * `LayoutConfigProvider` and `LayoutThemeProvider` are the default blueprint's, because the shell being
35
+ * previewed is the default blueprint's shell. This package provides Arc-bound pages to put inside it, and
36
+ * previewing them without the thing they were designed to sit in would prove the wrong thing.
37
+ */ function GalleryScreenPreview({ screenName, initialConfig, registry = componentsPreviewRegistry }) {
38
+ const element = useMemo(()=>{
39
+ const screen = componentsGalleryScreen(screenName);
40
+ if (!screen) {
41
+ throw new Error(`The gallery has no screen named '${screenName}'.`);
42
+ }
43
+ return resolveElementComponentNames(composeScreenElement(screen), componentsBlueprintProfile, componentsBlueprintCatalog);
44
+ }, [
45
+ screenName
46
+ ]);
47
+ return /*#__PURE__*/ jsx(LayoutConfigProvider, {
48
+ initialConfig: initialConfig,
49
+ storage: null,
50
+ children: /*#__PURE__*/ jsx(LayoutThemeProvider, {
51
+ themes: defaultBlueprintThemes,
52
+ children: /*#__PURE__*/ jsx(SceneElementView, {
53
+ element: element,
54
+ registry: registry,
55
+ resolveBinding: ()=>undefined
56
+ })
57
+ })
58
+ });
59
+ }
60
+
61
+ export { GalleryScreenPreview, componentsPreviewRegistry };
62
+ //# sourceMappingURL=GalleryScreenPreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GalleryScreenPreview.js","sources":["../../../gallery/GalleryScreenPreview.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { useMemo } from 'react';\nimport { ComponentRegistry, SceneElementView, coreComponents } from '@cratis/scene.react';\nimport { cratisComponents } from '@cratis/scene.components';\nimport { LayoutConfigProvider, LayoutConfigState, LayoutThemeProvider, composeScreenElement, defaultBlueprintComponents, defaultBlueprintThemes, resolveElementComponentNames } from '@cratis/scene.blueprint.default';\nimport { componentsBlueprintComponents } from '../componentsBlueprintComponents';\nimport { componentsBlueprintCatalog, componentsBlueprintProfile } from './previewProfile';\nimport { componentsGalleryScreen } from './screens';\n\n/**\n * The registry a preview resolves against: `core`, `Cratis.Components`, the default blueprint, and this one.\n *\n * Merged by hand rather than through `mergePackageRegistries`, because reaching for this blueprint's own\n * *bundle* here would be circular - the bundle is assembled from the gallery this file belongs to. Registry\n * keys carry their package name, so merge order cannot cause a collision either way.\n *\n * Four of the profile's five packages are present. `PrimeReact` is not, which is why a `column` inside a\n * table comes out unresolved - and it never reaches the DOM, because the table it belongs to is a\n * placeholder until a host registers its query.\n */\nexport const componentsPreviewRegistry: ComponentRegistry = {\n ...coreComponents,\n ...cratisComponents,\n ...defaultBlueprintComponents,\n ...componentsBlueprintComponents,\n};\n\nexport interface GalleryScreenPreviewProps {\n /** The name of the gallery screen to boot. */\n screenName: string;\n\n /** Configuration to start from - a story pinning a layout mode, or a host restoring a session. */\n initialConfig?: Partial<LayoutConfigState>;\n\n /** The component registry to render against. Defaults to {@link componentsPreviewRegistry}. */\n registry?: ComponentRegistry;\n}\n\n/**\n * Boots one gallery screen through the real engine.\n *\n * Nothing here is a preview-only path: the screen is a real `Screen`, its element tree is resolved by the\n * real `resolveComponentName`, and it is rendered by the real `SceneElementView` against the real registry.\n * That is the point of shipping a gallery at all - a mockup proves someone can draw an invoice list, and\n * this proves the blueprint renders one.\n *\n * `LayoutConfigProvider` and `LayoutThemeProvider` are the default blueprint's, because the shell being\n * previewed is the default blueprint's shell. This package provides Arc-bound pages to put inside it, and\n * previewing them without the thing they were designed to sit in would prove the wrong thing.\n */\nexport function GalleryScreenPreview({ screenName, initialConfig, registry = componentsPreviewRegistry }: GalleryScreenPreviewProps) {\n const element = useMemo(() => {\n const screen = componentsGalleryScreen(screenName);\n if (!screen) {\n throw new Error(`The gallery has no screen named '${screenName}'.`);\n }\n\n return resolveElementComponentNames(composeScreenElement(screen), componentsBlueprintProfile, componentsBlueprintCatalog);\n }, [screenName]);\n\n return (\n <LayoutConfigProvider initialConfig={initialConfig} storage={null}>\n <LayoutThemeProvider themes={defaultBlueprintThemes}>\n <SceneElementView element={element} registry={registry} resolveBinding={() => undefined} />\n </LayoutThemeProvider>\n </LayoutConfigProvider>\n );\n}\n"],"names":["componentsPreviewRegistry","coreComponents","cratisComponents","defaultBlueprintComponents","componentsBlueprintComponents","GalleryScreenPreview","screenName","initialConfig","registry","element","useMemo","screen","componentsGalleryScreen","Error","resolveElementComponentNames","composeScreenElement","componentsBlueprintProfile","componentsBlueprintCatalog","_jsx","LayoutConfigProvider","storage","LayoutThemeProvider","themes","defaultBlueprintThemes","SceneElementView","resolveBinding","undefined"],"mappings":";;;;;;;;;AAWA;;;;;;;;;;UAWaA,yBAAAA,GAA+C;AACxD,IAAA,GAAGC,cAAc;AACjB,IAAA,GAAGC,gBAAgB;AACnB,IAAA,GAAGC,0BAA0B;AAC7B,IAAA,GAAGC;AACP;AAaA;;;;;;;;;;;IAYO,SAASC,oBAAAA,CAAqB,EAAEC,UAAU,EAAEC,aAAa,EAAEC,QAAAA,GAAWR,yBAAyB,EAA6B,EAAA;AAC/H,IAAA,MAAMS,UAAUC,OAAAA,CAAQ,IAAA;AACpB,QAAA,MAAMC,SAASC,uBAAAA,CAAwBN,UAAAA,CAAAA;AACvC,QAAA,IAAI,CAACK,MAAAA,EAAQ;AACT,YAAA,MAAM,IAAIE,KAAAA,CAAM,CAAC,iCAAiC,EAAEP,UAAAA,CAAW,EAAE,CAAC,CAAA;AACtE,QAAA;QAEA,OAAOQ,4BAAAA,CAA6BC,oBAAAA,CAAqBJ,MAAAA,CAAAA,EAASK,0BAAAA,EAA4BC,0BAAAA,CAAAA;IAClG,CAAA,EAAG;AAACX,QAAAA;AAAW,KAAA,CAAA;AAEf,IAAA,qBACIY,GAAA,CAACC,oBAAAA,EAAAA;QAAqBZ,aAAAA,EAAeA,aAAAA;QAAea,OAAAA,EAAS,IAAA;AACzD,QAAA,QAAA,gBAAAF,GAAA,CAACG,mBAAAA,EAAAA;YAAoBC,MAAAA,EAAQC,sBAAAA;AACzB,YAAA,QAAA,gBAAAL,GAAA,CAACM,gBAAAA,EAAAA;gBAAiBf,OAAAA,EAASA,OAAAA;gBAASD,QAAAA,EAAUA,QAAAA;AAAUiB,gBAAAA,cAAAA,EAAgB,IAAMC;;;;AAI9F;;;;"}
@@ -0,0 +1,3 @@
1
+ import { SceneElement } from '@cratis/scene.model';
2
+ export declare function componentsApplicationChrome(activeScreen: string): Record<string, SceneElement[]>;
3
+ //# sourceMappingURL=applicationChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applicationChrome.d.ts","sourceRoot":"","sources":["../../../gallery/applicationChrome.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AA4EnD,wBAAgB,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CA4BhG"}
@@ -0,0 +1,135 @@
1
+ import { SlotName, externalComponent, ComponentName, defaultBlueprintThemes } from '@cratis/scene.blueprint.default';
2
+ import { groupOfScreen, labelOfScreen, componentsNavigationGroups, entriesInGroup } from './navigation.js';
3
+
4
+ // Copyright (c) Cratis. All rights reserved.
5
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
6
+ /**
7
+ * The application-shell chrome every gallery screen in this package shares.
8
+ *
9
+ * Every element here names a component the **default blueprint** declares - `topbar`, `sidebar`, `menu`,
10
+ * `breadcrumb`, `footer`, `configPanel`, `logo`, `userMenu` - and every slot is one of that blueprint's
11
+ * `SlotName`s. That is this package's dependency on it made concrete rather than merely declared: this
12
+ * blueprint contributes Arc-bound *pages*, and borrows the shell those pages live in.
13
+ *
14
+ * A blueprint that shipped its own topbar and its own sidebar would be a rival to the default one rather
15
+ * than a layer on it, and an application would have to choose. Since a profile activates one blueprint's
16
+ * layouts and both blueprints' templates, layering is what makes the two usable together at all.
17
+ */ /** The brand mark, shared by the topbar and the sidebar header. */ function logo(id) {
18
+ return externalComponent(id, ComponentName.Logo, {
19
+ label: 'Contoso Billing',
20
+ initials: 'CB',
21
+ targetScreen: 'DashboardPage'
22
+ });
23
+ }
24
+ /** One menu section per navigation group, each holding that group's entries. */ function menuSections(activeScreen) {
25
+ return componentsNavigationGroups.map((group)=>externalComponent(`menu-${group.toLowerCase()}`, ComponentName.Menu, {
26
+ title: group,
27
+ label: group
28
+ }, {
29
+ items: entriesInGroup(group).map((entry)=>navigationItem(entry.targetScreen, entry.label, entry.icon, entry.order, group, activeScreen))
30
+ }));
31
+ }
32
+ function navigationItem(targetScreen, label, icon, order, group, activeScreen) {
33
+ return externalComponent(`nav-${targetScreen}`, ComponentName.MenuItem, {
34
+ label,
35
+ targetScreen,
36
+ routeParameterBindings: {},
37
+ order,
38
+ group,
39
+ icon,
40
+ isActive: targetScreen === activeScreen
41
+ });
42
+ }
43
+ /** The configurator, offering the themes the default blueprint ships - this package ships none of its own. */ function configPanel() {
44
+ return externalComponent(ComponentName.ConfigPanel, ComponentName.ConfigPanel, {
45
+ title: 'Settings',
46
+ themes: defaultBlueprintThemes.map((theme)=>({
47
+ name: theme.name,
48
+ label: theme.name,
49
+ isDark: theme.isDark ?? false
50
+ }))
51
+ });
52
+ }
53
+ /**
54
+ * The trail above a screen's content, derived from the navigation rather than declared a second time.
55
+ *
56
+ * A hand-written table of breadcrumbs per screen is a second statement of where each screen sits, and the
57
+ * two drift the first time a screen is renamed. The navigation already knows the group and the label, so
58
+ * the trail follows from it.
59
+ */ function breadcrumbEntries(activeScreen) {
60
+ const group = groupOfScreen(activeScreen);
61
+ const label = labelOfScreen(activeScreen) ?? activeScreen;
62
+ return group === undefined ? [
63
+ {
64
+ label
65
+ }
66
+ ] : [
67
+ {
68
+ label: group,
69
+ targetScreen: 'DashboardPage'
70
+ },
71
+ {
72
+ label
73
+ }
74
+ ];
75
+ }
76
+ /**
77
+ * The application shell's slot content for one screen.
78
+ *
79
+ * Only the breadcrumb and which menu entry is marked active differ from screen to screen - everything else
80
+ * is identical, which is what chrome is for.
81
+ *
82
+ * @param activeScreen The screen being rendered, so its menu entry is marked current and its trail is built.
83
+ * @returns Slot content keyed by the {@link SlotName}s the default blueprint's `AppShell` layout declares.
84
+ */ function componentsApplicationChrome(activeScreen) {
85
+ return {
86
+ [SlotName.Topbar]: [
87
+ externalComponent('topbar', ComponentName.Topbar, {}, {
88
+ logo: [
89
+ logo('topbar-logo')
90
+ ],
91
+ end: [
92
+ externalComponent('topbar-user', ComponentName.UserMenu, {
93
+ name: 'Amelia Nyquist',
94
+ role: 'Billing owner',
95
+ initials: 'AN',
96
+ items: [
97
+ {
98
+ label: 'Invoice document',
99
+ icon: 'pi pi-file-edit',
100
+ targetScreen: 'ObjectEditorPage'
101
+ }
102
+ ]
103
+ })
104
+ ]
105
+ })
106
+ ],
107
+ [SlotName.Sidebar]: [
108
+ externalComponent('sidebar', ComponentName.Sidebar, {
109
+ title: 'Contoso Billing'
110
+ }, {
111
+ logo: [
112
+ logo('sidebar-logo')
113
+ ]
114
+ })
115
+ ],
116
+ [SlotName.Menu]: menuSections(activeScreen),
117
+ [SlotName.Breadcrumb]: [
118
+ externalComponent('breadcrumb', ComponentName.Breadcrumb, {
119
+ homeTargetScreen: 'DashboardPage',
120
+ items: breadcrumbEntries(activeScreen)
121
+ })
122
+ ],
123
+ [SlotName.Footer]: [
124
+ externalComponent('footer', ComponentName.Footer, {
125
+ text: '© Contoso · Arc-bound pages from Cratis Scene'
126
+ })
127
+ ],
128
+ [SlotName.ConfigPanel]: [
129
+ configPanel()
130
+ ]
131
+ };
132
+ }
133
+
134
+ export { componentsApplicationChrome };
135
+ //# sourceMappingURL=applicationChrome.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applicationChrome.js","sources":["../../../gallery/applicationChrome.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { SceneElement } from '@cratis/scene.model';\nimport { ComponentName as DefaultComponentName, SlotName, defaultBlueprintThemes, externalComponent } from '@cratis/scene.blueprint.default';\nimport { componentsNavigationGroups, entriesInGroup, groupOfScreen, labelOfScreen } from './navigation';\n\n/**\n * The application-shell chrome every gallery screen in this package shares.\n *\n * Every element here names a component the **default blueprint** declares - `topbar`, `sidebar`, `menu`,\n * `breadcrumb`, `footer`, `configPanel`, `logo`, `userMenu` - and every slot is one of that blueprint's\n * `SlotName`s. That is this package's dependency on it made concrete rather than merely declared: this\n * blueprint contributes Arc-bound *pages*, and borrows the shell those pages live in.\n *\n * A blueprint that shipped its own topbar and its own sidebar would be a rival to the default one rather\n * than a layer on it, and an application would have to choose. Since a profile activates one blueprint's\n * layouts and both blueprints' templates, layering is what makes the two usable together at all.\n */\n\n/** The brand mark, shared by the topbar and the sidebar header. */\nfunction logo(id: string): SceneElement {\n return externalComponent(id, DefaultComponentName.Logo, { label: 'Contoso Billing', initials: 'CB', targetScreen: 'DashboardPage' });\n}\n\n/** One menu section per navigation group, each holding that group's entries. */\nfunction menuSections(activeScreen: string): SceneElement[] {\n return componentsNavigationGroups.map(group =>\n externalComponent(\n `menu-${group.toLowerCase()}`,\n DefaultComponentName.Menu,\n { title: group, label: group },\n { items: entriesInGroup(group).map(entry => navigationItem(entry.targetScreen, entry.label, entry.icon, entry.order, group, activeScreen)) },\n ),\n );\n}\n\nfunction navigationItem(targetScreen: string, label: string, icon: string, order: number, group: string, activeScreen: string): SceneElement {\n return externalComponent(`nav-${targetScreen}`, DefaultComponentName.MenuItem, {\n label,\n targetScreen,\n routeParameterBindings: {},\n order,\n group,\n icon,\n isActive: targetScreen === activeScreen,\n });\n}\n\n/** The configurator, offering the themes the default blueprint ships - this package ships none of its own. */\nfunction configPanel(): SceneElement {\n return externalComponent(DefaultComponentName.ConfigPanel, DefaultComponentName.ConfigPanel, {\n title: 'Settings',\n themes: defaultBlueprintThemes.map(theme => ({ name: theme.name, label: theme.name, isDark: theme.isDark ?? false })),\n });\n}\n\n/**\n * The trail above a screen's content, derived from the navigation rather than declared a second time.\n *\n * A hand-written table of breadcrumbs per screen is a second statement of where each screen sits, and the\n * two drift the first time a screen is renamed. The navigation already knows the group and the label, so\n * the trail follows from it.\n */\nfunction breadcrumbEntries(activeScreen: string): { label: string; targetScreen?: string }[] {\n const group = groupOfScreen(activeScreen);\n const label = labelOfScreen(activeScreen) ?? activeScreen;\n return group === undefined ? [{ label }] : [{ label: group, targetScreen: 'DashboardPage' }, { label }];\n}\n\n/**\n * The application shell's slot content for one screen.\n *\n * Only the breadcrumb and which menu entry is marked active differ from screen to screen - everything else\n * is identical, which is what chrome is for.\n *\n * @param activeScreen The screen being rendered, so its menu entry is marked current and its trail is built.\n * @returns Slot content keyed by the {@link SlotName}s the default blueprint's `AppShell` layout declares.\n */\nexport function componentsApplicationChrome(activeScreen: string): Record<string, SceneElement[]> {\n return {\n [SlotName.Topbar]: [\n externalComponent(\n 'topbar',\n DefaultComponentName.Topbar,\n {},\n {\n logo: [logo('topbar-logo')],\n end: [\n externalComponent('topbar-user', DefaultComponentName.UserMenu, {\n name: 'Amelia Nyquist',\n role: 'Billing owner',\n initials: 'AN',\n items: [{ label: 'Invoice document', icon: 'pi pi-file-edit', targetScreen: 'ObjectEditorPage' }],\n }),\n ],\n },\n ),\n ],\n [SlotName.Sidebar]: [externalComponent('sidebar', DefaultComponentName.Sidebar, { title: 'Contoso Billing' }, { logo: [logo('sidebar-logo')] })],\n [SlotName.Menu]: menuSections(activeScreen),\n [SlotName.Breadcrumb]: [\n externalComponent('breadcrumb', DefaultComponentName.Breadcrumb, { homeTargetScreen: 'DashboardPage', items: breadcrumbEntries(activeScreen) }),\n ],\n [SlotName.Footer]: [externalComponent('footer', DefaultComponentName.Footer, { text: '© Contoso · Arc-bound pages from Cratis Scene' })],\n [SlotName.ConfigPanel]: [configPanel()],\n };\n}\n"],"names":["logo","id","externalComponent","DefaultComponentName","Logo","label","initials","targetScreen","menuSections","activeScreen","componentsNavigationGroups","map","group","toLowerCase","Menu","title","items","entriesInGroup","entry","navigationItem","icon","order","MenuItem","routeParameterBindings","isActive","configPanel","ConfigPanel","themes","defaultBlueprintThemes","theme","name","isDark","breadcrumbEntries","groupOfScreen","labelOfScreen","undefined","componentsApplicationChrome","SlotName","Topbar","end","UserMenu","role","Sidebar","Breadcrumb","homeTargetScreen","Footer","text"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export * from './navigation';
2
+ export * from './applicationChrome';
3
+ export * from './screens';
4
+ export * from './previewProfile';
5
+ export * from './GalleryScreenPreview';
6
+ export * from './DialogTemplatePreview';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../gallery/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './navigation';
2
+ export * from './applicationChrome';
3
+ export * from './screens';
4
+ export * from './previewProfile';
5
+ export * from './GalleryScreenPreview';
6
+ export * from './DialogTemplatePreview';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../gallery/index.ts"],"names":[],"mappings":"AAGA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Contribution } from '@cratis/scene.model';
2
+ import { NavigationEntry } from '@cratis/scene.blueprint.default';
3
+ export declare const componentsNavigationEntries: NavigationEntry[];
4
+ export declare const componentsNavigationContributions: Contribution[];
5
+ export declare function entriesInGroup(group: string): NavigationEntry[];
6
+ export declare const componentsNavigationGroups: string[];
7
+ export declare function groupOfScreen(screenName: string): string | undefined;
8
+ export declare function labelOfScreen(screenName: string): string | undefined;
9
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../gallery/navigation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAkD,MAAM,iCAAiC,CAAC;AAelH,eAAO,MAAM,2BAA2B,EAAE,eAAe,EAYxD,CAAC;AASF,eAAO,MAAM,iCAAiC,EAAE,YAAY,EAIzD,CAAC;AAGJ,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,EAAE,CAE/D;AAGD,eAAO,MAAM,0BAA0B,EAAE,MAAM,EAAwE,CAAC;AAGxH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE;AAGD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEpE"}
@@ -0,0 +1,121 @@
1
+ import { navigationContributionPoint, navigationElement } from '@cratis/scene.blueprint.default';
2
+
3
+ // Copyright (c) Cratis. All rights reserved.
4
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
5
+ /**
6
+ * The navigation for this blueprint's gallery, declared once.
7
+ *
8
+ * One list, two consumers: the sidebar menu renders it as `menuItem` elements, and the same elements go to
9
+ * the `Navigation` contribution point where the default blueprint's aggregation turns them back into
10
+ * navigation items. Maintaining a menu *and* a separate navigation declaration would mean two lists that
11
+ * agree right up until someone adds a screen to one of them.
12
+ *
13
+ * `navigationElement` and the contribution point name are the default blueprint's, not this package's.
14
+ * Reimplementing them here would produce a menu that looked identical and contributed to a contribution
15
+ * point nothing reads - which is the exact failure mode a blueprint-on-blueprint dependency exists to
16
+ * avoid.
17
+ */ const componentsNavigationEntries = [
18
+ {
19
+ label: 'Dashboard',
20
+ targetScreen: 'DashboardPage',
21
+ icon: 'pi pi-chart-bar',
22
+ group: 'Billing',
23
+ order: 10
24
+ },
25
+ {
26
+ label: 'Invoices',
27
+ targetScreen: 'DataListPage',
28
+ icon: 'pi pi-list',
29
+ group: 'Billing',
30
+ order: 20
31
+ },
32
+ {
33
+ label: 'In flight',
34
+ targetScreen: 'ObservableDataListPage',
35
+ icon: 'pi pi-bolt',
36
+ group: 'Billing',
37
+ order: 30
38
+ },
39
+ {
40
+ label: 'Invoices and detail',
41
+ targetScreen: 'DataListWithDetailPage',
42
+ icon: 'pi pi-window-maximize',
43
+ group: 'Billing',
44
+ order: 40
45
+ },
46
+ {
47
+ label: 'Master and detail',
48
+ targetScreen: 'MasterDetailPage',
49
+ icon: 'pi pi-table',
50
+ group: 'Billing',
51
+ order: 50
52
+ },
53
+ {
54
+ label: 'Register an invoice',
55
+ targetScreen: 'CommandFormPage',
56
+ icon: 'pi pi-plus-circle',
57
+ group: 'Billing',
58
+ order: 60
59
+ },
60
+ {
61
+ label: 'Event type schema',
62
+ targetScreen: 'SchemaEditorPage',
63
+ icon: 'pi pi-sitemap',
64
+ group: 'Inspect',
65
+ order: 10
66
+ },
67
+ {
68
+ label: 'Invoice document',
69
+ targetScreen: 'ObjectEditorPage',
70
+ icon: 'pi pi-file-edit',
71
+ group: 'Inspect',
72
+ order: 20
73
+ },
74
+ {
75
+ label: 'Billing module',
76
+ targetScreen: 'DataModulePage',
77
+ icon: 'pi pi-th-large',
78
+ group: 'Nesting',
79
+ order: 10
80
+ },
81
+ {
82
+ label: 'Adjustments feature',
83
+ targetScreen: 'DataFeatureSection',
84
+ icon: 'pi pi-folder',
85
+ group: 'Nesting',
86
+ order: 20
87
+ },
88
+ {
89
+ label: 'Record an adjustment',
90
+ targetScreen: 'CommandSliceSection',
91
+ icon: 'pi pi-pencil',
92
+ group: 'Nesting',
93
+ order: 30
94
+ }
95
+ ];
96
+ /**
97
+ * The navigation as contributions to the `Navigation` contribution point.
98
+ *
99
+ * A screen carries these in its `contributions`, and anything bound to the contribution point recomputes
100
+ * from whatever is currently in scope - so a screen that contributes an extra entry gets it into the
101
+ * navigation without the navigation knowing that screen exists.
102
+ */ const componentsNavigationContributions = componentsNavigationEntries.map((entry)=>({
103
+ contributionPointName: navigationContributionPoint,
104
+ content: navigationElement(entry),
105
+ order: entry.order
106
+ }));
107
+ /** The navigation entries of one group, in order. */ function entriesInGroup(group) {
108
+ return componentsNavigationEntries.filter((entry)=>entry.group === group).sort((first, second)=>first.order - second.order);
109
+ }
110
+ /** Every group named by the navigation, in first-declared order. */ const componentsNavigationGroups = [
111
+ ...new Set(componentsNavigationEntries.map((entry)=>entry.group))
112
+ ];
113
+ /** The section a screen belongs to, for the first entry of its breadcrumb trail. */ function groupOfScreen(screenName) {
114
+ return componentsNavigationEntries.find((entry)=>entry.targetScreen === screenName)?.group;
115
+ }
116
+ /** The navigation label of a screen, for the last entry of its breadcrumb trail. */ function labelOfScreen(screenName) {
117
+ return componentsNavigationEntries.find((entry)=>entry.targetScreen === screenName)?.label;
118
+ }
119
+
120
+ export { componentsNavigationContributions, componentsNavigationEntries, componentsNavigationGroups, entriesInGroup, groupOfScreen, labelOfScreen };
121
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","sources":["../../../gallery/navigation.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Contribution } from '@cratis/scene.model';\nimport { NavigationEntry, navigationContributionPoint, navigationElement } from '@cratis/scene.blueprint.default';\n\n/**\n * The navigation for this blueprint's gallery, declared once.\n *\n * One list, two consumers: the sidebar menu renders it as `menuItem` elements, and the same elements go to\n * the `Navigation` contribution point where the default blueprint's aggregation turns them back into\n * navigation items. Maintaining a menu *and* a separate navigation declaration would mean two lists that\n * agree right up until someone adds a screen to one of them.\n *\n * `navigationElement` and the contribution point name are the default blueprint's, not this package's.\n * Reimplementing them here would produce a menu that looked identical and contributed to a contribution\n * point nothing reads - which is the exact failure mode a blueprint-on-blueprint dependency exists to\n * avoid.\n */\nexport const componentsNavigationEntries: NavigationEntry[] = [\n { label: 'Dashboard', targetScreen: 'DashboardPage', icon: 'pi pi-chart-bar', group: 'Billing', order: 10 },\n { label: 'Invoices', targetScreen: 'DataListPage', icon: 'pi pi-list', group: 'Billing', order: 20 },\n { label: 'In flight', targetScreen: 'ObservableDataListPage', icon: 'pi pi-bolt', group: 'Billing', order: 30 },\n { label: 'Invoices and detail', targetScreen: 'DataListWithDetailPage', icon: 'pi pi-window-maximize', group: 'Billing', order: 40 },\n { label: 'Master and detail', targetScreen: 'MasterDetailPage', icon: 'pi pi-table', group: 'Billing', order: 50 },\n { label: 'Register an invoice', targetScreen: 'CommandFormPage', icon: 'pi pi-plus-circle', group: 'Billing', order: 60 },\n { label: 'Event type schema', targetScreen: 'SchemaEditorPage', icon: 'pi pi-sitemap', group: 'Inspect', order: 10 },\n { label: 'Invoice document', targetScreen: 'ObjectEditorPage', icon: 'pi pi-file-edit', group: 'Inspect', order: 20 },\n { label: 'Billing module', targetScreen: 'DataModulePage', icon: 'pi pi-th-large', group: 'Nesting', order: 10 },\n { label: 'Adjustments feature', targetScreen: 'DataFeatureSection', icon: 'pi pi-folder', group: 'Nesting', order: 20 },\n { label: 'Record an adjustment', targetScreen: 'CommandSliceSection', icon: 'pi pi-pencil', group: 'Nesting', order: 30 },\n];\n\n/**\n * The navigation as contributions to the `Navigation` contribution point.\n *\n * A screen carries these in its `contributions`, and anything bound to the contribution point recomputes\n * from whatever is currently in scope - so a screen that contributes an extra entry gets it into the\n * navigation without the navigation knowing that screen exists.\n */\nexport const componentsNavigationContributions: Contribution[] = componentsNavigationEntries.map(entry => ({\n contributionPointName: navigationContributionPoint,\n content: navigationElement(entry),\n order: entry.order,\n}));\n\n/** The navigation entries of one group, in order. */\nexport function entriesInGroup(group: string): NavigationEntry[] {\n return componentsNavigationEntries.filter(entry => entry.group === group).sort((first, second) => first.order - second.order);\n}\n\n/** Every group named by the navigation, in first-declared order. */\nexport const componentsNavigationGroups: string[] = [...new Set(componentsNavigationEntries.map(entry => entry.group))];\n\n/** The section a screen belongs to, for the first entry of its breadcrumb trail. */\nexport function groupOfScreen(screenName: string): string | undefined {\n return componentsNavigationEntries.find(entry => entry.targetScreen === screenName)?.group;\n}\n\n/** The navigation label of a screen, for the last entry of its breadcrumb trail. */\nexport function labelOfScreen(screenName: string): string | undefined {\n return componentsNavigationEntries.find(entry => entry.targetScreen === screenName)?.label;\n}\n"],"names":["componentsNavigationEntries","label","targetScreen","icon","group","order","componentsNavigationContributions","map","entry","contributionPointName","navigationContributionPoint","content","navigationElement","entriesInGroup","filter","sort","first","second","componentsNavigationGroups","Set","groupOfScreen","screenName","find","labelOfScreen"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { UiProfile } from '@cratis/scene.model';
2
+ import { PackageCatalog } from '@cratis/scene.engine';
3
+ export declare const primeReactComponentNames: string[];
4
+ export declare const componentsBlueprintProfile: UiProfile;
5
+ export declare const componentsBlueprintCatalog: PackageCatalog;
6
+ //# sourceMappingURL=previewProfile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"previewProfile.d.ts","sourceRoot":"","sources":["../../../gallery/previewProfile.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAsBtD,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAA4I,CAAC;AAuB1L,eAAO,MAAM,0BAA0B,EAAE,SAIxC,CAAC;AAQF,eAAO,MAAM,0BAA0B,EAAE,cAMxC,CAAC"}
@@ -0,0 +1,83 @@
1
+ import { corePackageManifest } from '@cratis/scene.react';
2
+ import { cratisComponentsPackageManifest } from '@cratis/scene.components';
3
+ import { defaultBlueprintName, defaultBlueprintManifest } from '@cratis/scene.blueprint.default';
4
+ import { ComponentName } from '../ComponentName.js';
5
+ import { componentsBlueprintName } from '../packageName.js';
6
+
7
+ // Copyright (c) Cratis. All rights reserved.
8
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
9
+ /**
10
+ * The names this blueprint borrows from `PrimeReact`.
11
+ *
12
+ * Every other package in the catalog below contributes its *real* manifest, because this package takes an
13
+ * npm dependency on each of them. `PrimeReact` is the exception: this blueprint depends on it in the
14
+ * manifest sense - `column` comes from there - without depending on its bundle, so its declaration is not
15
+ * importable here and the borrowed names are written out instead.
16
+ *
17
+ * Every name below was checked against `primeReactPackage.ts`'s own component list rather than assumed.
18
+ * The default blueprint learned why that matters when it referenced `chart` and `fileUpload`, which
19
+ * neither library declares - names that look obvious and render as dashed red boxes.
20
+ *
21
+ * A host that has all five packages loaded should build this catalog from their manifests instead. The
22
+ * shape is the same, and anything that has drifted then fails this blueprint's specs rather than a preview.
23
+ */ const primeReactComponentNames = [
24
+ 'column',
25
+ 'dataTable',
26
+ 'table',
27
+ 'dialog',
28
+ 'button',
29
+ 'card',
30
+ 'text',
31
+ 'toolbar',
32
+ 'dropdown',
33
+ 'tooltip',
34
+ 'menu',
35
+ 'breadcrumb',
36
+ 'sidebar'
37
+ ];
38
+ /**
39
+ * The profile this blueprint's templates resolve against.
40
+ *
41
+ * Declaration order is ascending priority, which is why this exact order matters rather than being
42
+ * cosmetic. `Cratis.Components` outranks `PrimeReact`, so a template naming `table` or `dialog` gets the
43
+ * Arc-aware one and PrimeReact's is recorded as shadowed. Both blueprints outrank both libraries, so
44
+ * `pageHeader` and `arcPageHeader` resolve to the packages that declare them. And this blueprint sits at
45
+ * the top, which costs nothing today - it declares one name nobody else does - but is the correct place
46
+ * for the package doing the layering.
47
+ *
48
+ * `core` is listed explicitly rather than left to `effectivePackages` to prepend, because a theme's
49
+ * compatibility is checked against exactly what a profile declares, and a profile leaning on the implicit
50
+ * fallback would make a theme look incompatible with a package the profile never admitted to using.
51
+ *
52
+ * Unlike the default blueprint, this package needs no separate *preview* profile. That blueprint takes no
53
+ * npm dependency on the libraries its templates reference, so previewing it from its own package resolves
54
+ * most names to implementations that are not loaded. This one depends on `@cratis/scene.components` and
55
+ * `@cratis/scene.blueprint.default` for real, so everything its templates name is loadable except
56
+ * PrimeReact's `column` - and a `column` never reaches the DOM at design time anyway, because the table it
57
+ * belongs to is a placeholder until a host registers its query.
58
+ */ const componentsBlueprintProfile = {
59
+ name: 'Arc pages',
60
+ targetPlatform: 'web',
61
+ packages: [
62
+ 'core',
63
+ 'PrimeReact',
64
+ cratisComponentsPackageManifest.name,
65
+ defaultBlueprintName,
66
+ componentsBlueprintName
67
+ ]
68
+ };
69
+ /**
70
+ * The component catalog the templates resolve against.
71
+ *
72
+ * Four of the five entries are the owning package's real declared list, read straight off its manifest, so
73
+ * a name renamed upstream fails a spec here instead of rendering as a dashed box in someone's application.
74
+ */ const componentsBlueprintCatalog = {
75
+ [corePackageManifest.name]: corePackageManifest.components,
76
+ PrimeReact: primeReactComponentNames,
77
+ [cratisComponentsPackageManifest.name]: cratisComponentsPackageManifest.components,
78
+ [defaultBlueprintName]: defaultBlueprintManifest.components,
79
+ [componentsBlueprintName]: Object.values(ComponentName)
80
+ };
81
+
82
+ export { componentsBlueprintCatalog, componentsBlueprintProfile, primeReactComponentNames };
83
+ //# sourceMappingURL=previewProfile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"previewProfile.js","sources":["../../../gallery/previewProfile.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { UiProfile } from '@cratis/scene.model';\nimport { PackageCatalog } from '@cratis/scene.engine';\nimport { corePackageManifest } from '@cratis/scene.react';\nimport { cratisComponentsPackageManifest } from '@cratis/scene.components';\nimport { defaultBlueprintManifest, defaultBlueprintName } from '@cratis/scene.blueprint.default';\nimport { ComponentName } from '../ComponentName';\nimport { componentsBlueprintName } from '../packageName';\n\n/**\n * The names this blueprint borrows from `PrimeReact`.\n *\n * Every other package in the catalog below contributes its *real* manifest, because this package takes an\n * npm dependency on each of them. `PrimeReact` is the exception: this blueprint depends on it in the\n * manifest sense - `column` comes from there - without depending on its bundle, so its declaration is not\n * importable here and the borrowed names are written out instead.\n *\n * Every name below was checked against `primeReactPackage.ts`'s own component list rather than assumed.\n * The default blueprint learned why that matters when it referenced `chart` and `fileUpload`, which\n * neither library declares - names that look obvious and render as dashed red boxes.\n *\n * A host that has all five packages loaded should build this catalog from their manifests instead. The\n * shape is the same, and anything that has drifted then fails this blueprint's specs rather than a preview.\n */\nexport const primeReactComponentNames: string[] = ['column', 'dataTable', 'table', 'dialog', 'button', 'card', 'text', 'toolbar', 'dropdown', 'tooltip', 'menu', 'breadcrumb', 'sidebar'];\n\n/**\n * The profile this blueprint's templates resolve against.\n *\n * Declaration order is ascending priority, which is why this exact order matters rather than being\n * cosmetic. `Cratis.Components` outranks `PrimeReact`, so a template naming `table` or `dialog` gets the\n * Arc-aware one and PrimeReact's is recorded as shadowed. Both blueprints outrank both libraries, so\n * `pageHeader` and `arcPageHeader` resolve to the packages that declare them. And this blueprint sits at\n * the top, which costs nothing today - it declares one name nobody else does - but is the correct place\n * for the package doing the layering.\n *\n * `core` is listed explicitly rather than left to `effectivePackages` to prepend, because a theme's\n * compatibility is checked against exactly what a profile declares, and a profile leaning on the implicit\n * fallback would make a theme look incompatible with a package the profile never admitted to using.\n *\n * Unlike the default blueprint, this package needs no separate *preview* profile. That blueprint takes no\n * npm dependency on the libraries its templates reference, so previewing it from its own package resolves\n * most names to implementations that are not loaded. This one depends on `@cratis/scene.components` and\n * `@cratis/scene.blueprint.default` for real, so everything its templates name is loadable except\n * PrimeReact's `column` - and a `column` never reaches the DOM at design time anyway, because the table it\n * belongs to is a placeholder until a host registers its query.\n */\nexport const componentsBlueprintProfile: UiProfile = {\n name: 'Arc pages',\n targetPlatform: 'web',\n packages: ['core', 'PrimeReact', cratisComponentsPackageManifest.name, defaultBlueprintName, componentsBlueprintName],\n};\n\n/**\n * The component catalog the templates resolve against.\n *\n * Four of the five entries are the owning package's real declared list, read straight off its manifest, so\n * a name renamed upstream fails a spec here instead of rendering as a dashed box in someone's application.\n */\nexport const componentsBlueprintCatalog: PackageCatalog = {\n [corePackageManifest.name]: corePackageManifest.components,\n PrimeReact: primeReactComponentNames,\n [cratisComponentsPackageManifest.name]: cratisComponentsPackageManifest.components,\n [defaultBlueprintName]: defaultBlueprintManifest.components,\n [componentsBlueprintName]: Object.values(ComponentName),\n};\n"],"names":["primeReactComponentNames","componentsBlueprintProfile","name","targetPlatform","packages","cratisComponentsPackageManifest","defaultBlueprintName","componentsBlueprintName","componentsBlueprintCatalog","corePackageManifest","components","PrimeReact","defaultBlueprintManifest","Object","values","ComponentName"],"mappings":";;;;;;AAAA;AACA;AAUA;;;;;;;;;;;;;;UAeaA,wBAAAA,GAAqC;AAAC,IAAA,QAAA;AAAU,IAAA,WAAA;AAAa,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA,QAAA;AAAU,IAAA,MAAA;AAAQ,IAAA,MAAA;AAAQ,IAAA,SAAA;AAAW,IAAA,UAAA;AAAY,IAAA,SAAA;AAAW,IAAA,MAAA;AAAQ,IAAA,YAAA;AAAc,IAAA;;AAE/K;;;;;;;;;;;;;;;;;;;;UAqBaC,0BAAAA,GAAwC;IACjDC,IAAAA,EAAM,WAAA;IACNC,cAAAA,EAAgB,KAAA;IAChBC,QAAAA,EAAU;AAAC,QAAA,MAAA;AAAQ,QAAA,YAAA;AAAcC,QAAAA,+BAAAA,CAAgCH,IAAI;AAAEI,QAAAA,oBAAAA;AAAsBC,QAAAA;AAAwB;AACzH;AAEA;;;;;UAMaC,0BAAAA,GAA6C;AACtD,IAAA,CAACC,mBAAAA,CAAoBP,IAAI,GAAGO,oBAAoBC,UAAU;IAC1DC,UAAAA,EAAYX,wBAAAA;AACZ,IAAA,CAACK,+BAAAA,CAAgCH,IAAI,GAAGG,gCAAgCK,UAAU;IAClF,CAACJ,oBAAAA,GAAuBM,wBAAAA,CAAyBF,UAAU;AAC3D,IAAA,CAACH,uBAAAA,GAA0BM,MAAAA,CAAOC,MAAM,CAACC,aAAAA;AAC7C;;;;"}
@@ -0,0 +1,4 @@
1
+ import { Screen } from '@cratis/scene.model';
2
+ export declare const componentsGalleryScreens: Screen[];
3
+ export declare function componentsGalleryScreen(name: string): Screen | undefined;
4
+ //# sourceMappingURL=screens.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../../gallery/screens.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAkB,MAAM,qBAAqB,CAAC;AAkE7D,eAAO,MAAM,wBAAwB,EAAE,MAAM,EAA6C,CAAC;AAG3F,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExE"}
@@ -0,0 +1,77 @@
1
+ import { nestScreenTemplates, LayoutName, templateContentInLayout, appShellLayout } from '@cratis/scene.blueprint.default';
2
+ import '../templates/listTemplates.js';
3
+ import '../templates/workspaceTemplates.js';
4
+ import '../templates/commandTemplates.js';
5
+ import '../templates/editorTemplates.js';
6
+ import { nestingChainTemplates } from '../templates/nesting.js';
7
+ import '../templates/dialogTemplates.js';
8
+ import { componentsScreenTemplates } from '../templates/screenTemplates.js';
9
+ import { componentsApplicationChrome } from './applicationChrome.js';
10
+ import { componentsNavigationContributions } from './navigation.js';
11
+
12
+ // Copyright (c) Cratis. All rights reserved.
13
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
14
+ /**
15
+ * The gallery: one {@link Screen} per template, ready to boot through the real engine.
16
+ *
17
+ * These exist so a preview is a working miniature application rather than a set of pictures - the same
18
+ * `Screen` shape Stage produces, put through the same `Scene.Engine` and `Scene.React`, with no separate
19
+ * preview pipeline and nothing mocked.
20
+ *
21
+ * They will render with unregistered bindings, and that is the normal design-time state rather than a
22
+ * shortcoming of the gallery. A host owns the generated Arc proxies; a gallery is not a host. What a
23
+ * preview therefore shows is every Arc-bound region as a placeholder naming the binding it wanted, every
24
+ * Arc-free region rendered for real, and a header on each page saying which of the two you are looking at.
25
+ *
26
+ * Every screen renders in the default blueprint's `AppShell`. There is no full-page variant here because
27
+ * there is no Arc-bound page that belongs outside the application shell - a sign-in screen queries nothing
28
+ * and submits no command, so it stays where it already is, in the default blueprint.
29
+ */ /**
30
+ * Builds the {@link Screen} that instantiates one template.
31
+ *
32
+ * A screen is an instance, not a shape: it names the layout it renders in, the template it fills, the
33
+ * content that fills it, and what it contributes elsewhere. Everything structural comes from the template,
34
+ * which is why adding a screen is a handful of lines rather than another copy of the chrome.
35
+ */ function screenFor(template) {
36
+ const placeable = nestScreenTemplates(containmentChainFor(template));
37
+ return {
38
+ name: template.name,
39
+ layout: LayoutName.AppShell,
40
+ screenTemplate: template.name,
41
+ slotContent: mergeSlotContent(componentsApplicationChrome(template.name), templateContentInLayout(placeable, appShellLayout)),
42
+ forms: [],
43
+ contributions: componentsNavigationContributions
44
+ };
45
+ }
46
+ /**
47
+ * The chain of templates a screen renders through, outermost first.
48
+ *
49
+ * The eight page templates fit the layout's own `content` slot, so each one's chain is just itself. The
50
+ * three nesting-chain templates are the exception and the only ones that need the walk - which is the
51
+ * honest version of the story: nesting exists for the applications that need it, and costs nothing for the
52
+ * ones that do not.
53
+ */ function containmentChainFor(template) {
54
+ const depth = nestingChainTemplates.findIndex((candidate)=>candidate.name === template.name);
55
+ return depth < 0 ? [
56
+ template
57
+ ] : nestingChainTemplates.slice(0, depth + 1);
58
+ }
59
+ function mergeSlotContent(chrome, content) {
60
+ const merged = {
61
+ ...chrome
62
+ };
63
+ for (const [slotName, elements] of Object.entries(content)){
64
+ merged[slotName] = [
65
+ ...merged[slotName] ?? [],
66
+ ...elements
67
+ ];
68
+ }
69
+ return merged;
70
+ }
71
+ /** One screen per screen template this blueprint provides. */ const componentsGalleryScreens = componentsScreenTemplates.map(screenFor);
72
+ /** One gallery screen by name, for a story or a host that boots a specific one. */ function componentsGalleryScreen(name) {
73
+ return componentsGalleryScreens.find((screen)=>screen.name === name);
74
+ }
75
+
76
+ export { componentsGalleryScreen, componentsGalleryScreens };
77
+ //# sourceMappingURL=screens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screens.js","sources":["../../../gallery/screens.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Screen, ScreenTemplate } from '@cratis/scene.model';\nimport { LayoutName, appShellLayout, nestScreenTemplates, templateContentInLayout } from '@cratis/scene.blueprint.default';\nimport { componentsScreenTemplates, nestingChainTemplates } from '../templates';\nimport { componentsApplicationChrome } from './applicationChrome';\nimport { componentsNavigationContributions } from './navigation';\n\n/**\n * The gallery: one {@link Screen} per template, ready to boot through the real engine.\n *\n * These exist so a preview is a working miniature application rather than a set of pictures - the same\n * `Screen` shape Stage produces, put through the same `Scene.Engine` and `Scene.React`, with no separate\n * preview pipeline and nothing mocked.\n *\n * They will render with unregistered bindings, and that is the normal design-time state rather than a\n * shortcoming of the gallery. A host owns the generated Arc proxies; a gallery is not a host. What a\n * preview therefore shows is every Arc-bound region as a placeholder naming the binding it wanted, every\n * Arc-free region rendered for real, and a header on each page saying which of the two you are looking at.\n *\n * Every screen renders in the default blueprint's `AppShell`. There is no full-page variant here because\n * there is no Arc-bound page that belongs outside the application shell - a sign-in screen queries nothing\n * and submits no command, so it stays where it already is, in the default blueprint.\n */\n\n/**\n * Builds the {@link Screen} that instantiates one template.\n *\n * A screen is an instance, not a shape: it names the layout it renders in, the template it fills, the\n * content that fills it, and what it contributes elsewhere. Everything structural comes from the template,\n * which is why adding a screen is a handful of lines rather than another copy of the chrome.\n */\nfunction screenFor(template: ScreenTemplate): Screen {\n const placeable = nestScreenTemplates(containmentChainFor(template));\n\n return {\n name: template.name,\n layout: LayoutName.AppShell,\n screenTemplate: template.name,\n slotContent: mergeSlotContent(componentsApplicationChrome(template.name), templateContentInLayout(placeable, appShellLayout)),\n forms: [],\n contributions: componentsNavigationContributions,\n };\n}\n\n/**\n * The chain of templates a screen renders through, outermost first.\n *\n * The eight page templates fit the layout's own `content` slot, so each one's chain is just itself. The\n * three nesting-chain templates are the exception and the only ones that need the walk - which is the\n * honest version of the story: nesting exists for the applications that need it, and costs nothing for the\n * ones that do not.\n */\nfunction containmentChainFor(template: ScreenTemplate): ScreenTemplate[] {\n const depth = nestingChainTemplates.findIndex(candidate => candidate.name === template.name);\n return depth < 0 ? [template] : nestingChainTemplates.slice(0, depth + 1);\n}\n\nfunction mergeSlotContent(chrome: Record<string, Screen['slotContent'][string]>, content: Record<string, Screen['slotContent'][string]>): Screen['slotContent'] {\n const merged: Screen['slotContent'] = { ...chrome };\n for (const [slotName, elements] of Object.entries(content)) {\n merged[slotName] = [...(merged[slotName] ?? []), ...elements];\n }\n\n return merged;\n}\n\n/** One screen per screen template this blueprint provides. */\nexport const componentsGalleryScreens: Screen[] = componentsScreenTemplates.map(screenFor);\n\n/** One gallery screen by name, for a story or a host that boots a specific one. */\nexport function componentsGalleryScreen(name: string): Screen | undefined {\n return componentsGalleryScreens.find(screen => screen.name === name);\n}\n"],"names":["screenFor","template","placeable","nestScreenTemplates","containmentChainFor","name","layout","LayoutName","AppShell","screenTemplate","slotContent","mergeSlotContent","componentsApplicationChrome","templateContentInLayout","appShellLayout","forms","contributions","componentsNavigationContributions","depth","nestingChainTemplates","findIndex","candidate","slice","chrome","content","merged","slotName","elements","Object","entries","componentsGalleryScreens","componentsScreenTemplates","map","componentsGalleryScreen","find","screen"],"mappings":";;;;;;;;;;;AAAA;AACA;AAQA;;;;;;;;;;;;;;;;;;;;;IAwBA,SAASA,UAAUC,QAAwB,EAAA;IACvC,MAAMC,SAAAA,GAAYC,oBAAoBC,mBAAAA,CAAoBH,QAAAA,CAAAA,CAAAA;IAE1D,OAAO;AACHI,QAAAA,IAAAA,EAAMJ,SAASI,IAAI;AACnBC,QAAAA,MAAAA,EAAQC,WAAWC,QAAQ;AAC3BC,QAAAA,cAAAA,EAAgBR,SAASI,IAAI;AAC7BK,QAAAA,WAAAA,EAAaC,iBAAiBC,2BAAAA,CAA4BX,QAAAA,CAASI,IAAI,CAAA,EAAGQ,wBAAwBX,SAAAA,EAAWY,cAAAA,CAAAA,CAAAA;AAC7GC,QAAAA,KAAAA,EAAO,EAAE;QACTC,aAAAA,EAAeC;AACnB,KAAA;AACJ;AAEA;;;;;;;IAQA,SAASb,oBAAoBH,QAAwB,EAAA;IACjD,MAAMiB,KAAAA,GAAQC,qBAAAA,CAAsBC,SAAS,CAACC,CAAAA,YAAaA,SAAAA,CAAUhB,IAAI,KAAKJ,QAAAA,CAASI,IAAI,CAAA;AAC3F,IAAA,OAAOa,QAAQ,CAAA,GAAI;AAACjB,QAAAA;AAAS,KAAA,GAAGkB,qBAAAA,CAAsBG,KAAK,CAAC,CAAA,EAAGJ,KAAAA,GAAQ,CAAA,CAAA;AAC3E;AAEA,SAASP,gBAAAA,CAAiBY,MAAqD,EAAEC,OAAsD,EAAA;AACnI,IAAA,MAAMC,MAAAA,GAAgC;AAAE,QAAA,GAAGF;AAAO,KAAA;IAClD,KAAK,MAAM,CAACG,QAAAA,EAAUC,QAAAA,CAAS,IAAIC,MAAAA,CAAOC,OAAO,CAACL,OAAAA,CAAAA,CAAU;QACxDC,MAAM,CAACC,SAAS,GAAG;eAAKD,MAAM,CAACC,QAAAA,CAAS,IAAI,EAAE;AAAMC,YAAAA,GAAAA;AAAS,SAAA;AACjE,IAAA;IAEA,OAAOF,MAAAA;AACX;AAEA,+DACO,MAAMK,2BAAqCC,yBAAAA,CAA0BC,GAAG,CAAChC,SAAAA;AAEhF,oFACO,SAASiC,uBAAAA,CAAwB5B,IAAY,EAAA;AAChD,IAAA,OAAOyB,yBAAyBI,IAAI,CAACC,CAAAA,MAAAA,GAAUA,MAAAA,CAAO9B,IAAI,KAAKA,IAAAA,CAAAA;AACnE;;;;"}