@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,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import React, { memo, useCallback, useMemo } from "react";
|
|
3
3
|
import { Entity } from "@rebasepro/types";
|
|
4
4
|
import { Checkbox, Chip, cls, defaultBorderMixin, Markdown } from "@rebasepro/ui";
|
|
@@ -6,10 +6,10 @@ import { PropertyPreview } from "../../preview";
|
|
|
6
6
|
import { useAuthController, useCustomizationController } from "@rebasepro/core";
|
|
7
7
|
import { IconForView } from "@rebasepro/core";
|
|
8
8
|
import { BoardItemViewProps } from "@rebasepro/ui";
|
|
9
|
-
import { useCollectionSlotKeys, resolveEntitySlots } from "./
|
|
9
|
+
import { useCollectionSlotKeys, resolveEntitySlots } from "./usePreviewSlots";
|
|
10
10
|
|
|
11
|
-
export type
|
|
12
|
-
collection:
|
|
11
|
+
export type BoardCardBindingProps<M extends Record<string, unknown> = Record<string, unknown>> = BoardItemViewProps<Entity<M>> & {
|
|
12
|
+
collection: CollectionConfig<M>;
|
|
13
13
|
onClick?: (entity: Entity<M>) => void;
|
|
14
14
|
selected?: boolean;
|
|
15
15
|
onSelectionChange?: (entity: Entity<M>, selected: boolean) => void;
|
|
@@ -17,14 +17,14 @@ export type EntityBoardCardProps<M extends Record<string, unknown> = Record<stri
|
|
|
17
17
|
};
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
|
-
* Compact card component for displaying
|
|
20
|
+
* Compact card component for displaying a entity in a Kanban board.
|
|
21
21
|
* Uses the shared slot system for consistent preview rendering.
|
|
22
22
|
*
|
|
23
23
|
* Selection UX: The checkbox overlays on top of the image/icon thumbnail area,
|
|
24
24
|
* revealed on card hover or when the card is selected. This keeps the card
|
|
25
25
|
* layout clean while providing intuitive selection affordance.
|
|
26
26
|
*/
|
|
27
|
-
function
|
|
27
|
+
function BoardCardBindingInner<M extends Record<string, unknown> = Record<string, unknown>>({
|
|
28
28
|
item,
|
|
29
29
|
isDragging,
|
|
30
30
|
isGroupedOver,
|
|
@@ -34,13 +34,13 @@ function EntityBoardCardInner<M extends Record<string, unknown> = Record<string,
|
|
|
34
34
|
selected,
|
|
35
35
|
onSelectionChange,
|
|
36
36
|
selectionEnabled = false
|
|
37
|
-
}:
|
|
37
|
+
}: BoardCardBindingProps<M>) {
|
|
38
38
|
const entity = item.data;
|
|
39
39
|
const authController = useAuthController();
|
|
40
40
|
const customizationController = useCustomizationController();
|
|
41
41
|
|
|
42
42
|
const slotKeys = useCollectionSlotKeys(
|
|
43
|
-
collection as
|
|
43
|
+
collection as CollectionConfig<Record<string, unknown>>,
|
|
44
44
|
authController,
|
|
45
45
|
customizationController.propertyConfigs
|
|
46
46
|
);
|
|
@@ -48,7 +48,7 @@ function EntityBoardCardInner<M extends Record<string, unknown> = Record<string,
|
|
|
48
48
|
const slots = useMemo(
|
|
49
49
|
() => resolveEntitySlots(
|
|
50
50
|
entity as Entity<Record<string, unknown>>,
|
|
51
|
-
collection as
|
|
51
|
+
collection as CollectionConfig<Record<string, unknown>>,
|
|
52
52
|
slotKeys
|
|
53
53
|
),
|
|
54
54
|
[entity, collection, slotKeys]
|
|
@@ -234,13 +234,13 @@ function EntityBoardCardInner<M extends Record<string, unknown> = Record<string,
|
|
|
234
234
|
}
|
|
235
235
|
|
|
236
236
|
// Memoized to prevent unnecessary re-renders when other cards in the board change
|
|
237
|
-
export const
|
|
237
|
+
export const BoardCardBinding = memo(BoardCardBindingInner) as typeof BoardCardBindingInner;
|
|
238
238
|
|
|
239
239
|
/**
|
|
240
|
-
* Wrapper component that adapts
|
|
240
|
+
* Wrapper component that adapts BoardCardBinding to BoardItemViewProps interface
|
|
241
241
|
*/
|
|
242
|
-
export function
|
|
243
|
-
collection:
|
|
242
|
+
export function createBoardCardBindingComponent<M extends Record<string, unknown>>(
|
|
243
|
+
collection: CollectionConfig<M>,
|
|
244
244
|
options: {
|
|
245
245
|
onClick?: (entity: Entity<M>) => void;
|
|
246
246
|
isEntitySelected?: (entity: Entity<M>) => boolean;
|
|
@@ -248,9 +248,9 @@ export function createEntityBoardCardComponent<M extends Record<string, unknown>
|
|
|
248
248
|
selectionEnabled?: boolean;
|
|
249
249
|
}
|
|
250
250
|
): React.ComponentType<BoardItemViewProps<Entity<M>>> {
|
|
251
|
-
return function
|
|
251
|
+
return function BoardCardBindingWrapper(props: BoardItemViewProps<Entity<M>>) {
|
|
252
252
|
return (
|
|
253
|
-
<
|
|
253
|
+
<BoardCardBinding
|
|
254
254
|
{...props}
|
|
255
255
|
collection={collection}
|
|
256
256
|
onClick={options.onClick}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
|
-
import { Entity, EntityTableController, EnumValueConfig,
|
|
4
|
-
import {
|
|
3
|
+
import { Entity, EntityTableController, EnumValueConfig, SelectionController } from "@rebasepro/types";
|
|
4
|
+
import { BoardCardBinding } from "./BoardCardBinding";
|
|
5
5
|
import {
|
|
6
6
|
Button,
|
|
7
7
|
ChipColorKey,
|
|
@@ -26,6 +26,7 @@ import { resolveEnumValues } from "@rebasepro/common";
|
|
|
26
26
|
import { getPropertyInPath } from "../../util/property_utils";
|
|
27
27
|
import {
|
|
28
28
|
saveEntityWithCallbacks,
|
|
29
|
+
SaveEntityWithCallbacksProps,
|
|
29
30
|
useAuthController,
|
|
30
31
|
useCustomizationController,
|
|
31
32
|
useData,
|
|
@@ -37,11 +38,11 @@ import { useAnalyticsController } from "@rebasepro/core";
|
|
|
37
38
|
import { setIn } from "@rebasepro/formex";
|
|
38
39
|
import { useBoardDataController } from "./useBoardDataController";
|
|
39
40
|
import { useKanbanDragAndDrop } from "./hooks/useKanbanDragAndDrop";
|
|
40
|
-
import {
|
|
41
|
+
import { useSidePanel } from "../../index";
|
|
41
42
|
import { generateNKeysBetween } from "fractional-indexing";
|
|
42
43
|
|
|
43
|
-
export type
|
|
44
|
-
collection:
|
|
44
|
+
export type CollectionBoardViewBindingProps<M extends Record<string, unknown> = Record<string, unknown>> = {
|
|
45
|
+
collection: CollectionConfig<M>;
|
|
45
46
|
tableController: EntityTableController<M>;
|
|
46
47
|
fullPath: string;
|
|
47
48
|
parentCollectionSlugs?: string[], parentEntityIds?: string[];
|
|
@@ -58,7 +59,7 @@ export type EntityCollectionBoardViewProps<M extends Record<string, unknown> = R
|
|
|
58
59
|
/**
|
|
59
60
|
* Kanban board view for displaying entities grouped by a string enum property.
|
|
60
61
|
*/
|
|
61
|
-
export function
|
|
62
|
+
export function CollectionBoardViewBinding<M extends Record<string, unknown> = Record<string, unknown>>({
|
|
62
63
|
collection,
|
|
63
64
|
tableController,
|
|
64
65
|
fullPath,
|
|
@@ -71,11 +72,11 @@ export function EntityCollectionBoardView<M extends Record<string, unknown> = Re
|
|
|
71
72
|
highlightedEntities,
|
|
72
73
|
emptyComponent,
|
|
73
74
|
deletedEntities
|
|
74
|
-
}:
|
|
75
|
+
}: CollectionBoardViewBindingProps<M>) {
|
|
75
76
|
const customizationController = useCustomizationController();
|
|
76
77
|
const context = useRebaseContext();
|
|
77
78
|
const dataClient = useData();
|
|
78
|
-
const
|
|
79
|
+
const sidePanelController = useSidePanel();
|
|
79
80
|
const analyticsController = useAnalyticsController();
|
|
80
81
|
const { t } = useTranslation();
|
|
81
82
|
const plugins = customizationController.plugins ?? [];
|
|
@@ -281,7 +282,7 @@ parentEntityIds,
|
|
|
281
282
|
}).catch(e => console.warn("Failed to get total count:", e));
|
|
282
283
|
|
|
283
284
|
accessor.count({
|
|
284
|
-
where: { [orderProperty]: "
|
|
285
|
+
where: { [orderProperty]: ["!=", null] }
|
|
285
286
|
}).then(count => {
|
|
286
287
|
orderedCount = count;
|
|
287
288
|
completed++;
|
|
@@ -391,7 +392,7 @@ parentEntityIds,
|
|
|
391
392
|
entitiesToUpdate.forEach((entity: Entity<M>, index: number) => {
|
|
392
393
|
const updatedValues = setIn({ ...entity.values }, orderProperty, keys[index]);
|
|
393
394
|
|
|
394
|
-
const saveProps:
|
|
395
|
+
const saveProps: SaveEntityWithCallbacksProps<Record<string, unknown>> = {
|
|
395
396
|
path: entity.path,
|
|
396
397
|
entityId: entity.id,
|
|
397
398
|
values: updatedValues as M,
|
|
@@ -464,9 +465,9 @@ parentEntityIds,
|
|
|
464
465
|
// the card → DOM is destroyed/recreated → CSS :hover state is lost → flicker.
|
|
465
466
|
const ItemComponent = useMemo(() => {
|
|
466
467
|
const Comp = (props: BoardItemViewProps<Entity<M>>) => (
|
|
467
|
-
<
|
|
468
|
+
<BoardCardBinding
|
|
468
469
|
{...props}
|
|
469
|
-
collection={collectionRef.current as
|
|
470
|
+
collection={collectionRef.current as CollectionConfig<M>}
|
|
470
471
|
onClick={stableOnClick}
|
|
471
472
|
selected={isEntitySelectedRef.current(props.item.data)}
|
|
472
473
|
onSelectionChange={stableOnSelectionChange}
|
|
@@ -610,7 +611,7 @@ parentEntityIds,
|
|
|
610
611
|
path: fullPath,
|
|
611
612
|
column
|
|
612
613
|
});
|
|
613
|
-
|
|
614
|
+
sidePanelController.open({
|
|
614
615
|
path: fullPath,
|
|
615
616
|
collection,
|
|
616
617
|
entityId: undefined,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
2
2
|
import React, { useCallback, useEffect, useMemo, useRef } from "react";
|
|
3
3
|
import { CollectionSize, Entity, EntityTableController, SelectionController } from "@rebasepro/types";
|
|
4
|
-
import {
|
|
4
|
+
import { EntityCardBinding } from "./EntityCardBinding";
|
|
5
5
|
import {
|
|
6
6
|
cls,
|
|
7
7
|
CircularProgress,
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
} from "@rebasepro/ui";
|
|
11
11
|
import { useComponentOverride } from "@rebasepro/core";
|
|
12
12
|
|
|
13
|
-
export type
|
|
14
|
-
collection:
|
|
13
|
+
export type CollectionCardViewBindingProps<M extends Record<string, unknown> = Record<string, unknown>> = {
|
|
14
|
+
collection: CollectionConfig<M>;
|
|
15
15
|
tableController: EntityTableController<M>;
|
|
16
16
|
onEntityClick?: (entity: Entity<M>) => void;
|
|
17
17
|
selectionController?: SelectionController<M>;
|
|
@@ -77,9 +77,9 @@ function getScrollParent(element: HTMLElement | null): HTMLElement | null {
|
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
79
|
* Card grid view for displaying entities with infinite scroll.
|
|
80
|
-
* Alternative to the
|
|
80
|
+
* Alternative to the CollectionTableBinding for visual browsing.
|
|
81
81
|
*/
|
|
82
|
-
export function
|
|
82
|
+
export function CollectionCardViewBinding<M extends Record<string, unknown> = Record<string, unknown>>({
|
|
83
83
|
collection,
|
|
84
84
|
tableController,
|
|
85
85
|
onEntityClick,
|
|
@@ -90,9 +90,9 @@ export function EntityCollectionCardView<M extends Record<string, unknown> = Rec
|
|
|
90
90
|
onScroll,
|
|
91
91
|
initialScroll,
|
|
92
92
|
size = "m"
|
|
93
|
-
}:
|
|
93
|
+
}: CollectionCardViewBindingProps<M>) {
|
|
94
94
|
|
|
95
|
-
const ResolvedEntityCard = useComponentOverride("Collection.Card",
|
|
95
|
+
const ResolvedEntityCard = useComponentOverride("Collection.Card", EntityCardBinding) as typeof EntityCardBinding;
|
|
96
96
|
|
|
97
97
|
const {
|
|
98
98
|
data,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import type {
|
|
2
|
+
import type { CollectionConfig, Property } from "@rebasepro/types";
|
|
3
3
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
4
|
import { CollectionSize, Entity, EntityAction, EntityTableController, SelectionController } from "@rebasepro/types";
|
|
5
5
|
import {
|
|
@@ -22,12 +22,12 @@ import { useAnalyticsController } from "@rebasepro/core";
|
|
|
22
22
|
import { getEntityPreviewKeys } from "../../util/previews";
|
|
23
23
|
import { IconForView } from "@rebasepro/core";
|
|
24
24
|
import { getValueInPath } from "@rebasepro/utils";
|
|
25
|
-
import { useCollectionSlotKeys, resolveEntitySlots, type CollectionSlotKeys } from "./
|
|
25
|
+
import { useCollectionSlotKeys, resolveEntitySlots, type CollectionSlotKeys } from "./usePreviewSlots";
|
|
26
26
|
import { useCMSContext } from "../../hooks/useCMSContext";
|
|
27
27
|
import { resolveEntityAction } from "../../util/resolutions";
|
|
28
28
|
|
|
29
|
-
export type
|
|
30
|
-
collection:
|
|
29
|
+
export type CollectionListViewBindingProps<M extends Record<string, unknown> = Record<string, unknown>> = {
|
|
30
|
+
collection: CollectionConfig<M>;
|
|
31
31
|
tableController: EntityTableController<M>;
|
|
32
32
|
onEntityClick?: (entity: Entity<M>) => void;
|
|
33
33
|
selectionController?: SelectionController<M>;
|
|
@@ -215,7 +215,7 @@ function compactValueSummary(value: unknown, property: Property): string | null
|
|
|
215
215
|
if (typeof value === "string" || typeof value === "number") return String(value);
|
|
216
216
|
if (value && typeof value === "object") {
|
|
217
217
|
const obj = value as Record<string, unknown>;
|
|
218
|
-
// EntityRelation.data is
|
|
218
|
+
// EntityRelation.data is a Entity: { id, path, values: { name, ... } }
|
|
219
219
|
if (obj.data && typeof obj.data === "object") {
|
|
220
220
|
const data = obj.data as Record<string, unknown>;
|
|
221
221
|
const values = (data.values && typeof data.values === "object")
|
|
@@ -271,7 +271,7 @@ year: diffDays > 365 ? "numeric" : undefined });
|
|
|
271
271
|
* - Column-sortable headers
|
|
272
272
|
* - Infinite scroll
|
|
273
273
|
*/
|
|
274
|
-
export function
|
|
274
|
+
export function CollectionListViewBinding<M extends Record<string, unknown> = Record<string, unknown>>({
|
|
275
275
|
collection,
|
|
276
276
|
tableController,
|
|
277
277
|
onEntityClick,
|
|
@@ -285,7 +285,7 @@ export function EntityCollectionListView<M extends Record<string, unknown> = Rec
|
|
|
285
285
|
getActionsForEntity,
|
|
286
286
|
path,
|
|
287
287
|
openEntityMode
|
|
288
|
-
}:
|
|
288
|
+
}: CollectionListViewBindingProps<M>) {
|
|
289
289
|
const authController = useAuthController();
|
|
290
290
|
const customizationController = useCustomizationController();
|
|
291
291
|
const analyticsController = useAnalyticsController();
|
|
@@ -327,7 +327,7 @@ export function EntityCollectionListView<M extends Record<string, unknown> = Rec
|
|
|
327
327
|
|
|
328
328
|
// ── Shared slot resolution (replaces 4 individual useMemo calls) ──
|
|
329
329
|
const slotKeys = useCollectionSlotKeys(
|
|
330
|
-
resolvedCollection as
|
|
330
|
+
resolvedCollection as CollectionConfig<Record<string, unknown>>,
|
|
331
331
|
authController,
|
|
332
332
|
customizationController.propertyConfigs
|
|
333
333
|
);
|
|
@@ -402,7 +402,18 @@ export function EntityCollectionListView<M extends Record<string, unknown> = Rec
|
|
|
402
402
|
"id"
|
|
403
403
|
]);
|
|
404
404
|
|
|
405
|
-
const availableExtraKeys = allKeys.filter(k =>
|
|
405
|
+
const availableExtraKeys = allKeys.filter(k => {
|
|
406
|
+
if (usedKeys.has(k)) return false;
|
|
407
|
+
const prop = resolvedCollection.properties[k] as Property | undefined;
|
|
408
|
+
if (!prop) return false;
|
|
409
|
+
// Exclude storage/image properties — they are already rendered in the image slot
|
|
410
|
+
if (prop.type === "string" && (prop.storage || prop.ui?.url === "image")) return false;
|
|
411
|
+
if (prop.type === "array" && prop.of && !Array.isArray(prop.of)) {
|
|
412
|
+
const inner = prop.of;
|
|
413
|
+
if (inner.type === "string" && (inner.storage || inner.ui?.url === "image")) return false;
|
|
414
|
+
}
|
|
415
|
+
return true;
|
|
416
|
+
});
|
|
406
417
|
|
|
407
418
|
availableExtraKeys.forEach(key => {
|
|
408
419
|
const prop = resolvedCollection.properties[key] as Property;
|
|
@@ -600,7 +611,7 @@ const ListRow = React.memo(function ListRow<M extends Record<string, unknown>>({
|
|
|
600
611
|
openEntityMode
|
|
601
612
|
}: {
|
|
602
613
|
entity: Entity<M>;
|
|
603
|
-
collection:
|
|
614
|
+
collection: CollectionConfig<M>;
|
|
604
615
|
onClick?: (entity: Entity<M>) => void;
|
|
605
616
|
selected?: boolean;
|
|
606
617
|
highlighted?: boolean;
|
|
@@ -622,7 +633,7 @@ const ListRow = React.memo(function ListRow<M extends Record<string, unknown>>({
|
|
|
622
633
|
// ── Resolve slots (pure function, no hooks) ──
|
|
623
634
|
const slots = resolveEntitySlots(
|
|
624
635
|
entity as Entity<Record<string, unknown>>,
|
|
625
|
-
collection as
|
|
636
|
+
collection as CollectionConfig<Record<string, unknown>>,
|
|
626
637
|
slotKeys
|
|
627
638
|
);
|
|
628
639
|
|
|
@@ -851,7 +862,7 @@ const ListRow = React.memo(function ListRow<M extends Record<string, unknown>>({
|
|
|
851
862
|
path,
|
|
852
863
|
collection,
|
|
853
864
|
context: context!,
|
|
854
|
-
|
|
865
|
+
sidePanelController: context?.sidePanelController,
|
|
855
866
|
selectionController,
|
|
856
867
|
openEntityMode: openEntityMode ?? collection?.openEntityMode ?? "full_screen"
|
|
857
868
|
});
|
|
@@ -866,7 +877,7 @@ const ListRow = React.memo(function ListRow<M extends Record<string, unknown>>({
|
|
|
866
877
|
);
|
|
867
878
|
}) as <M extends Record<string, unknown>>(props: {
|
|
868
879
|
entity: Entity<M>;
|
|
869
|
-
collection:
|
|
880
|
+
collection: CollectionConfig<M>;
|
|
870
881
|
onClick?: (entity: Entity<M>) => void;
|
|
871
882
|
selected?: boolean;
|
|
872
883
|
highlighted?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
import type {
|
|
2
|
+
import type { CollectionConfig } from "@rebasepro/types";
|
|
3
3
|
import React, { lazy, Suspense } from "react";
|
|
4
4
|
|
|
5
5
|
import { useLargeLayout, useTranslation, useSlot, resolveComponentRef } from "@rebasepro/core";
|
|
@@ -15,8 +15,8 @@ import { EditorCollectionAction } from "../../collection_editor/ui/EditorCollect
|
|
|
15
15
|
import { useCollectionEditorController } from "../../collection_editor/useCollectionEditorController";
|
|
16
16
|
import { useCMSContext } from "../../index";
|
|
17
17
|
|
|
18
|
-
export type
|
|
19
|
-
collection:
|
|
18
|
+
export type CollectionViewActionsProps<M extends Record<string, unknown>> = {
|
|
19
|
+
collection: CollectionConfig<M>;
|
|
20
20
|
path: string;
|
|
21
21
|
relativePath: string;
|
|
22
22
|
parentCollectionSlugs: string[], parentEntityIds: string[];
|
|
@@ -31,7 +31,7 @@ export type EntityCollectionViewActionsProps<M extends Record<string, unknown>>
|
|
|
31
31
|
openNewDocument: (defaultValues?: Record<string, unknown>) => void;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
export function
|
|
34
|
+
export function CollectionViewActions<M extends Record<string, unknown>>({
|
|
35
35
|
collection,
|
|
36
36
|
relativePath,
|
|
37
37
|
parentCollectionSlugs, parentEntityIds,
|
|
@@ -45,7 +45,7 @@ export function EntityCollectionViewActions<M extends Record<string, unknown>>({
|
|
|
45
45
|
compact,
|
|
46
46
|
children,
|
|
47
47
|
openNewDocument
|
|
48
|
-
}:
|
|
48
|
+
}: CollectionViewActionsProps<M>) {
|
|
49
49
|
const context = useCMSContext();
|
|
50
50
|
|
|
51
51
|
const { canCreate, canDelete } = usePermissions();
|