@firecms/core 3.0.0-canary.26 → 3.0.0-canary.260

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 (405) 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 +8 -5
  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 +76 -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 +7 -1
  32. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  33. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  34. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  35. package/dist/components/ReferenceWidget.d.ts +3 -1
  36. package/dist/components/SelectableTable/SelectableTable.d.ts +14 -4
  37. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
  38. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  39. package/dist/components/VirtualTable/VirtualTableProps.d.ts +24 -12
  40. package/dist/components/VirtualTable/types.d.ts +3 -3
  41. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
  42. package/dist/components/common/index.d.ts +2 -1
  43. package/dist/components/common/table_height.d.ts +5 -0
  44. package/dist/components/common/types.d.ts +4 -6
  45. package/dist/components/common/useColumnsIds.d.ts +3 -1
  46. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
  47. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  48. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  49. package/dist/components/index.d.ts +5 -2
  50. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  51. package/dist/core/DefaultAppBar.d.ts +29 -0
  52. package/dist/core/DefaultDrawer.d.ts +19 -0
  53. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  54. package/dist/core/EntityEditView.d.ts +43 -11
  55. package/dist/core/EntityEditViewFormActions.d.ts +2 -0
  56. package/dist/core/FireCMS.d.ts +3 -3
  57. package/dist/core/FireCMSRouter.d.ts +4 -0
  58. package/dist/core/NavigationRoutes.d.ts +2 -3
  59. package/dist/core/SideDialogs.d.ts +4 -2
  60. package/dist/core/field_configs.d.ts +1 -1
  61. package/dist/core/index.d.ts +4 -4
  62. package/dist/form/EntityForm.d.ts +37 -64
  63. package/dist/form/EntityFormActions.d.ts +21 -0
  64. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  65. package/dist/form/components/ErrorFocus.d.ts +1 -1
  66. package/dist/form/components/FieldHelperText.d.ts +3 -3
  67. package/dist/form/components/FormEntry.d.ts +6 -0
  68. package/dist/form/components/FormLayout.d.ts +5 -0
  69. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  70. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  71. package/dist/form/components/StorageItemPreview.d.ts +4 -4
  72. package/dist/form/components/index.d.ts +3 -1
  73. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  74. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  75. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  76. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  77. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  78. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  79. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  80. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  81. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
  82. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  83. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  84. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  85. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +5 -13
  86. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  87. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  88. package/dist/form/index.d.ts +17 -18
  89. package/dist/form/useClearRestoreValue.d.ts +2 -2
  90. package/dist/hooks/data/delete.d.ts +4 -4
  91. package/dist/hooks/data/save.d.ts +4 -5
  92. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  93. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  94. package/dist/hooks/index.d.ts +1 -0
  95. package/dist/hooks/useAuthController.d.ts +1 -1
  96. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  97. package/dist/hooks/useBuildNavigationController.d.ts +57 -13
  98. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  99. package/dist/hooks/useModeController.d.ts +1 -2
  100. package/dist/hooks/useProjectLog.d.ts +8 -2
  101. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  102. package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.es.js +23088 -13940
  105. package/dist/index.es.js.map +1 -1
  106. package/dist/index.umd.js +25823 -588
  107. package/dist/index.umd.js.map +1 -1
  108. package/dist/internal/useBuildDataSource.d.ts +3 -17
  109. package/dist/internal/useBuildSideEntityController.d.ts +3 -3
  110. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  111. package/dist/preview/PropertyPreviewProps.d.ts +6 -1
  112. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  113. package/dist/preview/components/ReferencePreview.d.ts +3 -2
  114. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  115. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  116. package/dist/preview/util.d.ts +3 -3
  117. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  118. package/dist/routes/FireCMSRoute.d.ts +1 -0
  119. package/dist/routes/HomePageRoute.d.ts +3 -0
  120. package/dist/types/analytics.d.ts +1 -1
  121. package/dist/types/auth.d.ts +8 -10
  122. package/dist/types/collections.d.ts +110 -25
  123. package/dist/types/customization_controller.d.ts +8 -0
  124. package/dist/types/datasource.d.ts +52 -36
  125. package/dist/types/dialogs_controller.d.ts +7 -3
  126. package/dist/types/entities.d.ts +7 -2
  127. package/dist/types/entity_actions.d.ts +72 -8
  128. package/dist/types/entity_callbacks.d.ts +16 -16
  129. package/dist/types/entity_overrides.d.ts +2 -2
  130. package/dist/types/export_import.d.ts +4 -4
  131. package/dist/types/fields.d.ts +74 -42
  132. package/dist/types/firecms.d.ts +16 -3
  133. package/dist/types/firecms_context.d.ts +1 -1
  134. package/dist/types/index.d.ts +0 -1
  135. package/dist/types/navigation.d.ts +62 -19
  136. package/dist/types/permissions.d.ts +4 -4
  137. package/dist/types/plugins.d.ts +56 -13
  138. package/dist/types/properties.d.ts +80 -24
  139. package/dist/types/property_config.d.ts +1 -3
  140. package/dist/types/roles.d.ts +3 -0
  141. package/dist/types/side_dialogs_controller.d.ts +10 -0
  142. package/dist/types/side_entity_controller.d.ts +14 -1
  143. package/dist/types/storage.d.ts +75 -0
  144. package/dist/types/user.d.ts +1 -0
  145. package/dist/util/builders.d.ts +3 -3
  146. package/dist/util/callbacks.d.ts +2 -0
  147. package/dist/util/createFormexStub.d.ts +2 -0
  148. package/dist/util/entities.d.ts +3 -3
  149. package/dist/util/entity_actions.d.ts +2 -0
  150. package/dist/util/entity_cache.d.ts +23 -0
  151. package/dist/util/icon_list.d.ts +5 -1
  152. package/dist/util/icon_synonyms.d.ts +1 -98
  153. package/dist/util/icons.d.ts +7 -4
  154. package/dist/util/index.d.ts +3 -0
  155. package/dist/util/navigation_from_path.d.ts +10 -1
  156. package/dist/util/navigation_utils.d.ts +15 -3
  157. package/dist/util/objects.d.ts +2 -1
  158. package/dist/util/permissions.d.ts +4 -4
  159. package/dist/util/plurals.d.ts +0 -2
  160. package/dist/util/property_utils.d.ts +4 -4
  161. package/dist/util/references.d.ts +2 -2
  162. package/dist/util/resolutions.d.ts +42 -17
  163. package/dist/util/storage.d.ts +23 -2
  164. package/dist/util/useStorageUploadController.d.ts +3 -3
  165. package/package.json +64 -48
  166. package/src/app/AppBar.tsx +18 -0
  167. package/src/app/Drawer.tsx +24 -0
  168. package/src/app/Scaffold.tsx +253 -0
  169. package/src/app/index.ts +4 -0
  170. package/src/app/useApp.tsx +32 -0
  171. package/src/components/ArrayContainer.tsx +447 -229
  172. package/src/components/CircularProgressCenter.tsx +2 -2
  173. package/src/components/ClearFilterSortButton.tsx +41 -0
  174. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
  175. package/src/components/DeleteEntityDialog.tsx +13 -20
  176. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +65 -40
  177. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
  178. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
  179. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +72 -42
  180. package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
  181. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
  182. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
  183. package/src/components/EntityCollectionTable/index.tsx +1 -1
  184. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +34 -39
  185. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +49 -36
  186. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  187. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +135 -105
  188. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
  189. package/src/components/EntityCollectionView/EntityCollectionView.tsx +235 -118
  190. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
  191. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  192. package/src/components/EntityCollectionView/useSelectionController.tsx +20 -7
  193. package/src/components/EntityCollectionView/utils.ts +19 -0
  194. package/src/components/EntityJsonPreview.tsx +66 -0
  195. package/src/components/EntityPreview.tsx +80 -59
  196. package/src/components/EntityView.tsx +13 -10
  197. package/src/components/ErrorView.tsx +4 -4
  198. package/src/components/FireCMSLogo.tsx +7 -51
  199. package/src/components/HomePage/DefaultHomePage.tsx +499 -157
  200. package/src/components/HomePage/FavouritesView.tsx +9 -14
  201. package/src/components/HomePage/HomePageDnD.tsx +599 -0
  202. package/src/components/HomePage/NavigationCard.tsx +48 -39
  203. package/src/components/HomePage/NavigationCardBinding.tsx +17 -16
  204. package/src/components/HomePage/NavigationGroup.tsx +63 -29
  205. package/src/components/HomePage/RenameGroupDialog.tsx +117 -0
  206. package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
  207. package/src/components/NotFoundPage.tsx +2 -2
  208. package/src/components/PropertyConfigBadge.tsx +9 -3
  209. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  210. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +21 -13
  211. package/src/components/ReferenceWidget.tsx +21 -11
  212. package/src/components/SearchIconsView.tsx +10 -7
  213. package/src/components/SelectableTable/SelectableTable.tsx +157 -145
  214. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
  215. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
  216. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
  217. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
  218. package/src/components/UnsavedChangesDialog.tsx +46 -0
  219. package/src/components/VirtualTable/VirtualTable.tsx +105 -51
  220. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  221. package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
  222. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  223. package/src/components/VirtualTable/VirtualTableProps.tsx +28 -14
  224. package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
  225. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
  226. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
  227. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  228. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  229. package/src/components/VirtualTable/types.tsx +2 -3
  230. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +64 -44
  231. package/src/components/common/index.ts +2 -1
  232. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  233. package/src/components/common/types.tsx +4 -6
  234. package/src/components/common/useColumnsIds.tsx +24 -3
  235. package/src/components/common/useDataSourceTableController.tsx +420 -0
  236. package/src/components/common/useDebouncedCallback.tsx +20 -0
  237. package/src/components/common/useScrollRestoration.tsx +68 -0
  238. package/src/components/common/useTableSearchHelper.ts +53 -12
  239. package/src/components/index.tsx +6 -2
  240. package/src/contexts/BreacrumbsContext.tsx +38 -0
  241. package/src/contexts/DialogsProvider.tsx +5 -4
  242. package/src/contexts/ModeController.tsx +1 -3
  243. package/src/contexts/SnackbarProvider.tsx +2 -0
  244. package/src/core/DefaultAppBar.tsx +219 -0
  245. package/src/core/DefaultDrawer.tsx +185 -0
  246. package/src/core/DrawerNavigationItem.tsx +66 -0
  247. package/src/core/EntityEditView.tsx +435 -470
  248. package/src/core/EntityEditViewFormActions.tsx +329 -0
  249. package/src/core/EntitySidePanel.tsx +88 -21
  250. package/src/core/FireCMS.tsx +74 -58
  251. package/src/core/FireCMSRouter.tsx +17 -0
  252. package/src/core/NavigationRoutes.tsx +28 -38
  253. package/src/core/SideDialogs.tsx +22 -12
  254. package/src/core/field_configs.tsx +26 -13
  255. package/src/core/index.tsx +6 -5
  256. package/src/form/EntityForm.tsx +620 -534
  257. package/src/form/EntityFormActions.tsx +211 -0
  258. package/src/form/PropertyFieldBinding.tsx +88 -45
  259. package/src/form/components/CustomIdField.tsx +9 -3
  260. package/src/form/components/FieldHelperText.tsx +4 -4
  261. package/src/form/components/FormEntry.tsx +22 -0
  262. package/src/form/components/FormLayout.tsx +16 -0
  263. package/src/form/components/LabelWithIcon.tsx +30 -19
  264. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  265. package/src/form/components/StorageItemPreview.tsx +23 -13
  266. package/src/form/components/StorageUploadProgress.tsx +5 -6
  267. package/src/form/components/index.tsx +3 -1
  268. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +34 -19
  269. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +50 -36
  270. package/src/form/field_bindings/BlockFieldBinding.tsx +56 -34
  271. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
  272. package/src/form/field_bindings/KeyValueFieldBinding.tsx +61 -52
  273. package/src/form/field_bindings/MapFieldBinding.tsx +73 -55
  274. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
  275. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
  276. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
  277. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
  278. package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
  279. package/src/form/field_bindings/RepeatFieldBinding.tsx +62 -35
  280. package/src/form/field_bindings/SelectFieldBinding.tsx +24 -15
  281. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +257 -199
  282. package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
  283. package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
  284. package/src/form/index.tsx +17 -37
  285. package/src/form/useClearRestoreValue.tsx +2 -2
  286. package/src/form/validation.ts +13 -23
  287. package/src/hooks/data/delete.ts +6 -5
  288. package/src/hooks/data/save.ts +26 -33
  289. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  290. package/src/hooks/data/useDataSource.tsx +11 -3
  291. package/src/hooks/data/useEntityFetch.tsx +10 -6
  292. package/src/hooks/index.tsx +1 -0
  293. package/src/hooks/useAuthController.tsx +1 -1
  294. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  295. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
  296. package/src/hooks/useBuildModeController.tsx +22 -29
  297. package/src/hooks/useBuildNavigationController.tsx +440 -119
  298. package/src/hooks/useFireCMSContext.tsx +3 -33
  299. package/src/hooks/useLargeLayout.tsx +0 -35
  300. package/src/hooks/useModeController.tsx +1 -2
  301. package/src/hooks/useProjectLog.tsx +32 -10
  302. package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
  303. package/src/hooks/useValidateAuthenticator.tsx +17 -37
  304. package/src/index.ts +1 -0
  305. package/src/internal/useBuildDataSource.ts +79 -85
  306. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  307. package/src/internal/useBuildSideEntityController.tsx +204 -77
  308. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  309. package/src/preview/PropertyPreview.tsx +34 -25
  310. package/src/preview/PropertyPreviewProps.tsx +7 -1
  311. package/src/preview/components/BooleanPreview.tsx +2 -2
  312. package/src/preview/components/EmptyValue.tsx +1 -1
  313. package/src/preview/components/EnumValuesChip.tsx +2 -2
  314. package/src/preview/components/ImagePreview.tsx +26 -37
  315. package/src/preview/components/ReferencePreview.tsx +23 -34
  316. package/src/preview/components/StorageThumbnail.tsx +5 -1
  317. package/src/preview/components/UrlComponentPreview.tsx +60 -28
  318. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -6
  319. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +7 -5
  320. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -4
  321. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -4
  322. package/src/preview/property_previews/ArrayOneOfPreview.tsx +7 -6
  323. package/src/preview/property_previews/ArrayPropertyPreview.tsx +7 -6
  324. package/src/preview/property_previews/MapPropertyPreview.tsx +12 -11
  325. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
  326. package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
  327. package/src/preview/util.ts +10 -10
  328. package/src/routes/CustomCMSRoute.tsx +21 -0
  329. package/src/routes/FireCMSRoute.tsx +246 -0
  330. package/src/routes/HomePageRoute.tsx +17 -0
  331. package/src/types/analytics.ts +3 -0
  332. package/src/types/auth.tsx +9 -13
  333. package/src/types/collections.ts +132 -30
  334. package/src/types/customization_controller.tsx +9 -1
  335. package/src/types/datasource.ts +61 -43
  336. package/src/types/dialogs_controller.tsx +7 -3
  337. package/src/types/entities.ts +12 -2
  338. package/src/types/entity_actions.tsx +86 -10
  339. package/src/types/entity_callbacks.ts +18 -18
  340. package/src/types/entity_overrides.tsx +2 -2
  341. package/src/types/export_import.ts +4 -4
  342. package/src/types/fields.tsx +85 -46
  343. package/src/types/firecms.tsx +18 -4
  344. package/src/types/firecms_context.tsx +1 -1
  345. package/src/types/index.ts +0 -1
  346. package/src/types/navigation.ts +77 -24
  347. package/src/types/permissions.ts +5 -5
  348. package/src/types/plugins.tsx +66 -15
  349. package/src/types/properties.ts +95 -26
  350. package/src/types/property_config.tsx +1 -2
  351. package/src/types/roles.ts +3 -0
  352. package/src/types/side_dialogs_controller.tsx +15 -0
  353. package/src/types/side_entity_controller.tsx +16 -1
  354. package/src/types/storage.ts +83 -1
  355. package/src/types/user.ts +2 -0
  356. package/src/util/builders.ts +10 -8
  357. package/src/util/callbacks.ts +119 -0
  358. package/src/util/createFormexStub.tsx +62 -0
  359. package/src/util/entities.ts +9 -6
  360. package/src/util/entity_actions.ts +28 -0
  361. package/src/util/entity_cache.ts +204 -0
  362. package/src/util/enums.ts +1 -1
  363. package/src/util/icon_list.ts +16 -10
  364. package/src/util/icon_synonyms.ts +3 -100
  365. package/src/util/icons.tsx +36 -11
  366. package/src/util/index.ts +3 -0
  367. package/src/util/join_collections.ts +9 -2
  368. package/src/util/make_properties_editable.ts +13 -5
  369. package/src/util/navigation_from_path.ts +33 -12
  370. package/src/util/navigation_utils.ts +141 -25
  371. package/src/util/objects.ts +90 -33
  372. package/src/util/parent_references_from_path.ts +3 -3
  373. package/src/util/permissions.ts +9 -8
  374. package/src/util/plurals.ts +0 -2
  375. package/src/util/property_utils.tsx +17 -6
  376. package/src/util/references.ts +19 -8
  377. package/src/util/resolutions.ts +122 -48
  378. package/src/util/storage.ts +79 -21
  379. package/src/util/strings.ts +2 -2
  380. package/src/util/useStorageUploadController.tsx +91 -28
  381. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
  382. package/dist/components/FireCMSAppBar.d.ts +0 -26
  383. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  384. package/dist/components/VirtualTable/common.d.ts +0 -2
  385. package/dist/core/Drawer.d.ts +0 -23
  386. package/dist/core/Scaffold.d.ts +0 -55
  387. package/dist/core/SideEntityView.d.ts +0 -7
  388. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  389. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  390. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  391. package/dist/internal/useLocaleConfig.d.ts +0 -1
  392. package/dist/types/appcheck.d.ts +0 -26
  393. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
  394. package/src/components/FireCMSAppBar.tsx +0 -165
  395. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
  396. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
  397. package/src/core/Drawer.tsx +0 -191
  398. package/src/core/Scaffold.tsx +0 -281
  399. package/src/core/SideEntityView.tsx +0 -38
  400. package/src/form/components/FormikArrayContainer.tsx +0 -44
  401. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  402. package/src/internal/useBuildCustomizationController.tsx +0 -5
  403. package/src/internal/useLocaleConfig.tsx +0 -18
  404. package/src/types/appcheck.ts +0 -29
  405. /package/src/util/{common.tsx → common.ts} +0 -0
@@ -0,0 +1,76 @@
1
+ import React from "react";
2
+ import { Active, CollisionDetection, DropAnimation, UniqueIdentifier } from "@dnd-kit/core";
3
+ import { NavigationEntry } from "../../types";
4
+ export declare function SortableNavigationCard({ entry, onClick }: {
5
+ entry: NavigationEntry;
6
+ onClick?: () => void;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ export declare function NavigationGroupDroppable({ id, itemIds, children, isPotentialCardDropTarget }: {
9
+ id: UniqueIdentifier;
10
+ itemIds: UniqueIdentifier[];
11
+ children: React.ReactNode;
12
+ isPotentialCardDropTarget?: boolean;
13
+ }): import("react/jsx-runtime").JSX.Element;
14
+ export declare function SortableNavigationGroup({ groupName, children, disabled }: {
15
+ groupName: string;
16
+ children: React.ReactNode;
17
+ disabled?: boolean;
18
+ }): import("react/jsx-runtime").JSX.Element;
19
+ export declare function useHomePageDnd({ items: dndItems, setItems: setDndItems, disabled, onCardMovedBetweenGroups, onGroupMoved, onNewGroupDrop, onPersist }: {
20
+ items: {
21
+ name: string;
22
+ entries: NavigationEntry[];
23
+ }[];
24
+ setItems: (newItemsOrUpdater: {
25
+ name: string;
26
+ entries: NavigationEntry[];
27
+ }[] | ((currentItems: {
28
+ name: string;
29
+ entries: NavigationEntry[];
30
+ }[]) => {
31
+ name: string;
32
+ entries: NavigationEntry[];
33
+ }[])) => void;
34
+ disabled: boolean;
35
+ onCardMovedBetweenGroups?: (card: NavigationEntry) => void;
36
+ onGroupMoved?: (groupName: string, oldIndex: number, newIndex: number) => void;
37
+ onNewGroupDrop?: () => void;
38
+ onPersist?: (latest: {
39
+ name: string;
40
+ entries: NavigationEntry[];
41
+ }[]) => void;
42
+ }): {
43
+ sensors: import("@dnd-kit/core").SensorDescriptor<import("@dnd-kit/core").SensorOptions>[];
44
+ collisionDetection: CollisionDetection;
45
+ onDragStart: ({ active }: {
46
+ active: Active;
47
+ }) => void;
48
+ onDragOver: ({ active, over }: {
49
+ active: Active;
50
+ over: any;
51
+ }) => void;
52
+ onDragEnd: ({ active, over }: {
53
+ active: Active;
54
+ over: any;
55
+ }) => void;
56
+ onDragCancel: () => void;
57
+ dropAnimation: DropAnimation;
58
+ activeItemForOverlay: NavigationEntry | null;
59
+ activeGroupData: {
60
+ name: string;
61
+ entries: NavigationEntry[];
62
+ } | null;
63
+ draggingGroupId: UniqueIdentifier | null;
64
+ containers: string[];
65
+ dndKitActiveNode: Active | null;
66
+ isDraggingCardOnly: boolean;
67
+ dialogOpenForGroup: string | null;
68
+ setDialogOpenForGroup: React.Dispatch<React.SetStateAction<string | null>>;
69
+ handleRenameGroup: (oldName: string, newName: string) => void;
70
+ isHoveringNewGroupDropZone: boolean;
71
+ setIsHoveringNewGroupDropZone: React.Dispatch<React.SetStateAction<boolean>>;
72
+ };
73
+ export declare function NewGroupDropZone({ disabled, setIsHovering }: {
74
+ disabled: boolean;
75
+ setIsHovering: (v: boolean) => void;
76
+ }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,8 +1,10 @@
1
+ import React from "react";
1
2
  export type NavigationCardProps = {
2
3
  name: string;
3
4
  description?: string;
4
5
  actions: React.ReactNode;
5
6
  icon: React.ReactNode;
6
7
  onClick?: () => void;
8
+ shrink?: boolean;
7
9
  };
8
- export declare function NavigationCard({ name, description, icon, actions, onClick, }: NavigationCardProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare const NavigationCard: React.NamedExoticComponent<NavigationCardProps>;
@@ -1,4 +1,4 @@
1
- import { TopNavigationEntry } from "../../types";
1
+ import { NavigationEntry } from "../../types";
2
2
  /**
3
3
  * This is the component used in the home page to render a card for each
4
4
  * collection or view.
@@ -10,8 +10,9 @@ import { TopNavigationEntry } from "../../types";
10
10
  * @param name
11
11
  * @param description
12
12
  * @param onClick
13
- * @constructor
13
+
14
14
  */
15
- export declare function NavigationCardBinding({ path, collection, view, url, name, description, onClick, type }: TopNavigationEntry & {
15
+ export declare function NavigationCardBinding({ path, collection, view, url, name, description, onClick, type, shrink }: NavigationEntry & {
16
16
  onClick?: () => void;
17
+ shrink?: boolean;
17
18
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,10 @@
1
1
  import { PropsWithChildren } from "react";
2
- export declare function NavigationGroup({ children, group }: PropsWithChildren<{
2
+ export declare function NavigationGroup({ children, group, minimised, isPreview, isPotentialCardDropTarget, onEditGroup, // New prop to handle editing
3
+ dndDisabled }: PropsWithChildren<{
3
4
  group: string | undefined;
5
+ minimised?: boolean;
6
+ isPreview?: boolean;
7
+ isPotentialCardDropTarget?: boolean;
8
+ onEditGroup?: (groupName: string) => void;
9
+ dndDisabled?: boolean;
4
10
  }>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,9 @@
1
+ interface RenameGroupDialogProps {
2
+ open: boolean;
3
+ initialName: string;
4
+ existingGroupNames: string[];
5
+ onClose: () => void;
6
+ onRename: (newName: string) => void;
7
+ }
8
+ export declare function RenameGroupDialog({ open, initialName, existingGroupNames, onClose, onRename }: RenameGroupDialogProps): import("react/jsx-runtime").JSX.Element | null;
9
+ export {};
@@ -1,4 +1,5 @@
1
1
  import { PropertyConfig } from "../types";
2
- export declare function PropertyConfigBadge({ propertyConfig }: {
2
+ export declare function PropertyConfigBadge({ propertyConfig, disabled }: {
3
3
  propertyConfig: PropertyConfig | undefined;
4
+ disabled?: boolean;
4
5
  }): React.ReactNode;
@@ -0,0 +1,8 @@
1
+ export declare function PropertyIdCopyTooltip({ propertyKey, className, children, }: {
2
+ propertyKey: string;
3
+ className?: string;
4
+ children: React.ReactNode;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export declare function PropertyIdCopyTooltipContent({ propertyKey }: {
7
+ propertyKey: string;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -21,8 +21,10 @@ export type ReferenceWidgetProps<M extends Record<string, any>> = {
21
21
  forceFilter?: FilterValues<string>;
22
22
  size: PreviewSize;
23
23
  className?: string;
24
+ includeId?: boolean;
25
+ includeEntityLink?: boolean;
24
26
  };
25
27
  /**
26
28
  * This field allows selecting reference/s.
27
29
  */
28
- export declare function ReferenceWidget<M extends Record<string, any>>({ name, multiselect, path, disabled, value, onReferenceSelected, onMultipleReferenceSelected, previewProperties, forceFilter, size, className }: ReferenceWidgetProps<M>): import("react/jsx-runtime").JSX.Element;
30
+ export declare function ReferenceWidget<M extends Record<string, any>>({ name, multiselect, path, disabled, value, onReferenceSelected, onMultipleReferenceSelected, previewProperties, forceFilter, size, className, includeId, includeEntityLink }: ReferenceWidgetProps<M>): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import React from "react";
2
2
  import { CollectionSize, Entity, EntityTableController, FilterValues } from "../../types";
3
3
  import { CellRendererParams, VirtualTableColumn } from "../VirtualTable";
4
- import { OnCellValueChange, OnColumnResizeParams } from "../common/types";
4
+ import { OnCellValueChange, OnColumnResizeParams } from "../common";
5
5
  export type SelectableTableProps<M extends Record<string, any>> = {
6
6
  /**
7
7
  * Callback when a cell value changes.
@@ -34,7 +34,7 @@ export type SelectableTableProps<M extends Record<string, any>> = {
34
34
  hoverRow?: boolean;
35
35
  /**
36
36
  * Controller holding the logic for the table
37
- * {@link useDataSourceEntityCollectionTableController}
37
+ * {@link useDataSourceTableController}
38
38
  * {@link EntityTableController}
39
39
  */
40
40
  tableController: EntityTableController<M>;
@@ -44,6 +44,16 @@ export type SelectableTableProps<M extends Record<string, any>> = {
44
44
  forceFilter?: FilterValues<keyof M extends string ? keyof M : never>;
45
45
  highlightedRow?: (data: Entity<M>) => boolean;
46
46
  size?: CollectionSize;
47
+ initialScroll?: number;
48
+ /**
49
+ * Callback when the table is scrolled
50
+ * @param props
51
+ */
52
+ onScroll?: (props: {
53
+ scrollDirection: "forward" | "backward";
54
+ scrollOffset: number;
55
+ scrollUpdateWasRequested: boolean;
56
+ }) => void;
47
57
  emptyComponent?: React.ReactNode;
48
58
  endAdornment?: React.ReactNode;
49
59
  AddColumnComponent?: React.ComponentType;
@@ -65,11 +75,11 @@ export type SelectableTableProps<M extends Record<string, any>> = {
65
75
  *
66
76
  * The data displayed in the table is managed by a {@link EntityTableController}.
67
77
  * You can build the default, bound to a path in the datasource, by using the hook
68
- * {@link useDataSourceEntityCollectionTableController}
78
+ * {@link useDataSourceTableController}
69
79
  *
70
80
  * @see EntityCollectionTableProps
71
81
  * @see EntityCollectionView
72
82
  * @see VirtualTable
73
83
  * @group Components
74
84
  */
75
- export declare const SelectableTable: React.NamedExoticComponent<SelectableTableProps<any>>;
85
+ export declare const SelectableTable: <M extends Record<string, any>>({ onValueChange, cellRenderer, onEntityClick, onColumnResize, hoverRow, size, inlineEditing, tableController: { data, dataLoading, noMoreToLoad, dataLoadingError, filterValues, setFilterValues, sortBy, setSortBy, itemCount, setItemCount, pageSize, paginationEnabled, checkFilterCombination, setPopupCell }, filterable, onScroll, initialScroll, emptyComponent, columns, forceFilter, highlightedRow, endAdornment, AddColumnComponent }: SelectableTableProps<M>) => import("react/jsx-runtime").JSX.Element;
@@ -6,9 +6,10 @@ interface ReferenceFilterFieldProps {
6
6
  isArray?: boolean;
7
7
  path?: string;
8
8
  title?: string;
9
+ includeId?: boolean;
9
10
  previewProperties?: string[];
10
11
  hidden: boolean;
11
12
  setHidden: (hidden: boolean) => void;
12
13
  }
13
- export declare function ReferenceFilterField({ name, value, setValue, isArray, path, title, previewProperties, setHidden }: ReferenceFilterFieldProps): import("react/jsx-runtime").JSX.Element;
14
+ export declare function ReferenceFilterField({ value, setValue, isArray, path, includeId, previewProperties, setHidden }: ReferenceFilterFieldProps): import("react/jsx-runtime").JSX.Element;
14
15
  export {};
@@ -0,0 +1,8 @@
1
+ export interface UnsavedChangesDialogProps {
2
+ open: boolean;
3
+ body?: React.ReactNode;
4
+ title?: string;
5
+ handleOk: () => void;
6
+ handleCancel: () => void;
7
+ }
8
+ export declare function UnsavedChangesDialog({ open, handleOk, handleCancel, body, title }: UnsavedChangesDialogProps): import("react/jsx-runtime").JSX.Element;
@@ -25,10 +25,6 @@ export interface VirtualTableProps<T extends Record<string, any>> {
25
25
  * The renderer receives props `{ cellData, columns, column, columnIndex, rowData, rowIndex, container, isScrolling }`
26
26
  */
27
27
  cellRenderer: React.ComponentType<CellRendererParams<T>>;
28
- /**
29
- * If enabled, content is loaded in batch
30
- */
31
- paginationEnabled?: boolean;
32
28
  /**
33
29
  * Set this callback if you want to support some combinations
34
30
  * of filter combinations only.
@@ -40,6 +36,10 @@ export interface VirtualTableProps<T extends Record<string, any>> {
40
36
  * A callback function when scrolling the table to near the end
41
37
  */
42
38
  onEndReached?: () => void;
39
+ /**
40
+ * Offset in pixels where the onEndReached callback is triggered
41
+ */
42
+ endOffset?: number;
43
43
  /**
44
44
  * When the pagination should be reset. E.g. the filters or sorting
45
45
  * has been reset.
@@ -56,7 +56,7 @@ export interface VirtualTableProps<T extends Record<string, any>> {
56
56
  /**
57
57
  * Size of the table
58
58
  */
59
- size?: VirtualTableSize;
59
+ rowHeight?: number;
60
60
  /**
61
61
  * In case this table should have some filters set by default
62
62
  */
@@ -66,6 +66,15 @@ export interface VirtualTableProps<T extends Record<string, any>> {
66
66
  * @param filter
67
67
  */
68
68
  onFilterUpdate?: (filter?: VirtualTableFilterValues<any> | undefined) => void;
69
+ /**
70
+ * Callback when the table is scrolled
71
+ * @param props
72
+ */
73
+ onScroll?: (props: {
74
+ scrollDirection: "forward" | "backward";
75
+ scrollOffset: number;
76
+ scrollUpdateWasRequested: boolean;
77
+ }) => void;
69
78
  /**
70
79
  * Default sort applied to this collection
71
80
  */
@@ -106,6 +115,10 @@ export interface VirtualTableProps<T extends Record<string, any>> {
106
115
  * Class name applied to the table
107
116
  */
108
117
  className?: string;
118
+ /**
119
+ * Style applied to the table
120
+ */
121
+ style?: React.CSSProperties;
109
122
  /**
110
123
  * Component rendered at the end of the table, after scroll
111
124
  */
@@ -115,8 +128,12 @@ export interface VirtualTableProps<T extends Record<string, any>> {
115
128
  * @param column
116
129
  */
117
130
  AddColumnComponent?: React.ComponentType;
131
+ /**
132
+ * Initial scroll position
133
+ */
134
+ initialScroll?: number;
118
135
  }
119
- export type CellRendererParams<T extends any = any> = {
136
+ export type CellRendererParams<T = any> = {
120
137
  column: VirtualTableColumn;
121
138
  columns: VirtualTableColumn[];
122
139
  columnIndex: number;
@@ -129,7 +146,7 @@ export type CellRendererParams<T extends any = any> = {
129
146
  * @see Table
130
147
  * @group Components
131
148
  */
132
- export interface VirtualTableColumn<CustomProps extends any = any> {
149
+ export interface VirtualTableColumn<CustomProps = any> {
133
150
  /**
134
151
  * Data key for the cell value, could be "a.b.c"
135
152
  */
@@ -190,11 +207,6 @@ export type OnVirtualTableColumnResizeParams = {
190
207
  key: string;
191
208
  column: VirtualTableColumn;
192
209
  };
193
- /**
194
- * @see Table
195
- * @group Components
196
- */
197
- export type VirtualTableSize = "xs" | "s" | "m" | "l" | "xl";
198
210
  /**
199
211
  * @see Table
200
212
  * @group Components
@@ -1,9 +1,9 @@
1
1
  import React from "react";
2
- import { CellRendererParams, OnRowClickParams, OnVirtualTableColumnResizeParams, VirtualTableColumn, VirtualTableFilterValues, VirtualTableSize, VirtualTableWhereFilterOp } from "./VirtualTableProps";
2
+ import { CellRendererParams, OnRowClickParams, OnVirtualTableColumnResizeParams, VirtualTableColumn, VirtualTableFilterValues, VirtualTableWhereFilterOp } from "./VirtualTableProps";
3
3
  import { FilterFormFieldProps } from "./VirtualTableHeader";
4
4
  export type VirtualTableRowProps<T> = {
5
5
  style: any;
6
- size: VirtualTableSize;
6
+ rowHeight: number;
7
7
  rowData: T;
8
8
  rowIndex: number;
9
9
  onRowClick?: (props: OnRowClickParams<any>) => void;
@@ -14,7 +14,7 @@ export type VirtualTableRowProps<T> = {
14
14
  };
15
15
  export type VirtualTableContextProps<T extends any> = {
16
16
  data?: T[];
17
- size?: VirtualTableSize;
17
+ rowHeight?: number;
18
18
  columns: VirtualTableColumn[];
19
19
  cellRenderer: React.ComponentType<CellRendererParams<T>>;
20
20
  currentSort: "asc" | "desc" | undefined;
@@ -1,6 +1,4 @@
1
- import { EntityAction } from "../../../types";
1
+ import { EntityAction } from "../../types";
2
2
  export declare const editEntityAction: EntityAction;
3
3
  export declare const copyEntityAction: EntityAction;
4
- export declare const archiveEntityAction: EntityAction;
5
- export declare const openWebsiteAction: EntityAction;
6
4
  export declare const deleteEntityAction: EntityAction;
@@ -1,5 +1,6 @@
1
1
  export * from "./types";
2
2
  export * from "./useDebouncedData";
3
3
  export * from "./useColumnsIds";
4
- export * from "./useDataSourceEntityCollectionTableController";
4
+ export * from "./useDataSourceTableController";
5
5
  export * from "./useTableSearchHelper";
6
+ export * from "./default_entity_actions";
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @group Components
3
+ */
4
+ export type TableSize = "xs" | "s" | "m" | "l" | "xl";
5
+ export declare function getRowHeight(size: TableSize): number;
@@ -1,4 +1,4 @@
1
- import { CollectionSize, Entity, FireCMSContext, ResolvedProperty, SelectedCellProps } from "../../types";
1
+ import { CollectionSize, ResolvedProperty, SelectedCellProps } from "../../types";
2
2
  export type EntityCollectionTableController<M extends Record<string, any>> = {
3
3
  /**
4
4
  * This cell is displayed as selected
@@ -28,14 +28,12 @@ export type EntityCollectionTableController<M extends Record<string, any>> = {
28
28
  * Props passed in a callback when the content of a cell in a table has been edited
29
29
  * @group Collection components
30
30
  */
31
- export interface OnCellValueChangeParams<T = any, M extends Record<string, any> = any> {
31
+ export interface OnCellValueChangeParams<T = any, D = any> {
32
32
  value: T;
33
33
  propertyKey: string;
34
- entity: Entity<M>;
34
+ data?: D;
35
35
  onValueUpdated: () => void;
36
- setError: (e: Error) => void;
37
- fullPath: string;
38
- context: FireCMSContext;
36
+ setError: (e: Error | undefined) => void;
39
37
  }
40
38
  /**
41
39
  * @group Collection components
@@ -1,4 +1,6 @@
1
- import { ResolvedEntityCollection, ResolvedProperty } from "../../types";
1
+ import { EntityCollection, ResolvedEntityCollection, ResolvedProperty } from "../../types";
2
2
  import { PropertyColumnConfig } from "../EntityCollectionTable/EntityCollectionTableProps";
3
+ export declare const COLLECTION_GROUP_PARENT_ID = "collectionGroupParent";
3
4
  export declare function useColumnIds<M extends Record<string, any>>(collection: ResolvedEntityCollection<M>, includeSubcollections: boolean): PropertyColumnConfig[];
4
5
  export declare function getColumnKeysForProperty(property: ResolvedProperty, key: string, disabled?: boolean): PropertyColumnConfig[];
6
+ export declare function getFormFieldKeys(collection: EntityCollection): string[];
@@ -1,5 +1,6 @@
1
1
  import { Entity, EntityCollection, EntityTableController, FilterValues, User } from "../../types";
2
- export type DataSourceEntityCollectionTableControllerProps<M extends Record<string, any> = any> = {
2
+ import { ScrollRestorationController } from "./useScrollRestoration";
3
+ export type DataSourceTableControllerProps<M extends Record<string, any> = any> = {
3
4
  /**
4
5
  * Full path where the data of this table is located
5
6
  */
@@ -14,7 +15,15 @@ export type DataSourceEntityCollectionTableControllerProps<M extends Record<stri
14
15
  */
15
16
  entitiesDisplayedFirst?: Entity<M>[];
16
17
  lastDeleteTimestamp?: number;
18
+ /**
19
+ * Force filter to be applied to the table.
20
+ */
17
21
  forceFilter?: FilterValues<string>;
22
+ scrollRestoration?: ScrollRestorationController;
23
+ /**
24
+ * When set to true the filters and sort will be updated in the URL
25
+ */
26
+ updateUrl?: boolean;
18
27
  };
19
28
  /**
20
29
  * Use this hook to build a controller for the {@link EntityCollectionTable}.
@@ -25,8 +34,10 @@ export type DataSourceEntityCollectionTableControllerProps<M extends Record<stri
25
34
  *
26
35
  * @param fullPath
27
36
  * @param collection
37
+ * @param scrollRestoration
28
38
  * @param entitiesDisplayedFirst
29
39
  * @param lastDeleteTimestamp
30
40
  * @param forceFilterFromProps
41
+ * @param updateUrl
31
42
  */
32
- export declare function useDataSourceEntityCollectionTableController<M extends Record<string, any> = any, UserType extends User = User>({ fullPath, collection, entitiesDisplayedFirst, lastDeleteTimestamp, forceFilter: forceFilterFromProps, }: DataSourceEntityCollectionTableControllerProps<M>): EntityTableController<M>;
43
+ export declare function useDataSourceTableController<M extends Record<string, any> = any, USER extends User = User>({ fullPath, collection, scrollRestoration, entitiesDisplayedFirst, lastDeleteTimestamp, forceFilter: forceFilterFromProps, updateUrl }: DataSourceTableControllerProps<M>): EntityTableController<M>;
@@ -0,0 +1 @@
1
+ export declare function useDebounceCallback<T extends (...args: any[]) => any>(callback?: T, delay?: number): T;
@@ -0,0 +1,14 @@
1
+ import { Entity, FilterValues } from "../../types";
2
+ export type ScrollRestorationController = {
3
+ getCollectionScroll: (fullPath: string, filters?: FilterValues<any>) => {
4
+ scrollOffset: number;
5
+ data: Entity<any>[];
6
+ } | undefined;
7
+ updateCollectionScroll: (props: {
8
+ fullPath: string;
9
+ scrollOffset: number;
10
+ filters?: FilterValues<any>;
11
+ data: Entity<any>[];
12
+ }) => void;
13
+ };
14
+ export declare function useScrollRestoration(): ScrollRestorationController;
@@ -8,18 +8,21 @@ export { CircularProgressCenter } from "./CircularProgressCenter";
8
8
  export * from "./common";
9
9
  export * from "./HomePage";
10
10
  export * from "./SelectableTable/SelectableTable";
11
+ export * from "./SelectableTable/SelectableTableContext";
11
12
  export * from "./EntityCollectionView/EntityCollectionView";
12
13
  export * from "./EntityCollectionView/EntityCollectionViewActions";
13
14
  export * from "./EntityCollectionView/useSelectionController";
14
15
  export * from "./PropertyConfigBadge";
16
+ export * from "./PropertyIdCopyTooltip";
15
17
  export * from "./EntityCollectionTable";
16
18
  export * from "./NotFoundPage";
17
19
  export * from "./VirtualTable";
18
20
  export * from "./ErrorBoundary";
19
- export * from "./DeleteConfirmationDialog";
21
+ export * from "./ConfirmationDialog";
20
22
  export * from "./FireCMSLogo";
21
- export * from "./FireCMSAppBar";
23
+ export * from "../core/DefaultAppBar";
22
24
  export * from "./ArrayContainer";
23
25
  export * from "./ReferenceWidget";
24
26
  export * from "./SearchIconsView";
25
27
  export * from "./FieldCaption";
28
+ export * from "./EntityPreview";
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import { BreadcrumbsController } from "../hooks/useBreadcrumbsController";
3
+ export declare const BreadcrumbContext: React.Context<BreadcrumbsController>;
4
+ interface BreadcrumbsProviderProps {
5
+ children: React.ReactNode;
6
+ }
7
+ export declare const BreadcrumbsProvider: React.FC<BreadcrumbsProviderProps>;
8
+ export {};
@@ -0,0 +1,29 @@
1
+ import React from "react";
2
+ import { User } from "../types";
3
+ export type DefaultAppBarProps<ADDITIONAL_PROPS = object> = {
4
+ /**
5
+ * The content of the app bar, usually a title or logo. This includes a link to the home page.
6
+ */
7
+ title?: React.ReactNode;
8
+ /**
9
+ * A component that gets rendered on the upper side to the end of the main toolbar
10
+ */
11
+ endAdornment?: React.ReactNode;
12
+ /**
13
+ * A component that gets rendered on the upper side to the start of the main toolbar
14
+ */
15
+ startAdornment?: React.ReactNode;
16
+ dropDownActions?: React.ReactNode;
17
+ includeModeToggle?: boolean;
18
+ className?: string;
19
+ style?: React.CSSProperties;
20
+ logo?: string;
21
+ user?: User;
22
+ } & ADDITIONAL_PROPS;
23
+ /**
24
+ * This component renders the main app bar of FireCMS.
25
+ * You will likely not need to use this component directly.
26
+ *
27
+
28
+ */
29
+ export declare const DefaultAppBar: ({ title, endAdornment, startAdornment, dropDownActions, includeModeToggle, className, style, user: userProp, logo: logoProp, }: DefaultAppBarProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import React from "react";
2
+ /**
3
+ * Default drawer used in the CMS
4
+ * @group Core
5
+ */
6
+ export declare function DefaultDrawer({ className, style, }: {
7
+ className?: string;
8
+ style?: React.CSSProperties;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ /**
11
+ * This is the logo displayed in the drawer
12
+ * It expands when the drawer is open.
13
+ *
14
+ * @param logo
15
+
16
+ */
17
+ export declare function DrawerLogo({ logo }: {
18
+ logo?: string;
19
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import React from "react";
2
+ export declare function DrawerNavigationItem({ name, icon, drawerOpen, adminMenuOpen, tooltipsOpen, url, onClick }: {
3
+ icon: React.ReactElement;
4
+ name: string;
5
+ tooltipsOpen: boolean;
6
+ drawerOpen: boolean;
7
+ adminMenuOpen?: boolean;
8
+ url: string;
9
+ onClick?: () => void;
10
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,22 +1,54 @@
1
- import { Entity, EntityCollection, User } from "../types";
1
+ import React from "react";
2
+ import { Entity, EntityCollection, EntityStatus, User } from "../types";
3
+ import { EntityFormProps } from "../form";
4
+ export declare const MAIN_TAB_VALUE = "__main_##Q$SC^#S6";
5
+ export declare const JSON_TAB_VALUE = "__json";
6
+ export type OnUpdateParams = {
7
+ entity: Entity<any>;
8
+ status: EntityStatus;
9
+ path: string;
10
+ entityId?: string;
11
+ selectedTab?: string;
12
+ collection: EntityCollection<any>;
13
+ };
14
+ export type OnTabChangeParams<M extends Record<string, any>> = {
15
+ path: string;
16
+ entityId?: string;
17
+ selectedTab?: string;
18
+ collection: EntityCollection<M>;
19
+ };
2
20
  export interface EntityEditViewProps<M extends Record<string, any>> {
21
+ /**
22
+ * The database path of the entity, e.g. "users" or "products".
23
+ */
3
24
  path: string;
25
+ /**
26
+ * The navigation path to the entity.
27
+ */
28
+ fullIdPath?: string;
4
29
  collection: EntityCollection<M>;
5
30
  entityId?: string;
31
+ databaseId?: string;
6
32
  copy?: boolean;
7
- selectedSubPath?: string;
33
+ selectedTab?: string;
8
34
  parentCollectionIds: string[];
9
- formWidth?: number | string;
10
- onValuesAreModified: (modified: boolean) => void;
11
- onUpdate?: (params: {
12
- entity: Entity<any>;
13
- }) => void;
14
- onClose?: () => void;
35
+ onValuesModified?: (modified: boolean) => void;
36
+ onSaved?: (params: OnUpdateParams) => void;
37
+ onTabChange?: (props: OnTabChangeParams<M>) => void;
38
+ layout?: "side_panel" | "full_screen";
39
+ barActions?: React.ReactNode;
40
+ formProps?: Partial<EntityFormProps<M>>;
15
41
  }
16
42
  /**
17
43
  * This is the default view that is used as the content of a side panel when
18
44
  * an entity is opened.
19
- * You probably don't want to use this view directly since it is bound to the
20
- * side panel. Instead, you might want to use {@link EntityForm} or {@link EntityCollectionView}
21
45
  */
22
- export declare function EntityEditView<M extends Record<string, any>, UserType extends User>({ path, entityId, selectedSubPath, copy, collection, parentCollectionIds, onValuesAreModified, formWidth, onUpdate, onClose, }: EntityEditViewProps<M>): import("react/jsx-runtime").JSX.Element;
46
+ export declare function EntityEditView<M extends Record<string, any>, USER extends User>({ entityId, ...props }: EntityEditViewProps<M>): import("react/jsx-runtime").JSX.Element;
47
+ export declare function EntityEditViewInner<M extends Record<string, any>>({ path, fullIdPath, entityId, selectedTab: selectedTabProp, collection, parentCollectionIds, onValuesModified, onSaved, onTabChange, entity, cachedDirtyValues, dataLoading, layout, barActions, status, setStatus, formProps, canEdit }: EntityEditViewProps<M> & {
48
+ entity?: Entity<M>;
49
+ cachedDirtyValues?: Partial<M>;
50
+ dataLoading: boolean;
51
+ status: EntityStatus;
52
+ setStatus: (status: EntityStatus) => void;
53
+ canEdit?: boolean;
54
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { EntityFormActionsProps } from "../form/EntityFormActions";
2
+ export declare function EntityEditViewFormActions({ collection, path, entity, layout, savingError, formex, disabled, status, pluginActions, openEntityMode, showDefaultActions, navigateBack, formContext }: EntityFormActionsProps): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { EntityCollection, FireCMSProps, User } from "../types";
1
+ import { FireCMSProps, User } from "../types";
2
2
  /**
3
3
  * If you are using independent components of the CMS
4
4
  * you need to wrap them with this main component, so the internal hooks work.
@@ -8,7 +8,7 @@ import { EntityCollection, FireCMSProps, User } from "../types";
8
8
  *
9
9
  * You only need to use this component if you are building a custom app.
10
10
  *
11
- * @constructor
11
+
12
12
  * @group Core
13
13
  */
14
- export declare function FireCMS<UserType extends User, EC extends EntityCollection>(props: FireCMSProps<UserType, EC>): import("react/jsx-runtime").JSX.Element;
14
+ export declare function FireCMS<USER extends User>(props: FireCMSProps<USER>): import("react/jsx-runtime").JSX.Element;