@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.
Files changed (350) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +20 -20
  3. package/dist/{CollectionEditorDialog-iGgS4rLX.js → CollectionEditorDialog-B-7uW3iJ.js} +15 -15
  4. package/dist/CollectionEditorDialog-B-7uW3iJ.js.map +1 -0
  5. package/dist/{PropertyEditView-C9yhLyja.js → PropertyEditView-7KMTcrqi.js} +140 -106
  6. package/dist/PropertyEditView-7KMTcrqi.js.map +1 -0
  7. package/dist/{RouterCollectionsStudioView-Dqx27GD8.js → RouterCollectionsStudioView-epqIbZrJ.js} +4 -4
  8. package/dist/{RouterCollectionsStudioView-Dqx27GD8.js.map → RouterCollectionsStudioView-epqIbZrJ.js.map} +1 -1
  9. package/dist/collection_editor/_cms_internals.d.ts +4 -4
  10. package/dist/collection_editor/api/generateCollectionApi.d.ts +7 -6
  11. package/dist/collection_editor/extensibility_types.d.ts +3 -3
  12. package/dist/collection_editor/index.d.ts +2 -2
  13. package/dist/collection_editor/pgColumnToProperty.d.ts +3 -3
  14. package/dist/collection_editor/serializable_types.d.ts +12 -16
  15. package/dist/collection_editor/serializable_utils.d.ts +8 -8
  16. package/dist/collection_editor/types/collection_editor_controller.d.ts +5 -5
  17. package/dist/collection_editor/types/collection_inference.d.ts +2 -2
  18. package/dist/collection_editor/types/config_controller.d.ts +7 -7
  19. package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +2 -2
  20. package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +2 -2
  21. package/dist/collection_editor/ui/KanbanSetupAction.d.ts +2 -2
  22. package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +2 -2
  23. package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +3 -3
  24. package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +2 -2
  25. package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +4 -5
  26. package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +2 -2
  27. package/dist/collection_editor/ui/collection_editor/CollectionJsonImportDialog.d.ts +2 -2
  28. package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +4 -4
  29. package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +2 -2
  30. package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +2 -2
  31. package/dist/collection_editor/ui/collection_editor/EntityActionsEditTab.d.ts +2 -2
  32. package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +2 -2
  33. package/dist/collection_editor/ui/collection_editor/GetCodeDialog.d.ts +2 -2
  34. package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +4 -4
  35. package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +3 -3
  36. package/dist/collection_editor/ui/collection_editor/templates/blog_template.d.ts +2 -2
  37. package/dist/collection_editor/ui/collection_editor/templates/pages_template.d.ts +2 -2
  38. package/dist/collection_editor/ui/collection_editor/templates/products_template.d.ts +2 -2
  39. package/dist/collection_editor/ui/collection_editor/templates/users_template.d.ts +2 -2
  40. package/dist/collection_editor/useLocalCollectionsConfigController.d.ts +2 -2
  41. package/dist/collection_editor/validateCollectionJson.d.ts +2 -2
  42. package/dist/collection_editor_ui.js +4 -4
  43. package/dist/components/CollectionPanel.d.ts +4 -4
  44. package/dist/components/{EntityCollectionTable/EntityCollectionRowActions.d.ts → CollectionTableBinding/CollectionRowActions.d.ts} +3 -3
  45. package/dist/components/CollectionTableBinding/CollectionTableBinding.d.ts +28 -0
  46. package/dist/components/{EntityCollectionTable/EntityCollectionTableProps.d.ts → CollectionTableBinding/CollectionTableBindingProps.d.ts} +1 -1
  47. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.d.ts +2 -2
  48. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.d.ts +2 -2
  49. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.d.ts +2 -2
  50. package/dist/components/CollectionTableBinding/index.d.ts +6 -0
  51. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.d.ts +2 -2
  52. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.d.ts +2 -2
  53. package/dist/components/{EntityCollectionView/EntityBoardCard.d.ts → CollectionViewBinding/BoardCardBinding.d.ts} +8 -8
  54. package/dist/components/{EntityCollectionView/EntityCollectionBoardView.d.ts → CollectionViewBinding/CollectionBoardViewBinding.d.ts} +4 -4
  55. package/dist/components/{EntityCollectionView/EntityCollectionCardView.d.ts → CollectionViewBinding/CollectionCardViewBinding.d.ts} +5 -5
  56. package/dist/components/{EntityCollectionView/EntityCollectionListView.d.ts → CollectionViewBinding/CollectionListViewBinding.d.ts} +4 -4
  57. package/dist/components/{EntityCollectionView/EntityCollectionViewActions.d.ts → CollectionViewBinding/CollectionViewActions.d.ts} +4 -4
  58. package/dist/components/{EntityCollectionView/EntityCollectionView.d.ts → CollectionViewBinding/CollectionViewBinding.d.ts} +4 -4
  59. package/dist/components/{EntityCollectionView/EntityCollectionViewStartActions.d.ts → CollectionViewBinding/CollectionViewStartActions.d.ts} +4 -4
  60. package/dist/components/CollectionViewBinding/EntityCardBinding.d.ts +21 -0
  61. package/dist/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.d.ts +3 -3
  62. package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.d.ts +2 -2
  63. package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.d.ts +2 -2
  64. package/dist/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.d.ts +2 -2
  65. package/dist/components/{EntityCollectionView/useEntityPreviewSlots.d.ts → CollectionViewBinding/usePreviewSlots.d.ts} +5 -5
  66. package/dist/components/DeleteEntityDialog.d.ts +4 -4
  67. package/dist/components/{EntityDetailView.d.ts → DetailViewBinding.d.ts} +5 -5
  68. package/dist/components/EditFormActions.d.ts +3 -0
  69. package/dist/components/{EntityEditView.d.ts → EditViewBinding.d.ts} +9 -9
  70. package/dist/components/{EntityPreview.d.ts → EntityPreviewBinding.d.ts} +13 -13
  71. package/dist/components/EntityViewBinding.d.ts +13 -0
  72. package/dist/components/{EntityJsonPreview.d.ts → JsonPreviewBinding.d.ts} +1 -1
  73. package/dist/components/RebaseCMS.d.ts +1 -1
  74. package/dist/components/RebaseNavigation.d.ts +1 -1
  75. package/dist/components/ReferenceTable/{EntitySelectionTable.d.ts → SelectionTableBinding.d.ts} +5 -5
  76. package/dist/components/SelectableTable/SelectableTable.d.ts +5 -5
  77. package/dist/components/SelectableTable/SelectableTableContext.d.ts +3 -3
  78. package/dist/components/SelectableTable/SelectionStore.d.ts +13 -22
  79. package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +6 -1
  80. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +7 -1
  81. package/dist/components/SelectableTable/filters/FilterFieldBinding.d.ts +40 -0
  82. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +7 -1
  83. package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +7 -1
  84. package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +7 -1
  85. package/dist/components/SideDialogs.d.ts +1 -1
  86. package/dist/components/SidePanelBinding.d.ts +11 -0
  87. package/dist/components/{SideEntityProvider.d.ts → SidePanelProvider.d.ts} +7 -7
  88. package/dist/components/field_configs.d.ts +1 -1
  89. package/dist/components/history/EntityHistoryEntry.d.ts +2 -2
  90. package/dist/components/history/LastEditedByIndicator.d.ts +2 -2
  91. package/dist/components/index.d.ts +14 -13
  92. package/dist/contexts/SidePanelControllerContext.d.ts +3 -0
  93. package/dist/data_export/export/ExportCollectionAction.d.ts +3 -3
  94. package/dist/data_import/components/ImportSaveInProgress.d.ts +2 -2
  95. package/dist/editor/editor.d.ts +0 -6
  96. package/dist/editor.js +1 -3
  97. package/dist/editor.js.map +1 -1
  98. package/dist/form/EntityForm.d.ts +1 -1
  99. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  100. package/dist/form/components/StorageUploadProgress.d.ts +6 -1
  101. package/dist/form/form_utils.d.ts +2 -2
  102. package/dist/form/index.d.ts +0 -1
  103. package/dist/{history-ChHgyyvM.js → history-7X5bON_n.js} +4 -4
  104. package/dist/history-7X5bON_n.js.map +1 -0
  105. package/dist/hooks/index.d.ts +4 -4
  106. package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +2 -2
  107. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +5 -5
  108. package/dist/hooks/navigation/useNavigationResolution.d.ts +4 -4
  109. package/dist/hooks/navigation/useResolvedCollections.d.ts +7 -7
  110. package/dist/hooks/navigation/useTopLevelNavigation.d.ts +2 -2
  111. package/dist/hooks/navigation/utils.d.ts +5 -5
  112. package/dist/hooks/useBuildSidePanel.d.ts +6 -0
  113. package/dist/hooks/useCMSContext.d.ts +2 -2
  114. package/dist/hooks/{useEntityHistory.d.ts → useHistory.d.ts} +1 -1
  115. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  116. package/dist/hooks/{useEntitySelectionDialog.d.ts → useSelectionDialog.d.ts} +2 -2
  117. package/dist/hooks/useSideDialogsController.d.ts +1 -1
  118. package/dist/hooks/useSidePanel.d.ts +11 -0
  119. package/dist/index.d.ts +3 -3
  120. package/dist/index.js +2 -2
  121. package/dist/preview/components/StorageThumbnail.d.ts +3 -1
  122. package/dist/{src-DOX2nOyh.js → src-sUZfe29F.js} +904 -1096
  123. package/dist/src-sUZfe29F.js.map +1 -0
  124. package/dist/types/components/EntityFormActionsProps.d.ts +2 -2
  125. package/dist/types/components/EntityFormProps.d.ts +3 -3
  126. package/dist/types/components/PropertyPreviewProps.d.ts +2 -1
  127. package/dist/types/fields.d.ts +6 -8
  128. package/dist/util/dataControllerAdapter.d.ts +2 -5
  129. package/dist/util/navigation_utils.d.ts +6 -6
  130. package/dist/util/previews.d.ts +3 -3
  131. package/dist/util/property_utils.d.ts +2 -2
  132. package/dist/util/{entity_view_constants.d.ts → view_constants.d.ts} +1 -1
  133. package/package.json +18 -18
  134. package/src/collection_editor/ConfigControllerProvider.tsx +10 -10
  135. package/src/collection_editor/_cms_internals.ts +4 -4
  136. package/src/collection_editor/api/generateCollectionApi.ts +7 -6
  137. package/src/collection_editor/extensibility_types.ts +3 -3
  138. package/src/collection_editor/index.ts +3 -3
  139. package/src/collection_editor/pgColumnToProperty.ts +4 -4
  140. package/src/collection_editor/serializable_types.ts +22 -35
  141. package/src/collection_editor/serializable_utils.ts +40 -52
  142. package/src/collection_editor/types/collection_editor_controller.tsx +5 -5
  143. package/src/collection_editor/types/collection_inference.ts +2 -2
  144. package/src/collection_editor/types/config_controller.tsx +7 -7
  145. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +2 -2
  146. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +2 -2
  147. package/src/collection_editor/ui/EditorCollectionAction.tsx +2 -2
  148. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +2 -2
  149. package/src/collection_editor/ui/EditorEntityAction.tsx +2 -2
  150. package/src/collection_editor/ui/KanbanSetupAction.tsx +2 -2
  151. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +2 -2
  152. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +5 -5
  153. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +3 -3
  154. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +63 -46
  155. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +3 -3
  156. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +2 -2
  157. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +8 -8
  158. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +2 -2
  159. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +2 -2
  160. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +2 -2
  161. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +2 -2
  162. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +2 -2
  163. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +3 -3
  164. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +5 -5
  165. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +4 -4
  166. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +2 -2
  167. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +7 -16
  168. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +45 -36
  169. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +1 -1
  170. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +5 -5
  171. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +3 -3
  172. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +2 -2
  173. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +2 -2
  174. package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +35 -1
  175. package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +3 -3
  176. package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +2 -2
  177. package/src/collection_editor/ui/collection_editor/templates/products_template.ts +2 -2
  178. package/src/collection_editor/ui/collection_editor/templates/users_template.ts +2 -2
  179. package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +0 -1
  180. package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +7 -29
  181. package/src/collection_editor/useJsonCollectionsConfigController.tsx +14 -14
  182. package/src/collection_editor/useLocalCollectionsConfigController.tsx +4 -4
  183. package/src/collection_editor/validateCollectionJson.ts +3 -3
  184. package/src/components/CollectionPanel.tsx +14 -17
  185. package/src/components/{EntityCollectionTable/EntityCollectionRowActions.tsx → CollectionTableBinding/CollectionRowActions.tsx} +6 -6
  186. package/src/components/{EntityCollectionTable/EntityCollectionTable.tsx → CollectionTableBinding/CollectionTableBinding.tsx} +19 -17
  187. package/src/components/{EntityCollectionTable/EntityCollectionTableProps.tsx → CollectionTableBinding/CollectionTableBindingProps.tsx} +1 -1
  188. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.tsx +7 -6
  189. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.tsx +10 -10
  190. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.tsx +7 -6
  191. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.tsx +23 -20
  192. package/src/components/CollectionTableBinding/index.tsx +14 -0
  193. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.tsx +2 -2
  194. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.tsx +2 -2
  195. package/src/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.tsx +24 -44
  196. package/src/components/{EntityCollectionView/EntityBoardCard.tsx → CollectionViewBinding/BoardCardBinding.tsx} +15 -15
  197. package/src/components/{EntityCollectionView/EntityCollectionBoardView.tsx → CollectionViewBinding/CollectionBoardViewBinding.tsx} +15 -14
  198. package/src/components/{EntityCollectionView/EntityCollectionCardView.tsx → CollectionViewBinding/CollectionCardViewBinding.tsx} +8 -8
  199. package/src/components/{EntityCollectionView/EntityCollectionListView.tsx → CollectionViewBinding/CollectionListViewBinding.tsx} +24 -13
  200. package/src/components/{EntityCollectionView/EntityCollectionViewActions.tsx → CollectionViewBinding/CollectionViewActions.tsx} +5 -5
  201. package/src/components/{EntityCollectionView/EntityCollectionView.tsx → CollectionViewBinding/CollectionViewBinding.tsx} +112 -114
  202. package/src/components/{EntityCollectionView/EntityCollectionViewStartActions.tsx → CollectionViewBinding/CollectionViewStartActions.tsx} +5 -5
  203. package/src/components/{EntityCollectionView/EntityCard.tsx → CollectionViewBinding/EntityCardBinding.tsx} +9 -9
  204. package/src/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.tsx +31 -72
  205. package/src/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.tsx +9 -9
  206. package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.ts +6 -6
  207. package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.ts +4 -4
  208. package/src/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.tsx +28 -50
  209. package/src/components/{EntityCollectionView/useEntityPreviewSlots.ts → CollectionViewBinding/usePreviewSlots.ts} +11 -11
  210. package/src/components/DefaultDrawer.tsx +1 -1
  211. package/src/components/DeleteEntityDialog.tsx +6 -6
  212. package/src/components/{EntityDetailView.tsx → DetailViewBinding.tsx} +28 -31
  213. package/src/components/{EntityEditViewFormActions.tsx → EditFormActions.tsx} +15 -15
  214. package/src/components/{EntityEditView.tsx → EditViewBinding.tsx} +31 -34
  215. package/src/components/{EntityPreview.tsx → EntityPreviewBinding.tsx} +27 -27
  216. package/src/components/{EntityView.tsx → EntityViewBinding.tsx} +5 -5
  217. package/src/components/HomePage/ContentHomePage.tsx +1 -1
  218. package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
  219. package/src/components/{EntityJsonPreview.tsx → JsonPreviewBinding.tsx} +1 -1
  220. package/src/components/RebaseCMS.tsx +4 -4
  221. package/src/components/RebaseNavigation.tsx +20 -10
  222. package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx} +22 -19
  223. package/src/components/ReferenceWidget.tsx +4 -4
  224. package/src/components/RelationSelector.tsx +16 -14
  225. package/src/components/SelectableTable/SelectableTable.tsx +44 -89
  226. package/src/components/SelectableTable/SelectableTableContext.tsx +3 -3
  227. package/src/components/SelectableTable/SelectionStore.ts +22 -52
  228. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +9 -1
  229. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +33 -12
  230. package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +187 -0
  231. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +21 -7
  232. package/src/components/SelectableTable/filters/RelationFilterField.tsx +17 -3
  233. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +66 -12
  234. package/src/components/SideDialogs.tsx +3 -3
  235. package/src/components/{EntitySidePanel.tsx → SidePanelBinding.tsx} +19 -19
  236. package/src/components/{SideEntityProvider.tsx → SidePanelProvider.tsx} +16 -16
  237. package/src/components/common/default_entity_actions.tsx +24 -13
  238. package/src/components/field_configs.tsx +0 -14
  239. package/src/components/history/EntityHistoryEntry.tsx +2 -2
  240. package/src/components/history/EntityHistoryView.tsx +3 -3
  241. package/src/components/history/LastEditedByIndicator.tsx +2 -2
  242. package/src/components/index.ts +15 -14
  243. package/src/contexts/SidePanelControllerContext.tsx +5 -0
  244. package/src/data_export/export/ExportCollectionAction.tsx +4 -4
  245. package/src/data_import/components/ImportSaveInProgress.tsx +3 -3
  246. package/src/data_import/import/ImportCollectionAction.tsx +4 -4
  247. package/src/data_import/utils/data.ts +2 -2
  248. package/src/editor/editor.tsx +4 -7
  249. package/src/form/EntityForm.tsx +2 -2
  250. package/src/form/EntityFormActions.tsx +4 -4
  251. package/src/form/EntityFormBinding.tsx +7 -7
  252. package/src/form/PropertyFieldBinding.tsx +4 -4
  253. package/src/form/components/StorageUploadProgress.tsx +9 -2
  254. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -4
  255. package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -19
  256. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +12 -1
  257. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +6 -6
  258. package/src/form/field_bindings/ReferenceFieldBinding.tsx +5 -5
  259. package/src/form/field_bindings/RelationFieldBinding.tsx +8 -10
  260. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +19 -15
  261. package/src/form/form_utils.ts +2 -2
  262. package/src/form/index.tsx +0 -1
  263. package/src/hooks/index.ts +4 -4
  264. package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +2 -2
  265. package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +11 -11
  266. package/src/hooks/navigation/useBuildNavigationStateController.tsx +5 -5
  267. package/src/hooks/navigation/useNavigationResolution.ts +10 -10
  268. package/src/hooks/navigation/useResolvedCollections.ts +8 -8
  269. package/src/hooks/navigation/useTopLevelNavigation.ts +2 -2
  270. package/src/hooks/navigation/utils.ts +5 -5
  271. package/src/hooks/{useBuildSideEntityController.tsx → useBuildSidePanel.tsx} +28 -28
  272. package/src/hooks/useCMSContext.tsx +6 -6
  273. package/src/hooks/{useEntityHistory.ts → useHistory.ts} +1 -1
  274. package/src/hooks/useResolvedNavigationFrom.tsx +8 -5
  275. package/src/hooks/{useEntitySelectionDialog.tsx → useSelectionDialog.tsx} +7 -7
  276. package/src/hooks/useSideDialogsController.tsx +1 -1
  277. package/src/hooks/useSidePanel.tsx +13 -0
  278. package/src/index.ts +13 -13
  279. package/src/preview/PropertyPreview.tsx +1 -16
  280. package/src/preview/components/ReferencePreview.tsx +10 -10
  281. package/src/preview/components/RelationPreview.tsx +13 -12
  282. package/src/preview/components/StorageThumbnail.tsx +24 -7
  283. package/src/routes/RebaseRoute.tsx +10 -10
  284. package/src/types/components/EntityFormActionsProps.tsx +2 -2
  285. package/src/types/components/EntityFormProps.tsx +3 -3
  286. package/src/types/components/PropertyPreviewProps.tsx +1 -1
  287. package/src/types/fields.tsx +4 -9
  288. package/src/util/dataControllerAdapter.ts +9 -15
  289. package/src/util/navigation_utils.ts +7 -7
  290. package/src/util/previews.ts +23 -3
  291. package/src/util/propertyConfigMapper.ts +3 -3
  292. package/src/util/property_utils.tsx +2 -3
  293. package/src/util/{entity_view_constants.ts → view_constants.ts} +1 -1
  294. package/dist/CollectionEditorDialog-iGgS4rLX.js.map +0 -1
  295. package/dist/PropertyEditView-C9yhLyja.js.map +0 -1
  296. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -28
  297. package/dist/components/EntityCollectionTable/fields/VirtualTableDateField.d.ts +0 -12
  298. package/dist/components/EntityCollectionTable/fields/VirtualTableInput.d.ts +0 -10
  299. package/dist/components/EntityCollectionTable/fields/VirtualTableNumberInput.d.ts +0 -9
  300. package/dist/components/EntityCollectionTable/fields/VirtualTableSwitch.d.ts +0 -8
  301. package/dist/components/EntityCollectionTable/index.d.ts +0 -6
  302. package/dist/components/EntityCollectionView/EntityCard.d.ts +0 -21
  303. package/dist/components/EntityEditViewFormActions.d.ts +0 -3
  304. package/dist/components/EntitySidePanel.d.ts +0 -11
  305. package/dist/components/EntityView.d.ts +0 -13
  306. package/dist/contexts/SideEntityControllerContext.d.ts +0 -3
  307. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +0 -11
  308. package/dist/history-ChHgyyvM.js.map +0 -1
  309. package/dist/hooks/useBuildSideEntityController.d.ts +0 -6
  310. package/dist/hooks/useSideEntityController.d.ts +0 -11
  311. package/dist/src-DOX2nOyh.js.map +0 -1
  312. package/src/components/EntityCollectionTable/fields/VirtualTableDateField.tsx +0 -39
  313. package/src/components/EntityCollectionTable/fields/VirtualTableInput.tsx +0 -90
  314. package/src/components/EntityCollectionTable/fields/VirtualTableNumberInput.tsx +0 -83
  315. package/src/components/EntityCollectionTable/fields/VirtualTableSwitch.tsx +0 -32
  316. package/src/components/EntityCollectionTable/index.tsx +0 -14
  317. package/src/contexts/SideEntityControllerContext.tsx +0 -5
  318. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +0 -141
  319. package/src/hooks/useSideEntityController.tsx +0 -13
  320. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.d.ts +0 -0
  321. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.d.ts +0 -0
  322. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.d.ts +0 -0
  323. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.d.ts +0 -0
  324. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.d.ts +0 -0
  325. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.d.ts +0 -0
  326. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.d.ts +0 -0
  327. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.d.ts +0 -0
  328. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.d.ts +0 -0
  329. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.d.ts +0 -0
  330. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.d.ts +0 -0
  331. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.d.ts +0 -0
  332. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.d.ts +0 -0
  333. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.d.ts +0 -0
  334. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.d.ts +0 -0
  335. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.d.ts +0 -0
  336. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/utils.d.ts +0 -0
  337. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.tsx +0 -0
  338. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.tsx +0 -0
  339. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.tsx +0 -0
  340. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.tsx +0 -0
  341. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.tsx +0 -0
  342. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.tsx +0 -0
  343. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.tsx +0 -0
  344. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.tsx +0 -0
  345. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.tsx +0 -0
  346. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.tsx +0 -0
  347. /package/src/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.tsx +0 -0
  348. /package/src/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.tsx +0 -0
  349. /package/src/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.tsx +0 -0
  350. /package/src/components/{EntityCollectionView → CollectionViewBinding}/utils.ts +0 -0
@@ -4,7 +4,7 @@ import { useSideDialogsController } from "../hooks";
4
4
  import { Sheet, Dialog } from "@rebasepro/ui";
5
5
  import { useUnsavedChangesDialog, UnsavedChangesDialog } from "@rebasepro/core";
6
6
  import { ErrorBoundary } from "@rebasepro/ui";
7
- import type { EntitySidePanelProps } from "@rebasepro/types";
7
+ import type { SidePanelBindingProps } from "@rebasepro/types";
8
8
 
9
9
 
10
10
  export type SideDialogController = {
@@ -41,7 +41,7 @@ export const useSideDialogContext = () => useContext<SideDialogController>(SideD
41
41
 
42
42
  /**
43
43
  * This is the component in charge of rendering the side dialogs used
44
- * for editing entities. Use the {@link useSideEntityController} to open
44
+ * for editing entities. Use the {@link useSidePanel} to open
45
45
  * and control the dialogs.
46
46
  * This component needs a parent {@link Rebase}
47
47
  * {@link useSideDialogsController}
@@ -146,7 +146,7 @@ function SideDialogView({
146
146
  setPendingClose
147
147
  }), [blocked, setBlockedNavigationMessage, width, onCloseRequest, pendingClose]);
148
148
 
149
- const additionalProps = panel?.additional as EntitySidePanelProps | undefined;
149
+ const additionalProps = panel?.additional as SidePanelBindingProps | undefined;
150
150
  const isDialogMode = additionalProps?.collection?.openEntityMode === "dialog";
151
151
 
152
152
  return (
@@ -1,28 +1,28 @@
1
- import type { EntityCollection } from "@rebasepro/types";
2
- import type { EntitySidePanelProps } from "@rebasepro/types";
1
+ import type { CollectionConfig } from "@rebasepro/types";
2
+ import type { SidePanelBindingProps } from "@rebasepro/types";
3
3
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
 
5
5
  import type { OnUpdateParams } from "../types/components/EntityFormProps";
6
6
  import { ErrorBoundary } from "@rebasepro/ui";
7
7
  import { IconButton, Maximize2Icon, XIcon } from "@rebasepro/ui";
8
- import { EntityEditView } from "./EntityEditView";
9
- import { EntityDetailView } from "./EntityDetailView";
8
+ import { EditViewBinding } from "./EditViewBinding";
9
+ import { DetailViewBinding } from "./DetailViewBinding";
10
10
  import { useSideDialogContext } from "./SideDialogs";
11
11
  import { useNavigate } from "react-router-dom";
12
12
  import { saveEntityToMemoryCache, useComponentOverride } from "@rebasepro/core";
13
- import { useCollectionRegistryController, useSideEntityController } from "../index";
13
+ import { useCollectionRegistryController, useSidePanel } from "../index";
14
14
  import { useUrlController } from "../index";
15
15
  import { resolveDefaultSelectedView } from "@rebasepro/common";
16
16
 
17
17
  /**
18
18
  * This is the component in charge of rendering the side dialog used
19
- * for editing entities. Use the {@link useSideEntityController} to open
19
+ * for editing entities. Use the {@link useSidePanel} to open
20
20
  * and control the dialogs.
21
21
  * This component needs a parent {@link Rebase}
22
- * {@link useSideEntityController}
22
+ * {@link useSidePanel}
23
23
  * @group Components
24
24
  */
25
- export function EntitySidePanel(props: EntitySidePanelProps) {
25
+ export function SidePanelBinding(props: SidePanelBindingProps) {
26
26
 
27
27
  const {
28
28
  allowFullScreen = true,
@@ -32,7 +32,7 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
32
32
  formProps
33
33
  } = props;
34
34
 
35
- const ResolvedDetailView = useComponentOverride("Entity.DetailView", EntityDetailView);
35
+ const ResolvedDetailView = useComponentOverride("DetailView", DetailViewBinding);
36
36
 
37
37
  const {
38
38
  blocked,
@@ -43,7 +43,7 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
43
43
 
44
44
  const navigate = useNavigate();
45
45
 
46
- const sideEntityController = useSideEntityController();
46
+ const sidePanelController = useSidePanel();
47
47
  const collectionRegistryController = useCollectionRegistryController();
48
48
  const sideDialogsController = useSideDialogContext();
49
49
  const urlController = useUrlController();
@@ -63,7 +63,7 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
63
63
  }
64
64
  setShowEditInPanel(false);
65
65
  if (params.status !== "existing") {
66
- sideEntityController.replace({
66
+ sidePanelController.replace({
67
67
  path: params.path,
68
68
  entityId: params.entityId,
69
69
  selectedTab: params.selectedTab,
@@ -102,7 +102,7 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
102
102
  // defaultSelectedView, update the panel width and URL to match.
103
103
  // This handles cases where defaultSelectedView is set via the collection
104
104
  // editor / Studio and is not available on the collection object the
105
- // caller passed to sideEntityController.open().
105
+ // caller passed to sidePanelController.open().
106
106
  const hasCorrectedDefaultView = useRef(false);
107
107
  useEffect(() => {
108
108
  hasCorrectedDefaultView.current = false;
@@ -119,7 +119,7 @@ entityId }
119
119
  );
120
120
  if (effectiveDefault && effectiveDefault !== "edit") {
121
121
  hasCorrectedDefaultView.current = true;
122
- sideEntityController.replace({
122
+ sidePanelController.replace({
123
123
  path,
124
124
  entityId,
125
125
  selectedTab: effectiveDefault,
@@ -127,7 +127,7 @@ entityId }
127
127
  collection
128
128
  });
129
129
  }
130
- }, [selectedTab, entityId, collection, path, sideEntityController]);
130
+ }, [selectedTab, entityId, collection, path, sidePanelController]);
131
131
 
132
132
  // Note: beforeunload is handled by useUnsavedChangesDialog in SideDialogView,
133
133
  // which listens to the same `blocked` state via SideDialogContext.
@@ -150,7 +150,7 @@ entityId }
150
150
  ? <ResolvedDetailView
151
151
  path={path}
152
152
  layout={collection?.openEntityMode === "dialog" ? "dialog" : "side_panel"}
153
- collection={collection as EntityCollection}
153
+ collection={collection as CollectionConfig}
154
154
  entityId={entityId!}
155
155
  parentCollectionSlugs={parentCollectionSlugs}
156
156
  parentEntityIds={parentEntityIds}
@@ -186,7 +186,7 @@ entityId }
186
186
  return;
187
187
  }
188
188
  if (tabEntityId) {
189
- sideEntityController.replace({
189
+ sidePanelController.replace({
190
190
  path,
191
191
  entityId: tabEntityId,
192
192
  selectedTab,
@@ -196,10 +196,10 @@ entityId }
196
196
  }
197
197
  }}
198
198
  />
199
- : <EntityEditView
199
+ : <EditViewBinding
200
200
  {...props}
201
201
  layout={collection?.openEntityMode === "dialog" ? "dialog" : "side_panel"}
202
- collection={collection as EntityCollection}
202
+ collection={collection as CollectionConfig}
203
203
  parentCollectionSlugs={parentCollectionSlugs} parentEntityIds={parentEntityIds}
204
204
  onValuesModified={onValuesModified}
205
205
  onSaved={onUpdate}
@@ -242,7 +242,7 @@ entityId }
242
242
  return;
243
243
  }
244
244
  if (tabEntityId) {
245
- sideEntityController.replace({
245
+ sidePanelController.replace({
246
246
  path,
247
247
  entityId: tabEntityId,
248
248
  selectedTab,
@@ -1,8 +1,8 @@
1
- import type { SideEntityController } from "@rebasepro/types";
1
+ import type { SidePanelController } from "@rebasepro/types";
2
2
  import React from "react";
3
- import { useBuildSideEntityController } from "../hooks/useBuildSideEntityController";
3
+ import { useBuildSidePanel } from "../hooks/useBuildSidePanel";
4
4
  import { useBuildSideDialogsController } from "../hooks/useBuildSideDialogsController";
5
- import { SideEntityControllerContext } from "../hooks/useSideEntityController";
5
+ import { SidePanelControllerContext } from "../hooks/useSidePanel";
6
6
  import { SideDialogsControllerContext } from "../contexts/SideDialogsControllerContext";
7
7
  import { BreadcrumbsProvider } from "../contexts/BreacrumbsContext";
8
8
  import { useBreadcrumbsController } from "../hooks/useBreadcrumbsController";
@@ -11,13 +11,13 @@ import { useNavigationStateController } from "../index";
11
11
  import { useAuthController, useBridgeRegistration } from "@rebasepro/core";
12
12
 
13
13
  /**
14
- * Provider that builds the SideEntityController and makes it available
15
- * via the SideEntityControllerContext from @rebasepro/core.
14
+ * Provider that builds the SidePanelController and makes it available
15
+ * via the SidePanelControllerContext from @rebasepro/core.
16
16
  *
17
- * After the CMS extraction refactor, `useBuildSideEntityController` lives
17
+ * After the CMS extraction refactor, `useBuildSidePanel` lives
18
18
  * in the CMS package while the context it feeds into lives in core.
19
19
  * This provider bridges the two: place it inside the `<Rebase>` tree and
20
- * above any component that calls `useSideEntityController()`.
20
+ * above any component that calls `useSidePanel()`.
21
21
  *
22
22
  * Also auto-registers the side entity controller and breadcrumbs into the
23
23
  * self-assembling Studio bridge (when a StudioBridgeRegistryProvider is
@@ -27,25 +27,25 @@ import { useAuthController, useBridgeRegistration } from "@rebasepro/core";
27
27
  * ```tsx
28
28
  * <Rebase ...>
29
29
  * {({ loading }) => (
30
- * <SideEntityProvider>
30
+ * <SidePanelProvider>
31
31
  * <RebaseRoutes>
32
32
  * ...
33
33
  * </RebaseRoutes>
34
- * </SideEntityProvider>
34
+ * </SidePanelProvider>
35
35
  * )}
36
36
  * </Rebase>
37
37
  * ```
38
38
  *
39
39
  * @group Components
40
40
  */
41
- export function SideEntityProvider({ children }: { children: React.ReactNode }) {
41
+ export function SidePanelProvider({ children }: { children: React.ReactNode }) {
42
42
  const collectionRegistryController = useCollectionRegistryController();
43
43
  const urlController = useUrlController();
44
44
  const navigationStateController = useNavigationStateController();
45
45
  const sideDialogsController = useBuildSideDialogsController();
46
46
  const authController = useAuthController();
47
47
 
48
- const sideEntityController = useBuildSideEntityController(
48
+ const sidePanelController = useBuildSidePanel(
49
49
  collectionRegistryController,
50
50
  urlController,
51
51
  navigationStateController,
@@ -56,10 +56,10 @@ export function SideEntityProvider({ children }: { children: React.ReactNode })
56
56
  return (
57
57
  <BreadcrumbsProvider>
58
58
  <SideDialogsControllerContext.Provider value={sideDialogsController}>
59
- <SideEntityControllerContext.Provider value={sideEntityController}>
60
- <BridgeAutoRegistrar sideEntityController={sideEntityController}/>
59
+ <SidePanelControllerContext.Provider value={sidePanelController}>
60
+ <BridgeAutoRegistrar sidePanelController={sidePanelController}/>
61
61
  {children}
62
- </SideEntityControllerContext.Provider>
62
+ </SidePanelControllerContext.Provider>
63
63
  </SideDialogsControllerContext.Provider>
64
64
  </BreadcrumbsProvider>
65
65
  );
@@ -69,9 +69,9 @@ export function SideEntityProvider({ children }: { children: React.ReactNode })
69
69
  * Internal component that auto-registers side entity and breadcrumbs
70
70
  * into the Studio bridge. Must be a child of BreadcrumbsProvider.
71
71
  */
72
- function BridgeAutoRegistrar({ sideEntityController }: { sideEntityController: SideEntityController }) {
72
+ function BridgeAutoRegistrar({ sidePanelController }: { sidePanelController: SidePanelController }) {
73
73
  const breadcrumbs = useBreadcrumbsController();
74
- useBridgeRegistration("sideEntityController", sideEntityController);
74
+ useBridgeRegistration("sidePanelController", sidePanelController);
75
75
  useBridgeRegistration("breadcrumbs", breadcrumbs);
76
76
  return null;
77
77
  }
@@ -1,14 +1,19 @@
1
1
  import { CopyIcon, iconSize, KeyRoundIcon, PencilIcon, Trash2Icon } from "@rebasepro/ui";
2
2
  import type { EntityAction, User, UserCreationResult } from "@rebasepro/types";
3
- import { ConfirmationDialog, useSnackbarController, useTranslation, useRebaseClient, useAuthController } from "@rebasepro/core";
3
+ import {
4
+ ConfirmationDialog,
5
+ useAuthController,
6
+ useRebaseClient,
7
+ useSnackbarController,
8
+ useTranslation
9
+ } from "@rebasepro/core";
4
10
  import { DeleteEntityDialog } from "../DeleteEntityDialog";
5
- import { addRecentId } from "../EntityCollectionView/utils";
11
+ import { addRecentId } from "../CollectionViewBinding/utils";
6
12
  import { navigateToEntity } from "../../util/navigation_utils";
7
13
  import { resolveDefaultSelectedView } from "@rebasepro/common";
8
14
  import { CreationResultDialog } from "../admin/CreationResultDialog";
9
15
  import React, { useState } from "react";
10
16
 
11
-
12
17
  export const editEntityAction: EntityAction = {
13
18
  icon: <PencilIcon size={iconSize.smallest}/>,
14
19
  key: "edit",
@@ -20,7 +25,7 @@ export const editEntityAction: EntityAction = {
20
25
  collection,
21
26
  path,
22
27
  context,
23
- sideEntityController,
28
+ sidePanelController,
24
29
  highlightEntity,
25
30
  unhighlightEntity,
26
31
  openEntityMode
@@ -30,8 +35,8 @@ export const editEntityAction: EntityAction = {
30
35
  throw new Error("INTERNAL: editEntityAction: Entity is undefined");
31
36
  }
32
37
 
33
- if (!sideEntityController) {
34
- throw new Error("INTERNAL: editEntityAction: sideEntityController is undefined");
38
+ if (!sidePanelController) {
39
+ throw new Error("INTERNAL: editEntityAction: sidePanelController is undefined");
35
40
  }
36
41
 
37
42
  highlightEntity?.(entity);
@@ -55,14 +60,17 @@ export const editEntityAction: EntityAction = {
55
60
  entityId: entity.id
56
61
  }
57
62
  );
63
+ if (!context?.urlController) {
64
+ throw new Error("INTERNAL: editEntityAction: urlController is undefined");
65
+ }
58
66
  navigateToEntity({
59
67
  openEntityMode,
60
68
  collection,
61
69
  entityId: entity.id,
62
70
  path: newFullIdPath,
63
- sideEntityController,
71
+ sidePanelController,
64
72
  onClose: () => unhighlightEntity?.(entity),
65
- navigation: context?.urlController!,
73
+ navigation: context.urlController,
66
74
  selectedTab: defaultSelectedView
67
75
  });
68
76
 
@@ -80,7 +88,7 @@ export const copyEntityAction: EntityAction = {
80
88
  collection,
81
89
  context,
82
90
  path,
83
- sideEntityController,
91
+ sidePanelController,
84
92
  highlightEntity,
85
93
  unhighlightEntity,
86
94
  openEntityMode
@@ -88,8 +96,8 @@ export const copyEntityAction: EntityAction = {
88
96
  if (!entity) {
89
97
  throw new Error("INTERNAL: copyEntityAction: Entity is undefined");
90
98
  }
91
- if (!sideEntityController) {
92
- throw new Error("INTERNAL: copyEntityAction: sideEntityController is undefined");
99
+ if (!sidePanelController) {
100
+ throw new Error("INTERNAL: copyEntityAction: sidePanelController is undefined");
93
101
  }
94
102
  highlightEntity?.(entity);
95
103
  context?.analyticsController?.onAnalyticsEvent?.("copy_entity_click", {
@@ -98,15 +106,18 @@ export const copyEntityAction: EntityAction = {
98
106
  });
99
107
 
100
108
  const usedPath = path ?? collection?.slug ?? entity.path;
109
+ if (!context?.urlController) {
110
+ throw new Error("INTERNAL: copyEntityAction: urlController is undefined");
111
+ }
101
112
  navigateToEntity({
102
113
  openEntityMode,
103
114
  collection,
104
115
  entityId: entity.id,
105
116
  path: usedPath,
106
117
  copy: true,
107
- sideEntityController,
118
+ sidePanelController,
108
119
  onClose: () => unhighlightEntity?.(entity),
109
- navigation: context?.urlController!
120
+ navigation: context.urlController
110
121
  });
111
122
 
112
123
  return Promise.resolve(undefined);
@@ -9,7 +9,6 @@ import { KeyValueFieldBinding } from "../form/field_bindings/KeyValueFieldBindin
9
9
  import { MapFieldBinding } from "../form/field_bindings/MapFieldBinding";
10
10
  import { MarkdownEditorFieldBinding } from "../form/field_bindings/MarkdownEditorFieldBinding";
11
11
  import { MultiSelectFieldBinding } from "../form/field_bindings/MultiSelectFieldBinding";
12
- import { ReferenceAsStringFieldBinding } from "../form/field_bindings/ReferenceAsStringFieldBinding";
13
12
  import { ReferenceFieldBinding } from "../form/field_bindings/ReferenceFieldBinding";
14
13
  import { RepeatFieldBinding } from "../form/field_bindings/RepeatFieldBinding";
15
14
  import { SelectFieldBinding } from "../form/field_bindings/SelectFieldBinding";
@@ -220,17 +219,6 @@ Field: TextFieldBinding }
220
219
  ui: { Field: StorageUploadFieldBinding }
221
220
  }
222
221
  },
223
- reference_as_string: {
224
- key: "reference_as_string",
225
- name: "Reference (as string)",
226
- description: "The value refers to a different collection (it is saved as a string)",
227
- Icon: LinkIcon,
228
- color: "#154fb3",
229
- property: {
230
- type: "string",
231
- ui: { Field: ReferenceAsStringFieldBinding }
232
- }
233
- },
234
222
  reference: {
235
223
  key: "reference",
236
224
  name: "Reference",
@@ -393,8 +381,6 @@ export function getDefaultFieldId(property: Property) {
393
381
  return "select";
394
382
  } else if (property.userSelect) {
395
383
  return "user_select";
396
- } else if ((property as StringProperty).reference) {
397
- return "reference_as_string";
398
384
  } else {
399
385
  return "text_field";
400
386
  }
@@ -1,4 +1,4 @@
1
- import type { EntityCollection } from "@rebasepro/types";
1
+ import type { CollectionConfig } from "@rebasepro/types";
2
2
  import type { Property } from "@rebasepro/types";
3
3
  import * as React from "react";
4
4
 
@@ -39,7 +39,7 @@ function deepEqual(a: unknown, b: unknown): boolean {
39
39
  export type EntityHistoryEntryProps = {
40
40
  size: PreviewSize;
41
41
  actions?: React.ReactNode;
42
- collection?: EntityCollection;
42
+ collection?: CollectionConfig;
43
43
  hover?: boolean;
44
44
  entry: HistoryEntryData;
45
45
  onClick?: (e: React.SyntheticEvent) => void;
@@ -7,7 +7,7 @@ import { EntityHistoryEntry } from "./EntityHistoryEntry";
7
7
  import { useSnackbarController, useAuthController } from "@rebasepro/core";
8
8
  import { ConfirmationDialog } from "@rebasepro/core";
9
9
  import { useState } from "react";
10
- import { useEntityHistory } from "../../index";
10
+ import { useHistory } from "../../index";
11
11
 
12
12
  /**
13
13
  * Entity history tab view. Shows a paginated list of entity revisions
@@ -32,7 +32,7 @@ export function EntityHistoryView<M extends Record<string, unknown>>({
32
32
  hasMore,
33
33
  loadMore,
34
34
  revert
35
- } = useEntityHistory({
35
+ } = useHistory({
36
36
  slug,
37
37
  entityId,
38
38
  enabled: !!entityId,
@@ -136,7 +136,7 @@ export function EntityHistoryView<M extends Record<string, unknown>>({
136
136
  No history available
137
137
  </Label>
138
138
  <Typography variant={"caption"} className={"ml-4"}>
139
- When you save an entity, a new version is created and stored in the history.
139
+ When you save a entity, a new version is created and stored in the history.
140
140
  </Typography>
141
141
  </>}
142
142
 
@@ -1,4 +1,4 @@
1
- import type { EntityCollection } from "@rebasepro/types";
1
+ import type { CollectionConfig } from "@rebasepro/types";
2
2
  import React, { useEffect, useState, useCallback } from "react";
3
3
  ;
4
4
  import { useApiConfig } from "@rebasepro/core";
@@ -31,7 +31,7 @@ export function LastEditedByIndicator({
31
31
  }: {
32
32
  path: string;
33
33
  entityId: string;
34
- collection: EntityCollection;
34
+ collection: CollectionConfig;
35
35
  }) {
36
36
  const apiConfig = useApiConfig();
37
37
  const authController = useAuthController();
@@ -1,36 +1,37 @@
1
- export type { EntityViewProps } from "./EntityView";
2
- export { EntityView } from "./EntityView";
1
+ export type { EntityViewBindingProps } from "./EntityViewBinding";
2
+ export { EntityViewBinding } from "./EntityViewBinding";
3
3
 
4
- export * from "./EntityDetailView";
4
+ export * from "./DetailViewBinding";
5
5
 
6
- export type { EntitySelectionProps } from "./ReferenceTable/EntitySelectionTable";
7
- export { EntitySelectionTable } from "./ReferenceTable/EntitySelectionTable";
6
+ export type { SelectionProps } from "./ReferenceTable/SelectionTableBinding";
7
+ export { SelectionTableBinding } from "./ReferenceTable/SelectionTableBinding";
8
8
 
9
9
  export * from "./SelectableTable/SelectableTable";
10
10
  export * from "./SelectableTable/SelectableTableContext";
11
- export * from "./EntityCollectionView/EntityCollectionView";
12
- export * from "./EntityCollectionView/EntityCollectionViewActions";
13
- export * from "./EntityCollectionView/EntityCollectionCardView";
14
- export * from "./EntityCollectionView/EntityCard";
15
- export * from "./EntityCollectionView/useSelectionController";
11
+ export * from "./SelectableTable/filters/FilterFieldBinding";
12
+ export * from "./CollectionViewBinding/CollectionViewBinding";
13
+ export * from "./CollectionViewBinding/CollectionViewActions";
14
+ export * from "./CollectionViewBinding/CollectionCardViewBinding";
15
+ export * from "./CollectionViewBinding/EntityCardBinding";
16
+ export * from "./CollectionViewBinding/useSelectionController";
16
17
 
17
18
  export * from "./PropertyConfigBadge";
18
19
  export * from "./PropertyIdCopyTooltip";
19
20
 
20
- export * from "./EntityCollectionTable";
21
+ export * from "./CollectionTableBinding";
21
22
  // VirtualTable is exported from @rebasepro/ui
22
23
  export * from "./ArrayContainer";
23
24
  export * from "./ReferenceWidget";
24
25
  export * from "./SearchIconsView";
25
26
  export * from "./FieldCaption";
26
- export * from "./EntityPreview";
27
+ export * from "./EntityPreviewBinding";
27
28
 
28
- // history is lazy-loaded by EntityEditView and resolutions.ts
29
+ // history is lazy-loaded by EditViewBinding and resolutions.ts
29
30
  // export * from "./history";
30
31
  export * from "./common";
31
32
  export * from "./field_configs";
32
33
 
33
- export * from "./SideEntityProvider";
34
+ export * from "./SidePanelProvider";
34
35
  export * from "./AdminModeSyncer";
35
36
  // Admin views: only CreationResultDialog remains (used by resetPasswordAction)
36
37
  export * from "./app/AppBar";
@@ -0,0 +1,5 @@
1
+ import type { SidePanelController } from "@rebasepro/types";
2
+ import React from "react";
3
+ ;
4
+
5
+ export const SidePanelControllerContext = React.createContext<SidePanelController>({} as SidePanelController);
@@ -8,7 +8,7 @@ import {
8
8
  useTranslation
9
9
  } from "@rebasepro/core";
10
10
  import { useCMSContext } from "../../hooks";
11
- import { CollectionActionsProps, Entity, EntityCollection, ExportConfig, RebaseContext, User } from "@rebasepro/types";
11
+ import { CollectionActionsProps, Entity, CollectionConfig, ExportConfig, RebaseContext, User } from "@rebasepro/types";
12
12
  import { getDefaultValuesFor } from "@rebasepro/common";
13
13
  import {
14
14
  Alert,
@@ -38,8 +38,8 @@ export function ExportCollectionAction<M extends Record<string, unknown>, USER e
38
38
  onAnalyticsEvent,
39
39
  exportAllowed,
40
40
  notAllowedView
41
- }: CollectionActionsProps<M, USER, EntityCollection<M>> & {
42
- exportAllowed?: (props: { collectionEntitiesCount: number, path: string, collection: EntityCollection }) => boolean;
41
+ }: CollectionActionsProps<M, USER, CollectionConfig<M>> & {
42
+ exportAllowed?: (props: { collectionEntitiesCount: number, path: string, collection: CollectionConfig }) => boolean;
43
43
  notAllowedView?: React.ReactNode;
44
44
  onAnalyticsEvent?: (event: string, params?: any) => void;
45
45
  }) {
@@ -115,7 +115,7 @@ export function ExportCollectionAction<M extends Record<string, unknown>, USER e
115
115
  return [...resolvedExportColumnsValues, ...resolvedColumnsValues];
116
116
  }, [exportConfig?.additionalFields]);
117
117
 
118
- const doDownload = useCallback(async (collection: EntityCollection<M>,
118
+ const doDownload = useCallback(async (collection: CollectionConfig<M>,
119
119
  exportConfig: ExportConfig<any> | undefined) => {
120
120
 
121
121
  onAnalyticsEvent?.("export_collection", {
@@ -1,11 +1,11 @@
1
1
  import { useData } from "@rebasepro/core";
2
- import { Entity, EntityCollection } from "@rebasepro/types";
2
+ import { Entity, CollectionConfig } from "@rebasepro/types";
3
3
  import { RebaseData } from "@rebasepro/types";
4
4
  import { Button, CenteredView, CircularProgress, Typography } from "@rebasepro/ui";
5
5
  import { useEffect, useRef, useState } from "react";
6
6
  import { ImportConfig } from "../types";
7
7
 
8
- export function ImportSaveInProgress<C extends EntityCollection<any>>
8
+ export function ImportSaveInProgress<C extends CollectionConfig<any>>
9
9
  ({
10
10
  path,
11
11
  importConfig,
@@ -95,7 +95,7 @@ export function ImportSaveInProgress<C extends EntityCollection<any>>
95
95
  }
96
96
 
97
97
  function saveDataBatch(dataClient: RebaseData,
98
- collection: EntityCollection,
98
+ collection: CollectionConfig,
99
99
  path: string,
100
100
  data: Partial<Entity<any>>[],
101
101
  offset = 0,
@@ -5,13 +5,13 @@ import {
5
5
  useSnackbarController
6
6
  } from "@rebasepro/core";
7
7
  import { getPropertiesWithPropertiesOrder, getPropertyInPath } from "../../util";
8
- import { CollectionActionsProps, Properties, Property, User, EntityCollection } from "@rebasepro/types";
8
+ import { CollectionActionsProps, Properties, Property, User, CollectionConfig } from "@rebasepro/types";
9
9
  import {
10
10
  getFieldConfig,
11
11
  PropertyConfigBadge,
12
12
  useSelectionController
13
13
  } from "../../components";
14
- import { EntityCollectionTable } from "../../components/EntityCollectionTable/EntityCollectionTable";
14
+ import { CollectionTableBinding } from "../../components/CollectionTableBinding/CollectionTableBinding";
15
15
  import { useCollectionRegistryController } from "../../hooks";
16
16
  import {
17
17
  Button,
@@ -176,7 +176,7 @@ export function ImportCollectionAction<M extends Record<string, unknown>, USER e
176
176
 
177
177
  {step === "import_data_saving" && importConfig &&
178
178
  <ImportSaveInProgress importConfig={importConfig}
179
- collection={collection as EntityCollection}
179
+ collection={collection as CollectionConfig}
180
180
  path={path}
181
181
  onImportSuccess={(importedCollection) => {
182
182
  handleClose();
@@ -396,7 +396,7 @@ export function ImportDataPreview<M extends Record<string, unknown>>({
396
396
 
397
397
  const selectionController = useSelectionController();
398
398
 
399
- return <EntityCollectionTable
399
+ return <CollectionTableBinding
400
400
  title={<div>
401
401
  <Typography variant={"subtitle2"}>Imported data preview</Typography>
402
402
  <Typography variant={"caption"}>Entities with the same id will be overwritten</Typography>
@@ -1,5 +1,5 @@
1
1
  import { getPropertyInPath } from "../../util";
2
- import { AuthController, Entity, EntityCollection, EntityReference, CollectionRegistryController, Properties, Property, Vector } from "@rebasepro/types";
2
+ import { AuthController, Entity, CollectionConfig, EntityReference, CollectionRegistryController, Properties, Property, Vector } from "@rebasepro/types";
3
3
  import { isPropertyBuilder } from "@rebasepro/common";
4
4
  import { unflattenObject } from "./file_to_json";
5
5
  import { getIn } from "@rebasepro/formex";
@@ -148,7 +148,7 @@ export function processValueMapping(authController: AuthController, value: any,
148
148
 
149
149
  // If no explicit database was provided in the string, try to get it from the collection
150
150
  if (databaseId === undefined) {
151
- const targetCollection: EntityCollection<any> | undefined = navigation.getCollection(path);
151
+ const targetCollection: CollectionConfig<any> | undefined = navigation.getCollection(path);
152
152
  databaseId = targetCollection?.databaseId;
153
153
  }
154
154
 
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  import React, { useEffect, useState, useRef, useMemo } from "react";
3
3
  import { EditorState, Selection } from "prosemirror-state";
4
- import { cls, defaultBorderMixin, Separator, useInjectStyles, TextareaAutosize } from "@rebasepro/ui";
4
+ import { cls, defaultBorderMixin, Separator, TextareaAutosize, useInjectStyles } from "@rebasepro/ui";
5
5
  import { useTranslation } from "@rebasepro/core";
6
6
  import { EditorBubble, ImageBubble, SlashCommandMenu, TableBubble, type JSONContent } from "./components";
7
7
  import { NodeSelector } from "./selectors/node-selector";
@@ -26,8 +26,7 @@ export interface MarkdownEditorConfig {
26
26
  }
27
27
 
28
28
  export type RichTextEditorTextSize = "sm" | "base" | "lg";
29
- /** @deprecated Use `RichTextEditorTextSize` instead. */
30
- export type RebaseEditorTextSize = RichTextEditorTextSize;
29
+
31
30
 
32
31
  export type RichTextEditorProps = {
33
32
  content?: JSONContent | string,
@@ -43,8 +42,7 @@ export type RichTextEditorProps = {
43
42
  disabled?: boolean;
44
43
  markdownConfig?: MarkdownEditorConfig;
45
44
  };
46
- /** @deprecated Use `RichTextEditorProps` instead. */
47
- export type RebaseEditorProps = RichTextEditorProps;
45
+
48
46
 
49
47
  const proseClasses = {
50
48
  "sm": "prose-sm",
@@ -324,8 +322,7 @@ view }), [state, view])}>
324
322
  </div>
325
323
  );
326
324
  };
327
- /** @deprecated Use `RichTextEditor` instead. */
328
- export const RebaseEditor = RichTextEditor;
325
+
329
326
 
330
327
  const cssStyles = `
331
328
  .ProseMirror {