@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,821 @@
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
+ /*
5
+ * Cratis Scene - default layout package stylesheet.
6
+ *
7
+ * Every mode this shell implements is hand-written here. PrimeReact 10 has no app-shell primitive to
8
+ * lean on: its `Sidebar` is an overlay drawer (renamed `Drawer` in v11), not a dockable application
9
+ * sidebar, so the docked/rail/reveal/drawer behaviors have to be CSS. PrimeReact 11 introduces a real
10
+ * `Sidebar` with `variant`/`collapsible`/`side`/`overlay`/`openOnHover` props and a `Sidebar.Layout`
11
+ * registry that would replace most of this file - see the README for what a v11 port collapses.
12
+ *
13
+ * TOKEN BRIDGE
14
+ * ------------
15
+ * Scene themes publish semantic tokens as `--scene-*` custom properties (see `themeTokens.ts` in
16
+ * `@cratis/scene.react` for how a token name becomes a property name). This file aliases those into
17
+ * `--layout-*` locals exactly once, in the block below, and every rule after that references only the
18
+ * `--layout-*` names - the same indirection `@cratis/components` uses for its `--cratis-*` layer.
19
+ *
20
+ * That single seam is what makes the shell theme-agnostic: swap the theme and every mode restyles, and
21
+ * a host that wants to take over the look overrides `--scene-*` (or `--layout-*` directly) without
22
+ * touching a rule here. The fallbacks are neutral greys so an unthemed shell is still legible rather
23
+ * than invisible - they are a safety net, not a palette.
24
+ */
25
+
26
+ .layout-wrapper,
27
+ .layout-full-page {
28
+ /* Palette - aliased from the active Scene theme's tokens, never referenced directly below. */
29
+ --layout-primary: var(--scene-primary-color, #4f46e5);
30
+ --layout-primary-contrast: var(--scene-primary-contrast-color, #ffffff);
31
+ --layout-background: var(--scene-surface-background, #f4f5f7);
32
+ --layout-card: var(--scene-surface-card, #ffffff);
33
+ --layout-border: var(--scene-surface-border, #e2e5e9);
34
+ --layout-hover: var(--scene-surface-hover, #eceef1);
35
+ --layout-overlay: var(--scene-surface-overlay, #ffffff);
36
+ --layout-text: var(--scene-text-color, #1f2430);
37
+ --layout-text-muted: var(--scene-text-muted-color, #6b7280);
38
+ --layout-highlight: var(--scene-highlight-background, #eef2ff);
39
+ --layout-highlight-text: var(--scene-highlight-color, #3730a3);
40
+ --layout-radius: var(--scene-content-border-radius, 0.5rem);
41
+ --layout-focus-ring: var(--scene-focus-ring, 0 0 0 2px rgb(79 70 229 / 0.4));
42
+
43
+ /* Geometry - the measurements the PrimeTek template line uses for each mode. */
44
+ --layout-topbar-height: 4rem;
45
+ --layout-sidebar-width: 18rem;
46
+ --layout-slim-width: 5rem;
47
+ --layout-slim-plus-width: 7rem;
48
+ --layout-compact-width: 5rem;
49
+ --layout-reveal-strip-width: 4.25rem;
50
+ --layout-drawer-collapsed-width: 5.25rem;
51
+ --layout-gap: 1rem;
52
+ --layout-transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
53
+
54
+ /* Stacking - one place, so a floating sidebar can never end up under its own mask. */
55
+ --layout-z-content: 1;
56
+ --layout-z-topbar: 100;
57
+ --layout-z-mask: 998;
58
+ --layout-z-sidebar: 999;
59
+ --layout-z-config: 1100;
60
+
61
+ /* Derived surfaces - computed from the tokens above rather than introducing new ones. */
62
+ --layout-sidebar-surface: var(--layout-card);
63
+ --layout-sidebar-text: var(--layout-text);
64
+ --layout-sidebar-muted: var(--layout-text-muted);
65
+ --layout-sidebar-hover: var(--layout-hover);
66
+
67
+ /* How far the content is pushed by whatever sidebar the current mode renders. */
68
+ --layout-content-offset: 0rem;
69
+
70
+ box-sizing: border-box;
71
+ min-height: 100vh;
72
+ color: var(--layout-text);
73
+ background: var(--layout-background);
74
+ font-family: inherit;
75
+ }
76
+
77
+ .layout-wrapper *,
78
+ .layout-full-page * {
79
+ box-sizing: border-box;
80
+ }
81
+
82
+ /* ---------------------------------------------------------------------------
83
+ * Menu theme - the sidebar's own tint, independent of the page's color scheme.
84
+ * ------------------------------------------------------------------------ */
85
+
86
+ .layout-menu-dark {
87
+ --layout-sidebar-surface: color-mix(in srgb, var(--layout-text) 92%, black);
88
+ --layout-sidebar-text: var(--layout-card);
89
+ --layout-sidebar-muted: color-mix(in srgb, var(--layout-card) 65%, transparent);
90
+ --layout-sidebar-hover: color-mix(in srgb, var(--layout-card) 12%, transparent);
91
+ }
92
+
93
+ .layout-menu-primary {
94
+ --layout-sidebar-surface: var(--layout-primary);
95
+ --layout-sidebar-text: var(--layout-primary-contrast);
96
+ --layout-sidebar-muted: color-mix(in srgb, var(--layout-primary-contrast) 70%, transparent);
97
+ --layout-sidebar-hover: color-mix(in srgb, var(--layout-primary-contrast) 15%, transparent);
98
+ }
99
+
100
+ /* ---------------------------------------------------------------------------
101
+ * Structure - shared by every mode. Only the offsets and the sidebar's own
102
+ * geometry change from mode to mode.
103
+ * ------------------------------------------------------------------------ */
104
+
105
+ .layout-topbar {
106
+ position: fixed;
107
+ inset-block-start: 0;
108
+ inset-inline-start: 0;
109
+ inset-inline-end: 0;
110
+ z-index: var(--layout-z-topbar);
111
+ display: flex;
112
+ align-items: center;
113
+ gap: var(--layout-gap);
114
+ height: var(--layout-topbar-height);
115
+ padding: 0 1.25rem;
116
+ background: var(--layout-card);
117
+ border-bottom: 1px solid var(--layout-border);
118
+ transition: inset-inline-start var(--layout-transition);
119
+ }
120
+
121
+ .layout-topbar-start,
122
+ .layout-topbar-end {
123
+ display: flex;
124
+ align-items: center;
125
+ gap: 0.5rem;
126
+ }
127
+
128
+ .layout-topbar-end {
129
+ margin-inline-start: auto;
130
+ }
131
+
132
+ .layout-sidebar {
133
+ position: fixed;
134
+ inset-block-start: var(--layout-topbar-height);
135
+ inset-inline-start: 0;
136
+ inset-block-end: 0;
137
+ z-index: var(--layout-z-sidebar);
138
+ display: flex;
139
+ flex-direction: column;
140
+ width: var(--layout-sidebar-width);
141
+ padding: 1rem 0.75rem;
142
+ overflow-x: hidden;
143
+ overflow-y: auto;
144
+ color: var(--layout-sidebar-text);
145
+ background: var(--layout-sidebar-surface);
146
+ border-inline-end: 1px solid var(--layout-border);
147
+ transition: transform var(--layout-transition), width var(--layout-transition);
148
+ }
149
+
150
+ .layout-sidebar-header {
151
+ display: flex;
152
+ align-items: center;
153
+ justify-content: space-between;
154
+ gap: 0.5rem;
155
+ margin-bottom: 0.75rem;
156
+ }
157
+
158
+ .layout-main {
159
+ display: flex;
160
+ flex-direction: column;
161
+ min-height: 100vh;
162
+ padding-block-start: var(--layout-topbar-height);
163
+ margin-inline-start: var(--layout-content-offset);
164
+ transition: margin-inline-start var(--layout-transition);
165
+ }
166
+
167
+ .layout-breadcrumb {
168
+ padding: 0.75rem 1.5rem 0;
169
+ }
170
+
171
+ .layout-content {
172
+ position: relative;
173
+ z-index: var(--layout-z-content);
174
+ flex: 1 1 auto;
175
+ padding: 1.5rem;
176
+ }
177
+
178
+ .layout-footer {
179
+ display: flex;
180
+ align-items: center;
181
+ justify-content: space-between;
182
+ gap: var(--layout-gap);
183
+ padding: 1rem 1.5rem;
184
+ color: var(--layout-text-muted);
185
+ border-top: 1px solid var(--layout-border);
186
+ }
187
+
188
+ .layout-right-panel {
189
+ position: fixed;
190
+ inset-block-start: var(--layout-topbar-height);
191
+ inset-inline-end: 0;
192
+ inset-block-end: 0;
193
+ z-index: var(--layout-z-topbar);
194
+ width: 20rem;
195
+ padding: 1rem;
196
+ overflow-y: auto;
197
+ background: var(--layout-card);
198
+ border-inline-start: 1px solid var(--layout-border);
199
+ }
200
+
201
+ .layout-wrapper:has(> .layout-right-panel) .layout-main {
202
+ margin-inline-end: 20rem;
203
+ }
204
+
205
+ .layout-mask {
206
+ position: fixed;
207
+ inset: 0;
208
+ z-index: var(--layout-z-mask);
209
+ background: rgb(0 0 0 / 0.4);
210
+ border: none;
211
+ animation: layout-mask-in var(--layout-transition);
212
+ }
213
+
214
+ @keyframes layout-mask-in {
215
+ from {
216
+ opacity: 0;
217
+ }
218
+
219
+ to {
220
+ opacity: 1;
221
+ }
222
+ }
223
+
224
+ /* ---------------------------------------------------------------------------
225
+ * Menu - one markup shape, restyled per mode.
226
+ * ------------------------------------------------------------------------ */
227
+
228
+ .layout-menu {
229
+ display: flex;
230
+ flex-direction: column;
231
+ gap: 0.125rem;
232
+ padding: 0;
233
+ margin: 0;
234
+ list-style: none;
235
+ }
236
+
237
+ .layout-menu-section-title {
238
+ padding: 0.75rem 0.75rem 0.25rem;
239
+ font-size: 0.75rem;
240
+ font-weight: 700;
241
+ color: var(--layout-sidebar-muted);
242
+ text-transform: uppercase;
243
+ letter-spacing: 0.04em;
244
+ }
245
+
246
+ .layout-menu-item > .layout-menu-link {
247
+ display: flex;
248
+ align-items: center;
249
+ gap: 0.75rem;
250
+ padding: 0.6rem 0.75rem;
251
+ color: inherit;
252
+ text-decoration: none;
253
+ border-radius: var(--layout-radius);
254
+ cursor: pointer;
255
+ transition: background-color var(--layout-transition);
256
+ }
257
+
258
+ .layout-menu-item > .layout-menu-link:hover {
259
+ background: var(--layout-sidebar-hover);
260
+ }
261
+
262
+ .layout-menu-item > .layout-menu-link:focus-visible {
263
+ outline: none;
264
+ box-shadow: var(--layout-focus-ring);
265
+ }
266
+
267
+ .layout-menu-item[data-active='true'] > .layout-menu-link {
268
+ font-weight: 600;
269
+ color: var(--layout-highlight-text);
270
+ background: var(--layout-highlight);
271
+ }
272
+
273
+ .layout-menu-icon {
274
+ flex: 0 0 auto;
275
+ width: 1.25rem;
276
+ text-align: center;
277
+ }
278
+
279
+ .layout-menu-label {
280
+ flex: 1 1 auto;
281
+ white-space: nowrap;
282
+ }
283
+
284
+ .layout-menu-badge {
285
+ padding: 0.05rem 0.45rem;
286
+ font-size: 0.7rem;
287
+ color: var(--layout-primary-contrast);
288
+ background: var(--layout-primary);
289
+ border-radius: 999px;
290
+ }
291
+
292
+ .layout-submenu {
293
+ display: flex;
294
+ flex-direction: column;
295
+ gap: 0.125rem;
296
+ padding: 0 0 0 1.75rem;
297
+ margin: 0;
298
+ list-style: none;
299
+ }
300
+
301
+ /* ---------------------------------------------------------------------------
302
+ * static - the sidebar is docked and the content is pushed, never covered.
303
+ * ------------------------------------------------------------------------ */
304
+
305
+ .layout-static {
306
+ --layout-content-offset: var(--layout-sidebar-width);
307
+ }
308
+
309
+ .layout-static .layout-topbar {
310
+ inset-inline-start: var(--layout-sidebar-width);
311
+ }
312
+
313
+ .layout-static-inactive {
314
+ --layout-content-offset: 0rem;
315
+ }
316
+
317
+ .layout-static-inactive .layout-topbar {
318
+ inset-inline-start: 0;
319
+ }
320
+
321
+ .layout-static-inactive .layout-sidebar {
322
+ transform: translateX(-100%);
323
+ }
324
+
325
+ /* ---------------------------------------------------------------------------
326
+ * overlay - the sidebar is parked off-canvas and floats over the content.
327
+ * ------------------------------------------------------------------------ */
328
+
329
+ .layout-overlay .layout-sidebar {
330
+ inset-block-start: 0;
331
+ z-index: var(--layout-z-sidebar);
332
+ transform: translateX(-100%);
333
+ box-shadow: 0 0 2rem rgb(0 0 0 / 0.2);
334
+ }
335
+
336
+ .layout-overlay-active .layout-sidebar,
337
+ .layout-mobile-active .layout-sidebar {
338
+ transform: translateX(0);
339
+ }
340
+
341
+ /* ---------------------------------------------------------------------------
342
+ * slim - an icon-only rail; submenus pop out anchored at the rail's width.
343
+ * ------------------------------------------------------------------------ */
344
+
345
+ .layout-slim {
346
+ --layout-content-offset: var(--layout-slim-width);
347
+ }
348
+
349
+ .layout-slim .layout-topbar {
350
+ inset-inline-start: var(--layout-slim-width);
351
+ }
352
+
353
+ .layout-slim .layout-sidebar {
354
+ width: var(--layout-slim-width);
355
+ padding-inline: 0.5rem;
356
+ overflow: visible;
357
+ }
358
+
359
+ .layout-slim .layout-menu-label,
360
+ .layout-slim .layout-menu-badge,
361
+ .layout-slim .layout-sidebar-title {
362
+ display: none;
363
+ }
364
+
365
+ .layout-slim .layout-menu-item > .layout-menu-link {
366
+ justify-content: center;
367
+ width: 3.25rem;
368
+ height: 3.25rem;
369
+ margin-inline: auto;
370
+ border-radius: 50%;
371
+ }
372
+
373
+ .layout-slim .layout-submenu,
374
+ .layout-slim-plus .layout-submenu {
375
+ position: absolute;
376
+ inset-inline-start: 100%;
377
+ z-index: var(--layout-z-sidebar);
378
+ display: none;
379
+ min-width: 14rem;
380
+ padding: 0.5rem;
381
+ background: var(--layout-overlay);
382
+ border: 1px solid var(--layout-border);
383
+ border-radius: var(--layout-radius);
384
+ box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 0.15);
385
+ }
386
+
387
+ .layout-slim .layout-menu-item,
388
+ .layout-slim-plus .layout-menu-item {
389
+ position: relative;
390
+ }
391
+
392
+ .layout-slim .layout-menu-item:hover > .layout-submenu,
393
+ .layout-slim-plus .layout-menu-item:hover > .layout-submenu {
394
+ display: flex;
395
+ }
396
+
397
+ .layout-slim .layout-submenu .layout-menu-label,
398
+ .layout-slim-plus .layout-submenu .layout-menu-label {
399
+ display: block;
400
+ }
401
+
402
+ /* ---------------------------------------------------------------------------
403
+ * slim-plus - the same rail, wider, with the label stacked under the icon.
404
+ * ------------------------------------------------------------------------ */
405
+
406
+ .layout-slim-plus {
407
+ --layout-content-offset: var(--layout-slim-plus-width);
408
+ }
409
+
410
+ .layout-slim-plus .layout-topbar {
411
+ inset-inline-start: var(--layout-slim-plus-width);
412
+ }
413
+
414
+ .layout-slim-plus .layout-sidebar {
415
+ width: var(--layout-slim-plus-width);
416
+ padding-inline: 0.35rem;
417
+ overflow: visible;
418
+ }
419
+
420
+ .layout-slim-plus .layout-menu-item > .layout-menu-link {
421
+ flex-direction: column;
422
+ gap: 0.25rem;
423
+ padding: 0.6rem 0.25rem;
424
+ text-align: center;
425
+ }
426
+
427
+ .layout-slim-plus .layout-menu-label {
428
+ font-size: 0.7rem;
429
+ line-height: 1;
430
+ }
431
+
432
+ .layout-slim-plus .layout-menu-badge,
433
+ .layout-slim-plus .layout-sidebar-title {
434
+ display: none;
435
+ }
436
+
437
+ /* ---------------------------------------------------------------------------
438
+ * compact - the icon rail again, with square buttons, and a shifted topbar.
439
+ * ------------------------------------------------------------------------ */
440
+
441
+ .layout-compact {
442
+ --layout-content-offset: var(--layout-compact-width);
443
+ }
444
+
445
+ .layout-compact .layout-topbar {
446
+ inset-inline-start: var(--layout-compact-width);
447
+ }
448
+
449
+ .layout-compact .layout-sidebar {
450
+ width: var(--layout-compact-width);
451
+ padding-inline: 0.5rem;
452
+ overflow: visible;
453
+ }
454
+
455
+ .layout-compact .layout-menu-label,
456
+ .layout-compact .layout-menu-badge,
457
+ .layout-compact .layout-sidebar-title {
458
+ display: none;
459
+ }
460
+
461
+ .layout-compact .layout-menu-item > .layout-menu-link {
462
+ justify-content: center;
463
+ width: 3rem;
464
+ height: 3rem;
465
+ margin-inline: auto;
466
+ border-radius: var(--layout-radius);
467
+ }
468
+
469
+ .layout-compact .layout-menu-item {
470
+ position: relative;
471
+ }
472
+
473
+ .layout-compact .layout-submenu {
474
+ position: absolute;
475
+ inset-inline-start: 100%;
476
+ display: none;
477
+ min-width: 14rem;
478
+ padding: 0.5rem;
479
+ background: var(--layout-overlay);
480
+ border: 1px solid var(--layout-border);
481
+ border-radius: var(--layout-radius);
482
+ }
483
+
484
+ .layout-compact .layout-menu-item:hover > .layout-submenu {
485
+ display: flex;
486
+ }
487
+
488
+ .layout-compact .layout-submenu .layout-menu-label {
489
+ display: block;
490
+ }
491
+
492
+ /* ---------------------------------------------------------------------------
493
+ * horizontal - the sidebar stops being a sidebar and flows into the topbar.
494
+ * ------------------------------------------------------------------------ */
495
+
496
+ .layout-horizontal {
497
+ --layout-content-offset: 0rem;
498
+ }
499
+
500
+ .layout-horizontal .layout-sidebar {
501
+ position: static;
502
+ flex: 1 1 auto;
503
+ flex-direction: row;
504
+ align-items: center;
505
+ width: auto;
506
+ padding: 0;
507
+ overflow: visible;
508
+ background: transparent;
509
+ border: none;
510
+ }
511
+
512
+ .layout-horizontal .layout-sidebar-header {
513
+ display: none;
514
+ }
515
+
516
+ .layout-horizontal .layout-menu {
517
+ flex-direction: row;
518
+ flex-wrap: nowrap;
519
+ align-items: center;
520
+ gap: 0.25rem;
521
+ }
522
+
523
+ .layout-horizontal .layout-menu-item {
524
+ position: relative;
525
+ }
526
+
527
+ .layout-horizontal .layout-submenu {
528
+ position: absolute;
529
+ inset-block-start: 100%;
530
+ inset-inline-start: 0;
531
+ z-index: var(--layout-z-sidebar);
532
+ display: none;
533
+ min-width: 14rem;
534
+ padding: 0.5rem;
535
+ background: var(--layout-overlay);
536
+ border: 1px solid var(--layout-border);
537
+ border-radius: var(--layout-radius);
538
+ box-shadow: 0 0.5rem 1.5rem rgb(0 0 0 / 0.15);
539
+ }
540
+
541
+ .layout-horizontal .layout-menu-item:hover > .layout-submenu {
542
+ display: flex;
543
+ }
544
+
545
+ /* ---------------------------------------------------------------------------
546
+ * reveal - a full panel parked off-left behind a strip of icons. Hovering
547
+ * slides the whole panel in over the content; pinning pushes the content out.
548
+ * ------------------------------------------------------------------------ */
549
+
550
+ .layout-reveal {
551
+ --layout-content-offset: var(--layout-reveal-strip-width);
552
+ }
553
+
554
+ .layout-reveal .layout-topbar {
555
+ inset-inline-start: var(--layout-reveal-strip-width);
556
+ }
557
+
558
+ .layout-reveal .layout-sidebar {
559
+ width: var(--layout-sidebar-width);
560
+ transform: translateX(calc(var(--layout-reveal-strip-width) - var(--layout-sidebar-width)));
561
+ }
562
+
563
+ .layout-reveal .layout-menu-item > .layout-menu-link {
564
+ justify-content: flex-end;
565
+ flex-direction: row-reverse;
566
+ }
567
+
568
+ .layout-reveal.layout-sidebar-active .layout-sidebar {
569
+ transform: translateX(0);
570
+ box-shadow: 0 0 2rem rgb(0 0 0 / 0.2);
571
+ }
572
+
573
+ .layout-reveal.layout-sidebar-anchored {
574
+ --layout-content-offset: var(--layout-sidebar-width);
575
+ }
576
+
577
+ .layout-reveal.layout-sidebar-anchored .layout-topbar {
578
+ inset-inline-start: var(--layout-sidebar-width);
579
+ }
580
+
581
+ .layout-reveal.layout-sidebar-anchored .layout-sidebar {
582
+ box-shadow: none;
583
+ }
584
+
585
+ /* ---------------------------------------------------------------------------
586
+ * drawer - a collapsed rail that grows its width on hover. Reveal slides a
587
+ * fixed-width panel; drawer animates the width itself.
588
+ * ------------------------------------------------------------------------ */
589
+
590
+ .layout-drawer {
591
+ --layout-content-offset: var(--layout-drawer-collapsed-width);
592
+ }
593
+
594
+ .layout-drawer .layout-topbar {
595
+ inset-inline-start: var(--layout-drawer-collapsed-width);
596
+ }
597
+
598
+ .layout-drawer .layout-sidebar {
599
+ width: var(--layout-drawer-collapsed-width);
600
+ }
601
+
602
+ .layout-drawer.layout-sidebar-active .layout-sidebar {
603
+ width: var(--layout-sidebar-width);
604
+ box-shadow: 0 0 2rem rgb(0 0 0 / 0.2);
605
+ }
606
+
607
+ .layout-drawer.layout-sidebar-anchored {
608
+ --layout-content-offset: var(--layout-sidebar-width);
609
+ }
610
+
611
+ .layout-drawer.layout-sidebar-anchored .layout-topbar {
612
+ inset-inline-start: var(--layout-sidebar-width);
613
+ }
614
+
615
+ .layout-drawer.layout-sidebar-anchored .layout-sidebar {
616
+ box-shadow: none;
617
+ }
618
+
619
+ /* ---------------------------------------------------------------------------
620
+ * mobile - not a mode anyone picks. Below the breakpoint every mode is forced
621
+ * off-canvas, the mode picker is disabled, and the mask is the way back out.
622
+ * ------------------------------------------------------------------------ */
623
+
624
+ @media (max-width: 991px) {
625
+ .layout-wrapper {
626
+ --layout-content-offset: 0rem;
627
+ }
628
+
629
+ .layout-wrapper .layout-topbar {
630
+ inset-inline-start: 0;
631
+ }
632
+
633
+ .layout-wrapper .layout-sidebar {
634
+ inset-block-start: 0;
635
+ width: var(--layout-sidebar-width);
636
+ transform: translateX(-100%);
637
+ box-shadow: 0 0 2rem rgb(0 0 0 / 0.2);
638
+ }
639
+
640
+ .layout-wrapper .layout-menu-label,
641
+ .layout-wrapper .layout-sidebar-title {
642
+ display: block;
643
+ }
644
+
645
+ .layout-wrapper .layout-right-panel,
646
+ .layout-wrapper:has(> .layout-right-panel) .layout-main {
647
+ position: static;
648
+ width: auto;
649
+ margin-inline-end: 0;
650
+ }
651
+ }
652
+
653
+ /* ---------------------------------------------------------------------------
654
+ * Page furniture the shell itself owns.
655
+ * ------------------------------------------------------------------------ */
656
+
657
+ .layout-page-header {
658
+ display: flex;
659
+ align-items: flex-start;
660
+ justify-content: space-between;
661
+ gap: var(--layout-gap);
662
+ margin-bottom: 1.25rem;
663
+ }
664
+
665
+ .layout-page-header-title {
666
+ margin: 0;
667
+ font-size: 1.5rem;
668
+ font-weight: 600;
669
+ }
670
+
671
+ .layout-page-header-subtitle {
672
+ margin: 0.25rem 0 0;
673
+ color: var(--layout-text-muted);
674
+ }
675
+
676
+ .layout-page-header-actions {
677
+ display: flex;
678
+ gap: 0.5rem;
679
+ }
680
+
681
+ .layout-logo {
682
+ display: flex;
683
+ gap: 0.5rem;
684
+ align-items: center;
685
+ font-size: 1.15rem;
686
+ font-weight: 700;
687
+ color: inherit;
688
+ text-decoration: none;
689
+ }
690
+
691
+ .layout-logo-mark {
692
+ display: grid;
693
+ place-items: center;
694
+ width: 2rem;
695
+ height: 2rem;
696
+ color: var(--layout-primary-contrast);
697
+ background: var(--layout-primary);
698
+ border-radius: var(--layout-radius);
699
+ }
700
+
701
+ .layout-user-menu {
702
+ display: flex;
703
+ align-items: center;
704
+ gap: 0.5rem;
705
+ }
706
+
707
+ .layout-user-menu-name {
708
+ display: flex;
709
+ flex-direction: column;
710
+ line-height: 1.15;
711
+ }
712
+
713
+ .layout-user-menu-role {
714
+ font-size: 0.75rem;
715
+ color: var(--layout-text-muted);
716
+ }
717
+
718
+ /* ---------------------------------------------------------------------------
719
+ * Configurator - a floating trigger plus a panel, present in both shells.
720
+ * ------------------------------------------------------------------------ */
721
+
722
+ .layout-config-button {
723
+ position: fixed;
724
+ inset-inline-end: 0;
725
+ inset-block-start: 50%;
726
+ z-index: var(--layout-z-config);
727
+ transform: translateY(-50%);
728
+ }
729
+
730
+ .layout-config-panel {
731
+ display: flex;
732
+ flex-direction: column;
733
+ gap: 1.25rem;
734
+ }
735
+
736
+ .layout-config-section-title {
737
+ margin: 0 0 0.5rem;
738
+ font-size: 0.8rem;
739
+ font-weight: 700;
740
+ text-transform: uppercase;
741
+ letter-spacing: 0.04em;
742
+ }
743
+
744
+ .layout-config-options {
745
+ display: flex;
746
+ flex-wrap: wrap;
747
+ gap: 0.5rem;
748
+ }
749
+
750
+ .layout-config-option {
751
+ padding: 0.35rem 0.75rem;
752
+ color: var(--layout-text);
753
+ cursor: pointer;
754
+ background: var(--layout-card);
755
+ border: 1px solid var(--layout-border);
756
+ border-radius: var(--layout-radius);
757
+ }
758
+
759
+ .layout-config-option:hover:not(:disabled) {
760
+ background: var(--layout-hover);
761
+ }
762
+
763
+ .layout-config-option[aria-pressed='true'] {
764
+ color: var(--layout-primary-contrast);
765
+ background: var(--layout-primary);
766
+ border-color: var(--layout-primary);
767
+ }
768
+
769
+ .layout-config-option:disabled {
770
+ cursor: not-allowed;
771
+ opacity: 0.5;
772
+ }
773
+
774
+ .layout-config-note {
775
+ margin: 0.5rem 0 0;
776
+ font-size: 0.8rem;
777
+ color: var(--layout-text-muted);
778
+ }
779
+
780
+ /* ---------------------------------------------------------------------------
781
+ * Full-page shell - no chrome, an optional branding aside, and the same
782
+ * configurator. Login, register, error, access-denied, not-found and landing
783
+ * all use this rather than a chrome-less variant of the app shell.
784
+ * ------------------------------------------------------------------------ */
785
+
786
+ .layout-full-page {
787
+ display: flex;
788
+ align-items: stretch;
789
+ min-height: 100vh;
790
+ }
791
+
792
+ .layout-full-page-aside {
793
+ display: flex;
794
+ flex: 0 0 40%;
795
+ flex-direction: column;
796
+ justify-content: center;
797
+ gap: 1rem;
798
+ padding: 3rem;
799
+ color: var(--layout-primary-contrast);
800
+ background: var(--layout-primary);
801
+ }
802
+
803
+ .layout-full-page-content {
804
+ display: flex;
805
+ flex: 1 1 auto;
806
+ flex-direction: column;
807
+ justify-content: center;
808
+ gap: 1rem;
809
+ padding: 3rem;
810
+ }
811
+
812
+ @media (max-width: 991px) {
813
+ .layout-full-page {
814
+ flex-direction: column;
815
+ }
816
+
817
+ .layout-full-page-aside {
818
+ flex: 0 0 auto;
819
+ padding: 2rem;
820
+ }
821
+ }