@rebasepro/cms 0.17.3 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -0
- package/dist/{CollectionEditorDialog-B-akreOU.js → CollectionEditorDialog-BeX4b92r.js} +13 -7
- package/dist/{CollectionEditorDialog-B-akreOU.js.map → CollectionEditorDialog-BeX4b92r.js.map} +1 -1
- package/dist/{PropertyEditView-CiY84wkR.js → PropertyEditView-C7thfj4L.js} +3 -3
- package/dist/{PropertyEditView-CiY84wkR.js.map → PropertyEditView-C7thfj4L.js.map} +1 -1
- package/dist/{RouterCollectionsStudioView-DkAWda4N.js → RouterCollectionsStudioView-BtjzvB6E.js} +4 -4
- package/dist/{RouterCollectionsStudioView-DkAWda4N.js.map → RouterCollectionsStudioView-BtjzvB6E.js.map} +1 -1
- package/dist/{SchemaChangeDialog-DceT8QFX.js → SchemaChangeDialog-CkqK6KOC.js} +4 -2
- package/dist/{SchemaChangeDialog-DceT8QFX.js.map → SchemaChangeDialog-CkqK6KOC.js.map} +1 -1
- package/dist/collection_editor/api/generateCollectionApi.d.ts +1 -2
- package/dist/collection_editor_ui.d.ts +2 -0
- package/dist/collection_editor_ui.js +6 -5
- package/dist/collection_editor_ui.js.map +1 -1
- package/dist/components/DeleteEntityDialog.d.ts +2 -3
- package/dist/components/RebaseLayout.d.ts +11 -4
- package/dist/components/field_configs.d.ts +1 -1
- package/dist/editor/sanitize-html.d.ts +15 -0
- package/dist/editor.js +195 -10
- package/dist/editor.js.map +1 -1
- package/dist/{export-Ben8E355.js → export--arni_VY.js} +2 -2
- package/dist/{export-Ben8E355.js.map → export--arni_VY.js.map} +1 -1
- package/dist/form/components/LabelWithIcon.d.ts +10 -0
- package/dist/{history-DIEVd26f.js → history-C2TpoQwi.js} +2 -2
- package/dist/{history-DIEVd26f.js.map → history-C2TpoQwi.js.map} +1 -1
- package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +1 -1
- package/dist/hooks/navigation/useResolvedViews.d.ts +1 -1
- package/dist/hooks/navigation/useTopLevelNavigation.d.ts +1 -1
- package/dist/{import-D25x7ko-.js → import-DTkXNoBg.js} +2 -2
- package/dist/{import-D25x7ko-.js.map → import-DTkXNoBg.js.map} +1 -1
- package/dist/index.js +78 -33
- package/dist/index.js.map +1 -1
- package/dist/util/propertyConfigMapper.d.ts +1 -1
- package/dist/util-CfLFggP7.js +57 -0
- package/dist/util-CfLFggP7.js.map +1 -0
- package/dist/{util-DVqnqlLn.js → util-DE1WQW6h.js} +134 -112
- package/dist/util-DE1WQW6h.js.map +1 -0
- package/package.json +42 -34
- package/dist/util-DVqnqlLn.js.map +0 -1
- package/src/collection_editor/CollectionEditorDialogsContext.tsx +0 -25
- package/src/collection_editor/ConfigControllerProvider.tsx +0 -395
- package/src/collection_editor/_cms_internals.ts +0 -41
- package/src/collection_editor/api/generateCollectionApi.ts +0 -126
- package/src/collection_editor/api/index.ts +0 -1
- package/src/collection_editor/extensibility_types.ts +0 -168
- package/src/collection_editor/index.ts +0 -108
- package/src/collection_editor/liveSchemaClient.ts +0 -285
- package/src/collection_editor/relation_kinds.ts +0 -44
- package/src/collection_editor/serializable_types.ts +0 -535
- package/src/collection_editor/serializable_utils.ts +0 -729
- package/src/collection_editor/types/collection_editor_controller.tsx +0 -62
- package/src/collection_editor/types/collection_inference.ts +0 -18
- package/src/collection_editor/types/config_controller.tsx +0 -121
- package/src/collection_editor/ui/AddKanbanColumnAction.tsx +0 -199
- package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +0 -51
- package/src/collection_editor/ui/EditorCollectionAction.tsx +0 -54
- package/src/collection_editor/ui/EditorCollectionActionStart.tsx +0 -90
- package/src/collection_editor/ui/EditorEntityAction.tsx +0 -50
- package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +0 -114
- package/src/collection_editor/ui/KanbanSetupAction.tsx +0 -43
- package/src/collection_editor/ui/MissingReferenceWidget.tsx +0 -35
- package/src/collection_editor/ui/NewCollectionButton.tsx +0 -27
- package/src/collection_editor/ui/NewCollectionCard.tsx +0 -48
- package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +0 -49
- package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +0 -260
- package/src/collection_editor/ui/collection_editor/AIModifiedPathsContext.tsx +0 -90
- package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +0 -388
- package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +0 -1098
- package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +0 -301
- package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +0 -172
- package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +0 -620
- package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +0 -530
- package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +0 -462
- package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +0 -104
- package/src/collection_editor/ui/collection_editor/CollectionYupValidation.tsx +0 -9
- package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +0 -199
- package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +0 -315
- package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +0 -164
- package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +0 -40
- package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +0 -39
- package/src/collection_editor/ui/collection_editor/EnumForm.tsx +0 -373
- package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +0 -288
- package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +0 -141
- package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +0 -194
- package/src/collection_editor/ui/collection_editor/LayoutModeSwitch.tsx +0 -53
- package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +0 -980
- package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +0 -164
- package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +0 -364
- package/src/collection_editor/ui/collection_editor/RouterCollectionStudioView.tsx +0 -44
- package/src/collection_editor/ui/collection_editor/RouterCollectionsStudioView.tsx +0 -41
- package/src/collection_editor/ui/collection_editor/SchemaChangeDialog.tsx +0 -470
- package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +0 -256
- package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +0 -39
- package/src/collection_editor/ui/collection_editor/ViewModeSwitch.tsx +0 -68
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +0 -67
- package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +0 -296
- package/src/collection_editor/ui/collection_editor/import/clean_import_data.ts +0 -57
- package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +0 -147
- package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +0 -41
- package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +0 -113
- package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +0 -250
- package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +0 -126
- package/src/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.tsx +0 -20
- package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +0 -153
- package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +0 -217
- package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +0 -117
- package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +0 -129
- package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +0 -335
- package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +0 -107
- package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +0 -403
- package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +0 -148
- package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +0 -91
- package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +0 -34
- package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +0 -49
- package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +0 -925
- package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.tsx +0 -28
- package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +0 -626
- package/src/collection_editor/ui/collection_editor/properties/conditions/index.ts +0 -6
- package/src/collection_editor/ui/collection_editor/properties/conditions/property_paths.ts +0 -93
- package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +0 -52
- package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +0 -63
- package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +0 -114
- package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +0 -154
- package/src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx +0 -28
- package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +0 -112
- package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +0 -183
- package/src/collection_editor/ui/collection_editor/templates/products_template.ts +0 -88
- package/src/collection_editor/ui/collection_editor/templates/users_template.ts +0 -42
- package/src/collection_editor/ui/collection_editor/util.ts +0 -28
- package/src/collection_editor/ui/collection_editor/utils/strings.ts +0 -1
- package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +0 -39
- package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +0 -276
- package/src/collection_editor/useCollectionEditorController.tsx +0 -9
- package/src/collection_editor/useCollectionsConfigController.tsx +0 -9
- package/src/collection_editor/useJsonCollectionsConfigController.tsx +0 -297
- package/src/collection_editor/useLiveSchemaEditing.tsx +0 -315
- package/src/collection_editor/useLocalCollectionsConfigController.tsx +0 -341
- package/src/collection_editor/useSafeSnackbarController.ts +0 -9
- package/src/collection_editor/validateCollectionJson.ts +0 -440
- package/src/collection_editor_ui.ts +0 -21
- package/src/components/AdditionalFieldValue.tsx +0 -68
- package/src/components/AdminModeSyncer.tsx +0 -56
- package/src/components/ArrayContainer.tsx +0 -542
- package/src/components/ClearFilterSortButton.tsx +0 -56
- package/src/components/CollectionEditorDialogs.tsx +0 -69
- package/src/components/CollectionPanel.tsx +0 -179
- package/src/components/CollectionTableBinding/CollectionRowActions.tsx +0 -244
- package/src/components/CollectionTableBinding/CollectionTableBinding.tsx +0 -394
- package/src/components/CollectionTableBinding/CollectionTableBindingProps.tsx +0 -172
- package/src/components/CollectionTableBinding/PropertyTableCell.tsx +0 -350
- package/src/components/CollectionTableBinding/column_utils.tsx +0 -155
- package/src/components/CollectionTableBinding/fields/TableMultipleRelationField.tsx +0 -131
- package/src/components/CollectionTableBinding/fields/TableReferenceField.tsx +0 -193
- package/src/components/CollectionTableBinding/fields/TableRelationField.tsx +0 -192
- package/src/components/CollectionTableBinding/fields/TableRelationSelectorField.tsx +0 -42
- package/src/components/CollectionTableBinding/fields/TableStorageUpload.tsx +0 -324
- package/src/components/CollectionTableBinding/fields/VirtualTableSelect.tsx +0 -132
- package/src/components/CollectionTableBinding/fields/VirtualTableUserSelect.tsx +0 -41
- package/src/components/CollectionTableBinding/index.tsx +0 -14
- package/src/components/CollectionTableBinding/internal/CollectionTableToolbar.tsx +0 -96
- package/src/components/CollectionTableBinding/internal/EntityTableCell.tsx +0 -309
- package/src/components/CollectionTableBinding/internal/EntityTableCellActions.tsx +0 -80
- package/src/components/CollectionTableBinding/internal/common.tsx +0 -74
- package/src/components/CollectionTableBinding/internal/popup_field/PopupFormField.tsx +0 -422
- package/src/components/CollectionTableBinding/internal/popup_field/useDraggable.tsx +0 -99
- package/src/components/CollectionTableBinding/internal/popup_field/useWindowSize.tsx +0 -22
- package/src/components/CollectionTableBinding/table_bindings.tsx +0 -350
- package/src/components/CollectionViewBinding/BoardCardBinding.tsx +0 -263
- package/src/components/CollectionViewBinding/CollectionBoardViewBinding.tsx +0 -662
- package/src/components/CollectionViewBinding/CollectionCardViewBinding.tsx +0 -159
- package/src/components/CollectionViewBinding/CollectionListViewBinding.tsx +0 -1430
- package/src/components/CollectionViewBinding/CollectionViewActions.tsx +0 -227
- package/src/components/CollectionViewBinding/CollectionViewBinding.tsx +0 -1603
- package/src/components/CollectionViewBinding/CollectionViewStartActions.tsx +0 -240
- package/src/components/CollectionViewBinding/EntityCardBinding.tsx +0 -239
- package/src/components/CollectionViewBinding/FilterPresetsButton.tsx +0 -298
- package/src/components/CollectionViewBinding/FiltersDialog.tsx +0 -218
- package/src/components/CollectionViewBinding/SearchExplanation.tsx +0 -106
- package/src/components/CollectionViewBinding/SearchHighlight.tsx +0 -311
- package/src/components/CollectionViewBinding/SlotValue.tsx +0 -156
- package/src/components/CollectionViewBinding/SortButton.tsx +0 -354
- package/src/components/CollectionViewBinding/SplitListCloseButton.tsx +0 -49
- package/src/components/CollectionViewBinding/SplitListShowButton.tsx +0 -28
- package/src/components/CollectionViewBinding/SplitListView.tsx +0 -488
- package/src/components/CollectionViewBinding/SplitViewContext.tsx +0 -34
- package/src/components/CollectionViewBinding/ViewModeToggle.tsx +0 -250
- package/src/components/CollectionViewBinding/hooks/useCollectionInlineEditor.ts +0 -81
- package/src/components/CollectionViewBinding/hooks/useKanbanDragAndDrop.ts +0 -181
- package/src/components/CollectionViewBinding/useBoardDataController.tsx +0 -802
- package/src/components/CollectionViewBinding/usePreviewSlots.ts +0 -703
- package/src/components/CollectionViewBinding/useSelectionController.tsx +0 -40
- package/src/components/CollectionViewBinding/utils.ts +0 -22
- package/src/components/DefaultAppBar.tsx +0 -264
- package/src/components/DefaultDrawer.tsx +0 -593
- package/src/components/DeleteEntityDialog.tsx +0 -205
- package/src/components/DetailViewBinding.tsx +0 -731
- package/src/components/DrawerNavigationGroup.tsx +0 -141
- package/src/components/DrawerNavigationItem.tsx +0 -115
- package/src/components/EditFormActions.tsx +0 -303
- package/src/components/EditViewBinding.tsx +0 -1069
- package/src/components/EntityDisplayHeader.tsx +0 -170
- package/src/components/EntityIdentityBar.tsx +0 -428
- package/src/components/EntityInspector.tsx +0 -156
- package/src/components/EntityPreviewBinding.tsx +0 -432
- package/src/components/EntityPreviewNesting.tsx +0 -50
- package/src/components/EntityViewBinding.tsx +0 -374
- package/src/components/FieldCaption.tsx +0 -14
- package/src/components/HomePage/ContentHomePage.tsx +0 -586
- package/src/components/HomePage/FavouritesView.tsx +0 -60
- package/src/components/HomePage/HomePageDnD.tsx +0 -704
- package/src/components/HomePage/NavigationCard.tsx +0 -81
- package/src/components/HomePage/NavigationCardBinding.tsx +0 -107
- package/src/components/HomePage/NavigationGroup.tsx +0 -156
- package/src/components/HomePage/RenameGroupDialog.tsx +0 -123
- package/src/components/HomePage/SmallNavigationCard.tsx +0 -41
- package/src/components/HomePage/index.tsx +0 -5
- package/src/components/InlineEntityPreview.tsx +0 -149
- package/src/components/JsonPreviewBinding.tsx +0 -66
- package/src/components/PropertyCollectionView.tsx +0 -336
- package/src/components/PropertyConfigBadge.tsx +0 -28
- package/src/components/PropertyIdCopyTooltip.tsx +0 -47
- package/src/components/RebaseAuthGate.tsx +0 -44
- package/src/components/RebaseCMS.tsx +0 -30
- package/src/components/RebaseLayout.tsx +0 -80
- package/src/components/RebaseNavigation.tsx +0 -369
- package/src/components/RebaseRouteDefs.tsx +0 -127
- package/src/components/RebaseShell.tsx +0 -83
- package/src/components/ReferenceTable/SelectionTableBinding.tsx +0 -389
- package/src/components/ReferenceWidget.tsx +0 -156
- package/src/components/RelationSelector.tsx +0 -926
- package/src/components/SearchIconsView.tsx +0 -78
- package/src/components/SelectableTable/SelectableTable.tsx +0 -309
- package/src/components/SelectableTable/SelectableTableContext.tsx +0 -7
- package/src/components/SelectableTable/SelectionStore.ts +0 -43
- package/src/components/SelectableTable/filters/BooleanFilterField.tsx +0 -59
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +0 -146
- package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +0 -190
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +0 -250
- package/src/components/SelectableTable/filters/RelationFilterField.tsx +0 -238
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +0 -282
- package/src/components/SelectableTable/filters/null_filter.ts +0 -63
- package/src/components/SideDialogs.tsx +0 -238
- package/src/components/SidePanelBinding.tsx +0 -361
- package/src/components/SidePanelProvider.tsx +0 -80
- package/src/components/UserSelector.tsx +0 -513
- package/src/components/admin/CreationResultDialog.tsx +0 -138
- package/src/components/admin/index.ts +0 -1
- package/src/components/app/AppBar.tsx +0 -17
- package/src/components/app/Drawer.tsx +0 -38
- package/src/components/app/Scaffold.tsx +0 -366
- package/src/components/app/index.ts +0 -4
- package/src/components/app/useApp.tsx +0 -36
- package/src/components/common/default_entity_actions.tsx +0 -440
- package/src/components/common/index.ts +0 -1
- package/src/components/field_configs.tsx +0 -506
- package/src/components/history/EntityHistoryEntry.tsx +0 -203
- package/src/components/history/EntityHistoryView.tsx +0 -206
- package/src/components/history/LastEditedByFormAction.tsx +0 -24
- package/src/components/history/LastEditedByIndicator.tsx +0 -95
- package/src/components/history/UserChip.tsx +0 -15
- package/src/components/history/index.tsx +0 -5
- package/src/components/index.ts +0 -63
- package/src/contexts/BreacrumbsContext.tsx +0 -45
- package/src/contexts/SideDialogsControllerContext.tsx +0 -5
- package/src/contexts/SidePanelControllerContext.tsx +0 -5
- package/src/data_export/export/BasicExportAction.tsx +0 -142
- package/src/data_export/export/ExportCollectionAction.tsx +0 -321
- package/src/data_export/export/export.ts +0 -295
- package/src/data_export/export/fetch_export_data.ts +0 -90
- package/src/data_export/export/index.ts +0 -4
- package/src/data_export/index.ts +0 -1
- package/src/data_import/components/DataNewPropertiesMapping.tsx +0 -261
- package/src/data_import/components/ImportFileUpload.tsx +0 -42
- package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +0 -58
- package/src/data_import/components/ImportSaveInProgress.tsx +0 -121
- package/src/data_import/components/index.ts +0 -4
- package/src/data_import/hooks/index.ts +0 -1
- package/src/data_import/hooks/useImportConfig.tsx +0 -34
- package/src/data_import/import/ImportCollectionAction.tsx +0 -461
- package/src/data_import/import/index.ts +0 -1
- package/src/data_import/index.ts +0 -5
- package/src/data_import/types/column_mapping.ts +0 -32
- package/src/data_import/types/index.ts +0 -1
- package/src/data_import/utils/csv.ts +0 -153
- package/src/data_import/utils/data.ts +0 -181
- package/src/data_import/utils/file_headers.ts +0 -14
- package/src/data_import/utils/file_to_json.ts +0 -149
- package/src/data_import/utils/get_import_inference_type.ts +0 -33
- package/src/data_import/utils/get_properties_mapping.ts +0 -67
- package/src/data_import/utils/index.ts +0 -5
- package/src/data_import/utils/save_entities.ts +0 -138
- package/src/data_import/utils/transforms.ts +0 -70
- package/src/editor/components/SlashCommandMenu.tsx +0 -532
- package/src/editor/components/editor-bubble-item.tsx +0 -32
- package/src/editor/components/editor-bubble.tsx +0 -143
- package/src/editor/components/image-bubble.tsx +0 -183
- package/src/editor/components/index.ts +0 -14
- package/src/editor/components/table-bubble.tsx +0 -233
- package/src/editor/editor.tsx +0 -529
- package/src/editor/extensions/HighlightDecorationExtension.ts +0 -115
- package/src/editor/extensions/Image.ts +0 -159
- package/src/editor/extensions/TextLoadingDecorationExtension.tsx +0 -107
- package/src/editor/extensions/clipboard.ts +0 -72
- package/src/editor/extensions/custom-keymap.ts +0 -25
- package/src/editor/extensions/drag-and-drop.tsx +0 -508
- package/src/editor/hooks/useProseMirror.ts +0 -126
- package/src/editor/hooks/useProseMirrorContext.ts +0 -15
- package/src/editor/index.ts +0 -2
- package/src/editor/markdown-it-plugins.d.ts +0 -24
- package/src/editor/markdown.ts +0 -204
- package/src/editor/nodeViews/ImageComponent.tsx +0 -20
- package/src/editor/nodeViews/ReactNodeView.tsx +0 -89
- package/src/editor/nodeViews/TaskItemComponent.tsx +0 -30
- package/src/editor/nodeViews/index.ts +0 -35
- package/src/editor/plugins/index.ts +0 -58
- package/src/editor/plugins/inputrules.ts +0 -82
- package/src/editor/plugins/placeholderPlugin.ts +0 -55
- package/src/editor/plugins/slashCommandPlugin.ts +0 -65
- package/src/editor/schema.ts +0 -339
- package/src/editor/selectors/ai-selector.tsx +0 -110
- package/src/editor/selectors/color-selector.tsx +0 -199
- package/src/editor/selectors/link-selector.tsx +0 -122
- package/src/editor/selectors/node-selector.tsx +0 -159
- package/src/editor/selectors/text-buttons.tsx +0 -79
- package/src/editor/types.ts +0 -6
- package/src/editor/useProseMirror.ts +0 -125
- package/src/editor/utils/prosemirror-utils.ts +0 -113
- package/src/editor/utils/remove_classes.ts +0 -18
- package/src/editor/utils/useDebouncedCallback.ts +0 -25
- package/src/form/EntityForm.tsx +0 -761
- package/src/form/EntityFormActions.tsx +0 -160
- package/src/form/EntityFormBinding.tsx +0 -342
- package/src/form/PropertyFieldBinding.tsx +0 -348
- package/src/form/components/ErrorFocus.tsx +0 -44
- package/src/form/components/FieldBlock.tsx +0 -189
- package/src/form/components/FieldHelperText.tsx +0 -84
- package/src/form/components/FormRail.tsx +0 -153
- package/src/form/components/FormSections.tsx +0 -145
- package/src/form/components/LabelWithIcon.tsx +0 -43
- package/src/form/components/LabelWithIconAndTooltip.tsx +0 -28
- package/src/form/components/LocalChangesMenu.tsx +0 -147
- package/src/form/components/StorageItemPreview.tsx +0 -81
- package/src/form/components/StorageUploadProgress.tsx +0 -118
- package/src/form/components/index.tsx +0 -6
- package/src/form/components/useRailVisible.tsx +0 -47
- package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +0 -109
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +0 -172
- package/src/form/field_bindings/BinaryFieldBinding.tsx +0 -177
- package/src/form/field_bindings/BlockFieldBinding.tsx +0 -282
- package/src/form/field_bindings/DateTimeFieldBinding.tsx +0 -78
- package/src/form/field_bindings/GeopointFieldBinding.tsx +0 -200
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +0 -574
- package/src/form/field_bindings/MapFieldBinding.tsx +0 -120
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +0 -259
- package/src/form/field_bindings/MultiSelectFieldBinding.tsx +0 -130
- package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +0 -168
- package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +0 -94
- package/src/form/field_bindings/ReferenceFieldBinding.tsx +0 -146
- package/src/form/field_bindings/RelationFieldBinding.tsx +0 -202
- package/src/form/field_bindings/RepeatFieldBinding.tsx +0 -143
- package/src/form/field_bindings/SelectFieldBinding.tsx +0 -111
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +0 -521
- package/src/form/field_bindings/SwitchFieldBinding.tsx +0 -70
- package/src/form/field_bindings/TextFieldBinding.tsx +0 -189
- package/src/form/field_bindings/UserSelectFieldBinding.tsx +0 -71
- package/src/form/field_bindings/VectorFieldBinding.tsx +0 -209
- package/src/form/form_utils.ts +0 -243
- package/src/form/index.tsx +0 -36
- package/src/form/useClearRestoreValue.tsx +0 -36
- package/src/form/useUndoableDiscard.ts +0 -39
- package/src/form/validation.ts +0 -583
- package/src/hooks/index.ts +0 -16
- package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +0 -22
- package/src/hooks/navigation/contexts/NavigationStateContext.tsx +0 -16
- package/src/hooks/navigation/contexts/UrlContext.tsx +0 -24
- package/src/hooks/navigation/contexts/index.ts +0 -14
- package/src/hooks/navigation/useAsyncResolver.ts +0 -100
- package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +0 -218
- package/src/hooks/navigation/useBuildNavigationStateController.tsx +0 -134
- package/src/hooks/navigation/useBuildUrlController.tsx +0 -66
- package/src/hooks/navigation/useNavigationResolution.ts +0 -271
- package/src/hooks/navigation/useResolvedCollections.ts +0 -102
- package/src/hooks/navigation/useResolvedViews.tsx +0 -139
- package/src/hooks/navigation/useTopLevelNavigation.ts +0 -273
- package/src/hooks/navigation/utils.ts +0 -200
- package/src/hooks/useAdminContext.tsx +0 -83
- package/src/hooks/useBreadcrumbsController.tsx +0 -17
- package/src/hooks/useBuildSideDialogsController.tsx +0 -145
- package/src/hooks/useBuildSidePanel.tsx +0 -315
- package/src/hooks/useChildViewSource.ts +0 -46
- package/src/hooks/useEntityDisplay.tsx +0 -262
- package/src/hooks/useEntityDisplayTitle.tsx +0 -49
- package/src/hooks/useHistory.ts +0 -178
- package/src/hooks/useRecordActions.tsx +0 -69
- package/src/hooks/useResolvedNavigationFrom.tsx +0 -167
- package/src/hooks/useResolvedUsers.ts +0 -148
- package/src/hooks/useSelectionDialog.tsx +0 -58
- package/src/hooks/useSideDialogsController.tsx +0 -25
- package/src/hooks/useSidePanel.tsx +0 -13
- package/src/index.ts +0 -124
- package/src/preview/PropertyPreview.tsx +0 -331
- package/src/preview/compact_text.ts +0 -68
- package/src/preview/components/ArrayEnumPreview.tsx +0 -39
- package/src/preview/components/BooleanPreview.tsx +0 -28
- package/src/preview/components/DatePreview.tsx +0 -106
- package/src/preview/components/EmptyValue.tsx +0 -10
- package/src/preview/components/EnumValuesChip.tsx +0 -39
- package/src/preview/components/ImagePreview.tsx +0 -144
- package/src/preview/components/InlineEntityListPreview.tsx +0 -42
- package/src/preview/components/ReferencePreview.tsx +0 -235
- package/src/preview/components/RelationPreview.tsx +0 -271
- package/src/preview/components/StorageThumbnail.tsx +0 -147
- package/src/preview/components/UrlComponentPreview.tsx +0 -116
- package/src/preview/components/UserPreview.tsx +0 -30
- package/src/preview/components/date_fns_locales.ts +0 -125
- package/src/preview/index.ts +0 -26
- package/src/preview/property_previews/ArrayOfMapsPreview.tsx +0 -73
- package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +0 -67
- package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +0 -77
- package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +0 -49
- package/src/preview/property_previews/ArrayOfStringsPreview.tsx +0 -70
- package/src/preview/property_previews/ArrayOneOfPreview.tsx +0 -79
- package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +0 -35
- package/src/preview/property_previews/ArrayPropertyPreview.tsx +0 -79
- package/src/preview/property_previews/MapPropertyPreview.tsx +0 -198
- package/src/preview/property_previews/NumberPropertyPreview.tsx +0 -39
- package/src/preview/property_previews/SkeletonPropertyComponent.tsx +0 -276
- package/src/preview/property_previews/StringPropertyPreview.tsx +0 -70
- package/src/preview/util.ts +0 -39
- package/src/routes/CustomViewRoute.tsx +0 -33
- package/src/routes/RebaseRoute.tsx +0 -467
- package/src/routes/index.ts +0 -2
- package/src/types/components/EntityFormActionsProps.tsx +0 -20
- package/src/types/components/EntityFormProps.tsx +0 -119
- package/src/types/components/PropertyPreviewProps.tsx +0 -85
- package/src/types/components/formex.tsx +0 -2
- package/src/types/components/index.ts +0 -3
- package/src/types/fields.tsx +0 -340
- package/src/types/index.ts +0 -4
- package/src/util/dataControllerAdapter.ts +0 -88
- package/src/util/entity_actions.ts +0 -28
- package/src/util/index.ts +0 -5
- package/src/util/navigation_utils.ts +0 -89
- package/src/util/number_format.ts +0 -46
- package/src/util/previews.ts +0 -131
- package/src/util/propertyConfigMapper.ts +0 -134
- package/src/util/property_utils.tsx +0 -236
- package/src/util/resolutions.ts +0 -96
- package/src/util/view_constants.ts +0 -33
- package/src/util/view_mode.ts +0 -176
|
@@ -1,374 +0,0 @@
|
|
|
1
|
-
import type { Property } from "@rebasepro/types";
|
|
2
|
-
|
|
3
|
-
import type { AdditionalFieldDelegateProps, AdminCollection } from "@rebasepro/cms-types";
|
|
4
|
-
import type { ResolvedFormField, ResolvedFormSection } from "@rebasepro/app";
|
|
5
|
-
import type { FormContext } from "../types/fields";
|
|
6
|
-
import React, { useCallback, useMemo, useRef, useState } from "react";
|
|
7
|
-
import { Entity } from "@rebasepro/types";
|
|
8
|
-
import {
|
|
9
|
-
AlignLeftIcon,
|
|
10
|
-
cls,
|
|
11
|
-
defaultBorderMixin,
|
|
12
|
-
ErrorBoundary,
|
|
13
|
-
paperMixin
|
|
14
|
-
} from "@rebasepro/ui";
|
|
15
|
-
import { getFormFieldKeys, resolveFormLayout } from "@rebasepro/app";
|
|
16
|
-
import { getValueInPath } from "@rebasepro/utils";
|
|
17
|
-
|
|
18
|
-
import { FieldBlock, LABEL_ICON_SIZE, spanClass } from "../form/components/FieldBlock";
|
|
19
|
-
import { AdditionalFieldValue } from "./AdditionalFieldValue";
|
|
20
|
-
import { EntityDisplayHeader, HEADER_DISPLAY_ROLES } from "./EntityDisplayHeader";
|
|
21
|
-
import { FormSections } from "../form/components/FormSections";
|
|
22
|
-
import { FormRail, RecordMeta } from "../form/components/FormRail";
|
|
23
|
-
import { useEntityDisplayValues } from "../hooks/useEntityDisplay";
|
|
24
|
-
import { useRailVisible } from "../form/components/useRailVisible";
|
|
25
|
-
import { PropertyPreview } from "../preview";
|
|
26
|
-
|
|
27
|
-
/** Nothing can be in error in a view that cannot be submitted. */
|
|
28
|
-
const NO_ERRORS: ReadonlySet<string> = new Set<string>();
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* The fields the read-only view lays out, in render order.
|
|
32
|
-
*
|
|
33
|
-
* The same set the form uses, minus two groups. Both are dropped *before* the
|
|
34
|
-
* layout resolves rather than skipped while rendering, because the resolver has
|
|
35
|
-
* by then given each one a place on the grid — skipping later leaves that place
|
|
36
|
-
* as a hole.
|
|
37
|
-
*
|
|
38
|
-
* - The `additionalFields` when there is no form context to hand them: those
|
|
39
|
-
* entries are arbitrary components, not values, and one rendered against no
|
|
40
|
-
* context is nothing at all.
|
|
41
|
-
* - `headerKeys` — the properties {@link EntityDisplayHeader} has already
|
|
42
|
-
* rendered as the record's picture, subtitle, state and labels. Leaving one in
|
|
43
|
-
* prints its value twice on one screen.
|
|
44
|
-
*
|
|
45
|
-
* The record's **title property is not among them**, deliberately. It names the
|
|
46
|
-
* page in the identity bar, but a heading and a labelled field are different
|
|
47
|
-
* things: `Order #` is a column with a name and a description that someone opens
|
|
48
|
-
* the record to read, and dropping it because its text also appears in the
|
|
49
|
-
* breadcrumb removes a value from the record on the grounds that it is legible
|
|
50
|
-
* somewhere else. See {@link HEADER_DISPLAY_ROLES}.
|
|
51
|
-
*/
|
|
52
|
-
export function readOnlyFieldKeys(
|
|
53
|
-
collection: AdminCollection,
|
|
54
|
-
hasFormContext: boolean,
|
|
55
|
-
headerKeys?: ReadonlySet<string>
|
|
56
|
-
): string[] {
|
|
57
|
-
const keys = getFormFieldKeys(collection);
|
|
58
|
-
const additional = hasFormContext
|
|
59
|
-
? undefined
|
|
60
|
-
: new Set((collection.additionalFields ?? []).map(field => field.key));
|
|
61
|
-
|
|
62
|
-
return keys.filter(key =>
|
|
63
|
-
!additional?.has(key)
|
|
64
|
-
&& !headerKeys?.has(key));
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* @group Components
|
|
69
|
-
*/
|
|
70
|
-
export interface EntityViewBindingProps<M extends Record<string, unknown>> {
|
|
71
|
-
entity: Entity<M>;
|
|
72
|
-
collection: AdminCollection<M>;
|
|
73
|
-
path: string;
|
|
74
|
-
className?: string;
|
|
75
|
-
/**
|
|
76
|
-
* Lay the record out as a page: a centred, scrolling column with the
|
|
77
|
-
* metadata rail beside it, exactly as the form does. Off for the inline
|
|
78
|
-
* uses — the delete dialog renders the record inside a box it already owns.
|
|
79
|
-
*/
|
|
80
|
-
asPage?: boolean;
|
|
81
|
-
/** Padding preset, matching the form's. Only read when `asPage`. */
|
|
82
|
-
openEntityMode?: "side_panel" | "full_screen" | "split" | "dialog";
|
|
83
|
-
/**
|
|
84
|
-
* Needed only to render `additionalFields`, which are arbitrary components
|
|
85
|
-
* that take a form context. Without one those entries are left out rather
|
|
86
|
-
* than rendered against a fake context.
|
|
87
|
-
*/
|
|
88
|
-
formContext?: FormContext<M>;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* The read-only rendering of a record's values.
|
|
93
|
-
*
|
|
94
|
-
* This is the same layout as {@link EntityForm}: the sections, the grid spans,
|
|
95
|
-
* the labels and the rail all come from the one resolver, so the record does
|
|
96
|
-
* not rearrange itself when you press Edit. Only the controls differ — each
|
|
97
|
-
* field renders its {@link PropertyPreview} instead of an input.
|
|
98
|
-
*
|
|
99
|
-
* It used to be a flat two-column table of every value in the record: no
|
|
100
|
-
* grouping, no widths, a label column sized for short names and a value column
|
|
101
|
-
* that wrapped emails over two lines while the pane beside it stayed empty. A
|
|
102
|
-
* boolean and a markdown body were given the same room.
|
|
103
|
-
*
|
|
104
|
-
* The synthetic `Id` row it used to prepend is gone with the same reasoning the
|
|
105
|
-
* form applies: between that row, the collection's own id property and the
|
|
106
|
-
* `path/id` chip above them, one UUID appeared three times. The id is a
|
|
107
|
-
* copyable chip in the identity bar, and the rail's record block, once each.
|
|
108
|
-
*
|
|
109
|
-
* The labels are the form's labels, icon and all: a field is the same field
|
|
110
|
-
* whether or not you are editing it. What `mode: "read"` drops is the per-field
|
|
111
|
-
* *description*, which is input help rather than part of the label — and what it
|
|
112
|
-
* adds is room. A control is a bordered box that separates itself from the next
|
|
113
|
-
* one; a value is bare text, so the rows and sections are opened up rather than
|
|
114
|
-
* inheriting spacing sized for inputs.
|
|
115
|
-
*/
|
|
116
|
-
export function EntityViewBinding<M extends Record<string, unknown>>(
|
|
117
|
-
{
|
|
118
|
-
entity,
|
|
119
|
-
collection,
|
|
120
|
-
className,
|
|
121
|
-
asPage = false,
|
|
122
|
-
openEntityMode = "full_screen",
|
|
123
|
-
formContext
|
|
124
|
-
}: EntityViewBindingProps<M>) {
|
|
125
|
-
|
|
126
|
-
// The record's name, picture, state and labels, lifted out of the grid and
|
|
127
|
-
// into a header. Resolved here rather than inside it because the fields it
|
|
128
|
-
// renders have to come *out* of the layout, and the layout is resolved here.
|
|
129
|
-
const display = useEntityDisplayValues<M>({
|
|
130
|
-
collection,
|
|
131
|
-
entity
|
|
132
|
-
});
|
|
133
|
-
|
|
134
|
-
const headerKeys = useMemo(() => {
|
|
135
|
-
const keys = new Set<string>();
|
|
136
|
-
for (const role of HEADER_DISPLAY_ROLES) {
|
|
137
|
-
// Set only for a role filled by a property of this collection. A
|
|
138
|
-
// role filled by a resolver has no field on the grid to remove.
|
|
139
|
-
const key = display[role].source?.key;
|
|
140
|
-
if (key) keys.add(key);
|
|
141
|
-
}
|
|
142
|
-
return keys;
|
|
143
|
-
}, [display]);
|
|
144
|
-
|
|
145
|
-
// Only *whether* there is a form context changes the field list, not which
|
|
146
|
-
// one it is — so the memo turns on the boolean rather than on the context
|
|
147
|
-
// object, which is rebuilt on every keystroke of the form above it.
|
|
148
|
-
const hasFormContext = Boolean(formContext);
|
|
149
|
-
const fieldKeys = useMemo(
|
|
150
|
-
() => readOnlyFieldKeys(collection as AdminCollection, hasFormContext, headerKeys),
|
|
151
|
-
[collection, hasFormContext, headerKeys]
|
|
152
|
-
);
|
|
153
|
-
|
|
154
|
-
// `status: "existing"` — a record you are reading exists by definition, and
|
|
155
|
-
// that is what routes a generated id and the audit timestamps out of the
|
|
156
|
-
// column and into the record block.
|
|
157
|
-
const layout = useMemo(() => resolveFormLayout({
|
|
158
|
-
collection,
|
|
159
|
-
fieldKeys,
|
|
160
|
-
status: "existing"
|
|
161
|
-
}), [collection, fieldKeys]);
|
|
162
|
-
|
|
163
|
-
const containerRef = useRef<HTMLDivElement>(null);
|
|
164
|
-
// Measured, not a breakpoint — see `useRailVisible`. The same reasoning as
|
|
165
|
-
// the form's: the resolver *moves* fields into the rail, so when the rail
|
|
166
|
-
// cannot be shown they have to fold back into the column.
|
|
167
|
-
const railVisible = useRailVisible(containerRef);
|
|
168
|
-
const showRail = asPage && layout.hasRail && railVisible;
|
|
169
|
-
|
|
170
|
-
const [collapsedSections, setCollapsedSections] = useState<Set<string>>(
|
|
171
|
-
() => new Set(layout.sections.filter(section => section.collapsed).map(section => section.key))
|
|
172
|
-
);
|
|
173
|
-
const toggleSection = useCallback((key: string) => {
|
|
174
|
-
setCollapsedSections(prev => {
|
|
175
|
-
const next = new Set(prev);
|
|
176
|
-
if (next.has(key)) next.delete(key); else next.add(key);
|
|
177
|
-
return next;
|
|
178
|
-
});
|
|
179
|
-
}, []);
|
|
180
|
-
|
|
181
|
-
const renderField = useCallback((field: ResolvedFormField): React.ReactNode => {
|
|
182
|
-
|
|
183
|
-
if (field.additional) {
|
|
184
|
-
const additionalField = collection.additionalFields?.find(f => f.key === field.key);
|
|
185
|
-
if (!additionalField || !formContext) return null;
|
|
186
|
-
|
|
187
|
-
const AdditionalFieldBuilder = additionalField.Builder;
|
|
188
|
-
const additionalFieldContext = formContext as unknown as AdditionalFieldDelegateProps["context"];
|
|
189
|
-
const child = AdditionalFieldBuilder
|
|
190
|
-
? <AdditionalFieldBuilder entity={entity} context={additionalFieldContext}/>
|
|
191
|
-
: <div className={"w-full"}>
|
|
192
|
-
<AdditionalFieldValue
|
|
193
|
-
field={additionalField}
|
|
194
|
-
entity={entity}
|
|
195
|
-
context={additionalFieldContext}/>
|
|
196
|
-
</div>;
|
|
197
|
-
|
|
198
|
-
return (
|
|
199
|
-
// Through FieldBlock like every other cell, so a computed
|
|
200
|
-
// column is labelled at the same size, with the same gap to its
|
|
201
|
-
// box, as the property next to it on the grid.
|
|
202
|
-
<div key={`additional_${field.key}`} className={spanClass(field.span)}>
|
|
203
|
-
<FieldBlock propertyKey={field.key}
|
|
204
|
-
showLabel={true}
|
|
205
|
-
mode={"read"}
|
|
206
|
-
label={additionalField.name}
|
|
207
|
-
icon={<AlignLeftIcon size={LABEL_ICON_SIZE}/>}>
|
|
208
|
-
<div className={cls(paperMixin, "w-full min-h-12 p-4 md:p-6 overflow-x-auto no-scrollbar")}>
|
|
209
|
-
{child}
|
|
210
|
-
</div>
|
|
211
|
-
</FieldBlock>
|
|
212
|
-
</div>
|
|
213
|
-
);
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
const property = collection.properties?.[field.key] as Property | undefined;
|
|
217
|
-
if (!property) return null;
|
|
218
|
-
|
|
219
|
-
return (
|
|
220
|
-
<div key={`field_${field.key}`} className={spanClass(field.span)}>
|
|
221
|
-
{/* Always labelled from here, unlike the form. The panel editors
|
|
222
|
-
that carry their own header have no header in preview — a map
|
|
223
|
-
previews as a table of its children and an array as its items,
|
|
224
|
-
so leaving the label to them would leave them unlabelled. */}
|
|
225
|
-
<FieldBlock propertyKey={field.key}
|
|
226
|
-
property={property}
|
|
227
|
-
showLabel={true}
|
|
228
|
-
mode={"read"}>
|
|
229
|
-
{/* One control's height for a single-line value, so a row of
|
|
230
|
-
short fields lines up with the taller ones beside it, and
|
|
231
|
-
anything longer simply grows. Matched to the form's row
|
|
232
|
-
rather than shrunk to the text: it is what keeps a value
|
|
233
|
-
from sitting directly on the label of the row below. */}
|
|
234
|
-
<div className={"min-h-8 flex flex-col justify-center min-w-0 text-text-primary dark:text-text-primary-dark"}>
|
|
235
|
-
<PropertyPreview propertyKey={field.key}
|
|
236
|
-
value={getValueInPath(entity.values, field.key)}
|
|
237
|
-
property={property}
|
|
238
|
-
hideLabel
|
|
239
|
-
size={"medium"}/>
|
|
240
|
-
</div>
|
|
241
|
-
</FieldBlock>
|
|
242
|
-
</div>
|
|
243
|
-
);
|
|
244
|
-
}, [collection, entity, formContext]);
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* One field of a `readVariant: "summary"` section: a label/value row rather
|
|
248
|
-
* than a grid cell, with the last one emphasised.
|
|
249
|
-
*
|
|
250
|
-
* The last row is the one a summary exists for — a run of figures is read to
|
|
251
|
-
* arrive at its final line — so it is separated by a rule and set at the
|
|
252
|
-
* weight the grid gave every cell equally.
|
|
253
|
-
*/
|
|
254
|
-
const renderSummaryField = useCallback((
|
|
255
|
-
field: ResolvedFormField,
|
|
256
|
-
index: number,
|
|
257
|
-
total: number
|
|
258
|
-
): React.ReactNode => {
|
|
259
|
-
|
|
260
|
-
const property = collection.properties?.[field.key] as Property | undefined;
|
|
261
|
-
if (!property) return null;
|
|
262
|
-
|
|
263
|
-
const last = index === total - 1;
|
|
264
|
-
|
|
265
|
-
return (
|
|
266
|
-
<div key={`summary_${field.key}`}
|
|
267
|
-
className={cls(
|
|
268
|
-
"flex items-baseline justify-between gap-4 min-w-0 py-2",
|
|
269
|
-
last && total > 1 && cls("mt-1.5 pt-3 border-t", defaultBorderMixin)
|
|
270
|
-
)}>
|
|
271
|
-
<span className={cls(
|
|
272
|
-
"min-w-0 truncate",
|
|
273
|
-
last
|
|
274
|
-
? "text-sm font-semibold text-text-primary dark:text-text-primary-dark"
|
|
275
|
-
: "text-sm text-text-secondary dark:text-text-secondary-dark"
|
|
276
|
-
)}>
|
|
277
|
-
{property.name ?? field.key}
|
|
278
|
-
</span>
|
|
279
|
-
<span className={cls(
|
|
280
|
-
"shrink-0 text-right text-text-primary dark:text-text-primary-dark",
|
|
281
|
-
last ? "text-base font-semibold" : "text-sm"
|
|
282
|
-
)}>
|
|
283
|
-
<PropertyPreview propertyKey={field.key}
|
|
284
|
-
value={getValueInPath(entity.values, field.key)}
|
|
285
|
-
property={property}
|
|
286
|
-
hideLabel
|
|
287
|
-
size={"medium"}/>
|
|
288
|
-
</span>
|
|
289
|
-
</div>
|
|
290
|
-
);
|
|
291
|
-
}, [collection, entity]);
|
|
292
|
-
|
|
293
|
-
// Same fold-back as the form: with no room for the rail its fields become a
|
|
294
|
-
// trailing group rather than disappearing.
|
|
295
|
-
const sections: ResolvedFormSection[] = showRail || !layout.sidebar.length
|
|
296
|
-
? layout.sections
|
|
297
|
-
: [
|
|
298
|
-
...layout.sections,
|
|
299
|
-
{
|
|
300
|
-
key: "__rail",
|
|
301
|
-
title: "Settings",
|
|
302
|
-
collapsible: false,
|
|
303
|
-
collapsed: false,
|
|
304
|
-
fields: layout.sidebar
|
|
305
|
-
}
|
|
306
|
-
];
|
|
307
|
-
|
|
308
|
-
const content = <>
|
|
309
|
-
{/* The title only when nothing above is already showing it. Every
|
|
310
|
-
full-page use sits under an identity bar that carries it; the
|
|
311
|
-
inline ones — the delete dialog — have no bar. */}
|
|
312
|
-
<EntityDisplayHeader entity={entity}
|
|
313
|
-
collection={collection}
|
|
314
|
-
showTitle={!asPage}
|
|
315
|
-
className={"mb-10"}/>
|
|
316
|
-
|
|
317
|
-
<FormSections sections={sections}
|
|
318
|
-
collapsed={collapsedSections}
|
|
319
|
-
onToggle={toggleSection}
|
|
320
|
-
errorKeys={NO_ERRORS}
|
|
321
|
-
renderField={renderField}
|
|
322
|
-
renderSummaryField={renderSummaryField}
|
|
323
|
-
mode={"read"}/>
|
|
324
|
-
|
|
325
|
-
{/* Folded back with the rail's fields, and for the same reason. The rail
|
|
326
|
-
renders only where it has been measured to fit, so on the split pane,
|
|
327
|
-
the side panel and the dialog this block was dropped outright and the
|
|
328
|
-
record's id was nowhere on screen but the truncated chip in the bar.
|
|
329
|
-
An id you cannot read or copy is the one piece of a record you most
|
|
330
|
-
often opened it for. */}
|
|
331
|
-
{!showRail && layout.showRecordMeta && (
|
|
332
|
-
<div className={cls("mt-10 pt-6 border-t max-w-sm", defaultBorderMixin)}>
|
|
333
|
-
<RecordMeta entity={entity as Entity<Record<string, unknown>>}/>
|
|
334
|
-
</div>
|
|
335
|
-
)}
|
|
336
|
-
</>;
|
|
337
|
-
|
|
338
|
-
if (!asPage) {
|
|
339
|
-
// `@container/col` even here: the spans resolve against the column they
|
|
340
|
-
// sit in, and inside a dialog that column is the dialog.
|
|
341
|
-
return (
|
|
342
|
-
<div ref={containerRef} className={cls("@container/col w-full min-w-0", className)}>
|
|
343
|
-
{content}
|
|
344
|
-
</div>
|
|
345
|
-
);
|
|
346
|
-
}
|
|
347
|
-
|
|
348
|
-
return (
|
|
349
|
-
<div ref={containerRef} className={cls("@container/form flex-1 flex flex-row w-full min-h-0", className)}>
|
|
350
|
-
|
|
351
|
-
{/* `items-start`: without it the cross-axis default stretches the
|
|
352
|
-
column to the scroller's height and its bottom padding lands at
|
|
353
|
-
the bottom of the viewport instead of after the last field. */}
|
|
354
|
-
<div className={"flex-1 min-w-0 overflow-y-auto flex justify-center items-start"}>
|
|
355
|
-
<div className={cls(
|
|
356
|
-
// Same widths as the editable form (see EntityForm) — toggling
|
|
357
|
-
// between read-only and edit must not move the column.
|
|
358
|
-
"@container/col w-full max-w-3xl @7xl/form:max-w-4xl 2xl:max-w-4xl flex flex-col",
|
|
359
|
-
openEntityMode === "dialog"
|
|
360
|
-
? "pt-5 pb-8 px-6 sm:px-8"
|
|
361
|
-
: "pt-6 pb-12 px-5 sm:px-8"
|
|
362
|
-
)}>
|
|
363
|
-
{content}
|
|
364
|
-
</div>
|
|
365
|
-
</div>
|
|
366
|
-
|
|
367
|
-
{showRail && <FormRail
|
|
368
|
-
fields={layout.sidebar}
|
|
369
|
-
showRecordMeta={layout.showRecordMeta}
|
|
370
|
-
entity={entity as Entity<Record<string, unknown>>}
|
|
371
|
-
renderField={renderField}/>}
|
|
372
|
-
</div>
|
|
373
|
-
);
|
|
374
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import { Typography } from "@rebasepro/ui";
|
|
3
|
-
|
|
4
|
-
export function FieldCaption({
|
|
5
|
-
error,
|
|
6
|
-
children
|
|
7
|
-
}: { error?: boolean, children?: React.ReactNode }) {
|
|
8
|
-
if (!children) return null;
|
|
9
|
-
return (
|
|
10
|
-
<Typography variant={"caption"} color={error ? "error" : "secondary"} className={"ml-3.5 mt-0.5"}>
|
|
11
|
-
{children}
|
|
12
|
-
</Typography>
|
|
13
|
-
);
|
|
14
|
-
}
|