@firecms/core 3.0.0-canary.99 → 3.0.0-rc.1

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 (349) hide show
  1. package/README.md +2 -2
  2. package/dist/app/Drawer.d.ts +0 -1
  3. package/dist/app/Scaffold.d.ts +4 -0
  4. package/dist/components/ArrayContainer.d.ts +31 -12
  5. package/dist/components/{DeleteConfirmationDialog.d.ts → ConfirmationDialog.d.ts} +1 -1
  6. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +3 -1
  7. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +2 -2
  8. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +17 -3
  9. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +1 -1
  10. package/dist/components/EntityCollectionTable/index.d.ts +1 -1
  11. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +6 -3
  12. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +8 -0
  13. package/dist/components/EntityCollectionView/utils.d.ts +3 -0
  14. package/dist/components/EntityJsonPreview.d.ts +3 -0
  15. package/dist/components/EntityPreview.d.ts +8 -6
  16. package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
  17. package/dist/components/HomePage/HomePageDnD.d.ts +76 -0
  18. package/dist/components/HomePage/NavigationCard.d.ts +3 -1
  19. package/dist/components/HomePage/NavigationCardBinding.d.ts +3 -2
  20. package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
  21. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  22. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  23. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  24. package/dist/components/SelectableTable/SelectableTable.d.ts +13 -3
  25. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +1 -1
  26. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  27. package/dist/components/VirtualTable/VirtualTableProps.d.ts +11 -2
  28. package/dist/components/common/default_entity_actions.d.ts +0 -2
  29. package/dist/components/common/index.d.ts +1 -1
  30. package/dist/components/common/useColumnsIds.d.ts +1 -0
  31. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +10 -2
  32. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  33. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  34. package/dist/components/index.d.ts +3 -1
  35. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  36. package/dist/core/DefaultAppBar.d.ts +8 -2
  37. package/dist/core/DrawerNavigationItem.d.ts +2 -1
  38. package/dist/core/EntityEditView.d.ts +40 -22
  39. package/dist/core/EntityEditViewFormActions.d.ts +2 -0
  40. package/dist/core/FireCMS.d.ts +2 -2
  41. package/dist/core/FireCMSRouter.d.ts +4 -0
  42. package/dist/core/NavigationRoutes.d.ts +0 -1
  43. package/dist/core/SideDialogs.d.ts +4 -2
  44. package/dist/core/field_configs.d.ts +1 -1
  45. package/dist/core/index.d.ts +2 -1
  46. package/dist/form/EntityForm.d.ts +50 -0
  47. package/dist/form/EntityFormActions.d.ts +21 -0
  48. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  49. package/dist/form/components/FormEntry.d.ts +6 -0
  50. package/dist/form/components/FormLayout.d.ts +5 -0
  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/index.d.ts +3 -1
  54. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  55. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  56. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  57. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  58. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  59. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  60. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  61. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  62. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
  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 +4 -10
  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 +17 -16
  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 +3 -3
  73. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  74. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  75. package/dist/hooks/useAuthController.d.ts +1 -1
  76. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  77. package/dist/hooks/useBuildNavigationController.d.ts +57 -12
  78. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  79. package/dist/hooks/useModeController.d.ts +1 -2
  80. package/dist/hooks/useProjectLog.d.ts +7 -1
  81. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  82. package/dist/hooks/useValidateAuthenticator.d.ts +3 -3
  83. package/dist/index.es.js +20108 -14471
  84. package/dist/index.es.js.map +1 -1
  85. package/dist/index.umd.js +20039 -14407
  86. package/dist/index.umd.js.map +1 -1
  87. package/dist/internal/useBuildDataSource.d.ts +3 -2
  88. package/dist/internal/useBuildSideEntityController.d.ts +3 -3
  89. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  90. package/dist/preview/PropertyPreviewProps.d.ts +1 -1
  91. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  92. package/dist/preview/components/ReferencePreview.d.ts +2 -2
  93. package/dist/preview/util.d.ts +3 -3
  94. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  95. package/dist/routes/FireCMSRoute.d.ts +1 -0
  96. package/dist/routes/HomePageRoute.d.ts +3 -0
  97. package/dist/types/analytics.d.ts +1 -1
  98. package/dist/types/auth.d.ts +7 -9
  99. package/dist/types/collections.d.ts +86 -25
  100. package/dist/types/customization_controller.d.ts +8 -0
  101. package/dist/types/datasource.d.ts +19 -17
  102. package/dist/types/dialogs_controller.d.ts +7 -3
  103. package/dist/types/entities.d.ts +2 -1
  104. package/dist/types/entity_actions.d.ts +58 -8
  105. package/dist/types/entity_callbacks.d.ts +16 -16
  106. package/dist/types/entity_overrides.d.ts +2 -2
  107. package/dist/types/export_import.d.ts +4 -4
  108. package/dist/types/fields.d.ts +43 -17
  109. package/dist/types/firecms.d.ts +16 -3
  110. package/dist/types/firecms_context.d.ts +1 -1
  111. package/dist/types/navigation.d.ts +60 -17
  112. package/dist/types/permissions.d.ts +4 -4
  113. package/dist/types/plugins.d.ts +42 -9
  114. package/dist/types/properties.d.ts +65 -22
  115. package/dist/types/property_config.d.ts +1 -3
  116. package/dist/types/roles.d.ts +3 -0
  117. package/dist/types/side_dialogs_controller.d.ts +10 -0
  118. package/dist/types/side_entity_controller.d.ts +14 -1
  119. package/dist/types/storage.d.ts +75 -0
  120. package/dist/types/user.d.ts +1 -0
  121. package/dist/util/builders.d.ts +3 -3
  122. package/dist/util/callbacks.d.ts +2 -0
  123. package/dist/util/createFormexStub.d.ts +2 -0
  124. package/dist/util/entities.d.ts +2 -2
  125. package/dist/util/entity_actions.d.ts +2 -0
  126. package/dist/util/entity_cache.d.ts +23 -0
  127. package/dist/util/icon_synonyms.d.ts +0 -1
  128. package/dist/util/icons.d.ts +5 -2
  129. package/dist/util/index.d.ts +3 -0
  130. package/dist/util/navigation_from_path.d.ts +10 -1
  131. package/dist/util/navigation_utils.d.ts +13 -1
  132. package/dist/util/objects.d.ts +2 -1
  133. package/dist/util/permissions.d.ts +4 -4
  134. package/dist/util/property_utils.d.ts +4 -4
  135. package/dist/util/references.d.ts +2 -2
  136. package/dist/util/resolutions.d.ts +30 -6
  137. package/dist/util/storage.d.ts +1 -1
  138. package/dist/util/useStorageUploadController.d.ts +2 -2
  139. package/package.json +133 -125
  140. package/src/app/Drawer.tsx +0 -1
  141. package/src/app/Scaffold.tsx +33 -29
  142. package/src/components/ArrayContainer.tsx +447 -229
  143. package/src/components/CircularProgressCenter.tsx +1 -1
  144. package/src/components/ClearFilterSortButton.tsx +1 -1
  145. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
  146. package/src/components/DeleteEntityDialog.tsx +13 -20
  147. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +59 -25
  148. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +23 -17
  149. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +20 -3
  150. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +35 -9
  151. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +21 -16
  152. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +6 -12
  153. package/src/components/EntityCollectionTable/index.tsx +1 -1
  154. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +6 -6
  155. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +35 -26
  156. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  157. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +132 -101
  158. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
  159. package/src/components/EntityCollectionView/EntityCollectionView.tsx +178 -85
  160. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
  161. package/src/components/EntityCollectionView/useSelectionController.tsx +5 -4
  162. package/src/components/EntityCollectionView/utils.ts +19 -0
  163. package/src/components/EntityJsonPreview.tsx +66 -0
  164. package/src/components/EntityPreview.tsx +75 -57
  165. package/src/components/EntityView.tsx +8 -5
  166. package/src/components/ErrorView.tsx +3 -3
  167. package/src/components/FireCMSLogo.tsx +7 -51
  168. package/src/components/HomePage/DefaultHomePage.tsx +522 -160
  169. package/src/components/HomePage/FavouritesView.tsx +9 -14
  170. package/src/components/HomePage/HomePageDnD.tsx +642 -0
  171. package/src/components/HomePage/NavigationCard.tsx +47 -38
  172. package/src/components/HomePage/NavigationCardBinding.tsx +16 -15
  173. package/src/components/HomePage/NavigationGroup.tsx +144 -30
  174. package/src/components/HomePage/RenameGroupDialog.tsx +117 -0
  175. package/src/components/HomePage/SmallNavigationCard.tsx +1 -2
  176. package/src/components/NotFoundPage.tsx +2 -2
  177. package/src/components/PropertyConfigBadge.tsx +9 -3
  178. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  179. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +22 -13
  180. package/src/components/SearchIconsView.tsx +2 -2
  181. package/src/components/SelectableTable/SelectableTable.tsx +154 -142
  182. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +4 -2
  183. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +10 -8
  184. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +59 -10
  185. package/src/components/UnsavedChangesDialog.tsx +46 -0
  186. package/src/components/VirtualTable/VirtualTable.tsx +65 -44
  187. package/src/components/VirtualTable/VirtualTableCell.tsx +0 -8
  188. package/src/components/VirtualTable/VirtualTableHeader.tsx +8 -8
  189. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +1 -1
  190. package/src/components/VirtualTable/VirtualTableProps.tsx +12 -2
  191. package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
  192. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +4 -4
  193. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
  194. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  195. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  196. package/src/components/common/default_entity_actions.tsx +62 -42
  197. package/src/components/common/index.ts +1 -1
  198. package/src/components/common/useColumnsIds.tsx +1 -1
  199. package/src/components/common/useDataSourceTableController.tsx +420 -0
  200. package/src/components/common/useDebouncedCallback.tsx +20 -0
  201. package/src/components/common/useScrollRestoration.tsx +68 -0
  202. package/src/components/common/useTableSearchHelper.ts +1 -0
  203. package/src/components/index.tsx +4 -1
  204. package/src/contexts/BreacrumbsContext.tsx +38 -0
  205. package/src/contexts/DialogsProvider.tsx +3 -2
  206. package/src/contexts/ModeController.tsx +1 -3
  207. package/src/contexts/SnackbarProvider.tsx +2 -0
  208. package/src/core/DefaultAppBar.tsx +124 -85
  209. package/src/core/DefaultDrawer.tsx +30 -22
  210. package/src/core/DrawerNavigationItem.tsx +32 -28
  211. package/src/core/EntityEditView.tsx +388 -995
  212. package/src/core/EntityEditViewFormActions.tsx +329 -0
  213. package/src/core/EntitySidePanel.tsx +88 -20
  214. package/src/core/FireCMS.tsx +46 -25
  215. package/src/core/FireCMSRouter.tsx +17 -0
  216. package/src/core/NavigationRoutes.tsx +23 -32
  217. package/src/core/SideDialogs.tsx +22 -12
  218. package/src/core/field_configs.tsx +24 -10
  219. package/src/core/index.tsx +4 -2
  220. package/src/form/EntityForm.tsx +814 -0
  221. package/src/form/EntityFormActions.tsx +211 -0
  222. package/src/form/PropertyFieldBinding.tsx +55 -41
  223. package/src/form/components/CustomIdField.tsx +9 -3
  224. package/src/form/components/FieldHelperText.tsx +1 -1
  225. package/src/form/components/FormEntry.tsx +22 -0
  226. package/src/form/components/FormLayout.tsx +16 -0
  227. package/src/form/components/LabelWithIcon.tsx +30 -19
  228. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  229. package/src/form/components/StorageItemPreview.tsx +5 -4
  230. package/src/form/components/StorageUploadProgress.tsx +2 -3
  231. package/src/form/components/index.tsx +3 -1
  232. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +30 -18
  233. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +47 -36
  234. package/src/form/field_bindings/BlockFieldBinding.tsx +55 -33
  235. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
  236. package/src/form/field_bindings/KeyValueFieldBinding.tsx +19 -15
  237. package/src/form/field_bindings/MapFieldBinding.tsx +72 -62
  238. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
  239. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
  240. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +10 -8
  241. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
  242. package/src/form/field_bindings/ReferenceFieldBinding.tsx +28 -19
  243. package/src/form/field_bindings/RepeatFieldBinding.tsx +56 -32
  244. package/src/form/field_bindings/SelectFieldBinding.tsx +22 -13
  245. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +247 -168
  246. package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
  247. package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
  248. package/src/form/index.tsx +17 -37
  249. package/src/form/useClearRestoreValue.tsx +2 -2
  250. package/src/form/validation.ts +12 -6
  251. package/src/hooks/data/delete.ts +6 -5
  252. package/src/hooks/data/save.ts +26 -35
  253. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  254. package/src/hooks/data/useDataSource.tsx +10 -2
  255. package/src/hooks/data/useEntityFetch.tsx +10 -6
  256. package/src/hooks/useAuthController.tsx +1 -1
  257. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  258. package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
  259. package/src/hooks/useBuildModeController.tsx +15 -28
  260. package/src/hooks/useBuildNavigationController.tsx +386 -124
  261. package/src/hooks/useFireCMSContext.tsx +3 -33
  262. package/src/hooks/useLargeLayout.tsx +0 -35
  263. package/src/hooks/useModeController.tsx +1 -2
  264. package/src/hooks/useProjectLog.tsx +16 -5
  265. package/src/hooks/useResolvedNavigationFrom.tsx +9 -11
  266. package/src/hooks/useValidateAuthenticator.tsx +3 -3
  267. package/src/internal/useBuildDataSource.ts +67 -80
  268. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  269. package/src/internal/useBuildSideEntityController.tsx +149 -86
  270. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  271. package/src/preview/PropertyPreview.tsx +28 -12
  272. package/src/preview/PropertyPreviewProps.tsx +1 -1
  273. package/src/preview/components/BooleanPreview.tsx +1 -1
  274. package/src/preview/components/EmptyValue.tsx +1 -1
  275. package/src/preview/components/EnumValuesChip.tsx +1 -1
  276. package/src/preview/components/ImagePreview.tsx +10 -9
  277. package/src/preview/components/ReferencePreview.tsx +6 -16
  278. package/src/preview/components/UrlComponentPreview.tsx +20 -21
  279. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -5
  280. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +5 -4
  281. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -3
  282. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -3
  283. package/src/preview/property_previews/ArrayOneOfPreview.tsx +6 -4
  284. package/src/preview/property_previews/ArrayPropertyPreview.tsx +5 -3
  285. package/src/preview/property_previews/MapPropertyPreview.tsx +7 -6
  286. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
  287. package/src/preview/property_previews/StringPropertyPreview.tsx +2 -2
  288. package/src/preview/util.ts +10 -10
  289. package/src/routes/CustomCMSRoute.tsx +21 -0
  290. package/src/routes/FireCMSRoute.tsx +246 -0
  291. package/src/routes/HomePageRoute.tsx +17 -0
  292. package/src/types/analytics.ts +3 -0
  293. package/src/types/auth.tsx +8 -12
  294. package/src/types/collections.ts +101 -28
  295. package/src/types/customization_controller.tsx +9 -0
  296. package/src/types/datasource.ts +21 -20
  297. package/src/types/dialogs_controller.tsx +7 -3
  298. package/src/types/entities.ts +3 -1
  299. package/src/types/entity_actions.tsx +71 -8
  300. package/src/types/entity_callbacks.ts +18 -18
  301. package/src/types/entity_overrides.tsx +2 -2
  302. package/src/types/export_import.ts +4 -4
  303. package/src/types/fields.tsx +52 -19
  304. package/src/types/firecms.tsx +18 -4
  305. package/src/types/firecms_context.tsx +1 -1
  306. package/src/types/navigation.ts +76 -22
  307. package/src/types/permissions.ts +5 -5
  308. package/src/types/plugins.tsx +50 -9
  309. package/src/types/properties.ts +74 -22
  310. package/src/types/property_config.tsx +1 -2
  311. package/src/types/roles.ts +3 -0
  312. package/src/types/side_dialogs_controller.tsx +15 -0
  313. package/src/types/side_entity_controller.tsx +16 -1
  314. package/src/types/storage.ts +82 -0
  315. package/src/types/user.ts +2 -0
  316. package/src/util/builders.ts +10 -8
  317. package/src/util/callbacks.ts +119 -0
  318. package/src/util/createFormexStub.tsx +62 -0
  319. package/src/util/entities.ts +5 -3
  320. package/src/util/entity_actions.ts +28 -0
  321. package/src/util/entity_cache.ts +204 -0
  322. package/src/util/icon_list.ts +1 -1
  323. package/src/util/icon_synonyms.ts +0 -1
  324. package/src/util/icons.tsx +36 -11
  325. package/src/util/index.ts +3 -0
  326. package/src/util/join_collections.ts +9 -2
  327. package/src/util/make_properties_editable.ts +13 -5
  328. package/src/util/navigation_from_path.ts +33 -12
  329. package/src/util/navigation_utils.ts +135 -19
  330. package/src/util/objects.ts +74 -14
  331. package/src/util/parent_references_from_path.ts +3 -3
  332. package/src/util/permissions.ts +8 -8
  333. package/src/util/property_utils.tsx +17 -6
  334. package/src/util/references.ts +19 -8
  335. package/src/util/resolutions.ts +93 -24
  336. package/src/util/storage.ts +6 -2
  337. package/src/util/useStorageUploadController.tsx +74 -29
  338. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
  339. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  340. package/dist/form/PropertiesForm.d.ts +0 -8
  341. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  342. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  343. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
  344. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -27
  345. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -236
  346. package/src/form/PropertiesForm.tsx +0 -81
  347. package/src/form/components/FormikArrayContainer.tsx +0 -44
  348. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  349. /package/src/util/{common.tsx → common.ts} +0 -0
@@ -0,0 +1,211 @@
1
+ import React from "react";
2
+ import {
3
+ Entity,
4
+ EntityAction,
5
+ FireCMSContext,
6
+ FormContext,
7
+ ResolvedEntityCollection,
8
+ SideEntityController
9
+ } from "../types";
10
+ import { Button, cls, defaultBorderMixin, DialogActions, IconButton, LoadingButton, Typography } from "@firecms/ui";
11
+ import { FormexController } from "@firecms/formex";
12
+ import { useFireCMSContext, useSideEntityController } from "../hooks";
13
+
14
+ export interface EntityFormActionsProps {
15
+ fullPath: string;
16
+ fullIdPath?: string;
17
+ collection: ResolvedEntityCollection;
18
+ path: string;
19
+ entity?: Entity;
20
+ layout: "bottom" | "side";
21
+ savingError?: Error;
22
+ formex: FormexController<any>;
23
+ disabled: boolean;
24
+ status: "new" | "existing" | "copy";
25
+ pluginActions: React.ReactNode[];
26
+ openEntityMode: "side_panel" | "full_screen";
27
+ showDefaultActions?: boolean;
28
+ navigateBack: () => void;
29
+ formContext: FormContext
30
+ }
31
+
32
+ export function EntityFormActions({
33
+ fullPath,
34
+ fullIdPath,
35
+ collection,
36
+ entity,
37
+ layout,
38
+ savingError,
39
+ formex,
40
+ disabled,
41
+ status,
42
+ pluginActions,
43
+ openEntityMode,
44
+ navigateBack,
45
+ formContext
46
+ }: EntityFormActionsProps) {
47
+
48
+ const context = useFireCMSContext();
49
+ const sideEntityController = useSideEntityController();
50
+
51
+ return layout === "bottom"
52
+ ? buildBottomActions({
53
+ fullPath,
54
+ fullIdPath,
55
+ savingError,
56
+ entity,
57
+ collection,
58
+ context,
59
+ sideEntityController,
60
+ isSubmitting: formex.isSubmitting,
61
+ disabled,
62
+ status,
63
+ pluginActions,
64
+ openEntityMode,
65
+ navigateBack,
66
+ formContext
67
+ })
68
+ : buildSideActions({
69
+ fullPath,
70
+ fullIdPath,
71
+ savingError,
72
+ entity,
73
+ collection,
74
+ context,
75
+ sideEntityController,
76
+ isSubmitting: formex.isSubmitting,
77
+ disabled,
78
+ status,
79
+ pluginActions,
80
+ openEntityMode,
81
+ navigateBack,
82
+ formContext
83
+ });
84
+ }
85
+
86
+ type ActionsViewProps<M extends object> = {
87
+ fullPath: string,
88
+ fullIdPath?: string,
89
+ savingError: Error | undefined,
90
+ entity: Entity<M> | undefined,
91
+ formActions?: EntityAction[],
92
+ collection: ResolvedEntityCollection,
93
+ context: FireCMSContext,
94
+ sideEntityController: SideEntityController,
95
+ isSubmitting: boolean,
96
+ disabled: boolean,
97
+ status: "new" | "existing" | "copy",
98
+ pluginActions?: React.ReactNode[],
99
+ openEntityMode: "side_panel" | "full_screen";
100
+ navigateBack: () => void;
101
+ formContext: FormContext
102
+ };
103
+
104
+ function buildBottomActions<M extends object>({
105
+ savingError,
106
+ entity,
107
+ fullPath,
108
+ fullIdPath,
109
+ formActions,
110
+ collection,
111
+ context,
112
+ sideEntityController,
113
+ isSubmitting,
114
+ disabled,
115
+ status,
116
+ pluginActions,
117
+ openEntityMode,
118
+ navigateBack,
119
+ formContext
120
+ }: ActionsViewProps<M>) {
121
+
122
+ return <DialogActions position={"absolute"}>
123
+ {savingError &&
124
+ <div className="text-right">
125
+ <Typography color={"error"}>{savingError.message}</Typography>
126
+ </div>
127
+ }
128
+ {entity && (formActions ?? []).length > 0 && <div className="flex-grow flex overflow-auto no-scrollbar">
129
+ {(formActions ?? []).map(action => (
130
+ <IconButton
131
+ key={action.name}
132
+ color="primary"
133
+ onClick={(event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {
134
+ event.stopPropagation();
135
+ if (entity)
136
+ action.onClick({
137
+ view: "form",
138
+ entity,
139
+ fullPath: fullPath ?? collection.path,
140
+ fullIdPath: fullIdPath ?? collection.id,
141
+ collection: collection,
142
+ context,
143
+ sideEntityController,
144
+ openEntityMode: openEntityMode,
145
+ navigateBack,
146
+ formContext
147
+ });
148
+ }}>
149
+ {action.icon}
150
+ </IconButton>
151
+ ))}
152
+ </div>}
153
+ {pluginActions}
154
+ <Button variant="text" disabled={disabled || isSubmitting}
155
+ color={"primary"}
156
+ type="reset">
157
+ {status === "existing" ? "Discard" : "Clear"}
158
+ </Button>
159
+ <Button variant={"filled"}
160
+ color="primary"
161
+ type="submit"
162
+ disabled={disabled || isSubmitting}>
163
+ {status === "existing" && "Save"}
164
+ {status === "copy" && "Create copy"}
165
+ {status === "new" && "Create"}
166
+ </Button>
167
+
168
+ </DialogActions>;
169
+ }
170
+
171
+ function buildSideActions<M extends object>({
172
+ savingError,
173
+ entity,
174
+ formActions,
175
+ fullPath,
176
+ fullIdPath,
177
+ openEntityMode,
178
+ collection,
179
+ context,
180
+ sideEntityController,
181
+ isSubmitting,
182
+ disabled,
183
+ status,
184
+ pluginActions
185
+ }: ActionsViewProps<M>) {
186
+
187
+ return <div
188
+ className={cls("overflow-auto h-full flex flex-col gap-2 w-80 2xl:w-96 px-4 py-16 sticky top-0 border-l", defaultBorderMixin)}>
189
+ <LoadingButton fullWidth={true}
190
+ variant="filled"
191
+ color="primary"
192
+ type="submit"
193
+ size={"large"}
194
+ disabled={disabled || isSubmitting}>
195
+ {status === "existing" && "Save"}
196
+ {status === "copy" && "Create copy"}
197
+ {status === "new" && "Create"}
198
+ </LoadingButton>
199
+ <Button fullWidth={true} variant="text" disabled={disabled || isSubmitting} type="reset">
200
+ {status === "existing" ? "Discard" : "Clear"}
201
+ </Button>
202
+
203
+ {pluginActions}
204
+
205
+ {savingError &&
206
+ <div className="text-right">
207
+ <Typography color={"error"}>{savingError.message}</Typography>
208
+ </div>
209
+ }
210
+ </div>;
211
+ }
@@ -5,19 +5,19 @@ import { Field, FieldProps as FormexFieldProps, getIn } from "@firecms/formex";
5
5
 
6
6
  import {
7
7
  CMSType,
8
- EntityCollection,
9
8
  FieldProps,
10
9
  FireCMSPlugin,
11
10
  PluginFieldBuilderParams,
12
11
  Property,
13
12
  PropertyFieldBindingProps,
14
13
  PropertyOrBuilder,
14
+ ResolvedEntityCollection,
15
15
  ResolvedProperty
16
16
  } from "../types";
17
17
  import { ReadOnlyFieldBinding } from "./field_bindings/ReadOnlyFieldBinding";
18
18
 
19
19
  import { isHidden, isPropertyBuilder, isReadOnly, resolveProperty } from "../util";
20
- import { useCustomizationController } from "../hooks";
20
+ import { useAuthController, useCustomizationController } from "../hooks";
21
21
  import { Typography } from "@firecms/ui";
22
22
  import { getFieldConfig, getFieldId } from "../core";
23
23
  import { ErrorBoundary } from "../components";
@@ -54,6 +54,10 @@ export const PropertyFieldBinding = React.memo(PropertyFieldBindingInternal, (a:
54
54
  if (a.index !== b.index) {
55
55
  return false;
56
56
  }
57
+
58
+ if (a.size !== b.size) {
59
+ return false;
60
+ }
57
61
  const aIsBuilder = isPropertyBuilder(a.property) || a.property.fromBuilder;
58
62
  const bIsBuilder = isPropertyBuilder(b.property) || b.property.fromBuilder;
59
63
 
@@ -70,21 +74,23 @@ export const PropertyFieldBinding = React.memo(PropertyFieldBindingInternal, (a:
70
74
  return false;
71
75
  }) as typeof PropertyFieldBindingInternal;
72
76
 
73
- function PropertyFieldBindingInternal<T extends CMSType = CMSType, M extends Record<string, any> = Record<string, any>>
77
+ function PropertyFieldBindingInternal<T extends CMSType = CMSType, M extends Record<string, any> = any>
74
78
  ({
75
79
  propertyKey,
76
80
  property,
77
81
  context,
78
82
  includeDescription,
79
83
  underlyingValueHasChanged,
80
- disabled,
81
- tableMode,
84
+ disabled: disabledProp,
82
85
  partOfArray,
83
- partOfBlock,
86
+ minimalistView,
84
87
  autoFocus,
85
88
  index,
89
+ size,
90
+ onPropertyChange,
86
91
  }: PropertyFieldBindingProps<T, M>): ReactElement<PropertyFieldBindingProps<T, M>> {
87
92
 
93
+ const authController = useAuthController();
88
94
  const customizationController = useCustomizationController();
89
95
 
90
96
  return (
@@ -101,10 +107,13 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, M extends Rec
101
107
  values: fieldProps.form.values,
102
108
  path: context.path,
103
109
  entityId: context.entityId,
104
- fields: customizationController.propertyConfigs,
105
- index
110
+ propertyConfigs: customizationController.propertyConfigs,
111
+ index,
112
+ authController
106
113
  });
107
114
 
115
+ const disabled = disabledProp || isReadOnly(resolvedProperty) || Boolean(resolvedProperty?.disabled) || context.disabled;
116
+
108
117
  if (resolvedProperty === null || isHidden(resolvedProperty)) {
109
118
  return <></>;
110
119
  } else if (isReadOnly(resolvedProperty)) {
@@ -118,6 +127,7 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, M extends Rec
118
127
  if (!propertyConfig) {
119
128
  console.log("INTERNAL: Could not find field config for property", {
120
129
  propertyKey,
130
+ property,
121
131
  resolvedProperty,
122
132
  fields: customizationController.propertyConfigs,
123
133
  propertyConfig
@@ -130,8 +140,9 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, M extends Rec
130
140
  values: fieldProps.form.values,
131
141
  path: context.path,
132
142
  entityId: context.entityId,
133
- fields: customizationController.propertyConfigs,
134
- index
143
+ propertyConfigs: customizationController.propertyConfigs,
144
+ index,
145
+ authController
135
146
  });
136
147
  Component = configProperty.Field as ComponentType<FieldProps<T>>;
137
148
  }
@@ -139,7 +150,9 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, M extends Rec
139
150
  console.warn(`No field component found for property ${propertyKey}`);
140
151
  console.warn("Property:", property);
141
152
  return (
142
- <div>{`Currently the field ${resolvedProperty.dataType} is not supported`}</div>
153
+ <div className={"w-full"}>
154
+ {`Currently the field ${resolvedProperty.dataType} is not supported`}
155
+ </div>
143
156
  );
144
157
  }
145
158
 
@@ -150,23 +163,24 @@ function PropertyFieldBindingInternal<T extends CMSType = CMSType, M extends Rec
150
163
  underlyingValueHasChanged,
151
164
  context,
152
165
  disabled,
153
- tableMode,
154
166
  partOfArray,
155
- partOfBlock,
156
- autoFocus
167
+ minimalistView,
168
+ autoFocus,
169
+ size,
170
+ onPropertyChange
157
171
  };
158
172
 
159
173
  return <FieldInternal
160
174
  Component={Component as ComponentType<FieldProps>}
161
175
  componentProps={componentProps}
162
- fieldProps={fieldProps}/>;
176
+ formexFieldProps={fieldProps}/>;
163
177
  }}
164
178
  </Field>
165
179
  );
166
180
 
167
181
  }
168
182
 
169
- type ResolvedPropertyFieldBindingProps<T extends CMSType = CMSType, M extends Record<string, any> = Record<string, any>> =
183
+ type ResolvedPropertyFieldBindingProps<T extends CMSType = CMSType, M extends Record<string, any> = any> =
170
184
  Omit<PropertyFieldBindingProps<T, M>, "property">
171
185
  & {
172
186
  property: ResolvedProperty<T>
@@ -180,31 +194,31 @@ function FieldInternal<T extends CMSType, CustomProps, M extends Record<string,
180
194
  property,
181
195
  includeDescription,
182
196
  underlyingValueHasChanged,
183
- tableMode,
184
197
  partOfArray,
185
- partOfBlock,
198
+ minimalistView,
186
199
  autoFocus,
187
200
  context,
188
- disabled
201
+ disabled,
202
+ size,
203
+ onPropertyChange
189
204
  },
190
- fieldProps
205
+ formexFieldProps
191
206
  }:
192
- {
193
- Component: ComponentType<FieldProps<T, any, M>>,
194
- componentProps: ResolvedPropertyFieldBindingProps<T, M>,
195
- fieldProps: FormexFieldProps<T, any>
196
- }) {
207
+ {
208
+ Component: ComponentType<FieldProps<T, any, M>>,
209
+ componentProps: ResolvedPropertyFieldBindingProps<T, M>,
210
+ formexFieldProps: FormexFieldProps<T, any>
211
+ }) {
197
212
 
198
213
  const { plugins } = useCustomizationController();
199
214
 
200
215
  const customFieldProps: any = property.customProps;
201
- const value = fieldProps.field.value;
202
- // const initialValue = fieldProps.meta.initialValue;
203
- const error = getIn(fieldProps.form.errors, propertyKey);
204
- const touched = getIn(fieldProps.form.touched, propertyKey);
216
+ const value = formexFieldProps.field.value;
217
+ const error = getIn(formexFieldProps.form.errors, propertyKey);
218
+ const touched = getIn(formexFieldProps.form.touched, propertyKey);
205
219
 
206
220
  const showError: boolean = error &&
207
- (fieldProps.form.submitCount > 0 || property.validation?.unique) &&
221
+ (formexFieldProps.form.submitCount > 0 || property.validation?.unique) &&
208
222
  (!Array.isArray(error) || !!error.filter((e: any) => !!e).length);
209
223
 
210
224
  const WrappedComponent: ComponentType<FieldProps<T, any, M>> | null = useWrappedComponent({
@@ -217,22 +231,21 @@ function FieldInternal<T extends CMSType, CustomProps, M extends Record<string,
217
231
  });
218
232
  const UsedComponent: ComponentType<FieldProps<T>> = WrappedComponent ?? Component;
219
233
 
220
- const isSubmitting = fieldProps.form.isSubmitting;
234
+ const isSubmitting = formexFieldProps.form.isSubmitting;
221
235
 
222
236
  const setValue = useCallback((value: T | null, shouldValidate?: boolean) => {
223
- fieldProps.form.setFieldTouched(propertyKey, true, false);
224
- fieldProps.form.setFieldValue(propertyKey, value, shouldValidate);
237
+ formexFieldProps.form.setFieldTouched(propertyKey, true, false);
238
+ formexFieldProps.form.setFieldValue(propertyKey, value, shouldValidate);
225
239
  }, []);
226
240
 
227
241
  const setFieldValue = useCallback((otherPropertyKey: string, value: CMSType | null, shouldValidate?: boolean) => {
228
- fieldProps.form.setFieldTouched(propertyKey, true, false);
229
- fieldProps.form.setFieldValue(otherPropertyKey, value, shouldValidate);
242
+ formexFieldProps.form.setFieldTouched(propertyKey, true, false);
243
+ formexFieldProps.form.setFieldValue(otherPropertyKey, value, shouldValidate);
230
244
  }, []);
231
245
 
232
246
  const cmsFieldProps: FieldProps<T, CustomProps, M> = {
233
247
  propertyKey,
234
248
  value: value as T,
235
- // initialValue,
236
249
  setValue,
237
250
  setFieldValue,
238
251
  error,
@@ -243,12 +256,13 @@ function FieldInternal<T extends CMSType, CustomProps, M extends Record<string,
243
256
  property: property as ResolvedProperty<T>,
244
257
  disabled: disabled ?? false,
245
258
  underlyingValueHasChanged: underlyingValueHasChanged ?? false,
246
- tableMode: tableMode ?? false,
247
259
  partOfArray: partOfArray ?? false,
248
- partOfBlock: partOfBlock ?? false,
260
+ minimalistView: minimalistView ?? false,
249
261
  autoFocus: autoFocus ?? false,
250
262
  customProps: customFieldProps,
251
- context
263
+ context,
264
+ size,
265
+ onPropertyChange
252
266
  };
253
267
 
254
268
  return (
@@ -286,7 +300,7 @@ const shouldPropertyReRender = (property: PropertyOrBuilder | ResolvedProperty,
286
300
 
287
301
  interface UseWrappedComponentParams<T extends CMSType = CMSType, M extends Record<string, any> = any> {
288
302
  path?: string,
289
- collection?: EntityCollection<M>,
303
+ collection?: ResolvedEntityCollection<M>,
290
304
  propertyKey: string,
291
305
  property: ResolvedProperty<T>,
292
306
  Component: ComponentType<FieldProps<T, any, M>>,
@@ -317,7 +331,7 @@ function useWrappedComponent<T extends CMSType = CMSType, M extends Record<strin
317
331
  Field: Component,
318
332
  plugin,
319
333
  path,
320
- collection
334
+ collection,
321
335
  };
322
336
  const enabled = plugin.form?.fieldBuilderEnabled?.(params);
323
337
  if (enabled === undefined || enabled)
@@ -68,7 +68,8 @@ export function CustomIdField<M extends Record<string, any>>({
68
68
  ? (
69
69
  <>
70
70
 
71
- <Tooltip title={"Copy"}>
71
+ <Tooltip title={"Copy"}
72
+ asChild={true}>
72
73
  <IconButton onClick={(e) => copy(entity.id)}
73
74
  aria-label="copy-id">
74
75
  <ContentCopyIcon size={"small"}/>
@@ -76,7 +77,8 @@ export function CustomIdField<M extends Record<string, any>>({
76
77
  </Tooltip>
77
78
 
78
79
  {customizationController?.entityLinkBuilder &&
79
- <Tooltip title={"Open in the console"}>
80
+ <Tooltip title={"Open in the console"}
81
+ asChild={true}>
80
82
  <IconButton component={"a"}
81
83
  href={customizationController.entityLinkBuilder({ entity })}
82
84
  rel="noopener noreferrer"
@@ -98,8 +100,12 @@ export function CustomIdField<M extends Record<string, any>>({
98
100
 
99
101
  {enumValues &&
100
102
  <Select
103
+ size={"large"}
101
104
  error={error}
102
- onValueChange={(v) => onChange(v as string)}
105
+ fullWidth={true}
106
+ onValueChange={(v) => {
107
+ onChange(v as string);
108
+ }}
103
109
  {...fieldProps}
104
110
  renderValue={(option) => {
105
111
  const enumConfig = enumValues.find(e => e.id === option);
@@ -44,7 +44,7 @@ export function FieldHelperText({
44
44
  {property.longDescription &&
45
45
  <Tooltip title={property.longDescription}
46
46
  side="bottom"
47
- >
47
+ asChild={true}>
48
48
  <IconButton
49
49
  size={"small"}
50
50
  className="self-start">
@@ -0,0 +1,22 @@
1
+ import React from "react";
2
+ import { ErrorBoundary } from "../../components";
3
+
4
+ export function FormEntry({
5
+ propertyKey,
6
+ widthPercentage = 100,
7
+ children
8
+ }: {
9
+ propertyKey: string;
10
+ widthPercentage?: number;
11
+ children: React.ReactNode;
12
+ }) {
13
+ return (
14
+ <div id={`form_field_${propertyKey}`}
15
+ className={"relative"}
16
+ style={{ width: widthPercentage === 100 ? "100%" : `calc(${widthPercentage}% - 8px)` }}>
17
+ <ErrorBoundary>
18
+ {children}
19
+ </ErrorBoundary>
20
+ </div>
21
+ );
22
+ }
@@ -0,0 +1,16 @@
1
+ import React from "react";
2
+ import { cls } from "@firecms/ui";
3
+
4
+ export function FormLayout({
5
+ children,
6
+ className
7
+ }: {
8
+ children: React.ReactNode;
9
+ className?: string;
10
+ }) {
11
+ return (
12
+ <div className={cls("flex flex-wrap gap-x-4 w-full space-y-8", className)}>
13
+ {children}
14
+ </div>
15
+ );
16
+ }
@@ -1,4 +1,5 @@
1
- import React from "react";
1
+ import React, { forwardRef } from "react";
2
+ import { cls } from "@firecms/ui";
2
3
 
3
4
  interface LabelWithIconProps {
4
5
  icon: React.ReactNode;
@@ -12,22 +13,32 @@ interface LabelWithIconProps {
12
13
  * Render the label of with an icon and the title of a property
13
14
  * @group Form custom fields
14
15
  */
15
- export function LabelWithIcon({
16
- icon,
17
- title,
18
- small,
19
- className,
20
- required
21
- }: LabelWithIconProps) {
22
- return (
23
- <span
24
- className={`inline-flex items-center my-0.5 ${small ? "gap-1" : "gap-2"} ${className ?? ""}`}>
25
-
26
- {icon}
27
-
28
- <span
29
- className={`text-start font-medium text-${small ? "base" : "sm"} origin-top-left transform ${small ? "translate-x-2 scale-75" : ""}`}>{(title ?? "") + (required ? " *" : "")}</span>
30
-
16
+ export const LabelWithIcon = forwardRef<HTMLDivElement, LabelWithIconProps>(
17
+ ({
18
+ icon,
19
+ title,
20
+ small,
21
+ className,
22
+ required
23
+ }, ref) => {
24
+ return (
25
+ <div
26
+ ref={ref}
27
+ className={cls("align-middle inline-flex items-center my-0.5",
28
+ small ? "gap-1" : "gap-2",
29
+ className)}
30
+ >
31
+ {icon}
32
+ <span
33
+ className={`text-start font-medium text-${small ? "base" : "sm"} origin-top-left transform ${
34
+ small ? "translate-x-2 scale-75" : ""
35
+ }`}
36
+ >
37
+ {(title ?? "") + (required ? " *" : "")}
31
38
  </span>
32
- );
33
- }
39
+ </div>
40
+ );
41
+ }
42
+ );
43
+
44
+ LabelWithIcon.displayName = "LabelWithIcon";
@@ -0,0 +1,28 @@
1
+ import React from "react";
2
+ import { LabelWithIcon } from "./LabelWithIcon";
3
+ import { PropertyIdCopyTooltip } from "../../components/PropertyIdCopyTooltip";
4
+
5
+ interface LabelWithIconAndTooltip {
6
+ icon: React.ReactNode;
7
+ title?: string;
8
+ small?: boolean;
9
+ className?: string;
10
+ required?: boolean;
11
+ propertyKey: string
12
+ }
13
+
14
+ /**
15
+ * Render the label of with an icon and the title of a property
16
+ * @group Form custom fields
17
+ */
18
+ export function LabelWithIconAndTooltip({
19
+ propertyKey,
20
+ className,
21
+ ...props
22
+ }: LabelWithIconAndTooltip) {
23
+ return (
24
+ <PropertyIdCopyTooltip propertyKey={propertyKey} className={className}>
25
+ <LabelWithIcon {...props}/>
26
+ </PropertyIdCopyTooltip>
27
+ );
28
+ }
@@ -30,15 +30,16 @@ export function StorageItemPreview({
30
30
 
31
31
  return (
32
32
  <div className={cls(paperMixin,
33
- "relative m-4 border-box flex items-center justify-center",
34
- size === "medium" ? "min-w-[220px] min-h-[220px] max-w-[220px]" : "min-w-[118px] min-h-[118px] max-w-[118px]",
33
+ "relative border-box flex items-center justify-center",
34
+ size === "large" ? "min-w-[220px] min-h-[220px] max-w-[220px]" : "min-w-[118px] min-h-[118px] max-w-[118px]",
35
35
  className)}>
36
36
 
37
37
  {!placeholder && !disabled &&
38
38
  <div
39
- className="absolute rounded-full -top-2 -right-2 z-10 bg-white dark:bg-gray-900">
39
+ className="absolute rounded-full -top-2 -right-2 z-10 bg-white dark:bg-surface-900">
40
40
 
41
41
  <Tooltip
42
+ asChild={true}
42
43
  title="Remove">
43
44
  <IconButton
44
45
  size={"small"}
@@ -66,7 +67,7 @@ export function StorageItemPreview({
66
67
  <div
67
68
  onClick={(e) => e.stopPropagation()}
68
69
  className="flex flex-col items-center justify-center w-full h-full">
69
- <DescriptionIcon className="text-gray-700 dark:text-gray-300"/>
70
+ <DescriptionIcon className="text-surface-700 dark:text-surface-300"/>
70
71
  </div>
71
72
  }
72
73