@firecms/core 3.0.0-canary.16 → 3.0.0-canary.161

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 (329) 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 +19 -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 +11 -12
  12. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +1 -1
  13. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +7 -5
  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/internal/CollectionTableToolbar.d.ts +1 -4
  18. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +2 -2
  19. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +7 -4
  20. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +12 -2
  21. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +11 -0
  22. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  23. package/dist/components/EntityPreview.d.ts +7 -6
  24. package/dist/components/ErrorView.d.ts +1 -1
  25. package/dist/components/HomePage/DefaultHomePage.d.ts +1 -1
  26. package/dist/components/HomePage/NavigationCardBinding.d.ts +1 -1
  27. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  28. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  29. package/dist/components/ReferenceWidget.d.ts +3 -1
  30. package/dist/components/SelectableTable/SelectableTable.d.ts +1 -1
  31. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
  32. package/dist/components/VirtualTable/VirtualTableProps.d.ts +15 -12
  33. package/dist/components/VirtualTable/types.d.ts +3 -3
  34. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -1
  35. package/dist/components/common/index.d.ts +1 -0
  36. package/dist/components/common/table_height.d.ts +5 -0
  37. package/dist/components/common/types.d.ts +4 -6
  38. package/dist/components/common/useColumnsIds.d.ts +2 -1
  39. package/dist/components/common/useDataSourceEntityCollectionTableController.d.ts +4 -1
  40. package/dist/components/index.d.ts +4 -2
  41. package/dist/{components/FireCMSAppBar.d.ts → core/DefaultAppBar.d.ts} +6 -9
  42. package/dist/core/DefaultDrawer.d.ts +19 -0
  43. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  44. package/dist/core/EntityEditView.d.ts +18 -4
  45. package/dist/core/FireCMS.d.ts +2 -2
  46. package/dist/core/NavigationRoutes.d.ts +3 -3
  47. package/dist/core/index.d.ts +3 -4
  48. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  49. package/dist/form/components/ErrorFocus.d.ts +1 -1
  50. package/dist/form/components/FieldHelperText.d.ts +3 -3
  51. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  52. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  53. package/dist/form/components/StorageItemPreview.d.ts +4 -4
  54. package/dist/form/components/index.d.ts +1 -1
  55. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  56. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  57. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  58. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  59. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  60. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  61. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  62. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  63. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  64. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  65. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  66. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +3 -5
  67. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  68. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  69. package/dist/form/index.d.ts +3 -5
  70. package/dist/form/useClearRestoreValue.d.ts +2 -2
  71. package/dist/hooks/data/delete.d.ts +4 -4
  72. package/dist/hooks/data/save.d.ts +4 -5
  73. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  74. package/dist/hooks/data/useEntityFetch.d.ts +3 -3
  75. package/dist/hooks/index.d.ts +1 -0
  76. package/dist/hooks/useAuthController.d.ts +1 -1
  77. package/dist/hooks/useBuildNavigationController.d.ts +3 -4
  78. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  79. package/dist/hooks/useProjectLog.d.ts +8 -2
  80. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  81. package/dist/hooks/useValidateAuthenticator.d.ts +5 -9
  82. package/dist/index.d.ts +1 -0
  83. package/dist/index.es.js +20199 -14111
  84. package/dist/index.es.js.map +1 -1
  85. package/dist/index.umd.js +22769 -588
  86. package/dist/index.umd.js.map +1 -1
  87. package/dist/internal/useBuildDataSource.d.ts +1 -16
  88. package/dist/preview/PropertyPreviewProps.d.ts +6 -1
  89. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  90. package/dist/preview/components/ReferencePreview.d.ts +3 -2
  91. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  92. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  93. package/dist/preview/util.d.ts +3 -3
  94. package/dist/types/auth.d.ts +8 -10
  95. package/dist/types/collections.d.ts +53 -18
  96. package/dist/types/datasource.d.ts +51 -35
  97. package/dist/types/entities.d.ts +6 -1
  98. package/dist/types/entity_actions.d.ts +18 -4
  99. package/dist/types/entity_callbacks.d.ts +16 -16
  100. package/dist/types/entity_overrides.d.ts +2 -2
  101. package/dist/types/export_import.d.ts +4 -4
  102. package/dist/types/fields.d.ts +63 -41
  103. package/dist/types/firecms.d.ts +6 -2
  104. package/dist/types/firecms_context.d.ts +1 -1
  105. package/dist/types/index.d.ts +0 -1
  106. package/dist/types/navigation.d.ts +6 -5
  107. package/dist/types/permissions.d.ts +4 -4
  108. package/dist/types/plugins.d.ts +22 -12
  109. package/dist/types/properties.d.ts +34 -21
  110. package/dist/types/property_config.d.ts +0 -2
  111. package/dist/types/side_dialogs_controller.d.ts +10 -0
  112. package/dist/types/storage.d.ts +86 -3
  113. package/dist/types/user.d.ts +1 -0
  114. package/dist/util/builders.d.ts +2 -2
  115. package/dist/util/entities.d.ts +2 -2
  116. package/dist/util/icon_list.d.ts +5 -1
  117. package/dist/util/icon_synonyms.d.ts +1 -98
  118. package/dist/util/icons.d.ts +6 -3
  119. package/dist/util/index.d.ts +1 -0
  120. package/dist/util/navigation_utils.d.ts +2 -2
  121. package/dist/util/objects.d.ts +2 -1
  122. package/dist/util/permissions.d.ts +4 -4
  123. package/dist/util/plurals.d.ts +0 -2
  124. package/dist/util/property_utils.d.ts +3 -3
  125. package/dist/util/resolutions.d.ts +30 -16
  126. package/dist/util/storage.d.ts +23 -2
  127. package/dist/util/useStorageUploadController.d.ts +3 -3
  128. package/package.json +59 -44
  129. package/src/app/AppBar.tsx +18 -0
  130. package/src/app/Drawer.tsx +24 -0
  131. package/src/app/Scaffold.tsx +243 -0
  132. package/src/app/index.ts +4 -0
  133. package/src/app/useApp.tsx +32 -0
  134. package/src/components/ArrayContainer.tsx +92 -25
  135. package/src/components/CircularProgressCenter.tsx +2 -2
  136. package/src/components/ClearFilterSortButton.tsx +41 -0
  137. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +3 -3
  138. package/src/components/DeleteEntityDialog.tsx +9 -18
  139. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +13 -20
  140. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +28 -25
  141. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +12 -8
  142. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +47 -39
  143. package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
  144. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +31 -17
  145. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
  146. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +30 -35
  147. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +36 -34
  148. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  149. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +84 -77
  150. package/src/components/EntityCollectionView/EntityCollectionView.tsx +139 -87
  151. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  152. package/src/components/EntityCollectionView/useSelectionController.tsx +19 -7
  153. package/src/components/EntityCollectionView/utils.ts +19 -0
  154. package/src/components/EntityPreview.tsx +60 -51
  155. package/src/components/EntityView.tsx +10 -10
  156. package/src/components/ErrorView.tsx +4 -4
  157. package/src/components/HomePage/DefaultHomePage.tsx +26 -19
  158. package/src/components/HomePage/FavouritesView.tsx +6 -11
  159. package/src/components/HomePage/NavigationCard.tsx +4 -4
  160. package/src/components/HomePage/NavigationCardBinding.tsx +5 -10
  161. package/src/components/HomePage/NavigationGroup.tsx +2 -2
  162. package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
  163. package/src/components/PropertyConfigBadge.tsx +9 -3
  164. package/src/components/PropertyIdCopyTooltip.tsx +48 -0
  165. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +8 -7
  166. package/src/components/ReferenceWidget.tsx +22 -12
  167. package/src/components/SearchIconsView.tsx +10 -7
  168. package/src/components/SelectableTable/SelectableTable.tsx +9 -9
  169. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
  170. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +25 -8
  171. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +30 -6
  172. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -23
  173. package/src/components/VirtualTable/VirtualTable.tsx +77 -46
  174. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  175. package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
  176. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  177. package/src/components/VirtualTable/VirtualTableProps.tsx +18 -14
  178. package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
  179. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
  180. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -1
  181. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  182. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  183. package/src/components/VirtualTable/types.tsx +2 -3
  184. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +8 -4
  185. package/src/components/common/index.ts +1 -0
  186. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  187. package/src/components/common/types.tsx +4 -6
  188. package/src/components/common/useColumnsIds.tsx +23 -2
  189. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +25 -14
  190. package/src/components/common/useTableSearchHelper.ts +53 -12
  191. package/src/components/index.tsx +4 -2
  192. package/src/contexts/DialogsProvider.tsx +2 -2
  193. package/src/contexts/SnackbarProvider.tsx +2 -0
  194. package/src/core/DefaultAppBar.tsx +178 -0
  195. package/src/core/DefaultDrawer.tsx +184 -0
  196. package/src/core/DrawerNavigationItem.tsx +66 -0
  197. package/src/core/EntityEditView.tsx +721 -156
  198. package/src/core/EntitySidePanel.tsx +1 -2
  199. package/src/core/FireCMS.tsx +57 -53
  200. package/src/core/NavigationRoutes.tsx +7 -8
  201. package/src/core/SideDialogs.tsx +2 -1
  202. package/src/core/field_configs.tsx +11 -12
  203. package/src/core/index.tsx +3 -4
  204. package/src/form/PropertyFieldBinding.tsx +74 -35
  205. package/src/form/components/CustomIdField.tsx +6 -2
  206. package/src/form/components/FieldHelperText.tsx +4 -4
  207. package/src/form/components/LabelWithIcon.tsx +27 -19
  208. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  209. package/src/form/components/StorageItemPreview.tsx +22 -12
  210. package/src/form/components/StorageUploadProgress.tsx +3 -4
  211. package/src/form/components/index.tsx +1 -1
  212. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +29 -17
  213. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +45 -35
  214. package/src/form/field_bindings/BlockFieldBinding.tsx +53 -33
  215. package/src/form/field_bindings/DateTimeFieldBinding.tsx +17 -14
  216. package/src/form/field_bindings/KeyValueFieldBinding.tsx +60 -51
  217. package/src/form/field_bindings/MapFieldBinding.tsx +67 -48
  218. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +150 -0
  219. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +25 -20
  220. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
  221. package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
  222. package/src/form/field_bindings/RepeatFieldBinding.tsx +52 -34
  223. package/src/form/field_bindings/SelectFieldBinding.tsx +22 -14
  224. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +37 -47
  225. package/src/form/field_bindings/SwitchFieldBinding.tsx +28 -24
  226. package/src/form/field_bindings/TextFieldBinding.tsx +27 -24
  227. package/src/form/index.tsx +4 -9
  228. package/src/form/useClearRestoreValue.tsx +2 -2
  229. package/src/form/validation.ts +1 -17
  230. package/src/hooks/data/delete.ts +6 -5
  231. package/src/hooks/data/save.ts +12 -8
  232. package/src/hooks/data/useCollectionFetch.tsx +2 -2
  233. package/src/hooks/data/useDataSource.tsx +11 -3
  234. package/src/hooks/data/useEntityFetch.tsx +5 -5
  235. package/src/hooks/index.tsx +1 -0
  236. package/src/hooks/useAuthController.tsx +1 -1
  237. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
  238. package/src/hooks/useBuildModeController.tsx +11 -5
  239. package/src/hooks/useBuildNavigationController.tsx +93 -34
  240. package/src/hooks/useFireCMSContext.tsx +5 -5
  241. package/src/hooks/useProjectLog.tsx +32 -10
  242. package/src/hooks/useResolvedNavigationFrom.tsx +6 -6
  243. package/src/hooks/useValidateAuthenticator.tsx +21 -41
  244. package/src/index.ts +1 -0
  245. package/src/internal/useBuildDataSource.ts +72 -82
  246. package/src/internal/useBuildSideDialogsController.tsx +1 -0
  247. package/src/internal/useBuildSideEntityController.tsx +102 -22
  248. package/src/internal/useUnsavedChangesDialog.tsx +5 -3
  249. package/src/preview/PropertyPreview.tsx +11 -18
  250. package/src/preview/PropertyPreviewProps.tsx +7 -1
  251. package/src/preview/components/BooleanPreview.tsx +2 -2
  252. package/src/preview/components/EmptyValue.tsx +1 -1
  253. package/src/preview/components/EnumValuesChip.tsx +2 -2
  254. package/src/preview/components/ImagePreview.tsx +25 -36
  255. package/src/preview/components/ReferencePreview.tsx +23 -34
  256. package/src/preview/components/StorageThumbnail.tsx +5 -1
  257. package/src/preview/components/UrlComponentPreview.tsx +44 -11
  258. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +2 -3
  259. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +4 -3
  260. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +2 -3
  261. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +1 -2
  262. package/src/preview/property_previews/ArrayOneOfPreview.tsx +4 -5
  263. package/src/preview/property_previews/ArrayPropertyPreview.tsx +4 -5
  264. package/src/preview/property_previews/MapPropertyPreview.tsx +9 -9
  265. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +12 -12
  266. package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
  267. package/src/preview/util.ts +10 -10
  268. package/src/types/auth.tsx +9 -13
  269. package/src/types/collections.ts +62 -20
  270. package/src/types/customization_controller.tsx +0 -1
  271. package/src/types/datasource.ts +60 -43
  272. package/src/types/entities.ts +11 -1
  273. package/src/types/entity_actions.tsx +20 -7
  274. package/src/types/entity_callbacks.ts +18 -18
  275. package/src/types/entity_overrides.tsx +2 -2
  276. package/src/types/export_import.ts +4 -4
  277. package/src/types/fields.tsx +69 -45
  278. package/src/types/firecms.tsx +7 -2
  279. package/src/types/firecms_context.tsx +1 -1
  280. package/src/types/index.ts +0 -1
  281. package/src/types/navigation.ts +7 -7
  282. package/src/types/permissions.ts +5 -5
  283. package/src/types/plugins.tsx +24 -14
  284. package/src/types/properties.ts +39 -22
  285. package/src/types/property_config.tsx +0 -2
  286. package/src/types/side_dialogs_controller.tsx +13 -0
  287. package/src/types/storage.ts +94 -3
  288. package/src/types/user.ts +2 -0
  289. package/src/util/builders.ts +6 -6
  290. package/src/util/entities.ts +6 -5
  291. package/src/util/enums.ts +1 -1
  292. package/src/util/icon_list.ts +16 -10
  293. package/src/util/icon_synonyms.ts +3 -100
  294. package/src/util/icons.tsx +17 -7
  295. package/src/util/index.ts +1 -0
  296. package/src/util/make_properties_editable.ts +13 -5
  297. package/src/util/navigation_utils.ts +6 -6
  298. package/src/util/objects.ts +45 -28
  299. package/src/util/permissions.ts +9 -8
  300. package/src/util/plurals.ts +0 -2
  301. package/src/util/property_utils.tsx +11 -4
  302. package/src/util/references.ts +11 -2
  303. package/src/util/resolutions.ts +79 -46
  304. package/src/util/storage.ts +79 -21
  305. package/src/util/strings.ts +2 -2
  306. package/src/util/useStorageUploadController.tsx +34 -8
  307. package/src/util/useTraceUpdate.tsx +1 -0
  308. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  309. package/dist/components/VirtualTable/common.d.ts +0 -2
  310. package/dist/core/Drawer.d.ts +0 -23
  311. package/dist/core/Scaffold.d.ts +0 -55
  312. package/dist/core/SideEntityView.d.ts +0 -7
  313. package/dist/form/EntityForm.d.ts +0 -77
  314. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  315. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  316. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  317. package/dist/internal/useLocaleConfig.d.ts +0 -1
  318. package/dist/types/appcheck.d.ts +0 -26
  319. package/src/components/FireCMSAppBar.tsx +0 -165
  320. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
  321. package/src/core/Drawer.tsx +0 -191
  322. package/src/core/Scaffold.tsx +0 -281
  323. package/src/core/SideEntityView.tsx +0 -38
  324. package/src/form/EntityForm.tsx +0 -728
  325. package/src/form/components/FormikArrayContainer.tsx +0 -44
  326. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  327. package/src/internal/useBuildCustomizationController.tsx +0 -5
  328. package/src/internal/useLocaleConfig.tsx +0 -18
  329. package/src/types/appcheck.ts +0 -29
@@ -3,7 +3,7 @@ import React, { useEffect } from "react";
3
3
  import {
4
4
  Button,
5
5
  CircularProgress,
6
- cn,
6
+ cls,
7
7
  defaultBorderMixin,
8
8
  FilterListOffIcon,
9
9
  SearchBar,
@@ -16,20 +16,27 @@ import { useLargeLayout } from "../../../hooks";
16
16
 
17
17
  interface CollectionTableToolbarProps {
18
18
  size: CollectionSize;
19
- filterIsSet: boolean;
20
19
  loading: boolean;
21
- forceFilter?: boolean;
22
20
  actionsStart?: React.ReactNode;
23
21
  actions?: React.ReactNode;
24
22
  title?: React.ReactNode,
25
23
  onTextSearchClick?: () => void;
26
24
  onTextSearch?: (searchString?: string) => void;
27
25
  onSizeChanged: (size: CollectionSize) => void;
28
- clearFilter?: () => void;
29
26
  textSearchLoading?: boolean;
30
27
  }
31
28
 
32
- export function CollectionTableToolbar(props: CollectionTableToolbarProps) {
29
+ export function CollectionTableToolbar({
30
+ actions,
31
+ actionsStart,
32
+ loading,
33
+ onSizeChanged,
34
+ onTextSearch,
35
+ onTextSearchClick,
36
+ size,
37
+ textSearchLoading,
38
+ title
39
+ }: CollectionTableToolbarProps) {
33
40
 
34
41
  const searchInputRef = React.useRef<HTMLInputElement>(null);
35
42
  const largeLayout = useLargeLayout();
@@ -37,30 +44,20 @@ export function CollectionTableToolbar(props: CollectionTableToolbarProps) {
37
44
  const searchLoading = React.useRef<boolean>(false);
38
45
 
39
46
  useEffect(() => {
40
- if (searchInputRef.current && searchLoading.current && !props.textSearchLoading) {
47
+ if (searchInputRef.current && searchLoading.current && !textSearchLoading) {
41
48
  searchInputRef.current.focus();
42
49
  }
43
- searchLoading.current = props.textSearchLoading ?? false;
44
- }, [props.textSearchLoading]);
45
-
46
- const clearFilterButton = !props.forceFilter && props.filterIsSet && props.clearFilter &&
47
- <Button
48
- variant={"outlined"}
49
- className="h-fit-content"
50
- aria-label="filter clear"
51
- onClick={props.clearFilter}
52
- size={"small"}>
53
- <FilterListOffIcon/>
54
- Clear filter
55
- </Button>;
50
+ searchLoading.current = textSearchLoading ?? false;
51
+ }, [textSearchLoading]);
52
+
56
53
 
57
54
  const sizeSelect = (
58
55
  <Tooltip title={"Table row size"} side={"right"} sideOffset={4}>
59
56
  <Select
60
- value={props.size as string}
57
+ value={size as string}
61
58
  className="w-16 h-10"
62
- size={"small"}
63
- onValueChange={(v) => props.onSizeChanged(v as CollectionSize)}
59
+ size={"medium"}
60
+ onValueChange={(v) => onSizeChanged(v as CollectionSize)}
64
61
  renderValue={(v) => <div className={"font-medium"}>{v.toUpperCase()}</div>}
65
62
  >
66
63
  {["xs", "s", "m", "l", "xl"].map((size) => (
@@ -74,40 +71,38 @@ export function CollectionTableToolbar(props: CollectionTableToolbarProps) {
74
71
 
75
72
  return (
76
73
  <div
77
- className={cn(defaultBorderMixin, "no-scrollbar min-h-[56px] overflow-x-auto px-2 md:px-4 bg-gray-50 dark:bg-gray-900 border-b flex flex-row justify-between items-center w-full")}>
74
+ className={cls(defaultBorderMixin, "no-scrollbar min-h-[56px] overflow-x-auto px-2 md:px-4 bg-surface-50 dark:bg-surface-900 border-b flex flex-row justify-between items-center w-full")}>
78
75
 
79
76
  <div className="flex items-center gap-2 md:mr-4 mr-2">
80
77
 
81
- {props.title && <div className={"hidden lg:block"}>
82
- {props.title}
78
+ {title && <div className={"hidden lg:block"}>
79
+ {title}
83
80
  </div>}
84
81
 
85
82
  {sizeSelect}
86
83
 
87
- {props.actionsStart}
88
-
89
- {clearFilterButton}
84
+ {actionsStart}
90
85
 
91
86
  </div>
92
87
 
93
88
  <div className="flex items-center gap-2">
94
89
 
95
90
  {largeLayout && <div className="w-[22px]">
96
- {props.loading &&
91
+ {loading &&
97
92
  <CircularProgress size={"small"}/>}
98
93
  </div>}
99
94
 
100
- {(props.onTextSearch || props.onTextSearchClick) &&
95
+ {(onTextSearch || onTextSearchClick) &&
101
96
  <SearchBar
102
97
  key={"search-bar"}
103
98
  inputRef={searchInputRef}
104
- loading={props.textSearchLoading}
105
- disabled={Boolean(props.onTextSearchClick)}
106
- onClick={props.onTextSearchClick}
107
- onTextSearch={props.onTextSearchClick ? undefined : props.onTextSearch}
99
+ loading={textSearchLoading}
100
+ disabled={Boolean(onTextSearchClick)}
101
+ onClick={onTextSearchClick}
102
+ onTextSearch={onTextSearchClick ? undefined : onTextSearch}
108
103
  expandable={true}/>}
109
104
 
110
- {props.actions}
105
+ {actions}
111
106
 
112
107
  </div>
113
108
 
@@ -2,10 +2,9 @@ import React, { useCallback, useEffect, useMemo, useRef, useState } from "react"
2
2
 
3
3
  import useMeasure from "react-use-measure";
4
4
 
5
- import { VirtualTableSize } from "../../VirtualTable";
6
- import { getRowHeight } from "../../VirtualTable/common";
7
- import { cn, RemoveCircleIcon, Tooltip } from "@firecms/ui";
5
+ import { cls, DoNotDisturbOnIcon, Tooltip } from "@firecms/ui";
8
6
  import { ErrorBoundary } from "../../../components";
7
+ import { getRowHeight, TableSize } from "../../common/table_height";
9
8
 
10
9
  interface EntityTableCellProps {
11
10
  children: React.ReactNode;
@@ -19,7 +18,7 @@ interface EntityTableCellProps {
19
18
  error?: Error;
20
19
  allowScroll?: boolean;
21
20
  align: "right" | "left" | "center";
22
- size: VirtualTableSize;
21
+ size: TableSize;
23
22
  disabledTooltip?: string;
24
23
  width: number;
25
24
  showExpandIcon?: boolean;
@@ -46,22 +45,21 @@ const TableCellInner = ({
46
45
  children
47
46
  }: TableCellInnerProps) => {
48
47
  return (
49
- <div
50
- className={cn("flex flex-col max-h-full w-full",
51
- {
52
- "items-start": faded || scrollable
53
- })}
54
- style={{
55
- justifyContent,
56
- height: fullHeight ? "100%" : undefined,
57
- overflow: scrollable ? "auto" : undefined,
58
- WebkitMaskImage: faded
59
- ? "linear-gradient(to bottom, black 60%, transparent 100%)"
60
- : undefined,
61
- maskImage: faded
62
- ? "linear-gradient(to bottom, black 60%, transparent 100%)"
63
- : undefined
64
- }}
48
+ <div className={cls("flex flex-col max-h-full w-full",
49
+ {
50
+ "items-start": faded || scrollable
51
+ })}
52
+ style={{
53
+ justifyContent,
54
+ height: fullHeight ? "100%" : undefined,
55
+ overflow: scrollable ? "auto" : undefined,
56
+ WebkitMaskImage: faded
57
+ ? "linear-gradient(to bottom, black 60%, transparent 100%)"
58
+ : undefined,
59
+ maskImage: faded
60
+ ? "linear-gradient(to bottom, black 60%, transparent 100%)"
61
+ : undefined
62
+ }}
65
63
  >
66
64
  {children}
67
65
  </div>
@@ -96,7 +94,7 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
96
94
  const [onHover, setOnHover] = useState(false);
97
95
  const [internalSaved, setInternalSaved] = useState(saved);
98
96
 
99
- const showError = !disabled && error;
97
+ const showError = !disabled && Boolean(error);
100
98
 
101
99
  useEffect(() => {
102
100
  if (saved) {
@@ -157,8 +155,9 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
157
155
  }, [ref, onSelect, selected, disabled]);
158
156
 
159
157
  const onFocus = useCallback((event: React.SyntheticEvent<HTMLDivElement>) => {
160
- onSelectCallback();
161
158
  event.stopPropagation();
159
+ event.preventDefault();
160
+ onSelectCallback();
162
161
  }, [onSelectCallback]);
163
162
 
164
163
  const isOverflowing = useMemo(() => {
@@ -176,21 +175,26 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
176
175
  const setOnHoverTrue = useCallback(() => setOnHover(true), []);
177
176
  const setOnHoverFalse = useCallback(() => setOnHover(false), []);
178
177
 
178
+ const borderClass = showError
179
+ ? "border-red-500"
180
+ : internalSaved
181
+ ? "border-green-500"
182
+ : isSelected
183
+ ? "border-primary"
184
+ : "border-transparent";
185
+
179
186
  return (
180
187
  <div
181
- ref={ref}
182
- className={cn(
188
+ className={cls(
183
189
  "transition-colors duration-100 ease-in-out",
184
190
  `flex relative h-full rounded-md p-${p} border border-4 border-opacity-75`,
185
- onHover && !disabled ? "bg-gray-50 dark:bg-gray-900" : "",
186
- saved ? "bg-gray-100 bg-opacity-75 dark:bg-gray-800 dark:bg-opacity-75" : "",
187
- !isSelected && !internalSaved && !showError ? "border-transparent" : "",
191
+ onHover && !disabled ? "bg-surface-50 dark:bg-surface-900" : "",
192
+ saved ? "bg-surface-100 bg-opacity-75 dark:bg-surface-800 dark:bg-opacity-75" : "",
188
193
  hideOverflow ? "overflow-hidden" : "",
189
- isSelected ? "bg-gray-50 dark:bg-gray-900" : "",
190
- isSelected && !internalSaved ? "border-primary" : "",
191
- internalSaved ? "border-green-500 " : "",
192
- showError ? "border-red-500" : ""
194
+ isSelected ? "bg-surface-50 dark:bg-surface-900" : "",
195
+ borderClass
193
196
  )}
197
+ ref={ref}
194
198
  style={{
195
199
  justifyContent,
196
200
  alignItems: disabled || !isOverflowing ? "center" : undefined,
@@ -199,11 +203,9 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
199
203
  }}
200
204
  tabIndex={selected || disabled ? undefined : 0}
201
205
  onFocus={onFocus}
202
- // onClick={onClick}
203
206
  onMouseEnter={setOnHoverTrue}
204
207
  onMouseMove={setOnHoverTrue}
205
208
  onMouseLeave={setOnHoverFalse}
206
- // contain={scrollable ? "content" : "size"}
207
209
  >
208
210
 
209
211
  <ErrorBoundary>
@@ -234,7 +236,7 @@ export const EntityTableCell = React.memo<EntityTableCellProps>(
234
236
  {disabled && onHover && disabledTooltip &&
235
237
  <div className="absolute top-1 right-1 text-xs">
236
238
  <Tooltip title={disabledTooltip}>
237
- <RemoveCircleIcon size={"smallest"} color={"disabled"} className={"text-gray-500"}/>
239
+ <DoNotDisturbOnIcon size={"smallest"} color={"disabled"} className={"text-surface-500"}/>
238
240
  </Tooltip>
239
241
  </div>}
240
242
 
@@ -1,4 +1,4 @@
1
- import { ErrorOutlineIcon, IconButton } from "@firecms/ui";
1
+ import { ErrorIcon, IconButton } from "@firecms/ui";
2
2
  import { ErrorTooltip } from "../../ErrorTooltip";
3
3
  import { useCallback, useEffect, useRef } from "react";
4
4
 
@@ -11,7 +11,14 @@ export interface EntityTableCellActionsProps {
11
11
  children?: React.ReactNode;
12
12
  }
13
13
 
14
- export function EntityTableCellActions({ showError, disabled, showExpandIcon, selected, openPopup, children }: EntityTableCellActionsProps) {
14
+ export function EntityTableCellActions({
15
+ showError,
16
+ disabled,
17
+ showExpandIcon,
18
+ selected,
19
+ openPopup,
20
+ children
21
+ }: EntityTableCellActionsProps) {
15
22
 
16
23
  const ref = useRef<HTMLDivElement>(null);
17
24
  const doOpenPopup = useCallback(() => {
@@ -54,13 +61,18 @@ export function EntityTableCellActions({ showError, disabled, showExpandIcon, se
54
61
 
55
62
  {showError && <ErrorTooltip
56
63
  side={"left"}
57
- className={"flex items-center justify-center"}
58
- style={{ width: 32, height: 32 }}
59
64
  title={showError.message}>
60
- <ErrorOutlineIcon
61
- size={"small"}
62
- color={"error"}
63
- />
65
+ <div
66
+ className={"flex items-center justify-center"}
67
+ style={{
68
+ width: 32,
69
+ height: 32
70
+ }}>
71
+ <ErrorIcon
72
+ size={"small"}
73
+ color={"error"}
74
+ />
75
+ </div>
64
76
  </ErrorTooltip>
65
77
  }
66
78
 
@@ -1,5 +1,4 @@
1
1
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from "react";
2
- import equal from "react-fast-compare"
3
2
 
4
3
  import * as Portal from "@radix-ui/react-portal";
5
4
 
@@ -19,20 +18,20 @@ import { useDraggable } from "./useDraggable";
19
18
  import { CustomFieldValidator, getYupEntitySchema } from "../../../../form/validation";
20
19
  import { useWindowSize } from "./useWindowSize";
21
20
  import { ElementResizeListener } from "./ElementResizeListener";
22
- import { ErrorView } from "../../../ErrorView";
23
21
  import { getPropertyInPath, isReadOnly, resolveCollection } from "../../../../util";
24
- import { Button, ClearIcon, DialogActions, IconButton, Typography } from "@firecms/ui";
22
+ import { Button, CloseIcon, DialogActions, IconButton, Typography } from "@firecms/ui";
25
23
  import { PropertyFieldBinding } from "../../../../form";
26
- import { useCustomizationController, useFireCMSContext } from "../../../../hooks";
24
+ import { useCustomizationController, useDataSource, useFireCMSContext } from "../../../../hooks";
27
25
  import { OnCellValueChangeParams } from "../../../common";
26
+ import { yupToFormErrors } from "../../../../core/EntityEditView";
28
27
 
29
28
  interface PopupFormFieldProps<M extends Record<string, any>> {
30
- entity?: Entity<M>;
31
29
  customFieldValidator?: CustomFieldValidator;
32
30
  path: string;
31
+ entityId: string;
33
32
  tableKey: string;
34
33
  propertyKey?: Extract<keyof M, string>;
35
- collection?: EntityCollection<M>;
34
+ collection?: EntityCollection<any>;
36
35
  cellRect?: DOMRect;
37
36
  open: boolean;
38
37
  onClose: () => void;
@@ -41,18 +40,59 @@ interface PopupFormFieldProps<M extends Record<string, any>> {
41
40
  * Callback when the value of a cell has been edited
42
41
  * @param params
43
42
  */
44
- onCellValueChange?: (params: OnCellValueChangeParams<any, M>) => Promise<void> | void;
43
+ onCellValueChange?: (params: OnCellValueChangeParams<any, any>) => Promise<void> | void;
45
44
  }
46
45
 
47
46
  export function PopupFormField<M extends Record<string, any>>(props: PopupFormFieldProps<M>) {
48
47
  if (!props.open) return null;
49
- return <PopupFormFieldInternal {...props} />;
48
+ return <PopupFormFieldLoading {...props} />;
50
49
 
51
50
  }
52
51
 
52
+ export function PopupFormFieldLoading<M extends Record<string, any>>({
53
+ tableKey,
54
+ entityId,
55
+ customFieldValidator,
56
+ propertyKey,
57
+ collection: inputCollection,
58
+ path,
59
+ cellRect,
60
+ open,
61
+ onClose,
62
+ onCellValueChange,
63
+ container
64
+ }: PopupFormFieldProps<M>) {
65
+ const dataSource = useDataSource();
66
+ const [entity, setEntity] = useState<Entity<M> | undefined>(undefined);
67
+ useEffect(() => {
68
+ if (entityId && inputCollection) {
69
+ dataSource.fetchEntity({
70
+ path,
71
+ entityId,
72
+ collection: inputCollection
73
+ }).then(setEntity);
74
+ }
75
+ }, [entityId, inputCollection]);
76
+
77
+ if (!entity) return null;
78
+ return <PopupFormFieldInternal {...{
79
+ tableKey,
80
+ entityId,
81
+ customFieldValidator,
82
+ propertyKey,
83
+ collection: inputCollection,
84
+ path,
85
+ cellRect,
86
+ open,
87
+ onClose,
88
+ onCellValueChange,
89
+ container
90
+ }} entity={entity}/>;
91
+ }
92
+
53
93
  export function PopupFormFieldInternal<M extends Record<string, any>>({
54
94
  tableKey,
55
- entity: entityProp,
95
+ entityId,
56
96
  customFieldValidator,
57
97
  propertyKey,
58
98
  collection: inputCollection,
@@ -61,10 +101,12 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
61
101
  open,
62
102
  onClose,
63
103
  onCellValueChange,
64
- container
65
- }: PopupFormFieldProps<M>) {
104
+ container,
105
+ entity
106
+ }: PopupFormFieldProps<M> & {
107
+ entity?: Entity<M>
108
+ }) {
66
109
 
67
- // const dataSource = useDataSource();
68
110
  const fireCMSContext = useFireCMSContext();
69
111
  const customizationController = useCustomizationController();
70
112
 
@@ -74,34 +116,13 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
74
116
  y: number
75
117
  }>();
76
118
 
77
- const entityId = entityProp?.id;
78
- const [entity, setEntity] = useState<Entity<M> | undefined>(entityProp);
79
- // useEffect(() => {
80
- // if (entityId && inputCollection) {
81
- // return dataSource.listenEntity?.({
82
- // path,
83
- // entityId,
84
- // collection: inputCollection,
85
- // onUpdate: (e) => {
86
- // setEntity(e);
87
- // setInternalValue(e?.values);
88
- // }
89
- // });
90
- // } else {
91
- // return () => {
92
- // };
93
- // }
94
- // }, [dataSource, entityId, inputCollection, path, open]);
95
-
96
- const [internalValue, setInternalValue] = useState<EntityValues<M> | undefined>(entity?.values);
97
-
98
119
  const collection: ResolvedEntityCollection<M> | undefined = inputCollection
99
120
  ? resolveCollection<M>({
100
121
  collection: inputCollection,
101
122
  path,
102
- values: internalValue,
123
+ values: entity?.values,
103
124
  entityId,
104
- fields: customizationController.propertyConfigs
125
+ propertyConfigs: customizationController.propertyConfigs
105
126
  })
106
127
  : undefined;
107
128
 
@@ -205,58 +226,48 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
205
226
  return onCellValueChange({
206
227
  value: values[propertyKey as string],
207
228
  propertyKey: propertyKey as string,
208
- entity,
229
+ data: entity,
209
230
  setError: setSavingError,
210
231
  onValueUpdated: () => {
211
232
  },
212
- fullPath: path,
213
- context: fireCMSContext
214
233
  });
215
234
  }
216
235
  return Promise.resolve();
217
236
  };
218
237
 
219
- if (!entity)
220
- return <></>;
221
-
222
- // enableReinitialize={true}
223
- // eslint-disable-next-line react-hooks/rules-of-hooks
224
238
  const formex = useCreateFormex<M>({
225
239
  initialValues: (entity?.values ?? {}) as EntityValues<M>,
226
240
  validation: (values) => {
227
241
  return validationSchema?.validate(values, { abortEarly: false })
228
242
  .then(() => ({}))
229
243
  .catch((e) => {
230
- const errors: Record<string, string> = {};
231
- e.inner.forEach((error: any) => {
232
- errors[error.path] = error.message;
233
- });
234
- return errors;
244
+ // const errors: Record<string, string> = {};
245
+ // e.inner.forEach((error: any) => {
246
+ // errors[error.path] = error.message;
247
+ // });
248
+ // return errors;
249
+ return yupToFormErrors(e);
235
250
  });
236
251
  },
237
252
  validateOnInitialRender: true,
238
253
  onSubmit: (values, actions) => {
239
254
  saveValue(values)
240
- .then(() => onClose())
255
+ .then(() => {
256
+ formex.resetForm({
257
+ values: values
258
+ })
259
+ onClose();
260
+ })
241
261
  .finally(() => actions.setSubmitting(false));
242
262
  }
243
263
  });
244
264
 
245
- const { values, isSubmitting, setFieldValue, handleSubmit } = formex;
246
-
247
- // eslint-disable-next-line react-hooks/rules-of-hooks
248
- useEffect(() => {
249
- if (!equal(values, internalValue)) {
250
- setInternalValue(values);
251
- }
252
- }, [values]);
253
-
254
- if (!entity)
255
- return <ErrorView
256
- error={"PopupFormField misconfiguration"}/>;
257
-
258
- if (!collection)
259
- return <></>;
265
+ const {
266
+ values,
267
+ isSubmitting,
268
+ setFieldValue,
269
+ handleSubmit
270
+ } = formex;
260
271
 
261
272
  const disabled = isSubmitting;
262
273
 
@@ -266,10 +277,11 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
266
277
  values,
267
278
  path,
268
279
  setFieldValue,
269
- save: saveValue
280
+ save: saveValue,
281
+ formex
270
282
  };
271
283
 
272
- const property: ResolvedProperty<any> | undefined = propertyKey && getPropertyInPath(collection.properties, propertyKey as string);
284
+ const property: ResolvedProperty<any> | undefined = propertyKey && getPropertyInPath(collection?.properties ?? {} as ResolvedProperties, propertyKey as string);
273
285
  const fieldProps: PropertyFieldBindingProps<any, M> | undefined = propertyKey && property
274
286
  ? {
275
287
  propertyKey: propertyKey as string,
@@ -278,9 +290,8 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
278
290
  includeDescription: false,
279
291
  underlyingValueHasChanged: false,
280
292
  context: formContext,
281
- tableMode: true,
282
293
  partOfArray: false,
283
- partOfBlock: false,
294
+ minimalistView: false,
284
295
  autoFocus: open
285
296
  }
286
297
  : undefined;
@@ -288,7 +299,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
288
299
  let internalForm = <>
289
300
  <div
290
301
  key={`popup_form_${tableKey}_${entityId}_${propertyKey}`}
291
- className="w-[560px] max-w-full max-h-[85vh]">
302
+ className="w-[700px] max-w-full max-h-[85vh]">
292
303
  <form
293
304
  onSubmit={handleSubmit}
294
305
  noValidate>
@@ -323,10 +334,6 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
323
334
 
324
335
  const plugins = customizationController.plugins;
325
336
  if (plugins) {
326
- // const formController: FormContext<M> = {
327
- // values,
328
- // setFieldValue
329
- // }
330
337
  plugins.forEach((plugin: FireCMSPlugin) => {
331
338
  if (plugin.form?.provider) {
332
339
  internalForm = (
@@ -346,7 +353,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
346
353
  });
347
354
  }
348
355
  const form = <div
349
- className={`text-gray-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-gray-950 ${!open ? "hidden" : ""} cursor-grab max-w-[100vw]`}>
356
+ className={`text-surface-900 dark:text-white overflow-auto rounded rounded-md bg-white dark:bg-surface-950 ${!open ? "hidden" : ""} cursor-grab max-w-[100vw]`}>
350
357
 
351
358
  {internalForm}
352
359
 
@@ -363,7 +370,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
363
370
  style={{
364
371
  boxShadow: "0 0 0 2px rgba(128,128,128,0.2)",
365
372
  }}
366
- className={`inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-gray-950 ${
373
+ className={`inline-block fixed z-20 shadow-outline rounded-md bg-white dark:bg-surface-950 ${
367
374
  !open ? "invisible" : "visible"
368
375
  } cursor-grab overflow-visible`}
369
376
  ref={draggableRef}>
@@ -376,7 +383,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
376
383
  {form}
377
384
 
378
385
  <div
379
- className="absolute -top-3.5 -right-3.5 bg-gray-500 rounded-full"
386
+ className="absolute -top-3.5 -right-3.5 bg-surface-500 rounded-full"
380
387
  style={{
381
388
  width: "32px",
382
389
  height: "32px"
@@ -387,7 +394,7 @@ export function PopupFormFieldInternal<M extends Record<string, any>>({
387
394
  event.stopPropagation();
388
395
  onClose();
389
396
  }}>
390
- <ClearIcon className="text-white"
397
+ <CloseIcon className="text-white"
391
398
  size={"small"}/>
392
399
  </IconButton>
393
400
  </div>