@rebasepro/admin 0.8.0 → 0.9.1-canary.09aaf62
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 +26 -26
- package/dist/{CollectionEditorDialog-BO_aQ-Z4.js → CollectionEditorDialog-DbPpDDwb.js} +40 -18
- package/dist/CollectionEditorDialog-DbPpDDwb.js.map +1 -0
- package/dist/{PropertyEditView-DKzOpMjR.js → PropertyEditView-DfJbZ67t.js} +81 -73
- package/dist/PropertyEditView-DfJbZ67t.js.map +1 -0
- package/dist/{RouterCollectionsStudioView-BQTIExjA.js → RouterCollectionsStudioView-C6XQ7Il5.js} +5 -5
- package/dist/RouterCollectionsStudioView-C6XQ7Il5.js.map +1 -0
- package/dist/collection_editor/_cms_internals.d.ts +3 -3
- package/dist/collection_editor/api/generateCollectionApi.d.ts +8 -8
- package/dist/collection_editor/extensibility_types.d.ts +3 -3
- package/dist/collection_editor/index.d.ts +2 -2
- package/dist/collection_editor/pgColumnToProperty.d.ts +3 -3
- package/dist/collection_editor/serializable_types.d.ts +7 -7
- package/dist/collection_editor/serializable_utils.d.ts +8 -8
- package/dist/collection_editor/types/collection_editor_controller.d.ts +5 -5
- package/dist/collection_editor/types/collection_inference.d.ts +2 -2
- package/dist/collection_editor/types/config_controller.d.ts +7 -7
- package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +2 -2
- package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +2 -2
- package/dist/collection_editor/ui/KanbanSetupAction.d.ts +2 -2
- package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +3 -3
- package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +4 -4
- package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionJsonImportDialog.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +4 -4
- package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/EntityActionsEditTab.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/GetCodeDialog.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +5 -5
- package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +3 -3
- package/dist/collection_editor/ui/collection_editor/SwitchControl.d.ts +1 -1
- package/dist/collection_editor/ui/collection_editor/templates/blog_template.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/templates/pages_template.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/templates/products_template.d.ts +2 -2
- package/dist/collection_editor/ui/collection_editor/templates/users_template.d.ts +2 -2
- package/dist/collection_editor/useLocalCollectionsConfigController.d.ts +2 -2
- package/dist/collection_editor/useSafeSnackbarController.d.ts +1 -1
- package/dist/collection_editor/validateCollectionJson.d.ts +2 -2
- package/dist/collection_editor_ui.js +5 -5
- package/dist/collection_editor_ui.js.map +1 -1
- package/dist/components/CollectionPanel.d.ts +4 -4
- package/dist/components/{EntityCollectionTable/EntityCollectionRowActions.d.ts → CollectionTableBinding/CollectionRowActions.d.ts} +3 -3
- package/dist/components/CollectionTableBinding/CollectionTableBinding.d.ts +28 -0
- package/dist/components/{EntityCollectionTable/EntityCollectionTableProps.d.ts → CollectionTableBinding/CollectionTableBindingProps.d.ts} +2 -2
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.d.ts +2 -2
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.d.ts +2 -2
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.d.ts +2 -2
- package/dist/components/CollectionTableBinding/index.d.ts +6 -0
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.d.ts +1 -1
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.d.ts +2 -2
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.d.ts +3 -3
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.d.ts +1 -1
- package/dist/components/{EntityCollectionView/EntityBoardCard.d.ts → CollectionViewBinding/BoardCardBinding.d.ts} +8 -8
- package/dist/components/{EntityCollectionView/EntityCollectionBoardView.d.ts → CollectionViewBinding/CollectionBoardViewBinding.d.ts} +4 -4
- package/dist/components/{EntityCollectionView/EntityCollectionCardView.d.ts → CollectionViewBinding/CollectionCardViewBinding.d.ts} +5 -5
- package/dist/components/{EntityCollectionView/EntityCollectionListView.d.ts → CollectionViewBinding/CollectionListViewBinding.d.ts} +4 -4
- package/dist/components/{EntityCollectionView/EntityCollectionViewActions.d.ts → CollectionViewBinding/CollectionViewActions.d.ts} +4 -4
- package/dist/components/{EntityCollectionView/EntityCollectionView.d.ts → CollectionViewBinding/CollectionViewBinding.d.ts} +4 -4
- package/dist/components/{EntityCollectionView/EntityCollectionViewStartActions.d.ts → CollectionViewBinding/CollectionViewStartActions.d.ts} +4 -4
- package/dist/components/CollectionViewBinding/EntityCardBinding.d.ts +21 -0
- package/dist/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.d.ts +3 -3
- package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.d.ts +3 -3
- package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.d.ts +2 -2
- package/dist/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.d.ts +2 -2
- package/dist/components/{EntityCollectionView/useEntityPreviewSlots.d.ts → CollectionViewBinding/usePreviewSlots.d.ts} +5 -5
- package/dist/components/DeleteEntityDialog.d.ts +4 -4
- package/dist/components/{EntityDetailView.d.ts → DetailViewBinding.d.ts} +5 -5
- package/dist/components/EditFormActions.d.ts +3 -0
- package/dist/components/{EntityEditView.d.ts → EditViewBinding.d.ts} +9 -9
- package/dist/components/{EntityPreview.d.ts → EntityPreviewBinding.d.ts} +13 -13
- package/dist/components/EntityViewBinding.d.ts +13 -0
- package/dist/components/{EntityJsonPreview.d.ts → JsonPreviewBinding.d.ts} +1 -1
- package/dist/components/{RebaseCMS.d.ts → RebaseAdmin.d.ts} +2 -2
- package/dist/components/RebaseLayout.d.ts +5 -4
- package/dist/components/RebaseNavigation.d.ts +1 -1
- package/dist/components/RebaseShell.d.ts +1 -0
- package/dist/components/ReferenceTable/{EntitySelectionTable.d.ts → SelectionTableBinding.d.ts} +5 -5
- package/dist/components/SelectableTable/SelectableTable.d.ts +6 -6
- package/dist/components/SelectableTable/SelectableTableContext.d.ts +3 -3
- package/dist/components/SelectableTable/SelectionStore.d.ts +2 -2
- package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +6 -1
- package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +7 -1
- package/dist/components/SelectableTable/filters/FilterFieldBinding.d.ts +40 -0
- package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +7 -1
- package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +7 -1
- package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +7 -1
- package/dist/components/SideDialogs.d.ts +1 -1
- package/dist/components/SidePanelBinding.d.ts +11 -0
- package/dist/components/{SideEntityProvider.d.ts → SidePanelProvider.d.ts} +7 -7
- package/dist/components/history/EntityHistoryEntry.d.ts +2 -2
- package/dist/components/history/LastEditedByIndicator.d.ts +2 -2
- package/dist/components/index.d.ts +15 -14
- package/dist/contexts/SidePanelControllerContext.d.ts +3 -0
- package/dist/data_export/export/ExportCollectionAction.d.ts +3 -3
- package/dist/data_import/components/ImportSaveInProgress.d.ts +2 -2
- package/dist/editor.js +1 -1
- package/dist/editor.js.map +1 -1
- package/dist/form/EntityForm.d.ts +1 -1
- package/dist/form/PropertyFieldBinding.d.ts +1 -1
- package/dist/form/components/LocalChangesMenu.d.ts +1 -1
- package/dist/form/components/StorageUploadProgress.d.ts +1 -1
- package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +1 -1
- package/dist/form/form_utils.d.ts +2 -2
- package/dist/{history-B3cqBzEV.js → history-GSa4BgDt.js} +7 -7
- package/dist/history-GSa4BgDt.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -4
- package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +2 -2
- package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +5 -5
- package/dist/hooks/navigation/useNavigationResolution.d.ts +4 -4
- package/dist/hooks/navigation/useResolvedCollections.d.ts +7 -7
- package/dist/hooks/navigation/useTopLevelNavigation.d.ts +2 -2
- package/dist/hooks/navigation/utils.d.ts +5 -5
- package/dist/hooks/useBuildSidePanel.d.ts +6 -0
- package/dist/hooks/useCMSContext.d.ts +2 -2
- package/dist/hooks/{useEntityHistory.d.ts → useHistory.d.ts} +1 -1
- package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
- package/dist/hooks/{useEntitySelectionDialog.d.ts → useSelectionDialog.d.ts} +2 -2
- package/dist/hooks/useSideDialogsController.d.ts +1 -1
- package/dist/hooks/useSidePanel.d.ts +11 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/{src-cxV1ODRG.js → src-B8WuGSPZ.js} +886 -692
- package/dist/src-B8WuGSPZ.js.map +1 -0
- package/dist/types/components/EntityFormActionsProps.d.ts +2 -2
- package/dist/types/components/EntityFormProps.d.ts +3 -3
- package/dist/types/components/formex.d.ts +1 -1
- package/dist/types/fields.d.ts +2 -2
- package/dist/util/dataControllerAdapter.d.ts +2 -5
- package/dist/util/navigation_utils.d.ts +6 -6
- package/dist/util/previews.d.ts +3 -3
- package/dist/util/property_utils.d.ts +2 -2
- package/dist/util/{entity_view_constants.d.ts → view_constants.d.ts} +1 -1
- package/package.json +12 -17
- package/src/collection_editor/ConfigControllerProvider.tsx +11 -11
- package/src/collection_editor/_cms_internals.ts +3 -3
- package/src/collection_editor/api/generateCollectionApi.ts +8 -8
- package/src/collection_editor/extensibility_types.ts +3 -3
- package/src/collection_editor/index.ts +3 -3
- package/src/collection_editor/pgColumnToProperty.ts +3 -3
- package/src/collection_editor/serializable_types.ts +8 -8
- package/src/collection_editor/serializable_utils.ts +17 -17
- package/src/collection_editor/types/collection_editor_controller.tsx +5 -5
- package/src/collection_editor/types/collection_inference.ts +2 -2
- package/src/collection_editor/types/config_controller.tsx +7 -7
- package/src/collection_editor/ui/AddKanbanColumnAction.tsx +3 -3
- package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +3 -3
- package/src/collection_editor/ui/EditorCollectionAction.tsx +3 -3
- package/src/collection_editor/ui/EditorCollectionActionStart.tsx +3 -3
- package/src/collection_editor/ui/EditorEntityAction.tsx +3 -3
- package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +1 -1
- package/src/collection_editor/ui/KanbanSetupAction.tsx +3 -3
- package/src/collection_editor/ui/MissingReferenceWidget.tsx +1 -1
- package/src/collection_editor/ui/NewCollectionButton.tsx +1 -1
- package/src/collection_editor/ui/NewCollectionCard.tsx +1 -1
- package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +6 -6
- package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +6 -6
- package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +29 -29
- package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +10 -10
- package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +38 -7
- package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +4 -4
- package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/EnumForm.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +7 -7
- package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +4 -4
- package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +9 -9
- package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +46 -37
- package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/RouterCollectionStudioView.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +7 -7
- package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +4 -4
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +4 -4
- package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +2 -2
- package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +2 -2
- package/src/collection_editor/ui/collection_editor/templates/products_template.ts +2 -2
- package/src/collection_editor/ui/collection_editor/templates/users_template.ts +2 -2
- package/src/collection_editor/useJsonCollectionsConfigController.tsx +13 -13
- package/src/collection_editor/useLocalCollectionsConfigController.tsx +4 -4
- package/src/collection_editor/useSafeSnackbarController.ts +1 -1
- package/src/collection_editor/validateCollectionJson.ts +3 -3
- package/src/components/AdminModeSyncer.tsx +1 -1
- package/src/components/ArrayContainer.tsx +1 -1
- package/src/components/ClearFilterSortButton.tsx +1 -1
- package/src/components/CollectionPanel.tsx +14 -17
- package/src/components/{EntityCollectionTable/EntityCollectionRowActions.tsx → CollectionTableBinding/CollectionRowActions.tsx} +8 -8
- package/src/components/{EntityCollectionTable/EntityCollectionTable.tsx → CollectionTableBinding/CollectionTableBinding.tsx} +13 -13
- package/src/components/{EntityCollectionTable/EntityCollectionTableProps.tsx → CollectionTableBinding/CollectionTableBindingProps.tsx} +2 -2
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.tsx +1 -1
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.tsx +1 -1
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.tsx +7 -7
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.tsx +10 -10
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.tsx +7 -7
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.tsx +1 -1
- package/src/components/CollectionTableBinding/index.tsx +14 -0
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.tsx +1 -1
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.tsx +2 -2
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.tsx +1 -1
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.tsx +2 -2
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.tsx +6 -6
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.tsx +1 -1
- package/src/components/{EntityCollectionView/EntityBoardCard.tsx → CollectionViewBinding/BoardCardBinding.tsx} +17 -17
- package/src/components/{EntityCollectionView/EntityCollectionBoardView.tsx → CollectionViewBinding/CollectionBoardViewBinding.tsx} +17 -16
- package/src/components/{EntityCollectionView/EntityCollectionCardView.tsx → CollectionViewBinding/CollectionCardViewBinding.tsx} +9 -9
- package/src/components/{EntityCollectionView/EntityCollectionListView.tsx → CollectionViewBinding/CollectionListViewBinding.tsx} +15 -15
- package/src/components/{EntityCollectionView/EntityCollectionViewActions.tsx → CollectionViewBinding/CollectionViewActions.tsx} +7 -7
- package/src/components/{EntityCollectionView/EntityCollectionView.tsx → CollectionViewBinding/CollectionViewBinding.tsx} +107 -92
- package/src/components/{EntityCollectionView/EntityCollectionViewStartActions.tsx → CollectionViewBinding/CollectionViewStartActions.tsx} +6 -6
- package/src/components/{EntityCollectionView/EntityCard.tsx → CollectionViewBinding/EntityCardBinding.tsx} +12 -12
- package/src/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.tsx +49 -72
- package/src/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.tsx +10 -10
- package/src/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.tsx +1 -1
- package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.ts +6 -6
- package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.ts +5 -5
- package/src/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.tsx +25 -13
- package/src/components/{EntityCollectionView/useEntityPreviewSlots.ts → CollectionViewBinding/usePreviewSlots.ts} +9 -9
- package/src/components/DefaultAppBar.tsx +3 -3
- package/src/components/DefaultDrawer.tsx +3 -3
- package/src/components/DeleteEntityDialog.tsx +7 -7
- package/src/components/{EntityDetailView.tsx → DetailViewBinding.tsx} +28 -31
- package/src/components/DrawerNavigationGroup.tsx +2 -2
- package/src/components/{EntityEditViewFormActions.tsx → EditFormActions.tsx} +16 -16
- package/src/components/{EntityEditView.tsx → EditViewBinding.tsx} +34 -37
- package/src/components/{EntityPreview.tsx → EntityPreviewBinding.tsx} +30 -30
- package/src/components/{EntityView.tsx → EntityViewBinding.tsx} +7 -7
- package/src/components/HomePage/ContentHomePage.tsx +4 -4
- package/src/components/HomePage/FavouritesView.tsx +1 -1
- package/src/components/HomePage/NavigationCardBinding.tsx +4 -4
- package/src/components/HomePage/NavigationGroup.tsx +1 -1
- package/src/components/HomePage/RenameGroupDialog.tsx +1 -1
- package/src/components/{EntityJsonPreview.tsx → JsonPreviewBinding.tsx} +2 -2
- package/src/components/{RebaseCMS.tsx → RebaseAdmin.tsx} +6 -5
- package/src/components/RebaseAuthGate.tsx +2 -2
- package/src/components/RebaseLayout.tsx +7 -13
- package/src/components/RebaseNavigation.tsx +35 -11
- package/src/components/RebaseRouteDefs.tsx +2 -2
- package/src/components/RebaseShell.tsx +2 -1
- package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx} +27 -24
- package/src/components/ReferenceWidget.tsx +4 -4
- package/src/components/RelationSelector.tsx +15 -13
- package/src/components/SearchIconsView.tsx +2 -2
- package/src/components/SelectableTable/SelectableTable.tsx +35 -88
- package/src/components/SelectableTable/SelectableTableContext.tsx +3 -3
- package/src/components/SelectableTable/SelectionStore.ts +4 -4
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +10 -2
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +34 -13
- package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +187 -0
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +22 -8
- package/src/components/SelectableTable/filters/RelationFilterField.tsx +17 -3
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +67 -13
- package/src/components/SideDialogs.tsx +4 -4
- package/src/components/{EntitySidePanel.tsx → SidePanelBinding.tsx} +20 -20
- package/src/components/{SideEntityProvider.tsx → SidePanelProvider.tsx} +17 -17
- package/src/components/UserSelector.tsx +1 -1
- package/src/components/admin/CreationResultDialog.tsx +6 -3
- package/src/components/app/Scaffold.tsx +6 -2
- package/src/components/common/default_entity_actions.tsx +132 -34
- package/src/components/field_configs.tsx +1 -1
- package/src/components/history/EntityHistoryEntry.tsx +3 -3
- package/src/components/history/EntityHistoryView.tsx +7 -7
- package/src/components/history/LastEditedByIndicator.tsx +4 -4
- package/src/components/index.ts +16 -15
- package/src/contexts/SidePanelControllerContext.tsx +5 -0
- package/src/data_export/export/BasicExportAction.tsx +1 -1
- package/src/data_export/export/ExportCollectionAction.tsx +5 -5
- package/src/data_import/components/DataNewPropertiesMapping.tsx +1 -1
- package/src/data_import/components/ImportFileUpload.tsx +1 -1
- package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +1 -1
- package/src/data_import/components/ImportSaveInProgress.tsx +4 -4
- package/src/data_import/import/ImportCollectionAction.tsx +6 -6
- package/src/data_import/utils/data.ts +4 -4
- package/src/data_import/utils/get_properties_mapping.ts +1 -1
- package/src/editor/components/image-bubble.tsx +1 -1
- package/src/editor/components/table-bubble.tsx +1 -1
- package/src/editor/editor.tsx +1 -1
- package/src/editor/selectors/link-selector.tsx +1 -1
- package/src/editor/selectors/node-selector.tsx +1 -1
- package/src/form/EntityForm.tsx +6 -6
- package/src/form/EntityFormActions.tsx +4 -4
- package/src/form/EntityFormBinding.tsx +10 -10
- package/src/form/PropertyFieldBinding.tsx +7 -7
- package/src/form/components/ErrorFocus.tsx +1 -1
- package/src/form/components/LocalChangesMenu.tsx +3 -3
- package/src/form/components/StorageItemPreview.tsx +1 -1
- package/src/form/components/StorageUploadProgress.tsx +3 -3
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +1 -1
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +5 -5
- package/src/form/field_bindings/BlockFieldBinding.tsx +2 -2
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +1 -1
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +21 -21
- package/src/form/field_bindings/MapFieldBinding.tsx +1 -1
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +2 -2
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +3 -3
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +7 -7
- package/src/form/field_bindings/RelationFieldBinding.tsx +4 -4
- package/src/form/field_bindings/RepeatFieldBinding.tsx +1 -1
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +3 -3
- package/src/form/form_utils.ts +3 -3
- package/src/hooks/index.ts +4 -4
- package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +2 -2
- package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +11 -11
- package/src/hooks/navigation/useBuildNavigationStateController.tsx +5 -5
- package/src/hooks/navigation/useNavigationResolution.ts +28 -13
- package/src/hooks/navigation/useResolvedCollections.ts +8 -8
- package/src/hooks/navigation/useTopLevelNavigation.ts +2 -2
- package/src/hooks/navigation/utils.ts +5 -5
- package/src/hooks/{useBuildSideEntityController.tsx → useBuildSidePanel.tsx} +29 -29
- package/src/hooks/useCMSContext.tsx +7 -7
- package/src/hooks/{useEntityHistory.ts → useHistory.ts} +2 -2
- package/src/hooks/useResolvedNavigationFrom.tsx +10 -5
- package/src/hooks/{useEntitySelectionDialog.tsx → useSelectionDialog.tsx} +7 -7
- package/src/hooks/useSideDialogsController.tsx +1 -1
- package/src/hooks/useSidePanel.tsx +13 -0
- package/src/index.ts +15 -15
- package/src/preview/PropertyPreview.tsx +2 -2
- package/src/preview/components/DatePreview.tsx +1 -1
- package/src/preview/components/EnumValuesChip.tsx +1 -1
- package/src/preview/components/ImagePreview.tsx +1 -1
- package/src/preview/components/ReferencePreview.tsx +11 -11
- package/src/preview/components/RelationPreview.tsx +13 -12
- package/src/preview/components/StorageThumbnail.tsx +1 -1
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +1 -1
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +1 -1
- package/src/routes/RebaseRoute.tsx +12 -12
- package/src/types/components/EntityFormActionsProps.tsx +2 -2
- package/src/types/components/EntityFormProps.tsx +3 -3
- package/src/types/components/formex.tsx +1 -1
- package/src/types/fields.tsx +2 -2
- package/src/util/dataControllerAdapter.ts +9 -15
- package/src/util/navigation_utils.ts +7 -7
- package/src/util/previews.ts +7 -5
- package/src/util/property_utils.tsx +2 -2
- package/src/util/{entity_view_constants.ts → view_constants.ts} +1 -1
- package/dist/CollectionEditorDialog-BO_aQ-Z4.js.map +0 -1
- package/dist/PropertyEditView-DKzOpMjR.js.map +0 -1
- package/dist/RouterCollectionsStudioView-BQTIExjA.js.map +0 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -28
- package/dist/components/EntityCollectionTable/index.d.ts +0 -6
- package/dist/components/EntityCollectionView/EntityCard.d.ts +0 -21
- package/dist/components/EntityEditViewFormActions.d.ts +0 -3
- package/dist/components/EntitySidePanel.d.ts +0 -11
- package/dist/components/EntityView.d.ts +0 -13
- package/dist/contexts/SideEntityControllerContext.d.ts +0 -3
- package/dist/history-B3cqBzEV.js.map +0 -1
- package/dist/hooks/useBuildSideEntityController.d.ts +0 -6
- package/dist/hooks/useSideEntityController.d.ts +0 -11
- package/dist/src-cxV1ODRG.js.map +0 -1
- package/src/components/EntityCollectionTable/index.tsx +0 -14
- package/src/contexts/SideEntityControllerContext.tsx +0 -5
- package/src/hooks/useSideEntityController.tsx +0 -13
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.d.ts +0 -0
- /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.d.ts +0 -0
- /package/dist/components/{EntityCollectionView → CollectionViewBinding}/utils.d.ts +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/utils.ts +0 -0
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import type { Properties } from "@rebasepro/types";
|
|
2
|
-
import type {
|
|
2
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import type { CustomizationController } from "@rebasepro/types";
|
|
4
4
|
import React from "react";
|
|
5
5
|
import { Entity } from "@rebasepro/types";
|
|
6
6
|
import { cls, defaultBorderMixin, ExternalLinkIcon, IconButton, Typography } from "@rebasepro/ui";
|
|
7
7
|
;
|
|
8
|
-
import { useCustomizationController } from "@rebasepro/
|
|
9
|
-
import { useAuthController } from "@rebasepro/
|
|
8
|
+
import { useCustomizationController } from "@rebasepro/app";
|
|
9
|
+
import { useAuthController } from "@rebasepro/app";
|
|
10
10
|
import { PropertyCollectionView } from "./PropertyCollectionView";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* @group Components
|
|
14
14
|
*/
|
|
15
|
-
export interface
|
|
15
|
+
export interface EntityViewBindingProps<M extends Record<string, unknown>> {
|
|
16
16
|
entity: Entity<M>;
|
|
17
|
-
collection:
|
|
17
|
+
collection: CollectionConfig<M>;
|
|
18
18
|
path: string;
|
|
19
19
|
className?: string;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
export function
|
|
22
|
+
export function EntityViewBinding<M extends Record<string, unknown>>(
|
|
23
23
|
{
|
|
24
24
|
entity,
|
|
25
25
|
collection,
|
|
26
26
|
path,
|
|
27
27
|
className
|
|
28
|
-
}:
|
|
28
|
+
}: EntityViewBindingProps<M>) {
|
|
29
29
|
|
|
30
30
|
const customizationController: CustomizationController = useCustomizationController();
|
|
31
31
|
|
|
@@ -19,10 +19,10 @@ import { SortableContext, verticalListSortingStrategy } from "@dnd-kit/sortable"
|
|
|
19
19
|
import { restrictToVerticalAxis, restrictToWindowEdges } from "@dnd-kit/modifiers";
|
|
20
20
|
import { RenameGroupDialog } from "./RenameGroupDialog";
|
|
21
21
|
import { toArray } from "@rebasepro/utils";
|
|
22
|
-
import { useCollapsedGroups, buildCollapsedDefaults, useCustomizationController, useTranslation, useSlot, useAdminModeController, useRebaseRegistry } from "@rebasepro/
|
|
23
|
-
import { useRestoreScroll } from "@rebasepro/
|
|
22
|
+
import { useCollapsedGroups, buildCollapsedDefaults, useCustomizationController, useTranslation, useSlot, useAdminModeController, useRebaseRegistry } from "@rebasepro/app";
|
|
23
|
+
import { useRestoreScroll } from "@rebasepro/app";
|
|
24
24
|
|
|
25
|
-
import { SchemaDriftBanner } from "@rebasepro/
|
|
25
|
+
import { SchemaDriftBanner } from "@rebasepro/app";
|
|
26
26
|
import { useBreadcrumbsController, useCMSContext } from "../../index";
|
|
27
27
|
|
|
28
28
|
export const DEFAULT_GROUP_NAME = "Views";
|
|
@@ -64,7 +64,7 @@ export function ContentHomePage({
|
|
|
64
64
|
} = navigationStateController.topLevelNavigation || {};
|
|
65
65
|
|
|
66
66
|
// Build a set of Studio-only dev view slugs so we can distinguish them from
|
|
67
|
-
// CMS custom views added via <
|
|
67
|
+
// CMS custom views added via <RebaseAdmin views={...}> or plugins.
|
|
68
68
|
const studioViewSlugs = useMemo(() => {
|
|
69
69
|
const slugs = new Set<string>();
|
|
70
70
|
(registry.studioConfig?.devViews ?? []).forEach(v => slugs.add(v.slug));
|
|
@@ -2,7 +2,7 @@ import type { NavigationEntry } from "@rebasepro/types";
|
|
|
2
2
|
import { useNavigate } from "react-router-dom";
|
|
3
3
|
;
|
|
4
4
|
import { Chip, Collapse, StarIcon } from "@rebasepro/ui";
|
|
5
|
-
import { useUserConfigurationPersistence } from "@rebasepro/
|
|
5
|
+
import { useUserConfigurationPersistence } from "@rebasepro/app";
|
|
6
6
|
import { useNavigationStateController } from "../../index";
|
|
7
7
|
|
|
8
8
|
function NavigationChip({ entry }: { entry: NavigationEntry }) {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import type { NavigationEntry,
|
|
1
|
+
import type { NavigationEntry, CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import { useNavigate } from "react-router-dom";
|
|
3
3
|
;
|
|
4
4
|
import { IconButton, StarIcon, Tooltip } from "@rebasepro/ui";
|
|
5
5
|
import { NavigationCard } from "./NavigationCard";
|
|
6
6
|
import { SmallNavigationCard } from "./SmallNavigationCard";
|
|
7
7
|
import React from "react";
|
|
8
|
-
import { useRebaseContext, useSlot } from "@rebasepro/
|
|
9
|
-
import { IconForView } from "@rebasepro/
|
|
10
|
-
import { useUserConfigurationPersistence } from "@rebasepro/
|
|
8
|
+
import { useRebaseContext, useSlot } from "@rebasepro/app";
|
|
9
|
+
import { IconForView } from "@rebasepro/app";
|
|
10
|
+
import { useUserConfigurationPersistence } from "@rebasepro/app";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* This is the component used in the home page to render a card for each
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { PropsWithChildren, useState } from "react";
|
|
2
2
|
import { cls, ExpandablePanel, IconButton, iconSize, PencilIcon, Typography } from "@rebasepro/ui";
|
|
3
|
-
import { useTranslation } from "@rebasepro/
|
|
3
|
+
import { useTranslation } from "@rebasepro/app";
|
|
4
4
|
|
|
5
5
|
export function NavigationGroup({
|
|
6
6
|
children,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useEffect, useRef, useState } from "react";
|
|
2
2
|
import { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from "@rebasepro/ui";
|
|
3
|
-
import { useTranslation } from "@rebasepro/
|
|
3
|
+
import { useTranslation } from "@rebasepro/app";
|
|
4
4
|
|
|
5
5
|
interface RenameGroupDialogProps {
|
|
6
6
|
open: boolean;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import React, { useRef } from "react";
|
|
2
2
|
import { Highlight, themes } from "prism-react-renderer";
|
|
3
|
-
import { useModeController } from "@rebasepro/
|
|
3
|
+
import { useModeController } from "@rebasepro/app";
|
|
4
4
|
|
|
5
|
-
export function
|
|
5
|
+
export function JsonPreviewBinding({ values }: { values: object }) {
|
|
6
6
|
const code = JSON.stringify(values, null, "\t");
|
|
7
7
|
const { mode } = useModeController();
|
|
8
8
|
const preRef = useRef<HTMLPreElement>(null);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { useLayoutEffect } from "react";
|
|
2
|
-
import { useRebaseRegistryDispatch } from "@rebasepro/
|
|
3
|
-
import type {
|
|
2
|
+
import { useRebaseRegistryDispatch } from "@rebasepro/app";
|
|
3
|
+
import type { RebaseAdminConfig } from "@rebasepro/types";
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Declarative component to configure the CMS in Rebase.
|
|
@@ -10,7 +10,7 @@ import type { RebaseCMSConfig } from "@rebasepro/types";
|
|
|
10
10
|
* is auto-wired as a native feature (slots, provider, Studio view) without
|
|
11
11
|
* needing any external plugin.
|
|
12
12
|
*/
|
|
13
|
-
export function
|
|
13
|
+
export function RebaseAdmin({ collections, views, homePage, entityViews, entityActions, collectionEditor, navigationGroupMappings, basePath }: RebaseAdminConfig) {
|
|
14
14
|
const dispatch = useRebaseRegistryDispatch();
|
|
15
15
|
|
|
16
16
|
useLayoutEffect(() => {
|
|
@@ -20,9 +20,10 @@ homePage,
|
|
|
20
20
|
entityViews,
|
|
21
21
|
entityActions,
|
|
22
22
|
collectionEditor,
|
|
23
|
-
navigationGroupMappings
|
|
23
|
+
navigationGroupMappings,
|
|
24
|
+
basePath });
|
|
24
25
|
return () => dispatch.unregisterCMS();
|
|
25
|
-
}, [dispatch, collections, views, homePage, entityViews, entityActions, collectionEditor, navigationGroupMappings]);
|
|
26
|
+
}, [dispatch, collections, views, homePage, entityViews, entityActions, collectionEditor, navigationGroupMappings, basePath]);
|
|
26
27
|
|
|
27
28
|
return null;
|
|
28
29
|
}
|
|
@@ -2,9 +2,9 @@ import React from "react";
|
|
|
2
2
|
import {
|
|
3
3
|
useRebaseRegistry,
|
|
4
4
|
useAuthController
|
|
5
|
-
} from "@rebasepro/
|
|
5
|
+
} from "@rebasepro/app";
|
|
6
6
|
import { CircularProgressCenter } from "@rebasepro/ui";
|
|
7
|
-
import { LoginView } from "@rebasepro/
|
|
7
|
+
import { LoginView } from "@rebasepro/app";
|
|
8
8
|
import type { AuthControllerExtended } from "@rebasepro/types";
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -4,10 +4,9 @@ import {
|
|
|
4
4
|
useAdminModeController,
|
|
5
5
|
useComponentOverride,
|
|
6
6
|
useRebaseRegistry
|
|
7
|
-
} from "@rebasepro/
|
|
7
|
+
} from "@rebasepro/app";
|
|
8
8
|
|
|
9
9
|
import { Scaffold } from "./app/Scaffold";
|
|
10
|
-
import { AppBar } from "./app/AppBar";
|
|
11
10
|
import { Drawer } from "./app/Drawer";
|
|
12
11
|
import { SideDialogs } from "./SideDialogs";
|
|
13
12
|
import { AdminModeSyncer } from "./AdminModeSyncer";
|
|
@@ -16,7 +15,7 @@ import type { AppView } from "@rebasepro/types";
|
|
|
16
15
|
export interface RebaseLayoutProps {
|
|
17
16
|
/** Title shown in the drawer. */
|
|
18
17
|
title?: string;
|
|
19
|
-
/**
|
|
18
|
+
/** Top bar. Only rendered if provided — pass `<AppBar/>` for the default one. */
|
|
20
19
|
appBar?: React.ReactNode;
|
|
21
20
|
/** Custom Drawer to override the default. */
|
|
22
21
|
drawer?: React.ReactNode;
|
|
@@ -27,17 +26,18 @@ export interface RebaseLayoutProps {
|
|
|
27
26
|
}
|
|
28
27
|
|
|
29
28
|
/**
|
|
30
|
-
* Layout layer — provides the Scaffold,
|
|
29
|
+
* Layout layer — provides the Scaffold, Drawer, and SideDialogs.
|
|
31
30
|
*
|
|
32
31
|
* Wraps the route outlet with the standard Rebase admin layout.
|
|
33
|
-
* Override
|
|
32
|
+
* Override the drawer via props; pass `appBar` to add a top bar (there is
|
|
33
|
+
* none by default — the drawer owns navigation and user actions).
|
|
34
34
|
*
|
|
35
35
|
* **Independently usable**: Use this when you want the Rebase layout
|
|
36
36
|
* without its default route definitions.
|
|
37
37
|
*
|
|
38
38
|
* @example
|
|
39
39
|
* ```tsx
|
|
40
|
-
* <RebaseLayout title="My Admin">
|
|
40
|
+
* <RebaseLayout title="My Admin" appBar={<AppBar/>}>
|
|
41
41
|
* <Route path="/" element={<MyHomePage />} />
|
|
42
42
|
* <Route path="/custom" element={<CustomView />} />
|
|
43
43
|
* </RebaseLayout>
|
|
@@ -53,14 +53,8 @@ export function RebaseLayout(props: RebaseLayoutProps) {
|
|
|
53
53
|
} = props;
|
|
54
54
|
|
|
55
55
|
const adminModeController = useAdminModeController();
|
|
56
|
-
const ResolvedAppBar = useComponentOverride("Shell.AppBar", AppBar);
|
|
57
56
|
const ResolvedDrawer = useComponentOverride("Shell.Drawer", Drawer);
|
|
58
57
|
|
|
59
|
-
const ActiveAppBar = appBar ?? <ResolvedAppBar
|
|
60
|
-
includeLanguageToggle={false}
|
|
61
|
-
includeModeToggle={false}
|
|
62
|
-
includeUserMenu={false}
|
|
63
|
-
/>;
|
|
64
58
|
const ActiveDrawer = drawer ?? (
|
|
65
59
|
<ResolvedDrawer
|
|
66
60
|
title={title}
|
|
@@ -71,7 +65,7 @@ export function RebaseLayout(props: RebaseLayoutProps) {
|
|
|
71
65
|
return (
|
|
72
66
|
<Scaffold autoOpenDrawer={autoOpenDrawer}>
|
|
73
67
|
<AdminModeSyncer devViews={devViews}/>
|
|
74
|
-
{
|
|
68
|
+
{appBar}
|
|
75
69
|
{ActiveDrawer}
|
|
76
70
|
<Outlet/>
|
|
77
71
|
<SideDialogs/>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useMemo, useRef, useEffect, lazy, Suspense } from "react";
|
|
1
|
+
import React, { useMemo, useRef, useEffect, useCallback, useContext, lazy, Suspense } from "react";
|
|
2
2
|
import {
|
|
3
3
|
useRebaseRegistry,
|
|
4
4
|
useRebaseContext,
|
|
@@ -9,19 +9,20 @@ import {
|
|
|
9
9
|
useRebaseClient,
|
|
10
10
|
useData,
|
|
11
11
|
useDataSources,
|
|
12
|
+
CollectionResolverRegistrationContext,
|
|
12
13
|
StudioBridgeRegistryProvider,
|
|
13
14
|
useBridgeRegistration,
|
|
14
15
|
CustomizationControllerContext,
|
|
15
16
|
RebaseDataContext
|
|
16
|
-
} from "@rebasepro/
|
|
17
|
+
} from "@rebasepro/app";
|
|
17
18
|
import { buildRoutedRebaseData, resolveDataSource } from "@rebasepro/common";
|
|
18
19
|
import { CircularProgressCenter } from "@rebasepro/ui";
|
|
19
|
-
import type { AppView, CollectionEditorOptions, EntityCustomView, EntityAction,
|
|
20
|
+
import type { AppView, CollectionEditorOptions, EntityCustomView, EntityAction, CollectionConfig, RebasePlugin } from "@rebasepro/types";
|
|
20
21
|
import type { CollectionRegistryController } from "@rebasepro/types";
|
|
21
22
|
import type { UrlController, NavigationStateController } from "@rebasepro/types";
|
|
22
23
|
|
|
23
24
|
const EMPTY_PLUGINS: RebasePlugin[] = [];
|
|
24
|
-
const EMPTY_COLLECTIONS:
|
|
25
|
+
const EMPTY_COLLECTIONS: CollectionConfig[] = [];
|
|
25
26
|
|
|
26
27
|
import { useBuildNavigationStateController } from "../hooks/navigation/useBuildNavigationStateController";
|
|
27
28
|
import { useBuildUrlController } from "../hooks/navigation/useBuildUrlController";
|
|
@@ -31,7 +32,7 @@ import { CollectionRegistryContext } from "../hooks/navigation/contexts/Collecti
|
|
|
31
32
|
import { UrlContext } from "../hooks/navigation/contexts/UrlContext";
|
|
32
33
|
import { NavigationStateContext } from "../hooks/navigation/contexts/NavigationStateContext";
|
|
33
34
|
|
|
34
|
-
import {
|
|
35
|
+
import { SidePanelProvider } from "./SidePanelProvider";
|
|
35
36
|
|
|
36
37
|
// Collection editor internals — used when collectionEditor is enabled
|
|
37
38
|
import { useLocalCollectionsConfigController } from "../collection_editor/useLocalCollectionsConfigController";
|
|
@@ -61,7 +62,7 @@ export interface RebaseNavigationProps {
|
|
|
61
62
|
* ```tsx
|
|
62
63
|
* <RebaseNavigation>
|
|
63
64
|
* <MyCustomLayout>
|
|
64
|
-
* <
|
|
65
|
+
* <CollectionViewBinding ... />
|
|
65
66
|
* </MyCustomLayout>
|
|
66
67
|
* </RebaseNavigation>
|
|
67
68
|
* ```
|
|
@@ -103,14 +104,37 @@ export function RebaseNavigation({ children }: RebaseNavigationProps) {
|
|
|
103
104
|
const defaultData = useData();
|
|
104
105
|
const getCollectionRef = useRef(collectionRegistryController.getCollection);
|
|
105
106
|
getCollectionRef.current = collectionRegistryController.getCollection;
|
|
107
|
+
|
|
108
|
+
// Hand the data layer a way to read this registry. It was built by <Rebase>,
|
|
109
|
+
// above us, and needs a collection's primary keys to give its rows an
|
|
110
|
+
// address — rows themselves carry only columns.
|
|
111
|
+
//
|
|
112
|
+
// Registered during render, not in an effect: the views that fetch rows are
|
|
113
|
+
// below us, and their effects run before ours, so an effect here would bind
|
|
114
|
+
// after the first page had already been converted. The call only assigns a
|
|
115
|
+
// ref, so repeating it per render is free.
|
|
116
|
+
const registerCollectionResolver = useContext(CollectionResolverRegistrationContext);
|
|
117
|
+
const resolveCollection = useCallback(
|
|
118
|
+
(slug: string) => getCollectionRef.current(slug),
|
|
119
|
+
[]);
|
|
120
|
+
registerCollectionResolver(resolveCollection);
|
|
106
121
|
const routedData = useMemo(() => buildRoutedRebaseData({
|
|
107
122
|
defaultData,
|
|
108
123
|
sources: dataSources.sources,
|
|
109
124
|
resolveKey: (slugOrPath) => resolveDataSource(getCollectionRef.current(slugOrPath), dataSources.registry).key
|
|
110
125
|
}), [defaultData, dataSources]);
|
|
111
126
|
|
|
127
|
+
// Normalize the configured mount prefix to a leading-slash, no-trailing-slash
|
|
128
|
+
// form (e.g. "admin" or "/admin/" -> "/admin"); empty/"/" stays "/".
|
|
129
|
+
const basePath = useMemo(() => {
|
|
130
|
+
const raw = registry.cmsConfig?.basePath;
|
|
131
|
+
if (!raw || raw === "/") return "/";
|
|
132
|
+
const trimmed = raw.replace(/^\/+/, "").replace(/\/+$/, "");
|
|
133
|
+
return trimmed ? `/${trimmed}` : "/";
|
|
134
|
+
}, [registry.cmsConfig?.basePath]);
|
|
135
|
+
|
|
112
136
|
const urlController = useBuildUrlController({
|
|
113
|
-
basePath
|
|
137
|
+
basePath,
|
|
114
138
|
baseCollectionPath: "/c",
|
|
115
139
|
collectionRegistryController
|
|
116
140
|
});
|
|
@@ -211,9 +235,9 @@ export function RebaseNavigation({ children }: RebaseNavigationProps) {
|
|
|
211
235
|
|
|
212
236
|
// ── Merge CMS-registered entityViews/entityActions into the customization controller ──
|
|
213
237
|
// The <Rebase> component builds the customizationController from its own props,
|
|
214
|
-
// but entity views passed to <
|
|
238
|
+
// but entity views passed to <RebaseAdmin> are stored in the registry and not
|
|
215
239
|
// automatically merged. We re-provide an enriched controller here so that
|
|
216
|
-
// downstream consumers (
|
|
240
|
+
// downstream consumers (EditViewBinding, side panels, etc.) can resolve
|
|
217
241
|
// string-keyed entity views like "blog_preview".
|
|
218
242
|
const enrichedCustomizationController = useMemo(() => {
|
|
219
243
|
const cmsEntityViews = (registry.cmsConfig?.entityViews ?? []) as EntityCustomView[];
|
|
@@ -245,14 +269,14 @@ export function RebaseNavigation({ children }: RebaseNavigationProps) {
|
|
|
245
269
|
<CollectionRegistryContext.Provider value={collectionRegistryController}>
|
|
246
270
|
<UrlContext.Provider value={urlController}>
|
|
247
271
|
<NavigationStateContext.Provider value={navigationStateController}>
|
|
248
|
-
<
|
|
272
|
+
<SidePanelProvider>
|
|
249
273
|
<BridgeAutoRegistrar
|
|
250
274
|
collectionRegistryController={collectionRegistryController}
|
|
251
275
|
urlController={urlController}
|
|
252
276
|
navigationStateController={navigationStateController}
|
|
253
277
|
/>
|
|
254
278
|
{children}
|
|
255
|
-
</
|
|
279
|
+
</SidePanelProvider>
|
|
256
280
|
</NavigationStateContext.Provider>
|
|
257
281
|
</UrlContext.Provider>
|
|
258
282
|
</CollectionRegistryContext.Provider>
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
UIReferenceView,
|
|
8
8
|
NotFoundPage,
|
|
9
9
|
useComponentOverride
|
|
10
|
-
} from "@rebasepro/
|
|
10
|
+
} from "@rebasepro/app";
|
|
11
11
|
import { CircularProgressCenter } from "@rebasepro/ui";
|
|
12
12
|
|
|
13
13
|
import { ContentHomePage as DefaultHomePage } from "./HomePage/ContentHomePage";
|
|
@@ -17,7 +17,7 @@ import { CustomViewRoute } from "../routes/CustomViewRoute";
|
|
|
17
17
|
import { useNavigationStateController } from "../hooks/navigation/contexts/NavigationStateContext";
|
|
18
18
|
import { CollectionEditorDialogs } from "./CollectionEditorDialogs";
|
|
19
19
|
import { useEffect } from "react";
|
|
20
|
-
import { useTranslation } from "@rebasepro/
|
|
20
|
+
import { useTranslation } from "@rebasepro/app";
|
|
21
21
|
import { useBreadcrumbsController } from "../index";
|
|
22
22
|
|
|
23
23
|
function SettingsView() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useMemo } from "react";
|
|
2
2
|
import {
|
|
3
3
|
useRebaseRegistry
|
|
4
|
-
} from "@rebasepro/
|
|
4
|
+
} from "@rebasepro/app";
|
|
5
5
|
import { ErrorBoundary } from "@rebasepro/ui";
|
|
6
6
|
|
|
7
7
|
import { RebaseAuthGate } from "./RebaseAuthGate";
|
|
@@ -11,6 +11,7 @@ import { RebaseRouteDefs } from "./RebaseRouteDefs";
|
|
|
11
11
|
|
|
12
12
|
export interface RebaseShellProps {
|
|
13
13
|
title?: string;
|
|
14
|
+
/** Top bar. Only rendered if provided — pass `<AppBar/>` for the default one. */
|
|
14
15
|
appBar?: React.ReactNode;
|
|
15
16
|
drawer?: React.ReactNode;
|
|
16
17
|
autoOpenDrawer?: boolean;
|
package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx}
RENAMED
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import React, { MouseEventHandler, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { CollectionSize, Entity, FilterValues } from "@rebasepro/types";
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
} from "../
|
|
6
|
+
CollectionRowActions,
|
|
7
|
+
CollectionTableBinding
|
|
8
|
+
} from "../CollectionTableBinding";
|
|
9
9
|
import {
|
|
10
|
+
CollectionScopeProvider,
|
|
10
11
|
useAuthController,
|
|
11
12
|
useCustomizationController,
|
|
12
13
|
useData,
|
|
13
14
|
useDataTableController,
|
|
14
15
|
useLargeLayout,
|
|
15
16
|
usePermissions
|
|
16
|
-
} from "@rebasepro/
|
|
17
|
-
import { ErrorView } from "@rebasepro/
|
|
17
|
+
} from "@rebasepro/app";
|
|
18
|
+
import { ErrorView } from "@rebasepro/app";
|
|
18
19
|
import { Button, DialogActions, PlusIcon, Typography } from "@rebasepro/ui";
|
|
19
|
-
import { IconForView } from "@rebasepro/
|
|
20
|
-
import { useSelectionController } from "../
|
|
20
|
+
import { IconForView } from "@rebasepro/app";
|
|
21
|
+
import { useSelectionController } from "../CollectionViewBinding/useSelectionController";
|
|
21
22
|
|
|
22
|
-
import { useColumnIds } from "@rebasepro/
|
|
23
|
+
import { useColumnIds } from "@rebasepro/app";
|
|
23
24
|
import { useSideDialogContext } from "../SideDialogs";
|
|
24
|
-
import { useAnalyticsController } from "@rebasepro/
|
|
25
|
-
import { useUrlController,
|
|
25
|
+
import { useAnalyticsController } from "@rebasepro/app";
|
|
26
|
+
import { useUrlController, useSidePanel } from "../../index";
|
|
26
27
|
|
|
27
28
|
/**
|
|
28
29
|
* @group Components
|
|
29
30
|
*/
|
|
30
|
-
export interface
|
|
31
|
+
export interface SelectionProps<M extends Record<string, unknown>> {
|
|
31
32
|
|
|
32
33
|
/**
|
|
33
34
|
* Allow multiple selection of values
|
|
@@ -37,7 +38,7 @@ export interface EntitySelectionProps<M extends Record<string, unknown>> {
|
|
|
37
38
|
/**
|
|
38
39
|
* Entity collection config
|
|
39
40
|
*/
|
|
40
|
-
collection?:
|
|
41
|
+
collection?: CollectionConfig<M>;
|
|
41
42
|
|
|
42
43
|
/**
|
|
43
44
|
* Absolute path of the collection.
|
|
@@ -87,20 +88,20 @@ export interface EntitySelectionProps<M extends Record<string, unknown>> {
|
|
|
87
88
|
|
|
88
89
|
/**
|
|
89
90
|
* This component allows to select entities from a given collection.
|
|
90
|
-
* You probably want to open this dialog as a side view using {@link
|
|
91
|
+
* You probably want to open this dialog as a side view using {@link useSelectionTableBinding}
|
|
91
92
|
* @group Components
|
|
92
93
|
*/
|
|
93
|
-
export function
|
|
94
|
-
props:
|
|
94
|
+
export function SelectionTableBinding<M extends Record<string, unknown>>(
|
|
95
|
+
props: SelectionProps<M>
|
|
95
96
|
) {
|
|
96
97
|
if (!props.collection) {
|
|
97
98
|
return <ErrorView
|
|
98
99
|
error={"Could not find collection"}/>
|
|
99
100
|
}
|
|
100
|
-
return <
|
|
101
|
+
return <SelectionTableBindingInternal {...props} collection={props.collection} />;
|
|
101
102
|
}
|
|
102
103
|
|
|
103
|
-
function
|
|
104
|
+
function SelectionTableBindingInternal<M extends Record<string, unknown>>(
|
|
104
105
|
{
|
|
105
106
|
onSingleEntitySelected,
|
|
106
107
|
onMultipleEntitiesSelected,
|
|
@@ -111,10 +112,10 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
|
|
|
111
112
|
description,
|
|
112
113
|
fixedFilter,
|
|
113
114
|
maxSelection
|
|
114
|
-
}:
|
|
115
|
+
}: SelectionProps<M> & { collection: CollectionConfig<M> }) {
|
|
115
116
|
|
|
116
117
|
const sideDialogContext = useSideDialogContext();
|
|
117
|
-
const
|
|
118
|
+
const sidePanelController = useSidePanel();
|
|
118
119
|
const urlController = useUrlController();
|
|
119
120
|
const analyticsController = useAnalyticsController();
|
|
120
121
|
|
|
@@ -212,7 +213,7 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
|
|
|
212
213
|
analyticsController.onAnalyticsEvent?.("reference_selection_new_entity", {
|
|
213
214
|
path
|
|
214
215
|
});
|
|
215
|
-
|
|
216
|
+
sidePanelController.open({
|
|
216
217
|
path: path,
|
|
217
218
|
collection,
|
|
218
219
|
updateUrl: true,
|
|
@@ -237,7 +238,7 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
|
|
|
237
238
|
}) => {
|
|
238
239
|
const selectedEntities = selectionController.selectedEntities;
|
|
239
240
|
const isSelected = selectedEntities && selectedEntities.map(e => e.id).indexOf(entity.id) > -1;
|
|
240
|
-
return <
|
|
241
|
+
return <CollectionRowActions
|
|
241
242
|
width={width}
|
|
242
243
|
frozen={frozen}
|
|
243
244
|
entity={entity}
|
|
@@ -269,11 +270,12 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
|
|
|
269
270
|
|
|
270
271
|
return (
|
|
271
272
|
|
|
273
|
+
<CollectionScopeProvider collection={collection}>
|
|
272
274
|
<div className="flex flex-col h-full">
|
|
273
275
|
|
|
274
276
|
<div className="grow">
|
|
275
277
|
{entitiesDisplayedFirst &&
|
|
276
|
-
<
|
|
278
|
+
<CollectionTableBinding
|
|
277
279
|
additionalFields={collection.additionalFields}
|
|
278
280
|
displayedColumnIds={displayedColumnIds}
|
|
279
281
|
onEntityClick={onEntityClick}
|
|
@@ -316,6 +318,7 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
|
|
|
316
318
|
</Button>
|
|
317
319
|
</DialogActions>
|
|
318
320
|
</div>
|
|
321
|
+
</CollectionScopeProvider>
|
|
319
322
|
|
|
320
323
|
);
|
|
321
324
|
|
|
@@ -327,7 +330,7 @@ function EntitySelectionDialogActions({
|
|
|
327
330
|
onClear,
|
|
328
331
|
onNewClick
|
|
329
332
|
}: {
|
|
330
|
-
collection:
|
|
333
|
+
collection: CollectionConfig<any>,
|
|
331
334
|
path: string,
|
|
332
335
|
onClear: () => void,
|
|
333
336
|
onNewClick: () => void
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type {
|
|
1
|
+
import { useSelectionDialog } from "../hooks/useSelectionDialog";
|
|
2
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import React, { useCallback, useMemo } from "react";
|
|
4
4
|
|
|
5
5
|
import { Entity, EntityReference, FilterValues } from "@rebasepro/types";
|
|
@@ -55,7 +55,7 @@ export function ReferenceWidget<M extends Record<string, unknown>>({
|
|
|
55
55
|
|
|
56
56
|
const collectionRegistryController = useCollectionRegistryController();
|
|
57
57
|
|
|
58
|
-
const collection:
|
|
58
|
+
const collection: CollectionConfig | undefined = useMemo(() => {
|
|
59
59
|
return collectionRegistryController.getCollection(path);
|
|
60
60
|
}, [path, collectionRegistryController.getCollection]);
|
|
61
61
|
|
|
@@ -83,7 +83,7 @@ export function ReferenceWidget<M extends Record<string, unknown>>({
|
|
|
83
83
|
}
|
|
84
84
|
}, [disabled, onReferenceSelected]);
|
|
85
85
|
|
|
86
|
-
const referenceDialogController =
|
|
86
|
+
const referenceDialogController = useSelectionDialog({
|
|
87
87
|
multiselect,
|
|
88
88
|
path,
|
|
89
89
|
collection,
|