@tiptap/react 3.0.0 → 3.0.1
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/LICENSE.md +21 -0
- package/README.md +5 -1
- package/dist/index.cjs +1030 -1163
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +350 -0
- package/dist/index.d.ts +350 -0
- package/dist/index.js +970 -1138
- package/dist/index.js.map +1 -1
- package/dist/menus/index.cjs +142 -0
- package/dist/menus/index.cjs.map +1 -0
- package/dist/menus/index.d.cts +19 -0
- package/dist/menus/index.d.ts +19 -0
- package/dist/menus/index.js +104 -0
- package/dist/menus/index.js.map +1 -0
- package/package.json +34 -21
- package/src/Context.tsx +18 -12
- package/src/Editor.ts +10 -11
- package/src/EditorContent.tsx +104 -64
- package/src/NodeViewContent.tsx +13 -8
- package/src/NodeViewWrapper.tsx +3 -2
- package/src/ReactMarkViewRenderer.tsx +111 -0
- package/src/ReactNodeViewRenderer.tsx +184 -67
- package/src/ReactRenderer.tsx +152 -51
- package/src/index.ts +2 -3
- package/src/menus/BubbleMenu.tsx +68 -0
- package/src/menus/FloatingMenu.tsx +68 -0
- package/src/menus/index.ts +2 -0
- package/src/types.ts +6 -0
- package/src/useEditor.ts +286 -166
- package/src/useEditorState.ts +133 -85
- package/src/useReactNodeView.ts +21 -5
- package/dist/index.umd.js +0 -1219
- package/dist/index.umd.js.map +0 -1
- package/dist/packages/core/src/CommandManager.d.ts +0 -20
- package/dist/packages/core/src/Editor.d.ts +0 -161
- package/dist/packages/core/src/EventEmitter.d.ts +0 -11
- package/dist/packages/core/src/Extension.d.ts +0 -343
- package/dist/packages/core/src/ExtensionManager.d.ts +0 -55
- package/dist/packages/core/src/InputRule.d.ts +0 -42
- package/dist/packages/core/src/Mark.d.ts +0 -451
- package/dist/packages/core/src/Node.d.ts +0 -611
- package/dist/packages/core/src/NodePos.d.ts +0 -44
- package/dist/packages/core/src/NodeView.d.ts +0 -31
- package/dist/packages/core/src/PasteRule.d.ts +0 -50
- package/dist/packages/core/src/Tracker.d.ts +0 -11
- package/dist/packages/core/src/commands/blur.d.ts +0 -13
- package/dist/packages/core/src/commands/clearContent.d.ts +0 -14
- package/dist/packages/core/src/commands/clearNodes.d.ts +0 -13
- package/dist/packages/core/src/commands/command.d.ts +0 -18
- package/dist/packages/core/src/commands/createParagraphNear.d.ts +0 -13
- package/dist/packages/core/src/commands/cut.d.ts +0 -20
- package/dist/packages/core/src/commands/deleteCurrentNode.d.ts +0 -13
- package/dist/packages/core/src/commands/deleteNode.d.ts +0 -15
- package/dist/packages/core/src/commands/deleteRange.d.ts +0 -14
- package/dist/packages/core/src/commands/deleteSelection.d.ts +0 -13
- package/dist/packages/core/src/commands/enter.d.ts +0 -13
- package/dist/packages/core/src/commands/exitCode.d.ts +0 -13
- package/dist/packages/core/src/commands/extendMarkRange.d.ts +0 -25
- package/dist/packages/core/src/commands/first.d.ts +0 -14
- package/dist/packages/core/src/commands/focus.d.ts +0 -27
- package/dist/packages/core/src/commands/forEach.d.ts +0 -14
- package/dist/packages/core/src/commands/index.d.ts +0 -55
- package/dist/packages/core/src/commands/insertContent.d.ts +0 -34
- package/dist/packages/core/src/commands/insertContentAt.d.ts +0 -47
- package/dist/packages/core/src/commands/join.d.ts +0 -41
- package/dist/packages/core/src/commands/joinItemBackward.d.ts +0 -13
- package/dist/packages/core/src/commands/joinItemForward.d.ts +0 -13
- package/dist/packages/core/src/commands/joinTextblockBackward.d.ts +0 -12
- package/dist/packages/core/src/commands/joinTextblockForward.d.ts +0 -12
- package/dist/packages/core/src/commands/keyboardShortcut.d.ts +0 -14
- package/dist/packages/core/src/commands/lift.d.ts +0 -17
- package/dist/packages/core/src/commands/liftEmptyBlock.d.ts +0 -13
- package/dist/packages/core/src/commands/liftListItem.d.ts +0 -15
- package/dist/packages/core/src/commands/newlineInCode.d.ts +0 -13
- package/dist/packages/core/src/commands/resetAttributes.d.ts +0 -16
- package/dist/packages/core/src/commands/scrollIntoView.d.ts +0 -13
- package/dist/packages/core/src/commands/selectAll.d.ts +0 -13
- package/dist/packages/core/src/commands/selectNodeBackward.d.ts +0 -13
- package/dist/packages/core/src/commands/selectNodeForward.d.ts +0 -13
- package/dist/packages/core/src/commands/selectParentNode.d.ts +0 -13
- package/dist/packages/core/src/commands/selectTextblockEnd.d.ts +0 -13
- package/dist/packages/core/src/commands/selectTextblockStart.d.ts +0 -13
- package/dist/packages/core/src/commands/setContent.d.ts +0 -40
- package/dist/packages/core/src/commands/setMark.d.ts +0 -15
- package/dist/packages/core/src/commands/setMeta.d.ts +0 -15
- package/dist/packages/core/src/commands/setNode.d.ts +0 -16
- package/dist/packages/core/src/commands/setNodeSelection.d.ts +0 -14
- package/dist/packages/core/src/commands/setTextSelection.d.ts +0 -14
- package/dist/packages/core/src/commands/sinkListItem.d.ts +0 -15
- package/dist/packages/core/src/commands/splitBlock.d.ts +0 -17
- package/dist/packages/core/src/commands/splitListItem.d.ts +0 -15
- package/dist/packages/core/src/commands/toggleList.d.ts +0 -18
- package/dist/packages/core/src/commands/toggleMark.d.ts +0 -30
- package/dist/packages/core/src/commands/toggleNode.d.ts +0 -17
- package/dist/packages/core/src/commands/toggleWrap.d.ts +0 -16
- package/dist/packages/core/src/commands/undoInputRule.d.ts +0 -13
- package/dist/packages/core/src/commands/unsetAllMarks.d.ts +0 -13
- package/dist/packages/core/src/commands/unsetMark.d.ts +0 -25
- package/dist/packages/core/src/commands/updateAttributes.d.ts +0 -24
- package/dist/packages/core/src/commands/wrapIn.d.ts +0 -16
- package/dist/packages/core/src/commands/wrapInList.d.ts +0 -16
- package/dist/packages/core/src/extensions/clipboardTextSerializer.d.ts +0 -5
- package/dist/packages/core/src/extensions/commands.d.ts +0 -3
- package/dist/packages/core/src/extensions/editable.d.ts +0 -2
- package/dist/packages/core/src/extensions/focusEvents.d.ts +0 -2
- package/dist/packages/core/src/extensions/index.d.ts +0 -6
- package/dist/packages/core/src/extensions/keymap.d.ts +0 -2
- package/dist/packages/core/src/extensions/tabindex.d.ts +0 -2
- package/dist/packages/core/src/helpers/combineTransactionSteps.d.ts +0 -10
- package/dist/packages/core/src/helpers/createChainableState.d.ts +0 -10
- package/dist/packages/core/src/helpers/createDocument.d.ts +0 -12
- package/dist/packages/core/src/helpers/createNodeFromContent.d.ts +0 -15
- package/dist/packages/core/src/helpers/defaultBlockAt.d.ts +0 -7
- package/dist/packages/core/src/helpers/findChildren.d.ts +0 -9
- package/dist/packages/core/src/helpers/findChildrenInRange.d.ts +0 -10
- package/dist/packages/core/src/helpers/findParentNode.d.ts +0 -16
- package/dist/packages/core/src/helpers/findParentNodeClosestToPos.d.ts +0 -17
- package/dist/packages/core/src/helpers/generateHTML.d.ts +0 -8
- package/dist/packages/core/src/helpers/generateJSON.d.ts +0 -8
- package/dist/packages/core/src/helpers/generateText.d.ts +0 -12
- package/dist/packages/core/src/helpers/getAttributes.d.ts +0 -9
- package/dist/packages/core/src/helpers/getAttributesFromExtensions.d.ts +0 -6
- package/dist/packages/core/src/helpers/getChangedRanges.d.ts +0 -11
- package/dist/packages/core/src/helpers/getDebugJSON.d.ts +0 -8
- package/dist/packages/core/src/helpers/getExtensionField.d.ts +0 -9
- package/dist/packages/core/src/helpers/getHTMLFromFragment.d.ts +0 -2
- package/dist/packages/core/src/helpers/getMarkAttributes.d.ts +0 -3
- package/dist/packages/core/src/helpers/getMarkRange.d.ts +0 -3
- package/dist/packages/core/src/helpers/getMarkType.d.ts +0 -2
- package/dist/packages/core/src/helpers/getMarksBetween.d.ts +0 -3
- package/dist/packages/core/src/helpers/getNodeAtPosition.d.ts +0 -11
- package/dist/packages/core/src/helpers/getNodeAttributes.d.ts +0 -3
- package/dist/packages/core/src/helpers/getNodeType.d.ts +0 -2
- package/dist/packages/core/src/helpers/getRenderedAttributes.d.ts +0 -3
- package/dist/packages/core/src/helpers/getSchema.d.ts +0 -4
- package/dist/packages/core/src/helpers/getSchemaByResolvedExtensions.d.ts +0 -10
- package/dist/packages/core/src/helpers/getSchemaTypeByName.d.ts +0 -8
- package/dist/packages/core/src/helpers/getSchemaTypeNameByName.d.ts +0 -8
- package/dist/packages/core/src/helpers/getSplittedAttributes.d.ts +0 -9
- package/dist/packages/core/src/helpers/getText.d.ts +0 -15
- package/dist/packages/core/src/helpers/getTextBetween.d.ts +0 -14
- package/dist/packages/core/src/helpers/getTextContentFromNodes.d.ts +0 -8
- package/dist/packages/core/src/helpers/getTextSerializersFromSchema.d.ts +0 -8
- package/dist/packages/core/src/helpers/index.d.ts +0 -50
- package/dist/packages/core/src/helpers/injectExtensionAttributesToParseRule.d.ts +0 -9
- package/dist/packages/core/src/helpers/isActive.d.ts +0 -2
- package/dist/packages/core/src/helpers/isAtEndOfNode.d.ts +0 -2
- package/dist/packages/core/src/helpers/isAtStartOfNode.d.ts +0 -2
- package/dist/packages/core/src/helpers/isExtensionRulesEnabled.d.ts +0 -2
- package/dist/packages/core/src/helpers/isList.d.ts +0 -2
- package/dist/packages/core/src/helpers/isMarkActive.d.ts +0 -3
- package/dist/packages/core/src/helpers/isNodeActive.d.ts +0 -3
- package/dist/packages/core/src/helpers/isNodeEmpty.d.ts +0 -2
- package/dist/packages/core/src/helpers/isNodeSelection.d.ts +0 -2
- package/dist/packages/core/src/helpers/isTextSelection.d.ts +0 -2
- package/dist/packages/core/src/helpers/posToDOMRect.d.ts +0 -2
- package/dist/packages/core/src/helpers/resolveFocusPosition.d.ts +0 -4
- package/dist/packages/core/src/helpers/selectionToInsertionEnd.d.ts +0 -2
- package/dist/packages/core/src/helpers/splitExtensions.d.ts +0 -9
- package/dist/packages/core/src/index.d.ts +0 -24
- package/dist/packages/core/src/inputRules/index.d.ts +0 -5
- package/dist/packages/core/src/inputRules/markInputRule.d.ts +0 -13
- package/dist/packages/core/src/inputRules/nodeInputRule.d.ts +0 -23
- package/dist/packages/core/src/inputRules/textInputRule.d.ts +0 -10
- package/dist/packages/core/src/inputRules/textblockTypeInputRule.d.ts +0 -15
- package/dist/packages/core/src/inputRules/wrappingInputRule.d.ts +0 -28
- package/dist/packages/core/src/pasteRules/index.d.ts +0 -3
- package/dist/packages/core/src/pasteRules/markPasteRule.d.ts +0 -13
- package/dist/packages/core/src/pasteRules/nodePasteRule.d.ts +0 -13
- package/dist/packages/core/src/pasteRules/textPasteRule.d.ts +0 -10
- package/dist/packages/core/src/style.d.ts +0 -1
- package/dist/packages/core/src/types.d.ts +0 -255
- package/dist/packages/core/src/utilities/callOrReturn.d.ts +0 -9
- package/dist/packages/core/src/utilities/createStyleTag.d.ts +0 -1
- package/dist/packages/core/src/utilities/deleteProps.d.ts +0 -6
- package/dist/packages/core/src/utilities/elementFromString.d.ts +0 -1
- package/dist/packages/core/src/utilities/escapeForRegEx.d.ts +0 -1
- package/dist/packages/core/src/utilities/findDuplicates.d.ts +0 -1
- package/dist/packages/core/src/utilities/fromString.d.ts +0 -1
- package/dist/packages/core/src/utilities/index.d.ts +0 -20
- package/dist/packages/core/src/utilities/isAndroid.d.ts +0 -1
- package/dist/packages/core/src/utilities/isEmptyObject.d.ts +0 -1
- package/dist/packages/core/src/utilities/isFunction.d.ts +0 -1
- package/dist/packages/core/src/utilities/isMacOS.d.ts +0 -1
- package/dist/packages/core/src/utilities/isNumber.d.ts +0 -1
- package/dist/packages/core/src/utilities/isPlainObject.d.ts +0 -1
- package/dist/packages/core/src/utilities/isRegExp.d.ts +0 -1
- package/dist/packages/core/src/utilities/isString.d.ts +0 -1
- package/dist/packages/core/src/utilities/isiOS.d.ts +0 -1
- package/dist/packages/core/src/utilities/mergeAttributes.d.ts +0 -1
- package/dist/packages/core/src/utilities/mergeDeep.d.ts +0 -1
- package/dist/packages/core/src/utilities/minMax.d.ts +0 -1
- package/dist/packages/core/src/utilities/objectIncludes.d.ts +0 -8
- package/dist/packages/core/src/utilities/removeDuplicates.d.ts +0 -8
- package/dist/packages/extension-bubble-menu/src/bubble-menu-plugin.d.ts +0 -76
- package/dist/packages/extension-bubble-menu/src/bubble-menu.d.ts +0 -15
- package/dist/packages/extension-bubble-menu/src/index.d.ts +0 -4
- package/dist/packages/extension-floating-menu/src/floating-menu-plugin.d.ts +0 -66
- package/dist/packages/extension-floating-menu/src/floating-menu.d.ts +0 -15
- package/dist/packages/extension-floating-menu/src/index.d.ts +0 -4
- package/dist/packages/react/src/BubbleMenu.d.ts +0 -11
- package/dist/packages/react/src/Context.d.ts +0 -23
- package/dist/packages/react/src/Editor.d.ts +0 -12
- package/dist/packages/react/src/EditorContent.d.ts +0 -24
- package/dist/packages/react/src/FloatingMenu.d.ts +0 -10
- package/dist/packages/react/src/NodeViewContent.d.ts +0 -6
- package/dist/packages/react/src/NodeViewWrapper.d.ts +0 -6
- package/dist/packages/react/src/ReactNodeViewRenderer.d.ts +0 -16
- package/dist/packages/react/src/ReactRenderer.d.ts +0 -62
- package/dist/packages/react/src/index.d.ts +0 -13
- package/dist/packages/react/src/useEditor.d.ts +0 -39
- package/dist/packages/react/src/useEditorState.d.ts +0 -22
- package/dist/packages/react/src/useReactNodeView.d.ts +0 -6
- package/src/BubbleMenu.tsx +0 -57
- package/src/FloatingMenu.tsx +0 -64
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NodeViewRenderer, NodeViewRendererOptions } from '@tiptap/core';
|
|
2
|
-
import { Node as ProseMirrorNode } from '@tiptap/pm/model';
|
|
3
|
-
import { Decoration } from '@tiptap/pm/view';
|
|
4
|
-
export interface ReactNodeViewRendererOptions extends NodeViewRendererOptions {
|
|
5
|
-
update: ((props: {
|
|
6
|
-
oldNode: ProseMirrorNode;
|
|
7
|
-
oldDecorations: Decoration[];
|
|
8
|
-
newNode: ProseMirrorNode;
|
|
9
|
-
newDecorations: Decoration[];
|
|
10
|
-
updateProps: () => void;
|
|
11
|
-
}) => boolean) | null;
|
|
12
|
-
as?: string;
|
|
13
|
-
className?: string;
|
|
14
|
-
attrs?: Record<string, string>;
|
|
15
|
-
}
|
|
16
|
-
export declare function ReactNodeViewRenderer(component: any, options?: Partial<ReactNodeViewRendererOptions>): NodeViewRenderer;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { Editor } from '@tiptap/core';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Editor as ExtendedEditor } from './Editor.js';
|
|
4
|
-
export interface ReactRendererOptions {
|
|
5
|
-
/**
|
|
6
|
-
* The editor instance.
|
|
7
|
-
* @type {Editor}
|
|
8
|
-
*/
|
|
9
|
-
editor: Editor;
|
|
10
|
-
/**
|
|
11
|
-
* The props for the component.
|
|
12
|
-
* @type {Record<string, any>}
|
|
13
|
-
* @default {}
|
|
14
|
-
*/
|
|
15
|
-
props?: Record<string, any>;
|
|
16
|
-
/**
|
|
17
|
-
* The tag name of the element.
|
|
18
|
-
* @type {string}
|
|
19
|
-
* @default 'div'
|
|
20
|
-
*/
|
|
21
|
-
as?: string;
|
|
22
|
-
/**
|
|
23
|
-
* The class name of the element.
|
|
24
|
-
* @type {string}
|
|
25
|
-
* @default ''
|
|
26
|
-
* @example 'foo bar'
|
|
27
|
-
*/
|
|
28
|
-
className?: string;
|
|
29
|
-
/**
|
|
30
|
-
* The attributes of the element.
|
|
31
|
-
* @type {Record<string, string>}
|
|
32
|
-
* @default {}
|
|
33
|
-
* @example { 'data-foo': 'bar' }
|
|
34
|
-
*/
|
|
35
|
-
attrs?: Record<string, string>;
|
|
36
|
-
}
|
|
37
|
-
type ComponentType<R, P> = React.ComponentClass<P> | React.FunctionComponent<P> | React.ForwardRefExoticComponent<React.PropsWithoutRef<P> & React.RefAttributes<R>>;
|
|
38
|
-
/**
|
|
39
|
-
* The ReactRenderer class. It's responsible for rendering React components inside the editor.
|
|
40
|
-
* @example
|
|
41
|
-
* new ReactRenderer(MyComponent, {
|
|
42
|
-
* editor,
|
|
43
|
-
* props: {
|
|
44
|
-
* foo: 'bar',
|
|
45
|
-
* },
|
|
46
|
-
* as: 'span',
|
|
47
|
-
* })
|
|
48
|
-
*/
|
|
49
|
-
export declare class ReactRenderer<R = unknown, P = unknown> {
|
|
50
|
-
id: string;
|
|
51
|
-
editor: ExtendedEditor;
|
|
52
|
-
component: any;
|
|
53
|
-
element: Element;
|
|
54
|
-
props: Record<string, any>;
|
|
55
|
-
reactElement: React.ReactNode;
|
|
56
|
-
ref: R | null;
|
|
57
|
-
constructor(component: ComponentType<R, P>, { editor, props, as, className, attrs, }: ReactRendererOptions);
|
|
58
|
-
render(): void;
|
|
59
|
-
updateProps(props?: Record<string, any>): void;
|
|
60
|
-
destroy(): void;
|
|
61
|
-
}
|
|
62
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export * from './BubbleMenu.js';
|
|
2
|
-
export * from './Context.js';
|
|
3
|
-
export { Editor } from './Editor.js';
|
|
4
|
-
export * from './EditorContent.js';
|
|
5
|
-
export * from './FloatingMenu.js';
|
|
6
|
-
export * from './NodeViewContent.js';
|
|
7
|
-
export * from './NodeViewWrapper.js';
|
|
8
|
-
export * from './ReactNodeViewRenderer.js';
|
|
9
|
-
export * from './ReactRenderer.js';
|
|
10
|
-
export * from './useEditor.js';
|
|
11
|
-
export * from './useEditorState.js';
|
|
12
|
-
export * from './useReactNodeView.js';
|
|
13
|
-
export * from '@tiptap/core';
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { EditorOptions } from '@tiptap/core';
|
|
2
|
-
import { DependencyList } from 'react';
|
|
3
|
-
import { Editor } from './Editor.js';
|
|
4
|
-
/**
|
|
5
|
-
* The options for the `useEditor` hook.
|
|
6
|
-
*/
|
|
7
|
-
export type UseEditorOptions = Partial<EditorOptions> & {
|
|
8
|
-
/**
|
|
9
|
-
* Whether to render the editor on the first render.
|
|
10
|
-
* If client-side rendering, set this to `true`.
|
|
11
|
-
* If server-side rendering, set this to `false`.
|
|
12
|
-
* @default true
|
|
13
|
-
*/
|
|
14
|
-
immediatelyRender?: boolean;
|
|
15
|
-
/**
|
|
16
|
-
* Whether to re-render the editor on each transaction.
|
|
17
|
-
* This is legacy behavior that will be removed in future versions.
|
|
18
|
-
* @default true
|
|
19
|
-
*/
|
|
20
|
-
shouldRerenderOnTransaction?: boolean;
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* This hook allows you to create an editor instance.
|
|
24
|
-
* @param options The editor options
|
|
25
|
-
* @param deps The dependencies to watch for changes
|
|
26
|
-
* @returns The editor instance
|
|
27
|
-
* @example const editor = useEditor({ extensions: [...] })
|
|
28
|
-
*/
|
|
29
|
-
export declare function useEditor(options: UseEditorOptions & {
|
|
30
|
-
immediatelyRender: true;
|
|
31
|
-
}, deps?: DependencyList): Editor;
|
|
32
|
-
/**
|
|
33
|
-
* This hook allows you to create an editor instance.
|
|
34
|
-
* @param options The editor options
|
|
35
|
-
* @param deps The dependencies to watch for changes
|
|
36
|
-
* @returns The editor instance
|
|
37
|
-
* @example const editor = useEditor({ extensions: [...] })
|
|
38
|
-
*/
|
|
39
|
-
export declare function useEditor(options?: UseEditorOptions, deps?: DependencyList): Editor | null;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import type { Editor } from './Editor.js';
|
|
2
|
-
export type EditorStateSnapshot<TEditor extends Editor | null = Editor | null> = {
|
|
3
|
-
editor: TEditor;
|
|
4
|
-
transactionNumber: number;
|
|
5
|
-
};
|
|
6
|
-
export type UseEditorStateOptions<TSelectorResult, TEditor extends Editor | null = Editor | null> = {
|
|
7
|
-
/**
|
|
8
|
-
* The editor instance.
|
|
9
|
-
*/
|
|
10
|
-
editor: TEditor;
|
|
11
|
-
/**
|
|
12
|
-
* A selector function to determine the value to compare for re-rendering.
|
|
13
|
-
*/
|
|
14
|
-
selector: (context: EditorStateSnapshot<TEditor>) => TSelectorResult;
|
|
15
|
-
/**
|
|
16
|
-
* A custom equality function to determine if the editor should re-render.
|
|
17
|
-
* @default `(a, b) => a === b`
|
|
18
|
-
*/
|
|
19
|
-
equalityFn?: (a: TSelectorResult, b: TSelectorResult | null) => boolean;
|
|
20
|
-
};
|
|
21
|
-
export declare function useEditorState<TSelectorResult>(options: UseEditorStateOptions<TSelectorResult, Editor>): TSelectorResult;
|
|
22
|
-
export declare function useEditorState<TSelectorResult>(options: UseEditorStateOptions<TSelectorResult, Editor | null>): TSelectorResult | null;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export interface ReactNodeViewContextProps {
|
|
2
|
-
onDragStart: (event: DragEvent) => void;
|
|
3
|
-
nodeViewContentRef: (element: HTMLElement | null) => void;
|
|
4
|
-
}
|
|
5
|
-
export declare const ReactNodeViewContext: import("react").Context<Partial<ReactNodeViewContextProps>>;
|
|
6
|
-
export declare const useReactNodeView: () => Partial<ReactNodeViewContextProps>;
|
package/src/BubbleMenu.tsx
DELETED
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { BubbleMenuPlugin, BubbleMenuPluginProps } from '@tiptap/extension-bubble-menu'
|
|
2
|
-
import React, { useEffect, useState } from 'react'
|
|
3
|
-
|
|
4
|
-
import { useCurrentEditor } from './Context.js'
|
|
5
|
-
|
|
6
|
-
type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>;
|
|
7
|
-
|
|
8
|
-
export type BubbleMenuProps = Omit<Optional<BubbleMenuPluginProps, 'pluginKey'>, 'element' | 'editor'> & {
|
|
9
|
-
editor: BubbleMenuPluginProps['editor'] | null;
|
|
10
|
-
className?: string;
|
|
11
|
-
children: React.ReactNode;
|
|
12
|
-
updateDelay?: number;
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
export const BubbleMenu = (props: BubbleMenuProps) => {
|
|
16
|
-
const [element, setElement] = useState<HTMLDivElement | null>(null)
|
|
17
|
-
const { editor: currentEditor } = useCurrentEditor()
|
|
18
|
-
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
if (!element) {
|
|
21
|
-
return
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
if (props.editor?.isDestroyed || currentEditor?.isDestroyed) {
|
|
25
|
-
return
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
const {
|
|
29
|
-
pluginKey = 'bubbleMenu', editor, tippyOptions = {}, updateDelay, shouldShow = null,
|
|
30
|
-
} = props
|
|
31
|
-
|
|
32
|
-
const menuEditor = editor || currentEditor
|
|
33
|
-
|
|
34
|
-
if (!menuEditor) {
|
|
35
|
-
console.warn('BubbleMenu component is not rendered inside of an editor component or does not have editor prop.')
|
|
36
|
-
return
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const plugin = BubbleMenuPlugin({
|
|
40
|
-
updateDelay,
|
|
41
|
-
editor: menuEditor,
|
|
42
|
-
element,
|
|
43
|
-
pluginKey,
|
|
44
|
-
shouldShow,
|
|
45
|
-
tippyOptions,
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
menuEditor.registerPlugin(plugin)
|
|
49
|
-
return () => menuEditor.unregisterPlugin(pluginKey)
|
|
50
|
-
}, [props.editor, currentEditor, element])
|
|
51
|
-
|
|
52
|
-
return (
|
|
53
|
-
<div ref={setElement} className={props.className} style={{ visibility: 'hidden' }}>
|
|
54
|
-
{props.children}
|
|
55
|
-
</div>
|
|
56
|
-
)
|
|
57
|
-
}
|
package/src/FloatingMenu.tsx
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { FloatingMenuPlugin, FloatingMenuPluginProps } from '@tiptap/extension-floating-menu'
|
|
2
|
-
import React, {
|
|
3
|
-
useEffect, useState,
|
|
4
|
-
} from 'react'
|
|
5
|
-
|
|
6
|
-
import { useCurrentEditor } from './Context.js'
|
|
7
|
-
|
|
8
|
-
type Optional<T, K extends keyof T> = Pick<Partial<T>, K> & Omit<T, K>
|
|
9
|
-
|
|
10
|
-
export type FloatingMenuProps = Omit<Optional<FloatingMenuPluginProps, 'pluginKey'>, 'element' | 'editor'> & {
|
|
11
|
-
editor: FloatingMenuPluginProps['editor'] | null;
|
|
12
|
-
className?: string,
|
|
13
|
-
children: React.ReactNode
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export const FloatingMenu = (props: FloatingMenuProps) => {
|
|
17
|
-
const [element, setElement] = useState<HTMLDivElement | null>(null)
|
|
18
|
-
const { editor: currentEditor } = useCurrentEditor()
|
|
19
|
-
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
if (!element) {
|
|
22
|
-
return
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
if (props.editor?.isDestroyed || currentEditor?.isDestroyed) {
|
|
26
|
-
return
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const {
|
|
30
|
-
pluginKey = 'floatingMenu',
|
|
31
|
-
editor,
|
|
32
|
-
tippyOptions = {},
|
|
33
|
-
shouldShow = null,
|
|
34
|
-
} = props
|
|
35
|
-
|
|
36
|
-
const menuEditor = editor || currentEditor
|
|
37
|
-
|
|
38
|
-
if (!menuEditor) {
|
|
39
|
-
console.warn('FloatingMenu component is not rendered inside of an editor component or does not have editor prop.')
|
|
40
|
-
return
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const plugin = FloatingMenuPlugin({
|
|
44
|
-
pluginKey,
|
|
45
|
-
editor: menuEditor,
|
|
46
|
-
element,
|
|
47
|
-
tippyOptions,
|
|
48
|
-
shouldShow,
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
menuEditor.registerPlugin(plugin)
|
|
52
|
-
return () => menuEditor.unregisterPlugin(pluginKey)
|
|
53
|
-
}, [
|
|
54
|
-
props.editor,
|
|
55
|
-
currentEditor,
|
|
56
|
-
element,
|
|
57
|
-
])
|
|
58
|
-
|
|
59
|
-
return (
|
|
60
|
-
<div ref={setElement} className={props.className} style={{ visibility: 'hidden' }}>
|
|
61
|
-
{props.children}
|
|
62
|
-
</div>
|
|
63
|
-
)
|
|
64
|
-
}
|