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