@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
 
2
2
  import React, { useEffect, useMemo, useState } from "react";
3
3
 
4
- import { Field, getIn, useFormex } from "@rebasepro/formex";
4
+ import { Field, getIn, useFormex } from "@rebasepro/forms";
5
5
  import {
6
6
  useLargeLayout
7
- } from "@rebasepro/core";
7
+ } from "@rebasepro/app";
8
8
  import { useSafeSnackbarController } from "../../useSafeSnackbarController";
9
9
  import { ErrorBoundary } from "@rebasepro/ui";
10
10
  import {
@@ -21,7 +21,7 @@ import {
21
21
  Tooltip,
22
22
  Typography
23
23
  } from "@rebasepro/ui";
24
- import { EntityCollection, MapProperty, Properties, Property, PropertyConfig, User } from "@rebasepro/types";
24
+ import { CollectionConfig, MapProperty, Properties, Property, PropertyConfig, User } from "@rebasepro/types";
25
25
  import { isPropertyBuilder } from "@rebasepro/common";
26
26
 
27
27
  import { getFullId, idToPropertiesPath, namespaceToPropertiesOrderPath } from "./util";
@@ -31,7 +31,7 @@ import { GetCodeDialog } from "./GetCodeDialog";
31
31
  import { useAIModifiedPaths } from "./AIModifiedPathsContext";
32
32
  import { useCollectionsConfigController } from "../../useCollectionsConfigController";
33
33
  import type { PropertyTypePreset, PropertyType } from "../../extensibility_types";
34
- import type { SerializableProperty, SerializableCollection } from "../../serializable_types";
34
+ import type { SerializableProperty, SerializableCollectionConfig } from "../../serializable_types";
35
35
 
36
36
  type PropertyOrBuilder = Property | Record<string, unknown>;
37
37
 
@@ -44,7 +44,7 @@ type CollectionEditorFormProps = {
44
44
  extraIcon: React.ReactNode;
45
45
  getUser?: (uid: string) => User | null;
46
46
  getData?: () => Promise<object[]>;
47
- doCollectionInference?: (collection: EntityCollection) => Promise<Partial<EntityCollection> | null> | undefined;
47
+ doCollectionInference?: (collection: CollectionConfig) => Promise<Partial<CollectionConfig> | null> | undefined;
48
48
  propertyConfigs: Record<string, PropertyConfig>;
49
49
  propertyTypePresets?: PropertyTypePreset[];
50
50
  hiddenPropertyTypes?: PropertyType[];
@@ -52,7 +52,7 @@ type CollectionEditorFormProps = {
52
52
  metadata: Record<string, unknown>;
53
53
  onMetadataChange: (key: string, value: unknown) => void;
54
54
  property: SerializableProperty;
55
- collection: SerializableCollection;
55
+ collection: SerializableCollectionConfig;
56
56
  }) => React.ReactNode;
57
57
  standalone?: boolean;
58
58
  };
@@ -82,7 +82,7 @@ export function CollectionPropertiesEditorForm({
82
82
  setFieldTouched,
83
83
  errors,
84
84
  dirty
85
- } = useFormex<EntityCollection>();
85
+ } = useFormex<CollectionConfig>();
86
86
 
87
87
  const snackbarController = useSafeSnackbarController();
88
88
  const configControllerFromContext = useCollectionsConfigController();
@@ -420,9 +420,9 @@ export function CollectionPropertiesEditorForm({
420
420
  };
421
421
 
422
422
  const body = (
423
- <div className={"grid grid-cols-12 h-full bg-surface-50 dark:bg-surface-800"}>
423
+ <div className={"grid grid-cols-12 h-full min-h-0 bg-surface-50 dark:bg-surface-800"}>
424
424
  <div className={cls(
425
- "col-span-12 lg:col-span-5 h-full flex flex-col bg-surface-50 dark:bg-surface-800",
425
+ "col-span-12 lg:col-span-5 h-full min-h-0 flex flex-col bg-surface-50 dark:bg-surface-800",
426
426
  !asDialog && "border-r " + defaultBorderMixin
427
427
  )}>
428
428
  {/* Sidebar Header */}
@@ -467,7 +467,7 @@ export function CollectionPropertiesEditorForm({
467
467
  </div>
468
468
 
469
469
  {/* Sidebar Content */}
470
- <div className="flex-grow overflow-y-auto p-3 no-scrollbar space-y-3 bg-surface-50 dark:bg-surface-800">
470
+ <div className="flex-grow overflow-y-auto p-3 space-y-3 bg-surface-50 dark:bg-surface-800">
471
471
  {owner && (
472
472
  <div className="px-1 py-0.5">
473
473
  <Typography variant="body2" color="secondary">
@@ -1,6 +1,8 @@
1
1
 
2
- import { EntityCollection } from "@rebasepro/types";
3
- import React, { useState, useEffect } from "react";
2
+ import { CollectionConfig, SecurityRule as GeneratedSecurityRule } from "@rebasepro/types";
3
+ import { getPolicyNamesForRule, getPolicyNamesForRules } from "@rebasepro/utils";
4
+ import { getEffectiveSecurityRules } from "@rebasepro/common";
5
+ import React, { useState, useEffect, useMemo } from "react";
4
6
 
5
7
  /**
6
8
  * Validates and double-quotes a SQL identifier to prevent injection.
@@ -37,8 +39,8 @@ import {
37
39
  Trash2Icon,
38
40
  Typography
39
41
  } from "@rebasepro/ui";
40
- import { useFormex } from "@rebasepro/formex";
41
- import { useRebaseContext } from "@rebasepro/core";
42
+ import { useFormex } from "@rebasepro/forms";
43
+ import { useRebaseContext } from "@rebasepro/app";
42
44
 
43
45
  /** Postgres RLS policy shape — defined inline to avoid depending on @rebasepro/studio */
44
46
  export interface PostgresPolicy {
@@ -61,7 +63,7 @@ interface SecurityRule {
61
63
  roles?: string[];
62
64
  }
63
65
 
64
- type CollectionWithSecurity = EntityCollection & {
66
+ type CollectionWithSecurity = CollectionConfig & {
65
67
  securityRules?: SecurityRule[];
66
68
  id?: string;
67
69
  table?: string;
@@ -130,7 +132,30 @@ export function CollectionRLSTab() {
130
132
  fetchLivePolicies();
131
133
  }, [databaseAdmin, values.id, values.table, values.alias]);
132
134
 
133
- const unmappedPolicies = dbPolicies.filter(dp => !rules.some(r => r.name === dp.policyname));
135
+ const tableName = values.id || values.table || values.alias;
136
+
137
+ /**
138
+ * Every policy name `rebase db push` would write for this collection.
139
+ *
140
+ * Two things make this more than `rules.map(r => r.name)`:
141
+ * - a rule without an explicit `name` becomes `<table>_<op>_<hash>`, so
142
+ * comparing `rule.name` to `policyname` never matches for it;
143
+ * - the generator also injects the safe-by-default baseline
144
+ * (`<table>_default_admin_*`), which is in no collection's `securityRules`.
145
+ *
146
+ * Missing either made Rebase's own policies look hand-written, and offered to
147
+ * import them back into the codebase that produced them.
148
+ */
149
+ const generatedPolicyNames = useMemo(() => {
150
+ if (!tableName) return new Set<string>();
151
+ const effectiveRules = getEffectiveSecurityRules(values as CollectionConfig);
152
+ return getPolicyNamesForRules(
153
+ [...(rules as unknown as GeneratedSecurityRule[]), ...effectiveRules],
154
+ tableName
155
+ );
156
+ }, [rules, tableName, values]);
157
+
158
+ const unmappedPolicies = dbPolicies.filter(dp => !generatedPolicyNames.has(dp.policyname));
134
159
 
135
160
  const handleSave = async (newPolicy: Partial<PostgresPolicy>) => {
136
161
  const rule: SecurityRule = {
@@ -175,7 +200,13 @@ export function CollectionRLSTab() {
175
200
  <div className="flex flex-col gap-1.5 min-w-0">
176
201
  <div className="flex items-center gap-2">
177
202
  <KeyIcon size={iconSize.smallest} className="text-text-disabled dark:text-text-disabled-dark shrink-0"/>
178
- <Typography variant="subtitle2" className="truncate">{rule.name}</Typography>
203
+ <Typography variant="subtitle2" className="truncate">
204
+ {/* Unnamed rules are still named in Postgres — show what they compile to
205
+ rather than an empty heading. */}
206
+ {rule.name || (tableName
207
+ ? getPolicyNamesForRule(rule as unknown as GeneratedSecurityRule, tableName).join(", ")
208
+ : "Unnamed policy")}
209
+ </Typography>
179
210
  </div>
180
211
  <div className="flex gap-2 text-xs pl-6 overflow-x-auto hide-scrollbar">
181
212
  <Chip size="small" className="bg-surface-100 dark:bg-surface-900 text-text-secondary border-none">Action: {rule.operation || "ALL"}</Chip>
@@ -21,12 +21,12 @@ import {
21
21
  Trash2Icon,
22
22
  Typography
23
23
  } from "@rebasepro/ui";
24
- import { useFormex } from "@rebasepro/formex";
25
- import { PostgresCollection, Relation } from "@rebasepro/types";
24
+ import { useFormex } from "@rebasepro/forms";
25
+ import { PostgresCollectionConfig, Relation } from "@rebasepro/types";
26
26
  import { useCollectionsConfigController } from "../../useCollectionsConfigController";
27
27
 
28
28
  export function CollectionRelationsTab() {
29
- const { values, setFieldValue } = useFormex<PostgresCollection>();
29
+ const { values, setFieldValue } = useFormex<PostgresCollectionConfig>();
30
30
  const { collections } = useCollectionsConfigController();
31
31
  const [editingRelationIndex, setEditingRelationIndex] = useState<number | null>(null);
32
32
  const [editingRelationState, setEditingRelationState] = useState<Partial<Relation> | null>(null);
@@ -1,12 +1,12 @@
1
1
 
2
- import { useUnsavedChangesDialog, UnsavedChangesDialog } from "@rebasepro/core";
2
+ import { useUnsavedChangesDialog, UnsavedChangesDialog } from "@rebasepro/app";
3
3
  import * as React from "react";
4
4
  import { useState } from "react";
5
5
  import { Button, PlusIcon, Typography } from "@rebasepro/ui";
6
6
  import { CollectionEditorDialogProps } from "./CollectionEditorDialog";
7
7
  import { AIModifiedPathsProvider } from "./AIModifiedPathsContext";
8
8
  import { CollectionEditor } from "./CollectionEditorDialog";
9
- import type { EntityCollection } from "@rebasepro/types";
9
+ import type { CollectionConfig } from "@rebasepro/types";
10
10
 
11
11
  export type CollectionStudioViewProps = Omit<CollectionEditorDialogProps, "open" | "isNewCollection" | "editedCollectionId" | "handleClose" | "handleCancel"> & {
12
12
  collectionId?: string | "new";
@@ -16,7 +16,7 @@ export type CollectionStudioViewProps = Omit<CollectionEditorDialogProps, "open"
16
16
  * Receives the saved collection (or undefined if dismissed without saving).
17
17
  * When not provided, save completes silently.
18
18
  */
19
- onSave?: (collection?: EntityCollection) => void;
19
+ onSave?: (collection?: CollectionConfig) => void;
20
20
 
21
21
  /**
22
22
  * Called when the user cancels editing.
@@ -1,5 +1,5 @@
1
1
 
2
- import { IconForView } from "@rebasepro/core";
2
+ import { IconForView } from "@rebasepro/app";
3
3
  import React, { useState, useEffect } from "react";
4
4
  import {
5
5
  Button,
@@ -12,7 +12,7 @@ import {
12
12
  Tooltip,
13
13
  Typography
14
14
  } from "@rebasepro/ui";
15
- import type { EntityCollection } from "@rebasepro/types";
15
+ import type { CollectionConfig } from "@rebasepro/types";
16
16
  import { CollectionsConfigController } from "../../types/config_controller";
17
17
  import { CollectionStudioView } from "./CollectionStudioView";
18
18
  import type { CollectionEditorExtensionProps } from "../../extensibility_types";
@@ -25,7 +25,7 @@ export interface CollectionsStudioViewProps extends CollectionEditorExtensionPro
25
25
  * When provided, overrides the collections from `configController`.
26
26
  * Use this to control exactly which collections the editor displays.
27
27
  */
28
- collections?: EntityCollection[];
28
+ collections?: CollectionConfig[];
29
29
 
30
30
  /**
31
31
  * Controlled active collection ID.
@@ -1,10 +1,10 @@
1
1
 
2
2
  import { FieldCaption } from "../../_cms_internals";
3
3
  import React, { useMemo, useState } from "react";
4
- import { useCustomizationController } from "@rebasepro/core";
4
+ import { useCustomizationController } from "@rebasepro/app";
5
5
  import { getFieldConfig } from "../../../components/field_configs";
6
6
  import { PropertyConfigBadge } from "../../../components/PropertyConfigBadge";
7
- import { EntityCollection, Property } from "@rebasepro/types";
7
+ import { CollectionConfig, Property } from "@rebasepro/types";
8
8
  import {
9
9
  BooleanSwitchWithLabel,
10
10
  Button,
@@ -18,7 +18,7 @@ import {
18
18
  XIcon
19
19
  } from "@rebasepro/ui";
20
20
 
21
- import { useFormex } from "@rebasepro/formex";
21
+ import { useFormex } from "@rebasepro/forms";
22
22
  import { LayoutModeSwitch } from "./LayoutModeSwitch";
23
23
  import { ViewModeSwitch } from "./ViewModeSwitch";
24
24
  import { KanbanConfigSection } from "./KanbanConfigSection";
@@ -39,7 +39,7 @@ export function DisplaySettingsForm({
39
39
  setFieldValue,
40
40
  handleChange,
41
41
  submitCount
42
- } = useFormex<EntityCollection>();
42
+ } = useFormex<CollectionConfig>();
43
43
 
44
44
  const [orderPropertyDialogOpen, setOrderPropertyDialogOpen] = useState(false);
45
45
 
@@ -3,9 +3,9 @@ import React from "react";
3
3
  import {
4
4
  ConfirmationDialog,
5
5
  useCustomizationController
6
- } from "@rebasepro/core";
6
+ } from "@rebasepro/app";
7
7
  import { resolveEntityAction } from "../../_cms_internals";
8
- import { type EntityCollection } from "@rebasepro/types";
8
+ import { type CollectionConfig } from "@rebasepro/types";
9
9
  import { EntityAction } from "@rebasepro/types";
10
10
  import {
11
11
  Alert,
@@ -23,14 +23,14 @@ import {
23
23
  Trash2Icon,
24
24
  Typography
25
25
  } from "@rebasepro/ui";
26
- import { useFormex } from "@rebasepro/formex";
26
+ import { useFormex } from "@rebasepro/forms";
27
27
  import { EntityActionsSelectDialog } from "./EntityActionsSelectDialog";
28
28
 
29
29
  export function EntityActionsEditTab({
30
30
  collection,
31
31
  embedded = false
32
32
  }: {
33
- collection: EntityCollection,
33
+ collection: CollectionConfig,
34
34
  embedded?: boolean;
35
35
  }) {
36
36
 
@@ -42,7 +42,7 @@ export function EntityActionsEditTab({
42
42
  const {
43
43
  values,
44
44
  setFieldValue
45
- } = useFormex<EntityCollection>();
45
+ } = useFormex<CollectionConfig>();
46
46
 
47
47
  const resolvedEntityActions = ((values.entityActions ?? []) as (string | EntityAction<any>)[])
48
48
  .filter((e): e is string => typeof e === "string")
@@ -1,4 +1,4 @@
1
- import { useCustomizationController } from "@rebasepro/core";
1
+ import { useCustomizationController } from "@rebasepro/app";
2
2
  import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Typography } from "@rebasepro/ui";
3
3
  import React from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- import { useCustomizationController } from "@rebasepro/core";
1
+ import { useCustomizationController } from "@rebasepro/app";
2
2
  import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Typography } from "@rebasepro/ui";
3
3
  import React from "react";
4
4
 
@@ -23,8 +23,8 @@ import {
23
23
  SettingsIcon,
24
24
  Typography
25
25
  } from "@rebasepro/ui";
26
- import { extractEnumFromValues } from "@rebasepro/schema-inference";
27
- import { Field, Formex, getIn, useCreateFormex, useFormex } from "@rebasepro/formex";
26
+ import { extractEnumFromValues } from "@rebasepro/inference";
27
+ import { Field, Formex, getIn, useCreateFormex, useFormex } from "@rebasepro/forms";
28
28
 
29
29
  type EnumFormProps = {
30
30
  enumValues: EnumValueConfig[];
@@ -1,10 +1,10 @@
1
1
 
2
- import { IconForView } from "@rebasepro/core";
2
+ import { IconForView } from "@rebasepro/app";
3
3
  import { FieldCaption } from "../../_cms_internals";
4
4
  import React, { useState } from "react";
5
5
 
6
6
  import { SearchIconsView } from "../../_cms_internals";
7
- import type { EntityCollection, PostgresCollection } from "@rebasepro/types";
7
+ import type { CollectionConfig, PostgresCollectionConfig } from "@rebasepro/types";
8
8
  import {
9
9
  BooleanSwitchWithLabel,
10
10
  Chip,
@@ -23,11 +23,11 @@ import {
23
23
  Tooltip,
24
24
  Typography
25
25
  } from "@rebasepro/ui";
26
- import { Field, getIn, useFormex } from "@rebasepro/formex";
26
+ import { Field, getIn, useFormex } from "@rebasepro/forms";
27
27
  import { useCollectionsConfigController } from "../../useCollectionsConfigController";
28
28
  import { singular, toSnakeCase } from "@rebasepro/utils";
29
29
  import type { ExtraCollectionFieldsParams } from "../../extensibility_types";
30
- import { toSerializableCollection } from "../../serializable_utils";
30
+ import { toSerializableCollectionConfig } from "../../serializable_utils";
31
31
 
32
32
  export function GeneralSettingsForm({
33
33
  isNewCollection,
@@ -40,7 +40,7 @@ export function GeneralSettingsForm({
40
40
  isNewCollection: boolean;
41
41
  existingPaths?: string[];
42
42
  existingIds?: string[];
43
- parentCollection?: EntityCollection;
43
+ parentCollection?: CollectionConfig;
44
44
  renderExtraCollectionFields?: (params: ExtraCollectionFieldsParams) => React.ReactNode;
45
45
  standalone?: boolean;
46
46
  }) {
@@ -53,7 +53,7 @@ export function GeneralSettingsForm({
53
53
  errors,
54
54
  setFieldTouched,
55
55
  submitCount
56
- } = useFormex<PostgresCollection>();
56
+ } = useFormex<PostgresCollectionConfig>();
57
57
 
58
58
  const [iconDialogOpen, setIconDialogOpen] = useState(false);
59
59
 
@@ -255,7 +255,7 @@ export function GeneralSettingsForm({
255
255
  onMetadataChange: (key: string, value: unknown) => {
256
256
  setFieldValue(`metadata.${key}`, value);
257
257
  },
258
- collection: toSerializableCollection(values),
258
+ collection: toSerializableCollectionConfig(values),
259
259
  })}
260
260
  </div>
261
261
  )}
@@ -1,23 +1,23 @@
1
1
  import { useSafeSnackbarController } from "../../useSafeSnackbarController";
2
- import { EntityCollection } from "@rebasepro/types";
2
+ import { CollectionConfig } from "@rebasepro/types";
3
3
  import { Button, CopyIcon, Dialog, DialogActions, DialogContent, DialogTitle, Typography } from "@rebasepro/ui";
4
4
  import React from "react";
5
5
  import JSON5 from "json5";
6
6
  import { Highlight, themes } from "prism-react-renderer"
7
7
  import { camelCase } from "./utils/strings";
8
- import { clone } from "@rebasepro/formex";
8
+ import { clone } from "@rebasepro/forms";
9
9
  import { isEmptyObject } from "@rebasepro/utils";
10
10
 
11
11
  export function GetCodeDialog({
12
12
  collection,
13
13
  onOpenChange,
14
14
  open
15
- }: { onOpenChange: (open: boolean) => void, collection: EntityCollection, open: boolean }) {
15
+ }: { onOpenChange: (open: boolean) => void, collection: CollectionConfig, open: boolean }) {
16
16
 
17
17
  const snackbarController = useSafeSnackbarController();
18
18
 
19
19
  const code = collection
20
- ? "import { EntityCollection } from \"@rebasepro/core\";\n\nconst " + (collection?.name ? camelCase(collection.name) : "my") + "Collection:EntityCollection = " + JSON5.stringify(collectionToCode({ ...collection }), null, "\t")
20
+ ? "import { CollectionConfig } from \"@rebasepro/app\";\n\nconst " + (collection?.name ? camelCase(collection.name) : "my") + "Collection:CollectionConfig = " + JSON5.stringify(collectionToCode({ ...collection }), null, "\t")
21
21
  : "No collection selected";
22
22
  return <Dialog open={open}
23
23
  onOpenChange={onOpenChange}
@@ -78,7 +78,7 @@ export function GetCodeDialog({
78
78
  </Dialog>;
79
79
  }
80
80
 
81
- function collectionToCode(collection: EntityCollection): object {
81
+ function collectionToCode(collection: CollectionConfig): object {
82
82
 
83
83
  const propertyCleanup = (value: unknown): unknown => {
84
84
  if (value === undefined || value === null) {
@@ -1,12 +1,12 @@
1
1
 
2
2
  import { FieldCaption } from "../../_cms_internals";
3
3
  import React, { useMemo, useRef, useState } from "react";
4
- import { useAuthController, useCustomizationController } from "@rebasepro/core";
5
- import { EntityCollection, Property } from "@rebasepro/types";
4
+ import { useAuthController, useCustomizationController } from "@rebasepro/app";
5
+ import { CollectionConfig, Property } from "@rebasepro/types";
6
6
  import { PropertyConfigBadge } from "../../../components/PropertyConfigBadge";
7
7
  import { getFieldConfig } from "../../../components/field_configs";
8
8
  import { Button, IconButton, iconSize, Select, SelectItem, Typography, XIcon } from "@rebasepro/ui";
9
- import { useFormex } from "@rebasepro/formex";
9
+ import { useFormex } from "@rebasepro/forms";
10
10
  import { PropertyFormDialog } from "./PropertyEditView";
11
11
  import { unslugify } from "@rebasepro/utils";
12
12
 
@@ -19,7 +19,7 @@ export function KanbanConfigSection({
19
19
  }) {
20
20
  const authController = useAuthController();
21
21
  const customizationController = useCustomizationController();
22
- const { values, setFieldValue } = useFormex<EntityCollection>();
22
+ const { values, setFieldValue } = useFormex<CollectionConfig>();
23
23
  const panelRef = useRef<HTMLDivElement>(null);
24
24
  const [columnPropertyDialogOpen, setColumnPropertyDialogOpen] = useState(false);
25
25
 
@@ -2,14 +2,14 @@
2
2
  import React, { useCallback, useDeferredValue, useEffect, useMemo, useRef, useState } from "react";
3
3
  import { deepEqual as equal } from "fast-equals"
4
4
 
5
- import { Formex, FormexController, getIn, useCreateFormex } from "@rebasepro/formex";
6
- import { ConfirmationDialog } from "@rebasepro/core";
5
+ import { Formex, FormexController, getIn, useCreateFormex } from "@rebasepro/forms";
6
+ import { ConfirmationDialog } from "@rebasepro/app";
7
7
  import { DEFAULT_FIELD_CONFIGS, getFieldConfig, getFieldId } from "../../../components/field_configs";
8
8
  import { PropertyConfigBadge } from "../../../components/PropertyConfigBadge";
9
- import { EntityCollection, Property, PropertyConfig, PropertyConfigId } from "@rebasepro/types";
9
+ import { CollectionConfig, Property, PropertyConfig, PropertyConfigId } from "@rebasepro/types";
10
10
  import type { PropertyTypePreset, PropertyType } from "../../extensibility_types";
11
- import { toSerializableProperty, toSerializableCollection } from "../../serializable_utils";
12
- import type { SerializableProperty, SerializableCollection } from "../../serializable_types";
11
+ import { toSerializableProperty, toSerializableCollectionConfig } from "../../serializable_utils";
12
+ import type { SerializableProperty, SerializableCollectionConfig } from "../../serializable_types";
13
13
  import { isPropertyBuilder } from "@rebasepro/common";
14
14
  import {
15
15
  AlertTriangleIcon,
@@ -91,9 +91,9 @@ export type PropertyFormProps = {
91
91
  metadata: Record<string, unknown>;
92
92
  onMetadataChange: (key: string, value: unknown) => void;
93
93
  property: SerializableProperty;
94
- collection: SerializableCollection;
94
+ collection: SerializableCollectionConfig;
95
95
  }) => React.ReactNode;
96
- collectionValues?: EntityCollection;
96
+ collectionValues?: CollectionConfig;
97
97
 
98
98
  };
99
99
 
@@ -368,7 +368,7 @@ function PropertyEditFormFields({
368
368
  propertyTypePresets?: PropertyTypePreset[];
369
369
  hiddenPropertyTypes?: PropertyType[];
370
370
  renderExtraPropertyFields?: PropertyFormProps["renderExtraPropertyFields"];
371
- collectionValues?: EntityCollection;
371
+ collectionValues?: CollectionConfig;
372
372
 
373
373
  } & FormexController<PropertyWithId>) {
374
374
 
@@ -612,7 +612,7 @@ function PropertyEditFormFields({
612
612
  } as PropertyWithId);
613
613
  },
614
614
  property: toSerializableProperty(values as Property),
615
- collection: toSerializableCollection(collectionValues),
615
+ collection: toSerializableCollectionConfig(collectionValues),
616
616
  })}
617
617
  </div>
618
618
  )}
@@ -1,4 +1,4 @@
1
- import { useCustomizationController } from "@rebasepro/core";
1
+ import { useCustomizationController } from "@rebasepro/app";
2
2
  import { getFieldConfig } from "../../../components/field_configs";
3
3
  import { PropertyConfigBadge } from "../../../components/PropertyConfigBadge";
4
4
  import { ErrorBoundary } from "@rebasepro/ui";
@@ -47,39 +47,49 @@ export function PropertyFieldPreview({
47
47
  >
48
48
  <PropertyConfigBadge propertyConfig={propertyConfig} size="small"/>
49
49
 
50
- <div className="flex-1 flex flex-col min-w-0 pr-8">
50
+ <div className="flex-1 flex flex-col min-w-0 mr-16">
51
51
  {includeName &&
52
52
  <ErrorBoundary>
53
- <div className="flex items-center gap-2">
54
- <Typography variant="body2" component="span">
53
+ <div className="flex items-center gap-2 min-w-0">
54
+ <Typography variant="body2" component="span" className="truncate font-medium">
55
55
  {property.name || propertyKey || "\u00a0"}
56
56
  </Typography>
57
- {property.name && propertyKey && property.name !== propertyKey && (
58
- <Typography variant="caption" component="span" color="secondary" className="font-mono">
57
+ {propertyConfig?.name && (
58
+ <Typography
59
+ variant={"caption"}
60
+ component="span"
61
+ className="text-text-secondary dark:text-text-secondary-dark shrink-0">
62
+ {propertyConfig.name}
63
+ </Typography>
64
+ )}
65
+ </div>
66
+ <div className="flex items-center gap-1.5 mt-0.5 min-w-0">
67
+ {propertyKey && (
68
+ <Typography variant="caption" component="span" color="secondary" className="font-mono truncate">
59
69
  {propertyKey}
60
70
  </Typography>
61
71
  )}
72
+ <ErrorBoundary>
73
+ <Typography variant="caption" component="span" className="shrink-0 text-text-disabled dark:text-text-disabled-dark font-mono">
74
+ · {"columnType" in property ? (property as { columnType?: string }).columnType ?? property.type : property.type}
75
+ </Typography>
76
+ </ErrorBoundary>
62
77
  </div>
63
78
  </ErrorBoundary>}
64
79
 
65
- <div className="flex flex-row items-center gap-2 mt-0.5">
66
- <ErrorBoundary>
67
- <Typography
68
- variant={"caption"}
69
- component="span"
70
- className="text-text-secondary dark:text-text-secondary-dark font-medium">
71
- {propertyConfig?.name}
72
- </Typography>
73
- </ErrorBoundary>
74
- </div>
80
+ {!includeName &&
81
+ <div className="flex flex-row items-center gap-2">
82
+ <ErrorBoundary>
83
+ <Typography
84
+ variant={"caption"}
85
+ component="span"
86
+ className="text-text-secondary dark:text-text-secondary-dark font-medium">
87
+ {propertyConfig?.name}
88
+ </Typography>
89
+ </ErrorBoundary>
90
+ </div>}
75
91
  </div>
76
92
 
77
- <ErrorBoundary>
78
- <Typography variant="caption" component="span" className="ml-auto shrink-0 text-text-disabled dark:text-text-disabled-dark font-mono bg-surface-100 dark:bg-surface-900 px-1.5 py-0.5 rounded mr-8">
79
- {"columnType" in property ? (property as { columnType?: string }).columnType ?? property.type : property.type}
80
- </Typography>
81
- </ErrorBoundary>
82
-
83
93
  {includeEditButton && <Typography variant={"button"}>EDIT</Typography>}
84
94
  </div>
85
95
  </div>
@@ -120,35 +130,34 @@ export function NonEditablePropertyPreview({
120
130
  <MinusCircleIcon className={"text-surface-accent-400 absolute -right-2 -top-2 bg-surface-50 dark:bg-surface-900 rounded-full"} size={iconSize.small}/>
121
131
  </div>
122
132
 
123
- <div className="flex-1 flex flex-col min-w-0 pr-8">
124
- <Typography variant="label" component="span" className="grow pr-2">
125
- {property?.name ? property.name : name}
126
- </Typography>
127
-
128
- <div className="flex flex-row items-center gap-2 mt-0.5">
129
- {propertyConfig && <Typography variant={"caption"} component="span" className="text-text-secondary dark:text-text-secondary-dark font-medium">
133
+ <div className="flex-1 flex flex-col min-w-0 mr-16">
134
+ <div className="flex items-center gap-2 min-w-0">
135
+ <Typography variant="label" component="span" className="truncate">
136
+ {property?.name ? property.name : name}
137
+ </Typography>
138
+ {propertyConfig && <Typography variant={"caption"} component="span" className="text-text-secondary dark:text-text-secondary-dark shrink-0">
130
139
  {propertyConfig?.name}
131
140
  </Typography>}
141
+ </div>
142
+
143
+ <div className="flex flex-row items-center gap-1.5 mt-0.5 min-w-0">
144
+ <Typography variant="caption" component="span" color="secondary" className="font-mono truncate">
145
+ {name}
146
+ </Typography>
132
147
 
133
148
  {property && isPropertyBuilder(property) && <ErrorBoundary>
134
149
  <Typography variant="caption" component="span" className="text-text-disabled dark:text-text-disabled-dark">
135
- Defined in code
150
+ · Defined in code
136
151
  </Typography>
137
152
  </ErrorBoundary>}
138
153
 
139
154
  {!property && <ErrorBoundary>
140
155
  <Typography variant="caption" component="span" className="text-text-disabled dark:text-text-disabled-dark">
141
- Additional field
156
+ · Additional field
142
157
  </Typography>
143
158
  </ErrorBoundary>}
144
159
  </div>
145
160
  </div>
146
-
147
- {property && !isPropertyBuilder(property) && <ErrorBoundary>
148
- <Typography variant="caption" component="span" className="ml-auto shrink-0 text-text-disabled dark:text-text-disabled-dark font-mono bg-surface-100 dark:bg-surface-900 px-1.5 py-0.5 rounded mr-8">
149
- {"columnType" in property ? (property as { columnType?: string }).columnType ?? property.type : property.type}
150
- </Typography>
151
- </ErrorBoundary>}
152
161
  </div>
153
162
  </div>
154
163
  )
@@ -2,7 +2,7 @@
2
2
  import React from "react";
3
3
  import { deepEqual as equal } from "fast-equals"
4
4
 
5
- import { AIModifiedIndicator } from "@rebasepro/core";
5
+ import { AIModifiedIndicator } from "@rebasepro/app";
6
6
  import { AdditionalFieldDelegate, Properties, Property } from "@rebasepro/types";
7
7
  import { isPropertyBuilder } from "@rebasepro/common";
8
8
  import {
@@ -287,7 +287,7 @@ export function PropertyTreeEntry({
287
287
  selected={selected}/>}
288
288
  </div>
289
289
 
290
- <div className="absolute top-1/2 -translate-y-1/2 right-3 flex flex-row items-center gap-1">
290
+ <div className="absolute top-1/2 -translate-y-1/2 right-2 flex flex-row items-center gap-1">
291
291
  {isAIModified && <AIModifiedIndicator/>}
292
292
  {isPropertyInferred && <>
293
293
  <Tooltip title={"Inferred property"} asChild={true}>
@@ -12,7 +12,7 @@
12
12
  import React from "react";
13
13
  import { useNavigate } from "react-router-dom";
14
14
  import { useUrlController } from "../../_cms_internals";
15
- import { useSnackbarController } from "@rebasepro/core";
15
+ import { useSnackbarController } from "@rebasepro/app";
16
16
  import { CollectionStudioView, CollectionStudioViewProps } from "./CollectionStudioView";
17
17
 
18
18
  export type RouterCollectionStudioViewProps = Omit<CollectionStudioViewProps, "onSave" | "onCancel">;