@firecms/core 3.0.0-canary.17 → 3.0.0-canary.171

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 (365) hide show
  1. package/README.md +3 -3
  2. package/dist/app/AppBar.d.ts +12 -0
  3. package/dist/app/Drawer.d.ts +16 -0
  4. package/dist/app/Scaffold.d.ts +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 +23 -6
  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 -13
  12. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
  13. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +22 -6
  14. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +1 -0
  15. package/dist/components/EntityCollectionTable/column_utils.d.ts +1 -2
  16. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +3 -1
  17. package/dist/components/EntityCollectionTable/index.d.ts +1 -1
  18. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +1 -4
  19. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
  20. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
  21. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +16 -2
  22. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
  23. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  24. package/dist/components/EntityPreview.d.ts +7 -6
  25. package/dist/components/ErrorView.d.ts +1 -1
  26. package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
  27. package/dist/components/HomePage/NavigationCardBinding.d.ts +1 -1
  28. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  29. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  30. package/dist/components/ReferenceWidget.d.ts +3 -1
  31. package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
  32. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
  33. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  34. package/dist/components/VirtualTable/VirtualTableProps.d.ts +28 -12
  35. package/dist/components/VirtualTable/types.d.ts +3 -3
  36. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
  37. package/dist/components/common/index.d.ts +2 -1
  38. package/dist/components/common/table_height.d.ts +5 -0
  39. package/dist/components/common/types.d.ts +4 -6
  40. package/dist/components/common/useColumnsIds.d.ts +3 -1
  41. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
  42. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  43. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  44. package/dist/components/index.d.ts +4 -2
  45. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  46. package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
  47. package/dist/core/DefaultDrawer.d.ts +19 -0
  48. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  49. package/dist/core/EntityEditView.d.ts +41 -9
  50. package/dist/core/FireCMS.d.ts +2 -2
  51. package/dist/core/FireCMSRouter.d.ts +4 -0
  52. package/dist/core/NavigationRoutes.d.ts +2 -3
  53. package/dist/core/index.d.ts +4 -4
  54. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  55. package/dist/form/components/ErrorFocus.d.ts +1 -1
  56. package/dist/form/components/FieldHelperText.d.ts +3 -3
  57. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  58. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  59. package/dist/form/components/StorageItemPreview.d.ts +4 -4
  60. package/dist/form/components/index.d.ts +1 -1
  61. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  62. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  63. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  64. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  65. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  66. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  67. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  68. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  69. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  70. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  71. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  72. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -5
  73. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  74. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  75. package/dist/form/index.d.ts +3 -5
  76. package/dist/form/useClearRestoreValue.d.ts +2 -2
  77. package/dist/hooks/data/delete.d.ts +4 -4
  78. package/dist/hooks/data/save.d.ts +4 -5
  79. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  80. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  81. package/dist/hooks/index.d.ts +1 -0
  82. package/dist/hooks/useAuthController.d.ts +1 -1
  83. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  84. package/dist/hooks/useBuildNavigationController.d.ts +3 -5
  85. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  86. package/dist/hooks/useProjectLog.d.ts +8 -2
  87. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  88. package/dist/hooks/useValidateAuthenticator.d.ts +5 -9
  89. package/dist/index.d.ts +1 -0
  90. package/dist/index.es.js +21408 -14205
  91. package/dist/index.es.js.map +1 -1
  92. package/dist/index.umd.js +23883 -588
  93. package/dist/index.umd.js.map +1 -1
  94. package/dist/internal/useBuildDataSource.d.ts +1 -16
  95. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  96. package/dist/preview/PropertyPreviewProps.d.ts +6 -1
  97. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  98. package/dist/preview/components/ReferencePreview.d.ts +3 -2
  99. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  100. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  101. package/dist/preview/util.d.ts +3 -3
  102. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  103. package/dist/routes/FireCMSRoute.d.ts +1 -0
  104. package/dist/routes/HomePageRoute.d.ts +3 -0
  105. package/dist/types/auth.d.ts +8 -10
  106. package/dist/types/collections.d.ts +69 -22
  107. package/dist/types/datasource.d.ts +52 -36
  108. package/dist/types/dialogs_controller.d.ts +7 -3
  109. package/dist/types/entities.d.ts +7 -2
  110. package/dist/types/entity_actions.d.ts +28 -4
  111. package/dist/types/entity_callbacks.d.ts +16 -16
  112. package/dist/types/entity_overrides.d.ts +2 -2
  113. package/dist/types/export_import.d.ts +4 -4
  114. package/dist/types/fields.d.ts +63 -41
  115. package/dist/types/firecms.d.ts +6 -2
  116. package/dist/types/firecms_context.d.ts +1 -1
  117. package/dist/types/index.d.ts +0 -1
  118. package/dist/types/navigation.d.ts +34 -17
  119. package/dist/types/permissions.d.ts +4 -4
  120. package/dist/types/plugins.d.ts +23 -12
  121. package/dist/types/properties.d.ts +34 -21
  122. package/dist/types/property_config.d.ts +0 -2
  123. package/dist/types/side_dialogs_controller.d.ts +10 -0
  124. package/dist/types/side_entity_controller.d.ts +1 -1
  125. package/dist/types/storage.d.ts +86 -3
  126. package/dist/types/user.d.ts +1 -0
  127. package/dist/util/builders.d.ts +2 -2
  128. package/dist/util/entities.d.ts +3 -3
  129. package/dist/util/entity_actions.d.ts +2 -0
  130. package/dist/util/entity_cache.d.ts +23 -0
  131. package/dist/util/icon_list.d.ts +5 -1
  132. package/dist/util/icon_synonyms.d.ts +1 -98
  133. package/dist/util/icons.d.ts +6 -3
  134. package/dist/util/index.d.ts +2 -0
  135. package/dist/util/navigation_from_path.d.ts +5 -1
  136. package/dist/util/navigation_utils.d.ts +14 -3
  137. package/dist/util/objects.d.ts +2 -1
  138. package/dist/util/permissions.d.ts +4 -4
  139. package/dist/util/plurals.d.ts +0 -2
  140. package/dist/util/property_utils.d.ts +3 -3
  141. package/dist/util/resolutions.d.ts +30 -16
  142. package/dist/util/storage.d.ts +23 -2
  143. package/dist/util/useStorageUploadController.d.ts +3 -3
  144. package/package.json +58 -45
  145. package/src/app/AppBar.tsx +18 -0
  146. package/src/app/Drawer.tsx +24 -0
  147. package/src/app/Scaffold.tsx +243 -0
  148. package/src/app/index.ts +4 -0
  149. package/src/app/useApp.tsx +32 -0
  150. package/src/components/ArrayContainer.tsx +126 -40
  151. package/src/components/CircularProgressCenter.tsx +2 -2
  152. package/src/components/ClearFilterSortButton.tsx +41 -0
  153. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
  154. package/src/components/DeleteEntityDialog.tsx +10 -19
  155. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +54 -37
  156. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
  157. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
  158. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -39
  159. package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
  160. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +31 -17
  161. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
  162. package/src/components/EntityCollectionTable/index.tsx +1 -1
  163. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +31 -36
  164. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
  165. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  166. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +84 -77
  167. package/src/components/EntityCollectionView/EntityCollectionView.tsx +206 -112
  168. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  169. package/src/components/EntityCollectionView/useSelectionController.tsx +20 -7
  170. package/src/components/EntityCollectionView/utils.ts +19 -0
  171. package/src/components/EntityPreview.tsx +66 -53
  172. package/src/components/EntityView.tsx +10 -10
  173. package/src/components/ErrorView.tsx +4 -4
  174. package/src/components/HomePage/DefaultHomePage.tsx +26 -19
  175. package/src/components/HomePage/FavouritesView.tsx +6 -11
  176. package/src/components/HomePage/NavigationCard.tsx +4 -4
  177. package/src/components/HomePage/NavigationCardBinding.tsx +5 -10
  178. package/src/components/HomePage/NavigationGroup.tsx +2 -2
  179. package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
  180. package/src/components/NotFoundPage.tsx +2 -2
  181. package/src/components/PropertyConfigBadge.tsx +9 -3
  182. package/src/components/PropertyIdCopyTooltip.tsx +48 -0
  183. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +19 -13
  184. package/src/components/ReferenceWidget.tsx +22 -12
  185. package/src/components/SearchIconsView.tsx +10 -7
  186. package/src/components/SelectableTable/SelectableTable.tsx +27 -12
  187. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
  188. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
  189. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
  190. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
  191. package/src/components/UnsavedChangesDialog.tsx +42 -0
  192. package/src/components/VirtualTable/VirtualTable.tsx +96 -48
  193. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  194. package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
  195. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  196. package/src/components/VirtualTable/VirtualTableProps.tsx +33 -14
  197. package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
  198. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
  199. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +3 -2
  200. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  201. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  202. package/src/components/VirtualTable/types.tsx +2 -3
  203. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +33 -40
  204. package/src/components/common/index.ts +2 -1
  205. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  206. package/src/components/common/types.tsx +4 -6
  207. package/src/components/common/useColumnsIds.tsx +24 -3
  208. package/src/components/common/useDataSourceTableController.tsx +420 -0
  209. package/src/components/common/useDebouncedCallback.tsx +20 -0
  210. package/src/components/common/useScrollRestoration.tsx +68 -0
  211. package/src/components/common/useTableSearchHelper.ts +53 -12
  212. package/src/components/index.tsx +4 -2
  213. package/src/contexts/BreacrumbsContext.tsx +38 -0
  214. package/src/contexts/DialogsProvider.tsx +5 -4
  215. package/src/contexts/SnackbarProvider.tsx +2 -0
  216. package/src/core/DefaultAppBar.tsx +201 -0
  217. package/src/core/DefaultDrawer.tsx +185 -0
  218. package/src/core/DrawerNavigationItem.tsx +66 -0
  219. package/src/core/EntityEditView.tsx +933 -204
  220. package/src/core/EntitySidePanel.tsx +73 -8
  221. package/src/core/FireCMS.tsx +56 -49
  222. package/src/core/FireCMSRouter.tsx +17 -0
  223. package/src/core/NavigationRoutes.tsx +20 -34
  224. package/src/core/SideDialogs.tsx +12 -6
  225. package/src/core/field_configs.tsx +11 -12
  226. package/src/core/index.tsx +6 -5
  227. package/src/form/PropertyFieldBinding.tsx +74 -35
  228. package/src/form/components/CustomIdField.tsx +6 -2
  229. package/src/form/components/FieldHelperText.tsx +4 -4
  230. package/src/form/components/LabelWithIcon.tsx +27 -19
  231. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  232. package/src/form/components/StorageItemPreview.tsx +22 -12
  233. package/src/form/components/StorageUploadProgress.tsx +3 -4
  234. package/src/form/components/index.tsx +1 -1
  235. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +29 -17
  236. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +45 -35
  237. package/src/form/field_bindings/BlockFieldBinding.tsx +53 -33
  238. package/src/form/field_bindings/DateTimeFieldBinding.tsx +17 -14
  239. package/src/form/field_bindings/KeyValueFieldBinding.tsx +60 -51
  240. package/src/form/field_bindings/MapFieldBinding.tsx +67 -48
  241. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
  242. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +25 -20
  243. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
  244. package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
  245. package/src/form/field_bindings/RepeatFieldBinding.tsx +52 -34
  246. package/src/form/field_bindings/SelectFieldBinding.tsx +22 -14
  247. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +37 -47
  248. package/src/form/field_bindings/SwitchFieldBinding.tsx +28 -24
  249. package/src/form/field_bindings/TextFieldBinding.tsx +27 -24
  250. package/src/form/index.tsx +4 -9
  251. package/src/form/useClearRestoreValue.tsx +2 -2
  252. package/src/form/validation.ts +1 -17
  253. package/src/hooks/data/delete.ts +6 -5
  254. package/src/hooks/data/save.ts +13 -9
  255. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  256. package/src/hooks/data/useDataSource.tsx +11 -3
  257. package/src/hooks/data/useEntityFetch.tsx +10 -6
  258. package/src/hooks/index.tsx +1 -0
  259. package/src/hooks/useAuthController.tsx +1 -1
  260. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  261. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
  262. package/src/hooks/useBuildModeController.tsx +11 -5
  263. package/src/hooks/useBuildNavigationController.tsx +153 -55
  264. package/src/hooks/useFireCMSContext.tsx +5 -5
  265. package/src/hooks/useLargeLayout.tsx +0 -35
  266. package/src/hooks/useProjectLog.tsx +32 -10
  267. package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
  268. package/src/hooks/useValidateAuthenticator.tsx +21 -41
  269. package/src/index.ts +1 -0
  270. package/src/internal/useBuildDataSource.ts +72 -82
  271. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  272. package/src/internal/useBuildSideEntityController.tsx +230 -70
  273. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  274. package/src/preview/PropertyPreview.tsx +13 -20
  275. package/src/preview/PropertyPreviewProps.tsx +7 -1
  276. package/src/preview/components/BooleanPreview.tsx +2 -2
  277. package/src/preview/components/EmptyValue.tsx +1 -1
  278. package/src/preview/components/EnumValuesChip.tsx +2 -2
  279. package/src/preview/components/ImagePreview.tsx +25 -36
  280. package/src/preview/components/ReferencePreview.tsx +23 -34
  281. package/src/preview/components/StorageThumbnail.tsx +5 -1
  282. package/src/preview/components/UrlComponentPreview.tsx +44 -11
  283. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
  284. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
  285. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
  286. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
  287. package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
  288. package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
  289. package/src/preview/property_previews/MapPropertyPreview.tsx +9 -9
  290. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
  291. package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
  292. package/src/preview/util.ts +10 -10
  293. package/src/routes/CustomCMSRoute.tsx +21 -0
  294. package/src/routes/FireCMSRoute.tsx +230 -0
  295. package/src/routes/HomePageRoute.tsx +17 -0
  296. package/src/types/auth.tsx +9 -13
  297. package/src/types/collections.ts +79 -24
  298. package/src/types/customization_controller.tsx +0 -1
  299. package/src/types/datasource.ts +61 -43
  300. package/src/types/dialogs_controller.tsx +7 -3
  301. package/src/types/entities.ts +12 -2
  302. package/src/types/entity_actions.tsx +32 -7
  303. package/src/types/entity_callbacks.ts +18 -18
  304. package/src/types/entity_overrides.tsx +2 -2
  305. package/src/types/export_import.ts +4 -4
  306. package/src/types/fields.tsx +69 -45
  307. package/src/types/firecms.tsx +7 -2
  308. package/src/types/firecms_context.tsx +1 -1
  309. package/src/types/index.ts +0 -1
  310. package/src/types/navigation.ts +40 -21
  311. package/src/types/permissions.ts +5 -5
  312. package/src/types/plugins.tsx +25 -14
  313. package/src/types/properties.ts +39 -22
  314. package/src/types/property_config.tsx +0 -2
  315. package/src/types/side_dialogs_controller.tsx +13 -0
  316. package/src/types/side_entity_controller.tsx +1 -1
  317. package/src/types/storage.ts +94 -3
  318. package/src/types/user.ts +2 -0
  319. package/src/util/builders.ts +6 -6
  320. package/src/util/entities.ts +9 -6
  321. package/src/util/entity_actions.ts +28 -0
  322. package/src/util/entity_cache.ts +196 -0
  323. package/src/util/enums.ts +1 -1
  324. package/src/util/icon_list.ts +16 -10
  325. package/src/util/icon_synonyms.ts +3 -100
  326. package/src/util/icons.tsx +17 -7
  327. package/src/util/index.ts +2 -0
  328. package/src/util/make_properties_editable.ts +13 -5
  329. package/src/util/navigation_from_path.ts +10 -2
  330. package/src/util/navigation_utils.ts +59 -7
  331. package/src/util/objects.ts +45 -28
  332. package/src/util/parent_references_from_path.ts +3 -3
  333. package/src/util/permissions.ts +9 -8
  334. package/src/util/plurals.ts +0 -2
  335. package/src/util/property_utils.tsx +11 -4
  336. package/src/util/references.ts +11 -2
  337. package/src/util/resolutions.ts +79 -46
  338. package/src/util/storage.ts +79 -21
  339. package/src/util/strings.ts +2 -2
  340. package/src/util/useStorageUploadController.tsx +34 -8
  341. package/src/util/useTraceUpdate.tsx +1 -0
  342. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  343. package/dist/components/VirtualTable/common.d.ts +0 -2
  344. package/dist/core/Drawer.d.ts +0 -23
  345. package/dist/core/Scaffold.d.ts +0 -55
  346. package/dist/core/SideEntityView.d.ts +0 -7
  347. package/dist/form/EntityForm.d.ts +0 -77
  348. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  349. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  350. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  351. package/dist/internal/useLocaleConfig.d.ts +0 -1
  352. package/dist/types/appcheck.d.ts +0 -26
  353. package/src/components/FireCMSAppBar.tsx +0 -165
  354. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
  355. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
  356. package/src/core/Drawer.tsx +0 -191
  357. package/src/core/Scaffold.tsx +0 -281
  358. package/src/core/SideEntityView.tsx +0 -38
  359. package/src/form/EntityForm.tsx +0 -728
  360. package/src/form/components/FormikArrayContainer.tsx +0 -44
  361. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  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/src/util/{common.tsx → common.ts} +0 -0
@@ -1,12 +1,12 @@
1
1
  import React, { useCallback, useMemo } from "react";
2
2
  import { Entity, EntityCollection, EntityReference, FieldProps, ResolvedProperty } from "../../types";
3
3
  import { ReferencePreview } from "../../preview";
4
- import { FieldHelperText, FormikArrayContainer, LabelWithIcon } from "../components";
5
- import { ErrorView } from "../../components";
4
+ import { FieldHelperText, LabelWithIconAndTooltip } from "../components";
5
+ import { ArrayContainer, ArrayEntryParams, ErrorView } from "../../components";
6
6
  import { getIconForProperty, getReferenceFrom } from "../../util";
7
7
 
8
8
  import { useNavigationController, useReferenceDialog } from "../../hooks";
9
- import { Button, cn, ExpandablePanel, fieldBackgroundMixin } from "@firecms/ui";
9
+ import { Button, cls, ExpandablePanel, fieldBackgroundMixin, Typography } from "@firecms/ui";
10
10
  import { useClearRestoreValue } from "../useClearRestoreValue";
11
11
 
12
12
  type ArrayOfReferencesFieldProps = FieldProps<EntityReference[]>;
@@ -25,7 +25,7 @@ export function ArrayOfReferencesFieldBinding({
25
25
  showError,
26
26
  disabled,
27
27
  isSubmitting,
28
- tableMode,
28
+ minimalistView,
29
29
  property,
30
30
  includeDescription,
31
31
  setValue,
@@ -56,7 +56,6 @@ export function ArrayOfReferencesFieldBinding({
56
56
  }
57
57
 
58
58
  const onMultipleEntitiesSelected = useCallback((entities: Entity<any>[]) => {
59
- console.debug("onMultipleEntitiesSelected", entities);
60
59
  setValue(entities.map(e => getReferenceFrom(e)));
61
60
  }, [setValue]);
62
61
 
@@ -70,34 +69,44 @@ export function ArrayOfReferencesFieldBinding({
70
69
  }
71
70
  );
72
71
 
73
- const onEntryClick = useCallback((e: React.SyntheticEvent) => {
72
+ const onEntryClick = (e: React.SyntheticEvent) => {
74
73
  e.preventDefault();
75
74
  referenceDialogController.open();
76
- }, [referenceDialogController]);
77
-
78
- const buildEntry = useCallback((index: number, internalId: number) => {
75
+ };
76
+
77
+ const buildEntry = useCallback(({
78
+ index,
79
+ internalId,
80
+ storedProps,
81
+ storeProps
82
+ }: ArrayEntryParams) => {
79
83
  const entryValue = value && value.length > index ? value[index] : undefined;
80
84
  if (!entryValue)
81
85
  return <div>Internal ERROR</div>;
82
86
  return (
83
- <ReferencePreview
84
- key={internalId}
85
- disabled={!ofProperty.path}
86
- previewProperties={ofProperty.previewProperties}
87
- size={"medium"}
88
- onClick={onEntryClick}
89
- hover={!disabled}
90
- reference={entryValue}
91
- />
87
+ <ReferencePreview
88
+ key={internalId}
89
+ disabled={!ofProperty.path}
90
+ previewProperties={ofProperty.previewProperties}
91
+ size={"medium"}
92
+ onClick={onEntryClick}
93
+ hover={!disabled}
94
+ reference={entryValue}
95
+ includeId={ofProperty.includeId}
96
+ includeEntityLink={ofProperty.includeEntityLink}
97
+ />
92
98
  );
93
99
  }, [ofProperty.path, ofProperty.previewProperties, value]);
94
100
 
95
- const title = (
96
- <LabelWithIcon icon={getIconForProperty(property, "small")}
97
- required={property.validation?.required}
98
- title={property.name}
99
- className={"text-text-secondary dark:text-text-secondary-dark"}/>
100
- );
101
+ const title = (<>
102
+ <LabelWithIconAndTooltip
103
+ propertyKey={propertyKey}
104
+ icon={getIconForProperty(property, "small")}
105
+ required={property.validation?.required}
106
+ title={property.name}
107
+ className={"flex flex-grow text-text-secondary dark:text-text-secondary-dark"}/>
108
+ {Array.isArray(value) && <Typography variant={"caption"} className={"px-4"}>({value.length})</Typography>}
109
+ </>);
101
110
 
102
111
  const body = <>
103
112
  {!collection && <ErrorView
@@ -105,17 +114,18 @@ export function ArrayOfReferencesFieldBinding({
105
114
 
106
115
  {collection && <div className={"group"}>
107
116
 
108
- <FormikArrayContainer value={value}
109
- addLabel={property.name ? "Add reference to " + property.name : "Add reference"}
110
- name={propertyKey}
111
- buildEntry={buildEntry}
112
- disabled={isSubmitting}
113
- setFieldValue={setFieldValue}
114
- newDefaultEntry={property.of.defaultValue}/>
117
+ <ArrayContainer droppableId={propertyKey}
118
+ value={value}
119
+ disabled={isSubmitting}
120
+ buildEntry={buildEntry}
121
+ addLabel={property.name ? "Add reference to " + property.name : "Add reference"}
122
+ newDefaultEntry={property.of.defaultValue}
123
+ onValueChange={(value) => setFieldValue(propertyKey, value)}
124
+ />
115
125
 
116
126
  <Button
117
127
  className="my-4 justify-center text-left"
118
- variant="outlined"
128
+ variant="text"
119
129
  color="primary"
120
130
  disabled={isSubmitting}
121
131
  onClick={onEntryClick}>
@@ -127,16 +137,16 @@ export function ArrayOfReferencesFieldBinding({
127
137
  return (
128
138
  <>
129
139
 
130
- {!tableMode &&
140
+ {!minimalistView &&
131
141
  <ExpandablePanel
132
142
  titleClassName={fieldBackgroundMixin}
133
- className={cn("px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2", fieldBackgroundMixin)}
143
+ innerClassName={cls("px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2", fieldBackgroundMixin)}
134
144
  initiallyExpanded={expanded}
135
145
  title={title}>
136
146
  {body}
137
147
  </ExpandablePanel>}
138
148
 
139
- {tableMode && body}
149
+ {minimalistView && body}
140
150
 
141
151
  <FieldHelperText includeDescription={includeDescription}
142
152
  showError={showError}
@@ -2,14 +2,15 @@ import React, { useCallback, useEffect, useState } from "react";
2
2
 
3
3
  import { Field, useFormex } from "@firecms/formex";
4
4
 
5
- import { FieldHelperText, FormikArrayContainer, LabelWithIcon } from "../components";
5
+ import { FieldHelperText, LabelWithIconAndTooltip } from "../components";
6
6
  import { PropertyFieldBinding } from "../PropertyFieldBinding";
7
7
  import { EnumValuesChip } from "../../preview";
8
8
  import { FieldProps, FormContext, PropertyFieldBindingProps, PropertyOrBuilder } from "../../types";
9
- import { getDefaultValueFor, getIconForProperty, } from "../../util";
9
+ import { getDefaultValueFor, getIconForProperty, mergeDeep, } from "../../util";
10
10
  import { DEFAULT_ONE_OF_TYPE, DEFAULT_ONE_OF_VALUE } from "../../util/common";
11
- import { cn, ExpandablePanel, paperMixin, Select, SelectItem, Typography } from "@firecms/ui";
11
+ import { cls, ExpandablePanel, paperMixin, Select, SelectItem, Typography } from "@firecms/ui";
12
12
  import { useClearRestoreValue } from "../useClearRestoreValue";
13
+ import { ArrayContainer, ArrayEntryParams } from "../../components";
13
14
 
14
15
  /**
15
16
  * If the `oneOf` property is specified, this fields render each array entry as
@@ -27,7 +28,7 @@ export function BlockFieldBinding<T extends Array<any>>({
27
28
  isSubmitting,
28
29
  setValue,
29
30
  setFieldValue,
30
- tableMode,
31
+ minimalistView,
31
32
  property,
32
33
  includeDescription,
33
34
  underlyingValueHasChanged,
@@ -47,9 +48,15 @@ export function BlockFieldBinding<T extends Array<any>>({
47
48
 
48
49
  const [lastAddedId, setLastAddedId] = useState<number | undefined>();
49
50
 
50
- const buildEntry = useCallback((index: number, internalId: number) => {
51
+ const buildEntry = ({
52
+ index,
53
+ internalId,
54
+ storedProps,
55
+ storeProps
56
+ }: ArrayEntryParams) => {
57
+
51
58
  return <BlockEntry
52
- key={`array_one_of_${index}`}
59
+ key={`array_one_of_${internalId}`}
53
60
  name={`${propertyKey}.${index}`}
54
61
  index={index}
55
62
  value={value[index]}
@@ -57,42 +64,47 @@ export function BlockFieldBinding<T extends Array<any>>({
57
64
  valueField={property.oneOf!.valueField ?? DEFAULT_ONE_OF_VALUE}
58
65
  properties={property.oneOf!.properties}
59
66
  autoFocus={internalId === lastAddedId}
60
- context={context}/>;
61
- }, [context, lastAddedId, property.oneOf, propertyKey, value]);
67
+ context={context}
68
+ storeProps={storeProps}
69
+ storedProps={storedProps}/>;
70
+ };
62
71
 
63
72
  const title = (
64
- <LabelWithIcon icon={getIconForProperty(property, "small")}
65
- required={property.validation?.required}
66
- title={property.name}
67
- className={"text-text-secondary dark:text-text-secondary-dark"}/>
73
+ <LabelWithIconAndTooltip
74
+ propertyKey={propertyKey}
75
+ icon={getIconForProperty(property, "small")}
76
+ required={property.validation?.required}
77
+ title={property.name}
78
+ className={"text-text-secondary dark:text-text-secondary-dark"}/>
68
79
  );
69
80
 
70
81
  const firstOneOfKey = Object.keys(property.oneOf.properties)[0];
71
- const body = <FormikArrayContainer value={value}
72
- name={propertyKey}
73
- addLabel={property.name ? "Add entry to " + property.name : "Add entry"}
74
- buildEntry={buildEntry}
75
- onInternalIdAdded={setLastAddedId}
76
- disabled={isSubmitting || Boolean(property.disabled)}
77
- includeAddButton={!property.disabled}
78
- setFieldValue={setFieldValue}
79
- newDefaultEntry={{
80
- [property.oneOf!.typeField ?? DEFAULT_ONE_OF_TYPE]: firstOneOfKey,
81
- [property.oneOf!.valueField ?? DEFAULT_ONE_OF_VALUE]: getDefaultValueFor(property.oneOf.properties[firstOneOfKey])
82
- }}/>;
82
+ const body = <ArrayContainer value={value}
83
+ className={"flex flex-col gap-3"}
84
+ droppableId={propertyKey}
85
+ addLabel={property.name ? "Add entry to " + property.name : "Add entry"}
86
+ buildEntry={buildEntry}
87
+ onInternalIdAdded={setLastAddedId}
88
+ disabled={isSubmitting || Boolean(property.disabled)}
89
+ includeAddButton={!property.disabled}
90
+ onValueChange={(value) => setFieldValue(propertyKey, value)}
91
+ newDefaultEntry={{
92
+ [property.oneOf!.typeField ?? DEFAULT_ONE_OF_TYPE]: firstOneOfKey,
93
+ [property.oneOf!.valueField ?? DEFAULT_ONE_OF_VALUE]: getDefaultValueFor(property.oneOf.properties[firstOneOfKey])
94
+ }}/>;
83
95
  return (
84
96
 
85
97
  <>
86
98
 
87
- {!tableMode &&
99
+ {!minimalistView &&
88
100
  <ExpandablePanel
89
- className={"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2"}
101
+ innerClassName={"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2"}
90
102
  initiallyExpanded={expanded}
91
103
  title={title}>
92
104
  {body}
93
105
  </ExpandablePanel>}
94
106
 
95
- {tableMode && body}
107
+ {minimalistView && body}
96
108
 
97
109
  <FieldHelperText includeDescription={includeDescription}
98
110
  showError={showError}
@@ -131,6 +143,9 @@ interface BlockEntryProps {
131
143
  */
132
144
  context: FormContext<any>;
133
145
 
146
+ storedProps?: object,
147
+ storeProps: (props: object) => void
148
+
134
149
  }
135
150
 
136
151
  function BlockEntry({
@@ -141,7 +156,9 @@ function BlockEntry({
141
156
  valueField,
142
157
  properties,
143
158
  autoFocus,
144
- context
159
+ context,
160
+ storedProps,
161
+ storeProps
145
162
  }: BlockEntryProps) {
146
163
 
147
164
  const type = value && value[typeField];
@@ -161,7 +178,9 @@ function BlockEntry({
161
178
  }
162
179
  }, [type]);
163
180
 
164
- const property = typeInternal ? properties[typeInternal] : undefined;
181
+ const propertyInternal = typeInternal ? properties[typeInternal] : undefined;
182
+
183
+ const property = storedProps && typeof propertyInternal === "object" ? mergeDeep(propertyInternal, storedProps) : propertyInternal;
165
184
 
166
185
  const enumValuesConfigs = Object.entries(properties)
167
186
  .map(([key, property]) => ({
@@ -179,8 +198,8 @@ function BlockEntry({
179
198
  context,
180
199
  autoFocus,
181
200
  partOfArray: false,
182
- partOfBlock: true,
183
- tableMode: false
201
+ minimalistView: true,
202
+ onPropertyChange: storeProps,
184
203
  }
185
204
  : undefined;
186
205
 
@@ -193,7 +212,7 @@ function BlockEntry({
193
212
  };
194
213
 
195
214
  return (
196
- <div className={cn(paperMixin, "bg-transparent p-4 my-4 py-8")}>
215
+ <div className={cls(paperMixin, "bg-transparent p-2")}>
197
216
 
198
217
  <Field
199
218
  name={typeFieldName}
@@ -206,7 +225,8 @@ function BlockEntry({
206
225
  className="mb-2"
207
226
  placeholder={<Typography variant={"caption"}
208
227
  className={"px-4 py-2 font-medium"}>Type</Typography>}
209
- size={"small"}
228
+ size={"medium"}
229
+ fullWidth={true}
210
230
  position={"item-aligned"}
211
231
  value={value1}
212
232
  renderValue={(enumKey: any) =>
@@ -7,6 +7,7 @@ import { useCustomizationController } from "../../hooks";
7
7
  import { getIconForProperty } from "../../util";
8
8
  import { DateTimeField } from "@firecms/ui";
9
9
  import { useClearRestoreValue } from "../useClearRestoreValue";
10
+ import { PropertyIdCopyTooltip } from "../../components";
10
11
 
11
12
  type DateTimeFieldProps = FieldProps<Date>;
12
13
 
@@ -41,20 +42,22 @@ export function DateTimeFieldBinding({
41
42
 
42
43
  return (
43
44
  <>
44
- <DateTimeField
45
- value={internalValue}
46
- onChange={(dateValue) => setValue(dateValue)}
47
- size={"medium"}
48
- mode={property.mode}
49
- clearable={property.clearable}
50
- locale={locale}
51
- error={showError}
52
- label={<LabelWithIcon
53
- icon={getIconForProperty(property, "small")}
54
- required={property.validation?.required}
55
- className={showError ? "text-red-500 dark:text-red-500" : "text-text-secondary dark:text-text-secondary-dark"}
56
- title={property.name}/>}
57
- />
45
+ <PropertyIdCopyTooltip propertyKey={propertyKey}>
46
+ <DateTimeField
47
+ value={internalValue}
48
+ onChange={(dateValue) => setValue(dateValue)}
49
+ size={"large"}
50
+ mode={property.mode}
51
+ clearable={property.clearable}
52
+ locale={locale}
53
+ error={showError}
54
+ label={<LabelWithIcon
55
+ icon={getIconForProperty(property, "small")}
56
+ required={property.validation?.required}
57
+ className={showError ? "text-red-500 dark:text-red-500" : "text-text-secondary dark:text-text-secondary-dark"}
58
+ title={property.name}/>}
59
+ />
60
+ </PropertyIdCopyTooltip>
58
61
 
59
62
  <FieldHelperText includeDescription={includeDescription}
60
63
  showError={showError}
@@ -2,13 +2,13 @@ import React, { useEffect, useState } from "react";
2
2
  import { DataType, FieldProps, GeoPoint } from "../../types";
3
3
 
4
4
  import { ArrayContainer } from "../../components";
5
- import { FieldHelperText, LabelWithIcon } from "../components";
5
+ import { FieldHelperText, LabelWithIconAndTooltip } from "../components";
6
6
  import {
7
7
  AddIcon,
8
8
  ArrowDropDownIcon,
9
9
  BooleanSwitchWithLabel,
10
10
  Button,
11
- cn,
11
+ cls,
12
12
  DateTimeField,
13
13
  defaultBorderMixin,
14
14
  ExpandablePanel,
@@ -21,6 +21,7 @@ import {
21
21
  } from "@firecms/ui";
22
22
  import { getDefaultValueForDataType, getIconForProperty } from "../../util";
23
23
  import { useCustomizationController } from "../../hooks";
24
+ import { getIn } from "@firecms/formex";
24
25
 
25
26
  type MapEditViewRowState = [number, {
26
27
  key: string,
@@ -40,7 +41,7 @@ export function KeyValueFieldBinding({
40
41
  disabled,
41
42
  property,
42
43
  setValue,
43
- tableMode,
44
+ minimalistView,
44
45
  includeDescription,
45
46
  underlyingValueHasChanged,
46
47
  autoFocus,
@@ -52,12 +53,17 @@ export function KeyValueFieldBinding({
52
53
  if (!property.keyValue) {
53
54
  throw Error(`Your property ${propertyKey} needs to have the 'keyValue' prop in order to use this field binding`);
54
55
  }
56
+
57
+ const initialValues = getIn(context.formex.initialValues, propertyKey);
58
+
55
59
  const mapFormView = <MapEditView value={value}
56
60
  setValue={setValue}
57
61
  disabled={disabled}
62
+ initialValue={initialValues}
58
63
  fieldName={property.name ?? propertyKey}/>;
59
64
 
60
- const title = <LabelWithIcon
65
+ const title = <LabelWithIconAndTooltip
66
+ propertyKey={propertyKey}
61
67
  icon={getIconForProperty(property, "small")}
62
68
  required={property.validation?.required}
63
69
  title={property.name}
@@ -66,11 +72,11 @@ export function KeyValueFieldBinding({
66
72
  return (
67
73
  <>
68
74
 
69
- {!tableMode && <ExpandablePanel initiallyExpanded={expanded}
70
- title={title}
71
- className={"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2"}>{mapFormView}</ExpandablePanel>}
75
+ {!minimalistView && <ExpandablePanel initiallyExpanded={expanded}
76
+ title={title}
77
+ innerClassName={"px-2 md:px-4 pb-2 md:pb-4 pt-1 md:pt-2"}>{mapFormView}</ExpandablePanel>}
72
78
 
73
- {tableMode && mapFormView}
79
+ {minimalistView && mapFormView}
74
80
 
75
81
  <FieldHelperText includeDescription={includeDescription}
76
82
  showError={showError}
@@ -84,6 +90,7 @@ export function KeyValueFieldBinding({
84
90
 
85
91
  interface MapEditViewParams<T extends Record<string, any>> {
86
92
  value?: T;
93
+ initialValue?: T;
87
94
  setValue: (value: (T | null)) => void;
88
95
  fieldName?: string,
89
96
  disabled?: boolean
@@ -91,14 +98,15 @@ interface MapEditViewParams<T extends Record<string, any>> {
91
98
 
92
99
  function MapEditView<T extends Record<string, any>>({
93
100
  value,
101
+ initialValue,
94
102
  setValue,
95
103
  fieldName,
96
104
  disabled
97
105
  }: MapEditViewParams<T>) {
98
106
  const [internalState, setInternalState] = React.useState<MapEditViewRowState[]>(
99
- Object.keys(value ?? {}).map((key) => [getRandomId(), {
107
+ Object.keys(initialValue ?? {}).map((key) => [getRandomId(), {
100
108
  key,
101
- dataType: getDataType(value?.[key]) ?? "string"
109
+ dataType: getDataType(initialValue?.[key]) ?? "string"
102
110
  }])
103
111
  );
104
112
 
@@ -121,8 +129,6 @@ function MapEditView<T extends Record<string, any>>({
121
129
  setInternalState(newRowIds);
122
130
  }, [value]);
123
131
 
124
- const originalValue = React.useRef<T>(value ?? {} as T);
125
-
126
132
  const updateDataType = (rowId: number, dataType: DataType) => {
127
133
  if (!rowId) {
128
134
  console.warn("No key selected for data type update");
@@ -168,7 +174,7 @@ function MapEditView<T extends Record<string, any>>({
168
174
  }
169
175
 
170
176
  const newValue = { ...(value ?? {}) } as T;
171
- if (typeof originalValue.current === "object" && fieldKey in originalValue.current) {
177
+ if (typeof initialValue === "object" && fieldKey in initialValue) {
172
178
  // @ts-ignore
173
179
  newValue[fieldKey] = undefined; // set to undefined to remove from the object, the datasource will remove it from the backend
174
180
  } else {
@@ -186,7 +192,7 @@ function MapEditView<T extends Record<string, any>>({
186
192
  value={value ?? {} as T}
187
193
  onDeleteClick={() => {
188
194
  const newValue = { ...(value ?? {}) as T };
189
- if (originalValue.current && fieldKey in originalValue.current) {
195
+ if (initialValue && fieldKey in initialValue) {
190
196
  // @ts-ignore
191
197
  newValue[fieldKey] = undefined;
192
198
  } else {
@@ -264,7 +270,7 @@ function MapKeyValueRow<T extends Record<string, any>>({
264
270
  placeholder={"value"}
265
271
  value={entryValue}
266
272
  type={dataType === "number" ? "number" : "text"}
267
- size={"small"}
273
+ size={"medium"}
268
274
  disabled={disabled || !fieldKey}
269
275
  onChange={(event) => {
270
276
  if (dataType === "number") {
@@ -294,7 +300,7 @@ function MapKeyValueRow<T extends Record<string, any>>({
294
300
  }}/>;
295
301
  } else if (dataType === "date") {
296
302
  return <DateTimeField value={entryValue}
297
- size={"small"}
303
+ size={"medium"}
298
304
  locale={locale}
299
305
  disabled={disabled || !fieldKey}
300
306
  onChange={(date) => {
@@ -305,7 +311,7 @@ function MapKeyValueRow<T extends Record<string, any>>({
305
311
  }}/>;
306
312
  } else if (dataType === "boolean") {
307
313
  return <BooleanSwitchWithLabel value={entryValue}
308
- size={"small"}
314
+ size={"medium"}
309
315
  position={"start"}
310
316
  disabled={disabled || !fieldKey}
311
317
  onValueChange={(newValue) => {
@@ -316,7 +322,7 @@ function MapKeyValueRow<T extends Record<string, any>>({
316
322
  }}/>;
317
323
  } else if (dataType === "array") {
318
324
  return <div
319
- className={cn(defaultBorderMixin, "ml-2 pl-2 border-l border-solid")}>
325
+ className={cls(defaultBorderMixin, "ml-2 pl-2 border-l border-solid")}>
320
326
  <ArrayContainer value={entryValue}
321
327
  newDefaultEntry={""}
322
328
  droppableId={rowId.toString()}
@@ -330,7 +336,10 @@ function MapKeyValueRow<T extends Record<string, any>>({
330
336
  [fieldKey]: newValue
331
337
  });
332
338
  }}
333
- buildEntry={(index, internalId) => {
339
+ buildEntry={({
340
+ index,
341
+ internalId
342
+ }) => {
334
343
  return <ArrayKeyValueRow
335
344
  index={index}
336
345
  id={internalId}
@@ -349,7 +358,7 @@ function MapKeyValueRow<T extends Record<string, any>>({
349
358
  </div>;
350
359
  } else if (dataType === "map") {
351
360
  return <div
352
- className={cn(defaultBorderMixin, "ml-2 pl-2 border-l border-solid")}>
361
+ className={cls(defaultBorderMixin, "ml-2 pl-2 border-l border-solid")}>
353
362
  <MapEditView value={entryValue}
354
363
  fieldName={fieldKey}
355
364
  setValue={(updatedValue) => {
@@ -375,12 +384,12 @@ function MapKeyValueRow<T extends Record<string, any>>({
375
384
  <Typography key={rowId.toString()}
376
385
  component={"div"}
377
386
  className="font-mono flex flex-row gap-1">
378
- <div className="w-[200px] max-w-[25%]">
387
+ <div className="w-[300px] max-w-[30%]">
379
388
  <TextField
380
389
  value={fieldKey}
381
390
  placeholder={"key"}
382
391
  disabled={disabled || (entryValue !== undefined && entryValue !== null && entryValue !== "")}
383
- size={"small"}
392
+ size={"medium"}
384
393
  onChange={(event) => {
385
394
  onFieldKeyChange(event.target.value);
386
395
  }}/>
@@ -389,32 +398,32 @@ function MapKeyValueRow<T extends Record<string, any>>({
389
398
  <div className="flex-grow">
390
399
  {(dataType !== "map" && dataType !== "array") && buildInput(entryValue, fieldKey, dataType)}
391
400
  </div>
392
- <Menu
393
- trigger={<IconButton size={"small"}
394
- className="h-7 w-7">
395
- <ArrowDropDownIcon/>
396
- </IconButton>}
397
- >
398
- <MenuItem dense
399
- onClick={() => doUpdateDataType("string")}>string</MenuItem>
400
- <MenuItem dense
401
- onClick={() => doUpdateDataType("number")}>number</MenuItem>
402
- <MenuItem dense
403
- onClick={() => doUpdateDataType("boolean")}>boolean</MenuItem>
404
- <MenuItem dense
405
- onClick={() => doUpdateDataType("date")}>date</MenuItem>
406
- <MenuItem dense
407
- onClick={() => doUpdateDataType("map")}>map</MenuItem>
408
- <MenuItem dense
409
- onClick={() => doUpdateDataType("array")}>array</MenuItem>
410
- </Menu>
411
-
412
- <IconButton aria-label="delete"
413
- size={"small"}
414
- onClick={onDeleteClick}
415
- className="h-7 w-7">
416
- <RemoveIcon size={"small"}/>
417
- </IconButton>
401
+ <div className={"flex flex-col"}>
402
+ <Menu
403
+ trigger={<IconButton size={"smallest"}>
404
+ <ArrowDropDownIcon size={"small"}/>
405
+ </IconButton>}
406
+ >
407
+ <MenuItem dense
408
+ onClick={() => doUpdateDataType("string")}>string</MenuItem>
409
+ <MenuItem dense
410
+ onClick={() => doUpdateDataType("number")}>number</MenuItem>
411
+ <MenuItem dense
412
+ onClick={() => doUpdateDataType("boolean")}>boolean</MenuItem>
413
+ <MenuItem dense
414
+ onClick={() => doUpdateDataType("date")}>date</MenuItem>
415
+ <MenuItem dense
416
+ onClick={() => doUpdateDataType("map")}>map</MenuItem>
417
+ <MenuItem dense
418
+ onClick={() => doUpdateDataType("array")}>array</MenuItem>
419
+ </Menu>
420
+
421
+ <IconButton aria-label="delete"
422
+ size={"smallest"}
423
+ onClick={onDeleteClick}>
424
+ <RemoveIcon size={"smallest"}/>
425
+ </IconButton>
426
+ </div>
418
427
  </Typography>
419
428
 
420
429
  {(dataType === "map" || dataType === "array") && buildInput(entryValue, fieldKey, dataType)}
@@ -448,7 +457,7 @@ function ArrayKeyValueRow<T>({
448
457
  if (dataType === "string" || dataType === "number") {
449
458
  return <TextField value={entryValue}
450
459
  type={dataType === "number" ? "number" : "text"}
451
- size={"small"}
460
+ size={"medium"}
452
461
  onChange={(event) => {
453
462
  if (dataType === "number") {
454
463
  const numberValue = event.target.value ? parseFloat(event.target.value) : undefined;
@@ -465,7 +474,7 @@ function ArrayKeyValueRow<T>({
465
474
  }}/>;
466
475
  } else if (dataType === "date") {
467
476
  return <DateTimeField value={entryValue}
468
- size={"small"}
477
+ size={"medium"}
469
478
  locale={locale}
470
479
  onChange={(date) => {
471
480
  setValue(date as T);
@@ -482,7 +491,7 @@ function ArrayKeyValueRow<T>({
482
491
  Arrays of arrays are not supported.
483
492
  </Typography>;
484
493
  } else if (dataType === "map") {
485
- return <div className={cn(defaultBorderMixin, "ml-2 pl-2 border-l border-solid")}>
494
+ return <div className={cls(defaultBorderMixin, "ml-2 pl-2 border-l border-solid")}>
486
495
  <MapEditView value={entryValue}
487
496
  setValue={(updatedValue) => {
488
497
  setValue(updatedValue);