@firecms/core 3.0.0-alpha.8 → 3.0.0-alpha.81

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 (470) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ArrayContainer.d.ts +42 -0
  3. package/dist/components/CircularProgressCenter.d.ts +11 -0
  4. package/dist/components/DeleteConfirmationDialog.d.ts +9 -0
  5. package/dist/components/DeleteEntityDialog.d.ts +12 -0
  6. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +35 -0
  7. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +30 -0
  8. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +106 -0
  9. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +18 -0
  10. package/dist/components/EntityCollectionTable/SimpleEntityCollectionTable.d.ts +95 -0
  11. package/dist/components/EntityCollectionTable/column_utils.d.ts +16 -0
  12. package/dist/components/EntityCollectionTable/fields/TableReferenceField.d.ts +15 -0
  13. package/dist/components/EntityCollectionTable/fields/TableStorageUpload.d.ts +33 -0
  14. package/dist/components/EntityCollectionTable/filters/BooleanFilterField.d.ts +9 -0
  15. package/dist/components/EntityCollectionTable/filters/DateTimeFilterField.d.ts +11 -0
  16. package/dist/components/EntityCollectionTable/filters/ReferenceFilterField.d.ts +14 -0
  17. package/dist/components/EntityCollectionTable/filters/StringNumberFilterField.d.ts +13 -0
  18. package/dist/components/EntityCollectionTable/index.d.ts +8 -0
  19. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +18 -0
  20. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +26 -0
  21. package/dist/components/EntityCollectionTable/internal/EntityTableCellActions.d.ts +9 -0
  22. package/dist/components/EntityCollectionTable/internal/common.d.ts +4 -0
  23. package/dist/components/EntityCollectionTable/internal/default_entity_actions.d.ts +6 -0
  24. package/dist/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.d.ts +5 -0
  25. package/dist/components/EntityCollectionTable/internal/popup_field/PopupFormField.d.ts +23 -0
  26. package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +13 -0
  27. package/dist/components/EntityCollectionTable/internal/popup_field/useWindowSize.d.ts +6 -0
  28. package/dist/components/EntityCollectionTable/types.d.ts +53 -0
  29. package/dist/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.d.ts +32 -0
  30. package/dist/components/EntityCollectionTable/useDebouncedData.d.ts +9 -0
  31. package/dist/components/EntityCollectionView/EntityCollectionView.d.ts +37 -0
  32. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +14 -0
  33. package/dist/components/EntityCollectionView/useColumnsIds.d.ts +4 -0
  34. package/dist/components/EntityPreview.d.ts +11 -0
  35. package/dist/components/ErrorBoundary.d.ts +11 -0
  36. package/dist/components/ErrorTooltip.d.ts +2 -0
  37. package/dist/components/ErrorView.d.ts +19 -0
  38. package/dist/components/FieldConfigBadge.d.ts +4 -0
  39. package/dist/components/FireCMSAppBar.d.ts +26 -0
  40. package/dist/components/FireCMSLogo.d.ts +7 -0
  41. package/dist/components/HomePage/DefaultHomePage.d.ts +21 -0
  42. package/dist/components/HomePage/FavouritesView.d.ts +3 -0
  43. package/dist/components/HomePage/NavigationCollectionCard.d.ts +17 -0
  44. package/dist/components/HomePage/NavigationGroup.d.ts +4 -0
  45. package/dist/components/HomePage/index.d.ts +3 -0
  46. package/dist/components/LabelWithIcon.d.ts +14 -0
  47. package/dist/components/NotFoundPage.d.ts +1 -0
  48. package/dist/components/ReferenceSelectionInner.d.ts +58 -0
  49. package/dist/components/ReferenceWidget.d.ts +28 -0
  50. package/dist/components/SearchIconsView.d.ts +5 -0
  51. package/dist/components/VirtualTable/VirtualTable.d.ts +11 -0
  52. package/dist/components/VirtualTable/VirtualTableCell.d.ts +14 -0
  53. package/dist/components/VirtualTable/VirtualTableHeader.d.ts +27 -0
  54. package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +2 -0
  55. package/dist/components/VirtualTable/VirtualTableProps.d.ts +214 -0
  56. package/dist/components/VirtualTable/VirtualTableRow.d.ts +3 -0
  57. package/dist/components/VirtualTable/common.d.ts +2 -0
  58. package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +11 -0
  59. package/dist/components/VirtualTable/fields/VirtualTableInput.d.ts +8 -0
  60. package/dist/components/VirtualTable/fields/VirtualTableNumberInput.d.ts +8 -0
  61. package/dist/components/VirtualTable/fields/VirtualTableSelect.d.ts +15 -0
  62. package/dist/components/VirtualTable/fields/VirtualTableSwitch.d.ts +7 -0
  63. package/dist/components/VirtualTable/index.d.ts +2 -0
  64. package/dist/components/VirtualTable/types.d.ts +34 -0
  65. package/dist/components/index.d.ts +21 -0
  66. package/dist/contexts/AuthControllerContext.d.ts +3 -0
  67. package/dist/contexts/DataSourceContext.d.ts +3 -0
  68. package/dist/contexts/DialogsProvider.d.ts +4 -0
  69. package/dist/contexts/ModeController.d.ts +4 -0
  70. package/dist/contexts/NavigationContext.d.ts +3 -0
  71. package/dist/contexts/SideDialogsControllerContext.d.ts +3 -0
  72. package/dist/contexts/SideEntityControllerContext.d.ts +3 -0
  73. package/dist/contexts/SnackbarProvider.d.ts +2 -0
  74. package/dist/contexts/StorageSourceContext.d.ts +3 -0
  75. package/dist/contexts/UserConfigurationPersistenceContext.d.ts +3 -0
  76. package/dist/contexts/index.d.ts +3 -0
  77. package/dist/core/Drawer.d.ts +23 -0
  78. package/dist/core/EntitySidePanel.d.ts +10 -0
  79. package/dist/core/FireCMS.d.ts +14 -0
  80. package/dist/core/NavigationRoutes.d.ts +21 -0
  81. package/dist/core/Scaffold.d.ts +52 -0
  82. package/dist/core/SideDialogs.d.ts +23 -0
  83. package/dist/core/field_configs.d.ts +7 -0
  84. package/dist/core/index.d.ts +10 -0
  85. package/dist/core/useBuildLocalConfigurationPersistence.d.ts +2 -0
  86. package/dist/core/useBuildModeController.d.ts +6 -0
  87. package/dist/form/EntityForm.d.ts +75 -0
  88. package/dist/form/PropertyFieldBinding.d.ts +30 -0
  89. package/dist/form/components/CustomIdField.d.ts +9 -0
  90. package/dist/form/components/ErrorFocus.d.ts +4 -0
  91. package/dist/form/components/FieldHelperText.d.ts +12 -0
  92. package/dist/form/components/FormikArrayContainer.d.ts +18 -0
  93. package/dist/form/components/StorageItemPreview.d.ts +13 -0
  94. package/dist/form/components/StorageUploadProgress.d.ts +10 -0
  95. package/dist/form/components/SubmitListener.d.ts +1 -0
  96. package/dist/form/components/SwitchControl.d.ts +8 -0
  97. package/dist/form/components/index.d.ts +3 -0
  98. package/dist/form/field_bindings/ArrayCustomShapedFieldBinding.d.ts +9 -0
  99. package/dist/form/field_bindings/ArrayOfReferencesFieldBinding.d.ts +11 -0
  100. package/dist/form/field_bindings/BlockFieldBinding.d.ts +10 -0
  101. package/dist/form/field_bindings/DateTimeFieldBinding.d.ts +11 -0
  102. package/dist/form/field_bindings/KeyValueFieldBinding.d.ts +7 -0
  103. package/dist/form/field_bindings/MapFieldBinding.d.ts +9 -0
  104. package/dist/form/field_bindings/MarkdownFieldBinding.d.ts +9 -0
  105. package/dist/form/field_bindings/MultiSelectBinding.d.ts +9 -0
  106. package/dist/form/field_bindings/ReadOnlyFieldBinding.d.ts +10 -0
  107. package/dist/form/field_bindings/ReferenceFieldBinding.d.ts +9 -0
  108. package/dist/form/field_bindings/RepeatFieldBinding.d.ts +10 -0
  109. package/dist/form/field_bindings/SelectFieldBinding.d.ts +12 -0
  110. package/dist/form/field_bindings/StorageUploadFieldBinding.d.ts +28 -0
  111. package/dist/form/field_bindings/SwitchFieldBinding.d.ts +12 -0
  112. package/dist/form/field_bindings/TextFieldBinding.d.ts +12 -0
  113. package/dist/form/index.d.ts +20 -0
  114. package/dist/form/useClearRestoreValue.d.ts +13 -0
  115. package/dist/form/validation.d.ts +25 -0
  116. package/dist/hooks/data/delete.d.ts +37 -0
  117. package/dist/hooks/data/save.d.ts +42 -0
  118. package/dist/hooks/data/useCollectionFetch.d.ts +50 -0
  119. package/dist/hooks/data/useDataOrder.d.ts +12 -0
  120. package/dist/hooks/data/useDataSource.d.ts +6 -0
  121. package/dist/hooks/data/useEntityFetch.d.ts +28 -0
  122. package/dist/hooks/index.d.ts +19 -0
  123. package/dist/hooks/useAuthController.d.ts +11 -0
  124. package/dist/hooks/useBrowserTitleAndIcon.d.ts +6 -0
  125. package/dist/hooks/useClipboard.d.ts +57 -0
  126. package/dist/hooks/useDialogsController.d.ts +11 -0
  127. package/dist/hooks/useFireCMSContext.d.ts +12 -0
  128. package/dist/hooks/useLargeLayout.d.ts +1 -0
  129. package/dist/hooks/useModeController.d.ts +20 -0
  130. package/dist/hooks/useNavigationController.d.ts +9 -0
  131. package/dist/hooks/useReferenceDialog.d.ts +18 -0
  132. package/dist/hooks/useResolvedNavigationFrom.d.ts +72 -0
  133. package/dist/hooks/useSideDialogsController.d.ts +18 -0
  134. package/dist/hooks/useSideEntityController.d.ts +12 -0
  135. package/dist/hooks/useSnackbarController.d.ts +41 -0
  136. package/dist/hooks/useStorageSource.d.ts +6 -0
  137. package/dist/hooks/useUserConfigurationPersistence.d.ts +8 -0
  138. package/dist/hooks/useVerifyLicense.d.ts +0 -0
  139. package/dist/index.d.ts +8 -0
  140. package/dist/index.es.js +15810 -26791
  141. package/dist/index.es.js.map +1 -1
  142. package/dist/index.umd.js +5 -1027
  143. package/dist/index.umd.js.map +1 -1
  144. package/dist/internal/EntityView.d.ts +22 -0
  145. package/dist/internal/common.d.ts +3 -0
  146. package/dist/internal/useBuildDataSource.d.ts +22 -0
  147. package/dist/internal/useBuildNavigationController.d.ts +14 -0
  148. package/dist/internal/useBuildSideDialogsController.d.ts +2 -0
  149. package/dist/internal/useBuildSideEntityController.d.ts +4 -0
  150. package/dist/internal/useLocaleConfig.d.ts +1 -0
  151. package/dist/internal/useRestoreScroll.d.ts +6 -0
  152. package/dist/internal/useUnsavedChangesDialog.d.ts +14 -0
  153. package/dist/preview/PropertyPreview.d.ts +7 -0
  154. package/dist/preview/PropertyPreviewProps.d.ts +43 -0
  155. package/dist/preview/components/ArrayEnumPreview.d.ts +11 -0
  156. package/dist/preview/components/AsyncPreviewComponent.d.ts +11 -0
  157. package/dist/preview/components/BooleanPreview.d.ts +7 -0
  158. package/dist/preview/components/DatePreview.d.ts +7 -0
  159. package/dist/preview/components/EmptyValue.d.ts +4 -0
  160. package/dist/preview/components/EnumValuesChip.d.ts +13 -0
  161. package/dist/preview/components/ImagePreview.d.ts +12 -0
  162. package/dist/preview/components/ReferencePreview.d.ts +22 -0
  163. package/dist/preview/components/StorageThumbnail.d.ts +13 -0
  164. package/dist/preview/components/UrlComponentPreview.d.ts +12 -0
  165. package/dist/preview/index.d.ts +23 -0
  166. package/dist/preview/property_previews/ArrayOfMapsPreview.d.ts +5 -0
  167. package/dist/preview/property_previews/ArrayOfReferencesPreview.d.ts +5 -0
  168. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +5 -0
  169. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +5 -0
  170. package/dist/preview/property_previews/ArrayOneOfPreview.d.ts +5 -0
  171. package/dist/preview/property_previews/ArrayPropertyEnumPreview.d.ts +5 -0
  172. package/dist/preview/property_previews/ArrayPropertyPreview.d.ts +5 -0
  173. package/dist/preview/property_previews/MapPropertyPreview.d.ts +8 -0
  174. package/dist/preview/property_previews/NumberPropertyPreview.d.ts +6 -0
  175. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +14 -0
  176. package/dist/preview/property_previews/StringPropertyPreview.d.ts +6 -0
  177. package/dist/preview/util.d.ts +7 -0
  178. package/dist/types/analytics.d.ts +1 -0
  179. package/dist/types/appcheck.d.ts +26 -0
  180. package/dist/types/auth.d.ts +40 -0
  181. package/dist/types/collections.d.ts +451 -0
  182. package/dist/types/datasource.d.ts +262 -0
  183. package/dist/types/dialogs_controller.d.ts +32 -0
  184. package/dist/types/entities.d.ts +57 -0
  185. package/dist/types/entity_actions.d.ts +35 -0
  186. package/dist/types/entity_callbacks.d.ts +171 -0
  187. package/dist/types/entity_link_builder.d.ts +7 -0
  188. package/dist/types/export_import.d.ts +21 -0
  189. package/dist/types/fields.d.ts +181 -0
  190. package/dist/types/firecms.d.ts +151 -0
  191. package/dist/types/firecms_context.d.ts +110 -0
  192. package/dist/types/index.d.ts +26 -0
  193. package/dist/types/local_config_persistence.d.ts +21 -0
  194. package/dist/types/locales.d.ts +4 -0
  195. package/dist/types/modify_collections.d.ts +5 -0
  196. package/dist/types/navigation.d.ts +178 -0
  197. package/dist/types/permissions.d.ts +63 -0
  198. package/dist/types/plugins.d.ts +181 -0
  199. package/dist/types/properties.d.ts +681 -0
  200. package/dist/types/property_config.d.ts +42 -0
  201. package/dist/types/resolved_entities.d.ts +98 -0
  202. package/dist/types/side_dialogs_controller.d.ts +57 -0
  203. package/dist/types/side_entity_controller.d.ts +83 -0
  204. package/dist/types/storage.d.ts +82 -0
  205. package/dist/types/user.d.ts +36 -0
  206. package/dist/util/arrays.d.ts +1 -0
  207. package/dist/util/builders.d.ts +64 -0
  208. package/dist/util/collections.d.ts +3 -0
  209. package/dist/util/common.d.ts +2 -0
  210. package/dist/util/dates.d.ts +1 -0
  211. package/dist/util/entities.d.ts +28 -0
  212. package/dist/util/enums.d.ts +7 -0
  213. package/dist/util/flatten_object.d.ts +3 -0
  214. package/dist/util/hash.d.ts +1 -0
  215. package/dist/util/icon_list.d.ts +1 -0
  216. package/dist/util/icon_synonyms.d.ts +1950 -0
  217. package/dist/util/icons.d.ts +4 -0
  218. package/dist/util/index.d.ts +22 -0
  219. package/dist/util/join_collections.d.ts +9 -0
  220. package/dist/util/make_properties_editable.d.ts +3 -0
  221. package/dist/util/navigation_from_path.d.ts +24 -0
  222. package/dist/util/navigation_utils.d.ts +20 -0
  223. package/dist/util/objects.d.ts +10 -0
  224. package/dist/util/os.d.ts +2 -0
  225. package/dist/util/parent_references_from_path.d.ts +6 -0
  226. package/dist/util/paths.d.ts +14 -0
  227. package/dist/util/permissions.d.ts +5 -0
  228. package/dist/util/plurals.d.ts +18 -0
  229. package/dist/util/property_utils.d.ts +23 -0
  230. package/dist/util/references.d.ts +2 -0
  231. package/dist/util/regexp.d.ts +7 -0
  232. package/dist/util/resolutions.d.ts +64 -0
  233. package/dist/util/storage.d.ts +3 -0
  234. package/dist/util/strings.d.ts +6 -0
  235. package/dist/util/useDebounce.d.ts +1 -0
  236. package/dist/util/useStorageUploadController.d.ts +36 -0
  237. package/dist/util/useTraceUpdate.d.ts +1 -0
  238. package/package.json +112 -142
  239. package/src/components/ArrayContainer.tsx +369 -0
  240. package/src/components/CircularProgressCenter.tsx +26 -0
  241. package/src/components/DeleteConfirmationDialog.tsx +47 -0
  242. package/src/components/DeleteEntityDialog.tsx +207 -0
  243. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +174 -0
  244. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +496 -0
  245. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +150 -0
  246. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +461 -0
  247. package/src/components/EntityCollectionTable/SimpleEntityCollectionTable.tsx +369 -0
  248. package/src/components/EntityCollectionTable/column_utils.tsx +74 -0
  249. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +159 -0
  250. package/src/components/EntityCollectionTable/fields/TableStorageUpload.tsx +313 -0
  251. package/src/components/EntityCollectionTable/filters/BooleanFilterField.tsx +49 -0
  252. package/src/components/EntityCollectionTable/filters/DateTimeFilterField.tsx +109 -0
  253. package/src/components/EntityCollectionTable/filters/ReferenceFilterField.tsx +187 -0
  254. package/src/components/EntityCollectionTable/filters/StringNumberFilterField.tsx +159 -0
  255. package/src/components/EntityCollectionTable/index.tsx +20 -0
  256. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +113 -0
  257. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +257 -0
  258. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +70 -0
  259. package/src/components/EntityCollectionTable/internal/common.tsx +70 -0
  260. package/src/components/EntityCollectionTable/internal/default_entity_actions.tsx +122 -0
  261. package/src/components/EntityCollectionTable/internal/popup_field/ElementResizeListener.tsx +59 -0
  262. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +401 -0
  263. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +97 -0
  264. package/src/components/EntityCollectionTable/internal/popup_field/useWindowSize.tsx +20 -0
  265. package/src/components/EntityCollectionTable/types.tsx +58 -0
  266. package/src/components/EntityCollectionTable/useDataSourceEntityCollectionTableController.tsx +225 -0
  267. package/src/components/EntityCollectionTable/useDebouncedData.ts +49 -0
  268. package/src/components/EntityCollectionView/EntityCollectionView.tsx +815 -0
  269. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +131 -0
  270. package/src/components/EntityCollectionView/useColumnsIds.tsx +100 -0
  271. package/src/components/EntityPreview.tsx +83 -0
  272. package/src/components/ErrorBoundary.tsx +40 -0
  273. package/src/components/ErrorTooltip.tsx +11 -0
  274. package/src/components/ErrorView.tsx +52 -0
  275. package/src/components/FieldConfigBadge.tsx +17 -0
  276. package/src/components/FireCMSAppBar.tsx +157 -0
  277. package/src/components/FireCMSLogo.tsx +73 -0
  278. package/src/components/HomePage/DefaultHomePage.tsx +209 -0
  279. package/src/components/HomePage/FavouritesView.tsx +64 -0
  280. package/src/components/HomePage/NavigationCollectionCard.tsx +145 -0
  281. package/src/components/HomePage/NavigationGroup.tsx +39 -0
  282. package/src/components/HomePage/index.tsx +3 -0
  283. package/src/components/LabelWithIcon.tsx +33 -0
  284. package/src/components/NotFoundPage.tsx +25 -0
  285. package/src/components/ReferenceSelectionInner.tsx +364 -0
  286. package/src/components/ReferenceWidget.tsx +145 -0
  287. package/src/components/SearchIconsView.tsx +75 -0
  288. package/src/components/VirtualTable/VirtualTable.tsx +402 -0
  289. package/src/components/VirtualTable/VirtualTableCell.tsx +32 -0
  290. package/src/components/VirtualTable/VirtualTableHeader.tsx +260 -0
  291. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +131 -0
  292. package/src/components/VirtualTable/VirtualTableProps.tsx +269 -0
  293. package/src/components/VirtualTable/VirtualTableRow.tsx +53 -0
  294. package/src/components/VirtualTable/common.tsx +18 -0
  295. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +37 -0
  296. package/src/components/VirtualTable/fields/VirtualTableInput.tsx +91 -0
  297. package/src/components/VirtualTable/fields/VirtualTableNumberInput.tsx +82 -0
  298. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +130 -0
  299. package/src/components/VirtualTable/fields/VirtualTableSwitch.tsx +32 -0
  300. package/src/components/VirtualTable/index.tsx +2 -0
  301. package/src/components/VirtualTable/types.tsx +44 -0
  302. package/src/components/index.tsx +31 -0
  303. package/src/contexts/AuthControllerContext.tsx +4 -0
  304. package/src/contexts/DataSourceContext.tsx +4 -0
  305. package/src/contexts/DialogsProvider.tsx +52 -0
  306. package/src/contexts/ModeController.tsx +13 -0
  307. package/src/contexts/NavigationContext.tsx +4 -0
  308. package/src/contexts/SideDialogsControllerContext.tsx +4 -0
  309. package/src/contexts/SideEntityControllerContext.tsx +4 -0
  310. package/src/contexts/SnackbarProvider.tsx +12 -0
  311. package/src/contexts/StorageSourceContext.tsx +4 -0
  312. package/src/contexts/UserConfigurationPersistenceContext.tsx +4 -0
  313. package/src/contexts/index.ts +3 -0
  314. package/src/core/Drawer.tsx +161 -0
  315. package/src/core/EntitySidePanel.tsx +89 -0
  316. package/src/core/FireCMS.tsx +184 -0
  317. package/src/core/NavigationRoutes.tsx +118 -0
  318. package/src/core/Scaffold.tsx +278 -0
  319. package/src/core/SideDialogs.tsx +156 -0
  320. package/src/core/field_configs.tsx +400 -0
  321. package/src/core/index.tsx +14 -0
  322. package/src/core/useBuildLocalConfigurationPersistence.tsx +67 -0
  323. package/src/core/useBuildModeController.tsx +60 -0
  324. package/src/form/EntityForm.tsx +646 -0
  325. package/src/form/PropertyFieldBinding.tsx +313 -0
  326. package/src/form/components/CustomIdField.tsx +124 -0
  327. package/src/form/components/ErrorFocus.tsx +51 -0
  328. package/src/form/components/FieldHelperText.tsx +58 -0
  329. package/src/form/components/FormikArrayContainer.tsx +44 -0
  330. package/src/form/components/StorageItemPreview.tsx +66 -0
  331. package/src/form/components/StorageUploadProgress.tsx +104 -0
  332. package/src/form/components/SubmitListener.tsx +32 -0
  333. package/src/form/components/SwitchControl.tsx +39 -0
  334. package/src/form/components/index.tsx +3 -0
  335. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +88 -0
  336. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +153 -0
  337. package/src/form/field_bindings/BlockFieldBinding.tsx +245 -0
  338. package/src/form/field_bindings/DateTimeFieldBinding.tsx +67 -0
  339. package/src/form/field_bindings/KeyValueFieldBinding.tsx +560 -0
  340. package/src/form/field_bindings/MapFieldBinding.tsx +136 -0
  341. package/src/form/field_bindings/MarkdownFieldBinding.tsx +696 -0
  342. package/src/form/field_bindings/MultiSelectBinding.tsx +115 -0
  343. package/src/form/field_bindings/ReadOnlyFieldBinding.tsx +70 -0
  344. package/src/form/field_bindings/ReferenceFieldBinding.tsx +122 -0
  345. package/src/form/field_bindings/RepeatFieldBinding.tsx +103 -0
  346. package/src/form/field_bindings/SelectFieldBinding.tsx +100 -0
  347. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +438 -0
  348. package/src/form/field_bindings/SwitchFieldBinding.tsx +61 -0
  349. package/src/form/field_bindings/TextFieldBinding.tsx +108 -0
  350. package/src/form/index.tsx +42 -0
  351. package/src/form/useClearRestoreValue.tsx +35 -0
  352. package/src/form/validation.ts +413 -0
  353. package/src/hooks/data/delete.ts +101 -0
  354. package/src/hooks/data/save.ts +165 -0
  355. package/src/hooks/data/useCollectionFetch.tsx +162 -0
  356. package/src/hooks/data/useDataOrder.ts +26 -0
  357. package/src/hooks/data/useDataSource.tsx +9 -0
  358. package/src/hooks/data/useEntityFetch.tsx +129 -0
  359. package/src/hooks/index.tsx +23 -0
  360. package/src/hooks/useAuthController.tsx +14 -0
  361. package/src/hooks/useBrowserTitleAndIcon.tsx +25 -0
  362. package/src/hooks/useClipboard.tsx +158 -0
  363. package/src/hooks/useDialogsController.tsx +14 -0
  364. package/src/hooks/useFireCMSContext.tsx +50 -0
  365. package/src/hooks/useLargeLayout.tsx +97 -0
  366. package/src/hooks/useModeController.tsx +24 -0
  367. package/src/hooks/useNavigationController.tsx +12 -0
  368. package/src/hooks/useReferenceDialog.tsx +56 -0
  369. package/src/hooks/useResolvedNavigationFrom.tsx +160 -0
  370. package/src/hooks/useSideDialogsController.tsx +21 -0
  371. package/src/hooks/useSideEntityController.tsx +15 -0
  372. package/src/hooks/useSnackbarController.tsx +76 -0
  373. package/src/hooks/useStorageSource.tsx +9 -0
  374. package/src/hooks/useUserConfigurationPersistence.tsx +11 -0
  375. package/src/hooks/useVerifyLicense.tsx +1 -0
  376. package/src/index.ts +8 -0
  377. package/src/internal/EntityView.tsx +576 -0
  378. package/src/internal/common.tsx +5 -0
  379. package/src/internal/useBuildDataSource.ts +358 -0
  380. package/src/internal/useBuildNavigationController.tsx +371 -0
  381. package/src/internal/useBuildSideDialogsController.tsx +126 -0
  382. package/src/internal/useBuildSideEntityController.tsx +172 -0
  383. package/src/internal/useLocaleConfig.tsx +18 -0
  384. package/src/internal/useRestoreScroll.tsx +48 -0
  385. package/src/internal/useUnsavedChangesDialog.tsx +106 -0
  386. package/src/preview/PropertyPreview.tsx +222 -0
  387. package/src/preview/PropertyPreviewProps.tsx +59 -0
  388. package/src/preview/components/ArrayEnumPreview.tsx +39 -0
  389. package/src/preview/components/AsyncPreviewComponent.tsx +47 -0
  390. package/src/preview/components/BooleanPreview.tsx +11 -0
  391. package/src/preview/components/DatePreview.tsx +27 -0
  392. package/src/preview/components/EmptyValue.tsx +10 -0
  393. package/src/preview/components/EnumValuesChip.tsx +38 -0
  394. package/src/preview/components/ImagePreview.tsx +106 -0
  395. package/src/preview/components/ReferencePreview.tsx +249 -0
  396. package/src/preview/components/StorageThumbnail.tsx +84 -0
  397. package/src/preview/components/UrlComponentPreview.tsx +79 -0
  398. package/src/preview/index.ts +27 -0
  399. package/src/preview/property_previews/ArrayOfMapsPreview.tsx +82 -0
  400. package/src/preview/property_previews/ArrayOfReferencesPreview.tsx +52 -0
  401. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +54 -0
  402. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +55 -0
  403. package/src/preview/property_previews/ArrayOneOfPreview.tsx +67 -0
  404. package/src/preview/property_previews/ArrayPropertyEnumPreview.tsx +28 -0
  405. package/src/preview/property_previews/ArrayPropertyPreview.tsx +68 -0
  406. package/src/preview/property_previews/MapPropertyPreview.tsx +146 -0
  407. package/src/preview/property_previews/NumberPropertyPreview.tsx +27 -0
  408. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +283 -0
  409. package/src/preview/property_previews/StringPropertyPreview.tsx +59 -0
  410. package/src/preview/util.ts +31 -0
  411. package/src/types/analytics.ts +34 -0
  412. package/src/types/appcheck.ts +29 -0
  413. package/src/types/auth.tsx +49 -0
  414. package/src/types/collections.ts +530 -0
  415. package/src/types/datasource.ts +389 -0
  416. package/src/types/dialogs_controller.tsx +33 -0
  417. package/src/types/entities.ts +76 -0
  418. package/src/types/entity_actions.tsx +39 -0
  419. package/src/types/entity_callbacks.ts +209 -0
  420. package/src/types/entity_link_builder.ts +8 -0
  421. package/src/types/export_import.ts +26 -0
  422. package/src/types/fields.tsx +220 -0
  423. package/src/types/firecms.tsx +175 -0
  424. package/src/types/firecms_context.tsx +128 -0
  425. package/src/types/index.ts +26 -0
  426. package/src/types/local_config_persistence.tsx +23 -0
  427. package/src/types/locales.ts +81 -0
  428. package/src/types/modify_collections.tsx +6 -0
  429. package/src/types/navigation.ts +214 -0
  430. package/src/types/permissions.ts +76 -0
  431. package/src/types/plugins.tsx +219 -0
  432. package/src/types/properties.ts +851 -0
  433. package/src/types/property_config.tsx +72 -0
  434. package/src/types/resolved_entities.ts +148 -0
  435. package/src/types/side_dialogs_controller.tsx +68 -0
  436. package/src/types/side_entity_controller.tsx +96 -0
  437. package/src/types/storage.ts +96 -0
  438. package/src/types/user.ts +37 -0
  439. package/src/util/arrays.ts +3 -0
  440. package/src/util/builders.ts +139 -0
  441. package/src/util/collections.ts +50 -0
  442. package/src/util/common.tsx +2 -0
  443. package/src/util/dates.ts +1 -0
  444. package/src/util/entities.ts +196 -0
  445. package/src/util/enums.ts +56 -0
  446. package/src/util/flatten_object.ts +45 -0
  447. package/src/util/hash.ts +11 -0
  448. package/src/util/icon_list.ts +17 -0
  449. package/src/util/icon_synonyms.ts +1950 -0
  450. package/src/util/icons.tsx +45 -0
  451. package/src/util/index.ts +22 -0
  452. package/src/util/join_collections.ts +172 -0
  453. package/src/util/make_properties_editable.ts +29 -0
  454. package/src/util/navigation_from_path.ts +107 -0
  455. package/src/util/navigation_utils.ts +111 -0
  456. package/src/util/objects.ts +168 -0
  457. package/src/util/os.ts +13 -0
  458. package/src/util/parent_references_from_path.ts +56 -0
  459. package/src/util/paths.ts +27 -0
  460. package/src/util/permissions.ts +80 -0
  461. package/src/util/plurals.ts +190 -0
  462. package/src/util/property_utils.tsx +130 -0
  463. package/src/util/references.ts +20 -0
  464. package/src/util/regexp.ts +32 -0
  465. package/src/util/resolutions.ts +399 -0
  466. package/src/util/storage.ts +92 -0
  467. package/src/util/strings.ts +62 -0
  468. package/src/util/useDebounce.ts +25 -0
  469. package/src/util/useStorageUploadController.tsx +243 -0
  470. package/src/util/useTraceUpdate.tsx +23 -0
@@ -0,0 +1,97 @@
1
+ import { useEffect, useState } from "react";
2
+
3
+ type LayoutListener = (isLargeLayout: boolean) => void;
4
+
5
+ const breakpoints = {
6
+ xs: 0,
7
+ sm: 640,
8
+ md: 768,
9
+ lg: 1024,
10
+ xl: 1280,
11
+ "2xl": 1536,
12
+ "3xl": 1920
13
+ }
14
+
15
+ // Global state and listeners array
16
+ let isLargeLayoutGlobal = checkLargeLayout("lg"); // Default value
17
+ const listeners: LayoutListener[] = [];
18
+
19
+ // Utility to notify all listeners
20
+ const notifyListeners = () => {
21
+ listeners.forEach(listener => listener(isLargeLayoutGlobal));
22
+ };
23
+
24
+ // Listen to resize events once, at a global level
25
+ window.addEventListener("resize", () => {
26
+ const newIsLargeLayout = checkLargeLayout("lg");
27
+ if (newIsLargeLayout !== isLargeLayoutGlobal) {
28
+ isLargeLayoutGlobal = newIsLargeLayout;
29
+ notifyListeners();
30
+ }
31
+ });
32
+
33
+ export const useLargeLayout = () => {
34
+ const [isLargeLayout, setIsLargeLayout] = useState(isLargeLayoutGlobal);
35
+
36
+ useEffect(() => {
37
+ // Listener function to update component state
38
+ const listener: LayoutListener = (newIsLargeLayout) => {
39
+ setIsLargeLayout(newIsLargeLayout);
40
+ };
41
+
42
+ // Register listener
43
+ listeners.push(listener);
44
+
45
+ // Initial state
46
+ setIsLargeLayout(isLargeLayoutGlobal);
47
+
48
+ // Clean up by removing the listener
49
+ return () => {
50
+ const index = listeners.indexOf(listener);
51
+ if (index > -1) {
52
+ listeners.splice(index, 1);
53
+ }
54
+ };
55
+ }, []);
56
+
57
+ return isLargeLayout;
58
+ };
59
+
60
+ function checkLargeLayout(breakpoint: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" = "lg"): boolean {
61
+ return window.matchMedia(`(min-width: ${breakpoints[breakpoint] + 1}px)`).matches;
62
+ }
63
+
64
+ // import { useEffect, useState } from "react";
65
+ //
66
+ // const breakpoints = {
67
+ // xs: 0,
68
+ // sm: 640,
69
+ // md: 768,
70
+ // lg: 1024,
71
+ // xl: 1280,
72
+ // "2xl": 1536,
73
+ // "3xl": 1920
74
+ // }
75
+ // export const useLargeLayout = (breakpoint: "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" = "lg"): boolean => {
76
+ // const [isLargeLayout, setIsLargeLayout] = useState<boolean>(false);
77
+ //
78
+ // useEffect(() => {
79
+ // const handleResize = () => {
80
+ // const matched = window.matchMedia(`(min-width: ${breakpoints[breakpoint] + 1}px)`).matches;
81
+ // setIsLargeLayout(matched);
82
+ // };
83
+ //
84
+ // // Set initial state
85
+ // handleResize();
86
+ //
87
+ // // Set up event listener for resize events
88
+ // window.addEventListener("resize", handleResize);
89
+ //
90
+ // // Clean up event listener when component unmounts
91
+ // return () => {
92
+ // window.removeEventListener("resize", handleResize);
93
+ // };
94
+ // }, []);
95
+ //
96
+ // return isLargeLayout;
97
+ // };
@@ -0,0 +1,24 @@
1
+ import { ModeControllerContext } from "../contexts/ModeController";
2
+ import { useContext } from "react";
3
+
4
+ /**
5
+ * Use this controller to change color mode
6
+ * @group Hooks and utilities
7
+ */
8
+ export interface ModeController {
9
+ mode: "light" | "dark";
10
+ setMode: (mode: "light" | "dark") => void;
11
+ toggleMode: () => void;
12
+ }
13
+
14
+ /**
15
+ * Hook to retrieve the current mode ("light" | "dark"), and `setMode`
16
+ * or `toggle` functions to change it.
17
+ *
18
+ * Consider that in order to use this hook you need to have a parent
19
+ * `FireCMS`
20
+ *
21
+ * @see ModeController
22
+ * @group Hooks and utilities
23
+ */
24
+ export const useModeController = () => useContext(ModeControllerContext);
@@ -0,0 +1,12 @@
1
+ import { useContext } from "react";
2
+ import { NavigationController } from "../types";
3
+ import { NavigationContext } from "../contexts/NavigationContext";
4
+
5
+ /**
6
+ * Use this hook to get the navigation of the app.
7
+ * This controller provides the resolved collections for the CMS as well
8
+ * as utility methods.
9
+ *
10
+ * @group Hooks and utilities
11
+ */
12
+ export const useNavigationController = (): NavigationController => useContext(NavigationContext);
@@ -0,0 +1,56 @@
1
+ import { useSideDialogsController } from "./useSideDialogsController";
2
+ import { ReferenceSelectionInner, ReferenceSelectionInnerProps } from "../components";
3
+ import { useCallback } from "react";
4
+ import { useNavigationController } from "./useNavigationController";
5
+
6
+ /**
7
+ * This hook is used to open a side dialog that allows the selection
8
+ * of entities under a given path.
9
+ * You can use it in custom views for selecting entities.
10
+ * You need to specify the path of the target collection at least.
11
+ * If your collection is not defined in your top collection configuration
12
+ * (in your `FireCMS` component), you need to specify explicitly.
13
+ * This is the same hook used internally when a reference property is defined.
14
+ * @group Hooks and utilities
15
+ */
16
+ export function useReferenceDialog<M extends Record<string, any>>(referenceDialogProps: Omit<ReferenceSelectionInnerProps<M>, "path"> & {
17
+ path?: string | false;
18
+ onClose?: () => void;
19
+ }): { open: () => void; close: () => void } {
20
+
21
+ const navigation = useNavigationController();
22
+ const sideDialogsController = useSideDialogsController();
23
+
24
+ const open = useCallback(() => {
25
+ if (referenceDialogProps.path) {
26
+ let usedCollection = referenceDialogProps.collection;
27
+ if (!usedCollection)
28
+ usedCollection = navigation.getCollection(referenceDialogProps.path);
29
+ if (!usedCollection)
30
+ throw Error("Not able to resolve the collection in useReferenceDialog");
31
+ sideDialogsController.open({
32
+ key: `reference_${referenceDialogProps.path}`,
33
+ component:
34
+ <ReferenceSelectionInner
35
+ collection={usedCollection}
36
+ {...referenceDialogProps as ReferenceSelectionInnerProps<M>}/>,
37
+ width: "90vw",
38
+ onClose: () => {
39
+ referenceDialogProps.onClose?.();
40
+ }
41
+ });
42
+ } else {
43
+ throw Error("useReferenceDialog: You are trying to open a reference dialog, but have not declared the `path`")
44
+ }
45
+ }, [navigation, referenceDialogProps, sideDialogsController]);
46
+
47
+ const close = useCallback(() => {
48
+ sideDialogsController.close();
49
+ }, [sideDialogsController]);
50
+
51
+ return {
52
+ open,
53
+ close
54
+ }
55
+
56
+ }
@@ -0,0 +1,160 @@
1
+ import { Entity, EntityCollection, EntityCustomView, FireCMSContext, User } from "../types";
2
+ import { useEffect, useState } from "react";
3
+ import { getNavigationEntriesFromPathInternal } from "../util/navigation_from_path";
4
+ import { useFireCMSContext } from "./useFireCMSContext";
5
+
6
+ /**
7
+ * @see resolveNavigationFrom
8
+ * @group Hooks and utilities
9
+ */
10
+ export type ResolvedNavigationEntry<M extends Record<string, any>> =
11
+ | ResolvedNavigationEntity<M>
12
+ | ResolvedNavigationCollection<M>
13
+ | ResolvedNavigationEntityCustom<M>;
14
+
15
+ /**
16
+ * @see resolveNavigationFrom
17
+ * @group Hooks and utilities
18
+ */
19
+ export interface ResolvedNavigationEntity<M extends Record<string, any>> {
20
+ type: "entity";
21
+ entity: Entity<M>;
22
+ entityId: string;
23
+ path: string;
24
+ parentCollection: EntityCollection<M>;
25
+ }
26
+
27
+ /**
28
+ * @see resolveNavigationFrom
29
+ * @group Hooks and utilities
30
+ */
31
+ export interface ResolvedNavigationCollection<M extends Record<string, any>> {
32
+ type: "collection";
33
+ path: string;
34
+ collection: EntityCollection<M>;
35
+ }
36
+
37
+ /**
38
+ * @see resolveNavigationFrom
39
+ * @group Hooks and utilities
40
+ */
41
+ interface ResolvedNavigationEntityCustom<M extends Record<string, any>> {
42
+ type: "custom_view";
43
+ path: string;
44
+ view: EntityCustomView<M>;
45
+ }
46
+
47
+ /**
48
+ * Use this function to retrieve an array of navigation entries (resolved
49
+ * collection, entity or entity custom_view) for the given path. You need to pass the app context
50
+ * that you receive in different callbacks, such as the save hooks.
51
+ *
52
+ * It will take into account the `navigation` provided at the `FireCMS` level.
53
+ *
54
+ * @param path
55
+ * @param context
56
+ * @group Hooks and utilities
57
+ */
58
+ export function resolveNavigationFrom<M extends Record<string, any>, UserType extends User>({
59
+ path,
60
+ context
61
+ }: {
62
+ path: string,
63
+ context: FireCMSContext<UserType>
64
+ }): Promise<ResolvedNavigationEntry<M>[]> {
65
+
66
+ const dataSource = context.dataSource;
67
+ const navigation = context.navigation;
68
+
69
+ if (!navigation) {
70
+ throw Error("Calling getNavigationFrom, but main navigation has not yet been initialised");
71
+ }
72
+
73
+ const navigationEntries = getNavigationEntriesFromPathInternal({
74
+ path,
75
+ collections: navigation.collections ?? []
76
+ });
77
+
78
+ const resultPromises: Promise<ResolvedNavigationEntry<any>>[] = navigationEntries
79
+ .map((entry) => {
80
+ if (entry.type === "collection") {
81
+ return Promise.resolve(entry);
82
+ } else if (entry.type === "entity") {
83
+ const collection = navigation.getCollection(entry.path, entry.entityId);
84
+ if (!collection) {
85
+ throw Error(`No collection defined in the navigation for the entity with path ${entry.path}`);
86
+ }
87
+ return dataSource.fetchEntity({
88
+ path: entry.path,
89
+ entityId: entry.entityId,
90
+ collection
91
+ })
92
+ .then((entity) => {
93
+ if (!entity) return undefined;
94
+ return { ...entry, entity };
95
+ });
96
+ } else if (entry.type === "custom_view") {
97
+ return Promise.resolve(entry);
98
+ } else {
99
+ throw Error("Unmapped element in useEntitiesFromPath");
100
+ }
101
+ })
102
+ .filter(v => Boolean(v)) as Promise<ResolvedNavigationEntry<any>>[];
103
+
104
+ return Promise.all(resultPromises);
105
+ }
106
+
107
+ /**
108
+ * @group Hooks and utilities
109
+ */
110
+ export interface NavigationFromProps {
111
+ path: string;
112
+ }
113
+
114
+ /**
115
+ * @group Hooks and utilities
116
+ */
117
+ export interface NavigationFrom<M extends Record<string, any>> {
118
+ data?: ResolvedNavigationEntry<M>[]
119
+ dataLoading: boolean,
120
+ dataLoadingError?: Error
121
+ }
122
+
123
+ /**
124
+ * Use this hook to retrieve an array of navigation entries (resolved
125
+ * collection or entity) for the given path. You can use this hook
126
+ * in any React component that lives under `FireCMS`
127
+ * @group Hooks and utilities
128
+ */
129
+ export function useResolvedNavigationFrom<M extends Record<string, any>, UserType extends User>(
130
+ {
131
+ path
132
+ }: NavigationFromProps): NavigationFrom<M> {
133
+
134
+ const context: FireCMSContext<UserType> = useFireCMSContext();
135
+
136
+ const [data, setData] = useState<ResolvedNavigationEntry<M>[] | undefined>();
137
+ const [dataLoading, setDataLoading] = useState<boolean>(false);
138
+ const [dataLoadingError, setDataLoadingError] = useState<Error | undefined>();
139
+
140
+ useEffect(() => {
141
+ const navigation = context.navigation;
142
+ if (navigation) {
143
+ setDataLoading(true);
144
+ setDataLoadingError(undefined);
145
+ resolveNavigationFrom<M, UserType>({ path, context })
146
+ .then((res) => {
147
+ setData(res);
148
+ })
149
+ .catch((e) => setDataLoadingError(e))
150
+ .finally(() => setDataLoading(false));
151
+ }
152
+
153
+ }, [path, context]);
154
+
155
+ if (!context.navigation) {
156
+ return { dataLoading: true };
157
+ }
158
+
159
+ return { data, dataLoading, dataLoadingError };
160
+ }
@@ -0,0 +1,21 @@
1
+ import { SideDialogsController } from "../types";
2
+ import { SideDialogsControllerContext } from "../contexts/SideDialogsControllerContext";
3
+ import { useContext } from "react";
4
+
5
+ /**
6
+ * Hook to retrieve the side dialogs' controller.
7
+ *
8
+ * This hook allows you to open and close side dialogs. This is the mechanism
9
+ * used when open a side entity dialog, or when selecting a reference.
10
+ *
11
+ * If you want to open a side entity dialog, you can use the {@link useSideEntityController}
12
+ * hook.
13
+ *
14
+ * If you want to select a reference, you can use the {@link useReferenceDialog}
15
+ *
16
+ * Consider that in order to use this hook you need to have a parent
17
+ * `FireCMS`
18
+ *
19
+ * @group Hooks and utilities
20
+ */
21
+ export const useSideDialogsController = (): SideDialogsController => useContext(SideDialogsControllerContext);
@@ -0,0 +1,15 @@
1
+ import { SideEntityController } from "../types";
2
+ import { useContext } from "react";
3
+ import { SideEntityControllerContext } from "../contexts/SideEntityControllerContext";
4
+
5
+ /**
6
+ * Use this hook to retrieve an entity controller that allows you to open
7
+ * a side dialog to edit an entity.
8
+ *
9
+ * Consider that in order to use this hook you need to have a parent
10
+ * `FireCMS`
11
+ *
12
+ * @see SideEntityController
13
+ * @group Hooks and utilities
14
+ */
15
+ export const useSideEntityController = (): SideEntityController => useContext(SideEntityControllerContext);
@@ -0,0 +1,76 @@
1
+ import { useSnackbar } from "notistack";
2
+ import { useCallback, useMemo } from "react";
3
+
4
+ /**
5
+ * Possible snackbar types
6
+ * @group Hooks and utilities
7
+ */
8
+ export type SnackbarMessageType = "success" | "info" | "warning" | "error";
9
+
10
+ /**
11
+ * Controller to display snackbars
12
+ * @group Hooks and utilities
13
+ */
14
+ export interface SnackbarController {
15
+
16
+ /**
17
+ * Close the currently open snackbar
18
+ */
19
+ close: () => void;
20
+
21
+ /**
22
+ * Display a new snackbar. You need to specify the type and message.
23
+ * You can optionally specify a title
24
+ */
25
+ open: (props: {
26
+ type: SnackbarMessageType;
27
+ message: React.ReactNode;
28
+ autoHideDuration?: number;
29
+ }) => void;
30
+
31
+ }
32
+
33
+ /**
34
+ * Hook to retrieve the SnackbarContext.
35
+ *
36
+ * Consider that in order to use this hook you need to have a parent
37
+ * `FireCMS`
38
+ *
39
+ * @see SnackbarController
40
+ * @group Hooks and utilities
41
+ */
42
+ export const useSnackbarController = () => {
43
+
44
+ const {
45
+ enqueueSnackbar,
46
+ closeSnackbar
47
+ } = useSnackbar();
48
+
49
+ const open = useCallback((props: {
50
+ type: SnackbarMessageType;
51
+ // title?: string;
52
+ message: React.ReactNode;
53
+ autoHideDuration?: number;
54
+ }) => {
55
+ const {
56
+ type,
57
+ message,
58
+ autoHideDuration
59
+ } = props;
60
+ enqueueSnackbar({
61
+ message,
62
+ variant: type,
63
+ autoHideDuration
64
+ })
65
+ }, []);
66
+
67
+ const close = useCallback(() => {
68
+ closeSnackbar();
69
+ }, []);
70
+
71
+ return useMemo(() => ({
72
+ open,
73
+ close
74
+ }), [open, close]);
75
+
76
+ };
@@ -0,0 +1,9 @@
1
+ import { StorageSource } from "../types";
2
+ import { StorageSourceContext } from "../contexts/StorageSourceContext";
3
+ import { useContext } from "react";
4
+
5
+ /**
6
+ * Use this hook to get the storage source being used
7
+ * @group Hooks and utilities
8
+ */
9
+ export const useStorageSource = (): StorageSource => useContext(StorageSourceContext);
@@ -0,0 +1,11 @@
1
+ import { UserConfigurationPersistence } from "../types";
2
+ import { useContext } from "react";
3
+ import { UserConfigurationPersistenceContext } from "../contexts/UserConfigurationPersistenceContext";
4
+
5
+ /**
6
+ * Use this controller to access the configuration that is stored externally,
7
+ * and not defined in code
8
+ *
9
+ * @group Hooks and utilities
10
+ */
11
+ export const useUserConfigurationPersistence = (): UserConfigurationPersistence | undefined => useContext(UserConfigurationPersistenceContext);
@@ -0,0 +1 @@
1
+ // export
package/src/index.ts ADDED
@@ -0,0 +1,8 @@
1
+ export * from "./core";
2
+ export * from "./types";
3
+ export * from "./form";
4
+ export * from "./preview";
5
+ export * from "./hooks";
6
+ export * from "./components";
7
+ export * from "./util";
8
+ export * from "./contexts";