@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 { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
2
- import { Bn as useUrlController } from "./src-cxV1ODRG.js";
3
- import { s as AIModifiedPathsProvider } from "./PropertyEditView-DKzOpMjR.js";
4
- import { t as CollectionEditor } from "./CollectionEditorDialog-BO_aQ-Z4.js";
2
+ import { Bn as useUrlController } from "./src-B8WuGSPZ.js";
3
+ import { s as AIModifiedPathsProvider } from "./PropertyEditView-DfJbZ67t.js";
4
+ import { t as CollectionEditor } from "./CollectionEditorDialog-DbPpDDwb.js";
5
5
  import { useEffect, useState } from "react";
6
6
  import { Button, IconButton, PlusIcon, ResizablePanels, Tooltip, Typography, cls, defaultBorderMixin, iconSize } from "@rebasepro/ui";
7
- import { IconForView, UnsavedChangesDialog, useUnsavedChangesDialog } from "@rebasepro/core";
7
+ import { IconForView, UnsavedChangesDialog, useUnsavedChangesDialog } from "@rebasepro/app";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
9
  import { useLocation, useNavigate } from "react-router-dom";
10
10
  //#region src/collection_editor/ui/collection_editor/CollectionStudioView.tsx
@@ -189,4 +189,4 @@ function RouterCollectionsStudioView(props) {
189
189
  //#endregion
190
190
  export { CollectionStudioView as i, RouterCollectionsStudioView_exports as n, CollectionsStudioView as r, RouterCollectionsStudioView as t };
191
191
 
192
- //# sourceMappingURL=RouterCollectionsStudioView-BQTIExjA.js.map
192
+ //# sourceMappingURL=RouterCollectionsStudioView-C6XQ7Il5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RouterCollectionsStudioView-C6XQ7Il5.js","names":[],"sources":["../src/collection_editor/ui/collection_editor/CollectionStudioView.tsx","../src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx","../src/collection_editor/ui/collection_editor/RouterCollectionsStudioView.tsx"],"sourcesContent":["\nimport { useUnsavedChangesDialog, UnsavedChangesDialog } from \"@rebasepro/app\";\nimport * as React from \"react\";\nimport { useState } from \"react\";\nimport { Button, PlusIcon, Typography } from \"@rebasepro/ui\";\nimport { CollectionEditorDialogProps } from \"./CollectionEditorDialog\";\nimport { AIModifiedPathsProvider } from \"./AIModifiedPathsContext\";\nimport { CollectionEditor } from \"./CollectionEditorDialog\";\nimport type { CollectionConfig } from \"@rebasepro/types\";\n\nexport type CollectionStudioViewProps = Omit<CollectionEditorDialogProps, \"open\" | \"isNewCollection\" | \"editedCollectionId\" | \"handleClose\" | \"handleCancel\"> & {\n collectionId?: string | \"new\";\n\n /**\n * Called after a successful save.\n * Receives the saved collection (or undefined if dismissed without saving).\n * When not provided, save completes silently.\n */\n onSave?: (collection?: CollectionConfig) => void;\n\n /**\n * Called when the user cancels editing.\n * When not provided, cancel is a no-op.\n */\n onCancel?: () => void;\n};\n\nexport function CollectionStudioView({ collectionId, onSave, onCancel, ...props }: CollectionStudioViewProps) {\n\n // Form state from the editor\n const [formDirty, setFormDirty] = useState<boolean>(false);\n const [cancelRequested, setCancelRequested] = useState<boolean>(false);\n\n const { dialogProps, triggerDialog } = useUnsavedChangesDialog(\n formDirty,\n () => setFormDirty(false)\n );\n\n const activeCollectionId = collectionId;\n\n const handleCancelClick = () => {\n if (!formDirty) {\n onCancel?.();\n } else {\n setCancelRequested(true);\n triggerDialog();\n }\n };\n\n return (\n <div className=\"flex-grow flex flex-col h-full w-full bg-surface-50 dark:bg-surface-800\">\n <AIModifiedPathsProvider>\n {activeCollectionId ? (\n <CollectionEditor\n key={activeCollectionId}\n {...props}\n fullScreen={true}\n open={true}\n isNewCollection={activeCollectionId === \"new\"}\n editedCollectionId={activeCollectionId !== \"new\" ? activeCollectionId : undefined}\n handleCancel={handleCancelClick}\n handleClose={(savedCollection) => {\n setFormDirty(false);\n if (savedCollection) {\n setTimeout(() => {\n onSave?.(savedCollection);\n }, 0);\n }\n }}\n setFormDirty={setFormDirty}\n />\n ) : (\n <div className=\"flex-grow flex flex-col items-center justify-center h-full gap-4\">\n <Typography variant=\"label\">\n Select a collection or create a new one\n </Typography>\n <Button\n disabled={props.configController?.readOnly}\n onClick={() => onSave?.()}\n >\n <PlusIcon/>\n Add new collection\n </Button>\n </div>\n )}\n\n <UnsavedChangesDialog\n {...dialogProps}\n handleOk={() => {\n dialogProps.handleOk();\n if (cancelRequested) {\n onCancel?.();\n setCancelRequested(false);\n }\n }}\n handleCancel={() => {\n dialogProps.handleCancel();\n setCancelRequested(false);\n }}\n />\n </AIModifiedPathsProvider>\n </div>\n );\n}\n","\nimport { IconForView } from \"@rebasepro/app\";\nimport React, { useState, useEffect } from \"react\";\nimport {\n Button,\n cls,\n defaultBorderMixin,\n IconButton,\n iconSize,\n PlusIcon,\n ResizablePanels,\n Tooltip,\n Typography\n} from \"@rebasepro/ui\";\nimport type { CollectionConfig } from \"@rebasepro/types\";\nimport { CollectionsConfigController } from \"../../types/config_controller\";\nimport { CollectionStudioView } from \"./CollectionStudioView\";\nimport type { CollectionEditorExtensionProps } from \"../../extensibility_types\";\n\nexport interface CollectionsStudioViewProps extends CollectionEditorExtensionProps {\n configController: CollectionsConfigController;\n\n /**\n * Collections to show in the sidebar.\n * When provided, overrides the collections from `configController`.\n * Use this to control exactly which collections the editor displays.\n */\n collections?: CollectionConfig[];\n\n /**\n * Controlled active collection ID.\n * When provided together with `onActiveCollectionChange`,\n * navigation is fully external — no internal state is used.\n */\n activeCollectionId?: string;\n\n /**\n * Called when the user clicks a collection, \"new\", or navigates.\n * When provided, the component is fully controlled (no internal state).\n * When not provided, the component manages selection via internal state.\n *\n * Pass `\"new\"` to create a new collection. Pass `undefined` to deselect.\n */\n onActiveCollectionChange?: (collectionId: string | undefined) => void;\n}\n\nexport function CollectionsStudioView({\n configController,\n collections: collectionsProp,\n activeCollectionId: controlledActiveId,\n onActiveCollectionChange,\n propertyTypePresets,\n hiddenPropertyTypes,\n renderExtraPropertyFields,\n renderExtraCollectionFields,\n visibleTabs,\n standalone,\n}: CollectionsStudioViewProps) {\n\n // ── Navigation state ────────────────────────────────────────────────\n // If onActiveCollectionChange is provided, the component is controlled.\n // Otherwise, use internal state.\n const [internalActiveId, setInternalActiveId] = useState<string | undefined>(undefined);\n const isControlled = onActiveCollectionChange !== undefined;\n const activeCollectionId = isControlled ? controlledActiveId : internalActiveId;\n\n const setActiveCollectionId = (id: string | undefined) => {\n if (isControlled) {\n onActiveCollectionChange?.(id);\n } else {\n setInternalActiveId(id);\n }\n };\n\n // ── Collections list ────────────────────────────────────────────────\n const collections = collectionsProp ?? configController.collections ?? [];\n\n // ── Sidebar sizing ──────────────────────────────────────────────────\n const [sidebarSize, setSidebarSize] = useState(() => {\n try {\n const saved = localStorage.getItem(\"rebase_collections_editor_sidebar_size\");\n return saved !== null ? parseFloat(saved) : 25;\n } catch (e) {\n return 25;\n }\n });\n\n useEffect(() => {\n try {\n localStorage.setItem(\"rebase_collections_editor_sidebar_size\", sidebarSize.toString());\n } catch (e) {\n // ignore local storage error\n }\n }, [sidebarSize]);\n\n return (\n <div className=\"flex h-full w-full bg-surface-50 dark:bg-surface-800 overflow-hidden text-text-primary dark:text-text-primary-dark\">\n <ResizablePanels\n orientation=\"horizontal\"\n panelSizePercent={sidebarSize}\n onPanelSizeChange={setSidebarSize}\n minPanelSizePx={220}\n firstPanel={\n <div className={cls(\"flex flex-col h-full w-full bg-surface-50 dark:bg-surface-800 border-r\", defaultBorderMixin)}>\n <div className={cls(\"flex items-center justify-between px-3 py-2 border-b bg-surface-50 dark:bg-surface-900 min-h-[48px]\", defaultBorderMixin)}>\n <Typography variant=\"caption\" className=\"font-semibold text-[11px] uppercase tracking-wider text-surface-400 dark:text-surface-400\">\n Collections\n </Typography>\n <Tooltip title={configController.readOnly ? configController.readOnlyReason || \"Read only\" : \"Add collection\"}>\n <div>\n <IconButton\n size=\"small\"\n disabled={configController.readOnly}\n onClick={() => setActiveCollectionId(\"new\")}\n className={activeCollectionId === \"new\" ? \"text-primary dark:text-primary-dark\" : \"text-text-secondary dark:text-text-secondary-dark\"}\n >\n <PlusIcon size={iconSize.smallest}/>\n </IconButton>\n </div>\n </Tooltip>\n </div>\n\n <div className=\"flex-grow overflow-y-auto w-full no-scrollbar p-2 space-y-0.5\">\n {collections.length === 0 && (\n <div className=\"p-4 text-center\">\n <Typography variant=\"caption\" className=\"text-text-disabled dark:text-text-disabled-dark italic\">\n No collections yet.\n </Typography>\n </div>\n )}\n {collections.map((collection) => {\n const collectionKey = collection.slug;\n const isSelected = activeCollectionId === collectionKey;\n return (\n <div\n key={collectionKey}\n onClick={() => setActiveCollectionId(collectionKey)}\n className={cls(\n \"flex items-center gap-2.5 px-3 h-[30px] cursor-pointer rounded-lg text-[13px] font-medium transition-colors\",\n isSelected\n ? \"bg-primary/8 text-primary dark:bg-primary/10 dark:text-primary-light font-semibold\"\n : \"hover:bg-primary/5 dark:hover:bg-primary/5 text-surface-700 dark:text-surface-300 hover:text-surface-900 dark:hover:text-white\"\n )}\n >\n <IconForView collectionOrView={collection} size={\"smallest\"} className={cls(\n isSelected\n ? \"text-primary dark:text-primary-light\"\n : \"text-surface-500 dark:text-text-secondary-dark\"\n )}/>\n <span className=\"truncate flex-1\">\n {collection.name || collection.slug}\n </span>\n </div>\n );\n })}\n </div>\n </div>\n }\n secondPanel={\n <div className=\"flex-grow flex flex-col min-w-0 h-full w-full\">\n {/* We use key to force unmount when switching collections, preventing stale state */}\n {activeCollectionId ? (\n <CollectionStudioView\n key={activeCollectionId}\n configController={configController}\n collectionId={activeCollectionId}\n onSave={(savedCollection) => {\n // After creating a new collection, switch to it\n if (activeCollectionId === \"new\" && savedCollection?.slug) {\n setActiveCollectionId(savedCollection.slug);\n }\n }}\n onCancel={() => setActiveCollectionId(undefined)}\n propertyTypePresets={propertyTypePresets}\n hiddenPropertyTypes={hiddenPropertyTypes}\n renderExtraPropertyFields={renderExtraPropertyFields}\n renderExtraCollectionFields={renderExtraCollectionFields}\n visibleTabs={visibleTabs}\n standalone={standalone}\n />\n ) : (\n <div className=\"flex flex-col items-center justify-center h-full gap-4\">\n <Typography variant=\"label\">\n Select a collection or create a new one to start editing\n </Typography>\n <Button\n disabled={configController.readOnly}\n onClick={() => setActiveCollectionId(\"new\")}\n >\n <PlusIcon/>\n Add new collection\n </Button>\n </div>\n )}\n </div>\n }\n />\n </div>\n );\n}\n","/**\n * Router-aware wrapper around CollectionsStudioView.\n *\n * This component provides the react-router-based navigation behavior\n * that Rebase Studio expects: the active collection is derived from the\n * URL, and clicking a collection navigates via react-router.\n *\n * External consumers should use `CollectionsStudioView` directly\n * (which has no react-router dependency).\n */\nimport React from \"react\";\nimport { useLocation, useNavigate } from \"react-router-dom\";\nimport { useUrlController } from \"../../_cms_internals\";\nimport { CollectionsStudioView, CollectionsStudioViewProps } from \"./CollectionsStudioView\";\n\nexport type RouterCollectionsStudioViewProps = Omit<CollectionsStudioViewProps, \"activeCollectionId\" | \"onActiveCollectionChange\">;\n\nexport function RouterCollectionsStudioView(props: RouterCollectionsStudioViewProps) {\n const navigate = useNavigate();\n const urlController = useUrlController();\n const location = useLocation();\n\n // Determine the active collection from the URL segment after \"schema/\"\n const basePath = urlController.buildAppUrlPath(\"schema\");\n const relativePath = location.pathname.replace(basePath, \"\").replace(/^\\//, \"\");\n const activeCollectionId = relativePath.split(\"/\")[0] || undefined;\n\n return (\n <CollectionsStudioView\n {...props}\n activeCollectionId={activeCollectionId}\n onActiveCollectionChange={(id) => {\n if (id) {\n navigate(urlController.buildAppUrlPath(`schema/${id}`));\n } else {\n navigate(urlController.buildAppUrlPath(\"schema\"));\n }\n }}\n />\n );\n}\n"],"mappings":";;;;;;;;;;AA2BA,SAAgB,qBAAqB,EAAE,cAAc,QAAQ,UAAU,GAAG,SAAoC;CAG1G,MAAM,CAAC,WAAW,gBAAgB,SAAkB,KAAK;CACzD,MAAM,CAAC,iBAAiB,sBAAsB,SAAkB,KAAK;CAErE,MAAM,EAAE,aAAa,kBAAkB,wBACnC,iBACM,aAAa,KAAK,CAC5B;CAEA,MAAM,qBAAqB;CAE3B,MAAM,0BAA0B;EAC5B,IAAI,CAAC,WACD,WAAW;OACR;GACH,mBAAmB,IAAI;GACvB,cAAc;EAClB;CACJ;CAEA,OACI,oBAAC,OAAD;EAAK,WAAU;YACX,qBAAC,yBAAD,EAAA,UAAA,CACK,qBACG,oBAAC,kBAAD;GAEI,GAAI;GACJ,YAAY;GACZ,MAAM;GACN,iBAAiB,uBAAuB;GACxC,oBAAoB,uBAAuB,QAAQ,qBAAqB,KAAA;GACxE,cAAc;GACd,cAAc,oBAAoB;IAC9B,aAAa,KAAK;IAClB,IAAI,iBACA,iBAAiB;KACb,SAAS,eAAe;IAC5B,GAAG,CAAC;GAEZ;GACc;EACjB,GAhBQ,kBAgBR,IAED,qBAAC,OAAD;GAAK,WAAU;aAAf,CACI,oBAAC,YAAD;IAAY,SAAQ;cAAQ;GAEhB,CAAA,GACZ,qBAAC,QAAD;IACI,UAAU,MAAM,kBAAkB;IAClC,eAAe,SAAS;cAF5B,CAII,oBAAC,UAAD,CAAU,CAAA,GAAC,oBAEP;KACP;MAGT,oBAAC,sBAAD;GACI,GAAI;GACJ,gBAAgB;IACZ,YAAY,SAAS;IACrB,IAAI,iBAAiB;KACjB,WAAW;KACX,mBAAmB,KAAK;IAC5B;GACJ;GACA,oBAAoB;IAChB,YAAY,aAAa;IACzB,mBAAmB,KAAK;GAC5B;EACH,CAAA,CACoB,EAAA,CAAA;CACxB,CAAA;AAEb;;;ACzDA,SAAgB,sBAAsB,EAClC,kBACA,aAAa,iBACb,oBAAoB,oBACpB,0BACA,qBACA,qBACA,2BACA,6BACA,aACA,cAC2B;CAK3B,MAAM,CAAC,kBAAkB,uBAAuB,SAA6B,KAAA,CAAS;CACtF,MAAM,eAAe,6BAA6B,KAAA;CAClD,MAAM,qBAAqB,eAAe,qBAAqB;CAE/D,MAAM,yBAAyB,OAA2B;EACtD,IAAI,cACA,2BAA2B,EAAE;OAE7B,oBAAoB,EAAE;CAE9B;CAGA,MAAM,cAAc,mBAAmB,iBAAiB,eAAe,CAAC;CAGxE,MAAM,CAAC,aAAa,kBAAkB,eAAe;EACjD,IAAI;GACA,MAAM,QAAQ,aAAa,QAAQ,wCAAwC;GAC3E,OAAO,UAAU,OAAO,WAAW,KAAK,IAAI;EAChD,SAAS,GAAG;GACR,OAAO;EACX;CACJ,CAAC;CAED,gBAAgB;EACZ,IAAI;GACA,aAAa,QAAQ,0CAA0C,YAAY,SAAS,CAAC;EACzF,SAAS,GAAG,CAEZ;CACJ,GAAG,CAAC,WAAW,CAAC;CAEhB,OACI,oBAAC,OAAD;EAAK,WAAU;YACX,oBAAC,iBAAD;GACI,aAAY;GACZ,kBAAkB;GAClB,mBAAmB;GACnB,gBAAgB;GAChB,YACI,qBAAC,OAAD;IAAK,WAAW,IAAI,0EAA0E,kBAAkB;cAAhH,CACI,qBAAC,OAAD;KAAK,WAAW,IAAI,uGAAuG,kBAAkB;eAA7I,CACI,oBAAC,YAAD;MAAY,SAAQ;MAAU,WAAU;gBAA4F;KAExH,CAAA,GACZ,oBAAC,SAAD;MAAS,OAAO,iBAAiB,WAAW,iBAAiB,kBAAkB,cAAc;gBACzF,oBAAC,OAAD,EAAA,UACI,oBAAC,YAAD;OACI,MAAK;OACL,UAAU,iBAAiB;OAC3B,eAAe,sBAAsB,KAAK;OAC1C,WAAW,uBAAuB,QAAQ,wCAAwC;iBAElF,oBAAC,UAAD,EAAU,MAAM,SAAS,SAAU,CAAA;MAC3B,CAAA,EACX,CAAA;KACA,CAAA,CACR;QAEL,qBAAC,OAAD;KAAK,WAAU;eAAf,CACK,YAAY,WAAW,KACpB,oBAAC,OAAD;MAAK,WAAU;gBACX,oBAAC,YAAD;OAAY,SAAQ;OAAU,WAAU;iBAAyD;MAErF,CAAA;KACX,CAAA,GAER,YAAY,KAAK,eAAe;MAC7B,MAAM,gBAAgB,WAAW;MACjC,MAAM,aAAa,uBAAuB;MAC1C,OACI,qBAAC,OAAD;OAEI,eAAe,sBAAsB,aAAa;OAClD,WAAW,IACP,+GACA,aACM,uFACA,gIACV;iBARJ,CAUI,oBAAC,aAAD;QAAa,kBAAkB;QAAY,MAAM;QAAY,WAAW,IACpE,aACM,yCACA,gDACV;OAAG,CAAA,GACH,oBAAC,QAAD;QAAM,WAAU;kBACX,WAAW,QAAQ,WAAW;OAC7B,CAAA,CACL;SAjBI,aAiBJ;KAEb,CAAC,CACA;MACJ;;GAET,aACI,oBAAC,OAAD;IAAK,WAAU;cAEV,qBACG,oBAAC,sBAAD;KAEsB;KAClB,cAAc;KACd,SAAS,oBAAoB;MAEzB,IAAI,uBAAuB,SAAS,iBAAiB,MACjD,sBAAsB,gBAAgB,IAAI;KAElD;KACA,gBAAgB,sBAAsB,KAAA,CAAS;KAC1B;KACA;KACM;KACE;KAChB;KACD;IACf,GAhBQ,kBAgBR,IAED,qBAAC,OAAD;KAAK,WAAU;eAAf,CACI,oBAAC,YAAD;MAAY,SAAQ;gBAAQ;KAEhB,CAAA,GACZ,qBAAC,QAAD;MACI,UAAU,iBAAiB;MAC3B,eAAe,sBAAsB,KAAK;gBAF9C,CAII,oBAAC,UAAD,CAAU,CAAA,GAAC,oBAEP;OACP;;GAER,CAAA;EAEZ,CAAA;CACA,CAAA;AAEb;;;;ACtLA,SAAgB,4BAA4B,OAAyC;CACjF,MAAM,WAAW,YAAY;CAC7B,MAAM,gBAAgB,iBAAiB;CACvC,MAAM,WAAW,YAAY;CAG7B,MAAM,WAAW,cAAc,gBAAgB,QAAQ;CAEvD,MAAM,qBADe,SAAS,SAAS,QAAQ,UAAU,EAAE,EAAE,QAAQ,OAAO,EACjD,EAAa,MAAM,GAAG,EAAE,MAAM,KAAA;CAEzD,OACI,oBAAC,uBAAD;EACI,GAAI;EACgB;EACpB,2BAA2B,OAAO;GAC9B,IAAI,IACA,SAAS,cAAc,gBAAgB,UAAU,IAAI,CAAC;QAEtD,SAAS,cAAc,gBAAgB,QAAQ,CAAC;EAExD;CACH,CAAA;AAET"}
@@ -6,16 +6,16 @@
6
6
  export { useCollectionRegistryController } from "../hooks/navigation/contexts/CollectionRegistryContext";
7
7
  export { useNavigationStateController } from "../hooks/navigation/contexts/NavigationStateContext";
8
8
  export { useUrlController } from "../hooks/navigation/contexts/UrlContext";
9
- export { useSideEntityController } from "../hooks/useSideEntityController";
9
+ export { useSidePanel } from "../hooks/useSidePanel";
10
10
  export { useBreadcrumbsController } from "../hooks/useBreadcrumbsController";
11
11
  export { FieldCaption } from "../components/FieldCaption";
12
12
  export { SearchIconsView } from "../components/SearchIconsView";
13
13
  export { PropertyConfigBadge } from "../components/PropertyConfigBadge";
14
- export { EntityCollectionTable } from "../components/EntityCollectionTable";
14
+ export { CollectionTableBinding } from "../components/CollectionTableBinding";
15
15
  export { VirtualTableInput } from "@rebasepro/ui";
16
16
  export { ArrayContainer } from "../components/ArrayContainer";
17
17
  export type { ArrayEntryParams } from "../components/ArrayContainer";
18
- export { useSelectionController } from "../components/EntityCollectionView/useSelectionController";
18
+ export { useSelectionController } from "../components/CollectionViewBinding/useSelectionController";
19
19
  export { ImportFileUpload } from "../data_import/components/ImportFileUpload";
20
20
  export { ImportSaveInProgress } from "../data_import/components/ImportSaveInProgress";
21
21
  export { useImportConfig } from "../data_import/hooks/useImportConfig";
@@ -1,11 +1,11 @@
1
- import { EntityCollection } from "@rebasepro/types";
1
+ import { CollectionConfig } from "@rebasepro/types";
2
2
  export interface GenerateCollectionRequest {
3
3
  /** User's natural language description of what they want */
4
4
  prompt: string;
5
5
  /** Other collections in the project (for context/relationships). Limit to 30. */
6
- existingCollections: Partial<EntityCollection>[];
6
+ existingCollections: Partial<CollectionConfig>[];
7
7
  /** Optional for generate, required for modifications. If provided, modifies this collection */
8
- existingCollection?: Partial<EntityCollection>;
8
+ existingCollection?: Partial<CollectionConfig>;
9
9
  }
10
10
  /** Operation types for modifying a collection */
11
11
  export type CollectionOperationType = "add" | "modify" | "delete";
@@ -17,7 +17,7 @@ export interface CollectionOperation {
17
17
  }
18
18
  /** Result from collection generation, including optional delta operations */
19
19
  export interface GenerateCollectionResult {
20
- collection: EntityCollection;
20
+ collection: CollectionConfig;
21
21
  operations?: CollectionOperation[];
22
22
  }
23
23
  /**
@@ -40,7 +40,7 @@ export interface BuildCollectionGenerationCallbackProps {
40
40
  /**
41
41
  * Function to get the auth token.
42
42
  * This is typically `authController.getAuthToken` from `@rebasepro/client`
43
- * (or `@rebasepro/client-firebase` if using Firebase).
43
+ * (or `@rebasepro/firebase` if using Firebase).
44
44
  */
45
45
  getAuthToken: () => Promise<string>;
46
46
  /**
@@ -56,15 +56,15 @@ export interface BuildCollectionGenerationCallbackProps {
56
56
  *
57
57
  * @example
58
58
  * ```tsx
59
- * import { RebaseCMS } from "@rebasepro/admin";
59
+ * import { RebaseAdmin } from "@rebasepro/admin";
60
60
  * import { buildCollectionGenerationCallback } from "@rebasepro/admin/collection_editor";
61
- * import { useFirebaseAuthController } from "@rebasepro/client-firebase";
61
+ * import { useFirebaseAuthController } from "@rebasepro/firebase";
62
62
  *
63
63
  * const authController = useFirebaseAuthController({ firebaseApp });
64
64
  *
65
65
  * export function App() {
66
66
  * return (
67
- * <RebaseCMS
67
+ * <RebaseAdmin
68
68
  * collectionEditor={{
69
69
  * generateCollection: buildCollectionGenerationCallback({
70
70
  * getAuthToken: authController.getAuthToken
@@ -11,7 +11,7 @@
11
11
  * @module
12
12
  */
13
13
  import type React from "react";
14
- import type { SerializableProperty, SerializableCollection } from "./serializable_types";
14
+ import type { SerializableProperty, SerializableCollectionConfig } from "./serializable_types";
15
15
  /**
16
16
  * The base property data types supported by Rebase.
17
17
  * Derived from the `type` discriminant on `SerializableProperty`.
@@ -68,7 +68,7 @@ export interface ExtraPropertyFieldsParams {
68
68
  /** The full current property being edited (serializable form). */
69
69
  property: SerializableProperty;
70
70
  /** The collection this property belongs to (serializable form). */
71
- collection: SerializableCollection;
71
+ collection: SerializableCollectionConfig;
72
72
  }
73
73
  /**
74
74
  * Parameters passed to the `renderExtraCollectionFields` render prop.
@@ -79,7 +79,7 @@ export interface ExtraCollectionFieldsParams {
79
79
  /** Callback to update a single metadata key. Triggers dirty-state tracking. */
80
80
  onMetadataChange: (key: string, value: unknown) => void;
81
81
  /** The full current collection being edited (serializable form). */
82
- collection: SerializableCollection;
82
+ collection: SerializableCollectionConfig;
83
83
  }
84
84
  /**
85
85
  * All extension props for the collection editor UI.
@@ -2,8 +2,8 @@ export { useCollectionEditorController } from "./useCollectionEditorController";
2
2
  export { useCollectionsConfigController } from "./useCollectionsConfigController";
3
3
  export { useLocalCollectionsConfigController } from "./useLocalCollectionsConfigController";
4
4
  export { useJsonCollectionsConfigController, type UseJsonCollectionsConfigControllerOptions, } from "./useJsonCollectionsConfigController";
5
- export { toSerializableCollection, toSerializableProperty, toSerializableProperties, fromSerializableCollection, fromSerializableProperty, fromSerializableProperties, } from "./serializable_utils";
6
- export type { SerializableCollection, SerializableProperty, SerializableProperties, SerializableBaseProperty, SerializableStringProperty, SerializableNumberProperty, SerializableBooleanProperty, SerializableDateProperty, SerializableGeopointProperty, SerializableReferenceProperty, SerializableRelationProperty, SerializableArrayProperty, SerializableMapProperty, SerializableVectorProperty, SerializableBinaryProperty, SerializableStorageConfig, SerializableStringValidation, SerializableDateValidation, JsonCollectionStore, } from "./serializable_types";
5
+ export { toSerializableCollectionConfig, toSerializableProperty, toSerializableProperties, fromSerializableCollectionConfig, fromSerializableProperty, fromSerializableProperties, } from "./serializable_utils";
6
+ export type { SerializableCollectionConfig, SerializableProperty, SerializableProperties, SerializableBaseProperty, SerializableStringProperty, SerializableNumberProperty, SerializableBooleanProperty, SerializableDateProperty, SerializableGeopointProperty, SerializableReferenceProperty, SerializableRelationProperty, SerializableArrayProperty, SerializableMapProperty, SerializableVectorProperty, SerializableBinaryProperty, SerializableStorageConfig, SerializableStringValidation, SerializableDateValidation, JsonCollectionStore, } from "./serializable_types";
7
7
  export type { PropertyTypePreset, PropertyType, CollectionEditorTab, CollectionEditorExtensionProps, ExtraPropertyFieldsParams, ExtraCollectionFieldsParams, } from "./extensibility_types";
8
8
  export { validateCollectionJson, type CollectionValidationError, type CollectionValidationResult } from "./validateCollectionJson";
9
9
  export type { CollectionsConfigController, DeleteCollectionParams, SaveCollectionParams, UpdateCollectionParams, CollectionsSetupInfo, UpdatePropertiesOrderParams, UpdateKanbanColumnsOrderParams } from "./types/config_controller";
@@ -1,6 +1,6 @@
1
- import { EntityCollection, TableMetadata } from "@rebasepro/types";
1
+ import { CollectionConfig, TableMetadata } from "@rebasepro/types";
2
2
  /**
3
- * Builds a partial EntityCollection from PostgreSQL table metadata.
3
+ * Builds a partial CollectionConfig from PostgreSQL table metadata.
4
4
  * This is used when creating a new collection from an existing database table.
5
5
  */
6
- export declare function buildCollectionFromTableMetadata(tableName: string, metadata: TableMetadata): Partial<EntityCollection>;
6
+ export declare function buildCollectionFromTableMetadata(tableName: string, metadata: TableMetadata): Partial<CollectionConfig>;
@@ -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
@@ -209,7 +209,7 @@ export interface SerializableReferenceProperty extends SerializableBaseProperty
209
209
  /**
210
210
  * JSON-serializable `RelationProperty`.
211
211
  * `target` is string-only (collection slug). The function variant
212
- * `() => EntityCollection` is not serializable.
212
+ * `() => CollectionConfig` is not serializable.
213
213
  */
214
214
  export interface SerializableRelationProperty extends SerializableBaseProperty {
215
215
  ui?: SerializableRelationUIConfig;
@@ -274,7 +274,7 @@ export type SerializableProperties = {
274
274
  [key: string]: SerializableProperty;
275
275
  };
276
276
  /**
277
- * JSON-serializable version of `EntityCollection` / `BaseEntityCollection`.
277
+ * JSON-serializable version of `CollectionConfig` / `BaseCollectionConfig`.
278
278
  *
279
279
  * Strips all non-serializable fields:
280
280
  * - Functions: `callbacks`, `childCollections`, `additionalFields`, `defaultSelectedView` (fn)
@@ -286,7 +286,7 @@ export type SerializableProperties = {
286
286
  *
287
287
  * Keeps all data-describing fields that the collection editor works with.
288
288
  */
289
- export interface SerializableCollection {
289
+ export interface SerializableCollectionConfig {
290
290
  slug: string;
291
291
  name: string;
292
292
  singularName?: string;
@@ -338,7 +338,7 @@ export interface SerializableCollection {
338
338
  disableDefaultActions?: ("edit" | "copy" | "delete")[];
339
339
  table?: string;
340
340
  schema?: string;
341
- securityRules?: SecurityRule[];
341
+ securityRules?: readonly SecurityRule[];
342
342
  ownerId?: string;
343
343
  /**
344
344
  * Arbitrary key-value metadata for external consumers.
@@ -352,9 +352,9 @@ export interface SerializableCollection {
352
352
  */
353
353
  export interface JsonCollectionStore {
354
354
  /** Load all persisted collections. */
355
- load(): Promise<SerializableCollection[]>;
355
+ load(): Promise<SerializableCollectionConfig[]>;
356
356
  /** Save (create or update) a single collection by its slug. */
357
- save(slug: string, data: SerializableCollection): Promise<void>;
357
+ save(slug: string, data: SerializableCollectionConfig): Promise<void>;
358
358
  /** Delete a collection by its slug. */
359
359
  delete(slug: string): Promise<void>;
360
360
  /**
@@ -2,13 +2,13 @@
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
  */
10
- import type { EntityCollection, Properties, Property } from "@rebasepro/types";
11
- import type { SerializableCollection, SerializableProperties, SerializableProperty } from "./serializable_types";
10
+ import type { CollectionConfig, Properties, Property } from "@rebasepro/types";
11
+ import type { SerializableCollectionConfig, SerializableProperties, SerializableProperty } from "./serializable_types";
12
12
  /**
13
13
  * Convert a single `Property` to its JSON-serializable form.
14
14
  * Strips functions, converts RegExp to string, Date to ISO string.
@@ -19,14 +19,14 @@ export declare function toSerializableProperty(property: Property): Serializable
19
19
  */
20
20
  export declare function toSerializableProperties(properties: Properties): SerializableProperties;
21
21
  /**
22
- * Convert an `EntityCollection` to its JSON-serializable form.
22
+ * Convert an `CollectionConfig` to its JSON-serializable form.
23
23
  *
24
24
  * Strips all non-serializable fields (functions, React nodes, class instances)
25
25
  * while preserving the structural schema that the collection editor works with.
26
26
  *
27
27
  * The result is safe for `JSON.stringify()` and database storage.
28
28
  */
29
- export declare function toSerializableCollection(collection: EntityCollection): SerializableCollection;
29
+ export declare function toSerializableCollectionConfig(collection: CollectionConfig): SerializableCollectionConfig;
30
30
  /**
31
31
  * Convert a serializable property back to the original `Property` type.
32
32
  *
@@ -41,10 +41,10 @@ export declare function fromSerializableProperty(serialized: SerializablePropert
41
41
  */
42
42
  export declare function fromSerializableProperties(serialized: SerializableProperties): Properties;
43
43
  /**
44
- * Convert a `SerializableCollection` back to an `EntityCollection`.
44
+ * Convert a `SerializableCollectionConfig` back to an `CollectionConfig`.
45
45
  *
46
46
  * The result will NOT contain any of the non-serializable fields
47
47
  * (callbacks, entityActions, etc.) — those must be re-attached by the
48
48
  * consumer if needed.
49
49
  */
50
- export declare function fromSerializableCollection(serialized: SerializableCollection): EntityCollection;
50
+ export declare function fromSerializableCollectionConfig(serialized: SerializableCollectionConfig): CollectionConfig;
@@ -1,5 +1,5 @@
1
1
  import { CollectionsConfigController } from "./config_controller";
2
- import { Entity, EntityCollection, Property } from "@rebasepro/types";
2
+ import { Entity, CollectionConfig, Property } from "@rebasepro/types";
3
3
  /**
4
4
  * Controller to open the collection editor dialog.
5
5
  * @group Hooks and utilities
@@ -10,7 +10,7 @@ export interface CollectionEditorController {
10
10
  path?: string;
11
11
  parentCollectionSlugs: string[];
12
12
  parentEntityIds: string[];
13
- parentCollection?: EntityCollection;
13
+ parentCollection?: CollectionConfig;
14
14
  existingEntities?: Entity<any>[];
15
15
  /**
16
16
  * Initial view to open: "general", "display", or "properties"
@@ -32,10 +32,10 @@ export interface CollectionEditorController {
32
32
  * A collection to duplicate from. If provided, the new collection will be
33
33
  * pre-populated with the same properties (but with empty name, path, and id).
34
34
  */
35
- copyFrom?: EntityCollection;
35
+ copyFrom?: CollectionConfig;
36
36
  parentCollectionSlugs: string[];
37
37
  parentEntityIds: string[];
38
- parentCollection?: EntityCollection;
38
+ parentCollection?: CollectionConfig;
39
39
  redirect: boolean;
40
40
  sourceClick?: string;
41
41
  }) => void;
@@ -46,7 +46,7 @@ export interface CollectionEditorController {
46
46
  editedCollectionId: string;
47
47
  parentCollectionSlugs: string[];
48
48
  parentEntityIds: string[];
49
- collection: EntityCollection;
49
+ collection: CollectionConfig;
50
50
  existingEntities: Entity<any>[];
51
51
  }) => void;
52
52
  /**
@@ -1,4 +1,4 @@
1
- import { EntityCollection, FilterValues } from "@rebasepro/types";
1
+ import { CollectionConfig, FilterValues } from "@rebasepro/types";
2
2
  /**
3
3
  * This function is used to infer the configuration of a collection given its path.
4
4
  * @param path - The path of the collection
@@ -7,4 +7,4 @@ import { EntityCollection, FilterValues } from "@rebasepro/types";
7
7
  * @param initialFilter - Optional filter values from the collection configuration
8
8
  * @param initialSort - Optional sort configuration from the collection
9
9
  */
10
- export type CollectionInference = (path: string, parentCollectionPaths: string[], databaseId?: string, initialFilter?: FilterValues<string>, initialSort?: [string, "asc" | "desc"]) => Promise<Partial<EntityCollection> | null>;
10
+ export type CollectionInference = (path: string, parentCollectionPaths: string[], databaseId?: string, initialFilter?: FilterValues<string>, initialSort?: [string, "asc" | "desc"]) => Promise<Partial<CollectionConfig> | null>;
@@ -1,4 +1,4 @@
1
- import { EntityCollection, NavigationGroupMapping, Property } from "@rebasepro/types";
1
+ import { CollectionConfig, NavigationGroupMapping, Property } from "@rebasepro/types";
2
2
  export interface CollectionsSetupInfo {
3
3
  status: "ongoing" | "complete" | "error";
4
4
  error: string | null;
@@ -9,7 +9,7 @@ export interface CollectionsSetupInfo {
9
9
  */
10
10
  export interface CollectionsConfigController {
11
11
  loading: boolean;
12
- collections?: EntityCollection[];
12
+ collections?: CollectionConfig[];
13
13
  /**
14
14
  * If true, the configuration cannot be modified.
15
15
  * Use readOnlyReason to explain why.
@@ -24,7 +24,7 @@ export interface CollectionsConfigController {
24
24
  * Stored in the project config document at `collectionsSetup`.
25
25
  */
26
26
  collectionsSetup?: CollectionsSetupInfo;
27
- getCollection: (id: string) => EntityCollection;
27
+ getCollection: (id: string) => CollectionConfig;
28
28
  saveCollection: <M extends {
29
29
  [Key: string]: any;
30
30
  }>(params: SaveCollectionParams<M>) => Promise<void>;
@@ -47,14 +47,14 @@ export interface CollectionsConfigController {
47
47
  }
48
48
  export type UpdateCollectionParams<M extends Record<string, unknown> = Record<string, unknown>> = {
49
49
  id: string;
50
- collectionData: Partial<EntityCollection<M>>;
50
+ collectionData: Partial<CollectionConfig<M>>;
51
51
  previousId?: string;
52
52
  parentCollectionSlugs?: string[];
53
53
  parentEntityIds?: string[];
54
54
  };
55
55
  export type SaveCollectionParams<M extends Record<string, unknown> = Record<string, unknown>> = {
56
56
  id: string;
57
- collectionData: EntityCollection<M>;
57
+ collectionData: CollectionConfig<M>;
58
58
  previousId?: string;
59
59
  parentCollectionSlugs?: string[];
60
60
  parentEntityIds?: string[];
@@ -85,14 +85,14 @@ export type UpdatePropertiesOrderParams = {
85
85
  fullPath: string;
86
86
  parentCollectionSlugs: string[];
87
87
  parentEntityIds: string[];
88
- collection: EntityCollection;
88
+ collection: CollectionConfig;
89
89
  newPropertiesOrder: string[];
90
90
  };
91
91
  export type UpdateKanbanColumnsOrderParams = {
92
92
  fullPath: string;
93
93
  parentCollectionSlugs: string[];
94
94
  parentEntityIds: string[];
95
- collection: EntityCollection;
95
+ collection: CollectionConfig;
96
96
  kanbanColumnProperty: string;
97
97
  newColumnsOrder: string[];
98
98
  };
@@ -1,11 +1,11 @@
1
1
  import React from "react";
2
- import { EntityCollection } from "@rebasepro/types";
2
+ import { CollectionConfig } from "@rebasepro/types";
3
3
  /**
4
4
  * Component rendered at the end of the Kanban board to add new columns (enum values).
5
5
  * Opens a dialog to input a new enum value for the column property.
6
6
  */
7
7
  export declare function AddKanbanColumnAction({ collection, fullPath, parentCollectionSlugs, parentEntityIds, columnProperty }: {
8
- collection: EntityCollection;
8
+ collection: CollectionConfig;
9
9
  fullPath: string;
10
10
  parentCollectionSlugs: string[];
11
11
  parentEntityIds: string[];
@@ -1,4 +1,4 @@
1
- import { EntityCollection, EntityTableController, Property } from "@rebasepro/types";
1
+ import { CollectionConfig, EntityTableController, Property } from "@rebasepro/types";
2
2
  import React from "react";
3
3
  export declare function CollectionViewHeaderAction({ propertyKey, onHover, property, path, parentCollectionSlugs, parentEntityIds, collection, tableController }: {
4
4
  property: Property;
@@ -7,6 +7,6 @@ export declare function CollectionViewHeaderAction({ propertyKey, onHover, prope
7
7
  path: string;
8
8
  parentCollectionSlugs: string[];
9
9
  parentEntityIds: string[];
10
- collection: EntityCollection;
10
+ collection: CollectionConfig;
11
11
  tableController: EntityTableController;
12
12
  }): React.JSX.Element;
@@ -1,11 +1,11 @@
1
1
  import React from "react";
2
- import { EntityCollection } from "@rebasepro/types";
2
+ import { CollectionConfig } from "@rebasepro/types";
3
3
  /**
4
4
  * Component rendered when Kanban view is missing orderProperty configuration.
5
5
  * Provides a CTA button to open the collection editor to configure Kanban.
6
6
  */
7
7
  export declare function KanbanSetupAction({ collection, fullPath, parentCollectionSlugs, parentEntityIds }: {
8
- collection: EntityCollection;
8
+ collection: CollectionConfig;
9
9
  fullPath: string;
10
10
  parentCollectionSlugs: string[];
11
11
  parentEntityIds: string[];
@@ -1,8 +1,8 @@
1
- import { EntityCollection, EntityTableController } from "@rebasepro/types";
1
+ import { CollectionConfig, EntityTableController } from "@rebasepro/types";
2
2
  export declare function PropertyAddColumnComponent({ path, parentCollectionSlugs, parentEntityIds, collection, tableController }: {
3
3
  path: string;
4
4
  parentCollectionSlugs: string[];
5
5
  parentEntityIds: string[];
6
- collection: EntityCollection;
6
+ collection: CollectionConfig;
7
7
  tableController: EntityTableController;
8
8
  }): import("react").JSX.Element;
@@ -1,16 +1,16 @@
1
1
  import React from "react";
2
- import { EntityCollection } from "@rebasepro/types";
2
+ import { CollectionConfig } from "@rebasepro/types";
3
3
  import { CollectionGenerationCallback, CollectionOperation } from "../../api/generateCollectionApi";
4
4
  export interface AICollectionGeneratorPopoverProps {
5
5
  /**
6
6
  * Current collection being edited (if modifying an existing collection)
7
7
  */
8
- existingCollection?: EntityCollection<any>;
8
+ existingCollection?: CollectionConfig<any>;
9
9
  /**
10
10
  * Callback when a collection is generated or modified.
11
11
  * Includes the collection and optionally the operations that were applied.
12
12
  */
13
- onGenerated: (collection: EntityCollection, operations?: CollectionOperation[]) => void;
13
+ onGenerated: (collection: CollectionConfig, operations?: CollectionOperation[]) => void;
14
14
  /**
15
15
  * Callback function for generating/modifying collections.
16
16
  * The plugin is API-agnostic - the consumer provides the implementation.
@@ -1,10 +1,10 @@
1
1
  import React from "react";
2
- import { EntityCollection } from "@rebasepro/types";
2
+ import { CollectionConfig } from "@rebasepro/types";
3
3
  export declare function CollectionDetailsForm({ isNewCollection, existingPaths, existingIds, parentCollection, expandKanban }: {
4
4
  isNewCollection: boolean;
5
5
  existingPaths?: string[];
6
6
  existingIds?: string[];
7
- parentCollection?: EntityCollection;
7
+ parentCollection?: CollectionConfig;
8
8
  parentCollectionSlugs?: string[];
9
9
  parentEntityIds?: string[];
10
10
  expandKanban?: boolean;
@@ -1,5 +1,5 @@
1
1
  import * as React from "react";
2
- import { Entity, EntityCollection, TableMetadata, User } from "@rebasepro/types";
2
+ import { Entity, CollectionConfig, TableMetadata, User } from "@rebasepro/types";
3
3
  import { CollectionsConfigController } from "../../types/config_controller";
4
4
  import { CollectionInference } from "../../types/collection_inference";
5
5
  import { CollectionGenerationCallback } from "../../api/generateCollectionApi";
@@ -15,12 +15,12 @@ export interface CollectionEditorDialogProps extends CollectionEditorExtensionPr
15
15
  * A collection to duplicate from. If provided, the new collection will be
16
16
  * pre-populated with the same properties (but with empty name, path, and id).
17
17
  */
18
- copyFrom?: EntityCollection;
18
+ copyFrom?: CollectionConfig;
19
19
  editedCollectionId?: string;
20
20
  path?: string;
21
21
  parentCollectionSlugs?: string[];
22
22
  parentEntityIds?: string[];
23
- handleClose: (collection?: EntityCollection) => void;
23
+ handleClose: (collection?: CollectionConfig) => void;
24
24
  configController: CollectionsConfigController;
25
25
  collectionInference?: CollectionInference;
26
26
  extraView?: {
@@ -31,7 +31,7 @@ export interface CollectionEditorDialogProps extends CollectionEditorExtensionPr
31
31
  };
32
32
  getUser?: (uid: string) => User | null;
33
33
  getData?: (path: string, parentPaths: string[]) => Promise<object[]>;
34
- parentCollection?: EntityCollection;
34
+ parentCollection?: CollectionConfig;
35
35
  existingEntities?: Entity<any>[];
36
36
  /**
37
37
  * Initial view to open when editing: "general", "display", or "properties".
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import { EntityCollection } from "@rebasepro/types";
2
+ import { CollectionConfig } from "@rebasepro/types";
3
3
  import { CollectionGenerationCallback } from "../../api/generateCollectionApi";
4
4
  export declare function CollectionEditorWelcomeView({ path, parentCollection, onContinue, existingCollectionPaths, generateCollection, onAnalyticsEvent, unmappedTables, onImportFromTable }: {
5
5
  path: string;
6
- parentCollection?: EntityCollection;
6
+ parentCollection?: CollectionConfig;
7
7
  onContinue: (importData?: object[], propertiesOrder?: string[]) => void;
8
8
  existingCollectionPaths?: string[];
9
9
  generateCollection?: CollectionGenerationCallback;
@@ -1,8 +1,8 @@
1
1
  import React from "react";
2
- import { EntityCollection } from "@rebasepro/types";
2
+ import { CollectionConfig } from "@rebasepro/types";
3
3
  export interface CollectionJsonImportDialogProps {
4
4
  open: boolean;
5
5
  onClose: () => void;
6
- onImport: (collection: EntityCollection) => void;
6
+ onImport: (collection: CollectionConfig) => void;
7
7
  }
8
8
  export declare function CollectionJsonImportDialog({ open, onClose, onImport }: CollectionJsonImportDialogProps): React.JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
- import { EntityCollection, PropertyConfig, User } from "@rebasepro/types";
2
+ import { CollectionConfig, PropertyConfig, User } from "@rebasepro/types";
3
3
  import type { PropertyTypePreset, PropertyType } from "../../extensibility_types";
4
- import type { SerializableProperty, SerializableCollection } from "../../serializable_types";
4
+ import type { SerializableProperty, SerializableCollectionConfig } from "../../serializable_types";
5
5
  type CollectionEditorFormProps = {
6
6
  showErrors: boolean;
7
7
  isNewCollection: boolean;
@@ -11,7 +11,7 @@ type CollectionEditorFormProps = {
11
11
  extraIcon: React.ReactNode;
12
12
  getUser?: (uid: string) => User | null;
13
13
  getData?: () => Promise<object[]>;
14
- doCollectionInference?: (collection: EntityCollection) => Promise<Partial<EntityCollection> | null> | undefined;
14
+ doCollectionInference?: (collection: CollectionConfig) => Promise<Partial<CollectionConfig> | null> | undefined;
15
15
  propertyConfigs: Record<string, PropertyConfig>;
16
16
  propertyTypePresets?: PropertyTypePreset[];
17
17
  hiddenPropertyTypes?: PropertyType[];
@@ -19,7 +19,7 @@ type CollectionEditorFormProps = {
19
19
  metadata: Record<string, unknown>;
20
20
  onMetadataChange: (key: string, value: unknown) => void;
21
21
  property: SerializableProperty;
22
- collection: SerializableCollection;
22
+ collection: SerializableCollectionConfig;
23
23
  }) => React.ReactNode;
24
24
  standalone?: boolean;
25
25
  };
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { CollectionEditorDialogProps } from "./CollectionEditorDialog";
3
- import type { EntityCollection } from "@rebasepro/types";
3
+ import type { CollectionConfig } from "@rebasepro/types";
4
4
  export type CollectionStudioViewProps = Omit<CollectionEditorDialogProps, "open" | "isNewCollection" | "editedCollectionId" | "handleClose" | "handleCancel"> & {
5
5
  collectionId?: string | "new";
6
6
  /**
@@ -8,7 +8,7 @@ export type CollectionStudioViewProps = Omit<CollectionEditorDialogProps, "open"
8
8
  * Receives the saved collection (or undefined if dismissed without saving).
9
9
  * When not provided, save completes silently.
10
10
  */
11
- onSave?: (collection?: EntityCollection) => void;
11
+ onSave?: (collection?: CollectionConfig) => void;
12
12
  /**
13
13
  * Called when the user cancels editing.
14
14
  * When not provided, cancel is a no-op.
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { EntityCollection } from "@rebasepro/types";
2
+ import type { CollectionConfig } from "@rebasepro/types";
3
3
  import { CollectionsConfigController } from "../../types/config_controller";
4
4
  import type { CollectionEditorExtensionProps } from "../../extensibility_types";
5
5
  export interface CollectionsStudioViewProps extends CollectionEditorExtensionProps {
@@ -9,7 +9,7 @@ export interface CollectionsStudioViewProps extends CollectionEditorExtensionPro
9
9
  * When provided, overrides the collections from `configController`.
10
10
  * Use this to control exactly which collections the editor displays.
11
11
  */
12
- collections?: EntityCollection[];
12
+ collections?: CollectionConfig[];
13
13
  /**
14
14
  * Controlled active collection ID.
15
15
  * When provided together with `onActiveCollectionChange`,