@rebasepro/admin 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/LICENSE +21 -6
  2. package/dist/{CollectionEditorDialog-MbvXGzEq.js → CollectionEditorDialog-BXIh2AXg.js} +40 -31
  3. package/dist/CollectionEditorDialog-BXIh2AXg.js.map +1 -0
  4. package/dist/{CollectionsStudioView-D9X6aiAr.js → CollectionsStudioView-jR8iz_ja.js} +6 -8
  5. package/dist/CollectionsStudioView-jR8iz_ja.js.map +1 -0
  6. package/dist/{ContentHomePage-CfVB1eUo.js → ContentHomePage-BQZWuOFb.js} +5 -7
  7. package/dist/ContentHomePage-BQZWuOFb.js.map +1 -0
  8. package/dist/{ExportCollectionAction-CUwJg4F9.js → ExportCollectionAction-CMdiiv1L.js} +36 -38
  9. package/dist/ExportCollectionAction-CMdiiv1L.js.map +1 -0
  10. package/dist/{ImportCollectionAction-DGa_SF_8.js → ImportCollectionAction-C05lE0IW.js} +5 -7
  11. package/dist/ImportCollectionAction-C05lE0IW.js.map +1 -0
  12. package/dist/{PropertyEditView-C4nlYmAc.js → PropertyEditView-BB5xjnhZ.js} +261 -165
  13. package/dist/PropertyEditView-BB5xjnhZ.js.map +1 -0
  14. package/dist/{RolesView-CNWxnR8e.js → RolesView-CULIHWZ9.js} +22 -11
  15. package/dist/RolesView-CULIHWZ9.js.map +1 -0
  16. package/dist/{UsersView-YiTIcXkA.js → UsersView-D7_AtJ44.js} +7 -71
  17. package/dist/UsersView-D7_AtJ44.js.map +1 -0
  18. package/dist/collection_editor/ui/collection_editor/LayoutModeSwitch.d.ts +2 -2
  19. package/dist/collection_editor/ui/collection_editor/properties/VectorPropertyField.d.ts +3 -0
  20. package/dist/collection_editor_ui.js +5 -5
  21. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +1 -1
  22. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +1 -1
  23. package/dist/components/EntityCollectionView/EntityCollectionListView.d.ts +18 -2
  24. package/dist/components/EntityCollectionView/FilterPresetsButton.d.ts +21 -0
  25. package/dist/components/EntityDetailView.d.ts +31 -0
  26. package/dist/components/EntityEditView.d.ts +3 -2
  27. package/dist/components/ReferenceTable/EntitySelectionTable.d.ts +1 -1
  28. package/dist/components/admin/CreationResultDialog.d.ts +5 -0
  29. package/dist/components/admin/RolesFilterSelect.d.ts +2 -0
  30. package/dist/components/admin/UserRolesSelectField.d.ts +2 -0
  31. package/dist/components/common/default_entity_actions.d.ts +7 -1
  32. package/dist/components/field_configs.d.ts +1 -1
  33. package/dist/components/index.d.ts +1 -0
  34. package/dist/data_import/utils/data.d.ts +1 -1
  35. package/dist/data_import/utils/file_headers.d.ts +6 -1
  36. package/dist/data_import/utils/file_to_json.d.ts +1 -11
  37. package/dist/data_import/utils/transforms.d.ts +11 -0
  38. package/dist/editor.js +2 -4
  39. package/dist/editor.js.map +1 -1
  40. package/dist/form/EntityForm.d.ts +1 -1
  41. package/dist/form/field_bindings/RelationFieldBinding.d.ts +1 -1
  42. package/dist/form/field_bindings/VectorFieldBinding.d.ts +11 -0
  43. package/dist/form/index.d.ts +1 -0
  44. package/dist/hooks/navigation/useResolvedViews.d.ts +2 -1
  45. package/dist/{index-CtzpHzMQ.js → index-BAM9KCmM.js} +4 -6
  46. package/dist/index-BAM9KCmM.js.map +1 -0
  47. package/dist/{index-DKlrVD1m.js → index-CoSNm3e3.js} +3 -3
  48. package/dist/index-CoSNm3e3.js.map +1 -0
  49. package/dist/{index-kHJXfLNI.js → index-D5OQhv-T.js} +3 -3
  50. package/dist/index-D5OQhv-T.js.map +1 -0
  51. package/dist/index.d.ts +4 -1
  52. package/dist/index.js +352 -148
  53. package/dist/index.js.map +1 -1
  54. package/dist/types/components/EntityFormActionsProps.d.ts +1 -1
  55. package/dist/types/components/EntityFormProps.d.ts +2 -1
  56. package/dist/types/fields.d.ts +3 -3
  57. package/dist/util/navigation_utils.d.ts +1 -1
  58. package/dist/{util-CwLmSpGp.js → util-DtbWD7LF.js} +5312 -2580
  59. package/dist/util-DtbWD7LF.js.map +1 -0
  60. package/package.json +45 -39
  61. package/src/collection_editor/ConfigControllerProvider.tsx +1 -1
  62. package/src/collection_editor/ui/AddKanbanColumnAction.tsx +12 -2
  63. package/src/collection_editor/ui/CollectionViewHeaderAction.tsx +1 -2
  64. package/src/collection_editor/ui/EditorCollectionAction.tsx +1 -2
  65. package/src/collection_editor/ui/EditorCollectionActionStart.tsx +1 -2
  66. package/src/collection_editor/ui/EditorEntityAction.tsx +1 -2
  67. package/src/collection_editor/ui/HomePageEditorCollectionAction.tsx +1 -2
  68. package/src/collection_editor/ui/NewCollectionButton.tsx +1 -2
  69. package/src/collection_editor/ui/NewCollectionCard.tsx +4 -6
  70. package/src/collection_editor/ui/PropertyAddColumnComponent.tsx +1 -2
  71. package/src/collection_editor/ui/collection_editor/AICollectionGeneratorPopover.tsx +10 -2
  72. package/src/collection_editor/ui/collection_editor/CollectionDetailsForm.tsx +18 -2
  73. package/src/collection_editor/ui/collection_editor/CollectionEditorDialog.tsx +22 -7
  74. package/src/collection_editor/ui/collection_editor/CollectionEditorWelcomeView.tsx +16 -2
  75. package/src/collection_editor/ui/collection_editor/CollectionJsonImportDialog.tsx +19 -9
  76. package/src/collection_editor/ui/collection_editor/CollectionPropertiesEditorForm.tsx +13 -2
  77. package/src/collection_editor/ui/collection_editor/CollectionRLSTab.tsx +24 -2
  78. package/src/collection_editor/ui/collection_editor/CollectionRelationsTab.tsx +22 -3
  79. package/src/collection_editor/ui/collection_editor/CollectionStudioView.tsx +1 -2
  80. package/src/collection_editor/ui/collection_editor/CollectionsStudioView.tsx +11 -2
  81. package/src/collection_editor/ui/collection_editor/DisplaySettingsForm.tsx +12 -2
  82. package/src/collection_editor/ui/collection_editor/EntityActionsEditTab.tsx +16 -3
  83. package/src/collection_editor/ui/collection_editor/EnumForm.tsx +17 -2
  84. package/src/collection_editor/ui/collection_editor/GeneralSettingsForm.tsx +18 -2
  85. package/src/collection_editor/ui/collection_editor/GetCodeDialog.tsx +1 -2
  86. package/src/collection_editor/ui/collection_editor/KanbanConfigSection.tsx +1 -2
  87. package/src/collection_editor/ui/collection_editor/LayoutModeSwitch.tsx +17 -5
  88. package/src/collection_editor/ui/collection_editor/PropertyEditView.tsx +32 -6
  89. package/src/collection_editor/ui/collection_editor/PropertyFieldPreview.tsx +7 -7
  90. package/src/collection_editor/ui/collection_editor/PropertyTree.tsx +14 -2
  91. package/src/collection_editor/ui/collection_editor/SubcollectionsEditTab.tsx +16 -2
  92. package/src/collection_editor/ui/collection_editor/ViewModeSwitch.tsx +9 -2
  93. package/src/collection_editor/ui/collection_editor/properties/BlockPropertyField.tsx +1 -2
  94. package/src/collection_editor/ui/collection_editor/properties/MapPropertyField.tsx +1 -2
  95. package/src/collection_editor/ui/collection_editor/properties/MarkdownPropertyField.tsx +9 -2
  96. package/src/collection_editor/ui/collection_editor/properties/StoragePropertyField.tsx +11 -2
  97. package/src/collection_editor/ui/collection_editor/properties/VectorPropertyField.tsx +34 -0
  98. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsEditor.tsx +15 -7
  99. package/src/collection_editor/ui/collection_editor/properties/conditions/ConditionsPanel.tsx +1 -2
  100. package/src/collection_editor/ui/collection_editor/properties/conditions/EnumConditionsEditor.tsx +15 -3
  101. package/src/collection_editor/ui/collection_editor/properties/conditions/property_paths.ts +1 -1
  102. package/src/collection_editor/ui/collection_editor/properties/validation/ValidationPanel.tsx +1 -2
  103. package/src/collection_editor/useLocalCollectionsConfigController.tsx +0 -2
  104. package/src/collection_editor/validateCollectionJson.ts +9 -9
  105. package/src/components/AdminModeSyncer.tsx +1 -1
  106. package/src/components/ArrayContainer.tsx +19 -15
  107. package/src/components/ClearFilterSortButton.tsx +1 -2
  108. package/src/components/CollectionEditorDialogs.tsx +1 -1
  109. package/src/components/DefaultAppBar.tsx +15 -3
  110. package/src/components/DefaultDrawer.tsx +3 -3
  111. package/src/components/DrawerNavigationGroup.tsx +1 -2
  112. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +19 -9
  113. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +2 -2
  114. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +1 -1
  115. package/src/components/EntityCollectionTable/fields/TableMultipleRelationField.tsx +1 -2
  116. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +1 -2
  117. package/src/components/EntityCollectionTable/fields/TableRelationField.tsx +1 -2
  118. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +1 -2
  119. package/src/components/EntityCollectionTable/fields/VirtualTableSelect.tsx +0 -1
  120. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +15 -27
  121. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +3 -4
  122. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +1 -2
  123. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +3 -5
  124. package/src/components/EntityCollectionTable/table_bindings.tsx +51 -45
  125. package/src/components/EntityCollectionView/Board.tsx +1 -2
  126. package/src/components/EntityCollectionView/BoardColumn.tsx +9 -2
  127. package/src/components/EntityCollectionView/BoardColumnTitle.tsx +5 -4
  128. package/src/components/EntityCollectionView/EntityCard.tsx +2 -2
  129. package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +18 -16
  130. package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +16 -17
  131. package/src/components/EntityCollectionView/EntityCollectionListView.tsx +90 -21
  132. package/src/components/EntityCollectionView/EntityCollectionView.tsx +20 -11
  133. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +6 -7
  134. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +14 -5
  135. package/src/components/EntityCollectionView/FilterPresetsButton.tsx +292 -0
  136. package/src/components/EntityCollectionView/FiltersDialog.tsx +1 -2
  137. package/src/components/EntityCollectionView/SplitListView.tsx +76 -25
  138. package/src/components/EntityCollectionView/ViewModeToggle.tsx +20 -7
  139. package/src/components/EntityCollectionView/hooks/useKanbanDragAndDrop.ts +1 -1
  140. package/src/components/EntityCollectionView/useBoardDataController.tsx +74 -6
  141. package/src/components/EntityCollectionView/useEntityPreviewSlots.ts +1 -1
  142. package/src/components/EntityDetailView.tsx +619 -0
  143. package/src/components/EntityEditView.tsx +29 -10
  144. package/src/components/EntityEditViewFormActions.tsx +20 -7
  145. package/src/components/EntityPreview.tsx +14 -5
  146. package/src/components/EntitySidePanel.tsx +116 -62
  147. package/src/components/EntityView.tsx +1 -2
  148. package/src/components/HomePage/ContentHomePage.tsx +1 -1
  149. package/src/components/HomePage/FavouritesView.tsx +1 -2
  150. package/src/components/HomePage/NavigationCard.tsx +1 -2
  151. package/src/components/HomePage/NavigationCardBinding.tsx +1 -2
  152. package/src/components/HomePage/NavigationGroup.tsx +1 -2
  153. package/src/components/HomePage/SmallNavigationCard.tsx +1 -2
  154. package/src/components/PropertyIdCopyTooltip.tsx +1 -2
  155. package/src/components/RebaseAuthGate.tsx +2 -2
  156. package/src/components/RebaseNavigation.tsx +9 -7
  157. package/src/components/ReferenceTable/EntitySelectionTable.tsx +12 -8
  158. package/src/components/RelationSelector.tsx +34 -6
  159. package/src/components/SearchIconsView.tsx +10 -2
  160. package/src/components/SelectableTable/SelectableTable.tsx +4 -4
  161. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +1 -2
  162. package/src/components/SideDialogs.tsx +63 -38
  163. package/src/components/UserSelector.tsx +30 -6
  164. package/src/components/admin/CreationResultDialog.tsx +135 -0
  165. package/src/components/admin/RolesFilterSelect.tsx +45 -0
  166. package/src/components/admin/RolesView.tsx +53 -14
  167. package/src/components/admin/UserRolesSelectField.tsx +50 -0
  168. package/src/components/admin/UsersView.tsx +41 -124
  169. package/src/components/app/Scaffold.tsx +1 -2
  170. package/src/components/common/default_entity_actions.tsx +119 -12
  171. package/src/components/field_configs.tsx +39 -3
  172. package/src/components/history/EntityHistoryEntry.tsx +1 -2
  173. package/src/components/history/EntityHistoryView.tsx +1 -2
  174. package/src/components/index.ts +2 -0
  175. package/src/data_export/export/BasicExportAction.tsx +35 -38
  176. package/src/data_export/export/ExportCollectionAction.tsx +39 -40
  177. package/src/data_import/components/DataNewPropertiesMapping.tsx +15 -2
  178. package/src/data_import/components/ImportFileUpload.tsx +1 -2
  179. package/src/data_import/components/ImportNewPropertyFieldPreview.tsx +1 -2
  180. package/src/data_import/import/ImportCollectionAction.tsx +21 -8
  181. package/src/data_import/utils/data.ts +23 -5
  182. package/src/data_import/utils/file_headers.ts +13 -89
  183. package/src/data_import/utils/file_to_json.ts +43 -68
  184. package/src/data_import/utils/transforms.ts +47 -0
  185. package/src/editor/components/SlashCommandMenu.tsx +17 -2
  186. package/src/editor/components/editor-bubble-item.tsx +1 -1
  187. package/src/editor/extensions/Image/index.ts +1 -1
  188. package/src/editor/extensions/Image.ts +1 -1
  189. package/src/editor/selectors/color-selector.tsx +1 -2
  190. package/src/editor/selectors/link-selector.tsx +1 -2
  191. package/src/editor/selectors/node-selector.tsx +16 -2
  192. package/src/editor/selectors/text-buttons.tsx +1 -2
  193. package/src/editor/utils/prosemirror-utils.ts +1 -1
  194. package/src/form/EntityForm.tsx +16 -6
  195. package/src/form/EntityFormActions.tsx +11 -3
  196. package/src/form/PropertyFieldBinding.tsx +5 -12
  197. package/src/form/components/FieldHelperText.tsx +1 -2
  198. package/src/form/components/LocalChangesMenu.tsx +17 -2
  199. package/src/form/components/StorageItemPreview.tsx +1 -2
  200. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +1 -2
  201. package/src/form/field_bindings/KeyValueFieldBinding.tsx +17 -2
  202. package/src/form/field_bindings/MapFieldBinding.tsx +1 -1
  203. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +10 -3
  204. package/src/form/field_bindings/MultiSelectFieldBinding.tsx +1 -2
  205. package/src/form/field_bindings/MultipleRelationFieldBinding.tsx +1 -2
  206. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +7 -7
  207. package/src/form/field_bindings/RelationFieldBinding.tsx +150 -147
  208. package/src/form/field_bindings/RepeatFieldBinding.tsx +1 -1
  209. package/src/form/field_bindings/SelectFieldBinding.tsx +1 -2
  210. package/src/form/field_bindings/TextFieldBinding.tsx +10 -2
  211. package/src/form/field_bindings/VectorFieldBinding.tsx +202 -0
  212. package/src/form/index.tsx +1 -0
  213. package/src/form/validation.ts +54 -2
  214. package/src/hooks/navigation/useBuildNavigationStateController.tsx +2 -1
  215. package/src/hooks/navigation/useResolvedViews.tsx +30 -15
  216. package/src/hooks/navigation/useTopLevelNavigation.ts +1 -1
  217. package/src/index.ts +6 -0
  218. package/src/preview/PropertyPreview.tsx +1 -1
  219. package/src/preview/components/ImagePreview.tsx +1 -1
  220. package/src/preview/components/UrlComponentPreview.tsx +1 -2
  221. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -2
  222. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +23 -24
  223. package/src/routes/RebaseRoute.tsx +64 -35
  224. package/src/types/components/EntityFormActionsProps.tsx +1 -1
  225. package/src/types/components/EntityFormProps.tsx +3 -1
  226. package/src/types/fields.tsx +4 -3
  227. package/src/util/navigation_utils.ts +4 -3
  228. package/src/util/previews.ts +1 -1
  229. package/src/util/property_utils.tsx +22 -6
  230. package/src/util/resolutions.ts +2 -2
  231. package/dist/CollectionEditorDialog-MbvXGzEq.js.map +0 -1
  232. package/dist/CollectionsStudioView-D9X6aiAr.js.map +0 -1
  233. package/dist/ContentHomePage-CfVB1eUo.js.map +0 -1
  234. package/dist/ExportCollectionAction-CUwJg4F9.js.map +0 -1
  235. package/dist/ImportCollectionAction-DGa_SF_8.js.map +0 -1
  236. package/dist/PropertyEditView-C4nlYmAc.js.map +0 -1
  237. package/dist/RolesView-CNWxnR8e.js.map +0 -1
  238. package/dist/UsersView-YiTIcXkA.js.map +0 -1
  239. package/dist/index-CtzpHzMQ.js.map +0 -1
  240. package/dist/index-DKlrVD1m.js.map +0 -1
  241. package/dist/index-kHJXfLNI.js.map +0 -1
  242. package/dist/util-CwLmSpGp.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/hooks/useResolvedNavigationFrom.tsx","../src/components/ReferenceWidget.tsx","../src/components/AdminModeSyncer.tsx","../src/components/RebaseCMS.tsx","../src/components/RebaseAuthGate.tsx","../src/components/RebaseLayout.tsx","../src/components/RebaseShell.tsx","../src/preview/property_previews/ArrayOfMapsPreview.tsx","../src/collection_editor/ui/MissingReferenceWidget.tsx"],"sourcesContent":["import type { EntityCollection, EntityCustomView } from \"@rebasepro/types\";\nimport { Entity, RebaseContext, User } from \"@rebasepro/types\";\nimport { useEffect, useState, useMemo } from \"react\";\nimport { getNavigationEntriesFromPath } from \"@rebasepro/common\";\nimport { useCMSContext } from \"./useCMSContext\";\n\n/**\n * @see resolveNavigationFrom\n * @group Hooks and utilities\n */\nexport type ResolvedNavigationEntry<M extends Record<string, unknown>> =\n | ResolvedNavigationEntity<M>\n | ResolvedNavigationCollection<M>\n | ResolvedNavigationEntityCustom<M>;\n\n/**\n * @see resolveNavigationFrom\n * @group Hooks and utilities\n */\nexport interface ResolvedNavigationEntity<M extends Record<string, unknown>> {\n type: \"entity\";\n entity: Entity<M>;\n entityId: string | number;\n path: string;\n parentCollection: EntityCollection<M>;\n}\n\n/**\n * @see resolveNavigationFrom\n * @group Hooks and utilities\n */\nexport interface ResolvedNavigationCollection<M extends Record<string, unknown>> {\n type: \"collection\";\n path: string;\n collection: EntityCollection<M>;\n}\n\n/**\n * @see resolveNavigationFrom\n * @group Hooks and utilities\n */\ninterface ResolvedNavigationEntityCustom<M extends Record<string, unknown>> {\n type: \"custom_view\";\n path: string;\n view: EntityCustomView<M>;\n}\n\n/**\n * Use this function to retrieve an array of navigation entries (resolved\n * collection, entity or entity custom_view) for the given path. You need to pass the app context\n * that you receive in different callbacks, such as the save hooks.\n *\n * It will take into account the `navigation` provided at the `Rebase` level.\n *\n * @param path\n * @param context\n * @group Hooks and utilities\n */\nexport function resolveNavigationFrom<M extends Record<string, unknown>, USER extends User>({\n path,\n context\n}: {\n path: string,\n context: RebaseContext<USER>\n}): Promise<ResolvedNavigationEntry<M>[]> {\n\n const data = context.data;\n const { navigationStateController, collectionRegistryController } = context;\n\n if (!navigationStateController || !collectionRegistryController) {\n throw Error(\"Calling resolveNavigationFrom, but main navigation has not yet been initialised\");\n }\n\n const navigationEntries = getNavigationEntriesFromPath({\n path,\n collections: collectionRegistryController.collections ?? []\n });\n\n const resultPromises: Promise<ResolvedNavigationEntry<any>>[] = navigationEntries\n .map((entry) => {\n if (entry.type === \"collection\") {\n return Promise.resolve(entry);\n } else if (entry.type === \"entity\") {\n const collection = collectionRegistryController.getCollection(entry.slug);\n if (!collection) {\n throw Error(`No collection defined in the navigation for the entity with path ${entry.slug}`);\n }\n return data.collection(entry.slug).findById(entry.entityId)\n .then((entity) => {\n if (!entity) return undefined;\n return { ...entry,\nentity };\n });\n } else if (entry.type === \"custom_view\") {\n return Promise.resolve(entry);\n } else {\n throw Error(\"Unmapped element in useEntitiesFromPath\");\n }\n })\n .filter(v => Boolean(v)) as Promise<ResolvedNavigationEntry<any>>[];\n\n return Promise.all(resultPromises);\n}\n\n/**\n * @group Hooks and utilities\n */\nexport interface NavigationFromProps {\n path: string;\n}\n\n/**\n * @group Hooks and utilities\n */\nexport interface NavigationFrom<M extends Record<string, unknown>> {\n data?: ResolvedNavigationEntry<M>[]\n dataLoading: boolean,\n dataLoadingError?: Error\n}\n\n/**\n * Use this hook to retrieve an array of navigation entries (resolved\n * collection or entity) for the given path. You can use this hook\n * in any React component that lives under `Rebase`\n * @group Hooks and utilities\n */\nexport function useResolvedNavigationFrom<M extends Record<string, unknown>>(\n {\n path\n }: NavigationFromProps): NavigationFrom<M> {\n\n const context = useCMSContext();\n const { navigationStateController, collectionRegistryController } = context;\n\n const [data, setData] = useState<ResolvedNavigationEntry<M>[] | undefined>();\n const [dataLoading, setDataLoading] = useState<boolean>(false);\n const [dataLoadingError, setDataLoadingError] = useState<Error | undefined>();\n\n useEffect(() => {\n if (navigationStateController && collectionRegistryController) {\n setDataLoading(true);\n setDataLoadingError(undefined);\n resolveNavigationFrom<M, User>({ path,\ncontext })\n .then(setData)\n .catch((e) => setDataLoadingError(e))\n .finally(() => setDataLoading(false));\n }\n\n }, [path, context]);\n\n return useMemo(() => {\n if (!navigationStateController) {\n return { dataLoading: true };\n }\n return { data,\ndataLoading,\ndataLoadingError };\n }, [navigationStateController, data, dataLoading, dataLoadingError]);\n}\n","import { useEntitySelectionDialog } from \"../hooks/useEntitySelectionDialog\";\nimport type { EntityCollection } from \"@rebasepro/types\";\nimport React, { useCallback, useMemo } from \"react\";\n\nimport { Entity, EntityReference, FilterValues } from \"@rebasepro/types\";\nimport type { PreviewSize } from \"../types/components/PropertyPreviewProps\";\nimport { getReferenceFrom } from \"@rebasepro/common\";\nimport { ReferencePreview } from \"../preview\";\nimport { Button, cls } from \"@rebasepro/ui\";\nimport { useCollectionRegistryController } from \"../index\";\n\nexport type ReferenceWidgetProps<M extends Record<string, unknown>> = {\n name?: string,\n multiselect?: boolean,\n value: EntityReference | EntityReference[] | null,\n onReferenceSelected?: (params: {\n reference: EntityReference | null,\n entity: Entity<M> | null\n }) => void,\n onMultipleReferenceSelected?: (params: {\n references: EntityReference[] | null,\n entities: Entity<M>[] | null\n }) => void,\n path: string,\n disabled?: boolean,\n previewProperties?: string[];\n /**\n * Allow selection of entities that pass the given filter only.\n */\n fixedFilter?: FilterValues<string>;\n size: PreviewSize;\n className?: string;\n includeId?: boolean;\n includeEntityLink?: boolean;\n};\n\n/**\n * This field allows selecting reference/s.\n */\nexport function ReferenceWidget<M extends Record<string, unknown>>({\n name,\n multiselect = false,\n path,\n disabled,\n value,\n onReferenceSelected,\n onMultipleReferenceSelected,\n previewProperties,\n fixedFilter,\n size,\n className,\n includeId,\n includeEntityLink\n}: ReferenceWidgetProps<M>) {\n\n const collectionRegistryController = useCollectionRegistryController();\n\n const collection: EntityCollection | undefined = useMemo(() => {\n return collectionRegistryController.getCollection(path);\n }, [path, collectionRegistryController.getCollection]);\n\n const onSingleEntitySelected = useCallback((entity: Entity<M> | null) => {\n if (disabled)\n return;\n if (onReferenceSelected) {\n const reference = entity ? getReferenceFrom(entity) : null;\n onReferenceSelected?.({\n reference,\n entity\n });\n }\n }, [disabled, onReferenceSelected]);\n\n const onMultipleEntitiesSelected = useCallback((entities: Entity<M>[]) => {\n if (disabled)\n return;\n if (onMultipleReferenceSelected) {\n const references = entities ? entities.map(e => getReferenceFrom(e)) : null;\n onMultipleReferenceSelected({\n references,\n entities\n });\n }\n }, [disabled, onReferenceSelected]);\n\n const referenceDialogController = useEntitySelectionDialog({\n multiselect,\n path,\n collection,\n onSingleEntitySelected,\n onMultipleEntitiesSelected,\n fixedFilter\n }\n );\n\n const clearValue = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n if (multiselect) {\n onMultipleEntitiesSelected([]);\n } else {\n onSingleEntitySelected(null);\n }\n }, [onReferenceSelected]);\n\n let child: React.ReactNode;\n\n const onEntryClick = () => {\n if (disabled)\n return;\n referenceDialogController.open();\n };\n\n if (Array.isArray(value)) {\n child = <div className={\"flex flex-col gap-4\"}>\n {value.map((ref, index) => {\n return <ReferencePreview\n key={`reference_preview_${index}`}\n onClick={onEntryClick}\n reference={ref}\n disabled={disabled}\n previewProperties={previewProperties}\n size={size}\n includeId={includeId}\n includeEntityLink={includeEntityLink}/>\n })}\n </div>\n } else if (value?.isEntityReference && value?.isEntityReference()) {\n child = <ReferencePreview\n reference={value}\n onClick={onEntryClick}\n disabled={disabled}\n previewProperties={previewProperties}\n size={size}\n includeId={includeId}\n includeEntityLink={includeEntityLink}/>\n\n }\n return <div className={cls(\"text-sm font-medium\",\n \"min-w-80 flex flex-col gap-4\",\n \"relative transition-colors duration-200 ease-in rounded-xs font-medium\",\n disabled ? \"bg-opacity-50\" : \"hover:bg-opacity-75\",\n \"dark:text-white/50 text-text-primary/50 dark:text-text-primary-dark/50 dark:text-white/50\",\n className\n )}>\n\n {child}\n {!value && <div className=\"justify-center text-left\">\n <Button disabled={disabled}\n onClick={onEntryClick}>\n Edit {name}\n </Button>\n </div>}\n\n </div>;\n}\n","import type { AppView } from \"@rebasepro/types\";\nimport React, { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n;\nimport { useUrlController } from \"../hooks\";\nimport { useAdminModeController } from \"@rebasepro/core\";\nexport interface AdminModeSyncerProps {\n /**\n * Map of views designated as 'Studio' views.\n * Navigating to any of these views will automatically flag the admin mode as \"studio\".\n */\n devViews?: AppView[];\n}\n\n/**\n * A highly customizable utility component that observes react-router routes and\n * actively shifts the internal Rebase `adminModeController` context to match\n * the user's active window segment (e.g., Content vs Studio mode).\n *\n * Placing this anywhere safely inside the Rebase layout automatically triggers\n * UI mode synchronization.\n */\nexport function AdminModeSyncer({ devViews }: AdminModeSyncerProps) {\n const location = useLocation();\n const urlController = useUrlController();\n const adminModeController = useAdminModeController();\n\n // Keep track of the current mode using a ref to avoid adding it to the dependency array\n const currentModeRef = React.useRef(adminModeController.mode);\n currentModeRef.current = adminModeController.mode;\n\n // Stable ref for setMode so it doesn't trigger the effect\n const setModeRef = React.useRef(adminModeController.setMode);\n setModeRef.current = adminModeController.setMode;\n\n useEffect(() => {\n const path = location.pathname;\n const isContentRoute = urlController.isUrlCollectionPath(path) || path === urlController.basePath;\n\n // Check both devViews slugs AND the studio home path (/s or basePath/s)\n const studioHomePath = urlController.basePath === \"/\" ? \"/s\" : `${urlController.basePath}/s`;\n const isStudioRoute = path === studioHomePath || path.startsWith(studioHomePath + \"/\") || devViews?.some(view => {\n const viewPath = urlController.buildAppUrlPath(view.slug);\n return path.startsWith(`${viewPath}/`) || path === viewPath;\n });\n\n if (isStudioRoute && currentModeRef.current !== \"studio\") {\n setModeRef.current(\"studio\");\n } else if (isContentRoute && currentModeRef.current !== \"content\") {\n setModeRef.current(\"content\");\n }\n }, [location.pathname, urlController, devViews]);\n\n return null;\n}\n\n","import React, { useLayoutEffect } from \"react\";\nimport { useRebaseRegistryDispatch } from \"@rebasepro/core\";\nimport type { RebaseCMSConfig } from \"@rebasepro/types\";\n\n/**\n * Declarative component to configure the CMS in Rebase.\n * Renders nothing — purely registers config into the RebaseRegistry.\n *\n * When `collectionEditor` is provided, the built-in visual schema editor\n * is auto-wired as a native feature (slots, provider, Studio view) without\n * needing any external plugin.\n */\nexport function RebaseCMS({ collections, homePage, entityViews, entityActions, plugins, collectionEditor, navigationGroupMappings }: RebaseCMSConfig) {\n const dispatch = useRebaseRegistryDispatch();\n\n useLayoutEffect(() => {\n dispatch.registerCMS({ collections,\nhomePage,\nentityViews,\nentityActions,\nplugins,\ncollectionEditor,\nnavigationGroupMappings });\n return () => dispatch.unregisterCMS();\n }, [dispatch, collections, homePage, entityViews, entityActions, plugins, collectionEditor, navigationGroupMappings]);\n\n return null;\n}\n","import React from \"react\";\nimport {\n useRebaseRegistry,\n useAuthController\n} from \"@rebasepro/core\";\nimport { CircularProgressCenter } from \"@rebasepro/ui\";\nimport { LoginView } from \"@rebasepro/core\";\n\n/**\n * Auth gate component that handles the authentication flow.\n *\n * - Shows a loading spinner while `authController.initialLoading` is true.\n * - Shows the login view when no user is authenticated.\n * - Renders `children` when a user is authenticated.\n *\n * **Independently usable**: Use this alone when you want auth gating\n * without the full CMS layout or navigation.\n *\n * @example\n * ```tsx\n * <RebaseAuthGate>\n * <MyCustomApp />\n * </RebaseAuthGate>\n * ```\n */\nexport function RebaseAuthGate({ children }: { children: React.ReactNode }) {\n const registry = useRebaseRegistry();\n const authController = useAuthController();\n\n console.log(\"[AuthGate] initialLoading:\", authController?.initialLoading, \"user:\", authController?.user?.email ?? null);\n\n if (authController?.initialLoading) {\n return <CircularProgressCenter size={\"large\"}/>;\n }\n\n if (!authController?.user) {\n const ActiveLoginView = registry.authConfig?.loginView ?? (\n <LoginView authController={authController as any}/>\n );\n return <>{ActiveLoginView}</>;\n }\n\n return <>{children}</>;\n}\n","import React from \"react\";\nimport { Outlet } from \"react-router-dom\";\nimport {\n useAdminModeController,\n useRebaseRegistry\n} from \"@rebasepro/core\";\n\nimport { Scaffold } from \"./app/Scaffold\";\nimport { AppBar } from \"./app/AppBar\";\nimport { Drawer } from \"./app/Drawer\";\nimport { SideDialogs } from \"./SideDialogs\";\nimport { AdminModeSyncer } from \"./AdminModeSyncer\";\nimport type { AppView } from \"@rebasepro/types\";\n\nexport interface RebaseLayoutProps {\n /** Title shown in the drawer. */\n title?: string;\n /** Custom AppBar to override the default. */\n appBar?: React.ReactNode;\n /** Custom Drawer to override the default. */\n drawer?: React.ReactNode;\n /** Whether to auto-open the drawer on load. */\n autoOpenDrawer?: boolean;\n /** Dev views passed to AdminModeSyncer (resolved from RebaseNavigation). */\n devViews?: AppView[];\n}\n\n/**\n * Layout layer — provides the Scaffold, AppBar, Drawer, and SideDialogs.\n *\n * Wraps the route outlet with the standard Rebase admin layout.\n * Override individual pieces (appBar, drawer) via props.\n *\n * **Independently usable**: Use this when you want the Rebase layout\n * without its default route definitions.\n *\n * @example\n * ```tsx\n * <RebaseLayout title=\"My Admin\">\n * <Route path=\"/\" element={<MyHomePage />} />\n * <Route path=\"/custom\" element={<CustomView />} />\n * </RebaseLayout>\n * ```\n */\nexport function RebaseLayout(props: RebaseLayoutProps) {\n const {\n title = \"Rebase\",\n appBar,\n drawer,\n autoOpenDrawer = false,\n devViews = []\n } = props;\n\n const adminModeController = useAdminModeController();\n\n const ActiveAppBar = appBar ?? <AppBar/>;\n const ActiveDrawer = drawer ?? (\n <Drawer\n title={title}\n logoDestination={adminModeController.mode === \"studio\" ? \"/s\" : \"/\"}\n />\n );\n\n return (\n <Scaffold autoOpenDrawer={autoOpenDrawer}>\n <AdminModeSyncer devViews={devViews}/>\n {ActiveAppBar}\n {ActiveDrawer}\n <Outlet/>\n <SideDialogs/>\n </Scaffold>\n );\n}\n","import React, { useMemo } from \"react\";\nimport {\n useRebaseRegistry\n} from \"@rebasepro/core\";\n\nimport { RebaseAuthGate } from \"./RebaseAuthGate\";\nimport { RebaseNavigation } from \"./RebaseNavigation\";\nimport { RebaseLayout } from \"./RebaseLayout\";\nimport { RebaseRouteDefs } from \"./RebaseRouteDefs\";\n\nexport interface RebaseShellProps {\n title?: string;\n appBar?: React.ReactNode;\n drawer?: React.ReactNode;\n autoOpenDrawer?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Convenience component that composes all four CMS layers:\n *\n * ```\n * <RebaseAuthGate>\n * <RebaseNavigation>\n * <RebaseRouteDefs layout={<RebaseLayout>}>\n * {children}\n * </RebaseRouteDefs>\n * </RebaseNavigation>\n * </RebaseAuthGate>\n * ```\n *\n * Each layer is independently usable — see their individual docs.\n * RebaseShell is sugar that composes them all with sensible defaults.\n */\nexport function RebaseShell(props: RebaseShellProps) {\n const {\n title = \"Rebase\",\n appBar,\n drawer,\n autoOpenDrawer = false,\n children\n } = props;\n\n const registry = useRebaseRegistry();\n\n // Compute devViews for the layout's AdminModeSyncer\n const devViews = useMemo(() => {\n return registry.studioConfig?.devViews ?? [];\n }, [registry.studioConfig?.devViews]);\n\n return (\n <RebaseAuthGate>\n <RebaseNavigation>\n <RebaseRouteDefs\n layout={\n <RebaseLayout\n title={title}\n appBar={appBar}\n drawer={drawer}\n autoOpenDrawer={autoOpenDrawer}\n devViews={devViews}\n />\n }\n >\n {children}\n </RebaseRouteDefs>\n </RebaseNavigation>\n </RebaseAuthGate>\n );\n}\n","import type { ArrayProperty, Property } from \"@rebasepro/types\";\nimport React from \"react\";\nimport { ErrorBoundary } from \"@rebasepro/ui\";\nimport type { PropertyPreviewProps } from \"../../types/components/PropertyPreviewProps\";\nimport { PropertyPreview } from \"../PropertyPreview\";\n\n/**\n * @group Preview components\n */\nexport function ArrayOfMapsPreview({\n propertyKey,\n value,\n property,\n size\n // entity\n}: PropertyPreviewProps<ArrayProperty>) {\n\n if (Array.isArray(property?.of)) {\n throw Error(\"Using array properties instead of single one in `of` in ArrayProperty\");\n }\n\n if (property?.type !== \"array\" || !property.of || property.of.type !== \"map\")\n throw Error(\"Picked wrong preview component ArrayOfMapsPreview\");\n\n const mapProperty = property.of;\n const properties = mapProperty.properties;\n if (!properties) {\n throw Error(`You need to specify a 'properties' prop (or specify a custom field) in your map property ${propertyKey}`);\n }\n const values = value;\n const previewProperties: string[] | undefined = (mapProperty.ui as any)?.previewProperties;\n\n if (!values) return null;\n\n let mapProperties = previewProperties;\n if (!mapProperties || !mapProperties.length) {\n mapProperties = Object.keys(properties);\n if (size)\n mapProperties = mapProperties.slice(0, 3);\n }\n\n return (\n <div className=\"table-auto text-xs\">\n <div>\n {values &&\n values.map((v: any, index: number) => {\n return (\n <div key={`table_${v}_${index}`}\n className=\"border-b last:border-b-0 py-2\">\n {mapProperties && mapProperties.map(\n (key) => (\n <div\n key={`table-cell-${key as string}`}\n className=\"table-cell\"\n >\n <ErrorBoundary>\n <PropertyPreview\n propertyKey={key as string}\n value={(v)[key]}\n property={properties[key as string] as Property}\n // entity={entity}\n size={\"small\"}/>\n </ErrorBoundary>\n </div>\n )\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","import { useCollectionRegistryController } from \"../_cms_internals\";\nimport { ErrorView, useTranslation } from \"@rebasepro/core\";\nimport { useCollectionEditorController } from \"../useCollectionEditorController\";\nimport { Button } from \"@rebasepro/ui\";\nimport { prettifyIdentifier } from \"@rebasepro/utils\";\nimport { getLastSegment } from \"@rebasepro/common\";\n\nexport function MissingReferenceWidget({ path: pathProp }: {\n path: string\n}) {\n const registry = useCollectionRegistryController();\n const path = getLastSegment(pathProp);\n const parentCollectionSlugs = registry.getParentCollectionSlugs(pathProp);\n const parentEntityIds = registry.getParentEntityIds(pathProp);\n const collectionEditor = useCollectionEditorController();\n const { t } = useTranslation();\n return <div className={\"p-1 flex flex-col items-center\"}>\n <ErrorView error={t(\"studio_missing_reference_error\", { path })}/>\n <Button className={\"mx-2\"}\n size={\"small\"}\n onClick={() => {\n collectionEditor.createCollection({\n initialValues: { path,\nname: prettifyIdentifier(path) },\n parentCollectionSlugs, parentEntityIds,\n redirect: false,\n sourceClick: \"missing_reference\"\n });\n }}>\n {t(\"studio_missing_reference_create\")}\n </Button>\n </div>;\n}\n\n"],"names":["resolveNavigationFrom","path","context","data","navigationStateController","collectionRegistryController","Error","navigationEntries","getNavigationEntriesFromPath","collections","resultPromises","map","entry","type","Promise","resolve","collection","getCollection","slug","findById","entityId","then","entity","undefined","filter","v","Boolean","all","useResolvedNavigationFrom","t0","$","_c","useCMSContext","setData","useState","dataLoading","setDataLoading","dataLoadingError","setDataLoadingError","t1","catch","e","finally","t2","useEffect","t3","bb0","t4","Symbol","for","ReferenceWidget","name","multiselect","disabled","value","onReferenceSelected","onMultipleReferenceSelected","previewProperties","fixedFilter","size","className","includeId","includeEntityLink","useCollectionRegistryController","useMemo","onSingleEntitySelected","useCallback","reference","getReferenceFrom","onMultipleEntitiesSelected","entities","references","referenceDialogController","useEntitySelectionDialog","stopPropagation","child","onEntryClick","open","Array","isArray","ref","index","isEntityReference","cls","AdminModeSyncer","devViews","location","useLocation","urlController","useUrlController","adminModeController","useAdminModeController","currentModeRef","React","useRef","mode","current","setModeRef","setMode","pathname","isContentRoute","isUrlCollectionPath","basePath","studioHomePath","isStudioRoute","startsWith","some","view","viewPath","buildAppUrlPath","RebaseCMS","homePage","entityViews","entityActions","plugins","collectionEditor","navigationGroupMappings","dispatch","useRebaseRegistryDispatch","registerCMS","unregisterCMS","useLayoutEffect","RebaseAuthGate","children","registry","useRebaseRegistry","authController","useAuthController","console","log","initialLoading","user","email","authConfig","loginView","ActiveLoginView","RebaseLayout","props","title","appBar","drawer","autoOpenDrawer","ActiveAppBar","t5","ActiveDrawer","t6","t7","t8","t9","RebaseShell","studioConfig","ArrayOfMapsPreview","propertyKey","property","of","mapProperty","properties","values","ui","mapProperties","length","slice","key","MissingReferenceWidget","pathProp","getLastSegment","getParentCollectionSlugs","parentCollectionSlugs","getParentEntityIds","parentEntityIds","useCollectionEditorController","t","useTranslation","T0","ErrorView","createCollection","initialValues","prettifyIdentifier","redirect","sourceClick"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/hooks/useResolvedNavigationFrom.tsx","../src/components/ReferenceWidget.tsx","../src/components/AdminModeSyncer.tsx","../src/components/RebaseCMS.tsx","../src/components/RebaseAuthGate.tsx","../src/components/RebaseLayout.tsx","../src/components/RebaseShell.tsx","../src/preview/property_previews/ArrayOfMapsPreview.tsx","../src/collection_editor/ui/MissingReferenceWidget.tsx","../src/components/admin/RolesFilterSelect.tsx","../src/components/admin/UserRolesSelectField.tsx"],"sourcesContent":["import type { EntityCollection, EntityCustomView } from \"@rebasepro/types\";\nimport { Entity, RebaseContext, User } from \"@rebasepro/types\";\nimport { useEffect, useState, useMemo } from \"react\";\nimport { getNavigationEntriesFromPath } from \"@rebasepro/common\";\nimport { useCMSContext } from \"./useCMSContext\";\n\n/**\n * @see resolveNavigationFrom\n * @group Hooks and utilities\n */\nexport type ResolvedNavigationEntry<M extends Record<string, unknown>> =\n | ResolvedNavigationEntity<M>\n | ResolvedNavigationCollection<M>\n | ResolvedNavigationEntityCustom<M>;\n\n/**\n * @see resolveNavigationFrom\n * @group Hooks and utilities\n */\nexport interface ResolvedNavigationEntity<M extends Record<string, unknown>> {\n type: \"entity\";\n entity: Entity<M>;\n entityId: string | number;\n path: string;\n parentCollection: EntityCollection<M>;\n}\n\n/**\n * @see resolveNavigationFrom\n * @group Hooks and utilities\n */\nexport interface ResolvedNavigationCollection<M extends Record<string, unknown>> {\n type: \"collection\";\n path: string;\n collection: EntityCollection<M>;\n}\n\n/**\n * @see resolveNavigationFrom\n * @group Hooks and utilities\n */\ninterface ResolvedNavigationEntityCustom<M extends Record<string, unknown>> {\n type: \"custom_view\";\n path: string;\n view: EntityCustomView<M>;\n}\n\n/**\n * Use this function to retrieve an array of navigation entries (resolved\n * collection, entity or entity custom_view) for the given path. You need to pass the app context\n * that you receive in different callbacks, such as the save hooks.\n *\n * It will take into account the `navigation` provided at the `Rebase` level.\n *\n * @param path\n * @param context\n * @group Hooks and utilities\n */\nexport function resolveNavigationFrom<M extends Record<string, unknown>, USER extends User>({\n path,\n context\n}: {\n path: string,\n context: RebaseContext<USER>\n}): Promise<ResolvedNavigationEntry<M>[]> {\n\n const data = context.data;\n const { navigationStateController, collectionRegistryController } = context;\n\n if (!navigationStateController || !collectionRegistryController) {\n throw Error(\"Calling resolveNavigationFrom, but main navigation has not yet been initialised\");\n }\n\n const navigationEntries = getNavigationEntriesFromPath({\n path,\n collections: collectionRegistryController.collections ?? []\n });\n\n const resultPromises: Promise<ResolvedNavigationEntry<any>>[] = navigationEntries\n .map((entry) => {\n if (entry.type === \"collection\") {\n return Promise.resolve(entry);\n } else if (entry.type === \"entity\") {\n const collection = collectionRegistryController.getCollection(entry.slug);\n if (!collection) {\n throw Error(`No collection defined in the navigation for the entity with path ${entry.slug}`);\n }\n return data.collection(entry.slug).findById(entry.entityId)\n .then((entity) => {\n if (!entity) return undefined;\n return { ...entry,\nentity };\n });\n } else if (entry.type === \"custom_view\") {\n return Promise.resolve(entry);\n } else {\n throw Error(\"Unmapped element in useEntitiesFromPath\");\n }\n })\n .filter(v => Boolean(v)) as Promise<ResolvedNavigationEntry<any>>[];\n\n return Promise.all(resultPromises);\n}\n\n/**\n * @group Hooks and utilities\n */\nexport interface NavigationFromProps {\n path: string;\n}\n\n/**\n * @group Hooks and utilities\n */\nexport interface NavigationFrom<M extends Record<string, unknown>> {\n data?: ResolvedNavigationEntry<M>[]\n dataLoading: boolean,\n dataLoadingError?: Error\n}\n\n/**\n * Use this hook to retrieve an array of navigation entries (resolved\n * collection or entity) for the given path. You can use this hook\n * in any React component that lives under `Rebase`\n * @group Hooks and utilities\n */\nexport function useResolvedNavigationFrom<M extends Record<string, unknown>>(\n {\n path\n }: NavigationFromProps): NavigationFrom<M> {\n\n const context = useCMSContext();\n const { navigationStateController, collectionRegistryController } = context;\n\n const [data, setData] = useState<ResolvedNavigationEntry<M>[] | undefined>();\n const [dataLoading, setDataLoading] = useState<boolean>(false);\n const [dataLoadingError, setDataLoadingError] = useState<Error | undefined>();\n\n useEffect(() => {\n if (navigationStateController && collectionRegistryController) {\n setDataLoading(true);\n setDataLoadingError(undefined);\n resolveNavigationFrom<M, User>({ path,\ncontext })\n .then(setData)\n .catch((e) => setDataLoadingError(e))\n .finally(() => setDataLoading(false));\n }\n\n }, [path, context]);\n\n return useMemo(() => {\n if (!navigationStateController) {\n return { dataLoading: true };\n }\n return { data,\ndataLoading,\ndataLoadingError };\n }, [navigationStateController, data, dataLoading, dataLoadingError]);\n}\n","import { useEntitySelectionDialog } from \"../hooks/useEntitySelectionDialog\";\nimport type { EntityCollection } from \"@rebasepro/types\";\nimport React, { useCallback, useMemo } from \"react\";\n\nimport { Entity, EntityReference, FilterValues } from \"@rebasepro/types\";\nimport type { PreviewSize } from \"../types/components/PropertyPreviewProps\";\nimport { getReferenceFrom } from \"@rebasepro/common\";\nimport { ReferencePreview } from \"../preview\";\nimport { Button, cls } from \"@rebasepro/ui\";\nimport { useCollectionRegistryController } from \"../index\";\n\nexport type ReferenceWidgetProps<M extends Record<string, unknown>> = {\n name?: string,\n multiselect?: boolean,\n value: EntityReference | EntityReference[] | null,\n onReferenceSelected?: (params: {\n reference: EntityReference | null,\n entity: Entity<M> | null\n }) => void,\n onMultipleReferenceSelected?: (params: {\n references: EntityReference[] | null,\n entities: Entity<M>[] | null\n }) => void,\n path: string,\n disabled?: boolean,\n previewProperties?: string[];\n /**\n * Allow selection of entities that pass the given filter only.\n */\n fixedFilter?: FilterValues<string>;\n size: PreviewSize;\n className?: string;\n includeId?: boolean;\n includeEntityLink?: boolean;\n};\n\n/**\n * This field allows selecting reference/s.\n */\nexport function ReferenceWidget<M extends Record<string, unknown>>({\n name,\n multiselect = false,\n path,\n disabled,\n value,\n onReferenceSelected,\n onMultipleReferenceSelected,\n previewProperties,\n fixedFilter,\n size,\n className,\n includeId,\n includeEntityLink\n}: ReferenceWidgetProps<M>) {\n\n const collectionRegistryController = useCollectionRegistryController();\n\n const collection: EntityCollection | undefined = useMemo(() => {\n return collectionRegistryController.getCollection(path);\n }, [path, collectionRegistryController.getCollection]);\n\n const onSingleEntitySelected = useCallback((entity: Entity<M> | null) => {\n if (disabled)\n return;\n if (onReferenceSelected) {\n const reference = entity ? getReferenceFrom(entity) : null;\n onReferenceSelected?.({\n reference,\n entity\n });\n }\n }, [disabled, onReferenceSelected]);\n\n const onMultipleEntitiesSelected = useCallback((entities: Entity<M>[]) => {\n if (disabled)\n return;\n if (onMultipleReferenceSelected) {\n const references = entities ? entities.map(e => getReferenceFrom(e)) : null;\n onMultipleReferenceSelected({\n references,\n entities\n });\n }\n }, [disabled, onReferenceSelected]);\n\n const referenceDialogController = useEntitySelectionDialog({\n multiselect,\n path,\n collection,\n onSingleEntitySelected,\n onMultipleEntitiesSelected,\n fixedFilter\n }\n );\n\n const clearValue = useCallback((e: React.MouseEvent) => {\n e.stopPropagation();\n if (multiselect) {\n onMultipleEntitiesSelected([]);\n } else {\n onSingleEntitySelected(null);\n }\n }, [onReferenceSelected]);\n\n let child: React.ReactNode;\n\n const onEntryClick = () => {\n if (disabled)\n return;\n referenceDialogController.open();\n };\n\n if (Array.isArray(value)) {\n child = <div className={\"flex flex-col gap-4\"}>\n {value.map((ref, index) => {\n return <ReferencePreview\n key={`reference_preview_${index}`}\n onClick={onEntryClick}\n reference={ref}\n disabled={disabled}\n previewProperties={previewProperties}\n size={size}\n includeId={includeId}\n includeEntityLink={includeEntityLink}/>\n })}\n </div>\n } else if (value?.isEntityReference && value?.isEntityReference()) {\n child = <ReferencePreview\n reference={value}\n onClick={onEntryClick}\n disabled={disabled}\n previewProperties={previewProperties}\n size={size}\n includeId={includeId}\n includeEntityLink={includeEntityLink}/>\n\n }\n return <div className={cls(\"text-sm font-medium\",\n \"min-w-80 flex flex-col gap-4\",\n \"relative transition-colors duration-200 ease-in rounded-xs font-medium\",\n disabled ? \"bg-opacity-50\" : \"hover:bg-opacity-75\",\n \"dark:text-white/50 text-text-primary/50 dark:text-text-primary-dark/50 dark:text-white/50\",\n className\n )}>\n\n {child}\n {!value && <div className=\"justify-center text-left\">\n <Button disabled={disabled}\n onClick={onEntryClick}>\n Edit {name}\n </Button>\n </div>}\n\n </div>;\n}\n","import type { AppView } from \"@rebasepro/types\";\nimport React, { useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\n;\nimport { useUrlController } from \"../hooks/navigation/contexts/UrlContext\";\nimport { useAdminModeController } from \"@rebasepro/core\";\nexport interface AdminModeSyncerProps {\n /**\n * Map of views designated as 'Studio' views.\n * Navigating to any of these views will automatically flag the admin mode as \"studio\".\n */\n devViews?: AppView[];\n}\n\n/**\n * A highly customizable utility component that observes react-router routes and\n * actively shifts the internal Rebase `adminModeController` context to match\n * the user's active window segment (e.g., Content vs Studio mode).\n *\n * Placing this anywhere safely inside the Rebase layout automatically triggers\n * UI mode synchronization.\n */\nexport function AdminModeSyncer({ devViews }: AdminModeSyncerProps) {\n const location = useLocation();\n const urlController = useUrlController();\n const adminModeController = useAdminModeController();\n\n // Keep track of the current mode using a ref to avoid adding it to the dependency array\n const currentModeRef = React.useRef(adminModeController.mode);\n currentModeRef.current = adminModeController.mode;\n\n // Stable ref for setMode so it doesn't trigger the effect\n const setModeRef = React.useRef(adminModeController.setMode);\n setModeRef.current = adminModeController.setMode;\n\n useEffect(() => {\n const path = location.pathname;\n const isContentRoute = urlController.isUrlCollectionPath(path) || path === urlController.basePath;\n\n // Check both devViews slugs AND the studio home path (/s or basePath/s)\n const studioHomePath = urlController.basePath === \"/\" ? \"/s\" : `${urlController.basePath}/s`;\n const isStudioRoute = path === studioHomePath || path.startsWith(studioHomePath + \"/\") || devViews?.some(view => {\n const viewPath = urlController.buildAppUrlPath(view.slug);\n return path.startsWith(`${viewPath}/`) || path === viewPath;\n });\n\n if (isStudioRoute && currentModeRef.current !== \"studio\") {\n setModeRef.current(\"studio\");\n } else if (isContentRoute && currentModeRef.current !== \"content\") {\n setModeRef.current(\"content\");\n }\n }, [location.pathname, urlController, devViews]);\n\n return null;\n}\n\n","import React, { useLayoutEffect } from \"react\";\nimport { useRebaseRegistryDispatch } from \"@rebasepro/core\";\nimport type { RebaseCMSConfig } from \"@rebasepro/types\";\n\n/**\n * Declarative component to configure the CMS in Rebase.\n * Renders nothing — purely registers config into the RebaseRegistry.\n *\n * When `collectionEditor` is provided, the built-in visual schema editor\n * is auto-wired as a native feature (slots, provider, Studio view) without\n * needing any external plugin.\n */\nexport function RebaseCMS({ collections, homePage, entityViews, entityActions, plugins, collectionEditor, navigationGroupMappings }: RebaseCMSConfig) {\n const dispatch = useRebaseRegistryDispatch();\n\n useLayoutEffect(() => {\n dispatch.registerCMS({ collections,\nhomePage,\nentityViews,\nentityActions,\nplugins,\ncollectionEditor,\nnavigationGroupMappings });\n return () => dispatch.unregisterCMS();\n }, [dispatch, collections, homePage, entityViews, entityActions, plugins, collectionEditor, navigationGroupMappings]);\n\n return null;\n}\n","import React from \"react\";\nimport {\n useRebaseRegistry,\n useAuthController\n} from \"@rebasepro/core\";\nimport { CircularProgressCenter } from \"@rebasepro/ui\";\nimport { LoginView } from \"@rebasepro/core\";\nimport type { AuthControllerExtended } from \"@rebasepro/types\";\n\n/**\n * Auth gate component that handles the authentication flow.\n *\n * - Shows a loading spinner while `authController.initialLoading` is true.\n * - Shows the login view when no user is authenticated.\n * - Renders `children` when a user is authenticated.\n *\n * **Independently usable**: Use this alone when you want auth gating\n * without the full CMS layout or navigation.\n *\n * @example\n * ```tsx\n * <RebaseAuthGate>\n * <MyCustomApp />\n * </RebaseAuthGate>\n * ```\n */\nexport function RebaseAuthGate({ children }: { children: React.ReactNode }) {\n const registry = useRebaseRegistry();\n const authController = useAuthController();\n\n\n if (authController?.initialLoading) {\n return <CircularProgressCenter size={\"large\"}/>;\n }\n\n if (!authController?.user) {\n const ActiveLoginView = registry.authConfig?.loginView ?? (\n <LoginView authController={authController as AuthControllerExtended}/>\n );\n return <>{ActiveLoginView}</>;\n }\n\n return <>{children}</>;\n}\n","import React from \"react\";\nimport { Outlet } from \"react-router-dom\";\nimport {\n useAdminModeController,\n useRebaseRegistry\n} from \"@rebasepro/core\";\n\nimport { Scaffold } from \"./app/Scaffold\";\nimport { AppBar } from \"./app/AppBar\";\nimport { Drawer } from \"./app/Drawer\";\nimport { SideDialogs } from \"./SideDialogs\";\nimport { AdminModeSyncer } from \"./AdminModeSyncer\";\nimport type { AppView } from \"@rebasepro/types\";\n\nexport interface RebaseLayoutProps {\n /** Title shown in the drawer. */\n title?: string;\n /** Custom AppBar to override the default. */\n appBar?: React.ReactNode;\n /** Custom Drawer to override the default. */\n drawer?: React.ReactNode;\n /** Whether to auto-open the drawer on load. */\n autoOpenDrawer?: boolean;\n /** Dev views passed to AdminModeSyncer (resolved from RebaseNavigation). */\n devViews?: AppView[];\n}\n\n/**\n * Layout layer — provides the Scaffold, AppBar, Drawer, and SideDialogs.\n *\n * Wraps the route outlet with the standard Rebase admin layout.\n * Override individual pieces (appBar, drawer) via props.\n *\n * **Independently usable**: Use this when you want the Rebase layout\n * without its default route definitions.\n *\n * @example\n * ```tsx\n * <RebaseLayout title=\"My Admin\">\n * <Route path=\"/\" element={<MyHomePage />} />\n * <Route path=\"/custom\" element={<CustomView />} />\n * </RebaseLayout>\n * ```\n */\nexport function RebaseLayout(props: RebaseLayoutProps) {\n const {\n title = \"Rebase\",\n appBar,\n drawer,\n autoOpenDrawer = false,\n devViews = []\n } = props;\n\n const adminModeController = useAdminModeController();\n\n const ActiveAppBar = appBar ?? <AppBar/>;\n const ActiveDrawer = drawer ?? (\n <Drawer\n title={title}\n logoDestination={adminModeController.mode === \"studio\" ? \"/s\" : \"/\"}\n />\n );\n\n return (\n <Scaffold autoOpenDrawer={autoOpenDrawer}>\n <AdminModeSyncer devViews={devViews}/>\n {ActiveAppBar}\n {ActiveDrawer}\n <Outlet/>\n <SideDialogs/>\n </Scaffold>\n );\n}\n","import React, { useMemo } from \"react\";\nimport {\n useRebaseRegistry\n} from \"@rebasepro/core\";\n\nimport { RebaseAuthGate } from \"./RebaseAuthGate\";\nimport { RebaseNavigation } from \"./RebaseNavigation\";\nimport { RebaseLayout } from \"./RebaseLayout\";\nimport { RebaseRouteDefs } from \"./RebaseRouteDefs\";\n\nexport interface RebaseShellProps {\n title?: string;\n appBar?: React.ReactNode;\n drawer?: React.ReactNode;\n autoOpenDrawer?: boolean;\n children?: React.ReactNode;\n}\n\n/**\n * Convenience component that composes all four CMS layers:\n *\n * ```\n * <RebaseAuthGate>\n * <RebaseNavigation>\n * <RebaseRouteDefs layout={<RebaseLayout>}>\n * {children}\n * </RebaseRouteDefs>\n * </RebaseNavigation>\n * </RebaseAuthGate>\n * ```\n *\n * Each layer is independently usable — see their individual docs.\n * RebaseShell is sugar that composes them all with sensible defaults.\n */\nexport function RebaseShell(props: RebaseShellProps) {\n const {\n title = \"Rebase\",\n appBar,\n drawer,\n autoOpenDrawer = false,\n children\n } = props;\n\n const registry = useRebaseRegistry();\n\n // Compute devViews for the layout's AdminModeSyncer\n const devViews = useMemo(() => {\n return registry.studioConfig?.devViews ?? [];\n }, [registry.studioConfig?.devViews]);\n\n return (\n <RebaseAuthGate>\n <RebaseNavigation>\n <RebaseRouteDefs\n layout={\n <RebaseLayout\n title={title}\n appBar={appBar}\n drawer={drawer}\n autoOpenDrawer={autoOpenDrawer}\n devViews={devViews}\n />\n }\n >\n {children}\n </RebaseRouteDefs>\n </RebaseNavigation>\n </RebaseAuthGate>\n );\n}\n","import type { ArrayProperty, MapProperty, Property } from \"@rebasepro/types\";\nimport React from \"react\";\nimport { ErrorBoundary } from \"@rebasepro/ui\";\nimport type { PropertyPreviewProps } from \"../../types/components/PropertyPreviewProps\";\nimport { PropertyPreview } from \"../PropertyPreview\";\n\n/**\n * @group Preview components\n */\nexport function ArrayOfMapsPreview({\n propertyKey,\n value,\n property,\n size\n // entity\n}: PropertyPreviewProps<ArrayProperty>) {\n\n if (Array.isArray(property?.of)) {\n throw Error(\"Using array properties instead of single one in `of` in ArrayProperty\");\n }\n\n if (property?.type !== \"array\" || !property.of || property.of.type !== \"map\")\n throw Error(\"Picked wrong preview component ArrayOfMapsPreview\");\n\n const mapProperty = property.of;\n const properties = mapProperty.properties;\n if (!properties) {\n throw Error(`You need to specify a 'properties' prop (or specify a custom field) in your map property ${propertyKey}`);\n }\n const values = value;\n const previewProperties: string[] | undefined = (mapProperty as MapProperty).previewProperties;\n\n if (!values) return null;\n\n let mapProperties = previewProperties;\n if (!mapProperties || !mapProperties.length) {\n mapProperties = Object.keys(properties);\n if (size)\n mapProperties = mapProperties.slice(0, 3);\n }\n\n return (\n <div className=\"table-auto text-xs\">\n <div>\n {values &&\n values.map((v: any, index: number) => {\n return (\n <div key={`table_${v}_${index}`}\n className=\"border-b last:border-b-0 py-2\">\n {mapProperties && mapProperties.map(\n (key) => (\n <div\n key={`table-cell-${key as string}`}\n className=\"table-cell\"\n >\n <ErrorBoundary>\n <PropertyPreview\n propertyKey={key as string}\n value={(v)[key]}\n property={properties[key as string] as Property}\n // entity={entity}\n size={\"small\"}/>\n </ErrorBoundary>\n </div>\n )\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n","import { useCollectionRegistryController } from \"../_cms_internals\";\nimport { ErrorView, useTranslation } from \"@rebasepro/core\";\nimport { useCollectionEditorController } from \"../useCollectionEditorController\";\nimport { Button } from \"@rebasepro/ui\";\nimport { prettifyIdentifier } from \"@rebasepro/utils\";\nimport { getLastSegment } from \"@rebasepro/common\";\n\nexport function MissingReferenceWidget({ path: pathProp }: {\n path: string\n}) {\n const registry = useCollectionRegistryController();\n const path = getLastSegment(pathProp);\n const parentCollectionSlugs = registry.getParentCollectionSlugs(pathProp);\n const parentEntityIds = registry.getParentEntityIds(pathProp);\n const collectionEditor = useCollectionEditorController();\n const { t } = useTranslation();\n return <div className={\"p-1 flex flex-col items-center\"}>\n <ErrorView error={t(\"studio_missing_reference_error\", { path })}/>\n <Button className={\"mx-2\"}\n size={\"small\"}\n onClick={() => {\n collectionEditor.createCollection({\n initialValues: { path,\nname: prettifyIdentifier(path) },\n parentCollectionSlugs, parentEntityIds,\n redirect: false,\n sourceClick: \"missing_reference\"\n });\n }}>\n {t(\"studio_missing_reference_create\")}\n </Button>\n </div>;\n}\n\n","import React from \"react\";\nimport { CollectionActionsProps } from \"@rebasepro/types\";\nimport { Select, SelectItem } from \"@rebasepro/ui\";\nimport { useTranslation, useInternalUserManagementController } from \"@rebasepro/core\";\n\nexport function RolesFilterSelect({\n tableController\n}: CollectionActionsProps<any>) {\n const { t } = useTranslation();\n const userManagement = useInternalUserManagementController();\n const roles = userManagement?.roles || [];\n\n const currentFilterValue = (tableController.filterValues?.roles?.[1] as string) || \"\";\n\n const handleRoleChange = (newRole: string) => {\n const filterVal = newRole === \"\" ? undefined : newRole;\n if (filterVal) {\n tableController.setFilterValues?.({\n ...tableController.filterValues,\n roles: [\"array-contains\", filterVal]\n });\n } else {\n const nextFilters = { ...tableController.filterValues };\n delete nextFilters.roles;\n tableController.setFilterValues?.(nextFilters);\n }\n };\n\n if (!roles || roles.length === 0) return null;\n\n return (\n <Select\n value={currentFilterValue || \"__all__\"}\n onValueChange={(v) => handleRoleChange(v === \"__all__\" ? \"\" : v)}\n placeholder={t(\"all_roles\") || \"All Roles\"}\n size=\"small\"\n className=\"w-48\"\n >\n <SelectItem value=\"__all__\">{t(\"all_roles\") || \"All Roles\"}</SelectItem>\n {roles.map(role => (\n <SelectItem key={role.id} value={role.id}>{role.name}</SelectItem>\n ))}\n </Select>\n );\n}\n","import React from \"react\";\nimport { FieldProps } from \"../../types/fields\";\nimport { MultiSelect, MultiSelectItem } from \"@rebasepro/ui\";\nimport { useTranslation, useInternalUserManagementController } from \"@rebasepro/core\";\nimport { RoleChip } from \"./RoleChip\";\n\nexport function UserRolesSelectField({\n propertyKey,\n value,\n setValue,\n disabled\n}: FieldProps) {\n const { t } = useTranslation();\n const userManagement = useInternalUserManagementController();\n const roles = userManagement?.roles || [];\n\n const selectedRoleIds = (value || []).map((r: any) => {\n if (typeof r === \"object\" && r !== null) {\n return r.id;\n }\n return r;\n });\n\n const handleValueChange = (val: string[]) => {\n const references = val.map(id => ({\n id,\n path: \"roles\",\n __type: \"relation\"\n }));\n setValue(references);\n };\n\n return (\n <div className=\"col-span-12\">\n <MultiSelect\n className=\"w-full\"\n label={t(\"roles\") || \"Roles\"}\n value={selectedRoleIds}\n onValueChange={handleValueChange}\n disabled={disabled}\n >\n {roles.map(role => (\n <MultiSelectItem key={role.id} value={role.id}>\n <RoleChip role={role}/>\n </MultiSelectItem>\n ))}\n </MultiSelect>\n </div>\n );\n}\n"],"names":["resolveNavigationFrom","path","context","data","navigationStateController","collectionRegistryController","Error","navigationEntries","getNavigationEntriesFromPath","collections","resultPromises","map","entry","type","Promise","resolve","collection","getCollection","slug","findById","entityId","then","entity","undefined","filter","v","Boolean","all","useResolvedNavigationFrom","t0","$","_c","useCMSContext","setData","useState","dataLoading","setDataLoading","dataLoadingError","setDataLoadingError","t1","catch","e","finally","t2","useEffect","t3","bb0","t4","Symbol","for","ReferenceWidget","name","multiselect","disabled","value","onReferenceSelected","onMultipleReferenceSelected","previewProperties","fixedFilter","size","className","includeId","includeEntityLink","useCollectionRegistryController","useMemo","onSingleEntitySelected","useCallback","reference","getReferenceFrom","onMultipleEntitiesSelected","entities","references","referenceDialogController","useEntitySelectionDialog","stopPropagation","child","onEntryClick","open","Array","isArray","ref","index","isEntityReference","cls","AdminModeSyncer","devViews","location","useLocation","urlController","useUrlController","adminModeController","useAdminModeController","currentModeRef","React","useRef","mode","current","setModeRef","setMode","pathname","isContentRoute","isUrlCollectionPath","basePath","studioHomePath","isStudioRoute","startsWith","some","view","viewPath","buildAppUrlPath","RebaseCMS","homePage","entityViews","entityActions","plugins","collectionEditor","navigationGroupMappings","dispatch","useRebaseRegistryDispatch","registerCMS","unregisterCMS","useLayoutEffect","RebaseAuthGate","children","registry","useRebaseRegistry","authController","useAuthController","initialLoading","user","authConfig","loginView","ActiveLoginView","RebaseLayout","props","title","appBar","drawer","autoOpenDrawer","ActiveAppBar","t5","ActiveDrawer","t6","t7","t8","t9","RebaseShell","studioConfig","ArrayOfMapsPreview","propertyKey","property","of","mapProperty","properties","values","mapProperties","length","slice","key","MissingReferenceWidget","pathProp","getLastSegment","getParentCollectionSlugs","parentCollectionSlugs","getParentEntityIds","parentEntityIds","useCollectionEditorController","t","useTranslation","T0","ErrorView","createCollection","initialValues","prettifyIdentifier","redirect","sourceClick","RolesFilterSelect","tableController","userManagement","useInternalUserManagementController","roles","currentFilterValue","filterValues","newRole","filterVal","setFilterValues","nextFilters","handleRoleChange","_temp","role","id","UserRolesSelectField","setValue","selectedRoleIds","val","_temp2","handleValueChange","_temp3","__type","r"],"mappings":"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"}
@@ -12,7 +12,7 @@ export interface EntityFormActionsProps {
12
12
  disabled: boolean;
13
13
  status: "new" | "existing" | "copy";
14
14
  pluginActions: React.ReactNode[];
15
- openEntityMode: "side_panel" | "full_screen" | "split";
15
+ openEntityMode: "side_panel" | "full_screen" | "split" | "dialog";
16
16
  showDefaultActions?: boolean;
17
17
  navigateBack: () => void;
18
18
  formContext: FormContext;
@@ -21,7 +21,7 @@ export type EntityFormProps<M extends Record<string, unknown>> = {
21
21
  onStatusChange?: (status: EntityStatus) => void;
22
22
  onEntityChange?: (entity: Entity<M>) => void;
23
23
  formex?: FormexController<M>;
24
- openEntityMode?: "side_panel" | "full_screen" | "split";
24
+ openEntityMode?: "side_panel" | "full_screen" | "split" | "dialog";
25
25
  /**
26
26
  * If true, the form will be disabled and no actions will be available
27
27
  */
@@ -35,6 +35,7 @@ export type EntityFormProps<M extends Record<string, unknown>> = {
35
35
  */
36
36
  showEntityPath?: boolean;
37
37
  EntityFormActionsComponent?: React.FC<EntityFormActionsProps>;
38
+ navigateBack?: () => void;
38
39
  Builder?: React.ComponentType<EntityCustomViewParams<M>>;
39
40
  children?: React.ReactNode;
40
41
  };
@@ -2,7 +2,7 @@ import { Entity } from "@rebasepro/types";
2
2
  import { FormexController } from "./components/formex";
3
3
  import { EntityCollection } from "@rebasepro/types";
4
4
  import { Property } from "@rebasepro/types";
5
- export type DefaultFieldConfig = "text_field" | "multiline" | "markdown" | "url" | "email" | "switch" | "select" | "multi_select" | "user_select" | "number_input" | "number_select" | "multi_number_select" | "file_upload" | "multi_file_upload" | "reference_as_string" | "reference" | "multi_references" | "relation" | "date_time" | "group" | "key_value" | "repeat" | "custom_array" | "block";
5
+ export type DefaultFieldConfig = "text_field" | "multiline" | "markdown" | "url" | "email" | "switch" | "select" | "multi_select" | "user_select" | "number_input" | "number_select" | "multi_number_select" | "file_upload" | "multi_file_upload" | "reference_as_string" | "reference" | "multi_references" | "relation" | "date_time" | "group" | "key_value" | "repeat" | "custom_array" | "block" | "vector_input";
6
6
  /**
7
7
  * When building a custom field you need to create a React component that takes
8
8
  * this interface as props.
@@ -84,7 +84,7 @@ export interface FieldProps<P extends Property | Property = Property, CustomProp
84
84
  /**
85
85
  * Additional properties set by the developer
86
86
  */
87
- customProps: CustomProps;
87
+ customProps?: CustomProps;
88
88
  /**
89
89
  * Additional values related to the state of the form or the entity
90
90
  */
@@ -141,7 +141,7 @@ export interface FormContext<M extends Record<string, unknown> = Record<string,
141
141
  status: "new" | "existing" | "copy";
142
142
  entity?: Entity<M>;
143
143
  savingError?: Error;
144
- openEntityMode: "side_panel" | "full_screen" | "split";
144
+ openEntityMode: "side_panel" | "full_screen" | "split" | "dialog";
145
145
  /**
146
146
  * This is the underlying formex controller that powers the form.
147
147
  * If you are in a red only mode, the formex controller is there, but you can't
@@ -5,7 +5,7 @@ export { removeInitialAndTrailingSlashes, removeInitialSlash, removeTrailingSlas
5
5
  * This is an admin-specific UI concern and lives here (not in common).
6
6
  */
7
7
  export declare function navigateToEntity({ openEntityMode, collection, entityId, copy, path, selectedTab, defaultValues, sideEntityController, onClose, navigation }: {
8
- openEntityMode: "side_panel" | "full_screen" | "split";
8
+ openEntityMode: "side_panel" | "full_screen" | "split" | "dialog";
9
9
  collection?: EntityCollection;
10
10
  entityId?: string | number;
11
11
  selectedTab?: string;