@firecms/core 3.0.0-canary.99 → 3.0.0-rc.2

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 (371) hide show
  1. package/README.md +2 -2
  2. package/dist/app/Drawer.d.ts +0 -1
  3. package/dist/app/Scaffold.d.ts +4 -0
  4. package/dist/components/ArrayContainer.d.ts +31 -12
  5. package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
  6. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +3 -1
  7. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
  8. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +17 -3
  9. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +1 -1
  10. package/dist/components/EntityCollectionTable/index.d.ts +1 -1
  11. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +6 -3
  12. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +8 -0
  13. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  14. package/dist/components/EntityJsonPreview.d.ts +3 -0
  15. package/dist/components/EntityPreview.d.ts +8 -6
  16. package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
  17. package/dist/components/HomePage/HomePageDnD.d.ts +76 -0
  18. package/dist/components/HomePage/NavigationCard.d.ts +3 -1
  19. package/dist/components/HomePage/NavigationCardBinding.d.ts +3 -2
  20. package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
  21. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  22. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  23. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  24. package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
  25. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +1 -1
  26. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  27. package/dist/components/UserDisplay.d.ts +7 -0
  28. package/dist/components/VirtualTable/VirtualTableProps.d.ts +11 -2
  29. package/dist/components/VirtualTable/fields/VirtualTableUserSelect.d.ts +12 -0
  30. package/dist/components/common/default_entity_actions.d.ts +0 -2
  31. package/dist/components/common/index.d.ts +1 -1
  32. package/dist/components/common/useColumnsIds.d.ts +1 -0
  33. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +10 -2
  34. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  35. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  36. package/dist/components/index.d.ts +3 -1
  37. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  38. package/dist/contexts/InternalUserManagementContext.d.ts +3 -0
  39. package/dist/core/DefaultAppBar.d.ts +8 -2
  40. package/dist/core/DrawerNavigationItem.d.ts +2 -1
  41. package/dist/core/EntityEditView.d.ts +40 -22
  42. package/dist/core/EntityEditViewFormActions.d.ts +2 -0
  43. package/dist/core/FireCMS.d.ts +2 -3
  44. package/dist/core/FireCMSRouter.d.ts +4 -0
  45. package/dist/core/NavigationRoutes.d.ts +0 -1
  46. package/dist/core/SideDialogs.d.ts +4 -2
  47. package/dist/core/field_configs.d.ts +1 -1
  48. package/dist/core/index.d.ts +2 -1
  49. package/dist/form/EntityForm.d.ts +50 -0
  50. package/dist/form/EntityFormActions.d.ts +21 -0
  51. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  52. package/dist/form/components/FormEntry.d.ts +6 -0
  53. package/dist/form/components/FormLayout.d.ts +5 -0
  54. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  55. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  56. package/dist/form/components/index.d.ts +3 -1
  57. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  58. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  59. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  60. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  61. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  62. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  63. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  64. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  65. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
  66. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  67. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  68. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  69. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +4 -10
  70. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  71. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  72. package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +12 -0
  73. package/dist/form/index.d.ts +17 -16
  74. package/dist/form/useClearRestoreValue.d.ts +2 -2
  75. package/dist/hooks/data/delete.d.ts +4 -4
  76. package/dist/hooks/data/save.d.ts +3 -3
  77. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  78. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  79. package/dist/hooks/index.d.ts +2 -0
  80. package/dist/hooks/useAuthController.d.ts +1 -1
  81. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  82. package/dist/hooks/useBuildNavigationController.d.ts +57 -12
  83. package/dist/hooks/useCollapsedGroups.d.ts +9 -0
  84. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  85. package/dist/hooks/useInternalUserManagementController.d.ts +12 -0
  86. package/dist/hooks/useModeController.d.ts +1 -2
  87. package/dist/hooks/useProjectLog.d.ts +7 -1
  88. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  89. package/dist/hooks/useValidateAuthenticator.d.ts +3 -3
  90. package/dist/index.es.js +20480 -14434
  91. package/dist/index.es.js.map +1 -1
  92. package/dist/index.umd.js +20250 -14209
  93. package/dist/index.umd.js.map +1 -1
  94. package/dist/internal/useBuildDataSource.d.ts +3 -2
  95. package/dist/internal/useBuildSideEntityController.d.ts +3 -3
  96. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  97. package/dist/preview/PropertyPreviewProps.d.ts +1 -1
  98. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  99. package/dist/preview/components/ReferencePreview.d.ts +2 -2
  100. package/dist/preview/components/UserPreview.d.ts +8 -0
  101. package/dist/preview/index.d.ts +1 -0
  102. package/dist/preview/util.d.ts +3 -3
  103. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  104. package/dist/routes/FireCMSRoute.d.ts +1 -0
  105. package/dist/routes/HomePageRoute.d.ts +3 -0
  106. package/dist/types/analytics.d.ts +1 -1
  107. package/dist/types/auth.d.ts +7 -9
  108. package/dist/types/collections.d.ts +88 -25
  109. package/dist/types/customization_controller.d.ts +8 -0
  110. package/dist/types/datasource.d.ts +19 -17
  111. package/dist/types/dialogs_controller.d.ts +7 -3
  112. package/dist/types/entities.d.ts +7 -2
  113. package/dist/types/entity_actions.d.ts +58 -8
  114. package/dist/types/entity_callbacks.d.ts +16 -16
  115. package/dist/types/entity_overrides.d.ts +2 -2
  116. package/dist/types/export_import.d.ts +4 -4
  117. package/dist/types/fields.d.ts +43 -17
  118. package/dist/types/firecms.d.ts +31 -3
  119. package/dist/types/firecms_context.d.ts +17 -1
  120. package/dist/types/index.d.ts +1 -0
  121. package/dist/types/internal_user_management.d.ts +20 -0
  122. package/dist/types/navigation.d.ts +60 -17
  123. package/dist/types/permissions.d.ts +4 -4
  124. package/dist/types/plugins.d.ts +44 -9
  125. package/dist/types/properties.d.ts +74 -22
  126. package/dist/types/property_config.d.ts +1 -3
  127. package/dist/types/roles.d.ts +3 -0
  128. package/dist/types/side_dialogs_controller.d.ts +10 -0
  129. package/dist/types/side_entity_controller.d.ts +14 -1
  130. package/dist/types/storage.d.ts +75 -0
  131. package/dist/types/user.d.ts +2 -1
  132. package/dist/util/builders.d.ts +3 -3
  133. package/dist/util/callbacks.d.ts +2 -0
  134. package/dist/util/createFormexStub.d.ts +2 -0
  135. package/dist/util/entities.d.ts +2 -2
  136. package/dist/util/entity_actions.d.ts +2 -0
  137. package/dist/util/entity_cache.d.ts +23 -0
  138. package/dist/util/icon_synonyms.d.ts +0 -1
  139. package/dist/util/icons.d.ts +5 -2
  140. package/dist/util/index.d.ts +3 -0
  141. package/dist/util/navigation_from_path.d.ts +10 -1
  142. package/dist/util/navigation_utils.d.ts +13 -1
  143. package/dist/util/objects.d.ts +2 -1
  144. package/dist/util/permissions.d.ts +4 -4
  145. package/dist/util/property_utils.d.ts +4 -4
  146. package/dist/util/references.d.ts +2 -2
  147. package/dist/util/resolutions.d.ts +30 -6
  148. package/dist/util/storage.d.ts +1 -1
  149. package/dist/util/useStorageUploadController.d.ts +2 -2
  150. package/package.json +133 -125
  151. package/src/app/Drawer.tsx +0 -1
  152. package/src/app/Scaffold.tsx +33 -29
  153. package/src/components/ArrayContainer.tsx +447 -229
  154. package/src/components/CircularProgressCenter.tsx +1 -1
  155. package/src/components/ClearFilterSortButton.tsx +1 -1
  156. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
  157. package/src/components/DeleteEntityDialog.tsx +13 -20
  158. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +59 -25
  159. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +23 -17
  160. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +20 -3
  161. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -9
  162. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +21 -16
  163. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +6 -12
  164. package/src/components/EntityCollectionTable/index.tsx +1 -1
  165. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +6 -6
  166. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +35 -26
  167. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  168. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +132 -101
  169. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
  170. package/src/components/EntityCollectionView/EntityCollectionView.tsx +178 -85
  171. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
  172. package/src/components/EntityCollectionView/useSelectionController.tsx +5 -4
  173. package/src/components/EntityCollectionView/utils.ts +19 -0
  174. package/src/components/EntityJsonPreview.tsx +66 -0
  175. package/src/components/EntityPreview.tsx +75 -57
  176. package/src/components/EntityView.tsx +8 -5
  177. package/src/components/ErrorView.tsx +3 -3
  178. package/src/components/FireCMSLogo.tsx +7 -51
  179. package/src/components/HomePage/DefaultHomePage.tsx +506 -161
  180. package/src/components/HomePage/FavouritesView.tsx +9 -14
  181. package/src/components/HomePage/HomePageDnD.tsx +600 -0
  182. package/src/components/HomePage/NavigationCard.tsx +47 -38
  183. package/src/components/HomePage/NavigationCardBinding.tsx +16 -15
  184. package/src/components/HomePage/NavigationGroup.tsx +144 -30
  185. package/src/components/HomePage/RenameGroupDialog.tsx +123 -0
  186. package/src/components/HomePage/SmallNavigationCard.tsx +1 -2
  187. package/src/components/NotFoundPage.tsx +2 -2
  188. package/src/components/PropertyConfigBadge.tsx +10 -4
  189. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  190. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +22 -13
  191. package/src/components/SearchIconsView.tsx +2 -2
  192. package/src/components/SelectableTable/SelectableTable.tsx +154 -142
  193. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +4 -2
  194. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +10 -8
  195. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +60 -11
  196. package/src/components/UnsavedChangesDialog.tsx +46 -0
  197. package/src/components/UserDisplay.tsx +55 -0
  198. package/src/components/VirtualTable/VirtualTable.tsx +65 -44
  199. package/src/components/VirtualTable/VirtualTableCell.tsx +0 -8
  200. package/src/components/VirtualTable/VirtualTableHeader.tsx +8 -8
  201. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +1 -1
  202. package/src/components/VirtualTable/VirtualTableProps.tsx +12 -2
  203. package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
  204. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +4 -4
  205. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
  206. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  207. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  208. package/src/components/VirtualTable/fields/VirtualTableUserSelect.tsx +99 -0
  209. package/src/components/common/default_entity_actions.tsx +62 -42
  210. package/src/components/common/index.ts +1 -1
  211. package/src/components/common/useColumnsIds.tsx +2 -9
  212. package/src/components/common/useDataSourceTableController.tsx +420 -0
  213. package/src/components/common/useDebouncedCallback.tsx +20 -0
  214. package/src/components/common/useScrollRestoration.tsx +68 -0
  215. package/src/components/common/useTableSearchHelper.ts +1 -0
  216. package/src/components/index.tsx +4 -1
  217. package/src/contexts/BreacrumbsContext.tsx +38 -0
  218. package/src/contexts/DialogsProvider.tsx +3 -2
  219. package/src/contexts/InternalUserManagementContext.tsx +4 -0
  220. package/src/contexts/ModeController.tsx +1 -3
  221. package/src/contexts/SnackbarProvider.tsx +2 -0
  222. package/src/core/DefaultAppBar.tsx +124 -85
  223. package/src/core/DefaultDrawer.tsx +30 -22
  224. package/src/core/DrawerNavigationItem.tsx +32 -28
  225. package/src/core/EntityEditView.tsx +388 -995
  226. package/src/core/EntityEditViewFormActions.tsx +329 -0
  227. package/src/core/EntitySidePanel.tsx +88 -20
  228. package/src/core/FireCMS.tsx +58 -28
  229. package/src/core/FireCMSRouter.tsx +17 -0
  230. package/src/core/NavigationRoutes.tsx +23 -32
  231. package/src/core/SideDialogs.tsx +22 -12
  232. package/src/core/field_configs.tsx +39 -11
  233. package/src/core/index.tsx +4 -2
  234. package/src/form/EntityForm.tsx +814 -0
  235. package/src/form/EntityFormActions.tsx +211 -0
  236. package/src/form/PropertyFieldBinding.tsx +59 -41
  237. package/src/form/components/CustomIdField.tsx +9 -3
  238. package/src/form/components/FieldHelperText.tsx +1 -1
  239. package/src/form/components/FormEntry.tsx +22 -0
  240. package/src/form/components/FormLayout.tsx +16 -0
  241. package/src/form/components/LabelWithIcon.tsx +30 -19
  242. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  243. package/src/form/components/StorageItemPreview.tsx +5 -4
  244. package/src/form/components/StorageUploadProgress.tsx +2 -3
  245. package/src/form/components/index.tsx +3 -1
  246. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +30 -18
  247. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -36
  248. package/src/form/field_bindings/BlockFieldBinding.tsx +55 -33
  249. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
  250. package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -15
  251. package/src/form/field_bindings/MapFieldBinding.tsx +72 -62
  252. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
  253. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
  254. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +10 -8
  255. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
  256. package/src/form/field_bindings/ReferenceFieldBinding.tsx +28 -19
  257. package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -32
  258. package/src/form/field_bindings/SelectFieldBinding.tsx +22 -13
  259. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +247 -168
  260. package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
  261. package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
  262. package/src/form/field_bindings/UserSelectFieldBinding.tsx +94 -0
  263. package/src/form/index.tsx +17 -37
  264. package/src/form/useClearRestoreValue.tsx +2 -2
  265. package/src/form/validation.ts +12 -6
  266. package/src/hooks/data/delete.ts +6 -5
  267. package/src/hooks/data/save.ts +26 -35
  268. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  269. package/src/hooks/data/useDataSource.tsx +10 -2
  270. package/src/hooks/data/useEntityFetch.tsx +10 -6
  271. package/src/hooks/index.tsx +3 -0
  272. package/src/hooks/useAuthController.tsx +1 -1
  273. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  274. package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
  275. package/src/hooks/useBuildModeController.tsx +15 -28
  276. package/src/hooks/useBuildNavigationController.tsx +386 -124
  277. package/src/hooks/useCollapsedGroups.ts +64 -0
  278. package/src/hooks/useFireCMSContext.tsx +9 -35
  279. package/src/hooks/useInternalUserManagementController.tsx +16 -0
  280. package/src/hooks/useLargeLayout.tsx +0 -35
  281. package/src/hooks/useModeController.tsx +1 -2
  282. package/src/hooks/useProjectLog.tsx +16 -5
  283. package/src/hooks/useResolvedNavigationFrom.tsx +9 -11
  284. package/src/hooks/useValidateAuthenticator.tsx +3 -3
  285. package/src/internal/useBuildDataSource.ts +67 -80
  286. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  287. package/src/internal/useBuildSideEntityController.tsx +149 -86
  288. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  289. package/src/preview/PropertyPreview.tsx +36 -12
  290. package/src/preview/PropertyPreviewProps.tsx +1 -1
  291. package/src/preview/components/BooleanPreview.tsx +1 -1
  292. package/src/preview/components/EmptyValue.tsx +1 -1
  293. package/src/preview/components/EnumValuesChip.tsx +1 -1
  294. package/src/preview/components/ImagePreview.tsx +10 -9
  295. package/src/preview/components/ReferencePreview.tsx +10 -18
  296. package/src/preview/components/UrlComponentPreview.tsx +20 -21
  297. package/src/preview/components/UserPreview.tsx +27 -0
  298. package/src/preview/index.ts +1 -0
  299. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -5
  300. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +5 -4
  301. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -3
  302. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -3
  303. package/src/preview/property_previews/ArrayOneOfPreview.tsx +6 -4
  304. package/src/preview/property_previews/ArrayPropertyPreview.tsx +6 -4
  305. package/src/preview/property_previews/MapPropertyPreview.tsx +7 -6
  306. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
  307. package/src/preview/property_previews/StringPropertyPreview.tsx +2 -2
  308. package/src/preview/util.ts +10 -10
  309. package/src/routes/CustomCMSRoute.tsx +21 -0
  310. package/src/routes/FireCMSRoute.tsx +246 -0
  311. package/src/routes/HomePageRoute.tsx +17 -0
  312. package/src/types/analytics.ts +3 -0
  313. package/src/types/auth.tsx +8 -12
  314. package/src/types/collections.ts +103 -28
  315. package/src/types/customization_controller.tsx +9 -0
  316. package/src/types/datasource.ts +21 -20
  317. package/src/types/dialogs_controller.tsx +7 -3
  318. package/src/types/entities.ts +10 -2
  319. package/src/types/entity_actions.tsx +71 -8
  320. package/src/types/entity_callbacks.ts +18 -18
  321. package/src/types/entity_overrides.tsx +2 -2
  322. package/src/types/export_import.ts +4 -4
  323. package/src/types/fields.tsx +52 -19
  324. package/src/types/firecms.tsx +34 -4
  325. package/src/types/firecms_context.tsx +18 -1
  326. package/src/types/index.ts +1 -0
  327. package/src/types/internal_user_management.ts +24 -0
  328. package/src/types/navigation.ts +76 -22
  329. package/src/types/permissions.ts +5 -5
  330. package/src/types/plugins.tsx +53 -9
  331. package/src/types/properties.ts +84 -22
  332. package/src/types/property_config.tsx +2 -2
  333. package/src/types/roles.ts +3 -0
  334. package/src/types/side_dialogs_controller.tsx +15 -0
  335. package/src/types/side_entity_controller.tsx +16 -1
  336. package/src/types/storage.ts +82 -0
  337. package/src/types/user.ts +3 -1
  338. package/src/util/builders.ts +10 -8
  339. package/src/util/callbacks.ts +119 -0
  340. package/src/util/createFormexStub.tsx +62 -0
  341. package/src/util/entities.ts +6 -4
  342. package/src/util/entity_actions.ts +28 -0
  343. package/src/util/entity_cache.ts +204 -0
  344. package/src/util/icon_list.ts +1 -1
  345. package/src/util/icon_synonyms.ts +0 -1
  346. package/src/util/icons.tsx +36 -11
  347. package/src/util/index.ts +3 -0
  348. package/src/util/join_collections.ts +9 -2
  349. package/src/util/make_properties_editable.ts +13 -5
  350. package/src/util/navigation_from_path.ts +33 -12
  351. package/src/util/navigation_utils.ts +135 -19
  352. package/src/util/objects.ts +74 -14
  353. package/src/util/parent_references_from_path.ts +3 -3
  354. package/src/util/permissions.ts +8 -8
  355. package/src/util/property_utils.tsx +17 -6
  356. package/src/util/references.ts +19 -8
  357. package/src/util/resolutions.ts +93 -24
  358. package/src/util/storage.ts +6 -2
  359. package/src/util/useStorageUploadController.tsx +74 -29
  360. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
  361. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  362. package/dist/form/PropertiesForm.d.ts +0 -8
  363. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  364. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  365. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
  366. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -27
  367. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -236
  368. package/src/form/PropertiesForm.tsx +0 -81
  369. package/src/form/components/FormikArrayContainer.tsx +0 -44
  370. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  371. /package/src/util/{common.tsx → common.ts} +0 -0
@@ -7,6 +7,8 @@ import { FieldProps, FormContext } from "./fields";
7
7
  import { CMSType, Property } from "./properties";
8
8
  import { EntityStatus } from "./entities";
9
9
  import { ResolvedProperty } from "./resolved_entities";
10
+ import { NavigationGroupMapping } from "./navigation";
11
+ import { InternalUserManagement } from "./internal_user_management";
10
12
 
11
13
  /**
12
14
  * Interface used to define plugins for FireCMS.
@@ -42,6 +44,8 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
42
44
  props?: PROPS;
43
45
  };
44
46
 
47
+ userManagement?: InternalUserManagement
48
+
45
49
  homePage?: {
46
50
 
47
51
  /**
@@ -84,6 +88,20 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
84
88
  children: React.ReactNode;
85
89
  }
86
90
 
91
+ /**
92
+ * Allow reordering with drag and drop of the collections in the home page.
93
+ */
94
+ allowDragAndDrop?: boolean;
95
+
96
+ navigationEntries?: NavigationGroupMapping[];
97
+
98
+ /**
99
+ * This method will be called when the entries are updated in the home page.
100
+ * group => navigationEntriesOrder (path)
101
+ * @param entries
102
+ */
103
+ onNavigationEntriesUpdate?: (entries: NavigationGroupMapping[]) => void;
104
+
87
105
  }
88
106
 
89
107
  collectionView?: {
@@ -151,13 +169,37 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
151
169
  props?: FORM_PROPS;
152
170
  }
153
171
 
172
+ /**
173
+ * Add custom actions to the default ones ("Save", "Discard"...)
174
+ */
154
175
  Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
155
176
 
177
+ /**
178
+ * Add custom actions to the top of the form
179
+ */
180
+ ActionsTop?: React.ComponentType<PluginFormActionProps<any, EC>>;
181
+
156
182
  fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
157
183
 
158
184
  fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
159
185
  }
160
186
 
187
+ collection?: {
188
+
189
+ /**
190
+ * Use this method to modify a single collection before it is rendered.
191
+ * @param collection
192
+ */
193
+ modifyCollection?: (collection: EntityCollection) => EntityCollection;
194
+
195
+ /**
196
+ * Use this method to modify, add or remove collections.
197
+ * @param collections
198
+ */
199
+ injectCollections?: (collections: EntityCollection[]) => EntityCollection[];
200
+
201
+ }
202
+
161
203
  }
162
204
 
163
205
  /**
@@ -166,7 +208,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
166
208
  *
167
209
  * @group Models
168
210
  */
169
- export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any, UserType extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
211
+ export interface PluginHomePageActionsProps<EP extends object = object, M extends Record<string, any> = any, USER extends User = User, EC extends EntityCollection<M> = EntityCollection<M>> {
170
212
  /**
171
213
  * Collection path of this entity. This is the full path, like
172
214
  * `users/1234/addresses`
@@ -181,20 +223,22 @@ export interface PluginHomePageActionsProps<EP extends object = object, M extend
181
223
  /**
182
224
  * Context of the app status
183
225
  */
184
- context: FireCMSContext<UserType>;
226
+ context: FireCMSContext<USER>;
185
227
 
186
228
  extraProps?: EP;
187
229
 
188
230
  }
189
231
 
190
- export interface PluginFormActionProps<UserType extends User = User, EC extends EntityCollection = EntityCollection> {
232
+ export interface PluginFormActionProps<USER extends User = User, EC extends EntityCollection = EntityCollection> {
191
233
  entityId?: string;
192
234
  path: string;
235
+ parentCollectionIds: string[];
193
236
  status: EntityStatus;
194
237
  collection: EC;
238
+ disabled: boolean;
195
239
  formContext?: FormContext<any>;
196
- context: FireCMSContext<UserType>;
197
- currentEntityId?: string;
240
+ context: FireCMSContext<USER>;
241
+ openEntityMode: "side_panel" | "full_screen";
198
242
  }
199
243
 
200
244
  export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Record<string, any> = any, EC extends EntityCollection<M> = EntityCollection<M>> = {
@@ -207,11 +251,11 @@ export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Reco
207
251
  collection?: EC;
208
252
  };
209
253
 
210
- export interface PluginGenericProps<UserType extends User = User> {
211
- context: FireCMSContext<UserType>;
254
+ export interface PluginGenericProps<USER extends User = User> {
255
+ context: FireCMSContext<USER>;
212
256
  }
213
257
 
214
- export interface PluginHomePageAdditionalCardsProps<UserType extends User = User> {
258
+ export interface PluginHomePageAdditionalCardsProps<USER extends User = User> {
215
259
  group?: string;
216
- context: FireCMSContext<UserType>;
260
+ context: FireCMSContext<USER>;
217
261
  }
@@ -5,6 +5,7 @@ import { EntityReference, EntityValues, GeoPoint, Vector } from "./entities";
5
5
  import { ResolvedArrayProperty, ResolvedStringProperty } from "./resolved_entities";
6
6
  import { FilterValues } from "./collections";
7
7
  import { ChipColorKey, ChipColorScheme } from "@firecms/ui";
8
+ import { AuthController } from "./auth";
8
9
 
9
10
  /**
10
11
  * @group Entity properties
@@ -17,7 +18,7 @@ export type DataType<T extends CMSType = CMSType> =
17
18
  T extends GeoPoint ? "geopoint" :
18
19
  T extends Vector ? "vector" :
19
20
  T extends EntityReference ? "reference" :
20
- T extends Array<CMSType> ? "array" :
21
+ T extends Array<any> ? "array" :
21
22
  T extends Record<string, any> ? "map" : never;
22
23
 
23
24
  /**
@@ -49,7 +50,7 @@ export type AnyProperty =
49
50
  /**
50
51
  * @group Entity properties
51
52
  */
52
- export type Property<T extends CMSType = CMSType> =
53
+ export type Property<T extends CMSType = any> =
53
54
  T extends string ? StringProperty :
54
55
  T extends number ? NumberProperty :
55
56
  T extends boolean ? BooleanProperty :
@@ -156,6 +157,12 @@ export interface BaseProperty<T extends CMSType, CustomProps = any> {
156
157
  * save the new config. The saved config will then become the source of truth.
157
158
  */
158
159
  editable?: boolean;
160
+
161
+ /**
162
+ * A number between 0 and 100 that indicates the width of the field in the form view.
163
+ * It defaults to 100, but you can set it to 50 to have two fields in the same row.
164
+ */
165
+ widthPercentage?: number;
159
166
  }
160
167
 
161
168
  /**
@@ -264,6 +271,11 @@ export type PropertyBuilderProps<M extends Record<string, any> = any> =
264
271
  * Entity ID
265
272
  */
266
273
  entityId?: string;
274
+
275
+ /**
276
+ * Controller to manage authentication
277
+ */
278
+ authController: AuthController;
267
279
  };
268
280
 
269
281
  /**
@@ -279,20 +291,21 @@ export type PropertyBuilder<T extends CMSType = any, M extends Record<string, an
279
291
  propertyValue,
280
292
  index,
281
293
  path,
282
- entityId
294
+ entityId,
295
+ authController
283
296
  }: PropertyBuilderProps<M>) => Property<T> | null;
284
297
 
285
298
  /**
286
299
  * @group Entity properties
287
300
  */
288
- export type PropertyOrBuilder<T extends CMSType = CMSType, M extends Record<string, any> = Record<string, any>> =
301
+ export type PropertyOrBuilder<T extends CMSType = CMSType, M extends Record<string, any> = any> =
289
302
  Property<T>
290
303
  | PropertyBuilder<T, M>;
291
304
 
292
305
  /**
293
306
  * @group Entity properties
294
307
  */
295
- export type PropertiesOrBuilders<M extends Record<string, any> = Record<string, any>> =
308
+ export type PropertiesOrBuilders<M extends Record<string, any> = any> =
296
309
  {
297
310
  [k in keyof M]: PropertyOrBuilder<M[k], M>;
298
311
  };
@@ -371,10 +384,20 @@ export interface StringProperty extends BaseProperty<string> {
371
384
 
372
385
  /**
373
386
  * You can specify a `Storage` configuration. It is used to
374
- * indicate that this string refers to a path in Google Cloud Storage.
387
+ * indicate that this string refers to a path in your storage provider.
375
388
  */
376
389
  storage?: StorageConfig;
377
390
 
391
+ /**
392
+ * This property is used to indicate that the string is a user ID, and
393
+ * it will be rendered as a user picker.
394
+ * Note that the user ID needs to be the one used in your authentication
395
+ * provider, e.g. Firebase Auth.
396
+ * You can also use a property builder to specify the user path dynamically
397
+ * based on other values of the entity.
398
+ */
399
+ userSelect?: boolean;
400
+
378
401
  /**
379
402
  * If the value of this property is a URL, you can set this flag to true
380
403
  * to add a link, or one of the supported media types to render a preview
@@ -400,12 +423,20 @@ export interface StringProperty extends BaseProperty<string> {
400
423
  * Add an icon to clear the value and set it to `null`. Defaults to `false`
401
424
  */
402
425
  clearable?: boolean;
426
+
427
+ /**
428
+ * You can use this property (a string) to behave as a reference to another
429
+ * collection. The stored value is the ID of the entity in the
430
+ * collection, and the `path` prop is used to
431
+ * define the collection this reference points to.
432
+ */
433
+ reference?: ReferenceProperty;
403
434
  }
404
435
 
405
436
  /**
406
437
  * @group Entity properties
407
438
  */
408
- export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType = CMSType> extends BaseProperty<T> {
439
+ export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType = any> extends BaseProperty<T> {
409
440
 
410
441
  dataType: "array";
411
442
 
@@ -469,6 +500,24 @@ export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSTyp
469
500
  */
470
501
  expanded?: boolean;
471
502
 
503
+ /**
504
+ * Display the child properties directly, without being wrapped in an
505
+ * extendable panel.
506
+ */
507
+ minimalistView?: boolean;
508
+
509
+ /**
510
+ * Can the elements in this array be reordered. Defaults to `true`.
511
+ * This prop has no effect if `disabled` is set to true.
512
+ */
513
+ sortable?: boolean;
514
+
515
+ /**
516
+ * Can the elements in this array be added. Defaults to `true`
517
+ * This prop has no effect if `disabled` is set to true.
518
+ */
519
+ canAddElements?: boolean;
520
+
472
521
  }
473
522
 
474
523
  /**
@@ -517,6 +566,12 @@ export interface MapProperty<T extends Record<string, CMSType> = Record<string,
517
566
  */
518
567
  spreadChildren?: boolean;
519
568
 
569
+ /**
570
+ * Display the child properties directly, without being wrapped in an
571
+ * extendable panel. Note that this will also hide the title of this property.
572
+ */
573
+ minimalistView?: boolean;
574
+
520
575
  /**
521
576
  * Should the field be initially expanded. Defaults to `true`
522
577
  */
@@ -593,7 +648,7 @@ export interface ReferenceProperty extends BaseProperty<EntityReference> {
593
648
  * You can leave this prop undefined if the path is not yet know, e.g.
594
649
  * you are using a property builder and the path depends on a different
595
650
  * property.
596
- * Note that you can also use a collection alias.
651
+ * Note that you can also use a collection id.
597
652
  */
598
653
  path?: string;
599
654
 
@@ -734,13 +789,13 @@ export type StorageConfig = {
734
789
  * You can use this prop to customize the uploaded filename.
735
790
  * You can use a function as a callback or a string where you
736
791
  * specify some placeholders that get replaced with the corresponding values.
737
- * - {file} - Full file name
738
- * - {file.name} - Name of the file without extension
739
- * - {file.ext} - Extension of the file
740
- * - {rand} - Random value used to avoid name collisions
741
- * - {entityId} - ID of the entity
742
- * - {propertyKey} - ID of this property
743
- * - {path} - Path of this entity
792
+ * - `{file}` - Full file name
793
+ * - `{file.name}` - Name of the file without extension
794
+ * - `{file.ext}` - Extension of the file
795
+ * - `{rand}` - Random value used to avoid name collisions
796
+ * - `{entityId}` - ID of the entity
797
+ * - `{propertyKey}` - ID of this property
798
+ * - `{path}` - Path of this entity
744
799
  *
745
800
  * @param context
746
801
  */
@@ -751,13 +806,13 @@ export type StorageConfig = {
751
806
  *
752
807
  * You can use a function as a callback or a string where you
753
808
  * specify some placeholders that get replaced with the corresponding values.
754
- * - {file} - Full file name
755
- * - {file.name} - Name of the file without extension
756
- * - {file.ext} - Extension of the file
757
- * - {rand} - Random value used to avoid name collisions
758
- * - {entityId} - ID of the entity
759
- * - {propertyKey} - ID of this property
760
- * - {path} - Path of this entity
809
+ * - `{file}` - Full file name
810
+ * - `{file.name}` - Name of the file without extension
811
+ * - `{file.ext}` - Extension of the file
812
+ * - `{rand}` - Random value used to avoid name collisions
813
+ * - `{entityId}` - ID of the entity
814
+ * - `{propertyKey}` - ID of this property
815
+ * - `{path}` - Path of this entity
761
816
  */
762
817
  storagePath: string | ((context: UploadedFileContext) => string);
763
818
 
@@ -778,6 +833,13 @@ export type StorageConfig = {
778
833
  */
779
834
  maxSize?: number,
780
835
 
836
+ /**
837
+ * Use this callback to process the file before uploading it to the storage.
838
+ * If nothing is returned, the file is uploaded as it is.
839
+ * @param file
840
+ */
841
+ processFile?: (file: File) => Promise<File> | undefined;
842
+
781
843
  /**
782
844
  * Postprocess the saved value (storage path or URL)
783
845
  * after it has been resolved.
@@ -23,8 +23,6 @@ export type PropertyConfig<T extends CMSType = any> = {
23
23
  * Default config for the property.
24
24
  * This property or builder will be used as the base values for the resulting property.
25
25
  * You can also use a builder function to generate the base property.
26
- * You can use a builder function to generate the property based on the values or the path.
27
- * You can also define a custom Field as a React component to be used for this property.
28
26
  */
29
27
  property: PropertyOrBuilder<T>;
30
28
 
@@ -54,6 +52,7 @@ export type PropertyConfigId =
54
52
  "markdown" |
55
53
  "url" |
56
54
  "email" |
55
+ "user_select" |
57
56
  "select" |
58
57
  "multi_select" |
59
58
  "number_input" |
@@ -64,6 +63,7 @@ export type PropertyConfigId =
64
63
  "group" |
65
64
  "key_value" |
66
65
  "reference" |
66
+ "reference_as_string" |
67
67
  "multi_references" |
68
68
  "switch" |
69
69
  "date_time" |
@@ -30,6 +30,9 @@ export type Role = {
30
30
  */
31
31
  collectionPermissions?: Record<string, Permissions>;
32
32
 
33
+ /**
34
+ * Permissions related to editing the collections
35
+ */
33
36
  config?: {
34
37
 
35
38
  createCollections?: boolean;
@@ -1,3 +1,6 @@
1
+ import React from "react";
2
+ import { EntityFormProps } from "../form";
3
+
1
4
  /**
2
5
  * Controller to open the side dialog
3
6
  * @group Hooks and utilities
@@ -14,6 +17,12 @@ export interface SideDialogsController {
14
17
  */
15
18
  sidePanels: SideDialogPanelProps[];
16
19
 
20
+ /**
21
+ * Override the current side panels
22
+ * @param panels
23
+ */
24
+ setSidePanels: (panels: SideDialogPanelProps[]) => void;
25
+
17
26
  /**
18
27
  * Open one or multiple side panels
19
28
  * @param props
@@ -65,4 +74,10 @@ export interface SideDialogPanelProps {
65
74
  * Callback when the panel is closed
66
75
  */
67
76
  onClose?: () => void;
77
+
78
+ /**
79
+ * Use this prop to store additional data in the panel
80
+ */
81
+ additional?: any;
82
+
68
83
  }
@@ -2,6 +2,7 @@ import { EntityCollection } from "./collections";
2
2
  import { ResolvedEntityCollection } from "./resolved_entities";
3
3
  import { Entity } from "./entities";
4
4
  import { EntityOverrides } from "./entity_overrides";
5
+ import { EntityFormProps } from "../form";
5
6
 
6
7
  /**
7
8
  * Props used to open a side dialog
@@ -14,6 +15,11 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
14
15
  */
15
16
  path: string;
16
17
 
18
+ /**
19
+ * Full CMS path of the entity, including the collection and sub-collections.
20
+ */
21
+ fullIdPath?: string;
22
+
17
23
  /**
18
24
  * ID of the entity, if not set, it means we are creating a new entity
19
25
  */
@@ -28,7 +34,7 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
28
34
  * Open the entity with a selected sub-collection view. If the panel for this
29
35
  * entity was already open, it is replaced.
30
36
  */
31
- selectedSubPath?: string;
37
+ selectedTab?: string;
32
38
 
33
39
  /**
34
40
  * Use this prop to override the width of the form view.
@@ -66,6 +72,15 @@ export interface EntitySidePanelProps<M extends Record<string, any> = any> {
66
72
  */
67
73
  closeOnSave?: boolean;
68
74
 
75
+ /**
76
+ * Override some form properties
77
+ */
78
+ formProps?: Partial<EntityFormProps<M>>;
79
+
80
+ /**
81
+ * Allow the user to open the entity fullscreen
82
+ */
83
+ allowFullScreen?: boolean;
69
84
  }
70
85
 
71
86
  /**
@@ -102,4 +102,86 @@ export interface StorageSource {
102
102
  * @param bucket
103
103
  */
104
104
  getFile: (path: string, bucket?: string) => Promise<File | null>;
105
+
106
+ /**
107
+ * Delete a file.
108
+ * @param path
109
+ * @param bucket
110
+ */
111
+ deleteFile: (path: string, bucket?: string) => Promise<void>;
112
+
113
+ /**
114
+ * List the contents of a path.
115
+ * @param path
116
+ * @param options
117
+ */
118
+ list: (path: string, options?: {
119
+ bucket?: string,
120
+ maxResults?: number,
121
+ pageToken?: string
122
+ }) => Promise<StorageListResult>;
123
+
124
+ }
125
+
126
+ /**
127
+ * Result returned by list().
128
+ * @public
129
+ */
130
+ export declare interface StorageListResult {
131
+ /**
132
+ * References to prefixes (sub-folders). You can call list() on them to
133
+ * get its contents.
134
+ *
135
+ * Folders are implicit based on '/' in the object paths.
136
+ * For example, if a bucket has two objects '/a/b/1' and '/a/b/2', list('/a')
137
+ * will return '/a/b' as a prefix.
138
+ */
139
+ prefixes: StorageReference[];
140
+ /**
141
+ * Objects in this directory.
142
+ * You can call getMetadata() and getDownloadUrl() on them.
143
+ */
144
+ items: StorageReference[];
145
+ /**
146
+ * If set, there might be more results for this list. Use this token to resume the list.
147
+ */
148
+ nextPageToken?: string;
149
+ }
150
+
151
+ /**
152
+ * Represents a reference to a Google Cloud Storage object. Developers can
153
+ * upload, download, and delete objects, as well as get/set object metadata.
154
+ * @public
155
+ */
156
+ export declare interface StorageReference {
157
+ /**
158
+ * Returns a gs:// URL for this object in the form
159
+ * `gs://<bucket>/<path>/<to>/<object>`
160
+ * @returns The gs:// URL.
161
+ */
162
+ toString(): string;
163
+
164
+ /**
165
+ * A reference to the root of this object's bucket.
166
+ */
167
+ root: StorageReference;
168
+ /**
169
+ * The name of the bucket containing this reference's object.
170
+ */
171
+ bucket: string;
172
+ /**
173
+ * The full path of this object.
174
+ */
175
+ fullPath: string;
176
+ /**
177
+ * The short name of this object, which is the last component of the full path.
178
+ * For example, if fullPath is 'full/path/image.png', name is 'image.png'.
179
+ */
180
+ name: string;
181
+
182
+ /**
183
+ * A reference pointing to the parent location of this reference, or null if
184
+ * this reference is the root.
185
+ */
186
+ parent: StorageReference | null;
105
187
  }
package/src/types/user.ts CHANGED
@@ -37,8 +37,10 @@ export type User = {
37
37
  readonly isAnonymous: boolean;
38
38
 
39
39
  /**
40
- *
40
+ * Custom roles assigned to the user.
41
41
  */
42
42
  roles?: Role[];
43
43
 
44
+ getIdToken?: (forceRefresh?: boolean) => Promise<string>;
45
+
44
46
  };
@@ -26,10 +26,12 @@ import {
26
26
  * @param collection
27
27
  * @group Builder
28
28
  */
29
- export function buildCollection<M extends Record<string, any> = any,
30
- UserType extends User = User>(
31
- collection: EntityCollection<M, UserType>
32
- ): EntityCollection<M, UserType> {
29
+ export function buildCollection<
30
+ M extends Record<string, any> = any,
31
+ USER extends User = User>
32
+ (
33
+ collection: EntityCollection<M, USER>
34
+ ): EntityCollection<M, USER> {
33
35
  return collection;
34
36
  }
35
37
 
@@ -39,7 +41,7 @@ export function buildCollection<M extends Record<string, any> = any,
39
41
  * @param property
40
42
  * @group Builder
41
43
  */
42
- export function buildProperty<T extends CMSType = CMSType, P extends PropertyOrBuilder<T> = PropertyOrBuilder<T>, M extends Record<string, any> = Record<string, any>>(
44
+ export function buildProperty<T extends CMSType = CMSType, P extends PropertyOrBuilder<T> = PropertyOrBuilder<T>, M extends Record<string, any> = any>(
43
45
  property: P
44
46
  ):
45
47
  P extends StringProperty ? StringProperty :
@@ -120,9 +122,9 @@ export function buildEntityCallbacks<M extends Record<string, any> = any>(
120
122
  * @param additionalFieldDelegate
121
123
  * @group Builder
122
124
  */
123
- export function buildAdditionalFieldDelegate<M extends Record<string, any>, UserType extends User = User>(
124
- additionalFieldDelegate: AdditionalFieldDelegate<M, UserType>
125
- ): AdditionalFieldDelegate<M, UserType> {
125
+ export function buildAdditionalFieldDelegate<M extends Record<string, any>, USER extends User = User>(
126
+ additionalFieldDelegate: AdditionalFieldDelegate<M, USER>
127
+ ): AdditionalFieldDelegate<M, USER> {
126
128
  return additionalFieldDelegate;
127
129
  }
128
130