@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.
- package/dist/components/EntityCollectionTable/internal/popup_field/useDraggable.d.ts +2 -2
- package/dist/components/EntityCollectionView/CollectionDataErrorBanner.d.ts +4 -0
- package/dist/components/ErrorBoundary.d.ts +4 -2
- package/dist/components/HomePage/DefaultHomePage.d.ts +0 -1
- package/dist/components/LanguageToggle.d.ts +1 -0
- package/dist/components/UnsavedChangesDialog.d.ts +1 -0
- package/dist/components/VirtualTable/VirtualTableHeader.d.ts +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/core/DrawerNavigationGroup.d.ts +2 -2
- package/dist/editor/components/SlashCommandMenu.d.ts +6 -0
- package/dist/editor/components/editor-bubble-item.d.ts +8 -0
- package/dist/editor/components/editor-bubble.d.ts +8 -0
- package/dist/editor/components/image-bubble.d.ts +5 -0
- package/dist/editor/components/index.d.ts +16 -0
- package/dist/editor/components/table-bubble.d.ts +5 -0
- package/dist/editor/editor.d.ts +30 -0
- package/dist/editor/extensions/HighlightDecorationExtension.d.ts +24 -0
- package/dist/editor/extensions/Image/index.d.ts +6 -0
- package/dist/editor/extensions/Image.d.ts +6 -0
- package/dist/editor/extensions/TextLoadingDecorationExtension.d.ts +16 -0
- package/dist/editor/extensions/clipboard.d.ts +7 -0
- package/dist/editor/extensions/custom-keymap.d.ts +1 -0
- package/dist/editor/extensions/drag-and-drop.d.ts +9 -0
- package/dist/editor/hooks/useProseMirror.d.ts +13 -0
- package/dist/editor/hooks/useProseMirrorContext.d.ts +9 -0
- package/dist/editor/index.d.ts +2 -0
- package/dist/editor/markdown.d.ts +5 -0
- package/dist/editor/nodeViews/ImageComponent.d.ts +3 -0
- package/dist/editor/nodeViews/ReactNodeView.d.ts +29 -0
- package/dist/editor/nodeViews/TaskItemComponent.d.ts +3 -0
- package/dist/editor/nodeViews/index.d.ts +6 -0
- package/dist/editor/plugins/index.d.ts +2 -0
- package/dist/editor/plugins/inputrules.d.ts +6 -0
- package/dist/editor/plugins/placeholderPlugin.d.ts +3 -0
- package/dist/editor/plugins/slashCommandPlugin.d.ts +12 -0
- package/dist/editor/schema.d.ts +2 -0
- package/dist/editor/selectors/ai-selector.d.ts +0 -0
- package/dist/editor/selectors/color-selector.d.ts +10 -0
- package/dist/editor/selectors/link-selector.d.ts +8 -0
- package/dist/editor/selectors/node-selector.d.ts +15 -0
- package/dist/editor/selectors/text-buttons.d.ts +1 -0
- package/dist/editor/types.d.ts +5 -0
- package/dist/editor/useProseMirror.d.ts +16 -0
- package/dist/editor/utils/prosemirror-utils.d.ts +6 -0
- package/dist/editor/utils/remove_classes.d.ts +1 -0
- package/dist/editor/utils/useDebouncedCallback.d.ts +1 -0
- package/dist/form/components/ErrorFocus.d.ts +1 -1
- package/dist/form/field_bindings/MarkdownEditorFieldBinding.d.ts +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/useBuildNavigationController.d.ts +0 -1
- package/dist/hooks/useCollapsedGroups.d.ts +3 -3
- package/dist/hooks/useTranslation.d.ts +17 -0
- package/dist/i18n/FireCMSi18nProvider.d.ts +33 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.es.js +13009 -2312
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +12997 -2320
- package/dist/index.umd.js.map +1 -1
- package/dist/internal/useRestoreScroll.d.ts +1 -1
- package/dist/locales/de.d.ts +2 -0
- package/dist/locales/en.d.ts +10 -0
- package/dist/locales/es.d.ts +10 -0
- package/dist/locales/fr.d.ts +2 -0
- package/dist/locales/hi.d.ts +2 -0
- package/dist/locales/it.d.ts +2 -0
- package/dist/locales/pt.d.ts +7 -0
- package/dist/types/analytics.d.ts +1 -1
- package/dist/types/customization_controller.d.ts +2 -1
- package/dist/types/firecms.d.ts +2 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/navigation.d.ts +2 -2
- package/dist/types/plugins.d.ts +23 -0
- package/dist/types/storage.d.ts +1 -0
- package/dist/types/translations.d.ts +646 -0
- package/dist/util/entities.d.ts +1 -1
- package/dist/util/resolutions.d.ts +2 -2
- package/dist/util/useStorageUploadController.d.ts +10 -1
- package/package.json +49 -13
- package/src/app/Scaffold.tsx +7 -5
- package/src/components/AIIcon.tsx +3 -1
- package/src/components/ArrayContainer.tsx +6 -4
- package/src/components/ClearFilterSortButton.tsx +6 -3
- package/src/components/ConfirmationDialog.tsx +4 -2
- package/src/components/DeleteEntityDialog.tsx +10 -7
- package/src/components/EntityCollectionTable/fields/TableReferenceField.tsx +6 -3
- package/src/components/EntityCollectionTable/internal/CollectionTableToolbar.tsx +3 -1
- package/src/components/EntityCollectionTable/internal/EntityTableCellActions.tsx +1 -1
- package/src/components/EntityCollectionTable/internal/popup_field/PopupFormField.tsx +3 -2
- package/src/components/EntityCollectionTable/internal/popup_field/useDraggable.tsx +11 -11
- package/src/components/EntityCollectionView/BoardSortableList.tsx +3 -1
- package/src/components/EntityCollectionView/CollectionDataErrorBanner.tsx +43 -0
- package/src/components/EntityCollectionView/EntityBoardCard.tsx +1 -1
- package/src/components/EntityCollectionView/EntityCard.tsx +4 -0
- package/src/components/EntityCollectionView/EntityCollectionBoardView.tsx +39 -46
- package/src/components/EntityCollectionView/EntityCollectionCardView.tsx +17 -25
- package/src/components/EntityCollectionView/EntityCollectionView.tsx +54 -17
- package/src/components/EntityCollectionView/EntityCollectionViewActions.tsx +4 -3
- package/src/components/EntityCollectionView/EntityCollectionViewStartActions.tsx +4 -2
- package/src/components/EntityCollectionView/FiltersDialog.tsx +8 -5
- package/src/components/EntityCollectionView/ViewModeToggle.tsx +11 -8
- package/src/components/EntityView.tsx +3 -2
- package/src/components/ErrorBoundary.tsx +27 -15
- package/src/components/HomePage/DefaultHomePage.tsx +19 -13
- package/src/components/HomePage/HomePageDnD.tsx +3 -1
- package/src/components/HomePage/NavigationGroup.tsx +3 -1
- package/src/components/HomePage/RenameGroupDialog.tsx +15 -13
- package/src/components/LanguageToggle.tsx +66 -0
- package/src/components/NotFoundPage.tsx +5 -3
- package/src/components/ReferenceTable/ReferenceSelectionTable.tsx +9 -7
- package/src/components/ReferenceWidget.tsx +3 -2
- package/src/components/SearchIconsView.tsx +3 -1
- package/src/components/SelectableTable/filters/DateTimeFilterField.tsx +11 -0
- package/src/components/SelectableTable/filters/ReferenceFilterField.tsx +15 -2
- package/src/components/SelectableTable/filters/StringNumberFilterField.tsx +11 -0
- package/src/components/UnsavedChangesDialog.tsx +6 -4
- package/src/components/VirtualTable/VirtualTable.performance.test.tsx +1 -0
- package/src/components/VirtualTable/VirtualTable.tsx +116 -113
- package/src/components/VirtualTable/VirtualTableHeader.tsx +54 -52
- package/src/components/VirtualTable/VirtualTableHeaderRow.tsx +1 -1
- package/src/components/VirtualTable/fields/VirtualTableSelect.tsx +3 -3
- package/src/components/common/default_entity_actions.tsx +4 -0
- package/src/components/common/useDataSourceTableController.tsx +12 -4
- package/src/components/index.tsx +1 -0
- package/src/core/DefaultAppBar.tsx +15 -11
- package/src/core/DefaultDrawer.tsx +8 -2
- package/src/core/DrawerNavigationGroup.tsx +5 -3
- package/src/core/EntityEditView.tsx +4 -3
- package/src/core/EntityEditViewFormActions.tsx +24 -17
- package/src/core/EntitySidePanel.tsx +32 -29
- package/src/core/FireCMS.tsx +33 -6
- package/src/core/field_configs.tsx +14 -9
- package/src/editor/components/SlashCommandMenu.tsx +516 -0
- package/src/editor/components/editor-bubble-item.tsx +32 -0
- package/src/editor/components/editor-bubble.tsx +118 -0
- package/src/editor/components/image-bubble.tsx +156 -0
- package/src/editor/components/index.ts +14 -0
- package/src/editor/components/table-bubble.tsx +165 -0
- package/src/editor/editor.tsx +455 -0
- package/src/editor/extensions/HighlightDecorationExtension.ts +114 -0
- package/src/editor/extensions/Image/index.ts +133 -0
- package/src/editor/extensions/Image.ts +159 -0
- package/src/editor/extensions/TextLoadingDecorationExtension.tsx +107 -0
- package/src/editor/extensions/clipboard.ts +72 -0
- package/src/editor/extensions/custom-keymap.ts +24 -0
- package/src/editor/extensions/drag-and-drop.tsx +480 -0
- package/src/editor/hooks/useProseMirror.ts +124 -0
- package/src/editor/hooks/useProseMirrorContext.ts +15 -0
- package/src/editor/index.ts +2 -0
- package/src/editor/markdown.ts +172 -0
- package/src/editor/nodeViews/ImageComponent.tsx +20 -0
- package/src/editor/nodeViews/ReactNodeView.tsx +89 -0
- package/src/editor/nodeViews/TaskItemComponent.tsx +29 -0
- package/src/editor/nodeViews/index.ts +35 -0
- package/src/editor/plugins/index.ts +58 -0
- package/src/editor/plugins/inputrules.ts +82 -0
- package/src/editor/plugins/placeholderPlugin.ts +55 -0
- package/src/editor/plugins/slashCommandPlugin.ts +61 -0
- package/src/editor/schema.ts +240 -0
- package/src/editor/selectors/ai-selector.tsx +111 -0
- package/src/editor/selectors/color-selector.tsx +200 -0
- package/src/editor/selectors/link-selector.tsx +118 -0
- package/src/editor/selectors/node-selector.tsx +157 -0
- package/src/editor/selectors/text-buttons.tsx +86 -0
- package/src/editor/types.ts +6 -0
- package/src/editor/useProseMirror.ts +126 -0
- package/src/editor/utils/prosemirror-utils.ts +108 -0
- package/src/editor/utils/remove_classes.ts +17 -0
- package/src/editor/utils/useDebouncedCallback.ts +25 -0
- package/src/form/EntityForm.tsx +85 -63
- package/src/form/EntityFormActions.tsx +19 -12
- package/src/form/PropertyFieldBinding.tsx +6 -5
- package/src/form/components/ErrorFocus.tsx +3 -3
- package/src/form/components/LocalChangesMenu.tsx +13 -13
- package/src/form/components/StorageItemPreview.tsx +3 -2
- package/src/form/components/StorageUploadProgress.tsx +18 -3
- package/src/form/field_bindings/ArrayOfReferencesFieldBinding.tsx +4 -4
- package/src/form/field_bindings/BlockFieldBinding.tsx +5 -2
- package/src/form/field_bindings/KeyValueFieldBinding.tsx +23 -18
- package/src/form/field_bindings/MapFieldBinding.tsx +4 -3
- package/src/form/field_bindings/MarkdownEditorFieldBinding.tsx +34 -20
- package/src/form/field_bindings/RepeatFieldBinding.tsx +3 -1
- package/src/form/field_bindings/StorageUploadFieldBinding.tsx +87 -86
- package/src/hooks/index.tsx +1 -0
- package/src/hooks/useBuildNavigationController.tsx +49 -22
- package/src/hooks/useCollapsedGroups.ts +7 -6
- package/src/hooks/useTranslation.ts +31 -0
- package/src/hooks/useValidateAuthenticator.tsx +1 -1
- package/src/i18n/FireCMSi18nProvider.tsx +160 -0
- package/src/index.ts +4 -0
- package/src/internal/useBuildDataSource.ts +1 -2
- package/src/internal/useBuildSideEntityController.tsx +22 -20
- package/src/locales/de.ts +691 -0
- package/src/locales/en.ts +703 -0
- package/src/locales/es.ts +703 -0
- package/src/locales/fr.ts +691 -0
- package/src/locales/hi.ts +691 -0
- package/src/locales/it.ts +691 -0
- package/src/locales/pt.ts +700 -0
- package/src/preview/PropertyPreview.tsx +1 -0
- package/src/preview/components/UrlComponentPreview.tsx +4 -2
- package/src/preview/components/UserPreview.tsx +3 -1
- package/src/types/analytics.ts +10 -0
- package/src/types/customization_controller.tsx +2 -1
- package/src/types/firecms.tsx +2 -1
- package/src/types/index.ts +1 -0
- package/src/types/navigation.ts +2 -2
- package/src/types/plugins.tsx +26 -0
- package/src/types/properties.ts +1 -0
- package/src/types/storage.ts +2 -1
- package/src/types/translations.ts +725 -0
- package/src/util/entities.ts +1 -1
- package/src/util/join_collections.ts +10 -8
- package/src/util/previews.ts +2 -2
- package/src/util/property_utils.tsx +1 -1
- package/src/util/resolutions.ts +5 -3
- package/src/util/useStorageUploadController.tsx +23 -29
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
interface DraggableProps {
|
|
3
|
-
containerRef: React.RefObject<HTMLDivElement>;
|
|
4
|
-
innerRef: React.RefObject<HTMLDivElement>;
|
|
3
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
4
|
+
innerRef: React.RefObject<HTMLDivElement | null>;
|
|
5
5
|
x?: number;
|
|
6
6
|
y?: number;
|
|
7
7
|
onMove: (params: {
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import React, { ErrorInfo, PropsWithChildren } from "react";
|
|
2
2
|
export declare class ErrorBoundary extends React.Component<PropsWithChildren<Record<string, unknown>>, {
|
|
3
|
-
|
|
3
|
+
hasError: boolean;
|
|
4
|
+
error?: Error;
|
|
4
5
|
}> {
|
|
5
6
|
constructor(props: any);
|
|
6
7
|
static getDerivedStateFromError(error: Error): {
|
|
8
|
+
hasError: boolean;
|
|
7
9
|
error: Error;
|
|
8
10
|
};
|
|
9
11
|
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
|
|
10
|
-
render(): string | number | boolean | Iterable<React.ReactNode> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
12
|
+
render(): string | number | bigint | boolean | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | React.ReactPortal | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | Iterable<React.ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
|
|
11
13
|
}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
export declare const DEFAULT_GROUP_NAME = "Views";
|
|
3
2
|
export declare const ADMIN_GROUP_NAME = "Admin";
|
|
4
3
|
export declare function DefaultHomePage({ additionalActions, additionalChildrenStart, additionalChildrenEnd }: {
|
|
5
4
|
additionalActions?: React.ReactNode;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function LanguageToggle(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -9,7 +9,7 @@ export type FilterFormFieldProps<CustomProps> = {
|
|
|
9
9
|
setHidden: (hidden: boolean) => void;
|
|
10
10
|
};
|
|
11
11
|
type VirtualTableHeaderProps<M extends Record<string, any>> = {
|
|
12
|
-
resizeHandleRef: RefObject<HTMLDivElement>;
|
|
12
|
+
resizeHandleRef: RefObject<HTMLDivElement | null>;
|
|
13
13
|
columnIndex: number;
|
|
14
14
|
isResizingIndex: number;
|
|
15
15
|
column: VirtualTableColumn<any>;
|
|
@@ -2,9 +2,9 @@ import React from "react";
|
|
|
2
2
|
import { NavigationEntry } from "../types";
|
|
3
3
|
export interface DrawerNavigationGroupProps {
|
|
4
4
|
/**
|
|
5
|
-
* Group name to display in header
|
|
5
|
+
* Group name to display in header. When null, uses the translated default group name.
|
|
6
6
|
*/
|
|
7
|
-
group: string;
|
|
7
|
+
group: string | null;
|
|
8
8
|
/**
|
|
9
9
|
* Navigation entries in this group
|
|
10
10
|
*/
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EditorAIController } from "../types";
|
|
2
|
+
import { UploadFn } from "../extensions/Image";
|
|
3
|
+
export declare const SlashCommandMenu: ({ upload, aiController }: {
|
|
4
|
+
upload: UploadFn;
|
|
5
|
+
aiController?: EditorAIController;
|
|
6
|
+
}) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
interface EditorBubbleItemProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
asChild?: boolean;
|
|
5
|
+
onSelect?: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const EditorBubbleItem: import("react").ForwardRefExoticComponent<EditorBubbleItemProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "onSelect"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export default EditorBubbleItem;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface EditorBubbleProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
options?: any;
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const EditorBubble: import("react").ForwardRefExoticComponent<EditorBubbleProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export default EditorBubble;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export { EditorBubble } from "./editor-bubble";
|
|
2
|
+
export { EditorBubbleItem } from "./editor-bubble-item";
|
|
3
|
+
export { SlashCommandMenu } from "./SlashCommandMenu";
|
|
4
|
+
export { ImageBubble } from "./image-bubble";
|
|
5
|
+
export { TableBubble } from "./table-bubble";
|
|
6
|
+
export type JSONContent = {
|
|
7
|
+
type?: string;
|
|
8
|
+
attrs?: Record<string, any>;
|
|
9
|
+
content?: JSONContent[];
|
|
10
|
+
marks?: {
|
|
11
|
+
type: string;
|
|
12
|
+
attrs?: Record<string, any>;
|
|
13
|
+
}[];
|
|
14
|
+
text?: string;
|
|
15
|
+
[key: string]: any;
|
|
16
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type JSONContent } from "./components";
|
|
3
|
+
import { EditorAIController } from "./types";
|
|
4
|
+
export type CustomEditorComponent = {
|
|
5
|
+
name: string;
|
|
6
|
+
component: React.FC;
|
|
7
|
+
};
|
|
8
|
+
export interface MarkdownEditorConfig {
|
|
9
|
+
html?: boolean;
|
|
10
|
+
transformPastedText?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export type FireCMSEditorTextSize = "sm" | "base" | "lg";
|
|
13
|
+
export type FireCMSEditorProps = {
|
|
14
|
+
content?: JSONContent | string;
|
|
15
|
+
onMarkdownContentChange?: (content: string) => void;
|
|
16
|
+
onJsonContentChange?: (content: JSONContent | null) => void;
|
|
17
|
+
onHtmlContentChange?: (content: string) => void;
|
|
18
|
+
handleImageUpload: (file: File) => Promise<string>;
|
|
19
|
+
version?: number;
|
|
20
|
+
textSize?: FireCMSEditorTextSize;
|
|
21
|
+
highlight?: {
|
|
22
|
+
from: number;
|
|
23
|
+
to: number;
|
|
24
|
+
};
|
|
25
|
+
aiController?: EditorAIController;
|
|
26
|
+
customComponents?: CustomEditorComponent[];
|
|
27
|
+
disabled?: boolean;
|
|
28
|
+
markdownConfig?: MarkdownEditorConfig;
|
|
29
|
+
};
|
|
30
|
+
export declare const FireCMSEditor: ({ content, onJsonContentChange, onHtmlContentChange, onMarkdownContentChange, version, textSize, highlight, handleImageUpload, aiController, disabled, markdownConfig }: FireCMSEditorProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Plugin, PluginKey, Transaction, EditorState } from "prosemirror-state";
|
|
2
|
+
import { DecorationSet } from "prosemirror-view";
|
|
3
|
+
export interface HighlightRange {
|
|
4
|
+
from: number;
|
|
5
|
+
to: number;
|
|
6
|
+
}
|
|
7
|
+
interface AutocompleteHighlightState {
|
|
8
|
+
highlight?: HighlightRange;
|
|
9
|
+
decorationSet?: DecorationSet;
|
|
10
|
+
}
|
|
11
|
+
export declare const highlightDecorationKey: PluginKey<AutocompleteHighlightState>;
|
|
12
|
+
/**
|
|
13
|
+
* Commands to toggle the highlight
|
|
14
|
+
*/
|
|
15
|
+
export declare const highlightCommands: {
|
|
16
|
+
toggleAutocompleteHighlight: (range?: HighlightRange) => (state: EditorState, dispatch?: (tr: Transaction) => void) => boolean;
|
|
17
|
+
removeAutocompleteHighlight: () => (state: EditorState, dispatch?: (tr: Transaction) => void) => boolean;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* This plugin is used to highlight the current autocomplete suggestion.
|
|
21
|
+
* It allows to set a range and remove it.
|
|
22
|
+
*/
|
|
23
|
+
export declare const highlightDecorationPlugin: (initialHighlight?: HighlightRange) => Plugin<AutocompleteHighlightState>;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EditorView } from "prosemirror-view";
|
|
2
|
+
import { Plugin, PluginKey } from "prosemirror-state";
|
|
3
|
+
export type UploadFn = (image: File) => Promise<string>;
|
|
4
|
+
export declare function onFileRead(view: EditorView, readerEvent: ProgressEvent<FileReader>, pos: number, upload: UploadFn, image: File): Promise<void>;
|
|
5
|
+
export declare const ImagePluginKey: PluginKey<any>;
|
|
6
|
+
export declare const createDropImagePlugin: (upload: UploadFn) => Plugin;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EditorView } from "prosemirror-view";
|
|
2
|
+
import { Plugin, PluginKey } from "prosemirror-state";
|
|
3
|
+
export type UploadFn = (image: File) => Promise<string>;
|
|
4
|
+
export declare function onFileRead(view: EditorView, readerEvent: ProgressEvent<FileReader>, pos: number, upload: UploadFn, image: File): Promise<void>;
|
|
5
|
+
export declare const ImagePluginKey: PluginKey<any>;
|
|
6
|
+
export declare const createDropImagePlugin: (upload: UploadFn) => Plugin;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Plugin, PluginKey, Transaction, EditorState } from "prosemirror-state";
|
|
2
|
+
import { DecorationSet } from "prosemirror-view";
|
|
3
|
+
export declare const loadingDecorationKey: PluginKey<LoadingDecorationState>;
|
|
4
|
+
interface LoadingDecorationState {
|
|
5
|
+
decorationSet: DecorationSet;
|
|
6
|
+
hasDecoration: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const textLoadingCommands: {
|
|
9
|
+
toggleLoadingDecoration: (state: EditorState, dispatch: ((tr: Transaction) => void) | undefined, loadingHtml?: string) => boolean;
|
|
10
|
+
removeLoadingDecoration: (state: EditorState, dispatch: ((tr: Transaction) => void) | undefined) => boolean;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* This plugin is used to display streaming content from an LLM.
|
|
14
|
+
*/
|
|
15
|
+
export declare const textLoadingDecorationPlugin: () => Plugin<LoadingDecorationState>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const customKeymapPlugin: () => import("prosemirror-state").Plugin<any>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Plugin } from "prosemirror-state";
|
|
2
|
+
export interface DragHandleOptions {
|
|
3
|
+
/**
|
|
4
|
+
* The width of the drag handle
|
|
5
|
+
*/
|
|
6
|
+
dragHandleWidth: number;
|
|
7
|
+
}
|
|
8
|
+
export declare function dragHandlePlugin(options?: DragHandleOptions): Plugin<any>;
|
|
9
|
+
export declare function globalDragDropPlugin(): Plugin<any>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EditorState } from "prosemirror-state";
|
|
2
|
+
import { EditorView } from "prosemirror-view";
|
|
3
|
+
interface UseProseMirrorProps {
|
|
4
|
+
initialContent?: string | any;
|
|
5
|
+
editable?: boolean;
|
|
6
|
+
handleImageUpload?: (file: File) => Promise<string>;
|
|
7
|
+
}
|
|
8
|
+
export declare function useProseMirror({ initialContent, editable, handleImageUpload }: UseProseMirrorProps): {
|
|
9
|
+
state: EditorState;
|
|
10
|
+
view: EditorView | null;
|
|
11
|
+
editorRef: import("react").RefObject<HTMLDivElement | null>;
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { EditorState } from "prosemirror-state";
|
|
3
|
+
import { EditorView } from "prosemirror-view";
|
|
4
|
+
export interface ProseMirrorContextType {
|
|
5
|
+
state: EditorState | null;
|
|
6
|
+
view: EditorView | null;
|
|
7
|
+
}
|
|
8
|
+
export declare const ProseMirrorContext: React.Context<ProseMirrorContextType>;
|
|
9
|
+
export declare const useProseMirrorContext: () => ProseMirrorContextType;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { MarkdownParser, MarkdownSerializer } from "prosemirror-markdown";
|
|
2
|
+
export declare const markdownParser: MarkdownParser;
|
|
3
|
+
export declare const markdownSerializer: MarkdownSerializer;
|
|
4
|
+
export declare const parser: MarkdownParser;
|
|
5
|
+
export declare const serializer: MarkdownSerializer;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { Node as ProseMirrorNode } from "prosemirror-model";
|
|
3
|
+
import { EditorView, NodeView } from "prosemirror-view";
|
|
4
|
+
export interface ReactNodeViewProps {
|
|
5
|
+
node: ProseMirrorNode;
|
|
6
|
+
view: EditorView;
|
|
7
|
+
getPos: () => number | undefined;
|
|
8
|
+
}
|
|
9
|
+
export type ReactNodeViewComponent = React.FC<ReactNodeViewProps>;
|
|
10
|
+
/**
|
|
11
|
+
* A utility class that implements the ProseMirror NodeView interface but delegates rendering
|
|
12
|
+
* to a React component.
|
|
13
|
+
* Note: This uses createRoot, so it does not automatically inherit React Contexts.
|
|
14
|
+
* If contexts are needed, wrap them manually or use a portal-based approach instead.
|
|
15
|
+
*/
|
|
16
|
+
export declare class ReactNodeView implements NodeView {
|
|
17
|
+
node: ProseMirrorNode;
|
|
18
|
+
view: EditorView;
|
|
19
|
+
getPos: () => number | undefined;
|
|
20
|
+
dom: HTMLElement;
|
|
21
|
+
contentDOM?: HTMLElement;
|
|
22
|
+
private root;
|
|
23
|
+
private Component;
|
|
24
|
+
constructor(node: ProseMirrorNode, view: EditorView, getPos: () => number | undefined, Component: ReactNodeViewComponent, as?: string, className?: string, contentDOMElement?: HTMLElement);
|
|
25
|
+
private render;
|
|
26
|
+
update(node: ProseMirrorNode): boolean;
|
|
27
|
+
destroy(): void;
|
|
28
|
+
ignoreMutation(mutation: any): boolean;
|
|
29
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Node as ProseMirrorNode } from "prosemirror-model";
|
|
2
|
+
import { EditorView, NodeView } from "prosemirror-view";
|
|
3
|
+
export declare const nodeViews: {
|
|
4
|
+
task_item: (node: ProseMirrorNode, view: EditorView, getPos: () => number | undefined) => NodeView;
|
|
5
|
+
image: (node: ProseMirrorNode, view: EditorView, getPos: () => number | undefined) => NodeView;
|
|
6
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Plugin, PluginKey } from "prosemirror-state";
|
|
2
|
+
export declare const SlashCommandPluginKey: PluginKey<any>;
|
|
3
|
+
export interface SlashCommandState {
|
|
4
|
+
active: boolean;
|
|
5
|
+
range?: {
|
|
6
|
+
from: number;
|
|
7
|
+
to: number;
|
|
8
|
+
};
|
|
9
|
+
query?: string;
|
|
10
|
+
dismissed?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare function slashCommandPlugin(): Plugin<SlashCommandState>;
|
|
File without changes
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface BubbleColorMenuItem {
|
|
2
|
+
name: string;
|
|
3
|
+
color: string;
|
|
4
|
+
}
|
|
5
|
+
interface ColorSelectorProps {
|
|
6
|
+
open: boolean;
|
|
7
|
+
onOpenChange: (open: boolean) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare const ColorSelector: ({ open, onOpenChange }: ColorSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function isValidUrl(url: string): boolean;
|
|
2
|
+
export declare function getUrlFromString(str: string): string | null;
|
|
3
|
+
interface LinkSelectorProps {
|
|
4
|
+
open: boolean;
|
|
5
|
+
onOpenChange: (open: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare const LinkSelector: ({ open, onOpenChange }: LinkSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EditorState, Transaction } from "prosemirror-state";
|
|
2
|
+
export type SelectorItem = {
|
|
3
|
+
name: string;
|
|
4
|
+
labelKey: string;
|
|
5
|
+
icon: React.ElementType;
|
|
6
|
+
command: (state: EditorState, dispatch: (tr: Transaction) => void) => void;
|
|
7
|
+
isActive: (state: EditorState) => boolean;
|
|
8
|
+
};
|
|
9
|
+
interface NodeSelectorProps {
|
|
10
|
+
open: boolean;
|
|
11
|
+
onOpenChange: (open: boolean) => void;
|
|
12
|
+
portalContainer: HTMLElement | null;
|
|
13
|
+
}
|
|
14
|
+
export declare const NodeSelector: ({ open, onOpenChange, portalContainer }: NodeSelectorProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const TextButtons: () => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EditorState, Plugin } from "prosemirror-state";
|
|
2
|
+
import { EditorView } from "prosemirror-view";
|
|
3
|
+
export interface UseProseMirrorOptions {
|
|
4
|
+
content?: any;
|
|
5
|
+
plugins?: Plugin[];
|
|
6
|
+
editable?: boolean;
|
|
7
|
+
onMarkdownContentChange?: (content: string) => void;
|
|
8
|
+
onJsonContentChange?: (content: any | null) => void;
|
|
9
|
+
onHtmlContentChange?: (content: string) => void;
|
|
10
|
+
version?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function useProseMirror(options: UseProseMirrorOptions): {
|
|
13
|
+
mountRef: import("react").RefObject<HTMLDivElement | null>;
|
|
14
|
+
view: EditorView | null;
|
|
15
|
+
editorState: EditorState | null;
|
|
16
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EditorState } from "prosemirror-state";
|
|
2
|
+
export declare function isMarkActive(state: EditorState, type: any): boolean;
|
|
3
|
+
export declare function isNodeActive(state: EditorState, type: any, attrs?: any): boolean;
|
|
4
|
+
export declare function getMarkAttributes(state: EditorState, type: any): any;
|
|
5
|
+
export declare function setMark(type: any, attrs?: any): (state: EditorState, dispatch?: (tr: any) => void) => boolean;
|
|
6
|
+
export declare function unsetMark(type: any): (state: EditorState, dispatch?: (tr: any) => void) => boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function removeClassesFromJson(jsonObj: any): any;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useDebouncedCallback<T>(value: T, callback: () => void, immediate: boolean, timeoutMs?: number): void;
|
package/dist/hooks/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { AuthController, CMSView, CMSViewsBuilder, DataSourceDelegate, EntityCollection, EntityCollectionsBuilder, FireCMSPlugin, NavigationController, NavigationGroupMapping, PermissionsBuilder, User, UserConfigurationPersistence } from "../types";
|
|
2
|
-
export declare const NAVIGATION_DEFAULT_GROUP_NAME = "Views";
|
|
3
2
|
export declare const NAVIGATION_ADMIN_GROUP_NAME = "Admin";
|
|
4
3
|
export type BuildNavigationContextProps<EC extends EntityCollection, USER extends User> = {
|
|
5
4
|
/**
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* @param groupNames - Array of group names to track
|
|
7
7
|
* @param namespace - Namespace for localStorage key (e.g., "home", "drawer") to allow independent state
|
|
8
8
|
*/
|
|
9
|
-
export declare function useCollapsedGroups(groupNames: string[], namespace?: string): {
|
|
10
|
-
isGroupCollapsed: (name
|
|
11
|
-
toggleGroupCollapsed: (name
|
|
9
|
+
export declare function useCollapsedGroups(groupNames: (string | null)[], namespace?: string): {
|
|
10
|
+
isGroupCollapsed: (name?: string | null) => boolean;
|
|
11
|
+
toggleGroupCollapsed: (name?: string | null) => void;
|
|
12
12
|
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal hook for translating FireCMS UI strings.
|
|
3
|
+
*
|
|
4
|
+
* Uses the `firecms_core` i18next namespace that is initialised by
|
|
5
|
+
* `FireCMSi18nProvider`. Do NOT use `react-i18next` directly in internal
|
|
6
|
+
* components — always go through this hook so the namespace is consistent.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const { t } = useTranslation();
|
|
10
|
+
* <Button>{t("save")}</Button>
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export declare function useTranslation(): {
|
|
15
|
+
t: (key: string, vars?: Record<string, string>) => string;
|
|
16
|
+
i18n: import("i18next").i18n;
|
|
17
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PropsWithChildren } from "react";
|
|
2
|
+
import { FireCMSTranslations } from "../types/translations";
|
|
3
|
+
export declare const FIRECMS_LOCALE_STORAGE_KEY = "firecms_locale";
|
|
4
|
+
/** DeepPartial helper — allows partial overrides at any nesting level */
|
|
5
|
+
type DeepPartial<T> = T extends object ? {
|
|
6
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
7
|
+
} : T;
|
|
8
|
+
export interface FireCMSi18nProviderProps {
|
|
9
|
+
/** BCP-47 locale tag, e.g. "en", "es", "fr". Defaults to "en". */
|
|
10
|
+
locale?: string;
|
|
11
|
+
/**
|
|
12
|
+
* Override or extend any FireCMS UI string, keyed by locale.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* translations={{
|
|
16
|
+
* en: { save: "Publish" },
|
|
17
|
+
* es: { save: "Publicar", discard: "Descartar" }
|
|
18
|
+
* }}
|
|
19
|
+
*/
|
|
20
|
+
translations?: {
|
|
21
|
+
[locale: string]: DeepPartial<FireCMSTranslations>;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Initialises a dedicated i18next instance for FireCMS's internal UI strings.
|
|
26
|
+
*
|
|
27
|
+
* This instance is isolated from any app-level i18next configuration the
|
|
28
|
+
* consumer may have. Mount this at the top of the FireCMS component tree.
|
|
29
|
+
*
|
|
30
|
+
* @internal
|
|
31
|
+
*/
|
|
32
|
+
export declare function FireCMSi18nProvider({ locale, translations, children }: PropsWithChildren<FireCMSi18nProviderProps>): import("react/jsx-runtime").JSX.Element | null;
|
|
33
|
+
export {};
|
package/dist/index.d.ts
CHANGED