@cratis/scene.blueprint.default 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 (558) hide show
  1. package/.storybook/main.ts +32 -0
  2. package/.storybook/preview.ts +20 -0
  3. package/ComponentName.ts +60 -0
  4. package/README.md +204 -0
  5. package/configuration/ColorScheme.ts +17 -0
  6. package/configuration/LayoutConfigProvider.tsx +182 -0
  7. package/configuration/LayoutConfigState.ts +46 -0
  8. package/configuration/LayoutMode.ts +50 -0
  9. package/configuration/MenuTheme.ts +24 -0
  10. package/configuration/index.ts +11 -0
  11. package/configuration/layoutConfigStorage.ts +102 -0
  12. package/configuration/layoutConfigTransitions.ts +150 -0
  13. package/configuration/layoutWrapperClasses.ts +68 -0
  14. package/defaultBlueprint.ts +66 -0
  15. package/defaultBlueprintComponents.ts +51 -0
  16. package/dist/cjs/ComponentName.js +33 -0
  17. package/dist/cjs/ComponentName.js.map +1 -0
  18. package/dist/cjs/configuration/ColorScheme.js +23 -0
  19. package/dist/cjs/configuration/ColorScheme.js.map +1 -0
  20. package/dist/cjs/configuration/LayoutConfigProvider.js +96 -0
  21. package/dist/cjs/configuration/LayoutConfigProvider.js.map +1 -0
  22. package/dist/cjs/configuration/LayoutMode.js +38 -0
  23. package/dist/cjs/configuration/LayoutMode.js.map +1 -0
  24. package/dist/cjs/configuration/MenuTheme.js +26 -0
  25. package/dist/cjs/configuration/MenuTheme.js.map +1 -0
  26. package/dist/cjs/configuration/layoutConfigStorage.js +85 -0
  27. package/dist/cjs/configuration/layoutConfigStorage.js.map +1 -0
  28. package/dist/cjs/configuration/layoutConfigTransitions.js +158 -0
  29. package/dist/cjs/configuration/layoutConfigTransitions.js.map +1 -0
  30. package/dist/cjs/configuration/layoutWrapperClasses.js +62 -0
  31. package/dist/cjs/configuration/layoutWrapperClasses.js.map +1 -0
  32. package/dist/cjs/defaultBlueprint.js +92 -0
  33. package/dist/cjs/defaultBlueprint.js.map +1 -0
  34. package/dist/cjs/defaultBlueprintComponents.js +54 -0
  35. package/dist/cjs/defaultBlueprintComponents.js.map +1 -0
  36. package/dist/cjs/gallery/GalleryScreenPreview.js +63 -0
  37. package/dist/cjs/gallery/GalleryScreenPreview.js.map +1 -0
  38. package/dist/cjs/gallery/TemplateSlotName.js +25 -0
  39. package/dist/cjs/gallery/TemplateSlotName.js.map +1 -0
  40. package/dist/cjs/gallery/applicationChrome.js +134 -0
  41. package/dist/cjs/gallery/applicationChrome.js.map +1 -0
  42. package/dist/cjs/gallery/authTemplates.js +234 -0
  43. package/dist/cjs/gallery/authTemplates.js.map +1 -0
  44. package/dist/cjs/gallery/componentNames.js +53 -0
  45. package/dist/cjs/gallery/componentNames.js.map +1 -0
  46. package/dist/cjs/gallery/composeScreen.js +99 -0
  47. package/dist/cjs/gallery/composeScreen.js.map +1 -0
  48. package/dist/cjs/gallery/dependencyComponentNames.js +72 -0
  49. package/dist/cjs/gallery/dependencyComponentNames.js.map +1 -0
  50. package/dist/cjs/gallery/dialogTemplates.js +161 -0
  51. package/dist/cjs/gallery/dialogTemplates.js.map +1 -0
  52. package/dist/cjs/gallery/elements.js +80 -0
  53. package/dist/cjs/gallery/elements.js.map +1 -0
  54. package/dist/cjs/gallery/navigation.js +129 -0
  55. package/dist/cjs/gallery/navigation.js.map +1 -0
  56. package/dist/cjs/gallery/nesting.js +129 -0
  57. package/dist/cjs/gallery/nesting.js.map +1 -0
  58. package/dist/cjs/gallery/previewProfile.js +68 -0
  59. package/dist/cjs/gallery/previewProfile.js.map +1 -0
  60. package/dist/cjs/gallery/resolveElementNames.js +63 -0
  61. package/dist/cjs/gallery/resolveElementNames.js.map +1 -0
  62. package/dist/cjs/gallery/screens.js +222 -0
  63. package/dist/cjs/gallery/screens.js.map +1 -0
  64. package/dist/cjs/gallery/statusTemplates.js +190 -0
  65. package/dist/cjs/gallery/statusTemplates.js.map +1 -0
  66. package/dist/cjs/gallery/supportTemplates.js +319 -0
  67. package/dist/cjs/gallery/supportTemplates.js.map +1 -0
  68. package/dist/cjs/gallery/widgets.js +94 -0
  69. package/dist/cjs/gallery/widgets.js.map +1 -0
  70. package/dist/cjs/gallery/workspaceTemplates.js +395 -0
  71. package/dist/cjs/gallery/workspaceTemplates.js.map +1 -0
  72. package/dist/cjs/index.js +220 -0
  73. package/dist/cjs/index.js.map +1 -0
  74. package/dist/cjs/layouts/LayoutName.js +19 -0
  75. package/dist/cjs/layouts/LayoutName.js.map +1 -0
  76. package/dist/cjs/layouts/SlotName.js +31 -0
  77. package/dist/cjs/layouts/SlotName.js.map +1 -0
  78. package/dist/cjs/layouts/appShell.js +160 -0
  79. package/dist/cjs/layouts/appShell.js.map +1 -0
  80. package/dist/cjs/layouts/defaultLayouts.js +20 -0
  81. package/dist/cjs/layouts/defaultLayouts.js.map +1 -0
  82. package/dist/cjs/layouts/flowBuilders.js +66 -0
  83. package/dist/cjs/layouts/flowBuilders.js.map +1 -0
  84. package/dist/cjs/layouts/fullPage.js +78 -0
  85. package/dist/cjs/layouts/fullPage.js.map +1 -0
  86. package/dist/cjs/layouts/shellComponents.js +29 -0
  87. package/dist/cjs/layouts/shellComponents.js.map +1 -0
  88. package/dist/cjs/package.json +3 -0
  89. package/dist/cjs/packageName.js +15 -0
  90. package/dist/cjs/packageName.js.map +1 -0
  91. package/dist/cjs/shell/AppShell.js +88 -0
  92. package/dist/cjs/shell/AppShell.js.map +1 -0
  93. package/dist/cjs/shell/Breadcrumb.js +33 -0
  94. package/dist/cjs/shell/Breadcrumb.js.map +1 -0
  95. package/dist/cjs/shell/ConfigPanel.js +128 -0
  96. package/dist/cjs/shell/ConfigPanel.js.map +1 -0
  97. package/dist/cjs/shell/Footer.js +28 -0
  98. package/dist/cjs/shell/Footer.js.map +1 -0
  99. package/dist/cjs/shell/FullPageShell.js +53 -0
  100. package/dist/cjs/shell/FullPageShell.js.map +1 -0
  101. package/dist/cjs/shell/LayoutModeSwitcher.js +58 -0
  102. package/dist/cjs/shell/LayoutModeSwitcher.js.map +1 -0
  103. package/dist/cjs/shell/Logo.js +44 -0
  104. package/dist/cjs/shell/Logo.js.map +1 -0
  105. package/dist/cjs/shell/Mask.js +34 -0
  106. package/dist/cjs/shell/Mask.js.map +1 -0
  107. package/dist/cjs/shell/Menu.js +36 -0
  108. package/dist/cjs/shell/Menu.js.map +1 -0
  109. package/dist/cjs/shell/MenuItem.js +65 -0
  110. package/dist/cjs/shell/MenuItem.js.map +1 -0
  111. package/dist/cjs/shell/PageHeader.js +43 -0
  112. package/dist/cjs/shell/PageHeader.js.map +1 -0
  113. package/dist/cjs/shell/RightPanel.js +30 -0
  114. package/dist/cjs/shell/RightPanel.js.map +1 -0
  115. package/dist/cjs/shell/Sidebar.js +51 -0
  116. package/dist/cjs/shell/Sidebar.js.map +1 -0
  117. package/dist/cjs/shell/ThemeOption.js +42 -0
  118. package/dist/cjs/shell/ThemeOption.js.map +1 -0
  119. package/dist/cjs/shell/ThemeSwitcher.js +50 -0
  120. package/dist/cjs/shell/ThemeSwitcher.js.map +1 -0
  121. package/dist/cjs/shell/Topbar.js +54 -0
  122. package/dist/cjs/shell/Topbar.js.map +1 -0
  123. package/dist/cjs/shell/UserMenu.js +68 -0
  124. package/dist/cjs/shell/UserMenu.js.map +1 -0
  125. package/dist/cjs/shell/elementProperties.js +56 -0
  126. package/dist/cjs/shell/elementProperties.js.map +1 -0
  127. package/dist/cjs/themes/LayoutThemeProvider.js +33 -0
  128. package/dist/cjs/themes/LayoutThemeProvider.js.map +1 -0
  129. package/dist/cjs/themes/blueprintThemeCompatibility.js +28 -0
  130. package/dist/cjs/themes/blueprintThemeCompatibility.js.map +1 -0
  131. package/dist/cjs/themes/dark.js +40 -0
  132. package/dist/cjs/themes/dark.js.map +1 -0
  133. package/dist/cjs/themes/defaultBlueprintThemes.js +19 -0
  134. package/dist/cjs/themes/defaultBlueprintThemes.js.map +1 -0
  135. package/dist/cjs/themes/light.js +43 -0
  136. package/dist/cjs/themes/light.js.map +1 -0
  137. package/dist/esm/ComponentName.d.ts +19 -0
  138. package/dist/esm/ComponentName.d.ts.map +1 -0
  139. package/dist/esm/ComponentName.js +31 -0
  140. package/dist/esm/ComponentName.js.map +1 -0
  141. package/dist/esm/configuration/ColorScheme.d.ts +6 -0
  142. package/dist/esm/configuration/ColorScheme.d.ts.map +1 -0
  143. package/dist/esm/configuration/ColorScheme.js +20 -0
  144. package/dist/esm/configuration/ColorScheme.js.map +1 -0
  145. package/dist/esm/configuration/LayoutConfigProvider.d.ts +29 -0
  146. package/dist/esm/configuration/LayoutConfigProvider.d.ts.map +1 -0
  147. package/dist/esm/configuration/LayoutConfigProvider.js +92 -0
  148. package/dist/esm/configuration/LayoutConfigProvider.js.map +1 -0
  149. package/dist/esm/configuration/LayoutConfigState.d.ts +14 -0
  150. package/dist/esm/configuration/LayoutConfigState.d.ts.map +1 -0
  151. package/dist/esm/configuration/LayoutConfigState.js +2 -0
  152. package/dist/esm/configuration/LayoutConfigState.js.map +1 -0
  153. package/dist/esm/configuration/LayoutMode.d.ts +12 -0
  154. package/dist/esm/configuration/LayoutMode.d.ts.map +1 -0
  155. package/dist/esm/configuration/LayoutMode.js +35 -0
  156. package/dist/esm/configuration/LayoutMode.js.map +1 -0
  157. package/dist/esm/configuration/MenuTheme.d.ts +7 -0
  158. package/dist/esm/configuration/MenuTheme.d.ts.map +1 -0
  159. package/dist/esm/configuration/MenuTheme.js +23 -0
  160. package/dist/esm/configuration/MenuTheme.js.map +1 -0
  161. package/dist/esm/configuration/index.d.ts +9 -0
  162. package/dist/esm/configuration/index.d.ts.map +1 -0
  163. package/dist/esm/configuration/index.js +9 -0
  164. package/dist/esm/configuration/index.js.map +1 -0
  165. package/dist/esm/configuration/layoutConfigStorage.d.ts +6 -0
  166. package/dist/esm/configuration/layoutConfigStorage.d.ts.map +1 -0
  167. package/dist/esm/configuration/layoutConfigStorage.js +81 -0
  168. package/dist/esm/configuration/layoutConfigStorage.js.map +1 -0
  169. package/dist/esm/configuration/layoutConfigTransitions.d.ts +22 -0
  170. package/dist/esm/configuration/layoutConfigTransitions.d.ts.map +1 -0
  171. package/dist/esm/configuration/layoutConfigTransitions.js +140 -0
  172. package/dist/esm/configuration/layoutConfigTransitions.js.map +1 -0
  173. package/dist/esm/configuration/layoutWrapperClasses.d.ts +4 -0
  174. package/dist/esm/configuration/layoutWrapperClasses.d.ts.map +1 -0
  175. package/dist/esm/configuration/layoutWrapperClasses.js +59 -0
  176. package/dist/esm/configuration/layoutWrapperClasses.js.map +1 -0
  177. package/dist/esm/defaultBlueprint.d.ts +5 -0
  178. package/dist/esm/defaultBlueprint.d.ts.map +1 -0
  179. package/dist/esm/defaultBlueprint.js +89 -0
  180. package/dist/esm/defaultBlueprint.js.map +1 -0
  181. package/dist/esm/defaultBlueprintComponents.d.ts +3 -0
  182. package/dist/esm/defaultBlueprintComponents.d.ts.map +1 -0
  183. package/dist/esm/defaultBlueprintComponents.js +52 -0
  184. package/dist/esm/defaultBlueprintComponents.js.map +1 -0
  185. package/dist/esm/for_AppShell/when_rendering_a_gallery_screen.d.ts +2 -0
  186. package/dist/esm/for_AppShell/when_rendering_a_gallery_screen.d.ts.map +1 -0
  187. package/dist/esm/for_AppShell/when_rendering_a_gallery_screen.js +60 -0
  188. package/dist/esm/for_AppShell/when_rendering_a_gallery_screen.js.map +1 -0
  189. package/dist/esm/for_LayoutConfigProvider/when_switching_mode_and_reloading.d.ts +2 -0
  190. package/dist/esm/for_LayoutConfigProvider/when_switching_mode_and_reloading.d.ts.map +1 -0
  191. package/dist/esm/for_LayoutConfigProvider/when_switching_mode_and_reloading.js +60 -0
  192. package/dist/esm/for_LayoutConfigProvider/when_switching_mode_and_reloading.js.map +1 -0
  193. package/dist/esm/for_appShellLayout/when_evaluating_the_arrangement_at_each_size_class.d.ts +2 -0
  194. package/dist/esm/for_appShellLayout/when_evaluating_the_arrangement_at_each_size_class.d.ts.map +1 -0
  195. package/dist/esm/for_appShellLayout/when_evaluating_the_arrangement_at_each_size_class.js +26 -0
  196. package/dist/esm/for_appShellLayout/when_evaluating_the_arrangement_at_each_size_class.js.map +1 -0
  197. package/dist/esm/for_defaultBlueprint/when_validating_the_bundle.d.ts +2 -0
  198. package/dist/esm/for_defaultBlueprint/when_validating_the_bundle.d.ts.map +1 -0
  199. package/dist/esm/for_defaultBlueprint/when_validating_the_bundle.js +32 -0
  200. package/dist/esm/for_defaultBlueprint/when_validating_the_bundle.js.map +1 -0
  201. package/dist/esm/for_defaultBlueprintThemes/when_checking_attribution_and_tokens.d.ts +2 -0
  202. package/dist/esm/for_defaultBlueprintThemes/when_checking_attribution_and_tokens.d.ts.map +1 -0
  203. package/dist/esm/for_defaultBlueprintThemes/when_checking_attribution_and_tokens.js +40 -0
  204. package/dist/esm/for_defaultBlueprintThemes/when_checking_attribution_and_tokens.js.map +1 -0
  205. package/dist/esm/for_fullPageLayout/when_evaluating_the_arrangement_at_each_size_class.d.ts +2 -0
  206. package/dist/esm/for_fullPageLayout/when_evaluating_the_arrangement_at_each_size_class.d.ts.map +1 -0
  207. package/dist/esm/for_fullPageLayout/when_evaluating_the_arrangement_at_each_size_class.js +27 -0
  208. package/dist/esm/for_fullPageLayout/when_evaluating_the_arrangement_at_each_size_class.js.map +1 -0
  209. package/dist/esm/for_galleryScreenTemplates/when_checking_that_arrangements_reference_declared_slots.d.ts +2 -0
  210. package/dist/esm/for_galleryScreenTemplates/when_checking_that_arrangements_reference_declared_slots.d.ts.map +1 -0
  211. package/dist/esm/for_galleryScreenTemplates/when_checking_that_arrangements_reference_declared_slots.js +41 -0
  212. package/dist/esm/for_galleryScreenTemplates/when_checking_that_arrangements_reference_declared_slots.js.map +1 -0
  213. package/dist/esm/for_galleryScreenTemplates/when_following_the_nesting_chain.d.ts +2 -0
  214. package/dist/esm/for_galleryScreenTemplates/when_following_the_nesting_chain.d.ts.map +1 -0
  215. package/dist/esm/for_galleryScreenTemplates/when_following_the_nesting_chain.js +31 -0
  216. package/dist/esm/for_galleryScreenTemplates/when_following_the_nesting_chain.js.map +1 -0
  217. package/dist/esm/for_galleryScreens/when_checking_the_layouts_and_slots_they_fill.d.ts +2 -0
  218. package/dist/esm/for_galleryScreens/when_checking_the_layouts_and_slots_they_fill.d.ts.map +1 -0
  219. package/dist/esm/for_galleryScreens/when_checking_the_layouts_and_slots_they_fill.js +33 -0
  220. package/dist/esm/for_galleryScreens/when_checking_the_layouts_and_slots_they_fill.js.map +1 -0
  221. package/dist/esm/for_galleryScreens/when_resolving_the_component_names_they_reference.d.ts +2 -0
  222. package/dist/esm/for_galleryScreens/when_resolving_the_component_names_they_reference.d.ts.map +1 -0
  223. package/dist/esm/for_galleryScreens/when_resolving_the_component_names_they_reference.js +44 -0
  224. package/dist/esm/for_galleryScreens/when_resolving_the_component_names_they_reference.js.map +1 -0
  225. package/dist/esm/for_layoutConfigStorage/when_restoring_a_persisted_configuration.d.ts +2 -0
  226. package/dist/esm/for_layoutConfigStorage/when_restoring_a_persisted_configuration.d.ts.map +1 -0
  227. package/dist/esm/for_layoutConfigStorage/when_restoring_a_persisted_configuration.js +60 -0
  228. package/dist/esm/for_layoutConfigStorage/when_restoring_a_persisted_configuration.js.map +1 -0
  229. package/dist/esm/for_layoutConfigTransitions/when_anchoring_a_reveal_sidebar.d.ts +2 -0
  230. package/dist/esm/for_layoutConfigTransitions/when_anchoring_a_reveal_sidebar.d.ts.map +1 -0
  231. package/dist/esm/for_layoutConfigTransitions/when_anchoring_a_reveal_sidebar.js +28 -0
  232. package/dist/esm/for_layoutConfigTransitions/when_anchoring_a_reveal_sidebar.js.map +1 -0
  233. package/dist/esm/for_layoutConfigTransitions/when_the_viewport_crosses_the_mobile_breakpoint.d.ts +2 -0
  234. package/dist/esm/for_layoutConfigTransitions/when_the_viewport_crosses_the_mobile_breakpoint.d.ts.map +1 -0
  235. package/dist/esm/for_layoutConfigTransitions/when_the_viewport_crosses_the_mobile_breakpoint.js +38 -0
  236. package/dist/esm/for_layoutConfigTransitions/when_the_viewport_crosses_the_mobile_breakpoint.js.map +1 -0
  237. package/dist/esm/for_layoutWrapperClasses/when_rendering_each_mode.d.ts +2 -0
  238. package/dist/esm/for_layoutWrapperClasses/when_rendering_each_mode.d.ts.map +1 -0
  239. package/dist/esm/for_layoutWrapperClasses/when_rendering_each_mode.js +39 -0
  240. package/dist/esm/for_layoutWrapperClasses/when_rendering_each_mode.js.map +1 -0
  241. package/dist/esm/for_navigation/when_aggregating_the_navigation_contributions.d.ts +2 -0
  242. package/dist/esm/for_navigation/when_aggregating_the_navigation_contributions.d.ts.map +1 -0
  243. package/dist/esm/for_navigation/when_aggregating_the_navigation_contributions.js +37 -0
  244. package/dist/esm/for_navigation/when_aggregating_the_navigation_contributions.js.map +1 -0
  245. package/dist/esm/gallery/ApplicationScreens.stories.d.ts +31 -0
  246. package/dist/esm/gallery/ApplicationScreens.stories.d.ts.map +1 -0
  247. package/dist/esm/gallery/ApplicationScreens.stories.js +29 -0
  248. package/dist/esm/gallery/ApplicationScreens.stories.js.map +1 -0
  249. package/dist/esm/gallery/FullPageScreens.stories.d.ts +28 -0
  250. package/dist/esm/gallery/FullPageScreens.stories.d.ts.map +1 -0
  251. package/dist/esm/gallery/FullPageScreens.stories.js +26 -0
  252. package/dist/esm/gallery/FullPageScreens.stories.js.map +1 -0
  253. package/dist/esm/gallery/GalleryScreenPreview.d.ts +12 -0
  254. package/dist/esm/gallery/GalleryScreenPreview.d.ts.map +1 -0
  255. package/dist/esm/gallery/GalleryScreenPreview.js +60 -0
  256. package/dist/esm/gallery/GalleryScreenPreview.js.map +1 -0
  257. package/dist/esm/gallery/NavigationEntry.d.ts +8 -0
  258. package/dist/esm/gallery/NavigationEntry.d.ts.map +1 -0
  259. package/dist/esm/gallery/NavigationEntry.js +2 -0
  260. package/dist/esm/gallery/NavigationEntry.js.map +1 -0
  261. package/dist/esm/gallery/TemplateSlotName.d.ts +11 -0
  262. package/dist/esm/gallery/TemplateSlotName.d.ts.map +1 -0
  263. package/dist/esm/gallery/TemplateSlotName.js +23 -0
  264. package/dist/esm/gallery/TemplateSlotName.js.map +1 -0
  265. package/dist/esm/gallery/applicationChrome.d.ts +8 -0
  266. package/dist/esm/gallery/applicationChrome.d.ts.map +1 -0
  267. package/dist/esm/gallery/applicationChrome.js +131 -0
  268. package/dist/esm/gallery/applicationChrome.js.map +1 -0
  269. package/dist/esm/gallery/authTemplates.d.ts +9 -0
  270. package/dist/esm/gallery/authTemplates.d.ts.map +1 -0
  271. package/dist/esm/gallery/authTemplates.js +226 -0
  272. package/dist/esm/gallery/authTemplates.js.map +1 -0
  273. package/dist/esm/gallery/componentNames.d.ts +4 -0
  274. package/dist/esm/gallery/componentNames.d.ts.map +1 -0
  275. package/dist/esm/gallery/componentNames.js +50 -0
  276. package/dist/esm/gallery/componentNames.js.map +1 -0
  277. package/dist/esm/gallery/composeScreen.d.ts +5 -0
  278. package/dist/esm/gallery/composeScreen.d.ts.map +1 -0
  279. package/dist/esm/gallery/composeScreen.js +95 -0
  280. package/dist/esm/gallery/composeScreen.js.map +1 -0
  281. package/dist/esm/gallery/dependencyComponentNames.d.ts +4 -0
  282. package/dist/esm/gallery/dependencyComponentNames.d.ts.map +1 -0
  283. package/dist/esm/gallery/dependencyComponentNames.js +68 -0
  284. package/dist/esm/gallery/dependencyComponentNames.js.map +1 -0
  285. package/dist/esm/gallery/dialogTemplates.d.ts +6 -0
  286. package/dist/esm/gallery/dialogTemplates.d.ts.map +1 -0
  287. package/dist/esm/gallery/dialogTemplates.js +156 -0
  288. package/dist/esm/gallery/dialogTemplates.js.map +1 -0
  289. package/dist/esm/gallery/elements.d.ts +7 -0
  290. package/dist/esm/gallery/elements.d.ts.map +1 -0
  291. package/dist/esm/gallery/elements.js +74 -0
  292. package/dist/esm/gallery/elements.js.map +1 -0
  293. package/dist/esm/gallery/index.d.ts +20 -0
  294. package/dist/esm/gallery/index.d.ts.map +1 -0
  295. package/dist/esm/gallery/index.js +20 -0
  296. package/dist/esm/gallery/index.js.map +1 -0
  297. package/dist/esm/gallery/navigation.d.ts +9 -0
  298. package/dist/esm/gallery/navigation.d.ts.map +1 -0
  299. package/dist/esm/gallery/navigation.js +122 -0
  300. package/dist/esm/gallery/navigation.js.map +1 -0
  301. package/dist/esm/gallery/nesting.d.ts +6 -0
  302. package/dist/esm/gallery/nesting.d.ts.map +1 -0
  303. package/dist/esm/gallery/nesting.js +124 -0
  304. package/dist/esm/gallery/nesting.js.map +1 -0
  305. package/dist/esm/gallery/previewProfile.d.ts +6 -0
  306. package/dist/esm/gallery/previewProfile.d.ts.map +1 -0
  307. package/dist/esm/gallery/previewProfile.js +64 -0
  308. package/dist/esm/gallery/previewProfile.js.map +1 -0
  309. package/dist/esm/gallery/resolveElementNames.d.ts +4 -0
  310. package/dist/esm/gallery/resolveElementNames.d.ts.map +1 -0
  311. package/dist/esm/gallery/resolveElementNames.js +61 -0
  312. package/dist/esm/gallery/resolveElementNames.js.map +1 -0
  313. package/dist/esm/gallery/screens.d.ts +5 -0
  314. package/dist/esm/gallery/screens.d.ts.map +1 -0
  315. package/dist/esm/gallery/screens.js +218 -0
  316. package/dist/esm/gallery/screens.js.map +1 -0
  317. package/dist/esm/gallery/statusTemplates.d.ts +7 -0
  318. package/dist/esm/gallery/statusTemplates.d.ts.map +1 -0
  319. package/dist/esm/gallery/statusTemplates.js +184 -0
  320. package/dist/esm/gallery/statusTemplates.js.map +1 -0
  321. package/dist/esm/gallery/supportTemplates.d.ts +8 -0
  322. package/dist/esm/gallery/supportTemplates.d.ts.map +1 -0
  323. package/dist/esm/gallery/supportTemplates.js +312 -0
  324. package/dist/esm/gallery/supportTemplates.js.map +1 -0
  325. package/dist/esm/gallery/widgets.d.ts +12 -0
  326. package/dist/esm/gallery/widgets.d.ts.map +1 -0
  327. package/dist/esm/gallery/widgets.js +86 -0
  328. package/dist/esm/gallery/widgets.js.map +1 -0
  329. package/dist/esm/gallery/workspaceTemplates.d.ts +8 -0
  330. package/dist/esm/gallery/workspaceTemplates.d.ts.map +1 -0
  331. package/dist/esm/gallery/workspaceTemplates.js +388 -0
  332. package/dist/esm/gallery/workspaceTemplates.js.map +1 -0
  333. package/dist/esm/index.d.ts +10 -0
  334. package/dist/esm/index.d.ts.map +1 -0
  335. package/dist/esm/index.js +60 -0
  336. package/dist/esm/index.js.map +1 -0
  337. package/dist/esm/layouts/LayoutName.d.ts +5 -0
  338. package/dist/esm/layouts/LayoutName.d.ts.map +1 -0
  339. package/dist/esm/layouts/LayoutName.js +17 -0
  340. package/dist/esm/layouts/LayoutName.js.map +1 -0
  341. package/dist/esm/layouts/SlotName.d.ts +12 -0
  342. package/dist/esm/layouts/SlotName.d.ts.map +1 -0
  343. package/dist/esm/layouts/SlotName.js +29 -0
  344. package/dist/esm/layouts/SlotName.js.map +1 -0
  345. package/dist/esm/layouts/appShell.d.ts +8 -0
  346. package/dist/esm/layouts/appShell.d.ts.map +1 -0
  347. package/dist/esm/layouts/appShell.js +153 -0
  348. package/dist/esm/layouts/appShell.js.map +1 -0
  349. package/dist/esm/layouts/defaultLayouts.d.ts +3 -0
  350. package/dist/esm/layouts/defaultLayouts.d.ts.map +1 -0
  351. package/dist/esm/layouts/defaultLayouts.js +18 -0
  352. package/dist/esm/layouts/defaultLayouts.js.map +1 -0
  353. package/dist/esm/layouts/flowBuilders.d.ts +6 -0
  354. package/dist/esm/layouts/flowBuilders.d.ts.map +1 -0
  355. package/dist/esm/layouts/flowBuilders.js +61 -0
  356. package/dist/esm/layouts/flowBuilders.js.map +1 -0
  357. package/dist/esm/layouts/fullPage.d.ts +6 -0
  358. package/dist/esm/layouts/fullPage.d.ts.map +1 -0
  359. package/dist/esm/layouts/fullPage.js +73 -0
  360. package/dist/esm/layouts/fullPage.js.map +1 -0
  361. package/dist/esm/layouts/index.d.ts +8 -0
  362. package/dist/esm/layouts/index.d.ts.map +1 -0
  363. package/dist/esm/layouts/index.js +8 -0
  364. package/dist/esm/layouts/index.js.map +1 -0
  365. package/dist/esm/layouts/shellComponents.d.ts +3 -0
  366. package/dist/esm/layouts/shellComponents.d.ts.map +1 -0
  367. package/dist/esm/layouts/shellComponents.js +27 -0
  368. package/dist/esm/layouts/shellComponents.js.map +1 -0
  369. package/dist/esm/package.json +3 -0
  370. package/dist/esm/packageName.d.ts +2 -0
  371. package/dist/esm/packageName.d.ts.map +1 -0
  372. package/dist/esm/packageName.js +13 -0
  373. package/dist/esm/packageName.js.map +1 -0
  374. package/dist/esm/shell/AppShell.d.ts +3 -0
  375. package/dist/esm/shell/AppShell.d.ts.map +1 -0
  376. package/dist/esm/shell/AppShell.js +86 -0
  377. package/dist/esm/shell/AppShell.js.map +1 -0
  378. package/dist/esm/shell/Breadcrumb.d.ts +3 -0
  379. package/dist/esm/shell/Breadcrumb.d.ts.map +1 -0
  380. package/dist/esm/shell/Breadcrumb.js +31 -0
  381. package/dist/esm/shell/Breadcrumb.js.map +1 -0
  382. package/dist/esm/shell/ConfigPanel.d.ts +3 -0
  383. package/dist/esm/shell/ConfigPanel.d.ts.map +1 -0
  384. package/dist/esm/shell/ConfigPanel.js +126 -0
  385. package/dist/esm/shell/ConfigPanel.js.map +1 -0
  386. package/dist/esm/shell/Footer.d.ts +3 -0
  387. package/dist/esm/shell/Footer.d.ts.map +1 -0
  388. package/dist/esm/shell/Footer.js +26 -0
  389. package/dist/esm/shell/Footer.js.map +1 -0
  390. package/dist/esm/shell/FullPageShell.d.ts +3 -0
  391. package/dist/esm/shell/FullPageShell.d.ts.map +1 -0
  392. package/dist/esm/shell/FullPageShell.js +51 -0
  393. package/dist/esm/shell/FullPageShell.js.map +1 -0
  394. package/dist/esm/shell/LayoutModeSwitcher.d.ts +3 -0
  395. package/dist/esm/shell/LayoutModeSwitcher.d.ts.map +1 -0
  396. package/dist/esm/shell/LayoutModeSwitcher.js +56 -0
  397. package/dist/esm/shell/LayoutModeSwitcher.js.map +1 -0
  398. package/dist/esm/shell/LayoutModes.stories.d.ts +29 -0
  399. package/dist/esm/shell/LayoutModes.stories.d.ts.map +1 -0
  400. package/dist/esm/shell/LayoutModes.stories.js +43 -0
  401. package/dist/esm/shell/LayoutModes.stories.js.map +1 -0
  402. package/dist/esm/shell/Logo.d.ts +3 -0
  403. package/dist/esm/shell/Logo.d.ts.map +1 -0
  404. package/dist/esm/shell/Logo.js +42 -0
  405. package/dist/esm/shell/Logo.js.map +1 -0
  406. package/dist/esm/shell/Mask.d.ts +3 -0
  407. package/dist/esm/shell/Mask.d.ts.map +1 -0
  408. package/dist/esm/shell/Mask.js +31 -0
  409. package/dist/esm/shell/Mask.js.map +1 -0
  410. package/dist/esm/shell/Menu.d.ts +3 -0
  411. package/dist/esm/shell/Menu.d.ts.map +1 -0
  412. package/dist/esm/shell/Menu.js +34 -0
  413. package/dist/esm/shell/Menu.js.map +1 -0
  414. package/dist/esm/shell/MenuItem.d.ts +3 -0
  415. package/dist/esm/shell/MenuItem.d.ts.map +1 -0
  416. package/dist/esm/shell/MenuItem.js +63 -0
  417. package/dist/esm/shell/MenuItem.js.map +1 -0
  418. package/dist/esm/shell/PageHeader.d.ts +3 -0
  419. package/dist/esm/shell/PageHeader.d.ts.map +1 -0
  420. package/dist/esm/shell/PageHeader.js +41 -0
  421. package/dist/esm/shell/PageHeader.js.map +1 -0
  422. package/dist/esm/shell/RightPanel.d.ts +3 -0
  423. package/dist/esm/shell/RightPanel.d.ts.map +1 -0
  424. package/dist/esm/shell/RightPanel.js +28 -0
  425. package/dist/esm/shell/RightPanel.js.map +1 -0
  426. package/dist/esm/shell/Sidebar.d.ts +3 -0
  427. package/dist/esm/shell/Sidebar.d.ts.map +1 -0
  428. package/dist/esm/shell/Sidebar.js +49 -0
  429. package/dist/esm/shell/Sidebar.js.map +1 -0
  430. package/dist/esm/shell/ThemeOption.d.ts +10 -0
  431. package/dist/esm/shell/ThemeOption.d.ts.map +1 -0
  432. package/dist/esm/shell/ThemeOption.js +39 -0
  433. package/dist/esm/shell/ThemeOption.js.map +1 -0
  434. package/dist/esm/shell/ThemeSwitcher.d.ts +3 -0
  435. package/dist/esm/shell/ThemeSwitcher.d.ts.map +1 -0
  436. package/dist/esm/shell/ThemeSwitcher.js +48 -0
  437. package/dist/esm/shell/ThemeSwitcher.js.map +1 -0
  438. package/dist/esm/shell/Topbar.d.ts +3 -0
  439. package/dist/esm/shell/Topbar.d.ts.map +1 -0
  440. package/dist/esm/shell/Topbar.js +52 -0
  441. package/dist/esm/shell/Topbar.js.map +1 -0
  442. package/dist/esm/shell/UserMenu.d.ts +3 -0
  443. package/dist/esm/shell/UserMenu.d.ts.map +1 -0
  444. package/dist/esm/shell/UserMenu.js +66 -0
  445. package/dist/esm/shell/UserMenu.js.map +1 -0
  446. package/dist/esm/shell/elementProperties.d.ts +9 -0
  447. package/dist/esm/shell/elementProperties.d.ts.map +1 -0
  448. package/dist/esm/shell/elementProperties.js +48 -0
  449. package/dist/esm/shell/elementProperties.js.map +1 -0
  450. package/dist/esm/shell/index.d.ts +19 -0
  451. package/dist/esm/shell/index.d.ts.map +1 -0
  452. package/dist/esm/shell/index.js +19 -0
  453. package/dist/esm/shell/index.js.map +1 -0
  454. package/dist/esm/themes/LayoutThemeProvider.d.ts +9 -0
  455. package/dist/esm/themes/LayoutThemeProvider.d.ts.map +1 -0
  456. package/dist/esm/themes/LayoutThemeProvider.js +31 -0
  457. package/dist/esm/themes/LayoutThemeProvider.js.map +1 -0
  458. package/dist/esm/themes/Theming.stories.d.ts +21 -0
  459. package/dist/esm/themes/Theming.stories.d.ts.map +1 -0
  460. package/dist/esm/themes/Theming.stories.js +54 -0
  461. package/dist/esm/themes/Theming.stories.js.map +1 -0
  462. package/dist/esm/themes/blueprintThemeCompatibility.d.ts +2 -0
  463. package/dist/esm/themes/blueprintThemeCompatibility.d.ts.map +1 -0
  464. package/dist/esm/themes/blueprintThemeCompatibility.js +26 -0
  465. package/dist/esm/themes/blueprintThemeCompatibility.js.map +1 -0
  466. package/dist/esm/themes/dark.d.ts +3 -0
  467. package/dist/esm/themes/dark.d.ts.map +1 -0
  468. package/dist/esm/themes/dark.js +38 -0
  469. package/dist/esm/themes/dark.js.map +1 -0
  470. package/dist/esm/themes/defaultBlueprintThemes.d.ts +3 -0
  471. package/dist/esm/themes/defaultBlueprintThemes.d.ts.map +1 -0
  472. package/dist/esm/themes/defaultBlueprintThemes.js +17 -0
  473. package/dist/esm/themes/defaultBlueprintThemes.js.map +1 -0
  474. package/dist/esm/themes/index.d.ts +6 -0
  475. package/dist/esm/themes/index.d.ts.map +1 -0
  476. package/dist/esm/themes/index.js +6 -0
  477. package/dist/esm/themes/index.js.map +1 -0
  478. package/dist/esm/themes/light.d.ts +3 -0
  479. package/dist/esm/themes/light.d.ts.map +1 -0
  480. package/dist/esm/themes/light.js +41 -0
  481. package/dist/esm/themes/light.js.map +1 -0
  482. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  483. package/for_AppShell/when_rendering_a_gallery_screen.tsx +76 -0
  484. package/for_LayoutConfigProvider/when_switching_mode_and_reloading.tsx +77 -0
  485. package/for_appShellLayout/when_evaluating_the_arrangement_at_each_size_class.ts +42 -0
  486. package/for_defaultBlueprint/when_validating_the_bundle.ts +43 -0
  487. package/for_defaultBlueprintThemes/when_checking_attribution_and_tokens.ts +50 -0
  488. package/for_fullPageLayout/when_evaluating_the_arrangement_at_each_size_class.ts +36 -0
  489. package/for_galleryScreenTemplates/when_checking_that_arrangements_reference_declared_slots.ts +53 -0
  490. package/for_galleryScreenTemplates/when_following_the_nesting_chain.ts +41 -0
  491. package/for_galleryScreens/when_checking_the_layouts_and_slots_they_fill.ts +44 -0
  492. package/for_galleryScreens/when_resolving_the_component_names_they_reference.ts +60 -0
  493. package/for_layoutConfigStorage/when_restoring_a_persisted_configuration.ts +76 -0
  494. package/for_layoutConfigTransitions/when_anchoring_a_reveal_sidebar.ts +44 -0
  495. package/for_layoutConfigTransitions/when_the_viewport_crosses_the_mobile_breakpoint.ts +61 -0
  496. package/for_layoutWrapperClasses/when_rendering_each_mode.ts +63 -0
  497. package/for_navigation/when_aggregating_the_navigation_contributions.ts +50 -0
  498. package/gallery/ApplicationScreens.stories.tsx +70 -0
  499. package/gallery/FullPageScreens.stories.tsx +60 -0
  500. package/gallery/GalleryScreenPreview.tsx +68 -0
  501. package/gallery/NavigationEntry.ts +27 -0
  502. package/gallery/TemplateSlotName.ts +36 -0
  503. package/gallery/applicationChrome.ts +110 -0
  504. package/gallery/authTemplates.ts +161 -0
  505. package/gallery/componentNames.ts +55 -0
  506. package/gallery/composeScreen.ts +95 -0
  507. package/gallery/dependencyComponentNames.ts +64 -0
  508. package/gallery/dialogTemplates.ts +79 -0
  509. package/gallery/elements.ts +65 -0
  510. package/gallery/index.ts +22 -0
  511. package/gallery/navigation.ts +71 -0
  512. package/gallery/nesting.ts +82 -0
  513. package/gallery/previewProfile.ts +59 -0
  514. package/gallery/resolveElementNames.ts +55 -0
  515. package/gallery/screens.ts +111 -0
  516. package/gallery/statusTemplates.ts +118 -0
  517. package/gallery/supportTemplates.ts +164 -0
  518. package/gallery/widgets.ts +63 -0
  519. package/gallery/workspaceTemplates.ts +198 -0
  520. package/index.ts +12 -0
  521. package/layouts/LayoutName.ts +18 -0
  522. package/layouts/SlotName.ts +44 -0
  523. package/layouts/appShell.ts +106 -0
  524. package/layouts/defaultLayouts.ts +15 -0
  525. package/layouts/flowBuilders.ts +49 -0
  526. package/layouts/fullPage.ts +48 -0
  527. package/layouts/index.ts +10 -0
  528. package/layouts/shellComponents.ts +28 -0
  529. package/package.json +68 -0
  530. package/packageName.ts +12 -0
  531. package/shell/AppShell.tsx +66 -0
  532. package/shell/Breadcrumb.tsx +31 -0
  533. package/shell/ConfigPanel.tsx +105 -0
  534. package/shell/Footer.tsx +23 -0
  535. package/shell/FullPageShell.tsx +41 -0
  536. package/shell/LayoutModeSwitcher.tsx +50 -0
  537. package/shell/LayoutModes.stories.tsx +83 -0
  538. package/shell/Logo.tsx +30 -0
  539. package/shell/Mask.tsx +29 -0
  540. package/shell/Menu.tsx +26 -0
  541. package/shell/MenuItem.tsx +39 -0
  542. package/shell/PageHeader.tsx +28 -0
  543. package/shell/RightPanel.tsx +23 -0
  544. package/shell/Sidebar.tsx +45 -0
  545. package/shell/ThemeOption.ts +60 -0
  546. package/shell/ThemeSwitcher.tsx +42 -0
  547. package/shell/Topbar.tsx +49 -0
  548. package/shell/UserMenu.tsx +53 -0
  549. package/shell/elementProperties.ts +64 -0
  550. package/shell/index.ts +21 -0
  551. package/shell/layout.css +821 -0
  552. package/themes/LayoutThemeProvider.tsx +41 -0
  553. package/themes/Theming.stories.tsx +89 -0
  554. package/themes/blueprintThemeCompatibility.ts +19 -0
  555. package/themes/dark.ts +38 -0
  556. package/themes/defaultBlueprintThemes.ts +14 -0
  557. package/themes/index.ts +8 -0
  558. package/themes/light.ts +41 -0
@@ -0,0 +1,3 @@
1
+ import { RegisteredComponentProps } from '@cratis/scene.react';
2
+ export declare function UserMenu({ element }: RegisteredComponentProps): import("react").JSX.Element;
3
+ //# sourceMappingURL=UserMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserMenu.d.ts","sourceRoot":"","sources":["../../../shell/UserMenu.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAW/D,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAiC7D"}
@@ -0,0 +1,66 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { useRef } from 'react';
3
+ import { Avatar } from 'primereact/avatar';
4
+ import { Button } from 'primereact/button';
5
+ import { Menu } from 'primereact/menu';
6
+ import { readString, readRecords, recordString } from './elementProperties.js';
7
+
8
+ /**
9
+ * The signed-in user's avatar and menu.
10
+ *
11
+ * The popup is PrimeReact's `Menu` rather than hand-written markup: an overlay that positions itself,
12
+ * traps focus and closes on escape is framework behavior, and re-implementing it in a layout package is
13
+ * how a shell ends up with its own subtly broken menu. The shell hand-writes CSS only where PrimeReact 10
14
+ * has no primitive at all - the app-shell modes - and uses the library everywhere else.
15
+ */ function UserMenu({ element }) {
16
+ const menu = useRef(null);
17
+ const name = readString(element, 'name');
18
+ const role = readString(element, 'role');
19
+ const initials = readString(element, 'initials', name.slice(0, 1).toUpperCase());
20
+ const items = readRecords(element, 'items').map((item)=>({
21
+ label: recordString(item, 'label'),
22
+ icon: recordString(item, 'icon') || undefined,
23
+ url: recordString(item, 'targetScreen') ? `#/${recordString(item, 'targetScreen')}` : undefined
24
+ }));
25
+ return /*#__PURE__*/ jsxs("div", {
26
+ className: "layout-user-menu",
27
+ "data-scene-id": element.id,
28
+ children: [
29
+ /*#__PURE__*/ jsx(Avatar, {
30
+ label: initials,
31
+ shape: "circle"
32
+ }),
33
+ /*#__PURE__*/ jsxs("span", {
34
+ className: "layout-user-menu-name",
35
+ children: [
36
+ /*#__PURE__*/ jsx("span", {
37
+ children: name
38
+ }),
39
+ role && /*#__PURE__*/ jsx("span", {
40
+ className: "layout-user-menu-role",
41
+ children: role
42
+ })
43
+ ]
44
+ }),
45
+ /*#__PURE__*/ jsx(Menu, {
46
+ ref: menu,
47
+ model: items,
48
+ popup: true,
49
+ id: `${element.id}-menu`
50
+ }),
51
+ /*#__PURE__*/ jsx(Button, {
52
+ type: "button",
53
+ text: true,
54
+ rounded: true,
55
+ icon: "pi pi-angle-down",
56
+ "aria-label": `Open the menu for ${name}`,
57
+ "aria-controls": `${element.id}-menu`,
58
+ "aria-haspopup": true,
59
+ onClick: (event)=>menu.current?.toggle(event)
60
+ })
61
+ ]
62
+ });
63
+ }
64
+
65
+ export { UserMenu };
66
+ //# sourceMappingURL=UserMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserMenu.js","sources":["../../../shell/UserMenu.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 { useRef } from 'react';\nimport { Avatar } from 'primereact/avatar';\nimport { Button } from 'primereact/button';\nimport { Menu as PrimeMenu } from 'primereact/menu';\nimport { MenuItem as PrimeMenuItem } from 'primereact/menuitem';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { readRecords, readString, recordString } from './elementProperties';\n\n/**\n * The signed-in user's avatar and menu.\n *\n * The popup is PrimeReact's `Menu` rather than hand-written markup: an overlay that positions itself,\n * traps focus and closes on escape is framework behavior, and re-implementing it in a layout package is\n * how a shell ends up with its own subtly broken menu. The shell hand-writes CSS only where PrimeReact 10\n * has no primitive at all - the app-shell modes - and uses the library everywhere else.\n */\nexport function UserMenu({ element }: RegisteredComponentProps) {\n const menu = useRef<PrimeMenu>(null);\n const name = readString(element, 'name');\n const role = readString(element, 'role');\n const initials = readString(element, 'initials', name.slice(0, 1).toUpperCase());\n const items = readRecords(element, 'items').map(\n (item): PrimeMenuItem => ({\n label: recordString(item, 'label'),\n icon: recordString(item, 'icon') || undefined,\n url: recordString(item, 'targetScreen') ? `#/${recordString(item, 'targetScreen')}` : undefined,\n }),\n );\n\n return (\n <div className='layout-user-menu' data-scene-id={element.id}>\n <Avatar label={initials} shape='circle' />\n <span className='layout-user-menu-name'>\n <span>{name}</span>\n {role && <span className='layout-user-menu-role'>{role}</span>}\n </span>\n <PrimeMenu ref={menu} model={items} popup id={`${element.id}-menu`} />\n <Button\n type='button'\n text\n rounded\n icon='pi pi-angle-down'\n aria-label={`Open the menu for ${name}`}\n aria-controls={`${element.id}-menu`}\n aria-haspopup\n onClick={event => menu.current?.toggle(event)}\n />\n </div>\n );\n}\n"],"names":["UserMenu","element","menu","useRef","name","readString","role","initials","slice","toUpperCase","items","readRecords","map","item","label","recordString","icon","undefined","url","_jsxs","div","className","data-scene-id","id","_jsx","Avatar","shape","span","PrimeMenu","ref","model","popup","Button","type","text","rounded","aria-label","aria-controls","aria-haspopup","onClick","event","current","toggle"],"mappings":";;;;;;;AAWA;;;;;;;AAOC,IACM,SAASA,QAAAA,CAAS,EAAEC,OAAO,EAA4B,EAAA;AAC1D,IAAA,MAAMC,OAAOC,MAAAA,CAAkB,IAAA,CAAA;IAC/B,MAAMC,IAAAA,GAAOC,WAAWJ,OAAAA,EAAS,MAAA,CAAA;IACjC,MAAMK,IAAAA,GAAOD,WAAWJ,OAAAA,EAAS,MAAA,CAAA;IACjC,MAAMM,QAAAA,GAAWF,WAAWJ,OAAAA,EAAS,UAAA,EAAYG,KAAKI,KAAK,CAAC,CAAA,EAAG,CAAA,CAAA,CAAGC,WAAW,EAAA,CAAA;IAC7E,MAAMC,KAAAA,GAAQC,YAAYV,OAAAA,EAAS,OAAA,CAAA,CAASW,GAAG,CAC3C,CAACC,QAAyB;AACtBC,YAAAA,KAAAA,EAAOC,aAAaF,IAAAA,EAAM,OAAA,CAAA;YAC1BG,IAAAA,EAAMD,YAAAA,CAAaF,MAAM,MAAA,CAAA,IAAWI,SAAAA;YACpCC,GAAAA,EAAKH,YAAAA,CAAaF,MAAM,cAAA,CAAA,GAAkB,CAAC,EAAE,EAAEE,YAAAA,CAAaF,IAAAA,EAAM,cAAA,CAAA,CAAA,CAAiB,GAAGI;SAC1F,CAAA,CAAA;AAGJ,IAAA,qBACIE,IAAA,CAACC,KAAAA,EAAAA;QAAIC,SAAAA,EAAU,kBAAA;AAAmBC,QAAAA,eAAAA,EAAerB,QAAQsB,EAAE;;0BACvDC,GAAA,CAACC,MAAAA,EAAAA;gBAAOX,KAAAA,EAAOP,QAAAA;gBAAUmB,KAAAA,EAAM;;0BAC/BP,IAAA,CAACQ,MAAAA,EAAAA;gBAAKN,SAAAA,EAAU,uBAAA;;kCACZG,GAAA,CAACG,MAAAA,EAAAA;AAAMvB,wBAAAA,QAAAA,EAAAA;;AACNE,oBAAAA,IAAAA,kBAAQkB,GAAA,CAACG,MAAAA,EAAAA;wBAAKN,SAAAA,EAAU,uBAAA;AAAyBf,wBAAAA,QAAAA,EAAAA;;;;0BAEtDkB,GAAA,CAACI,IAAAA,EAAAA;gBAAUC,GAAAA,EAAK3B,IAAAA;gBAAM4B,KAAAA,EAAOpB,KAAAA;gBAAOqB,KAAK,EAAA,IAAA;AAACR,gBAAAA,EAAAA,EAAI,CAAA,EAAGtB,OAAAA,CAAQsB,EAAE,CAAC,KAAK;;0BACjEC,GAAA,CAACQ,MAAAA,EAAAA;gBACGC,IAAAA,EAAK,QAAA;gBACLC,IAAI,EAAA,IAAA;gBACJC,OAAO,EAAA,IAAA;gBACPnB,IAAAA,EAAK,kBAAA;gBACLoB,YAAAA,EAAY,CAAC,kBAAkB,EAAEhC,IAAAA,CAAAA,CAAM;AACvCiC,gBAAAA,eAAAA,EAAe,CAAA,EAAGpC,OAAAA,CAAQsB,EAAE,CAAC,KAAK,CAAC;gBACnCe,eAAa,EAAA,IAAA;AACbC,gBAAAA,OAAAA,EAASC,CAAAA,KAAAA,GAAStC,IAAAA,CAAKuC,OAAO,EAAEC,MAAAA,CAAOF,KAAAA;;;;AAIvD;;;;"}
@@ -0,0 +1,9 @@
1
+ import { ExternalComponent } from '@cratis/scene.model';
2
+ export declare function readString(element: ExternalComponent, name: string, fallback?: string): string;
3
+ export declare function readOptionalString(element: ExternalComponent, name: string): string | undefined;
4
+ export declare function readBoolean(element: ExternalComponent, name: string, fallback?: boolean): boolean;
5
+ export declare function readNumber(element: ExternalComponent, name: string, fallback?: number): number;
6
+ export declare function readStrings(element: ExternalComponent, name: string): string[];
7
+ export declare function readRecords(element: ExternalComponent, name: string): Record<string, unknown>[];
8
+ export declare function recordString(record: Record<string, unknown>, name: string, fallback?: string): string;
9
+ //# sourceMappingURL=elementProperties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementProperties.d.ts","sourceRoot":"","sources":["../../../shell/elementProperties.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAYxD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAG1F;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG/F;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,UAAQ,GAAG,OAAO,CAG/F;AAGD,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAI,GAAG,MAAM,CAGzF;AAGD,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAG9E;AAQD,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAO/F;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,MAAM,CAGjG"}
@@ -0,0 +1,48 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /**
4
+ * Typed reads out of a {@link SceneElement}'s open `properties` bag.
5
+ *
6
+ * The bag is `Record<string, unknown>` by design - it carries whatever a page template author wrote, and
7
+ * Scene never re-validates it. A shell component that trusts it and reads `properties.label as string`
8
+ * renders `[object Object]` or crashes the moment a template has a typo, so every read goes through one of
9
+ * these instead and falls back to something renderable.
10
+ */ /** Reads a string property, or the fallback when it is absent or not a string. */ function readString(element, name, fallback = '') {
11
+ const value = element.properties[name];
12
+ return typeof value === 'string' ? value : fallback;
13
+ }
14
+ /** Reads an optional string property, or `undefined` when it is absent or not a string. */ function readOptionalString(element, name) {
15
+ const value = element.properties[name];
16
+ return typeof value === 'string' ? value : undefined;
17
+ }
18
+ /** Reads a boolean property, or the fallback when it is absent or not a boolean. */ function readBoolean(element, name, fallback = false) {
19
+ const value = element.properties[name];
20
+ return typeof value === 'boolean' ? value : fallback;
21
+ }
22
+ /** Reads a number property, or the fallback when it is absent or not a number. */ function readNumber(element, name, fallback = 0) {
23
+ const value = element.properties[name];
24
+ return typeof value === 'number' ? value : fallback;
25
+ }
26
+ /** Reads an array of strings, or an empty array when the property is absent or holds anything else. */ function readStrings(element, name) {
27
+ const value = element.properties[name];
28
+ return Array.isArray(value) ? value.filter((entry)=>typeof entry === 'string') : [];
29
+ }
30
+ /**
31
+ * Reads an array of objects - a breadcrumb trail, a set of table columns, a user menu's items.
32
+ *
33
+ * Entries that are not objects are dropped rather than rendered, for the same reason the scalar reads
34
+ * fall back: half a table is a better failure than a thrown render.
35
+ */ function readRecords(element, name) {
36
+ const value = element.properties[name];
37
+ if (!Array.isArray(value)) {
38
+ return [];
39
+ }
40
+ return value.filter((entry)=>typeof entry === 'object' && entry !== null && !Array.isArray(entry));
41
+ }
42
+ /** Reads a string out of one of {@link readRecords}' entries. */ function recordString(record, name, fallback = '') {
43
+ const value = record[name];
44
+ return typeof value === 'string' ? value : fallback;
45
+ }
46
+
47
+ export { readBoolean, readNumber, readOptionalString, readRecords, readString, readStrings, recordString };
48
+ //# sourceMappingURL=elementProperties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementProperties.js","sources":["../../../shell/elementProperties.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 { ExternalComponent } from '@cratis/scene.model';\n\n/**\n * Typed reads out of a {@link SceneElement}'s open `properties` bag.\n *\n * The bag is `Record<string, unknown>` by design - it carries whatever a page template author wrote, and\n * Scene never re-validates it. A shell component that trusts it and reads `properties.label as string`\n * renders `[object Object]` or crashes the moment a template has a typo, so every read goes through one of\n * these instead and falls back to something renderable.\n */\n\n/** Reads a string property, or the fallback when it is absent or not a string. */\nexport function readString(element: ExternalComponent, name: string, fallback = ''): string {\n const value = element.properties[name];\n return typeof value === 'string' ? value : fallback;\n}\n\n/** Reads an optional string property, or `undefined` when it is absent or not a string. */\nexport function readOptionalString(element: ExternalComponent, name: string): string | undefined {\n const value = element.properties[name];\n return typeof value === 'string' ? value : undefined;\n}\n\n/** Reads a boolean property, or the fallback when it is absent or not a boolean. */\nexport function readBoolean(element: ExternalComponent, name: string, fallback = false): boolean {\n const value = element.properties[name];\n return typeof value === 'boolean' ? value : fallback;\n}\n\n/** Reads a number property, or the fallback when it is absent or not a number. */\nexport function readNumber(element: ExternalComponent, name: string, fallback = 0): number {\n const value = element.properties[name];\n return typeof value === 'number' ? value : fallback;\n}\n\n/** Reads an array of strings, or an empty array when the property is absent or holds anything else. */\nexport function readStrings(element: ExternalComponent, name: string): string[] {\n const value = element.properties[name];\n return Array.isArray(value) ? value.filter((entry): entry is string => typeof entry === 'string') : [];\n}\n\n/**\n * Reads an array of objects - a breadcrumb trail, a set of table columns, a user menu's items.\n *\n * Entries that are not objects are dropped rather than rendered, for the same reason the scalar reads\n * fall back: half a table is a better failure than a thrown render.\n */\nexport function readRecords(element: ExternalComponent, name: string): Record<string, unknown>[] {\n const value = element.properties[name];\n if (!Array.isArray(value)) {\n return [];\n }\n\n return value.filter((entry): entry is Record<string, unknown> => typeof entry === 'object' && entry !== null && !Array.isArray(entry));\n}\n\n/** Reads a string out of one of {@link readRecords}' entries. */\nexport function recordString(record: Record<string, unknown>, name: string, fallback = ''): string {\n const value = record[name];\n return typeof value === 'string' ? value : fallback;\n}\n"],"names":["readString","element","name","fallback","value","properties","readOptionalString","undefined","readBoolean","readNumber","readStrings","Array","isArray","filter","entry","readRecords","recordString","record"],"mappings":"AAAA;AACA;AAIA;;;;;;;uFAUO,SAASA,UAAAA,CAAWC,OAA0B,EAAEC,IAAY,EAAEC,QAAAA,GAAW,EAAE,EAAA;AAC9E,IAAA,MAAMC,KAAAA,GAAQH,OAAAA,CAAQI,UAAU,CAACH,IAAAA,CAAK;IACtC,OAAO,OAAOE,KAAAA,KAAU,QAAA,GAAWA,KAAAA,GAAQD,QAAAA;AAC/C;AAEA,4FACO,SAASG,kBAAAA,CAAmBL,OAA0B,EAAEC,IAAY,EAAA;AACvE,IAAA,MAAME,KAAAA,GAAQH,OAAAA,CAAQI,UAAU,CAACH,IAAAA,CAAK;IACtC,OAAO,OAAOE,KAAAA,KAAU,QAAA,GAAWA,KAAAA,GAAQG,SAAAA;AAC/C;AAEA,qFACO,SAASC,WAAAA,CAAYP,OAA0B,EAAEC,IAAY,EAAEC,QAAAA,GAAW,KAAK,EAAA;AAClF,IAAA,MAAMC,KAAAA,GAAQH,OAAAA,CAAQI,UAAU,CAACH,IAAAA,CAAK;IACtC,OAAO,OAAOE,KAAAA,KAAU,SAAA,GAAYA,KAAAA,GAAQD,QAAAA;AAChD;AAEA,mFACO,SAASM,UAAAA,CAAWR,OAA0B,EAAEC,IAAY,EAAEC,QAAAA,GAAW,CAAC,EAAA;AAC7E,IAAA,MAAMC,KAAAA,GAAQH,OAAAA,CAAQI,UAAU,CAACH,IAAAA,CAAK;IACtC,OAAO,OAAOE,KAAAA,KAAU,QAAA,GAAWA,KAAAA,GAAQD,QAAAA;AAC/C;AAEA,wGACO,SAASO,WAAAA,CAAYT,OAA0B,EAAEC,IAAY,EAAA;AAChE,IAAA,MAAME,KAAAA,GAAQH,OAAAA,CAAQI,UAAU,CAACH,IAAAA,CAAK;AACtC,IAAA,OAAOS,KAAAA,CAAMC,OAAO,CAACR,KAAAA,CAAAA,GAASA,KAAAA,CAAMS,MAAM,CAAC,CAACC,KAAAA,GAA2B,OAAOA,KAAAA,KAAU,QAAA,CAAA,GAAY,EAAE;AAC1G;AAEA;;;;;AAKC,IACM,SAASC,WAAAA,CAAYd,OAA0B,EAAEC,IAAY,EAAA;AAChE,IAAA,MAAME,KAAAA,GAAQH,OAAAA,CAAQI,UAAU,CAACH,IAAAA,CAAK;AACtC,IAAA,IAAI,CAACS,KAAAA,CAAMC,OAAO,CAACR,KAAAA,CAAAA,EAAQ;AACvB,QAAA,OAAO,EAAE;AACb,IAAA;AAEA,IAAA,OAAOA,KAAAA,CAAMS,MAAM,CAAC,CAACC,KAAAA,GAA4C,OAAOA,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,IAAQ,CAACH,KAAAA,CAAMC,OAAO,CAACE,KAAAA,CAAAA,CAAAA;AACnI;AAEA,kEACO,SAASE,YAAAA,CAAaC,MAA+B,EAAEf,IAAY,EAAEC,QAAAA,GAAW,EAAE,EAAA;IACrF,MAAMC,KAAAA,GAAQa,MAAM,CAACf,IAAAA,CAAK;IAC1B,OAAO,OAAOE,KAAAA,KAAU,QAAA,GAAWA,KAAAA,GAAQD,QAAAA;AAC/C;;;;"}
@@ -0,0 +1,19 @@
1
+ export * from './elementProperties';
2
+ export * from './ThemeOption';
3
+ export * from './AppShell';
4
+ export * from './FullPageShell';
5
+ export * from './Topbar';
6
+ export * from './Sidebar';
7
+ export * from './Menu';
8
+ export * from './MenuItem';
9
+ export * from './Breadcrumb';
10
+ export * from './Footer';
11
+ export * from './RightPanel';
12
+ export * from './ConfigPanel';
13
+ export * from './PageHeader';
14
+ export * from './Mask';
15
+ export * from './Logo';
16
+ export * from './UserMenu';
17
+ export * from './ThemeSwitcher';
18
+ export * from './LayoutModeSwitcher';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../shell/index.ts"],"names":[],"mappings":"AAGA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,19 @@
1
+ export * from './elementProperties';
2
+ export * from './ThemeOption';
3
+ export * from './AppShell';
4
+ export * from './FullPageShell';
5
+ export * from './Topbar';
6
+ export * from './Sidebar';
7
+ export * from './Menu';
8
+ export * from './MenuItem';
9
+ export * from './Breadcrumb';
10
+ export * from './Footer';
11
+ export * from './RightPanel';
12
+ export * from './ConfigPanel';
13
+ export * from './PageHeader';
14
+ export * from './Mask';
15
+ export * from './Logo';
16
+ export * from './UserMenu';
17
+ export * from './ThemeSwitcher';
18
+ export * from './LayoutModeSwitcher';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../shell/index.ts"],"names":[],"mappings":"AAGA,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ import { Theme } from '@cratis/scene.model';
3
+ export interface LayoutThemeProviderProps {
4
+ themes?: Theme[];
5
+ children?: ReactNode;
6
+ className?: string;
7
+ }
8
+ export declare function LayoutThemeProvider({ themes, children, className }: LayoutThemeProviderProps): import("react").JSX.Element;
9
+ //# sourceMappingURL=LayoutThemeProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutThemeProvider.d.ts","sourceRoot":"","sources":["../../../themes/LayoutThemeProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAW,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAK5C,MAAM,WAAW,wBAAwB;IAErC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IAGjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IAGrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAaD,wBAAgB,mBAAmB,CAAC,EAAE,MAA+B,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,wBAAwB,+BASrH"}
@@ -0,0 +1,31 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { useMemo } from 'react';
3
+ import { SceneThemeProvider } from '@cratis/scene.react';
4
+ import { useLayoutConfig } from '../configuration/LayoutConfigProvider.js';
5
+ import { defaultBlueprintThemes } from './defaultBlueprintThemes.js';
6
+
7
+ /**
8
+ * Applies whichever theme the shell's configuration currently names.
9
+ *
10
+ * This is the seam between the configurator and `SceneThemeProvider`: the configurator only ever records
11
+ * a name, and this resolves that name against the theme set a host offers. Keeping the shell's state
12
+ * free of the theme object itself is what lets a host swap in an entirely different theme set - its own
13
+ * brand palettes - without the configurator or any shell component changing.
14
+ *
15
+ * Switching is live re-resolution, not a reload: `SceneThemeProvider` writes the new tokens onto the same
16
+ * element, so nothing below it remounts and no state is lost.
17
+ */ function LayoutThemeProvider({ themes = defaultBlueprintThemes, children, className }) {
18
+ const { config } = useLayoutConfig();
19
+ const theme = useMemo(()=>themes.find((candidate)=>candidate.name === config.themeName) ?? themes[0], [
20
+ themes,
21
+ config.themeName
22
+ ]);
23
+ return /*#__PURE__*/ jsx(SceneThemeProvider, {
24
+ theme: theme,
25
+ className: className,
26
+ children: children
27
+ });
28
+ }
29
+
30
+ export { LayoutThemeProvider };
31
+ //# sourceMappingURL=LayoutThemeProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LayoutThemeProvider.js","sources":["../../../themes/LayoutThemeProvider.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 { ReactNode, useMemo } from 'react';\nimport { Theme } from '@cratis/scene.model';\nimport { SceneThemeProvider } from '@cratis/scene.react';\nimport { useLayoutConfig } from '../configuration';\nimport { defaultBlueprintThemes } from './defaultBlueprintThemes';\n\nexport interface LayoutThemeProviderProps {\n /** The themes to choose between. Defaults to the two this package ships. */\n themes?: Theme[];\n\n /** The shell the chosen theme applies to. */\n children?: ReactNode;\n\n /** A class name for the element the tokens land on. */\n className?: string;\n}\n\n/**\n * Applies whichever theme the shell's configuration currently names.\n *\n * This is the seam between the configurator and `SceneThemeProvider`: the configurator only ever records\n * a name, and this resolves that name against the theme set a host offers. Keeping the shell's state\n * free of the theme object itself is what lets a host swap in an entirely different theme set - its own\n * brand palettes - without the configurator or any shell component changing.\n *\n * Switching is live re-resolution, not a reload: `SceneThemeProvider` writes the new tokens onto the same\n * element, so nothing below it remounts and no state is lost.\n */\nexport function LayoutThemeProvider({ themes = defaultBlueprintThemes, children, className }: LayoutThemeProviderProps) {\n const { config } = useLayoutConfig();\n const theme = useMemo(() => themes.find(candidate => candidate.name === config.themeName) ?? themes[0], [themes, config.themeName]);\n\n return (\n <SceneThemeProvider theme={theme} className={className}>\n {children}\n </SceneThemeProvider>\n );\n}\n"],"names":["LayoutThemeProvider","themes","defaultBlueprintThemes","children","className","config","useLayoutConfig","theme","useMemo","find","candidate","name","themeName","_jsx","SceneThemeProvider"],"mappings":";;;;;;AAoBA;;;;;;;;;;IAWO,SAASA,mBAAAA,CAAoB,EAAEC,MAAAA,GAASC,sBAAsB,EAAEC,QAAQ,EAAEC,SAAS,EAA4B,EAAA;IAClH,MAAM,EAAEC,MAAM,EAAE,GAAGC,eAAAA,EAAAA;AACnB,IAAA,MAAMC,QAAQC,OAAAA,CAAQ,IAAMP,MAAAA,CAAOQ,IAAI,CAACC,CAAAA,SAAAA,GAAaA,SAAAA,CAAUC,IAAI,KAAKN,MAAAA,CAAOO,SAAS,KAAKX,MAAM,CAAC,EAAE,EAAE;AAACA,QAAAA,MAAAA;AAAQI,QAAAA,MAAAA,CAAOO;AAAU,KAAA,CAAA;AAElI,IAAA,qBACIC,GAAA,CAACC,kBAAAA,EAAAA;QAAmBP,KAAAA,EAAOA,KAAAA;QAAOH,SAAAA,EAAWA,SAAAA;AACxCD,QAAAA,QAAAA,EAAAA;;AAGb;;;;"}
@@ -0,0 +1,21 @@
1
+ import type { StoryObj } from '@storybook/react';
2
+ import { GalleryScreenPreview } from '../gallery';
3
+ declare const meta: {
4
+ title: string;
5
+ component: typeof GalleryScreenPreview;
6
+ parameters: {
7
+ layout: string;
8
+ docs: {
9
+ description: {
10
+ component: string;
11
+ };
12
+ };
13
+ };
14
+ tags: string[];
15
+ };
16
+ export default meta;
17
+ type Story = StoryObj<typeof meta>;
18
+ export declare const Light: Story;
19
+ export declare const Dark: Story;
20
+ export declare const Switcher: Story;
21
+ //# sourceMappingURL=Theming.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Theming.stories.d.ts","sourceRoot":"","sources":["../../../themes/Theming.stories.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAQ,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,oBAAoB,EAAqB,MAAM,YAAY,CAAC;AAerE,QAAA,MAAM,IAAI;;;;QAIF,MAAM;QACN,IAAI;YACA,WAAW;gBACP,SAAS;;;;;CAKoB,CAAC;eAE/B,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAGnC,eAAO,MAAM,KAAK,EAAE,KAAkI,CAAC;AAGvJ,eAAO,MAAM,IAAI,EAAE,KAElB,CAAC;AA0BF,eAAO,MAAM,QAAQ,EAAE,KAiBtB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { expect, userEvent, within } from 'storybook/test';
3
+ import { ColorScheme, LayoutConfigProvider, LayoutMode, useLayoutConfig } from '../configuration';
4
+ import { GalleryScreenPreview, externalComponent } from '../gallery';
5
+ import { ComponentName } from '../ComponentName';
6
+ import { ThemeSwitcher } from '../shell';
7
+ import { LayoutThemeProvider } from './LayoutThemeProvider';
8
+ import { defaultBlueprintThemes } from './defaultBlueprintThemes';
9
+ const meta = {
10
+ title: 'Blueprint/Theming',
11
+ component: GalleryScreenPreview,
12
+ parameters: {
13
+ layout: 'fullscreen',
14
+ docs: {
15
+ description: {
16
+ component: 'The two themes this blueprint ships, and a switcher proving the swap is live rather than a reload.',
17
+ },
18
+ },
19
+ },
20
+ tags: ['autodocs'],
21
+ };
22
+ export default meta;
23
+ export const Light = { args: { screenName: 'Dashboard', initialConfig: { themeName: 'Scene Default Light', colorScheme: ColorScheme.Light } } };
24
+ export const Dark = {
25
+ args: { screenName: 'Dashboard', initialConfig: { themeName: 'Scene Default Dark', colorScheme: ColorScheme.Dark, mode: LayoutMode.Static } },
26
+ };
27
+ const switcherElement = externalComponent('theme-switcher', ComponentName.ThemeSwitcher, {
28
+ label: 'Theme',
29
+ themes: defaultBlueprintThemes.map(theme => ({ name: theme.name, label: theme.name, isDark: theme.isDark ?? false })),
30
+ });
31
+ function AppliedTheme() {
32
+ const { config } = useLayoutConfig();
33
+ return _jsx("output", { "data-testid": 'applied-theme', children: `${config.themeName} · ${config.colorScheme}` });
34
+ }
35
+ function ThemeSwitchingDemo() {
36
+ return (_jsx(LayoutConfigProvider, { storage: null, children: _jsx(LayoutThemeProvider, { children: _jsxs("div", { style: { padding: '1.5rem', display: 'flex', flexDirection: 'column', gap: '1rem' }, children: [_jsx(ThemeSwitcher, { element: switcherElement, slots: {} }), _jsx(AppliedTheme, {})] }) }) }));
37
+ }
38
+ export const Switcher = {
39
+ args: { screenName: 'Dashboard' },
40
+ parameters: { layout: 'padded' },
41
+ render: () => _jsx(ThemeSwitchingDemo, {}),
42
+ play: async ({ canvasElement }) => {
43
+ const canvas = within(canvasElement);
44
+ await userEvent.click(canvas.getByRole('button', { name: 'Scene Default Dark' }));
45
+ await expect(canvas.getByTestId('applied-theme').textContent).toContain('Scene Default Dark');
46
+ const themed = canvasElement.querySelector('[data-scene-theme-root]');
47
+ await expect(themed.getAttribute('data-scene-color-scheme')).toBe('dark');
48
+ await expect(themed.style.getPropertyValue('--scene-surface-card')).toBe('#171a23');
49
+ await userEvent.click(canvas.getByRole('button', { name: 'Scene Default Light' }));
50
+ await expect(themed.getAttribute('data-scene-color-scheme')).toBe('light');
51
+ await expect(themed.style.getPropertyValue('--scene-surface-card')).toBe('#ffffff');
52
+ },
53
+ };
54
+ //# sourceMappingURL=Theming.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Theming.stories.js","sourceRoot":"","sources":["../../../themes/Theming.stories.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAWlE,MAAM,IAAI,GAAG;IACT,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,oBAAoB;IAC/B,UAAU,EAAE;QACR,MAAM,EAAE,YAAY;QACpB,IAAI,EAAE;YACF,WAAW,EAAE;gBACT,SAAS,EAAE,oGAAoG;aAClH;SACJ;KACJ;IACD,IAAI,EAAE,CAAC,UAAU,CAAC;CACuB,CAAC;AAE9C,eAAe,IAAI,CAAC;AAKpB,MAAM,CAAC,MAAM,KAAK,GAAU,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,qBAAqB,EAAE,WAAW,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC;AAGvJ,MAAM,CAAC,MAAM,IAAI,GAAU;IACvB,IAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,MAAM,EAAE,EAAE;CAChJ,CAAC;AAEF,MAAM,eAAe,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,aAAa,CAAC,aAAa,EAAE;IACrF,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC;CACxH,CAAC,CAAC;AAEH,SAAS,YAAY;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,EAAE,CAAC;IACrC,OAAO,gCAAoB,eAAe,YAAE,GAAG,MAAM,CAAC,SAAS,MAAM,MAAM,CAAC,WAAW,EAAE,GAAU,CAAC;AACxG,CAAC;AAED,SAAS,kBAAkB;IACvB,OAAO,CACH,KAAC,oBAAoB,IAAC,OAAO,EAAE,IAAI,YAC/B,KAAC,mBAAmB,cAChB,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,aACpF,KAAC,aAAa,IAAC,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,EAAE,GAAI,EACtD,KAAC,YAAY,KAAG,IACd,GACY,GACH,CAC1B,CAAC;AACN,CAAC;AAGD,MAAM,CAAC,MAAM,QAAQ,GAAU;IAC3B,IAAI,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE;IACjC,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;IAChC,MAAM,EAAE,GAAG,EAAE,CAAC,KAAC,kBAAkB,KAAG;IACpC,IAAI,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QACrC,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,CAAC;QAClF,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;QAE9F,MAAM,MAAM,GAAG,aAAa,CAAC,aAAa,CAAC,yBAAyB,CAAgB,CAAC;QACrF,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1E,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpF,MAAM,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACnF,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3E,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxF,CAAC;CACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const blueprintThemeCompatibility: string[];
2
+ //# sourceMappingURL=blueprintThemeCompatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprintThemeCompatibility.d.ts","sourceRoot":"","sources":["../../../themes/blueprintThemeCompatibility.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,2BAA2B,EAAE,MAAM,EAAkF,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { defaultBlueprintName } from '../packageName.js';
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 packages this blueprint's themes declare compatibility with.
7
+ *
8
+ * `core` is on the list on purpose. `incompatiblePackages` has no implicit exemption for it - a theme
9
+ * that omits it is reported incompatible for `core` with every profile that lists it, which is every
10
+ * profile, since `core` is the fallback vocabulary. The exemption was left out of the engine deliberately
11
+ * so that "compatible with everything active" has to be stated rather than assumed, and a theme shipped by
12
+ * a blueprint is exactly where stating it matters.
13
+ *
14
+ * The rest is the stack the shell is actually built on: this blueprint's own components, the PrimeReact
15
+ * primitives it uses, the Cratis Components library its screen templates draw from, and the styling
16
+ * package those are written against.
17
+ */ const blueprintThemeCompatibility = [
18
+ 'core',
19
+ defaultBlueprintName,
20
+ 'PrimeReact',
21
+ 'Cratis.Components',
22
+ 'Tailwind'
23
+ ];
24
+
25
+ export { blueprintThemeCompatibility };
26
+ //# sourceMappingURL=blueprintThemeCompatibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprintThemeCompatibility.js","sources":["../../../themes/blueprintThemeCompatibility.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 { defaultBlueprintName } from '../packageName';\n\n/**\n * The packages this blueprint's themes declare compatibility with.\n *\n * `core` is on the list on purpose. `incompatiblePackages` has no implicit exemption for it - a theme\n * that omits it is reported incompatible for `core` with every profile that lists it, which is every\n * profile, since `core` is the fallback vocabulary. The exemption was left out of the engine deliberately\n * so that \"compatible with everything active\" has to be stated rather than assumed, and a theme shipped by\n * a blueprint is exactly where stating it matters.\n *\n * The rest is the stack the shell is actually built on: this blueprint's own components, the PrimeReact\n * primitives it uses, the Cratis Components library its screen templates draw from, and the styling\n * package those are written against.\n */\nexport const blueprintThemeCompatibility: string[] = ['core', defaultBlueprintName, 'PrimeReact', 'Cratis.Components', 'Tailwind'];\n"],"names":["blueprintThemeCompatibility","defaultBlueprintName"],"mappings":";;AAAA;AACA;AAIA;;;;;;;;;;;;UAaaA,2BAAAA,GAAwC;AAAC,IAAA,MAAA;AAAQC,IAAAA,oBAAAA;AAAsB,IAAA,YAAA;AAAc,IAAA,mBAAA;AAAqB,IAAA;;;;;"}
@@ -0,0 +1,3 @@
1
+ import { Theme } from '@cratis/scene.model';
2
+ export declare const darkTheme: Theme;
3
+ //# sourceMappingURL=dark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dark.d.ts","sourceRoot":"","sources":["../../../themes/dark.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAW5C,eAAO,MAAM,SAAS,EAAE,KAuBvB,CAAC"}
@@ -0,0 +1,38 @@
1
+ import { blueprintThemeCompatibility } from './blueprintThemeCompatibility.js';
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 dark theme the shell ships with.
7
+ *
8
+ * Deliberately the same ten token names as the light theme and nothing more. A dark theme that introduced
9
+ * extra tokens would work only for the parts of the shell written after it existed - the token set is the
10
+ * contract, and both themes filling it identically is what makes switching between them a swap rather than
11
+ * a re-render with holes in it.
12
+ */ const darkTheme = {
13
+ name: 'Scene Default Dark',
14
+ compatibleWith: blueprintThemeCompatibility,
15
+ isDark: true,
16
+ author: 'Cratis',
17
+ authorUrl: 'https://cratis.io',
18
+ license: 'MIT',
19
+ description: 'The default dark palette: a deep slate ramp with a lifted indigo accent.',
20
+ tokens: {
21
+ 'primary.color': '#818cf8',
22
+ 'primary.contrastColor': '#10131f',
23
+ 'surface.background': '#0f1117',
24
+ 'surface.card': '#171a23',
25
+ 'surface.border': '#262a36',
26
+ 'surface.hover': '#1f2431',
27
+ 'surface.overlay': '#1c2030',
28
+ 'text.color': '#e6e8ef',
29
+ 'text.mutedColor': '#9aa1b1',
30
+ 'highlight.background': '#232a45',
31
+ 'highlight.color': '#c7ccff',
32
+ 'content.borderRadius': '0.5rem',
33
+ 'focus.ring': '0 0 0 2px rgb(129 140 248 / 0.45)'
34
+ }
35
+ };
36
+
37
+ export { darkTheme };
38
+ //# sourceMappingURL=dark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dark.js","sources":["../../../themes/dark.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 { Theme } from '@cratis/scene.model';\nimport { blueprintThemeCompatibility } from './blueprintThemeCompatibility';\n\n/**\n * The dark theme the shell ships with.\n *\n * Deliberately the same ten token names as the light theme and nothing more. A dark theme that introduced\n * extra tokens would work only for the parts of the shell written after it existed - the token set is the\n * contract, and both themes filling it identically is what makes switching between them a swap rather than\n * a re-render with holes in it.\n */\nexport const darkTheme: Theme = {\n name: 'Scene Default Dark',\n compatibleWith: blueprintThemeCompatibility,\n isDark: true,\n author: 'Cratis',\n authorUrl: 'https://cratis.io',\n license: 'MIT',\n description: 'The default dark palette: a deep slate ramp with a lifted indigo accent.',\n tokens: {\n 'primary.color': '#818cf8',\n 'primary.contrastColor': '#10131f',\n 'surface.background': '#0f1117',\n 'surface.card': '#171a23',\n 'surface.border': '#262a36',\n 'surface.hover': '#1f2431',\n 'surface.overlay': '#1c2030',\n 'text.color': '#e6e8ef',\n 'text.mutedColor': '#9aa1b1',\n 'highlight.background': '#232a45',\n 'highlight.color': '#c7ccff',\n 'content.borderRadius': '0.5rem',\n 'focus.ring': '0 0 0 2px rgb(129 140 248 / 0.45)',\n },\n};\n"],"names":["darkTheme","name","compatibleWith","blueprintThemeCompatibility","isDark","author","authorUrl","license","description","tokens"],"mappings":";;AAAA;AACA;AAKA;;;;;;;UAQaA,SAAAA,GAAmB;IAC5BC,IAAAA,EAAM,oBAAA;IACNC,cAAAA,EAAgBC,2BAAAA;IAChBC,MAAAA,EAAQ,IAAA;IACRC,MAAAA,EAAQ,QAAA;IACRC,SAAAA,EAAW,mBAAA;IACXC,OAAAA,EAAS,KAAA;IACTC,WAAAA,EAAa,0EAAA;IACbC,MAAAA,EAAQ;QACJ,eAAA,EAAiB,SAAA;QACjB,uBAAA,EAAyB,SAAA;QACzB,oBAAA,EAAsB,SAAA;QACtB,cAAA,EAAgB,SAAA;QAChB,gBAAA,EAAkB,SAAA;QAClB,eAAA,EAAiB,SAAA;QACjB,iBAAA,EAAmB,SAAA;QACnB,YAAA,EAAc,SAAA;QACd,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,SAAA;QACxB,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,QAAA;QACxB,YAAA,EAAc;AAClB;AACJ;;;;"}
@@ -0,0 +1,3 @@
1
+ import { Theme } from '@cratis/scene.model';
2
+ export declare const defaultBlueprintThemes: Theme[];
3
+ //# sourceMappingURL=defaultBlueprintThemes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultBlueprintThemes.d.ts","sourceRoot":"","sources":["../../../themes/defaultBlueprintThemes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAU5C,eAAO,MAAM,sBAAsB,EAAE,KAAK,EAA4B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { darkTheme } from './dark.js';
2
+ import { lightTheme } from './light.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 themes this blueprint ships, in the order a picker should offer them.
8
+ *
9
+ * The list is what the manifest's `themes` names and what the bundle provides, so it is the one place the
10
+ * two can be kept in step - `validatePackageBundle` proves they are.
11
+ */ const defaultBlueprintThemes = [
12
+ lightTheme,
13
+ darkTheme
14
+ ];
15
+
16
+ export { defaultBlueprintThemes };
17
+ //# sourceMappingURL=defaultBlueprintThemes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultBlueprintThemes.js","sources":["../../../themes/defaultBlueprintThemes.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 { Theme } from '@cratis/scene.model';\nimport { darkTheme } from './dark';\nimport { lightTheme } from './light';\n\n/**\n * The themes this blueprint ships, in the order a picker should offer them.\n *\n * The list is what the manifest's `themes` names and what the bundle provides, so it is the one place the\n * two can be kept in step - `validatePackageBundle` proves they are.\n */\nexport const defaultBlueprintThemes: Theme[] = [lightTheme, darkTheme];\n"],"names":["defaultBlueprintThemes","lightTheme","darkTheme"],"mappings":";;;AAAA;AACA;AAMA;;;;;UAMaA,sBAAAA,GAAkC;AAACC,IAAAA,UAAAA;AAAYC,IAAAA;;;;;"}
@@ -0,0 +1,6 @@
1
+ export * from './blueprintThemeCompatibility';
2
+ export * from './light';
3
+ export * from './dark';
4
+ export * from './defaultBlueprintThemes';
5
+ export * from './LayoutThemeProvider';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../themes/index.ts"],"names":[],"mappings":"AAGA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './blueprintThemeCompatibility';
2
+ export * from './light';
3
+ export * from './dark';
4
+ export * from './defaultBlueprintThemes';
5
+ export * from './LayoutThemeProvider';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../themes/index.ts"],"names":[],"mappings":"AAGA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Theme } from '@cratis/scene.model';
2
+ export declare const lightTheme: Theme;
3
+ //# sourceMappingURL=light.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.d.ts","sourceRoot":"","sources":["../../../themes/light.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAc5C,eAAO,MAAM,UAAU,EAAE,KAuBxB,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { blueprintThemeCompatibility } from './blueprintThemeCompatibility.js';
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 light theme the shell ships with.
7
+ *
8
+ * The palette is original to Cratis - a neutral grey ramp with an indigo accent - rather than adopted from
9
+ * any existing preset, which is why `author` says so rather than being left blank. A theme with empty
10
+ * attribution reads as "nobody has checked", and once a palette is lifted from somewhere else without its
11
+ * credit, nobody can tell afterwards which of the two it was.
12
+ *
13
+ * The token set is the shell's whole styling contract: every rule in `layout.css` resolves back to one of
14
+ * these ten names. A theme that defines them defines the entire shell.
15
+ */ const lightTheme = {
16
+ name: 'Scene Default Light',
17
+ compatibleWith: blueprintThemeCompatibility,
18
+ isDark: false,
19
+ author: 'Cratis',
20
+ authorUrl: 'https://cratis.io',
21
+ license: 'MIT',
22
+ description: 'The default light palette: a neutral grey ramp with an indigo accent.',
23
+ tokens: {
24
+ 'primary.color': '#4f46e5',
25
+ 'primary.contrastColor': '#ffffff',
26
+ 'surface.background': '#f4f5f7',
27
+ 'surface.card': '#ffffff',
28
+ 'surface.border': '#e2e5e9',
29
+ 'surface.hover': '#eceef1',
30
+ 'surface.overlay': '#ffffff',
31
+ 'text.color': '#1f2430',
32
+ 'text.mutedColor': '#6b7280',
33
+ 'highlight.background': '#eef2ff',
34
+ 'highlight.color': '#3730a3',
35
+ 'content.borderRadius': '0.5rem',
36
+ 'focus.ring': '0 0 0 2px rgb(79 70 229 / 0.4)'
37
+ }
38
+ };
39
+
40
+ export { lightTheme };
41
+ //# sourceMappingURL=light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light.js","sources":["../../../themes/light.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 { Theme } from '@cratis/scene.model';\nimport { blueprintThemeCompatibility } from './blueprintThemeCompatibility';\n\n/**\n * The light theme the shell ships with.\n *\n * The palette is original to Cratis - a neutral grey ramp with an indigo accent - rather than adopted from\n * any existing preset, which is why `author` says so rather than being left blank. A theme with empty\n * attribution reads as \"nobody has checked\", and once a palette is lifted from somewhere else without its\n * credit, nobody can tell afterwards which of the two it was.\n *\n * The token set is the shell's whole styling contract: every rule in `layout.css` resolves back to one of\n * these ten names. A theme that defines them defines the entire shell.\n */\nexport const lightTheme: Theme = {\n name: 'Scene Default Light',\n compatibleWith: blueprintThemeCompatibility,\n isDark: false,\n author: 'Cratis',\n authorUrl: 'https://cratis.io',\n license: 'MIT',\n description: 'The default light palette: a neutral grey ramp with an indigo accent.',\n tokens: {\n 'primary.color': '#4f46e5',\n 'primary.contrastColor': '#ffffff',\n 'surface.background': '#f4f5f7',\n 'surface.card': '#ffffff',\n 'surface.border': '#e2e5e9',\n 'surface.hover': '#eceef1',\n 'surface.overlay': '#ffffff',\n 'text.color': '#1f2430',\n 'text.mutedColor': '#6b7280',\n 'highlight.background': '#eef2ff',\n 'highlight.color': '#3730a3',\n 'content.borderRadius': '0.5rem',\n 'focus.ring': '0 0 0 2px rgb(79 70 229 / 0.4)',\n },\n};\n"],"names":["lightTheme","name","compatibleWith","blueprintThemeCompatibility","isDark","author","authorUrl","license","description","tokens"],"mappings":";;AAAA;AACA;AAKA;;;;;;;;;;UAWaA,UAAAA,GAAoB;IAC7BC,IAAAA,EAAM,qBAAA;IACNC,cAAAA,EAAgBC,2BAAAA;IAChBC,MAAAA,EAAQ,KAAA;IACRC,MAAAA,EAAQ,QAAA;IACRC,SAAAA,EAAW,mBAAA;IACXC,OAAAA,EAAS,KAAA;IACTC,WAAAA,EAAa,uEAAA;IACbC,MAAAA,EAAQ;QACJ,eAAA,EAAiB,SAAA;QACjB,uBAAA,EAAyB,SAAA;QACzB,oBAAA,EAAsB,SAAA;QACtB,cAAA,EAAgB,SAAA;QAChB,gBAAA,EAAkB,SAAA;QAClB,eAAA,EAAiB,SAAA;QACjB,iBAAA,EAAmB,SAAA;QACnB,YAAA,EAAc,SAAA;QACd,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,SAAA;QACxB,iBAAA,EAAmB,SAAA;QACnB,sBAAA,EAAwB,QAAA;QACxB,YAAA,EAAc;AAClB;AACJ;;;;"}