@firecms/core 3.0.0-beta.1 → 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
@@ -1,23 +1,22 @@
1
1
  import { ArrayProperty, CMSType, EntityCollection, EntityCustomView, EntityValues, EnumValueConfig, EnumValues, NumberProperty, PropertiesOrBuilders, PropertyConfig, PropertyOrBuilder, ResolvedArrayProperty, ResolvedEntityCollection, ResolvedNumberProperty, ResolvedProperties, ResolvedProperty, ResolvedStringProperty, StringProperty, UserConfigurationPersistence } from "../types";
2
- export declare const resolveCollection: <M extends Record<string, any>>({ collection, path, entityId, values, previousValues, userConfigPersistence, fields }: {
3
- collection: EntityCollection<M, import("../types").User> | ResolvedEntityCollection<M>;
2
+ export declare const resolveCollection: <M extends Record<string, any>>({ collection, path, entityId, values, previousValues, userConfigPersistence, fields, ignoreMissingFields }: {
3
+ collection: EntityCollection<M> | ResolvedEntityCollection<M>;
4
4
  path: string;
5
- entityId?: string | undefined;
6
- values?: Partial<M> | undefined;
7
- previousValues?: Partial<M> | undefined;
8
- userConfigPersistence?: UserConfigurationPersistence | undefined;
9
- fields?: Record<string, PropertyConfig> | undefined;
5
+ entityId?: string;
6
+ values?: Partial<EntityValues<M>>;
7
+ previousValues?: Partial<EntityValues<M>>;
8
+ userConfigPersistence?: UserConfigurationPersistence;
9
+ fields?: Record<string, PropertyConfig>;
10
+ ignoreMissingFields?: boolean;
10
11
  }) => ResolvedEntityCollection<M>;
11
12
  /**
12
13
  * Resolve property builders, enums and arrays.
13
14
  * @param propertyOrBuilder
14
15
  * @param propertyValue
15
- * @param values
16
16
  */
17
- export declare function resolveProperty<T extends CMSType = CMSType, M extends Record<string, any> = any>({ propertyOrBuilder, propertyValue, fromBuilder, ...props }: {
17
+ export declare function resolveProperty<T extends CMSType = CMSType, M extends Record<string, any> = any>({ propertyOrBuilder, fromBuilder, ignoreMissingFields, ...props }: {
18
18
  propertyKey?: string;
19
19
  propertyOrBuilder: PropertyOrBuilder<T, M> | ResolvedProperty<T>;
20
- propertyValue?: unknown;
21
20
  values?: Partial<M>;
22
21
  previousValues?: Partial<M>;
23
22
  path?: string;
@@ -25,11 +24,24 @@ export declare function resolveProperty<T extends CMSType = CMSType, M extends R
25
24
  index?: number;
26
25
  fromBuilder?: boolean;
27
26
  fields?: Record<string, PropertyConfig<any>>;
27
+ ignoreMissingFields?: boolean;
28
28
  }): ResolvedProperty<T> | null;
29
- export declare function resolveArrayProperty<T extends any[], M>({ propertyKey, property, propertyValue, ...props }: {
29
+ export declare function getArrayResolvedProperties<M>({ propertyKey, propertyValue, property, ...props }: {
30
+ propertyValue: any;
31
+ propertyKey?: string;
32
+ property: ArrayProperty<any> | ResolvedArrayProperty<any>;
33
+ ignoreMissingFields: boolean;
34
+ values?: Partial<M>;
35
+ previousValues?: Partial<M>;
36
+ path?: string;
37
+ entityId?: string;
38
+ index?: number;
39
+ fromBuilder?: boolean;
40
+ fields?: Record<string, PropertyConfig>;
41
+ }): ResolvedProperty[];
42
+ export declare function resolveArrayProperty<T extends any[], M>({ propertyKey, property, ignoreMissingFields, ...props }: {
30
43
  propertyKey?: string;
31
44
  property: ArrayProperty<T> | ResolvedArrayProperty<T>;
32
- propertyValue: any;
33
45
  values?: Partial<M>;
34
46
  previousValues?: Partial<M>;
35
47
  path?: string;
@@ -37,15 +49,16 @@ export declare function resolveArrayProperty<T extends any[], M>({ propertyKey,
37
49
  index?: number;
38
50
  fromBuilder?: boolean;
39
51
  fields?: Record<string, PropertyConfig>;
52
+ ignoreMissingFields?: boolean;
40
53
  }): ResolvedArrayProperty;
41
54
  /**
42
55
  * Resolve enums and arrays for properties
43
56
  * @param properties
44
57
  * @param value
45
58
  */
46
- export declare function resolveProperties<M extends Record<string, any>>({ properties, propertyValue, ...props }: {
59
+ export declare function resolveProperties<M extends Record<string, any>>({ propertyKey, properties, ignoreMissingFields, ...props }: {
60
+ propertyKey?: string;
47
61
  properties: PropertiesOrBuilders<M>;
48
- propertyValue: unknown;
49
62
  values?: Partial<M>;
50
63
  previousValues?: Partial<M>;
51
64
  path?: string;
@@ -53,6 +66,7 @@ export declare function resolveProperties<M extends Record<string, any>>({ prope
53
66
  index?: number;
54
67
  fromBuilder?: boolean;
55
68
  fields?: Record<string, PropertyConfig>;
69
+ ignoreMissingFields?: boolean;
56
70
  }): ResolvedProperties<M>;
57
71
  /**
58
72
  * Resolve enum aliases for a string or number property
@@ -1,3 +1,24 @@
1
1
  import { EntityValues, ResolvedArrayProperty, ResolvedStringProperty, StorageConfig, UploadedFileContext } from "../types";
2
- export declare function resolveFilenameString<M extends object>(input: string | ((context: UploadedFileContext) => Promise<string> | string), storage: StorageConfig, values: EntityValues<M>, entityId: string, path: string, property: ResolvedStringProperty | ResolvedArrayProperty<string[]>, file: File, propertyKey: string): Promise<string>;
3
- export declare function resolveStoragePathString<M extends object>(input: string | ((context: UploadedFileContext) => string), storage: StorageConfig, values: EntityValues<M>, entityId: string, path: string, property: ResolvedStringProperty | ResolvedArrayProperty<string[]>, file: File, propertyKey: string): string;
2
+ interface ResolveFilenameStringParams<M extends object> {
3
+ input: string | ((context: UploadedFileContext) => (Promise<string> | string));
4
+ storage: StorageConfig;
5
+ values: EntityValues<M>;
6
+ entityId: string;
7
+ path?: string;
8
+ property: ResolvedStringProperty | ResolvedArrayProperty<string[]>;
9
+ file: File;
10
+ propertyKey: string;
11
+ }
12
+ export declare function resolveStorageFilenameString<M extends object>({ input, storage, values, entityId, path, property, file, propertyKey }: ResolveFilenameStringParams<M>): Promise<string>;
13
+ interface ResolveStoragePathStringParams<M extends object> {
14
+ input: string | ((context: UploadedFileContext) => string);
15
+ storage: StorageConfig;
16
+ values: EntityValues<M>;
17
+ entityId: string;
18
+ path?: string;
19
+ property: ResolvedStringProperty | ResolvedArrayProperty<string[]>;
20
+ file: File;
21
+ propertyKey: string;
22
+ }
23
+ export declare function resolveStoragePathString<M extends object>({ input, storage, values, entityId, path, property, file, propertyKey }: ResolveStoragePathStringParams<M>): string;
24
+ export {};
@@ -3,4 +3,4 @@ export declare const toSnakeCase: (str: string) => string;
3
3
  export declare function randomString(strLength?: number): string;
4
4
  export declare function randomColor(): string;
5
5
  export declare function slugify(text?: string, separator?: string, lowercase?: boolean): string;
6
- export declare function unslugify(slug: string): string;
6
+ export declare function unslugify(slug?: string): string;
@@ -0,0 +1 @@
1
+ export declare function useDebouncedCallback<T>(value: T, callback: () => void, immediate: boolean, timeoutMs?: number): void;
@@ -1,4 +1,4 @@
1
- import { EntityValues, ResolvedArrayProperty, ResolvedStringProperty, StorageConfig, StorageSource } from "../types";
1
+ import { ArrayProperty, EntityValues, ResolvedArrayProperty, ResolvedStringProperty, StorageConfig, StorageSource, StringProperty } from "../types";
2
2
  import { PreviewSize } from "../preview";
3
3
  /**
4
4
  * Internal representation of an item in the storage
@@ -18,9 +18,9 @@ export declare function useStorageUploadController<M extends object>({ entityId,
18
18
  entityId: string;
19
19
  entityValues: EntityValues<M>;
20
20
  value: string | string[] | null;
21
- path: string;
21
+ path?: string;
22
22
  propertyKey: string;
23
- property: ResolvedStringProperty | ResolvedArrayProperty<string[]>;
23
+ property: StringProperty | ArrayProperty<string[]> | ResolvedStringProperty | ResolvedArrayProperty<string[]>;
24
24
  storageSource: StorageSource;
25
25
  disabled: boolean;
26
26
  onChange: (value: string | string[] | null) => void;
@@ -1 +1,2 @@
1
+ export declare function printChanged(props: any, prev: any, path?: string | undefined, depth?: number | undefined, maxDepth?: number | undefined): void;
1
2
  export declare function useTraceUpdate(props: any, maxDepth?: number): void;
package/package.json CHANGED
@@ -1,114 +1,131 @@
1
1
  {
2
- "name": "@firecms/core",
3
- "type": "module",
4
- "version": "3.0.0-beta.1",
5
- "description": "Awesome Firebase/Firestore-based headless open-source CMS",
6
- "funding": {
7
- "url": "https://github.com/sponsors/firecmsco"
8
- },
9
- "author": "FireCMS",
10
- "license": "MIT",
11
- "repository": "git@github.com:FireCMSco/firecms.git",
12
- "main": "./dist/index.umd.js",
13
- "module": "./dist/index.es.js",
14
- "types": "./dist/index.d.ts",
15
- "source": "src/index.ts",
16
- "engines": {
17
- "node": ">=14"
18
- },
19
- "keywords": [
20
- "firebase",
21
- "cms",
22
- "admin",
23
- "admin panel",
24
- "firebase panel",
25
- "firestore",
26
- "headless",
27
- "headless cms",
28
- "content manager"
29
- ],
30
- "scripts": {
31
- "watch": "vite build --watch",
32
- "build": "vite build && tsc --emitDeclarationOnly -p tsconfig.prod.json",
33
- "prepublishOnly": "run-s build",
34
- "createTag": "PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]') && git tag v$PACKAGE_VERSION && git push --tags",
35
- "test:lint": "eslint \"src/**\" --quiet",
36
- "test": "jest",
37
- "clean": "rm -rf dist && find ./src -name '*.js' -type f | xargs rm -f",
38
- "generateIcons": "ts-node --esm src/icons/generateIcons.ts"
39
- },
40
- "dependencies": {
41
- "@firecms/ui": "^3.0.0-beta.1",
42
- "@fontsource/ibm-plex-mono": "^5.0.8",
43
- "@fontsource/roboto": "^5.0.8",
44
- "@hello-pangea/dnd": "^16.5.0",
45
- "date-fns": "^3.0.6",
46
- "formik": "^2.4.5",
47
- "history": "^5.3.0",
48
- "js-search": "^2.0.1",
49
- "markdown-it": "^13.0.2",
50
- "notistack": "^3.0.1",
51
- "object-hash": "^3.0.0",
52
- "react-image-file-resizer": "^0.4.8",
53
- "react-markdown-editor-lite": "^1.3.4",
54
- "react-transition-group": "^4.4.5",
55
- "react-use-measure": "^2.1.1",
56
- "react-window": "^1.8.10",
57
- "typeface-rubik": "^1.1.13",
58
- "yup": "^0.32.11"
59
- },
60
- "peerDependencies": {
61
- "firebase": "^10.5.2",
62
- "react": "^18.2.0",
63
- "react-dom": "^18.2.0",
64
- "react-router": "^6.2.0",
65
- "react-router-dom": "^6.2.0"
66
- },
67
- "eslintConfig": {
68
- "extends": [
69
- "react-app",
70
- "react-app/jest"
71
- ]
72
- },
73
- "devDependencies": {
74
- "@jest/globals": "^29.7.0",
75
- "@testing-library/jest-dom": "^5.17.0",
76
- "@testing-library/react": "^14.0.0",
77
- "@testing-library/user-event": "^14.5.1",
78
- "@types/jest": "^29.5.6",
79
- "@types/node": "^20.8.9",
80
- "@types/object-hash": "^3.0.6",
81
- "@types/react": "^18.2.45",
82
- "@types/react-dom": "^18.2.17",
83
- "@types/react-measure": "^2.0.12",
84
- "@typescript-eslint/eslint-plugin": "^5.62.0",
85
- "@typescript-eslint/parser": "^5.62.0",
86
- "@vitejs/plugin-react": "^4.2.1",
87
- "cross-env": "^7.0.3",
88
- "eslint": "^8.55.0",
89
- "eslint-config-standard": "^17.1.0",
90
- "eslint-plugin-import": "^2.29.1",
91
- "eslint-plugin-n": "^15.7.0",
92
- "eslint-plugin-promise": "^6.1.1",
93
- "eslint-plugin-react": "^7.33.2",
94
- "eslint-plugin-react-hooks": "^4.6.0",
95
- "firebase": "^10.7.1",
96
- "jest": "^29.7.0",
97
- "npm-run-all": "^4.1.5",
98
- "react-router": "^6.21.0",
99
- "react-router-dom": "^6.21.0",
100
- "ts-jest": "^29.1.1",
101
- "ts-node": "^10.9.2",
102
- "tsd": "^0.28.1",
103
- "typescript": "^5.3.3",
104
- "vite": "^4.5.1"
105
- },
106
- "files": [
107
- "dist",
108
- "src"
109
- ],
110
- "gitHead": "71db60591860441e5c0d2b6cbc11198870257c7e",
111
- "publishConfig": {
112
- "access": "public"
113
- }
2
+ "name": "@firecms/core",
3
+ "type": "module",
4
+ "version": "3.0.0-beta.10",
5
+ "description": "Awesome Firebase/Firestore-based headless open-source CMS",
6
+ "funding": {
7
+ "url": "https://github.com/sponsors/firecmsco"
8
+ },
9
+ "author": "FireCMS",
10
+ "license": "MIT",
11
+ "repository": "git@github.com:FireCMSco/firecms.git",
12
+ "main": "./dist/index.umd.js",
13
+ "module": "./dist/index.es.js",
14
+ "types": "./dist/index.d.ts",
15
+ "source": "src/index.ts",
16
+ "engines": {
17
+ "node": ">=14"
18
+ },
19
+ "keywords": [
20
+ "firebase",
21
+ "cms",
22
+ "admin",
23
+ "admin panel",
24
+ "firebase panel",
25
+ "firestore",
26
+ "headless",
27
+ "headless cms",
28
+ "content manager"
29
+ ],
30
+ "scripts": {
31
+ "watch": "vite build --watch",
32
+ "build": "vite build && tsc --emitDeclarationOnly -p tsconfig.prod.json",
33
+ "prepublishOnly": "run-s build",
34
+ "createTag": "PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]') && git tag v$PACKAGE_VERSION && git push --tags",
35
+ "test:lint": "eslint \"src/**\" --quiet",
36
+ "test": "jest",
37
+ "clean": "rm -rf dist && find ./src -name '*.js' -type f | xargs rm -f",
38
+ "generateIcons": "ts-node --esm src/icons/generateIcons.ts"
39
+ },
40
+ "exports": {
41
+ ".": {
42
+ "import": "./dist/index.es.js",
43
+ "require": "./dist/index.umd.js",
44
+ "types": "./dist/index.d.ts"
45
+ },
46
+ "./package.json": "./package.json"
47
+ },
48
+ "dependencies": {
49
+ "@firecms/editor": "^3.0.0-beta.10",
50
+ "@firecms/formex": "^3.0.0-beta.10",
51
+ "@firecms/ui": "^3.0.0-beta.10",
52
+ "@hello-pangea/dnd": "^17.0.0",
53
+ "@radix-ui/react-portal": "^1.1.2",
54
+ "clsx": "^2.1.1",
55
+ "date-fns": "^3.6.0",
56
+ "fuse.js": "^7.0.0",
57
+ "history": "^5.3.0",
58
+ "markdown-it": "^14.1.0",
59
+ "notistack": "^3.0.1",
60
+ "object-hash": "^3.0.0",
61
+ "react-dropzone": "^14.2.9",
62
+ "react-fast-compare": "^3.2.2",
63
+ "react-image-file-resizer": "^0.4.8",
64
+ "react-transition-group": "^4.4.5",
65
+ "react-use-measure": "^2.1.1",
66
+ "react-window": "^1.8.10",
67
+ "yup": "^0.32.11"
68
+ },
69
+ "peerDependencies": {
70
+ "firebase": "^10.5.2",
71
+ "react": "^18.3.1",
72
+ "react-dom": "^18.3.1",
73
+ "react-router": "^6.25.1",
74
+ "react-router-dom": "^6.25.1"
75
+ },
76
+ "devDependencies": {
77
+ "@jest/globals": "^29.7.0",
78
+ "@testing-library/react": "^16.0.1",
79
+ "@testing-library/user-event": "^14.5.2",
80
+ "@types/jest": "^29.5.13",
81
+ "@types/node": "^20.16.11",
82
+ "@types/object-hash": "^3.0.6",
83
+ "@types/react": "^18.3.11",
84
+ "@types/react-dom": "^18.3.0",
85
+ "@types/react-measure": "^2.0.12",
86
+ "@vitejs/plugin-react": "^4.3.2",
87
+ "cross-env": "^7.0.3",
88
+ "firebase": "^10.14.0",
89
+ "jest": "^29.7.0",
90
+ "npm-run-all": "^4.1.5",
91
+ "react-router": "^6.26.2",
92
+ "react-router-dom": "^6.26.2",
93
+ "ts-jest": "^29.2.5",
94
+ "ts-node": "^10.9.2",
95
+ "tsd": "^0.31.2",
96
+ "typescript": "^5.6.3",
97
+ "vite": "^5.4.8"
98
+ },
99
+ "files": [
100
+ "dist",
101
+ "src"
102
+ ],
103
+ "gitHead": "f844c3f86094efec6c33313c3f106f30cdcd309f",
104
+ "publishConfig": {
105
+ "access": "public"
106
+ },
107
+ "eslintConfig": {
108
+ "extends": [
109
+ "react-app",
110
+ "react-app/jest"
111
+ ]
112
+ },
113
+ "jest": {
114
+ "transform": {
115
+ "^.+\\.tsx?$": "ts-jest"
116
+ },
117
+ "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$",
118
+ "moduleFileExtensions": [
119
+ "ts",
120
+ "tsx",
121
+ "js",
122
+ "jsx",
123
+ "json",
124
+ "node"
125
+ ],
126
+ "testEnvironment": "node",
127
+ "moduleNameMapper": {
128
+ "\\.(css|less)$": "<rootDir>/test/__mocks__/styleMock.js"
129
+ }
130
+ }
114
131
  }
@@ -0,0 +1,18 @@
1
+ import { DefaultAppBar, DefaultAppBarProps } from "../core/DefaultAppBar";
2
+
3
+ /**
4
+ * This component renders the main app bar of FireCMS.
5
+ */
6
+ export function AppBar({
7
+ children,
8
+ ...props
9
+ }: {
10
+ children?: React.ReactNode,
11
+ className?: string,
12
+ style?: React.CSSProperties
13
+ } & DefaultAppBarProps) {
14
+ const usedChildren = children ?? <DefaultAppBar {...props}/>;
15
+ return <>{usedChildren}</>;
16
+ }
17
+
18
+ AppBar.componentType = "AppBar";
@@ -0,0 +1,24 @@
1
+ import { DefaultDrawer } from "../core";
2
+
3
+ /**
4
+ * This component is in charge of rendering the drawer.
5
+ * If you add this component under your {@link Scaffold}, it will be rendered
6
+ * as a drawer, and the open and close functionality will be handled automatically.
7
+ * If you want to customise the drawer, you can create your own component and pass it as a child.
8
+ * For custom drawers, you can use the {@link useApp} to open and close the drawer.
9
+ *
10
+ */
11
+ export function Drawer({
12
+ children,
13
+ className,
14
+ style
15
+ }: {
16
+ children?: React.ReactNode,
17
+ className?: string,
18
+ style?: React.CSSProperties
19
+ }) {
20
+ const usedChildren = children ?? <DefaultDrawer className={className} style={style}/>;
21
+ return <>{usedChildren}</>;
22
+ }
23
+
24
+ Drawer.componentType = "Drawer";