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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/README.md +2 -2
  2. package/dist/app/Drawer.d.ts +0 -1
  3. package/dist/app/Scaffold.d.ts +4 -0
  4. package/dist/components/ArrayContainer.d.ts +31 -12
  5. package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
  6. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +3 -1
  7. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
  8. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +17 -3
  9. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +1 -1
  10. package/dist/components/EntityCollectionTable/index.d.ts +1 -1
  11. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +6 -3
  12. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +8 -0
  13. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  14. package/dist/components/EntityJsonPreview.d.ts +3 -0
  15. package/dist/components/EntityPreview.d.ts +8 -6
  16. package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
  17. package/dist/components/HomePage/HomePageDnD.d.ts +76 -0
  18. package/dist/components/HomePage/NavigationCard.d.ts +3 -1
  19. package/dist/components/HomePage/NavigationCardBinding.d.ts +3 -2
  20. package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
  21. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  22. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  23. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  24. package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
  25. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +1 -1
  26. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  27. package/dist/components/VirtualTable/VirtualTableProps.d.ts +11 -2
  28. package/dist/components/common/default_entity_actions.d.ts +0 -2
  29. package/dist/components/common/index.d.ts +1 -1
  30. package/dist/components/common/useColumnsIds.d.ts +1 -0
  31. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +10 -2
  32. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  33. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  34. package/dist/components/index.d.ts +3 -1
  35. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  36. package/dist/core/DefaultAppBar.d.ts +8 -2
  37. package/dist/core/DrawerNavigationItem.d.ts +2 -1
  38. package/dist/core/EntityEditView.d.ts +40 -22
  39. package/dist/core/EntityEditViewFormActions.d.ts +2 -0
  40. package/dist/core/FireCMS.d.ts +2 -2
  41. package/dist/core/FireCMSRouter.d.ts +4 -0
  42. package/dist/core/NavigationRoutes.d.ts +0 -1
  43. package/dist/core/SideDialogs.d.ts +4 -2
  44. package/dist/core/field_configs.d.ts +1 -1
  45. package/dist/core/index.d.ts +2 -1
  46. package/dist/form/EntityForm.d.ts +50 -0
  47. package/dist/form/EntityFormActions.d.ts +21 -0
  48. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  49. package/dist/form/components/FormEntry.d.ts +6 -0
  50. package/dist/form/components/FormLayout.d.ts +5 -0
  51. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  52. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  53. package/dist/form/components/index.d.ts +3 -1
  54. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  55. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  56. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  57. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  58. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  59. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  60. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  61. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  62. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
  63. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  64. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  65. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  66. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +4 -10
  67. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  68. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  69. package/dist/form/index.d.ts +17 -16
  70. package/dist/form/useClearRestoreValue.d.ts +2 -2
  71. package/dist/hooks/data/delete.d.ts +4 -4
  72. package/dist/hooks/data/save.d.ts +3 -3
  73. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  74. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  75. package/dist/hooks/useAuthController.d.ts +1 -1
  76. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  77. package/dist/hooks/useBuildNavigationController.d.ts +57 -12
  78. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  79. package/dist/hooks/useModeController.d.ts +1 -2
  80. package/dist/hooks/useProjectLog.d.ts +7 -1
  81. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  82. package/dist/hooks/useValidateAuthenticator.d.ts +3 -3
  83. package/dist/index.es.js +20108 -14471
  84. package/dist/index.es.js.map +1 -1
  85. package/dist/index.umd.js +20039 -14407
  86. package/dist/index.umd.js.map +1 -1
  87. package/dist/internal/useBuildDataSource.d.ts +3 -2
  88. package/dist/internal/useBuildSideEntityController.d.ts +3 -3
  89. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  90. package/dist/preview/PropertyPreviewProps.d.ts +1 -1
  91. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  92. package/dist/preview/components/ReferencePreview.d.ts +2 -2
  93. package/dist/preview/util.d.ts +3 -3
  94. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  95. package/dist/routes/FireCMSRoute.d.ts +1 -0
  96. package/dist/routes/HomePageRoute.d.ts +3 -0
  97. package/dist/types/analytics.d.ts +1 -1
  98. package/dist/types/auth.d.ts +7 -9
  99. package/dist/types/collections.d.ts +86 -25
  100. package/dist/types/customization_controller.d.ts +8 -0
  101. package/dist/types/datasource.d.ts +19 -17
  102. package/dist/types/dialogs_controller.d.ts +7 -3
  103. package/dist/types/entities.d.ts +2 -1
  104. package/dist/types/entity_actions.d.ts +58 -8
  105. package/dist/types/entity_callbacks.d.ts +16 -16
  106. package/dist/types/entity_overrides.d.ts +2 -2
  107. package/dist/types/export_import.d.ts +4 -4
  108. package/dist/types/fields.d.ts +43 -17
  109. package/dist/types/firecms.d.ts +16 -3
  110. package/dist/types/firecms_context.d.ts +1 -1
  111. package/dist/types/navigation.d.ts +60 -17
  112. package/dist/types/permissions.d.ts +4 -4
  113. package/dist/types/plugins.d.ts +42 -9
  114. package/dist/types/properties.d.ts +65 -22
  115. package/dist/types/property_config.d.ts +1 -3
  116. package/dist/types/roles.d.ts +3 -0
  117. package/dist/types/side_dialogs_controller.d.ts +10 -0
  118. package/dist/types/side_entity_controller.d.ts +14 -1
  119. package/dist/types/storage.d.ts +75 -0
  120. package/dist/types/user.d.ts +1 -0
  121. package/dist/util/builders.d.ts +3 -3
  122. package/dist/util/callbacks.d.ts +2 -0
  123. package/dist/util/createFormexStub.d.ts +2 -0
  124. package/dist/util/entities.d.ts +2 -2
  125. package/dist/util/entity_actions.d.ts +2 -0
  126. package/dist/util/entity_cache.d.ts +23 -0
  127. package/dist/util/icon_synonyms.d.ts +0 -1
  128. package/dist/util/icons.d.ts +5 -2
  129. package/dist/util/index.d.ts +3 -0
  130. package/dist/util/navigation_from_path.d.ts +10 -1
  131. package/dist/util/navigation_utils.d.ts +13 -1
  132. package/dist/util/objects.d.ts +2 -1
  133. package/dist/util/permissions.d.ts +4 -4
  134. package/dist/util/property_utils.d.ts +4 -4
  135. package/dist/util/references.d.ts +2 -2
  136. package/dist/util/resolutions.d.ts +30 -6
  137. package/dist/util/storage.d.ts +1 -1
  138. package/dist/util/useStorageUploadController.d.ts +2 -2
  139. package/package.json +133 -125
  140. package/src/app/Drawer.tsx +0 -1
  141. package/src/app/Scaffold.tsx +33 -29
  142. package/src/components/ArrayContainer.tsx +447 -229
  143. package/src/components/CircularProgressCenter.tsx +1 -1
  144. package/src/components/ClearFilterSortButton.tsx +1 -1
  145. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
  146. package/src/components/DeleteEntityDialog.tsx +13 -20
  147. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +59 -25
  148. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +23 -17
  149. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +20 -3
  150. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +35 -9
  151. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +21 -16
  152. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +6 -12
  153. package/src/components/EntityCollectionTable/index.tsx +1 -1
  154. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +6 -6
  155. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +35 -26
  156. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  157. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +132 -101
  158. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
  159. package/src/components/EntityCollectionView/EntityCollectionView.tsx +178 -85
  160. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
  161. package/src/components/EntityCollectionView/useSelectionController.tsx +5 -4
  162. package/src/components/EntityCollectionView/utils.ts +19 -0
  163. package/src/components/EntityJsonPreview.tsx +66 -0
  164. package/src/components/EntityPreview.tsx +75 -57
  165. package/src/components/EntityView.tsx +8 -5
  166. package/src/components/ErrorView.tsx +3 -3
  167. package/src/components/FireCMSLogo.tsx +7 -51
  168. package/src/components/HomePage/DefaultHomePage.tsx +522 -160
  169. package/src/components/HomePage/FavouritesView.tsx +9 -14
  170. package/src/components/HomePage/HomePageDnD.tsx +642 -0
  171. package/src/components/HomePage/NavigationCard.tsx +47 -38
  172. package/src/components/HomePage/NavigationCardBinding.tsx +16 -15
  173. package/src/components/HomePage/NavigationGroup.tsx +144 -30
  174. package/src/components/HomePage/RenameGroupDialog.tsx +117 -0
  175. package/src/components/HomePage/SmallNavigationCard.tsx +1 -2
  176. package/src/components/NotFoundPage.tsx +2 -2
  177. package/src/components/PropertyConfigBadge.tsx +9 -3
  178. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  179. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +22 -13
  180. package/src/components/SearchIconsView.tsx +2 -2
  181. package/src/components/SelectableTable/SelectableTable.tsx +154 -142
  182. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +4 -2
  183. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +10 -8
  184. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +59 -10
  185. package/src/components/UnsavedChangesDialog.tsx +46 -0
  186. package/src/components/VirtualTable/VirtualTable.tsx +65 -44
  187. package/src/components/VirtualTable/VirtualTableCell.tsx +0 -8
  188. package/src/components/VirtualTable/VirtualTableHeader.tsx +8 -8
  189. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +1 -1
  190. package/src/components/VirtualTable/VirtualTableProps.tsx +12 -2
  191. package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
  192. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +4 -4
  193. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
  194. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  195. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  196. package/src/components/common/default_entity_actions.tsx +62 -42
  197. package/src/components/common/index.ts +1 -1
  198. package/src/components/common/useColumnsIds.tsx +1 -1
  199. package/src/components/common/useDataSourceTableController.tsx +420 -0
  200. package/src/components/common/useDebouncedCallback.tsx +20 -0
  201. package/src/components/common/useScrollRestoration.tsx +68 -0
  202. package/src/components/common/useTableSearchHelper.ts +1 -0
  203. package/src/components/index.tsx +4 -1
  204. package/src/contexts/BreacrumbsContext.tsx +38 -0
  205. package/src/contexts/DialogsProvider.tsx +3 -2
  206. package/src/contexts/ModeController.tsx +1 -3
  207. package/src/contexts/SnackbarProvider.tsx +2 -0
  208. package/src/core/DefaultAppBar.tsx +124 -85
  209. package/src/core/DefaultDrawer.tsx +30 -22
  210. package/src/core/DrawerNavigationItem.tsx +32 -28
  211. package/src/core/EntityEditView.tsx +388 -995
  212. package/src/core/EntityEditViewFormActions.tsx +329 -0
  213. package/src/core/EntitySidePanel.tsx +88 -20
  214. package/src/core/FireCMS.tsx +46 -25
  215. package/src/core/FireCMSRouter.tsx +17 -0
  216. package/src/core/NavigationRoutes.tsx +23 -32
  217. package/src/core/SideDialogs.tsx +22 -12
  218. package/src/core/field_configs.tsx +24 -10
  219. package/src/core/index.tsx +4 -2
  220. package/src/form/EntityForm.tsx +814 -0
  221. package/src/form/EntityFormActions.tsx +211 -0
  222. package/src/form/PropertyFieldBinding.tsx +55 -41
  223. package/src/form/components/CustomIdField.tsx +9 -3
  224. package/src/form/components/FieldHelperText.tsx +1 -1
  225. package/src/form/components/FormEntry.tsx +22 -0
  226. package/src/form/components/FormLayout.tsx +16 -0
  227. package/src/form/components/LabelWithIcon.tsx +30 -19
  228. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  229. package/src/form/components/StorageItemPreview.tsx +5 -4
  230. package/src/form/components/StorageUploadProgress.tsx +2 -3
  231. package/src/form/components/index.tsx +3 -1
  232. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +30 -18
  233. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -36
  234. package/src/form/field_bindings/BlockFieldBinding.tsx +55 -33
  235. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
  236. package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -15
  237. package/src/form/field_bindings/MapFieldBinding.tsx +72 -62
  238. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
  239. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
  240. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +10 -8
  241. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
  242. package/src/form/field_bindings/ReferenceFieldBinding.tsx +28 -19
  243. package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -32
  244. package/src/form/field_bindings/SelectFieldBinding.tsx +22 -13
  245. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +247 -168
  246. package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
  247. package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
  248. package/src/form/index.tsx +17 -37
  249. package/src/form/useClearRestoreValue.tsx +2 -2
  250. package/src/form/validation.ts +12 -6
  251. package/src/hooks/data/delete.ts +6 -5
  252. package/src/hooks/data/save.ts +26 -35
  253. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  254. package/src/hooks/data/useDataSource.tsx +10 -2
  255. package/src/hooks/data/useEntityFetch.tsx +10 -6
  256. package/src/hooks/useAuthController.tsx +1 -1
  257. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  258. package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
  259. package/src/hooks/useBuildModeController.tsx +15 -28
  260. package/src/hooks/useBuildNavigationController.tsx +386 -124
  261. package/src/hooks/useFireCMSContext.tsx +3 -33
  262. package/src/hooks/useLargeLayout.tsx +0 -35
  263. package/src/hooks/useModeController.tsx +1 -2
  264. package/src/hooks/useProjectLog.tsx +16 -5
  265. package/src/hooks/useResolvedNavigationFrom.tsx +9 -11
  266. package/src/hooks/useValidateAuthenticator.tsx +3 -3
  267. package/src/internal/useBuildDataSource.ts +67 -80
  268. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  269. package/src/internal/useBuildSideEntityController.tsx +149 -86
  270. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  271. package/src/preview/PropertyPreview.tsx +28 -12
  272. package/src/preview/PropertyPreviewProps.tsx +1 -1
  273. package/src/preview/components/BooleanPreview.tsx +1 -1
  274. package/src/preview/components/EmptyValue.tsx +1 -1
  275. package/src/preview/components/EnumValuesChip.tsx +1 -1
  276. package/src/preview/components/ImagePreview.tsx +10 -9
  277. package/src/preview/components/ReferencePreview.tsx +6 -16
  278. package/src/preview/components/UrlComponentPreview.tsx +20 -21
  279. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -5
  280. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +5 -4
  281. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -3
  282. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -3
  283. package/src/preview/property_previews/ArrayOneOfPreview.tsx +6 -4
  284. package/src/preview/property_previews/ArrayPropertyPreview.tsx +5 -3
  285. package/src/preview/property_previews/MapPropertyPreview.tsx +7 -6
  286. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
  287. package/src/preview/property_previews/StringPropertyPreview.tsx +2 -2
  288. package/src/preview/util.ts +10 -10
  289. package/src/routes/CustomCMSRoute.tsx +21 -0
  290. package/src/routes/FireCMSRoute.tsx +246 -0
  291. package/src/routes/HomePageRoute.tsx +17 -0
  292. package/src/types/analytics.ts +3 -0
  293. package/src/types/auth.tsx +8 -12
  294. package/src/types/collections.ts +101 -28
  295. package/src/types/customization_controller.tsx +9 -0
  296. package/src/types/datasource.ts +21 -20
  297. package/src/types/dialogs_controller.tsx +7 -3
  298. package/src/types/entities.ts +3 -1
  299. package/src/types/entity_actions.tsx +71 -8
  300. package/src/types/entity_callbacks.ts +18 -18
  301. package/src/types/entity_overrides.tsx +2 -2
  302. package/src/types/export_import.ts +4 -4
  303. package/src/types/fields.tsx +52 -19
  304. package/src/types/firecms.tsx +18 -4
  305. package/src/types/firecms_context.tsx +1 -1
  306. package/src/types/navigation.ts +76 -22
  307. package/src/types/permissions.ts +5 -5
  308. package/src/types/plugins.tsx +50 -9
  309. package/src/types/properties.ts +74 -22
  310. package/src/types/property_config.tsx +1 -2
  311. package/src/types/roles.ts +3 -0
  312. package/src/types/side_dialogs_controller.tsx +15 -0
  313. package/src/types/side_entity_controller.tsx +16 -1
  314. package/src/types/storage.ts +82 -0
  315. package/src/types/user.ts +2 -0
  316. package/src/util/builders.ts +10 -8
  317. package/src/util/callbacks.ts +119 -0
  318. package/src/util/createFormexStub.tsx +62 -0
  319. package/src/util/entities.ts +5 -3
  320. package/src/util/entity_actions.ts +28 -0
  321. package/src/util/entity_cache.ts +204 -0
  322. package/src/util/icon_list.ts +1 -1
  323. package/src/util/icon_synonyms.ts +0 -1
  324. package/src/util/icons.tsx +36 -11
  325. package/src/util/index.ts +3 -0
  326. package/src/util/join_collections.ts +9 -2
  327. package/src/util/make_properties_editable.ts +13 -5
  328. package/src/util/navigation_from_path.ts +33 -12
  329. package/src/util/navigation_utils.ts +135 -19
  330. package/src/util/objects.ts +74 -14
  331. package/src/util/parent_references_from_path.ts +3 -3
  332. package/src/util/permissions.ts +8 -8
  333. package/src/util/property_utils.tsx +17 -6
  334. package/src/util/references.ts +19 -8
  335. package/src/util/resolutions.ts +93 -24
  336. package/src/util/storage.ts +6 -2
  337. package/src/util/useStorageUploadController.tsx +74 -29
  338. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
  339. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  340. package/dist/form/PropertiesForm.d.ts +0 -8
  341. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  342. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  343. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
  344. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -27
  345. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -236
  346. package/src/form/PropertiesForm.tsx +0 -81
  347. package/src/form/components/FormikArrayContainer.tsx +0 -44
  348. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  349. /package/src/util/{common.tsx → common.ts} +0 -0
package/README.md CHANGED
@@ -9,7 +9,7 @@
9
9
  </p>
10
10
 
11
11
  <h1 align="center">FireCMS</h1>
12
- <h3 align="center">Awesome Firebase/Firestore-based headless CMS</h3>
12
+ <h3 align="center">Awesome Firebase/MongoDB-based headless CMS</h3>
13
13
  <p align="center"><a href="https://demo.firecms.co">Live demo</a></p>
14
14
 
15
15
  <br />
@@ -89,7 +89,7 @@ navigating through **subcollections** and accessing custom views (such as custom
89
89
  forms or blog previews). This functionality can also be accessed
90
90
  programmatically using the `useSideEntityController` hook.
91
91
 
92
- FireCMS includes **over 15 built-in fields** with numerous customization and
92
+ FireCMS includes **over 20 built-in fields** with numerous customization and
93
93
  validation options. The components have been carefully designed for an
94
94
  outstanding user experience, including advanced features like **references** to
95
95
  other collections, **markdown**, and **array reordering**.
@@ -5,7 +5,6 @@
5
5
  * If you want to customise the drawer, you can create your own component and pass it as a child.
6
6
  * For custom drawers, you can use the {@link useApp} to open and close the drawer.
7
7
  *
8
-
9
8
  */
10
9
  export declare function Drawer({ children, className, style }: {
11
10
  children?: React.ReactNode;
@@ -13,6 +13,10 @@ export interface ScaffoldProps {
13
13
  * Note that this has no effect if you are using a custom AppBar or Drawer.
14
14
  */
15
15
  logo?: string;
16
+ /**
17
+ * If true, the main content will be padded in large layouts. Defaults to true.
18
+ */
19
+ padding?: boolean;
16
20
  className?: string;
17
21
  style?: React.CSSProperties;
18
22
  }
@@ -1,40 +1,59 @@
1
1
  import React from "react";
2
- import { DraggableProvided } from "@hello-pangea/dnd";
3
- interface ArrayContainerProps<T> {
2
+ export type ArrayEntryParams = {
3
+ index: number;
4
+ internalId: number;
5
+ isDragging: boolean;
6
+ storedProps?: object;
7
+ storeProps: (props: object) => void;
8
+ };
9
+ export type ArrayEntryBuilder = (params: ArrayEntryParams) => React.ReactNode;
10
+ export interface ArrayContainerProps<T> {
4
11
  droppableId: string;
5
12
  value: T[];
6
13
  addLabel: string;
7
- buildEntry: (index: number, internalId: number) => React.ReactNode;
14
+ buildEntry: ArrayEntryBuilder;
8
15
  disabled?: boolean;
9
16
  size?: "small" | "medium";
10
17
  onInternalIdAdded?: (id: number) => void;
11
18
  includeAddButton?: boolean;
19
+ canAddElements?: boolean;
20
+ sortable?: boolean;
12
21
  newDefaultEntry: T;
13
22
  onValueChange: (value: T[]) => void;
23
+ className?: string;
24
+ min?: number;
25
+ max?: number;
14
26
  }
15
- /**
16
- * @group Form custom fields
17
- */
18
- export declare function ArrayContainer<T>({ droppableId, addLabel, value, disabled, buildEntry, size, onInternalIdAdded, includeAddButton, newDefaultEntry, onValueChange }: ArrayContainerProps<T>): import("react/jsx-runtime").JSX.Element;
19
27
  type ArrayContainerItemProps = {
20
- provided: DraggableProvided;
28
+ nodeRef: (node: HTMLElement | null) => void;
29
+ style: React.CSSProperties;
30
+ dragHandleProps: any;
21
31
  index: number;
22
32
  internalId: number;
23
33
  size?: "small" | "medium";
24
34
  disabled: boolean;
25
- buildEntry: (index: number, internalId: number) => React.ReactNode;
35
+ buildEntry: ArrayEntryBuilder;
26
36
  remove: (index: number) => void;
27
37
  copy: (index: number) => void;
38
+ addInIndex?: (index: number) => void;
39
+ canAddElements?: boolean;
40
+ sortable: boolean;
28
41
  isDragging: boolean;
42
+ storedProps?: object;
43
+ updateItemCustomProps: (internalId: number, props: object) => void;
29
44
  };
30
- export declare function ArrayContainerItem({ provided, index, internalId, size, disabled, buildEntry, remove, copy, isDragging }: ArrayContainerItemProps): import("react/jsx-runtime").JSX.Element;
31
- export declare function ArrayItemOptions({ direction, disabled, remove, index, provided, copy, }: {
45
+ export declare function ArrayContainerItem({ nodeRef, style, dragHandleProps, index, internalId, size, disabled, buildEntry, remove, copy, addInIndex, canAddElements, sortable, isDragging, storedProps, updateItemCustomProps }: ArrayContainerItemProps): import("react/jsx-runtime").JSX.Element;
46
+ export declare function ArrayItemOptions({ dragHandleProps, direction, disabled, remove, index, copy, canAddElements, sortable, addInIndex, }: {
47
+ dragHandleProps: any;
32
48
  direction?: "row" | "column";
33
49
  disabled: boolean;
34
50
  remove: (index: number) => void;
35
51
  index: number;
36
- provided: any;
37
52
  copy: (index: number) => void;
53
+ sortable: boolean;
54
+ canAddElements?: boolean;
55
+ addInIndex?: (index: number) => void;
38
56
  }): import("react/jsx-runtime").JSX.Element;
57
+ export declare function ArrayContainer<T>({ droppableId, addLabel, value, disabled, buildEntry, size, onInternalIdAdded, includeAddButton: deprecatedIncludeAddButton, canAddElements: canAddElementsProp, sortable, newDefaultEntry, onValueChange, className, min, max }: ArrayContainerProps<T>): import("react/jsx-runtime").JSX.Element;
39
58
  export declare function getRandomId(): number;
40
59
  export {};
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- export declare function DeleteConfirmationDialog({ open, onAccept, onCancel, title, loading, body }: {
2
+ export declare function ConfirmationDialog({ open, onAccept, onCancel, title, loading, body }: {
3
3
  open: boolean;
4
4
  onAccept: () => void;
5
5
  onCancel: () => void;
@@ -12,10 +12,11 @@ import { CollectionSize, Entity, EntityAction, EntityCollection, SelectionContro
12
12
  *
13
13
  * @group Collection components
14
14
  */
15
- export declare const EntityCollectionRowActions: ({ entity, collection, fullPath, width, frozen, isSelected, selectionEnabled, size, highlightEntity, onCollectionChange, unhighlightEntity, actions, hideId, selectionController, }: {
15
+ export declare const EntityCollectionRowActions: ({ entity, collection, fullPath, fullIdPath, width, frozen, isSelected, selectionEnabled, size, highlightEntity, onCollectionChange, unhighlightEntity, actions, hideId, selectionController, openEntityMode }: {
16
16
  entity: Entity<any>;
17
17
  collection?: EntityCollection<any>;
18
18
  fullPath?: string;
19
+ fullIdPath?: string;
19
20
  width: number;
20
21
  frozen?: boolean;
21
22
  size: CollectionSize;
@@ -27,4 +28,5 @@ export declare const EntityCollectionRowActions: ({ entity, collection, fullPath
27
28
  selectionController?: SelectionController;
28
29
  highlightEntity?: (entity: Entity<any>) => void;
29
30
  unhighlightEntity?: (entity: Entity<any>) => void;
31
+ openEntityMode: "side_panel" | "full_screen";
30
32
  }) => import("react/jsx-runtime").JSX.Element;
@@ -17,11 +17,11 @@ import { EntityCollectionTableProps } from "./EntityCollectionTableProps";
17
17
  *
18
18
  * The data displayed in the table is managed by a {@link EntityTableController}.
19
19
  * You can build the default, bound to a path in the datasource, by using the hook
20
- * {@link useDataSourceEntityCollectionTableController}
20
+ * {@link useDataSourceTableController}
21
21
  *
22
22
  * @see EntityCollectionTableProps
23
23
  * @see EntityCollectionView
24
24
  * @see VirtualTable
25
25
  * @group Components
26
26
  */
27
- export declare const EntityCollectionTable: <M extends Record<string, any>, UserType extends User>({ className, style, forceFilter, actionsStart, actions, title, tableRowActionsBuilder, uniqueFieldValidator, getPropertyFor, onValueChange, selectionController, highlightedEntities, onEntityClick, onColumnResize, onSizeChanged, textSearchEnabled, hoverRow, inlineEditing, additionalFields, displayedColumnIds, defaultSize, properties, tableController, filterable, sortable, endAdornment, AddColumnComponent, AdditionalHeaderWidget, additionalIDHeaderWidget, emptyComponent, getIdColumnWidth, onTextSearchClick, textSearchLoading, enablePopupIcon }: EntityCollectionTableProps<M>) => import("react/jsx-runtime").JSX.Element;
27
+ export declare const EntityCollectionTable: <M extends Record<string, any> = any, USER extends User = any>({ className, style, forceFilter, actionsStart, actions, title, tableRowActionsBuilder, uniqueFieldValidator, getPropertyFor, onValueChange, selectionController, highlightedEntities, onEntityClick, onColumnResize, initialScroll, onScroll, onSizeChanged, textSearchEnabled, hoverRow, inlineEditing, additionalFields, displayedColumnIds, defaultSize, properties, tableController, filterable, sortable, endAdornment, AddColumnComponent, AdditionalHeaderWidget, additionalIDHeaderWidget, emptyComponent, getIdColumnWidth, onTextSearchClick, textSearchLoading, enablePopupIcon, openEntityMode }: EntityCollectionTableProps<M>) => import("react/jsx-runtime").JSX.Element;
@@ -4,7 +4,7 @@ import { OnCellValueChange, OnColumnResizeParams, UniqueFieldValidator } from ".
4
4
  /**
5
5
  * @group Collection components
6
6
  */
7
- export type EntityCollectionTableProps<M extends Record<string, any>, UserType extends User = User> = {
7
+ export type EntityCollectionTableProps<M extends Record<string, any>, USER extends User = User> = {
8
8
  className?: string;
9
9
  style?: React.CSSProperties;
10
10
  /**
@@ -48,6 +48,19 @@ export type EntityCollectionTableProps<M extends Record<string, any>, UserType e
48
48
  * Callback when a column is resized
49
49
  */
50
50
  onColumnResize?(params: OnColumnResizeParams): void;
51
+ /**
52
+ * Initial scroll position
53
+ */
54
+ initialScroll?: number;
55
+ /**
56
+ * Callback when the table is scrolled
57
+ * @param props
58
+ */
59
+ onScroll?: (props: {
60
+ scrollDirection: "forward" | "backward";
61
+ scrollOffset: number;
62
+ scrollUpdateWasRequested: boolean;
63
+ }) => void;
51
64
  /**
52
65
  * Callback when the selected size of the table is changed
53
66
  */
@@ -63,7 +76,7 @@ export type EntityCollectionTableProps<M extends Record<string, any>, UserType e
63
76
  actions?: React.ReactNode;
64
77
  /**
65
78
  * Controller holding the logic for the table
66
- * {@link useDataSourceEntityCollectionTableController}
79
+ * {@link useDataSourceTableController}
67
80
  * {@link EntityTableController}
68
81
  */
69
82
  tableController: EntityTableController<M>;
@@ -71,7 +84,7 @@ export type EntityCollectionTableProps<M extends Record<string, any>, UserType e
71
84
  forceFilter?: FilterValues<Extract<keyof M, string>>;
72
85
  textSearchEnabled?: boolean;
73
86
  inlineEditing?: boolean;
74
- additionalFields?: AdditionalFieldDelegate<M, UserType>[];
87
+ additionalFields?: AdditionalFieldDelegate<M, USER>[];
75
88
  defaultSize?: CollectionSize;
76
89
  properties: ResolvedProperties<M>;
77
90
  getPropertyFor?: (props: GetPropertyForProps<M>) => ResolvedProperties<M>[string];
@@ -90,6 +103,7 @@ export type EntityCollectionTableProps<M extends Record<string, any>, UserType e
90
103
  onTextSearchClick?: () => void;
91
104
  textSearchLoading?: boolean;
92
105
  enablePopupIcon: boolean;
106
+ openEntityMode?: "side_panel" | "full_screen";
93
107
  };
94
108
  export type GetPropertyForProps<M extends Record<string, any>> = {
95
109
  propertyKey: string;
@@ -15,7 +15,7 @@ type TableReferenceFieldProps = {
15
15
  includeEntityLink?: boolean;
16
16
  };
17
17
  export declare function TableReferenceField(props: TableReferenceFieldProps): import("react/jsx-runtime").JSX.Element;
18
- export declare const TableReferenceFieldSuccess: React.NamedExoticComponent<TableReferenceFieldProps & {
18
+ export declare const TableReferenceFieldInternal: React.NamedExoticComponent<TableReferenceFieldProps & {
19
19
  collection: EntityCollection;
20
20
  }>;
21
21
  export {};
@@ -2,5 +2,5 @@ export { EntityCollectionTable } from "./EntityCollectionTable";
2
2
  export type { EntityCollectionTableProps, } from "./EntityCollectionTableProps";
3
3
  export * from "./PropertyTableCell";
4
4
  export * from "./EntityCollectionRowActions";
5
- export * from "../common/useDataSourceEntityCollectionTableController";
5
+ export * from "../common/useDataSourceTableController";
6
6
  export * from "./column_utils";
@@ -2,12 +2,12 @@ import { Entity, EntityCollection } from "../../../../types";
2
2
  import { CustomFieldValidator } from "../../../../form/validation";
3
3
  import { OnCellValueChangeParams } from "../../../common";
4
4
  interface PopupFormFieldProps<M extends Record<string, any>> {
5
- entity?: Entity<M>;
6
5
  customFieldValidator?: CustomFieldValidator;
7
6
  path: string;
7
+ entityId: string;
8
8
  tableKey: string;
9
9
  propertyKey?: Extract<keyof M, string>;
10
- collection?: EntityCollection<M>;
10
+ collection?: EntityCollection<any>;
11
11
  cellRect?: DOMRect;
12
12
  open: boolean;
13
13
  onClose: () => void;
@@ -19,5 +19,8 @@ interface PopupFormFieldProps<M extends Record<string, any>> {
19
19
  onCellValueChange?: (params: OnCellValueChangeParams<any, any>) => Promise<void> | void;
20
20
  }
21
21
  export declare function PopupFormField<M extends Record<string, any>>(props: PopupFormFieldProps<M>): import("react/jsx-runtime").JSX.Element | null;
22
- export declare function PopupFormFieldInternal<M extends Record<string, any>>({ tableKey, entity: entityProp, customFieldValidator, propertyKey, collection: inputCollection, path, cellRect, open, onClose, onCellValueChange, container }: PopupFormFieldProps<M>): import("react/jsx-runtime").JSX.Element;
22
+ export declare function PopupFormFieldLoading<M extends Record<string, any>>({ tableKey, entityId, customFieldValidator, propertyKey, collection: inputCollection, path, cellRect, open, onClose, onCellValueChange, container }: PopupFormFieldProps<M>): import("react/jsx-runtime").JSX.Element | null;
23
+ export declare function PopupFormFieldInternal<M extends Record<string, any>>({ tableKey, entityId, customFieldValidator, propertyKey, collection: inputCollection, path, cellRect, open, onClose, onCellValueChange, container, entity }: PopupFormFieldProps<M> & {
24
+ entity?: Entity<M>;
25
+ }): import("react/jsx-runtime").JSX.Element;
23
26
  export {};
@@ -9,6 +9,10 @@ export type EntityCollectionViewProps<M extends Record<string, any>> = {
9
9
  * It defaults to the collection path if not provided.
10
10
  */
11
11
  fullPath?: string;
12
+ /**
13
+ * Full path using navigation ids.
14
+ */
15
+ fullIdPath?: string;
12
16
  /**
13
17
  * If this is a subcollection, specify the parent collection ids.
14
18
  */
@@ -18,6 +22,10 @@ export type EntityCollectionViewProps<M extends Record<string, any>> = {
18
22
  */
19
23
  isSubCollection?: boolean;
20
24
  className?: string;
25
+ /**
26
+ * If true, this view will store its filter and sorting status in the url params
27
+ */
28
+ updateUrl?: boolean;
21
29
  } & EntityCollection<M>;
22
30
  /**
23
31
  * This component is in charge of binding a datasource path with an {@link EntityCollection}
@@ -0,0 +1,3 @@
1
+ export declare function addRecentId(collectionId: string, id: string): string[];
2
+ export declare function saveSearchedIdsLocally(collectionId: string, ids: string[]): void;
3
+ export declare function getRecentIds(collectionId: string): string[];
@@ -0,0 +1,3 @@
1
+ export declare function EntityJsonPreview({ values }: {
2
+ values: object;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -2,29 +2,31 @@ import * as React from "react";
2
2
  import { Entity, EntityCollection } from "../types";
3
3
  import { PreviewSize } from "../preview";
4
4
  export type EntityPreviewProps = {
5
- size: PreviewSize;
5
+ size?: PreviewSize;
6
6
  actions?: React.ReactNode;
7
7
  collection?: EntityCollection;
8
8
  hover?: boolean;
9
- previewProperties?: string[];
10
- disabled: undefined | boolean;
9
+ previewKeys?: string[];
10
+ disabled?: boolean;
11
11
  entity: Entity<any>;
12
12
  includeId?: boolean;
13
+ includeTitle?: boolean;
13
14
  includeEntityLink?: boolean;
15
+ includeImage?: boolean;
14
16
  onClick?: (e: React.SyntheticEvent) => void;
15
17
  };
16
18
  /**
17
19
  * This view is used to display a preview of an entity.
18
20
  * It is used by default in reference fields and whenever a reference is displayed.
19
21
  */
20
- export declare function EntityPreview({ actions, disabled, hover, collection: collectionProp, previewProperties, onClick, size, includeId, includeEntityLink, entity }: EntityPreviewProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare function EntityPreview({ actions, disabled, hover, collection: collectionProp, previewKeys, onClick, size, includeId, includeTitle, includeEntityLink, includeImage, entity, }: EntityPreviewProps): import("react/jsx-runtime").JSX.Element;
21
23
  export type EntityPreviewContainerProps = {
22
24
  children: React.ReactNode;
23
25
  hover?: boolean;
24
26
  fullwidth?: boolean;
25
- size: PreviewSize;
27
+ size?: PreviewSize;
26
28
  className?: string;
27
29
  style?: React.CSSProperties;
28
30
  onClick?: (e: React.SyntheticEvent) => void;
29
31
  };
30
- export declare const EntityPreviewContainer: React.FC<EntityPreviewContainerProps>;
32
+ export declare const EntityPreviewContainer: React.ForwardRefExoticComponent<EntityPreviewContainerProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,21 +1,8 @@
1
1
  import React from "react";
2
- /**
3
- * Default entry view for the CMS. This component renders navigation cards
4
- * for each collection defined in the navigation.
5
-
6
- * @group Components
7
- */
2
+ export declare const DEFAULT_GROUP_NAME = "Views";
3
+ export declare const ADMIN_GROUP_NAME = "Admin";
8
4
  export declare function DefaultHomePage({ additionalActions, additionalChildrenStart, additionalChildrenEnd }: {
9
- /**
10
- * Additional actions to be rendered in the home page, close to the search bar.
11
- */
12
5
  additionalActions?: React.ReactNode;
13
- /**
14
- * Additional children to be rendered in the beginning of the home page.
15
- */
16
6
  additionalChildrenStart?: React.ReactNode;
17
- /**
18
- * Additional children to be rendered at the end of the home page.
19
- */
20
7
  additionalChildrenEnd?: React.ReactNode;
21
8
  }): import("react/jsx-runtime").JSX.Element;
@@ -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.
@@ -12,6 +12,7 @@ import { TopNavigationEntry } from "../../types";
12
12
  * @param onClick
13
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,11 @@
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, dndDisabled, collapsed, onToggleCollapsed }: PropsWithChildren<{
3
3
  group: string | undefined;
4
+ minimised?: boolean;
5
+ isPreview?: boolean;
6
+ isPotentialCardDropTarget?: boolean;
7
+ onEditGroup?: (groupName: string) => void;
8
+ dndDisabled?: boolean;
9
+ collapsed?: boolean;
10
+ onToggleCollapsed?: () => void;
4
11
  }>): 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;
@@ -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;
@@ -11,5 +11,5 @@ interface ReferenceFilterFieldProps {
11
11
  hidden: boolean;
12
12
  setHidden: (hidden: boolean) => void;
13
13
  }
14
- export declare function ReferenceFilterField({ name, value, setValue, isArray, path, title, includeId, 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;
15
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;
@@ -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
  */
@@ -120,9 +129,9 @@ export interface VirtualTableProps<T extends Record<string, any>> {
120
129
  */
121
130
  AddColumnComponent?: React.ComponentType;
122
131
  /**
123
- * Debug mode
132
+ * Initial scroll position
124
133
  */
125
- debug?: boolean;
134
+ initialScroll?: number;
126
135
  }
127
136
  export type CellRendererParams<T = any> = {
128
137
  column: VirtualTableColumn;
@@ -1,6 +1,4 @@
1
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,6 +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
6
  export * from "./default_entity_actions";
@@ -1,5 +1,6 @@
1
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[];
5
6
  export declare function getFormFieldKeys(collection: EntityCollection): string[];