@cratis/scene.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 +55 -0
- package/.storybook/preview.tsx +36 -0
- package/CratisComponents.stories.tsx +235 -0
- package/README.md +192 -0
- package/bindings/ArcRuntimeBoundary.tsx +36 -0
- package/bindings/BindingKind.ts +18 -0
- package/bindings/BoundConstructor.ts +21 -0
- package/bindings/ElementBinding.ts +19 -0
- package/bindings/MissingBinding.tsx +34 -0
- package/bindings/Placeholder.tsx +42 -0
- package/bindings/bindingRegistry.ts +105 -0
- package/bindings/for_bindingRegistry/when_a_command_is_registered.ts +30 -0
- package/bindings/for_bindingRegistry/when_a_query_is_not_registered.ts +17 -0
- package/bindings/for_bindingRegistry/when_a_query_is_registered.ts +30 -0
- package/bindings/for_bindingRegistry/when_bindings_are_cleared.ts +29 -0
- package/bindings/for_resolveElementBinding/when_resolving_a_command_binding.ts +34 -0
- package/bindings/for_resolveElementBinding/when_resolving_a_query_binding.ts +45 -0
- package/bindings/index.ts +11 -0
- package/bindings/resolveElementBinding.ts +33 -0
- package/common/SceneDropdown.tsx +31 -0
- package/common/SceneErrorBoundary.tsx +17 -0
- package/common/SceneIcon.tsx +18 -0
- package/common/SceneTooltip.tsx +28 -0
- package/common/index.ts +7 -0
- package/cratisComponents.ts +91 -0
- package/cratisComponentsPackage.ts +101 -0
- package/data/SceneDataTable.tsx +41 -0
- package/data/SceneObservableDataTable.tsx +41 -0
- package/data/for_SceneDataTable/when_the_query_binding_is_missing.tsx +48 -0
- package/data/index.ts +5 -0
- package/dialogs/SceneBusyIndicatorDialog.tsx +29 -0
- package/dialogs/SceneCommandDialog.tsx +42 -0
- package/dialogs/SceneConfirmationDialog.tsx +23 -0
- package/dialogs/SceneDialog.tsx +41 -0
- package/dialogs/SceneStepperCommandDialog.tsx +50 -0
- package/dialogs/index.ts +8 -0
- package/dist/cjs/bindings/ArcRuntimeBoundary.js +37 -0
- package/dist/cjs/bindings/ArcRuntimeBoundary.js.map +1 -0
- package/dist/cjs/bindings/BindingKind.js +19 -0
- package/dist/cjs/bindings/BindingKind.js.map +1 -0
- package/dist/cjs/bindings/MissingBinding.js +24 -0
- package/dist/cjs/bindings/MissingBinding.js.map +1 -0
- package/dist/cjs/bindings/Placeholder.js +38 -0
- package/dist/cjs/bindings/Placeholder.js.map +1 -0
- package/dist/cjs/bindings/bindingRegistry.js +101 -0
- package/dist/cjs/bindings/bindingRegistry.js.map +1 -0
- package/dist/cjs/bindings/resolveElementBinding.js +34 -0
- package/dist/cjs/bindings/resolveElementBinding.js.map +1 -0
- package/dist/cjs/common/SceneDropdown.js +30 -0
- package/dist/cjs/common/SceneDropdown.js.map +1 -0
- package/dist/cjs/common/SceneErrorBoundary.js +20 -0
- package/dist/cjs/common/SceneErrorBoundary.js.map +1 -0
- package/dist/cjs/common/SceneIcon.js +22 -0
- package/dist/cjs/common/SceneIcon.js.map +1 -0
- package/dist/cjs/common/SceneTooltip.js +29 -0
- package/dist/cjs/common/SceneTooltip.js.map +1 -0
- package/dist/cjs/cratisComponents.js +106 -0
- package/dist/cjs/cratisComponents.js.map +1 -0
- package/dist/cjs/cratisComponentsPackage.js +105 -0
- package/dist/cjs/cratisComponentsPackage.js.map +1 -0
- package/dist/cjs/data/SceneDataTable.js +46 -0
- package/dist/cjs/data/SceneDataTable.js.map +1 -0
- package/dist/cjs/data/SceneObservableDataTable.js +44 -0
- package/dist/cjs/data/SceneObservableDataTable.js.map +1 -0
- package/dist/cjs/dialogs/SceneBusyIndicatorDialog.js +30 -0
- package/dist/cjs/dialogs/SceneBusyIndicatorDialog.js.map +1 -0
- package/dist/cjs/dialogs/SceneCommandDialog.js +47 -0
- package/dist/cjs/dialogs/SceneCommandDialog.js.map +1 -0
- package/dist/cjs/dialogs/SceneConfirmationDialog.js +25 -0
- package/dist/cjs/dialogs/SceneConfirmationDialog.js.map +1 -0
- package/dist/cjs/dialogs/SceneDialog.js +41 -0
- package/dist/cjs/dialogs/SceneDialog.js.map +1 -0
- package/dist/cjs/dialogs/SceneStepperCommandDialog.js +54 -0
- package/dist/cjs/dialogs/SceneStepperCommandDialog.js.map +1 -0
- package/dist/cjs/editors/SceneFilterPanel.js +57 -0
- package/dist/cjs/editors/SceneFilterPanel.js.map +1 -0
- package/dist/cjs/editors/SceneObjectContentEditor.js +37 -0
- package/dist/cjs/editors/SceneObjectContentEditor.js.map +1 -0
- package/dist/cjs/editors/SceneObjectNavigationalBar.js +34 -0
- package/dist/cjs/editors/SceneObjectNavigationalBar.js.map +1 -0
- package/dist/cjs/editors/SceneSchemaEditor.js +33 -0
- package/dist/cjs/editors/SceneSchemaEditor.js.map +1 -0
- package/dist/cjs/editors/SceneTimeMachine.js +32 -0
- package/dist/cjs/editors/SceneTimeMachine.js.map +1 -0
- package/dist/cjs/editors/filterDefinitions.js +59 -0
- package/dist/cjs/editors/filterDefinitions.js.map +1 -0
- package/dist/cjs/editors/timeMachineVersions.js +44 -0
- package/dist/cjs/editors/timeMachineVersions.js.map +1 -0
- package/dist/cjs/editors/useEditableCopy.js +39 -0
- package/dist/cjs/editors/useEditableCopy.js.map +1 -0
- package/dist/cjs/forms/SceneCommandForm.js +46 -0
- package/dist/cjs/forms/SceneCommandForm.js.map +1 -0
- package/dist/cjs/forms/fields/CommandFormField.js +31 -0
- package/dist/cjs/forms/fields/CommandFormField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneCalendarField.js +41 -0
- package/dist/cjs/forms/fields/SceneCalendarField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneCheckboxField.js +28 -0
- package/dist/cjs/forms/fields/SceneCheckboxField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneChipsField.js +33 -0
- package/dist/cjs/forms/fields/SceneChipsField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneColorPickerField.js +30 -0
- package/dist/cjs/forms/fields/SceneColorPickerField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneDropdownField.js +35 -0
- package/dist/cjs/forms/fields/SceneDropdownField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneInputTextField.js +45 -0
- package/dist/cjs/forms/fields/SceneInputTextField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneMultiSelectField.js +40 -0
- package/dist/cjs/forms/fields/SceneMultiSelectField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneNumberField.js +32 -0
- package/dist/cjs/forms/fields/SceneNumberField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneRadioButtonField.js +35 -0
- package/dist/cjs/forms/fields/SceneRadioButtonField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneRadioGroupField.js +36 -0
- package/dist/cjs/forms/fields/SceneRadioGroupField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneSliderField.js +31 -0
- package/dist/cjs/forms/fields/SceneSliderField.js.map +1 -0
- package/dist/cjs/forms/fields/SceneTextAreaField.js +31 -0
- package/dist/cjs/forms/fields/SceneTextAreaField.js.map +1 -0
- package/dist/cjs/forms/fields/resolveFieldBinding.js +27 -0
- package/dist/cjs/forms/fields/resolveFieldBinding.js.map +1 -0
- package/dist/cjs/index.js +123 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/pages/SceneDataPage.js +45 -0
- package/dist/cjs/pages/SceneDataPage.js.map +1 -0
- package/dist/cjs/pages/SceneFormElement.js +26 -0
- package/dist/cjs/pages/SceneFormElement.js.map +1 -0
- package/dist/cjs/pages/ScenePage.js +28 -0
- package/dist/cjs/pages/ScenePage.js.map +1 -0
- package/dist/cjs/properties.js +104 -0
- package/dist/cjs/properties.js.map +1 -0
- package/dist/cjs/toolbar/SceneToolbar.js +27 -0
- package/dist/cjs/toolbar/SceneToolbar.js.map +1 -0
- package/dist/cjs/toolbar/SceneToolbarButton.js +32 -0
- package/dist/cjs/toolbar/SceneToolbarButton.js.map +1 -0
- package/dist/cjs/toolbar/SceneToolbarGroup.js +27 -0
- package/dist/cjs/toolbar/SceneToolbarGroup.js.map +1 -0
- package/dist/cjs/toolbar/SceneToolbarSeparator.js +25 -0
- package/dist/cjs/toolbar/SceneToolbarSeparator.js.map +1 -0
- package/dist/esm/CratisComponents.stories.d.ts +29 -0
- package/dist/esm/CratisComponents.stories.d.ts.map +1 -0
- package/dist/esm/CratisComponents.stories.js +187 -0
- package/dist/esm/CratisComponents.stories.js.map +1 -0
- package/dist/esm/bindings/ArcRuntimeBoundary.d.ts +6 -0
- package/dist/esm/bindings/ArcRuntimeBoundary.d.ts.map +1 -0
- package/dist/esm/bindings/ArcRuntimeBoundary.js +35 -0
- package/dist/esm/bindings/ArcRuntimeBoundary.js.map +1 -0
- package/dist/esm/bindings/BindingKind.d.ts +5 -0
- package/dist/esm/bindings/BindingKind.d.ts.map +1 -0
- package/dist/esm/bindings/BindingKind.js +17 -0
- package/dist/esm/bindings/BindingKind.js.map +1 -0
- package/dist/esm/bindings/BoundConstructor.d.ts +2 -0
- package/dist/esm/bindings/BoundConstructor.d.ts.map +1 -0
- package/dist/esm/bindings/BoundConstructor.js +2 -0
- package/dist/esm/bindings/BoundConstructor.js.map +1 -0
- package/dist/esm/bindings/ElementBinding.d.ts +6 -0
- package/dist/esm/bindings/ElementBinding.d.ts.map +1 -0
- package/dist/esm/bindings/ElementBinding.js +2 -0
- package/dist/esm/bindings/ElementBinding.js.map +1 -0
- package/dist/esm/bindings/MissingBinding.d.ts +9 -0
- package/dist/esm/bindings/MissingBinding.d.ts.map +1 -0
- package/dist/esm/bindings/MissingBinding.js +22 -0
- package/dist/esm/bindings/MissingBinding.js.map +1 -0
- package/dist/esm/bindings/Placeholder.d.ts +7 -0
- package/dist/esm/bindings/Placeholder.d.ts.map +1 -0
- package/dist/esm/bindings/Placeholder.js +36 -0
- package/dist/esm/bindings/Placeholder.js.map +1 -0
- package/dist/esm/bindings/bindingRegistry.d.ts +11 -0
- package/dist/esm/bindings/bindingRegistry.d.ts.map +1 -0
- package/dist/esm/bindings/bindingRegistry.js +91 -0
- package/dist/esm/bindings/bindingRegistry.js.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.js +25 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_command_is_registered.js.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.js +12 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_not_registered.js.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.js +23 -0
- package/dist/esm/bindings/for_bindingRegistry/when_a_query_is_registered.js.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.d.ts +2 -0
- package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.d.ts.map +1 -0
- package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.js +18 -0
- package/dist/esm/bindings/for_bindingRegistry/when_bindings_are_cleared.js.map +1 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.d.ts +2 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.d.ts.map +1 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.js +25 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_command_binding.js.map +1 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.d.ts +2 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.d.ts.map +1 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.js +33 -0
- package/dist/esm/bindings/for_resolveElementBinding/when_resolving_a_query_binding.js.map +1 -0
- package/dist/esm/bindings/index.d.ts +9 -0
- package/dist/esm/bindings/index.d.ts.map +1 -0
- package/dist/esm/bindings/index.js +9 -0
- package/dist/esm/bindings/index.js.map +1 -0
- package/dist/esm/bindings/resolveElementBinding.d.ts +5 -0
- package/dist/esm/bindings/resolveElementBinding.d.ts.map +1 -0
- package/dist/esm/bindings/resolveElementBinding.js +32 -0
- package/dist/esm/bindings/resolveElementBinding.js.map +1 -0
- package/dist/esm/common/SceneDropdown.d.ts +3 -0
- package/dist/esm/common/SceneDropdown.d.ts.map +1 -0
- package/dist/esm/common/SceneDropdown.js +28 -0
- package/dist/esm/common/SceneDropdown.js.map +1 -0
- package/dist/esm/common/SceneErrorBoundary.d.ts +3 -0
- package/dist/esm/common/SceneErrorBoundary.d.ts.map +1 -0
- package/dist/esm/common/SceneErrorBoundary.js +18 -0
- package/dist/esm/common/SceneErrorBoundary.js.map +1 -0
- package/dist/esm/common/SceneIcon.d.ts +3 -0
- package/dist/esm/common/SceneIcon.d.ts.map +1 -0
- package/dist/esm/common/SceneIcon.js +20 -0
- package/dist/esm/common/SceneIcon.js.map +1 -0
- package/dist/esm/common/SceneTooltip.d.ts +3 -0
- package/dist/esm/common/SceneTooltip.d.ts.map +1 -0
- package/dist/esm/common/SceneTooltip.js +27 -0
- package/dist/esm/common/SceneTooltip.js.map +1 -0
- package/dist/esm/common/index.d.ts +5 -0
- package/dist/esm/common/index.d.ts.map +1 -0
- package/dist/esm/common/index.js +5 -0
- package/dist/esm/common/index.js.map +1 -0
- package/dist/esm/cratisComponents.d.ts +4 -0
- package/dist/esm/cratisComponents.d.ts.map +1 -0
- package/dist/esm/cratisComponents.js +103 -0
- package/dist/esm/cratisComponents.js.map +1 -0
- package/dist/esm/cratisComponentsPackage.d.ts +5 -0
- package/dist/esm/cratisComponentsPackage.d.ts.map +1 -0
- package/dist/esm/cratisComponentsPackage.js +102 -0
- package/dist/esm/cratisComponentsPackage.js.map +1 -0
- package/dist/esm/data/SceneDataTable.d.ts +3 -0
- package/dist/esm/data/SceneDataTable.d.ts.map +1 -0
- package/dist/esm/data/SceneDataTable.js +44 -0
- package/dist/esm/data/SceneDataTable.js.map +1 -0
- package/dist/esm/data/SceneObservableDataTable.d.ts +3 -0
- package/dist/esm/data/SceneObservableDataTable.d.ts.map +1 -0
- package/dist/esm/data/SceneObservableDataTable.js +42 -0
- package/dist/esm/data/SceneObservableDataTable.js.map +1 -0
- package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.d.ts +2 -0
- package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.d.ts.map +1 -0
- package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.js +36 -0
- package/dist/esm/data/for_SceneDataTable/when_the_query_binding_is_missing.js.map +1 -0
- package/dist/esm/data/index.d.ts +3 -0
- package/dist/esm/data/index.d.ts.map +1 -0
- package/dist/esm/data/index.js +3 -0
- package/dist/esm/data/index.js.map +1 -0
- package/dist/esm/dialogs/SceneBusyIndicatorDialog.d.ts +3 -0
- package/dist/esm/dialogs/SceneBusyIndicatorDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneBusyIndicatorDialog.js +28 -0
- package/dist/esm/dialogs/SceneBusyIndicatorDialog.js.map +1 -0
- package/dist/esm/dialogs/SceneCommandDialog.d.ts +3 -0
- package/dist/esm/dialogs/SceneCommandDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneCommandDialog.js +45 -0
- package/dist/esm/dialogs/SceneCommandDialog.js.map +1 -0
- package/dist/esm/dialogs/SceneConfirmationDialog.d.ts +2 -0
- package/dist/esm/dialogs/SceneConfirmationDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneConfirmationDialog.js +23 -0
- package/dist/esm/dialogs/SceneConfirmationDialog.js.map +1 -0
- package/dist/esm/dialogs/SceneDialog.d.ts +3 -0
- package/dist/esm/dialogs/SceneDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneDialog.js +39 -0
- package/dist/esm/dialogs/SceneDialog.js.map +1 -0
- package/dist/esm/dialogs/SceneStepperCommandDialog.d.ts +3 -0
- package/dist/esm/dialogs/SceneStepperCommandDialog.d.ts.map +1 -0
- package/dist/esm/dialogs/SceneStepperCommandDialog.js +52 -0
- package/dist/esm/dialogs/SceneStepperCommandDialog.js.map +1 -0
- package/dist/esm/dialogs/index.d.ts +6 -0
- package/dist/esm/dialogs/index.d.ts.map +1 -0
- package/dist/esm/dialogs/index.js +6 -0
- package/dist/esm/dialogs/index.js.map +1 -0
- package/dist/esm/editors/SceneFilterPanel.d.ts +3 -0
- package/dist/esm/editors/SceneFilterPanel.d.ts.map +1 -0
- package/dist/esm/editors/SceneFilterPanel.js +55 -0
- package/dist/esm/editors/SceneFilterPanel.js.map +1 -0
- package/dist/esm/editors/SceneObjectContentEditor.d.ts +3 -0
- package/dist/esm/editors/SceneObjectContentEditor.d.ts.map +1 -0
- package/dist/esm/editors/SceneObjectContentEditor.js +35 -0
- package/dist/esm/editors/SceneObjectContentEditor.js.map +1 -0
- package/dist/esm/editors/SceneObjectNavigationalBar.d.ts +3 -0
- package/dist/esm/editors/SceneObjectNavigationalBar.d.ts.map +1 -0
- package/dist/esm/editors/SceneObjectNavigationalBar.js +32 -0
- package/dist/esm/editors/SceneObjectNavigationalBar.js.map +1 -0
- package/dist/esm/editors/SceneSchemaEditor.d.ts +3 -0
- package/dist/esm/editors/SceneSchemaEditor.d.ts.map +1 -0
- package/dist/esm/editors/SceneSchemaEditor.js +31 -0
- package/dist/esm/editors/SceneSchemaEditor.js.map +1 -0
- package/dist/esm/editors/SceneTimeMachine.d.ts +3 -0
- package/dist/esm/editors/SceneTimeMachine.d.ts.map +1 -0
- package/dist/esm/editors/SceneTimeMachine.js +30 -0
- package/dist/esm/editors/SceneTimeMachine.js.map +1 -0
- package/dist/esm/editors/filterDefinitions.d.ts +3 -0
- package/dist/esm/editors/filterDefinitions.d.ts.map +1 -0
- package/dist/esm/editors/filterDefinitions.js +57 -0
- package/dist/esm/editors/filterDefinitions.js.map +1 -0
- package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts +2 -0
- package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.d.ts.map +1 -0
- package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js +15 -0
- package/dist/esm/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.js.map +1 -0
- package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.d.ts +2 -0
- package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.d.ts.map +1 -0
- package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.js +39 -0
- package/dist/esm/editors/for_filterDefinitions/when_reading_filter_definitions.js.map +1 -0
- package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.d.ts +2 -0
- package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.d.ts.map +1 -0
- package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.js +32 -0
- package/dist/esm/editors/for_timeMachineVersions/when_reading_versions.js.map +1 -0
- package/dist/esm/editors/index.d.ts +9 -0
- package/dist/esm/editors/index.d.ts.map +1 -0
- package/dist/esm/editors/index.js +9 -0
- package/dist/esm/editors/index.js.map +1 -0
- package/dist/esm/editors/timeMachineVersions.d.ts +3 -0
- package/dist/esm/editors/timeMachineVersions.d.ts.map +1 -0
- package/dist/esm/editors/timeMachineVersions.js +42 -0
- package/dist/esm/editors/timeMachineVersions.js.map +1 -0
- package/dist/esm/editors/useEditableCopy.d.ts +2 -0
- package/dist/esm/editors/useEditableCopy.d.ts.map +1 -0
- package/dist/esm/editors/useEditableCopy.js +37 -0
- package/dist/esm/editors/useEditableCopy.js.map +1 -0
- package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.d.ts +2 -0
- package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.d.ts.map +1 -0
- package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.js +25 -0
- package/dist/esm/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.js.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.js +34 -0
- package/dist/esm/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.js.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.js +49 -0
- package/dist/esm/for_cratisComponentsPackage/when_resolving_its_dependencies.js.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.d.ts +2 -0
- package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.d.ts.map +1 -0
- package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.js +27 -0
- package/dist/esm/for_cratisComponentsPackage/when_validating_the_bundle.js.map +1 -0
- package/dist/esm/for_properties/when_a_property_has_the_wrong_type.d.ts +2 -0
- package/dist/esm/for_properties/when_a_property_has_the_wrong_type.d.ts.map +1 -0
- package/dist/esm/for_properties/when_a_property_has_the_wrong_type.js +24 -0
- package/dist/esm/for_properties/when_a_property_has_the_wrong_type.js.map +1 -0
- package/dist/esm/for_properties/when_a_property_is_missing.d.ts +2 -0
- package/dist/esm/for_properties/when_a_property_is_missing.d.ts.map +1 -0
- package/dist/esm/for_properties/when_a_property_is_missing.js +13 -0
- package/dist/esm/for_properties/when_a_property_is_missing.js.map +1 -0
- package/dist/esm/for_properties/when_a_property_is_present.d.ts +2 -0
- package/dist/esm/for_properties/when_a_property_is_present.d.ts.map +1 -0
- package/dist/esm/for_properties/when_a_property_is_present.js +21 -0
- package/dist/esm/for_properties/when_a_property_is_present.js.map +1 -0
- package/dist/esm/forms/SceneCommandForm.d.ts +3 -0
- package/dist/esm/forms/SceneCommandForm.d.ts.map +1 -0
- package/dist/esm/forms/SceneCommandForm.js +44 -0
- package/dist/esm/forms/SceneCommandForm.js.map +1 -0
- package/dist/esm/forms/fields/CommandFormField.d.ts +9 -0
- package/dist/esm/forms/fields/CommandFormField.d.ts.map +1 -0
- package/dist/esm/forms/fields/CommandFormField.js +29 -0
- package/dist/esm/forms/fields/CommandFormField.js.map +1 -0
- package/dist/esm/forms/fields/FieldBinding.d.ts +6 -0
- package/dist/esm/forms/fields/FieldBinding.d.ts.map +1 -0
- package/dist/esm/forms/fields/FieldBinding.js +2 -0
- package/dist/esm/forms/fields/FieldBinding.js.map +1 -0
- package/dist/esm/forms/fields/SceneCalendarField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneCalendarField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneCalendarField.js +39 -0
- package/dist/esm/forms/fields/SceneCalendarField.js.map +1 -0
- package/dist/esm/forms/fields/SceneCheckboxField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneCheckboxField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneCheckboxField.js +26 -0
- package/dist/esm/forms/fields/SceneCheckboxField.js.map +1 -0
- package/dist/esm/forms/fields/SceneChipsField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneChipsField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneChipsField.js +31 -0
- package/dist/esm/forms/fields/SceneChipsField.js.map +1 -0
- package/dist/esm/forms/fields/SceneColorPickerField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneColorPickerField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneColorPickerField.js +28 -0
- package/dist/esm/forms/fields/SceneColorPickerField.js.map +1 -0
- package/dist/esm/forms/fields/SceneDropdownField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneDropdownField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneDropdownField.js +33 -0
- package/dist/esm/forms/fields/SceneDropdownField.js.map +1 -0
- package/dist/esm/forms/fields/SceneInputTextField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneInputTextField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneInputTextField.js +43 -0
- package/dist/esm/forms/fields/SceneInputTextField.js.map +1 -0
- package/dist/esm/forms/fields/SceneMultiSelectField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneMultiSelectField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneMultiSelectField.js +38 -0
- package/dist/esm/forms/fields/SceneMultiSelectField.js.map +1 -0
- package/dist/esm/forms/fields/SceneNumberField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneNumberField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneNumberField.js +30 -0
- package/dist/esm/forms/fields/SceneNumberField.js.map +1 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.js +33 -0
- package/dist/esm/forms/fields/SceneRadioButtonField.js.map +1 -0
- package/dist/esm/forms/fields/SceneRadioGroupField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneRadioGroupField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneRadioGroupField.js +34 -0
- package/dist/esm/forms/fields/SceneRadioGroupField.js.map +1 -0
- package/dist/esm/forms/fields/SceneSliderField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneSliderField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneSliderField.js +29 -0
- package/dist/esm/forms/fields/SceneSliderField.js.map +1 -0
- package/dist/esm/forms/fields/SceneTextAreaField.d.ts +3 -0
- package/dist/esm/forms/fields/SceneTextAreaField.d.ts.map +1 -0
- package/dist/esm/forms/fields/SceneTextAreaField.js +29 -0
- package/dist/esm/forms/fields/SceneTextAreaField.js.map +1 -0
- package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.d.ts +2 -0
- package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.d.ts.map +1 -0
- package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.js +12 -0
- package/dist/esm/forms/fields/for_CommandFormField/when_the_field_names_no_property.js.map +1 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.d.ts +2 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.d.ts.map +1 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js +24 -0
- package/dist/esm/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.js.map +1 -0
- package/dist/esm/forms/fields/index.d.ts +16 -0
- package/dist/esm/forms/fields/index.d.ts.map +1 -0
- package/dist/esm/forms/fields/index.js +16 -0
- package/dist/esm/forms/fields/index.js.map +1 -0
- package/dist/esm/forms/fields/resolveFieldBinding.d.ts +4 -0
- package/dist/esm/forms/fields/resolveFieldBinding.d.ts.map +1 -0
- package/dist/esm/forms/fields/resolveFieldBinding.js +25 -0
- package/dist/esm/forms/fields/resolveFieldBinding.js.map +1 -0
- package/dist/esm/forms/index.d.ts +3 -0
- package/dist/esm/forms/index.d.ts.map +1 -0
- package/dist/esm/forms/index.js +3 -0
- package/dist/esm/forms/index.js.map +1 -0
- package/dist/esm/given.d.ts +3 -0
- package/dist/esm/given.d.ts.map +1 -0
- package/dist/esm/given.js +21 -0
- package/dist/esm/given.js.map +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +51 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/pages/SceneDataPage.d.ts +3 -0
- package/dist/esm/pages/SceneDataPage.d.ts.map +1 -0
- package/dist/esm/pages/SceneDataPage.js +43 -0
- package/dist/esm/pages/SceneDataPage.js.map +1 -0
- package/dist/esm/pages/SceneFormElement.d.ts +3 -0
- package/dist/esm/pages/SceneFormElement.d.ts.map +1 -0
- package/dist/esm/pages/SceneFormElement.js +24 -0
- package/dist/esm/pages/SceneFormElement.js.map +1 -0
- package/dist/esm/pages/ScenePage.d.ts +3 -0
- package/dist/esm/pages/ScenePage.d.ts.map +1 -0
- package/dist/esm/pages/ScenePage.js +26 -0
- package/dist/esm/pages/ScenePage.js.map +1 -0
- package/dist/esm/pages/for_ScenePage/when_rendering_a_page.d.ts +2 -0
- package/dist/esm/pages/for_ScenePage/when_rendering_a_page.d.ts.map +1 -0
- package/dist/esm/pages/for_ScenePage/when_rendering_a_page.js +31 -0
- package/dist/esm/pages/for_ScenePage/when_rendering_a_page.js.map +1 -0
- package/dist/esm/pages/index.d.ts +4 -0
- package/dist/esm/pages/index.d.ts.map +1 -0
- package/dist/esm/pages/index.js +4 -0
- package/dist/esm/pages/index.js.map +1 -0
- package/dist/esm/properties.d.ts +9 -0
- package/dist/esm/properties.d.ts.map +1 -0
- package/dist/esm/properties.js +95 -0
- package/dist/esm/properties.js.map +1 -0
- package/dist/esm/toolbar/SceneToolbar.d.ts +3 -0
- package/dist/esm/toolbar/SceneToolbar.d.ts.map +1 -0
- package/dist/esm/toolbar/SceneToolbar.js +25 -0
- package/dist/esm/toolbar/SceneToolbar.js.map +1 -0
- package/dist/esm/toolbar/SceneToolbarButton.d.ts +3 -0
- package/dist/esm/toolbar/SceneToolbarButton.d.ts.map +1 -0
- package/dist/esm/toolbar/SceneToolbarButton.js +30 -0
- package/dist/esm/toolbar/SceneToolbarButton.js.map +1 -0
- package/dist/esm/toolbar/SceneToolbarGroup.d.ts +3 -0
- package/dist/esm/toolbar/SceneToolbarGroup.d.ts.map +1 -0
- package/dist/esm/toolbar/SceneToolbarGroup.js +25 -0
- package/dist/esm/toolbar/SceneToolbarGroup.js.map +1 -0
- package/dist/esm/toolbar/SceneToolbarSeparator.d.ts +3 -0
- package/dist/esm/toolbar/SceneToolbarSeparator.d.ts.map +1 -0
- package/dist/esm/toolbar/SceneToolbarSeparator.js +23 -0
- package/dist/esm/toolbar/SceneToolbarSeparator.js.map +1 -0
- package/dist/esm/toolbar/index.d.ts +5 -0
- package/dist/esm/toolbar/index.d.ts.map +1 -0
- package/dist/esm/toolbar/index.js +5 -0
- package/dist/esm/toolbar/index.js.map +1 -0
- package/dist/esm/tsconfig.tsbuildinfo +1 -0
- package/editors/SceneFilterPanel.tsx +52 -0
- package/editors/SceneObjectContentEditor.tsx +36 -0
- package/editors/SceneObjectNavigationalBar.tsx +34 -0
- package/editors/SceneSchemaEditor.tsx +34 -0
- package/editors/SceneTimeMachine.tsx +32 -0
- package/editors/filterDefinitions.ts +59 -0
- package/editors/for_SceneObjectNavigationalBar/when_navigating_back_up_the_trail.tsx +18 -0
- package/editors/for_filterDefinitions/when_reading_filter_definitions.ts +49 -0
- package/editors/for_timeMachineVersions/when_reading_versions.ts +39 -0
- package/editors/index.ts +11 -0
- package/editors/timeMachineVersions.ts +44 -0
- package/editors/useEditableCopy.ts +32 -0
- package/for_cratisComponents/when_rendering_a_screen_through_the_real_renderer.tsx +37 -0
- package/for_cratisComponentsPackage/when_a_profile_ranks_it_above_the_packages_it_layers_on.ts +49 -0
- package/for_cratisComponentsPackage/when_resolving_its_dependencies.ts +68 -0
- package/for_cratisComponentsPackage/when_validating_the_bundle.ts +39 -0
- package/for_properties/when_a_property_has_the_wrong_type.ts +41 -0
- package/for_properties/when_a_property_is_missing.ts +26 -0
- package/for_properties/when_a_property_is_present.ts +36 -0
- package/forms/SceneCommandForm.tsx +45 -0
- package/forms/fields/CommandFormField.tsx +32 -0
- package/forms/fields/FieldBinding.ts +26 -0
- package/forms/fields/SceneCalendarField.tsx +41 -0
- package/forms/fields/SceneCheckboxField.tsx +29 -0
- package/forms/fields/SceneChipsField.tsx +34 -0
- package/forms/fields/SceneColorPickerField.tsx +31 -0
- package/forms/fields/SceneDropdownField.tsx +36 -0
- package/forms/fields/SceneInputTextField.tsx +37 -0
- package/forms/fields/SceneMultiSelectField.tsx +40 -0
- package/forms/fields/SceneNumberField.tsx +33 -0
- package/forms/fields/SceneRadioButtonField.tsx +37 -0
- package/forms/fields/SceneRadioGroupField.tsx +36 -0
- package/forms/fields/SceneSliderField.tsx +32 -0
- package/forms/fields/SceneTextAreaField.tsx +32 -0
- package/forms/fields/for_CommandFormField/when_the_field_names_no_property.tsx +16 -0
- package/forms/fields/for_resolveFieldBinding/when_resolving_a_field_binding.ts +34 -0
- package/forms/fields/index.ts +18 -0
- package/forms/fields/resolveFieldBinding.ts +27 -0
- package/forms/index.ts +5 -0
- package/given.ts +33 -0
- package/index.ts +14 -0
- package/package.json +68 -0
- package/pages/SceneDataPage.tsx +40 -0
- package/pages/SceneFormElement.tsx +21 -0
- package/pages/ScenePage.tsx +30 -0
- package/pages/for_ScenePage/when_rendering_a_page.tsx +39 -0
- package/pages/index.ts +6 -0
- package/properties.ts +112 -0
- package/storybook-static/assets/CommandDialog-B78_eDOU.css +1 -0
- package/storybook-static/assets/CratisComponents-qPooLvTv.css +1 -0
- package/storybook-static/assets/DataPage-CroWzXsC.css +1 -0
- package/storybook-static/assets/iframe-DQhZBFM5.css +1 -0
- package/theme/sceneTokenBridge.css +72 -0
- package/toolbar/SceneToolbar.tsx +28 -0
- package/toolbar/SceneToolbarButton.tsx +31 -0
- package/toolbar/SceneToolbarGroup.tsx +28 -0
- package/toolbar/SceneToolbarSeparator.tsx +21 -0
- package/toolbar/index.ts +7 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { expect } from 'chai';
|
|
3
|
+
import { render, screen } from '@testing-library/react';
|
|
4
|
+
import { externalComponent } from '../../given';
|
|
5
|
+
import { ScenePage } from '../ScenePage';
|
|
6
|
+
describe('when rendering a page', () => {
|
|
7
|
+
describe('and the screen asks for the title to be shown', () => {
|
|
8
|
+
beforeEach(() => {
|
|
9
|
+
const element = externalComponent('Cratis.Components:page', { title: 'Invoices', showTitle: true });
|
|
10
|
+
render(_jsx(ScenePage, { element: element, slots: { content: [_jsx("span", { children: "Body" }, 'body')] } }));
|
|
11
|
+
});
|
|
12
|
+
it('should render the title as the heading', () => expect(screen.getByRole('heading', { name: 'Invoices' })).to.exist);
|
|
13
|
+
it('should render the content slot', () => expect(screen.getByText('Body')).to.exist);
|
|
14
|
+
});
|
|
15
|
+
describe('and the screen leaves the title hidden', () => {
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
const element = externalComponent('Cratis.Components:page', { title: 'Invoices' });
|
|
18
|
+
render(_jsx(ScenePage, { element: element, slots: { content: [_jsx("span", { children: "Body" }, 'body')] } }));
|
|
19
|
+
});
|
|
20
|
+
it('should render no heading', () => (screen.queryByRole('heading') === null).should.be.true);
|
|
21
|
+
it('should still render the content slot', () => expect(screen.getByText('Body')).to.exist);
|
|
22
|
+
});
|
|
23
|
+
describe('and the screen sets the title to something that is not a string', () => {
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
const element = externalComponent('Cratis.Components:page', { title: 42, showTitle: true });
|
|
26
|
+
render(_jsx(ScenePage, { element: element, slots: {} }));
|
|
27
|
+
});
|
|
28
|
+
it('should fall back to an empty title rather than rendering the wrong type', () => screen.getByRole('heading').textContent.should.equal(''));
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=when_rendering_a_page.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"when_rendering_a_page.js","sourceRoot":"","sources":["../../../../pages/for_ScenePage/when_rendering_a_page.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACnC,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;QAC3D,UAAU,CAAC,GAAG,EAAE;YACZ,MAAM,OAAO,GAAG,iBAAiB,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACpG,MAAM,CAAC,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,mCAAU,MAAM,CAAY,CAAC,EAAE,GAAI,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACvH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;QACpD,UAAU,CAAC,GAAG,EAAE;YACZ,MAAM,OAAO,GAAG,iBAAiB,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YACnF,MAAM,CAAC,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,mCAAU,MAAM,CAAY,CAAC,EAAE,GAAI,CAAC,CAAC;QAChG,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9F,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAChG,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iEAAiE,EAAE,GAAG,EAAE;QAC7E,UAAU,CAAC,GAAG,EAAE;YACZ,MAAM,OAAO,GAAG,iBAAiB,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5F,MAAM,CAAC,KAAC,SAAS,IAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE,CAC/E,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,WAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../pages/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../pages/index.ts"],"names":[],"mappings":"AAGA,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function stringProperty(properties: Record<string, unknown>, name: string): string | undefined;
|
|
2
|
+
export declare function booleanProperty(properties: Record<string, unknown>, name: string): boolean | undefined;
|
|
3
|
+
export declare function numberProperty(properties: Record<string, unknown>, name: string): number | undefined;
|
|
4
|
+
export declare function arrayProperty(properties: Record<string, unknown>, name: string): unknown[] | undefined;
|
|
5
|
+
export declare function stringArrayProperty(properties: Record<string, unknown>, name: string): string[] | undefined;
|
|
6
|
+
export declare function objectProperty(properties: Record<string, unknown>, name: string): Record<string, unknown> | undefined;
|
|
7
|
+
export declare function objectArrayProperty(properties: Record<string, unknown>, name: string): Record<string, unknown>[] | undefined;
|
|
8
|
+
export declare function unionProperty<T extends string>(properties: Record<string, unknown>, name: string, allowed: readonly T[]): T | undefined;
|
|
9
|
+
//# sourceMappingURL=properties.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"properties.d.ts","sourceRoot":"","sources":["../../properties.ts"],"names":[],"mappings":"AAoBA,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGpG;AAQD,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGtG;AAQD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGpG;AASD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAGtG;AAUD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAE3G;AASD,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAGrH;AAUD,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,SAAS,CAI5H;AAaD,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC,EAAE,GAAG,CAAC,GAAG,SAAS,CAGvI"}
|
|
@@ -0,0 +1,95 @@
|
|
|
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
|
+
* Narrow readers for an {@link ExternalComponent}'s `properties` bag.
|
|
5
|
+
*
|
|
6
|
+
* The bag is `Record<string, unknown>` because it survives a round trip through JSON - a `.play` screen
|
|
7
|
+
* is authored as text, compiled by Stage, and re-read by Studio, and none of those steps carry a
|
|
8
|
+
* TypeScript type with it. An adapter therefore has to narrow every value it reads, and the tempting
|
|
9
|
+
* shortcut (`element.properties.title as string`) is a lie the compiler will happily believe: a screen
|
|
10
|
+
* that writes `title: 42` then reaches the wrapped component as a number and fails somewhere far away.
|
|
11
|
+
*
|
|
12
|
+
* These helpers all answer the same way - the value when it really is of the asked-for type, `undefined`
|
|
13
|
+
* otherwise - so an adapter reads a property and applies its own default in one expression, and a
|
|
14
|
+
* mistyped property degrades to the default instead of corrupting the render.
|
|
15
|
+
*/ /**
|
|
16
|
+
* Reads a string property, or `undefined` when it is absent or not a string.
|
|
17
|
+
*/ function stringProperty(properties, name) {
|
|
18
|
+
const value = properties[name];
|
|
19
|
+
return typeof value === 'string' ? value : undefined;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Reads a boolean property, or `undefined` when it is absent or not a boolean.
|
|
23
|
+
*
|
|
24
|
+
* Deliberately not truthiness: a screen that sets `showTitle: 0` means something different from one that
|
|
25
|
+
* leaves it out, and only the second should fall back to the adapter's default.
|
|
26
|
+
*/ function booleanProperty(properties, name) {
|
|
27
|
+
const value = properties[name];
|
|
28
|
+
return typeof value === 'boolean' ? value : undefined;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Reads a numeric property, or `undefined` when it is absent, not a number, or `NaN`.
|
|
32
|
+
*
|
|
33
|
+
* `NaN` is excluded because it is the one number that makes every downstream comparison silently false -
|
|
34
|
+
* a slider with `min: NaN` renders without complaint and behaves as if it had no minimum at all.
|
|
35
|
+
*/ function numberProperty(properties, name) {
|
|
36
|
+
const value = properties[name];
|
|
37
|
+
return typeof value === 'number' && !Number.isNaN(value) ? value : undefined;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reads an array property, or `undefined` when it is absent or not an array.
|
|
41
|
+
*
|
|
42
|
+
* The element type is deliberately left as `unknown` - narrowing the elements is the caller's job,
|
|
43
|
+
* through {@link stringArrayProperty} or its own mapping - so this helper never has to guess what a
|
|
44
|
+
* heterogeneous list was supposed to be.
|
|
45
|
+
*/ function arrayProperty(properties, name) {
|
|
46
|
+
const value = properties[name];
|
|
47
|
+
return Array.isArray(value) ? value : undefined;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Reads an array property and keeps only its string elements, or `undefined` when the property is absent
|
|
51
|
+
* or not an array.
|
|
52
|
+
*
|
|
53
|
+
* Non-string elements are dropped rather than rejecting the whole list, because these lists are
|
|
54
|
+
* column names, filter fields and the like: one bad entry should cost that one entry, not the entire
|
|
55
|
+
* table's filtering.
|
|
56
|
+
*/ function stringArrayProperty(properties, name) {
|
|
57
|
+
return arrayProperty(properties, name)?.filter((value)=>typeof value === 'string');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Reads an object property as a plain record, or `undefined` when it is absent, `null`, or an array.
|
|
61
|
+
*
|
|
62
|
+
* Arrays are excluded even though `typeof [] === 'object'`, because every caller here wants a keyed
|
|
63
|
+
* object - a JSON schema, a document being edited - and an array reaching one of those would be a
|
|
64
|
+
* different bug entirely.
|
|
65
|
+
*/ function objectProperty(properties, name) {
|
|
66
|
+
const value = properties[name];
|
|
67
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value) ? value : undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reads an array property and keeps only its plain-object elements, or `undefined` when the property is
|
|
71
|
+
* absent or not an array.
|
|
72
|
+
*
|
|
73
|
+
* This is what an authored `options` list arrives as - `[{ label: 'Draft', value: 'draft' }, ...]` - and
|
|
74
|
+
* the same forgiving rule as {@link stringArrayProperty} applies: one malformed entry costs that entry,
|
|
75
|
+
* not the whole dropdown.
|
|
76
|
+
*/ function objectArrayProperty(properties, name) {
|
|
77
|
+
return arrayProperty(properties, name)?.filter((value)=>typeof value === 'object' && value !== null && !Array.isArray(value));
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Reads a string property that has to be one of a fixed set of values, or `undefined` when it is absent
|
|
81
|
+
* or outside the set.
|
|
82
|
+
*
|
|
83
|
+
* Several of the wrapped `@cratis/components` props are string literal unions (`'horizontal' | 'vertical'`,
|
|
84
|
+
* `'top' | 'right' | 'bottom' | 'left'`). This is what turns an arbitrary authored string into one of
|
|
85
|
+
* them without an assertion: an unrecognized value falls back to the component's own default rather than
|
|
86
|
+
* being forced through as a value the component never expects to see.
|
|
87
|
+
*
|
|
88
|
+
* @param allowed The permitted values, most usefully written as a `const` tuple so `T` infers as the union.
|
|
89
|
+
*/ function unionProperty(properties, name, allowed) {
|
|
90
|
+
const value = stringProperty(properties, name);
|
|
91
|
+
return value !== undefined && allowed.includes(value) ? value : undefined;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
export { arrayProperty, booleanProperty, numberProperty, objectArrayProperty, objectProperty, stringArrayProperty, stringProperty, unionProperty };
|
|
95
|
+
//# sourceMappingURL=properties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"properties.js","sources":["../../properties.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\n/**\n * Narrow readers for an {@link ExternalComponent}'s `properties` bag.\n *\n * The bag is `Record<string, unknown>` because it survives a round trip through JSON - a `.play` screen\n * is authored as text, compiled by Stage, and re-read by Studio, and none of those steps carry a\n * TypeScript type with it. An adapter therefore has to narrow every value it reads, and the tempting\n * shortcut (`element.properties.title as string`) is a lie the compiler will happily believe: a screen\n * that writes `title: 42` then reaches the wrapped component as a number and fails somewhere far away.\n *\n * These helpers all answer the same way - the value when it really is of the asked-for type, `undefined`\n * otherwise - so an adapter reads a property and applies its own default in one expression, and a\n * mistyped property degrades to the default instead of corrupting the render.\n */\n\n/**\n * Reads a string property, or `undefined` when it is absent or not a string.\n */\nexport function stringProperty(properties: Record<string, unknown>, name: string): string | undefined {\n const value = properties[name];\n return typeof value === 'string' ? value : undefined;\n}\n\n/**\n * Reads a boolean property, or `undefined` when it is absent or not a boolean.\n *\n * Deliberately not truthiness: a screen that sets `showTitle: 0` means something different from one that\n * leaves it out, and only the second should fall back to the adapter's default.\n */\nexport function booleanProperty(properties: Record<string, unknown>, name: string): boolean | undefined {\n const value = properties[name];\n return typeof value === 'boolean' ? value : undefined;\n}\n\n/**\n * Reads a numeric property, or `undefined` when it is absent, not a number, or `NaN`.\n *\n * `NaN` is excluded because it is the one number that makes every downstream comparison silently false -\n * a slider with `min: NaN` renders without complaint and behaves as if it had no minimum at all.\n */\nexport function numberProperty(properties: Record<string, unknown>, name: string): number | undefined {\n const value = properties[name];\n return typeof value === 'number' && !Number.isNaN(value) ? value : undefined;\n}\n\n/**\n * Reads an array property, or `undefined` when it is absent or not an array.\n *\n * The element type is deliberately left as `unknown` - narrowing the elements is the caller's job,\n * through {@link stringArrayProperty} or its own mapping - so this helper never has to guess what a\n * heterogeneous list was supposed to be.\n */\nexport function arrayProperty(properties: Record<string, unknown>, name: string): unknown[] | undefined {\n const value = properties[name];\n return Array.isArray(value) ? value : undefined;\n}\n\n/**\n * Reads an array property and keeps only its string elements, or `undefined` when the property is absent\n * or not an array.\n *\n * Non-string elements are dropped rather than rejecting the whole list, because these lists are\n * column names, filter fields and the like: one bad entry should cost that one entry, not the entire\n * table's filtering.\n */\nexport function stringArrayProperty(properties: Record<string, unknown>, name: string): string[] | undefined {\n return arrayProperty(properties, name)?.filter((value): value is string => typeof value === 'string');\n}\n\n/**\n * Reads an object property as a plain record, or `undefined` when it is absent, `null`, or an array.\n *\n * Arrays are excluded even though `typeof [] === 'object'`, because every caller here wants a keyed\n * object - a JSON schema, a document being edited - and an array reaching one of those would be a\n * different bug entirely.\n */\nexport function objectProperty(properties: Record<string, unknown>, name: string): Record<string, unknown> | undefined {\n const value = properties[name];\n return typeof value === 'object' && value !== null && !Array.isArray(value) ? (value as Record<string, unknown>) : undefined;\n}\n\n/**\n * Reads an array property and keeps only its plain-object elements, or `undefined` when the property is\n * absent or not an array.\n *\n * This is what an authored `options` list arrives as - `[{ label: 'Draft', value: 'draft' }, ...]` - and\n * the same forgiving rule as {@link stringArrayProperty} applies: one malformed entry costs that entry,\n * not the whole dropdown.\n */\nexport function objectArrayProperty(properties: Record<string, unknown>, name: string): Record<string, unknown>[] | undefined {\n return arrayProperty(properties, name)?.filter(\n (value): value is Record<string, unknown> => typeof value === 'object' && value !== null && !Array.isArray(value)\n );\n}\n\n/**\n * Reads a string property that has to be one of a fixed set of values, or `undefined` when it is absent\n * or outside the set.\n *\n * Several of the wrapped `@cratis/components` props are string literal unions (`'horizontal' | 'vertical'`,\n * `'top' | 'right' | 'bottom' | 'left'`). This is what turns an arbitrary authored string into one of\n * them without an assertion: an unrecognized value falls back to the component's own default rather than\n * being forced through as a value the component never expects to see.\n *\n * @param allowed The permitted values, most usefully written as a `const` tuple so `T` infers as the union.\n */\nexport function unionProperty<T extends string>(properties: Record<string, unknown>, name: string, allowed: readonly T[]): T | undefined {\n const value = stringProperty(properties, name);\n return value !== undefined && (allowed as readonly string[]).includes(value) ? (value as T) : undefined;\n}\n"],"names":["stringProperty","properties","name","value","undefined","booleanProperty","numberProperty","Number","isNaN","arrayProperty","Array","isArray","stringArrayProperty","filter","objectProperty","objectArrayProperty","unionProperty","allowed","includes"],"mappings":"AAAA;AACA;AAEA;;;;;;;;;;;;;;AAgBC,IACM,SAASA,cAAAA,CAAeC,UAAmC,EAAEC,IAAY,EAAA;IAC5E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;IAC9B,OAAO,OAAOC,KAAAA,KAAU,QAAA,GAAWA,KAAAA,GAAQC,SAAAA;AAC/C;AAEA;;;;;AAKC,IACM,SAASC,eAAAA,CAAgBJ,UAAmC,EAAEC,IAAY,EAAA;IAC7E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;IAC9B,OAAO,OAAOC,KAAAA,KAAU,SAAA,GAAYA,KAAAA,GAAQC,SAAAA;AAChD;AAEA;;;;;AAKC,IACM,SAASE,cAAAA,CAAeL,UAAmC,EAAEC,IAAY,EAAA;IAC5E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;IAC9B,OAAO,OAAOC,UAAU,QAAA,IAAY,CAACI,OAAOC,KAAK,CAACL,SAASA,KAAAA,GAAQC,SAAAA;AACvE;AAEA;;;;;;AAMC,IACM,SAASK,aAAAA,CAAcR,UAAmC,EAAEC,IAAY,EAAA;IAC3E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;AAC9B,IAAA,OAAOQ,KAAAA,CAAMC,OAAO,CAACR,KAAAA,CAAAA,GAASA,KAAAA,GAAQC,SAAAA;AAC1C;AAEA;;;;;;;AAOC,IACM,SAASQ,mBAAAA,CAAoBX,UAAmC,EAAEC,IAAY,EAAA;AACjF,IAAA,OAAOO,cAAcR,UAAAA,EAAYC,IAAAA,CAAAA,EAAOW,OAAO,CAACV,KAAAA,GAA2B,OAAOA,KAAAA,KAAU,QAAA,CAAA;AAChG;AAEA;;;;;;AAMC,IACM,SAASW,cAAAA,CAAeb,UAAmC,EAAEC,IAAY,EAAA;IAC5E,MAAMC,KAAAA,GAAQF,UAAU,CAACC,IAAAA,CAAK;IAC9B,OAAO,OAAOC,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,IAAQ,CAACO,KAAAA,CAAMC,OAAO,CAACR,KAAAA,CAAAA,GAAUA,KAAAA,GAAoCC,SAAAA;AACvH;AAEA;;;;;;;AAOC,IACM,SAASW,mBAAAA,CAAoBd,UAAmC,EAAEC,IAAY,EAAA;AACjF,IAAA,OAAOO,aAAAA,CAAcR,UAAAA,EAAYC,IAAAA,CAAAA,EAAOW,MAAAA,CACpC,CAACV,KAAAA,GAA4C,OAAOA,KAAAA,KAAU,QAAA,IAAYA,KAAAA,KAAU,IAAA,IAAQ,CAACO,KAAAA,CAAMC,OAAO,CAACR,KAAAA,CAAAA,CAAAA;AAEnH;AAEA;;;;;;;;;;AAUC,IACM,SAASa,aAAAA,CAAgCf,UAAmC,EAAEC,IAAY,EAAEe,OAAqB,EAAA;IACpH,MAAMd,KAAAA,GAAQH,eAAeC,UAAAA,EAAYC,IAAAA,CAAAA;AACzC,IAAA,OAAOC,UAAUC,SAAAA,IAAca,QAA8BC,QAAQ,CAACf,SAAUA,KAAAA,GAAcC,SAAAA;AAClG;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneToolbar.d.ts","sourceRoot":"","sources":["../../../toolbar/SceneToolbar.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAc/D,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,wBAAwB,+BASxE"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Toolbar } from '@cratis/components/Toolbar';
|
|
3
|
+
import { booleanProperty, unionProperty } from '../properties.js';
|
|
4
|
+
|
|
5
|
+
/** Whether the toolbar runs down the side or across the top. */ const orientations = [
|
|
6
|
+
'vertical',
|
|
7
|
+
'horizontal'
|
|
8
|
+
];
|
|
9
|
+
/**
|
|
10
|
+
* The `Cratis.Components:toolbar` component - `Toolbar` from `@cratis/components/Toolbar`.
|
|
11
|
+
*
|
|
12
|
+
* The container for a tool palette: it draws the rounded chrome and, more importantly, establishes the
|
|
13
|
+
* drag context every `toolbarButton` inside it reads. `draggable` therefore belongs here rather than on
|
|
14
|
+
* each button - it is a property of the palette, and setting it per button is how you end up with a
|
|
15
|
+
* palette that is half draggable.
|
|
16
|
+
*/ function SceneToolbar({ element, slots }) {
|
|
17
|
+
return /*#__PURE__*/ jsx(Toolbar, {
|
|
18
|
+
orientation: unionProperty(element.properties, 'orientation', orientations),
|
|
19
|
+
draggable: booleanProperty(element.properties, 'draggable'),
|
|
20
|
+
children: slots.content
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { SceneToolbar };
|
|
25
|
+
//# sourceMappingURL=SceneToolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneToolbar.js","sources":["../../../toolbar/SceneToolbar.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 { Toolbar } from '@cratis/components/Toolbar';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, unionProperty } from '../properties';\n\n/** Whether the toolbar runs down the side or across the top. */\nconst orientations = ['vertical', 'horizontal'] as const;\n\n/**\n * The `Cratis.Components:toolbar` component - `Toolbar` from `@cratis/components/Toolbar`.\n *\n * The container for a tool palette: it draws the rounded chrome and, more importantly, establishes the\n * drag context every `toolbarButton` inside it reads. `draggable` therefore belongs here rather than on\n * each button - it is a property of the palette, and setting it per button is how you end up with a\n * palette that is half draggable.\n */\nexport function SceneToolbar({ element, slots }: RegisteredComponentProps) {\n return (\n <Toolbar\n orientation={unionProperty(element.properties, 'orientation', orientations)}\n draggable={booleanProperty(element.properties, 'draggable')}\n >\n {slots.content}\n </Toolbar>\n );\n}\n"],"names":["orientations","SceneToolbar","element","slots","_jsx","Toolbar","orientation","unionProperty","properties","draggable","booleanProperty","content"],"mappings":";;;;AAOA,iEACA,MAAMA,YAAAA,GAAe;AAAC,IAAA,UAAA;AAAY,IAAA;AAAa,CAAA;AAE/C;;;;;;;AAOC,IACM,SAASC,YAAAA,CAAa,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AACrE,IAAA,qBACIC,GAAA,CAACC,OAAAA,EAAAA;AACGC,QAAAA,WAAAA,EAAaC,aAAAA,CAAcL,OAAAA,CAAQM,UAAU,EAAE,aAAA,EAAeR,YAAAA,CAAAA;QAC9DS,SAAAA,EAAWC,eAAAA,CAAgBR,OAAAA,CAAQM,UAAU,EAAE,WAAA,CAAA;AAE9CL,QAAAA,QAAAA,EAAAA,KAAAA,CAAMQ;;AAGnB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneToolbarButton.d.ts","sourceRoot":"","sources":["../../../toolbar/SceneToolbarButton.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAc/D,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAYvE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { ToolbarButton } from '@cratis/components/Toolbar';
|
|
3
|
+
import { stringProperty, unionProperty, booleanProperty } from '../properties.js';
|
|
4
|
+
|
|
5
|
+
/** Which side of the button its tooltip appears on. */ const tooltipPositions = [
|
|
6
|
+
'top',
|
|
7
|
+
'right',
|
|
8
|
+
'bottom',
|
|
9
|
+
'left'
|
|
10
|
+
];
|
|
11
|
+
/**
|
|
12
|
+
* The `Cratis.Components:toolbarButton` component - `ToolbarButton` from `@cratis/components/Toolbar`.
|
|
13
|
+
*
|
|
14
|
+
* `title` is required by the underlying component and is not decoration: it is both the tooltip text and
|
|
15
|
+
* the accessible name, so a toolbar of icon-only buttons is still usable by anyone who cannot see the
|
|
16
|
+
* icons. It defaults to the `text` property rather than to an empty string, so a button that has a
|
|
17
|
+
* visible label is never left nameless.
|
|
18
|
+
*/ function SceneToolbarButton({ element }) {
|
|
19
|
+
const text = stringProperty(element.properties, 'text');
|
|
20
|
+
return /*#__PURE__*/ jsx(ToolbarButton, {
|
|
21
|
+
icon: stringProperty(element.properties, 'icon'),
|
|
22
|
+
text: text,
|
|
23
|
+
title: stringProperty(element.properties, 'title') ?? text ?? '',
|
|
24
|
+
active: booleanProperty(element.properties, 'active'),
|
|
25
|
+
tooltipPosition: unionProperty(element.properties, 'tooltipPosition', tooltipPositions)
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { SceneToolbarButton };
|
|
30
|
+
//# sourceMappingURL=SceneToolbarButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneToolbarButton.js","sources":["../../../toolbar/SceneToolbarButton.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 { ToolbarButton } from '@cratis/components/Toolbar';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { booleanProperty, stringProperty, unionProperty } from '../properties';\n\n/** Which side of the button its tooltip appears on. */\nconst tooltipPositions = ['top', 'right', 'bottom', 'left'] as const;\n\n/**\n * The `Cratis.Components:toolbarButton` component - `ToolbarButton` from `@cratis/components/Toolbar`.\n *\n * `title` is required by the underlying component and is not decoration: it is both the tooltip text and\n * the accessible name, so a toolbar of icon-only buttons is still usable by anyone who cannot see the\n * icons. It defaults to the `text` property rather than to an empty string, so a button that has a\n * visible label is never left nameless.\n */\nexport function SceneToolbarButton({ element }: RegisteredComponentProps) {\n const text = stringProperty(element.properties, 'text');\n\n return (\n <ToolbarButton\n icon={stringProperty(element.properties, 'icon')}\n text={text}\n title={stringProperty(element.properties, 'title') ?? text ?? ''}\n active={booleanProperty(element.properties, 'active')}\n tooltipPosition={unionProperty(element.properties, 'tooltipPosition', tooltipPositions)}\n />\n );\n}\n"],"names":["tooltipPositions","SceneToolbarButton","element","text","stringProperty","properties","_jsx","ToolbarButton","icon","title","active","booleanProperty","tooltipPosition","unionProperty"],"mappings":";;;;AAOA,wDACA,MAAMA,gBAAAA,GAAmB;AAAC,IAAA,KAAA;AAAO,IAAA,OAAA;AAAS,IAAA,QAAA;AAAU,IAAA;AAAO,CAAA;AAE3D;;;;;;;AAOC,IACM,SAASC,kBAAAA,CAAmB,EAAEC,OAAO,EAA4B,EAAA;AACpE,IAAA,MAAMC,IAAAA,GAAOC,cAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,MAAA,CAAA;AAEhD,IAAA,qBACIC,GAAA,CAACC,aAAAA,EAAAA;QACGC,IAAAA,EAAMJ,cAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,MAAA,CAAA;QACzCF,IAAAA,EAAMA,IAAAA;AACNM,QAAAA,KAAAA,EAAOL,cAAAA,CAAeF,OAAAA,CAAQG,UAAU,EAAE,YAAYF,IAAAA,IAAQ,EAAA;QAC9DO,MAAAA,EAAQC,eAAAA,CAAgBT,OAAAA,CAAQG,UAAU,EAAE,QAAA,CAAA;AAC5CO,QAAAA,eAAAA,EAAiBC,aAAAA,CAAcX,OAAAA,CAAQG,UAAU,EAAE,iBAAA,EAAmBL,gBAAAA;;AAGlF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneToolbarGroup.d.ts","sourceRoot":"","sources":["../../../toolbar/SceneToolbarGroup.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAc/D,wBAAgB,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,wBAAwB,+BAS7E"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { ToolbarGroup } from '@cratis/components/Toolbar';
|
|
3
|
+
import { unionProperty, stringProperty } from '../properties.js';
|
|
4
|
+
|
|
5
|
+
/** Whether the group's buttons stack or sit in a row. */ const orientations = [
|
|
6
|
+
'vertical',
|
|
7
|
+
'horizontal'
|
|
8
|
+
];
|
|
9
|
+
/**
|
|
10
|
+
* The `Cratis.Components:toolbarGroup` component - `ToolbarGroup` from `@cratis/components/Toolbar`.
|
|
11
|
+
*
|
|
12
|
+
* Keeps related buttons together inside a toolbar. `slotName` opts the group into the library's toolbar
|
|
13
|
+
* slot mechanism, which lets content contributed from elsewhere in the application land in this group -
|
|
14
|
+
* the same idea as Scene's own contribution points, and the reason the property is worth exposing rather
|
|
15
|
+
* than treating the group as purely visual.
|
|
16
|
+
*/ function SceneToolbarGroup({ element, slots }) {
|
|
17
|
+
return /*#__PURE__*/ jsx(ToolbarGroup, {
|
|
18
|
+
slotName: stringProperty(element.properties, 'slotName'),
|
|
19
|
+
orientation: unionProperty(element.properties, 'orientation', orientations),
|
|
20
|
+
children: slots.content
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { SceneToolbarGroup };
|
|
25
|
+
//# sourceMappingURL=SceneToolbarGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneToolbarGroup.js","sources":["../../../toolbar/SceneToolbarGroup.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 { ToolbarGroup } from '@cratis/components/Toolbar';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { stringProperty, unionProperty } from '../properties';\n\n/** Whether the group's buttons stack or sit in a row. */\nconst orientations = ['vertical', 'horizontal'] as const;\n\n/**\n * The `Cratis.Components:toolbarGroup` component - `ToolbarGroup` from `@cratis/components/Toolbar`.\n *\n * Keeps related buttons together inside a toolbar. `slotName` opts the group into the library's toolbar\n * slot mechanism, which lets content contributed from elsewhere in the application land in this group -\n * the same idea as Scene's own contribution points, and the reason the property is worth exposing rather\n * than treating the group as purely visual.\n */\nexport function SceneToolbarGroup({ element, slots }: RegisteredComponentProps) {\n return (\n <ToolbarGroup\n slotName={stringProperty(element.properties, 'slotName')}\n orientation={unionProperty(element.properties, 'orientation', orientations)}\n >\n {slots.content}\n </ToolbarGroup>\n );\n}\n"],"names":["orientations","SceneToolbarGroup","element","slots","_jsx","ToolbarGroup","slotName","stringProperty","properties","orientation","unionProperty","content"],"mappings":";;;;AAOA,0DACA,MAAMA,YAAAA,GAAe;AAAC,IAAA,UAAA;AAAY,IAAA;AAAa,CAAA;AAE/C;;;;;;;AAOC,IACM,SAASC,iBAAAA,CAAkB,EAAEC,OAAO,EAAEC,KAAK,EAA4B,EAAA;AAC1E,IAAA,qBACIC,GAAA,CAACC,YAAAA,EAAAA;QACGC,QAAAA,EAAUC,cAAAA,CAAeL,OAAAA,CAAQM,UAAU,EAAE,UAAA,CAAA;AAC7CC,QAAAA,WAAAA,EAAaC,aAAAA,CAAcR,OAAAA,CAAQM,UAAU,EAAE,aAAA,EAAeR,YAAAA,CAAAA;AAE7DG,QAAAA,QAAAA,EAAAA,KAAAA,CAAMQ;;AAGnB;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneToolbarSeparator.d.ts","sourceRoot":"","sources":["../../../toolbar/SceneToolbarSeparator.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAc/D,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,wBAAwB,+BAE1E"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { ToolbarSeparator } from '@cratis/components/Toolbar';
|
|
3
|
+
import { unionProperty } from '../properties.js';
|
|
4
|
+
|
|
5
|
+
/** Whether the separator is drawn as a horizontal rule or a vertical one. */ const orientations = [
|
|
6
|
+
'vertical',
|
|
7
|
+
'horizontal'
|
|
8
|
+
];
|
|
9
|
+
/**
|
|
10
|
+
* The `Cratis.Components:toolbarSeparator` component - `ToolbarSeparator` from
|
|
11
|
+
* `@cratis/components/Toolbar`.
|
|
12
|
+
*
|
|
13
|
+
* The divider between groups of tools. Its `orientation` describes the *toolbar* it sits in rather than
|
|
14
|
+
* the line it draws - a vertical toolbar gets a horizontal rule - which matches how the toolbar's own
|
|
15
|
+
* `orientation` reads, so a screen sets the same value on both.
|
|
16
|
+
*/ function SceneToolbarSeparator({ element }) {
|
|
17
|
+
return /*#__PURE__*/ jsx(ToolbarSeparator, {
|
|
18
|
+
orientation: unionProperty(element.properties, 'orientation', orientations)
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export { SceneToolbarSeparator };
|
|
23
|
+
//# sourceMappingURL=SceneToolbarSeparator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SceneToolbarSeparator.js","sources":["../../../toolbar/SceneToolbarSeparator.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 { ToolbarSeparator } from '@cratis/components/Toolbar';\nimport { RegisteredComponentProps } from '@cratis/scene.react';\nimport { unionProperty } from '../properties';\n\n/** Whether the separator is drawn as a horizontal rule or a vertical one. */\nconst orientations = ['vertical', 'horizontal'] as const;\n\n/**\n * The `Cratis.Components:toolbarSeparator` component - `ToolbarSeparator` from\n * `@cratis/components/Toolbar`.\n *\n * The divider between groups of tools. Its `orientation` describes the *toolbar* it sits in rather than\n * the line it draws - a vertical toolbar gets a horizontal rule - which matches how the toolbar's own\n * `orientation` reads, so a screen sets the same value on both.\n */\nexport function SceneToolbarSeparator({ element }: RegisteredComponentProps) {\n return <ToolbarSeparator orientation={unionProperty(element.properties, 'orientation', orientations)} />;\n}\n"],"names":["orientations","SceneToolbarSeparator","element","_jsx","ToolbarSeparator","orientation","unionProperty","properties"],"mappings":";;;;AAOA,8EACA,MAAMA,YAAAA,GAAe;AAAC,IAAA,UAAA;AAAY,IAAA;AAAa,CAAA;AAE/C;;;;;;;AAOC,IACM,SAASC,qBAAAA,CAAsB,EAAEC,OAAO,EAA4B,EAAA;AACvE,IAAA,qBAAOC,GAAA,CAACC,gBAAAA,EAAAA;AAAiBC,QAAAA,WAAAA,EAAaC,aAAAA,CAAcJ,OAAAA,CAAQK,UAAU,EAAE,aAAA,EAAeP,YAAAA;;AAC3F;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../toolbar/index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../toolbar/index.ts"],"names":[],"mappings":"AAGA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
|