@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,10 +1,10 @@
1
1
  import { Entity } from "@rebasepro/types";
2
- import { EntityCollection } from "@rebasepro/types";
2
+ import { CollectionConfig } from "@rebasepro/types";
3
3
  import { FormContext } from "../fields";
4
4
  import { FormexController } from "./formex";
5
5
  export interface EntityFormActionsProps {
6
6
  path: string;
7
- collection: EntityCollection;
7
+ collection: CollectionConfig;
8
8
  entity?: Entity;
9
9
  layout: "bottom" | "side" | "responsive";
10
10
  savingError?: Error;
@@ -1,5 +1,5 @@
1
1
  import { Entity, EntityStatus } from "@rebasepro/types";
2
- import { EntityCollection, EntityCustomViewParams } from "@rebasepro/types";
2
+ import { CollectionConfig, EntityCustomViewParams } from "@rebasepro/types";
3
3
  import { FormContext } from "../fields";
4
4
  import { FormexController } from "./formex";
5
5
  import { EntityFormActionsProps } from "./EntityFormActionsProps";
@@ -11,7 +11,7 @@ import { EntityFormActionsProps } from "./EntityFormActionsProps";
11
11
  export type EntityFormProps<M extends Record<string, unknown>> = {
12
12
  path: string;
13
13
  fullIdPath?: string;
14
- collection: EntityCollection<M>;
14
+ collection: CollectionConfig<M>;
15
15
  entityId?: string | number;
16
16
  entity?: Entity<M>;
17
17
  databaseId?: string;
@@ -104,5 +104,5 @@ export type OnUpdateParams = {
104
104
  path: string;
105
105
  entityId?: string | number;
106
106
  selectedTab?: string;
107
- collection: EntityCollection<Record<string, unknown>>;
107
+ collection: CollectionConfig<Record<string, unknown>>;
108
108
  };
@@ -1 +1 @@
1
- export type { FormexController, FormexResetProps } from "@rebasepro/formex";
1
+ export type { FormexController, FormexResetProps } from "@rebasepro/forms";
@@ -1,7 +1,7 @@
1
1
  import { InferPropertyType } from "@rebasepro/types";
2
2
  import { Entity } from "@rebasepro/types";
3
3
  import { FormexController } from "./components/formex";
4
- import { EntityCollection } from "@rebasepro/types";
4
+ import { CollectionConfig } from "@rebasepro/types";
5
5
  import { Property } from "@rebasepro/types";
6
6
  export type DefaultFieldConfig = "text_field" | "multiline" | "markdown" | "url" | "email" | "switch" | "select" | "multi_select" | "user_select" | "number_input" | "number_select" | "multi_number_select" | "file_upload" | "multi_file_upload" | "reference" | "multi_references" | "relation" | "date_time" | "group" | "key_value" | "repeat" | "custom_array" | "block" | "vector_input";
7
7
  /**
@@ -135,7 +135,7 @@ export interface FormContext<M extends Record<string, unknown> = Record<string,
135
135
  /**
136
136
  * Collection of the entity being modified
137
137
  */
138
- collection?: EntityCollection<M>;
138
+ collection?: CollectionConfig<M>;
139
139
  /**
140
140
  * Entity id, it can be undefined if it's a new entity
141
141
  */
@@ -6,7 +6,7 @@
6
6
  import type { EntityTableController } from "@rebasepro/types";
7
7
  import type { CollectionDataController } from "@rebasepro/ui";
8
8
  /**
9
- * React hook that adapts an EntityTableController to a CollectionDataController.
9
+ * React hook that adapts a EntityTableController to a CollectionDataController.
10
10
  *
11
11
  * Usage:
12
12
  * ```tsx
@@ -16,10 +16,7 @@ import type { CollectionDataController } from "@rebasepro/ui";
16
16
  * <CollectionView dataController={dataController} ... />
17
17
  * ```
18
18
  */
19
- export declare function useCollectionDataController<M extends Record<string, unknown>>(tableController: EntityTableController<M>): CollectionDataController<M & {
20
- id: string | number;
21
- path: string;
22
- }>;
19
+ export declare function useCollectionDataController<M extends Record<string, unknown>>(tableController: EntityTableController<M>): CollectionDataController<M>;
23
20
  /**
24
21
  * Non-hook version for cases where you already have the data
25
22
  * and just need to build a static controller.
@@ -1,12 +1,12 @@
1
- import type { EntityCollection, UrlController, SideEntityController } from "@rebasepro/types";
1
+ import type { CollectionConfig, UrlController, SidePanelController } from "@rebasepro/types";
2
2
  export { removeInitialAndTrailingSlashes, removeInitialSlash, removeTrailingSlash, addInitialSlash, getLastSegment, resolveCollectionPathIds, getCollectionBySlugWithin, getCollectionPathsCombinations } from "@rebasepro/common";
3
3
  /**
4
- * Navigate to an entity using either a side panel or full-screen mode.
4
+ * Navigate to a entity using either a side panel or full-screen mode.
5
5
  * This is an admin-specific UI concern and lives here (not in common).
6
6
  */
7
- export declare function navigateToEntity({ openEntityMode, collection, entityId, copy, path, selectedTab, defaultValues, sideEntityController, onClose, navigation, replace }: {
7
+ export declare function navigateToEntity({ openEntityMode, collection, entityId, copy, path, selectedTab, defaultValues, sidePanelController, onClose, navigation, replace }: {
8
8
  openEntityMode?: "side_panel" | "full_screen" | "split" | "dialog";
9
- collection?: EntityCollection;
9
+ collection?: CollectionConfig;
10
10
  entityId?: string | number;
11
11
  selectedTab?: string;
12
12
  copy?: boolean;
@@ -14,13 +14,13 @@ export declare function navigateToEntity({ openEntityMode, collection, entityId,
14
14
  * Pre-populate the new entity form with these values.
15
15
  * Only applied when entityId is not set (i.e. "new" mode).
16
16
  *
17
- * Side panel: passed through EntitySidePanelPropsEntityEditView.
17
+ * Side panel: passed through SidePanelBindingPropsEditViewBinding.
18
18
  * Full screen: carried via React Router location.state so the route
19
19
  * component can read it on mount without polluting the URL.
20
20
  */
21
21
  defaultValues?: Record<string, unknown>;
22
22
  path: string;
23
- sideEntityController: SideEntityController;
23
+ sidePanelController: SidePanelController;
24
24
  onClose?: () => void;
25
25
  navigation: UrlController;
26
26
  replace?: boolean;
@@ -1,7 +1,7 @@
1
- import type { EntityCollection, PropertyConfig } from "@rebasepro/types";
1
+ import type { CollectionConfig, PropertyConfig } from "@rebasepro/types";
2
2
  import { AuthController } from "@rebasepro/types";
3
- export declare function getEntityPreviewKeys(authController: AuthController, targetCollection: EntityCollection<any>, fields: Record<string, PropertyConfig>, previewProperties?: string[], limit?: number): string[];
4
- export declare function getEntityTitlePropertyKey<M extends Record<string, unknown>>(collection: EntityCollection<M>, propertyConfigs: Record<string, PropertyConfig>): string | undefined;
3
+ export declare function getEntityPreviewKeys(authController: AuthController, targetCollection: CollectionConfig<any>, fields: Record<string, PropertyConfig>, previewProperties?: string[], limit?: number): string[];
4
+ export declare function getEntityTitlePropertyKey<M extends Record<string, unknown>>(collection: CollectionConfig<M>, propertyConfigs: Record<string, PropertyConfig>): string | undefined;
5
5
  /**
6
6
  * Attempt to turn a title value (which might be a relation, reference, date, array, or other complex object)
7
7
  * into a renderable, human-readable string.
@@ -1,5 +1,5 @@
1
1
  import type { Properties } from "@rebasepro/types";
2
- import type { EntityCollection, Property, PropertyConfig } from "@rebasepro/types";
2
+ import type { CollectionConfig, Property, PropertyConfig } from "@rebasepro/types";
3
3
  import React from "react";
4
4
  import type { IconSize } from "@rebasepro/ui";
5
5
  export declare function isReferenceProperty(property: Property): boolean | null;
@@ -22,4 +22,4 @@ export declare function getBracketNotation(path: string): string;
22
22
  * @param propertiesOrder
23
23
  */
24
24
  export declare function getPropertiesWithPropertiesOrder(properties: Properties, propertiesOrder?: string[]): Properties;
25
- export declare function getDefaultPropertiesOrder(collection: EntityCollection): string[];
25
+ export declare function getDefaultPropertiesOrder(collection: CollectionConfig): string[];
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Shared tab value constants used by EntityEditView and EntityDetailView.
2
+ * Shared tab value constants used by EditViewBinding and DetailViewBinding.
3
3
  */
4
4
  export declare const MAIN_TAB_VALUE = "__main_##Q$SC^#S6";
5
5
  export declare const JSON_TAB_VALUE = "__json";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rebasepro/admin",
3
3
  "type": "module",
4
- "version": "0.8.0",
4
+ "version": "0.9.1-canary.09aaf62",
5
5
  "description": "Rebase CMS — content management views, forms, and routing",
6
6
  "funding": {
7
7
  "url": "https://github.com/sponsors/rebaseco"
@@ -18,7 +18,7 @@
18
18
  "types": "./dist/index.d.ts",
19
19
  "source": "src/index.ts",
20
20
  "engines": {
21
- "node": ">=14"
21
+ "node": ">=20"
22
22
  },
23
23
  "keywords": [
24
24
  "rebase",
@@ -38,7 +38,7 @@
38
38
  "import": "./dist/index.js"
39
39
  },
40
40
  "./editor": {
41
- "types": "./dist/editor.d.ts",
41
+ "types": "./dist/editor/index.d.ts",
42
42
  "development": "./dist/editor.js",
43
43
  "import": "./dist/editor.js"
44
44
  },
@@ -83,13 +83,13 @@
83
83
  "react-dropzone": "^15.0.0",
84
84
  "react-use-measure": "^2.1.7",
85
85
  "zod": "^4.4.3",
86
- "@rebasepro/common": "0.8.0",
87
- "@rebasepro/core": "0.8.0",
88
- "@rebasepro/formex": "0.8.0",
89
- "@rebasepro/schema-inference": "0.8.0",
90
- "@rebasepro/types": "0.8.0",
91
- "@rebasepro/ui": "0.8.0",
92
- "@rebasepro/utils": "0.8.0"
86
+ "@rebasepro/common": "0.9.1-canary.09aaf62",
87
+ "@rebasepro/app": "0.9.1-canary.09aaf62",
88
+ "@rebasepro/inference": "0.9.1-canary.09aaf62",
89
+ "@rebasepro/forms": "0.9.1-canary.09aaf62",
90
+ "@rebasepro/types": "0.9.1-canary.09aaf62",
91
+ "@rebasepro/utils": "0.9.1-canary.09aaf62",
92
+ "@rebasepro/ui": "0.9.1-canary.09aaf62"
93
93
  },
94
94
  "peerDependencies": {
95
95
  "react": ">=19.0.0",
@@ -153,17 +153,12 @@
153
153
  ],
154
154
  "moduleNameMapper": {
155
155
  "\\.(css|less)$": "<rootDir>/test/__mocks__/styleMock.js",
156
- "^@rebasepro/ui$": "<rootDir>/../ui/src/index.ts",
157
- "^@rebasepro/core$": "<rootDir>/../core/src/index.ts",
158
- "^@rebasepro/common$": "<rootDir>/../common/src/index.ts",
159
- "^@rebasepro/types$": "<rootDir>/../types/src/index.ts",
160
- "^@rebasepro/formex$": "<rootDir>/../formex/src/index.ts",
161
- "^@rebasepro/utils$": "<rootDir>/../utils/src/index.ts"
156
+ "^@rebasepro/([a-z0-9-]+)$": "<rootDir>/../$1/src/index.ts"
162
157
  }
163
158
  },
164
159
  "scripts": {
165
160
  "watch": "vite build --watch",
166
- "build": "vite build && tsc --emitDeclarationOnly -p tsconfig.prod.json",
161
+ "build": "vite build && tsc --emitDeclarationOnly -p tsconfig.prod.json && node ../../scripts/assert-build-output.mjs",
167
162
  "test:lint": "eslint \"src/**\" --quiet",
168
163
  "test": "jest --passWithNoTests",
169
164
  "clean": "rm -rf dist && find ./src -name '*.js' -type f | xargs rm -f",
@@ -1,10 +1,10 @@
1
1
  import { useUrlController } from "./_cms_internals";
2
2
  import React, { useCallback, useEffect, useMemo, useState } from "react";
3
- import { Entity, EntityCollection, Property, TableMetadata, User } from "@rebasepro/types";
3
+ import { Entity, CollectionConfig, Property, TableMetadata, User } from "@rebasepro/types";
4
4
  import { deepEqual as equal } from "fast-equals";
5
5
 
6
6
  import { CollectionsConfigController } from "./types/config_controller";
7
- import { useCustomizationController, useRebaseContext, useAuthController, useSnackbarController } from "@rebasepro/core";
7
+ import { useCustomizationController, useRebaseContext, useAuthController, useSnackbarController } from "@rebasepro/app";
8
8
  import { getTableName } from "@rebasepro/common";
9
9
  import { useNavigate } from "react-router-dom";
10
10
  import { CollectionEditorController } from "./types/collection_editor_controller";
@@ -87,7 +87,7 @@ export const ConfigControllerProvider = React.memo(
87
87
 
88
88
  const [currentDialog, setCurrentDialog] = React.useState<{
89
89
  isNewCollection: boolean,
90
- parentCollection?: EntityCollection,
90
+ parentCollection?: CollectionConfig,
91
91
  editedCollectionId?: string,
92
92
  path?: string,
93
93
  parentCollectionSlugs: string[], parentEntityIds: string[],
@@ -95,7 +95,7 @@ export const ConfigControllerProvider = React.memo(
95
95
  path?: string,
96
96
  name?: string
97
97
  },
98
- copyFrom?: EntityCollection,
98
+ copyFrom?: CollectionConfig,
99
99
  redirect: boolean,
100
100
  existingEntities?: Entity[],
101
101
  pathSuggestions?: string[];
@@ -107,14 +107,14 @@ export const ConfigControllerProvider = React.memo(
107
107
  propertyKey?: string,
108
108
  property?: Property,
109
109
  namespace?: string,
110
- parentCollection?: EntityCollection,
110
+ parentCollection?: CollectionConfig,
111
111
  currentPropertiesOrder?: string[],
112
112
  editedCollectionId: string,
113
113
  path?: string,
114
114
  parentCollectionSlugs: string[], parentEntityIds: string[],
115
115
 
116
116
  existingEntities?: Entity[];
117
- collection?: EntityCollection;
117
+ collection?: CollectionConfig;
118
118
  }>();
119
119
 
120
120
 
@@ -130,7 +130,7 @@ export const ConfigControllerProvider = React.memo(
130
130
  id?: string,
131
131
  path?: string,
132
132
  parentCollectionSlugs: string[], parentEntityIds: string[],
133
- parentCollection?: EntityCollection,
133
+ parentCollection?: CollectionConfig,
134
134
  existingEntities?: Entity[],
135
135
  initialView?: "general" | "display" | "properties",
136
136
  expandKanban?: boolean
@@ -169,7 +169,7 @@ parentEntityIds,
169
169
  currentPropertiesOrder?: string[],
170
170
  editedCollectionId: string,
171
171
  parentCollectionSlugs: string[], parentEntityIds: string[],
172
- collection: EntityCollection,
172
+ collection: CollectionConfig,
173
173
  existingEntities?: Entity[]
174
174
  }) => {
175
175
  console.debug("Edit property", propertyKey, property, editedCollectionId, currentPropertiesOrder, parentCollectionSlugs, parentEntityIds, collection);
@@ -207,12 +207,12 @@ parentEntityIds,
207
207
  sourceClick
208
208
  }: {
209
209
  parentCollectionSlugs: string[], parentEntityIds: string[],
210
- parentCollection?: EntityCollection
210
+ parentCollection?: CollectionConfig
211
211
  initialValues?: {
212
212
  path?: string,
213
213
  name?: string
214
214
  },
215
- copyFrom?: EntityCollection,
215
+ copyFrom?: CollectionConfig,
216
216
  redirect: boolean,
217
217
  sourceClick?: string
218
218
  }) => {
@@ -262,7 +262,7 @@ parentEntityIds,
262
262
  onAnalyticsEvent,
263
263
  unmappedTables,
264
264
  onFetchTableMetadata,
265
- handleClose: (collection?: EntityCollection) => {
265
+ handleClose: (collection?: CollectionConfig) => {
266
266
  if (currentDialog?.redirect) {
267
267
  if (collection && currentDialog?.isNewCollection && !currentDialog.parentCollectionSlugs.length) {
268
268
  const url = urlController.buildUrlCollectionPath(collection.slug);
@@ -8,18 +8,18 @@
8
8
  export { useCollectionRegistryController } from "../hooks/navigation/contexts/CollectionRegistryContext";
9
9
  export { useNavigationStateController } from "../hooks/navigation/contexts/NavigationStateContext";
10
10
  export { useUrlController } from "../hooks/navigation/contexts/UrlContext";
11
- export { useSideEntityController } from "../hooks/useSideEntityController";
11
+ export { useSidePanel } from "../hooks/useSidePanel";
12
12
  export { useBreadcrumbsController } from "../hooks/useBreadcrumbsController";
13
13
 
14
14
  // Components
15
15
  export { FieldCaption } from "../components/FieldCaption";
16
16
  export { SearchIconsView } from "../components/SearchIconsView";
17
17
  export { PropertyConfigBadge } from "../components/PropertyConfigBadge";
18
- export { EntityCollectionTable } from "../components/EntityCollectionTable";
18
+ export { CollectionTableBinding } from "../components/CollectionTableBinding";
19
19
  export { VirtualTableInput } from "@rebasepro/ui";
20
20
  export { ArrayContainer } from "../components/ArrayContainer";
21
21
  export type { ArrayEntryParams } from "../components/ArrayContainer";
22
- export { useSelectionController } from "../components/EntityCollectionView/useSelectionController";
22
+ export { useSelectionController } from "../components/CollectionViewBinding/useSelectionController";
23
23
 
24
24
  // Data import
25
25
  export { ImportFileUpload } from "../data_import/components/ImportFileUpload";
@@ -1,14 +1,14 @@
1
- import { EntityCollection } from "@rebasepro/types";
1
+ import { CollectionConfig } from "@rebasepro/types";
2
2
 
3
3
  export interface GenerateCollectionRequest {
4
4
  /** User's natural language description of what they want */
5
5
  prompt: string;
6
6
 
7
7
  /** Other collections in the project (for context/relationships). Limit to 30. */
8
- existingCollections: Partial<EntityCollection>[];
8
+ existingCollections: Partial<CollectionConfig>[];
9
9
 
10
10
  /** Optional for generate, required for modifications. If provided, modifies this collection */
11
- existingCollection?: Partial<EntityCollection>;
11
+ existingCollection?: Partial<CollectionConfig>;
12
12
  }
13
13
 
14
14
  /** Operation types for modifying a collection */
@@ -23,7 +23,7 @@ export interface CollectionOperation {
23
23
 
24
24
  /** Result from collection generation, including optional delta operations */
25
25
  export interface GenerateCollectionResult {
26
- collection: EntityCollection;
26
+ collection: CollectionConfig;
27
27
  operations?: CollectionOperation[];
28
28
  }
29
29
 
@@ -57,7 +57,7 @@ export interface BuildCollectionGenerationCallbackProps {
57
57
  /**
58
58
  * Function to get the auth token.
59
59
  * This is typically `authController.getAuthToken` from `@rebasepro/client`
60
- * (or `@rebasepro/client-firebase` if using Firebase).
60
+ * (or `@rebasepro/firebase` if using Firebase).
61
61
  */
62
62
  getAuthToken: () => Promise<string>;
63
63
 
@@ -75,15 +75,15 @@ export interface BuildCollectionGenerationCallbackProps {
75
75
  *
76
76
  * @example
77
77
  * ```tsx
78
- * import { RebaseCMS } from "@rebasepro/admin";
78
+ * import { RebaseAdmin } from "@rebasepro/admin";
79
79
  * import { buildCollectionGenerationCallback } from "@rebasepro/admin/collection_editor";
80
- * import { useFirebaseAuthController } from "@rebasepro/client-firebase";
80
+ * import { useFirebaseAuthController } from "@rebasepro/firebase";
81
81
  *
82
82
  * const authController = useFirebaseAuthController({ firebaseApp });
83
83
  *
84
84
  * export function App() {
85
85
  * return (
86
- * <RebaseCMS
86
+ * <RebaseAdmin
87
87
  * collectionEditor={{
88
88
  * generateCollection: buildCollectionGenerationCallback({
89
89
  * getAuthToken: authController.getAuthToken
@@ -12,7 +12,7 @@
12
12
  */
13
13
 
14
14
  import type React from "react";
15
- import type { SerializableProperty, SerializableCollection } from "./serializable_types";
15
+ import type { SerializableProperty, SerializableCollectionConfig } from "./serializable_types";
16
16
 
17
17
  // ═══════════════════════════════════════════════════════════════════════
18
18
  // PROPERTY TYPE PRESETS
@@ -90,7 +90,7 @@ export interface ExtraPropertyFieldsParams {
90
90
  /** The full current property being edited (serializable form). */
91
91
  property: SerializableProperty;
92
92
  /** The collection this property belongs to (serializable form). */
93
- collection: SerializableCollection;
93
+ collection: SerializableCollectionConfig;
94
94
  }
95
95
 
96
96
  /**
@@ -102,7 +102,7 @@ export interface ExtraCollectionFieldsParams {
102
102
  /** Callback to update a single metadata key. Triggers dirty-state tracking. */
103
103
  onMetadataChange: (key: string, value: unknown) => void;
104
104
  /** The full current collection being edited (serializable form). */
105
- collection: SerializableCollection;
105
+ collection: SerializableCollectionConfig;
106
106
  }
107
107
 
108
108
  // ═══════════════════════════════════════════════════════════════════════
@@ -23,16 +23,16 @@ export {
23
23
  } from "./useJsonCollectionsConfigController";
24
24
 
25
25
  export {
26
- toSerializableCollection,
26
+ toSerializableCollectionConfig,
27
27
  toSerializableProperty,
28
28
  toSerializableProperties,
29
- fromSerializableCollection,
29
+ fromSerializableCollectionConfig,
30
30
  fromSerializableProperty,
31
31
  fromSerializableProperties,
32
32
  } from "./serializable_utils";
33
33
 
34
34
  export type {
35
- SerializableCollection,
35
+ SerializableCollectionConfig,
36
36
  SerializableProperty,
37
37
  SerializableProperties,
38
38
  SerializableBaseProperty,
@@ -1,4 +1,4 @@
1
- import { EntityCollection, Property, StringProperty, NumberProperty, ArrayProperty, TableColumnInfo, TableMetadata, PostgresProperties } from "@rebasepro/types";
1
+ import { CollectionConfig, Property, StringProperty, NumberProperty, ArrayProperty, TableColumnInfo, TableMetadata, PostgresProperties } from "@rebasepro/types";
2
2
  import { prettifyIdentifier } from "@rebasepro/utils";
3
3
 
4
4
  /**
@@ -193,13 +193,13 @@ label: prettifyIdentifier(v) })),
193
193
  }
194
194
 
195
195
  /**
196
- * Builds a partial EntityCollection from PostgreSQL table metadata.
196
+ * Builds a partial CollectionConfig from PostgreSQL table metadata.
197
197
  * This is used when creating a new collection from an existing database table.
198
198
  */
199
199
  export function buildCollectionFromTableMetadata(
200
200
  tableName: string,
201
201
  metadata: TableMetadata
202
- ): Partial<EntityCollection> {
202
+ ): Partial<CollectionConfig> {
203
203
  const properties: Record<string, Property> = {};
204
204
  const propertiesOrder: string[] = [];
205
205
  const relations: any[] = []; // In the builder/editor, target can be a string path before hydration
@@ -5,7 +5,7 @@
5
5
  * class instances) from the original types in `@rebasepro/types`, making
6
6
  * them safe for `JSON.stringify()` / database storage.
7
7
  *
8
- * Use `toSerializableCollection` / `fromSerializableCollection` from
8
+ * Use `toSerializableCollectionConfig` / `fromSerializableCollectionConfig` from
9
9
  * `./serializable_utils` to convert between the original and serializable forms.
10
10
  *
11
11
  * @module
@@ -263,7 +263,7 @@ export interface SerializableReferenceProperty extends SerializableBaseProperty
263
263
  /**
264
264
  * JSON-serializable `RelationProperty`.
265
265
  * `target` is string-only (collection slug). The function variant
266
- * `() => EntityCollection` is not serializable.
266
+ * `() => CollectionConfig` is not serializable.
267
267
  */
268
268
  export interface SerializableRelationProperty extends SerializableBaseProperty {
269
269
  ui?: SerializableRelationUIConfig;
@@ -289,7 +289,7 @@ export interface SerializableRelationProperty extends SerializableBaseProperty {
289
289
  includeId?: boolean;
290
290
  includeEntityLink?: boolean;
291
291
  widget?: "select" | "dialog";
292
- // overrides are dropped (can contain non-serializable EntityCollection fields)
292
+ // overrides are dropped (can contain non-serializable CollectionConfig fields)
293
293
  // relation (resolved Relation object) is dropped (runtime-only, contains function target)
294
294
  }
295
295
 
@@ -352,7 +352,7 @@ export type SerializableProperties = {
352
352
  // ═══════════════════════════════════════════════════════════════════════
353
353
 
354
354
  /**
355
- * JSON-serializable version of `EntityCollection` / `BaseEntityCollection`.
355
+ * JSON-serializable version of `CollectionConfig` / `BaseCollectionConfig`.
356
356
  *
357
357
  * Strips all non-serializable fields:
358
358
  * - Functions: `callbacks`, `childCollections`, `additionalFields`, `defaultSelectedView` (fn)
@@ -364,7 +364,7 @@ export type SerializableProperties = {
364
364
  *
365
365
  * Keeps all data-describing fields that the collection editor works with.
366
366
  */
367
- export interface SerializableCollection {
367
+ export interface SerializableCollectionConfig {
368
368
  slug: string;
369
369
  name: string;
370
370
  singularName?: string;
@@ -430,7 +430,7 @@ export interface SerializableCollection {
430
430
  // ── SQL / Postgres-specific ───────────────────────────────────────
431
431
  table?: string;
432
432
  schema?: string;
433
- securityRules?: SecurityRule[];
433
+ securityRules?: readonly SecurityRule[];
434
434
 
435
435
  // ── Owner ─────────────────────────────────────────────────────────
436
436
  ownerId?: string;
@@ -452,10 +452,10 @@ export interface SerializableCollection {
452
452
  */
453
453
  export interface JsonCollectionStore {
454
454
  /** Load all persisted collections. */
455
- load(): Promise<SerializableCollection[]>;
455
+ load(): Promise<SerializableCollectionConfig[]>;
456
456
 
457
457
  /** Save (create or update) a single collection by its slug. */
458
- save(slug: string, data: SerializableCollection): Promise<void>;
458
+ save(slug: string, data: SerializableCollectionConfig): Promise<void>;
459
459
 
460
460
  /** Delete a collection by its slug. */
461
461
  delete(slug: string): Promise<void>;
@@ -2,8 +2,8 @@
2
2
  * Conversion utilities between the full Rebase types and their
3
3
  * JSON-serializable counterparts.
4
4
  *
5
- * - `toSerializableCollection` / `toSerializableProperty` — strip non-serializable fields
6
- * - `fromSerializableCollection` / `fromSerializableProperty` — reconstruct original types
5
+ * - `toSerializableCollectionConfig` / `toSerializableProperty` — strip non-serializable fields
6
+ * - `fromSerializableCollectionConfig` / `fromSerializableProperty` — reconstruct original types
7
7
  *
8
8
  * @module
9
9
  */
@@ -14,7 +14,7 @@ import type {
14
14
  BinaryProperty,
15
15
  BooleanProperty,
16
16
  DateProperty,
17
- EntityCollection,
17
+ CollectionConfig,
18
18
  GeopointProperty,
19
19
  MapProperty,
20
20
  NumberProperty,
@@ -33,7 +33,7 @@ import type {
33
33
  SerializableBaseUIConfig,
34
34
  SerializableBinaryProperty,
35
35
  SerializableBooleanProperty,
36
- SerializableCollection,
36
+ SerializableCollectionConfig,
37
37
  SerializableDateProperty,
38
38
  SerializableDateValidation,
39
39
  SerializableGeopointProperty,
@@ -107,7 +107,7 @@ function serializeMatches(matches: string | RegExp | undefined): string | undefi
107
107
 
108
108
  /**
109
109
  * Resolve a relation target to a string slug.
110
- * Functions are called to extract the target; EntityCollection objects
110
+ * Functions are called to extract the target; CollectionConfig objects
111
111
  * use their slug.
112
112
  */
113
113
  function resolveRelationTarget(target: RelationProperty["target"]): string | undefined {
@@ -118,7 +118,7 @@ function resolveRelationTarget(target: RelationProperty["target"]): string | und
118
118
  const resolved = target();
119
119
  if (typeof resolved === "string") return resolved;
120
120
  if (resolved && typeof resolved === "object" && "slug" in resolved) {
121
- return (resolved as EntityCollection).slug;
121
+ return (resolved as CollectionConfig).slug;
122
122
  }
123
123
  } catch {
124
124
  // If the lazy resolver throws (e.g., circular dependency not yet ready), return undefined
@@ -389,15 +389,15 @@ export function toSerializableProperties(properties: Properties): SerializablePr
389
389
  // ═══════════════════════════════════════════════════════════════════════
390
390
 
391
391
  /**
392
- * Convert an `EntityCollection` to its JSON-serializable form.
392
+ * Convert an `CollectionConfig` to its JSON-serializable form.
393
393
  *
394
394
  * Strips all non-serializable fields (functions, React nodes, class instances)
395
395
  * while preserving the structural schema that the collection editor works with.
396
396
  *
397
397
  * The result is safe for `JSON.stringify()` and database storage.
398
398
  */
399
- export function toSerializableCollection(collection: EntityCollection): SerializableCollection {
400
- const result: SerializableCollection = {
399
+ export function toSerializableCollectionConfig(collection: CollectionConfig): SerializableCollectionConfig {
400
+ const result: SerializableCollectionConfig = {
401
401
  slug: collection.slug,
402
402
  name: collection.name,
403
403
  properties: toSerializableProperties(collection.properties),
@@ -436,13 +436,13 @@ export function toSerializableCollection(collection: EntityCollection): Serializ
436
436
  if (collection.localChangesBackup !== undefined) result.localChangesBackup = collection.localChangesBackup;
437
437
 
438
438
  // Kanban
439
- if (collection.kanban) result.kanban = collection.kanban as SerializableCollection["kanban"];
439
+ if (collection.kanban) result.kanban = collection.kanban as SerializableCollectionConfig["kanban"];
440
440
 
441
441
  // Filters and sorting
442
- if (collection.fixedFilter) result.fixedFilter = collection.fixedFilter as SerializableCollection["fixedFilter"];
443
- if (collection.defaultFilter) result.defaultFilter = collection.defaultFilter as SerializableCollection["defaultFilter"];
444
- if (collection.filterPresets) result.filterPresets = collection.filterPresets as SerializableCollection["filterPresets"];
445
- if (collection.sort) result.sort = collection.sort as SerializableCollection["sort"];
442
+ if (collection.fixedFilter) result.fixedFilter = collection.fixedFilter as SerializableCollectionConfig["fixedFilter"];
443
+ if (collection.defaultFilter) result.defaultFilter = collection.defaultFilter as SerializableCollectionConfig["defaultFilter"];
444
+ if (collection.filterPresets) result.filterPresets = collection.filterPresets as SerializableCollectionConfig["filterPresets"];
445
+ if (collection.sort) result.sort = collection.sort as SerializableCollectionConfig["sort"];
446
446
 
447
447
  // Numeric / boolean flags
448
448
  if (collection.pagination !== undefined) result.pagination = collection.pagination;
@@ -560,17 +560,17 @@ export function fromSerializableProperties(serialized: SerializableProperties):
560
560
  // ═══════════════════════════════════════════════════════════════════════
561
561
 
562
562
  /**
563
- * Convert a `SerializableCollection` back to an `EntityCollection`.
563
+ * Convert a `SerializableCollectionConfig` back to an `CollectionConfig`.
564
564
  *
565
565
  * The result will NOT contain any of the non-serializable fields
566
566
  * (callbacks, entityActions, etc.) — those must be re-attached by the
567
567
  * consumer if needed.
568
568
  */
569
- export function fromSerializableCollection(serialized: SerializableCollection): EntityCollection {
569
+ export function fromSerializableCollectionConfig(serialized: SerializableCollectionConfig): CollectionConfig {
570
570
  const { properties, ...rest } = serialized;
571
571
 
572
572
  return {
573
573
  ...rest,
574
574
  properties: fromSerializableProperties(properties),
575
- } as EntityCollection;
575
+ } as CollectionConfig;
576
576
  }