@firecms/core 3.0.0 → 3.1.0-canary.02232f4

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 (340) hide show
  1. package/README.md +1 -1
  2. package/dist/components/AIIcon.d.ts +16 -0
  3. package/dist/components/EntityCollectionTable/EntityCollectionRowActions.d.ts +7 -1
  4. package/dist/components/EntityCollectionTable/EntityCollectionTable.d.ts +1 -1
  5. package/dist/components/EntityCollectionTable/EntityCollectionTableProps.d.ts +14 -0
  6. package/dist/components/EntityCollectionTable/PropertyTableCell.d.ts +6 -0
  7. package/dist/components/EntityCollectionTable/internal/CollectionTableToolbar.d.ts +5 -4
  8. package/dist/components/EntityCollectionTable/internal/EntityTableCell.d.ts +6 -0
  9. package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +2 -2
  10. package/dist/components/EntityCollectionView/Board.d.ts +2 -0
  11. package/dist/components/EntityCollectionView/BoardColumn.d.ts +42 -0
  12. package/dist/components/EntityCollectionView/BoardColumnTitle.d.ts +9 -0
  13. package/dist/components/EntityCollectionView/BoardSortableList.d.ts +14 -0
  14. package/dist/components/EntityCollectionView/CollectionDataErrorBanner.d.ts +4 -0
  15. package/dist/components/EntityCollectionView/EntityBoardCard.d.ts +26 -0
  16. package/dist/components/EntityCollectionView/EntityCard.d.ts +19 -0
  17. package/dist/components/EntityCollectionView/EntityCollectionBoardView.d.ts +20 -0
  18. package/dist/components/EntityCollectionView/EntityCollectionCardView.d.ts +31 -0
  19. package/dist/components/EntityCollectionView/EntityCollectionViewActions.d.ts +2 -2
  20. package/dist/components/EntityCollectionView/EntityCollectionViewStartActions.d.ts +7 -3
  21. package/dist/components/EntityCollectionView/FiltersDialog.d.ts +14 -0
  22. package/dist/components/EntityCollectionView/ViewModeToggle.d.ts +44 -0
  23. package/dist/components/EntityCollectionView/board_types.d.ts +105 -0
  24. package/dist/components/EntityCollectionView/useBoardDataController.d.ts +60 -0
  25. package/dist/components/ErrorBoundary.d.ts +4 -2
  26. package/dist/components/HomePage/DefaultHomePage.d.ts +0 -1
  27. package/dist/components/LanguageToggle.d.ts +1 -0
  28. package/dist/components/SelectableTable/SelectableTable.d.ts +5 -1
  29. package/dist/components/SelectableTable/filters/DateTimeFilterField.d.ts +2 -1
  30. package/dist/components/UnsavedChangesDialog.d.ts +1 -0
  31. package/dist/components/VirtualTable/VirtualTable.performance.test.d.ts +1 -0
  32. package/dist/components/VirtualTable/VirtualTableCell.d.ts +6 -0
  33. package/dist/components/VirtualTable/VirtualTableHeader.d.ts +4 -1
  34. package/dist/components/VirtualTable/VirtualTableHeaderRow.d.ts +1 -1
  35. package/dist/components/VirtualTable/VirtualTableProps.d.ts +17 -1
  36. package/dist/components/VirtualTable/fields/VirtualTableDateField.d.ts +1 -0
  37. package/dist/components/VirtualTable/types.d.ts +3 -0
  38. package/dist/components/index.d.ts +4 -0
  39. package/dist/contexts/index.d.ts +10 -0
  40. package/dist/core/DrawerNavigationGroup.d.ts +45 -0
  41. package/dist/core/index.d.ts +1 -0
  42. package/dist/editor/components/SlashCommandMenu.d.ts +6 -0
  43. package/dist/editor/components/editor-bubble-item.d.ts +8 -0
  44. package/dist/editor/components/editor-bubble.d.ts +8 -0
  45. package/dist/editor/components/image-bubble.d.ts +5 -0
  46. package/dist/editor/components/index.d.ts +16 -0
  47. package/dist/editor/components/table-bubble.d.ts +5 -0
  48. package/dist/editor/editor.d.ts +30 -0
  49. package/dist/editor/extensions/HighlightDecorationExtension.d.ts +24 -0
  50. package/dist/editor/extensions/Image/index.d.ts +6 -0
  51. package/dist/editor/extensions/Image.d.ts +6 -0
  52. package/dist/editor/extensions/TextLoadingDecorationExtension.d.ts +16 -0
  53. package/dist/editor/extensions/clipboard.d.ts +7 -0
  54. package/dist/editor/extensions/custom-keymap.d.ts +1 -0
  55. package/dist/editor/extensions/drag-and-drop.d.ts +9 -0
  56. package/dist/editor/hooks/useProseMirror.d.ts +13 -0
  57. package/dist/editor/hooks/useProseMirrorContext.d.ts +9 -0
  58. package/dist/editor/index.d.ts +2 -0
  59. package/dist/editor/markdown.d.ts +5 -0
  60. package/dist/editor/nodeViews/ImageComponent.d.ts +3 -0
  61. package/dist/editor/nodeViews/ReactNodeView.d.ts +29 -0
  62. package/dist/editor/nodeViews/TaskItemComponent.d.ts +3 -0
  63. package/dist/editor/nodeViews/index.d.ts +6 -0
  64. package/dist/editor/plugins/index.d.ts +2 -0
  65. package/dist/editor/plugins/inputrules.d.ts +6 -0
  66. package/dist/editor/plugins/placeholderPlugin.d.ts +3 -0
  67. package/dist/editor/plugins/slashCommandPlugin.d.ts +12 -0
  68. package/dist/editor/schema.d.ts +2 -0
  69. package/dist/editor/selectors/ai-selector.d.ts +0 -0
  70. package/dist/editor/selectors/color-selector.d.ts +10 -0
  71. package/dist/editor/selectors/link-selector.d.ts +8 -0
  72. package/dist/editor/selectors/node-selector.d.ts +15 -0
  73. package/dist/editor/selectors/text-buttons.d.ts +1 -0
  74. package/dist/editor/types.d.ts +5 -0
  75. package/dist/editor/useProseMirror.d.ts +16 -0
  76. package/dist/editor/utils/prosemirror-utils.d.ts +6 -0
  77. package/dist/editor/utils/remove_classes.d.ts +1 -0
  78. package/dist/editor/utils/useDebouncedCallback.d.ts +1 -0
  79. package/dist/form/components/ErrorFocus.d.ts +1 -1
  80. package/dist/form/components/LocalChangesMenu.d.ts +2 -2
  81. package/dist/form/components/StorageUploadProgress.d.ts +1 -1
  82. package/dist/form/field_bindings/MapFieldBinding.d.ts +1 -1
  83. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +1 -1
  84. package/dist/form/validation.d.ts +3 -2
  85. package/dist/hooks/index.d.ts +1 -0
  86. package/dist/hooks/useBreadcrumbsController.d.ts +16 -0
  87. package/dist/hooks/useBuildNavigationController.d.ts +0 -1
  88. package/dist/hooks/useCollapsedGroups.d.ts +6 -3
  89. package/dist/hooks/useTranslation.d.ts +17 -0
  90. package/dist/i18n/FireCMSi18nProvider.d.ts +33 -0
  91. package/dist/index.d.ts +5 -0
  92. package/dist/index.es.js +31028 -16080
  93. package/dist/index.es.js.map +1 -1
  94. package/dist/index.umd.js +29955 -15028
  95. package/dist/index.umd.js.map +1 -1
  96. package/dist/internal/useRestoreScroll.d.ts +1 -1
  97. package/dist/locales/de.d.ts +2 -0
  98. package/dist/locales/en.d.ts +10 -0
  99. package/dist/locales/es.d.ts +10 -0
  100. package/dist/locales/fr.d.ts +2 -0
  101. package/dist/locales/hi.d.ts +2 -0
  102. package/dist/locales/it.d.ts +2 -0
  103. package/dist/locales/pt.d.ts +7 -0
  104. package/dist/preview/PropertyPreviewProps.d.ts +5 -0
  105. package/dist/preview/components/DatePreview.d.ts +13 -3
  106. package/dist/preview/components/ImagePreview.d.ts +5 -1
  107. package/dist/preview/components/StorageThumbnail.d.ts +2 -1
  108. package/dist/preview/components/UrlComponentPreview.d.ts +2 -1
  109. package/dist/preview/property_previews/ArrayOfStorageComponentsPreview.d.ts +1 -1
  110. package/dist/preview/property_previews/ArrayOfStringsPreview.d.ts +1 -1
  111. package/dist/preview/property_previews/SkeletonPropertyComponent.d.ts +1 -1
  112. package/dist/types/analytics.d.ts +1 -1
  113. package/dist/types/collections.d.ts +88 -2
  114. package/dist/types/customization_controller.d.ts +2 -1
  115. package/dist/types/datasource.d.ts +0 -1
  116. package/dist/types/entities.d.ts +1 -0
  117. package/dist/types/firecms.d.ts +2 -1
  118. package/dist/types/index.d.ts +1 -0
  119. package/dist/types/navigation.d.ts +2 -2
  120. package/dist/types/plugins.d.ts +69 -1
  121. package/dist/types/properties.d.ts +277 -12
  122. package/dist/types/storage.d.ts +9 -0
  123. package/dist/types/translations.d.ts +669 -0
  124. package/dist/util/__tests__/conditions.test.d.ts +1 -0
  125. package/dist/util/__tests__/objects.test.d.ts +1 -0
  126. package/dist/util/conditions.d.ts +26 -0
  127. package/dist/util/entities.d.ts +2 -3
  128. package/dist/util/index.d.ts +3 -1
  129. package/dist/util/lazy_eager.d.ts +7 -0
  130. package/dist/util/objects.d.ts +1 -0
  131. package/dist/util/property_utils.d.ts +2 -1
  132. package/dist/util/resolutions.d.ts +3 -3
  133. package/dist/util/useStorageUploadController.d.ts +11 -2
  134. package/package.json +52 -12
  135. package/src/app/Scaffold.tsx +20 -19
  136. package/src/components/AIIcon.tsx +41 -0
  137. package/src/components/ArrayContainer.tsx +7 -8
  138. package/src/components/ClearFilterSortButton.tsx +25 -19
  139. package/src/components/ConfirmationDialog.tsx +4 -4
  140. package/src/components/DeleteEntityDialog.tsx +12 -11
  141. package/src/components/EntityCollectionTable/EntityCollectionRowActions.tsx +82 -43
  142. package/src/components/EntityCollectionTable/EntityCollectionTable.tsx +130 -79
  143. package/src/components/EntityCollectionTable/EntityCollectionTableProps.tsx +121 -104
  144. package/src/components/EntityCollectionTable/PropertyTableCell.tsx +132 -103
  145. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +6 -3
  146. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +24 -44
  147. package/src/components/EntityCollectionTable/internal/EntityTableCell.tsx +90 -49
  148. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +1 -1
  149. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +3 -2
  150. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +11 -11
  151. package/src/components/EntityCollectionView/Board.tsx +324 -0
  152. package/src/components/EntityCollectionView/BoardColumn.tsx +158 -0
  153. package/src/components/EntityCollectionView/BoardColumnTitle.tsx +45 -0
  154. package/src/components/EntityCollectionView/BoardSortableList.tsx +174 -0
  155. package/src/components/EntityCollectionView/CollectionDataErrorBanner.tsx +43 -0
  156. package/src/components/EntityCollectionView/EntityBoardCard.tsx +212 -0
  157. package/src/components/EntityCollectionView/EntityCard.tsx +235 -0
  158. package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +706 -0
  159. package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +236 -0
  160. package/src/components/EntityCollectionView/EntityCollectionView.tsx +531 -209
  161. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +35 -22
  162. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +86 -15
  163. package/src/components/EntityCollectionView/FiltersDialog.tsx +252 -0
  164. package/src/components/EntityCollectionView/ViewModeToggle.tsx +202 -0
  165. package/src/components/EntityCollectionView/board_types.ts +113 -0
  166. package/src/components/EntityCollectionView/useBoardDataController.tsx +490 -0
  167. package/src/components/EntityJsonPreview.tsx +2 -1
  168. package/src/components/EntityPreview.tsx +1 -1
  169. package/src/components/EntityView.tsx +3 -2
  170. package/src/components/ErrorBoundary.tsx +27 -15
  171. package/src/components/ErrorTooltip.tsx +2 -1
  172. package/src/components/HomePage/DefaultHomePage.tsx +65 -22
  173. package/src/components/HomePage/HomePageDnD.tsx +59 -42
  174. package/src/components/HomePage/NavigationCard.tsx +20 -18
  175. package/src/components/HomePage/NavigationGroup.tsx +20 -17
  176. package/src/components/HomePage/RenameGroupDialog.tsx +15 -15
  177. package/src/components/HomePage/SmallNavigationCard.tsx +10 -9
  178. package/src/components/LanguageToggle.tsx +66 -0
  179. package/src/components/NotFoundPage.tsx +5 -3
  180. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +12 -17
  181. package/src/components/ReferenceWidget.tsx +5 -6
  182. package/src/components/SearchIconsView.tsx +3 -1
  183. package/src/components/SelectableTable/SelectableTable.tsx +75 -67
  184. package/src/components/SelectableTable/filters/BooleanFilterField.tsx +7 -6
  185. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +50 -40
  186. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +53 -40
  187. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +60 -58
  188. package/src/components/UnsavedChangesDialog.tsx +6 -6
  189. package/src/components/UserDisplay.tsx +4 -4
  190. package/src/components/VirtualTable/VirtualTable.performance.test.tsx +387 -0
  191. package/src/components/VirtualTable/VirtualTable.tsx +277 -121
  192. package/src/components/VirtualTable/VirtualTableCell.tsx +18 -2
  193. package/src/components/VirtualTable/VirtualTableHeader.tsx +76 -64
  194. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +163 -42
  195. package/src/components/VirtualTable/VirtualTableProps.tsx +21 -2
  196. package/src/components/VirtualTable/VirtualTableRow.tsx +1 -1
  197. package/src/components/VirtualTable/fields/VirtualTableDateField.tsx +3 -0
  198. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +19 -6
  199. package/src/components/VirtualTable/types.tsx +3 -0
  200. package/src/components/common/default_entity_actions.tsx +4 -0
  201. package/src/components/common/useColumnsIds.tsx +95 -3
  202. package/src/components/common/useDataSourceTableController.tsx +12 -4
  203. package/src/components/index.tsx +5 -0
  204. package/src/contexts/BreacrumbsContext.tsx +15 -8
  205. package/src/contexts/index.ts +10 -0
  206. package/src/core/DefaultAppBar.tsx +49 -32
  207. package/src/core/DefaultDrawer.tsx +49 -57
  208. package/src/core/DrawerNavigationGroup.tsx +120 -0
  209. package/src/core/DrawerNavigationItem.tsx +4 -3
  210. package/src/core/EntityEditView.tsx +94 -50
  211. package/src/core/EntityEditViewFormActions.tsx +24 -17
  212. package/src/core/EntitySidePanel.tsx +34 -30
  213. package/src/core/FireCMS.tsx +33 -6
  214. package/src/core/SideDialogs.tsx +4 -2
  215. package/src/core/field_configs.tsx +18 -11
  216. package/src/core/index.tsx +1 -0
  217. package/src/editor/components/SlashCommandMenu.tsx +516 -0
  218. package/src/editor/components/editor-bubble-item.tsx +32 -0
  219. package/src/editor/components/editor-bubble.tsx +118 -0
  220. package/src/editor/components/image-bubble.tsx +156 -0
  221. package/src/editor/components/index.ts +14 -0
  222. package/src/editor/components/table-bubble.tsx +165 -0
  223. package/src/editor/editor.tsx +455 -0
  224. package/src/editor/extensions/HighlightDecorationExtension.ts +114 -0
  225. package/src/editor/extensions/Image/index.ts +133 -0
  226. package/src/editor/extensions/Image.ts +159 -0
  227. package/src/editor/extensions/TextLoadingDecorationExtension.tsx +107 -0
  228. package/src/editor/extensions/clipboard.ts +72 -0
  229. package/src/editor/extensions/custom-keymap.ts +24 -0
  230. package/src/editor/extensions/drag-and-drop.tsx +480 -0
  231. package/src/editor/hooks/useProseMirror.ts +124 -0
  232. package/src/editor/hooks/useProseMirrorContext.ts +15 -0
  233. package/src/editor/index.ts +2 -0
  234. package/src/editor/markdown.ts +172 -0
  235. package/src/editor/nodeViews/ImageComponent.tsx +20 -0
  236. package/src/editor/nodeViews/ReactNodeView.tsx +89 -0
  237. package/src/editor/nodeViews/TaskItemComponent.tsx +29 -0
  238. package/src/editor/nodeViews/index.ts +35 -0
  239. package/src/editor/plugins/index.ts +58 -0
  240. package/src/editor/plugins/inputrules.ts +82 -0
  241. package/src/editor/plugins/placeholderPlugin.ts +55 -0
  242. package/src/editor/plugins/slashCommandPlugin.ts +61 -0
  243. package/src/editor/schema.ts +240 -0
  244. package/src/editor/selectors/ai-selector.tsx +111 -0
  245. package/src/editor/selectors/color-selector.tsx +200 -0
  246. package/src/editor/selectors/link-selector.tsx +118 -0
  247. package/src/editor/selectors/node-selector.tsx +157 -0
  248. package/src/editor/selectors/text-buttons.tsx +86 -0
  249. package/src/editor/types.ts +6 -0
  250. package/src/editor/useProseMirror.ts +126 -0
  251. package/src/editor/utils/prosemirror-utils.ts +108 -0
  252. package/src/editor/utils/remove_classes.ts +17 -0
  253. package/src/editor/utils/useDebouncedCallback.ts +25 -0
  254. package/src/form/EntityForm.tsx +150 -75
  255. package/src/form/EntityFormActions.tsx +19 -12
  256. package/src/form/PropertyFieldBinding.tsx +68 -51
  257. package/src/form/components/ErrorFocus.tsx +3 -3
  258. package/src/form/components/LocalChangesMenu.tsx +19 -19
  259. package/src/form/components/StorageItemPreview.tsx +5 -3
  260. package/src/form/components/StorageUploadProgress.tsx +22 -6
  261. package/src/form/field_bindings/ArrayCustomShapedFieldBinding.tsx +18 -5
  262. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +22 -10
  263. package/src/form/field_bindings/BlockFieldBinding.tsx +26 -9
  264. package/src/form/field_bindings/DateTimeFieldBinding.tsx +18 -17
  265. package/src/form/field_bindings/KeyValueFieldBinding.tsx +46 -25
  266. package/src/form/field_bindings/MapFieldBinding.tsx +88 -70
  267. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +93 -52
  268. package/src/form/field_bindings/MultiSelectFieldBinding.tsx +15 -1
  269. package/src/form/field_bindings/ReferenceAsStringFieldBinding.tsx +25 -11
  270. package/src/form/field_bindings/ReferenceFieldBinding.tsx +25 -11
  271. package/src/form/field_bindings/RepeatFieldBinding.tsx +21 -6
  272. package/src/form/field_bindings/SelectFieldBinding.tsx +7 -5
  273. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +110 -92
  274. package/src/form/field_bindings/SwitchFieldBinding.tsx +31 -14
  275. package/src/form/field_bindings/TextFieldBinding.tsx +77 -38
  276. package/src/form/field_bindings/UserSelectFieldBinding.tsx +7 -5
  277. package/src/form/validation.ts +245 -160
  278. package/src/hooks/index.tsx +1 -0
  279. package/src/hooks/useBreadcrumbsController.tsx +18 -0
  280. package/src/hooks/useBuildNavigationController.tsx +91 -41
  281. package/src/hooks/useCollapsedGroups.ts +18 -9
  282. package/src/hooks/useTranslation.ts +31 -0
  283. package/src/hooks/useValidateAuthenticator.tsx +1 -1
  284. package/src/i18n/FireCMSi18nProvider.tsx +160 -0
  285. package/src/index.ts +5 -0
  286. package/src/internal/useBuildDataSource.ts +68 -34
  287. package/src/internal/useBuildSideDialogsController.tsx +11 -8
  288. package/src/internal/useBuildSideEntityController.tsx +24 -24
  289. package/src/internal/useRestoreScroll.tsx +26 -14
  290. package/src/locales/de.ts +718 -0
  291. package/src/locales/en.ts +730 -0
  292. package/src/locales/es.ts +730 -0
  293. package/src/locales/fr.ts +718 -0
  294. package/src/locales/hi.ts +718 -0
  295. package/src/locales/it.ts +718 -0
  296. package/src/locales/pt.ts +727 -0
  297. package/src/preview/PropertyPreview.tsx +43 -33
  298. package/src/preview/PropertyPreviewProps.tsx +6 -0
  299. package/src/preview/components/DatePreview.tsx +72 -4
  300. package/src/preview/components/EmptyValue.tsx +1 -1
  301. package/src/preview/components/ImagePreview.tsx +37 -21
  302. package/src/preview/components/ReferencePreview.tsx +8 -2
  303. package/src/preview/components/StorageThumbnail.tsx +16 -12
  304. package/src/preview/components/UrlComponentPreview.tsx +32 -27
  305. package/src/preview/components/UserPreview.tsx +3 -1
  306. package/src/preview/property_previews/ArrayOfStorageComponentsPreview.tsx +9 -7
  307. package/src/preview/property_previews/ArrayOfStringsPreview.tsx +11 -9
  308. package/src/preview/property_previews/ArrayPropertyPreview.tsx +26 -24
  309. package/src/preview/property_previews/MapPropertyPreview.tsx +49 -27
  310. package/src/preview/property_previews/SkeletonPropertyComponent.tsx +61 -56
  311. package/src/routes/CustomCMSRoute.tsx +1 -0
  312. package/src/routes/FireCMSRoute.tsx +87 -65
  313. package/src/types/analytics.ts +10 -0
  314. package/src/types/collections.ts +97 -3
  315. package/src/types/customization_controller.tsx +2 -1
  316. package/src/types/datasource.ts +54 -56
  317. package/src/types/entities.ts +10 -0
  318. package/src/types/firecms.tsx +2 -1
  319. package/src/types/index.ts +1 -0
  320. package/src/types/navigation.ts +2 -2
  321. package/src/types/plugins.tsx +77 -1
  322. package/src/types/properties.ts +369 -37
  323. package/src/types/storage.ts +11 -1
  324. package/src/types/translations.ts +752 -0
  325. package/src/util/__tests__/conditions.test.ts +506 -0
  326. package/src/util/__tests__/objects.test.ts +196 -0
  327. package/src/util/callbacks.ts +6 -3
  328. package/src/util/collections.ts +51 -6
  329. package/src/util/conditions.ts +339 -0
  330. package/src/util/entities.ts +29 -30
  331. package/src/util/entity_cache.ts +2 -1
  332. package/src/util/index.ts +3 -1
  333. package/src/util/join_collections.ts +10 -8
  334. package/src/util/lazy_eager.tsx +33 -0
  335. package/src/util/objects.ts +46 -13
  336. package/src/util/{references.ts → previews.ts} +16 -2
  337. package/src/util/property_utils.tsx +37 -11
  338. package/src/util/resolutions.ts +62 -58
  339. package/src/util/useStorageUploadController.tsx +34 -30
  340. /package/dist/util/{references.d.ts → previews.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  export declare function useRestoreScroll(): {
3
- containerRef: React.RefObject<HTMLDivElement>;
3
+ containerRef: React.RefObject<HTMLDivElement | null>;
4
4
  scroll: number;
5
5
  direction: "up" | "down";
6
6
  };
@@ -0,0 +1,2 @@
1
+ import { FireCMSTranslations } from "../types/translations";
2
+ export declare const de: FireCMSTranslations;
@@ -0,0 +1,10 @@
1
+ import { FireCMSTranslations } from "../types/translations";
2
+ /**
3
+ * English baseline translations for @firecms/core.
4
+ *
5
+ * This is the single source of truth for all default UI strings.
6
+ * Override any key via the `translations` prop on FireCMS entry-point components.
7
+ *
8
+ * @group Core
9
+ */
10
+ export declare const en: FireCMSTranslations;
@@ -0,0 +1,10 @@
1
+ import { FireCMSTranslations } from "../types/translations";
2
+ /**
3
+ * Spanish baseline translations for @firecms/core.
4
+ *
5
+ * This is the single source of truth for all default UI strings in Spanish.
6
+ * Override any key via the `translations` prop on FireCMS entry-point components.
7
+ *
8
+ * @group Core
9
+ */
10
+ export declare const es: FireCMSTranslations;
@@ -0,0 +1,2 @@
1
+ import { FireCMSTranslations } from "../types/translations";
2
+ export declare const fr: FireCMSTranslations;
@@ -0,0 +1,2 @@
1
+ import { FireCMSTranslations } from "../types/translations";
2
+ export declare const hi: FireCMSTranslations;
@@ -0,0 +1,2 @@
1
+ import { FireCMSTranslations } from "../types/translations";
2
+ export declare const it: FireCMSTranslations;
@@ -0,0 +1,7 @@
1
+ import { FireCMSTranslations } from "../types/translations";
2
+ /**
3
+ * Portuguese (pt) translations for @firecms/core.
4
+ *
5
+ * @group Core
6
+ */
7
+ export declare const pt: FireCMSTranslations;
@@ -42,4 +42,9 @@ export interface PropertyPreviewProps<T extends CMSType = any, CustomProps = any
42
42
  * This applies only to videos.
43
43
  */
44
44
  interactive?: boolean;
45
+ /**
46
+ * If true, image previews will fill their container completely.
47
+ * Only applies to image type properties.
48
+ */
49
+ fill?: boolean;
45
50
  }
@@ -1,7 +1,17 @@
1
1
  import React from "react";
2
+ export interface DatePreviewProps {
3
+ date: Date;
4
+ /**
5
+ * Display mode: "date" for date-only, "date_time" for date and time
6
+ */
7
+ mode?: "date" | "date_time";
8
+ /**
9
+ * IANA timezone identifier (e.g., "America/New_York")
10
+ * When specified, the date will be displayed in this timezone
11
+ */
12
+ timezone?: string;
13
+ }
2
14
  /**
3
15
  * @group Preview components
4
16
  */
5
- export declare function DatePreview({ date }: {
6
- date: Date;
7
- }): React.ReactElement;
17
+ export declare function DatePreview({ date, mode, timezone }: DatePreviewProps): React.ReactElement;
@@ -5,8 +5,12 @@ import { PreviewSize } from "../PropertyPreviewProps";
5
5
  export interface ImagePreviewProps {
6
6
  size: PreviewSize;
7
7
  url: string;
8
+ /**
9
+ * If true, image fills its container completely with object-fit cover
10
+ */
11
+ fill?: boolean;
8
12
  }
9
13
  /**
10
14
  * @group Preview components
11
15
  */
12
- export declare function ImagePreview({ size, url }: ImagePreviewProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare function ImagePreview({ size, url, fill }: ImagePreviewProps): import("react/jsx-runtime").JSX.Element;
@@ -5,10 +5,11 @@ type StorageThumbnailProps = {
5
5
  storeUrl: boolean;
6
6
  size: PreviewSize;
7
7
  interactive?: boolean;
8
+ fill?: boolean;
8
9
  };
9
10
  /**
10
11
  * @group Preview components
11
12
  */
12
13
  export declare const StorageThumbnail: React.FunctionComponent<StorageThumbnailProps>;
13
- export declare function StorageThumbnailInternal({ storeUrl, interactive, storagePathOrDownloadUrl, size }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
14
+ export declare function StorageThumbnailInternal({ storeUrl, interactive, storagePathOrDownloadUrl, size, fill }: StorageThumbnailProps): import("react/jsx-runtime").JSX.Element | null;
14
15
  export {};
@@ -4,10 +4,11 @@ import { PreviewSize } from "../PropertyPreviewProps";
4
4
  /**
5
5
  * @group Preview components
6
6
  */
7
- export declare function UrlComponentPreview({ url, previewType, size, hint, interactive }: {
7
+ export declare function UrlComponentPreview({ url, previewType, size, hint, interactive, fill }: {
8
8
  url: string;
9
9
  previewType?: PreviewType;
10
10
  size: PreviewSize;
11
11
  hint?: string;
12
12
  interactive?: boolean;
13
+ fill?: boolean;
13
14
  }): React.ReactElement;
@@ -2,4 +2,4 @@ import { PropertyPreviewProps } from "../PropertyPreviewProps";
2
2
  /**
3
3
  * @group Preview components
4
4
  */
5
- export declare function ArrayOfStorageComponentsPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<any[]>): import("react/jsx-runtime").JSX.Element;
5
+ export declare function ArrayOfStorageComponentsPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<any[]>): import("react/jsx-runtime").JSX.Element | null;
@@ -2,4 +2,4 @@ import { PropertyPreviewProps } from "../../preview";
2
2
  /**
3
3
  * @group Preview components
4
4
  */
5
- export declare function ArrayOfStringsPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<string[]>): import("react/jsx-runtime").JSX.Element;
5
+ export declare function ArrayOfStringsPreview({ propertyKey, value, property: inputProperty, size }: PropertyPreviewProps<string[]>): import("react/jsx-runtime").JSX.Element | null;
@@ -8,7 +8,7 @@ export interface SkeletonPropertyComponentProps {
8
8
  * @group Preview components
9
9
  */
10
10
  export declare function SkeletonPropertyComponent({ property, size }: SkeletonPropertyComponentProps): any;
11
- export declare function renderSkeletonImageThumbnail(size: PreviewSize): import("react/jsx-runtime").JSX.Element;
11
+ export declare function renderSkeletonImageThumbnail(size: PreviewSize, fill?: boolean): import("react/jsx-runtime").JSX.Element;
12
12
  export declare function renderSkeletonText(index?: number, width?: number): import("react/jsx-runtime").JSX.Element;
13
13
  export declare function renderSkeletonCaptionText(index?: number): import("react/jsx-runtime").JSX.Element;
14
14
  export declare function renderSkeletonIcon(): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- export type CMSAnalyticsEvent = "entity_click" | "entity_click_from_reference" | "reference_selection_clear" | "reference_selection_toggle" | "reference_selected_single" | "reference_selection_new_entity" | "edit_entity_clicked" | "entity_edited" | "new_entity_click" | "new_entity_saved" | "copy_entity_click" | "entity_copied" | "single_delete_dialog_open" | "multiple_delete_dialog_open" | "single_entity_deleted" | "multiple_entities_deleted" | "drawer_navigate_to_home" | "drawer_navigate_to_collection" | "drawer_navigate_to_view" | "home_navigate_to_collection" | "home_favorite_navigate_to_collection" | "home_navigate_to_view" | "home_navigate_to_admin_view" | "home_favorite_navigate_to_view" | "home_move_card" | "home_move_group" | "home_drop_new_group" | "collection_inline_editing" | "unmapped_event";
1
+ export type CMSAnalyticsEvent = "entity_click" | "entity_click_from_reference" | "reference_selection_clear" | "reference_selection_toggle" | "reference_selected_single" | "reference_selection_new_entity" | "edit_entity_clicked" | "entity_edited" | "new_entity_click" | "new_entity_saved" | "copy_entity_click" | "entity_copied" | "single_delete_dialog_open" | "multiple_delete_dialog_open" | "single_entity_deleted" | "multiple_entities_deleted" | "drawer_navigate_to_home" | "drawer_navigate_to_collection" | "drawer_navigate_to_view" | "home_navigate_to_collection" | "home_favorite_navigate_to_collection" | "home_navigate_to_view" | "home_navigate_to_admin_view" | "home_favorite_navigate_to_view" | "home_move_card" | "home_move_group" | "home_drop_new_group" | "collection_inline_editing" | "view_mode_changed" | "kanban_card_moved" | "kanban_column_reorder" | "kanban_property_changed" | "kanban_new_entity_in_column" | "kanban_backfill_order" | "card_view_entity_click" | "unmapped_event";
@@ -142,6 +142,30 @@ export interface EntityCollection<M extends Record<string, any> = any, USER exte
142
142
  * the side dialog of an entity.
143
143
  */
144
144
  subcollections?: EntityCollection<any, any>[];
145
+ /**
146
+ * You can group subcollections and custom views into dropdown menus
147
+ * in the entity view tabs. Views listed in a group will be removed
148
+ * from the top-level tabs and shown under a single dropdown instead.
149
+ *
150
+ * @example
151
+ * ```tsx
152
+ * const productsCollection = buildCollection({
153
+ * id: "products",
154
+ * path: "products",
155
+ * name: "Products",
156
+ * properties: { ... },
157
+ * subcollections: [localesCollection, reviewsCollection],
158
+ * entityViews: [sampleView],
159
+ * viewGroups: [
160
+ * {
161
+ * name: "Related data",
162
+ * views: ["locales", "reviews", "sample_view"]
163
+ * }
164
+ * ]
165
+ * });
166
+ * ```
167
+ */
168
+ viewGroups?: ViewGroup[];
145
169
  /**
146
170
  * This interface defines all the callbacks that can be used when an entity
147
171
  * is being created, updated or deleted.
@@ -318,7 +342,68 @@ export interface EntityCollection<M extends Record<string, any> = any, USER exte
318
342
  * Defaults to `manual_apply`.
319
343
  */
320
344
  localChangesBackup?: "manual_apply" | "auto_apply" | false;
345
+ /**
346
+ * Default view mode for displaying this collection.
347
+ * - "table": Display entities in a spreadsheet-like table (default)
348
+ * - "cards": Display entities as a grid of cards with thumbnails
349
+ * - "kanban": Display entities in a Kanban board grouped by a property
350
+ * Defaults to "table".
351
+ */
352
+ defaultViewMode?: ViewMode;
353
+ /**
354
+ * Which view modes are available for this collection.
355
+ * Possible values: "table", "cards", "kanban".
356
+ * Defaults to all three: ["table", "cards", "kanban"].
357
+ * Note: "kanban" will only be available if the collection has at least
358
+ * one string property with enumValues defined, regardless of this setting.
359
+ */
360
+ enabledViews?: ViewMode[];
361
+ /**
362
+ * Configuration for Kanban board view mode.
363
+ * When set, the Kanban view mode becomes available.
364
+ */
365
+ kanban?: KanbanConfig<M>;
366
+ /**
367
+ * Property key to use for ordering items.
368
+ * Must reference a number property. When items are reordered,
369
+ * this property will be updated to reflect the new order using
370
+ * fractional indexing. Used by Kanban view for ordering within columns
371
+ * and can be used for general ordering purposes.
372
+ */
373
+ orderProperty?: Extract<keyof M, string>;
321
374
  }
375
+ /**
376
+ * Configuration for Kanban board view mode.
377
+ * @group Collections
378
+ */
379
+ export interface KanbanConfig<M extends Record<string, any> = any> {
380
+ /**
381
+ * Property key to use for Kanban board columns.
382
+ * Must reference a string property with enumValues defined.
383
+ * Entities will be grouped into columns based on this property's value.
384
+ * The column order is determined by the order of enumValues in the property.
385
+ */
386
+ columnProperty: Extract<keyof M, string>;
387
+ }
388
+ /**
389
+ * You can group subcollections and custom views into dropdown menus in the entity view tabs.
390
+ * @group Collections
391
+ */
392
+ export interface ViewGroup {
393
+ /**
394
+ * Name of the group
395
+ */
396
+ name: string;
397
+ /**
398
+ * Array of subcollection paths/ids or custom view keys
399
+ */
400
+ views: string[];
401
+ }
402
+ /**
403
+ * View mode for displaying a collection.
404
+ * @group Collections
405
+ */
406
+ export type ViewMode = "table" | "cards" | "kanban";
322
407
  /**
323
408
  * Parameter passed to the `Actions` prop in the collection configuration.
324
409
  * The component will receive this prop when it is rendered in the collection
@@ -359,9 +444,10 @@ export interface CollectionActionsProps<M extends Record<string, any> = any, USE
359
444
  */
360
445
  context: FireCMSContext<USER>;
361
446
  /**
362
- * Count of the entities in this collection
447
+ * Count of the entities in this collection.
448
+ * undefined means the count is still loading.
363
449
  */
364
- collectionEntitiesCount: number;
450
+ collectionEntitiesCount?: number;
365
451
  }
366
452
  /**
367
453
  * Use this controller to retrieve the selected entities or modify them in
@@ -35,7 +35,8 @@ export type CustomizationController = {
35
35
  */
36
36
  dateTimeFormat?: string;
37
37
  /**
38
- * Locale of the CMS, currently only affecting dates
38
+ * Locale of the CMS.
39
+ * Affects date formatting.
39
40
  */
40
41
  locale?: Locale;
41
42
  /**
@@ -267,7 +267,6 @@ export interface DataSourceDelegate {
267
267
  currentTime?: () => any;
268
268
  delegateToCMSModel: (data: any) => any;
269
269
  cmsToDelegateModel: (data: any) => any;
270
- setDateToMidnight: (input?: any) => any;
271
270
  initTextSearch?: (props: {
272
271
  context: FireCMSContext;
273
272
  path: string;
@@ -48,6 +48,7 @@ export declare class EntityReference {
48
48
  readonly databaseId?: string;
49
49
  constructor(id: string, path: string, databaseId?: string);
50
50
  get pathWithId(): string;
51
+ get pathWithIdAndDatabase(): string;
51
52
  isEntityReference(): boolean;
52
53
  }
53
54
  export declare class GeoPoint {
@@ -100,7 +100,8 @@ export type FireCMSProps<USER extends User> = {
100
100
  */
101
101
  dateTimeFormat?: string;
102
102
  /**
103
- * Locale of the CMS, currently only affecting dates
103
+ * Locale of the CMS.
104
+ * Affects date formatting.
104
105
  */
105
106
  locale?: Locale;
106
107
  /**
@@ -28,3 +28,4 @@ export * from "./export_import";
28
28
  export * from "./modify_collections";
29
29
  export * from "./analytics_controller";
30
30
  export * from "./customization_controller";
31
+ export * from "./translations";
@@ -212,11 +212,11 @@ export interface NavigationEntry {
212
212
  collection?: EntityCollection;
213
213
  view?: CMSView;
214
214
  description?: string;
215
- group: string;
215
+ group: string | null;
216
216
  }
217
217
  export type NavigationResult = {
218
218
  allowDragAndDrop: boolean;
219
219
  navigationEntries: NavigationEntry[];
220
- groups: string[];
220
+ groups: (string | null)[];
221
221
  onNavigationEntriesUpdate: (entries: NavigationGroupMapping[]) => void;
222
222
  };
@@ -6,7 +6,7 @@ import { FieldProps, FormContext } from "./fields";
6
6
  import { CMSType, Property } from "./properties";
7
7
  import { EntityStatus } from "./entities";
8
8
  import { ResolvedProperty } from "./resolved_entities";
9
- import { NavigationGroupMapping } from "./navigation";
9
+ import { NavigationGroupMapping, CMSView } from "./navigation";
10
10
  import { InternalUserManagement } from "./internal_user_management";
11
11
  /**
12
12
  * Interface used to define plugins for FireCMS.
@@ -23,6 +23,13 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
23
23
  * until the plugin is fully loaded.
24
24
  */
25
25
  loading?: boolean;
26
+ /**
27
+ * Override any FireCMS UI string, or provide translations for additional
28
+ * locales, specific for this plugin.
29
+ * Keys can be existing `FireCMSTranslations` keys, or new keys if using
30
+ * module augmentation.
31
+ */
32
+ i18n?: Record<string, Record<string, string>>;
26
33
  /**
27
34
  * You can use this prop to add higher order components to the CMS.
28
35
  * The components will be added to the root of the CMS, so any component
@@ -39,6 +46,11 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
39
46
  props?: PROPS;
40
47
  };
41
48
  userManagement?: InternalUserManagement;
49
+ /**
50
+ * Views to be automatically added to the navigation.
51
+ * These views will be merged with the views provided to useBuildNavigationController.
52
+ */
53
+ views?: CMSView[];
42
54
  homePage?: {
43
55
  /**
44
56
  * Additional actions to be rendered in the home page, close to the search bar.
@@ -86,6 +98,18 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
86
98
  onNavigationEntriesUpdate?: (entries: NavigationGroupMapping[]) => void;
87
99
  };
88
100
  collectionView?: {
101
+ /**
102
+ * Custom component to render when a collection loading error occurs.
103
+ * If provided, this replaces the default error view in all collection view modes
104
+ * (table, card, kanban).
105
+ * Return `null` from the component to fall back to the default error view.
106
+ */
107
+ CollectionError?: React.ComponentType<{
108
+ path: string;
109
+ collection: EC;
110
+ parentCollectionIds?: string[];
111
+ error: Error;
112
+ }>;
89
113
  /**
90
114
  * Use this component to add custom actions to the entity collections
91
115
  * toolbar.
@@ -135,6 +159,46 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
135
159
  collection: EC;
136
160
  tableController: EntityTableController;
137
161
  }>;
162
+ /**
163
+ * Callback called when columns are reordered via drag and drop.
164
+ * Used by plugins to persist the new column order.
165
+ */
166
+ onColumnsReorder?: (props: {
167
+ fullPath: string;
168
+ parentCollectionIds: string[];
169
+ collection: EC;
170
+ newPropertiesOrder: string[];
171
+ }) => void;
172
+ /**
173
+ * Callback called when Kanban board columns are reordered via drag and drop.
174
+ * Used by plugins to persist the new Kanban column order.
175
+ */
176
+ onKanbanColumnsReorder?: (props: {
177
+ fullPath: string;
178
+ parentCollectionIds: string[];
179
+ collection: EC;
180
+ kanbanColumnProperty: string;
181
+ newColumnsOrder: string[];
182
+ }) => void;
183
+ /**
184
+ * Component to render when Kanban view is missing configuration.
185
+ * Used to provide a CTA to open the collection editor to configure Kanban.
186
+ */
187
+ KanbanSetupComponent?: React.ComponentType<{
188
+ collection: EC;
189
+ fullPath: string;
190
+ parentCollectionIds: string[];
191
+ }>;
192
+ /**
193
+ * Component to render an "Add Column" button at the end of the Kanban board.
194
+ * Used to allow adding new enum values to the column property.
195
+ */
196
+ AddKanbanColumnComponent?: React.ComponentType<{
197
+ collection: EC;
198
+ fullPath: string;
199
+ parentCollectionIds: string[];
200
+ columnProperty: string;
201
+ }>;
138
202
  };
139
203
  form?: {
140
204
  provider?: {
@@ -149,6 +213,10 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
149
213
  * Add custom actions to the top of the form
150
214
  */
151
215
  ActionsTop?: React.ComponentType<PluginFormActionProps<any, EC>>;
216
+ /**
217
+ * Add custom content above the entity title in the form view
218
+ */
219
+ BeforeTitle?: React.ComponentType<PluginFormActionProps<any, EC>>;
152
220
  fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
153
221
  fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
154
222
  };