@rebasepro/cms 0.17.3 → 0.18.1

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 (449) hide show
  1. package/README.md +4 -0
  2. package/dist/{CollectionEditorDialog-B-akreOU.js → CollectionEditorDialog-BeX4b92r.js} +13 -7
  3. package/dist/{CollectionEditorDialog-B-akreOU.js.map → CollectionEditorDialog-BeX4b92r.js.map} +1 -1
  4. package/dist/{PropertyEditView-CiY84wkR.js → PropertyEditView-C7thfj4L.js} +3 -3
  5. package/dist/{PropertyEditView-CiY84wkR.js.map → PropertyEditView-C7thfj4L.js.map} +1 -1
  6. package/dist/{RouterCollectionsStudioView-DkAWda4N.js → RouterCollectionsStudioView-BtjzvB6E.js} +4 -4
  7. package/dist/{RouterCollectionsStudioView-DkAWda4N.js.map → RouterCollectionsStudioView-BtjzvB6E.js.map} +1 -1
  8. package/dist/{SchemaChangeDialog-DceT8QFX.js → SchemaChangeDialog-CkqK6KOC.js} +4 -2
  9. package/dist/{SchemaChangeDialog-DceT8QFX.js.map → SchemaChangeDialog-CkqK6KOC.js.map} +1 -1
  10. package/dist/collection_editor/api/generateCollectionApi.d.ts +1 -2
  11. package/dist/collection_editor_ui.d.ts +2 -0
  12. package/dist/collection_editor_ui.js +6 -5
  13. package/dist/collection_editor_ui.js.map +1 -1
  14. package/dist/components/DeleteEntityDialog.d.ts +2 -3
  15. package/dist/components/RebaseLayout.d.ts +11 -4
  16. package/dist/components/field_configs.d.ts +1 -1
  17. package/dist/editor/sanitize-html.d.ts +15 -0
  18. package/dist/editor.js +195 -10
  19. package/dist/editor.js.map +1 -1
  20. package/dist/{export-Ben8E355.js → export--arni_VY.js} +2 -2
  21. package/dist/{export-Ben8E355.js.map → export--arni_VY.js.map} +1 -1
  22. package/dist/form/components/LabelWithIcon.d.ts +10 -0
  23. package/dist/{history-DIEVd26f.js → history-C2TpoQwi.js} +2 -2
  24. package/dist/{history-DIEVd26f.js.map → history-C2TpoQwi.js.map} +1 -1
  25. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +1 -1
  26. package/dist/hooks/navigation/useResolvedViews.d.ts +1 -1
  27. package/dist/hooks/navigation/useTopLevelNavigation.d.ts +1 -1
  28. package/dist/{import-D25x7ko-.js → import-DTkXNoBg.js} +2 -2
  29. package/dist/{import-D25x7ko-.js.map → import-DTkXNoBg.js.map} +1 -1
  30. package/dist/index.js +78 -33
  31. package/dist/index.js.map +1 -1
  32. package/dist/util/propertyConfigMapper.d.ts +1 -1
  33. package/dist/util-CfLFggP7.js +57 -0
  34. package/dist/util-CfLFggP7.js.map +1 -0
  35. package/dist/{util-DVqnqlLn.js → util-DE1WQW6h.js} +134 -112
  36. package/dist/util-DE1WQW6h.js.map +1 -0
  37. package/package.json +42 -34
  38. package/dist/util-DVqnqlLn.js.map +0 -1
  39. package/src/collection_editor/CollectionEditorDialogsContext.tsx +0 -25
  40. package/src/collection_editor/ConfigControllerProvider.tsx +0 -395
  41. package/src/collection_editor/_cms_internals.ts +0 -41
  42. package/src/collection_editor/api/generateCollectionApi.ts +0 -126
  43. package/src/collection_editor/api/index.ts +0 -1
  44. package/src/collection_editor/extensibility_types.ts +0 -168
  45. package/src/collection_editor/index.ts +0 -108
  46. package/src/collection_editor/liveSchemaClient.ts +0 -285
  47. package/src/collection_editor/relation_kinds.ts +0 -44
  48. package/src/collection_editor/serializable_types.ts +0 -535
  49. package/src/collection_editor/serializable_utils.ts +0 -729
  50. package/src/collection_editor/types/collection_editor_controller.tsx +0 -62
  51. package/src/collection_editor/types/collection_inference.ts +0 -18
  52. package/src/collection_editor/types/config_controller.tsx +0 -121
  53. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +0 -199
  54. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +0 -51
  55. package/src/collection_editor/ui/EditorCollectionAction.tsx +0 -54
  56. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +0 -90
  57. package/src/collection_editor/ui/EditorEntityAction.tsx +0 -50
  58. package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +0 -114
  59. package/src/collection_editor/ui/KanbanSetupAction.tsx +0 -43
  60. package/src/collection_editor/ui/MissingReferenceWidget.tsx +0 -35
  61. package/src/collection_editor/ui/NewCollectionButton.tsx +0 -27
  62. package/src/collection_editor/ui/NewCollectionCard.tsx +0 -48
  63. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +0 -49
  64. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +0 -260
  65. package/src/collection_editor/ui/collection_editor/AIModifiedPathsContext.tsx +0 -90
  66. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +0 -388
  67. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +0 -1098
  68. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +0 -301
  69. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +0 -172
  70. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +0 -620
  71. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +0 -530
  72. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +0 -462
  73. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +0 -104
  74. package/src/collection_editor/ui/collection_editor/CollectionYupValidation.tsx +0 -9
  75. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +0 -199
  76. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +0 -315
  77. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +0 -164
  78. package/src/collection_editor/ui/collection_editor/EntityActionsSelectDialog.tsx +0 -40
  79. package/src/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.tsx +0 -39
  80. package/src/collection_editor/ui/collection_editor/EnumForm.tsx +0 -373
  81. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +0 -288
  82. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +0 -141
  83. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +0 -194
  84. package/src/collection_editor/ui/collection_editor/LayoutModeSwitch.tsx +0 -53
  85. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +0 -980
  86. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +0 -164
  87. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +0 -364
  88. package/src/collection_editor/ui/collection_editor/RouterCollectionStudioView.tsx +0 -44
  89. package/src/collection_editor/ui/collection_editor/RouterCollectionsStudioView.tsx +0 -41
  90. package/src/collection_editor/ui/collection_editor/SchemaChangeDialog.tsx +0 -470
  91. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +0 -256
  92. package/src/collection_editor/ui/collection_editor/SwitchControl.tsx +0 -39
  93. package/src/collection_editor/ui/collection_editor/ViewModeSwitch.tsx +0 -68
  94. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.tsx +0 -67
  95. package/src/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.tsx +0 -296
  96. package/src/collection_editor/ui/collection_editor/import/clean_import_data.ts +0 -57
  97. package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +0 -147
  98. package/src/collection_editor/ui/collection_editor/properties/BooleanPropertyField.tsx +0 -41
  99. package/src/collection_editor/ui/collection_editor/properties/CommonPropertyFields.tsx +0 -113
  100. package/src/collection_editor/ui/collection_editor/properties/DateTimePropertyField.tsx +0 -250
  101. package/src/collection_editor/ui/collection_editor/properties/EnumPropertyField.tsx +0 -126
  102. package/src/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.tsx +0 -20
  103. package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +0 -153
  104. package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +0 -217
  105. package/src/collection_editor/ui/collection_editor/properties/NumberPropertyField.tsx +0 -117
  106. package/src/collection_editor/ui/collection_editor/properties/ReferencePropertyField.tsx +0 -129
  107. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +0 -335
  108. package/src/collection_editor/ui/collection_editor/properties/RepeatPropertyField.tsx +0 -107
  109. package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +0 -403
  110. package/src/collection_editor/ui/collection_editor/properties/StringPropertyField.tsx +0 -148
  111. package/src/collection_editor/ui/collection_editor/properties/UrlPropertyField.tsx +0 -91
  112. package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +0 -34
  113. package/src/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.tsx +0 -49
  114. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +0 -925
  115. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.tsx +0 -28
  116. package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +0 -626
  117. package/src/collection_editor/ui/collection_editor/properties/conditions/index.ts +0 -6
  118. package/src/collection_editor/ui/collection_editor/properties/conditions/property_paths.ts +0 -93
  119. package/src/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.tsx +0 -52
  120. package/src/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.tsx +0 -63
  121. package/src/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.tsx +0 -114
  122. package/src/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.tsx +0 -154
  123. package/src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx +0 -28
  124. package/src/collection_editor/ui/collection_editor/templates/blog_template.ts +0 -112
  125. package/src/collection_editor/ui/collection_editor/templates/pages_template.ts +0 -183
  126. package/src/collection_editor/ui/collection_editor/templates/products_template.ts +0 -88
  127. package/src/collection_editor/ui/collection_editor/templates/users_template.ts +0 -42
  128. package/src/collection_editor/ui/collection_editor/util.ts +0 -28
  129. package/src/collection_editor/ui/collection_editor/utils/strings.ts +0 -1
  130. package/src/collection_editor/ui/collection_editor/utils/supported_fields.tsx +0 -39
  131. package/src/collection_editor/ui/collection_editor/utils/update_property_for_widget.ts +0 -276
  132. package/src/collection_editor/useCollectionEditorController.tsx +0 -9
  133. package/src/collection_editor/useCollectionsConfigController.tsx +0 -9
  134. package/src/collection_editor/useJsonCollectionsConfigController.tsx +0 -297
  135. package/src/collection_editor/useLiveSchemaEditing.tsx +0 -315
  136. package/src/collection_editor/useLocalCollectionsConfigController.tsx +0 -341
  137. package/src/collection_editor/useSafeSnackbarController.ts +0 -9
  138. package/src/collection_editor/validateCollectionJson.ts +0 -440
  139. package/src/collection_editor_ui.ts +0 -21
  140. package/src/components/AdditionalFieldValue.tsx +0 -68
  141. package/src/components/AdminModeSyncer.tsx +0 -56
  142. package/src/components/ArrayContainer.tsx +0 -542
  143. package/src/components/ClearFilterSortButton.tsx +0 -56
  144. package/src/components/CollectionEditorDialogs.tsx +0 -69
  145. package/src/components/CollectionPanel.tsx +0 -179
  146. package/src/components/CollectionTableBinding/CollectionRowActions.tsx +0 -244
  147. package/src/components/CollectionTableBinding/CollectionTableBinding.tsx +0 -394
  148. package/src/components/CollectionTableBinding/CollectionTableBindingProps.tsx +0 -172
  149. package/src/components/CollectionTableBinding/PropertyTableCell.tsx +0 -350
  150. package/src/components/CollectionTableBinding/column_utils.tsx +0 -155
  151. package/src/components/CollectionTableBinding/fields/TableMultipleRelationField.tsx +0 -131
  152. package/src/components/CollectionTableBinding/fields/TableReferenceField.tsx +0 -193
  153. package/src/components/CollectionTableBinding/fields/TableRelationField.tsx +0 -192
  154. package/src/components/CollectionTableBinding/fields/TableRelationSelectorField.tsx +0 -42
  155. package/src/components/CollectionTableBinding/fields/TableStorageUpload.tsx +0 -324
  156. package/src/components/CollectionTableBinding/fields/VirtualTableSelect.tsx +0 -132
  157. package/src/components/CollectionTableBinding/fields/VirtualTableUserSelect.tsx +0 -41
  158. package/src/components/CollectionTableBinding/index.tsx +0 -14
  159. package/src/components/CollectionTableBinding/internal/CollectionTableToolbar.tsx +0 -96
  160. package/src/components/CollectionTableBinding/internal/EntityTableCell.tsx +0 -309
  161. package/src/components/CollectionTableBinding/internal/EntityTableCellActions.tsx +0 -80
  162. package/src/components/CollectionTableBinding/internal/common.tsx +0 -74
  163. package/src/components/CollectionTableBinding/internal/popup_field/PopupFormField.tsx +0 -422
  164. package/src/components/CollectionTableBinding/internal/popup_field/useDraggable.tsx +0 -99
  165. package/src/components/CollectionTableBinding/internal/popup_field/useWindowSize.tsx +0 -22
  166. package/src/components/CollectionTableBinding/table_bindings.tsx +0 -350
  167. package/src/components/CollectionViewBinding/BoardCardBinding.tsx +0 -263
  168. package/src/components/CollectionViewBinding/CollectionBoardViewBinding.tsx +0 -662
  169. package/src/components/CollectionViewBinding/CollectionCardViewBinding.tsx +0 -159
  170. package/src/components/CollectionViewBinding/CollectionListViewBinding.tsx +0 -1430
  171. package/src/components/CollectionViewBinding/CollectionViewActions.tsx +0 -227
  172. package/src/components/CollectionViewBinding/CollectionViewBinding.tsx +0 -1603
  173. package/src/components/CollectionViewBinding/CollectionViewStartActions.tsx +0 -240
  174. package/src/components/CollectionViewBinding/EntityCardBinding.tsx +0 -239
  175. package/src/components/CollectionViewBinding/FilterPresetsButton.tsx +0 -298
  176. package/src/components/CollectionViewBinding/FiltersDialog.tsx +0 -218
  177. package/src/components/CollectionViewBinding/SearchExplanation.tsx +0 -106
  178. package/src/components/CollectionViewBinding/SearchHighlight.tsx +0 -311
  179. package/src/components/CollectionViewBinding/SlotValue.tsx +0 -156
  180. package/src/components/CollectionViewBinding/SortButton.tsx +0 -354
  181. package/src/components/CollectionViewBinding/SplitListCloseButton.tsx +0 -49
  182. package/src/components/CollectionViewBinding/SplitListShowButton.tsx +0 -28
  183. package/src/components/CollectionViewBinding/SplitListView.tsx +0 -488
  184. package/src/components/CollectionViewBinding/SplitViewContext.tsx +0 -34
  185. package/src/components/CollectionViewBinding/ViewModeToggle.tsx +0 -250
  186. package/src/components/CollectionViewBinding/hooks/useCollectionInlineEditor.ts +0 -81
  187. package/src/components/CollectionViewBinding/hooks/useKanbanDragAndDrop.ts +0 -181
  188. package/src/components/CollectionViewBinding/useBoardDataController.tsx +0 -802
  189. package/src/components/CollectionViewBinding/usePreviewSlots.ts +0 -703
  190. package/src/components/CollectionViewBinding/useSelectionController.tsx +0 -40
  191. package/src/components/CollectionViewBinding/utils.ts +0 -22
  192. package/src/components/DefaultAppBar.tsx +0 -264
  193. package/src/components/DefaultDrawer.tsx +0 -593
  194. package/src/components/DeleteEntityDialog.tsx +0 -205
  195. package/src/components/DetailViewBinding.tsx +0 -731
  196. package/src/components/DrawerNavigationGroup.tsx +0 -141
  197. package/src/components/DrawerNavigationItem.tsx +0 -115
  198. package/src/components/EditFormActions.tsx +0 -303
  199. package/src/components/EditViewBinding.tsx +0 -1069
  200. package/src/components/EntityDisplayHeader.tsx +0 -170
  201. package/src/components/EntityIdentityBar.tsx +0 -428
  202. package/src/components/EntityInspector.tsx +0 -156
  203. package/src/components/EntityPreviewBinding.tsx +0 -432
  204. package/src/components/EntityPreviewNesting.tsx +0 -50
  205. package/src/components/EntityViewBinding.tsx +0 -374
  206. package/src/components/FieldCaption.tsx +0 -14
  207. package/src/components/HomePage/ContentHomePage.tsx +0 -586
  208. package/src/components/HomePage/FavouritesView.tsx +0 -60
  209. package/src/components/HomePage/HomePageDnD.tsx +0 -704
  210. package/src/components/HomePage/NavigationCard.tsx +0 -81
  211. package/src/components/HomePage/NavigationCardBinding.tsx +0 -107
  212. package/src/components/HomePage/NavigationGroup.tsx +0 -156
  213. package/src/components/HomePage/RenameGroupDialog.tsx +0 -123
  214. package/src/components/HomePage/SmallNavigationCard.tsx +0 -41
  215. package/src/components/HomePage/index.tsx +0 -5
  216. package/src/components/InlineEntityPreview.tsx +0 -149
  217. package/src/components/JsonPreviewBinding.tsx +0 -66
  218. package/src/components/PropertyCollectionView.tsx +0 -336
  219. package/src/components/PropertyConfigBadge.tsx +0 -28
  220. package/src/components/PropertyIdCopyTooltip.tsx +0 -47
  221. package/src/components/RebaseAuthGate.tsx +0 -44
  222. package/src/components/RebaseCMS.tsx +0 -30
  223. package/src/components/RebaseLayout.tsx +0 -80
  224. package/src/components/RebaseNavigation.tsx +0 -369
  225. package/src/components/RebaseRouteDefs.tsx +0 -127
  226. package/src/components/RebaseShell.tsx +0 -83
  227. package/src/components/ReferenceTable/SelectionTableBinding.tsx +0 -389
  228. package/src/components/ReferenceWidget.tsx +0 -156
  229. package/src/components/RelationSelector.tsx +0 -926
  230. package/src/components/SearchIconsView.tsx +0 -78
  231. package/src/components/SelectableTable/SelectableTable.tsx +0 -309
  232. package/src/components/SelectableTable/SelectableTableContext.tsx +0 -7
  233. package/src/components/SelectableTable/SelectionStore.ts +0 -43
  234. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +0 -59
  235. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +0 -146
  236. package/src/components/SelectableTable/filters/FilterFieldBinding.tsx +0 -190
  237. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +0 -250
  238. package/src/components/SelectableTable/filters/RelationFilterField.tsx +0 -238
  239. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +0 -282
  240. package/src/components/SelectableTable/filters/null_filter.ts +0 -63
  241. package/src/components/SideDialogs.tsx +0 -238
  242. package/src/components/SidePanelBinding.tsx +0 -361
  243. package/src/components/SidePanelProvider.tsx +0 -80
  244. package/src/components/UserSelector.tsx +0 -513
  245. package/src/components/admin/CreationResultDialog.tsx +0 -138
  246. package/src/components/admin/index.ts +0 -1
  247. package/src/components/app/AppBar.tsx +0 -17
  248. package/src/components/app/Drawer.tsx +0 -38
  249. package/src/components/app/Scaffold.tsx +0 -366
  250. package/src/components/app/index.ts +0 -4
  251. package/src/components/app/useApp.tsx +0 -36
  252. package/src/components/common/default_entity_actions.tsx +0 -440
  253. package/src/components/common/index.ts +0 -1
  254. package/src/components/field_configs.tsx +0 -506
  255. package/src/components/history/EntityHistoryEntry.tsx +0 -203
  256. package/src/components/history/EntityHistoryView.tsx +0 -206
  257. package/src/components/history/LastEditedByFormAction.tsx +0 -24
  258. package/src/components/history/LastEditedByIndicator.tsx +0 -95
  259. package/src/components/history/UserChip.tsx +0 -15
  260. package/src/components/history/index.tsx +0 -5
  261. package/src/components/index.ts +0 -63
  262. package/src/contexts/BreacrumbsContext.tsx +0 -45
  263. package/src/contexts/SideDialogsControllerContext.tsx +0 -5
  264. package/src/contexts/SidePanelControllerContext.tsx +0 -5
  265. package/src/data_export/export/BasicExportAction.tsx +0 -142
  266. package/src/data_export/export/ExportCollectionAction.tsx +0 -321
  267. package/src/data_export/export/export.ts +0 -295
  268. package/src/data_export/export/fetch_export_data.ts +0 -90
  269. package/src/data_export/export/index.ts +0 -4
  270. package/src/data_export/index.ts +0 -1
  271. package/src/data_import/components/DataNewPropertiesMapping.tsx +0 -261
  272. package/src/data_import/components/ImportFileUpload.tsx +0 -42
  273. package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +0 -58
  274. package/src/data_import/components/ImportSaveInProgress.tsx +0 -121
  275. package/src/data_import/components/index.ts +0 -4
  276. package/src/data_import/hooks/index.ts +0 -1
  277. package/src/data_import/hooks/useImportConfig.tsx +0 -34
  278. package/src/data_import/import/ImportCollectionAction.tsx +0 -461
  279. package/src/data_import/import/index.ts +0 -1
  280. package/src/data_import/index.ts +0 -5
  281. package/src/data_import/types/column_mapping.ts +0 -32
  282. package/src/data_import/types/index.ts +0 -1
  283. package/src/data_import/utils/csv.ts +0 -153
  284. package/src/data_import/utils/data.ts +0 -181
  285. package/src/data_import/utils/file_headers.ts +0 -14
  286. package/src/data_import/utils/file_to_json.ts +0 -149
  287. package/src/data_import/utils/get_import_inference_type.ts +0 -33
  288. package/src/data_import/utils/get_properties_mapping.ts +0 -67
  289. package/src/data_import/utils/index.ts +0 -5
  290. package/src/data_import/utils/save_entities.ts +0 -138
  291. package/src/data_import/utils/transforms.ts +0 -70
  292. package/src/editor/components/SlashCommandMenu.tsx +0 -532
  293. package/src/editor/components/editor-bubble-item.tsx +0 -32
  294. package/src/editor/components/editor-bubble.tsx +0 -143
  295. package/src/editor/components/image-bubble.tsx +0 -183
  296. package/src/editor/components/index.ts +0 -14
  297. package/src/editor/components/table-bubble.tsx +0 -233
  298. package/src/editor/editor.tsx +0 -529
  299. package/src/editor/extensions/HighlightDecorationExtension.ts +0 -115
  300. package/src/editor/extensions/Image.ts +0 -159
  301. package/src/editor/extensions/TextLoadingDecorationExtension.tsx +0 -107
  302. package/src/editor/extensions/clipboard.ts +0 -72
  303. package/src/editor/extensions/custom-keymap.ts +0 -25
  304. package/src/editor/extensions/drag-and-drop.tsx +0 -508
  305. package/src/editor/hooks/useProseMirror.ts +0 -126
  306. package/src/editor/hooks/useProseMirrorContext.ts +0 -15
  307. package/src/editor/index.ts +0 -2
  308. package/src/editor/markdown-it-plugins.d.ts +0 -24
  309. package/src/editor/markdown.ts +0 -204
  310. package/src/editor/nodeViews/ImageComponent.tsx +0 -20
  311. package/src/editor/nodeViews/ReactNodeView.tsx +0 -89
  312. package/src/editor/nodeViews/TaskItemComponent.tsx +0 -30
  313. package/src/editor/nodeViews/index.ts +0 -35
  314. package/src/editor/plugins/index.ts +0 -58
  315. package/src/editor/plugins/inputrules.ts +0 -82
  316. package/src/editor/plugins/placeholderPlugin.ts +0 -55
  317. package/src/editor/plugins/slashCommandPlugin.ts +0 -65
  318. package/src/editor/schema.ts +0 -339
  319. package/src/editor/selectors/ai-selector.tsx +0 -110
  320. package/src/editor/selectors/color-selector.tsx +0 -199
  321. package/src/editor/selectors/link-selector.tsx +0 -122
  322. package/src/editor/selectors/node-selector.tsx +0 -159
  323. package/src/editor/selectors/text-buttons.tsx +0 -79
  324. package/src/editor/types.ts +0 -6
  325. package/src/editor/useProseMirror.ts +0 -125
  326. package/src/editor/utils/prosemirror-utils.ts +0 -113
  327. package/src/editor/utils/remove_classes.ts +0 -18
  328. package/src/editor/utils/useDebouncedCallback.ts +0 -25
  329. package/src/form/EntityForm.tsx +0 -761
  330. package/src/form/EntityFormActions.tsx +0 -160
  331. package/src/form/EntityFormBinding.tsx +0 -342
  332. package/src/form/PropertyFieldBinding.tsx +0 -348
  333. package/src/form/components/ErrorFocus.tsx +0 -44
  334. package/src/form/components/FieldBlock.tsx +0 -189
  335. package/src/form/components/FieldHelperText.tsx +0 -84
  336. package/src/form/components/FormRail.tsx +0 -153
  337. package/src/form/components/FormSections.tsx +0 -145
  338. package/src/form/components/LabelWithIcon.tsx +0 -43
  339. package/src/form/components/LabelWithIconAndTooltip.tsx +0 -28
  340. package/src/form/components/LocalChangesMenu.tsx +0 -147
  341. package/src/form/components/StorageItemPreview.tsx +0 -81
  342. package/src/form/components/StorageUploadProgress.tsx +0 -118
  343. package/src/form/components/index.tsx +0 -6
  344. package/src/form/components/useRailVisible.tsx +0 -47
  345. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +0 -109
  346. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +0 -172
  347. package/src/form/field_bindings/BinaryFieldBinding.tsx +0 -177
  348. package/src/form/field_bindings/BlockFieldBinding.tsx +0 -282
  349. package/src/form/field_bindings/DateTimeFieldBinding.tsx +0 -78
  350. package/src/form/field_bindings/GeopointFieldBinding.tsx +0 -200
  351. package/src/form/field_bindings/KeyValueFieldBinding.tsx +0 -574
  352. package/src/form/field_bindings/MapFieldBinding.tsx +0 -120
  353. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +0 -259
  354. package/src/form/field_bindings/MultiSelectFieldBinding.tsx +0 -130
  355. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +0 -168
  356. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +0 -94
  357. package/src/form/field_bindings/ReferenceFieldBinding.tsx +0 -146
  358. package/src/form/field_bindings/RelationFieldBinding.tsx +0 -202
  359. package/src/form/field_bindings/RepeatFieldBinding.tsx +0 -143
  360. package/src/form/field_bindings/SelectFieldBinding.tsx +0 -111
  361. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +0 -521
  362. package/src/form/field_bindings/SwitchFieldBinding.tsx +0 -70
  363. package/src/form/field_bindings/TextFieldBinding.tsx +0 -189
  364. package/src/form/field_bindings/UserSelectFieldBinding.tsx +0 -71
  365. package/src/form/field_bindings/VectorFieldBinding.tsx +0 -209
  366. package/src/form/form_utils.ts +0 -243
  367. package/src/form/index.tsx +0 -36
  368. package/src/form/useClearRestoreValue.tsx +0 -36
  369. package/src/form/useUndoableDiscard.ts +0 -39
  370. package/src/form/validation.ts +0 -583
  371. package/src/hooks/index.ts +0 -16
  372. package/src/hooks/navigation/contexts/CollectionRegistryContext.tsx +0 -22
  373. package/src/hooks/navigation/contexts/NavigationStateContext.tsx +0 -16
  374. package/src/hooks/navigation/contexts/UrlContext.tsx +0 -24
  375. package/src/hooks/navigation/contexts/index.ts +0 -14
  376. package/src/hooks/navigation/useAsyncResolver.ts +0 -100
  377. package/src/hooks/navigation/useBuildCollectionRegistryController.tsx +0 -218
  378. package/src/hooks/navigation/useBuildNavigationStateController.tsx +0 -134
  379. package/src/hooks/navigation/useBuildUrlController.tsx +0 -66
  380. package/src/hooks/navigation/useNavigationResolution.ts +0 -271
  381. package/src/hooks/navigation/useResolvedCollections.ts +0 -102
  382. package/src/hooks/navigation/useResolvedViews.tsx +0 -139
  383. package/src/hooks/navigation/useTopLevelNavigation.ts +0 -273
  384. package/src/hooks/navigation/utils.ts +0 -200
  385. package/src/hooks/useAdminContext.tsx +0 -83
  386. package/src/hooks/useBreadcrumbsController.tsx +0 -17
  387. package/src/hooks/useBuildSideDialogsController.tsx +0 -145
  388. package/src/hooks/useBuildSidePanel.tsx +0 -315
  389. package/src/hooks/useChildViewSource.ts +0 -46
  390. package/src/hooks/useEntityDisplay.tsx +0 -262
  391. package/src/hooks/useEntityDisplayTitle.tsx +0 -49
  392. package/src/hooks/useHistory.ts +0 -178
  393. package/src/hooks/useRecordActions.tsx +0 -69
  394. package/src/hooks/useResolvedNavigationFrom.tsx +0 -167
  395. package/src/hooks/useResolvedUsers.ts +0 -148
  396. package/src/hooks/useSelectionDialog.tsx +0 -58
  397. package/src/hooks/useSideDialogsController.tsx +0 -25
  398. package/src/hooks/useSidePanel.tsx +0 -13
  399. package/src/index.ts +0 -124
  400. package/src/preview/PropertyPreview.tsx +0 -331
  401. package/src/preview/compact_text.ts +0 -68
  402. package/src/preview/components/ArrayEnumPreview.tsx +0 -39
  403. package/src/preview/components/BooleanPreview.tsx +0 -28
  404. package/src/preview/components/DatePreview.tsx +0 -106
  405. package/src/preview/components/EmptyValue.tsx +0 -10
  406. package/src/preview/components/EnumValuesChip.tsx +0 -39
  407. package/src/preview/components/ImagePreview.tsx +0 -144
  408. package/src/preview/components/InlineEntityListPreview.tsx +0 -42
  409. package/src/preview/components/ReferencePreview.tsx +0 -235
  410. package/src/preview/components/RelationPreview.tsx +0 -271
  411. package/src/preview/components/StorageThumbnail.tsx +0 -147
  412. package/src/preview/components/UrlComponentPreview.tsx +0 -116
  413. package/src/preview/components/UserPreview.tsx +0 -30
  414. package/src/preview/components/date_fns_locales.ts +0 -125
  415. package/src/preview/index.ts +0 -26
  416. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +0 -73
  417. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +0 -67
  418. package/src/preview/property_previews/ArrayOfRelationsPreview.tsx +0 -77
  419. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +0 -49
  420. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +0 -70
  421. package/src/preview/property_previews/ArrayOneOfPreview.tsx +0 -79
  422. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +0 -35
  423. package/src/preview/property_previews/ArrayPropertyPreview.tsx +0 -79
  424. package/src/preview/property_previews/MapPropertyPreview.tsx +0 -198
  425. package/src/preview/property_previews/NumberPropertyPreview.tsx +0 -39
  426. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +0 -276
  427. package/src/preview/property_previews/StringPropertyPreview.tsx +0 -70
  428. package/src/preview/util.ts +0 -39
  429. package/src/routes/CustomViewRoute.tsx +0 -33
  430. package/src/routes/RebaseRoute.tsx +0 -467
  431. package/src/routes/index.ts +0 -2
  432. package/src/types/components/EntityFormActionsProps.tsx +0 -20
  433. package/src/types/components/EntityFormProps.tsx +0 -119
  434. package/src/types/components/PropertyPreviewProps.tsx +0 -85
  435. package/src/types/components/formex.tsx +0 -2
  436. package/src/types/components/index.ts +0 -3
  437. package/src/types/fields.tsx +0 -340
  438. package/src/types/index.ts +0 -4
  439. package/src/util/dataControllerAdapter.ts +0 -88
  440. package/src/util/entity_actions.ts +0 -28
  441. package/src/util/index.ts +0 -5
  442. package/src/util/navigation_utils.ts +0 -89
  443. package/src/util/number_format.ts +0 -46
  444. package/src/util/previews.ts +0 -131
  445. package/src/util/propertyConfigMapper.ts +0 -134
  446. package/src/util/property_utils.tsx +0 -236
  447. package/src/util/resolutions.ts +0 -96
  448. package/src/util/view_constants.ts +0 -33
  449. package/src/util/view_mode.ts +0 -176
@@ -1,361 +0,0 @@
1
-
2
- import type { SidePanelBindingProps, AdminCollection } from "@rebasepro/cms-types";
3
- import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
-
5
- import type { OnUpdateParams } from "../types/components/EntityFormProps";
6
- import { ErrorBoundary } from "@rebasepro/ui";
7
- import { IconButton, Maximize2Icon, XIcon } from "@rebasepro/ui";
8
- import { EditViewBinding } from "./EditViewBinding";
9
- import { DetailViewBinding } from "./DetailViewBinding";
10
- import { useSideDialogContext } from "./SideDialogs";
11
- import { useNavigate } from "react-router";
12
- import { useComponentOverride } from "@rebasepro/app";
13
- import { useCollectionRegistryController } from "../hooks/navigation/contexts/CollectionRegistryContext";
14
- import { useSidePanel } from "../hooks/useSidePanel";
15
- import { useUrlController } from "../hooks/navigation/contexts/UrlContext";
16
- import { resolveDefaultSelectedView } from "@rebasepro/app";
17
-
18
- /**
19
- * This is the component in charge of rendering the side dialog used
20
- * for editing entities. Use the {@link useSidePanel} to open
21
- * and control the dialogs.
22
- * This component needs a parent {@link Rebase}
23
- * {@link useSidePanel}
24
- * @group Components
25
- */
26
- export function SidePanelBinding(props: SidePanelBindingProps) {
27
-
28
- const {
29
- allowFullScreen = true,
30
- path,
31
- entityId,
32
- selectedTab,
33
- formProps
34
- } = props;
35
-
36
- const ResolvedDetailView = useComponentOverride("DetailView", DetailViewBinding);
37
-
38
- const {
39
- blocked,
40
- setBlocked,
41
- setBlockedNavigationMessage,
42
- close
43
- } = useSideDialogContext();
44
-
45
- const navigate = useNavigate();
46
-
47
- const sidePanelController = useSidePanel();
48
- const collectionRegistryController = useCollectionRegistryController();
49
- const sideDialogsController = useSideDialogContext();
50
- const urlController = useUrlController();
51
-
52
- /**
53
- * The X in the identity bar.
54
- *
55
- * Unforced, so it stops at the same unsaved-changes prompt that Escape and
56
- * a click outside already do. It used to clear `blocked` and force the
57
- * close, which made the one control actually labelled "close" the only way
58
- * out of the panel that dropped an edit without asking.
59
- *
60
- * `props.onClose` is not called here: the panel carries the same callback
61
- * (see `propsToSidePanel`) and {@link SideDialogs} fires it once the panel
62
- * really closes — which is after the prompt, not before it.
63
- */
64
- const onClose = () => {
65
- close();
66
- }
67
-
68
- /**
69
- * Closing because the record was just saved, which is the one case that has
70
- * to force. `blocked` is driven by an effect on the form's dirty flag and is
71
- * still true for a tick after a save; prompting about unsaved changes here
72
- * would be asking about values that are already on the server.
73
- */
74
- const closeAfterSave = () => {
75
- setBlocked(false);
76
- close(true);
77
- }
78
-
79
- /**
80
- * The panel's response to a save, and the one place it decides where the
81
- * panel goes next.
82
- *
83
- * Exactly **one** panel navigation is raised here. These branches used to
84
- * run independently — a `replace` onto the saved record's address *and* a
85
- * close — and because the last navigation is the one that survives, which
86
- * of them the user got was settled by statement order rather than by
87
- * intent. Closing wins by construction now: moving a panel to a new address
88
- * it is about to leave is work whose only effect is to fight the close.
89
- *
90
- * `props.onUpdate` runs last for the same reason. It belongs to whoever
91
- * opened the panel and it is free to navigate — the reference picker's
92
- * selects the record and closes the picker — so the opener's intent should
93
- * be the final word, not something this panel overwrites on its way out.
94
- */
95
- const onUpdate = (params: OnUpdateParams) => {
96
- setEditInDialog(false);
97
-
98
- // Either "save and close" was clicked, or the opener asked for it when
99
- // it opened the panel.
100
- const closeRequested = sideDialogsController.pendingClose || props.closeOnSave;
101
-
102
- if (closeRequested) {
103
- sideDialogsController.setPendingClose(false);
104
- closeAfterSave();
105
- } else if (params.status !== "existing") {
106
- // A newly created entity replaces the panel with its own address,
107
- // which already leaves the edit view behind.
108
- sidePanelController.replace({
109
- path: params.path,
110
- entityId: params.entityId,
111
- selectedTab: params.selectedTab,
112
- updateUrl: collection?.openEntityMode !== "dialog",
113
- collection: params.collection
114
- });
115
- } else {
116
- closeEditView();
117
- }
118
-
119
- props.onUpdate?.(params);
120
- }
121
-
122
- const parentCollectionSlugs = useMemo(() => {
123
- return collectionRegistryController.getParentCollectionSlugs(path);
124
- }, [collectionRegistryController, path]);
125
-
126
- const parentEntityIds = useMemo(() => {
127
- return collectionRegistryController.getParentEntityIds(path);
128
- }, [collectionRegistryController, path]);
129
-
130
- const collection = collectionRegistryController.getCollection(path) ?? props.collection;
131
-
132
- // Dialog mode deliberately stays out of the URL, so it is the only case that
133
- // needs local edit state. Everywhere else `edit` is a path segment, which
134
- // keeps refresh and the back button working the same way they do in split.
135
- const isDialogMode = collection?.openEntityMode === "dialog";
136
- const [editInDialog, setEditInDialog] = useState(false);
137
- const showEditInPanel = isDialogMode ? editInDialog : selectedTab === "edit";
138
- const isDetailMode = collection?.defaultEntityAction === "view" && !showEditInPanel && Boolean(entityId);
139
-
140
- // Reset edit mode when switching entities
141
- useEffect(() => {
142
- setEditInDialog(false);
143
- }, [entityId]);
144
-
145
- const openEditView = useCallback(() => {
146
- if (isDialogMode || !entityId) {
147
- setEditInDialog(true);
148
- return;
149
- }
150
- sidePanelController.replace({
151
- path,
152
- entityId,
153
- selectedTab: "edit",
154
- updateUrl: true,
155
- collection
156
- });
157
- }, [isDialogMode, entityId, path, collection, sidePanelController]);
158
-
159
- const closeEditView = useCallback(() => {
160
- if (isDialogMode || !entityId) {
161
- setEditInDialog(false);
162
- return;
163
- }
164
- sidePanelController.replace({
165
- path,
166
- entityId,
167
- selectedTab: undefined,
168
- updateUrl: true,
169
- collection
170
- });
171
- }, [isDialogMode, entityId, path, collection, sidePanelController]);
172
-
173
- // One-time correction: when the side panel opens without the correct
174
- // selectedTab but the resolved collection (from the registry) has a
175
- // defaultSelectedView, update the panel width and URL to match.
176
- // This handles cases where defaultSelectedView is set via the collection
177
- // editor / Studio and is not available on the collection object the
178
- // caller passed to sidePanelController.open().
179
- const hasCorrectedDefaultView = useRef(false);
180
- useEffect(() => {
181
- hasCorrectedDefaultView.current = false;
182
- }, [entityId]);
183
- useEffect(() => {
184
- if (hasCorrectedDefaultView.current) return;
185
- if (selectedTab) return; // Already has a tab — no correction needed
186
- if (!entityId || !collection?.defaultSelectedView) return;
187
-
188
- const effectiveDefault = resolveDefaultSelectedView(
189
- collection.defaultSelectedView,
190
- { status: "existing",
191
- entityId }
192
- );
193
- if (effectiveDefault && effectiveDefault !== "edit") {
194
- hasCorrectedDefaultView.current = true;
195
- sidePanelController.replace({
196
- path,
197
- entityId,
198
- selectedTab: effectiveDefault,
199
- updateUrl: collection.openEntityMode !== "dialog",
200
- collection
201
- });
202
- }
203
- }, [selectedTab, entityId, collection, path, sidePanelController]);
204
-
205
- // Note: beforeunload is handled by useUnsavedChangesDialog in SideDialogView,
206
- // which listens to the same `blocked` state via SideDialogContext.
207
-
208
- const onValuesModified = useCallback((modified: boolean) => {
209
- setBlockedNavigationMessage(modified
210
- ? <> You have unsaved changes in this <b>{collection?.singularName ?? collection?.name}</b>.</>
211
- : undefined)
212
- setBlocked(modified);
213
- }, [collection?.name, setBlocked, setBlockedNavigationMessage]);
214
-
215
- if (!props || !collection) {
216
- return <div className={"w-full"}/>;
217
- }
218
-
219
- const closeButton = (
220
- <IconButton
221
- className="self-center"
222
- size={"small"}
223
- onClick={onClose}>
224
- <XIcon/>
225
- </IconButton>
226
- );
227
-
228
- /**
229
- * Where the panel's own two controls sit, which is not the same question in
230
- * the two layouts that have them.
231
- *
232
- * A **side panel** slides in over the list from the right, and its leading
233
- * edge is the seam between the two. Close belongs on that seam — it points
234
- * back at the thing still visible behind it — and it is where the eye
235
- * already is, because the breadcrumb starts there.
236
- *
237
- * A **dialog** has no seam and nothing behind it to point at. It is a box
238
- * centred on a dimmed screen, and every box like it on every platform is
239
- * dismissed from its top-right corner. Close was sitting at the far left
240
- * of the bar, a full dialog's width from the expand button it belongs
241
- * beside, in the one corner that means "back" in a layout with no back.
242
- *
243
- * So in a dialog the two travel together at the trailing edge, expand then
244
- * close: the window controls, after the record's actions and its overflow
245
- * menu, in the corner a dialog is closed from.
246
- */
247
- const barActionsStart = isDialogMode ? undefined : closeButton;
248
-
249
- const windowControls = (expandButton: React.ReactNode) => (
250
- <div className="flex gap-1 items-center">
251
- {expandButton}
252
- {isDialogMode && closeButton}
253
- </div>
254
- );
255
-
256
- return (
257
- <>
258
- <ErrorBoundary>
259
- {isDetailMode
260
- ? <ResolvedDetailView
261
- path={path}
262
- layout={collection?.openEntityMode === "dialog" ? "dialog" : "side_panel"}
263
- collection={collection as AdminCollection}
264
- entityId={entityId!}
265
- parentCollectionSlugs={parentCollectionSlugs}
266
- parentEntityIds={parentEntityIds}
267
- onEditClick={openEditView}
268
- barActionsStart={barActionsStart}
269
- barActions={() => windowControls(
270
- allowFullScreen && <IconButton
271
- className="self-center"
272
- size={"small"}
273
- onClick={() => {
274
- if (entityId) {
275
- const fullScreenUrl = urlController.buildUrlCollectionPath(`${path}/${entityId}`);
276
- navigate(fullScreenUrl, { state: null });
277
- }
278
- }}>
279
- <Maximize2Icon/>
280
- </IconButton>
281
- )}
282
- onTabChange={({
283
- entityId: tabEntityId,
284
- selectedTab,
285
- collection: paramCollection
286
- }) => {
287
- if (collection?.openEntityMode === "dialog" || paramCollection?.openEntityMode === "dialog") {
288
- return;
289
- }
290
- if (tabEntityId) {
291
- sidePanelController.replace({
292
- path,
293
- entityId: tabEntityId,
294
- selectedTab,
295
- updateUrl: true,
296
- collection: paramCollection ?? collection
297
- });
298
- }
299
- }}
300
- />
301
- : <EditViewBinding
302
- {...props}
303
- layout={collection?.openEntityMode === "dialog" ? "dialog" : "side_panel"}
304
- collection={collection as AdminCollection}
305
- parentCollectionSlugs={parentCollectionSlugs} parentEntityIds={parentEntityIds}
306
- onValuesModified={onValuesModified}
307
- onSaved={onUpdate}
308
- navigateBack={closeEditView}
309
- barActionsStart={barActionsStart}
310
- barActions={({ carryEdit }) => windowControls(
311
- allowFullScreen && <IconButton
312
- className="self-center"
313
- size={"small"}
314
- onClick={() => {
315
- // The form's own handoff, rather than a second
316
- // copy of the rules for it here: only an edit in
317
- // progress is worth carrying (a clean record
318
- // stashed anyway arrived announcing unsaved
319
- // changes to someone who had only looked at it),
320
- // and only the fields that were edited (carrying
321
- // the whole record marked every field touched).
322
- carryEdit?.();
323
- setBlocked(false);
324
- setBlockedNavigationMessage(undefined);
325
- if (entityId) {
326
- const fullScreenUrl = urlController.buildUrlCollectionPath(`${path}/${entityId}`);
327
- navigate(fullScreenUrl, { state: null });
328
- } else {
329
- const fullScreenUrl = urlController.buildUrlCollectionPath(path);
330
- navigate(fullScreenUrl + "#new", { state: null });
331
- }
332
- }}>
333
- <Maximize2Icon/>
334
- </IconButton>
335
- )}
336
- onTabChange={({
337
- entityId: tabEntityId,
338
- selectedTab,
339
- collection: paramCollection
340
- }) => {
341
- if (collection?.openEntityMode === "dialog" || paramCollection?.openEntityMode === "dialog") {
342
- return;
343
- }
344
- if (tabEntityId) {
345
- sidePanelController.replace({
346
- path,
347
- entityId: tabEntityId,
348
- selectedTab,
349
- updateUrl: true,
350
- collection: paramCollection ?? collection
351
- });
352
- }
353
- }}
354
- formProps={formProps}
355
- />
356
- }
357
- </ErrorBoundary>
358
-
359
- </>
360
- );
361
- }
@@ -1,80 +0,0 @@
1
- import type { SidePanelController } from "@rebasepro/cms-types";
2
- import React from "react";
3
- import { useBuildSidePanel } from "../hooks/useBuildSidePanel";
4
- import { useBuildSideDialogsController } from "../hooks/useBuildSideDialogsController";
5
- import { SidePanelControllerContext } from "../hooks/useSidePanel";
6
- import { SideDialogsControllerContext } from "../contexts/SideDialogsControllerContext";
7
- import { BreadcrumbsProvider } from "../contexts/BreacrumbsContext";
8
- import { useBreadcrumbsController } from "../hooks/useBreadcrumbsController";
9
- import { useCollectionRegistryController } from "../hooks/navigation/contexts/CollectionRegistryContext";
10
- import { useUrlController } from "../hooks/navigation/contexts/UrlContext";
11
- import { useNavigationStateController } from "../hooks/navigation/contexts/NavigationStateContext";
12
- import { useAuthController, useBridgeRegistration, NavigationBlockerProvider } from "@rebasepro/app";
13
-
14
- /**
15
- * Provider that builds the SidePanelController and makes it available
16
- * via the SidePanelControllerContext from @rebasepro/app.
17
- *
18
- * After the admin extraction refactor, `useBuildSidePanel` lives
19
- * in the admin package while the context it feeds into lives in core.
20
- * This provider bridges the two: place it inside the `<Rebase>` tree and
21
- * above any component that calls `useSidePanel()`.
22
- *
23
- * Also auto-registers the side entity controller and breadcrumbs into the
24
- * self-assembling Studio bridge (when a StudioBridgeRegistryProvider is
25
- * mounted above in the tree).
26
- *
27
- * @example
28
- * ```tsx
29
- * <Rebase ...>
30
- * {({ loading }) => (
31
- * <SidePanelProvider>
32
- * <RebaseRoutes>
33
- * ...
34
- * </RebaseRoutes>
35
- * </SidePanelProvider>
36
- * )}
37
- * </Rebase>
38
- * ```
39
- *
40
- * @group Components
41
- */
42
- export function SidePanelProvider({ children }: { children: React.ReactNode }) {
43
- const collectionRegistryController = useCollectionRegistryController();
44
- const urlController = useUrlController();
45
- const navigationStateController = useNavigationStateController();
46
- const sideDialogsController = useBuildSideDialogsController();
47
- const authController = useAuthController();
48
-
49
- const sidePanelController = useBuildSidePanel(
50
- collectionRegistryController,
51
- urlController,
52
- navigationStateController,
53
- sideDialogsController,
54
- authController
55
- );
56
-
57
- return (
58
- <NavigationBlockerProvider>
59
- <BreadcrumbsProvider>
60
- <SideDialogsControllerContext.Provider value={sideDialogsController}>
61
- <SidePanelControllerContext.Provider value={sidePanelController}>
62
- <BridgeAutoRegistrar sidePanelController={sidePanelController}/>
63
- {children}
64
- </SidePanelControllerContext.Provider>
65
- </SideDialogsControllerContext.Provider>
66
- </BreadcrumbsProvider>
67
- </NavigationBlockerProvider>
68
- );
69
- }
70
-
71
- /**
72
- * Internal component that auto-registers side entity and breadcrumbs
73
- * into the Studio bridge. Must be a child of BreadcrumbsProvider.
74
- */
75
- function BridgeAutoRegistrar({ sidePanelController }: { sidePanelController: SidePanelController }) {
76
- const breadcrumbs = useBreadcrumbsController();
77
- useBridgeRegistration("sidePanelController", sidePanelController);
78
- useBridgeRegistration("breadcrumbs", breadcrumbs);
79
- return null;
80
- }