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