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