@firecms/core 3.1.0-canary.9e89e98 → 3.1.0-canary.dc8ac43

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 (216) hide show
  1. package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +2 -2
  2. package/dist/components/EntityCollectionView/CollectionDataErrorBanner.d.ts +4 -0
  3. package/dist/components/ErrorBoundary.d.ts +4 -2
  4. package/dist/components/HomePage/DefaultHomePage.d.ts +0 -1
  5. package/dist/components/LanguageToggle.d.ts +1 -0
  6. package/dist/components/UnsavedChangesDialog.d.ts +1 -0
  7. package/dist/components/VirtualTable/VirtualTableHeader.d.ts +1 -1
  8. package/dist/components/index.d.ts +1 -0
  9. package/dist/core/DrawerNavigationGroup.d.ts +2 -2
  10. package/dist/editor/components/SlashCommandMenu.d.ts +6 -0
  11. package/dist/editor/components/editor-bubble-item.d.ts +8 -0
  12. package/dist/editor/components/editor-bubble.d.ts +8 -0
  13. package/dist/editor/components/image-bubble.d.ts +5 -0
  14. package/dist/editor/components/index.d.ts +16 -0
  15. package/dist/editor/components/table-bubble.d.ts +5 -0
  16. package/dist/editor/editor.d.ts +30 -0
  17. package/dist/editor/extensions/HighlightDecorationExtension.d.ts +24 -0
  18. package/dist/editor/extensions/Image/index.d.ts +6 -0
  19. package/dist/editor/extensions/Image.d.ts +6 -0
  20. package/dist/editor/extensions/TextLoadingDecorationExtension.d.ts +16 -0
  21. package/dist/editor/extensions/clipboard.d.ts +7 -0
  22. package/dist/editor/extensions/custom-keymap.d.ts +1 -0
  23. package/dist/editor/extensions/drag-and-drop.d.ts +9 -0
  24. package/dist/editor/hooks/useProseMirror.d.ts +13 -0
  25. package/dist/editor/hooks/useProseMirrorContext.d.ts +9 -0
  26. package/dist/editor/index.d.ts +2 -0
  27. package/dist/editor/markdown.d.ts +5 -0
  28. package/dist/editor/nodeViews/ImageComponent.d.ts +3 -0
  29. package/dist/editor/nodeViews/ReactNodeView.d.ts +29 -0
  30. package/dist/editor/nodeViews/TaskItemComponent.d.ts +3 -0
  31. package/dist/editor/nodeViews/index.d.ts +6 -0
  32. package/dist/editor/plugins/index.d.ts +2 -0
  33. package/dist/editor/plugins/inputrules.d.ts +6 -0
  34. package/dist/editor/plugins/placeholderPlugin.d.ts +3 -0
  35. package/dist/editor/plugins/slashCommandPlugin.d.ts +12 -0
  36. package/dist/editor/schema.d.ts +2 -0
  37. package/dist/editor/selectors/ai-selector.d.ts +0 -0
  38. package/dist/editor/selectors/color-selector.d.ts +10 -0
  39. package/dist/editor/selectors/link-selector.d.ts +8 -0
  40. package/dist/editor/selectors/node-selector.d.ts +15 -0
  41. package/dist/editor/selectors/text-buttons.d.ts +1 -0
  42. package/dist/editor/types.d.ts +5 -0
  43. package/dist/editor/useProseMirror.d.ts +16 -0
  44. package/dist/editor/utils/prosemirror-utils.d.ts +6 -0
  45. package/dist/editor/utils/remove_classes.d.ts +1 -0
  46. package/dist/editor/utils/useDebouncedCallback.d.ts +1 -0
  47. package/dist/form/components/ErrorFocus.d.ts +1 -1
  48. package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +1 -1
  49. package/dist/hooks/index.d.ts +1 -0
  50. package/dist/hooks/useBuildNavigationController.d.ts +0 -1
  51. package/dist/hooks/useCollapsedGroups.d.ts +3 -3
  52. package/dist/hooks/useTranslation.d.ts +17 -0
  53. package/dist/i18n/FireCMSi18nProvider.d.ts +33 -0
  54. package/dist/index.d.ts +4 -0
  55. package/dist/index.es.js +13009 -2312
  56. package/dist/index.es.js.map +1 -1
  57. package/dist/index.umd.js +12997 -2320
  58. package/dist/index.umd.js.map +1 -1
  59. package/dist/internal/useRestoreScroll.d.ts +1 -1
  60. package/dist/locales/de.d.ts +2 -0
  61. package/dist/locales/en.d.ts +10 -0
  62. package/dist/locales/es.d.ts +10 -0
  63. package/dist/locales/fr.d.ts +2 -0
  64. package/dist/locales/hi.d.ts +2 -0
  65. package/dist/locales/it.d.ts +2 -0
  66. package/dist/locales/pt.d.ts +7 -0
  67. package/dist/types/analytics.d.ts +1 -1
  68. package/dist/types/customization_controller.d.ts +2 -1
  69. package/dist/types/firecms.d.ts +2 -1
  70. package/dist/types/index.d.ts +1 -0
  71. package/dist/types/navigation.d.ts +2 -2
  72. package/dist/types/plugins.d.ts +23 -0
  73. package/dist/types/storage.d.ts +1 -0
  74. package/dist/types/translations.d.ts +646 -0
  75. package/dist/util/entities.d.ts +1 -1
  76. package/dist/util/resolutions.d.ts +2 -2
  77. package/dist/util/useStorageUploadController.d.ts +10 -1
  78. package/package.json +49 -13
  79. package/src/app/Scaffold.tsx +7 -5
  80. package/src/components/AIIcon.tsx +3 -1
  81. package/src/components/ArrayContainer.tsx +6 -4
  82. package/src/components/ClearFilterSortButton.tsx +6 -3
  83. package/src/components/ConfirmationDialog.tsx +4 -2
  84. package/src/components/DeleteEntityDialog.tsx +10 -7
  85. package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +6 -3
  86. package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +3 -1
  87. package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +1 -1
  88. package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +3 -2
  89. package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +11 -11
  90. package/src/components/EntityCollectionView/BoardSortableList.tsx +3 -1
  91. package/src/components/EntityCollectionView/CollectionDataErrorBanner.tsx +43 -0
  92. package/src/components/EntityCollectionView/EntityBoardCard.tsx +1 -1
  93. package/src/components/EntityCollectionView/EntityCard.tsx +4 -0
  94. package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +39 -46
  95. package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +17 -25
  96. package/src/components/EntityCollectionView/EntityCollectionView.tsx +54 -17
  97. package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +4 -3
  98. package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +4 -2
  99. package/src/components/EntityCollectionView/FiltersDialog.tsx +8 -5
  100. package/src/components/EntityCollectionView/ViewModeToggle.tsx +11 -8
  101. package/src/components/EntityView.tsx +3 -2
  102. package/src/components/ErrorBoundary.tsx +27 -15
  103. package/src/components/HomePage/DefaultHomePage.tsx +19 -13
  104. package/src/components/HomePage/HomePageDnD.tsx +3 -1
  105. package/src/components/HomePage/NavigationGroup.tsx +3 -1
  106. package/src/components/HomePage/RenameGroupDialog.tsx +15 -13
  107. package/src/components/LanguageToggle.tsx +66 -0
  108. package/src/components/NotFoundPage.tsx +5 -3
  109. package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +9 -7
  110. package/src/components/ReferenceWidget.tsx +3 -2
  111. package/src/components/SearchIconsView.tsx +3 -1
  112. package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +11 -0
  113. package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +15 -2
  114. package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +11 -0
  115. package/src/components/UnsavedChangesDialog.tsx +6 -4
  116. package/src/components/VirtualTable/VirtualTable.performance.test.tsx +1 -0
  117. package/src/components/VirtualTable/VirtualTable.tsx +116 -113
  118. package/src/components/VirtualTable/VirtualTableHeader.tsx +54 -52
  119. package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +1 -1
  120. package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +3 -3
  121. package/src/components/common/default_entity_actions.tsx +4 -0
  122. package/src/components/common/useDataSourceTableController.tsx +12 -4
  123. package/src/components/index.tsx +1 -0
  124. package/src/core/DefaultAppBar.tsx +15 -11
  125. package/src/core/DefaultDrawer.tsx +8 -2
  126. package/src/core/DrawerNavigationGroup.tsx +5 -3
  127. package/src/core/EntityEditView.tsx +4 -3
  128. package/src/core/EntityEditViewFormActions.tsx +24 -17
  129. package/src/core/EntitySidePanel.tsx +32 -29
  130. package/src/core/FireCMS.tsx +33 -6
  131. package/src/core/field_configs.tsx +14 -9
  132. package/src/editor/components/SlashCommandMenu.tsx +516 -0
  133. package/src/editor/components/editor-bubble-item.tsx +32 -0
  134. package/src/editor/components/editor-bubble.tsx +118 -0
  135. package/src/editor/components/image-bubble.tsx +156 -0
  136. package/src/editor/components/index.ts +14 -0
  137. package/src/editor/components/table-bubble.tsx +165 -0
  138. package/src/editor/editor.tsx +455 -0
  139. package/src/editor/extensions/HighlightDecorationExtension.ts +114 -0
  140. package/src/editor/extensions/Image/index.ts +133 -0
  141. package/src/editor/extensions/Image.ts +159 -0
  142. package/src/editor/extensions/TextLoadingDecorationExtension.tsx +107 -0
  143. package/src/editor/extensions/clipboard.ts +72 -0
  144. package/src/editor/extensions/custom-keymap.ts +24 -0
  145. package/src/editor/extensions/drag-and-drop.tsx +480 -0
  146. package/src/editor/hooks/useProseMirror.ts +124 -0
  147. package/src/editor/hooks/useProseMirrorContext.ts +15 -0
  148. package/src/editor/index.ts +2 -0
  149. package/src/editor/markdown.ts +172 -0
  150. package/src/editor/nodeViews/ImageComponent.tsx +20 -0
  151. package/src/editor/nodeViews/ReactNodeView.tsx +89 -0
  152. package/src/editor/nodeViews/TaskItemComponent.tsx +29 -0
  153. package/src/editor/nodeViews/index.ts +35 -0
  154. package/src/editor/plugins/index.ts +58 -0
  155. package/src/editor/plugins/inputrules.ts +82 -0
  156. package/src/editor/plugins/placeholderPlugin.ts +55 -0
  157. package/src/editor/plugins/slashCommandPlugin.ts +61 -0
  158. package/src/editor/schema.ts +240 -0
  159. package/src/editor/selectors/ai-selector.tsx +111 -0
  160. package/src/editor/selectors/color-selector.tsx +200 -0
  161. package/src/editor/selectors/link-selector.tsx +118 -0
  162. package/src/editor/selectors/node-selector.tsx +157 -0
  163. package/src/editor/selectors/text-buttons.tsx +86 -0
  164. package/src/editor/types.ts +6 -0
  165. package/src/editor/useProseMirror.ts +126 -0
  166. package/src/editor/utils/prosemirror-utils.ts +108 -0
  167. package/src/editor/utils/remove_classes.ts +17 -0
  168. package/src/editor/utils/useDebouncedCallback.ts +25 -0
  169. package/src/form/EntityForm.tsx +85 -63
  170. package/src/form/EntityFormActions.tsx +19 -12
  171. package/src/form/PropertyFieldBinding.tsx +6 -5
  172. package/src/form/components/ErrorFocus.tsx +3 -3
  173. package/src/form/components/LocalChangesMenu.tsx +13 -13
  174. package/src/form/components/StorageItemPreview.tsx +3 -2
  175. package/src/form/components/StorageUploadProgress.tsx +18 -3
  176. package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -4
  177. package/src/form/field_bindings/BlockFieldBinding.tsx +5 -2
  178. package/src/form/field_bindings/KeyValueFieldBinding.tsx +23 -18
  179. package/src/form/field_bindings/MapFieldBinding.tsx +4 -3
  180. package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +34 -20
  181. package/src/form/field_bindings/RepeatFieldBinding.tsx +3 -1
  182. package/src/form/field_bindings/StorageUploadFieldBinding.tsx +87 -86
  183. package/src/hooks/index.tsx +1 -0
  184. package/src/hooks/useBuildNavigationController.tsx +49 -22
  185. package/src/hooks/useCollapsedGroups.ts +7 -6
  186. package/src/hooks/useTranslation.ts +31 -0
  187. package/src/hooks/useValidateAuthenticator.tsx +1 -1
  188. package/src/i18n/FireCMSi18nProvider.tsx +160 -0
  189. package/src/index.ts +4 -0
  190. package/src/internal/useBuildDataSource.ts +1 -2
  191. package/src/internal/useBuildSideEntityController.tsx +22 -20
  192. package/src/locales/de.ts +691 -0
  193. package/src/locales/en.ts +703 -0
  194. package/src/locales/es.ts +703 -0
  195. package/src/locales/fr.ts +691 -0
  196. package/src/locales/hi.ts +691 -0
  197. package/src/locales/it.ts +691 -0
  198. package/src/locales/pt.ts +700 -0
  199. package/src/preview/PropertyPreview.tsx +1 -0
  200. package/src/preview/components/UrlComponentPreview.tsx +4 -2
  201. package/src/preview/components/UserPreview.tsx +3 -1
  202. package/src/types/analytics.ts +10 -0
  203. package/src/types/customization_controller.tsx +2 -1
  204. package/src/types/firecms.tsx +2 -1
  205. package/src/types/index.ts +1 -0
  206. package/src/types/navigation.ts +2 -2
  207. package/src/types/plugins.tsx +26 -0
  208. package/src/types/properties.ts +1 -0
  209. package/src/types/storage.ts +2 -1
  210. package/src/types/translations.ts +725 -0
  211. package/src/util/entities.ts +1 -1
  212. package/src/util/join_collections.ts +10 -8
  213. package/src/util/previews.ts +2 -2
  214. package/src/util/property_utils.tsx +1 -1
  215. package/src/util/resolutions.ts +5 -3
  216. package/src/util/useStorageUploadController.tsx +23 -29
@@ -186,6 +186,7 @@ export const PropertyPreview = React.memo(function PropertyPreview<T extends CMS
186
186
  if (typeof value === "object") {
187
187
  content =
188
188
  <MapPropertyPreview {...props}
189
+ value={value as Record<string, CMSType>}
189
190
  property={property as ResolvedMapProperty} />;
190
191
  } else {
191
192
  content = buildWrongValueType(propertyKey, property.dataType, value);
@@ -6,6 +6,7 @@ import { PreviewType } from "../../types";
6
6
  import { PreviewSize } from "../PropertyPreviewProps";
7
7
  import { cls, DescriptionIcon, OpenInNewIcon, Tooltip, Typography } from "@firecms/ui";
8
8
  import { EmptyValue } from "./EmptyValue";
9
+ import { useTranslation } from "../../hooks/useTranslation";
9
10
 
10
11
  /**
11
12
  * @group Preview components
@@ -27,6 +28,8 @@ export function UrlComponentPreview({
27
28
  fill?: boolean
28
29
  }): React.ReactElement {
29
30
 
31
+ const { t } = useTranslation();
32
+
30
33
  if (!previewType) {
31
34
  if (!url || !url.trim()) return <EmptyValue />;
32
35
  return (
@@ -51,8 +54,7 @@ export function UrlComponentPreview({
51
54
  return <audio controls
52
55
  className={"max-w-100%"}
53
56
  src={url}>
54
- Your browser does not support the
55
- <code>audio</code> element.
57
+ {t("browser_does_not_support_audio")}
56
58
  </audio>;
57
59
  } else if (previewType === "video") {
58
60
  return <VideoPreview size={size} src={url} interactive={interactive} />;
@@ -4,6 +4,7 @@ import { useInternalUserManagementController } from "../../hooks";
4
4
  import { UserDisplay } from "../../components/UserDisplay";
5
5
  import { EmptyValue } from "./EmptyValue";
6
6
  import { Typography } from "@firecms/ui";
7
+ import { useTranslation } from "../../hooks/useTranslation";
7
8
 
8
9
  /**
9
10
  * Preview component for displaying user information.
@@ -13,6 +14,7 @@ import { Typography } from "@firecms/ui";
13
14
  */
14
15
  export function UserPreview({ value }: PropertyPreviewProps<string>) {
15
16
  const { getUser } = useInternalUserManagementController();
17
+ const { t } = useTranslation();
16
18
 
17
19
  if (!value) {
18
20
  return <EmptyValue/>;
@@ -20,7 +22,7 @@ export function UserPreview({ value }: PropertyPreviewProps<string>) {
20
22
 
21
23
  const user = getUser(value);
22
24
  if (!user) {
23
- return <Typography variant={"caption"} color={"secondary"}>User not found: {value}</Typography>;
25
+ return <Typography variant={"caption"} color={"secondary"}>{t("user_not_found", { value })}</Typography>;
24
26
  }
25
27
 
26
28
  return <UserDisplay user={user}/>;
@@ -34,5 +34,15 @@ export type CMSAnalyticsEvent =
34
34
 
35
35
  | "collection_inline_editing"
36
36
 
37
+ | "view_mode_changed"
38
+
39
+ | "kanban_card_moved"
40
+ | "kanban_column_reorder"
41
+ | "kanban_property_changed"
42
+ | "kanban_new_entity_in_column"
43
+ | "kanban_backfill_order"
44
+
45
+ | "card_view_entity_click"
46
+
37
47
  | "unmapped_event"
38
48
  ;
@@ -42,7 +42,8 @@ export type CustomizationController = {
42
42
  dateTimeFormat?: string;
43
43
 
44
44
  /**
45
- * Locale of the CMS, currently only affecting dates
45
+ * Locale of the CMS.
46
+ * Affects date formatting.
46
47
  */
47
48
  locale?: Locale;
48
49
 
@@ -111,7 +111,8 @@ export type FireCMSProps<USER extends User> = {
111
111
  dateTimeFormat?: string;
112
112
 
113
113
  /**
114
- * Locale of the CMS, currently only affecting dates
114
+ * Locale of the CMS.
115
+ * Affects date formatting.
115
116
  */
116
117
  locale?: Locale;
117
118
 
@@ -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";
@@ -252,7 +252,7 @@ export interface NavigationEntry {
252
252
  collection?: EntityCollection;
253
253
  view?: CMSView;
254
254
  description?: string;
255
- group: string;
255
+ group: string | null;
256
256
  }
257
257
 
258
258
  export type NavigationResult = {
@@ -261,7 +261,7 @@ export type NavigationResult = {
261
261
 
262
262
  navigationEntries: NavigationEntry[],
263
263
 
264
- groups: string[],
264
+ groups: (string | null)[],
265
265
 
266
266
  onNavigationEntriesUpdate: (entries: NavigationGroupMapping[]) => void;
267
267
  };
@@ -28,6 +28,14 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
28
28
  */
29
29
  loading?: boolean;
30
30
 
31
+ /**
32
+ * Override any FireCMS UI string, or provide translations for additional
33
+ * locales, specific for this plugin.
34
+ * Keys can be existing `FireCMSTranslations` keys, or new keys if using
35
+ * module augmentation.
36
+ */
37
+ i18n?: Record<string, Record<string, string>>;
38
+
31
39
  /**
32
40
  * You can use this prop to add higher order components to the CMS.
33
41
  * The components will be added to the root of the CMS, so any component
@@ -112,6 +120,19 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
112
120
 
113
121
  collectionView?: {
114
122
 
123
+ /**
124
+ * Custom component to render when a collection loading error occurs.
125
+ * If provided, this replaces the default error view in all collection view modes
126
+ * (table, card, kanban).
127
+ * Return `null` from the component to fall back to the default error view.
128
+ */
129
+ CollectionError?: React.ComponentType<{
130
+ path: string;
131
+ collection: EC;
132
+ parentCollectionIds?: string[];
133
+ error: Error;
134
+ }>;
135
+
115
136
  /**
116
137
  * Use this component to add custom actions to the entity collections
117
138
  * toolbar.
@@ -229,6 +250,11 @@ export type FireCMSPlugin<PROPS = any, FORM_PROPS = any, EC extends EntityCollec
229
250
  */
230
251
  ActionsTop?: React.ComponentType<PluginFormActionProps<any, EC>>;
231
252
 
253
+ /**
254
+ * Add custom content above the entity title in the form view
255
+ */
256
+ BeforeTitle?: React.ComponentType<PluginFormActionProps<any, EC>>;
257
+
232
258
  fieldBuilder?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T, any, EC>) => React.ComponentType<FieldProps<T>> | null;
233
259
 
234
260
  fieldBuilderEnabled?: <T extends CMSType = CMSType>(props: PluginFieldBuilderParams<T>) => boolean;
@@ -1110,6 +1110,7 @@ export type StorageConfig = {
1110
1110
  */
1111
1111
  imageResize?: ImageResize;
1112
1112
 
1113
+
1113
1114
  /**
1114
1115
  * Specific metadata set in your uploaded file.
1115
1116
  * For the default Firebase implementation, the values passed here are of type
@@ -6,7 +6,8 @@ export interface UploadFileProps {
6
6
  fileName?: string,
7
7
  path?: string,
8
8
  metadata?: any,
9
- bucket?: string
9
+ bucket?: string,
10
+ onProgress?: (progress: number) => void
10
11
  }
11
12
 
12
13
  /**