@rebasepro/cms 0.17.3 → 0.18.0

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,66 +0,0 @@
1
- import React, { useRef } from "react";
2
- import { Highlight, themes } from "prism-react-renderer";
3
- import { useModeController } from "@rebasepro/app";
4
-
5
- export function JsonPreviewBinding({ values }: { values: object }) {
6
- const code = JSON.stringify(values, null, "\t");
7
- const { mode } = useModeController();
8
- const preRef = useRef<HTMLPreElement>(null);
9
-
10
- // Global keydown handler
11
- // const handleGlobalKeyDown = useCallback((e: KeyboardEvent) => {
12
- // // Check for Control (Windows/Linux) or Command (macOS) + "a":
13
- // if ((e.ctrlKey || e.metaKey) && e.key.toLowerCase() === "a") {
14
- // // If our code view is mounted, perform selection
15
- // if (preRef.current) {
16
- // e.preventDefault();
17
- // e.stopPropagation();
18
- //
19
- // const selection = window.getSelection();
20
- // const range = document.createRange();
21
- // range.selectNodeContents(preRef.current);
22
- // if (selection) {
23
- // selection.removeAllRanges();
24
- // selection.addRange(range);
25
- // }
26
- // }
27
- // }
28
- // }, []);
29
-
30
- // // Attach the global keydown listener when component mounts,
31
- // // and remove it when it unmounts.
32
- // useEffect(() => {
33
- // document.addEventListener("keydown", handleGlobalKeyDown);
34
- // return () => {
35
- // document.removeEventListener("keydown", handleGlobalKeyDown);
36
- // };
37
- // }, [handleGlobalKeyDown]);
38
-
39
- return (
40
- <Highlight
41
- theme={mode === "dark" ? themes.vsDark : themes.github}
42
- code={code}
43
- language="json"
44
- >
45
- {({ style, tokens, getLineProps, getTokenProps }) => (
46
- <pre
47
- // Bind the ref to our pre element so we can select its contents.
48
- ref={preRef}
49
- style={{
50
- ...style,
51
- backgroundColor: "inherit"
52
- }}
53
- className="max-w-6xl mx-auto p-8 rounded-xs text-sm"
54
- >
55
- {tokens.map((line, i) => (
56
- <div key={i} {...getLineProps({ line })} className="text-wrap">
57
- {line.map((token, key) => (
58
- <span key={key} {...getTokenProps({ token })} className="word-break"/>
59
- ))}
60
- </div>
61
- ))}
62
- </pre>
63
- )}
64
- </Highlight>
65
- );
66
- }
@@ -1,336 +0,0 @@
1
- import type { Properties } from "@rebasepro/types";
2
- import type { Property } from "@rebasepro/types";
3
- import React from "react";
4
- import { defaultBorderMixin, Typography } from "@rebasepro/ui";
5
- import { PropertyPreview } from "../preview";
6
- import { PreviewSize } from "../types/components/PropertyPreviewProps";
7
- import { getValueInPath } from "@rebasepro/utils";
8
-
9
- /**
10
- * Build a readable label for a path and resolve the property
11
- * Supports map and array (including arrays of maps)
12
- */
13
- export function buildPropertyLabelAndGetProperty(
14
- properties: Properties,
15
- key: string
16
- ): { label: string; property: Property | undefined } {
17
- if (!key) return {
18
- label: "",
19
- property: undefined
20
- };
21
-
22
- // Parse "a[0].b.c[2]" -> ["a", 0, "b", "c", 2]
23
- const segments: (string | number)[] = [];
24
- const re = /([^[.\]]+)|\[(\d+)\]/g;
25
- let m: RegExpExecArray | null;
26
- while ((m = re.exec(key)) !== null) {
27
- if (m[1] !== undefined) segments.push(m[1]);
28
- else if (m[2] !== undefined) segments.push(Number(m[2]));
29
- }
30
-
31
- let currentProps: Properties | undefined = properties;
32
- let currentProp: Property | undefined;
33
- let lastLabel = "";
34
-
35
- const getArrayOfProp = (p?: Property): Property | undefined => {
36
- if (!p || p.type !== "array") return undefined;
37
- return Array.isArray(p.of) ? (p.of[0] as Property) : (p.of as Property | undefined);
38
- };
39
-
40
- for (const seg of segments) {
41
- if (typeof seg === "number") {
42
- // Last segment label should be the index itself
43
- lastLabel = `[${seg}]`;
44
-
45
- // Move schema context into the array element
46
- if (currentProp?.type === "array") {
47
- currentProp = getArrayOfProp(currentProp);
48
- if (currentProp?.type === "map" && currentProp.properties) {
49
- currentProps = currentProp.properties as Properties;
50
- } else {
51
- currentProps = undefined;
52
- }
53
- } else {
54
- // Index without array schema context
55
- currentProp = undefined;
56
- currentProps = undefined;
57
- }
58
- continue;
59
- }
60
-
61
- // seg is a string key
62
- if (currentProps && (currentProps as Record<string, Property>)[seg]) {
63
- const nextProp = (currentProps as Record<string, Property>)[seg];
64
- currentProp = nextProp;
65
- // Last segment label should be the property name (or the raw key)
66
- lastLabel = nextProp.name || String(seg);
67
-
68
- if (nextProp.type === "map" && nextProp.properties) {
69
- currentProps = nextProp.properties as Properties;
70
- } else if (nextProp.type === "array") {
71
- // Keep array prop; the next segment (index) will step into its element schema
72
- currentProps = undefined;
73
- } else {
74
- currentProps = undefined;
75
- }
76
- } else {
77
- // Unknown key or no schema context
78
- currentProp = undefined;
79
- currentProps = undefined;
80
- lastLabel = String(seg);
81
- }
82
- }
83
-
84
- return {
85
- label: lastLabel,
86
- property: currentProp
87
- };
88
- }
89
-
90
- const pathEndsWithIndex = (p: string) => /\[\d+\]$/.test(p);
91
-
92
- /**
93
- * Improved simple layout for nested changes:
94
- * - Map or Array-of-Map -> section header + indented rows
95
- * - Leaf or Array-of-Primitives -> single row with label and value
96
- */
97
- export const PropertyCollectionView = ({
98
- data,
99
- properties,
100
- baseKey = "",
101
- suppressHeader = false,
102
- size = "small"
103
- }: {
104
- data: unknown;
105
- properties: Properties;
106
- baseKey?: string;
107
- suppressHeader?: boolean;
108
- size?: PreviewSize;
109
- }) => {
110
-
111
- const isTopLevel = !!baseKey && !baseKey.includes(".") && !baseKey.includes("[");
112
-
113
- // Arrays
114
- if (Array.isArray(data)) {
115
- const {
116
- label: arrayLabel,
117
- property
118
- } = baseKey
119
- ? buildPropertyLabelAndGetProperty(properties, baseKey)
120
- : {
121
- label: "",
122
- property: undefined as Property | undefined
123
- };
124
-
125
- const ofProp = property?.type === "array"
126
- ? (Array.isArray(property.of) ? property.of[0] : property.of) as Property | undefined
127
- : undefined;
128
-
129
- const isArrayOfMaps = ofProp?.type === "map";
130
- const isArrayOfPrimitives = property?.type === "array" && ofProp && ofProp.type !== "map";
131
-
132
- // Many-cardinality relation: property type is "relation" but value is an array
133
- // Render as a single row via PropertyPreview (which handles relation arrays)
134
- const isRelationArray = property?.type === "relation";
135
-
136
- // Array of primitives or many-relation -> single row
137
- if (baseKey && property && (isArrayOfPrimitives || isRelationArray)) {
138
- return (
139
- <div
140
- className={`grid grid-cols-12 gap-x-4 ${isTopLevel ? "py-4" : "py-2"} items-start ${isTopLevel ? `border-b ${defaultBorderMixin} last:border-b-0` : ""}`}>
141
- <div className="col-span-4 pr-2">
142
- <Typography variant="caption"
143
- color={"secondary"}
144
- component={"span"}
145
- className="break-words">
146
- {arrayLabel}
147
- </Typography>
148
- </div>
149
- <div className="col-span-8">
150
- <PropertyPreview propertyKey={baseKey}
151
- value={data}
152
- property={property}
153
- size={size}/>
154
- </div>
155
- </div>
156
- );
157
- }
158
-
159
- // Array of maps or unknown -> array header + combined item header (MapName [index]) then content
160
- return (
161
- <div className={`${isTopLevel ? "py-4" : "py-1"} ${isTopLevel ? `border-b ${defaultBorderMixin} last:border-b-0` : ""}`}>
162
- {baseKey && arrayLabel && !suppressHeader && (
163
- <Typography variant="caption"
164
- color={"secondary"}
165
- component={"span"}>
166
- {arrayLabel}
167
- </Typography>
168
- )}
169
- <div className={baseKey ? `pl-4 mt-1 border-l ${defaultBorderMixin}` : ""}>
170
- {data.map((item, index) => {
171
- if (item === null || item === undefined) return null;
172
- const currentKey = baseKey ? `${baseKey}[${index}]` : `[${index}]`;
173
-
174
- // Combined header text
175
- const itemHeader = isArrayOfMaps && ofProp?.name
176
- ? `${ofProp.name} [${index}]`
177
- : `[${index}]`;
178
-
179
- return (
180
- <div key={currentKey} className="py-1">
181
- <Typography variant="caption"
182
- color={"secondary"}
183
- component={"span"}>
184
- {itemHeader}
185
- </Typography>
186
- <div className={`pl-4 mt-1 border-l ${defaultBorderMixin}`}>
187
- <PropertyCollectionView
188
- data={item}
189
- properties={properties}
190
- baseKey={currentKey}
191
- suppressHeader={true} // don’t repeat the inner map header
192
- size={size}
193
- />
194
- </div>
195
- </div>
196
- );
197
- })}
198
- </div>
199
- </div>
200
- );
201
- }
202
-
203
- // Objects (maps or plain objects)
204
- if (typeof data === "object" && data !== null) {
205
- const {
206
- label,
207
- property
208
- } = baseKey
209
- ? buildPropertyLabelAndGetProperty(properties, baseKey)
210
- : {
211
- label: "",
212
- property: undefined as Property | undefined
213
- };
214
-
215
- // Non-map leaf-like object -> single row
216
- if (baseKey && (!property || property.type !== "map" || !property.properties)) {
217
- if (!property) return null;
218
- return (
219
- <div
220
- className={`grid grid-cols-12 gap-x-4 ${isTopLevel ? "py-4" : "py-2"} items-start ${isTopLevel ? `border-b ${defaultBorderMixin} last:border-b-0` : ""}`}>
221
- <div className="col-span-4 pr-2">
222
- <Typography variant="caption"
223
- color={"secondary"}
224
- component={"span"}
225
- className="break-words">
226
- {label}
227
- </Typography>
228
- </div>
229
- <div className="col-span-8">
230
- <PropertyPreview propertyKey={baseKey}
231
- value={data}
232
- property={property}
233
- size={size}/>
234
- </div>
235
- </div>
236
- );
237
- }
238
-
239
- // Map with defined properties -> show map header only if not suppressed
240
- const showMapHeader =
241
- baseKey &&
242
- !suppressHeader &&
243
- property?.type === "map" &&
244
- (property.name || !pathEndsWithIndex(baseKey));
245
-
246
- const headerText = property?.name || label;
247
-
248
- return (
249
- <div className={`${isTopLevel ? "py-4" : "py-1"} ${isTopLevel ? `border-b ${defaultBorderMixin} last:border-b-0` : ""}`}>
250
- {showMapHeader && (
251
- <Typography variant="caption"
252
- color={"secondary"}
253
- component={"span"}
254
- >
255
- {headerText}
256
- </Typography>
257
- )}
258
- <div className={baseKey ? `pl-4 mt-1 border-l ${defaultBorderMixin}` : ""}>
259
- {Object.entries(data).map(([key, value]) => {
260
- if (value === null || value === undefined) return null;
261
- if (baseKey === "" && !properties[key]) return null;
262
- const currentKey = baseKey ? `${baseKey}.${key}` : key;
263
- return (
264
- <PropertyCollectionView
265
- key={currentKey}
266
- data={value}
267
- properties={properties}
268
- baseKey={currentKey}
269
- size={size}
270
- />
271
- );
272
- })}
273
- </div>
274
- </div>
275
- );
276
- }
277
-
278
- // Primitives
279
- if (baseKey) {
280
- const {
281
- label,
282
- property
283
- } = buildPropertyLabelAndGetProperty(properties, baseKey);
284
- if (!property) return null;
285
- return (
286
- <div
287
- className={`grid grid-cols-12 gap-x-4 ${isTopLevel ? "py-4" : "py-2"} items-start ${isTopLevel ? `border-b ${defaultBorderMixin} last:border-b-0` : ""}`}>
288
- <div className="col-span-4 pr-2">
289
- <Typography variant="caption"
290
- color={"secondary"}
291
- component={"span"}
292
- className="break-words">
293
- {label}
294
- </Typography>
295
- </div>
296
- <div className="col-span-8">
297
- <PropertyPreview propertyKey={baseKey}
298
- value={data}
299
- property={property}
300
- size={size}/>
301
- </div>
302
- </div>
303
- );
304
- }
305
-
306
- return null;
307
- };
308
-
309
- export function buildDataFromPaths(values: object, paths: string[]): object {
310
- const result = {};
311
- paths.forEach(path => {
312
- const value = getValueInPath(values, path);
313
- if (value === undefined) return;
314
-
315
- // lodash.set would be perfect here
316
- const segments = path.replace(/\[(\d+)\]/g, ".$1").split(".");
317
- let current: Record<string, unknown> = result;
318
- segments.forEach((segment, index) => {
319
- if (index === segments.length - 1) {
320
- current[segment] = value;
321
- } else {
322
- const nextSegment = segments[index + 1];
323
- const isNextAnIndex = /^\d+$/.test(nextSegment);
324
- if (!current[segment]) {
325
- if (isNextAnIndex) {
326
- current[segment] = [];
327
- } else {
328
- current[segment] = {};
329
- }
330
- }
331
- current = current[segment] as Record<string, unknown>;
332
- }
333
- });
334
- });
335
- return result;
336
- }
@@ -1,28 +0,0 @@
1
- import type { Property } from "@rebasepro/types";
2
- import type { PropertyConfig } from "@rebasepro/cms-types";
3
- import { getDefaultFieldConfig } from "./field_configs";
4
- import { getIconForWidget } from "../util/property_utils";
5
-
6
- export function PropertyConfigBadge({
7
- propertyConfig,
8
- disabled,
9
- size = "medium"
10
- }: {
11
- propertyConfig: PropertyConfig | undefined,
12
- disabled?: boolean,
13
- size?: "extraSmall" | "small" | "medium"
14
- }): React.ReactNode {
15
- const sizeClasses = size === "extraSmall" ? "h-5 w-5" : size === "small" ? "h-6 w-6" : "h-8 w-8";
16
- const iconSize = size === "extraSmall" ? 14 : size === "small" ? "smallest" : "small";
17
- const classes = `${sizeClasses} flex-shrink-0 flex items-center justify-center rounded-full shadow-2xs text-white ` + (disabled ? "bg-surface-400 dark:bg-surface-600" : "");
18
-
19
- const defaultPropertyConfig = typeof propertyConfig?.property === "object" ? getDefaultFieldConfig(propertyConfig.property as Property) : undefined;
20
-
21
- return <div
22
- className={classes}
23
- style={{
24
- background: !disabled ? (propertyConfig?.color ?? defaultPropertyConfig?.color ?? "#888") : undefined
25
- }}>
26
- {propertyConfig?.Icon ? getIconForWidget(propertyConfig, iconSize) : getIconForWidget(defaultPropertyConfig, iconSize)}
27
- </div>
28
- }
@@ -1,47 +0,0 @@
1
- import { CopyIcon, IconButton, Tooltip, Typography } from "@rebasepro/ui";
2
- import { useCallback, useState } from "react";
3
-
4
- export function PropertyIdCopyTooltip({
5
- propertyKey,
6
- className,
7
- children
8
- }: {
9
- propertyKey: string,
10
- className?: string,
11
- children: React.ReactNode
12
- }) {
13
- return <Tooltip title={<PropertyIdCopyTooltipContent propertyKey={propertyKey}/>}
14
- delayDuration={800}
15
- side={"top"}
16
- align={"start"}
17
- sideOffset={8}
18
- className={className}>
19
- {children}
20
- </Tooltip>
21
-
22
- }
23
-
24
- export function PropertyIdCopyTooltipContent({ propertyKey }: { propertyKey: string }) {
25
-
26
- const [copied, setCopied] = useState(false);
27
-
28
- return (
29
- <div className={"flex flex-row gap-2 items-center justify-center text-on-surface"}>
30
- <div>
31
- <Typography variant={"caption"} className={"min-w-20 text-on-surface-variant opacity-80"}
32
- color={"inherit"}>{copied ? "Copied" : "Property ID"}</Typography>
33
- <Typography variant={"caption"} className={"text-on-surface"}><code>{propertyKey}</code></Typography>
34
- </div>
35
- <IconButton size={"small"}>
36
- <CopyIcon
37
- className={"text-on-surface"}
38
- onClick={useCallback(() => {
39
- navigator.clipboard.writeText(propertyKey);
40
- setCopied(true);
41
- setTimeout(() => setCopied(false), 2000);
42
- }, [propertyKey])}
43
- />
44
- </IconButton>
45
- </div>
46
- );
47
- }
@@ -1,44 +0,0 @@
1
- import React from "react";
2
- import {
3
- useRebaseRegistry,
4
- useAuthController
5
- } from "@rebasepro/app";
6
- import { CircularProgressCenter } from "@rebasepro/ui";
7
- import { LoginView } from "@rebasepro/app";
8
- import type { AuthControllerExtended } from "@rebasepro/cms-types";
9
-
10
- /**
11
- * Auth gate component that handles the authentication flow.
12
- *
13
- * - Shows a loading spinner while `authController.initialLoading` is true.
14
- * - Shows the login view when no user is authenticated.
15
- * - Renders `children` when a user is authenticated.
16
- *
17
- * **Independently usable**: Use this alone when you want auth gating
18
- * without the full admin layout or navigation.
19
- *
20
- * @example
21
- * ```tsx
22
- * <RebaseAuthGate>
23
- * <MyCustomApp />
24
- * </RebaseAuthGate>
25
- * ```
26
- */
27
- export function RebaseAuthGate({ children }: { children: React.ReactNode }) {
28
- const registry = useRebaseRegistry();
29
- const authController = useAuthController();
30
-
31
-
32
- if (authController?.initialLoading) {
33
- return <CircularProgressCenter size={"large"}/>;
34
- }
35
-
36
- if (!authController?.user) {
37
- const ActiveLoginView = registry.authConfig?.loginView ?? (
38
- <LoginView authController={authController as AuthControllerExtended}/>
39
- );
40
- return <>{ActiveLoginView}</>;
41
- }
42
-
43
- return <>{children}</>;
44
- }
@@ -1,30 +0,0 @@
1
- import React, { useLayoutEffect } from "react";
2
- import { useRebaseRegistryDispatch } from "@rebasepro/app";
3
- import type { RebaseCMSConfig } from "@rebasepro/cms-types";
4
-
5
- /**
6
- * Declarative component to configure the admin in Rebase.
7
- * Renders nothing — purely registers config into the RebaseRegistry.
8
- *
9
- * When `collectionEditor` is provided, the built-in visual schema editor
10
- * is auto-wired as a native feature (slots, provider, Studio view) without
11
- * needing any external plugin.
12
- */
13
- export function RebaseCMS({ collections, views, homePage, entityViews, collectionViews, entityActions, collectionEditor, navigationGroupMappings, basePath }: RebaseCMSConfig) {
14
- const dispatch = useRebaseRegistryDispatch();
15
-
16
- useLayoutEffect(() => {
17
- dispatch.registerAdmin({ collections,
18
- views,
19
- homePage,
20
- entityViews,
21
- collectionViews,
22
- entityActions,
23
- collectionEditor,
24
- navigationGroupMappings,
25
- basePath });
26
- return () => dispatch.unregisterAdmin();
27
- }, [dispatch, collections, views, homePage, entityViews, collectionViews, entityActions, collectionEditor, navigationGroupMappings, basePath]);
28
-
29
- return null;
30
- }
@@ -1,80 +0,0 @@
1
- import React from "react";
2
- import { Outlet } from "react-router";
3
- import {
4
- useAdminModeController,
5
- useComponentOverride,
6
- useRebaseRegistry
7
- } from "@rebasepro/app";
8
-
9
- import { Scaffold } from "./app/Scaffold";
10
- import { Drawer } from "./app/Drawer";
11
- import { SideDialogs } from "./SideDialogs";
12
- import { AdminModeSyncer } from "./AdminModeSyncer";
13
- import type { AppView } from "@rebasepro/cms-types";
14
-
15
- export interface RebaseLayoutProps {
16
- /** Title shown in the drawer. */
17
- title?: string;
18
- /** Top bar. Only rendered if provided — pass `<AppBar/>` for the default one. */
19
- appBar?: React.ReactNode;
20
- /** Custom Drawer to override the default. */
21
- drawer?: React.ReactNode;
22
- /** Expand the drawer while the pointer is over it. On by default; pass `false` to opt out. Not a load-time default — that is `defaultDrawerOpen`. */
23
- autoOpenDrawer?: boolean;
24
- /** Start with the drawer expanded instead of collapsed to icons. Ignored on small layouts. */
25
- defaultDrawerOpen?: boolean;
26
- /** Path to the logo shown in the drawer and top bar. Falls back to the Rebase mark. */
27
- logo?: string;
28
- /** Dev views passed to AdminModeSyncer (resolved from RebaseNavigation). */
29
- devViews?: AppView[];
30
- }
31
-
32
- /**
33
- * Layout layer — provides the Scaffold, Drawer, and SideDialogs.
34
- *
35
- * Wraps the route outlet with the standard Rebase admin layout.
36
- * Override the drawer via props; pass `appBar` to add a top bar (there is
37
- * none by default — the drawer owns navigation and user actions).
38
- *
39
- * **Independently usable**: Use this when you want the Rebase layout
40
- * without its default route definitions.
41
- *
42
- * @example
43
- * ```tsx
44
- * <RebaseLayout title="My Admin" appBar={<AppBar/>}>
45
- * <Route path="/" element={<MyHomePage />} />
46
- * <Route path="/custom" element={<CustomView />} />
47
- * </RebaseLayout>
48
- * ```
49
- */
50
- export function RebaseLayout(props: RebaseLayoutProps) {
51
- const {
52
- title = "Rebase",
53
- appBar,
54
- drawer,
55
- autoOpenDrawer = true,
56
- defaultDrawerOpen = false,
57
- logo,
58
- devViews = []
59
- } = props;
60
-
61
- const adminModeController = useAdminModeController();
62
- const ResolvedDrawer = useComponentOverride("Shell.Drawer", Drawer);
63
-
64
- const ActiveDrawer = drawer ?? (
65
- <ResolvedDrawer
66
- title={title}
67
- logoDestination={adminModeController.mode === "studio" ? "/s" : "/"}
68
- />
69
- );
70
-
71
- return (
72
- <Scaffold autoOpenDrawer={autoOpenDrawer} defaultDrawerOpen={defaultDrawerOpen} logo={logo}>
73
- <AdminModeSyncer devViews={devViews}/>
74
- {appBar}
75
- {ActiveDrawer}
76
- <Outlet/>
77
- <SideDialogs/>
78
- </Scaffold>
79
- );
80
- }