@rebasepro/admin 0.5.0 → 0.6.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 (337) hide show
  1. package/dist/CollectionEditorDialog-jA-PLh6N.js +3549 -0
  2. package/dist/CollectionEditorDialog-jA-PLh6N.js.map +1 -0
  3. package/dist/CollectionsStudioView-UKouBPOm.js +170 -0
  4. package/dist/CollectionsStudioView-UKouBPOm.js.map +1 -0
  5. package/dist/PropertyEditView-DEUddmg_.js +3660 -0
  6. package/dist/PropertyEditView-DEUddmg_.js.map +1 -0
  7. package/dist/collection_editor/ConfigControllerProvider.d.ts +2 -2
  8. package/dist/collection_editor/ui/AddKanbanColumnAction.d.ts +2 -1
  9. package/dist/collection_editor/ui/CollectionViewHeaderAction.d.ts +2 -1
  10. package/dist/collection_editor/ui/EditorCollectionAction.d.ts +1 -1
  11. package/dist/collection_editor/ui/EditorCollectionActionStart.d.ts +1 -1
  12. package/dist/collection_editor/ui/EditorEntityAction.d.ts +1 -1
  13. package/dist/collection_editor/ui/HomePageEditorCollectionAction.d.ts +1 -1
  14. package/dist/collection_editor/ui/KanbanSetupAction.d.ts +2 -1
  15. package/dist/collection_editor/ui/MissingReferenceWidget.d.ts +1 -1
  16. package/dist/collection_editor/ui/NewCollectionButton.d.ts +1 -1
  17. package/dist/collection_editor/ui/NewCollectionCard.d.ts +1 -1
  18. package/dist/collection_editor/ui/PropertyAddColumnComponent.d.ts +1 -1
  19. package/dist/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.d.ts +1 -1
  20. package/dist/collection_editor/ui/collection_editor/AIModifiedPathsContext.d.ts +1 -1
  21. package/dist/collection_editor/ui/collection_editor/CollectionDetailsForm.d.ts +2 -1
  22. package/dist/collection_editor/ui/collection_editor/CollectionEditorDialog.d.ts +2 -2
  23. package/dist/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.d.ts +2 -2
  24. package/dist/collection_editor/ui/collection_editor/CollectionJsonImportDialog.d.ts +2 -1
  25. package/dist/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.d.ts +1 -1
  26. package/dist/collection_editor/ui/collection_editor/CollectionRLSTab.d.ts +2 -1
  27. package/dist/collection_editor/ui/collection_editor/CollectionRelationsTab.d.ts +2 -1
  28. package/dist/collection_editor/ui/collection_editor/CollectionStudioView.d.ts +2 -1
  29. package/dist/collection_editor/ui/collection_editor/CollectionYupValidation.d.ts +1 -9
  30. package/dist/collection_editor/ui/collection_editor/CollectionsStudioView.d.ts +2 -1
  31. package/dist/collection_editor/ui/collection_editor/DisplaySettingsForm.d.ts +2 -1
  32. package/dist/collection_editor/ui/collection_editor/EntityActionsEditTab.d.ts +2 -1
  33. package/dist/collection_editor/ui/collection_editor/EntityActionsSelectDialog.d.ts +2 -1
  34. package/dist/collection_editor/ui/collection_editor/EntityCustomViewsSelectDialog.d.ts +2 -1
  35. package/dist/collection_editor/ui/collection_editor/EnumForm.d.ts +2 -1
  36. package/dist/collection_editor/ui/collection_editor/GeneralSettingsForm.d.ts +2 -1
  37. package/dist/collection_editor/ui/collection_editor/GetCodeDialog.d.ts +2 -1
  38. package/dist/collection_editor/ui/collection_editor/KanbanConfigSection.d.ts +2 -1
  39. package/dist/collection_editor/ui/collection_editor/LayoutModeSwitch.d.ts +1 -1
  40. package/dist/collection_editor/ui/collection_editor/PropertyEditView.d.ts +4 -4
  41. package/dist/collection_editor/ui/collection_editor/PropertyFieldPreview.d.ts +2 -2
  42. package/dist/collection_editor/ui/collection_editor/PropertyTree.d.ts +2 -2
  43. package/dist/collection_editor/ui/collection_editor/SubcollectionsEditTab.d.ts +2 -1
  44. package/dist/collection_editor/ui/collection_editor/SwitchControl.d.ts +2 -1
  45. package/dist/collection_editor/ui/collection_editor/ViewModeSwitch.d.ts +1 -1
  46. package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportDataPreview.d.ts +1 -1
  47. package/dist/collection_editor/ui/collection_editor/import/CollectionEditorImportMapping.d.ts +3 -2
  48. package/dist/collection_editor/ui/collection_editor/properties/BlockPropertyField.d.ts +2 -1
  49. package/dist/collection_editor/ui/collection_editor/properties/BooleanPropertyField.d.ts +2 -1
  50. package/dist/collection_editor/ui/collection_editor/properties/DateTimePropertyField.d.ts +2 -1
  51. package/dist/collection_editor/ui/collection_editor/properties/EnumPropertyField.d.ts +2 -1
  52. package/dist/collection_editor/ui/collection_editor/properties/KeyValuePropertyField.d.ts +2 -1
  53. package/dist/collection_editor/ui/collection_editor/properties/MapPropertyField.d.ts +2 -1
  54. package/dist/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.d.ts +2 -1
  55. package/dist/collection_editor/ui/collection_editor/properties/NumberPropertyField.d.ts +2 -1
  56. package/dist/collection_editor/ui/collection_editor/properties/ReferencePropertyField.d.ts +3 -2
  57. package/dist/collection_editor/ui/collection_editor/properties/RelationPropertyField.d.ts +2 -1
  58. package/dist/collection_editor/ui/collection_editor/properties/RepeatPropertyField.d.ts +2 -1
  59. package/dist/collection_editor/ui/collection_editor/properties/StoragePropertyField.d.ts +2 -1
  60. package/dist/collection_editor/ui/collection_editor/properties/StringPropertyField.d.ts +2 -1
  61. package/dist/collection_editor/ui/collection_editor/properties/UrlPropertyField.d.ts +2 -1
  62. package/dist/collection_editor/ui/collection_editor/properties/VectorPropertyField.d.ts +2 -1
  63. package/dist/collection_editor/ui/collection_editor/properties/advanced/AdvancedPropertyValidation.d.ts +2 -1
  64. package/dist/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.d.ts +2 -1
  65. package/dist/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.d.ts +1 -1
  66. package/dist/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.d.ts +2 -1
  67. package/dist/collection_editor/ui/collection_editor/properties/validation/ArrayPropertyValidation.d.ts +2 -1
  68. package/dist/collection_editor/ui/collection_editor/properties/validation/GeneralPropertyValidation.d.ts +2 -1
  69. package/dist/collection_editor/ui/collection_editor/properties/validation/NumberPropertyValidation.d.ts +2 -1
  70. package/dist/collection_editor/ui/collection_editor/properties/validation/StringPropertyValidation.d.ts +2 -1
  71. package/dist/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.d.ts +1 -1
  72. package/dist/collection_editor_ui.js +4 -11
  73. package/dist/components/ArrayContainer.d.ts +3 -3
  74. package/dist/components/ClearFilterSortButton.d.ts +1 -1
  75. package/dist/components/CollectionEditorDialogs.d.ts +2 -1
  76. package/dist/components/CollectionPanel.d.ts +2 -27
  77. package/dist/components/DefaultAppBar.d.ts +1 -1
  78. package/dist/components/DefaultDrawer.d.ts +4 -4
  79. package/dist/components/DeleteEntityDialog.d.ts +2 -1
  80. package/dist/components/DrawerNavigationGroup.d.ts +1 -1
  81. package/dist/components/DrawerNavigationItem.d.ts +1 -1
  82. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +1 -1
  83. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -1
  84. package/dist/components/EntityCollectionTable/fields/TableMultipleRelationField.d.ts +3 -3
  85. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -3
  86. package/dist/components/EntityCollectionTable/fields/TableRelationField.d.ts +3 -3
  87. package/dist/components/EntityCollectionTable/fields/TableRelationSelectorField.d.ts +2 -1
  88. package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +2 -2
  89. package/dist/components/EntityCollectionTable/fields/VirtualTableDateField.d.ts +1 -1
  90. package/dist/components/EntityCollectionTable/fields/VirtualTableInput.d.ts +2 -1
  91. package/dist/components/EntityCollectionTable/fields/VirtualTableNumberInput.d.ts +2 -1
  92. package/dist/components/EntityCollectionTable/fields/VirtualTableSelect.d.ts +1 -1
  93. package/dist/components/EntityCollectionTable/fields/VirtualTableSwitch.d.ts +2 -1
  94. package/dist/components/EntityCollectionTable/fields/VirtualTableUserSelect.d.ts +1 -1
  95. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -1
  96. package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +1 -1
  97. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +4 -3
  98. package/dist/components/EntityCollectionView/Board.d.ts +2 -1
  99. package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +1 -1
  100. package/dist/components/EntityCollectionView/BoardSortableList.d.ts +1 -1
  101. package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +1 -1
  102. package/dist/components/EntityCollectionView/EntityCard.d.ts +2 -1
  103. package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +1 -1
  104. package/dist/components/EntityCollectionView/EntityCollectionCardView.d.ts +1 -1
  105. package/dist/components/EntityCollectionView/EntityCollectionListView.d.ts +1 -1
  106. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +0 -24
  107. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +1 -1
  108. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +2 -1
  109. package/dist/components/EntityCollectionView/FilterPresetsButton.d.ts +2 -1
  110. package/dist/components/EntityCollectionView/FiltersDialog.d.ts +2 -1
  111. package/dist/components/EntityCollectionView/SplitListView.d.ts +1 -1
  112. package/dist/components/EntityCollectionView/ViewModeToggle.d.ts +2 -1
  113. package/dist/components/EntityDetailView.d.ts +1 -1
  114. package/dist/components/EntityEditView.d.ts +2 -2
  115. package/dist/components/EntityEditViewFormActions.d.ts +2 -1
  116. package/dist/components/EntityJsonPreview.d.ts +2 -1
  117. package/dist/components/EntityPreview.d.ts +3 -3
  118. package/dist/components/EntitySidePanel.d.ts +2 -1
  119. package/dist/components/EntityView.d.ts +2 -1
  120. package/dist/components/FieldCaption.d.ts +1 -1
  121. package/dist/components/HomePage/ContentHomePage.d.ts +1 -1
  122. package/dist/components/HomePage/FavouritesView.d.ts +1 -1
  123. package/dist/components/HomePage/HomePageDnD.d.ts +4 -4
  124. package/dist/components/HomePage/NavigationCard.d.ts +1 -1
  125. package/dist/components/HomePage/NavigationCardBinding.d.ts +2 -1
  126. package/dist/components/HomePage/NavigationGroup.d.ts +2 -2
  127. package/dist/components/HomePage/RenameGroupDialog.d.ts +2 -1
  128. package/dist/components/HomePage/SmallNavigationCard.d.ts +1 -1
  129. package/dist/components/PropertyCollectionView.d.ts +2 -1
  130. package/dist/components/PropertyIdCopyTooltip.d.ts +2 -2
  131. package/dist/components/RebaseAuthGate.d.ts +1 -1
  132. package/dist/components/RebaseLayout.d.ts +1 -1
  133. package/dist/components/RebaseNavigation.d.ts +1 -1
  134. package/dist/components/RebaseRouteDefs.d.ts +1 -1
  135. package/dist/components/RebaseShell.d.ts +1 -1
  136. package/dist/components/ReferenceTable/EntitySelectionTable.d.ts +1 -1
  137. package/dist/components/ReferenceWidget.d.ts +2 -1
  138. package/dist/components/SearchIconsView.d.ts +2 -1
  139. package/dist/components/SelectableTable/SelectableTable.d.ts +2 -2
  140. package/dist/components/SelectableTable/filters/BooleanFilterField.d.ts +2 -1
  141. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +2 -1
  142. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
  143. package/dist/components/SelectableTable/filters/RelationFilterField.d.ts +2 -1
  144. package/dist/components/SelectableTable/filters/StringNumberFilterField.d.ts +2 -1
  145. package/dist/components/SideDialogs.d.ts +1 -1
  146. package/dist/components/SideEntityProvider.d.ts +1 -1
  147. package/dist/components/admin/CreationResultDialog.d.ts +2 -1
  148. package/dist/components/app/AppBar.d.ts +1 -1
  149. package/dist/components/app/Drawer.d.ts +1 -1
  150. package/dist/components/common/default_entity_actions.d.ts +2 -1
  151. package/dist/components/history/EntityHistoryEntry.d.ts +1 -1
  152. package/dist/components/history/EntityHistoryView.d.ts +1 -1
  153. package/dist/components/history/LastEditedByFormAction.d.ts +2 -1
  154. package/dist/components/history/LastEditedByIndicator.d.ts +2 -1
  155. package/dist/components/history/UserChip.d.ts +1 -1
  156. package/dist/data_export/export/BasicExportAction.d.ts +2 -1
  157. package/dist/data_export/export/ExportCollectionAction.d.ts +1 -1
  158. package/dist/data_import/components/DataNewPropertiesMapping.d.ts +1 -1
  159. package/dist/data_import/components/ImportFileUpload.d.ts +1 -1
  160. package/dist/data_import/components/ImportNewPropertyFieldPreview.d.ts +2 -1
  161. package/dist/data_import/components/ImportSaveInProgress.d.ts +1 -1
  162. package/dist/data_import/import/ImportCollectionAction.d.ts +4 -3
  163. package/dist/editor/components/SlashCommandMenu.d.ts +2 -1
  164. package/dist/editor/editor.d.ts +1 -1
  165. package/dist/editor/selectors/color-selector.d.ts +1 -1
  166. package/dist/editor/selectors/link-selector.d.ts +1 -1
  167. package/dist/editor/selectors/node-selector.d.ts +1 -1
  168. package/dist/editor/selectors/text-buttons.d.ts +1 -1
  169. package/dist/editor.js +2621 -3574
  170. package/dist/editor.js.map +1 -1
  171. package/dist/form/EntityForm.d.ts +2 -1
  172. package/dist/form/EntityFormActions.d.ts +2 -1
  173. package/dist/form/components/FieldHelperText.d.ts +1 -1
  174. package/dist/form/components/FormEntry.d.ts +1 -1
  175. package/dist/form/components/FormLayout.d.ts +1 -1
  176. package/dist/form/components/LabelWithIconAndTooltip.d.ts +1 -1
  177. package/dist/form/components/LocalChangesMenu.d.ts +2 -1
  178. package/dist/form/components/StorageItemPreview.d.ts +2 -1
  179. package/dist/form/components/StorageUploadProgress.d.ts +2 -1
  180. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +2 -1
  181. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +2 -1
  182. package/dist/form/field_bindings/BlockFieldBinding.d.ts +2 -1
  183. package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +2 -1
  184. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +2 -1
  185. package/dist/form/field_bindings/MapFieldBinding.d.ts +2 -1
  186. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +2 -1
  187. package/dist/form/field_bindings/MultiSelectFieldBinding.d.ts +2 -1
  188. package/dist/form/field_bindings/MultipleRelationFieldBinding.d.ts +2 -1
  189. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +2 -1
  190. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +2 -1
  191. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -1
  192. package/dist/form/field_bindings/RelationFieldBinding.d.ts +2 -1
  193. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +2 -1
  194. package/dist/form/field_bindings/SelectFieldBinding.d.ts +2 -1
  195. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -2
  196. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +2 -1
  197. package/dist/form/field_bindings/TextFieldBinding.d.ts +2 -1
  198. package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +2 -1
  199. package/dist/form/field_bindings/VectorFieldBinding.d.ts +2 -1
  200. package/dist/history-BL49TIDb.js +311 -0
  201. package/dist/history-BL49TIDb.js.map +1 -0
  202. package/dist/hooks/navigation/useBuildNavigationStateController.d.ts +0 -2
  203. package/dist/hooks/navigation/useNavigationResolution.d.ts +5 -6
  204. package/dist/hooks/navigation/useResolvedCollections.d.ts +0 -2
  205. package/dist/hooks/useBreadcrumbsController.d.ts +2 -32
  206. package/dist/index.js +2 -3393
  207. package/dist/markdown-CklalUUk.js +526 -0
  208. package/dist/markdown-CklalUUk.js.map +1 -0
  209. package/dist/preview/components/ArrayEnumPreview.d.ts +2 -1
  210. package/dist/preview/components/EmptyValue.d.ts +2 -1
  211. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  212. package/dist/preview/components/ImagePreview.d.ts +2 -1
  213. package/dist/preview/components/ReferencePreview.d.ts +2 -1
  214. package/dist/preview/components/RelationPreview.d.ts +2 -1
  215. package/dist/preview/components/StorageThumbnail.d.ts +1 -1
  216. package/dist/preview/components/UserPreview.d.ts +6 -3
  217. package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +2 -1
  218. package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +1 -1
  219. package/dist/preview/property_previews/ArrayOfRelationsPreview.d.ts +1 -1
  220. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +2 -1
  221. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +2 -1
  222. package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +2 -1
  223. package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +1 -1
  224. package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +2 -1
  225. package/dist/preview/property_previews/MapPropertyPreview.d.ts +3 -2
  226. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +5 -4
  227. package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
  228. package/dist/routes/RebaseRoute.d.ts +1 -1
  229. package/dist/src-BJ8fkM8y.js +24010 -0
  230. package/dist/src-BJ8fkM8y.js.map +1 -0
  231. package/dist/types/components/PropertyPreviewProps.d.ts +4 -0
  232. package/dist/types/components/formex.d.ts +1 -40
  233. package/dist/types/fields.d.ts +9 -1
  234. package/dist/util/navigation_utils.d.ts +2 -1
  235. package/dist/util/previews.d.ts +5 -0
  236. package/dist/util/property_utils.d.ts +1 -1
  237. package/package.json +29 -26
  238. package/src/collection_editor/ConfigControllerProvider.tsx +10 -7
  239. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +2 -1
  240. package/src/collection_editor/ui/EditorCollectionAction.tsx +2 -1
  241. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +2 -1
  242. package/src/collection_editor/ui/EditorEntityAction.tsx +2 -1
  243. package/src/collection_editor/ui/KanbanSetupAction.tsx +2 -1
  244. package/src/collection_editor/ui/MissingReferenceWidget.tsx +2 -1
  245. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +2 -1
  246. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +2 -3
  247. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +0 -1
  248. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +8 -4
  249. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +2 -1
  250. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +1 -1
  251. package/src/collection_editor/ui/collection_editor/properties/RelationPropertyField.tsx +5 -2
  252. package/src/collection_editor/useLocalCollectionsConfigController.tsx +7 -2
  253. package/src/collection_editor/validateCollectionJson.ts +2 -2
  254. package/src/components/CollectionPanel.tsx +51 -25
  255. package/src/components/DefaultAppBar.tsx +1 -2
  256. package/src/components/DefaultDrawer.tsx +3 -2
  257. package/src/components/DrawerNavigationGroup.tsx +3 -2
  258. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -9
  259. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +1 -1
  260. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +1 -0
  261. package/src/components/EntityCollectionView/Board.tsx +10 -8
  262. package/src/components/EntityCollectionView/BoardSortableList.tsx +2 -2
  263. package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +4 -2
  264. package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +14 -4
  265. package/src/components/EntityCollectionView/EntityCollectionListView.tsx +48 -26
  266. package/src/components/EntityCollectionView/EntityCollectionView.tsx +146 -73
  267. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +2 -1
  268. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +3 -2
  269. package/src/components/EntityCollectionView/FilterPresetsButton.tsx +4 -2
  270. package/src/components/EntityCollectionView/ViewModeToggle.tsx +0 -1
  271. package/src/components/EntityCollectionView/useBoardDataController.tsx +17 -15
  272. package/src/components/EntityCollectionView/useEntityPreviewSlots.ts +29 -19
  273. package/src/components/EntityDetailView.tsx +66 -30
  274. package/src/components/EntityEditView.tsx +70 -32
  275. package/src/components/EntitySidePanel.tsx +6 -3
  276. package/src/components/HomePage/ContentHomePage.tsx +3 -3
  277. package/src/components/HomePage/NavigationCard.tsx +5 -5
  278. package/src/components/HomePage/NavigationCardBinding.tsx +1 -1
  279. package/src/components/RebaseLayout.tsx +5 -2
  280. package/src/components/RebaseNavigation.tsx +1 -4
  281. package/src/components/RebaseRouteDefs.tsx +5 -3
  282. package/src/components/SearchIconsView.tsx +1 -1
  283. package/src/components/SelectableTable/SelectableTable.tsx +2 -3
  284. package/src/components/SelectableTable/SelectionStore.ts +9 -3
  285. package/src/components/UserSelector.tsx +92 -2
  286. package/src/components/common/default_entity_actions.tsx +23 -6
  287. package/src/components/field_configs.tsx +6 -3
  288. package/src/editor/editor.tsx +1 -1
  289. package/src/editor/extensions/Image/index.ts +2 -2
  290. package/src/editor/extensions/Image.ts +2 -2
  291. package/src/editor/extensions/clipboard.ts +2 -2
  292. package/src/editor/markdown-it-plugins.d.ts +24 -0
  293. package/src/editor/markdown.ts +2 -3
  294. package/src/form/EntityForm.tsx +21 -15
  295. package/src/form/field_bindings/MapFieldBinding.tsx +3 -3
  296. package/src/form/field_bindings/VectorFieldBinding.tsx +3 -3
  297. package/src/form/validation.ts +17 -15
  298. package/src/hooks/navigation/useBuildNavigationStateController.tsx +3 -6
  299. package/src/hooks/navigation/useNavigationResolution.ts +143 -19
  300. package/src/hooks/navigation/useResolvedCollections.ts +4 -6
  301. package/src/hooks/useBreadcrumbsController.tsx +2 -34
  302. package/src/hooks/useBuildSideEntityController.tsx +25 -3
  303. package/src/preview/PropertyPreview.tsx +6 -2
  304. package/src/preview/components/ReferencePreview.tsx +64 -13
  305. package/src/preview/components/RelationPreview.tsx +101 -13
  306. package/src/preview/components/UserPreview.tsx +5 -14
  307. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +1 -1
  308. package/src/routes/RebaseRoute.tsx +5 -4
  309. package/src/types/components/PropertyPreviewProps.tsx +5 -0
  310. package/src/types/components/formex.tsx +1 -45
  311. package/src/types/fields.tsx +10 -1
  312. package/src/util/navigation_utils.ts +14 -4
  313. package/src/util/previews.ts +101 -4
  314. package/dist/CollectionEditorDialog-C8E440oK.js +0 -4574
  315. package/dist/CollectionEditorDialog-C8E440oK.js.map +0 -1
  316. package/dist/CollectionsStudioView-Brr_b06v.js +0 -217
  317. package/dist/CollectionsStudioView-Brr_b06v.js.map +0 -1
  318. package/dist/ExportCollectionAction-D3TTYXrq.js +0 -446
  319. package/dist/ExportCollectionAction-D3TTYXrq.js.map +0 -1
  320. package/dist/ImportCollectionAction-Dn7lya6E.js +0 -685
  321. package/dist/ImportCollectionAction-Dn7lya6E.js.map +0 -1
  322. package/dist/PropertyEditView-ChBleIbN.js +0 -8197
  323. package/dist/PropertyEditView-ChBleIbN.js.map +0 -1
  324. package/dist/collection_editor_ui.js.map +0 -1
  325. package/dist/index-D3S9x_RP.js +0 -462
  326. package/dist/index-D3S9x_RP.js.map +0 -1
  327. package/dist/index-D9RNzm01.js +0 -12
  328. package/dist/index-D9RNzm01.js.map +0 -1
  329. package/dist/index-DrrT332R.js +0 -8
  330. package/dist/index-DrrT332R.js.map +0 -1
  331. package/dist/index.js.map +0 -1
  332. package/dist/markdown-DD2JDU1X.js +0 -618
  333. package/dist/markdown-DD2JDU1X.js.map +0 -1
  334. package/dist/useEntityHistory-UVsSclfZ.js +0 -123
  335. package/dist/useEntityHistory-UVsSclfZ.js.map +0 -1
  336. package/dist/util-COYYD8zr.js +0 -30474
  337. package/dist/util-COYYD8zr.js.map +0 -1
@@ -1,36 +1,157 @@
1
- import type { AppView, AppViewsBuilder, EntityCollection, FirebaseCollection, RebasePlugin } from "@rebasepro/types";
2
- import { AuthController, DataDriver, User, RebaseData } from "@rebasepro/types";
3
- import type { EntityCollectionsBuilder } from "@rebasepro/types";
1
+ import type {
2
+ AppView,
3
+ AppViewsBuilder,
4
+ AuthCollectionConfig,
5
+ EntityAction,
6
+ EntityCollection,
7
+ EntityCollectionsBuilder,
8
+ RebaseContext,
9
+ RebasePlugin,
10
+ UserCreationResult
11
+ } from "@rebasepro/types";
12
+ import { type AuthController, type User, type RebaseData } from "@rebasepro/types";
4
13
  import { canReadCollection } from "@rebasepro/common";
14
+ import { resetPasswordAction } from "../../components/common/default_entity_actions";
15
+ import { CreationResultDialog } from "../../components/admin/CreationResultDialog";
16
+ import React from "react";
5
17
 
6
- export function filterOutNotAllowedCollections(resolvedCollections: EntityCollection[], authController: AuthController<User>): EntityCollection[] {
18
+ /**
19
+ * Check whether a `RebaseCallContext` is actually the full frontend
20
+ * `RebaseContext` (which carries `dialogsController`).
21
+ */
22
+ function isRebaseContext(ctx: unknown): ctx is RebaseContext {
23
+ return typeof ctx === "object" && ctx !== null && "dialogsController" in ctx;
24
+ }
25
+
26
+ export function filterOutNotAllowedCollections(resolvedCollections: EntityCollection[], authController: AuthController): EntityCollection[] {
7
27
  return resolvedCollections
8
28
  .filter((c) => canReadCollection(c, authController))
9
29
  .map((c) => {
10
- if (!("subcollections" in c) || !c.subcollections) return c;
30
+ if (!c.childCollections) return c;
11
31
  return {
12
32
  ...c,
13
- subcollections: () => filterOutNotAllowedCollections((c as FirebaseCollection).subcollections?.() ?? [], authController)
14
- } as FirebaseCollection;
33
+ childCollections: () => filterOutNotAllowedCollections(c.childCollections!() ?? [], authController)
34
+ };
15
35
  });
16
36
  }
17
37
 
18
- export function applyPluginModifyCollection(resolvedCollections: EntityCollection[], modifyCollection: (collection: EntityCollection) => EntityCollection) {
19
- return resolvedCollections.map((collection: EntityCollection): EntityCollection => {
38
+ export function applyPluginModifyCollection(resolvedCollections: EntityCollection[], modifyCollection: (collection: EntityCollection) => EntityCollection): EntityCollection[] {
39
+ return resolvedCollections.map((collection): EntityCollection => {
20
40
  const modifiedCollection = modifyCollection(collection);
21
- if ("subcollections" in modifiedCollection && modifiedCollection.subcollections) {
41
+ if (modifiedCollection.childCollections) {
22
42
  return {
23
43
  ...modifiedCollection,
24
- subcollections: () => applyPluginModifyCollection((modifiedCollection as FirebaseCollection).subcollections?.() ?? [], modifyCollection)
25
- } as FirebaseCollection;
44
+ childCollections: () => applyPluginModifyCollection(modifiedCollection.childCollections!() ?? [], modifyCollection)
45
+ };
26
46
  }
27
47
  return modifiedCollection;
28
48
  });
29
49
  }
30
50
 
31
- export async function resolveCollections<U extends User, EC extends EntityCollection>(
32
- collections: undefined | EC[] | EntityCollectionsBuilder<EC>,
33
- authController: AuthController<U>,
51
+ /**
52
+ * Auto-inject auth-specific entity actions and callbacks for collections
53
+ * with `auth: true` or `auth: { enabled: true }`.
54
+ *
55
+ * Injections:
56
+ * 1. **resetPasswordAction** — adds the entity action unless explicitly disabled
57
+ * 2. **afterSave callback** — shows the `CreationResultDialog` when a new user
58
+ * is created with `invitationSent` or `temporaryPassword` in the response
59
+ *
60
+ * Skips injection if the collection already has the action/callback present.
61
+ */
62
+ function injectAuthCollectionConfig(collections: EntityCollection[]): EntityCollection[] {
63
+ return collections.map((collection) => {
64
+ const authProp = collection.auth;
65
+ if (!authProp) return collection;
66
+
67
+ const isAuth = authProp === true || (typeof authProp === "object" && authProp.enabled === true);
68
+ if (!isAuth) return collection;
69
+
70
+ const authConfig: AuthCollectionConfig | undefined = typeof authProp === "object" ? authProp : undefined;
71
+
72
+ let result = collection;
73
+
74
+ // ─── Entity Action injection (resetPassword) ─────────────────────
75
+ const resetPref = authConfig?.actions?.resetPassword;
76
+ let actionToInject: EntityAction | undefined;
77
+
78
+ if (resetPref === false) {
79
+ actionToInject = undefined;
80
+ } else if (typeof resetPref === "object") {
81
+ actionToInject = resetPref;
82
+ } else {
83
+ actionToInject = resetPasswordAction;
84
+ }
85
+
86
+ if (actionToInject) {
87
+ const injectedAction = actionToInject;
88
+ const existing = result.entityActions ?? [];
89
+ const alreadyHas = existing.some(
90
+ (a) => a.key != null && a.key === injectedAction.key
91
+ );
92
+ if (!alreadyHas) {
93
+ result = {
94
+ ...result,
95
+ entityActions: [...existing, injectedAction]
96
+ };
97
+ }
98
+ }
99
+
100
+ // ─── afterSave callback (creation result dialog) ─────────────────
101
+ const existingAfterSave = result.callbacks?.afterSave;
102
+ result = {
103
+ ...result,
104
+ callbacks: {
105
+ ...result.callbacks,
106
+ afterSave: async (props) => {
107
+ await existingAfterSave?.(props);
108
+
109
+ const { values, status, context } = props;
110
+ if (status !== "new" && status !== "copy") return;
111
+
112
+ const hasCreationInfo = values.invitationSent !== undefined || values.temporaryPassword !== undefined;
113
+ if (!hasCreationInfo || !isRebaseContext(context) || !context.dialogsController) return;
114
+
115
+ const { dialogsController } = context;
116
+
117
+ const creationResult: UserCreationResult = {
118
+ user: {
119
+ uid: String(props.entityId),
120
+ email: typeof values.email === "string" ? values.email : "",
121
+ displayName: typeof values.displayName === "string" ? values.displayName : "",
122
+ roles: Array.isArray(values.roles) ? values.roles as string[] : [],
123
+ photoURL: typeof values.photoURL === "string"
124
+ ? values.photoURL
125
+ : typeof values.photoUrl === "string"
126
+ ? values.photoUrl
127
+ : null,
128
+ providerId: "password",
129
+ isAnonymous: false
130
+ },
131
+ invitationSent: !!values.invitationSent,
132
+ temporaryPassword: typeof values.temporaryPassword === "string" ? values.temporaryPassword : undefined
133
+ };
134
+
135
+ const { closeDialog } = dialogsController.open({
136
+ key: "user_creation_result",
137
+ Component: () => (
138
+ React.createElement(CreationResultDialog, {
139
+ result: creationResult,
140
+ onClose: () => closeDialog()
141
+ })
142
+ )
143
+ });
144
+ }
145
+ }
146
+ };
147
+
148
+ return result;
149
+ });
150
+ }
151
+
152
+ export async function resolveCollections(
153
+ collections: undefined | EntityCollection[] | EntityCollectionsBuilder,
154
+ authController: AuthController,
34
155
  data: RebaseData,
35
156
  plugins: RebasePlugin[] | undefined
36
157
  ): Promise<EntityCollection[]> {
@@ -52,21 +173,24 @@ export async function resolveCollections<U extends User, EC extends EntityCollec
52
173
  }
53
174
 
54
175
  if (plugin.hooks?.injectCollections) {
55
- resolvedCollections = plugin.hooks.injectCollections(resolvedCollections ?? []);
176
+ resolvedCollections = plugin.hooks.injectCollections(resolvedCollections);
56
177
  }
57
178
  }
58
179
  }
59
180
 
181
+ // Auto-inject auth entity actions and callbacks (resetPassword, creation dialog, etc.)
182
+ resolvedCollections = injectAuthCollectionConfig(resolvedCollections);
183
+
60
184
  resolvedCollections = filterOutNotAllowedCollections(resolvedCollections, authController);
61
185
  return resolvedCollections;
62
186
  }
63
187
 
64
- export async function resolveAppViews<U extends User>(
188
+ export async function resolveAppViews(
65
189
  baseViews: AppView[] | AppViewsBuilder | undefined,
66
- authController: AuthController<U>,
190
+ authController: AuthController,
67
191
  data: RebaseData,
68
192
  plugins?: RebasePlugin[]
69
- ) {
193
+ ): Promise<AppView[]> {
70
194
  let resolvedViews: AppView[] = [];
71
195
  if (typeof baseViews === "function") {
72
196
  resolvedViews = await baseViews({
@@ -4,7 +4,7 @@ import { useCallback, useEffect, useRef, useState, useMemo } from "react";
4
4
  import { AuthController, CollectionRegistryController, RebaseData, User } from "@rebasepro/types";
5
5
  import type { EntityCollectionsBuilder } from "@rebasepro/types";
6
6
  import { CollectionRegistry } from "@rebasepro/common";
7
- import { UserManagementDelegate } from "@rebasepro/types";
7
+
8
8
 
9
9
  import { resolveCollections } from "./useNavigationResolution";
10
10
  import { areCollectionListsEqual } from "./utils";
@@ -16,7 +16,7 @@ export type UseResolvedCollectionsProps<EC extends EntityCollection, USER extend
16
16
  plugins?: RebasePlugin[];
17
17
  disabled?: boolean;
18
18
  collectionRegistryController: CollectionRegistryController<EC> & { collectionRegistryRef: React.MutableRefObject<CollectionRegistry> };
19
- userManagement?: UserManagementDelegate<USER>;
19
+
20
20
  };
21
21
 
22
22
  export type UseResolvedCollectionsResult = {
@@ -47,8 +47,7 @@ export function useResolvedCollections<EC extends EntityCollection, USER extends
47
47
  data,
48
48
  plugins,
49
49
  disabled,
50
- collectionRegistryController,
51
- userManagement
50
+ collectionRegistryController
52
51
  } = props;
53
52
 
54
53
  const [loading, setLoading] = useState(true);
@@ -70,8 +69,7 @@ export function useResolvedCollections<EC extends EntityCollection, USER extends
70
69
  authControllerRef.current = authController;
71
70
  const pluginsRef = useRef(plugins);
72
71
  pluginsRef.current = plugins;
73
- const userManagementRef = useRef(userManagement);
74
- userManagementRef.current = userManagement;
72
+
75
73
 
76
74
  // Ref for resolved collections change detection
77
75
  const resolvedCollectionsRef = useRef<EntityCollection[]>([]);
@@ -1,40 +1,8 @@
1
1
  import { useContext } from "react";
2
2
  import { BreadcrumbContext } from "../contexts/BreacrumbsContext";
3
+ import { BreadcrumbEntry, BreadcrumbsController } from "@rebasepro/types";
3
4
 
4
- /**
5
- * @group Hooks and utilities
6
- */
7
- export interface BreadcrumbsController {
8
- breadcrumbs: BreadcrumbEntry[];
9
- set: (props: {
10
- breadcrumbs: BreadcrumbEntry[];
11
- }) => void;
12
- /**
13
- * Update the count for a specific breadcrumb by ID.
14
- */
15
- updateCount: (id: string, count: number | null | undefined) => void;
16
- }
17
-
18
-
19
- /**
20
- * @group Hooks and utilities
21
- */
22
- export interface BreadcrumbEntry {
23
- title: string;
24
- url: string;
25
- /**
26
- * Optional entity count for collection breadcrumbs.
27
- * - undefined: not applicable (e.g., entity breadcrumb, custom view)
28
- * - null: loading
29
- * - number: loaded count
30
- */
31
- count?: number | null;
32
- /**
33
- * Unique identifier for this breadcrumb (e.g., collection path).
34
- * Used to update count without replacing entire breadcrumb array.
35
- */
36
- id?: string;
37
- }
5
+ export type { BreadcrumbEntry, BreadcrumbsController };
38
6
 
39
7
 
40
8
  /**
@@ -11,11 +11,33 @@ import {
11
11
  } from "@rebasepro/common";
12
12
  import { resolvedSelectedEntityView } from "../util/resolutions";
13
13
  import { ADDITIONAL_TAB_WIDTH, CONTAINER_FULL_WIDTH, FORM_CONTAINER_WIDTH } from "@rebasepro/core";
14
- import { useCustomizationController, useLargeLayout } from "@rebasepro/core";
14
+ import { useCustomizationController, useLargeLayout, useComponentOverride, CollectionComponentOverrideProvider } from "@rebasepro/core";
15
15
  import { JSON_TAB_VALUE, HISTORY_TAB_VALUE } from "../components/EntityEditView";
16
16
  import React from "react";
17
17
  import { EntitySidePanel } from "../components/EntitySidePanel";
18
18
 
19
+ /**
20
+ * Thin wrapper that resolves the Entity.SidePanel component override.
21
+ * Because the JSX is created inside `propsToSidePanel` (a plain function,
22
+ * not a React component), we need this wrapper so the hook is called at the
23
+ * top level of a React component per the Rules of Hooks.
24
+ */
25
+ function ResolvedEntitySidePanelInner(props: EntitySidePanelProps) {
26
+ const Resolved = useComponentOverride("Entity.SidePanel", EntitySidePanel);
27
+ return <Resolved {...props}/>;
28
+ }
29
+
30
+ function ResolvedEntitySidePanel(props: EntitySidePanelProps) {
31
+ if (props.collection?.components) {
32
+ return (
33
+ <CollectionComponentOverrideProvider overrides={props.collection.components}>
34
+ <ResolvedEntitySidePanelInner {...props}/>
35
+ </CollectionComponentOverrideProvider>
36
+ );
37
+ }
38
+ return <ResolvedEntitySidePanelInner {...props}/>;
39
+ }
40
+
19
41
  const NEW_URL_HASH = "new_side";
20
42
  const SIDE_URL_HASH = "side";
21
43
 
@@ -188,7 +210,7 @@ width: newWidth };
188
210
  sideDialogsController.open(
189
211
  propsToSidePanel({
190
212
  ...props,
191
- selectedTab: props.selectedTab ?? defaultSelectedView,
213
+ selectedTab: props.selectedTab ?? defaultSelectedView
192
214
  },
193
215
  urlController.buildUrlCollectionPath,
194
216
  urlController.resolveDatabasePathsFrom,
@@ -317,7 +339,7 @@ const propsToSidePanel = (props: EntitySidePanelProps,
317
339
  const entityViewWidth = getEntityViewWidth(props, smallLayout, customizationController);
318
340
  return {
319
341
  key: `${props.path}/${props.entityId}`,
320
- component: <EntitySidePanel {...resolvedPanelProps}/>,
342
+ component: <ResolvedEntitySidePanel {...resolvedPanelProps}/>,
321
343
  urlPath: urlPath,
322
344
  parentUrlPath: parentUrlPath,
323
345
  width: entityViewWidth,
@@ -117,6 +117,7 @@ export const PropertyPreview = React.memo(function PropertyPreview<P extends Pro
117
117
  size={props.size}
118
118
  reference={new EntityReference({ id: value,
119
119
  path: stringProperty.reference.path })}
120
+ textOnly={props.textOnly}
120
121
  />;
121
122
  } else {
122
123
  content = <EmptyValue/>;
@@ -213,6 +214,7 @@ path: stringProperty.reference.path })}
213
214
  includeEntityLink={property.includeEntityLink}
214
215
  size={props.size}
215
216
  reference={value as EntityReference}
217
+ textOnly={props.textOnly}
216
218
  />;
217
219
  } else {
218
220
  content = buildWrongValueType(propertyKey, property.type, value);
@@ -229,7 +231,7 @@ path: stringProperty.reference.path })}
229
231
  content = (
230
232
  <div className="flex flex-col w-full gap-0.5">
231
233
  {(value as unknown[]).map((item: unknown, index: number) => {
232
- const entityRelation = normalizeToEntityRelation(item);
234
+ const entityRelation = normalizeToEntityRelation(item, "relation");
233
235
  if (!entityRelation) return null;
234
236
  return (
235
237
  <div className="w-full"
@@ -241,6 +243,7 @@ path: stringProperty.reference.path })}
241
243
  includeEntityLink={property.includeEntityLink}
242
244
  size={"small"}
243
245
  relation={entityRelation}
246
+ textOnly={props.textOnly}
244
247
  />
245
248
  </div>
246
249
  );
@@ -249,7 +252,7 @@ path: stringProperty.reference.path })}
249
252
  );
250
253
  } else {
251
254
  // Single-cardinality relation
252
- const relationValue = normalizeToEntityRelation(value);
255
+ const relationValue = normalizeToEntityRelation(value, "relation");
253
256
  if (relationValue) {
254
257
  content = <RelationPreview
255
258
  disabled={!property.relation}
@@ -258,6 +261,7 @@ path: stringProperty.reference.path })}
258
261
  includeEntityLink={property.includeEntityLink}
259
262
  size={props.size}
260
263
  relation={relationValue}
264
+ textOnly={props.textOnly}
261
265
  />;
262
266
  } else {
263
267
  content = buildWrongValueType(propertyKey, property.type, value);
@@ -3,12 +3,14 @@ import * as React from "react";
3
3
 
4
4
  import { Entity, EntityReference } from "@rebasepro/types";
5
5
  import type { PreviewSize } from "../../types/components/PropertyPreviewProps";
6
- import { useCustomizationController, useEntityFetch } from "@rebasepro/core";
6
+ import { useCustomizationController, useEntityFetch, useComponentOverride, CollectionComponentOverrideProvider } from "@rebasepro/core";
7
7
  import { Skeleton } from "@rebasepro/ui";
8
8
  import { ErrorBoundary } from "@rebasepro/ui";
9
9
  import { ErrorView } from "@rebasepro/core";
10
10
  import { EntityPreview, EntityPreviewContainer } from "../../components/EntityPreview";
11
11
  import { useCollectionRegistryController } from "../../index";
12
+ import { getEntityTitlePropertyKey } from "../../util/previews";
13
+ import { getValueInPath } from "@rebasepro/utils";
12
14
 
13
15
  export type ReferencePreviewProps = {
14
16
  disabled?: boolean;
@@ -19,6 +21,7 @@ export type ReferencePreviewProps = {
19
21
  hover?: boolean;
20
22
  includeEntityLink?: boolean;
21
23
  includeId?: boolean;
24
+ textOnly?: boolean;
22
25
  };
23
26
 
24
27
  /**
@@ -28,6 +31,9 @@ export const ReferencePreview = function ReferencePreview(props: ReferencePrevie
28
31
  const reference = props.reference;
29
32
  if (!(typeof reference === "object" && "isEntityReference" in reference && reference.isEntityReference())) {
30
33
  console.warn("Reference preview received value of type", typeof reference);
34
+ if (props.textOnly) {
35
+ return <span>{String(reference)}</span>;
36
+ }
31
37
  return <EntityPreviewContainer
32
38
  onClick={props.onClick}
33
39
  size={props.size ?? "medium"}>
@@ -40,7 +46,9 @@ export const ReferencePreview = function ReferencePreview(props: ReferencePrevie
40
46
  </ErrorBoundary>;
41
47
  };
42
48
 
43
- function ReferencePreviewInternal({
49
+ const DefaultMissingReference: React.FC<{ path: string }> = () => null;
50
+
51
+ function ReferencePreviewInternalInner({
44
52
  disabled,
45
53
  reference,
46
54
  previewProperties,
@@ -48,18 +56,19 @@ function ReferencePreviewInternal({
48
56
  hover,
49
57
  onClick,
50
58
  includeEntityLink = true,
51
- includeId = true
52
- }: ReferencePreviewProps) {
53
-
54
- const customizationController = useCustomizationController();
55
-
56
- const collectionRegistryController = useCollectionRegistryController();
59
+ includeId = true,
60
+ textOnly,
61
+ collection
62
+ }: ReferencePreviewProps & { collection?: EntityCollection }) {
63
+ const ResolvedMissingReference = useComponentOverride("Entity.MissingReference", DefaultMissingReference);
57
64
 
58
- const collection = collectionRegistryController.getCollection(reference.path);
59
65
  if (!collection) {
60
- if (customizationController.components?.missingReference) {
61
- return <customizationController.components.missingReference path={reference.path}/>;
66
+ if (ResolvedMissingReference !== DefaultMissingReference) {
67
+ return <ResolvedMissingReference path={reference.path}/>;
62
68
  } else {
69
+ if (textOnly) {
70
+ return <span>{reference.path}</span>;
71
+ }
63
72
  return <EntityPreviewContainer
64
73
  onClick={onClick}
65
74
  size={size ?? "medium"}>
@@ -78,9 +87,31 @@ function ReferencePreviewInternal({
78
87
  includeEntityLink={includeEntityLink}
79
88
  includeId={includeId}
80
89
  onClick={onClick}
90
+ textOnly={textOnly}
81
91
  hover={hover}/>
82
92
  }
83
93
 
94
+ function ReferencePreviewInternal(props: ReferencePreviewProps) {
95
+ const collectionRegistryController = useCollectionRegistryController();
96
+ const collection = collectionRegistryController.getCollection(props.reference.path);
97
+
98
+ const content = (
99
+ <ReferencePreviewInternalInner
100
+ {...props}
101
+ collection={collection}
102
+ />
103
+ );
104
+
105
+ if (collection?.components) {
106
+ return (
107
+ <CollectionComponentOverrideProvider overrides={collection.components}>
108
+ {content}
109
+ </CollectionComponentOverrideProvider>
110
+ );
111
+ }
112
+ return content;
113
+ }
114
+
84
115
  function ReferencePreviewExisting<M extends Record<string, unknown> = Record<string, unknown>>({
85
116
  reference,
86
117
  collection,
@@ -90,11 +121,15 @@ function ReferencePreviewExisting<M extends Record<string, unknown> = Record<str
90
121
  includeEntityLink,
91
122
  includeId,
92
123
  onClick,
93
- hover
124
+ hover,
125
+ textOnly
94
126
  }: ReferencePreviewProps & {
95
127
  collection: EntityCollection<M>
96
128
  }) {
97
129
 
130
+ const ResolvedEntityPreview = useComponentOverride("Entity.Preview", EntityPreview);
131
+ const customizationController = useCustomizationController();
132
+
98
133
  const {
99
134
  entity,
100
135
  dataLoading,
@@ -121,6 +156,9 @@ function ReferencePreviewExisting<M extends Record<string, unknown> = Record<str
121
156
  tooltip={reference.path}/>;
122
157
  }
123
158
  if (body) {
159
+ if (textOnly) {
160
+ return <span>{reference.id}</span>;
161
+ }
124
162
 
125
163
  return (
126
164
  <EntityPreviewContainer onClick={disabled ? undefined : onClick}
@@ -132,6 +170,9 @@ function ReferencePreviewExisting<M extends Record<string, unknown> = Record<str
132
170
  }
133
171
 
134
172
  if (dataLoading && !usedEntity) {
173
+ if (textOnly) {
174
+ return <Skeleton className="inline-block w-20 h-4" />;
175
+ }
135
176
  return (
136
177
  <EntityPreviewContainer onClick={disabled ? undefined : onClick}
137
178
  hover={disabled ? undefined : hover}
@@ -142,6 +183,9 @@ function ReferencePreviewExisting<M extends Record<string, unknown> = Record<str
142
183
  }
143
184
 
144
185
  if (!usedEntity) {
186
+ if (textOnly) {
187
+ return <span>{reference.id}</span>;
188
+ }
145
189
  return (
146
190
  <EntityPreviewContainer onClick={disabled ? undefined : onClick}
147
191
  hover={disabled ? undefined : hover}
@@ -151,7 +195,14 @@ function ReferencePreviewExisting<M extends Record<string, unknown> = Record<str
151
195
  );
152
196
  }
153
197
 
154
- return <EntityPreview size={size}
198
+ if (textOnly) {
199
+ const titleProperty = getEntityTitlePropertyKey(collection, customizationController.propertyConfigs);
200
+ const titleValue = titleProperty ? getValueInPath(usedEntity.values, titleProperty) : undefined;
201
+ const displayValue = titleValue !== undefined && titleValue !== null ? String(titleValue) : String(reference.id);
202
+ return <span className="truncate">{displayValue}</span>;
203
+ }
204
+
205
+ return <ResolvedEntityPreview size={size}
155
206
  previewKeys={previewProperties}
156
207
  disabled={disabled}
157
208
  entity={usedEntity}