@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
@@ -4,7 +4,7 @@ import { EntitySidePanelProps } from "../types";
4
4
  import { useNavigationController } from "../hooks";
5
5
 
6
6
  import { ErrorBoundary } from "../components";
7
- import { EntityView } from "../internal/EntityView";
7
+ import { EntityEditView } from "./EntityEditView";
8
8
  import { useSideDialogContext } from "./SideDialogs";
9
9
 
10
10
  /**
@@ -33,13 +33,15 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
33
33
  if (!props) return undefined;
34
34
  let usedCollection = props.collection;
35
35
 
36
+ const registryCollection = navigationController.getCollection(props.path);
37
+ if (registryCollection) {
38
+ usedCollection = registryCollection;
39
+ }
36
40
  if (!usedCollection) {
37
- usedCollection = navigationController.getCollection(props.path, props.entityId);
38
- if (!usedCollection) {
39
- console.error("ERROR: No collection found in path `", props.path, "`. Entity id: ", props.entityId);
40
- throw Error("ERROR: No collection found in path `" + props.path + "`. Make sure you have defined a collection for this path in the root navigation.");
41
- }
41
+ console.error("ERROR: No collection found in path `", props.path, "`. Entity id: ", props.entityId);
42
+ throw Error("ERROR: No collection found in path `" + props.path + "`. Make sure you have defined a collection for this path in the root navigation.");
42
43
  }
44
+
43
45
  return usedCollection;
44
46
  }, [navigationController, props]);
45
47
 
@@ -75,9 +77,8 @@ export function EntitySidePanel(props: EntitySidePanelProps) {
75
77
  return (
76
78
  <>
77
79
  <ErrorBoundary>
78
- <EntityView
80
+ <EntityEditView
79
81
  {...props}
80
- formWidth={props.width}
81
82
  collection={collection}
82
83
  parentCollectionIds={parentCollectionIds}
83
84
  onValuesAreModified={onValuesAreModified}
@@ -1,9 +1,9 @@
1
1
  import React, { useMemo } from "react";
2
2
 
3
- import { EntityCollection, FireCMSContext, FireCMSPlugin, FireCMSProps, User } from "../types";
4
- import { AuthControllerContext, ModeControllerContext } from "../contexts";
3
+ import { CustomizationController, EntityCollection, FireCMSContext, FireCMSPlugin, FireCMSProps, User } from "../types";
4
+ import { AuthControllerContext } from "../contexts";
5
5
  import { useBuildSideEntityController } from "../internal/useBuildSideEntityController";
6
- import { useCustomizationController, useFireCMSContext, useModeController } from "../hooks";
6
+ import { useCustomizationController, useFireCMSContext } from "../hooks";
7
7
  import { useBuildSideDialogsController } from "../internal/useBuildSideDialogsController";
8
8
  import { ErrorView } from "../components";
9
9
  import { StorageSourceContext } from "../contexts/StorageSourceContext";
@@ -12,14 +12,12 @@ import { DataSourceContext } from "../contexts/DataSourceContext";
12
12
  import { SideEntityControllerContext } from "../contexts/SideEntityControllerContext";
13
13
  import { NavigationContext } from "../contexts/NavigationContext";
14
14
  import { SideDialogsControllerContext } from "../contexts/SideDialogsControllerContext";
15
- import { useLocaleConfig } from "../internal/useLocaleConfig";
16
- import { CenteredView } from "@firecms/ui";
15
+ import { CenteredView, Typography, useLocaleConfig } from "@firecms/ui";
17
16
  import { DialogsProvider } from "../contexts/DialogsProvider";
18
- import { useBuildNavigationController } from "../internal/useBuildNavigationController";
19
17
  import { useBuildDataSource } from "../internal/useBuildDataSource";
20
- import { useBuildCustomizationController } from "../internal/useBuildCustomizationController";
21
18
  import { CustomizationControllerContext } from "../contexts/CustomizationControllerContext";
22
19
  import { AnalyticsContext } from "../contexts/AnalyticsContext";
20
+ import { useProjectLog } from "../hooks/useProjectLog";
23
21
 
24
22
  /**
25
23
  * If you are using independent components of the CMS
@@ -30,12 +28,11 @@ import { AnalyticsContext } from "../contexts/AnalyticsContext";
30
28
  *
31
29
  * You only need to use this component if you are building a custom app.
32
30
  *
33
- * @constructor
31
+
34
32
  * @group Core
35
33
  */
36
34
  export function FireCMS<UserType extends User, EC extends EntityCollection>(props: FireCMSProps<UserType, EC>) {
37
35
 
38
- const modeController = useModeController();
39
36
  const {
40
37
  children,
41
38
  entityLinkBuilder,
@@ -50,25 +47,12 @@ export function FireCMS<UserType extends User, EC extends EntityCollection>(prop
50
47
  propertyConfigs,
51
48
  entityViews,
52
49
  components,
53
- baseCollectionPath,
54
- basePath,
55
- collections,
56
- views
50
+ navigationController,
51
+ apiKey
57
52
  } = props;
58
53
 
59
54
  useLocaleConfig(locale);
60
55
 
61
- const navigationController = useBuildNavigationController({
62
- basePath,
63
- baseCollectionPath,
64
- authController,
65
- collections,
66
- views,
67
- userConfigPersistence,
68
- dataSource: dataSourceDelegate,
69
- plugins
70
- });
71
-
72
56
  /**
73
57
  * Controller in charge of fetching and persisting data
74
58
  */
@@ -85,7 +69,7 @@ export function FireCMS<UserType extends User, EC extends EntityCollection>(prop
85
69
 
86
70
  const loading = authController.initialLoading || navigationController.loading || pluginsLoading;
87
71
 
88
- const customizationController = useBuildCustomizationController({
72
+ const customizationController: CustomizationController = {
89
73
  dateTimeFormat,
90
74
  locale,
91
75
  entityLinkBuilder,
@@ -93,12 +77,22 @@ export function FireCMS<UserType extends User, EC extends EntityCollection>(prop
93
77
  entityViews: entityViews ?? [],
94
78
  propertyConfigs: propertyConfigs ?? {},
95
79
  components
96
- })
80
+ };
97
81
 
98
82
  const analyticsController = useMemo(() => ({
99
83
  onAnalyticsEvent
100
84
  }), []);
101
85
 
86
+ const accessResponse = useProjectLog({
87
+ apiKey,
88
+ authController,
89
+ dataSourceDelegate,
90
+ plugins
91
+ });
92
+ if (accessResponse?.message) {
93
+ console.warn(accessResponse.message);
94
+ }
95
+
102
96
  if (navigationController.navigationLoadingError) {
103
97
  return (
104
98
  <CenteredView maxWidth={"md"}>
@@ -119,40 +113,54 @@ export function FireCMS<UserType extends User, EC extends EntityCollection>(prop
119
113
  );
120
114
  }
121
115
 
116
+ if (accessResponse?.blocked) {
117
+ return (
118
+ <CenteredView maxWidth={"md"} fullScreen={true} className={"flex flex-col gap-2"}>
119
+ <Typography variant={"h4"} gutterBottom>
120
+ License needed
121
+ </Typography>
122
+ <Typography>
123
+ You need a valid license to use FireCMS PRO. Please reach out at <a
124
+ href={"mailto:hello@firecms.co"}>hello@firecms.co</a> for more information.
125
+ </Typography>
126
+ {accessResponse?.message &&
127
+ <Typography>{accessResponse?.message}</Typography>}
128
+ </CenteredView>
129
+ );
130
+ }
131
+
122
132
  return (
123
- <ModeControllerContext.Provider value={modeController}>
124
- <AnalyticsContext.Provider value={analyticsController}>
125
- <CustomizationControllerContext.Provider value={customizationController}>
126
- <UserConfigurationPersistenceContext.Provider
127
- value={userConfigPersistence}>
128
- <StorageSourceContext.Provider
129
- value={storageSource}>
130
- <DataSourceContext.Provider
131
- value={dataSource}>
132
- <AuthControllerContext.Provider
133
- value={authController}>
134
- <SideDialogsControllerContext.Provider
135
- value={sideDialogsController}>
136
- <SideEntityControllerContext.Provider
137
- value={sideEntityController}>
138
- <NavigationContext.Provider
139
- value={navigationController}>
140
- <DialogsProvider>
141
- <FireCMSInternal
142
- loading={loading}>
143
- {children}
144
- </FireCMSInternal>
145
- </DialogsProvider>
146
- </NavigationContext.Provider>
147
- </SideEntityControllerContext.Provider>
148
- </SideDialogsControllerContext.Provider>
149
- </AuthControllerContext.Provider>
150
- </DataSourceContext.Provider>
151
- </StorageSourceContext.Provider>
152
- </UserConfigurationPersistenceContext.Provider>
153
- </CustomizationControllerContext.Provider>
154
- </AnalyticsContext.Provider>
155
- </ModeControllerContext.Provider>
133
+ <AnalyticsContext.Provider value={analyticsController}>
134
+ <CustomizationControllerContext.Provider value={customizationController}>
135
+ <UserConfigurationPersistenceContext.Provider
136
+ value={userConfigPersistence}>
137
+ <StorageSourceContext.Provider
138
+ value={storageSource}>
139
+ <DataSourceContext.Provider
140
+ value={dataSource}>
141
+ <AuthControllerContext.Provider
142
+ value={authController}>
143
+ <SideDialogsControllerContext.Provider
144
+ value={sideDialogsController}>
145
+ <SideEntityControllerContext.Provider
146
+ value={sideEntityController}>
147
+ <NavigationContext.Provider
148
+ value={navigationController}>
149
+ <DialogsProvider>
150
+ <FireCMSInternal
151
+ loading={loading}>
152
+ {children}
153
+ </FireCMSInternal>
154
+ </DialogsProvider>
155
+ </NavigationContext.Provider>
156
+ </SideEntityControllerContext.Provider>
157
+ </SideDialogsControllerContext.Provider>
158
+ </AuthControllerContext.Provider>
159
+ </DataSourceContext.Provider>
160
+ </StorageSourceContext.Provider>
161
+ </UserConfigurationPersistenceContext.Provider>
162
+ </CustomizationControllerContext.Provider>
163
+ </AnalyticsContext.Provider>
156
164
  );
157
165
 
158
166
  }
@@ -2,7 +2,7 @@ import React from "react";
2
2
 
3
3
  import { Route, Routes, useLocation } from "react-router-dom";
4
4
  import { CMSView } from "../types";
5
- import { DefaultHomePage, EntityCollectionView, NotFoundPage } from "../components";
5
+ import { DefaultHomePage, EntityCollectionView, ErrorBoundary, NotFoundPage } from "../components";
6
6
  import { useNavigationController } from "../hooks";
7
7
  import { toArray } from "../util/arrays";
8
8
 
@@ -13,9 +13,9 @@ export type NavigationRoutesProps = {
13
13
  /**
14
14
  * In case you need to override the home page
15
15
  */
16
- HomePage?: React.ComponentType;
16
+ homePage?: React.ReactNode;
17
17
 
18
- customRoutes?: React.ReactNode[]
18
+ children?: React.ReactNode | React.ReactNode[]
19
19
 
20
20
  };
21
21
 
@@ -25,14 +25,13 @@ export type NavigationRoutesProps = {
25
25
  * or the home route) related to a {@link NavigationController}.
26
26
  * This component needs a parent {@link FireCMS}
27
27
  *
28
- * @constructor
28
+
29
29
  * @group Components
30
30
  */
31
-
32
31
  export const NavigationRoutes = React.memo<NavigationRoutesProps>(
33
32
  function NavigationRoutes({
34
- HomePage = DefaultHomePage,
35
- customRoutes
33
+ homePage = <DefaultHomePage/>,
34
+ children
36
35
  }: NavigationRoutesProps) {
37
36
 
38
37
  const location = useLocation();
@@ -59,6 +58,14 @@ export const NavigationRoutes = React.memo<NavigationRoutesProps>(
59
58
  cmsViews.push(buildCMSViewRoute(cmsView.path, cmsView));
60
59
  });
61
60
  }
61
+ if (navigation.adminViews) {
62
+ navigation.adminViews.forEach((cmsView) => {
63
+ if (Array.isArray(cmsView.path))
64
+ cmsViews.push(...cmsView.path.map(path => buildCMSViewRoute(path, cmsView)));
65
+ else
66
+ cmsViews.push(buildCMSViewRoute(cmsView.path, cmsView));
67
+ });
68
+ }
62
69
 
63
70
  // we reorder collections so that nested paths are included first
64
71
  const sortedCollections = [...(navigation.collections ?? [])]
@@ -70,20 +77,22 @@ export const NavigationRoutes = React.memo<NavigationRoutesProps>(
70
77
  return <Route path={urlPath + "/*"}
71
78
  key={`navigation_${collection.id ?? collection.path}`}
72
79
  element={
73
- <EntityCollectionView
74
- key={`collection_view_${collection.id ?? collection.path}`}
75
- isSubCollection={false}
76
- parentCollectionIds={[]}
77
- fullPath={collection.id ?? collection.path}
78
- {...collection}
79
- Actions={toArray(collection.Actions)}/>
80
+ <ErrorBoundary>
81
+ <EntityCollectionView
82
+ key={`collection_view_${collection.id ?? collection.path}`}
83
+ isSubCollection={false}
84
+ parentCollectionIds={[]}
85
+ fullPath={collection.id ?? collection.path}
86
+ {...collection}
87
+ Actions={toArray(collection.Actions)}/>
88
+ </ErrorBoundary>
80
89
  }/>;
81
90
  }
82
91
  );
83
92
 
84
93
  const homeRoute = (
85
94
  <Route path={"/"}
86
- element={<HomePage/>}/>
95
+ element={homePage}/>
87
96
  );
88
97
 
89
98
  const notFoundRoute = <Route path={"*"}
@@ -102,7 +111,7 @@ export const NavigationRoutes = React.memo<NavigationRoutesProps>(
102
111
 
103
112
  {notFoundRoute}
104
113
 
105
- {customRoutes}
114
+ {children}
106
115
 
107
116
  </Routes>
108
117
  );
@@ -115,4 +124,3 @@ const buildCMSViewRoute = (path: string, cmsView: CMSView) => {
115
124
  element={cmsView.view}
116
125
  />;
117
126
  };
118
-
@@ -126,6 +126,7 @@ function SideDialogView({
126
126
  <Sheet
127
127
  open={Boolean(panel)}
128
128
  onOpenChange={(open) => !open && onCloseRequest()}
129
+ title={"Side dialog " + panel?.key}
129
130
  >
130
131
  {panel &&
131
132
  <div
@@ -8,8 +8,8 @@ import {
8
8
  DateTimeFieldBinding,
9
9
  KeyValueFieldBinding,
10
10
  MapFieldBinding,
11
- MarkdownFieldBinding,
12
- MultiSelectBinding,
11
+ MarkdownEditorFieldBinding,
12
+ MultiSelectFieldBinding,
13
13
  ReferenceFieldBinding,
14
14
  RepeatFieldBinding,
15
15
  SelectFieldBinding,
@@ -77,7 +77,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
77
77
  property: {
78
78
  dataType: "string",
79
79
  markdown: true,
80
- Field: MarkdownFieldBinding
80
+ Field: MarkdownEditorFieldBinding
81
81
  }
82
82
  },
83
83
  url: {
@@ -104,6 +104,17 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
104
104
  Field: TextFieldBinding
105
105
  }
106
106
  },
107
+ switch: {
108
+ key: "switch",
109
+ name: "Switch",
110
+ description: "Boolean true or false field (or yes or no, 0 or 1...)",
111
+ Icon: FlagIcon,
112
+ color: "#20d9d2",
113
+ property: {
114
+ dataType: "boolean",
115
+ Field: SwitchFieldBinding
116
+ }
117
+ },
107
118
  select: {
108
119
  key: "select",
109
120
  name: "Select/enum",
@@ -128,7 +139,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
128
139
  dataType: "string",
129
140
  enumValues: [],
130
141
  },
131
- Field: MultiSelectBinding
142
+ Field: MultiSelectFieldBinding
132
143
  }
133
144
  },
134
145
  number_input: {
@@ -166,7 +177,7 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
166
177
  dataType: "number",
167
178
  enumValues: [],
168
179
  },
169
- Field: MultiSelectBinding
180
+ Field: MultiSelectFieldBinding
170
181
  }
171
182
  },
172
183
  file_upload: {
@@ -225,17 +236,6 @@ export const DEFAULT_FIELD_CONFIGS: Record<string, PropertyConfig<any>> = {
225
236
  Field: ArrayOfReferencesFieldBinding
226
237
  }
227
238
  },
228
- switch: {
229
- key: "switch",
230
- name: "Switch",
231
- description: "Boolean true or false field (or yes or no, 0 or 1...)",
232
- Icon: FlagIcon,
233
- color: "#20d9d2",
234
- property: {
235
- dataType: "boolean",
236
- Field: SwitchFieldBinding
237
- }
238
- },
239
239
  date_time: {
240
240
  key: "date_time",
241
241
  name: "Date/time",
@@ -331,7 +331,7 @@ export function getFieldConfig(property: Property | ResolvedProperty, propertyCo
331
331
  }
332
332
  const defaultFieldConfig = DEFAULT_FIELD_CONFIGS[defaultFieldId];
333
333
  const customField = fieldId ? propertyConfigs[fieldId] : undefined;
334
- return mergeDeep(defaultFieldConfig ?? {}, customField ?? {});
334
+ return mergeDeep(defaultFieldConfig ?? {}, customField ?? {} as PropertyConfig);
335
335
  }
336
336
 
337
337
  export function getDefaultFieldId(property: Property | ResolvedProperty) {
@@ -359,8 +359,7 @@ export function getDefaultFieldId(property: Property | ResolvedProperty) {
359
359
  } else if (property.dataType === "map") {
360
360
  if (property.keyValue)
361
361
  return "key_value";
362
- if (property.properties)
363
- return "group";
362
+ return "group";
364
363
  } else if (property.dataType === "array") {
365
364
  const of = (property as ArrayProperty).of;
366
365
  const oneOf = (property as ArrayProperty).oneOf;
@@ -1,14 +1,11 @@
1
1
  export * from "./FireCMS";
2
2
 
3
- export type { ScaffoldProps } from "./Scaffold";
4
- export { Scaffold } from "./Scaffold";
3
+ export * from "../app/Scaffold";
5
4
 
6
- export type { DrawerProps } from "./Drawer";
7
- export { Drawer, DrawerNavigationItem } from "./Drawer";
5
+ export * from "./DefaultDrawer";
6
+ export * from "./DrawerNavigationItem";
8
7
 
9
8
  export * from "./field_configs";
10
9
 
11
10
  export * from "./SideDialogs";
12
11
  export * from "./NavigationRoutes";
13
- export * from "./useBuildModeController";
14
- export * from "./useBuildLocalConfigurationPersistence";
@@ -1,7 +1,7 @@
1
1
  import React, { ComponentType, ReactElement, useCallback, useRef } from "react";
2
2
  import equal from "react-fast-compare"
3
3
 
4
- import { FastField, Field, FieldProps as FormikFieldProps, getIn } from "formik";
4
+ import { Field, FieldProps as FormexFieldProps, getIn } from "@firecms/formex";
5
5
 
6
6
  import {
7
7
  CMSType,
@@ -51,6 +51,13 @@ export const PropertyFieldBinding = React.memo(PropertyFieldBindingInternal, (a:
51
51
  if (a.propertyKey !== b.propertyKey) {
52
52
  return false;
53
53
  }
54
+ if (a.index !== b.index) {
55
+ return false;
56
+ }
57
+
58
+ if (a.size !== b.size) {
59
+ return false;
60
+ }
54
61
  const aIsBuilder = isPropertyBuilder(a.property) || a.property.fromBuilder;
55
62
  const bIsBuilder = isPropertyBuilder(b.property) || b.property.fromBuilder;
56
63
 
@@ -67,7 +74,7 @@ export const PropertyFieldBinding = React.memo(PropertyFieldBindingInternal, (a:
67
74
  return false;
68
75
  }) as typeof PropertyFieldBindingInternal;
69
76
 
70
- function PropertyFieldBindingInternal<T extends CMSType = CMSType, CustomProps = any, M extends Record<string, any> = Record<string, any>>
77
+ function PropertyFieldBindingInternal<T extends CMSType = CMSType, M extends Record<string, any> = Record<string, any>>
71
78
  ({
72
79
  propertyKey,
73
80
  property,
@@ -75,34 +82,31 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, CustomProps =
75
82
  includeDescription,
76
83
  underlyingValueHasChanged,
77
84
  disabled,
78
- tableMode,
79
85
  partOfArray,
80
- partOfBlock,
86
+ minimalistView,
81
87
  autoFocus,
88
+ index,
89
+ size
82
90
  }: PropertyFieldBindingProps<T, M>): ReactElement<PropertyFieldBindingProps<T, M>> {
83
91
 
84
92
  const customizationController = useCustomizationController();
85
93
 
86
- const shouldAlwaysRerender = shouldPropertyReRender(property, customizationController.plugins);
87
- // we use the standard Field for user defined fields, since it rebuilds
88
- // when there are changes in other values, in contrast to FastField
89
- const FieldComponent = shouldAlwaysRerender ? Field : FastField;
90
-
91
94
  return (
92
- <FieldComponent
95
+ <Field
96
+ key={propertyKey}
93
97
  name={propertyKey}
94
98
  >
95
- {(fieldProps: FormikFieldProps<T>) => {
99
+ {(fieldProps) => {
96
100
 
97
101
  let Component: ComponentType<FieldProps<T>> | undefined;
98
102
  const resolvedProperty: ResolvedProperty<T> | null = resolveProperty({
99
103
  propertyKey,
100
- propertyValue: fieldProps.field.value,
101
104
  propertyOrBuilder: property,
102
105
  values: fieldProps.form.values,
103
106
  path: context.path,
104
107
  entityId: context.entityId,
105
- fields: customizationController.propertyConfigs
108
+ fields: customizationController.propertyConfigs,
109
+ index
106
110
  });
107
111
 
108
112
  if (resolvedProperty === null || isHidden(resolvedProperty)) {
@@ -116,16 +120,22 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, CustomProps =
116
120
  } else {
117
121
  const propertyConfig = getFieldConfig(resolvedProperty, customizationController.propertyConfigs);
118
122
  if (!propertyConfig) {
119
- console.log("INTERNAL: Could not find field config for property", { propertyKey, resolvedProperty, fields: customizationController.propertyConfigs, propertyConfig });
123
+ console.log("INTERNAL: Could not find field config for property", {
124
+ propertyKey,
125
+ resolvedProperty,
126
+ fields: customizationController.propertyConfigs,
127
+ propertyConfig
128
+ });
120
129
  throw new Error(`INTERNAL: Could not find field config for property ${propertyKey}`);
121
130
  }
122
131
  const configProperty = resolveProperty({
132
+ propertyKey,
123
133
  propertyOrBuilder: propertyConfig.property,
124
- propertyValue: fieldProps.field.value,
125
134
  values: fieldProps.form.values,
126
135
  path: context.path,
127
136
  entityId: context.entityId,
128
- fields: customizationController.propertyConfigs
137
+ fields: customizationController.propertyConfigs,
138
+ index
129
139
  });
130
140
  Component = configProperty.Field as ComponentType<FieldProps<T>>;
131
141
  }
@@ -144,10 +154,10 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, CustomProps =
144
154
  underlyingValueHasChanged,
145
155
  context,
146
156
  disabled,
147
- tableMode,
148
157
  partOfArray,
149
- partOfBlock,
150
- autoFocus
158
+ minimalistView,
159
+ autoFocus,
160
+ size
151
161
  };
152
162
 
153
163
  return <FieldInternal
@@ -155,7 +165,7 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, CustomProps =
155
165
  componentProps={componentProps}
156
166
  fieldProps={fieldProps}/>;
157
167
  }}
158
- </FieldComponent>
168
+ </Field>
159
169
  );
160
170
 
161
171
  }
@@ -174,26 +184,26 @@ function FieldInternal<T extends CMSType, CustomProps, M extends Record<string,
174
184
  property,
175
185
  includeDescription,
176
186
  underlyingValueHasChanged,
177
- tableMode,
178
187
  partOfArray,
179
- partOfBlock,
188
+ minimalistView,
180
189
  autoFocus,
181
190
  context,
182
- disabled
191
+ disabled,
192
+ size
183
193
  },
184
194
  fieldProps
185
195
  }:
186
196
  {
187
197
  Component: ComponentType<FieldProps<T, any, M>>,
188
198
  componentProps: ResolvedPropertyFieldBindingProps<T, M>,
189
- fieldProps: FormikFieldProps<T>
199
+ fieldProps: FormexFieldProps<T, any>
190
200
  }) {
191
201
 
192
202
  const { plugins } = useCustomizationController();
193
203
 
194
204
  const customFieldProps: any = property.customProps;
195
205
  const value = fieldProps.field.value;
196
- const initialValue = fieldProps.meta.initialValue;
206
+ // const initialValue = fieldProps.meta.initialValue;
197
207
  const error = getIn(fieldProps.form.errors, propertyKey);
198
208
  const touched = getIn(fieldProps.form.touched, propertyKey);
199
209
 
@@ -201,7 +211,14 @@ function FieldInternal<T extends CMSType, CustomProps, M extends Record<string,
201
211
  (fieldProps.form.submitCount > 0 || property.validation?.unique) &&
202
212
  (!Array.isArray(error) || !!error.filter((e: any) => !!e).length);
203
213
 
204
- const WrappedComponent: ComponentType<FieldProps<T, any, M>> | null = useWrappedComponent(context.path, context.collection, propertyKey, property, Component, plugins);
214
+ const WrappedComponent: ComponentType<FieldProps<T, any, M>> | null = useWrappedComponent({
215
+ path: context.path,
216
+ collection: context.collection,
217
+ propertyKey: propertyKey,
218
+ property: property,
219
+ Component: Component,
220
+ plugins: plugins
221
+ });
205
222
  const UsedComponent: ComponentType<FieldProps<T>> = WrappedComponent ?? Component;
206
223
 
207
224
  const isSubmitting = fieldProps.form.isSubmitting;
@@ -219,7 +236,6 @@ function FieldInternal<T extends CMSType, CustomProps, M extends Record<string,
219
236
  const cmsFieldProps: FieldProps<T, CustomProps, M> = {
220
237
  propertyKey,
221
238
  value: value as T,
222
- initialValue,
223
239
  setValue,
224
240
  setFieldValue,
225
241
  error,
@@ -230,12 +246,12 @@ function FieldInternal<T extends CMSType, CustomProps, M extends Record<string,
230
246
  property: property as ResolvedProperty<T>,
231
247
  disabled: disabled ?? false,
232
248
  underlyingValueHasChanged: underlyingValueHasChanged ?? false,
233
- tableMode: tableMode ?? false,
234
249
  partOfArray: partOfArray ?? false,
235
- partOfBlock: partOfBlock ?? false,
250
+ minimalistView: minimalistView ?? false,
236
251
  autoFocus: autoFocus ?? false,
237
252
  customProps: customFieldProps,
238
- context
253
+ context,
254
+ size
239
255
  };
240
256
 
241
257
  return (
@@ -271,13 +287,24 @@ const shouldPropertyReRender = (property: PropertyOrBuilder | ResolvedProperty,
271
287
  }
272
288
  }
273
289
 
274
- function useWrappedComponent<T extends CMSType = CMSType, M extends Record<string, any> = any>(
275
- path: string,
276
- collection: EntityCollection<M>,
290
+ interface UseWrappedComponentParams<T extends CMSType = CMSType, M extends Record<string, any> = any> {
291
+ path?: string,
292
+ collection?: EntityCollection<M>,
277
293
  propertyKey: string,
278
294
  property: ResolvedProperty<T>,
279
295
  Component: ComponentType<FieldProps<T, any, M>>,
280
296
  plugins?: FireCMSPlugin[]
297
+ }
298
+
299
+ function useWrappedComponent<T extends CMSType = CMSType, M extends Record<string, any> = any>(
300
+ {
301
+ path,
302
+ collection,
303
+ propertyKey,
304
+ property,
305
+ Component,
306
+ plugins
307
+ }: UseWrappedComponentParams<T, M>
281
308
  ): ComponentType<FieldProps<T, any, M>> | null {
282
309
 
283
310
  const wrapperRef = useRef<ComponentType<FieldProps<T, any, M>> | null>((() => {