@firecms/core 3.0.0-canary.29 → 3.0.0-canary.292

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 (433) 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 +34 -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 +31 -12
  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 +14 -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 +20 -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/EntityJsonPreview.d.ts +3 -0
  25. package/dist/components/EntityPreview.d.ts +10 -7
  26. package/dist/components/ErrorView.d.ts +1 -1
  27. package/dist/components/HomePage/DefaultHomePage.d.ts +2 -15
  28. package/dist/components/HomePage/HomePageDnD.d.ts +77 -0
  29. package/dist/components/HomePage/NavigationCard.d.ts +3 -1
  30. package/dist/components/HomePage/NavigationCardBinding.d.ts +4 -3
  31. package/dist/components/HomePage/NavigationGroup.d.ts +8 -1
  32. package/dist/components/HomePage/RenameGroupDialog.d.ts +9 -0
  33. package/dist/components/PropertyCollectionView.d.ts +23 -0
  34. package/dist/components/PropertyConfigBadge.d.ts +2 -1
  35. package/dist/components/PropertyIdCopyTooltip.d.ts +8 -0
  36. package/dist/components/ReferenceWidget.d.ts +3 -1
  37. package/dist/components/SelectableTable/SelectableTable.d.ts +14 -4
  38. package/dist/components/SelectableTable/filters/ReferenceFilterField.d.ts +2 -1
  39. package/dist/components/UnsavedChangesDialog.d.ts +8 -0
  40. package/dist/components/UserDisplay.d.ts +7 -0
  41. package/dist/components/VirtualTable/VirtualTableProps.d.ts +24 -12
  42. package/dist/components/VirtualTable/fields/VirtualTableUserSelect.d.ts +12 -0
  43. package/dist/components/VirtualTable/types.d.ts +3 -3
  44. package/dist/components/{EntityCollectionTable/internal → common}/default_entity_actions.d.ts +1 -3
  45. package/dist/components/common/index.d.ts +2 -1
  46. package/dist/components/common/table_height.d.ts +5 -0
  47. package/dist/components/common/types.d.ts +4 -6
  48. package/dist/components/common/useColumnsIds.d.ts +3 -1
  49. package/dist/components/common/{useDataSourceEntityCollectionTableController.d.ts → useDataSourceTableController.d.ts} +13 -2
  50. package/dist/components/common/useDebouncedCallback.d.ts +1 -0
  51. package/dist/components/common/useScrollRestoration.d.ts +14 -0
  52. package/dist/components/index.d.ts +5 -2
  53. package/dist/contexts/BreacrumbsContext.d.ts +8 -0
  54. package/dist/contexts/InternalUserManagementContext.d.ts +3 -0
  55. package/dist/core/DefaultAppBar.d.ts +29 -0
  56. package/dist/core/DefaultDrawer.d.ts +19 -0
  57. package/dist/core/DrawerNavigationItem.d.ts +10 -0
  58. package/dist/core/EntityEditView.d.ts +49 -11
  59. package/dist/core/EntityEditViewFormActions.d.ts +2 -0
  60. package/dist/core/FireCMS.d.ts +2 -3
  61. package/dist/core/FireCMSRouter.d.ts +4 -0
  62. package/dist/core/NavigationRoutes.d.ts +2 -3
  63. package/dist/core/SideDialogs.d.ts +4 -2
  64. package/dist/core/field_configs.d.ts +1 -1
  65. package/dist/core/index.d.ts +4 -4
  66. package/dist/form/EntityForm.d.ts +40 -64
  67. package/dist/form/EntityFormActions.d.ts +21 -0
  68. package/dist/form/PropertyFieldBinding.d.ts +1 -1
  69. package/dist/form/components/ErrorFocus.d.ts +1 -1
  70. package/dist/form/components/FieldHelperText.d.ts +3 -3
  71. package/dist/form/components/FormEntry.d.ts +6 -0
  72. package/dist/form/components/FormLayout.d.ts +5 -0
  73. package/dist/form/components/LabelWithIcon.d.ts +1 -1
  74. package/dist/form/components/LabelWithIconAndTooltip.d.ts +15 -0
  75. package/dist/form/components/LocalChangesMenu.d.ts +11 -0
  76. package/dist/form/components/StorageItemPreview.d.ts +4 -4
  77. package/dist/form/components/index.d.ts +3 -1
  78. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +1 -1
  79. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +1 -1
  80. package/dist/form/field_bindings/BlockFieldBinding.d.ts +1 -1
  81. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +1 -1
  82. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  83. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +11 -0
  84. package/dist/form/field_bindings/{MultiSelectBinding.d.ts → MultiSelectFieldBinding.d.ts} +1 -1
  85. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +1 -1
  86. package/dist/form/field_bindings/ReferenceAsStringFieldBinding.d.ts +9 -0
  87. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +2 -2
  88. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +1 -1
  89. package/dist/form/field_bindings/SelectFieldBinding.d.ts +1 -1
  90. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +5 -13
  91. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +1 -2
  92. package/dist/form/field_bindings/TextFieldBinding.d.ts +1 -1
  93. package/dist/form/field_bindings/UserSelectFieldBinding.d.ts +12 -0
  94. package/dist/form/index.d.ts +18 -18
  95. package/dist/form/useClearRestoreValue.d.ts +2 -2
  96. package/dist/hooks/data/delete.d.ts +4 -4
  97. package/dist/hooks/data/save.d.ts +4 -5
  98. package/dist/hooks/data/useCollectionFetch.d.ts +1 -1
  99. package/dist/hooks/data/useEntityFetch.d.ts +4 -3
  100. package/dist/hooks/index.d.ts +3 -0
  101. package/dist/hooks/useAuthController.d.ts +1 -1
  102. package/dist/hooks/useBreadcrumbsController.d.ts +26 -0
  103. package/dist/hooks/useBuildNavigationController.d.ts +57 -13
  104. package/dist/hooks/useCollapsedGroups.d.ts +9 -0
  105. package/dist/hooks/useFireCMSContext.d.ts +1 -1
  106. package/dist/hooks/useInternalUserManagementController.d.ts +12 -0
  107. package/dist/hooks/useModeController.d.ts +1 -2
  108. package/dist/hooks/useProjectLog.d.ts +8 -2
  109. package/dist/hooks/useResolvedNavigationFrom.d.ts +3 -3
  110. package/dist/hooks/useValidateAuthenticator.d.ts +4 -8
  111. package/dist/index.d.ts +1 -0
  112. package/dist/index.es.js +24546 -13965
  113. package/dist/index.es.js.map +1 -1
  114. package/dist/index.umd.js +27256 -588
  115. package/dist/index.umd.js.map +1 -1
  116. package/dist/internal/useBuildDataSource.d.ts +3 -17
  117. package/dist/internal/useBuildSideEntityController.d.ts +3 -3
  118. package/dist/internal/useUnsavedChangesDialog.d.ts +7 -9
  119. package/dist/preview/PropertyPreviewProps.d.ts +6 -1
  120. package/dist/preview/components/EnumValuesChip.d.ts +1 -1
  121. package/dist/preview/components/ReferencePreview.d.ts +4 -3
  122. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  123. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  124. package/dist/preview/components/UserPreview.d.ts +8 -0
  125. package/dist/preview/index.d.ts +1 -0
  126. package/dist/preview/util.d.ts +3 -3
  127. package/dist/routes/CustomCMSRoute.d.ts +4 -0
  128. package/dist/routes/FireCMSRoute.d.ts +1 -0
  129. package/dist/routes/HomePageRoute.d.ts +3 -0
  130. package/dist/types/analytics.d.ts +1 -1
  131. package/dist/types/auth.d.ts +8 -10
  132. package/dist/types/collections.d.ts +123 -25
  133. package/dist/types/customization_controller.d.ts +8 -0
  134. package/dist/types/datasource.d.ts +52 -36
  135. package/dist/types/dialogs_controller.d.ts +7 -3
  136. package/dist/types/entities.d.ts +12 -3
  137. package/dist/types/entity_actions.d.ts +72 -8
  138. package/dist/types/entity_callbacks.d.ts +16 -16
  139. package/dist/types/entity_overrides.d.ts +2 -2
  140. package/dist/types/export_import.d.ts +4 -4
  141. package/dist/types/fields.d.ts +79 -39
  142. package/dist/types/firecms.d.ts +31 -3
  143. package/dist/types/firecms_context.d.ts +17 -1
  144. package/dist/types/index.d.ts +1 -1
  145. package/dist/types/internal_user_management.d.ts +20 -0
  146. package/dist/types/navigation.d.ts +62 -19
  147. package/dist/types/permissions.d.ts +4 -4
  148. package/dist/types/plugins.d.ts +58 -13
  149. package/dist/types/properties.d.ts +122 -31
  150. package/dist/types/property_config.d.ts +1 -3
  151. package/dist/types/roles.d.ts +3 -0
  152. package/dist/types/side_dialogs_controller.d.ts +10 -0
  153. package/dist/types/side_entity_controller.d.ts +14 -1
  154. package/dist/types/storage.d.ts +75 -0
  155. package/dist/types/user.d.ts +2 -1
  156. package/dist/util/builders.d.ts +3 -3
  157. package/dist/util/callbacks.d.ts +2 -0
  158. package/dist/util/collections.d.ts +1 -0
  159. package/dist/util/createFormexStub.d.ts +2 -0
  160. package/dist/util/entities.d.ts +3 -3
  161. package/dist/util/entity_actions.d.ts +2 -0
  162. package/dist/util/entity_cache.d.ts +28 -0
  163. package/dist/util/icon_list.d.ts +5 -1
  164. package/dist/util/icon_synonyms.d.ts +1 -98
  165. package/dist/util/icons.d.ts +7 -4
  166. package/dist/util/index.d.ts +3 -0
  167. package/dist/util/make_properties_editable.d.ts +1 -2
  168. package/dist/util/navigation_from_path.d.ts +10 -1
  169. package/dist/util/navigation_utils.d.ts +15 -3
  170. package/dist/util/objects.d.ts +3 -1
  171. package/dist/util/permissions.d.ts +4 -4
  172. package/dist/util/plurals.d.ts +0 -2
  173. package/dist/util/property_utils.d.ts +4 -4
  174. package/dist/util/references.d.ts +2 -2
  175. package/dist/util/resolutions.d.ts +42 -17
  176. package/dist/util/storage.d.ts +23 -2
  177. package/dist/util/useStorageUploadController.d.ts +4 -3
  178. package/package.json +70 -53
  179. package/src/app/AppBar.tsx +18 -0
  180. package/src/app/Drawer.tsx +24 -0
  181. package/src/app/Scaffold.tsx +253 -0
  182. package/src/app/index.ts +4 -0
  183. package/src/app/useApp.tsx +32 -0
  184. package/src/components/ArrayContainer.tsx +447 -229
  185. package/src/components/CircularProgressCenter.tsx +2 -2
  186. package/src/components/ClearFilterSortButton.tsx +41 -0
  187. package/src/components/{DeleteConfirmationDialog.tsx → ConfirmationDialog.tsx} +12 -11
  188. package/src/components/DeleteEntityDialog.tsx +13 -20
  189. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +87 -62
  190. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +38 -31
  191. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +30 -9
  192. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +84 -42
  193. package/src/components/EntityCollectionTable/column_utils.tsx +3 -3
  194. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +30 -16
  195. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +19 -17
  196. package/src/components/EntityCollectionTable/index.tsx +1 -1
  197. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +34 -39
  198. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +49 -36
  199. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +20 -8
  200. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +135 -105
  201. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +9 -9
  202. package/src/components/EntityCollectionView/EntityCollectionView.tsx +241 -119
  203. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +7 -4
  204. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +68 -0
  205. package/src/components/EntityCollectionView/useSelectionController.tsx +20 -7
  206. package/src/components/EntityCollectionView/utils.ts +19 -0
  207. package/src/components/EntityJsonPreview.tsx +66 -0
  208. package/src/components/EntityPreview.tsx +83 -62
  209. package/src/components/EntityView.tsx +34 -42
  210. package/src/components/ErrorView.tsx +4 -4
  211. package/src/components/FireCMSLogo.tsx +7 -51
  212. package/src/components/HomePage/DefaultHomePage.tsx +516 -158
  213. package/src/components/HomePage/FavouritesView.tsx +9 -14
  214. package/src/components/HomePage/HomePageDnD.tsx +702 -0
  215. package/src/components/HomePage/NavigationCard.tsx +48 -39
  216. package/src/components/HomePage/NavigationCardBinding.tsx +17 -16
  217. package/src/components/HomePage/NavigationGroup.tsx +144 -30
  218. package/src/components/HomePage/RenameGroupDialog.tsx +123 -0
  219. package/src/components/HomePage/SmallNavigationCard.tsx +5 -6
  220. package/src/components/NotFoundPage.tsx +2 -2
  221. package/src/components/PropertyCollectionView.tsx +329 -0
  222. package/src/components/PropertyConfigBadge.tsx +10 -4
  223. package/src/components/PropertyIdCopyTooltip.tsx +47 -0
  224. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +23 -13
  225. package/src/components/ReferenceWidget.tsx +21 -11
  226. package/src/components/SearchIconsView.tsx +10 -7
  227. package/src/components/SelectableTable/SelectableTable.tsx +157 -157
  228. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +2 -3
  229. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +27 -9
  230. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +36 -12
  231. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +92 -24
  232. package/src/components/UnsavedChangesDialog.tsx +46 -0
  233. package/src/components/UserDisplay.tsx +55 -0
  234. package/src/components/VirtualTable/VirtualTable.tsx +105 -51
  235. package/src/components/VirtualTable/VirtualTableCell.tsx +1 -9
  236. package/src/components/VirtualTable/VirtualTableHeader.tsx +10 -10
  237. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +2 -2
  238. package/src/components/VirtualTable/VirtualTableProps.tsx +28 -14
  239. package/src/components/VirtualTable/VirtualTableRow.tsx +5 -6
  240. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +5 -5
  241. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +2 -2
  242. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +2 -1
  243. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +16 -28
  244. package/src/components/VirtualTable/fields/VirtualTableUserSelect.tsx +99 -0
  245. package/src/components/VirtualTable/types.tsx +2 -3
  246. package/src/components/{EntityCollectionTable/internal → common}/default_entity_actions.tsx +64 -44
  247. package/src/components/common/index.ts +2 -1
  248. package/src/components/{VirtualTable/common.tsx → common/table_height.tsx} +5 -2
  249. package/src/components/common/types.tsx +4 -6
  250. package/src/components/common/useColumnsIds.tsx +16 -2
  251. package/src/components/common/useDataSourceTableController.tsx +420 -0
  252. package/src/components/common/useDebouncedCallback.tsx +20 -0
  253. package/src/components/common/useScrollRestoration.tsx +68 -0
  254. package/src/components/common/useTableSearchHelper.ts +53 -12
  255. package/src/components/index.tsx +6 -2
  256. package/src/contexts/BreacrumbsContext.tsx +38 -0
  257. package/src/contexts/DialogsProvider.tsx +5 -4
  258. package/src/contexts/InternalUserManagementContext.tsx +4 -0
  259. package/src/contexts/ModeController.tsx +1 -3
  260. package/src/contexts/SnackbarProvider.tsx +2 -0
  261. package/src/core/DefaultAppBar.tsx +219 -0
  262. package/src/core/DefaultDrawer.tsx +185 -0
  263. package/src/core/DrawerNavigationItem.tsx +66 -0
  264. package/src/core/EntityEditView.tsx +447 -469
  265. package/src/core/EntityEditViewFormActions.tsx +344 -0
  266. package/src/core/EntitySidePanel.tsx +96 -23
  267. package/src/core/FireCMS.tsx +85 -60
  268. package/src/core/FireCMSRouter.tsx +17 -0
  269. package/src/core/NavigationRoutes.tsx +28 -38
  270. package/src/core/SideDialogs.tsx +22 -12
  271. package/src/core/field_configs.tsx +41 -14
  272. package/src/core/index.tsx +6 -5
  273. package/src/form/EntityForm.tsx +740 -523
  274. package/src/form/EntityFormActions.tsx +226 -0
  275. package/src/form/PropertyFieldBinding.tsx +88 -41
  276. package/src/form/components/CustomIdField.tsx +9 -3
  277. package/src/form/components/ErrorFocus.tsx +22 -29
  278. package/src/form/components/FieldHelperText.tsx +4 -4
  279. package/src/form/components/FormEntry.tsx +22 -0
  280. package/src/form/components/FormLayout.tsx +16 -0
  281. package/src/form/components/LabelWithIcon.tsx +30 -19
  282. package/src/form/components/LabelWithIconAndTooltip.tsx +28 -0
  283. package/src/form/components/LocalChangesMenu.tsx +144 -0
  284. package/src/form/components/StorageItemPreview.tsx +23 -13
  285. package/src/form/components/StorageUploadProgress.tsx +5 -6
  286. package/src/form/components/index.tsx +3 -1
  287. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +34 -19
  288. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +50 -36
  289. package/src/form/field_bindings/BlockFieldBinding.tsx +56 -33
  290. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -14
  291. package/src/form/field_bindings/KeyValueFieldBinding.tsx +61 -52
  292. package/src/form/field_bindings/MapFieldBinding.tsx +73 -55
  293. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +159 -0
  294. package/src/form/field_bindings/{MultiSelectBinding.tsx → MultiSelectFieldBinding.tsx} +26 -21
  295. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +11 -16
  296. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +135 -0
  297. package/src/form/field_bindings/ReferenceFieldBinding.tsx +42 -31
  298. package/src/form/field_bindings/RepeatFieldBinding.tsx +62 -35
  299. package/src/form/field_bindings/SelectFieldBinding.tsx +24 -15
  300. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +257 -199
  301. package/src/form/field_bindings/SwitchFieldBinding.tsx +29 -24
  302. package/src/form/field_bindings/TextFieldBinding.tsx +28 -24
  303. package/src/form/field_bindings/UserSelectFieldBinding.tsx +94 -0
  304. package/src/form/index.tsx +21 -37
  305. package/src/form/useClearRestoreValue.tsx +2 -2
  306. package/src/form/validation.ts +13 -23
  307. package/src/hooks/data/delete.ts +6 -5
  308. package/src/hooks/data/save.ts +26 -33
  309. package/src/hooks/data/useCollectionFetch.tsx +3 -3
  310. package/src/hooks/data/useDataSource.tsx +11 -3
  311. package/src/hooks/data/useEntityFetch.tsx +10 -6
  312. package/src/hooks/index.tsx +4 -0
  313. package/src/hooks/useAuthController.tsx +1 -1
  314. package/src/hooks/useBreadcrumbsController.tsx +31 -0
  315. package/src/hooks/useBrowserTitleAndIcon.tsx +1 -1
  316. package/src/hooks/useBuildLocalConfigurationPersistence.tsx +8 -10
  317. package/src/hooks/useBuildModeController.tsx +22 -29
  318. package/src/hooks/useBuildNavigationController.tsx +515 -121
  319. package/src/hooks/useCollapsedGroups.ts +64 -0
  320. package/src/hooks/useFireCMSContext.tsx +9 -35
  321. package/src/hooks/useInternalUserManagementController.tsx +16 -0
  322. package/src/hooks/useLargeLayout.tsx +0 -35
  323. package/src/hooks/useModeController.tsx +1 -2
  324. package/src/hooks/useProjectLog.tsx +32 -10
  325. package/src/hooks/useResolvedNavigationFrom.tsx +10 -12
  326. package/src/hooks/useValidateAuthenticator.tsx +17 -37
  327. package/src/index.ts +1 -0
  328. package/src/internal/useBuildDataSource.ts +79 -85
  329. package/src/internal/useBuildSideDialogsController.tsx +4 -2
  330. package/src/internal/useBuildSideEntityController.tsx +204 -77
  331. package/src/internal/useUnsavedChangesDialog.tsx +127 -91
  332. package/src/preview/PropertyPreview.tsx +42 -25
  333. package/src/preview/PropertyPreviewProps.tsx +7 -1
  334. package/src/preview/components/BooleanPreview.tsx +2 -2
  335. package/src/preview/components/EmptyValue.tsx +1 -1
  336. package/src/preview/components/EnumValuesChip.tsx +2 -2
  337. package/src/preview/components/ImagePreview.tsx +26 -37
  338. package/src/preview/components/ReferencePreview.tsx +30 -38
  339. package/src/preview/components/StorageThumbnail.tsx +5 -1
  340. package/src/preview/components/UrlComponentPreview.tsx +60 -28
  341. package/src/preview/components/UserPreview.tsx +27 -0
  342. package/src/preview/index.ts +1 -0
  343. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +6 -6
  344. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +7 -5
  345. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +5 -4
  346. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +4 -4
  347. package/src/preview/property_previews/ArrayOneOfPreview.tsx +7 -6
  348. package/src/preview/property_previews/ArrayPropertyPreview.tsx +8 -7
  349. package/src/preview/property_previews/MapPropertyPreview.tsx +14 -13
  350. package/src/preview/property_previews/NumberPropertyPreview.tsx +2 -2
  351. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +13 -13
  352. package/src/preview/property_previews/StringPropertyPreview.tsx +3 -3
  353. package/src/preview/util.ts +10 -10
  354. package/src/routes/CustomCMSRoute.tsx +21 -0
  355. package/src/routes/FireCMSRoute.tsx +246 -0
  356. package/src/routes/HomePageRoute.tsx +17 -0
  357. package/src/types/analytics.ts +3 -0
  358. package/src/types/auth.tsx +9 -13
  359. package/src/types/collections.ts +146 -30
  360. package/src/types/customization_controller.tsx +9 -1
  361. package/src/types/datasource.ts +61 -43
  362. package/src/types/dialogs_controller.tsx +7 -3
  363. package/src/types/entities.ts +19 -3
  364. package/src/types/entity_actions.tsx +86 -10
  365. package/src/types/entity_callbacks.ts +18 -18
  366. package/src/types/entity_overrides.tsx +2 -2
  367. package/src/types/export_import.ts +4 -4
  368. package/src/types/fields.tsx +91 -42
  369. package/src/types/firecms.tsx +34 -4
  370. package/src/types/firecms_context.tsx +18 -1
  371. package/src/types/index.ts +1 -1
  372. package/src/types/internal_user_management.ts +24 -0
  373. package/src/types/navigation.ts +77 -24
  374. package/src/types/permissions.ts +5 -5
  375. package/src/types/plugins.tsx +69 -15
  376. package/src/types/properties.ts +141 -33
  377. package/src/types/property_config.tsx +2 -2
  378. package/src/types/roles.ts +3 -0
  379. package/src/types/side_dialogs_controller.tsx +15 -0
  380. package/src/types/side_entity_controller.tsx +16 -1
  381. package/src/types/storage.ts +83 -1
  382. package/src/types/user.ts +3 -1
  383. package/src/util/builders.ts +10 -8
  384. package/src/util/callbacks.ts +119 -0
  385. package/src/util/collections.ts +8 -0
  386. package/src/util/createFormexStub.tsx +66 -0
  387. package/src/util/entities.ts +11 -8
  388. package/src/util/entity_actions.ts +28 -0
  389. package/src/util/entity_cache.ts +223 -0
  390. package/src/util/enums.ts +1 -1
  391. package/src/util/icon_list.ts +16 -10
  392. package/src/util/icon_synonyms.ts +3 -100
  393. package/src/util/icons.tsx +36 -11
  394. package/src/util/index.ts +3 -0
  395. package/src/util/join_collections.ts +11 -4
  396. package/src/util/make_properties_editable.ts +5 -19
  397. package/src/util/navigation_from_path.ts +33 -12
  398. package/src/util/navigation_utils.ts +141 -25
  399. package/src/util/objects.ts +128 -33
  400. package/src/util/parent_references_from_path.ts +3 -3
  401. package/src/util/permissions.ts +9 -8
  402. package/src/util/plurals.ts +0 -2
  403. package/src/util/property_utils.tsx +17 -6
  404. package/src/util/references.ts +19 -8
  405. package/src/util/resolutions.ts +122 -48
  406. package/src/util/storage.ts +79 -21
  407. package/src/util/strings.ts +2 -2
  408. package/src/util/useStorageUploadController.tsx +162 -62
  409. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +0 -5
  410. package/dist/components/FireCMSAppBar.d.ts +0 -26
  411. package/dist/components/PropertyIdCopyTooltipContent.d.ts +0 -3
  412. package/dist/components/VirtualTable/common.d.ts +0 -2
  413. package/dist/core/Drawer.d.ts +0 -23
  414. package/dist/core/Scaffold.d.ts +0 -55
  415. package/dist/core/SideEntityView.d.ts +0 -7
  416. package/dist/form/components/FormikArrayContainer.d.ts +0 -18
  417. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +0 -9
  418. package/dist/internal/useBuildCustomizationController.d.ts +0 -2
  419. package/dist/internal/useLocaleConfig.d.ts +0 -1
  420. package/dist/types/appcheck.d.ts +0 -26
  421. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +0 -59
  422. package/src/components/FireCMSAppBar.tsx +0 -165
  423. package/src/components/PropertyIdCopyTooltipContent.tsx +0 -28
  424. package/src/components/common/useDataSourceEntityCollectionTableController.tsx +0 -225
  425. package/src/core/Drawer.tsx +0 -191
  426. package/src/core/Scaffold.tsx +0 -281
  427. package/src/core/SideEntityView.tsx +0 -38
  428. package/src/form/components/FormikArrayContainer.tsx +0 -44
  429. package/src/form/field_bindings/MarkdownFieldBinding.tsx +0 -695
  430. package/src/internal/useBuildCustomizationController.tsx +0 -5
  431. package/src/internal/useLocaleConfig.tsx +0 -18
  432. package/src/types/appcheck.ts +0 -29
  433. /package/src/util/{common.tsx → common.ts} +0 -0
@@ -1,4 +1,5 @@
1
- import { ArrowForwardIcon, Card, cn, Markdown, Typography, } from "@firecms/ui";
1
+ import { ArrowForwardIcon, Card, cls, Markdown, Typography, } from "@firecms/ui";
2
+ import React from "react"; // Import React
2
3
 
3
4
  export type NavigationCardProps = {
4
5
  name: string,
@@ -6,64 +7,72 @@ export type NavigationCardProps = {
6
7
  actions: React.ReactNode;
7
8
  icon: React.ReactNode;
8
9
  onClick?: () => void,
10
+ shrink?: boolean
9
11
  };
10
12
 
11
- export function NavigationCard({
13
+ // Wrap the component with React.memo
14
+ export const NavigationCard = React.memo(function NavigationCard({
12
15
  name,
13
16
  description,
14
17
  icon,
15
18
  actions,
16
19
  onClick,
20
+ shrink
17
21
  }: NavigationCardProps) {
18
22
 
19
- return (<Card
20
- className={cn("h-full p-4 cursor-pointer min-h-[230px]")}
21
- onClick={() => {
22
- onClick?.();
23
- }}>
23
+ return (
24
+ <Card
25
+ className={cls(
26
+ "h-full p-4 cursor-pointer min-h-[230px] transition-all duration-200 ease-in-out",
27
+ shrink && "w-full max-w-full min-h-0 scale-75"
28
+ )}
29
+ onClick={() => {
30
+ onClick?.();
31
+ }}
32
+ >
33
+
34
+ <div className="flex flex-col items-start h-full">
35
+ <div
36
+ className="flex-grow w-full">
24
37
 
25
- <div className="flex flex-col items-start h-full">
26
- <div
27
- className="flex-grow w-full">
38
+ <div
39
+ className="h-10 flex items-center w-full justify-between text-surface-300 dark:text-surface-600">
28
40
 
29
- <div
30
- className="h-10 flex items-center w-full justify-between text-gray-300 dark:text-gray-600">
41
+ {icon}
31
42
 
32
- {icon}
43
+ <div
44
+ className="flex items-center gap-1"
45
+ onClick={(event: React.MouseEvent) => {
46
+ event.preventDefault();
47
+ event.stopPropagation();
48
+ }}>
33
49
 
34
- <div
35
- className="flex items-center gap-1"
36
- onClick={(event: React.MouseEvent) => {
37
- event.preventDefault();
38
- event.stopPropagation();
39
- }}>
50
+ {actions}
40
51
 
41
- {actions}
52
+ </div>
42
53
 
43
54
  </div>
44
55
 
45
- </div>
46
-
47
- <Typography gutterBottom variant="h5"
48
- component="h2">
49
- {name}
50
- </Typography>
56
+ <Typography gutterBottom variant="h5"
57
+ component="h2">
58
+ {name}
59
+ </Typography>
51
60
 
52
- {description && <Typography variant="body2"
53
- color="secondary"
54
- component="div">
55
- <Markdown source={description} size={"small"}/>
56
- </Typography>}
57
- </div>
61
+ {description && <Typography variant="body2"
62
+ color="secondary"
63
+ component="div">
64
+ <Markdown source={description} size={"small"}/>
65
+ </Typography>}
66
+ </div>
58
67
 
59
- <div style={{ alignSelf: "flex-end" }}>
68
+ <div style={{ alignSelf: "flex-end" }}>
60
69
 
61
- <div className={"p-4"}>
62
- <ArrowForwardIcon className="text-primary"/>
70
+ <div className={"p-4"}>
71
+ <ArrowForwardIcon className="text-primary"/>
72
+ </div>
63
73
  </div>
64
- </div>
65
74
 
66
- </div>
75
+ </div>
67
76
 
68
- </Card>)
69
- }
77
+ </Card>)
78
+ });
@@ -1,12 +1,13 @@
1
1
  import { useNavigate } from "react-router-dom";
2
2
 
3
3
  import { useCustomizationController, useFireCMSContext } from "../../hooks";
4
- import { PluginHomePageActionsProps, TopNavigationEntry } from "../../types";
4
+ import { NavigationEntry, PluginHomePageActionsProps } from "../../types";
5
5
  import { IconForView } from "../../util";
6
6
  import { useUserConfigurationPersistence } from "../../hooks/useUserConfigurationPersistence";
7
- import { IconButton, StarBorderIcon, StarIcon } from "@firecms/ui";
7
+ import { IconButton, StarIcon } from "@firecms/ui";
8
8
  import { NavigationCard } from "./NavigationCard";
9
9
  import { SmallNavigationCard } from "./SmallNavigationCard";
10
+ import React from "react";
10
11
 
11
12
  /**
12
13
  * This is the component used in the home page to render a card for each
@@ -19,7 +20,7 @@ import { SmallNavigationCard } from "./SmallNavigationCard";
19
20
  * @param name
20
21
  * @param description
21
22
  * @param onClick
22
- * @constructor
23
+
23
24
  */
24
25
  export function NavigationCardBinding({
25
26
  path,
@@ -29,9 +30,11 @@ export function NavigationCardBinding({
29
30
  name,
30
31
  description,
31
32
  onClick,
32
- type
33
- }: TopNavigationEntry & {
34
- onClick?: () => void
33
+ type,
34
+ shrink
35
+ }: NavigationEntry & {
36
+ onClick?: () => void,
37
+ shrink?: boolean // <-- add shrink prop type
35
38
  }) {
36
39
 
37
40
  const userConfigurationPersistence = useUserConfigurationPersistence();
@@ -47,6 +50,7 @@ export function NavigationCardBinding({
47
50
  ? [
48
51
  <IconButton
49
52
  key={"favourite"}
53
+ size={"small"}
50
54
  onClick={(e) => {
51
55
  e.preventDefault();
52
56
  e.stopPropagation();
@@ -60,14 +64,9 @@ export function NavigationCardBinding({
60
64
  );
61
65
  }
62
66
  }}>
63
- {
64
- favourite
65
- ? <StarIcon
66
- size={18}
67
- className={"text-secondary"}/>
68
- : <StarBorderIcon
69
- size={18}
70
- className={"text-gray-400 dark:text-gray-500"}/>}
67
+ <StarIcon
68
+ size={"small"}
69
+ className={favourite ? "text-secondary" : "text-surface-400 dark:text-surface-500"}/>
71
70
  </IconButton>
72
71
  ]
73
72
  : [];
@@ -96,7 +95,7 @@ export function NavigationCardBinding({
96
95
  if (type === "admin") {
97
96
  return <SmallNavigationCard icon={collectionIcon}
98
97
  name={name}
99
- url={url}/>
98
+ url={url}/>;
100
99
  }
101
100
 
102
101
  return <NavigationCard
@@ -112,5 +111,7 @@ export function NavigationCardBinding({
112
111
  [path, ...(userConfigurationPersistence.recentlyVisitedPaths ?? []).filter(p => p !== path)]
113
112
  );
114
113
  }
115
- }}/>;
114
+ }}
115
+ shrink={shrink}
116
+ />;
116
117
  }
@@ -1,39 +1,153 @@
1
- import { PropsWithChildren } from "react";
2
- import { useUserConfigurationPersistence } from "../../hooks/useUserConfigurationPersistence";
3
- import { ExpandablePanel, Typography } from "@firecms/ui";
1
+ import React, { PropsWithChildren, useState } from "react";
2
+ import { cls, EditIcon, IconButton, Typography, ExpandablePanel } from "@firecms/ui";
4
3
 
5
4
  export function NavigationGroup({
6
5
  children,
7
- group
6
+ group,
7
+ minimised,
8
+ isPreview,
9
+ isPotentialCardDropTarget,
10
+ onEditGroup,
11
+ dndDisabled,
12
+ collapsed,
13
+ onToggleCollapsed
8
14
  }: PropsWithChildren<{
9
- group: string | undefined
15
+ group: string | undefined,
16
+ minimised?: boolean,
17
+ isPreview?: boolean,
18
+ isPotentialCardDropTarget?: boolean,
19
+ onEditGroup?: (groupName: string) => void;
20
+ dndDisabled?: boolean;
21
+ collapsed?: boolean;
22
+ onToggleCollapsed?: () => void;
10
23
  }>) {
11
- const userConfigurationPersistence = useUserConfigurationPersistence();
24
+
25
+ const [isHovered, setIsHovered] = useState(false);
26
+ const currentGroupName = group ?? "Views";
27
+
28
+ // Show caret only when not in preview and there is a toggle handler
29
+ const showCaret = !isPreview && !!onToggleCollapsed;
30
+
31
+ // Helper for the title content (left side)
32
+ const TitleContent = (
33
+ <div className={cls("flex items-center", isPreview ? "px-1 py-0.5" : "")}
34
+ >
35
+ <Typography
36
+ variant={isPreview ? "body2" : "caption"}
37
+ component={"h2"}
38
+ color="secondary"
39
+ className={cls(
40
+ "p-4 py-2 rounded",
41
+ "font-medium uppercase text-sm text-surface-600 dark:text-surface-400"
42
+ )}
43
+ >
44
+ {currentGroupName}
45
+ </Typography>
46
+ {!isPreview && onEditGroup && !dndDisabled && (
47
+ <IconButton
48
+ size="smallest"
49
+ onClick={(e) => {
50
+ e.stopPropagation(); // Prevent toggle on click
51
+ onEditGroup(currentGroupName);
52
+ }}
53
+ className={cls("ml-2 ", isHovered ? "opacity-100" : "opacity-0", "transition-opacity duration-100")}
54
+ >
55
+ <EditIcon size="smallest"/>
56
+ </IconButton>
57
+ )}
58
+ </div>
59
+ );
60
+
12
61
  return (
13
- <ExpandablePanel
14
- invisible={true}
15
- titleClassName={"font-medium text-sm text-gray-600 dark:text-gray-400"}
16
- className={"py-4"}
17
- initiallyExpanded={!(userConfigurationPersistence?.collapsedGroups ?? []).includes(group ?? "ungrouped")}
18
- onExpandedChange={expanded => {
19
- if (userConfigurationPersistence) {
20
-
21
- if (!expanded) {
22
- const paths = (userConfigurationPersistence.collapsedGroups ?? []).concat(group ?? "ungrouped");
23
- userConfigurationPersistence.setCollapsedGroups(paths);
24
- } else {
25
- userConfigurationPersistence.setCollapsedGroups((userConfigurationPersistence.collapsedGroups ?? []).filter(g => g !== (group ?? "ungrouped")));
62
+ <div className={cls(
63
+ !isPotentialCardDropTarget ? "my-10" : "my-6",
64
+ "transition-all duration-200 ease-in-out"
65
+ )}
66
+ >
67
+ {/* Preview: static header + content (no caret / no collapse) */}
68
+ {isPreview && (
69
+ <>
70
+ <div
71
+ className={cls(
72
+ "flex items-center justify-between w-full",
73
+ "p-4 py-2"
74
+ )}
75
+ onMouseEnter={() => setIsHovered(true)}
76
+ onMouseLeave={() => setIsHovered(false)}
77
+ >
78
+ {TitleContent}
79
+ </div>
80
+ {children}
81
+ </>
82
+ )}
83
+
84
+ {/* Interactive collapsible version when a toggle handler is provided */}
85
+ {!isPreview && showCaret && (
86
+ <ExpandablePanel
87
+ invisible
88
+ expanded={!collapsed}
89
+ onExpandedChange={(open) => {
90
+ if (open !== !collapsed) {
91
+ onToggleCollapsed?.();
92
+ }
93
+ }}
94
+ className={cls("mt-6")}
95
+ titleClassName={cls(
96
+ "min-h-0 p-0 border-none",
97
+ "rounded-t flex items-center justify-between w-full",
98
+ "hover:bg-transparent",
99
+ "cursor-pointer select-none"
100
+ )}
101
+ innerClassName={cls("mt-4", !minimised ? "pt-0" : "")}
102
+ title={
103
+ <div
104
+ onMouseEnter={() => setIsHovered(true)}
105
+ onMouseLeave={() => setIsHovered(false)}
106
+ className="flex items-center"
107
+ >
108
+ {TitleContent}
109
+ </div>
26
110
  }
27
- }
28
- }}
29
- title={<Typography color={"secondary"}
30
- className="font-medium ml-1">
31
- {group?.toUpperCase() ?? "Views".toUpperCase()}
32
- </Typography>}>
33
-
34
- <div className="mb-8">
35
- {children}
36
- </div>
37
- </ExpandablePanel>
111
+ >
112
+ {minimised ? (
113
+ <div className={cls("mt-4 p-8 bg-surface-accent-200 dark:bg-surface-accent-800 rounded-lg")}
114
+ style={{ minHeight: "50px" }}>
115
+ </div>
116
+ ) : (
117
+ <div className={cls("mt-4", !minimised ? "pt-0" : "")}>
118
+ {children}
119
+ </div>
120
+ )}
121
+ </ExpandablePanel>
122
+ )}
123
+
124
+ {/* Non-collapsible (no caret) runtime, keep old behavior */}
125
+ {!isPreview && !showCaret && (
126
+ <>
127
+ <div
128
+ className={cls(
129
+ "flex items-center justify-between w-full",
130
+ "mt-6"
131
+ )}
132
+ onMouseEnter={() => setIsHovered(true)}
133
+ onMouseLeave={() => setIsHovered(false)}
134
+ >
135
+ {TitleContent}
136
+ </div>
137
+
138
+ {!collapsed && (
139
+ minimised ? (
140
+ <div className={cls("mt-4 p-8 bg-surface-accent-200 dark:bg-surface-accent-800 rounded-lg")}
141
+ style={{ minHeight: "50px" }}>
142
+ </div>
143
+ ) : (
144
+ <div className={cls("mt-4", !minimised ? "pt-0" : "")}>
145
+ {children}
146
+ </div>
147
+ )
148
+ )}
149
+ </>
150
+ )}
151
+ </div>
38
152
  );
39
153
  }
@@ -0,0 +1,123 @@
1
+ import React, { useEffect, useRef, useState } from "react";
2
+ import { Button, Dialog, DialogActions, DialogContent, DialogTitle, TextField } from "@firecms/ui";
3
+
4
+ interface RenameGroupDialogProps {
5
+ open: boolean;
6
+ initialName: string;
7
+ existingGroupNames: string[]; // Names of other existing groups to check for duplicates
8
+ onClose: () => void;
9
+ onRename: (newName: string) => void;
10
+ }
11
+
12
+ export function RenameGroupDialog({
13
+ open,
14
+ initialName,
15
+ existingGroupNames,
16
+ onClose,
17
+ onRename
18
+ }: RenameGroupDialogProps) {
19
+ const [name, setName] = useState(initialName);
20
+ const [error, setError] = useState<string | null>(null);
21
+ const inputRef = useRef<HTMLInputElement | HTMLTextAreaElement | null>(null); // Create a ref for the input
22
+
23
+ useEffect(() => {
24
+ if (open) {
25
+ setName(initialName);
26
+ setError(null);
27
+ // Focus and select text when dialog opens
28
+ setTimeout(() => { // setTimeout to ensure the input is rendered and focusable
29
+ if (inputRef.current) {
30
+ inputRef.current.focus();
31
+ inputRef.current.select();
32
+ }
33
+ }, 100);
34
+ }
35
+ }, [initialName, open]);
36
+
37
+ const handleNameChange = (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => {
38
+ const newName = event.target.value;
39
+ setName(newName);
40
+ if (!newName.trim()) {
41
+ setError("Group name cannot be empty.");
42
+ } else if (existingGroupNames.includes(newName.trim())) {
43
+ setError("This group name already exists.");
44
+ } else {
45
+ setError(null);
46
+ }
47
+ };
48
+
49
+ const handleSave = () => {
50
+ const trimmedName = name.trim();
51
+ if (!trimmedName) {
52
+ setError("Group name cannot be empty.");
53
+ return;
54
+ }
55
+ if (existingGroupNames.includes(trimmedName)) {
56
+ setError("This group name already exists.");
57
+ return;
58
+ }
59
+ if (!error) {
60
+ onRename(trimmedName);
61
+ onClose();
62
+ }
63
+ };
64
+
65
+ const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {
66
+ if (event.key === "Enter") {
67
+ event.preventDefault(); // Prevent default form submission behavior
68
+ const trimmedName = name.trim();
69
+ // We need to check the error state directly as well,
70
+ // because the error state might not have updated if the user types and immediately hits enter.
71
+ let currentError = null;
72
+ if (!trimmedName) {
73
+ currentError = "Group name cannot be empty.";
74
+ } else if (existingGroupNames.includes(trimmedName)) {
75
+ currentError = "This group name already exists.";
76
+ }
77
+
78
+ if (!currentError && trimmedName) {
79
+ handleSave();
80
+ } else if (currentError) {
81
+ setError(currentError); // Ensure error is displayed if trying to submit with Enter
82
+ }
83
+ }
84
+ };
85
+
86
+ const handleClose = () => {
87
+ setName(initialName);
88
+ setError(null);
89
+ onClose();
90
+ };
91
+
92
+ if (!open) return null;
93
+
94
+ return (
95
+ <Dialog open={open}>
96
+ <DialogTitle>Rename Group</DialogTitle>
97
+ <DialogContent>
98
+ <TextField
99
+ inputRef={inputRef} // Pass the ref to the TextField
100
+ label="Group Name"
101
+ value={name}
102
+ onChange={handleNameChange}
103
+ onKeyDown={handleKeyDown} // Added onKeyDown handler
104
+ error={!!error}
105
+ aria-describedby={error ? "group-name-error" : undefined}
106
+ />
107
+ {error && <p id="group-name-error" style={{ display: "none" }}>{error}</p>}
108
+ </DialogContent>
109
+ <DialogActions>
110
+ <Button onClick={onClose}
111
+ color={"primary"}
112
+ variant="text">
113
+ Cancel
114
+ </Button>
115
+ <Button onClick={handleSave}
116
+ color={"primary"}
117
+ disabled={!!error || !name.trim()}>
118
+ Save
119
+ </Button>
120
+ </DialogActions>
121
+ </Dialog>
122
+ );
123
+ }
@@ -1,6 +1,6 @@
1
- import { ArrowForwardIcon, cardClickableMixin, cardMixin, cn, focusedMixin, Typography, } from "@firecms/ui";
1
+ import { ArrowForwardIcon, cardClickableMixin, cardMixin, cls, Typography, } from "@firecms/ui";
2
2
 
3
- import { Link as ReactLink } from "react-router-dom";
3
+ import { Link } from "react-router-dom";
4
4
 
5
5
  export type SmallNavigationCardProps = {
6
6
  name: string,
@@ -17,11 +17,10 @@ export function SmallNavigationCard({
17
17
  return (
18
18
  <>
19
19
 
20
- <ReactLink
20
+ <Link
21
21
  tabIndex={0}
22
- className={cn(cardMixin,
22
+ className={cls(cardMixin,
23
23
  cardClickableMixin,
24
- focusedMixin,
25
24
  "cursor-pointer flex flex-row items-center px-4 py-2 text-inherit dark:text-inherit visited:text-inherit visited:dark:text-inherit hover:text-inherit hover:dark:text-inherit ")}
26
25
  to={url}
27
26
  >
@@ -39,7 +38,7 @@ export function SmallNavigationCard({
39
38
  <div className={"p-4"}>
40
39
  <ArrowForwardIcon color="primary"/>
41
40
  </div>
42
- </ReactLink>
41
+ </Link>
43
42
 
44
43
  </>);
45
44
  }
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import { Link as ReactLink } from "react-router-dom";
2
+ import { Link } from "react-router-dom";
3
3
  import { Button, Typography } from "@firecms/ui";
4
4
 
5
5
  export function NotFoundPage() {
@@ -17,7 +17,7 @@ export function NotFoundPage() {
17
17
  </Typography>
18
18
  <Button
19
19
  variant={"text"}
20
- component={ReactLink}
20
+ component={Link}
21
21
  to={"/"}>Back to home</Button>
22
22
  </div>
23
23
  </div>