@rebasepro/admin 0.7.0 → 0.9.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/LICENSE +21 -0
- package/README.md +20 -20
- package/dist/{CollectionEditorDialog-iGgS4rLX.js → CollectionEditorDialog-B-7uW3iJ.js} +15 -15
- package/dist/CollectionEditorDialog-B-7uW3iJ.js.map +1 -0
- package/dist/{PropertyEditView-C9yhLyja.js → PropertyEditView-7KMTcrqi.js} +140 -106
- package/dist/PropertyEditView-7KMTcrqi.js.map +1 -0
- package/dist/{RouterCollectionsStudioView-Dqx27GD8.js → RouterCollectionsStudioView-epqIbZrJ.js} +4 -4
- package/dist/{RouterCollectionsStudioView-Dqx27GD8.js.map → RouterCollectionsStudioView-epqIbZrJ.js.map} +1 -1
- package/dist/collection_editor/_cms_internals.d.ts +4 -4
- package/dist/collection_editor/api/generateCollectionApi.d.ts +7 -6
- 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 +12 -16
- 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 -5
- 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 +4 -4
- package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +3 -3
- 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/validateCollectionJson.d.ts +2 -2
- package/dist/collection_editor_ui.js +4 -4
- 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} +1 -1
- 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/common.d.ts +2 -2
- package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.d.ts +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dist/components/RebaseNavigation.d.ts +1 -1
- package/dist/components/ReferenceTable/{EntitySelectionTable.d.ts → SelectionTableBinding.d.ts} +5 -5
- package/dist/components/SelectableTable/SelectableTable.d.ts +5 -5
- package/dist/components/SelectableTable/SelectableTableContext.d.ts +3 -3
- package/dist/components/SelectableTable/SelectionStore.d.ts +13 -22
- 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/field_configs.d.ts +1 -1
- package/dist/components/history/EntityHistoryEntry.d.ts +2 -2
- package/dist/components/history/LastEditedByIndicator.d.ts +2 -2
- package/dist/components/index.d.ts +14 -13
- 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/editor.d.ts +0 -6
- package/dist/editor.js +1 -3
- 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/StorageUploadProgress.d.ts +6 -1
- package/dist/form/form_utils.d.ts +2 -2
- package/dist/form/index.d.ts +0 -1
- package/dist/{history-ChHgyyvM.js → history-7X5bON_n.js} +4 -4
- package/dist/history-7X5bON_n.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 +3 -3
- package/dist/index.js +2 -2
- package/dist/preview/components/StorageThumbnail.d.ts +3 -1
- package/dist/{src-DOX2nOyh.js → src-sUZfe29F.js} +904 -1096
- package/dist/src-sUZfe29F.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/PropertyPreviewProps.d.ts +2 -1
- package/dist/types/fields.d.ts +6 -8
- 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 +18 -18
- package/src/collection_editor/ConfigControllerProvider.tsx +10 -10
- package/src/collection_editor/_cms_internals.ts +4 -4
- package/src/collection_editor/api/generateCollectionApi.ts +7 -6
- package/src/collection_editor/extensibility_types.ts +3 -3
- package/src/collection_editor/index.ts +3 -3
- package/src/collection_editor/pgColumnToProperty.ts +4 -4
- package/src/collection_editor/serializable_types.ts +22 -35
- package/src/collection_editor/serializable_utils.ts +40 -52
- 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 +2 -2
- package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +2 -2
- package/src/collection_editor/ui/EditorCollectionAction.tsx +2 -2
- package/src/collection_editor/ui/EditorCollectionActionStart.tsx +2 -2
- package/src/collection_editor/ui/EditorEntityAction.tsx +2 -2
- package/src/collection_editor/ui/KanbanSetupAction.tsx +2 -2
- package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +63 -46
- package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +8 -8
- package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +4 -4
- package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +7 -16
- package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +45 -36
- package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +1 -1
- package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +5 -5
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +3 -3
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +2 -2
- package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +35 -1
- package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +3 -3
- 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/ui/collection_editor/utils/supported_fields.tsx +0 -1
- package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +7 -29
- package/src/collection_editor/useJsonCollectionsConfigController.tsx +14 -14
- package/src/collection_editor/useLocalCollectionsConfigController.tsx +4 -4
- package/src/collection_editor/validateCollectionJson.ts +3 -3
- package/src/components/CollectionPanel.tsx +14 -17
- package/src/components/{EntityCollectionTable/EntityCollectionRowActions.tsx → CollectionTableBinding/CollectionRowActions.tsx} +6 -6
- package/src/components/{EntityCollectionTable/EntityCollectionTable.tsx → CollectionTableBinding/CollectionTableBinding.tsx} +19 -17
- package/src/components/{EntityCollectionTable/EntityCollectionTableProps.tsx → CollectionTableBinding/CollectionTableBindingProps.tsx} +1 -1
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.tsx +7 -6
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.tsx +10 -10
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.tsx +7 -6
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.tsx +23 -20
- package/src/components/CollectionTableBinding/index.tsx +14 -0
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.tsx +2 -2
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.tsx +2 -2
- package/src/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.tsx +24 -44
- package/src/components/{EntityCollectionView/EntityBoardCard.tsx → CollectionViewBinding/BoardCardBinding.tsx} +15 -15
- package/src/components/{EntityCollectionView/EntityCollectionBoardView.tsx → CollectionViewBinding/CollectionBoardViewBinding.tsx} +15 -14
- package/src/components/{EntityCollectionView/EntityCollectionCardView.tsx → CollectionViewBinding/CollectionCardViewBinding.tsx} +8 -8
- package/src/components/{EntityCollectionView/EntityCollectionListView.tsx → CollectionViewBinding/CollectionListViewBinding.tsx} +24 -13
- package/src/components/{EntityCollectionView/EntityCollectionViewActions.tsx → CollectionViewBinding/CollectionViewActions.tsx} +5 -5
- package/src/components/{EntityCollectionView/EntityCollectionView.tsx → CollectionViewBinding/CollectionViewBinding.tsx} +112 -114
- package/src/components/{EntityCollectionView/EntityCollectionViewStartActions.tsx → CollectionViewBinding/CollectionViewStartActions.tsx} +5 -5
- package/src/components/{EntityCollectionView/EntityCard.tsx → CollectionViewBinding/EntityCardBinding.tsx} +9 -9
- package/src/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.tsx +31 -72
- package/src/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.tsx +9 -9
- package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.ts +6 -6
- package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.ts +4 -4
- package/src/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.tsx +28 -50
- package/src/components/{EntityCollectionView/useEntityPreviewSlots.ts → CollectionViewBinding/usePreviewSlots.ts} +11 -11
- package/src/components/DefaultDrawer.tsx +1 -1
- package/src/components/DeleteEntityDialog.tsx +6 -6
- package/src/components/{EntityDetailView.tsx → DetailViewBinding.tsx} +28 -31
- package/src/components/{EntityEditViewFormActions.tsx → EditFormActions.tsx} +15 -15
- package/src/components/{EntityEditView.tsx → EditViewBinding.tsx} +31 -34
- package/src/components/{EntityPreview.tsx → EntityPreviewBinding.tsx} +27 -27
- package/src/components/{EntityView.tsx → EntityViewBinding.tsx} +5 -5
- package/src/components/HomePage/ContentHomePage.tsx +1 -1
- package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
- package/src/components/{EntityJsonPreview.tsx → JsonPreviewBinding.tsx} +1 -1
- package/src/components/RebaseCMS.tsx +4 -4
- package/src/components/RebaseNavigation.tsx +20 -10
- package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx} +22 -19
- package/src/components/ReferenceWidget.tsx +4 -4
- package/src/components/RelationSelector.tsx +16 -14
- package/src/components/SelectableTable/SelectableTable.tsx +44 -89
- package/src/components/SelectableTable/SelectableTableContext.tsx +3 -3
- package/src/components/SelectableTable/SelectionStore.ts +22 -52
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +9 -1
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +33 -12
- package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +187 -0
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +21 -7
- package/src/components/SelectableTable/filters/RelationFilterField.tsx +17 -3
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +66 -12
- package/src/components/SideDialogs.tsx +3 -3
- package/src/components/{EntitySidePanel.tsx → SidePanelBinding.tsx} +19 -19
- package/src/components/{SideEntityProvider.tsx → SidePanelProvider.tsx} +16 -16
- package/src/components/common/default_entity_actions.tsx +24 -13
- package/src/components/field_configs.tsx +0 -14
- package/src/components/history/EntityHistoryEntry.tsx +2 -2
- package/src/components/history/EntityHistoryView.tsx +3 -3
- package/src/components/history/LastEditedByIndicator.tsx +2 -2
- package/src/components/index.ts +15 -14
- package/src/contexts/SidePanelControllerContext.tsx +5 -0
- package/src/data_export/export/ExportCollectionAction.tsx +4 -4
- package/src/data_import/components/ImportSaveInProgress.tsx +3 -3
- package/src/data_import/import/ImportCollectionAction.tsx +4 -4
- package/src/data_import/utils/data.ts +2 -2
- package/src/editor/editor.tsx +4 -7
- package/src/form/EntityForm.tsx +2 -2
- package/src/form/EntityFormActions.tsx +4 -4
- package/src/form/EntityFormBinding.tsx +7 -7
- package/src/form/PropertyFieldBinding.tsx +4 -4
- package/src/form/components/StorageUploadProgress.tsx +9 -2
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -4
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -19
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +12 -1
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +6 -6
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +5 -5
- package/src/form/field_bindings/RelationFieldBinding.tsx +8 -10
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +19 -15
- package/src/form/form_utils.ts +2 -2
- package/src/form/index.tsx +0 -1
- 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 +10 -10
- 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} +28 -28
- package/src/hooks/useCMSContext.tsx +6 -6
- package/src/hooks/{useEntityHistory.ts → useHistory.ts} +1 -1
- package/src/hooks/useResolvedNavigationFrom.tsx +8 -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 +13 -13
- package/src/preview/PropertyPreview.tsx +1 -16
- package/src/preview/components/ReferencePreview.tsx +10 -10
- package/src/preview/components/RelationPreview.tsx +13 -12
- package/src/preview/components/StorageThumbnail.tsx +24 -7
- package/src/routes/RebaseRoute.tsx +10 -10
- package/src/types/components/EntityFormActionsProps.tsx +2 -2
- package/src/types/components/EntityFormProps.tsx +3 -3
- package/src/types/components/PropertyPreviewProps.tsx +1 -1
- package/src/types/fields.tsx +4 -9
- package/src/util/dataControllerAdapter.ts +9 -15
- package/src/util/navigation_utils.ts +7 -7
- package/src/util/previews.ts +23 -3
- package/src/util/propertyConfigMapper.ts +3 -3
- package/src/util/property_utils.tsx +2 -3
- package/src/util/{entity_view_constants.ts → view_constants.ts} +1 -1
- package/dist/CollectionEditorDialog-iGgS4rLX.js.map +0 -1
- package/dist/PropertyEditView-C9yhLyja.js.map +0 -1
- package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -28
- package/dist/components/EntityCollectionTable/fields/VirtualTableDateField.d.ts +0 -12
- package/dist/components/EntityCollectionTable/fields/VirtualTableInput.d.ts +0 -10
- package/dist/components/EntityCollectionTable/fields/VirtualTableNumberInput.d.ts +0 -9
- package/dist/components/EntityCollectionTable/fields/VirtualTableSwitch.d.ts +0 -8
- 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/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +0 -11
- package/dist/history-ChHgyyvM.js.map +0 -1
- package/dist/hooks/useBuildSideEntityController.d.ts +0 -6
- package/dist/hooks/useSideEntityController.d.ts +0 -11
- package/dist/src-DOX2nOyh.js.map +0 -1
- package/src/components/EntityCollectionTable/fields/VirtualTableDateField.tsx +0 -39
- package/src/components/EntityCollectionTable/fields/VirtualTableInput.tsx +0 -90
- package/src/components/EntityCollectionTable/fields/VirtualTableNumberInput.tsx +0 -83
- package/src/components/EntityCollectionTable/fields/VirtualTableSwitch.tsx +0 -32
- package/src/components/EntityCollectionTable/index.tsx +0 -14
- package/src/contexts/SideEntityControllerContext.tsx +0 -5
- package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +0 -141
- 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/EntityTableCell.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/{EntityCollectionTable → CollectionTableBinding}/table_bindings.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}/PropertyTableCell.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.tsx +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/CollectionTableToolbar.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.tsx +0 -0
- /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.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}/ViewModeToggle.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.tsx +0 -0
- /package/src/components/{EntityCollectionView → CollectionViewBinding}/utils.ts +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Entity } from "@rebasepro/types";
|
|
2
|
-
import {
|
|
2
|
+
import { CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import { FormContext } from "../fields";
|
|
4
4
|
import { FormexController } from "./formex";
|
|
5
5
|
export interface EntityFormActionsProps {
|
|
6
6
|
path: string;
|
|
7
|
-
collection:
|
|
7
|
+
collection: CollectionConfig;
|
|
8
8
|
entity?: Entity;
|
|
9
9
|
layout: "bottom" | "side" | "responsive";
|
|
10
10
|
savingError?: Error;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Entity, EntityStatus } from "@rebasepro/types";
|
|
2
|
-
import {
|
|
2
|
+
import { CollectionConfig, EntityCustomViewParams } from "@rebasepro/types";
|
|
3
3
|
import { FormContext } from "../fields";
|
|
4
4
|
import { FormexController } from "./formex";
|
|
5
5
|
import { EntityFormActionsProps } from "./EntityFormActionsProps";
|
|
@@ -11,7 +11,7 @@ import { EntityFormActionsProps } from "./EntityFormActionsProps";
|
|
|
11
11
|
export type EntityFormProps<M extends Record<string, unknown>> = {
|
|
12
12
|
path: string;
|
|
13
13
|
fullIdPath?: string;
|
|
14
|
-
collection:
|
|
14
|
+
collection: CollectionConfig<M>;
|
|
15
15
|
entityId?: string | number;
|
|
16
16
|
entity?: Entity<M>;
|
|
17
17
|
databaseId?: string;
|
|
@@ -104,5 +104,5 @@ export type OnUpdateParams = {
|
|
|
104
104
|
path: string;
|
|
105
105
|
entityId?: string | number;
|
|
106
106
|
selectedTab?: string;
|
|
107
|
-
collection:
|
|
107
|
+
collection: CollectionConfig<Record<string, unknown>>;
|
|
108
108
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { InferPropertyType } from "@rebasepro/types";
|
|
1
2
|
import { Property } from "@rebasepro/types";
|
|
2
3
|
/**
|
|
3
4
|
* @group Preview components
|
|
@@ -11,7 +12,7 @@ export interface PropertyPreviewProps<P extends Property | Property, CustomProps
|
|
|
11
12
|
* Name of the property
|
|
12
13
|
*/
|
|
13
14
|
propertyKey?: string;
|
|
14
|
-
value: any;
|
|
15
|
+
value: InferPropertyType<P> | any;
|
|
15
16
|
/**
|
|
16
17
|
* Property this display is related to, now strongly typed to P
|
|
17
18
|
*/
|
package/dist/types/fields.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { InferPropertyType } from "@rebasepro/types";
|
|
1
2
|
import { Entity } from "@rebasepro/types";
|
|
2
3
|
import { FormexController } from "./components/formex";
|
|
3
|
-
import {
|
|
4
|
+
import { CollectionConfig } from "@rebasepro/types";
|
|
4
5
|
import { Property } from "@rebasepro/types";
|
|
5
|
-
export type DefaultFieldConfig = "text_field" | "multiline" | "markdown" | "url" | "email" | "switch" | "select" | "multi_select" | "user_select" | "number_input" | "number_select" | "multi_number_select" | "file_upload" | "multi_file_upload" | "
|
|
6
|
+
export type DefaultFieldConfig = "text_field" | "multiline" | "markdown" | "url" | "email" | "switch" | "select" | "multi_select" | "user_select" | "number_input" | "number_select" | "multi_number_select" | "file_upload" | "multi_file_upload" | "reference" | "multi_references" | "relation" | "date_time" | "group" | "key_value" | "repeat" | "custom_array" | "block" | "vector_input";
|
|
6
7
|
/**
|
|
7
8
|
* When building a custom field you need to create a React component that takes
|
|
8
9
|
* this interface as props.
|
|
@@ -18,11 +19,8 @@ export interface FieldProps<P extends Property | Property = Property, CustomProp
|
|
|
18
19
|
/**
|
|
19
20
|
* Current value of this field, inferred from the property type P
|
|
20
21
|
*/
|
|
21
|
-
value: any;
|
|
22
|
-
|
|
23
|
-
* Set value of field directly
|
|
24
|
-
*/
|
|
25
|
-
setValue: (value: any | null, shouldValidate?: boolean) => void;
|
|
22
|
+
value: InferPropertyType<P> | any;
|
|
23
|
+
setValue: (value: InferPropertyType<P> | null | any, shouldValidate?: boolean) => void;
|
|
26
24
|
/**
|
|
27
25
|
* Set value of a different field directly
|
|
28
26
|
* @param propertyKey
|
|
@@ -137,7 +135,7 @@ export interface FormContext<M extends Record<string, unknown> = Record<string,
|
|
|
137
135
|
/**
|
|
138
136
|
* Collection of the entity being modified
|
|
139
137
|
*/
|
|
140
|
-
collection?:
|
|
138
|
+
collection?: CollectionConfig<M>;
|
|
141
139
|
/**
|
|
142
140
|
* Entity id, it can be undefined if it's a new entity
|
|
143
141
|
*/
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
import type { EntityTableController } from "@rebasepro/types";
|
|
7
7
|
import type { CollectionDataController } from "@rebasepro/ui";
|
|
8
8
|
/**
|
|
9
|
-
* React hook that adapts
|
|
9
|
+
* React hook that adapts a EntityTableController to a CollectionDataController.
|
|
10
10
|
*
|
|
11
11
|
* Usage:
|
|
12
12
|
* ```tsx
|
|
@@ -16,10 +16,7 @@ import type { CollectionDataController } from "@rebasepro/ui";
|
|
|
16
16
|
* <CollectionView dataController={dataController} ... />
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
export declare function useCollectionDataController<M extends Record<string, unknown>>(tableController: EntityTableController<M>): CollectionDataController<M
|
|
20
|
-
id: string | number;
|
|
21
|
-
path: string;
|
|
22
|
-
}>;
|
|
19
|
+
export declare function useCollectionDataController<M extends Record<string, unknown>>(tableController: EntityTableController<M>): CollectionDataController<M>;
|
|
23
20
|
/**
|
|
24
21
|
* Non-hook version for cases where you already have the data
|
|
25
22
|
* and just need to build a static controller.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, UrlController, SidePanelController } from "@rebasepro/types";
|
|
2
2
|
export { removeInitialAndTrailingSlashes, removeInitialSlash, removeTrailingSlash, addInitialSlash, getLastSegment, resolveCollectionPathIds, getCollectionBySlugWithin, getCollectionPathsCombinations } from "@rebasepro/common";
|
|
3
3
|
/**
|
|
4
|
-
* Navigate to
|
|
4
|
+
* Navigate to a entity using either a side panel or full-screen mode.
|
|
5
5
|
* This is an admin-specific UI concern and lives here (not in common).
|
|
6
6
|
*/
|
|
7
|
-
export declare function navigateToEntity({ openEntityMode, collection, entityId, copy, path, selectedTab, defaultValues,
|
|
7
|
+
export declare function navigateToEntity({ openEntityMode, collection, entityId, copy, path, selectedTab, defaultValues, sidePanelController, onClose, navigation, replace }: {
|
|
8
8
|
openEntityMode?: "side_panel" | "full_screen" | "split" | "dialog";
|
|
9
|
-
collection?:
|
|
9
|
+
collection?: CollectionConfig;
|
|
10
10
|
entityId?: string | number;
|
|
11
11
|
selectedTab?: string;
|
|
12
12
|
copy?: boolean;
|
|
@@ -14,13 +14,13 @@ export declare function navigateToEntity({ openEntityMode, collection, entityId,
|
|
|
14
14
|
* Pre-populate the new entity form with these values.
|
|
15
15
|
* Only applied when entityId is not set (i.e. "new" mode).
|
|
16
16
|
*
|
|
17
|
-
* Side panel: passed through
|
|
17
|
+
* Side panel: passed through SidePanelBindingProps → EditViewBinding.
|
|
18
18
|
* Full screen: carried via React Router location.state so the route
|
|
19
19
|
* component can read it on mount without polluting the URL.
|
|
20
20
|
*/
|
|
21
21
|
defaultValues?: Record<string, unknown>;
|
|
22
22
|
path: string;
|
|
23
|
-
|
|
23
|
+
sidePanelController: SidePanelController;
|
|
24
24
|
onClose?: () => void;
|
|
25
25
|
navigation: UrlController;
|
|
26
26
|
replace?: boolean;
|
package/dist/util/previews.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig, PropertyConfig } from "@rebasepro/types";
|
|
2
2
|
import { AuthController } from "@rebasepro/types";
|
|
3
|
-
export declare function getEntityPreviewKeys(authController: AuthController, targetCollection:
|
|
4
|
-
export declare function getEntityTitlePropertyKey<M extends Record<string, unknown>>(collection:
|
|
3
|
+
export declare function getEntityPreviewKeys(authController: AuthController, targetCollection: CollectionConfig<any>, fields: Record<string, PropertyConfig>, previewProperties?: string[], limit?: number): string[];
|
|
4
|
+
export declare function getEntityTitlePropertyKey<M extends Record<string, unknown>>(collection: CollectionConfig<M>, propertyConfigs: Record<string, PropertyConfig>): string | undefined;
|
|
5
5
|
/**
|
|
6
6
|
* Attempt to turn a title value (which might be a relation, reference, date, array, or other complex object)
|
|
7
7
|
* into a renderable, human-readable string.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Properties } from "@rebasepro/types";
|
|
2
|
-
import type {
|
|
2
|
+
import type { CollectionConfig, Property, PropertyConfig } from "@rebasepro/types";
|
|
3
3
|
import React from "react";
|
|
4
4
|
import type { IconSize } from "@rebasepro/ui";
|
|
5
5
|
export declare function isReferenceProperty(property: Property): boolean | null;
|
|
@@ -22,4 +22,4 @@ export declare function getBracketNotation(path: string): string;
|
|
|
22
22
|
* @param propertiesOrder
|
|
23
23
|
*/
|
|
24
24
|
export declare function getPropertiesWithPropertiesOrder(properties: Properties, propertiesOrder?: string[]): Properties;
|
|
25
|
-
export declare function getDefaultPropertiesOrder(collection:
|
|
25
|
+
export declare function getDefaultPropertiesOrder(collection: CollectionConfig): string[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Shared tab value constants used by
|
|
2
|
+
* Shared tab value constants used by EditViewBinding and DetailViewBinding.
|
|
3
3
|
*/
|
|
4
4
|
export declare const MAIN_TAB_VALUE = "__main_##Q$SC^#S6";
|
|
5
5
|
export declare const JSON_TAB_VALUE = "__json";
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rebasepro/admin",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.9.0",
|
|
5
5
|
"description": "Rebase CMS — content management views, forms, and routing",
|
|
6
6
|
"funding": {
|
|
7
7
|
"url": "https://github.com/sponsors/rebaseco"
|
|
@@ -31,14 +31,6 @@
|
|
|
31
31
|
"headless cms",
|
|
32
32
|
"content manager"
|
|
33
33
|
],
|
|
34
|
-
"scripts": {
|
|
35
|
-
"watch": "vite build --watch",
|
|
36
|
-
"build": "vite build && tsc --emitDeclarationOnly -p tsconfig.prod.json",
|
|
37
|
-
"test:lint": "eslint \"src/**\" --quiet",
|
|
38
|
-
"test": "jest --passWithNoTests",
|
|
39
|
-
"clean": "rm -rf dist && find ./src -name '*.js' -type f | xargs rm -f",
|
|
40
|
-
"generateIcons": "ts-node --esm src/icons/generateIcons.ts"
|
|
41
|
-
},
|
|
42
34
|
"exports": {
|
|
43
35
|
".": {
|
|
44
36
|
"types": "./dist/index.d.ts",
|
|
@@ -63,13 +55,6 @@
|
|
|
63
55
|
"@dnd-kit/sortable": "^10.0.0",
|
|
64
56
|
"@dnd-kit/utilities": "^3.2.2",
|
|
65
57
|
"@floating-ui/dom": "^1.7.6",
|
|
66
|
-
"@rebasepro/common": "workspace:*",
|
|
67
|
-
"@rebasepro/core": "workspace:*",
|
|
68
|
-
"@rebasepro/formex": "workspace:*",
|
|
69
|
-
"@rebasepro/schema-inference": "workspace:*",
|
|
70
|
-
"@rebasepro/types": "workspace:*",
|
|
71
|
-
"@rebasepro/ui": "workspace:*",
|
|
72
|
-
"@rebasepro/utils": "workspace:*",
|
|
73
58
|
"cmdk": "^1.1.1",
|
|
74
59
|
"date-fns": "^4.4.0",
|
|
75
60
|
"exceljs": "^4.4.0",
|
|
@@ -97,7 +82,14 @@
|
|
|
97
82
|
"prosemirror-view": "^1.41.9",
|
|
98
83
|
"react-dropzone": "^15.0.0",
|
|
99
84
|
"react-use-measure": "^2.1.7",
|
|
100
|
-
"zod": "^4.4.3"
|
|
85
|
+
"zod": "^4.4.3",
|
|
86
|
+
"@rebasepro/common": "0.9.0",
|
|
87
|
+
"@rebasepro/schema-inference": "0.9.0",
|
|
88
|
+
"@rebasepro/core": "0.9.0",
|
|
89
|
+
"@rebasepro/formex": "0.9.0",
|
|
90
|
+
"@rebasepro/ui": "0.9.0",
|
|
91
|
+
"@rebasepro/types": "0.9.0",
|
|
92
|
+
"@rebasepro/utils": "0.9.0"
|
|
101
93
|
},
|
|
102
94
|
"peerDependencies": {
|
|
103
95
|
"react": ">=19.0.0",
|
|
@@ -168,5 +160,13 @@
|
|
|
168
160
|
"^@rebasepro/formex$": "<rootDir>/../formex/src/index.ts",
|
|
169
161
|
"^@rebasepro/utils$": "<rootDir>/../utils/src/index.ts"
|
|
170
162
|
}
|
|
163
|
+
},
|
|
164
|
+
"scripts": {
|
|
165
|
+
"watch": "vite build --watch",
|
|
166
|
+
"build": "vite build && tsc --emitDeclarationOnly -p tsconfig.prod.json",
|
|
167
|
+
"test:lint": "eslint \"src/**\" --quiet",
|
|
168
|
+
"test": "jest --passWithNoTests",
|
|
169
|
+
"clean": "rm -rf dist && find ./src -name '*.js' -type f | xargs rm -f",
|
|
170
|
+
"generateIcons": "ts-node --esm src/icons/generateIcons.ts"
|
|
171
171
|
}
|
|
172
|
-
}
|
|
172
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useUrlController } from "./_cms_internals";
|
|
2
2
|
import React, { useCallback, useEffect, useMemo, useState } from "react";
|
|
3
|
-
import { Entity,
|
|
3
|
+
import { Entity, CollectionConfig, Property, TableMetadata, User } from "@rebasepro/types";
|
|
4
4
|
import { deepEqual as equal } from "fast-equals";
|
|
5
5
|
|
|
6
6
|
import { CollectionsConfigController } from "./types/config_controller";
|
|
@@ -87,7 +87,7 @@ export const ConfigControllerProvider = React.memo(
|
|
|
87
87
|
|
|
88
88
|
const [currentDialog, setCurrentDialog] = React.useState<{
|
|
89
89
|
isNewCollection: boolean,
|
|
90
|
-
parentCollection?:
|
|
90
|
+
parentCollection?: CollectionConfig,
|
|
91
91
|
editedCollectionId?: string,
|
|
92
92
|
path?: string,
|
|
93
93
|
parentCollectionSlugs: string[], parentEntityIds: string[],
|
|
@@ -95,7 +95,7 @@ export const ConfigControllerProvider = React.memo(
|
|
|
95
95
|
path?: string,
|
|
96
96
|
name?: string
|
|
97
97
|
},
|
|
98
|
-
copyFrom?:
|
|
98
|
+
copyFrom?: CollectionConfig,
|
|
99
99
|
redirect: boolean,
|
|
100
100
|
existingEntities?: Entity[],
|
|
101
101
|
pathSuggestions?: string[];
|
|
@@ -107,14 +107,14 @@ export const ConfigControllerProvider = React.memo(
|
|
|
107
107
|
propertyKey?: string,
|
|
108
108
|
property?: Property,
|
|
109
109
|
namespace?: string,
|
|
110
|
-
parentCollection?:
|
|
110
|
+
parentCollection?: CollectionConfig,
|
|
111
111
|
currentPropertiesOrder?: string[],
|
|
112
112
|
editedCollectionId: string,
|
|
113
113
|
path?: string,
|
|
114
114
|
parentCollectionSlugs: string[], parentEntityIds: string[],
|
|
115
115
|
|
|
116
116
|
existingEntities?: Entity[];
|
|
117
|
-
collection?:
|
|
117
|
+
collection?: CollectionConfig;
|
|
118
118
|
}>();
|
|
119
119
|
|
|
120
120
|
|
|
@@ -130,7 +130,7 @@ export const ConfigControllerProvider = React.memo(
|
|
|
130
130
|
id?: string,
|
|
131
131
|
path?: string,
|
|
132
132
|
parentCollectionSlugs: string[], parentEntityIds: string[],
|
|
133
|
-
parentCollection?:
|
|
133
|
+
parentCollection?: CollectionConfig,
|
|
134
134
|
existingEntities?: Entity[],
|
|
135
135
|
initialView?: "general" | "display" | "properties",
|
|
136
136
|
expandKanban?: boolean
|
|
@@ -169,7 +169,7 @@ parentEntityIds,
|
|
|
169
169
|
currentPropertiesOrder?: string[],
|
|
170
170
|
editedCollectionId: string,
|
|
171
171
|
parentCollectionSlugs: string[], parentEntityIds: string[],
|
|
172
|
-
collection:
|
|
172
|
+
collection: CollectionConfig,
|
|
173
173
|
existingEntities?: Entity[]
|
|
174
174
|
}) => {
|
|
175
175
|
console.debug("Edit property", propertyKey, property, editedCollectionId, currentPropertiesOrder, parentCollectionSlugs, parentEntityIds, collection);
|
|
@@ -207,12 +207,12 @@ parentEntityIds,
|
|
|
207
207
|
sourceClick
|
|
208
208
|
}: {
|
|
209
209
|
parentCollectionSlugs: string[], parentEntityIds: string[],
|
|
210
|
-
parentCollection?:
|
|
210
|
+
parentCollection?: CollectionConfig
|
|
211
211
|
initialValues?: {
|
|
212
212
|
path?: string,
|
|
213
213
|
name?: string
|
|
214
214
|
},
|
|
215
|
-
copyFrom?:
|
|
215
|
+
copyFrom?: CollectionConfig,
|
|
216
216
|
redirect: boolean,
|
|
217
217
|
sourceClick?: string
|
|
218
218
|
}) => {
|
|
@@ -262,7 +262,7 @@ parentEntityIds,
|
|
|
262
262
|
onAnalyticsEvent,
|
|
263
263
|
unmappedTables,
|
|
264
264
|
onFetchTableMetadata,
|
|
265
|
-
handleClose: (collection?:
|
|
265
|
+
handleClose: (collection?: CollectionConfig) => {
|
|
266
266
|
if (currentDialog?.redirect) {
|
|
267
267
|
if (collection && currentDialog?.isNewCollection && !currentDialog.parentCollectionSlugs.length) {
|
|
268
268
|
const url = urlController.buildUrlCollectionPath(collection.slug);
|
|
@@ -8,18 +8,18 @@
|
|
|
8
8
|
export { useCollectionRegistryController } from "../hooks/navigation/contexts/CollectionRegistryContext";
|
|
9
9
|
export { useNavigationStateController } from "../hooks/navigation/contexts/NavigationStateContext";
|
|
10
10
|
export { useUrlController } from "../hooks/navigation/contexts/UrlContext";
|
|
11
|
-
export {
|
|
11
|
+
export { useSidePanel } from "../hooks/useSidePanel";
|
|
12
12
|
export { useBreadcrumbsController } from "../hooks/useBreadcrumbsController";
|
|
13
13
|
|
|
14
14
|
// Components
|
|
15
15
|
export { FieldCaption } from "../components/FieldCaption";
|
|
16
16
|
export { SearchIconsView } from "../components/SearchIconsView";
|
|
17
17
|
export { PropertyConfigBadge } from "../components/PropertyConfigBadge";
|
|
18
|
-
export {
|
|
19
|
-
export { VirtualTableInput } from "
|
|
18
|
+
export { CollectionTableBinding } from "../components/CollectionTableBinding";
|
|
19
|
+
export { VirtualTableInput } from "@rebasepro/ui";
|
|
20
20
|
export { ArrayContainer } from "../components/ArrayContainer";
|
|
21
21
|
export type { ArrayEntryParams } from "../components/ArrayContainer";
|
|
22
|
-
export { useSelectionController } from "../components/
|
|
22
|
+
export { useSelectionController } from "../components/CollectionViewBinding/useSelectionController";
|
|
23
23
|
|
|
24
24
|
// Data import
|
|
25
25
|
export { ImportFileUpload } from "../data_import/components/ImportFileUpload";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
|
|
3
3
|
export interface GenerateCollectionRequest {
|
|
4
4
|
/** User's natural language description of what they want */
|
|
5
5
|
prompt: string;
|
|
6
6
|
|
|
7
7
|
/** Other collections in the project (for context/relationships). Limit to 30. */
|
|
8
|
-
existingCollections: Partial<
|
|
8
|
+
existingCollections: Partial<CollectionConfig>[];
|
|
9
9
|
|
|
10
10
|
/** Optional for generate, required for modifications. If provided, modifies this collection */
|
|
11
|
-
existingCollection?: Partial<
|
|
11
|
+
existingCollection?: Partial<CollectionConfig>;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
/** Operation types for modifying a collection */
|
|
@@ -23,7 +23,7 @@ export interface CollectionOperation {
|
|
|
23
23
|
|
|
24
24
|
/** Result from collection generation, including optional delta operations */
|
|
25
25
|
export interface GenerateCollectionResult {
|
|
26
|
-
collection:
|
|
26
|
+
collection: CollectionConfig;
|
|
27
27
|
operations?: CollectionOperation[];
|
|
28
28
|
}
|
|
29
29
|
|
|
@@ -55,8 +55,9 @@ export const DEFAULT_COLLECTION_GENERATION_ENDPOINT = "https://api.rebase.pro/co
|
|
|
55
55
|
*/
|
|
56
56
|
export interface BuildCollectionGenerationCallbackProps {
|
|
57
57
|
/**
|
|
58
|
-
* Function to get the auth token
|
|
59
|
-
* This is typically `authController.getAuthToken` from `@rebasepro/client
|
|
58
|
+
* Function to get the auth token.
|
|
59
|
+
* This is typically `authController.getAuthToken` from `@rebasepro/client`
|
|
60
|
+
* (or `@rebasepro/client-firebase` if using Firebase).
|
|
60
61
|
*/
|
|
61
62
|
getAuthToken: () => Promise<string>;
|
|
62
63
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import type React from "react";
|
|
15
|
-
import type { SerializableProperty,
|
|
15
|
+
import type { SerializableProperty, SerializableCollectionConfig } from "./serializable_types";
|
|
16
16
|
|
|
17
17
|
// ═══════════════════════════════════════════════════════════════════════
|
|
18
18
|
// PROPERTY TYPE PRESETS
|
|
@@ -90,7 +90,7 @@ export interface ExtraPropertyFieldsParams {
|
|
|
90
90
|
/** The full current property being edited (serializable form). */
|
|
91
91
|
property: SerializableProperty;
|
|
92
92
|
/** The collection this property belongs to (serializable form). */
|
|
93
|
-
collection:
|
|
93
|
+
collection: SerializableCollectionConfig;
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
@@ -102,7 +102,7 @@ export interface ExtraCollectionFieldsParams {
|
|
|
102
102
|
/** Callback to update a single metadata key. Triggers dirty-state tracking. */
|
|
103
103
|
onMetadataChange: (key: string, value: unknown) => void;
|
|
104
104
|
/** The full current collection being edited (serializable form). */
|
|
105
|
-
collection:
|
|
105
|
+
collection: SerializableCollectionConfig;
|
|
106
106
|
}
|
|
107
107
|
|
|
108
108
|
// ═══════════════════════════════════════════════════════════════════════
|
|
@@ -23,16 +23,16 @@ export {
|
|
|
23
23
|
} from "./useJsonCollectionsConfigController";
|
|
24
24
|
|
|
25
25
|
export {
|
|
26
|
-
|
|
26
|
+
toSerializableCollectionConfig,
|
|
27
27
|
toSerializableProperty,
|
|
28
28
|
toSerializableProperties,
|
|
29
|
-
|
|
29
|
+
fromSerializableCollectionConfig,
|
|
30
30
|
fromSerializableProperty,
|
|
31
31
|
fromSerializableProperties,
|
|
32
32
|
} from "./serializable_utils";
|
|
33
33
|
|
|
34
34
|
export type {
|
|
35
|
-
|
|
35
|
+
SerializableCollectionConfig,
|
|
36
36
|
SerializableProperty,
|
|
37
37
|
SerializableProperties,
|
|
38
38
|
SerializableBaseProperty,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CollectionConfig, Property, StringProperty, NumberProperty, ArrayProperty, TableColumnInfo, TableMetadata, PostgresProperties } from "@rebasepro/types";
|
|
2
2
|
import { prettifyIdentifier } from "@rebasepro/utils";
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -193,13 +193,13 @@ label: prettifyIdentifier(v) })),
|
|
|
193
193
|
}
|
|
194
194
|
|
|
195
195
|
/**
|
|
196
|
-
* Builds a partial
|
|
196
|
+
* Builds a partial CollectionConfig from PostgreSQL table metadata.
|
|
197
197
|
* This is used when creating a new collection from an existing database table.
|
|
198
198
|
*/
|
|
199
199
|
export function buildCollectionFromTableMetadata(
|
|
200
200
|
tableName: string,
|
|
201
201
|
metadata: TableMetadata
|
|
202
|
-
): Partial<
|
|
202
|
+
): Partial<CollectionConfig> {
|
|
203
203
|
const properties: Record<string, Property> = {};
|
|
204
204
|
const propertiesOrder: string[] = [];
|
|
205
205
|
const relations: any[] = []; // In the builder/editor, target can be a string path before hydration
|
|
@@ -282,7 +282,7 @@ export function buildCollectionFromTableMetadata(
|
|
|
282
282
|
name: prettifiedName,
|
|
283
283
|
slug: tableName,
|
|
284
284
|
table: tableName,
|
|
285
|
-
properties,
|
|
285
|
+
properties: properties as PostgresProperties,
|
|
286
286
|
propertiesOrder,
|
|
287
287
|
...(relations.length > 0 ? { relations } : {}),
|
|
288
288
|
...(securityRules.length > 0 ? { securityRules } : {})
|
|
@@ -5,40 +5,29 @@
|
|
|
5
5
|
* class instances) from the original types in `@rebasepro/types`, making
|
|
6
6
|
* them safe for `JSON.stringify()` / database storage.
|
|
7
7
|
*
|
|
8
|
-
* Use `
|
|
8
|
+
* Use `toSerializableCollectionConfig` / `fromSerializableCollectionConfig` from
|
|
9
9
|
* `./serializable_utils` to convert between the original and serializable forms.
|
|
10
10
|
*
|
|
11
11
|
* @module
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
import type {
|
|
15
|
-
DataType,
|
|
16
|
-
EnumValues,
|
|
17
|
-
PropertyValidationSchema,
|
|
18
|
-
NumberPropertyValidationSchema,
|
|
19
15
|
ArrayPropertyValidationSchema,
|
|
20
|
-
PropertyConditions,
|
|
21
|
-
ImageResize,
|
|
22
|
-
FileType,
|
|
23
|
-
ColorKey,
|
|
24
|
-
ColorScheme,
|
|
25
|
-
} from "@rebasepro/types";
|
|
26
|
-
|
|
27
|
-
import type {
|
|
28
|
-
ViewMode,
|
|
29
16
|
CollectionSize,
|
|
30
|
-
|
|
31
|
-
|
|
17
|
+
EnumValues,
|
|
18
|
+
FileType,
|
|
32
19
|
FilterPreset,
|
|
33
|
-
|
|
20
|
+
FilterValues,
|
|
21
|
+
ImageResize,
|
|
22
|
+
JoinStep,
|
|
34
23
|
KanbanConfig,
|
|
35
|
-
SecurityOperation,
|
|
36
24
|
NavigationGroupMapping,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
import type {
|
|
25
|
+
NumberPropertyValidationSchema,
|
|
40
26
|
OnAction,
|
|
41
|
-
|
|
27
|
+
PropertyConditions,
|
|
28
|
+
PropertyValidationSchema,
|
|
29
|
+
SecurityRule,
|
|
30
|
+
ViewMode,
|
|
42
31
|
} from "@rebasepro/types";
|
|
43
32
|
|
|
44
33
|
// ═══════════════════════════════════════════════════════════════════════
|
|
@@ -109,6 +98,8 @@ export interface SerializableStorageConfig {
|
|
|
109
98
|
includeBucketUrl?: boolean;
|
|
110
99
|
storeUrl?: boolean;
|
|
111
100
|
maxSize?: number;
|
|
101
|
+
/** Key of the named storage backend to use (see `StorageConfig.storageSource`). */
|
|
102
|
+
storageSource?: string;
|
|
112
103
|
// processFile, postProcess, previewUrl are dropped (functions)
|
|
113
104
|
}
|
|
114
105
|
|
|
@@ -200,13 +191,9 @@ export interface SerializableStringProperty extends SerializableBaseProperty {
|
|
|
200
191
|
validation?: SerializableStringValidation;
|
|
201
192
|
isId?: boolean | "manual" | "uuid" | "cuid" | string;
|
|
202
193
|
enum?: EnumValues;
|
|
203
|
-
multiline?: boolean;
|
|
204
|
-
markdown?: boolean;
|
|
205
194
|
storage?: SerializableStorageConfig;
|
|
206
195
|
userSelect?: boolean;
|
|
207
|
-
url?: boolean | "image" | "video" | "audio" | "file";
|
|
208
196
|
email?: boolean;
|
|
209
|
-
previewAsTag?: boolean;
|
|
210
197
|
reference?: SerializableReferenceProperty;
|
|
211
198
|
}
|
|
212
199
|
|
|
@@ -236,7 +223,6 @@ export interface SerializableDateProperty extends SerializableBaseProperty {
|
|
|
236
223
|
mode?: "date" | "date_time";
|
|
237
224
|
timezone?: string;
|
|
238
225
|
autoValue?: "on_create" | "on_update";
|
|
239
|
-
clearable?: boolean;
|
|
240
226
|
}
|
|
241
227
|
|
|
242
228
|
/** JSON-serializable `GeopointProperty`. */
|
|
@@ -277,7 +263,7 @@ export interface SerializableReferenceProperty extends SerializableBaseProperty
|
|
|
277
263
|
/**
|
|
278
264
|
* JSON-serializable `RelationProperty`.
|
|
279
265
|
* `target` is string-only (collection slug). The function variant
|
|
280
|
-
* `() =>
|
|
266
|
+
* `() => CollectionConfig` is not serializable.
|
|
281
267
|
*/
|
|
282
268
|
export interface SerializableRelationProperty extends SerializableBaseProperty {
|
|
283
269
|
ui?: SerializableRelationUIConfig;
|
|
@@ -303,7 +289,7 @@ export interface SerializableRelationProperty extends SerializableBaseProperty {
|
|
|
303
289
|
includeId?: boolean;
|
|
304
290
|
includeEntityLink?: boolean;
|
|
305
291
|
widget?: "select" | "dialog";
|
|
306
|
-
// overrides are dropped (can contain non-serializable
|
|
292
|
+
// overrides are dropped (can contain non-serializable CollectionConfig fields)
|
|
307
293
|
// relation (resolved Relation object) is dropped (runtime-only, contains function target)
|
|
308
294
|
}
|
|
309
295
|
|
|
@@ -366,7 +352,7 @@ export type SerializableProperties = {
|
|
|
366
352
|
// ═══════════════════════════════════════════════════════════════════════
|
|
367
353
|
|
|
368
354
|
/**
|
|
369
|
-
* JSON-serializable version of `
|
|
355
|
+
* JSON-serializable version of `CollectionConfig` / `BaseCollectionConfig`.
|
|
370
356
|
*
|
|
371
357
|
* Strips all non-serializable fields:
|
|
372
358
|
* - Functions: `callbacks`, `childCollections`, `additionalFields`, `defaultSelectedView` (fn)
|
|
@@ -378,7 +364,7 @@ export type SerializableProperties = {
|
|
|
378
364
|
*
|
|
379
365
|
* Keeps all data-describing fields that the collection editor works with.
|
|
380
366
|
*/
|
|
381
|
-
export interface
|
|
367
|
+
export interface SerializableCollectionConfig {
|
|
382
368
|
slug: string;
|
|
383
369
|
name: string;
|
|
384
370
|
singularName?: string;
|
|
@@ -391,7 +377,8 @@ export interface SerializableCollection {
|
|
|
391
377
|
icon?: string;
|
|
392
378
|
|
|
393
379
|
group?: string;
|
|
394
|
-
|
|
380
|
+
engine?: string;
|
|
381
|
+
dataSource?: string;
|
|
395
382
|
databaseId?: string;
|
|
396
383
|
|
|
397
384
|
properties: SerializableProperties;
|
|
@@ -443,7 +430,7 @@ export interface SerializableCollection {
|
|
|
443
430
|
// ── SQL / Postgres-specific ───────────────────────────────────────
|
|
444
431
|
table?: string;
|
|
445
432
|
schema?: string;
|
|
446
|
-
securityRules?: SecurityRule[];
|
|
433
|
+
securityRules?: readonly SecurityRule[];
|
|
447
434
|
|
|
448
435
|
// ── Owner ─────────────────────────────────────────────────────────
|
|
449
436
|
ownerId?: string;
|
|
@@ -465,10 +452,10 @@ export interface SerializableCollection {
|
|
|
465
452
|
*/
|
|
466
453
|
export interface JsonCollectionStore {
|
|
467
454
|
/** Load all persisted collections. */
|
|
468
|
-
load(): Promise<
|
|
455
|
+
load(): Promise<SerializableCollectionConfig[]>;
|
|
469
456
|
|
|
470
457
|
/** Save (create or update) a single collection by its slug. */
|
|
471
|
-
save(slug: string, data:
|
|
458
|
+
save(slug: string, data: SerializableCollectionConfig): Promise<void>;
|
|
472
459
|
|
|
473
460
|
/** Delete a collection by its slug. */
|
|
474
461
|
delete(slug: string): Promise<void>;
|