@rebasepro/admin 0.8.0 → 0.9.1-canary.09aaf62

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 (408) hide show
  1. package/README.md +26 -26
  2. package/dist/{CollectionEditorDialog-BO_aQ-Z4.js → CollectionEditorDialog-DbPpDDwb.js} +40 -18
  3. package/dist/CollectionEditorDialog-DbPpDDwb.js.map +1 -0
  4. package/dist/{PropertyEditView-DKzOpMjR.js → PropertyEditView-DfJbZ67t.js} +81 -73
  5. package/dist/PropertyEditView-DfJbZ67t.js.map +1 -0
  6. package/dist/{RouterCollectionsStudioView-BQTIExjA.js → RouterCollectionsStudioView-C6XQ7Il5.js} +5 -5
  7. package/dist/RouterCollectionsStudioView-C6XQ7Il5.js.map +1 -0
  8. package/dist/collection_editor/_cms_internals.d.ts +3 -3
  9. package/dist/collection_editor/api/generateCollectionApi.d.ts +8 -8
  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 +5 -5
  34. package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +3 -3
  35. package/dist/collection_editor/ui/collection_editor/SwitchControl.d.ts +1 -1
  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/useSafeSnackbarController.d.ts +1 -1
  42. package/dist/collection_editor/validateCollectionJson.d.ts +2 -2
  43. package/dist/collection_editor_ui.js +5 -5
  44. package/dist/collection_editor_ui.js.map +1 -1
  45. package/dist/components/CollectionPanel.d.ts +4 -4
  46. package/dist/components/{EntityCollectionTable/EntityCollectionRowActions.d.ts → CollectionTableBinding/CollectionRowActions.d.ts} +3 -3
  47. package/dist/components/CollectionTableBinding/CollectionTableBinding.d.ts +28 -0
  48. package/dist/components/{EntityCollectionTable/EntityCollectionTableProps.d.ts → CollectionTableBinding/CollectionTableBindingProps.d.ts} +2 -2
  49. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.d.ts +2 -2
  50. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.d.ts +2 -2
  51. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.d.ts +2 -2
  52. package/dist/components/CollectionTableBinding/index.d.ts +6 -0
  53. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.d.ts +1 -1
  54. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.d.ts +2 -2
  55. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.d.ts +3 -3
  56. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.d.ts +1 -1
  57. package/dist/components/{EntityCollectionView/EntityBoardCard.d.ts → CollectionViewBinding/BoardCardBinding.d.ts} +8 -8
  58. package/dist/components/{EntityCollectionView/EntityCollectionBoardView.d.ts → CollectionViewBinding/CollectionBoardViewBinding.d.ts} +4 -4
  59. package/dist/components/{EntityCollectionView/EntityCollectionCardView.d.ts → CollectionViewBinding/CollectionCardViewBinding.d.ts} +5 -5
  60. package/dist/components/{EntityCollectionView/EntityCollectionListView.d.ts → CollectionViewBinding/CollectionListViewBinding.d.ts} +4 -4
  61. package/dist/components/{EntityCollectionView/EntityCollectionViewActions.d.ts → CollectionViewBinding/CollectionViewActions.d.ts} +4 -4
  62. package/dist/components/{EntityCollectionView/EntityCollectionView.d.ts → CollectionViewBinding/CollectionViewBinding.d.ts} +4 -4
  63. package/dist/components/{EntityCollectionView/EntityCollectionViewStartActions.d.ts → CollectionViewBinding/CollectionViewStartActions.d.ts} +4 -4
  64. package/dist/components/CollectionViewBinding/EntityCardBinding.d.ts +21 -0
  65. package/dist/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.d.ts +3 -3
  66. package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.d.ts +3 -3
  67. package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.d.ts +2 -2
  68. package/dist/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.d.ts +2 -2
  69. package/dist/components/{EntityCollectionView/useEntityPreviewSlots.d.ts → CollectionViewBinding/usePreviewSlots.d.ts} +5 -5
  70. package/dist/components/DeleteEntityDialog.d.ts +4 -4
  71. package/dist/components/{EntityDetailView.d.ts → DetailViewBinding.d.ts} +5 -5
  72. package/dist/components/EditFormActions.d.ts +3 -0
  73. package/dist/components/{EntityEditView.d.ts → EditViewBinding.d.ts} +9 -9
  74. package/dist/components/{EntityPreview.d.ts → EntityPreviewBinding.d.ts} +13 -13
  75. package/dist/components/EntityViewBinding.d.ts +13 -0
  76. package/dist/components/{EntityJsonPreview.d.ts → JsonPreviewBinding.d.ts} +1 -1
  77. package/dist/components/{RebaseCMS.d.ts → RebaseAdmin.d.ts} +2 -2
  78. package/dist/components/RebaseLayout.d.ts +5 -4
  79. package/dist/components/RebaseNavigation.d.ts +1 -1
  80. package/dist/components/RebaseShell.d.ts +1 -0
  81. package/dist/components/ReferenceTable/{EntitySelectionTable.d.ts → SelectionTableBinding.d.ts} +5 -5
  82. package/dist/components/SelectableTable/SelectableTable.d.ts +6 -6
  83. package/dist/components/SelectableTable/SelectableTableContext.d.ts +3 -3
  84. package/dist/components/SelectableTable/SelectionStore.d.ts +2 -2
  85. package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +6 -1
  86. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +7 -1
  87. package/dist/components/SelectableTable/filters/FilterFieldBinding.d.ts +40 -0
  88. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +7 -1
  89. package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +7 -1
  90. package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +7 -1
  91. package/dist/components/SideDialogs.d.ts +1 -1
  92. package/dist/components/SidePanelBinding.d.ts +11 -0
  93. package/dist/components/{SideEntityProvider.d.ts → SidePanelProvider.d.ts} +7 -7
  94. package/dist/components/history/EntityHistoryEntry.d.ts +2 -2
  95. package/dist/components/history/LastEditedByIndicator.d.ts +2 -2
  96. package/dist/components/index.d.ts +15 -14
  97. package/dist/contexts/SidePanelControllerContext.d.ts +3 -0
  98. package/dist/data_export/export/ExportCollectionAction.d.ts +3 -3
  99. package/dist/data_import/components/ImportSaveInProgress.d.ts +2 -2
  100. package/dist/editor.js +1 -1
  101. package/dist/editor.js.map +1 -1
  102. package/dist/form/EntityForm.d.ts +1 -1
  103. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  104. package/dist/form/components/LocalChangesMenu.d.ts +1 -1
  105. package/dist/form/components/StorageUploadProgress.d.ts +1 -1
  106. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +1 -1
  107. package/dist/form/form_utils.d.ts +2 -2
  108. package/dist/{history-B3cqBzEV.js → history-GSa4BgDt.js} +7 -7
  109. package/dist/history-GSa4BgDt.js.map +1 -0
  110. package/dist/hooks/index.d.ts +4 -4
  111. package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +2 -2
  112. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +5 -5
  113. package/dist/hooks/navigation/useNavigationResolution.d.ts +4 -4
  114. package/dist/hooks/navigation/useResolvedCollections.d.ts +7 -7
  115. package/dist/hooks/navigation/useTopLevelNavigation.d.ts +2 -2
  116. package/dist/hooks/navigation/utils.d.ts +5 -5
  117. package/dist/hooks/useBuildSidePanel.d.ts +6 -0
  118. package/dist/hooks/useCMSContext.d.ts +2 -2
  119. package/dist/hooks/{useEntityHistory.d.ts → useHistory.d.ts} +1 -1
  120. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  121. package/dist/hooks/{useEntitySelectionDialog.d.ts → useSelectionDialog.d.ts} +2 -2
  122. package/dist/hooks/useSideDialogsController.d.ts +1 -1
  123. package/dist/hooks/useSidePanel.d.ts +11 -0
  124. package/dist/index.d.ts +2 -2
  125. package/dist/index.js +2 -2
  126. package/dist/{src-cxV1ODRG.js → src-B8WuGSPZ.js} +886 -692
  127. package/dist/src-B8WuGSPZ.js.map +1 -0
  128. package/dist/types/components/EntityFormActionsProps.d.ts +2 -2
  129. package/dist/types/components/EntityFormProps.d.ts +3 -3
  130. package/dist/types/components/formex.d.ts +1 -1
  131. package/dist/types/fields.d.ts +2 -2
  132. package/dist/util/dataControllerAdapter.d.ts +2 -5
  133. package/dist/util/navigation_utils.d.ts +6 -6
  134. package/dist/util/previews.d.ts +3 -3
  135. package/dist/util/property_utils.d.ts +2 -2
  136. package/dist/util/{entity_view_constants.d.ts → view_constants.d.ts} +1 -1
  137. package/package.json +12 -17
  138. package/src/collection_editor/ConfigControllerProvider.tsx +11 -11
  139. package/src/collection_editor/_cms_internals.ts +3 -3
  140. package/src/collection_editor/api/generateCollectionApi.ts +8 -8
  141. package/src/collection_editor/extensibility_types.ts +3 -3
  142. package/src/collection_editor/index.ts +3 -3
  143. package/src/collection_editor/pgColumnToProperty.ts +3 -3
  144. package/src/collection_editor/serializable_types.ts +8 -8
  145. package/src/collection_editor/serializable_utils.ts +17 -17
  146. package/src/collection_editor/types/collection_editor_controller.tsx +5 -5
  147. package/src/collection_editor/types/collection_inference.ts +2 -2
  148. package/src/collection_editor/types/config_controller.tsx +7 -7
  149. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +3 -3
  150. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +3 -3
  151. package/src/collection_editor/ui/EditorCollectionAction.tsx +3 -3
  152. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +3 -3
  153. package/src/collection_editor/ui/EditorEntityAction.tsx +3 -3
  154. package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +1 -1
  155. package/src/collection_editor/ui/KanbanSetupAction.tsx +3 -3
  156. package/src/collection_editor/ui/MissingReferenceWidget.tsx +1 -1
  157. package/src/collection_editor/ui/NewCollectionButton.tsx +1 -1
  158. package/src/collection_editor/ui/NewCollectionCard.tsx +1 -1
  159. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +3 -3
  160. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +6 -6
  161. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +6 -6
  162. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +29 -29
  163. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +5 -5
  164. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +2 -2
  165. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +10 -10
  166. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +38 -7
  167. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +3 -3
  168. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +3 -3
  169. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +3 -3
  170. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +4 -4
  171. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +5 -5
  172. package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +1 -1
  173. package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +1 -1
  174. package/src/collection_editor/ui/collection_editor/EnumForm.tsx +2 -2
  175. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +7 -7
  176. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +5 -5
  177. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +4 -4
  178. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +9 -9
  179. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +46 -37
  180. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +2 -2
  181. package/src/collection_editor/ui/collection_editor/RouterCollectionStudioView.tsx +1 -1
  182. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +7 -7
  183. package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +1 -1
  184. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +4 -4
  185. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +4 -4
  186. package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +1 -1
  187. package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +1 -1
  188. package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +2 -2
  189. package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +2 -2
  190. package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +2 -2
  191. package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +2 -2
  192. package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +2 -2
  193. package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +2 -2
  194. package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +2 -2
  195. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +3 -3
  196. package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +1 -1
  197. package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +2 -2
  198. package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +2 -2
  199. package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +1 -1
  200. package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +1 -1
  201. package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +1 -1
  202. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +1 -1
  203. package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +1 -1
  204. package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +2 -2
  205. package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +2 -2
  206. package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +2 -2
  207. package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +2 -2
  208. package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +2 -2
  209. package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +2 -2
  210. package/src/collection_editor/ui/collection_editor/templates/products_template.ts +2 -2
  211. package/src/collection_editor/ui/collection_editor/templates/users_template.ts +2 -2
  212. package/src/collection_editor/useJsonCollectionsConfigController.tsx +13 -13
  213. package/src/collection_editor/useLocalCollectionsConfigController.tsx +4 -4
  214. package/src/collection_editor/useSafeSnackbarController.ts +1 -1
  215. package/src/collection_editor/validateCollectionJson.ts +3 -3
  216. package/src/components/AdminModeSyncer.tsx +1 -1
  217. package/src/components/ArrayContainer.tsx +1 -1
  218. package/src/components/ClearFilterSortButton.tsx +1 -1
  219. package/src/components/CollectionPanel.tsx +14 -17
  220. package/src/components/{EntityCollectionTable/EntityCollectionRowActions.tsx → CollectionTableBinding/CollectionRowActions.tsx} +8 -8
  221. package/src/components/{EntityCollectionTable/EntityCollectionTable.tsx → CollectionTableBinding/CollectionTableBinding.tsx} +13 -13
  222. package/src/components/{EntityCollectionTable/EntityCollectionTableProps.tsx → CollectionTableBinding/CollectionTableBindingProps.tsx} +2 -2
  223. package/src/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.tsx +1 -1
  224. package/src/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.tsx +1 -1
  225. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.tsx +7 -7
  226. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.tsx +10 -10
  227. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.tsx +7 -7
  228. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.tsx +1 -1
  229. package/src/components/CollectionTableBinding/index.tsx +14 -0
  230. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.tsx +1 -1
  231. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.tsx +2 -2
  232. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.tsx +1 -1
  233. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.tsx +2 -2
  234. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.tsx +6 -6
  235. package/src/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.tsx +1 -1
  236. package/src/components/{EntityCollectionView/EntityBoardCard.tsx → CollectionViewBinding/BoardCardBinding.tsx} +17 -17
  237. package/src/components/{EntityCollectionView/EntityCollectionBoardView.tsx → CollectionViewBinding/CollectionBoardViewBinding.tsx} +17 -16
  238. package/src/components/{EntityCollectionView/EntityCollectionCardView.tsx → CollectionViewBinding/CollectionCardViewBinding.tsx} +9 -9
  239. package/src/components/{EntityCollectionView/EntityCollectionListView.tsx → CollectionViewBinding/CollectionListViewBinding.tsx} +15 -15
  240. package/src/components/{EntityCollectionView/EntityCollectionViewActions.tsx → CollectionViewBinding/CollectionViewActions.tsx} +7 -7
  241. package/src/components/{EntityCollectionView/EntityCollectionView.tsx → CollectionViewBinding/CollectionViewBinding.tsx} +107 -92
  242. package/src/components/{EntityCollectionView/EntityCollectionViewStartActions.tsx → CollectionViewBinding/CollectionViewStartActions.tsx} +6 -6
  243. package/src/components/{EntityCollectionView/EntityCard.tsx → CollectionViewBinding/EntityCardBinding.tsx} +12 -12
  244. package/src/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.tsx +49 -72
  245. package/src/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.tsx +10 -10
  246. package/src/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.tsx +1 -1
  247. package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.ts +6 -6
  248. package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.ts +5 -5
  249. package/src/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.tsx +25 -13
  250. package/src/components/{EntityCollectionView/useEntityPreviewSlots.ts → CollectionViewBinding/usePreviewSlots.ts} +9 -9
  251. package/src/components/DefaultAppBar.tsx +3 -3
  252. package/src/components/DefaultDrawer.tsx +3 -3
  253. package/src/components/DeleteEntityDialog.tsx +7 -7
  254. package/src/components/{EntityDetailView.tsx → DetailViewBinding.tsx} +28 -31
  255. package/src/components/DrawerNavigationGroup.tsx +2 -2
  256. package/src/components/{EntityEditViewFormActions.tsx → EditFormActions.tsx} +16 -16
  257. package/src/components/{EntityEditView.tsx → EditViewBinding.tsx} +34 -37
  258. package/src/components/{EntityPreview.tsx → EntityPreviewBinding.tsx} +30 -30
  259. package/src/components/{EntityView.tsx → EntityViewBinding.tsx} +7 -7
  260. package/src/components/HomePage/ContentHomePage.tsx +4 -4
  261. package/src/components/HomePage/FavouritesView.tsx +1 -1
  262. package/src/components/HomePage/NavigationCardBinding.tsx +4 -4
  263. package/src/components/HomePage/NavigationGroup.tsx +1 -1
  264. package/src/components/HomePage/RenameGroupDialog.tsx +1 -1
  265. package/src/components/{EntityJsonPreview.tsx → JsonPreviewBinding.tsx} +2 -2
  266. package/src/components/{RebaseCMS.tsx → RebaseAdmin.tsx} +6 -5
  267. package/src/components/RebaseAuthGate.tsx +2 -2
  268. package/src/components/RebaseLayout.tsx +7 -13
  269. package/src/components/RebaseNavigation.tsx +35 -11
  270. package/src/components/RebaseRouteDefs.tsx +2 -2
  271. package/src/components/RebaseShell.tsx +2 -1
  272. package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx} +27 -24
  273. package/src/components/ReferenceWidget.tsx +4 -4
  274. package/src/components/RelationSelector.tsx +15 -13
  275. package/src/components/SearchIconsView.tsx +2 -2
  276. package/src/components/SelectableTable/SelectableTable.tsx +35 -88
  277. package/src/components/SelectableTable/SelectableTableContext.tsx +3 -3
  278. package/src/components/SelectableTable/SelectionStore.ts +4 -4
  279. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +10 -2
  280. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +34 -13
  281. package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +187 -0
  282. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +22 -8
  283. package/src/components/SelectableTable/filters/RelationFilterField.tsx +17 -3
  284. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +67 -13
  285. package/src/components/SideDialogs.tsx +4 -4
  286. package/src/components/{EntitySidePanel.tsx → SidePanelBinding.tsx} +20 -20
  287. package/src/components/{SideEntityProvider.tsx → SidePanelProvider.tsx} +17 -17
  288. package/src/components/UserSelector.tsx +1 -1
  289. package/src/components/admin/CreationResultDialog.tsx +6 -3
  290. package/src/components/app/Scaffold.tsx +6 -2
  291. package/src/components/common/default_entity_actions.tsx +132 -34
  292. package/src/components/field_configs.tsx +1 -1
  293. package/src/components/history/EntityHistoryEntry.tsx +3 -3
  294. package/src/components/history/EntityHistoryView.tsx +7 -7
  295. package/src/components/history/LastEditedByIndicator.tsx +4 -4
  296. package/src/components/index.ts +16 -15
  297. package/src/contexts/SidePanelControllerContext.tsx +5 -0
  298. package/src/data_export/export/BasicExportAction.tsx +1 -1
  299. package/src/data_export/export/ExportCollectionAction.tsx +5 -5
  300. package/src/data_import/components/DataNewPropertiesMapping.tsx +1 -1
  301. package/src/data_import/components/ImportFileUpload.tsx +1 -1
  302. package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +1 -1
  303. package/src/data_import/components/ImportSaveInProgress.tsx +4 -4
  304. package/src/data_import/import/ImportCollectionAction.tsx +6 -6
  305. package/src/data_import/utils/data.ts +4 -4
  306. package/src/data_import/utils/get_properties_mapping.ts +1 -1
  307. package/src/editor/components/image-bubble.tsx +1 -1
  308. package/src/editor/components/table-bubble.tsx +1 -1
  309. package/src/editor/editor.tsx +1 -1
  310. package/src/editor/selectors/link-selector.tsx +1 -1
  311. package/src/editor/selectors/node-selector.tsx +1 -1
  312. package/src/form/EntityForm.tsx +6 -6
  313. package/src/form/EntityFormActions.tsx +4 -4
  314. package/src/form/EntityFormBinding.tsx +10 -10
  315. package/src/form/PropertyFieldBinding.tsx +7 -7
  316. package/src/form/components/ErrorFocus.tsx +1 -1
  317. package/src/form/components/LocalChangesMenu.tsx +3 -3
  318. package/src/form/components/StorageItemPreview.tsx +1 -1
  319. package/src/form/components/StorageUploadProgress.tsx +3 -3
  320. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +1 -1
  321. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +5 -5
  322. package/src/form/field_bindings/BlockFieldBinding.tsx +2 -2
  323. package/src/form/field_bindings/DateTimeFieldBinding.tsx +1 -1
  324. package/src/form/field_bindings/KeyValueFieldBinding.tsx +21 -21
  325. package/src/form/field_bindings/MapFieldBinding.tsx +1 -1
  326. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +2 -2
  327. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +3 -3
  328. package/src/form/field_bindings/ReferenceFieldBinding.tsx +7 -7
  329. package/src/form/field_bindings/RelationFieldBinding.tsx +4 -4
  330. package/src/form/field_bindings/RepeatFieldBinding.tsx +1 -1
  331. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +3 -3
  332. package/src/form/form_utils.ts +3 -3
  333. package/src/hooks/index.ts +4 -4
  334. package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +2 -2
  335. package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +11 -11
  336. package/src/hooks/navigation/useBuildNavigationStateController.tsx +5 -5
  337. package/src/hooks/navigation/useNavigationResolution.ts +28 -13
  338. package/src/hooks/navigation/useResolvedCollections.ts +8 -8
  339. package/src/hooks/navigation/useTopLevelNavigation.ts +2 -2
  340. package/src/hooks/navigation/utils.ts +5 -5
  341. package/src/hooks/{useBuildSideEntityController.tsx → useBuildSidePanel.tsx} +29 -29
  342. package/src/hooks/useCMSContext.tsx +7 -7
  343. package/src/hooks/{useEntityHistory.ts → useHistory.ts} +2 -2
  344. package/src/hooks/useResolvedNavigationFrom.tsx +10 -5
  345. package/src/hooks/{useEntitySelectionDialog.tsx → useSelectionDialog.tsx} +7 -7
  346. package/src/hooks/useSideDialogsController.tsx +1 -1
  347. package/src/hooks/useSidePanel.tsx +13 -0
  348. package/src/index.ts +15 -15
  349. package/src/preview/PropertyPreview.tsx +2 -2
  350. package/src/preview/components/DatePreview.tsx +1 -1
  351. package/src/preview/components/EnumValuesChip.tsx +1 -1
  352. package/src/preview/components/ImagePreview.tsx +1 -1
  353. package/src/preview/components/ReferencePreview.tsx +11 -11
  354. package/src/preview/components/RelationPreview.tsx +13 -12
  355. package/src/preview/components/StorageThumbnail.tsx +1 -1
  356. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +1 -1
  357. package/src/preview/property_previews/ArrayOneOfPreview.tsx +1 -1
  358. package/src/preview/property_previews/ArrayPropertyPreview.tsx +1 -1
  359. package/src/routes/RebaseRoute.tsx +12 -12
  360. package/src/types/components/EntityFormActionsProps.tsx +2 -2
  361. package/src/types/components/EntityFormProps.tsx +3 -3
  362. package/src/types/components/formex.tsx +1 -1
  363. package/src/types/fields.tsx +2 -2
  364. package/src/util/dataControllerAdapter.ts +9 -15
  365. package/src/util/navigation_utils.ts +7 -7
  366. package/src/util/previews.ts +7 -5
  367. package/src/util/property_utils.tsx +2 -2
  368. package/src/util/{entity_view_constants.ts → view_constants.ts} +1 -1
  369. package/dist/CollectionEditorDialog-BO_aQ-Z4.js.map +0 -1
  370. package/dist/PropertyEditView-DKzOpMjR.js.map +0 -1
  371. package/dist/RouterCollectionsStudioView-BQTIExjA.js.map +0 -1
  372. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -28
  373. package/dist/components/EntityCollectionTable/index.d.ts +0 -6
  374. package/dist/components/EntityCollectionView/EntityCard.d.ts +0 -21
  375. package/dist/components/EntityEditViewFormActions.d.ts +0 -3
  376. package/dist/components/EntitySidePanel.d.ts +0 -11
  377. package/dist/components/EntityView.d.ts +0 -13
  378. package/dist/contexts/SideEntityControllerContext.d.ts +0 -3
  379. package/dist/history-B3cqBzEV.js.map +0 -1
  380. package/dist/hooks/useBuildSideEntityController.d.ts +0 -6
  381. package/dist/hooks/useSideEntityController.d.ts +0 -11
  382. package/dist/src-cxV1ODRG.js.map +0 -1
  383. package/src/components/EntityCollectionTable/index.tsx +0 -14
  384. package/src/contexts/SideEntityControllerContext.tsx +0 -5
  385. package/src/hooks/useSideEntityController.tsx +0 -13
  386. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.d.ts +0 -0
  387. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.d.ts +0 -0
  388. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.d.ts +0 -0
  389. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.d.ts +0 -0
  390. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.d.ts +0 -0
  391. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.d.ts +0 -0
  392. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.d.ts +0 -0
  393. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.d.ts +0 -0
  394. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.d.ts +0 -0
  395. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.d.ts +0 -0
  396. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.d.ts +0 -0
  397. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.d.ts +0 -0
  398. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.d.ts +0 -0
  399. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.d.ts +0 -0
  400. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/utils.d.ts +0 -0
  401. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.tsx +0 -0
  402. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.tsx +0 -0
  403. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.tsx +0 -0
  404. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.tsx +0 -0
  405. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.tsx +0 -0
  406. /package/src/components/{EntityCollectionView → CollectionViewBinding}/FilterPresetsButton.tsx +0 -0
  407. /package/src/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.tsx +0 -0
  408. /package/src/components/{EntityCollectionView → CollectionViewBinding}/utils.ts +0 -0
@@ -1,31 +1,31 @@
1
1
  import type { Properties } from "@rebasepro/types";
2
- import type { EntityCollection } from "@rebasepro/types";
2
+ import type { CollectionConfig } from "@rebasepro/types";
3
3
  import type { CustomizationController } from "@rebasepro/types";
4
4
  import React from "react";
5
5
  import { Entity } from "@rebasepro/types";
6
6
  import { cls, defaultBorderMixin, ExternalLinkIcon, IconButton, Typography } from "@rebasepro/ui";
7
7
  ;
8
- import { useCustomizationController } from "@rebasepro/core";
9
- import { useAuthController } from "@rebasepro/core";
8
+ import { useCustomizationController } from "@rebasepro/app";
9
+ import { useAuthController } from "@rebasepro/app";
10
10
  import { PropertyCollectionView } from "./PropertyCollectionView";
11
11
 
12
12
  /**
13
13
  * @group Components
14
14
  */
15
- export interface EntityViewProps<M extends Record<string, unknown>> {
15
+ export interface EntityViewBindingProps<M extends Record<string, unknown>> {
16
16
  entity: Entity<M>;
17
- collection: EntityCollection<M>;
17
+ collection: CollectionConfig<M>;
18
18
  path: string;
19
19
  className?: string;
20
20
  }
21
21
 
22
- export function EntityView<M extends Record<string, unknown>>(
22
+ export function EntityViewBinding<M extends Record<string, unknown>>(
23
23
  {
24
24
  entity,
25
25
  collection,
26
26
  path,
27
27
  className
28
- }: EntityViewProps<M>) {
28
+ }: EntityViewBindingProps<M>) {
29
29
 
30
30
  const customizationController: CustomizationController = useCustomizationController();
31
31
 
@@ -19,10 +19,10 @@ import { SortableContext, verticalListSortingStrategy } from "@dnd-kit/sortable"
19
19
  import { restrictToVerticalAxis, restrictToWindowEdges } from "@dnd-kit/modifiers";
20
20
  import { RenameGroupDialog } from "./RenameGroupDialog";
21
21
  import { toArray } from "@rebasepro/utils";
22
- import { useCollapsedGroups, buildCollapsedDefaults, useCustomizationController, useTranslation, useSlot, useAdminModeController, useRebaseRegistry } from "@rebasepro/core";
23
- import { useRestoreScroll } from "@rebasepro/core";
22
+ import { useCollapsedGroups, buildCollapsedDefaults, useCustomizationController, useTranslation, useSlot, useAdminModeController, useRebaseRegistry } from "@rebasepro/app";
23
+ import { useRestoreScroll } from "@rebasepro/app";
24
24
 
25
- import { SchemaDriftBanner } from "@rebasepro/core";
25
+ import { SchemaDriftBanner } from "@rebasepro/app";
26
26
  import { useBreadcrumbsController, useCMSContext } from "../../index";
27
27
 
28
28
  export const DEFAULT_GROUP_NAME = "Views";
@@ -64,7 +64,7 @@ export function ContentHomePage({
64
64
  } = navigationStateController.topLevelNavigation || {};
65
65
 
66
66
  // Build a set of Studio-only dev view slugs so we can distinguish them from
67
- // CMS custom views added via <RebaseCMS views={...}> or plugins.
67
+ // CMS custom views added via <RebaseAdmin views={...}> or plugins.
68
68
  const studioViewSlugs = useMemo(() => {
69
69
  const slugs = new Set<string>();
70
70
  (registry.studioConfig?.devViews ?? []).forEach(v => slugs.add(v.slug));
@@ -2,7 +2,7 @@ import type { NavigationEntry } from "@rebasepro/types";
2
2
  import { useNavigate } from "react-router-dom";
3
3
  ;
4
4
  import { Chip, Collapse, StarIcon } from "@rebasepro/ui";
5
- import { useUserConfigurationPersistence } from "@rebasepro/core";
5
+ import { useUserConfigurationPersistence } from "@rebasepro/app";
6
6
  import { useNavigationStateController } from "../../index";
7
7
 
8
8
  function NavigationChip({ entry }: { entry: NavigationEntry }) {
@@ -1,13 +1,13 @@
1
- import type { NavigationEntry, EntityCollection } from "@rebasepro/types";
1
+ import type { NavigationEntry, CollectionConfig } from "@rebasepro/types";
2
2
  import { useNavigate } from "react-router-dom";
3
3
  ;
4
4
  import { IconButton, StarIcon, Tooltip } from "@rebasepro/ui";
5
5
  import { NavigationCard } from "./NavigationCard";
6
6
  import { SmallNavigationCard } from "./SmallNavigationCard";
7
7
  import React from "react";
8
- import { useRebaseContext, useSlot } from "@rebasepro/core";
9
- import { IconForView } from "@rebasepro/core";
10
- import { useUserConfigurationPersistence } from "@rebasepro/core";
8
+ import { useRebaseContext, useSlot } from "@rebasepro/app";
9
+ import { IconForView } from "@rebasepro/app";
10
+ import { useUserConfigurationPersistence } from "@rebasepro/app";
11
11
 
12
12
  /**
13
13
  * This is the component used in the home page to render a card for each
@@ -1,6 +1,6 @@
1
1
  import React, { PropsWithChildren, useState } from "react";
2
2
  import { cls, ExpandablePanel, IconButton, iconSize, PencilIcon, Typography } from "@rebasepro/ui";
3
- import { useTranslation } from "@rebasepro/core";
3
+ import { useTranslation } from "@rebasepro/app";
4
4
 
5
5
  export function NavigationGroup({
6
6
  children,
@@ -1,6 +1,6 @@
1
1
  import React, { useEffect, useRef, useState } from "react";
2
2
  import { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from "@rebasepro/ui";
3
- import { useTranslation } from "@rebasepro/core";
3
+ import { useTranslation } from "@rebasepro/app";
4
4
 
5
5
  interface RenameGroupDialogProps {
6
6
  open: boolean;
@@ -1,8 +1,8 @@
1
1
  import React, { useRef } from "react";
2
2
  import { Highlight, themes } from "prism-react-renderer";
3
- import { useModeController } from "@rebasepro/core";
3
+ import { useModeController } from "@rebasepro/app";
4
4
 
5
- export function EntityJsonPreview({ values }: { values: object }) {
5
+ export function JsonPreviewBinding({ values }: { values: object }) {
6
6
  const code = JSON.stringify(values, null, "\t");
7
7
  const { mode } = useModeController();
8
8
  const preRef = useRef<HTMLPreElement>(null);
@@ -1,6 +1,6 @@
1
1
  import React, { useLayoutEffect } from "react";
2
- import { useRebaseRegistryDispatch } from "@rebasepro/core";
3
- import type { RebaseCMSConfig } from "@rebasepro/types";
2
+ import { useRebaseRegistryDispatch } from "@rebasepro/app";
3
+ import type { RebaseAdminConfig } from "@rebasepro/types";
4
4
 
5
5
  /**
6
6
  * Declarative component to configure the CMS in Rebase.
@@ -10,7 +10,7 @@ import type { RebaseCMSConfig } from "@rebasepro/types";
10
10
  * is auto-wired as a native feature (slots, provider, Studio view) without
11
11
  * needing any external plugin.
12
12
  */
13
- export function RebaseCMS({ collections, views, homePage, entityViews, entityActions, collectionEditor, navigationGroupMappings }: RebaseCMSConfig) {
13
+ export function RebaseAdmin({ collections, views, homePage, entityViews, entityActions, collectionEditor, navigationGroupMappings, basePath }: RebaseAdminConfig) {
14
14
  const dispatch = useRebaseRegistryDispatch();
15
15
 
16
16
  useLayoutEffect(() => {
@@ -20,9 +20,10 @@ homePage,
20
20
  entityViews,
21
21
  entityActions,
22
22
  collectionEditor,
23
- navigationGroupMappings });
23
+ navigationGroupMappings,
24
+ basePath });
24
25
  return () => dispatch.unregisterCMS();
25
- }, [dispatch, collections, views, homePage, entityViews, entityActions, collectionEditor, navigationGroupMappings]);
26
+ }, [dispatch, collections, views, homePage, entityViews, entityActions, collectionEditor, navigationGroupMappings, basePath]);
26
27
 
27
28
  return null;
28
29
  }
@@ -2,9 +2,9 @@ import React from "react";
2
2
  import {
3
3
  useRebaseRegistry,
4
4
  useAuthController
5
- } from "@rebasepro/core";
5
+ } from "@rebasepro/app";
6
6
  import { CircularProgressCenter } from "@rebasepro/ui";
7
- import { LoginView } from "@rebasepro/core";
7
+ import { LoginView } from "@rebasepro/app";
8
8
  import type { AuthControllerExtended } from "@rebasepro/types";
9
9
 
10
10
  /**
@@ -4,10 +4,9 @@ import {
4
4
  useAdminModeController,
5
5
  useComponentOverride,
6
6
  useRebaseRegistry
7
- } from "@rebasepro/core";
7
+ } from "@rebasepro/app";
8
8
 
9
9
  import { Scaffold } from "./app/Scaffold";
10
- import { AppBar } from "./app/AppBar";
11
10
  import { Drawer } from "./app/Drawer";
12
11
  import { SideDialogs } from "./SideDialogs";
13
12
  import { AdminModeSyncer } from "./AdminModeSyncer";
@@ -16,7 +15,7 @@ import type { AppView } from "@rebasepro/types";
16
15
  export interface RebaseLayoutProps {
17
16
  /** Title shown in the drawer. */
18
17
  title?: string;
19
- /** Custom AppBar to override the default. */
18
+ /** Top bar. Only rendered if provided — pass `<AppBar/>` for the default one. */
20
19
  appBar?: React.ReactNode;
21
20
  /** Custom Drawer to override the default. */
22
21
  drawer?: React.ReactNode;
@@ -27,17 +26,18 @@ export interface RebaseLayoutProps {
27
26
  }
28
27
 
29
28
  /**
30
- * Layout layer — provides the Scaffold, AppBar, Drawer, and SideDialogs.
29
+ * Layout layer — provides the Scaffold, Drawer, and SideDialogs.
31
30
  *
32
31
  * Wraps the route outlet with the standard Rebase admin layout.
33
- * Override individual pieces (appBar, drawer) via props.
32
+ * Override the drawer via props; pass `appBar` to add a top bar (there is
33
+ * none by default — the drawer owns navigation and user actions).
34
34
  *
35
35
  * **Independently usable**: Use this when you want the Rebase layout
36
36
  * without its default route definitions.
37
37
  *
38
38
  * @example
39
39
  * ```tsx
40
- * <RebaseLayout title="My Admin">
40
+ * <RebaseLayout title="My Admin" appBar={<AppBar/>}>
41
41
  * <Route path="/" element={<MyHomePage />} />
42
42
  * <Route path="/custom" element={<CustomView />} />
43
43
  * </RebaseLayout>
@@ -53,14 +53,8 @@ export function RebaseLayout(props: RebaseLayoutProps) {
53
53
  } = props;
54
54
 
55
55
  const adminModeController = useAdminModeController();
56
- const ResolvedAppBar = useComponentOverride("Shell.AppBar", AppBar);
57
56
  const ResolvedDrawer = useComponentOverride("Shell.Drawer", Drawer);
58
57
 
59
- const ActiveAppBar = appBar ?? <ResolvedAppBar
60
- includeLanguageToggle={false}
61
- includeModeToggle={false}
62
- includeUserMenu={false}
63
- />;
64
58
  const ActiveDrawer = drawer ?? (
65
59
  <ResolvedDrawer
66
60
  title={title}
@@ -71,7 +65,7 @@ export function RebaseLayout(props: RebaseLayoutProps) {
71
65
  return (
72
66
  <Scaffold autoOpenDrawer={autoOpenDrawer}>
73
67
  <AdminModeSyncer devViews={devViews}/>
74
- {ActiveAppBar}
68
+ {appBar}
75
69
  {ActiveDrawer}
76
70
  <Outlet/>
77
71
  <SideDialogs/>
@@ -1,4 +1,4 @@
1
- import React, { useMemo, useRef, useEffect, lazy, Suspense } from "react";
1
+ import React, { useMemo, useRef, useEffect, useCallback, useContext, lazy, Suspense } from "react";
2
2
  import {
3
3
  useRebaseRegistry,
4
4
  useRebaseContext,
@@ -9,19 +9,20 @@ import {
9
9
  useRebaseClient,
10
10
  useData,
11
11
  useDataSources,
12
+ CollectionResolverRegistrationContext,
12
13
  StudioBridgeRegistryProvider,
13
14
  useBridgeRegistration,
14
15
  CustomizationControllerContext,
15
16
  RebaseDataContext
16
- } from "@rebasepro/core";
17
+ } from "@rebasepro/app";
17
18
  import { buildRoutedRebaseData, resolveDataSource } from "@rebasepro/common";
18
19
  import { CircularProgressCenter } from "@rebasepro/ui";
19
- import type { AppView, CollectionEditorOptions, EntityCustomView, EntityAction, EntityCollection, RebasePlugin } from "@rebasepro/types";
20
+ import type { AppView, CollectionEditorOptions, EntityCustomView, EntityAction, CollectionConfig, RebasePlugin } from "@rebasepro/types";
20
21
  import type { CollectionRegistryController } from "@rebasepro/types";
21
22
  import type { UrlController, NavigationStateController } from "@rebasepro/types";
22
23
 
23
24
  const EMPTY_PLUGINS: RebasePlugin[] = [];
24
- const EMPTY_COLLECTIONS: EntityCollection[] = [];
25
+ const EMPTY_COLLECTIONS: CollectionConfig[] = [];
25
26
 
26
27
  import { useBuildNavigationStateController } from "../hooks/navigation/useBuildNavigationStateController";
27
28
  import { useBuildUrlController } from "../hooks/navigation/useBuildUrlController";
@@ -31,7 +32,7 @@ import { CollectionRegistryContext } from "../hooks/navigation/contexts/Collecti
31
32
  import { UrlContext } from "../hooks/navigation/contexts/UrlContext";
32
33
  import { NavigationStateContext } from "../hooks/navigation/contexts/NavigationStateContext";
33
34
 
34
- import { SideEntityProvider } from "./SideEntityProvider";
35
+ import { SidePanelProvider } from "./SidePanelProvider";
35
36
 
36
37
  // Collection editor internals — used when collectionEditor is enabled
37
38
  import { useLocalCollectionsConfigController } from "../collection_editor/useLocalCollectionsConfigController";
@@ -61,7 +62,7 @@ export interface RebaseNavigationProps {
61
62
  * ```tsx
62
63
  * <RebaseNavigation>
63
64
  * <MyCustomLayout>
64
- * <EntityCollectionView ... />
65
+ * <CollectionViewBinding ... />
65
66
  * </MyCustomLayout>
66
67
  * </RebaseNavigation>
67
68
  * ```
@@ -103,14 +104,37 @@ export function RebaseNavigation({ children }: RebaseNavigationProps) {
103
104
  const defaultData = useData();
104
105
  const getCollectionRef = useRef(collectionRegistryController.getCollection);
105
106
  getCollectionRef.current = collectionRegistryController.getCollection;
107
+
108
+ // Hand the data layer a way to read this registry. It was built by <Rebase>,
109
+ // above us, and needs a collection's primary keys to give its rows an
110
+ // address — rows themselves carry only columns.
111
+ //
112
+ // Registered during render, not in an effect: the views that fetch rows are
113
+ // below us, and their effects run before ours, so an effect here would bind
114
+ // after the first page had already been converted. The call only assigns a
115
+ // ref, so repeating it per render is free.
116
+ const registerCollectionResolver = useContext(CollectionResolverRegistrationContext);
117
+ const resolveCollection = useCallback(
118
+ (slug: string) => getCollectionRef.current(slug),
119
+ []);
120
+ registerCollectionResolver(resolveCollection);
106
121
  const routedData = useMemo(() => buildRoutedRebaseData({
107
122
  defaultData,
108
123
  sources: dataSources.sources,
109
124
  resolveKey: (slugOrPath) => resolveDataSource(getCollectionRef.current(slugOrPath), dataSources.registry).key
110
125
  }), [defaultData, dataSources]);
111
126
 
127
+ // Normalize the configured mount prefix to a leading-slash, no-trailing-slash
128
+ // form (e.g. "admin" or "/admin/" -> "/admin"); empty/"/" stays "/".
129
+ const basePath = useMemo(() => {
130
+ const raw = registry.cmsConfig?.basePath;
131
+ if (!raw || raw === "/") return "/";
132
+ const trimmed = raw.replace(/^\/+/, "").replace(/\/+$/, "");
133
+ return trimmed ? `/${trimmed}` : "/";
134
+ }, [registry.cmsConfig?.basePath]);
135
+
112
136
  const urlController = useBuildUrlController({
113
- basePath: "/",
137
+ basePath,
114
138
  baseCollectionPath: "/c",
115
139
  collectionRegistryController
116
140
  });
@@ -211,9 +235,9 @@ export function RebaseNavigation({ children }: RebaseNavigationProps) {
211
235
 
212
236
  // ── Merge CMS-registered entityViews/entityActions into the customization controller ──
213
237
  // The <Rebase> component builds the customizationController from its own props,
214
- // but entity views passed to <RebaseCMS> are stored in the registry and not
238
+ // but entity views passed to <RebaseAdmin> are stored in the registry and not
215
239
  // automatically merged. We re-provide an enriched controller here so that
216
- // downstream consumers (EntityEditView, side panels, etc.) can resolve
240
+ // downstream consumers (EditViewBinding, side panels, etc.) can resolve
217
241
  // string-keyed entity views like "blog_preview".
218
242
  const enrichedCustomizationController = useMemo(() => {
219
243
  const cmsEntityViews = (registry.cmsConfig?.entityViews ?? []) as EntityCustomView[];
@@ -245,14 +269,14 @@ export function RebaseNavigation({ children }: RebaseNavigationProps) {
245
269
  <CollectionRegistryContext.Provider value={collectionRegistryController}>
246
270
  <UrlContext.Provider value={urlController}>
247
271
  <NavigationStateContext.Provider value={navigationStateController}>
248
- <SideEntityProvider>
272
+ <SidePanelProvider>
249
273
  <BridgeAutoRegistrar
250
274
  collectionRegistryController={collectionRegistryController}
251
275
  urlController={urlController}
252
276
  navigationStateController={navigationStateController}
253
277
  />
254
278
  {children}
255
- </SideEntityProvider>
279
+ </SidePanelProvider>
256
280
  </NavigationStateContext.Provider>
257
281
  </UrlContext.Provider>
258
282
  </CollectionRegistryContext.Provider>
@@ -7,7 +7,7 @@ import {
7
7
  UIReferenceView,
8
8
  NotFoundPage,
9
9
  useComponentOverride
10
- } from "@rebasepro/core";
10
+ } from "@rebasepro/app";
11
11
  import { CircularProgressCenter } from "@rebasepro/ui";
12
12
 
13
13
  import { ContentHomePage as DefaultHomePage } from "./HomePage/ContentHomePage";
@@ -17,7 +17,7 @@ import { CustomViewRoute } from "../routes/CustomViewRoute";
17
17
  import { useNavigationStateController } from "../hooks/navigation/contexts/NavigationStateContext";
18
18
  import { CollectionEditorDialogs } from "./CollectionEditorDialogs";
19
19
  import { useEffect } from "react";
20
- import { useTranslation } from "@rebasepro/core";
20
+ import { useTranslation } from "@rebasepro/app";
21
21
  import { useBreadcrumbsController } from "../index";
22
22
 
23
23
  function SettingsView() {
@@ -1,7 +1,7 @@
1
1
  import React, { useMemo } from "react";
2
2
  import {
3
3
  useRebaseRegistry
4
- } from "@rebasepro/core";
4
+ } from "@rebasepro/app";
5
5
  import { ErrorBoundary } from "@rebasepro/ui";
6
6
 
7
7
  import { RebaseAuthGate } from "./RebaseAuthGate";
@@ -11,6 +11,7 @@ import { RebaseRouteDefs } from "./RebaseRouteDefs";
11
11
 
12
12
  export interface RebaseShellProps {
13
13
  title?: string;
14
+ /** Top bar. Only rendered if provided — pass `<AppBar/>` for the default one. */
14
15
  appBar?: React.ReactNode;
15
16
  drawer?: React.ReactNode;
16
17
  autoOpenDrawer?: boolean;
@@ -1,33 +1,34 @@
1
- import type { EntityCollection } from "@rebasepro/types";
1
+ import type { CollectionConfig } from "@rebasepro/types";
2
2
  import React, { MouseEventHandler, useCallback, useEffect, useMemo, useRef, useState } from "react";
3
3
  import { CollectionSize, Entity, FilterValues } from "@rebasepro/types";
4
4
 
5
5
  import {
6
- EntityCollectionRowActions,
7
- EntityCollectionTable
8
- } from "../EntityCollectionTable";
6
+ CollectionRowActions,
7
+ CollectionTableBinding
8
+ } from "../CollectionTableBinding";
9
9
  import {
10
+ CollectionScopeProvider,
10
11
  useAuthController,
11
12
  useCustomizationController,
12
13
  useData,
13
14
  useDataTableController,
14
15
  useLargeLayout,
15
16
  usePermissions
16
- } from "@rebasepro/core";
17
- import { ErrorView } from "@rebasepro/core";
17
+ } from "@rebasepro/app";
18
+ import { ErrorView } from "@rebasepro/app";
18
19
  import { Button, DialogActions, PlusIcon, Typography } from "@rebasepro/ui";
19
- import { IconForView } from "@rebasepro/core";
20
- import { useSelectionController } from "../EntityCollectionView/useSelectionController";
20
+ import { IconForView } from "@rebasepro/app";
21
+ import { useSelectionController } from "../CollectionViewBinding/useSelectionController";
21
22
 
22
- import { useColumnIds } from "@rebasepro/core";
23
+ import { useColumnIds } from "@rebasepro/app";
23
24
  import { useSideDialogContext } from "../SideDialogs";
24
- import { useAnalyticsController } from "@rebasepro/core";
25
- import { useUrlController, useSideEntityController } from "../../index";
25
+ import { useAnalyticsController } from "@rebasepro/app";
26
+ import { useUrlController, useSidePanel } from "../../index";
26
27
 
27
28
  /**
28
29
  * @group Components
29
30
  */
30
- export interface EntitySelectionProps<M extends Record<string, unknown>> {
31
+ export interface SelectionProps<M extends Record<string, unknown>> {
31
32
 
32
33
  /**
33
34
  * Allow multiple selection of values
@@ -37,7 +38,7 @@ export interface EntitySelectionProps<M extends Record<string, unknown>> {
37
38
  /**
38
39
  * Entity collection config
39
40
  */
40
- collection?: EntityCollection<M>;
41
+ collection?: CollectionConfig<M>;
41
42
 
42
43
  /**
43
44
  * Absolute path of the collection.
@@ -87,20 +88,20 @@ export interface EntitySelectionProps<M extends Record<string, unknown>> {
87
88
 
88
89
  /**
89
90
  * This component allows to select entities from a given collection.
90
- * You probably want to open this dialog as a side view using {@link useEntitySelectionTable}
91
+ * You probably want to open this dialog as a side view using {@link useSelectionTableBinding}
91
92
  * @group Components
92
93
  */
93
- export function EntitySelectionTable<M extends Record<string, unknown>>(
94
- props: EntitySelectionProps<M>
94
+ export function SelectionTableBinding<M extends Record<string, unknown>>(
95
+ props: SelectionProps<M>
95
96
  ) {
96
97
  if (!props.collection) {
97
98
  return <ErrorView
98
99
  error={"Could not find collection"}/>
99
100
  }
100
- return <EntitySelectionTableInternal {...props} collection={props.collection} />;
101
+ return <SelectionTableBindingInternal {...props} collection={props.collection} />;
101
102
  }
102
103
 
103
- function EntitySelectionTableInternal<M extends Record<string, unknown>>(
104
+ function SelectionTableBindingInternal<M extends Record<string, unknown>>(
104
105
  {
105
106
  onSingleEntitySelected,
106
107
  onMultipleEntitiesSelected,
@@ -111,10 +112,10 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
111
112
  description,
112
113
  fixedFilter,
113
114
  maxSelection
114
- }: EntitySelectionProps<M> & { collection: EntityCollection<M> }) {
115
+ }: SelectionProps<M> & { collection: CollectionConfig<M> }) {
115
116
 
116
117
  const sideDialogContext = useSideDialogContext();
117
- const sideEntityController = useSideEntityController();
118
+ const sidePanelController = useSidePanel();
118
119
  const urlController = useUrlController();
119
120
  const analyticsController = useAnalyticsController();
120
121
 
@@ -212,7 +213,7 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
212
213
  analyticsController.onAnalyticsEvent?.("reference_selection_new_entity", {
213
214
  path
214
215
  });
215
- sideEntityController.open({
216
+ sidePanelController.open({
216
217
  path: path,
217
218
  collection,
218
219
  updateUrl: true,
@@ -237,7 +238,7 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
237
238
  }) => {
238
239
  const selectedEntities = selectionController.selectedEntities;
239
240
  const isSelected = selectedEntities && selectedEntities.map(e => e.id).indexOf(entity.id) > -1;
240
- return <EntityCollectionRowActions
241
+ return <CollectionRowActions
241
242
  width={width}
242
243
  frozen={frozen}
243
244
  entity={entity}
@@ -269,11 +270,12 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
269
270
 
270
271
  return (
271
272
 
273
+ <CollectionScopeProvider collection={collection}>
272
274
  <div className="flex flex-col h-full">
273
275
 
274
276
  <div className="grow">
275
277
  {entitiesDisplayedFirst &&
276
- <EntityCollectionTable
278
+ <CollectionTableBinding
277
279
  additionalFields={collection.additionalFields}
278
280
  displayedColumnIds={displayedColumnIds}
279
281
  onEntityClick={onEntityClick}
@@ -316,6 +318,7 @@ function EntitySelectionTableInternal<M extends Record<string, unknown>>(
316
318
  </Button>
317
319
  </DialogActions>
318
320
  </div>
321
+ </CollectionScopeProvider>
319
322
 
320
323
  );
321
324
 
@@ -327,7 +330,7 @@ function EntitySelectionDialogActions({
327
330
  onClear,
328
331
  onNewClick
329
332
  }: {
330
- collection: EntityCollection<any>,
333
+ collection: CollectionConfig<any>,
331
334
  path: string,
332
335
  onClear: () => void,
333
336
  onNewClick: () => void
@@ -1,5 +1,5 @@
1
- import { useEntitySelectionDialog } from "../hooks/useEntitySelectionDialog";
2
- import type { EntityCollection } from "@rebasepro/types";
1
+ import { useSelectionDialog } from "../hooks/useSelectionDialog";
2
+ import type { CollectionConfig } from "@rebasepro/types";
3
3
  import React, { useCallback, useMemo } from "react";
4
4
 
5
5
  import { Entity, EntityReference, FilterValues } from "@rebasepro/types";
@@ -55,7 +55,7 @@ export function ReferenceWidget<M extends Record<string, unknown>>({
55
55
 
56
56
  const collectionRegistryController = useCollectionRegistryController();
57
57
 
58
- const collection: EntityCollection | undefined = useMemo(() => {
58
+ const collection: CollectionConfig | undefined = useMemo(() => {
59
59
  return collectionRegistryController.getCollection(path);
60
60
  }, [path, collectionRegistryController.getCollection]);
61
61
 
@@ -83,7 +83,7 @@ export function ReferenceWidget<M extends Record<string, unknown>>({
83
83
  }
84
84
  }, [disabled, onReferenceSelected]);
85
85
 
86
- const referenceDialogController = useEntitySelectionDialog({
86
+ const referenceDialogController = useSelectionDialog({
87
87
  multiselect,
88
88
  path,
89
89
  collection,