@rebasepro/admin 0.8.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 (316) hide show
  1. package/README.md +20 -20
  2. package/dist/{CollectionEditorDialog-BO_aQ-Z4.js → CollectionEditorDialog-B-7uW3iJ.js} +11 -11
  3. package/dist/CollectionEditorDialog-B-7uW3iJ.js.map +1 -0
  4. package/dist/{PropertyEditView-DKzOpMjR.js → PropertyEditView-7KMTcrqi.js} +78 -70
  5. package/dist/PropertyEditView-7KMTcrqi.js.map +1 -0
  6. package/dist/{RouterCollectionsStudioView-BQTIExjA.js → RouterCollectionsStudioView-epqIbZrJ.js} +4 -4
  7. package/dist/{RouterCollectionsStudioView-BQTIExjA.js.map → RouterCollectionsStudioView-epqIbZrJ.js.map} +1 -1
  8. package/dist/collection_editor/_cms_internals.d.ts +3 -3
  9. package/dist/collection_editor/api/generateCollectionApi.d.ts +4 -4
  10. package/dist/collection_editor/extensibility_types.d.ts +3 -3
  11. package/dist/collection_editor/index.d.ts +2 -2
  12. package/dist/collection_editor/pgColumnToProperty.d.ts +3 -3
  13. package/dist/collection_editor/serializable_types.d.ts +7 -7
  14. package/dist/collection_editor/serializable_utils.d.ts +8 -8
  15. package/dist/collection_editor/types/collection_editor_controller.d.ts +5 -5
  16. package/dist/collection_editor/types/collection_inference.d.ts +2 -2
  17. package/dist/collection_editor/types/config_controller.d.ts +7 -7
  18. package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +2 -2
  19. package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +2 -2
  20. package/dist/collection_editor/ui/KanbanSetupAction.d.ts +2 -2
  21. package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +2 -2
  22. package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +3 -3
  23. package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +2 -2
  24. package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +4 -4
  25. package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +2 -2
  26. package/dist/collection_editor/ui/collection_editor/CollectionJsonImportDialog.d.ts +2 -2
  27. package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +4 -4
  28. package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +2 -2
  29. package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +2 -2
  30. package/dist/collection_editor/ui/collection_editor/EntityActionsEditTab.d.ts +2 -2
  31. package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +2 -2
  32. package/dist/collection_editor/ui/collection_editor/GetCodeDialog.d.ts +2 -2
  33. package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +4 -4
  34. package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +3 -3
  35. package/dist/collection_editor/ui/collection_editor/templates/blog_template.d.ts +2 -2
  36. package/dist/collection_editor/ui/collection_editor/templates/pages_template.d.ts +2 -2
  37. package/dist/collection_editor/ui/collection_editor/templates/products_template.d.ts +2 -2
  38. package/dist/collection_editor/ui/collection_editor/templates/users_template.d.ts +2 -2
  39. package/dist/collection_editor/useLocalCollectionsConfigController.d.ts +2 -2
  40. package/dist/collection_editor/validateCollectionJson.d.ts +2 -2
  41. package/dist/collection_editor_ui.js +4 -4
  42. package/dist/components/CollectionPanel.d.ts +4 -4
  43. package/dist/components/{EntityCollectionTable/EntityCollectionRowActions.d.ts → CollectionTableBinding/CollectionRowActions.d.ts} +3 -3
  44. package/dist/components/CollectionTableBinding/CollectionTableBinding.d.ts +28 -0
  45. package/dist/components/{EntityCollectionTable/EntityCollectionTableProps.d.ts → CollectionTableBinding/CollectionTableBindingProps.d.ts} +1 -1
  46. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.d.ts +2 -2
  47. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.d.ts +2 -2
  48. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.d.ts +2 -2
  49. package/dist/components/CollectionTableBinding/index.d.ts +6 -0
  50. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.d.ts +2 -2
  51. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.d.ts +2 -2
  52. package/dist/components/{EntityCollectionView/EntityBoardCard.d.ts → CollectionViewBinding/BoardCardBinding.d.ts} +8 -8
  53. package/dist/components/{EntityCollectionView/EntityCollectionBoardView.d.ts → CollectionViewBinding/CollectionBoardViewBinding.d.ts} +4 -4
  54. package/dist/components/{EntityCollectionView/EntityCollectionCardView.d.ts → CollectionViewBinding/CollectionCardViewBinding.d.ts} +5 -5
  55. package/dist/components/{EntityCollectionView/EntityCollectionListView.d.ts → CollectionViewBinding/CollectionListViewBinding.d.ts} +4 -4
  56. package/dist/components/{EntityCollectionView/EntityCollectionViewActions.d.ts → CollectionViewBinding/CollectionViewActions.d.ts} +4 -4
  57. package/dist/components/{EntityCollectionView/EntityCollectionView.d.ts → CollectionViewBinding/CollectionViewBinding.d.ts} +4 -4
  58. package/dist/components/{EntityCollectionView/EntityCollectionViewStartActions.d.ts → CollectionViewBinding/CollectionViewStartActions.d.ts} +4 -4
  59. package/dist/components/CollectionViewBinding/EntityCardBinding.d.ts +21 -0
  60. package/dist/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.d.ts +3 -3
  61. package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.d.ts +2 -2
  62. package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.d.ts +2 -2
  63. package/dist/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.d.ts +2 -2
  64. package/dist/components/{EntityCollectionView/useEntityPreviewSlots.d.ts → CollectionViewBinding/usePreviewSlots.d.ts} +5 -5
  65. package/dist/components/DeleteEntityDialog.d.ts +4 -4
  66. package/dist/components/{EntityDetailView.d.ts → DetailViewBinding.d.ts} +5 -5
  67. package/dist/components/EditFormActions.d.ts +3 -0
  68. package/dist/components/{EntityEditView.d.ts → EditViewBinding.d.ts} +9 -9
  69. package/dist/components/{EntityPreview.d.ts → EntityPreviewBinding.d.ts} +13 -13
  70. package/dist/components/EntityViewBinding.d.ts +13 -0
  71. package/dist/components/{EntityJsonPreview.d.ts → JsonPreviewBinding.d.ts} +1 -1
  72. package/dist/components/RebaseCMS.d.ts +1 -1
  73. package/dist/components/RebaseNavigation.d.ts +1 -1
  74. package/dist/components/ReferenceTable/{EntitySelectionTable.d.ts → SelectionTableBinding.d.ts} +5 -5
  75. package/dist/components/SelectableTable/SelectableTable.d.ts +5 -5
  76. package/dist/components/SelectableTable/SelectableTableContext.d.ts +3 -3
  77. package/dist/components/SelectableTable/SelectionStore.d.ts +2 -2
  78. package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +6 -1
  79. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +7 -1
  80. package/dist/components/SelectableTable/filters/FilterFieldBinding.d.ts +40 -0
  81. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +7 -1
  82. package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +7 -1
  83. package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +7 -1
  84. package/dist/components/SideDialogs.d.ts +1 -1
  85. package/dist/components/SidePanelBinding.d.ts +11 -0
  86. package/dist/components/{SideEntityProvider.d.ts → SidePanelProvider.d.ts} +7 -7
  87. package/dist/components/history/EntityHistoryEntry.d.ts +2 -2
  88. package/dist/components/history/LastEditedByIndicator.d.ts +2 -2
  89. package/dist/components/index.d.ts +14 -13
  90. package/dist/contexts/SidePanelControllerContext.d.ts +3 -0
  91. package/dist/data_export/export/ExportCollectionAction.d.ts +3 -3
  92. package/dist/data_import/components/ImportSaveInProgress.d.ts +2 -2
  93. package/dist/form/EntityForm.d.ts +1 -1
  94. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  95. package/dist/form/form_utils.d.ts +2 -2
  96. package/dist/{history-B3cqBzEV.js → history-7X5bON_n.js} +4 -4
  97. package/dist/history-7X5bON_n.js.map +1 -0
  98. package/dist/hooks/index.d.ts +4 -4
  99. package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +2 -2
  100. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +5 -5
  101. package/dist/hooks/navigation/useNavigationResolution.d.ts +4 -4
  102. package/dist/hooks/navigation/useResolvedCollections.d.ts +7 -7
  103. package/dist/hooks/navigation/useTopLevelNavigation.d.ts +2 -2
  104. package/dist/hooks/navigation/utils.d.ts +5 -5
  105. package/dist/hooks/useBuildSidePanel.d.ts +6 -0
  106. package/dist/hooks/useCMSContext.d.ts +2 -2
  107. package/dist/hooks/{useEntityHistory.d.ts → useHistory.d.ts} +1 -1
  108. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  109. package/dist/hooks/{useEntitySelectionDialog.d.ts → useSelectionDialog.d.ts} +2 -2
  110. package/dist/hooks/useSideDialogsController.d.ts +1 -1
  111. package/dist/hooks/useSidePanel.d.ts +11 -0
  112. package/dist/index.d.ts +2 -2
  113. package/dist/index.js +2 -2
  114. package/dist/{src-cxV1ODRG.js → src-sUZfe29F.js} +737 -647
  115. package/dist/src-sUZfe29F.js.map +1 -0
  116. package/dist/types/components/EntityFormActionsProps.d.ts +2 -2
  117. package/dist/types/components/EntityFormProps.d.ts +3 -3
  118. package/dist/types/fields.d.ts +2 -2
  119. package/dist/util/dataControllerAdapter.d.ts +2 -5
  120. package/dist/util/navigation_utils.d.ts +6 -6
  121. package/dist/util/previews.d.ts +3 -3
  122. package/dist/util/property_utils.d.ts +2 -2
  123. package/dist/util/{entity_view_constants.d.ts → view_constants.d.ts} +1 -1
  124. package/package.json +8 -8
  125. package/src/collection_editor/ConfigControllerProvider.tsx +10 -10
  126. package/src/collection_editor/_cms_internals.ts +3 -3
  127. package/src/collection_editor/api/generateCollectionApi.ts +4 -4
  128. package/src/collection_editor/extensibility_types.ts +3 -3
  129. package/src/collection_editor/index.ts +3 -3
  130. package/src/collection_editor/pgColumnToProperty.ts +3 -3
  131. package/src/collection_editor/serializable_types.ts +8 -8
  132. package/src/collection_editor/serializable_utils.ts +17 -17
  133. package/src/collection_editor/types/collection_editor_controller.tsx +5 -5
  134. package/src/collection_editor/types/collection_inference.ts +2 -2
  135. package/src/collection_editor/types/config_controller.tsx +7 -7
  136. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +2 -2
  137. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +2 -2
  138. package/src/collection_editor/ui/EditorCollectionAction.tsx +2 -2
  139. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +2 -2
  140. package/src/collection_editor/ui/EditorEntityAction.tsx +2 -2
  141. package/src/collection_editor/ui/KanbanSetupAction.tsx +2 -2
  142. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +2 -2
  143. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +5 -5
  144. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +3 -3
  145. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +26 -26
  146. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +3 -3
  147. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +2 -2
  148. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +8 -8
  149. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +2 -2
  150. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +2 -2
  151. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +2 -2
  152. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +2 -2
  153. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +2 -2
  154. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +3 -3
  155. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +5 -5
  156. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +4 -4
  157. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +2 -2
  158. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +7 -7
  159. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +45 -36
  160. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +1 -1
  161. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +5 -5
  162. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +3 -3
  163. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +2 -2
  164. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +2 -2
  165. package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +2 -2
  166. package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +2 -2
  167. package/src/collection_editor/ui/collection_editor/templates/products_template.ts +2 -2
  168. package/src/collection_editor/ui/collection_editor/templates/users_template.ts +2 -2
  169. package/src/collection_editor/useJsonCollectionsConfigController.tsx +13 -13
  170. package/src/collection_editor/useLocalCollectionsConfigController.tsx +4 -4
  171. package/src/collection_editor/validateCollectionJson.ts +3 -3
  172. package/src/components/CollectionPanel.tsx +14 -17
  173. package/src/components/{EntityCollectionTable/EntityCollectionRowActions.tsx → CollectionTableBinding/CollectionRowActions.tsx} +6 -6
  174. package/src/components/{EntityCollectionTable/EntityCollectionTable.tsx → CollectionTableBinding/CollectionTableBinding.tsx} +10 -10
  175. package/src/components/{EntityCollectionTable/EntityCollectionTableProps.tsx → CollectionTableBinding/CollectionTableBindingProps.tsx} +1 -1
  176. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.tsx +5 -5
  177. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.tsx +10 -10
  178. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.tsx +5 -5
  179. package/src/components/CollectionTableBinding/index.tsx +14 -0
  180. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.tsx +2 -2
  181. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.tsx +2 -2
  182. package/src/components/{EntityCollectionView/EntityBoardCard.tsx → CollectionViewBinding/BoardCardBinding.tsx} +15 -15
  183. package/src/components/{EntityCollectionView/EntityCollectionBoardView.tsx → CollectionViewBinding/CollectionBoardViewBinding.tsx} +14 -13
  184. package/src/components/{EntityCollectionView/EntityCollectionCardView.tsx → CollectionViewBinding/CollectionCardViewBinding.tsx} +8 -8
  185. package/src/components/{EntityCollectionView/EntityCollectionListView.tsx → CollectionViewBinding/CollectionListViewBinding.tsx} +12 -12
  186. package/src/components/{EntityCollectionView/EntityCollectionViewActions.tsx → CollectionViewBinding/CollectionViewActions.tsx} +5 -5
  187. package/src/components/{EntityCollectionView/EntityCollectionView.tsx → CollectionViewBinding/CollectionViewBinding.tsx} +106 -91
  188. package/src/components/{EntityCollectionView/EntityCollectionViewStartActions.tsx → CollectionViewBinding/CollectionViewStartActions.tsx} +5 -5
  189. package/src/components/{EntityCollectionView/EntityCard.tsx → CollectionViewBinding/EntityCardBinding.tsx} +9 -9
  190. package/src/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.tsx +31 -72
  191. package/src/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.tsx +9 -9
  192. package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.ts +5 -5
  193. package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.ts +4 -4
  194. package/src/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.tsx +16 -10
  195. package/src/components/{EntityCollectionView/useEntityPreviewSlots.ts → CollectionViewBinding/usePreviewSlots.ts} +8 -8
  196. package/src/components/DeleteEntityDialog.tsx +6 -6
  197. package/src/components/{EntityDetailView.tsx → DetailViewBinding.tsx} +26 -29
  198. package/src/components/{EntityEditViewFormActions.tsx → EditFormActions.tsx} +12 -12
  199. package/src/components/{EntityEditView.tsx → EditViewBinding.tsx} +29 -32
  200. package/src/components/{EntityPreview.tsx → EntityPreviewBinding.tsx} +27 -27
  201. package/src/components/{EntityView.tsx → EntityViewBinding.tsx} +5 -5
  202. package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
  203. package/src/components/{EntityJsonPreview.tsx → JsonPreviewBinding.tsx} +1 -1
  204. package/src/components/RebaseCMS.tsx +4 -3
  205. package/src/components/RebaseNavigation.tsx +17 -8
  206. package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx} +22 -19
  207. package/src/components/ReferenceWidget.tsx +4 -4
  208. package/src/components/RelationSelector.tsx +14 -12
  209. package/src/components/SelectableTable/SelectableTable.tsx +34 -87
  210. package/src/components/SelectableTable/SelectableTableContext.tsx +3 -3
  211. package/src/components/SelectableTable/SelectionStore.ts +4 -4
  212. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +9 -1
  213. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +33 -12
  214. package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +187 -0
  215. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +21 -7
  216. package/src/components/SelectableTable/filters/RelationFilterField.tsx +17 -3
  217. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +66 -12
  218. package/src/components/SideDialogs.tsx +3 -3
  219. package/src/components/{EntitySidePanel.tsx → SidePanelBinding.tsx} +19 -19
  220. package/src/components/{SideEntityProvider.tsx → SidePanelProvider.tsx} +16 -16
  221. package/src/components/common/default_entity_actions.tsx +9 -9
  222. package/src/components/history/EntityHistoryEntry.tsx +2 -2
  223. package/src/components/history/EntityHistoryView.tsx +3 -3
  224. package/src/components/history/LastEditedByIndicator.tsx +2 -2
  225. package/src/components/index.ts +15 -14
  226. package/src/contexts/SidePanelControllerContext.tsx +5 -0
  227. package/src/data_export/export/ExportCollectionAction.tsx +4 -4
  228. package/src/data_import/components/ImportSaveInProgress.tsx +3 -3
  229. package/src/data_import/import/ImportCollectionAction.tsx +4 -4
  230. package/src/data_import/utils/data.ts +2 -2
  231. package/src/form/EntityForm.tsx +2 -2
  232. package/src/form/EntityFormActions.tsx +3 -3
  233. package/src/form/EntityFormBinding.tsx +6 -6
  234. package/src/form/PropertyFieldBinding.tsx +4 -4
  235. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -4
  236. package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -19
  237. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +2 -2
  238. package/src/form/field_bindings/ReferenceFieldBinding.tsx +5 -5
  239. package/src/form/field_bindings/RelationFieldBinding.tsx +3 -3
  240. package/src/form/form_utils.ts +2 -2
  241. package/src/hooks/index.ts +4 -4
  242. package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +2 -2
  243. package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +11 -11
  244. package/src/hooks/navigation/useBuildNavigationStateController.tsx +5 -5
  245. package/src/hooks/navigation/useNavigationResolution.ts +10 -10
  246. package/src/hooks/navigation/useResolvedCollections.ts +8 -8
  247. package/src/hooks/navigation/useTopLevelNavigation.ts +2 -2
  248. package/src/hooks/navigation/utils.ts +5 -5
  249. package/src/hooks/{useBuildSideEntityController.tsx → useBuildSidePanel.tsx} +28 -28
  250. package/src/hooks/useCMSContext.tsx +6 -6
  251. package/src/hooks/{useEntityHistory.ts → useHistory.ts} +1 -1
  252. package/src/hooks/useResolvedNavigationFrom.tsx +8 -5
  253. package/src/hooks/{useEntitySelectionDialog.tsx → useSelectionDialog.tsx} +7 -7
  254. package/src/hooks/useSideDialogsController.tsx +1 -1
  255. package/src/hooks/useSidePanel.tsx +13 -0
  256. package/src/index.ts +12 -12
  257. package/src/preview/components/ReferencePreview.tsx +10 -10
  258. package/src/preview/components/RelationPreview.tsx +13 -12
  259. package/src/routes/RebaseRoute.tsx +10 -10
  260. package/src/types/components/EntityFormActionsProps.tsx +2 -2
  261. package/src/types/components/EntityFormProps.tsx +3 -3
  262. package/src/types/fields.tsx +2 -2
  263. package/src/util/dataControllerAdapter.ts +9 -15
  264. package/src/util/navigation_utils.ts +7 -7
  265. package/src/util/previews.ts +3 -3
  266. package/src/util/property_utils.tsx +2 -2
  267. package/src/util/{entity_view_constants.ts → view_constants.ts} +1 -1
  268. package/dist/CollectionEditorDialog-BO_aQ-Z4.js.map +0 -1
  269. package/dist/PropertyEditView-DKzOpMjR.js.map +0 -1
  270. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -28
  271. package/dist/components/EntityCollectionTable/index.d.ts +0 -6
  272. package/dist/components/EntityCollectionView/EntityCard.d.ts +0 -21
  273. package/dist/components/EntityEditViewFormActions.d.ts +0 -3
  274. package/dist/components/EntitySidePanel.d.ts +0 -11
  275. package/dist/components/EntityView.d.ts +0 -13
  276. package/dist/contexts/SideEntityControllerContext.d.ts +0 -3
  277. package/dist/history-B3cqBzEV.js.map +0 -1
  278. package/dist/hooks/useBuildSideEntityController.d.ts +0 -6
  279. package/dist/hooks/useSideEntityController.d.ts +0 -11
  280. package/dist/src-cxV1ODRG.js.map +0 -1
  281. package/src/components/EntityCollectionTable/index.tsx +0 -14
  282. package/src/contexts/SideEntityControllerContext.tsx +0 -5
  283. package/src/hooks/useSideEntityController.tsx +0 -13
  284. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.d.ts +0 -0
  285. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.d.ts +0 -0
  286. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.d.ts +0 -0
  287. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.d.ts +0 -0
  288. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.d.ts +0 -0
  289. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.d.ts +0 -0
  290. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.d.ts +0 -0
  291. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.d.ts +0 -0
  292. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.d.ts +0 -0
  293. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.d.ts +0 -0
  294. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.d.ts +0 -0
  295. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.d.ts +0 -0
  296. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.d.ts +0 -0
  297. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.d.ts +0 -0
  298. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.d.ts +0 -0
  299. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.d.ts +0 -0
  300. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/utils.d.ts +0 -0
  301. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.tsx +0 -0
  302. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.tsx +0 -0
  303. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.tsx +0 -0
  304. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.tsx +0 -0
  305. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.tsx +0 -0
  306. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.tsx +0 -0
  307. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.tsx +0 -0
  308. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.tsx +0 -0
  309. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.tsx +0 -0
  310. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.tsx +0 -0
  311. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.tsx +0 -0
  312. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.tsx +0 -0
  313. /package/src/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.tsx +0 -0
  314. /package/src/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.tsx +0 -0
  315. /package/src/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.tsx +0 -0
  316. /package/src/components/{EntityCollectionView → CollectionViewBinding}/utils.ts +0 -0
@@ -1,4 +1,4 @@
1
- import type { EntityCollection, EntityCustomView } from "@rebasepro/types";
1
+ import type { CollectionConfig, EntityCustomView } from "@rebasepro/types";
2
2
  import { Entity, RebaseContext, User } from "@rebasepro/types";
3
3
  import { useEffect, useState, useMemo } from "react";
4
4
  import { getNavigationEntriesFromPath } from "@rebasepro/common";
@@ -22,7 +22,7 @@ export interface ResolvedNavigationEntity<M extends Record<string, unknown>> {
22
22
  entity: Entity<M>;
23
23
  entityId: string | number;
24
24
  path: string;
25
- parentCollection: EntityCollection<M>;
25
+ parentCollection: CollectionConfig<M>;
26
26
  }
27
27
 
28
28
  /**
@@ -32,7 +32,7 @@ export interface ResolvedNavigationEntity<M extends Record<string, unknown>> {
32
32
  export interface ResolvedNavigationCollection<M extends Record<string, unknown>> {
33
33
  type: "collection";
34
34
  path: string;
35
- collection: EntityCollection<M>;
35
+ collection: CollectionConfig<M>;
36
36
  }
37
37
 
38
38
  /**
@@ -85,9 +85,12 @@ export function resolveNavigationFrom<M extends Record<string, unknown>, USER ex
85
85
  if (!collection) {
86
86
  throw Error(`No collection defined in the navigation for the entity with path ${entry.slug}`);
87
87
  }
88
+ // `context.data` is the flat SDK layer; re-wrap the row into the
89
+ // Entity view-model the navigation entry expects.
88
90
  return data.collection(entry.slug).findById(entry.entityId)
89
- .then((entity) => {
90
- if (!entity) return undefined;
91
+ .then((row) => {
92
+ if (!row) return undefined;
93
+ const entity = { id: row.id, path: entry.slug, values: row };
91
94
  return { ...entry,
92
95
  entity };
93
96
  });
@@ -1,5 +1,5 @@
1
- import { EntitySelectionProps, EntitySelectionTable } from "../components";
2
- import type { EntityCollection } from "@rebasepro/types";
1
+ import { SelectionProps, SelectionTableBinding } from "../components";
2
+ import type { CollectionConfig } from "@rebasepro/types";
3
3
  import { useCallback, useMemo } from "react";
4
4
  import { useSideDialogsController } from "../index";
5
5
  import { useCollectionRegistryController } from "../index";
@@ -14,7 +14,7 @@ import { useCollectionRegistryController } from "../index";
14
14
  * This is the same hook used internally when a reference property is defined.
15
15
  * @group Hooks and utilities
16
16
  */
17
- export function useEntitySelectionDialog<M extends Record<string, unknown>>(referenceDialogProps: Omit<EntitySelectionProps<M>, "path"> & {
17
+ export function useSelectionDialog<M extends Record<string, unknown>>(referenceDialogProps: Omit<SelectionProps<M>, "path"> & {
18
18
  path?: string | false;
19
19
  onClose?: () => void;
20
20
  }): { open: () => void; close: () => void } {
@@ -26,15 +26,15 @@ export function useEntitySelectionDialog<M extends Record<string, unknown>>(refe
26
26
  if (referenceDialogProps.path) {
27
27
  let usedCollection = referenceDialogProps.collection;
28
28
  if (!usedCollection)
29
- usedCollection = navigation.getCollection(referenceDialogProps.path) as EntityCollection<M> | undefined;
29
+ usedCollection = navigation.getCollection(referenceDialogProps.path) as CollectionConfig<M> | undefined;
30
30
  if (!usedCollection)
31
- throw Error("Not able to resolve the collection in useEntitySelectionDialog. Make sure a collection is registered in path " + referenceDialogProps.path);
31
+ throw Error("Not able to resolve the collection in useSelectionDialog. Make sure a collection is registered in path " + referenceDialogProps.path);
32
32
  sideDialogsController.open({
33
33
  key: `reference_${referenceDialogProps.path}`,
34
34
  component:
35
- <EntitySelectionTable
35
+ <SelectionTableBinding
36
36
  collection={usedCollection}
37
- {...referenceDialogProps as EntitySelectionProps<M>}/>,
37
+ {...referenceDialogProps as SelectionProps<M>}/>,
38
38
  width: "90vw",
39
39
  onClose: () => {
40
40
  referenceDialogProps.onClose?.();
@@ -8,7 +8,7 @@ import { useContext } from "react";
8
8
  * This hook allows you to open and close side dialogs. This is the mechanism
9
9
  * used when open a side entity dialog, or when selecting a reference.
10
10
  *
11
- * If you want to open a side entity dialog, you can use the {@link useSideEntityController}
11
+ * If you want to open a side entity dialog, you can use the {@link useSidePanel}
12
12
  * hook.
13
13
  *
14
14
  * If you want to select a reference, you can use the {@link useReferenceDialog}
@@ -0,0 +1,13 @@
1
+ import type { SidePanelController } from "@rebasepro/types";
2
+ import React, { useContext } from "react";
3
+
4
+ export const SidePanelControllerContext = React.createContext<SidePanelController>({} as SidePanelController);
5
+
6
+ /**
7
+ * Use this hook to retrieve a entity controller that allows you to open
8
+ * a side dialog to edit a entity.
9
+ *
10
+ * @see SidePanelController
11
+ * @group Hooks and utilities
12
+ */
13
+ export const useSidePanel = (): SidePanelController => useContext(SidePanelControllerContext);
package/src/index.ts CHANGED
@@ -9,26 +9,26 @@ export * from "./routes";
9
9
 
10
10
  // Components — explicitly listed to avoid conflicts with ./types re-exports
11
11
  export {
12
- EntityView,
13
- EntitySelectionTable,
12
+ EntityViewBinding,
13
+ SelectionTableBinding,
14
14
  SelectableTable,
15
15
  SelectableTableContext,
16
- EntityCollectionView,
17
- EntityCollectionViewActions,
18
- EntityCollectionCardView,
19
- EntityCard,
16
+ CollectionViewBinding,
17
+ CollectionViewActions,
18
+ CollectionCardViewBinding,
19
+ EntityCardBinding,
20
20
  useSelectionController,
21
21
  PropertyConfigBadge,
22
22
  PropertyIdCopyTooltip,
23
- EntityCollectionTable,
24
- EntityCollectionRowActions,
23
+ CollectionTableBinding,
24
+ CollectionRowActions,
25
25
  VirtualTableInput,
26
26
  ArrayContainer,
27
27
  type ArrayEntryParams,
28
28
  ReferenceWidget,
29
29
  SearchIconsView,
30
30
  FieldCaption,
31
- EntityPreview,
31
+ EntityPreviewBinding,
32
32
  getFieldConfig,
33
33
  getFieldId,
34
34
  getDefaultFieldConfig,
@@ -38,7 +38,7 @@ export {
38
38
  copyEntityAction,
39
39
  deleteEntityAction,
40
40
  resetPasswordAction,
41
- SideEntityProvider,
41
+ SidePanelProvider,
42
42
  Scaffold,
43
43
  AppBar,
44
44
  Drawer,
@@ -57,8 +57,8 @@ export {
57
57
  CollectionPanel
58
58
  } from "./components";
59
59
  export type {
60
- EntityViewProps,
61
- EntitySelectionProps,
60
+ EntityViewBindingProps,
61
+ SelectionProps,
62
62
  SelectableTableProps,
63
63
  CollectionPanelProps
64
64
  } from "./components";
@@ -1,13 +1,13 @@
1
- import type { EntityCollection } from "@rebasepro/types";
1
+ import type { CollectionConfig } from "@rebasepro/types";
2
2
  import * as React from "react";
3
3
 
4
4
  import { Entity, EntityReference } from "@rebasepro/types";
5
5
  import type { PreviewSize } from "../../types/components/PropertyPreviewProps";
6
- import { useCustomizationController, useEntityFetch, useComponentOverride, CollectionComponentOverrideProvider } from "@rebasepro/core";
6
+ import { useCustomizationController, useFetch, useComponentOverride, CollectionScopeProvider } from "@rebasepro/core";
7
7
  import { Skeleton } from "@rebasepro/ui";
8
8
  import { ErrorBoundary } from "@rebasepro/ui";
9
9
  import { ErrorView } from "@rebasepro/core";
10
- import { EntityPreview, EntityPreviewContainer } from "../../components/EntityPreview";
10
+ import { EntityPreviewBinding, EntityPreviewContainer } from "../../components/EntityPreviewBinding";
11
11
  import { useCollectionRegistryController } from "../../index";
12
12
  import { getEntityTitlePropertyKey } from "../../util/previews";
13
13
  import { getValueInPath } from "@rebasepro/utils";
@@ -59,7 +59,7 @@ function ReferencePreviewInternalInner({
59
59
  includeId = true,
60
60
  textOnly,
61
61
  collection
62
- }: ReferencePreviewProps & { collection?: EntityCollection }) {
62
+ }: ReferencePreviewProps & { collection?: CollectionConfig }) {
63
63
  const ResolvedMissingReference = useComponentOverride("Entity.MissingReference", DefaultMissingReference);
64
64
 
65
65
  if (!collection) {
@@ -102,11 +102,11 @@ function ReferencePreviewInternal(props: ReferencePreviewProps) {
102
102
  />
103
103
  );
104
104
 
105
- if (collection?.components) {
105
+ if (collection) {
106
106
  return (
107
- <CollectionComponentOverrideProvider overrides={collection.components}>
107
+ <CollectionScopeProvider collection={collection}>
108
108
  {content}
109
- </CollectionComponentOverrideProvider>
109
+ </CollectionScopeProvider>
110
110
  );
111
111
  }
112
112
  return content;
@@ -124,17 +124,17 @@ function ReferencePreviewExisting<M extends Record<string, unknown> = Record<str
124
124
  hover,
125
125
  textOnly
126
126
  }: ReferencePreviewProps & {
127
- collection: EntityCollection<M>
127
+ collection: CollectionConfig<M>
128
128
  }) {
129
129
 
130
- const ResolvedEntityPreview = useComponentOverride("Entity.Preview", EntityPreview);
130
+ const ResolvedEntityPreview = useComponentOverride("EntityPreview", EntityPreviewBinding);
131
131
  const customizationController = useCustomizationController();
132
132
 
133
133
  const {
134
134
  entity,
135
135
  dataLoading,
136
136
  dataLoadingError
137
- } = useEntityFetch({
137
+ } = useFetch({
138
138
  path: reference.path,
139
139
  entityId: reference.id,
140
140
  collection,
@@ -1,11 +1,11 @@
1
- import type { EntityCollection } from "@rebasepro/types";
1
+ import type { CollectionConfig } from "@rebasepro/types";
2
2
  import * as React from "react";
3
3
 
4
4
  import { Entity, EntityRelation } from "@rebasepro/types";
5
5
  import type { PreviewSize } from "../../types/components/PropertyPreviewProps";
6
- import { useCustomizationController, useEntityFetch, ErrorView, useComponentOverride, CollectionComponentOverrideProvider } from "@rebasepro/core";
6
+ import { useCustomizationController, useFetch, ErrorView, useComponentOverride, CollectionScopeProvider } from "@rebasepro/core";
7
7
  import { Skeleton } from "@rebasepro/ui";
8
- import { EntityPreview, EntityPreviewContainer } from "../../components";
8
+ import { EntityPreviewBinding, EntityPreviewContainer } from "../../components";
9
9
  import { useCollectionRegistryController } from "../../index";
10
10
  import { getEntityTitlePropertyKey } from "../../util/previews";
11
11
  import { getValueInPath } from "@rebasepro/utils";
@@ -31,7 +31,7 @@ function extractDisplayFromPlainObject(obj: unknown): string {
31
31
  if (!obj || typeof obj !== "object") return "—";
32
32
  const record = obj as Record<string, unknown>;
33
33
 
34
- // Try data.values.{name,title,...} (EntityRelation.data is an Entity with .values)
34
+ // Try data.values.{name,title,...} (EntityRelation.data is a Entity with .values)
35
35
  const data = record.data;
36
36
  if (data && typeof data === "object") {
37
37
  const dataRecord = data as Record<string, unknown>;
@@ -92,7 +92,7 @@ function RelationPreviewInternalInner({
92
92
  includeId = true,
93
93
  textOnly,
94
94
  collection
95
- }: RelationPreviewProps & { collection?: EntityCollection }) {
95
+ }: RelationPreviewProps & { collection?: CollectionConfig }) {
96
96
  const ResolvedMissingReference = useComponentOverride("Entity.MissingReference", DefaultMissingReference);
97
97
 
98
98
  if (!collection) {
@@ -132,11 +132,11 @@ function RelationPreviewInternal(props: RelationPreviewProps) {
132
132
  />
133
133
  );
134
134
 
135
- if (collection?.components) {
135
+ if (collection) {
136
136
  return (
137
- <CollectionComponentOverrideProvider overrides={collection.components}>
137
+ <CollectionScopeProvider collection={collection}>
138
138
  {content}
139
- </CollectionComponentOverrideProvider>
139
+ </CollectionScopeProvider>
140
140
  );
141
141
  }
142
142
  return content;
@@ -154,18 +154,19 @@ function RelationPreviewExisting<M extends Record<string, unknown> = Record<stri
154
154
  hover,
155
155
  textOnly
156
156
  }: RelationPreviewProps & {
157
- collection: EntityCollection<M>
157
+ collection: CollectionConfig<M>
158
158
  }) {
159
159
 
160
- const passedEntity = relation.data;
161
- const ResolvedEntityPreview = useComponentOverride("Entity.Preview", EntityPreview);
160
+ // CMS wire format embeds relation data as { id, path, values }
161
+ const passedEntity = relation.data as Entity<M> | undefined;
162
+ const ResolvedEntityPreview = useComponentOverride("EntityPreview", EntityPreviewBinding);
162
163
  const customizationController = useCustomizationController();
163
164
 
164
165
  const {
165
166
  entity,
166
167
  dataLoading,
167
168
  dataLoadingError
168
- } = useEntityFetch({
169
+ } = useFetch({
169
170
  path: relation.path,
170
171
  entityId: passedEntity ? undefined : relation.id,
171
172
  collection,
@@ -1,10 +1,10 @@
1
- import type { EntityCollection, ViewMode } from "@rebasepro/types";
1
+ import type { CollectionConfig, ViewMode } from "@rebasepro/types";
2
2
  import { Blocker, useBlocker, useLocation } from "react-router-dom";
3
- import { EntityEditView } from "../components/EntityEditView";
4
- import { EntityDetailView } from "../components/EntityDetailView";
3
+ import { EditViewBinding } from "../components/EditViewBinding";
4
+ import { DetailViewBinding } from "../components/DetailViewBinding";
5
5
  import { useEffect, useRef, useState } from "react";
6
6
  import { useNavigate } from "react-router-dom";
7
- import { EntityCollectionView } from "../components";
7
+ import { CollectionViewBinding } from "../components";
8
8
  import { NotFoundPage, useUserConfigurationPersistence, useComponentOverride } from "@rebasepro/core";
9
9
  import { UnsavedChangesDialog } from "@rebasepro/core";
10
10
  import { CircularProgressCenter } from "@rebasepro/ui";
@@ -20,7 +20,7 @@ export function RebaseRoute() {
20
20
  const urlController = useUrlController();
21
21
  const breadcrumbs = useBreadcrumbsController();
22
22
  const userConfigPersistence = useUserConfigurationPersistence();
23
- const ResolvedCollectionView = useComponentOverride("Collection.View", EntityCollectionView);
23
+ const ResolvedCollectionView = useComponentOverride("Collection.View", CollectionViewBinding);
24
24
 
25
25
  const hash = location.hash;
26
26
  const isSidePanel = hash.includes("#side");
@@ -82,7 +82,7 @@ export function RebaseRoute() {
82
82
  }
83
83
 
84
84
  if (navigationEntries.length === 1 && navigationEntries[0].type === "collection") {
85
- let collection: EntityCollection<any> | undefined;
85
+ let collection: CollectionConfig<any> | undefined;
86
86
  collection = collectionRegistry.getCollection(navigationEntries[0].id);
87
87
  if (!collection)
88
88
  collection = collectionRegistry.getCollection(navigationEntries[0].slug);
@@ -104,7 +104,7 @@ export function RebaseRoute() {
104
104
  if (isSidePanel) {
105
105
  const lastCollectionEntry = [...navigationEntries].reverse().find((entry) => entry.type === "collection");
106
106
  if (lastCollectionEntry) {
107
- let collection: EntityCollection<any> | undefined;
107
+ let collection: CollectionConfig<any> | undefined;
108
108
  const firstEntry = navigationEntries[0] as NavigationViewCollectionInternal<any>;
109
109
  collection = collectionRegistry.getCollection(firstEntry.id);
110
110
  if (!collection)
@@ -140,7 +140,7 @@ export function RebaseRoute() {
140
140
  lastEntityEntry?.type === "entity" &&
141
141
  (navigationEntries.length === 2 || navigationEntries.length === 3)
142
142
  ) {
143
- let collection: EntityCollection<any> | undefined;
143
+ let collection: CollectionConfig<any> | undefined;
144
144
  collection = collectionRegistry.getCollection(firstCollectionEntry.id);
145
145
  if (!collection)
146
146
  collection = collectionRegistry.getCollection(firstCollectionEntry.slug);
@@ -345,7 +345,7 @@ function EntityFullScreenRoute({
345
345
 
346
346
  if (isDetailMode) {
347
347
  return <>
348
- <EntityDetailView
348
+ <DetailViewBinding
349
349
  key={collection.slug + "_view_" + entityId}
350
350
  entityId={entityId}
351
351
  collection={collection}
@@ -372,7 +372,7 @@ function EntityFullScreenRoute({
372
372
  }
373
373
 
374
374
  return <>
375
- <EntityEditView
375
+ <EditViewBinding
376
376
  key={collection.slug + "_" + (isNew ? "new" : (isCopy ? entityId + "_copy" : entityId))}
377
377
  entityId={isNew ? undefined : entityId}
378
378
  collection={collection}
@@ -1,11 +1,11 @@
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
 
6
6
  export interface EntityFormActionsProps {
7
7
  path: string;
8
- collection: EntityCollection;
8
+ collection: CollectionConfig;
9
9
  entity?: Entity;
10
10
  layout: "bottom" | "side" | "responsive";
11
11
  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";
@@ -12,7 +12,7 @@ import { EntityFormActionsProps } from "./EntityFormActionsProps";
12
12
  export type EntityFormProps<M extends Record<string, unknown>> = {
13
13
  path: string;
14
14
  fullIdPath?: string;
15
- collection: EntityCollection<M>;
15
+ collection: CollectionConfig<M>;
16
16
  entityId?: string | number;
17
17
  entity?: Entity<M>;
18
18
  databaseId?: string;
@@ -120,5 +120,5 @@ export type OnUpdateParams = {
120
120
  path: string,
121
121
  entityId?: string | number;
122
122
  selectedTab?: string;
123
- collection: EntityCollection<Record<string, unknown>>
123
+ collection: CollectionConfig<Record<string, unknown>>
124
124
  };
@@ -1,7 +1,7 @@
1
1
  import { InferPropertyType } from "@rebasepro/types";
2
2
  import { Entity } from "@rebasepro/types";
3
3
  import { FormexController } from "./components/formex";
4
- import { EntityCollection } from "@rebasepro/types";
4
+ import { CollectionConfig } from "@rebasepro/types";
5
5
  import { Property } from "@rebasepro/types";
6
6
 
7
7
  export type DefaultFieldConfig =
@@ -190,7 +190,7 @@ export interface FormContext<M extends Record<string, unknown> = Record<string,
190
190
  /**
191
191
  * Collection of the entity being modified
192
192
  */
193
- collection?: EntityCollection<M>;
193
+ collection?: CollectionConfig<M>;
194
194
 
195
195
  /**
196
196
  * Entity id, it can be undefined if it's a new entity
@@ -9,25 +9,19 @@ import type { Entity, EntityTableController } from "@rebasepro/types";
9
9
  import type { CollectionDataController } from "@rebasepro/ui";
10
10
 
11
11
  /**
12
- * Flatten Entity<M> objects to plain row objects.
13
- * The headless view works with flat `Record<string, unknown>` rows,
14
- * while the entity system uses `{ id, path, values: M }`.
15
- *
16
- * The flattened row includes `id` and `path` at the top level,
17
- * plus all values spread.
12
+ * Unwrap `Entity<M>` objects to flat rows for the headless view.
13
+ * The entity system uses `{ id, path, values: M }`; `values` is already the
14
+ * flat row `M` carrying its real primary key, so unwrapping is just `.values` —
15
+ * no `id`/`path` merge (those are view-model metadata, not row columns).
18
16
  */
19
17
  function flattenEntities<M extends Record<string, unknown>>(
20
18
  entities: Entity<M>[]
21
- ): Array<M & { id: string | number; path: string }> {
22
- return entities.map(entity => ({
23
- id: entity.id,
24
- path: entity.path,
25
- ...entity.values
26
- }));
19
+ ): M[] {
20
+ return entities.map(entity => entity.values);
27
21
  }
28
22
 
29
23
  /**
30
- * React hook that adapts an EntityTableController to a CollectionDataController.
24
+ * React hook that adapts a EntityTableController to a CollectionDataController.
31
25
  *
32
26
  * Usage:
33
27
  * ```tsx
@@ -39,13 +33,13 @@ function flattenEntities<M extends Record<string, unknown>>(
39
33
  */
40
34
  export function useCollectionDataController<M extends Record<string, unknown>>(
41
35
  tableController: EntityTableController<M>
42
- ): CollectionDataController<M & { id: string | number; path: string }> {
36
+ ): CollectionDataController<M> {
43
37
  const flatData = useMemo(
44
38
  () => flattenEntities(tableController.data),
45
39
  [tableController.data]
46
40
  );
47
41
 
48
- return useMemo((): CollectionDataController<M & { id: string | number; path: string }> => ({
42
+ return useMemo((): CollectionDataController<M> => ({
49
43
  data: flatData,
50
44
  loading: tableController.dataLoading,
51
45
  noMoreToLoad: tableController.noMoreToLoad,
@@ -1,4 +1,4 @@
1
- import type { EntityCollection, UrlController, SideEntityController, NavigateOptions } from "@rebasepro/types";
1
+ import type { CollectionConfig, UrlController, SidePanelController, NavigateOptions } from "@rebasepro/types";
2
2
 
3
3
  // Canonical path utilities — single source of truth in @rebasepro/common
4
4
  export {
@@ -13,7 +13,7 @@ export {
13
13
  } from "@rebasepro/common";
14
14
 
15
15
  /**
16
- * Navigate to an entity using either a side panel or full-screen mode.
16
+ * Navigate to a entity using either a side panel or full-screen mode.
17
17
  * This is an admin-specific UI concern and lives here (not in common).
18
18
  */
19
19
  export function navigateToEntity({
@@ -24,7 +24,7 @@ export function navigateToEntity({
24
24
  path,
25
25
  selectedTab,
26
26
  defaultValues,
27
- sideEntityController,
27
+ sidePanelController,
28
28
  onClose,
29
29
  navigation,
30
30
  replace
@@ -32,7 +32,7 @@ export function navigateToEntity({
32
32
 
33
33
  {
34
34
  openEntityMode?: "side_panel" | "full_screen" | "split" | "dialog";
35
- collection?: EntityCollection;
35
+ collection?: CollectionConfig;
36
36
  entityId?: string | number;
37
37
  selectedTab?: string;
38
38
  copy?: boolean;
@@ -40,13 +40,13 @@ export function navigateToEntity({
40
40
  * Pre-populate the new entity form with these values.
41
41
  * Only applied when entityId is not set (i.e. "new" mode).
42
42
  *
43
- * Side panel: passed through EntitySidePanelPropsEntityEditView.
43
+ * Side panel: passed through SidePanelBindingPropsEditViewBinding.
44
44
  * Full screen: carried via React Router location.state so the route
45
45
  * component can read it on mount without polluting the URL.
46
46
  */
47
47
  defaultValues?: Record<string, unknown>;
48
48
  path: string;
49
- sideEntityController: SideEntityController;
49
+ sidePanelController: SidePanelController;
50
50
  onClose?: () => void;
51
51
  navigation: UrlController;
52
52
  replace?: boolean;
@@ -55,7 +55,7 @@ export function navigateToEntity({
55
55
  if (openEntityMode === "side_panel" || openEntityMode === "dialog") {
56
56
 
57
57
 
58
- sideEntityController.open({
58
+ sidePanelController.open({
59
59
  entityId,
60
60
  path: path,
61
61
  copy,
@@ -1,4 +1,4 @@
1
- import type { EntityCollection, Property, PropertyConfig } from "@rebasepro/types";
1
+ import type { CollectionConfig, Property, PropertyConfig } from "@rebasepro/types";
2
2
  import { AuthController } from "@rebasepro/types";
3
3
  import { isPropertyBuilder } from "@rebasepro/common";
4
4
  import { isReferenceProperty, isRelationProperty } from "./property_utils";
@@ -29,7 +29,7 @@ function isStorageProperty(property: Property | undefined): boolean {
29
29
 
30
30
  export function getEntityPreviewKeys(
31
31
  authController: AuthController,
32
- targetCollection: EntityCollection<any>,
32
+ targetCollection: CollectionConfig<any>,
33
33
  fields: Record<string, PropertyConfig>,
34
34
  previewProperties?: string[],
35
35
  limit = 3) {
@@ -58,7 +58,7 @@ export function getEntityPreviewKeys(
58
58
  }
59
59
  }
60
60
 
61
- export function getEntityTitlePropertyKey<M extends Record<string, unknown>>(collection: EntityCollection<M>, propertyConfigs: Record<string, PropertyConfig>): string | undefined {
61
+ export function getEntityTitlePropertyKey<M extends Record<string, unknown>>(collection: CollectionConfig<M>, propertyConfigs: Record<string, PropertyConfig>): string | undefined {
62
62
  if (collection.titleProperty) {
63
63
  return collection.titleProperty as string;
64
64
  }
@@ -1,6 +1,6 @@
1
1
 
2
2
  import type { Properties } from "@rebasepro/types";
3
- import type { EntityCollection, MapProperty, Property, PropertyConfig } from "@rebasepro/types";
3
+ import type { CollectionConfig, MapProperty, Property, PropertyConfig } from "@rebasepro/types";
4
4
  import React from "react";
5
5
 
6
6
  import { isPropertyBuilder } from "@rebasepro/common";
@@ -224,7 +224,7 @@ export function getPropertiesWithPropertiesOrder(properties: Properties, propert
224
224
  return result;
225
225
  }
226
226
 
227
- export function getDefaultPropertiesOrder(collection: EntityCollection): string[] {
227
+ export function getDefaultPropertiesOrder(collection: CollectionConfig): string[] {
228
228
  if (collection.propertiesOrder) return collection.propertiesOrder;
229
229
  return [...Object.keys(collection.properties), ...(collection.additionalFields ?? []).map(field => field.key)];
230
230
  }
@@ -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 const MAIN_TAB_VALUE = "__main_##Q$SC^#S6";
5
5
  export const JSON_TAB_VALUE = "__json";