@firecms/core 3.0.0-canary.29 → 3.0.0-canary.290

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 (433) hide show
  1. package/README.md +3 -3
  2. package/dist/app/AppBar.d.ts +12 -0
  3. package/dist/app/Drawer.d.ts +16 -0
  4. package/dist/app/Scaffold.d.ts +34 -0
  5. package/dist/app/index.d.ts +4 -0
  6. package/dist/app/useApp.d.ts +16 -0
  7. package/dist/components/ArrayContainer.d.ts +31 -12
  8. package/dist/components/CircularProgressCenter.d.ts +1 -1
  9. package/dist/components/ClearFilterSortButton.d.ts +5 -0
  10. package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
  11. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +14 -13
  12. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
  13. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
  14. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
  15. package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
  16. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
  17. package/dist/components/EntityCollectionTable/index.d.ts +1 -1
  18. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
  19. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
  20. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
  21. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +20 -2
  22. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
  23. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  24. package/dist/components/EntityJsonPreview.d.ts +3 -0
  25. package/dist/components/EntityPreview.d.ts +10 -7
  26. package/dist/components/ErrorView.d.ts +1 -1
  27. package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
  28. package/dist/components/HomePage/HomePageDnD.d.ts +77 -0
  29. package/dist/components/HomePage/NavigationCard.d.ts +3 -1
  30. package/dist/components/HomePage/NavigationCardBinding.d.ts +4 -3
  31. package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
  32. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  33. package/dist/components/PropertyCollectionView.d.ts +23 -0
  34. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  35. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  36. package/dist/components/ReferenceWidget.d.ts +3 -1
  37. package/dist/components/SelectableTable/SelectableTable.d.ts +14 -4
  38. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
  39. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  40. package/dist/components/UserDisplay.d.ts +7 -0
  41. package/dist/components/VirtualTable/VirtualTableProps.d.ts +24 -12
  42. package/dist/components/VirtualTable/fields/VirtualTableUserSelect.d.ts +12 -0
  43. package/dist/components/VirtualTable/types.d.ts +3 -3
  44. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
  45. package/dist/components/common/index.d.ts +2 -1
  46. package/dist/components/common/table_height.d.ts +5 -0
  47. package/dist/components/common/types.d.ts +4 -6
  48. package/dist/components/common/useColumnsIds.d.ts +3 -1
  49. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
  50. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  51. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  52. package/dist/components/index.d.ts +5 -2
  53. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  54. package/dist/contexts/InternalUserManagementContext.d.ts +3 -0
  55. package/dist/core/DefaultAppBar.d.ts +29 -0
  56. package/dist/core/DefaultDrawer.d.ts +19 -0
  57. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  58. package/dist/core/EntityEditView.d.ts +49 -11
  59. package/dist/core/EntityEditViewFormActions.d.ts +2 -0
  60. package/dist/core/FireCMS.d.ts +2 -3
  61. package/dist/core/FireCMSRouter.d.ts +4 -0
  62. package/dist/core/NavigationRoutes.d.ts +2 -3
  63. package/dist/core/SideDialogs.d.ts +4 -2
  64. package/dist/core/field_configs.d.ts +1 -1
  65. package/dist/core/index.d.ts +4 -4
  66. package/dist/form/EntityForm.d.ts +40 -64
  67. package/dist/form/EntityFormActions.d.ts +21 -0
  68. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  69. package/dist/form/components/ErrorFocus.d.ts +1 -1
  70. package/dist/form/components/FieldHelperText.d.ts +3 -3
  71. package/dist/form/components/FormEntry.d.ts +6 -0
  72. package/dist/form/components/FormLayout.d.ts +5 -0
  73. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  74. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  75. package/dist/form/components/LocalChangesMenu.d.ts +11 -0
  76. package/dist/form/components/StorageItemPreview.d.ts +4 -4
  77. package/dist/form/components/index.d.ts +3 -1
  78. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  79. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  80. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  81. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  82. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  83. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  84. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  85. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  86. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
  87. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  88. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  89. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  90. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +5 -13
  91. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  92. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  93. package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +12 -0
  94. package/dist/form/index.d.ts +18 -18
  95. package/dist/form/useClearRestoreValue.d.ts +2 -2
  96. package/dist/hooks/data/delete.d.ts +4 -4
  97. package/dist/hooks/data/save.d.ts +4 -5
  98. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  99. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  100. package/dist/hooks/index.d.ts +3 -0
  101. package/dist/hooks/useAuthController.d.ts +1 -1
  102. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  103. package/dist/hooks/useBuildNavigationController.d.ts +57 -13
  104. package/dist/hooks/useCollapsedGroups.d.ts +9 -0
  105. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  106. package/dist/hooks/useInternalUserManagementController.d.ts +12 -0
  107. package/dist/hooks/useModeController.d.ts +1 -2
  108. package/dist/hooks/useProjectLog.d.ts +8 -2
  109. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  110. package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
  111. package/dist/index.d.ts +1 -0
  112. package/dist/index.es.js +24546 -13965
  113. package/dist/index.es.js.map +1 -1
  114. package/dist/index.umd.js +27256 -588
  115. package/dist/index.umd.js.map +1 -1
  116. package/dist/internal/useBuildDataSource.d.ts +3 -17
  117. package/dist/internal/useBuildSideEntityController.d.ts +3 -3
  118. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  119. package/dist/preview/PropertyPreviewProps.d.ts +6 -1
  120. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  121. package/dist/preview/components/ReferencePreview.d.ts +4 -3
  122. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  123. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  124. package/dist/preview/components/UserPreview.d.ts +8 -0
  125. package/dist/preview/index.d.ts +1 -0
  126. package/dist/preview/util.d.ts +3 -3
  127. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  128. package/dist/routes/FireCMSRoute.d.ts +1 -0
  129. package/dist/routes/HomePageRoute.d.ts +3 -0
  130. package/dist/types/analytics.d.ts +1 -1
  131. package/dist/types/auth.d.ts +8 -10
  132. package/dist/types/collections.d.ts +123 -25
  133. package/dist/types/customization_controller.d.ts +8 -0
  134. package/dist/types/datasource.d.ts +52 -36
  135. package/dist/types/dialogs_controller.d.ts +7 -3
  136. package/dist/types/entities.d.ts +12 -3
  137. package/dist/types/entity_actions.d.ts +72 -8
  138. package/dist/types/entity_callbacks.d.ts +16 -16
  139. package/dist/types/entity_overrides.d.ts +2 -2
  140. package/dist/types/export_import.d.ts +4 -4
  141. package/dist/types/fields.d.ts +79 -39
  142. package/dist/types/firecms.d.ts +31 -3
  143. package/dist/types/firecms_context.d.ts +17 -1
  144. package/dist/types/index.d.ts +1 -1
  145. package/dist/types/internal_user_management.d.ts +20 -0
  146. package/dist/types/navigation.d.ts +62 -19
  147. package/dist/types/permissions.d.ts +4 -4
  148. package/dist/types/plugins.d.ts +58 -13
  149. package/dist/types/properties.d.ts +122 -31
  150. package/dist/types/property_config.d.ts +1 -3
  151. package/dist/types/roles.d.ts +3 -0
  152. package/dist/types/side_dialogs_controller.d.ts +10 -0
  153. package/dist/types/side_entity_controller.d.ts +14 -1
  154. package/dist/types/storage.d.ts +75 -0
  155. package/dist/types/user.d.ts +2 -1
  156. package/dist/util/builders.d.ts +3 -3
  157. package/dist/util/callbacks.d.ts +2 -0
  158. package/dist/util/collections.d.ts +1 -0
  159. package/dist/util/createFormexStub.d.ts +2 -0
  160. package/dist/util/entities.d.ts +3 -3
  161. package/dist/util/entity_actions.d.ts +2 -0
  162. package/dist/util/entity_cache.d.ts +28 -0
  163. package/dist/util/icon_list.d.ts +5 -1
  164. package/dist/util/icon_synonyms.d.ts +1 -98
  165. package/dist/util/icons.d.ts +7 -4
  166. package/dist/util/index.d.ts +3 -0
  167. package/dist/util/make_properties_editable.d.ts +1 -2
  168. package/dist/util/navigation_from_path.d.ts +10 -1
  169. package/dist/util/navigation_utils.d.ts +15 -3
  170. package/dist/util/objects.d.ts +3 -1
  171. package/dist/util/permissions.d.ts +4 -4
  172. package/dist/util/plurals.d.ts +0 -2
  173. package/dist/util/property_utils.d.ts +4 -4
  174. package/dist/util/references.d.ts +2 -2
  175. package/dist/util/resolutions.d.ts +42 -17
  176. package/dist/util/storage.d.ts +23 -2
  177. package/dist/util/useStorageUploadController.d.ts +4 -3
  178. package/package.json +70 -53
  179. package/src/app/AppBar.tsx +18 -0
  180. package/src/app/Drawer.tsx +24 -0
  181. package/src/app/Scaffold.tsx +253 -0
  182. package/src/app/index.ts +4 -0
  183. package/src/app/useApp.tsx +32 -0
  184. package/src/components/ArrayContainer.tsx +447 -229
  185. package/src/components/CircularProgressCenter.tsx +2 -2
  186. package/src/components/ClearFilterSortButton.tsx +41 -0
  187. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
  188. package/src/components/DeleteEntityDialog.tsx +13 -20
  189. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +87 -62
  190. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
  191. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
  192. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +84 -42
  193. package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
  194. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
  195. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
  196. package/src/components/EntityCollectionTable/index.tsx +1 -1
  197. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +34 -39
  198. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +49 -36
  199. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  200. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +135 -105
  201. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
  202. package/src/components/EntityCollectionView/EntityCollectionView.tsx +241 -119
  203. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
  204. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  205. package/src/components/EntityCollectionView/useSelectionController.tsx +20 -7
  206. package/src/components/EntityCollectionView/utils.ts +19 -0
  207. package/src/components/EntityJsonPreview.tsx +66 -0
  208. package/src/components/EntityPreview.tsx +83 -62
  209. package/src/components/EntityView.tsx +34 -42
  210. package/src/components/ErrorView.tsx +4 -4
  211. package/src/components/FireCMSLogo.tsx +7 -51
  212. package/src/components/HomePage/DefaultHomePage.tsx +516 -158
  213. package/src/components/HomePage/FavouritesView.tsx +9 -14
  214. package/src/components/HomePage/HomePageDnD.tsx +702 -0
  215. package/src/components/HomePage/NavigationCard.tsx +48 -39
  216. package/src/components/HomePage/NavigationCardBinding.tsx +17 -16
  217. package/src/components/HomePage/NavigationGroup.tsx +144 -30
  218. package/src/components/HomePage/RenameGroupDialog.tsx +123 -0
  219. package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
  220. package/src/components/NotFoundPage.tsx +2 -2
  221. package/src/components/PropertyCollectionView.tsx +329 -0
  222. package/src/components/PropertyConfigBadge.tsx +10 -4
  223. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  224. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +23 -13
  225. package/src/components/ReferenceWidget.tsx +21 -11
  226. package/src/components/SearchIconsView.tsx +10 -7
  227. package/src/components/SelectableTable/SelectableTable.tsx +157 -157
  228. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
  229. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +27 -9
  230. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
  231. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -24
  232. package/src/components/UnsavedChangesDialog.tsx +46 -0
  233. package/src/components/UserDisplay.tsx +55 -0
  234. package/src/components/VirtualTable/VirtualTable.tsx +105 -51
  235. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  236. package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
  237. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  238. package/src/components/VirtualTable/VirtualTableProps.tsx +28 -14
  239. package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
  240. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
  241. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
  242. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  243. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  244. package/src/components/VirtualTable/fields/VirtualTableUserSelect.tsx +99 -0
  245. package/src/components/VirtualTable/types.tsx +2 -3
  246. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +64 -44
  247. package/src/components/common/index.ts +2 -1
  248. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  249. package/src/components/common/types.tsx +4 -6
  250. package/src/components/common/useColumnsIds.tsx +16 -2
  251. package/src/components/common/useDataSourceTableController.tsx +420 -0
  252. package/src/components/common/useDebouncedCallback.tsx +20 -0
  253. package/src/components/common/useScrollRestoration.tsx +68 -0
  254. package/src/components/common/useTableSearchHelper.ts +53 -12
  255. package/src/components/index.tsx +6 -2
  256. package/src/contexts/BreacrumbsContext.tsx +38 -0
  257. package/src/contexts/DialogsProvider.tsx +5 -4
  258. package/src/contexts/InternalUserManagementContext.tsx +4 -0
  259. package/src/contexts/ModeController.tsx +1 -3
  260. package/src/contexts/SnackbarProvider.tsx +2 -0
  261. package/src/core/DefaultAppBar.tsx +219 -0
  262. package/src/core/DefaultDrawer.tsx +185 -0
  263. package/src/core/DrawerNavigationItem.tsx +66 -0
  264. package/src/core/EntityEditView.tsx +447 -469
  265. package/src/core/EntityEditViewFormActions.tsx +344 -0
  266. package/src/core/EntitySidePanel.tsx +96 -23
  267. package/src/core/FireCMS.tsx +85 -60
  268. package/src/core/FireCMSRouter.tsx +17 -0
  269. package/src/core/NavigationRoutes.tsx +28 -38
  270. package/src/core/SideDialogs.tsx +22 -12
  271. package/src/core/field_configs.tsx +41 -14
  272. package/src/core/index.tsx +6 -5
  273. package/src/form/EntityForm.tsx +740 -523
  274. package/src/form/EntityFormActions.tsx +226 -0
  275. package/src/form/PropertyFieldBinding.tsx +88 -41
  276. package/src/form/components/CustomIdField.tsx +9 -3
  277. package/src/form/components/ErrorFocus.tsx +22 -29
  278. package/src/form/components/FieldHelperText.tsx +4 -4
  279. package/src/form/components/FormEntry.tsx +22 -0
  280. package/src/form/components/FormLayout.tsx +16 -0
  281. package/src/form/components/LabelWithIcon.tsx +30 -19
  282. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  283. package/src/form/components/LocalChangesMenu.tsx +144 -0
  284. package/src/form/components/StorageItemPreview.tsx +23 -13
  285. package/src/form/components/StorageUploadProgress.tsx +5 -6
  286. package/src/form/components/index.tsx +3 -1
  287. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +34 -19
  288. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +50 -36
  289. package/src/form/field_bindings/BlockFieldBinding.tsx +56 -33
  290. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
  291. package/src/form/field_bindings/KeyValueFieldBinding.tsx +61 -52
  292. package/src/form/field_bindings/MapFieldBinding.tsx +73 -55
  293. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
  294. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
  295. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
  296. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
  297. package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
  298. package/src/form/field_bindings/RepeatFieldBinding.tsx +62 -35
  299. package/src/form/field_bindings/SelectFieldBinding.tsx +24 -15
  300. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +257 -199
  301. package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
  302. package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
  303. package/src/form/field_bindings/UserSelectFieldBinding.tsx +94 -0
  304. package/src/form/index.tsx +21 -37
  305. package/src/form/useClearRestoreValue.tsx +2 -2
  306. package/src/form/validation.ts +13 -23
  307. package/src/hooks/data/delete.ts +6 -5
  308. package/src/hooks/data/save.ts +26 -33
  309. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  310. package/src/hooks/data/useDataSource.tsx +11 -3
  311. package/src/hooks/data/useEntityFetch.tsx +10 -6
  312. package/src/hooks/index.tsx +4 -0
  313. package/src/hooks/useAuthController.tsx +1 -1
  314. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  315. package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
  316. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
  317. package/src/hooks/useBuildModeController.tsx +22 -29
  318. package/src/hooks/useBuildNavigationController.tsx +515 -121
  319. package/src/hooks/useCollapsedGroups.ts +64 -0
  320. package/src/hooks/useFireCMSContext.tsx +9 -35
  321. package/src/hooks/useInternalUserManagementController.tsx +16 -0
  322. package/src/hooks/useLargeLayout.tsx +0 -35
  323. package/src/hooks/useModeController.tsx +1 -2
  324. package/src/hooks/useProjectLog.tsx +32 -10
  325. package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
  326. package/src/hooks/useValidateAuthenticator.tsx +17 -37
  327. package/src/index.ts +1 -0
  328. package/src/internal/useBuildDataSource.ts +79 -85
  329. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  330. package/src/internal/useBuildSideEntityController.tsx +204 -77
  331. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  332. package/src/preview/PropertyPreview.tsx +42 -25
  333. package/src/preview/PropertyPreviewProps.tsx +7 -1
  334. package/src/preview/components/BooleanPreview.tsx +2 -2
  335. package/src/preview/components/EmptyValue.tsx +1 -1
  336. package/src/preview/components/EnumValuesChip.tsx +2 -2
  337. package/src/preview/components/ImagePreview.tsx +26 -37
  338. package/src/preview/components/ReferencePreview.tsx +30 -38
  339. package/src/preview/components/StorageThumbnail.tsx +5 -1
  340. package/src/preview/components/UrlComponentPreview.tsx +60 -28
  341. package/src/preview/components/UserPreview.tsx +27 -0
  342. package/src/preview/index.ts +1 -0
  343. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -6
  344. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +7 -5
  345. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -4
  346. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -4
  347. package/src/preview/property_previews/ArrayOneOfPreview.tsx +7 -6
  348. package/src/preview/property_previews/ArrayPropertyPreview.tsx +8 -7
  349. package/src/preview/property_previews/MapPropertyPreview.tsx +14 -13
  350. package/src/preview/property_previews/NumberPropertyPreview.tsx +2 -2
  351. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
  352. package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
  353. package/src/preview/util.ts +10 -10
  354. package/src/routes/CustomCMSRoute.tsx +21 -0
  355. package/src/routes/FireCMSRoute.tsx +246 -0
  356. package/src/routes/HomePageRoute.tsx +17 -0
  357. package/src/types/analytics.ts +3 -0
  358. package/src/types/auth.tsx +9 -13
  359. package/src/types/collections.ts +146 -30
  360. package/src/types/customization_controller.tsx +9 -1
  361. package/src/types/datasource.ts +61 -43
  362. package/src/types/dialogs_controller.tsx +7 -3
  363. package/src/types/entities.ts +19 -3
  364. package/src/types/entity_actions.tsx +86 -10
  365. package/src/types/entity_callbacks.ts +18 -18
  366. package/src/types/entity_overrides.tsx +2 -2
  367. package/src/types/export_import.ts +4 -4
  368. package/src/types/fields.tsx +91 -42
  369. package/src/types/firecms.tsx +34 -4
  370. package/src/types/firecms_context.tsx +18 -1
  371. package/src/types/index.ts +1 -1
  372. package/src/types/internal_user_management.ts +24 -0
  373. package/src/types/navigation.ts +77 -24
  374. package/src/types/permissions.ts +5 -5
  375. package/src/types/plugins.tsx +69 -15
  376. package/src/types/properties.ts +141 -33
  377. package/src/types/property_config.tsx +2 -2
  378. package/src/types/roles.ts +3 -0
  379. package/src/types/side_dialogs_controller.tsx +15 -0
  380. package/src/types/side_entity_controller.tsx +16 -1
  381. package/src/types/storage.ts +83 -1
  382. package/src/types/user.ts +3 -1
  383. package/src/util/builders.ts +10 -8
  384. package/src/util/callbacks.ts +119 -0
  385. package/src/util/collections.ts +8 -0
  386. package/src/util/createFormexStub.tsx +66 -0
  387. package/src/util/entities.ts +11 -8
  388. package/src/util/entity_actions.ts +28 -0
  389. package/src/util/entity_cache.ts +223 -0
  390. package/src/util/enums.ts +1 -1
  391. package/src/util/icon_list.ts +16 -10
  392. package/src/util/icon_synonyms.ts +3 -100
  393. package/src/util/icons.tsx +36 -11
  394. package/src/util/index.ts +3 -0
  395. package/src/util/join_collections.ts +11 -4
  396. package/src/util/make_properties_editable.ts +5 -19
  397. package/src/util/navigation_from_path.ts +33 -12
  398. package/src/util/navigation_utils.ts +141 -25
  399. package/src/util/objects.ts +128 -33
  400. package/src/util/parent_references_from_path.ts +3 -3
  401. package/src/util/permissions.ts +9 -8
  402. package/src/util/plurals.ts +0 -2
  403. package/src/util/property_utils.tsx +17 -6
  404. package/src/util/references.ts +19 -8
  405. package/src/util/resolutions.ts +122 -48
  406. package/src/util/storage.ts +79 -21
  407. package/src/util/strings.ts +2 -2
  408. package/src/util/useStorageUploadController.tsx +162 -62
  409. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
  410. package/dist/components/FireCMSAppBar.d.ts +0 -26
  411. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  412. package/dist/components/VirtualTable/common.d.ts +0 -2
  413. package/dist/core/Drawer.d.ts +0 -23
  414. package/dist/core/Scaffold.d.ts +0 -55
  415. package/dist/core/SideEntityView.d.ts +0 -7
  416. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  417. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  418. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  419. package/dist/internal/useLocaleConfig.d.ts +0 -1
  420. package/dist/types/appcheck.d.ts +0 -26
  421. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
  422. package/src/components/FireCMSAppBar.tsx +0 -165
  423. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
  424. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
  425. package/src/core/Drawer.tsx +0 -191
  426. package/src/core/Scaffold.tsx +0 -281
  427. package/src/core/SideEntityView.tsx +0 -38
  428. package/src/form/components/FormikArrayContainer.tsx +0 -44
  429. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  430. package/src/internal/useBuildCustomizationController.tsx +0 -5
  431. package/src/internal/useLocaleConfig.tsx +0 -18
  432. package/src/types/appcheck.ts +0 -29
  433. /package/src/util/{common.tsx → common.ts} +0 -0
@@ -1,10 +1,11 @@
1
1
  import React from "react";
2
2
  import { FieldProps } from "./fields";
3
3
  import { PropertyPreviewProps } from "../preview";
4
- import { EntityReference, EntityValues, GeoPoint } from "./entities";
4
+ 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
@@ -15,9 +16,10 @@ export type DataType<T extends CMSType = CMSType> =
15
16
  T extends boolean ? "boolean" :
16
17
  T extends Date ? "date" :
17
18
  T extends GeoPoint ? "geopoint" :
18
- T extends EntityReference ? "reference" :
19
- T extends Array<CMSType> ? "array" :
20
- T extends Record<string, any> ? "map" : never;
19
+ T extends Vector ? "vector" :
20
+ T extends EntityReference ? "reference" :
21
+ T extends Array<any> ? "array" :
22
+ T extends Record<string, any> ? "map" : never;
21
23
 
22
24
  /**
23
25
  * @group Entity properties
@@ -48,7 +50,7 @@ export type AnyProperty =
48
50
  /**
49
51
  * @group Entity properties
50
52
  */
51
- export type Property<T extends CMSType = CMSType> =
53
+ export type Property<T extends CMSType = any> =
52
54
  T extends string ? StringProperty :
53
55
  T extends number ? NumberProperty :
54
56
  T extends boolean ? BooleanProperty :
@@ -148,13 +150,23 @@ export interface BaseProperty<T extends CMSType, CustomProps = any> {
148
150
  /**
149
151
  * This value will be set by default for new entities.
150
152
  */
151
- defaultValue?: T;
153
+ defaultValue?: T | null;
152
154
 
153
155
  /**
154
156
  * Should this property be editable. If set to true, the user will be able to modify the property and
155
157
  * save the new config. The saved config will then become the source of truth.
158
+ * Defaults to `true.
159
+ * This props is only useful when you are using the collection editor to modify collection
160
+ * configurations from the CMS itself. You can also use the `editable` prop in the
161
+ * `EntityCollection` interface to disable the edition of all properties in a collection.
156
162
  */
157
163
  editable?: boolean;
164
+
165
+ /**
166
+ * A number between 0 and 100 that indicates the width of the field in the form view.
167
+ * It defaults to 100, but you can set it to 50 to have two fields in the same row.
168
+ */
169
+ widthPercentage?: number;
158
170
  }
159
171
 
160
172
  /**
@@ -263,6 +275,11 @@ export type PropertyBuilderProps<M extends Record<string, any> = any> =
263
275
  * Entity ID
264
276
  */
265
277
  entityId?: string;
278
+
279
+ /**
280
+ * Controller to manage authentication
281
+ */
282
+ authController: AuthController;
266
283
  };
267
284
 
268
285
  /**
@@ -276,21 +293,23 @@ export type PropertyBuilder<T extends CMSType = any, M extends Record<string, an
276
293
  values,
277
294
  previousValues,
278
295
  propertyValue,
296
+ index,
279
297
  path,
280
- entityId
298
+ entityId,
299
+ authController
281
300
  }: PropertyBuilderProps<M>) => Property<T> | null;
282
301
 
283
302
  /**
284
303
  * @group Entity properties
285
304
  */
286
- export type PropertyOrBuilder<T extends CMSType = CMSType, M extends Record<string, any> = Record<string, any>> =
305
+ export type PropertyOrBuilder<T extends CMSType = CMSType, M extends Record<string, any> = any> =
287
306
  Property<T>
288
307
  | PropertyBuilder<T, M>;
289
308
 
290
309
  /**
291
310
  * @group Entity properties
292
311
  */
293
- export type PropertiesOrBuilders<M extends Record<string, any> = Record<string, any>> =
312
+ export type PropertiesOrBuilders<M extends Record<string, any> = any> =
294
313
  {
295
314
  [k in keyof M]: PropertyOrBuilder<M[k], M>;
296
315
  };
@@ -369,10 +388,20 @@ export interface StringProperty extends BaseProperty<string> {
369
388
 
370
389
  /**
371
390
  * You can specify a `Storage` configuration. It is used to
372
- * indicate that this string refers to a path in Google Cloud Storage.
391
+ * indicate that this string refers to a path in your storage provider.
373
392
  */
374
393
  storage?: StorageConfig;
375
394
 
395
+ /**
396
+ * This property is used to indicate that the string is a user ID, and
397
+ * it will be rendered as a user picker.
398
+ * Note that the user ID needs to be the one used in your authentication
399
+ * provider, e.g. Firebase Auth.
400
+ * You can also use a property builder to specify the user path dynamically
401
+ * based on other values of the entity.
402
+ */
403
+ userSelect?: boolean;
404
+
376
405
  /**
377
406
  * If the value of this property is a URL, you can set this flag to true
378
407
  * to add a link, or one of the supported media types to render a preview
@@ -398,12 +427,20 @@ export interface StringProperty extends BaseProperty<string> {
398
427
  * Add an icon to clear the value and set it to `null`. Defaults to `false`
399
428
  */
400
429
  clearable?: boolean;
430
+
431
+ /**
432
+ * You can use this property (a string) to behave as a reference to another
433
+ * collection. The stored value is the ID of the entity in the
434
+ * collection, and the `path` prop is used to
435
+ * define the collection this reference points to.
436
+ */
437
+ reference?: ReferenceProperty;
401
438
  }
402
439
 
403
440
  /**
404
441
  * @group Entity properties
405
442
  */
406
- export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType = CMSType> extends BaseProperty<T> {
443
+ export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSType = any> extends BaseProperty<T> {
407
444
 
408
445
  dataType: "array";
409
446
 
@@ -467,6 +504,24 @@ export interface ArrayProperty<T extends ArrayT[] = any[], ArrayT extends CMSTyp
467
504
  */
468
505
  expanded?: boolean;
469
506
 
507
+ /**
508
+ * Display the child properties directly, without being wrapped in an
509
+ * extendable panel.
510
+ */
511
+ minimalistView?: boolean;
512
+
513
+ /**
514
+ * Can the elements in this array be reordered. Defaults to `true`.
515
+ * This prop has no effect if `disabled` is set to true.
516
+ */
517
+ sortable?: boolean;
518
+
519
+ /**
520
+ * Can the elements in this array be added. Defaults to `true`
521
+ * This prop has no effect if `disabled` is set to true.
522
+ */
523
+ canAddElements?: boolean;
524
+
470
525
  }
471
526
 
472
527
  /**
@@ -515,6 +570,12 @@ export interface MapProperty<T extends Record<string, CMSType> = Record<string,
515
570
  */
516
571
  spreadChildren?: boolean;
517
572
 
573
+ /**
574
+ * Display the child properties directly, without being wrapped in an
575
+ * extendable panel. Note that this will also hide the title of this property.
576
+ */
577
+ minimalistView?: boolean;
578
+
518
579
  /**
519
580
  * Should the field be initially expanded. Defaults to `true`
520
581
  */
@@ -591,7 +652,7 @@ export interface ReferenceProperty extends BaseProperty<EntityReference> {
591
652
  * You can leave this prop undefined if the path is not yet know, e.g.
592
653
  * you are using a property builder and the path depends on a different
593
654
  * property.
594
- * Note that you can also use a collection alias.
655
+ * Note that you can also use a collection id.
595
656
  */
596
657
  path?: string;
597
658
 
@@ -608,6 +669,16 @@ export interface ReferenceProperty extends BaseProperty<EntityReference> {
608
669
  */
609
670
  previewProperties?: string[];
610
671
 
672
+ /**
673
+ * Should the reference include the ID of the entity. Defaults to `true`
674
+ */
675
+ includeId?: boolean;
676
+
677
+ /**
678
+ * Should the reference include a link to the entity (open the entity details). Defaults to `true`
679
+ */
680
+ includeEntityLink?: boolean;
681
+
611
682
  }
612
683
 
613
684
  /**
@@ -708,8 +779,16 @@ export type StorageConfig = {
708
779
  /**
709
780
  * Use client side image compression and resizing
710
781
  * Will only be applied to these MIME types: image/jpeg, image/png and image/webp
782
+ * @deprecated Use `imageResize` instead
711
783
  */
712
- imageCompression?: ImageCompression;
784
+ imageCompression?: ImageResize;
785
+
786
+ /**
787
+ * Advanced image resizing and cropping configuration.
788
+ * Applied before upload to optimize storage and bandwidth.
789
+ * Only applies to image MIME types: image/jpeg, image/png, image/webp
790
+ */
791
+ imageResize?: ImageResize;
713
792
 
714
793
  /**
715
794
  * Specific metadata set in your uploaded file.
@@ -722,13 +801,13 @@ export type StorageConfig = {
722
801
  * You can use this prop to customize the uploaded filename.
723
802
  * You can use a function as a callback or a string where you
724
803
  * specify some placeholders that get replaced with the corresponding values.
725
- * - {file} - Full file name
726
- * - {file.name} - Name of the file without extension
727
- * - {file.ext} - Extension of the file
728
- * - {rand} - Random value used to avoid name collisions
729
- * - {entityId} - ID of the entity
730
- * - {propertyKey} - ID of this property
731
- * - {path} - Path of this entity
804
+ * - `{file}` - Full file name
805
+ * - `{file.name}` - Name of the file without extension
806
+ * - `{file.ext}` - Extension of the file
807
+ * - `{rand}` - Random value used to avoid name collisions
808
+ * - `{entityId}` - ID of the entity
809
+ * - `{propertyKey}` - ID of this property
810
+ * - `{path}` - Path of this entity
732
811
  *
733
812
  * @param context
734
813
  */
@@ -739,13 +818,13 @@ export type StorageConfig = {
739
818
  *
740
819
  * You can use a function as a callback or a string where you
741
820
  * specify some placeholders that get replaced with the corresponding values.
742
- * - {file} - Full file name
743
- * - {file.name} - Name of the file without extension
744
- * - {file.ext} - Extension of the file
745
- * - {rand} - Random value used to avoid name collisions
746
- * - {entityId} - ID of the entity
747
- * - {propertyKey} - ID of this property
748
- * - {path} - Path of this entity
821
+ * - `{file}` - Full file name
822
+ * - `{file.name}` - Name of the file without extension
823
+ * - `{file.ext}` - Extension of the file
824
+ * - `{rand}` - Random value used to avoid name collisions
825
+ * - `{entityId}` - ID of the entity
826
+ * - `{propertyKey}` - ID of this property
827
+ * - `{path}` - Path of this entity
749
828
  */
750
829
  storagePath: string | ((context: UploadedFileContext) => string);
751
830
 
@@ -766,12 +845,24 @@ export type StorageConfig = {
766
845
  */
767
846
  maxSize?: number,
768
847
 
848
+ /**
849
+ * Use this callback to process the file before uploading it to the storage.
850
+ * If nothing is returned, the file is uploaded as it is.
851
+ * @param file
852
+ */
853
+ processFile?: (file: File) => Promise<File> | undefined;
854
+
769
855
  /**
770
856
  * Postprocess the saved value (storage path or URL)
771
857
  * after it has been resolved.
772
858
  */
773
859
  postProcess?: (pathOrUrl: string) => Promise<string>;
774
860
 
861
+ /**
862
+ * You can use this prop in order to provide a custom preview URL.
863
+ * Useful when the file's path is different from the original field value
864
+ */
865
+ previewUrl?: (fileName: string) => string;
775
866
  }
776
867
 
777
868
  /**
@@ -801,7 +892,7 @@ export interface UploadedFileContext {
801
892
  /**
802
893
  * Entity path. E.g. `products/PID/locales`
803
894
  */
804
- path: string;
895
+ path?: string;
805
896
 
806
897
  /**
807
898
  * Values of the current entity
@@ -834,19 +925,36 @@ export type FileType =
834
925
  | "font/*"
835
926
  | string;
836
927
 
837
- export interface ImageCompression {
928
+ export interface ImageResize {
838
929
  /**
839
- * New image max height (ratio is preserved)
930
+ * Maximum width in pixels. Image will be scaled down proportionally if wider.
931
+ */
932
+ maxWidth?: number;
933
+
934
+ /**
935
+ * Maximum height in pixels. Image will be scaled down proportionally if taller.
840
936
  */
841
937
  maxHeight?: number;
842
938
 
843
939
  /**
844
- * New image max width (ratio is preserved)
940
+ * Resize mode determines how the image fits within maxWidth/maxHeight bounds.
941
+ * - `contain`: Scale down to fit within bounds, preserving aspect ratio (default)
942
+ * - `cover`: Scale to fill bounds, preserving aspect ratio (may crop)
845
943
  */
846
- maxWidth?: number;
944
+ mode?: 'contain' | 'cover';
945
+
946
+ /**
947
+ * Output format for the resized image.
948
+ * - `original`: Keep the original format (default)
949
+ * - `jpeg`: Convert to JPEG
950
+ * - `png`: Convert to PNG
951
+ * - `webp`: Convert to WebP
952
+ */
953
+ format?: 'original' | 'jpeg' | 'png' | 'webp';
847
954
 
848
955
  /**
849
- * A number between 0 and 100. Used for the JPEG compression.(if no compress is needed, just set it to 100)
956
+ * Quality for lossy formats (JPEG, WebP). Number between 0 and 100.
957
+ * Higher is better quality but larger file size. Defaults to 80.
850
958
  */
851
959
  quality?: number;
852
960
  }
@@ -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
  /**
@@ -101,5 +101,87 @@ export interface StorageSource {
101
101
  * @param props
102
102
  * @param bucket
103
103
  */
104
- getFile: (path:string, bucket?: string) => Promise<File | null>;
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