@cratis/components 2.9.0 → 3.0.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/README.md +128 -67
- package/dist/esm/CommandDialog/CommandDialog.d.ts.map +1 -1
- package/dist/esm/CommandDialog/CommandDialog.js +4 -4
- package/dist/esm/CommandDialog/CommandDialog.js.map +1 -1
- package/dist/esm/CommandDialog/CommandStepper.d.ts +18 -4
- package/dist/esm/CommandDialog/CommandStepper.d.ts.map +1 -1
- package/dist/esm/CommandDialog/CommandStepper.js +51 -60
- package/dist/esm/CommandDialog/CommandStepper.js.map +1 -1
- package/dist/esm/CommandDialog/StepperCommandDialog.d.ts +6 -7
- package/dist/esm/CommandDialog/StepperCommandDialog.d.ts.map +1 -1
- package/dist/esm/CommandDialog/StepperCommandDialog.js +18 -15
- package/dist/esm/CommandDialog/StepperCommandDialog.js.map +1 -1
- package/dist/esm/CommandDialog/StepperPanel.d.ts +10 -0
- package/dist/esm/CommandDialog/StepperPanel.d.ts.map +1 -0
- package/dist/esm/CommandDialog/StepperPanel.js +30 -0
- package/dist/esm/CommandDialog/StepperPanel.js.map +1 -0
- package/dist/esm/CommandDialog/index.d.ts +1 -0
- package/dist/esm/CommandDialog/index.d.ts.map +1 -1
- package/dist/esm/CommandDialog/index.js +1 -0
- package/dist/esm/CommandDialog/index.js.map +1 -1
- package/dist/esm/CommandForm/fields/CalendarField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/CalendarField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/CalendarField.js +2 -8
- package/dist/esm/CommandForm/fields/CalendarField.js.map +1 -1
- package/dist/esm/CommandForm/fields/CheckboxField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/CheckboxField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/CheckboxField.js +1 -1
- package/dist/esm/CommandForm/fields/CheckboxField.js.map +1 -1
- package/dist/esm/CommandForm/fields/ChipsField.d.ts +4 -3
- package/dist/esm/CommandForm/fields/ChipsField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/ChipsField.js +3 -3
- package/dist/esm/CommandForm/fields/ChipsField.js.map +1 -1
- package/dist/esm/CommandForm/fields/ColorPickerField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/ColorPickerField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/ColorPickerField.js +16 -8
- package/dist/esm/CommandForm/fields/ColorPickerField.js.map +1 -1
- package/dist/esm/CommandForm/fields/DropdownField.d.ts +1 -1
- package/dist/esm/CommandForm/fields/DropdownField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/DropdownField.js +1 -4
- package/dist/esm/CommandForm/fields/DropdownField.js.map +1 -1
- package/dist/esm/CommandForm/fields/InputTextField.d.ts +1 -1
- package/dist/esm/CommandForm/fields/InputTextField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/InputTextField.js.map +1 -1
- package/dist/esm/CommandForm/fields/MultiSelectField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/MultiSelectField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/MultiSelectField.js +2 -8
- package/dist/esm/CommandForm/fields/MultiSelectField.js.map +1 -1
- package/dist/esm/CommandForm/fields/NumberField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/NumberField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/NumberField.js +1 -1
- package/dist/esm/CommandForm/fields/NumberField.js.map +1 -1
- package/dist/esm/CommandForm/fields/PasswordField.d.ts +13 -0
- package/dist/esm/CommandForm/fields/PasswordField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/PasswordField.js +20 -0
- package/dist/esm/CommandForm/fields/PasswordField.js.map +1 -0
- package/dist/esm/CommandForm/fields/RadioButtonField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/RadioButtonField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/RadioButtonField.js +2 -1
- package/dist/esm/CommandForm/fields/RadioButtonField.js.map +1 -1
- package/dist/esm/CommandForm/fields/RadioGroupField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/RadioGroupField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/RadioGroupField.js +2 -1
- package/dist/esm/CommandForm/fields/RadioGroupField.js.map +1 -1
- package/dist/esm/CommandForm/fields/RatingField.d.ts +14 -0
- package/dist/esm/CommandForm/fields/RatingField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/RatingField.js +19 -0
- package/dist/esm/CommandForm/fields/RatingField.js.map +1 -0
- package/dist/esm/CommandForm/fields/SliderField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/SliderField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/SliderField.js +1 -1
- package/dist/esm/CommandForm/fields/SliderField.js.map +1 -1
- package/dist/esm/CommandForm/fields/TextAreaField.d.ts +3 -3
- package/dist/esm/CommandForm/fields/TextAreaField.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/TextAreaField.js +2 -2
- package/dist/esm/CommandForm/fields/TextAreaField.js.map +1 -1
- package/dist/esm/CommandForm/fields/ToggleSwitchField.d.ts +13 -0
- package/dist/esm/CommandForm/fields/ToggleSwitchField.d.ts.map +1 -0
- package/dist/esm/CommandForm/fields/ToggleSwitchField.js +20 -0
- package/dist/esm/CommandForm/fields/ToggleSwitchField.js.map +1 -0
- package/dist/esm/CommandForm/fields/index.d.ts +3 -0
- package/dist/esm/CommandForm/fields/index.d.ts.map +1 -1
- package/dist/esm/CommandForm/fields/index.js +3 -0
- package/dist/esm/CommandForm/fields/index.js.map +1 -1
- package/dist/esm/CommandForm/index.js +3 -0
- package/dist/esm/CommandForm/index.js.map +1 -1
- package/dist/esm/Common/ActionMenubar.d.ts +21 -0
- package/dist/esm/Common/ActionMenubar.d.ts.map +1 -0
- package/dist/esm/Common/ActionMenubar.js +20 -0
- package/dist/esm/Common/ActionMenubar.js.map +1 -0
- package/dist/esm/Common/CratisComponentsProvider.d.ts +5 -3
- package/dist/esm/Common/CratisComponentsProvider.d.ts.map +1 -1
- package/dist/esm/Common/CratisComponentsProvider.js +27 -11
- package/dist/esm/Common/CratisComponentsProvider.js.map +1 -1
- package/dist/esm/Common/DatePickerInput.d.ts +22 -0
- package/dist/esm/Common/DatePickerInput.d.ts.map +1 -0
- package/dist/esm/Common/DatePickerInput.js +18 -0
- package/dist/esm/Common/DatePickerInput.js.map +1 -0
- package/dist/esm/Common/FormElement.d.ts +0 -1
- package/dist/esm/Common/FormElement.d.ts.map +1 -1
- package/dist/esm/Common/FormElement.js +0 -1
- package/dist/esm/Common/FormElement.js.map +1 -1
- package/dist/esm/Common/Tooltip.d.ts +2 -2
- package/dist/esm/Common/Tooltip.d.ts.map +1 -1
- package/dist/esm/Common/Tooltip.js +25 -13
- package/dist/esm/Common/Tooltip.js.map +1 -1
- package/dist/esm/Common/index.d.ts +2 -0
- package/dist/esm/Common/index.d.ts.map +1 -1
- package/dist/esm/Common/index.js +2 -0
- package/dist/esm/Common/index.js.map +1 -1
- package/dist/esm/DataPage/DataPage.d.ts +17 -10
- package/dist/esm/DataPage/DataPage.d.ts.map +1 -1
- package/dist/esm/DataPage/DataPage.js +19 -18
- package/dist/esm/DataPage/DataPage.js.map +1 -1
- package/dist/esm/DataPage/index.d.ts +1 -0
- package/dist/esm/DataPage/index.d.ts.map +1 -1
- package/dist/esm/DataPage/index.js +1 -0
- package/dist/esm/DataPage/index.js.map +1 -1
- package/dist/esm/DataTables/Column.d.ts +25 -0
- package/dist/esm/DataTables/Column.d.ts.map +1 -0
- package/dist/esm/DataTables/Column.js +24 -0
- package/dist/esm/DataTables/Column.js.map +1 -0
- package/dist/esm/DataTables/ColumnFilterMenu.d.ts +10 -0
- package/dist/esm/DataTables/ColumnFilterMenu.d.ts.map +1 -0
- package/dist/esm/DataTables/ColumnFilterMenu.js +44 -0
- package/dist/esm/DataTables/ColumnFilterMenu.js.map +1 -0
- package/dist/esm/DataTables/DataTableCore.d.ts +33 -0
- package/dist/esm/DataTables/DataTableCore.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableCore.js +59 -0
- package/dist/esm/DataTables/DataTableCore.js.map +1 -0
- package/dist/esm/DataTables/DataTableFilterMeta.d.ts +6 -0
- package/dist/esm/DataTables/DataTableFilterMeta.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableFilterMeta.js +2 -0
- package/dist/esm/DataTables/DataTableFilterMeta.js.map +1 -0
- package/dist/esm/DataTables/DataTableForObservableQuery.d.ts +9 -8
- package/dist/esm/DataTables/DataTableForObservableQuery.d.ts.map +1 -1
- package/dist/esm/DataTables/DataTableForObservableQuery.js +41 -64
- package/dist/esm/DataTables/DataTableForObservableQuery.js.map +1 -1
- package/dist/esm/DataTables/DataTableForQuery.d.ts +9 -8
- package/dist/esm/DataTables/DataTableForQuery.d.ts.map +1 -1
- package/dist/esm/DataTables/DataTableForQuery.js +17 -44
- package/dist/esm/DataTables/DataTableForQuery.js.map +1 -1
- package/dist/esm/DataTables/DataTableSelectionChangeEvent.d.ts +6 -0
- package/dist/esm/DataTables/DataTableSelectionChangeEvent.d.ts.map +1 -0
- package/dist/esm/DataTables/DataTableSelectionChangeEvent.js +2 -0
- package/dist/esm/DataTables/DataTableSelectionChangeEvent.js.map +1 -0
- package/dist/esm/DataTables/TablePaginator.d.ts +17 -0
- package/dist/esm/DataTables/TablePaginator.d.ts.map +1 -0
- package/dist/esm/DataTables/TablePaginator.js +22 -0
- package/dist/esm/DataTables/TablePaginator.js.map +1 -0
- package/dist/esm/DataTables/index.d.ts +4 -0
- package/dist/esm/DataTables/index.d.ts.map +1 -1
- package/dist/esm/DataTables/index.js +2 -0
- package/dist/esm/DataTables/index.js.map +1 -1
- package/dist/esm/DataTables/paginatorRange.d.ts +2 -0
- package/dist/esm/DataTables/paginatorRange.d.ts.map +1 -0
- package/dist/esm/DataTables/paginatorRange.js +21 -0
- package/dist/esm/DataTables/paginatorRange.js.map +1 -0
- package/dist/esm/DataTables/selectionKeys.d.ts +4 -0
- package/dist/esm/DataTables/selectionKeys.d.ts.map +1 -0
- package/dist/esm/DataTables/selectionKeys.js +34 -0
- package/dist/esm/DataTables/selectionKeys.js.map +1 -0
- package/dist/esm/Dialogs/BusyIndicatorDialog.d.ts.map +1 -1
- package/dist/esm/Dialogs/BusyIndicatorDialog.js +2 -2
- package/dist/esm/Dialogs/BusyIndicatorDialog.js.map +1 -1
- package/dist/esm/Dialogs/Dialog.d.ts +9 -7
- package/dist/esm/Dialogs/Dialog.d.ts.map +1 -1
- package/dist/esm/Dialogs/Dialog.js +45 -23
- package/dist/esm/Dialogs/Dialog.js.map +1 -1
- package/dist/esm/Display/Avatar.d.ts +11 -0
- package/dist/esm/Display/Avatar.d.ts.map +1 -0
- package/dist/esm/Display/Avatar.js +13 -0
- package/dist/esm/Display/Avatar.js.map +1 -0
- package/dist/esm/Display/Badge.d.ts +12 -0
- package/dist/esm/Display/Badge.d.ts.map +1 -0
- package/dist/esm/Display/Badge.js +11 -0
- package/dist/esm/Display/Badge.js.map +1 -0
- package/dist/esm/Display/Chip.d.ts +11 -0
- package/dist/esm/Display/Chip.d.ts.map +1 -0
- package/dist/esm/Display/Chip.js +11 -0
- package/dist/esm/Display/Chip.js.map +1 -0
- package/dist/esm/Display/ProgressBar.d.ts +8 -0
- package/dist/esm/Display/ProgressBar.d.ts.map +1 -0
- package/dist/esm/Display/ProgressBar.js +12 -0
- package/dist/esm/Display/ProgressBar.js.map +1 -0
- package/dist/esm/Display/Skeleton.d.ts +9 -0
- package/dist/esm/Display/Skeleton.d.ts.map +1 -0
- package/dist/esm/Display/Skeleton.js +18 -0
- package/dist/esm/Display/Skeleton.js.map +1 -0
- package/dist/esm/Display/Tag.d.ts +12 -0
- package/dist/esm/Display/Tag.d.ts.map +1 -0
- package/dist/esm/Display/Tag.js +12 -0
- package/dist/esm/Display/Tag.js.map +1 -0
- package/dist/esm/Display/index.d.ts +7 -0
- package/dist/esm/Display/index.d.ts.map +1 -0
- package/dist/esm/Display/index.js +10 -0
- package/dist/esm/Display/index.js.map +1 -0
- package/dist/esm/Dropdown/Dropdown.d.ts +33 -3
- package/dist/esm/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/Dropdown/Dropdown.js +15 -18
- package/dist/esm/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/Filter/FilterPanel.d.ts +3 -2
- package/dist/esm/Filter/FilterPanel.d.ts.map +1 -1
- package/dist/esm/Filter/FilterPanel.js +4 -5
- package/dist/esm/Filter/FilterPanel.js.map +1 -1
- package/dist/esm/Notifications/Toaster.d.ts +9 -0
- package/dist/esm/Notifications/Toaster.d.ts.map +1 -0
- package/dist/esm/Notifications/Toaster.js +43 -0
- package/dist/esm/Notifications/Toaster.js.map +1 -0
- package/dist/esm/Notifications/index.d.ts +4 -0
- package/dist/esm/Notifications/index.d.ts.map +1 -0
- package/dist/{cjs/types → esm/Notifications}/index.js +3 -5
- package/dist/esm/Notifications/index.js.map +1 -0
- package/dist/esm/Notifications/toast.d.ts +3 -0
- package/dist/esm/Notifications/toast.d.ts.map +1 -0
- package/dist/esm/Notifications/toast.js +2 -0
- package/dist/esm/Notifications/toast.js.map +1 -0
- package/dist/esm/Notifications/toastCommandResult.d.ts +11 -0
- package/dist/esm/Notifications/toastCommandResult.d.ts.map +1 -0
- package/dist/esm/Notifications/toastCommandResult.js +59 -0
- package/dist/esm/Notifications/toastCommandResult.js.map +1 -0
- package/dist/esm/ObjectContentEditor/ObjectContentEditor.d.ts.map +1 -1
- package/dist/esm/ObjectContentEditor/ObjectContentEditor.js +11 -15
- package/dist/esm/ObjectContentEditor/ObjectContentEditor.js.map +1 -1
- package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts +2 -2
- package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.d.ts.map +1 -1
- package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js +3 -3
- package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.js.map +1 -1
- package/dist/esm/PivotViewer/PivotViewer.d.ts +0 -1
- package/dist/esm/PivotViewer/PivotViewer.d.ts.map +1 -1
- package/dist/esm/PivotViewer/PivotViewer.js +0 -1
- package/dist/esm/PivotViewer/PivotViewer.js.map +1 -1
- package/dist/esm/PivotViewer/components/Spinner.d.ts +0 -1
- package/dist/esm/PivotViewer/components/Spinner.d.ts.map +1 -1
- package/dist/esm/PivotViewer/components/Spinner.js +2 -1
- package/dist/esm/PivotViewer/components/Spinner.js.map +1 -1
- package/dist/esm/SchemaEditor/NameCell.d.ts.map +1 -1
- package/dist/esm/SchemaEditor/NameCell.js +3 -2
- package/dist/esm/SchemaEditor/NameCell.js.map +1 -1
- package/dist/esm/SchemaEditor/SchemaEditor.d.ts +15 -1
- package/dist/esm/SchemaEditor/SchemaEditor.d.ts.map +1 -1
- package/dist/esm/SchemaEditor/SchemaEditor.js +45 -32
- package/dist/esm/SchemaEditor/SchemaEditor.js.map +1 -1
- package/dist/esm/SchemaEditor/TypeCell.d.ts +3 -1
- package/dist/esm/SchemaEditor/TypeCell.d.ts.map +1 -1
- package/dist/esm/SchemaEditor/TypeCell.js +7 -6
- package/dist/esm/SchemaEditor/TypeCell.js.map +1 -1
- package/dist/esm/SchemaEditor/index.js +1 -1
- package/dist/esm/TimeMachine/EventsView.d.ts +5 -4
- package/dist/esm/TimeMachine/EventsView.d.ts.map +1 -1
- package/dist/esm/TimeMachine/EventsView.js +3 -3
- package/dist/esm/TimeMachine/EventsView.js.map +1 -1
- package/dist/esm/TimeMachine/Properties.d.ts +0 -1
- package/dist/esm/TimeMachine/Properties.d.ts.map +1 -1
- package/dist/esm/TimeMachine/Properties.js +0 -1
- package/dist/esm/TimeMachine/Properties.js.map +1 -1
- package/dist/esm/TimeMachine/ReadModelView.d.ts +2 -0
- package/dist/esm/TimeMachine/ReadModelView.d.ts.map +1 -1
- package/dist/esm/TimeMachine/ReadModelView.js +3 -2
- package/dist/esm/TimeMachine/ReadModelView.js.map +1 -1
- package/dist/esm/TimeMachine/TimeMachine.d.ts +4 -1
- package/dist/esm/TimeMachine/TimeMachine.d.ts.map +1 -1
- package/dist/esm/TimeMachine/TimeMachine.js +5 -4
- package/dist/esm/TimeMachine/TimeMachine.js.map +1 -1
- package/dist/esm/TimeMachine/TimeMachineLabels.d.ts +12 -0
- package/dist/esm/TimeMachine/TimeMachineLabels.d.ts.map +1 -0
- package/dist/esm/TimeMachine/TimeMachineLabels.js +16 -0
- package/dist/esm/TimeMachine/TimeMachineLabels.js.map +1 -0
- package/dist/esm/TimeMachine/index.d.ts +2 -0
- package/dist/esm/TimeMachine/index.d.ts.map +1 -1
- package/dist/esm/TimeMachine/index.js +1 -0
- package/dist/esm/TimeMachine/index.js.map +1 -1
- package/dist/esm/Toolbar/Toolbar.d.ts +0 -1
- package/dist/esm/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/esm/Toolbar/Toolbar.js +0 -1
- package/dist/esm/Toolbar/Toolbar.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +22 -18
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/styles.css +4686 -0
- package/dist/esm/theme.css +357 -0
- package/dist/esm/tokens.css +32 -12
- package/package.json +40 -26
- package/dist/cjs/CommandDialog/CommandDialog.js +0 -195
- package/dist/cjs/CommandDialog/CommandDialog.js.map +0 -1
- package/dist/cjs/CommandDialog/CommandStepper.css +0 -24
- package/dist/cjs/CommandDialog/CommandStepper.js +0 -238
- package/dist/cjs/CommandDialog/CommandStepper.js.map +0 -1
- package/dist/cjs/CommandDialog/StepperCommandDialog.js +0 -207
- package/dist/cjs/CommandDialog/StepperCommandDialog.js.map +0 -1
- package/dist/cjs/CommandDialog/applyBeforeExecute.js +0 -42
- package/dist/cjs/CommandDialog/applyBeforeExecute.js.map +0 -1
- package/dist/cjs/CommandDialog/index.js +0 -16
- package/dist/cjs/CommandDialog/index.js.map +0 -1
- package/dist/cjs/CommandDialog/stepChildren.js +0 -31
- package/dist/cjs/CommandDialog/stepChildren.js.map +0 -1
- package/dist/cjs/CommandForm/AutoCommandForm.js +0 -49
- package/dist/cjs/CommandForm/AutoCommandForm.js.map +0 -1
- package/dist/cjs/CommandForm/defaultFieldTypeProviders.js +0 -24
- package/dist/cjs/CommandForm/defaultFieldTypeProviders.js.map +0 -1
- package/dist/cjs/CommandForm/fieldTypeProviderRegistry.js +0 -36
- package/dist/cjs/CommandForm/fieldTypeProviderRegistry.js.map +0 -1
- package/dist/cjs/CommandForm/fields/CalendarField.js +0 -32
- package/dist/cjs/CommandForm/fields/CalendarField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/CheckboxField.js +0 -22
- package/dist/cjs/CommandForm/fields/CheckboxField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/ChipsField.js +0 -28
- package/dist/cjs/CommandForm/fields/ChipsField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/ColorPickerField.js +0 -33
- package/dist/cjs/CommandForm/fields/ColorPickerField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/DropdownField.js +0 -31
- package/dist/cjs/CommandForm/fields/DropdownField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/InputTextField.js +0 -53
- package/dist/cjs/CommandForm/fields/InputTextField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/MultiSelectField.js +0 -36
- package/dist/cjs/CommandForm/fields/MultiSelectField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/NumberField.js +0 -23
- package/dist/cjs/CommandForm/fields/NumberField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/RadioButtonField.js +0 -23
- package/dist/cjs/CommandForm/fields/RadioButtonField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/RadioGroupField.js +0 -40
- package/dist/cjs/CommandForm/fields/RadioGroupField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/SliderField.js +0 -22
- package/dist/cjs/CommandForm/fields/SliderField.js.map +0 -1
- package/dist/cjs/CommandForm/fields/TextAreaField.js +0 -24
- package/dist/cjs/CommandForm/fields/TextAreaField.js.map +0 -1
- package/dist/cjs/CommandForm/index.js +0 -37
- package/dist/cjs/CommandForm/index.js.map +0 -1
- package/dist/cjs/Common/CratisComponentsProvider.js +0 -44
- package/dist/cjs/Common/CratisComponentsProvider.js.map +0 -1
- package/dist/cjs/Common/ErrorBoundary.js +0 -58
- package/dist/cjs/Common/ErrorBoundary.js.map +0 -1
- package/dist/cjs/Common/FormElement.css +0 -26
- package/dist/cjs/Common/FormElement.js +0 -23
- package/dist/cjs/Common/FormElement.js.map +0 -1
- package/dist/cjs/Common/Icon.js +0 -33
- package/dist/cjs/Common/Icon.js.map +0 -1
- package/dist/cjs/Common/Page.js +0 -23
- package/dist/cjs/Common/Page.js.map +0 -1
- package/dist/cjs/Common/Tooltip.css +0 -10
- package/dist/cjs/Common/Tooltip.js +0 -21
- package/dist/cjs/Common/Tooltip.js.map +0 -1
- package/dist/cjs/Common/index.js +0 -23
- package/dist/cjs/Common/index.js.map +0 -1
- package/dist/cjs/Common/normalizeIconClass.js +0 -48
- package/dist/cjs/Common/normalizeIconClass.js.map +0 -1
- package/dist/cjs/DataPage/DataPage.js +0 -219
- package/dist/cjs/DataPage/DataPage.js.map +0 -1
- package/dist/cjs/DataPage/DataPageLayout.js +0 -34
- package/dist/cjs/DataPage/DataPageLayout.js.map +0 -1
- package/dist/cjs/DataPage/index.js +0 -12
- package/dist/cjs/DataPage/index.js.map +0 -1
- package/dist/cjs/DataTables/DataTableForObservableQuery.js +0 -133
- package/dist/cjs/DataTables/DataTableForObservableQuery.js.map +0 -1
- package/dist/cjs/DataTables/DataTableForQuery.js +0 -96
- package/dist/cjs/DataTables/DataTableForQuery.js.map +0 -1
- package/dist/cjs/DataTables/index.js +0 -11
- package/dist/cjs/DataTables/index.js.map +0 -1
- package/dist/cjs/Dialogs/BusyIndicatorDialog.js +0 -63
- package/dist/cjs/Dialogs/BusyIndicatorDialog.js.map +0 -1
- package/dist/cjs/Dialogs/ConfirmationDialog.js +0 -16
- package/dist/cjs/Dialogs/ConfirmationDialog.js.map +0 -1
- package/dist/cjs/Dialogs/Dialog.js +0 -203
- package/dist/cjs/Dialogs/Dialog.js.map +0 -1
- package/dist/cjs/Dialogs/DialogInitialFocus.js +0 -49
- package/dist/cjs/Dialogs/DialogInitialFocus.js.map +0 -1
- package/dist/cjs/Dialogs/index.js +0 -18
- package/dist/cjs/Dialogs/index.js.map +0 -1
- package/dist/cjs/Dropdown/Dropdown.js +0 -29
- package/dist/cjs/Dropdown/Dropdown.js.map +0 -1
- package/dist/cjs/Dropdown/index.js +0 -9
- package/dist/cjs/Dropdown/index.js.map +0 -1
- package/dist/cjs/Filter/FilterEditor.js +0 -28
- package/dist/cjs/Filter/FilterEditor.js.map +0 -1
- package/dist/cjs/Filter/FilterPanel.css +0 -459
- package/dist/cjs/Filter/FilterPanel.js +0 -109
- package/dist/cjs/Filter/FilterPanel.js.map +0 -1
- package/dist/cjs/Filter/RangeHistogramFilter.js +0 -121
- package/dist/cjs/Filter/RangeHistogramFilter.js.map +0 -1
- package/dist/cjs/Filter/index.js +0 -18
- package/dist/cjs/Filter/index.js.map +0 -1
- package/dist/cjs/Filter/useFilterState.js +0 -111
- package/dist/cjs/Filter/useFilterState.js.map +0 -1
- package/dist/cjs/Filter/utils.js +0 -28
- package/dist/cjs/Filter/utils.js.map +0 -1
- package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js +0 -268
- package/dist/cjs/ObjectContentEditor/ObjectContentEditor.js.map +0 -1
- package/dist/cjs/ObjectContentEditor/index.js +0 -9
- package/dist/cjs/ObjectContentEditor/index.js.map +0 -1
- package/dist/cjs/ObjectContentEditor/objectHelpers.js +0 -25
- package/dist/cjs/ObjectContentEditor/objectHelpers.js.map +0 -1
- package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.css +0 -6
- package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js +0 -49
- package/dist/cjs/ObjectNavigationalBar/ObjectNavigationalBar.js.map +0 -1
- package/dist/cjs/ObjectNavigationalBar/breadcrumbHelpers.js +0 -21
- package/dist/cjs/ObjectNavigationalBar/breadcrumbHelpers.js.map +0 -1
- package/dist/cjs/ObjectNavigationalBar/index.js +0 -9
- package/dist/cjs/ObjectNavigationalBar/index.js.map +0 -1
- package/dist/cjs/PivotViewer/PivotViewer.css +0 -1323
- package/dist/cjs/PivotViewer/PivotViewer.js +0 -307
- package/dist/cjs/PivotViewer/PivotViewer.js.map +0 -1
- package/dist/cjs/PivotViewer/components/AxisLabels.js +0 -28
- package/dist/cjs/PivotViewer/components/AxisLabels.js.map +0 -1
- package/dist/cjs/PivotViewer/components/DetailPanel.js +0 -42
- package/dist/cjs/PivotViewer/components/DetailPanel.js.map +0 -1
- package/dist/cjs/PivotViewer/components/FilterPanel.js +0 -29
- package/dist/cjs/PivotViewer/components/FilterPanel.js.map +0 -1
- package/dist/cjs/PivotViewer/components/FilterPanelContainer.js +0 -11
- package/dist/cjs/PivotViewer/components/FilterPanelContainer.js.map +0 -1
- package/dist/cjs/PivotViewer/components/PivotCanvas.js +0 -558
- package/dist/cjs/PivotViewer/components/PivotCanvas.js.map +0 -1
- package/dist/cjs/PivotViewer/components/PivotViewerMain.js +0 -98
- package/dist/cjs/PivotViewer/components/PivotViewerMain.js.map +0 -1
- package/dist/cjs/PivotViewer/components/Spinner.css +0 -77
- package/dist/cjs/PivotViewer/components/Spinner.js +0 -11
- package/dist/cjs/PivotViewer/components/Spinner.js.map +0 -1
- package/dist/cjs/PivotViewer/components/Toolbar.js +0 -44
- package/dist/cjs/PivotViewer/components/Toolbar.js.map +0 -1
- package/dist/cjs/PivotViewer/components/ToolbarContainer.js +0 -11
- package/dist/cjs/PivotViewer/components/ToolbarContainer.js.map +0 -1
- package/dist/cjs/PivotViewer/components/pivot/animation.js +0 -90
- package/dist/cjs/PivotViewer/components/pivot/animation.js.map +0 -1
- package/dist/cjs/PivotViewer/components/pivot/colorResolver.js +0 -66
- package/dist/cjs/PivotViewer/components/pivot/colorResolver.js.map +0 -1
- package/dist/cjs/PivotViewer/components/pivot/constants.js +0 -22
- package/dist/cjs/PivotViewer/components/pivot/constants.js.map +0 -1
- package/dist/cjs/PivotViewer/components/pivot/groups.js +0 -166
- package/dist/cjs/PivotViewer/components/pivot/groups.js.map +0 -1
- package/dist/cjs/PivotViewer/components/pivot/sprites.js +0 -279
- package/dist/cjs/PivotViewer/components/pivot/sprites.js.map +0 -1
- package/dist/cjs/PivotViewer/components/pivot/visibility.js +0 -359
- package/dist/cjs/PivotViewer/components/pivot/visibility.js.map +0 -1
- package/dist/cjs/PivotViewer/constants.js +0 -16
- package/dist/cjs/PivotViewer/constants.js.map +0 -1
- package/dist/cjs/PivotViewer/engine/layout.js +0 -123
- package/dist/cjs/PivotViewer/engine/layout.js.map +0 -1
- package/dist/cjs/PivotViewer/engine/store.js +0 -365
- package/dist/cjs/PivotViewer/engine/store.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useAnimationModeTracking.js +0 -45
- package/dist/cjs/PivotViewer/hooks/useAnimationModeTracking.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useCardSelection.js +0 -74
- package/dist/cjs/PivotViewer/hooks/useCardSelection.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useContainerDimensions.js +0 -41
- package/dist/cjs/PivotViewer/hooks/useContainerDimensions.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useCurrentFilters.js +0 -58
- package/dist/cjs/PivotViewer/hooks/useCurrentFilters.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useDetailPanelClose.js +0 -73
- package/dist/cjs/PivotViewer/hooks/useDetailPanelClose.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useDimensionState.js +0 -45
- package/dist/cjs/PivotViewer/hooks/useDimensionState.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useFieldExtractors.js +0 -52
- package/dist/cjs/PivotViewer/hooks/useFieldExtractors.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useFilterOptions.js +0 -26
- package/dist/cjs/PivotViewer/hooks/useFilterOptions.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useFilterState.js +0 -101
- package/dist/cjs/PivotViewer/hooks/useFilterState.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/usePanning.js +0 -138
- package/dist/cjs/PivotViewer/hooks/usePanning.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/usePivotEngine.js +0 -229
- package/dist/cjs/PivotViewer/hooks/usePivotEngine.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useScrollSync.js +0 -27
- package/dist/cjs/PivotViewer/hooks/useScrollSync.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useViewModeScrollHandling.js +0 -52
- package/dist/cjs/PivotViewer/hooks/useViewModeScrollHandling.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useWheelZoom.js +0 -106
- package/dist/cjs/PivotViewer/hooks/useWheelZoom.js.map +0 -1
- package/dist/cjs/PivotViewer/hooks/useZoomState.js +0 -37
- package/dist/cjs/PivotViewer/hooks/useZoomState.js.map +0 -1
- package/dist/cjs/PivotViewer/index.js +0 -13
- package/dist/cjs/PivotViewer/index.js.map +0 -1
- package/dist/cjs/PivotViewer/types.js +0 -33
- package/dist/cjs/PivotViewer/types.js.map +0 -1
- package/dist/cjs/PivotViewer/utils/animations.js +0 -169
- package/dist/cjs/PivotViewer/utils/animations.js.map +0 -1
- package/dist/cjs/PivotViewer/utils/cardPosition.js +0 -82
- package/dist/cjs/PivotViewer/utils/cardPosition.js.map +0 -1
- package/dist/cjs/PivotViewer/utils/constants.js +0 -19
- package/dist/cjs/PivotViewer/utils/constants.js.map +0 -1
- package/dist/cjs/PivotViewer/utils/idResolution.js +0 -50
- package/dist/cjs/PivotViewer/utils/idResolution.js.map +0 -1
- package/dist/cjs/PivotViewer/utils/selection.js +0 -188
- package/dist/cjs/PivotViewer/utils/selection.js.map +0 -1
- package/dist/cjs/PivotViewer/utils/utils.js +0 -153
- package/dist/cjs/PivotViewer/utils/utils.js.map +0 -1
- package/dist/cjs/SchemaEditor/NameCell.js +0 -38
- package/dist/cjs/SchemaEditor/NameCell.js.map +0 -1
- package/dist/cjs/SchemaEditor/SchemaEditor.js +0 -333
- package/dist/cjs/SchemaEditor/SchemaEditor.js.map +0 -1
- package/dist/cjs/SchemaEditor/SchemaEditor.module.css +0 -15
- package/dist/cjs/SchemaEditor/TypeCell.js +0 -102
- package/dist/cjs/SchemaEditor/TypeCell.js.map +0 -1
- package/dist/cjs/SchemaEditor/index.js +0 -11
- package/dist/cjs/SchemaEditor/index.js.map +0 -1
- package/dist/cjs/SchemaEditor/schemaHelpers.js +0 -41
- package/dist/cjs/SchemaEditor/schemaHelpers.js.map +0 -1
- package/dist/cjs/TimeMachine/EventsView.css +0 -213
- package/dist/cjs/TimeMachine/EventsView.js +0 -70
- package/dist/cjs/TimeMachine/EventsView.js.map +0 -1
- package/dist/cjs/TimeMachine/Properties.css +0 -57
- package/dist/cjs/TimeMachine/Properties.js +0 -34
- package/dist/cjs/TimeMachine/Properties.js.map +0 -1
- package/dist/cjs/TimeMachine/ReadModelView.js +0 -51
- package/dist/cjs/TimeMachine/ReadModelView.js.map +0 -1
- package/dist/cjs/TimeMachine/TimeMachine.css +0 -587
- package/dist/cjs/TimeMachine/TimeMachine.js +0 -110
- package/dist/cjs/TimeMachine/TimeMachine.js.map +0 -1
- package/dist/cjs/TimeMachine/index.js +0 -15
- package/dist/cjs/TimeMachine/index.js.map +0 -1
- package/dist/cjs/TimeMachine/propertiesHelpers.js +0 -16
- package/dist/cjs/TimeMachine/propertiesHelpers.js.map +0 -1
- package/dist/cjs/Toolbar/Toolbar.css +0 -357
- package/dist/cjs/Toolbar/Toolbar.js +0 -15
- package/dist/cjs/Toolbar/Toolbar.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarButton.js +0 -42
- package/dist/cjs/Toolbar/ToolbarButton.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarContext.js +0 -14
- package/dist/cjs/Toolbar/ToolbarContext.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarDragContext.js +0 -24
- package/dist/cjs/Toolbar/ToolbarDragContext.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarFanOutItem.js +0 -75
- package/dist/cjs/Toolbar/ToolbarFanOutItem.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarFolder.js +0 -55
- package/dist/cjs/Toolbar/ToolbarFolder.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarFolderContext.js +0 -20
- package/dist/cjs/Toolbar/ToolbarFolderContext.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarGroup.js +0 -107
- package/dist/cjs/Toolbar/ToolbarGroup.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarLayout.js +0 -119
- package/dist/cjs/Toolbar/ToolbarLayout.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarSection.js +0 -127
- package/dist/cjs/Toolbar/ToolbarSection.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarSeparator.js +0 -14
- package/dist/cjs/Toolbar/ToolbarSeparator.js.map +0 -1
- package/dist/cjs/Toolbar/ToolbarSlot.js +0 -125
- package/dist/cjs/Toolbar/ToolbarSlot.js.map +0 -1
- package/dist/cjs/Toolbar/index.js +0 -29
- package/dist/cjs/Toolbar/index.js.map +0 -1
- package/dist/cjs/index.js +0 -41
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/package.json +0 -3
- package/dist/cjs/tailwind-utilities.css +0 -1159
- package/dist/cjs/tokens.css +0 -83
- package/dist/cjs/types/TypeFormat.js +0 -22
- package/dist/cjs/types/TypeFormat.js.map +0 -1
- package/dist/cjs/types/index.js.map +0 -1
- package/dist/cjs/useOverlayZIndex.js +0 -65
- package/dist/cjs/useOverlayZIndex.js.map +0 -1
- package/dist/esm/CommandDialog/CommandStepper.css +0 -24
- package/dist/esm/Common/FormElement.css +0 -26
- package/dist/esm/Common/Tooltip.css +0 -10
- package/dist/esm/Filter/FilterPanel.css +0 -459
- package/dist/esm/ObjectNavigationalBar/ObjectNavigationalBar.css +0 -6
- package/dist/esm/PivotViewer/PivotViewer.css +0 -1323
- package/dist/esm/PivotViewer/components/Spinner.css +0 -77
- package/dist/esm/SchemaEditor/SchemaEditor.module.css +0 -15
- package/dist/esm/TimeMachine/EventsView.css +0 -213
- package/dist/esm/TimeMachine/Properties.css +0 -57
- package/dist/esm/TimeMachine/TimeMachine.css +0 -587
- package/dist/esm/Toolbar/Toolbar.css +0 -357
- package/dist/esm/tailwind-utilities.css +0 -1159
- package/dist/esm/tsconfig.tsbuildinfo +0 -1
- package/dist/esm/useOverlayZIndex.d.ts +0 -3
- package/dist/esm/useOverlayZIndex.d.ts.map +0 -1
- package/dist/esm/useOverlayZIndex.js +0 -62
- package/dist/esm/useOverlayZIndex.js.map +0 -1
- package/dist/esm/vite.config.d.ts +0 -3
- package/dist/esm/vite.config.d.ts.map +0 -1
- package/dist/esm/vite.config.js +0 -77
- package/dist/esm/vite.config.js.map +0 -1
- package/dist/esm/vitest.setup.d.ts +0 -2
- package/dist/esm/vitest.setup.d.ts.map +0 -1
- package/dist/esm/vitest.setup.js +0 -6
- package/dist/esm/vitest.setup.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,8 +7,8 @@ A collection of React components for building modern applications with Cratis.
|
|
|
7
7
|
### Minimum Versions
|
|
8
8
|
|
|
9
9
|
- TypeScript: 4.7+
|
|
10
|
-
- React:
|
|
11
|
-
- Node.js:
|
|
10
|
+
- React: 19.0+
|
|
11
|
+
- Node.js: 18+ (for development)
|
|
12
12
|
|
|
13
13
|
### TypeScript Configuration
|
|
14
14
|
|
|
@@ -16,32 +16,55 @@ This package is compatible with all modern TypeScript `moduleResolution` strateg
|
|
|
16
16
|
|
|
17
17
|
- ✅ `"bundler"` (recommended for Vite, esbuild, webpack 5+)
|
|
18
18
|
- ✅ `"node16"` / `"nodenext"` (for Node.js projects)
|
|
19
|
-
- ✅ `"node"` (legacy, but supported)
|
|
20
19
|
|
|
21
|
-
The package
|
|
20
|
+
The package is **ESM-only** (`"type": "module"`) — PrimeReact 11 dropped the
|
|
21
|
+
CommonJS build. It ships subpath `exports` with per-entry `types` for optimal
|
|
22
|
+
module resolution and tree-shaking. Consume it from an ESM or bundler context;
|
|
23
|
+
there is no `require()` entry.
|
|
22
24
|
|
|
23
25
|
## Installation
|
|
24
26
|
|
|
25
27
|
```bash
|
|
26
|
-
npm install @cratis/components primereact primeicons
|
|
28
|
+
npm install @cratis/components primereact @primereact/core @primereact/headless primeicons
|
|
27
29
|
# or
|
|
28
|
-
yarn add @cratis/components primereact primeicons
|
|
30
|
+
yarn add @cratis/components primereact @primereact/core @primereact/headless primeicons
|
|
29
31
|
```
|
|
30
32
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
**PrimeReact is a peer dependency** as of 3.0.0. You install it; the library uses
|
|
34
|
+
your copy. This is deliberate: when `primereact` was a regular dependency, an app
|
|
35
|
+
that also depended on it could end up with **two copies** — and two copies mean two
|
|
36
|
+
`PrimeReactProvider` React contexts, so components rendered from the library read a
|
|
37
|
+
different config, theme and z-index registry than components you render yourself.
|
|
38
|
+
Nothing errors; overlays just stack wrongly and `pt` / `unstyled` silently fail to
|
|
39
|
+
apply. If your app carries a `resolutions` / `overrides` pin to collapse PrimeReact
|
|
40
|
+
into one copy, you can now delete it.
|
|
41
|
+
|
|
42
|
+
`primereact` pins `@primereact/core` and `@primereact/headless` to its own exact
|
|
43
|
+
version, so one `primereact@11.x` install gives you matching copies of all three;
|
|
44
|
+
declaring them is what makes a strict installer (pnpm, Yarn PnP) resolve them for the
|
|
45
|
+
library too. `@primereact/types` is an **optional** peer — needed only if your own
|
|
46
|
+
code imports the prop types the wrappers re-export.
|
|
47
|
+
|
|
48
|
+
The other **peer dependencies** you provide are `react` / `react-dom` (**19+**), the
|
|
49
|
+
`@cratis/arc*` packages (`>=20.3.1 <22` — Arc 20 and 21 both work), `reflect-metadata`
|
|
50
|
+
and `tsyringe`; you typically already have these in a Cratis app. `pixi.js`,
|
|
51
|
+
`framer-motion`, `allotment` and `react-icons` remain regular dependencies and are
|
|
52
|
+
installed for you. The styled `@primeuix/themes` presets are optional and only needed
|
|
53
|
+
if you opt into a licensed preset (see [Styling](#styling)).
|
|
54
|
+
|
|
55
|
+
### Stylesheets
|
|
56
|
+
|
|
57
|
+
Component CSS is no longer imported by the JavaScript — import it once in your app
|
|
58
|
+
entry point, in this order:
|
|
35
59
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
| `PivotViewer` | `pixi.js` (canvas) and `framer-motion` (animated panels) |
|
|
42
|
-
| `DataPage` resizable layout | `allotment` |
|
|
60
|
+
```ts
|
|
61
|
+
import '@cratis/components/tokens'; // the --cratis-* token layer
|
|
62
|
+
import '@cratis/components/styles'; // every component stylesheet, in one file
|
|
63
|
+
import '@cratis/components/theme'; // optional — the license-free baseline look
|
|
64
|
+
```
|
|
43
65
|
|
|
44
|
-
|
|
66
|
+
`./styles` also vendors `allotment/dist/style.css`, which `DataPage` needs for its
|
|
67
|
+
split view, so you do not have to import that yourself.
|
|
45
68
|
|
|
46
69
|
## Usage
|
|
47
70
|
|
|
@@ -72,7 +95,9 @@ Components:
|
|
|
72
95
|
- `@cratis/components/DataPage`
|
|
73
96
|
- `@cratis/components/DataTables`
|
|
74
97
|
- `@cratis/components/Dialogs`
|
|
98
|
+
- `@cratis/components/Display` — `Tag`, `Badge`, `Chip`, `Skeleton`, `Avatar`, `ProgressBar`
|
|
75
99
|
- `@cratis/components/Dropdown`
|
|
100
|
+
- `@cratis/components/Notifications` — `Toaster`, `toast`, `toastCommandResult`
|
|
76
101
|
- `@cratis/components/ObjectContentEditor`
|
|
77
102
|
- `@cratis/components/ObjectNavigationalBar`
|
|
78
103
|
- `@cratis/components/PivotViewer`
|
|
@@ -83,8 +108,9 @@ Components:
|
|
|
83
108
|
|
|
84
109
|
Stylesheets:
|
|
85
110
|
|
|
86
|
-
- `@cratis/components/
|
|
87
|
-
- `@cratis/components/
|
|
111
|
+
- `@cratis/components/theme` — the **Cratis baseline theme** (light + dark, no PrimeUI license); import it and add `class="cratis-theme"` to skin every component from the token layer
|
|
112
|
+
- `@cratis/components/styles` — **required**: every component stylesheet, the Tailwind utilities used inside the package, and the `allotment` rules `DataPage` needs, in one file
|
|
113
|
+
- `@cratis/components/tokens` — **required**: the `--cratis-*` CSS variable tokens every component reads from
|
|
88
114
|
|
|
89
115
|
## Styling
|
|
90
116
|
|
|
@@ -93,41 +119,43 @@ Styling is designed to stay out of the way: choose the setup that matches how
|
|
|
93
119
|
much control you want, and the other layers stay invisible.
|
|
94
120
|
|
|
95
121
|
> **Tip — see each setup live:** every Storybook story includes a **Styling**
|
|
96
|
-
> toolbar (paintbrush icon) that flips between
|
|
97
|
-
>
|
|
98
|
-
>
|
|
99
|
-
> Open any story (`yarn dev`)
|
|
100
|
-
> each setup.
|
|
122
|
+
> toolbar (paintbrush icon) that flips between the modes demonstrating the
|
|
123
|
+
> setups below: *Aura Dark* and *Aura Light* (a licensed `@primeuix/themes`
|
|
124
|
+
> preset), *Cratis baseline theme* (light and dark, no license), *Unstyled
|
|
125
|
+
> (bare structure)*, and *Unstyled + Tailwind pt*. Open any story (`yarn dev`)
|
|
126
|
+
> and switch modes to see the same component under each setup.
|
|
101
127
|
|
|
102
128
|
### TL;DR — choose a styling setup
|
|
103
129
|
|
|
104
|
-
| Setup | When | Effort | What you write |
|
|
105
|
-
|
|
106
|
-
| **
|
|
107
|
-
| **
|
|
108
|
-
| **
|
|
130
|
+
| Setup | When | Effort | License | What you write |
|
|
131
|
+
|---|---|---|---|---|
|
|
132
|
+
| **Cratis baseline theme** | You want a polished default look with no license. | Lowest | None | `unstyled` + `import '@cratis/components/theme'` + `class="cratis-theme"` |
|
|
133
|
+
| **A styled `@primeuix/themes` preset** | You want a prebuilt design system to tweak from. | Low | PrimeUI key | `value={{ theme: { preset } }}` on the provider |
|
|
134
|
+
| **A custom palette over a preset** | You want the preset's structure but your own colors. | Low | PrimeUI key | A preset + CSS variable overrides |
|
|
135
|
+
| **Fully unstyled** | You're integrating into a tightly controlled design system. | Highest | None | `unstyled: true` + a `pt` preset in CSS or Tailwind |
|
|
109
136
|
|
|
110
|
-
> **Why
|
|
137
|
+
> **Why you need a theme, a baseline stylesheet, or a `pt` preset**
|
|
111
138
|
>
|
|
112
|
-
>
|
|
113
|
-
>
|
|
114
|
-
>
|
|
115
|
-
>
|
|
116
|
-
> raw HTML primitives.
|
|
139
|
+
> PrimeReact 11 is **unstyled-first**: the primitives render structural markup
|
|
140
|
+
> with no built-in visuals. A look comes from one of three sources — a
|
|
141
|
+
> `@primeuix/themes` preset (token-based, license-gated), the Cratis baseline
|
|
142
|
+
> theme (`@cratis/components/theme`, no license), or your own `pt`/CSS. Load
|
|
143
|
+
> none of them and the components render as their raw HTML primitives.
|
|
117
144
|
>
|
|
118
|
-
> The `--cratis-*` token layer is
|
|
119
|
-
>
|
|
120
|
-
>
|
|
121
|
-
> PrimeReact widgets
|
|
122
|
-
>
|
|
123
|
-
>
|
|
145
|
+
> The `--cratis-*` token layer is an **additive Cratis-scoped tint** for
|
|
146
|
+
> surfaces *our* wrappers own (validation error text, the FormElement addon,
|
|
147
|
+
> breadcrumb borders, etc.). It is not, by itself, enough to skin the
|
|
148
|
+
> PrimeReact widgets — pair it with the baseline theme, a preset, or a `pt`
|
|
149
|
+
> preset. Override the PrimeReact variables (or a preset's `--p-*` tokens) when
|
|
150
|
+
> you want the whole UI in your palette.
|
|
124
151
|
|
|
125
|
-
All
|
|
126
|
-
because the same provider, tokens, and `pt` hooks stay available.
|
|
152
|
+
All setups share the same one-line provider setup. You can change direction
|
|
153
|
+
later because the same provider, tokens, and `pt` hooks stay available.
|
|
127
154
|
|
|
128
155
|
### One-line setup (every styling option)
|
|
129
156
|
|
|
130
157
|
```tsx
|
|
158
|
+
import '@cratis/components/tokens';
|
|
131
159
|
import '@cratis/components/styles';
|
|
132
160
|
import { CratisComponentsProvider } from '@cratis/components';
|
|
133
161
|
|
|
@@ -138,40 +166,75 @@ export const App = () => (
|
|
|
138
166
|
);
|
|
139
167
|
```
|
|
140
168
|
|
|
141
|
-
- `@cratis/components/
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
`
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
169
|
+
- `@cratis/components/tokens` is the `--cratis-*` CSS variable layer every
|
|
170
|
+
internal component reads from. It is the seam that lets the library span
|
|
171
|
+
PrimeReact major versions, so it is always needed.
|
|
172
|
+
- `@cratis/components/styles` is every component stylesheet in one file, plus
|
|
173
|
+
the Tailwind utility classes used inside the package and the third-party
|
|
174
|
+
`allotment` rules `DataPage` needs. Components no longer import their own
|
|
175
|
+
CSS — that is what made the published package unloadable in Node
|
|
176
|
+
([#118](https://github.com/Cratis/Components/issues/118)) — so this import is
|
|
177
|
+
required, not optional.
|
|
178
|
+
- `CratisComponentsProvider` is a thin wrapper over `@primereact/core`'s
|
|
179
|
+
`PrimeReactProvider` so Cratis has one place to layer in defaults (including
|
|
180
|
+
the optional `value={{ theme: { preset } }}` styled layer). Drop in the raw
|
|
181
|
+
`PrimeReactProvider` from `@primereact/core` if you'd rather.
|
|
182
|
+
|
|
183
|
+
The setups below differ only in **what else** you load on top of this
|
|
184
|
+
provider setup.
|
|
151
185
|
|
|
152
186
|
---
|
|
153
187
|
|
|
154
|
-
### Use a
|
|
188
|
+
### Use a styled preset
|
|
155
189
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
190
|
+
PrimeReact 11 dropped the v10 `primereact/resources/themes/*/theme.css`
|
|
191
|
+
stylesheets in favor of the token-based `@primeuix/themes` layer. Apply a
|
|
192
|
+
preset by passing `value={{ theme: { preset } }}` to `CratisComponentsProvider` —
|
|
193
|
+
no theme CSS import. PrimeReact's own widgets paint themselves from the preset, and the
|
|
194
|
+
`--cratis-*` tokens cascade to the matching variables so Cratis-scoped surfaces
|
|
195
|
+
follow along.
|
|
159
196
|
|
|
160
197
|
```tsx
|
|
161
|
-
|
|
162
|
-
import 'primereact/resources/themes/lara-dark-blue/theme.css';
|
|
198
|
+
import Aura from '@primeuix/themes/aura'; // or lara / nora / material
|
|
163
199
|
import 'primeicons/primeicons.css';
|
|
164
200
|
import '@cratis/components/styles';
|
|
165
201
|
|
|
166
202
|
import { CratisComponentsProvider } from '@cratis/components';
|
|
167
203
|
|
|
168
204
|
export const App = () => (
|
|
169
|
-
<CratisComponentsProvider>
|
|
205
|
+
<CratisComponentsProvider value={{ theme: { preset: Aura } }}>
|
|
170
206
|
<YourApp />
|
|
171
207
|
</CratisComponentsProvider>
|
|
172
208
|
);
|
|
173
209
|
```
|
|
174
210
|
|
|
211
|
+
Omit `theme` entirely to stay unstyled-first — ship only structure plus the
|
|
212
|
+
`--cratis-*` tokens and bring your own visuals (see the pass-through / `pt`
|
|
213
|
+
options below).
|
|
214
|
+
|
|
215
|
+
### Use the Cratis baseline theme (no license)
|
|
216
|
+
|
|
217
|
+
Want a polished default look **without a PrimeUI license**? Ship the components
|
|
218
|
+
unstyled and import the Cratis baseline theme — a token-based stylesheet that
|
|
219
|
+
styles every component from the `--cratis-*` layer:
|
|
220
|
+
|
|
221
|
+
```tsx
|
|
222
|
+
import 'primeicons/primeicons.css';
|
|
223
|
+
import '@cratis/components/theme'; // the baseline theme
|
|
224
|
+
|
|
225
|
+
export const App = () => (
|
|
226
|
+
<CratisComponentsProvider value={{ unstyled: true }}>
|
|
227
|
+
<div className="cratis-theme"> {/* scope: put on <body>, app root, or a subtree */}
|
|
228
|
+
<YourApp />
|
|
229
|
+
</div>
|
|
230
|
+
</CratisComponentsProvider>
|
|
231
|
+
);
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Add `cratis-dark` to an ancestor for the dark palette. The theme defers to a
|
|
235
|
+
`@primeuix/themes` preset's `--p-*` tokens when one is present, so you can layer
|
|
236
|
+
it under a preset too, and every rule is overridable via your own CSS or `pt`.
|
|
237
|
+
|
|
175
238
|
#### Override a single component with CSS
|
|
176
239
|
|
|
177
240
|
Plain CSS works fine on top of the theme. Target either PrimeReact's class
|
|
@@ -255,11 +318,10 @@ independently if you want Cratis surfaces to differ from PrimeReact widgets.
|
|
|
255
318
|
```
|
|
256
319
|
|
|
257
320
|
```tsx
|
|
258
|
-
// 1.
|
|
259
|
-
import 'primereact/resources/themes/lara-dark-blue/theme.css';
|
|
321
|
+
// 1. A styled preset provides the structure (apply it via the provider — see above).
|
|
260
322
|
import 'primeicons/primeicons.css';
|
|
261
323
|
import '@cratis/components/styles';
|
|
262
|
-
// 2. Your palette overrides — must come after the
|
|
324
|
+
// 2. Your palette overrides — must come after the styles so they win.
|
|
263
325
|
import './palette.override.css';
|
|
264
326
|
```
|
|
265
327
|
|
|
@@ -290,7 +352,6 @@ Tailwind handles cascade and dark mode:
|
|
|
290
352
|
```css
|
|
291
353
|
/* app.css */
|
|
292
354
|
@import "tailwindcss";
|
|
293
|
-
@import "primereact/resources/themes/lara-dark-blue/theme.css";
|
|
294
355
|
@import "@cratis/components/styles";
|
|
295
356
|
|
|
296
357
|
@layer base {
|
|
@@ -352,7 +413,7 @@ through PrimeReact's `pt` (pass-through) mechanism, your own CSS, or both.
|
|
|
352
413
|
Components render structurally only and become a blank canvas.
|
|
353
414
|
|
|
354
415
|
```tsx
|
|
355
|
-
import '@cratis/components/styles'; //
|
|
416
|
+
import '@cratis/components/styles'; // component rules + Tailwind utilities, still needed when unstyled
|
|
356
417
|
import { CratisComponentsProvider } from '@cratis/components';
|
|
357
418
|
|
|
358
419
|
export const App = () => (
|
|
@@ -412,7 +473,7 @@ Same shape, Tailwind utilities as the class strings:
|
|
|
412
473
|
// pt-preset.ts
|
|
413
474
|
export const globalPt = {
|
|
414
475
|
button: {
|
|
415
|
-
root: { className: 'inline-flex items-center px-4 py-2 rounded-lg bg-sky-
|
|
476
|
+
root: { className: 'inline-flex items-center px-4 py-2 rounded-lg bg-sky-700 text-white hover:bg-sky-600 disabled:opacity-50' },
|
|
416
477
|
},
|
|
417
478
|
dialog: {
|
|
418
479
|
root: { className: 'rounded-2xl shadow-2xl overflow-hidden' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandDialog.d.ts","sourceRoot":"","sources":["../../../CommandDialog/CommandDialog.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAKH,KAAK,gBAAgB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAsB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAWtF,MAAM,WAAW,kBAAkB,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,GAAG,MAAM,CAC3E,SAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,GAAG,iBAAiB,CAAC,EAC/E,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IAcjC,eAAe,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAOlD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;
|
|
1
|
+
{"version":3,"file":"CommandDialog.d.ts","sourceRoot":"","sources":["../../../CommandDialog/CommandDialog.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAKH,KAAK,gBAAgB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAsB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAWtF,MAAM,WAAW,kBAAkB,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,GAAG,MAAM,CAC3E,SAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,GAAG,iBAAiB,CAAC,EAC/E,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC;IAcjC,eAAe,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAOlD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AA2VD,eAAO,MAAM,aAAa;KAxEM,QAAQ,SAAS,MAAM,WAAW,SAAS,kBAAkB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,CAAC;;uBAiElF;YAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;SAAE;;;CAO5B,CAAC"}
|
|
@@ -5,7 +5,7 @@ import React, { useState } from 'react';
|
|
|
5
5
|
import { CommandForm, useCommandFormContext, useCommandInstance, CommandFormFieldWrapper } from '@cratis/arc.react/commands';
|
|
6
6
|
import { applyBeforeExecute } from './applyBeforeExecute.js';
|
|
7
7
|
|
|
8
|
-
const CommandDialogWrapper = ({ title, visible, width, style, contentStyle, resizable, buttons, initialFocus, okLabel, cancelLabel, yesLabel, noLabel, isValid, onClose, onConfirm, onCancel, onSuccess, onValidationFailure, onFailed, onBeforeExecute, className, pt, ptOptions, unstyled, children }) => {
|
|
8
|
+
const CommandDialogWrapper = ({ title, visible, width, style, contentStyle, resizable, buttons, initialFocus, okLabel, cancelLabel, yesLabel, noLabel, dismissable, closeAriaLabel, isValid, onClose, onConfirm, onCancel, onSuccess, onValidationFailure, onFailed, onBeforeExecute, className, pt, ptOptions, unstyled, children }) => {
|
|
9
9
|
const { setCommandValues, setCommandResult, isValid: isCommandFormValid } = useCommandFormContext();
|
|
10
10
|
const commandInstance = useCommandInstance();
|
|
11
11
|
const [isBusy, setIsBusy] = useState(false);
|
|
@@ -62,7 +62,7 @@ const CommandDialogWrapper = ({ title, visible, width, style, contentStyle, resi
|
|
|
62
62
|
};
|
|
63
63
|
const processedChildren = processChildren(children);
|
|
64
64
|
const isDialogValid = (isValid !== false) && isCommandFormValid;
|
|
65
|
-
return (jsx(Dialog, { title: title, visible: visible, width: width, style: style, contentStyle: contentStyle, resizable: resizable, buttons: buttons, initialFocus: initialFocus, onClose: onClose, onConfirm: handleConfirm, onCancel: onCancel, okLabel: okLabel, cancelLabel: cancelLabel, yesLabel: yesLabel, noLabel: noLabel, isValid: isDialogValid, isBusy: isBusy, className: className, pt: pt, ptOptions: ptOptions, unstyled: unstyled, children: jsx("div", { style: { display: 'flex', flexDirection: 'column', width: '100%' }, children: processedChildren }) }));
|
|
65
|
+
return (jsx(Dialog, { title: title, visible: visible, width: width, style: style, contentStyle: contentStyle, resizable: resizable, buttons: buttons, initialFocus: initialFocus, onClose: onClose, onConfirm: handleConfirm, onCancel: onCancel, okLabel: okLabel, cancelLabel: cancelLabel, yesLabel: yesLabel, noLabel: noLabel, dismissable: dismissable, closeAriaLabel: closeAriaLabel, isValid: isDialogValid, isBusy: isBusy, className: className, pt: pt, ptOptions: ptOptions, unstyled: unstyled, children: jsx("div", { style: { display: 'flex', flexDirection: 'column', width: '100%' }, children: processedChildren }) }));
|
|
66
66
|
};
|
|
67
67
|
/**
|
|
68
68
|
* A {@link Dialog} that hosts a Cratis Arc `CommandForm`, runs the bound
|
|
@@ -181,8 +181,8 @@ const CommandDialogWrapper = ({ title, visible, width, style, contentStyle, resi
|
|
|
181
181
|
* @param props - {@link CommandDialogProps}.
|
|
182
182
|
*/
|
|
183
183
|
const CommandDialogComponent = (props) => {
|
|
184
|
-
const { title, visible, width, style, contentStyle, resizable, buttons = DialogButtons.OkCancel, initialFocus, okLabel, cancelLabel, yesLabel, noLabel, isValid, onClose, onConfirm, onCancel, onBeforeExecute, className, pt, ptOptions, unstyled, children, ...commandFormProps } = props;
|
|
185
|
-
return (jsx(CommandForm, { ...commandFormProps, children: jsx(CommandDialogWrapper, { title: title, visible: visible, width: width, style: style, contentStyle: contentStyle, resizable: resizable, buttons: buttons, initialFocus: initialFocus, okLabel: okLabel, cancelLabel: cancelLabel, yesLabel: yesLabel, noLabel: noLabel, isValid: isValid, onClose: onClose, onConfirm: onConfirm, onCancel: onCancel, onSuccess: props.onSuccess, onValidationFailure: props.onValidationFailure, onFailed: props.onFailed, onBeforeExecute: onBeforeExecute, className: className, pt: pt, ptOptions: ptOptions, unstyled: unstyled, children: children }) }));
|
|
184
|
+
const { title, visible, width, style, contentStyle, resizable, buttons = DialogButtons.OkCancel, initialFocus, okLabel, cancelLabel, yesLabel, noLabel, dismissable, closeAriaLabel, isValid, onClose, onConfirm, onCancel, onBeforeExecute, className, pt, ptOptions, unstyled, children, ...commandFormProps } = props;
|
|
185
|
+
return (jsx(CommandForm, { ...commandFormProps, children: jsx(CommandDialogWrapper, { title: title, visible: visible, width: width, style: style, contentStyle: contentStyle, resizable: resizable, buttons: buttons, initialFocus: initialFocus, okLabel: okLabel, cancelLabel: cancelLabel, yesLabel: yesLabel, noLabel: noLabel, dismissable: dismissable, closeAriaLabel: closeAriaLabel, isValid: isValid, onClose: onClose, onConfirm: onConfirm, onCancel: onCancel, onSuccess: props.onSuccess, onValidationFailure: props.onValidationFailure, onFailed: props.onFailed, onBeforeExecute: onBeforeExecute, className: className, pt: pt, ptOptions: ptOptions, unstyled: unstyled, children: children }) }));
|
|
186
186
|
};
|
|
187
187
|
const CommandDialogColumnWrapper = ({ children }) => (jsx(CommandForm.Column, { children: children }));
|
|
188
188
|
CommandDialogColumnWrapper.displayName = 'CommandFormColumn';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandDialog.js","sources":["../../../CommandDialog/CommandDialog.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":";;;;;;;AAmDA,MAAM,oBAAoB,GAAG,CAA8C,EACvE,KAAK,EACL,OAAO,EACP,KAAK,EACL,KAAK,EACL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,YAAY,EACZ,OAAO,EACP,WAAW,EACX,QAAQ,EACR,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,SAAS,EACT,mBAAmB,EACnB,QAAQ,EACR,eAAe,EACf,SAAS,EACT,EAAE,EACF,SAAS,EACT,QAAQ,EACR,QAAQ,
|
|
1
|
+
{"version":3,"file":"CommandDialog.js","sources":["../../../CommandDialog/CommandDialog.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
|
|
@@ -1,9 +1,23 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { StepperRootProps } from '@primereact/types/primitive/stepper';
|
|
3
3
|
import { type CommandFormProps } from '@cratis/arc.react/commands';
|
|
4
4
|
import { type BeforeExecuteCallback } from './applyBeforeExecute';
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
export interface StepperChangeEvent {
|
|
6
|
+
index: number;
|
|
7
|
+
}
|
|
8
|
+
export type StepperOrientation = 'horizontal' | 'vertical';
|
|
9
|
+
export type StepperHeaderPosition = 'top' | 'bottom';
|
|
10
|
+
export interface StepperCustomizationProps {
|
|
11
|
+
linear?: boolean;
|
|
12
|
+
orientation?: StepperOrientation;
|
|
13
|
+
headerPosition?: StepperHeaderPosition;
|
|
14
|
+
start?: React.ReactNode;
|
|
15
|
+
end?: React.ReactNode;
|
|
16
|
+
onChangeStep?: (event: StepperChangeEvent) => void;
|
|
17
|
+
pt?: StepperRootProps['pt'];
|
|
18
|
+
ptOptions?: StepperRootProps['ptOptions'];
|
|
19
|
+
unstyled?: boolean;
|
|
20
|
+
}
|
|
7
21
|
export interface CommandStepperContentProps extends StepperCustomizationProps {
|
|
8
22
|
activeStep: number;
|
|
9
23
|
visitedSteps: Set<number>;
|
|
@@ -26,6 +40,6 @@ export interface CommandStepperProps<TCommand extends object, TResponse = object
|
|
|
26
40
|
onBeforeExecute?: BeforeExecuteCallback<TCommand>;
|
|
27
41
|
children?: React.ReactNode;
|
|
28
42
|
}
|
|
29
|
-
export declare const CommandStepperContent: ({ activeStep, visitedSteps, children, onActiveStepChange, onVisitedStepsChange, onStepErrorsChange, getFieldError, showNavigation, showSubmit, nextLabel, previousLabel, okLabel, isBusy, isSubmitting, isSubmitDisabled, onSubmit, orientation, headerPosition,
|
|
43
|
+
export declare const CommandStepperContent: ({ activeStep, visitedSteps, children, onActiveStepChange, onVisitedStepsChange, onStepErrorsChange, getFieldError, showNavigation, showSubmit, nextLabel, previousLabel, okLabel, isBusy, isSubmitting, isSubmitDisabled, onSubmit, linear, orientation, headerPosition, start, end, onChangeStep, pt, ptOptions, unstyled, }: CommandStepperContentProps) => React.JSX.Element;
|
|
30
44
|
export declare const CommandStepper: <TCommand extends object = object, TResponse = object>(props: CommandStepperProps<TCommand, TResponse>) => React.JSX.Element;
|
|
31
45
|
//# sourceMappingURL=CommandStepper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandStepper.d.ts","sourceRoot":"","sources":["../../../CommandDialog/CommandStepper.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"CommandStepper.d.ts","sourceRoot":"","sources":["../../../CommandDialog/CommandStepper.tsx"],"names":[],"mappings":"AAGA,OAAO,KAA2D,MAAM,OAAO,CAAC;AAEhF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,OAAO,EAKH,KAAK,gBAAgB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAsB,KAAK,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAkBtF,MAAM,WAAW,kBAAkB;IAE/B,KAAK,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,CAAC;AAG3D,MAAM,MAAM,qBAAqB,GAAG,KAAK,GAAG,QAAQ,CAAC;AAUrD,MAAM,WAAW,yBAAyB;IAOtC,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC,cAAc,CAAC,EAAE,qBAAqB,CAAC;IAEvC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,GAAG,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEtB,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAEnD,EAAE,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAE5B,SAAS,CAAC,EAAE,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAE1C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,0BAA2B,SAAQ,yBAAyB;IAEzE,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAE1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjD,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAE3D,kBAAkB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAErD,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC;IAE/C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,mBAAmB,CAAC,QAAQ,SAAS,MAAM,EAAE,SAAS,GAAG,MAAM,CAC5E,SAAQ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,UAAU,GAAG,iBAAiB,CAAC,EAC/E,IAAI,CAAC,0BAA0B,EAAE,YAAY,GAAG,cAAc,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,eAAe,GAAG,cAAc,GAAG,kBAAkB,GAAG,UAAU,CAAC;IAaxL,eAAe,CAAC,EAAE,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAElD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAsDD,eAAO,MAAM,qBAAqB,GAAI,+TA0BnC,0BAA0B,sBA2J5B,CAAC;AAkKF,eAAO,MAAM,cAAc,GAAI,QAAQ,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,GAAG,MAAM,EAC/E,OAAO,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,sBAoDlD,CAAC"}
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import React, { useMemo, useEffect, useState } from 'react';
|
|
3
3
|
import { Stepper } from 'primereact/stepper';
|
|
4
4
|
import { Button } from 'primereact/button';
|
|
5
5
|
import { CommandForm, useCommandFormContext, useCommandInstance, CommandFormFieldWrapper } from '@cratis/arc.react/commands';
|
|
6
6
|
import { applyBeforeExecute } from './applyBeforeExecute.js';
|
|
7
7
|
import { getStepPanels } from './stepChildren.js';
|
|
8
|
-
import './CommandStepper.css';
|
|
9
8
|
|
|
9
|
+
// PrimeReact 11's Stepper annotates each step header as role="tab" and each panel
|
|
10
|
+
// as role="tabpanel", with `aria-controls` pointing at element ids it never
|
|
11
|
+
// renders — a dangling-reference + orphaned-tab pattern (the list is not a
|
|
12
|
+
// role="tablist") that axe flags as critical. The headless stepper implements no
|
|
13
|
+
// keyboard navigation bound to these roles (steps navigate by click on the native
|
|
14
|
+
// <button>), so stripping the broken tab semantics is safe: it leaves natively
|
|
15
|
+
// keyboard-accessible buttons and a plain content region. `undefined` in `pt`
|
|
16
|
+
// removes the attribute the primitive would otherwise set.
|
|
17
|
+
const stripBrokenTabRole = { root: { role: undefined, 'aria-controls': undefined } };
|
|
10
18
|
/** Extracts the property name from an accessor function like `c => c.name`. */
|
|
11
19
|
const getPropertyName = (accessor) => {
|
|
12
20
|
if (typeof accessor !== 'function')
|
|
@@ -52,12 +60,14 @@ const processChildren = (nodes) => {
|
|
|
52
60
|
return child;
|
|
53
61
|
});
|
|
54
62
|
};
|
|
55
|
-
|
|
63
|
+
/** The value used to identify a step in PrimeReact 11's Stepper — its index as a string. */
|
|
64
|
+
const stepValue = (index) => String(index);
|
|
65
|
+
const CommandStepperContent = ({ activeStep, visitedSteps, children, onActiveStepChange, onVisitedStepsChange, onStepErrorsChange, getFieldError, showNavigation = true, showSubmit = true, nextLabel = 'Next', previousLabel = 'Previous', okLabel = 'Submit', isBusy = false, isSubmitting = false, isSubmitDisabled = false, onSubmit, linear = true, orientation = 'horizontal', headerPosition = 'top', start, end, onChangeStep, pt, ptOptions, unstyled, }) => {
|
|
56
66
|
// The steps that actually render. Conditional steps (`{condition && <StepperPanel/>}`)
|
|
57
67
|
// leave falsy children behind, so the count, the per-step validation state and what the
|
|
58
68
|
// Stepper renders are all derived from this one list — they cannot drift apart.
|
|
59
|
-
const
|
|
60
|
-
const stepCount =
|
|
69
|
+
const panels = useMemo(() => getStepPanels(children), [children]);
|
|
70
|
+
const stepCount = panels.length;
|
|
61
71
|
// A conditional step can vanish after the user has advanced past it, which leaves the
|
|
62
72
|
// incoming index pointing at a step that is no longer rendered. Clamp it into the set that
|
|
63
73
|
// is, so the panel shown, the validation state read and the buttons offered all belong to a
|
|
@@ -65,61 +75,39 @@ const CommandStepperContent = ({ activeStep, visitedSteps, children, onActiveSte
|
|
|
65
75
|
const currentStep = Math.min(Math.max(activeStep, 0), Math.max(stepCount - 1, 0));
|
|
66
76
|
const isLastStep = currentStep >= stepCount - 1;
|
|
67
77
|
const isFirstStep = currentStep <= 0;
|
|
68
|
-
const stepFieldNames = useMemo(() =>
|
|
69
|
-
const stepProps = step.props;
|
|
70
|
-
return extractFieldNamesFromNode(stepProps.children);
|
|
71
|
-
}), [steps]);
|
|
78
|
+
const stepFieldNames = useMemo(() => panels.map((panel) => extractFieldNamesFromNode(panel.props.children)), [panels]);
|
|
72
79
|
const stepErrors = useMemo(() => stepFieldNames.map(fields => fields.some(fieldName => !!getFieldError?.(fieldName))), [stepFieldNames, getFieldError]);
|
|
73
80
|
useEffect(() => {
|
|
74
81
|
onStepErrorsChange?.(stepErrors);
|
|
75
82
|
}, [onStepErrorsChange, stepErrors]);
|
|
76
83
|
const isCurrentStepInvalid = stepErrors[currentStep] ?? false;
|
|
77
84
|
const hasAnyStepErrors = stepErrors.some(hasError => hasError);
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
const existingStyle = existing.style;
|
|
103
|
-
return {
|
|
104
|
-
...existing,
|
|
105
|
-
style: { ...existingStyle, backgroundColor: bgColor, color: 'var(--cratis-primary-color-text)' }
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
}, [pt, stepErrors, visitedSteps]);
|
|
111
|
-
const handleChangeStep = event => {
|
|
112
|
-
onChangeStep?.(event);
|
|
113
|
-
const index = event.index;
|
|
114
|
-
if (typeof index === 'number') {
|
|
115
|
-
if (index > currentStep && isCurrentStepInvalid) {
|
|
116
|
-
return;
|
|
117
|
-
}
|
|
118
|
-
if (index > currentStep) {
|
|
119
|
-
onVisitedStepsChange?.(new Set(visitedSteps).add(currentStep));
|
|
120
|
-
}
|
|
121
|
-
onActiveStepChange?.(index);
|
|
85
|
+
// The per-step number indicator paints red when a visited step still has a
|
|
86
|
+
// field error and green once a step has been visited without errors — a
|
|
87
|
+
// traffic-light status marker that is intentionally theme-independent, so
|
|
88
|
+
// the literal color names are appropriate here (and let specs assert on the
|
|
89
|
+
// computed background reliably).
|
|
90
|
+
const numberStyle = (index) => {
|
|
91
|
+
const hasError = stepErrors[index] ?? false;
|
|
92
|
+
const isVisited = visitedSteps.has(index);
|
|
93
|
+
const backgroundColor = hasError ? 'red' : isVisited ? 'green' : undefined;
|
|
94
|
+
if (!backgroundColor)
|
|
95
|
+
return undefined;
|
|
96
|
+
return { backgroundColor, color: 'var(--cratis-primary-color-text)' };
|
|
97
|
+
};
|
|
98
|
+
const handleValueChange = event => {
|
|
99
|
+
const raw = event.value;
|
|
100
|
+
const index = typeof raw === 'number' ? raw : parseInt(String(raw ?? ''), 10);
|
|
101
|
+
if (Number.isNaN(index))
|
|
102
|
+
return;
|
|
103
|
+
onChangeStep?.({ index });
|
|
104
|
+
if (index > currentStep && isCurrentStepInvalid) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (index > currentStep) {
|
|
108
|
+
onVisitedStepsChange?.(new Set(visitedSteps).add(currentStep));
|
|
122
109
|
}
|
|
110
|
+
onActiveStepChange?.(index);
|
|
123
111
|
};
|
|
124
112
|
const handlePrevious = () => {
|
|
125
113
|
onActiveStepChange?.(Math.max(0, currentStep - 1));
|
|
@@ -131,9 +119,13 @@ const CommandStepperContent = ({ activeStep, visitedSteps, children, onActiveSte
|
|
|
131
119
|
onVisitedStepsChange?.(new Set(visitedSteps).add(currentStep));
|
|
132
120
|
onActiveStepChange?.(Math.min(stepCount - 1, currentStep + 1));
|
|
133
121
|
};
|
|
134
|
-
|
|
122
|
+
const stepperList = (jsx(Stepper.List, { children: panels.map((panel, index) => (jsxs(Stepper.Step, { value: stepValue(index), children: [jsxs(Stepper.Header, { pt: stripBrokenTabRole, children: [jsx(Stepper.Number, { style: numberStyle(index), children: index + 1 }), jsx(Stepper.Title, { children: panel.props.header })] }), index < stepCount - 1 && jsx(Stepper.Separator, {})] }, index))) }));
|
|
123
|
+
const stepperPanels = (jsx(Stepper.Panels, { children: panels.map((panel, index) => (jsx(Stepper.Panel, { value: stepValue(index), pt: stripBrokenTabRole, children: processChildren(panel.props.children) }, index))) }));
|
|
124
|
+
return (jsxs("div", { className: `cratis-command-stepper cratis-command-stepper--${orientation}`, "data-orientation": orientation, children: [start, jsx(Stepper.Root, { value: stepValue(currentStep), linear: linear, onValueChange: handleValueChange, "data-orientation": orientation, pt: pt, ptOptions: ptOptions, unstyled: unstyled, children: headerPosition === 'bottom'
|
|
125
|
+
? (jsxs(Fragment, { children: [stepperPanels, stepperList] }))
|
|
126
|
+
: (jsxs(Fragment, { children: [stepperList, stepperPanels] })) }), end, showNavigation && (jsxs("div", { style: { display: 'flex', alignItems: 'center', width: '100%', gap: '0.75rem' }, children: [!isFirstStep && (jsxs(Button, { variant: "outlined", onClick: handlePrevious, disabled: isBusy, style: { width: 'auto' }, children: [jsx("i", { className: "pi pi-arrow-left" }), jsx("span", { children: previousLabel })] })), jsx("div", { style: { flex: 1 } }), !isLastStep && (jsxs(Button, { onClick: handleNext, disabled: isBusy || isSubmitting || isCurrentStepInvalid, style: { width: 'auto' }, children: [jsx("span", { children: nextLabel }), jsx("i", { className: "pi pi-arrow-right" })] })), isLastStep && showSubmit && (jsxs(Button, { onClick: () => void onSubmit?.(), disabled: isBusy || isSubmitting || isSubmitDisabled || hasAnyStepErrors, autoFocus: true, style: { width: 'auto' }, children: [jsx("i", { className: isSubmitting ? 'pi pi-spin pi-spinner' : 'pi pi-check' }), jsx("span", { children: okLabel })] }))] }))] }));
|
|
135
127
|
};
|
|
136
|
-
const CommandStepperWrapper = ({ children, onStepErrorsChange, showNavigation, showSubmit, nextLabel, previousLabel, okLabel, isBusy, orientation, headerPosition,
|
|
128
|
+
const CommandStepperWrapper = ({ children, onStepErrorsChange, showNavigation, showSubmit, nextLabel, previousLabel, okLabel, isBusy, linear, orientation, headerPosition, start, end, onChangeStep, pt, ptOptions, unstyled, onSuccess, onValidationFailure, onFailed, onBeforeExecute, }) => {
|
|
137
129
|
const { getFieldError, isValid: isCommandFormValid, setCommandValues, setCommandResult } = useCommandFormContext();
|
|
138
130
|
const commandInstance = useCommandInstance();
|
|
139
131
|
const [activeStep, setActiveStep] = useState(0);
|
|
@@ -164,7 +156,7 @@ const CommandStepperWrapper = ({ children, onStepErrorsChange, showNavigation, s
|
|
|
164
156
|
}
|
|
165
157
|
await onSuccess?.(result.response);
|
|
166
158
|
};
|
|
167
|
-
return (jsx(CommandStepperContent, { activeStep: activeStep, visitedSteps: visitedSteps, onActiveStepChange: setActiveStep, onVisitedStepsChange: setVisitedSteps, onStepErrorsChange: onStepErrorsChange, getFieldError: getFieldError, showNavigation: showNavigation, showSubmit: showSubmit, nextLabel: nextLabel, previousLabel: previousLabel, okLabel: okLabel, isBusy: isBusy, isSubmitting: isSubmitting, isSubmitDisabled: !isCommandFormValid, onSubmit: handleSubmit, orientation: orientation, headerPosition: headerPosition,
|
|
159
|
+
return (jsx(CommandStepperContent, { activeStep: activeStep, visitedSteps: visitedSteps, onActiveStepChange: setActiveStep, onVisitedStepsChange: setVisitedSteps, onStepErrorsChange: onStepErrorsChange, getFieldError: getFieldError, showNavigation: showNavigation, showSubmit: showSubmit, nextLabel: nextLabel, previousLabel: previousLabel, okLabel: okLabel, isBusy: isBusy, isSubmitting: isSubmitting, isSubmitDisabled: !isCommandFormValid, onSubmit: handleSubmit, linear: linear, orientation: orientation, headerPosition: headerPosition, start: start, end: end, onChangeStep: onChangeStep, pt: pt, ptOptions: ptOptions, unstyled: unstyled, children: children }));
|
|
168
160
|
};
|
|
169
161
|
/**
|
|
170
162
|
* A multi-step wizard backed by a single Cratis Arc command — the embedded,
|
|
@@ -205,8 +197,7 @@ const CommandStepperWrapper = ({ children, onStepErrorsChange, showNavigation, s
|
|
|
205
197
|
* Stepper directly.
|
|
206
198
|
*
|
|
207
199
|
* ```tsx
|
|
208
|
-
* import { CommandStepper } from '@cratis/components/
|
|
209
|
-
* import { StepperPanel } from 'primereact/stepperpanel';
|
|
200
|
+
* import { CommandStepper, StepperPanel } from '@cratis/components/CommandDialog';
|
|
210
201
|
* import { RegisterAuthor } from './RegisterAuthor'; // proxy from C#
|
|
211
202
|
*
|
|
212
203
|
* export const RegisterAuthorPage = () => (
|
|
@@ -227,8 +218,8 @@ const CommandStepperWrapper = ({ children, onStepErrorsChange, showNavigation, s
|
|
|
227
218
|
* @param props - {@link CommandStepperProps}.
|
|
228
219
|
*/
|
|
229
220
|
const CommandStepper = (props) => {
|
|
230
|
-
const { children, onStepErrorsChange, showNavigation, showSubmit, nextLabel, previousLabel, okLabel, isBusy, orientation, headerPosition,
|
|
231
|
-
return (jsx(CommandForm, { ...commandFormProps, children: jsx(CommandStepperWrapper, { onStepErrorsChange: onStepErrorsChange, showNavigation: showNavigation, showSubmit: showSubmit, nextLabel: nextLabel, previousLabel: previousLabel, okLabel: okLabel, isBusy: isBusy, orientation: orientation, headerPosition: headerPosition,
|
|
221
|
+
const { children, onStepErrorsChange, showNavigation, showSubmit, nextLabel, previousLabel, okLabel, isBusy, linear, orientation, headerPosition, start, end, onChangeStep, pt, ptOptions, unstyled, onBeforeExecute, ...commandFormProps } = props;
|
|
222
|
+
return (jsx(CommandForm, { ...commandFormProps, children: jsx(CommandStepperWrapper, { onStepErrorsChange: onStepErrorsChange, showNavigation: showNavigation, showSubmit: showSubmit, nextLabel: nextLabel, previousLabel: previousLabel, okLabel: okLabel, isBusy: isBusy, linear: linear, orientation: orientation, headerPosition: headerPosition, start: start, end: end, onChangeStep: onChangeStep, pt: pt, ptOptions: ptOptions, unstyled: unstyled, onSuccess: props.onSuccess, onValidationFailure: props.onValidationFailure, onFailed: props.onFailed, onBeforeExecute: onBeforeExecute, children: children }) }));
|
|
232
223
|
};
|
|
233
224
|
|
|
234
225
|
export { CommandStepper, CommandStepperContent };
|