@rebasepro/admin 0.0.1-canary.eae7889 → 0.0.1-canary.eb08332

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 (716) hide show
  1. package/LICENSE +21 -6
  2. package/README.md +139 -0
  3. package/dist/CollectionEditorDialog-DKGlYDPc.js +3630 -0
  4. package/dist/CollectionEditorDialog-DKGlYDPc.js.map +1 -0
  5. package/dist/PropertyEditView-h0N-AMCY.js +3808 -0
  6. package/dist/PropertyEditView-h0N-AMCY.js.map +1 -0
  7. package/dist/RouterCollectionsStudioView-DdEStpFk.js +192 -0
  8. package/dist/RouterCollectionsStudioView-DdEStpFk.js.map +1 -0
  9. package/dist/collection_editor/ConfigControllerProvider.d.ts +2 -11
  10. package/dist/collection_editor/_cms_internals.d.ts +4 -4
  11. package/dist/collection_editor/api/generateCollectionApi.d.ts +10 -9
  12. package/dist/collection_editor/extensibility_types.d.ts +135 -0
  13. package/dist/collection_editor/index.d.ts +6 -1
  14. package/dist/collection_editor/pgColumnToProperty.d.ts +3 -3
  15. package/dist/collection_editor/serializable_types.d.ts +370 -0
  16. package/dist/collection_editor/serializable_utils.d.ts +50 -0
  17. package/dist/collection_editor/types/collection_editor_controller.d.ts +11 -10
  18. package/dist/collection_editor/types/collection_inference.d.ts +2 -2
  19. package/dist/collection_editor/types/config_controller.d.ts +21 -14
  20. package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +7 -5
  21. package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +7 -5
  22. package/dist/collection_editor/ui/EditorCollectionAction.d.ts +1 -1
  23. package/dist/collection_editor/ui/EditorCollectionActionStart.d.ts +1 -1
  24. package/dist/collection_editor/ui/EditorEntityAction.d.ts +1 -1
  25. package/dist/collection_editor/ui/HomePageEditorCollectionAction.d.ts +1 -1
  26. package/dist/collection_editor/ui/KanbanSetupAction.d.ts +7 -5
  27. package/dist/collection_editor/ui/MissingReferenceWidget.d.ts +1 -1
  28. package/dist/collection_editor/ui/NewCollectionButton.d.ts +1 -1
  29. package/dist/collection_editor/ui/NewCollectionCard.d.ts +1 -1
  30. package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +6 -5
  31. package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +4 -4
  32. package/dist/collection_editor/ui/collection_editor/AIModifiedPathsContext.d.ts +1 -1
  33. package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +7 -7
  34. package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +10 -11
  35. package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +4 -4
  36. package/dist/collection_editor/ui/collection_editor/CollectionJsonImportDialog.d.ts +4 -3
  37. package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +17 -7
  38. package/dist/collection_editor/ui/collection_editor/CollectionRLSTab.d.ts +2 -1
  39. package/dist/collection_editor/ui/collection_editor/CollectionRelationsTab.d.ts +2 -1
  40. package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +14 -1
  41. package/dist/collection_editor/ui/collection_editor/CollectionYupValidation.d.ts +1 -9
  42. package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +25 -2
  43. package/dist/collection_editor/ui/collection_editor/DisplaySettingsForm.d.ts +4 -2
  44. package/dist/collection_editor/ui/collection_editor/EntityActionsEditTab.d.ts +4 -3
  45. package/dist/collection_editor/ui/collection_editor/EntityActionsSelectDialog.d.ts +2 -1
  46. package/dist/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.d.ts +2 -1
  47. package/dist/collection_editor/ui/collection_editor/EnumForm.d.ts +2 -1
  48. package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +8 -4
  49. package/dist/collection_editor/ui/collection_editor/GetCodeDialog.d.ts +4 -3
  50. package/dist/collection_editor/ui/collection_editor/KanbanConfigSection.d.ts +2 -1
  51. package/dist/collection_editor/ui/collection_editor/LayoutModeSwitch.d.ts +3 -3
  52. package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +17 -5
  53. package/dist/collection_editor/ui/collection_editor/PropertyFieldPreview.d.ts +2 -2
  54. package/dist/collection_editor/ui/collection_editor/PropertyTree.d.ts +2 -2
  55. package/dist/collection_editor/ui/collection_editor/RouterCollectionStudioView.d.ts +15 -0
  56. package/dist/collection_editor/ui/collection_editor/RouterCollectionsStudioView.d.ts +14 -0
  57. package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +8 -6
  58. package/dist/collection_editor/ui/collection_editor/SwitchControl.d.ts +3 -2
  59. package/dist/collection_editor/ui/collection_editor/ViewModeSwitch.d.ts +1 -1
  60. package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.d.ts +1 -1
  61. package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.d.ts +3 -2
  62. package/dist/collection_editor/ui/collection_editor/properties/BlockPropertyField.d.ts +2 -1
  63. package/dist/collection_editor/ui/collection_editor/properties/BooleanPropertyField.d.ts +2 -1
  64. package/dist/collection_editor/ui/collection_editor/properties/DateTimePropertyField.d.ts +2 -1
  65. package/dist/collection_editor/ui/collection_editor/properties/EnumPropertyField.d.ts +2 -1
  66. package/dist/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.d.ts +2 -1
  67. package/dist/collection_editor/ui/collection_editor/properties/MapPropertyField.d.ts +2 -1
  68. package/dist/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.d.ts +2 -1
  69. package/dist/collection_editor/ui/collection_editor/properties/NumberPropertyField.d.ts +2 -1
  70. package/dist/collection_editor/ui/collection_editor/properties/ReferencePropertyField.d.ts +3 -2
  71. package/dist/collection_editor/ui/collection_editor/properties/RelationPropertyField.d.ts +3 -8
  72. package/dist/collection_editor/ui/collection_editor/properties/RepeatPropertyField.d.ts +2 -1
  73. package/dist/collection_editor/ui/collection_editor/properties/StoragePropertyField.d.ts +2 -1
  74. package/dist/collection_editor/ui/collection_editor/properties/StringPropertyField.d.ts +2 -1
  75. package/dist/collection_editor/ui/collection_editor/properties/UrlPropertyField.d.ts +2 -1
  76. package/dist/collection_editor/ui/collection_editor/properties/VectorPropertyField.d.ts +4 -0
  77. package/dist/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.d.ts +2 -1
  78. package/dist/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.d.ts +2 -1
  79. package/dist/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.d.ts +1 -1
  80. package/dist/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.d.ts +2 -1
  81. package/dist/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.d.ts +2 -1
  82. package/dist/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.d.ts +2 -1
  83. package/dist/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.d.ts +2 -1
  84. package/dist/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.d.ts +2 -1
  85. package/dist/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.d.ts +1 -1
  86. package/dist/collection_editor/ui/collection_editor/templates/blog_template.d.ts +2 -2
  87. package/dist/collection_editor/ui/collection_editor/templates/pages_template.d.ts +2 -2
  88. package/dist/collection_editor/ui/collection_editor/templates/products_template.d.ts +2 -2
  89. package/dist/collection_editor/ui/collection_editor/templates/users_template.d.ts +2 -2
  90. package/dist/collection_editor/useJsonCollectionsConfigController.d.ts +37 -0
  91. package/dist/collection_editor/useLocalCollectionsConfigController.d.ts +2 -2
  92. package/dist/collection_editor/useSafeSnackbarController.d.ts +2 -0
  93. package/dist/collection_editor/validateCollectionJson.d.ts +2 -2
  94. package/dist/collection_editor_ui.d.ts +4 -0
  95. package/dist/collection_editor_ui.js +33 -11
  96. package/dist/collection_editor_ui.js.map +1 -1
  97. package/dist/components/ArrayContainer.d.ts +5 -5
  98. package/dist/components/ClearFilterSortButton.d.ts +1 -1
  99. package/dist/components/CollectionEditorDialogs.d.ts +2 -1
  100. package/dist/components/CollectionPanel.d.ts +58 -0
  101. package/dist/components/{EntityCollectionTable/EntityCollectionRowActions.d.ts → CollectionTableBinding/CollectionRowActions.d.ts} +5 -5
  102. package/dist/components/CollectionTableBinding/CollectionTableBinding.d.ts +28 -0
  103. package/dist/components/{EntityCollectionTable/EntityCollectionTableProps.d.ts → CollectionTableBinding/CollectionTableBindingProps.d.ts} +4 -4
  104. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.d.ts +2 -2
  105. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.d.ts +6 -6
  106. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.d.ts +6 -6
  107. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.d.ts +6 -6
  108. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.d.ts +3 -2
  109. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.d.ts +4 -4
  110. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.d.ts +1 -1
  111. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.d.ts +1 -1
  112. package/dist/components/CollectionTableBinding/index.d.ts +6 -0
  113. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.d.ts +5 -1
  114. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.d.ts +3 -3
  115. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.d.ts +1 -1
  116. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.d.ts +2 -2
  117. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.d.ts +7 -6
  118. package/dist/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.d.ts +4 -3
  119. package/dist/components/CollectionViewBinding/BoardCardBinding.d.ts +31 -0
  120. package/dist/components/CollectionViewBinding/CollectionBoardViewBinding.d.ts +22 -0
  121. package/dist/components/{EntityCollectionView/EntityCollectionCardView.d.ts → CollectionViewBinding/CollectionCardViewBinding.d.ts} +5 -5
  122. package/dist/components/CollectionViewBinding/CollectionListViewBinding.d.ts +50 -0
  123. package/dist/components/CollectionViewBinding/CollectionViewActions.d.ts +20 -0
  124. package/dist/components/CollectionViewBinding/CollectionViewBinding.d.ts +41 -0
  125. package/dist/components/CollectionViewBinding/CollectionViewStartActions.d.ts +21 -0
  126. package/dist/components/CollectionViewBinding/EntityCardBinding.d.ts +21 -0
  127. package/dist/components/CollectionViewBinding/FilterPresetsButton.d.ts +22 -0
  128. package/dist/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.d.ts +3 -2
  129. package/dist/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.d.ts +6 -5
  130. package/dist/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.d.ts +2 -1
  131. package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.d.ts +3 -3
  132. package/dist/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.d.ts +7 -6
  133. package/dist/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.d.ts +2 -2
  134. package/dist/components/{EntityCollectionView/useEntityPreviewSlots.d.ts → CollectionViewBinding/usePreviewSlots.d.ts} +5 -5
  135. package/dist/components/DefaultAppBar.d.ts +18 -1
  136. package/dist/components/DefaultDrawer.d.ts +53 -5
  137. package/dist/components/DeleteEntityDialog.d.ts +6 -5
  138. package/dist/components/DetailViewBinding.d.ts +28 -0
  139. package/dist/components/DrawerNavigationGroup.d.ts +1 -1
  140. package/dist/components/DrawerNavigationItem.d.ts +1 -1
  141. package/dist/components/EditFormActions.d.ts +3 -0
  142. package/dist/components/EditViewBinding.d.ts +58 -0
  143. package/dist/components/{EntityPreview.d.ts → EntityPreviewBinding.d.ts} +14 -14
  144. package/dist/components/EntityViewBinding.d.ts +13 -0
  145. package/dist/components/FieldCaption.d.ts +1 -1
  146. package/dist/components/HomePage/ContentHomePage.d.ts +1 -1
  147. package/dist/components/HomePage/FavouritesView.d.ts +1 -1
  148. package/dist/components/HomePage/HomePageDnD.d.ts +7 -7
  149. package/dist/components/HomePage/NavigationCard.d.ts +1 -1
  150. package/dist/components/HomePage/NavigationCardBinding.d.ts +2 -1
  151. package/dist/components/HomePage/NavigationGroup.d.ts +2 -2
  152. package/dist/components/HomePage/RenameGroupDialog.d.ts +2 -1
  153. package/dist/components/HomePage/SmallNavigationCard.d.ts +1 -1
  154. package/dist/components/JsonPreviewBinding.d.ts +4 -0
  155. package/dist/components/PropertyCollectionView.d.ts +3 -2
  156. package/dist/components/PropertyIdCopyTooltip.d.ts +3 -3
  157. package/dist/components/{RebaseCMS.d.ts → RebaseAdmin.d.ts} +2 -2
  158. package/dist/components/RebaseAuthGate.d.ts +1 -1
  159. package/dist/components/RebaseLayout.d.ts +6 -5
  160. package/dist/components/RebaseNavigation.d.ts +2 -2
  161. package/dist/components/RebaseRouteDefs.d.ts +2 -2
  162. package/dist/components/RebaseShell.d.ts +2 -1
  163. package/dist/components/ReferenceTable/{EntitySelectionTable.d.ts → SelectionTableBinding.d.ts} +6 -6
  164. package/dist/components/ReferenceWidget.d.ts +3 -2
  165. package/dist/components/RelationSelector.d.ts +1 -1
  166. package/dist/components/SearchIconsView.d.ts +2 -1
  167. package/dist/components/SelectableTable/SelectableTable.d.ts +11 -11
  168. package/dist/components/SelectableTable/SelectableTableContext.d.ts +3 -3
  169. package/dist/components/SelectableTable/SelectionStore.d.ts +16 -22
  170. package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +9 -3
  171. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +10 -3
  172. package/dist/components/SelectableTable/filters/FilterFieldBinding.d.ts +40 -0
  173. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +10 -3
  174. package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +8 -1
  175. package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +10 -3
  176. package/dist/components/SideDialogs.d.ts +2 -2
  177. package/dist/components/SidePanelBinding.d.ts +11 -0
  178. package/dist/components/{SideEntityProvider.d.ts → SidePanelProvider.d.ts} +8 -8
  179. package/dist/components/admin/CreationResultDialog.d.ts +6 -0
  180. package/dist/components/admin/index.d.ts +1 -3
  181. package/dist/components/app/AppBar.d.ts +1 -1
  182. package/dist/components/app/Drawer.d.ts +9 -2
  183. package/dist/components/common/default_entity_actions.d.ts +8 -1
  184. package/dist/components/field_configs.d.ts +1 -1
  185. package/dist/components/history/EntityHistoryEntry.d.ts +3 -3
  186. package/dist/components/history/EntityHistoryView.d.ts +1 -1
  187. package/dist/components/history/LastEditedByFormAction.d.ts +2 -1
  188. package/dist/components/history/LastEditedByIndicator.d.ts +4 -3
  189. package/dist/components/history/UserChip.d.ts +1 -1
  190. package/dist/components/index.d.ts +16 -13
  191. package/dist/contexts/SidePanelControllerContext.d.ts +3 -0
  192. package/dist/data_export/export/BasicExportAction.d.ts +2 -1
  193. package/dist/data_export/export/ExportCollectionAction.d.ts +4 -4
  194. package/dist/data_export/export/export.d.ts +3 -3
  195. package/dist/data_import/components/DataNewPropertiesMapping.d.ts +1 -1
  196. package/dist/data_import/components/ImportFileUpload.d.ts +1 -1
  197. package/dist/data_import/components/ImportNewPropertyFieldPreview.d.ts +2 -1
  198. package/dist/data_import/components/ImportSaveInProgress.d.ts +3 -3
  199. package/dist/data_import/import/ImportCollectionAction.d.ts +4 -3
  200. package/dist/data_import/utils/data.d.ts +1 -1
  201. package/dist/data_import/utils/file_headers.d.ts +6 -1
  202. package/dist/data_import/utils/file_to_json.d.ts +1 -11
  203. package/dist/data_import/utils/transforms.d.ts +11 -0
  204. package/dist/editor/components/SlashCommandMenu.d.ts +2 -1
  205. package/dist/editor/components/editor-bubble.d.ts +5 -1
  206. package/dist/editor/components/image-bubble.d.ts +5 -1
  207. package/dist/editor/components/index.d.ts +3 -3
  208. package/dist/editor/components/table-bubble.d.ts +5 -1
  209. package/dist/editor/editor.d.ts +4 -4
  210. package/dist/editor/nodeViews/ReactNodeView.d.ts +4 -1
  211. package/dist/editor/selectors/color-selector.d.ts +1 -1
  212. package/dist/editor/selectors/link-selector.d.ts +1 -1
  213. package/dist/editor/selectors/node-selector.d.ts +1 -1
  214. package/dist/editor/selectors/text-buttons.d.ts +1 -1
  215. package/dist/editor/useProseMirror.d.ts +2 -2
  216. package/dist/editor/utils/remove_classes.d.ts +1 -1
  217. package/dist/editor.js +2625 -3569
  218. package/dist/editor.js.map +1 -1
  219. package/dist/form/EntityForm.d.ts +11 -9
  220. package/dist/form/EntityFormActions.d.ts +2 -1
  221. package/dist/form/EntityFormBinding.d.ts +27 -0
  222. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  223. package/dist/form/components/FieldHelperText.d.ts +1 -1
  224. package/dist/form/components/FormEntry.d.ts +1 -1
  225. package/dist/form/components/FormLayout.d.ts +1 -1
  226. package/dist/form/components/LabelWithIconAndTooltip.d.ts +1 -1
  227. package/dist/form/components/LocalChangesMenu.d.ts +3 -2
  228. package/dist/form/components/StorageItemPreview.d.ts +2 -1
  229. package/dist/form/components/StorageUploadProgress.d.ts +10 -4
  230. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +2 -1
  231. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +2 -1
  232. package/dist/form/field_bindings/BlockFieldBinding.d.ts +2 -1
  233. package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +2 -1
  234. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +2 -1
  235. package/dist/form/field_bindings/MapFieldBinding.d.ts +2 -1
  236. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +4 -3
  237. package/dist/form/field_bindings/MultiSelectFieldBinding.d.ts +2 -1
  238. package/dist/form/field_bindings/MultipleRelationFieldBinding.d.ts +2 -1
  239. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +2 -1
  240. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -1
  241. package/dist/form/field_bindings/RelationFieldBinding.d.ts +2 -1
  242. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +2 -1
  243. package/dist/form/field_bindings/SelectFieldBinding.d.ts +2 -1
  244. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +5 -4
  245. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +2 -1
  246. package/dist/form/field_bindings/TextFieldBinding.d.ts +2 -1
  247. package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +2 -1
  248. package/dist/form/field_bindings/VectorFieldBinding.d.ts +12 -0
  249. package/dist/form/form_utils.d.ts +8 -0
  250. package/dist/form/index.d.ts +6 -2
  251. package/dist/form/validation.d.ts +3 -3
  252. package/dist/history-C0FdqGNz.js +311 -0
  253. package/dist/history-C0FdqGNz.js.map +1 -0
  254. package/dist/hooks/index.d.ts +4 -4
  255. package/dist/hooks/navigation/contexts/CollectionRegistryContext.d.ts +2 -2
  256. package/dist/hooks/navigation/useAsyncResolver.d.ts +26 -0
  257. package/dist/hooks/navigation/useBuildCollectionRegistryController.d.ts +2 -0
  258. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +6 -8
  259. package/dist/hooks/navigation/useNavigationResolution.d.ts +6 -7
  260. package/dist/hooks/navigation/useResolvedCollections.d.ts +11 -7
  261. package/dist/hooks/navigation/useResolvedViews.d.ts +2 -5
  262. package/dist/hooks/navigation/useTopLevelNavigation.d.ts +3 -3
  263. package/dist/hooks/navigation/utils.d.ts +5 -5
  264. package/dist/hooks/useBreadcrumbsController.d.ts +2 -32
  265. package/dist/hooks/useBuildSidePanel.d.ts +6 -0
  266. package/dist/hooks/useCMSContext.d.ts +2 -2
  267. package/dist/hooks/{useEntityHistory.d.ts → useHistory.d.ts} +2 -2
  268. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  269. package/dist/hooks/{useEntitySelectionDialog.d.ts → useSelectionDialog.d.ts} +2 -2
  270. package/dist/hooks/useSideDialogsController.d.ts +1 -1
  271. package/dist/hooks/useSidePanel.d.ts +11 -0
  272. package/dist/index.d.ts +6 -3
  273. package/dist/index.js +2 -799
  274. package/dist/markdown-CklalUUk.js +526 -0
  275. package/dist/markdown-CklalUUk.js.map +1 -0
  276. package/dist/preview/components/ArrayEnumPreview.d.ts +2 -1
  277. package/dist/preview/components/EmptyValue.d.ts +2 -1
  278. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  279. package/dist/preview/components/ImagePreview.d.ts +2 -1
  280. package/dist/preview/components/ReferencePreview.d.ts +2 -1
  281. package/dist/preview/components/RelationPreview.d.ts +2 -1
  282. package/dist/preview/components/StorageThumbnail.d.ts +3 -1
  283. package/dist/preview/components/UrlComponentPreview.d.ts +1 -0
  284. package/dist/preview/components/UserPreview.d.ts +6 -3
  285. package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +2 -1
  286. package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +1 -1
  287. package/dist/preview/property_previews/ArrayOfRelationsPreview.d.ts +1 -1
  288. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +2 -1
  289. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +2 -1
  290. package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +2 -1
  291. package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +1 -1
  292. package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +2 -1
  293. package/dist/preview/property_previews/MapPropertyPreview.d.ts +3 -2
  294. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +5 -4
  295. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  296. package/dist/routes/CustomViewRoute.d.ts +2 -1
  297. package/dist/routes/RebaseRoute.d.ts +1 -1
  298. package/dist/src-DLAFyeZI.js +24222 -0
  299. package/dist/src-DLAFyeZI.js.map +1 -0
  300. package/dist/types/components/EntityFormActionsProps.d.ts +4 -4
  301. package/dist/types/components/EntityFormProps.d.ts +65 -5
  302. package/dist/types/components/PropertyPreviewProps.d.ts +6 -1
  303. package/dist/types/components/formex.d.ts +1 -40
  304. package/dist/types/fields.d.ts +23 -12
  305. package/dist/util/dataControllerAdapter.d.ts +27 -0
  306. package/dist/util/navigation_utils.d.ts +16 -6
  307. package/dist/util/previews.d.ts +8 -3
  308. package/dist/util/propertyConfigMapper.d.ts +17 -0
  309. package/dist/util/property_utils.d.ts +3 -3
  310. package/dist/util/resolutions.d.ts +1 -2
  311. package/dist/util/view_constants.d.ts +6 -0
  312. package/package.json +56 -55
  313. package/src/collection_editor/ConfigControllerProvider.tsx +37 -53
  314. package/src/collection_editor/_cms_internals.ts +4 -4
  315. package/src/collection_editor/api/generateCollectionApi.ts +10 -9
  316. package/src/collection_editor/extensibility_types.ts +168 -0
  317. package/src/collection_editor/index.ts +47 -3
  318. package/src/collection_editor/pgColumnToProperty.ts +23 -6
  319. package/src/collection_editor/serializable_types.ts +474 -0
  320. package/src/collection_editor/serializable_utils.ts +576 -0
  321. package/src/collection_editor/types/collection_editor_controller.tsx +8 -11
  322. package/src/collection_editor/types/collection_inference.ts +2 -2
  323. package/src/collection_editor/types/config_controller.tsx +14 -14
  324. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +21 -9
  325. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +8 -8
  326. package/src/collection_editor/ui/EditorCollectionAction.tsx +9 -14
  327. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +13 -18
  328. package/src/collection_editor/ui/EditorEntityAction.tsx +9 -14
  329. package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +13 -19
  330. package/src/collection_editor/ui/KanbanSetupAction.tsx +8 -6
  331. package/src/collection_editor/ui/MissingReferenceWidget.tsx +5 -3
  332. package/src/collection_editor/ui/NewCollectionButton.tsx +4 -4
  333. package/src/collection_editor/ui/NewCollectionCard.tsx +8 -13
  334. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +11 -16
  335. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +20 -12
  336. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +29 -59
  337. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +213 -135
  338. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +21 -7
  339. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +29 -23
  340. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +142 -112
  341. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +49 -12
  342. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +29 -10
  343. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +26 -23
  344. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +104 -37
  345. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +26 -14
  346. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +21 -8
  347. package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +1 -1
  348. package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +1 -1
  349. package/src/collection_editor/ui/collection_editor/EnumForm.tsx +20 -5
  350. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +45 -12
  351. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +10 -12
  352. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +5 -6
  353. package/src/collection_editor/ui/collection_editor/LayoutModeSwitch.tsx +17 -5
  354. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +190 -27
  355. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +58 -49
  356. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +17 -4
  357. package/src/collection_editor/ui/collection_editor/RouterCollectionStudioView.tsx +44 -0
  358. package/src/collection_editor/ui/collection_editor/RouterCollectionsStudioView.tsx +41 -0
  359. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +27 -13
  360. package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +1 -1
  361. package/src/collection_editor/ui/collection_editor/ViewModeSwitch.tsx +9 -2
  362. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +4 -4
  363. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +4 -4
  364. package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +5 -6
  365. package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +1 -1
  366. package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +5 -5
  367. package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +10 -10
  368. package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +10 -9
  369. package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +7 -8
  370. package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +17 -10
  371. package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +7 -7
  372. package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +19 -53
  373. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +43 -60
  374. package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +3 -3
  375. package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +56 -13
  376. package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +7 -7
  377. package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +4 -3
  378. package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +34 -0
  379. package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +5 -6
  380. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +18 -9
  381. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.tsx +1 -2
  382. package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +17 -5
  383. package/src/collection_editor/ui/collection_editor/properties/conditions/property_paths.ts +1 -1
  384. package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +4 -4
  385. package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +3 -3
  386. package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +6 -9
  387. package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +6 -6
  388. package/src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx +1 -2
  389. package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +3 -3
  390. package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +3 -3
  391. package/src/collection_editor/ui/collection_editor/templates/products_template.ts +4 -4
  392. package/src/collection_editor/ui/collection_editor/templates/users_template.ts +2 -2
  393. package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +0 -1
  394. package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +7 -29
  395. package/src/collection_editor/useJsonCollectionsConfigController.tsx +286 -0
  396. package/src/collection_editor/useLocalCollectionsConfigController.tsx +11 -8
  397. package/src/collection_editor/useSafeSnackbarController.ts +9 -0
  398. package/src/collection_editor/validateCollectionJson.ts +111 -24
  399. package/src/collection_editor_ui.ts +6 -0
  400. package/src/components/AdminModeSyncer.tsx +2 -2
  401. package/src/components/ArrayContainer.tsx +28 -24
  402. package/src/components/ClearFilterSortButton.tsx +2 -3
  403. package/src/components/CollectionEditorDialogs.tsx +1 -1
  404. package/src/components/CollectionPanel.tsx +178 -0
  405. package/src/components/{EntityCollectionTable/EntityCollectionRowActions.tsx → CollectionTableBinding/CollectionRowActions.tsx} +26 -16
  406. package/src/components/{EntityCollectionTable/EntityCollectionTable.tsx → CollectionTableBinding/CollectionTableBinding.tsx} +34 -31
  407. package/src/components/{EntityCollectionTable/EntityCollectionTableProps.tsx → CollectionTableBinding/CollectionTableBindingProps.tsx} +4 -4
  408. package/src/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.tsx +14 -12
  409. package/src/components/{EntityCollectionTable → CollectionTableBinding}/column_utils.tsx +4 -4
  410. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableMultipleRelationField.tsx +13 -13
  411. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableReferenceField.tsx +39 -19
  412. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationField.tsx +14 -14
  413. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableRelationSelectorField.tsx +3 -3
  414. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/TableStorageUpload.tsx +29 -27
  415. package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableSelect.tsx +0 -1
  416. package/src/components/CollectionTableBinding/index.tsx +14 -0
  417. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/CollectionTableToolbar.tsx +22 -28
  418. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCell.tsx +8 -9
  419. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/EntityTableCellActions.tsx +2 -3
  420. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/common.tsx +7 -7
  421. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/PopupFormField.tsx +12 -13
  422. package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.tsx +5 -2
  423. package/src/components/{EntityCollectionTable → CollectionTableBinding}/table_bindings.tsx +101 -104
  424. package/src/components/{EntityCollectionView/EntityBoardCard.tsx → CollectionViewBinding/BoardCardBinding.tsx} +39 -40
  425. package/src/components/{EntityCollectionView/EntityCollectionBoardView.tsx → CollectionViewBinding/CollectionBoardViewBinding.tsx} +88 -52
  426. package/src/components/CollectionViewBinding/CollectionCardViewBinding.tsx +157 -0
  427. package/src/components/{EntityCollectionView/EntityCollectionListView.tsx → CollectionViewBinding/CollectionListViewBinding.tsx} +234 -151
  428. package/src/components/{EntityCollectionView/EntityCollectionViewActions.tsx → CollectionViewBinding/CollectionViewActions.tsx} +36 -26
  429. package/src/components/{EntityCollectionView/EntityCollectionView.tsx → CollectionViewBinding/CollectionViewBinding.tsx} +392 -213
  430. package/src/components/{EntityCollectionView/EntityCollectionViewStartActions.tsx → CollectionViewBinding/CollectionViewStartActions.tsx} +42 -23
  431. package/src/components/{EntityCollectionView/EntityCard.tsx → CollectionViewBinding/EntityCardBinding.tsx} +14 -14
  432. package/src/components/CollectionViewBinding/FilterPresetsButton.tsx +294 -0
  433. package/src/components/{EntityCollectionView → CollectionViewBinding}/FiltersDialog.tsx +37 -79
  434. package/src/components/{EntityCollectionView → CollectionViewBinding}/SplitListView.tsx +97 -30
  435. package/src/components/{EntityCollectionView → CollectionViewBinding}/ViewModeToggle.tsx +20 -8
  436. package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useCollectionInlineEditor.ts +9 -8
  437. package/src/components/{EntityCollectionView → CollectionViewBinding}/hooks/useKanbanDragAndDrop.ts +17 -16
  438. package/src/components/{EntityCollectionView → CollectionViewBinding}/useBoardDataController.tsx +118 -70
  439. package/src/components/{EntityCollectionView/useEntityPreviewSlots.ts → CollectionViewBinding/usePreviewSlots.ts} +136 -48
  440. package/src/components/DefaultAppBar.tsx +73 -41
  441. package/src/components/DefaultDrawer.tsx +317 -85
  442. package/src/components/DeleteEntityDialog.tsx +7 -7
  443. package/src/components/DetailViewBinding.tsx +670 -0
  444. package/src/components/DrawerNavigationGroup.tsx +11 -11
  445. package/src/components/DrawerNavigationItem.tsx +6 -6
  446. package/src/components/{EntityEditViewFormActions.tsx → EditFormActions.tsx} +78 -59
  447. package/src/components/EditViewBinding.tsx +761 -0
  448. package/src/components/{EntityPreview.tsx → EntityPreviewBinding.tsx} +53 -39
  449. package/src/components/{EntityView.tsx → EntityViewBinding.tsx} +8 -9
  450. package/src/components/HomePage/ContentHomePage.tsx +35 -17
  451. package/src/components/HomePage/FavouritesView.tsx +2 -3
  452. package/src/components/HomePage/HomePageDnD.tsx +3 -2
  453. package/src/components/HomePage/NavigationCard.tsx +9 -16
  454. package/src/components/HomePage/NavigationCardBinding.tsx +6 -7
  455. package/src/components/HomePage/NavigationGroup.tsx +4 -5
  456. package/src/components/HomePage/RenameGroupDialog.tsx +1 -1
  457. package/src/components/HomePage/SmallNavigationCard.tsx +0 -5
  458. package/src/components/{EntityJsonPreview.tsx → JsonPreviewBinding.tsx} +2 -2
  459. package/src/components/PropertyCollectionView.tsx +2 -1
  460. package/src/components/PropertyIdCopyTooltip.tsx +2 -3
  461. package/src/components/{RebaseCMS.tsx → RebaseAdmin.tsx} +8 -6
  462. package/src/components/RebaseAuthGate.tsx +5 -3
  463. package/src/components/RebaseLayout.tsx +10 -9
  464. package/src/components/RebaseNavigation.tsx +107 -31
  465. package/src/components/RebaseRouteDefs.tsx +10 -13
  466. package/src/components/RebaseShell.tsx +18 -14
  467. package/src/components/ReferenceTable/{EntitySelectionTable.tsx → SelectionTableBinding.tsx} +40 -33
  468. package/src/components/ReferenceWidget.tsx +7 -7
  469. package/src/components/RelationSelector.tsx +82 -24
  470. package/src/components/SearchIconsView.tsx +13 -12
  471. package/src/components/SelectableTable/SelectableTable.tsx +68 -115
  472. package/src/components/SelectableTable/SelectableTableContext.tsx +4 -3
  473. package/src/components/SelectableTable/SelectionStore.ts +20 -44
  474. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +13 -5
  475. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +37 -16
  476. package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +187 -0
  477. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +27 -13
  478. package/src/components/SelectableTable/filters/RelationFilterField.tsx +17 -3
  479. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +95 -35
  480. package/src/components/SideDialogs.tsx +58 -40
  481. package/src/components/SidePanelBinding.tsx +261 -0
  482. package/src/components/{SideEntityProvider.tsx → SidePanelProvider.tsx} +17 -16
  483. package/src/components/UserSelector.tsx +123 -9
  484. package/src/components/admin/CreationResultDialog.tsx +138 -0
  485. package/src/components/admin/index.ts +1 -3
  486. package/src/components/app/Drawer.tsx +9 -1
  487. package/src/components/app/Scaffold.tsx +16 -9
  488. package/src/components/common/default_entity_actions.tsx +270 -29
  489. package/src/components/field_configs.tsx +68 -46
  490. package/src/components/history/EntityHistoryEntry.tsx +4 -5
  491. package/src/components/history/EntityHistoryView.tsx +18 -8
  492. package/src/components/history/LastEditedByIndicator.tsx +4 -4
  493. package/src/components/index.ts +20 -17
  494. package/src/contexts/BreacrumbsContext.tsx +15 -6
  495. package/src/contexts/SidePanelControllerContext.tsx +5 -0
  496. package/src/data_export/export/BasicExportAction.tsx +42 -43
  497. package/src/data_export/export/ExportCollectionAction.tsx +55 -54
  498. package/src/data_export/export/export.ts +17 -17
  499. package/src/data_import/components/DataNewPropertiesMapping.tsx +17 -4
  500. package/src/data_import/components/ImportFileUpload.tsx +2 -3
  501. package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +2 -3
  502. package/src/data_import/components/ImportSaveInProgress.tsx +4 -4
  503. package/src/data_import/import/ImportCollectionAction.tsx +26 -13
  504. package/src/data_import/utils/data.ts +26 -8
  505. package/src/data_import/utils/file_headers.ts +13 -89
  506. package/src/data_import/utils/file_to_json.ts +43 -68
  507. package/src/data_import/utils/get_properties_mapping.ts +1 -1
  508. package/src/data_import/utils/transforms.ts +47 -0
  509. package/src/editor/components/SlashCommandMenu.tsx +17 -2
  510. package/src/editor/components/editor-bubble-item.tsx +1 -1
  511. package/src/editor/components/editor-bubble.tsx +32 -9
  512. package/src/editor/components/image-bubble.tsx +28 -12
  513. package/src/editor/components/index.ts +3 -3
  514. package/src/editor/components/table-bubble.tsx +80 -18
  515. package/src/editor/editor.tsx +34 -15
  516. package/src/editor/extensions/HighlightDecorationExtension.ts +3 -2
  517. package/src/editor/extensions/Image/index.ts +3 -3
  518. package/src/editor/extensions/Image.ts +3 -3
  519. package/src/editor/extensions/clipboard.ts +2 -2
  520. package/src/editor/markdown-it-plugins.d.ts +24 -0
  521. package/src/editor/markdown.ts +2 -3
  522. package/src/editor/nodeViews/ReactNodeView.tsx +1 -1
  523. package/src/editor/nodeViews/TaskItemComponent.tsx +9 -8
  524. package/src/editor/schema.ts +135 -59
  525. package/src/editor/selectors/ai-selector.tsx +0 -1
  526. package/src/editor/selectors/color-selector.tsx +1 -2
  527. package/src/editor/selectors/link-selector.tsx +9 -7
  528. package/src/editor/selectors/node-selector.tsx +17 -3
  529. package/src/editor/selectors/text-buttons.tsx +1 -2
  530. package/src/editor/useProseMirror.ts +2 -2
  531. package/src/editor/utils/prosemirror-utils.ts +1 -1
  532. package/src/editor/utils/remove_classes.ts +6 -5
  533. package/src/form/EntityForm.tsx +222 -442
  534. package/src/form/EntityFormActions.tsx +49 -55
  535. package/src/form/EntityFormBinding.tsx +323 -0
  536. package/src/form/PropertyFieldBinding.tsx +81 -84
  537. package/src/form/components/ErrorFocus.tsx +1 -1
  538. package/src/form/components/FieldHelperText.tsx +6 -7
  539. package/src/form/components/FormLayout.tsx +1 -1
  540. package/src/form/components/LocalChangesMenu.tsx +20 -5
  541. package/src/form/components/StorageItemPreview.tsx +2 -3
  542. package/src/form/components/StorageUploadProgress.tsx +14 -7
  543. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +5 -5
  544. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +12 -13
  545. package/src/form/field_bindings/BlockFieldBinding.tsx +59 -58
  546. package/src/form/field_bindings/DateTimeFieldBinding.tsx +2 -2
  547. package/src/form/field_bindings/KeyValueFieldBinding.tsx +319 -303
  548. package/src/form/field_bindings/MapFieldBinding.tsx +14 -56
  549. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +28 -10
  550. package/src/form/field_bindings/MultiSelectFieldBinding.tsx +3 -4
  551. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +11 -12
  552. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +9 -2
  553. package/src/form/field_bindings/ReferenceFieldBinding.tsx +17 -15
  554. package/src/form/field_bindings/RelationFieldBinding.tsx +157 -156
  555. package/src/form/field_bindings/RepeatFieldBinding.tsx +8 -8
  556. package/src/form/field_bindings/SelectFieldBinding.tsx +3 -4
  557. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +107 -103
  558. package/src/form/field_bindings/SwitchFieldBinding.tsx +17 -17
  559. package/src/form/field_bindings/TextFieldBinding.tsx +90 -78
  560. package/src/form/field_bindings/UserSelectFieldBinding.tsx +18 -18
  561. package/src/form/field_bindings/VectorFieldBinding.tsx +202 -0
  562. package/src/form/form_utils.ts +163 -0
  563. package/src/form/index.tsx +15 -6
  564. package/src/form/useClearRestoreValue.tsx +1 -1
  565. package/src/form/validation.ts +104 -50
  566. package/src/hooks/index.ts +4 -4
  567. package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +5 -4
  568. package/src/hooks/navigation/contexts/NavigationStateContext.tsx +2 -2
  569. package/src/hooks/navigation/contexts/UrlContext.tsx +1 -2
  570. package/src/hooks/navigation/useAsyncResolver.ts +100 -0
  571. package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +40 -21
  572. package/src/hooks/navigation/useBuildNavigationStateController.tsx +21 -22
  573. package/src/hooks/navigation/useNavigationResolution.ts +193 -21
  574. package/src/hooks/navigation/useResolvedCollections.ts +45 -77
  575. package/src/hooks/navigation/useResolvedViews.tsx +44 -123
  576. package/src/hooks/navigation/useTopLevelNavigation.ts +22 -18
  577. package/src/hooks/navigation/utils.ts +12 -9
  578. package/src/hooks/useBreadcrumbsController.tsx +2 -34
  579. package/src/hooks/{useBuildSideEntityController.tsx → useBuildSidePanel.tsx} +63 -24
  580. package/src/hooks/useCMSContext.tsx +7 -7
  581. package/src/hooks/{useEntityHistory.ts → useHistory.ts} +9 -4
  582. package/src/hooks/useResolvedNavigationFrom.tsx +8 -5
  583. package/src/hooks/{useEntitySelectionDialog.tsx → useSelectionDialog.tsx} +7 -7
  584. package/src/hooks/useSideDialogsController.tsx +1 -1
  585. package/src/hooks/useSidePanel.tsx +13 -0
  586. package/src/index.ts +34 -20
  587. package/src/preview/PropertyPreview.tsx +34 -41
  588. package/src/preview/components/DatePreview.tsx +1 -1
  589. package/src/preview/components/EnumValuesChip.tsx +1 -1
  590. package/src/preview/components/ImagePreview.tsx +4 -3
  591. package/src/preview/components/ReferencePreview.tsx +69 -18
  592. package/src/preview/components/RelationPreview.tsx +107 -18
  593. package/src/preview/components/StorageThumbnail.tsx +28 -8
  594. package/src/preview/components/UrlComponentPreview.tsx +12 -4
  595. package/src/preview/components/UserPreview.tsx +6 -15
  596. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +5 -5
  597. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +5 -5
  598. package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +4 -4
  599. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +4 -4
  600. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +3 -2
  601. package/src/preview/property_previews/ArrayOneOfPreview.tsx +7 -9
  602. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +1 -1
  603. package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -4
  604. package/src/preview/property_previews/MapPropertyPreview.tsx +4 -3
  605. package/src/preview/property_previews/NumberPropertyPreview.tsx +5 -3
  606. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +24 -25
  607. package/src/preview/property_previews/StringPropertyPreview.tsx +13 -11
  608. package/src/routes/CustomViewRoute.tsx +14 -6
  609. package/src/routes/RebaseRoute.tsx +112 -36
  610. package/src/types/components/EntityFormActionsProps.tsx +4 -4
  611. package/src/types/components/EntityFormProps.tsx +75 -5
  612. package/src/types/components/PropertyPreviewProps.tsx +6 -1
  613. package/src/types/components/formex.tsx +1 -45
  614. package/src/types/fields.tsx +26 -15
  615. package/src/util/dataControllerAdapter.ts +87 -0
  616. package/src/util/navigation_utils.ts +43 -13
  617. package/src/util/previews.ts +149 -13
  618. package/src/util/propertyConfigMapper.ts +134 -0
  619. package/src/util/property_utils.tsx +24 -9
  620. package/src/util/resolutions.ts +4 -8
  621. package/src/util/view_constants.ts +6 -0
  622. package/dist/CollectionEditorDialog-B2M9lCyL.js +0 -4720
  623. package/dist/CollectionEditorDialog-B2M9lCyL.js.map +0 -1
  624. package/dist/CollectionsStudioView-WG6soyfs.js +0 -218
  625. package/dist/CollectionsStudioView-WG6soyfs.js.map +0 -1
  626. package/dist/ContentHomePage-CDF_a6Lp.js +0 -1786
  627. package/dist/ContentHomePage-CDF_a6Lp.js.map +0 -1
  628. package/dist/ExportCollectionAction-Dc0VOWMN.js +0 -439
  629. package/dist/ExportCollectionAction-Dc0VOWMN.js.map +0 -1
  630. package/dist/ImportCollectionAction-DpCagAOy.js +0 -686
  631. package/dist/ImportCollectionAction-DpCagAOy.js.map +0 -1
  632. package/dist/PropertyEditView-DS67DxoT.js +0 -8138
  633. package/dist/PropertyEditView-DS67DxoT.js.map +0 -1
  634. package/dist/RoleChip-QtUFXeTp.js +0 -67
  635. package/dist/RoleChip-QtUFXeTp.js.map +0 -1
  636. package/dist/RolesView-CIuYBimF.js +0 -424
  637. package/dist/RolesView-CIuYBimF.js.map +0 -1
  638. package/dist/UsersView-B5zelXnH.js +0 -493
  639. package/dist/UsersView-B5zelXnH.js.map +0 -1
  640. package/dist/collection_editor/types/config_permissions.d.ts +0 -19
  641. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +0 -27
  642. package/dist/components/EntityCollectionTable/fields/VirtualTableDateField.d.ts +0 -12
  643. package/dist/components/EntityCollectionTable/fields/VirtualTableInput.d.ts +0 -9
  644. package/dist/components/EntityCollectionTable/fields/VirtualTableNumberInput.d.ts +0 -8
  645. package/dist/components/EntityCollectionTable/fields/VirtualTableSwitch.d.ts +0 -7
  646. package/dist/components/EntityCollectionTable/index.d.ts +0 -6
  647. package/dist/components/EntityCollectionView/Board.d.ts +0 -2
  648. package/dist/components/EntityCollectionView/BoardColumn.d.ts +0 -42
  649. package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +0 -9
  650. package/dist/components/EntityCollectionView/BoardSortableList.d.ts +0 -14
  651. package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +0 -31
  652. package/dist/components/EntityCollectionView/EntityCard.d.ts +0 -20
  653. package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +0 -21
  654. package/dist/components/EntityCollectionView/EntityCollectionListView.d.ts +0 -34
  655. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +0 -64
  656. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +0 -18
  657. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +0 -18
  658. package/dist/components/EntityCollectionView/board_types.d.ts +0 -105
  659. package/dist/components/EntityEditView.d.ts +0 -49
  660. package/dist/components/EntityEditViewFormActions.d.ts +0 -2
  661. package/dist/components/EntityJsonPreview.d.ts +0 -3
  662. package/dist/components/EntitySidePanel.d.ts +0 -10
  663. package/dist/components/EntityView.d.ts +0 -12
  664. package/dist/components/admin/RoleChip.d.ts +0 -4
  665. package/dist/components/admin/RolesView.d.ts +0 -4
  666. package/dist/components/admin/UsersView.d.ts +0 -4
  667. package/dist/contexts/SideEntityControllerContext.d.ts +0 -3
  668. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +0 -10
  669. package/dist/hooks/navigation/useNavigationRegistry.d.ts +0 -11
  670. package/dist/hooks/navigation/useNavigationURLs.d.ts +0 -11
  671. package/dist/hooks/useBuildSideEntityController.d.ts +0 -6
  672. package/dist/hooks/useSideEntityController.d.ts +0 -11
  673. package/dist/index-CBhrgpR7.js +0 -12
  674. package/dist/index-CBhrgpR7.js.map +0 -1
  675. package/dist/index-CHxgwt6E.js +0 -456
  676. package/dist/index-CHxgwt6E.js.map +0 -1
  677. package/dist/index-Dey5WJpO.js +0 -8
  678. package/dist/index-Dey5WJpO.js.map +0 -1
  679. package/dist/index.js.map +0 -1
  680. package/dist/markdown-z2Ir7Cgo.js +0 -618
  681. package/dist/markdown-z2Ir7Cgo.js.map +0 -1
  682. package/dist/useEntityHistory-Dcj4zhGj.js +0 -121
  683. package/dist/useEntityHistory-Dcj4zhGj.js.map +0 -1
  684. package/dist/util-BQ82ySL3.js +0 -27720
  685. package/dist/util-BQ82ySL3.js.map +0 -1
  686. package/src/collection_editor/types/config_permissions.ts +0 -20
  687. package/src/components/EntityCollectionTable/fields/VirtualTableDateField.tsx +0 -39
  688. package/src/components/EntityCollectionTable/fields/VirtualTableInput.tsx +0 -90
  689. package/src/components/EntityCollectionTable/fields/VirtualTableNumberInput.tsx +0 -80
  690. package/src/components/EntityCollectionTable/fields/VirtualTableSwitch.tsx +0 -32
  691. package/src/components/EntityCollectionTable/index.tsx +0 -14
  692. package/src/components/EntityCollectionView/Board.tsx +0 -474
  693. package/src/components/EntityCollectionView/BoardColumn.tsx +0 -158
  694. package/src/components/EntityCollectionView/BoardColumnTitle.tsx +0 -45
  695. package/src/components/EntityCollectionView/BoardSortableList.tsx +0 -177
  696. package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +0 -267
  697. package/src/components/EntityCollectionView/board_types.ts +0 -113
  698. package/src/components/EntityEditView.tsx +0 -632
  699. package/src/components/EntitySidePanel.tsx +0 -160
  700. package/src/components/admin/RoleChip.tsx +0 -23
  701. package/src/components/admin/RolesView.tsx +0 -419
  702. package/src/components/admin/UsersView.tsx +0 -782
  703. package/src/contexts/SideEntityControllerContext.tsx +0 -5
  704. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +0 -141
  705. package/src/hooks/navigation/useNavigationRegistry.ts +0 -153
  706. package/src/hooks/navigation/useNavigationURLs.ts +0 -56
  707. package/src/hooks/useSideEntityController.tsx +0 -13
  708. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/PropertyTableCell.d.ts +0 -0
  709. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useDraggable.d.ts +0 -0
  710. /package/dist/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.d.ts +0 -0
  711. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.d.ts +0 -0
  712. /package/dist/components/{EntityCollectionView → CollectionViewBinding}/utils.d.ts +0 -0
  713. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/fields/VirtualTableUserSelect.tsx +0 -0
  714. /package/src/components/{EntityCollectionTable → CollectionTableBinding}/internal/popup_field/useWindowSize.tsx +0 -0
  715. /package/src/components/{EntityCollectionView → CollectionViewBinding}/useSelectionController.tsx +0 -0
  716. /package/src/components/{EntityCollectionView → CollectionViewBinding}/utils.ts +0 -0
@@ -1,7 +1,8 @@
1
1
  import React, { useMemo } from "react";
2
- import { getIn, useFormex } from "@rebasepro/formex";
3
- import { useSnackbarController, useTranslation } from "@rebasepro/core";
4
- import { EnumValueConfig } from "@rebasepro/types";
2
+ import { getIn, useFormex } from "@rebasepro/forms";
3
+ import { useTranslation } from "@rebasepro/app";
4
+ import { useSafeSnackbarController } from "../../../useSafeSnackbarController";
5
+ import { EnumValueConfig, EnumValues } from "@rebasepro/types";
5
6
  import { resolveEnumValues } from "@rebasepro/common";
6
7
  import { Select, SelectItem } from "@rebasepro/ui";
7
8
  import { EnumForm } from "../EnumForm";
@@ -34,14 +35,14 @@ export function EnumPropertyField({
34
35
  setFieldValue
35
36
  } = useFormex<PropertyWithId>();
36
37
 
37
- const snackbarContext = useSnackbarController();
38
+ const snackbarContext = useSafeSnackbarController();
38
39
  const { t } = useTranslation();
39
40
 
40
41
  const enumValuesPath = multiselect ? "of.enum" : "enum";
41
42
 
42
- const defaultValue = getIn(values, "defaultValue");
43
+ const defaultValue = getIn(values, "defaultValue") as string | number | undefined;
43
44
 
44
- const valuesEnumValues = getIn(values, enumValuesPath);
45
+ const valuesEnumValues = getIn(values, enumValuesPath) as EnumValues | undefined;
45
46
  const enumValues: EnumValueConfig[] = useMemo(() => {
46
47
  if (!valuesEnumValues || typeof valuesEnumValues === "boolean")
47
48
  return [] as EnumValueConfig[];
@@ -56,7 +57,7 @@ export function EnumPropertyField({
56
57
  const enumIds = value.filter(v => Boolean(v?.id)).map((v: EnumValueConfig) => v.id);
57
58
  if (defaultValue && !enumIds.includes(defaultValue)) {
58
59
  setFieldValue("defaultValue", undefined);
59
- snackbarContext.open({
60
+ snackbarContext?.open({
60
61
  type: "warning",
61
62
  message: "Default value was cleared"
62
63
  })
@@ -81,7 +82,7 @@ export function EnumPropertyField({
81
82
  }}
82
83
  getData={getData && fullPropertyPath
83
84
  ? () => getData()
84
- .then(res => res.map(entry => getIn(entry, fullPropertyPath)).filter(Boolean))
85
+ .then(res => res.map(entry => getIn(entry, fullPropertyPath) as string).filter(Boolean))
85
86
  : undefined}
86
87
  onValuesChanged={onValuesChanged}/>
87
88
  </div>
@@ -108,7 +109,7 @@ export function EnumPropertyField({
108
109
  setFieldValue("defaultValue", value);
109
110
  }}
110
111
  label={t("default_value")}
111
- value={defaultValue ?? ""}>
112
+ value={defaultValue?.toString() ?? ""}>
112
113
  {enumValues
113
114
  .filter((enumValue) => Boolean(enumValue?.id))
114
115
  .map((enumValue) => (
@@ -2,11 +2,10 @@ import { FieldCaption } from "../../../_cms_internals";
2
2
  import React, { useState } from "react";
3
3
  ;
4
4
  import { MapProperty, Property, PropertyConfig } from "@rebasepro/types";
5
- import { BooleanSwitchWithLabel, Button, Paper, Typography } from "@rebasepro/ui";
6
- import { PlusIcon } from "lucide-react";
5
+ import { BooleanSwitchWithLabel, Button, Paper, PlusIcon, Typography } from "@rebasepro/ui";
7
6
  import { PropertyFormDialog } from "../PropertyEditView";
8
- import { getIn, useFormex } from "@rebasepro/formex";
9
- import { useTranslation } from "@rebasepro/core";
7
+ import { getIn, useFormex } from "@rebasepro/forms";
8
+ import { useTranslation } from "@rebasepro/app";
10
9
  import { PropertyTree } from "../PropertyTree";
11
10
  import { getFullId, idToPropertiesPath, namespaceToPropertiesOrderPath, namespaceToPropertiesPath } from "../util";
12
11
 
@@ -54,7 +53,7 @@ export function MapPropertyField({ disabled, getData, allowDataInference, proper
54
53
  const propertiesPath = idToPropertiesPath(fullId);
55
54
  const propertiesOrderPath = namespaceToPropertiesOrderPath(namespace);
56
55
 
57
- const currentPropertiesOrder: string[] = getIn(values, propertiesOrderPath) ?? Object.keys(getIn(values, namespaceToPropertiesPath(namespace)));
56
+ const currentPropertiesOrder: string[] = (getIn(values, propertiesOrderPath) as string[] | undefined) ?? Object.keys(getIn(values, namespaceToPropertiesPath(namespace)) as object ?? {});
58
57
 
59
58
  setFieldValue(propertiesPath, undefined, false);
60
59
  setFieldValue(propertiesOrderPath, currentPropertiesOrder.filter((p) => p !== propertyKey), false);
@@ -111,8 +110,8 @@ export function MapPropertyField({ disabled, getData, allowDataInference, proper
111
110
  position={"start"}
112
111
  size={"medium"}
113
112
  label={t("spread_children_as_columns")}
114
- onValueChange={(v) => setFieldValue("spreadChildren", v)}
115
- value={values.spreadChildren ?? false}
113
+ onValueChange={(v) => setFieldValue("ui.spreadChildren", v)}
114
+ value={values.ui?.spreadChildren ?? false}
116
115
  />
117
116
  <FieldCaption>
118
117
  Set this flag to true if you want to display the children of this group as individual columns. This
@@ -140,7 +139,7 @@ export function MapPropertyField({ disabled, getData, allowDataInference, proper
140
139
  onDelete={deleteProperty}
141
140
  propertyKey={selectedPropertyKey}
142
141
  propertyNamespace={selectedPropertyNamespace}
143
- property={selectedProperty}
142
+ property={selectedProperty as Property | undefined}
144
143
  existingProperty={Boolean(selectedPropertyKey)}
145
144
  autoUpdateId={!selectedPropertyKey}
146
145
  autoOpenTypeSelect={!selectedPropertyKey}
@@ -2,11 +2,18 @@
2
2
  import React, { useCallback } from "react";
3
3
  import { StringPropertyValidation } from "./validation/StringPropertyValidation";
4
4
  import { ValidationPanel } from "./validation/ValidationPanel";
5
- import { Field, getIn, useFormex } from "@rebasepro/formex";
6
- import { useTranslation } from "@rebasepro/core";
7
-
8
- import { BooleanSwitchWithLabel, DebouncedTextField, ExpandablePanel, TextField, Typography } from "@rebasepro/ui";
9
- import { UploadCloudIcon, SettingsIcon } from "lucide-react";
5
+ import { Field, getIn, useFormex } from "@rebasepro/forms";
6
+ import { useTranslation } from "@rebasepro/app";
7
+
8
+ import {
9
+ BooleanSwitchWithLabel,
10
+ DebouncedTextField,
11
+ ExpandablePanel,
12
+ SettingsIcon,
13
+ TextField,
14
+ Typography,
15
+ UploadCloudIcon
16
+ } from "@rebasepro/ui";
10
17
 
11
18
  export function MarkdownPropertyField({
12
19
  disabled,
@@ -34,15 +41,15 @@ export function MarkdownPropertyField({
34
41
  const htmlPath = `${baseMarkdownPath}.html`;
35
42
  const transformPastedTextPath = `${baseMarkdownPath}.transformPastedText`;
36
43
 
37
- const fileNameValue = getIn(values, fileName) ?? "{rand}_{file}";
38
- const storagePathValue = getIn(values, storagePath) ?? "/";
44
+ const fileNameValue = (getIn(values, fileName) as string | undefined) ?? "{rand}_{file}";
45
+ const storagePathValue = (getIn(values, storagePath) as string | undefined) ?? "/";
39
46
  const maxSizeValue = getIn(values, maxSize);
40
47
 
41
48
  // Markdown config values - check if markdown is an object or boolean
42
49
  const markdownValue = getIn(values, "markdown");
43
50
  const isMarkdownObject = typeof markdownValue === "object" && markdownValue !== null;
44
- const htmlValue = isMarkdownObject ? (markdownValue.html ?? true) : true;
45
- const transformPastedTextValue = isMarkdownObject ? (markdownValue.transformPastedText ?? false) : false;
51
+ const htmlValue = isMarkdownObject ? (((markdownValue as Record<string, unknown>).html as boolean | undefined) ?? true) : true;
52
+ const transformPastedTextValue = isMarkdownObject ? (((markdownValue as Record<string, unknown>).transformPastedText as boolean | undefined) ?? false) : false;
46
53
 
47
54
  const hasFilenameCallback = typeof fileNameValue === "function";
48
55
  const hasStoragePathCallback = typeof storagePathValue === "function";
@@ -202,7 +209,7 @@ export function MarkdownPropertyField({
202
209
  setFieldValue("defaultValue", e.target.value === "" ? undefined : e.target.value);
203
210
  }}
204
211
  label={t("default_value")}
205
- value={getIn(values, "defaultValue") ?? ""}/>
212
+ value={(getIn(values, "defaultValue") as string | undefined) ?? ""}/>
206
213
 
207
214
  </div>
208
215
  </>
@@ -4,8 +4,8 @@ import { NumberPropertyValidation } from "./validation/NumberPropertyValidation"
4
4
  import { ValidationPanel } from "./validation/ValidationPanel";
5
5
  ;
6
6
  import { Select, SelectItem, TextField } from "@rebasepro/ui";
7
- import { getIn, useFormex } from "@rebasepro/formex";
8
- import { useTranslation } from "@rebasepro/core";
7
+ import { getIn, useFormex } from "@rebasepro/forms";
8
+ import { useTranslation } from "@rebasepro/app";
9
9
 
10
10
  export function NumberPropertyField({ disabled }: {
11
11
  disabled: boolean;
@@ -15,12 +15,12 @@ export function NumberPropertyField({ disabled }: {
15
15
  const { t } = useTranslation();
16
16
 
17
17
  const columnTypePath = "columnType";
18
- const columnTypeValue: string | undefined = getIn(values, columnTypePath);
19
- const columnTypeError: string | undefined = getIn(touched, columnTypePath) && getIn(errors, columnTypePath);
18
+ const columnTypeValue: string | undefined = getIn(values, columnTypePath) as string | undefined;
19
+ const columnTypeError: string | undefined = (getIn(touched, columnTypePath) && getIn(errors, columnTypePath)) as string | undefined;
20
20
 
21
21
  const isIdPath = "isId";
22
- const isIdValue: string | boolean | undefined = getIn(values, isIdPath);
23
- const isIdError: string | undefined = getIn(touched, isIdPath) && getIn(errors, isIdPath);
22
+ const isIdValue: string | boolean | undefined = getIn(values, isIdPath) as string | boolean | undefined;
23
+ const isIdError: string | undefined = (getIn(touched, isIdPath) && getIn(errors, isIdPath)) as string | undefined;
24
24
 
25
25
  return (
26
26
  <>
@@ -109,7 +109,7 @@ export function NumberPropertyField({ disabled }: {
109
109
  setFieldValue("defaultValue", e.target.value === "" ? undefined : parseFloat(e.target.value));
110
110
  }}
111
111
  label={t("default_value")}
112
- value={getIn(values, "defaultValue") ?? ""}/>
112
+ value={(getIn(values, "defaultValue") as string | number | undefined) ?? ""}/>
113
113
 
114
114
  </div>
115
115
  </>
@@ -1,10 +1,10 @@
1
- import { IconForView, useTranslation } from "@rebasepro/core";
1
+ import { IconForView, useTranslation } from "@rebasepro/app";
2
2
  import { FieldCaption, useCollectionRegistryController } from "../../../_cms_internals";
3
3
  import React from "react";
4
- import { Field, getIn, useFormex } from "@rebasepro/formex";
4
+ import { Field, getIn, useFormex } from "@rebasepro/forms";
5
5
  ;
6
6
  import { NumberProperty, StringProperty } from "@rebasepro/types";
7
- import { CircularProgress, Select, SelectGroup, SelectItem, Typography } from "@rebasepro/ui";
7
+ import { CircularProgress, Select, SelectItem, Typography } from "@rebasepro/ui";
8
8
 
9
9
  export function ReferencePropertyField({
10
10
  existing,
@@ -34,8 +34,8 @@ export function ReferencePropertyField({
34
34
  </div>;
35
35
 
36
36
  const pathPath = asString ? "reference.slug" : (multiple ? "of.slug" : "path");
37
- const pathValue: string | undefined = getIn(values, pathPath);
38
- const pathError: string | undefined = showErrors && getIn(errors, pathPath);
37
+ const pathValue: string | undefined = getIn(values, pathPath) as string | undefined;
38
+ const pathError: string | undefined = (showErrors && getIn(errors, pathPath)) as string | undefined;
39
39
 
40
40
  return (
41
41
  <>
@@ -81,12 +81,6 @@ export function CollectionsSelect({
81
81
 
82
82
  const collections = collectionRegistry.collections ?? [];
83
83
 
84
- const groups: string[] = Array.from(new Set(
85
- Object.values(collections).map(e => e.group).filter(Boolean) as string[]
86
- ).values());
87
-
88
- const ungroupedCollections = collections.filter((col) => !col.group);
89
-
90
84
  return (
91
85
  <>
92
86
  <Select
@@ -113,48 +107,20 @@ export function CollectionsSelect({
113
107
  }}
114
108
  {...props}>
115
109
 
116
- {groups.flatMap((group) => (
117
- <SelectGroup label={group || "Views"}
118
- key={`group_${group}`}>
119
- {
120
- collections.filter(collection => collection.group === group)
121
- .map((collection) => {
122
- return <SelectItem
123
- key={`${collection.slug}-${group}`}
124
- value={collection.slug}>
125
- <div className="flex flex-row">
126
- <IconForView collectionOrView={collection}/>
127
- <Typography
128
- variant={"subtitle2"}
129
- className="ml-4">
130
- {collection?.name.toUpperCase()}
131
- </Typography>
132
- </div>
133
- </SelectItem>;
134
- })
135
-
136
- }
137
- </SelectGroup>
138
- ))}
139
-
140
- {ungroupedCollections && <SelectGroup label={"Views"}>
141
- {ungroupedCollections
142
- .map((collection) => {
143
- return <SelectItem key={collection.slug}
144
- value={collection.slug}>
145
- <div className="flex flex-row">
146
- <IconForView collectionOrView={collection}/>
147
- <Typography
148
- variant={"subtitle2"}
149
- className="ml-4">
150
- {collection?.name.toUpperCase()}
151
- </Typography>
152
- </div>
153
- </SelectItem>;
154
- })
155
-
156
- }
157
- </SelectGroup>}
110
+ {collections.map((collection) => {
111
+ return <SelectItem
112
+ key={collection.slug}
113
+ value={collection.slug}>
114
+ <div className="flex flex-row">
115
+ <IconForView collectionOrView={collection}/>
116
+ <Typography
117
+ variant={"subtitle2"}
118
+ className="ml-4">
119
+ {collection?.name.toUpperCase()}
120
+ </Typography>
121
+ </div>
122
+ </SelectItem>;
123
+ })}
158
124
 
159
125
  </Select>
160
126
 
@@ -1,6 +1,6 @@
1
1
  import { FieldCaption, useCollectionRegistryController } from "../../../_cms_internals";
2
2
  import React, { useCallback, useEffect } from "react";
3
- import { useFormex } from "@rebasepro/formex";
3
+ import { useFormex } from "@rebasepro/forms";
4
4
  ;
5
5
  import {
6
6
  Select,
@@ -8,22 +8,31 @@ import {
8
8
  TextField,
9
9
  Typography
10
10
  } from "@rebasepro/ui";
11
- import { EntityCollection, OnAction, RelationProperty } from "@rebasepro/types";
11
+ import { CollectionConfig, OnAction, RelationProperty } from "@rebasepro/types";
12
12
 
13
13
  import { CollectionsSelect } from "./ReferencePropertyField";
14
14
 
15
15
  const ON_ACTION_OPTIONS: OnAction[] = ["cascade", "restrict", "no action", "set null", "set default"];
16
16
 
17
+ function getTargetSlug(target?: string | (() => string | { slug: string } | Record<string, unknown>)): string {
18
+ if (!target) return "";
19
+ if (typeof target === "string") return target;
20
+ try {
21
+ const resolved = target();
22
+ if (typeof resolved === "string") return resolved;
23
+ if (resolved && typeof resolved === "object" && "slug" in resolved && typeof resolved.slug === "string") {
24
+ return resolved.slug;
25
+ }
26
+ return "";
27
+ } catch {
28
+ return "";
29
+ }
30
+ }
31
+
17
32
  /**
18
33
  * Property editor form for `type: "relation"` properties.
19
34
  *
20
- * This component edits both:
21
- * 1. The `RelationProperty` fields on the property itself (relationName, etc.)
22
- * 2. The matching `Relation` entry in `collection.relations[]`
23
- *
24
- * When a user configures a relation property, we sync the relation config
25
- * back to the parent collection's `relations` array so saving the collection
26
- * persists everything in one go.
35
+ * This component edits the `RelationProperty` fields on the property itself (target, relationName, etc.)
27
36
  */
28
37
  export function RelationPropertyField({
29
38
  disabled,
@@ -36,37 +45,22 @@ export function RelationPropertyField({
36
45
  values,
37
46
  errors,
38
47
  setFieldValue
39
- } = useFormex<RelationProperty & { id?: string; _relationConfig?: Record<string, unknown> }>();
48
+ } = useFormex<RelationProperty & { id?: string }>();
40
49
 
41
50
  const collectionRegistry = useCollectionRegistryController();
42
51
 
43
- // ─── Read the parent collection form to sync `relations[]` ───
44
- // The PropertyForm is nested inside a parent Formex for the whole collection.
45
- // We reach it via a second useFormex keyed to the parent context.
46
- // However, the PropertyForm uses its own isolated Formex, so we can't
47
- // directly access the parent. Instead, we store the relation config
48
- // on the property itself and let the save logic merge it.
49
- //
50
- // We store the full relation config on a transient `_relationConfig` key
51
- // so the consumer (CollectionPropertiesEditorForm / save logic) can
52
- // extract it and place it in `collection.relations[]`.
53
-
54
52
  const relationName = values.relationName ?? "";
55
- // Transient config object stored on the property for editor use.
56
- // Contains standard Relation fields plus `_targetSlug` for the UI dropdown.
57
- const relationConfig: Record<string, unknown> = (values._relationConfig as Record<string, unknown>) ?? {};
58
-
59
- const targetSlug = (relationConfig._targetSlug as string) ?? "";
60
- const cardinality = (relationConfig.cardinality as string) ?? "one";
61
- const direction = (relationConfig.direction as string) ?? "owning";
62
- const localKey = (relationConfig.localKey as string) ?? "";
63
- const foreignKeyOnTarget = (relationConfig.foreignKeyOnTarget as string) ?? "";
64
- const through = relationConfig.through as Record<string, string> | undefined;
53
+ const targetSlug = getTargetSlug(values.target);
54
+ const cardinality = values.cardinality ?? "one";
55
+ const direction = values.direction ?? "owning";
56
+ const localKey = values.localKey ?? "";
57
+ const foreignKeyOnTarget = values.foreignKeyOnTarget ?? "";
58
+ const through = values.through;
65
59
  const throughTable = through?.table ?? "";
66
60
  const throughSourceColumn = through?.sourceColumn ?? "";
67
61
  const throughTargetColumn = through?.targetColumn ?? "";
68
- const onUpdate = (relationConfig.onUpdate as string) ?? "no action";
69
- const onDelete = (relationConfig.onDelete as string) ?? "no action";
62
+ const onUpdate = values.onUpdate ?? "no action";
63
+ const onDelete = values.onDelete ?? "no action";
70
64
 
71
65
  // Whether to show the junction table section
72
66
  const showThrough = cardinality === "many" && direction === "owning";
@@ -75,26 +69,15 @@ export function RelationPropertyField({
75
69
  // Whether to show the foreign key on target field
76
70
  const showForeignKey = direction === "inverse";
77
71
 
78
- const updateRelationConfig = useCallback(
79
- (patch: Record<string, unknown>) => {
80
- const current = (values._relationConfig as Record<string, unknown>) ?? {};
81
- setFieldValue("_relationConfig" as keyof (RelationProperty & { _relationConfig?: unknown }), { ...current,
82
- ...patch });
83
- },
84
- [values, setFieldValue]
85
- );
86
-
87
72
  const updateThrough = useCallback(
88
73
  (patch: Record<string, unknown>) => {
89
- const current = (values._relationConfig as Record<string, unknown>) ?? {};
90
- const currentThrough = (current.through as Record<string, unknown>) ?? {};
91
- setFieldValue("_relationConfig" as keyof (RelationProperty & { _relationConfig?: unknown }), {
92
- ...current,
93
- through: { ...currentThrough,
94
- ...patch }
95
- });
74
+ const currentThrough = values.through ?? { table: "",
75
+ sourceColumn: "",
76
+ targetColumn: "" };
77
+ setFieldValue("through", { ...currentThrough,
78
+ ...patch });
96
79
  },
97
- [values, setFieldValue]
80
+ [values.through, setFieldValue]
98
81
  );
99
82
 
100
83
  // Auto-generate relationName from target collection slug
@@ -102,9 +85,9 @@ export function RelationPropertyField({
102
85
  if (targetSlug && !relationName) {
103
86
  setFieldValue("relationName", targetSlug);
104
87
  }
105
- }, [targetSlug]);
88
+ }, [targetSlug, relationName, setFieldValue]);
106
89
 
107
- const collections: EntityCollection[] = collectionRegistry?.collections ?? [];
90
+ const collections: CollectionConfig[] = collectionRegistry?.collections ?? [];
108
91
 
109
92
  return (
110
93
  <>
@@ -112,10 +95,10 @@ export function RelationPropertyField({
112
95
  <div className={"col-span-12"}>
113
96
  <CollectionsSelect
114
97
  disabled={disabled}
115
- pathPath={"_relationConfig._targetSlug"}
98
+ pathPath={"target"}
116
99
  value={targetSlug}
117
100
  setFieldValue={(_, value) => {
118
- updateRelationConfig({ _targetSlug: value });
101
+ setFieldValue("target", value);
119
102
  // Auto-generate relation name from target
120
103
  if (!relationName || relationName === targetSlug) {
121
104
  setFieldValue("relationName", value);
@@ -152,7 +135,7 @@ export function RelationPropertyField({
152
135
  <div className={"col-span-12 sm:col-span-6"}>
153
136
  <Select
154
137
  value={cardinality}
155
- onValueChange={(v) => updateRelationConfig({ cardinality: v })}
138
+ onValueChange={(v) => setFieldValue("cardinality", v as "one" | "many")}
156
139
  label={"Cardinality"}
157
140
  disabled={disabled}
158
141
  fullWidth
@@ -184,7 +167,7 @@ export function RelationPropertyField({
184
167
  <div className={"col-span-12 sm:col-span-6"}>
185
168
  <Select
186
169
  value={direction}
187
- onValueChange={(v) => updateRelationConfig({ direction: v })}
170
+ onValueChange={(v) => setFieldValue("direction", v as "owning" | "inverse")}
188
171
  label={"Direction"}
189
172
  disabled={disabled}
190
173
  fullWidth
@@ -218,7 +201,7 @@ export function RelationPropertyField({
218
201
  <TextField
219
202
  value={localKey}
220
203
  onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>
221
- updateRelationConfig({ localKey: e.target.value })
204
+ setFieldValue("localKey", e.target.value)
222
205
  }
223
206
  label={"Local key (foreign key column on this table)"}
224
207
  disabled={disabled}
@@ -236,7 +219,7 @@ export function RelationPropertyField({
236
219
  <TextField
237
220
  value={foreignKeyOnTarget}
238
221
  onChange={(e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) =>
239
- updateRelationConfig({ foreignKeyOnTarget: e.target.value })
222
+ setFieldValue("foreignKeyOnTarget", e.target.value)
240
223
  }
241
224
  label={"Foreign key on target table"}
242
225
  disabled={disabled}
@@ -305,7 +288,7 @@ export function RelationPropertyField({
305
288
  <div className={"col-span-12 sm:col-span-6"}>
306
289
  <Select
307
290
  value={onUpdate}
308
- onValueChange={(v) => updateRelationConfig({ onUpdate: v })}
291
+ onValueChange={(v) => setFieldValue("onUpdate", v as OnAction)}
309
292
  label={"On update"}
310
293
  disabled={disabled}
311
294
  fullWidth
@@ -325,7 +308,7 @@ export function RelationPropertyField({
325
308
  <div className={"col-span-12 sm:col-span-6"}>
326
309
  <Select
327
310
  value={onDelete}
328
- onValueChange={(v) => updateRelationConfig({ onDelete: v })}
311
+ onValueChange={(v) => setFieldValue("onDelete", v as OnAction)}
329
312
  label={"On delete"}
330
313
  disabled={disabled}
331
314
  fullWidth
@@ -2,7 +2,7 @@ import React, { useState } from "react";
2
2
  import { getFieldConfig } from "../../../../components/field_configs";
3
3
  import { ArrayProperty, Property, PropertyConfig } from "@rebasepro/types";
4
4
  import { Button, Paper, Typography } from "@rebasepro/ui";
5
- import { Field, getIn, useFormex } from "@rebasepro/formex";
5
+ import { Field, getIn, useFormex } from "@rebasepro/forms";
6
6
  import { PropertyFormDialog } from "../PropertyEditView";
7
7
  import { PropertyFieldPreview } from "../PropertyFieldPreview";
8
8
  import { ArrayPropertyValidation } from "./validation/ArrayPropertyValidation";
@@ -33,8 +33,8 @@ export function RepeatPropertyField({
33
33
  } = useFormex<ArrayProperty>();
34
34
 
35
35
  const [propertyDialogOpen, setPropertyDialogOpen] = useState(false);
36
- const ofProperty = getIn(values, "of");
37
- const ofPropertyError = getIn(touched, "of") && getIn(errors, "of");
36
+ const ofProperty = getIn(values, "of") as Property | undefined;
37
+ const ofPropertyError = (getIn(touched, "of") && getIn(errors, "of")) as string | undefined;
38
38
 
39
39
  const onPropertyChanged = ({ id, property, namespace }:
40
40
  { id?: string, property: Property, namespace?: string }) => {
@@ -1,10 +1,20 @@
1
1
 
2
2
  import React from "react";
3
- import { Button, DebouncedTextField, ExpandablePanel, MultiSelect, MultiSelectItem, Select, SelectItem, Typography } from "@rebasepro/ui";
4
- import { UploadCloudIcon } from "lucide-react";
5
-
6
- import { Field, FormexFieldProps, getIn, useFormex } from "@rebasepro/formex";
7
- import { useTranslation } from "@rebasepro/core";
3
+ import {
4
+ Button,
5
+ DebouncedTextField,
6
+ ExpandablePanel,
7
+ MultiSelect,
8
+ MultiSelectItem,
9
+ Select,
10
+ SelectItem,
11
+ Typography,
12
+ UploadCloudIcon
13
+ } from "@rebasepro/ui";
14
+
15
+ import { Field, FormexFieldProps, getIn, useFormex } from "@rebasepro/forms";
16
+ import { useStorageSources, useTranslation } from "@rebasepro/app";
17
+ import { DEFAULT_STORAGE_SOURCE_KEY } from "@rebasepro/types";
8
18
  import { GeneralPropertyValidation } from "./validation/GeneralPropertyValidation";
9
19
  import { ArrayPropertyValidation } from "./validation/ArrayPropertyValidation";
10
20
  import { ValidationPanel } from "./validation/ValidationPanel";
@@ -33,9 +43,11 @@ export function StoragePropertyField({
33
43
  setFieldValue
34
44
  } = useFormex();
35
45
  const { t } = useTranslation();
46
+ const storageSources = useStorageSources();
36
47
 
37
48
  const baseStoragePath = multiple ? "of.storage" : "storage";
38
49
  const acceptedFiles = `${baseStoragePath}.acceptedFiles`;
50
+ const storageSource = `${baseStoragePath}.storageSource`;
39
51
 
40
52
  const metadata = `${baseStoragePath}.metadata`;
41
53
  const fileName = `${baseStoragePath}.fileName`;
@@ -52,21 +64,26 @@ export function StoragePropertyField({
52
64
  const imageResizeFormat = `${imageResize}.format`;
53
65
  const imageResizeQuality = `${imageResize}.quality`;
54
66
 
55
- const fileNameValue = getIn(values, fileName) ?? "{rand}_{file}";
56
- const storagePathValue = getIn(values, storagePath) ?? "/";
57
- const maxSizeValue = getIn(values, maxSize);
67
+ const fileNameValue = (getIn(values, fileName) as string | undefined) ?? "{rand}_{file}";
68
+ const storagePathValue = (getIn(values, storagePath) as string | undefined) ?? "/";
69
+ const maxSizeValue = getIn(values, maxSize) as number | undefined;
58
70
 
59
71
  // Image resize values
60
- const imageResizeMaxWidthValue = getIn(values, imageResizeMaxWidth);
61
- const imageResizeMaxHeightValue = getIn(values, imageResizeMaxHeight);
62
- const imageResizeModeValue = getIn(values, imageResizeMode) ?? "cover";
63
- const imageResizeFormatValue = getIn(values, imageResizeFormat) ?? "original";
64
- const imageResizeQualityValue = getIn(values, imageResizeQuality);
72
+ const imageResizeMaxWidthValue = getIn(values, imageResizeMaxWidth) as number | undefined;
73
+ const imageResizeMaxHeightValue = getIn(values, imageResizeMaxHeight) as number | undefined;
74
+ const imageResizeModeValue = (getIn(values, imageResizeMode) as string | undefined) ?? "cover";
75
+ const imageResizeFormatValue = (getIn(values, imageResizeFormat) as string | undefined) ?? "original";
76
+ const imageResizeQualityValue = getIn(values, imageResizeQuality) as number | undefined;
65
77
 
66
78
  const storedValue = getIn(values, acceptedFiles);
67
79
  const fileTypesValue: string[] | undefined = Array.isArray(storedValue) ? storedValue : undefined;
68
80
  const allFileTypesSelected = !fileTypesValue || fileTypesValue.length === 0;
69
81
 
82
+ // Available storage backends (from `<Rebase storageSources={...}>`).
83
+ const sourceKeys = Object.keys(storageSources.sources)
84
+ .filter((key) => key !== DEFAULT_STORAGE_SOURCE_KEY);
85
+ const storageSourceValue = (getIn(values, storageSource) as string | undefined) ?? DEFAULT_STORAGE_SOURCE_KEY;
86
+
70
87
  const handleTypesChange = (value: string[]) => {
71
88
  if (!value) setFieldValue(acceptedFiles, undefined);
72
89
  else setFieldValue(acceptedFiles, value);
@@ -93,6 +110,32 @@ export function StoragePropertyField({
93
110
 
94
111
  <div className={"grid grid-cols-12 gap-2 p-4"}>
95
112
 
113
+ {sourceKeys.length > 0 && (
114
+ <div className={"col-span-12"}>
115
+ <Select
116
+ className={"w-full"}
117
+ disabled={disabled}
118
+ name={storageSource}
119
+ value={storageSourceValue}
120
+ onValueChange={(value) =>
121
+ setFieldValue(storageSource, !value || value === DEFAULT_STORAGE_SOURCE_KEY ? undefined : value)}
122
+ label={"Storage backend"}
123
+ renderValue={(key) => {
124
+ const label = storageSources.registry[key]?.label;
125
+ return label ?? (key === DEFAULT_STORAGE_SOURCE_KEY ? "Default" : key);
126
+ }}>
127
+ <SelectItem value={DEFAULT_STORAGE_SOURCE_KEY}>
128
+ Default
129
+ </SelectItem>
130
+ {sourceKeys.map((key) => (
131
+ <SelectItem key={key} value={key}>
132
+ {storageSources.registry[key]?.label ?? key}
133
+ </SelectItem>
134
+ ))}
135
+ </Select>
136
+ </div>
137
+ )}
138
+
96
139
  <div className={"col-span-12"}>
97
140
 
98
141
  <MultiSelect