@firecms/core 3.0.0-alpha.84 → 3.0.0-beta.10

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 (370) hide show
  1. package/README.md +6 -7
  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 +30 -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 +3 -4
  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 +13 -18
  12. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -5
  13. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +7 -13
  14. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +3 -2
  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 +2 -4
  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 +3 -3
  21. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +13 -4
  22. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
  23. package/dist/components/EntityCollectionView/useSelectionController.d.ts +2 -0
  24. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  25. package/dist/components/EntityPreview.d.ts +26 -7
  26. package/dist/components/EntityView.d.ts +11 -0
  27. package/dist/components/ErrorView.d.ts +1 -1
  28. package/dist/components/FieldCaption.d.ts +5 -0
  29. package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
  30. package/dist/components/HomePage/NavigationCard.d.ts +8 -0
  31. package/dist/components/HomePage/{NavigationCollectionCard.d.ts → NavigationCardBinding.d.ts} +3 -3
  32. package/dist/components/HomePage/SmallNavigationCard.d.ts +6 -0
  33. package/dist/components/HomePage/index.d.ts +3 -1
  34. package/dist/components/{FieldConfigBadge.d.ts → PropertyConfigBadge.d.ts} +2 -1
  35. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  36. package/dist/components/{ReferenceSelectionInner.d.ts → ReferenceTable/ReferenceSelectionTable.d.ts} +2 -2
  37. package/dist/components/ReferenceWidget.d.ts +6 -4
  38. package/dist/components/{EntityCollectionTable/SimpleEntityCollectionTable.d.ts → SelectableTable/SelectableTable.d.ts} +8 -28
  39. package/dist/components/SelectableTable/SelectableTableContext.d.ts +4 -0
  40. package/dist/components/{EntityCollectionTable → SelectableTable}/filters/ReferenceFilterField.d.ts +2 -1
  41. package/dist/components/VirtualTable/VirtualTableProps.d.ts +16 -13
  42. package/dist/components/VirtualTable/types.d.ts +3 -3
  43. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -1
  44. package/dist/components/common/index.d.ts +6 -0
  45. package/dist/components/common/table_height.d.ts +5 -0
  46. package/dist/components/{EntityCollectionTable → common}/types.d.ts +11 -6
  47. package/dist/components/{EntityCollectionView → common}/useColumnsIds.d.ts +2 -1
  48. package/dist/components/{EntityCollectionTable → common}/useDataSourceEntityCollectionTableController.d.ts +4 -1
  49. package/dist/components/common/useTableSearchHelper.d.ts +12 -0
  50. package/dist/components/index.d.ts +14 -8
  51. package/dist/contexts/AuthControllerContext.d.ts +1 -1
  52. package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
  53. package/dist/core/DefaultDrawer.d.ts +19 -0
  54. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  55. package/dist/core/EntityEditView.d.ts +36 -0
  56. package/dist/core/FireCMS.d.ts +1 -1
  57. package/dist/core/NavigationRoutes.d.ts +3 -3
  58. package/dist/core/index.d.ts +3 -6
  59. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  60. package/dist/form/components/CustomIdField.d.ts +2 -1
  61. package/dist/form/components/ErrorFocus.d.ts +1 -1
  62. package/dist/form/components/FieldHelperText.d.ts +3 -3
  63. package/dist/form/components/FormikArrayContainer.d.ts +2 -1
  64. package/dist/{components → form/components}/LabelWithIcon.d.ts +1 -1
  65. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  66. package/dist/form/components/StorageItemPreview.d.ts +4 -3
  67. package/dist/form/components/StorageUploadProgress.d.ts +1 -1
  68. package/dist/form/components/index.d.ts +2 -1
  69. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  70. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  71. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  72. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  73. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  74. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  75. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  76. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  77. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  78. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  79. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -4
  80. package/dist/form/field_bindings/TextFieldBinding.d.ts +2 -2
  81. package/dist/form/index.d.ts +4 -5
  82. package/dist/form/useClearRestoreValue.d.ts +2 -2
  83. package/dist/form/validation.d.ts +1 -1
  84. package/dist/hooks/data/delete.d.ts +2 -2
  85. package/dist/hooks/data/save.d.ts +2 -3
  86. package/dist/hooks/data/useDataSource.d.ts +2 -2
  87. package/dist/hooks/data/useEntityFetch.d.ts +3 -3
  88. package/dist/hooks/index.d.ts +5 -1
  89. package/dist/{core → hooks}/useBuildModeController.d.ts +1 -1
  90. package/dist/hooks/useBuildNavigationController.d.ts +23 -0
  91. package/dist/hooks/useProjectLog.d.ts +14 -0
  92. package/dist/hooks/useSnackbarController.d.ts +1 -0
  93. package/dist/hooks/useStorageSource.d.ts +2 -2
  94. package/dist/hooks/useValidateAuthenticator.d.ts +21 -0
  95. package/dist/index.d.ts +1 -0
  96. package/dist/index.es.js +16297 -12643
  97. package/dist/index.es.js.map +1 -1
  98. package/dist/index.umd.js +20043 -587
  99. package/dist/index.umd.js.map +1 -1
  100. package/dist/internal/useBuildDataSource.d.ts +1 -12
  101. package/dist/preview/PropertyPreview.d.ts +1 -1
  102. package/dist/preview/PropertyPreviewProps.d.ts +7 -5
  103. package/dist/preview/components/BooleanPreview.d.ts +5 -1
  104. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  105. package/dist/preview/components/ReferencePreview.d.ts +4 -9
  106. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  107. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  108. package/dist/types/analytics.d.ts +1 -1
  109. package/dist/types/auth.d.ts +38 -2
  110. package/dist/types/collections.d.ts +56 -9
  111. package/dist/types/datasource.d.ts +59 -39
  112. package/dist/types/entities.d.ts +7 -1
  113. package/dist/types/entity_actions.d.ts +14 -0
  114. package/dist/types/entity_callbacks.d.ts +3 -3
  115. package/dist/types/entity_overrides.d.ts +6 -0
  116. package/dist/types/fields.d.ts +47 -42
  117. package/dist/types/firecms.d.ts +8 -23
  118. package/dist/types/index.d.ts +2 -1
  119. package/dist/types/navigation.d.ts +18 -16
  120. package/dist/types/permissions.d.ts +5 -1
  121. package/dist/types/plugins.d.ts +31 -31
  122. package/dist/types/properties.d.ts +36 -23
  123. package/dist/types/property_config.d.ts +2 -2
  124. package/dist/types/roles.d.ts +31 -0
  125. package/dist/types/side_dialogs_controller.d.ts +10 -0
  126. package/dist/types/storage.d.ts +86 -3
  127. package/dist/types/user.d.ts +5 -0
  128. package/dist/util/collections.d.ts +9 -1
  129. package/dist/util/entities.d.ts +2 -2
  130. package/dist/util/icon_list.d.ts +5 -1
  131. package/dist/util/icon_synonyms.d.ts +1 -97
  132. package/dist/util/icons.d.ts +10 -3
  133. package/dist/util/index.d.ts +3 -1
  134. package/dist/util/navigation_utils.d.ts +2 -2
  135. package/dist/util/objects.d.ts +1 -1
  136. package/dist/util/permissions.d.ts +4 -4
  137. package/dist/util/plurals.d.ts +0 -2
  138. package/dist/util/property_utils.d.ts +1 -1
  139. package/dist/util/references.d.ts +4 -2
  140. package/dist/util/resolutions.d.ts +28 -14
  141. package/dist/util/storage.d.ts +23 -2
  142. package/dist/util/strings.d.ts +1 -1
  143. package/dist/util/useDebouncedCallback.d.ts +1 -0
  144. package/dist/util/useStorageUploadController.d.ts +3 -3
  145. package/dist/util/useTraceUpdate.d.ts +1 -0
  146. package/package.json +129 -112
  147. package/src/app/AppBar.tsx +18 -0
  148. package/src/app/Drawer.tsx +24 -0
  149. package/src/app/Scaffold.tsx +243 -0
  150. package/src/app/index.ts +4 -0
  151. package/src/app/useApp.tsx +32 -0
  152. package/src/components/ArrayContainer.tsx +45 -75
  153. package/src/components/CircularProgressCenter.tsx +1 -1
  154. package/src/components/ClearFilterSortButton.tsx +41 -0
  155. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +1 -1
  156. package/src/components/DeleteEntityDialog.tsx +4 -4
  157. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +47 -58
  158. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +253 -448
  159. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +11 -12
  160. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +54 -48
  161. package/src/components/EntityCollectionTable/column_utils.tsx +4 -4
  162. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +40 -32
  163. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +17 -9
  164. package/src/components/EntityCollectionTable/index.tsx +1 -9
  165. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +44 -46
  166. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +32 -30
  167. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +19 -7
  168. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +145 -142
  169. package/src/components/EntityCollectionView/EntityCollectionView.tsx +184 -171
  170. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +5 -6
  171. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  172. package/src/components/EntityCollectionView/useSelectionController.tsx +42 -0
  173. package/src/components/EntityCollectionView/utils.ts +19 -0
  174. package/src/components/EntityPreview.tsx +208 -71
  175. package/src/components/EntityView.tsx +84 -0
  176. package/src/components/ErrorView.tsx +1 -1
  177. package/src/components/FieldCaption.tsx +14 -0
  178. package/src/components/HomePage/DefaultHomePage.tsx +38 -28
  179. package/src/components/HomePage/NavigationCard.tsx +69 -0
  180. package/src/components/HomePage/NavigationCardBinding.tsx +116 -0
  181. package/src/components/HomePage/NavigationGroup.tsx +1 -1
  182. package/src/components/HomePage/SmallNavigationCard.tsx +44 -0
  183. package/src/components/HomePage/index.tsx +3 -1
  184. package/src/components/PropertyConfigBadge.tsx +23 -0
  185. package/src/components/PropertyIdCopyTooltip.tsx +48 -0
  186. package/src/components/{ReferenceSelectionInner.tsx → ReferenceTable/ReferenceSelectionTable.tsx} +37 -23
  187. package/src/components/ReferenceWidget.tsx +26 -16
  188. package/src/components/SearchIconsView.tsx +10 -7
  189. package/src/components/{EntityCollectionTable/SimpleEntityCollectionTable.tsx → SelectableTable/SelectableTable.tsx} +46 -84
  190. package/src/components/SelectableTable/SelectableTableContext.tsx +6 -0
  191. package/src/components/{EntityCollectionTable → SelectableTable}/filters/BooleanFilterField.tsx +2 -3
  192. package/src/components/{EntityCollectionTable → SelectableTable}/filters/DateTimeFilterField.tsx +22 -7
  193. package/src/components/{EntityCollectionTable → SelectableTable}/filters/ReferenceFilterField.tsx +38 -24
  194. package/src/components/{EntityCollectionTable → SelectableTable}/filters/StringNumberFilterField.tsx +88 -22
  195. package/src/components/VirtualTable/VirtualTable.tsx +77 -46
  196. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  197. package/src/components/VirtualTable/VirtualTableHeader.tsx +14 -8
  198. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  199. package/src/components/VirtualTable/VirtualTableProps.tsx +19 -15
  200. package/src/components/VirtualTable/VirtualTableRow.tsx +4 -5
  201. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +4 -4
  202. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +4 -3
  203. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +4 -3
  204. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +14 -28
  205. package/src/components/VirtualTable/types.tsx +2 -3
  206. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +17 -9
  207. package/src/components/common/index.ts +6 -0
  208. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  209. package/src/components/{EntityCollectionTable → common}/types.tsx +9 -6
  210. package/src/components/{EntityCollectionView → common}/useColumnsIds.tsx +23 -2
  211. package/src/components/{EntityCollectionTable → common}/useDataSourceEntityCollectionTableController.tsx +25 -14
  212. package/src/components/common/useTableSearchHelper.ts +88 -0
  213. package/src/components/index.tsx +15 -8
  214. package/src/contexts/AuthControllerContext.tsx +1 -1
  215. package/src/contexts/DialogsProvider.tsx +2 -2
  216. package/src/core/DefaultAppBar.tsx +176 -0
  217. package/src/core/DefaultDrawer.tsx +183 -0
  218. package/src/core/DrawerNavigationItem.tsx +66 -0
  219. package/src/core/EntityEditView.tsx +1127 -0
  220. package/src/core/EntitySidePanel.tsx +9 -8
  221. package/src/core/FireCMS.tsx +67 -59
  222. package/src/core/NavigationRoutes.tsx +25 -17
  223. package/src/core/SideDialogs.tsx +1 -0
  224. package/src/core/field_configs.tsx +18 -19
  225. package/src/core/index.tsx +3 -6
  226. package/src/form/PropertyFieldBinding.tsx +60 -33
  227. package/src/form/components/CustomIdField.tsx +51 -36
  228. package/src/form/components/ErrorFocus.tsx +3 -3
  229. package/src/form/components/FieldHelperText.tsx +4 -4
  230. package/src/form/components/FormikArrayContainer.tsx +4 -1
  231. package/src/form/components/LabelWithIcon.tsx +41 -0
  232. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  233. package/src/form/components/StorageItemPreview.tsx +22 -10
  234. package/src/form/components/StorageUploadProgress.tsx +8 -8
  235. package/src/form/components/index.tsx +2 -1
  236. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +28 -18
  237. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +37 -37
  238. package/src/form/field_bindings/BlockFieldBinding.tsx +29 -27
  239. package/src/form/field_bindings/DateTimeFieldBinding.tsx +20 -17
  240. package/src/form/field_bindings/KeyValueFieldBinding.tsx +66 -60
  241. package/src/form/field_bindings/MapFieldBinding.tsx +35 -33
  242. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
  243. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -22
  244. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +12 -18
  245. package/src/form/field_bindings/ReferenceFieldBinding.tsx +45 -33
  246. package/src/form/field_bindings/RepeatFieldBinding.tsx +36 -21
  247. package/src/form/field_bindings/SelectFieldBinding.tsx +22 -16
  248. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +41 -42
  249. package/src/form/field_bindings/SwitchFieldBinding.tsx +11 -8
  250. package/src/form/field_bindings/TextFieldBinding.tsx +34 -30
  251. package/src/form/index.tsx +5 -9
  252. package/src/form/useClearRestoreValue.tsx +2 -2
  253. package/src/form/validation.ts +4 -21
  254. package/src/hooks/data/delete.ts +5 -4
  255. package/src/hooks/data/save.ts +7 -2
  256. package/src/hooks/data/useCollectionFetch.tsx +1 -1
  257. package/src/hooks/data/useDataSource.tsx +15 -2
  258. package/src/hooks/data/useEntityFetch.tsx +4 -4
  259. package/src/hooks/index.tsx +7 -1
  260. package/src/{core → hooks}/useBuildLocalConfigurationPersistence.tsx +8 -10
  261. package/src/{core → hooks}/useBuildModeController.tsx +12 -6
  262. package/src/{internal → hooks}/useBuildNavigationController.tsx +244 -99
  263. package/src/hooks/useFireCMSContext.tsx +51 -3
  264. package/src/hooks/useLargeLayout.tsx +10 -7
  265. package/src/hooks/useProjectLog.tsx +63 -0
  266. package/src/hooks/useReferenceDialog.tsx +3 -3
  267. package/src/hooks/useResolvedNavigationFrom.tsx +1 -1
  268. package/src/hooks/useSnackbarController.tsx +1 -2
  269. package/src/hooks/useStorageSource.tsx +7 -2
  270. package/src/hooks/useValidateAuthenticator.tsx +115 -0
  271. package/src/index.ts +1 -0
  272. package/src/internal/useBuildDataSource.ts +79 -84
  273. package/src/internal/useBuildSideDialogsController.tsx +1 -0
  274. package/src/internal/useBuildSideEntityController.tsx +103 -23
  275. package/src/internal/useUnsavedChangesDialog.tsx +3 -1
  276. package/src/preview/PropertyPreview.tsx +12 -19
  277. package/src/preview/PropertyPreviewProps.tsx +6 -10
  278. package/src/preview/components/BooleanPreview.tsx +19 -4
  279. package/src/preview/components/EnumValuesChip.tsx +2 -2
  280. package/src/preview/components/ImagePreview.tsx +24 -34
  281. package/src/preview/components/ReferencePreview.tsx +73 -176
  282. package/src/preview/components/StorageThumbnail.tsx +5 -1
  283. package/src/preview/components/UrlComponentPreview.tsx +44 -11
  284. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +1 -2
  285. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +3 -2
  286. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +1 -2
  287. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +0 -1
  288. package/src/preview/property_previews/ArrayOneOfPreview.tsx +3 -4
  289. package/src/preview/property_previews/ArrayPropertyPreview.tsx +3 -4
  290. package/src/preview/property_previews/MapPropertyPreview.tsx +6 -6
  291. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +2 -2
  292. package/src/preview/property_previews/StringPropertyPreview.tsx +8 -7
  293. package/src/preview/util.ts +2 -2
  294. package/src/types/analytics.ts +1 -0
  295. package/src/types/auth.tsx +51 -2
  296. package/src/types/collections.ts +65 -9
  297. package/src/types/customization_controller.tsx +0 -1
  298. package/src/types/datasource.ts +69 -47
  299. package/src/types/entities.ts +15 -1
  300. package/src/types/entity_actions.tsx +17 -0
  301. package/src/types/entity_callbacks.ts +4 -3
  302. package/src/types/entity_overrides.tsx +7 -0
  303. package/src/types/fields.tsx +51 -45
  304. package/src/types/firecms.tsx +9 -26
  305. package/src/types/index.ts +2 -1
  306. package/src/types/navigation.ts +20 -19
  307. package/src/types/permissions.ts +6 -1
  308. package/src/types/plugins.tsx +38 -40
  309. package/src/types/properties.ts +42 -24
  310. package/src/types/property_config.tsx +2 -2
  311. package/src/types/roles.ts +41 -0
  312. package/src/types/side_dialogs_controller.tsx +13 -0
  313. package/src/types/side_entity_controller.tsx +1 -0
  314. package/src/types/storage.ts +94 -3
  315. package/src/types/user.ts +7 -0
  316. package/src/util/collections.ts +22 -0
  317. package/src/util/entities.ts +6 -5
  318. package/src/util/enums.ts +1 -1
  319. package/src/util/icon_list.ts +15 -10
  320. package/src/util/icon_synonyms.ts +3 -99
  321. package/src/util/icons.tsx +18 -4
  322. package/src/util/index.ts +3 -1
  323. package/src/util/make_properties_editable.ts +13 -5
  324. package/src/util/navigation_utils.ts +6 -6
  325. package/src/util/objects.ts +25 -28
  326. package/src/util/permissions.ts +12 -8
  327. package/src/util/plurals.ts +0 -2
  328. package/src/util/property_utils.tsx +1 -1
  329. package/src/util/references.ts +39 -5
  330. package/src/util/resolutions.ts +75 -42
  331. package/src/util/storage.ts +79 -21
  332. package/src/util/strings.ts +4 -3
  333. package/src/util/{useDebounce.ts → useDebouncedCallback.ts} +1 -1
  334. package/src/util/useStorageUploadController.tsx +33 -7
  335. package/src/util/useTraceUpdate.tsx +2 -1
  336. package/dist/components/VirtualTable/common.d.ts +0 -2
  337. package/dist/core/Drawer.d.ts +0 -23
  338. package/dist/core/Scaffold.d.ts +0 -52
  339. package/dist/form/EntityForm.d.ts +0 -75
  340. package/dist/form/components/SubmitListener.d.ts +0 -1
  341. package/dist/form/components/SwitchControl.d.ts +0 -8
  342. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  343. package/dist/hooks/useVerifyLicense.d.ts +0 -0
  344. package/dist/internal/EntityView.d.ts +0 -22
  345. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  346. package/dist/internal/useBuildNavigationController.d.ts +0 -14
  347. package/dist/internal/useLocaleConfig.d.ts +0 -1
  348. package/dist/types/appcheck.d.ts +0 -26
  349. package/dist/util/useDebounce.d.ts +0 -1
  350. package/src/components/FieldConfigBadge.tsx +0 -17
  351. package/src/components/FireCMSAppBar.tsx +0 -157
  352. package/src/components/HomePage/NavigationCollectionCard.tsx +0 -146
  353. package/src/components/LabelWithIcon.tsx +0 -33
  354. package/src/core/Drawer.tsx +0 -162
  355. package/src/core/Scaffold.tsx +0 -278
  356. package/src/form/EntityForm.tsx +0 -657
  357. package/src/form/components/SubmitListener.tsx +0 -32
  358. package/src/form/components/SwitchControl.tsx +0 -39
  359. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -696
  360. package/src/hooks/useVerifyLicense.tsx +0 -1
  361. package/src/internal/EntityView.tsx +0 -578
  362. package/src/internal/useBuildCustomizationController.tsx +0 -5
  363. package/src/internal/useLocaleConfig.tsx +0 -18
  364. package/src/types/appcheck.ts +0 -29
  365. /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/BooleanFilterField.d.ts +0 -0
  366. /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/DateTimeFilterField.d.ts +0 -0
  367. /package/dist/components/{EntityCollectionTable → SelectableTable}/filters/StringNumberFilterField.d.ts +0 -0
  368. /package/dist/components/{EntityCollectionTable → common}/useDebouncedData.d.ts +0 -0
  369. /package/dist/{core → hooks}/useBuildLocalConfigurationPersistence.d.ts +0 -0
  370. /package/src/components/{EntityCollectionTable → common}/useDebouncedData.ts +0 -0
@@ -0,0 +1,7 @@
1
+ import { DataSource, DataSourceDelegate } from "./datasource";
2
+ import { StorageSource } from "./storage";
3
+
4
+ export type EntityOverrides = {
5
+ dataSourceDelegate?: DataSourceDelegate;
6
+ storageSource?: StorageSource;
7
+ };
@@ -1,6 +1,6 @@
1
- import { EntityValues } from "./entities";
2
- import { CMSType, PropertyOrBuilder } from "./properties";
1
+ import { CMSType, Property, PropertyOrBuilder } from "./properties";
3
2
  import { ResolvedEntityCollection, ResolvedProperty } from "./resolved_entities";
3
+ import { FormexController } from "@firecms/formex";
4
4
 
5
5
  /**
6
6
  * When building a custom field you need to create a React component that takes
@@ -21,11 +21,6 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
21
21
  */
22
22
  value: T;
23
23
 
24
- /**
25
- * Initial value of this field
26
- */
27
- initialValue: T | undefined;
28
-
29
24
  /**
30
25
  * Set value of field directly
31
26
  */
@@ -42,7 +37,7 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
42
37
  /**
43
38
  * Is the form currently submitting
44
39
  */
45
- isSubmitting: boolean;
40
+ isSubmitting?: boolean;
46
41
 
47
42
  /**
48
43
  * Should this field show the error indicator.
@@ -50,55 +45,50 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
50
45
  * filled) but we don't want to show the error until the user has tried
51
46
  * saving.
52
47
  */
53
- showError: boolean;
48
+ showError?: boolean;
54
49
 
55
50
  /**
56
51
  * Is there an error in this field. The error field has the same shape as
57
52
  * the field, replacing values with a string containing the error.
58
53
  * It takes the value `null` if there is no error
59
54
  */
60
- error: any | null;
55
+ error?: any | null;
61
56
 
62
57
  /**
63
58
  * Has this field been touched
64
59
  */
65
- touched: boolean;
60
+ touched?: boolean;
66
61
 
67
62
  /**
68
63
  * Property related to this field
69
64
  */
70
- property: ResolvedProperty<T>;
65
+ property: Property<T> | ResolvedProperty<T>;
71
66
 
72
67
  /**
73
68
  * Should this field include a description
74
69
  */
75
- includeDescription: boolean;
70
+ includeDescription?: boolean;
76
71
 
77
72
  /**
78
73
  * Flag to indicate that the underlying value has been updated in the
79
74
  * datasource
80
75
  */
81
- underlyingValueHasChanged: boolean;
76
+ underlyingValueHasChanged?: boolean;
82
77
 
83
78
  /**
84
79
  * Is this field part of an array
85
80
  */
86
- partOfArray: boolean;
87
-
88
- /**
89
- * Is this field part of a block (oneOf array)
90
- */
91
- partOfBlock: boolean;
81
+ partOfArray?: boolean;
92
82
 
93
83
  /**
94
- * Is this field being rendered in the entity table popup
84
+ * Should this field render with the minimal amount of UI elements
95
85
  */
96
- tableMode: boolean;
86
+ minimalistView?: boolean;
97
87
 
98
88
  /**
99
89
  * Should this field autofocus on mount
100
90
  */
101
- autoFocus: boolean;
91
+ autoFocus?: boolean;
102
92
 
103
93
  /**
104
94
  * Additional properties set by the developer
@@ -113,7 +103,12 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
113
103
  /**
114
104
  * Flag to indicate if this field should be disabled
115
105
  */
116
- disabled: boolean;
106
+ disabled?: boolean;
107
+
108
+ /**
109
+ * Size of the field
110
+ */
111
+ size?: "smallest" | "small" | "medium";
117
112
 
118
113
  }
119
114
 
@@ -124,37 +119,42 @@ export interface FieldProps<T extends CMSType = any, CustomProps = any, M extend
124
119
  export interface FormContext<M extends Record<string, any> = any> {
125
120
 
126
121
  /**
127
- * Collection of the entity being modified
122
+ * Current values of the entity
128
123
  */
129
- collection: ResolvedEntityCollection<M>;
124
+ values: M;
130
125
 
131
126
  /**
132
- * Current values of the entity
127
+ * Update the value of a field
128
+ * @param key
129
+ * @param value
130
+ * @param shouldValidate
133
131
  */
134
- values: EntityValues<M>;
132
+ setFieldValue: (key: string, value: any, shouldValidate?: boolean) => void;
135
133
 
136
134
  /**
137
- * Entity id, it can be null if it's a new entity
135
+ * Save the entity.
138
136
  */
139
- entityId?: string;
137
+ save: (values: M) => void;
140
138
 
141
139
  /**
142
- * Path this entity is located at
140
+ * Collection of the entity being modified
143
141
  */
144
- path: string;
142
+ collection?: ResolvedEntityCollection<M>;
145
143
 
146
144
  /**
147
- * Update the value of a field
148
- * @param key
149
- * @param value
150
- * @param shouldValidate
145
+ * Entity id, it can be null if it's a new entity
151
146
  */
152
- setFieldValue: (key: string, value: any, shouldValidate?: boolean) => void;
147
+ entityId: string;
148
+
149
+ /**
150
+ * Path this entity is located at
151
+ */
152
+ path?: string;
153
153
 
154
154
  /**
155
- * Save the entity
155
+ * This is the underlying formex controller that powers the form
156
156
  */
157
- save: (values: EntityValues<M>) => void;
157
+ formex: FormexController<M>;
158
158
  }
159
159
 
160
160
  /**
@@ -192,11 +192,6 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
192
192
  */
193
193
  underlyingValueHasChanged?: boolean;
194
194
 
195
- /**
196
- * Is this field being rendered in a table
197
- */
198
- tableMode?: boolean;
199
-
200
195
  /**
201
196
  * Is this field part of an array
202
197
  */
@@ -205,7 +200,7 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
205
200
  /**
206
201
  * Is this field part of a block (oneOf array)
207
202
  */
208
- partOfBlock?: boolean;
203
+ minimalistView?: boolean;
209
204
 
210
205
  /**
211
206
  * Should the field take focus when rendered. When opening the popup view
@@ -217,4 +212,15 @@ export interface PropertyFieldBindingProps<T extends CMSType, M extends Record<s
217
212
  * Should this field be disabled
218
213
  */
219
214
  disabled?: boolean;
215
+
216
+ /**
217
+ * Index of the field in the array.
218
+ * Only used when the field is part of an array.
219
+ */
220
+ index?: number;
221
+
222
+ /**
223
+ * The size of the field
224
+ */
225
+ size?: "smallest" | "small" | "medium",
220
226
  }
@@ -3,7 +3,7 @@ import { User } from "./user";
3
3
  import { AuthController } from "./auth";
4
4
  import { DataSourceDelegate } from "./datasource";
5
5
  import { EntityCollection, EntityCustomView } from "./collections";
6
- import { CMSView } from "./navigation";
6
+ import { CMSView, NavigationController } from "./navigation";
7
7
  import { FireCMSContext } from "./firecms_context";
8
8
  import { PropertyConfig } from "./property_config";
9
9
  import { Locale } from "./locales";
@@ -68,18 +68,9 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
68
68
  }) => React.ReactNode;
69
69
 
70
70
  /**
71
- * List of the mapped collections in the CMS.
72
- * Each entry relates to a collection in the root database.
73
- * Each of the navigation entries in this field
74
- * generates an entry in the main menu.
71
+ * If you have a custom API key, you can use it here.
75
72
  */
76
- collections?: EC[] | EntityCollectionsBuilder<EC>;
77
-
78
- /**
79
- * Custom additional views created by the developer, added to the main
80
- * navigation
81
- */
82
- views?: CMSView[] | CMSViewsBuilder;
73
+ apiKey?: string;
83
74
 
84
75
  /**
85
76
  * Record of custom form fields to be used in the CMS.
@@ -88,6 +79,12 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
88
79
  */
89
80
  propertyConfigs?: Record<string, PropertyConfig>;
90
81
 
82
+ /**
83
+ * This controller is in charge of the navigation of the CMS.
84
+ * It is in charge of resolving the collection and entity paths.
85
+ */
86
+ navigationController: NavigationController;
87
+
91
88
  /**
92
89
  * List of additional custom views for entities.
93
90
  * You can use the key to reference the custom view in
@@ -124,20 +121,6 @@ export type FireCMSProps<UserType extends User, EC extends EntityCollection> = {
124
121
  */
125
122
  authController: AuthController<UserType>;
126
123
 
127
- /**
128
- * Path under the navigation routes of the CMS will be created. Defaults to `/`.
129
- * Internally FireCMS uses `react-router` to create the routes, the base path is attached to the
130
- * `BrowserRouter` component. If you are using FireCMS in a subpath of your website, you can use
131
- * this prop to specify the base path.
132
- */
133
- basePath?: string;
134
-
135
- /**
136
- * Path under the collection routes of the CMS will be created.
137
- * Defaults to `/c`.
138
- */
139
- baseCollectionPath?: string;
140
-
141
124
  /**
142
125
  * Use this controller to access the configuration that is stored locally,
143
126
  * and not defined in code
@@ -17,11 +17,12 @@ export * from "./side_entity_controller";
17
17
  export * from "./side_dialogs_controller";
18
18
  export * from "./firecms_context";
19
19
  export * from "./entity_callbacks";
20
+ export * from "./entity_overrides";
20
21
  export * from "./local_config_persistence";
21
22
  export * from "./plugins";
22
23
  export * from "./analytics";
23
24
  export * from "./firecms";
24
- export * from "./appcheck";
25
+ export * from "./roles";
25
26
  export * from "./export_import";
26
27
  export * from "./modify_collections";
27
28
  export * from "./analytics_controller";
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { EntityCollection } from "./collections";
2
3
  import { EntityReference } from "./entities";
3
4
 
@@ -6,7 +7,7 @@ import { EntityReference } from "./entities";
6
7
  * attributes.
7
8
  * @group Models
8
9
  */
9
- export type NavigationController = {
10
+ export type NavigationController<EC extends EntityCollection = EntityCollection<any>> = {
10
11
 
11
12
  /**
12
13
  * List of the mapped collections in the CMS.
@@ -14,13 +15,19 @@ export type NavigationController = {
14
15
  * Each of the navigation entries in this field
15
16
  * generates an entry in the main menu.
16
17
  */
17
- collections: EntityCollection[];
18
+ collections?: EntityCollection[];
18
19
 
19
20
  /**
20
21
  * Custom additional views created by the developer, added to the main
21
22
  * navigation
22
23
  */
23
- views: CMSView[];
24
+ views?: CMSView[];
25
+
26
+ /**
27
+ * Custom additional views created by the developer, added to the admin
28
+ * navigation
29
+ */
30
+ adminViews?: CMSView[];
24
31
 
25
32
  /**
26
33
  * Configuration for the views that should be displayed at the top
@@ -49,18 +56,17 @@ export type NavigationController = {
49
56
  * Get the collection configuration for a given path.
50
57
  * The collection is resolved from the given path or alias.
51
58
  */
52
- getCollection: <EC extends EntityCollection = EntityCollection<any>>(pathOrAlias: string,
53
- entityId?: string,
54
- includeUserOverride?: boolean) => EC | undefined;
59
+ getCollection: (pathOrId: string,
60
+ includeUserOverride?: boolean) => EC | undefined;
55
61
  /**
56
- * Get the collection configuration from its parent path segments.
62
+ * Get the collection configuration from its parent ids.
57
63
  */
58
- getCollectionFromIds: <EC extends EntityCollection = EntityCollection<any>>(ids: string[]) => EC | undefined;
64
+ getCollectionFromIds: (ids: string[]) => EC | undefined;
59
65
 
60
66
  /**
61
67
  * Get the collection configuration from its parent path segments.
62
68
  */
63
- getCollectionFromPaths: <EC extends EntityCollection = EntityCollection<any>>(pathSegments: string[]) => EC | undefined;
69
+ getCollectionFromPaths: (pathSegments: string[]) => EC | undefined;
64
70
 
65
71
  /**
66
72
  * Default path under the navigation routes of the CMS will be created
@@ -116,13 +122,6 @@ export type NavigationController = {
116
122
  */
117
123
  resolveAliasesFrom: (pathWithAliases: string) => string;
118
124
 
119
- /**
120
- * Location used as the base for routes.
121
- * This is the location that will be used underneath, when the url changes while
122
- * opening a side dialog
123
- */
124
- baseLocation: string;
125
-
126
125
  /**
127
126
  * Call this method to recalculate the navigation
128
127
  */
@@ -174,6 +173,7 @@ export interface CMSView {
174
173
  * You can use any of the icons in the Material specs:
175
174
  * https://fonts.google.com/icons
176
175
  * e.g. 'account_tree' or 'person'
176
+ * Find all the icons in https://firecms.co/docs/icons
177
177
  */
178
178
  icon?: string;
179
179
 
@@ -192,6 +192,7 @@ export interface CMSView {
192
192
  /**
193
193
  * Optional field used to group top level navigation entries under a
194
194
  * navigation view.
195
+ * This prop is ignored for admin views.
195
196
  */
196
197
  group?: string;
197
198
 
@@ -201,11 +202,11 @@ export interface TopNavigationEntry {
201
202
  url: string;
202
203
  name: string;
203
204
  path: string;
204
- type: "collection" | "view";
205
+ type: "collection" | "view" | "admin";
205
206
  collection?: EntityCollection;
206
- view: CMSView;
207
+ view?: CMSView;
207
208
  description?: string;
208
- group?: string;
209
+ group: string;
209
210
  }
210
211
 
211
212
  export type TopNavigationResult = {
@@ -41,6 +41,11 @@ export interface PermissionsBuilderProps<EC extends EntityCollection = EntityCol
41
41
  */
42
42
  entity: Entity<M> | null;
43
43
 
44
+ /**
45
+ * Path of the collection e.g. 'products/12345/locales'
46
+ */
47
+ path: string;
48
+
44
49
  /**
45
50
  * Path segments of the collection e.g. ['products', 'locales']
46
51
  */
@@ -73,4 +78,4 @@ export type PermissionsBuilder<EC extends EntityCollection = EntityCollection, U
73
78
  user,
74
79
  collection,
75
80
  authController
76
- }: PermissionsBuilderProps<EC, UserType, M>) => Permissions);
81
+ }: PermissionsBuilderProps<EC, UserType, M>) => Permissions | undefined);
@@ -1,7 +1,7 @@
1
1
  import React, { PropsWithChildren } from "react";
2
2
 
3
3
  import { FireCMSContext } from "./firecms_context";
4
- import { CollectionActionsProps, EntityCollection } from "./collections";
4
+ import { CollectionActionsProps, EntityCollection, EntityTableController } from "./collections";
5
5
  import { User } from "./user";
6
6
  import { FieldProps, FormContext } from "./fields";
7
7
  import { CMSType, Property } from "./properties";
@@ -13,12 +13,12 @@ import { ResolvedProperty } from "./resolved_entities";
13
13
  * NOTE: This is a work in progress and the API is not stable yet.
14
14
  * @group Core
15
15
  */
16
- export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any> = {
16
+ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollection = EntityCollection, COL_ACTIONS_PROPS = any, COL_ACTIONS_START__PROPS = any> = {
17
17
 
18
18
  /**
19
- * Name of the plugin
19
+ * Key of the plugin. This is used to identify the plugin in the CMS.
20
20
  */
21
- name: string;
21
+ key: string;
22
22
 
23
23
  /**
24
24
  * If this flag is set to true, no content will be shown in the CMS
@@ -26,40 +26,6 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
26
26
  */
27
27
  loading?: boolean;
28
28
 
29
- collections?: {
30
-
31
- /**
32
- * Use this method to inject collections to the CMS.
33
- * You receive the current collections as a parameter, and you can return
34
- * a new list of collections.
35
- * @see {@link joinCollectionLists}
36
- * @param collections
37
- */
38
- injectCollections?: (collections: EntityCollection[]) => EntityCollection[];
39
-
40
- /**
41
- * Use this component to add custom actions to the entity collections
42
- * toolbar.
43
- */
44
- CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
45
-
46
- collectionActionsProps?: COL_ACTIONS_PROPS;
47
-
48
- }
49
-
50
- form?: {
51
- provider?: {
52
- Component: React.ComponentType<PropsWithChildren<FORM_PROPS & PluginFormActionProps<any, EC>>>;
53
- props?: FORM_PROPS;
54
- }
55
-
56
- Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
57
-
58
- fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
59
-
60
- fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
61
- }
62
-
63
29
  /**
64
30
  * You can use this prop to add higher order components to the CMS.
65
31
  * The components will be added to the root of the CMS, so any component
@@ -122,6 +88,23 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
122
88
 
123
89
  collectionView?: {
124
90
 
91
+ /**
92
+ * Use this component to add custom actions to the entity collections
93
+ * toolbar.
94
+ */
95
+ CollectionActions?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_PROPS>[];
96
+ collectionActionsProps?: COL_ACTIONS_PROPS;
97
+
98
+ CollectionActionsStart?: React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS> | React.ComponentType<CollectionActionsProps<any, any, EC> & COL_ACTIONS_START__PROPS>[];
99
+ collectionActionsStartProps?: COL_ACTIONS_START__PROPS;
100
+
101
+ blockSearch?: (props: {
102
+ context: FireCMSContext,
103
+ path: string,
104
+ collection: EC,
105
+ parentCollectionIds?: string[]
106
+ }) => boolean;
107
+
125
108
  showTextSearchBar?: (props: {
126
109
  context: FireCMSContext,
127
110
  path: string,
@@ -147,6 +130,7 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
147
130
  parentCollectionIds: string[],
148
131
  onHover: boolean,
149
132
  collection: EC;
133
+ tableController: EntityTableController;
150
134
  }>;
151
135
 
152
136
  /**
@@ -157,9 +141,23 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
157
141
  fullPath: string,
158
142
  parentCollectionIds: string[],
159
143
  collection: EC;
144
+ tableController: EntityTableController;
160
145
  }>;
161
146
  }
162
147
 
148
+ form?: {
149
+ provider?: {
150
+ Component: React.ComponentType<PropsWithChildren<FORM_PROPS & PluginFormActionProps<any, EC>>>;
151
+ props?: FORM_PROPS;
152
+ }
153
+
154
+ Actions?: React.ComponentType<PluginFormActionProps<any, EC>>;
155
+
156
+ fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
157
+
158
+ fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
159
+ }
160
+
163
161
  }
164
162
 
165
163
  /**
@@ -205,8 +203,8 @@ export type PluginFieldBuilderParams<T extends CMSType = CMSType, M extends Reco
205
203
  property: Property<T> | ResolvedProperty<T>;
206
204
  Field: React.ComponentType<FieldProps<T, any, M>>;
207
205
  plugin: FireCMSPlugin;
208
- path: string;
209
- collection: EC;
206
+ path?: string;
207
+ collection?: EC;
210
208
  };
211
209
 
212
210
  export interface PluginGenericProps<UserType extends User = User> {