diff --git a/packages/client/src/tiptap/components/color-picker/index.tsx b/packages/client/src/components/color-picker/index.tsx
similarity index 100%
rename from packages/client/src/tiptap/components/color-picker/index.tsx
rename to packages/client/src/components/color-picker/index.tsx
diff --git a/packages/client/src/tiptap/components/color-picker/style.module.scss b/packages/client/src/components/color-picker/style.module.scss
similarity index 100%
rename from packages/client/src/tiptap/components/color-picker/style.module.scss
rename to packages/client/src/components/color-picker/style.module.scss
diff --git a/packages/client/src/components/divider.tsx b/packages/client/src/components/divider.tsx
index 6ce90844..fed9059b 100644
--- a/packages/client/src/components/divider.tsx
+++ b/packages/client/src/components/divider.tsx
@@ -1,13 +1,20 @@
-export const Divider = () => {
+import React from 'react';
+
+export const _Divider = ({ vertical = false }) => {
return (
);
};
+
+export const Divider = React.memo(_Divider, (prevProps, nextProps) => {
+ return prevProps.vertical === nextProps.vertical;
+});
diff --git a/packages/client/src/components/document/comments/index.tsx b/packages/client/src/components/document/comments/index.tsx
index fd57fa67..f93c2f61 100644
--- a/packages/client/src/components/document/comments/index.tsx
+++ b/packages/client/src/components/document/comments/index.tsx
@@ -4,7 +4,8 @@ import { useComments } from 'data/comment';
import { useUser } from 'data/user';
import { useToggle } from 'hooks/use-toggle';
import React, { useCallback, useRef, useState } from 'react';
-import { CommentKit, CommentMenuBar, EditorContent, useEditor } from 'tiptap/editor';
+import { EditorContent, useEditor } from 'tiptap/core';
+import { CommentKit, CommentMenuBar } from 'tiptap/editor';
import { Comments } from './comments';
import styles from './index.module.scss';
diff --git a/packages/client/src/tiptap/components/size.tsx b/packages/client/src/components/size-setter.tsx
similarity index 84%
rename from packages/client/src/tiptap/components/size.tsx
rename to packages/client/src/components/size-setter.tsx
index 08a8d341..71dedce7 100644
--- a/packages/client/src/tiptap/components/size.tsx
+++ b/packages/client/src/components/size-setter.tsx
@@ -4,13 +4,14 @@ import { useCallback, useRef } from 'react';
type ISize = { width: number; height: number };
-export const Size: React.FC<{ width: number; maxWidth?: number; height: number; onOk: (arg: ISize) => void }> = ({
- width,
- maxWidth,
- height,
- onOk,
- children,
-}) => {
+interface IProps {
+ width: number;
+ maxWidth?: number;
+ height: number;
+ onOk: (arg: ISize) => void;
+}
+
+export const SizeSetter: React.FC = ({ width, maxWidth, height, onOk, children }) => {
const $form = useRef();
const handleOk = useCallback(() => {
diff --git a/packages/client/src/tiptap/components/divider.tsx b/packages/client/src/tiptap/components/divider.tsx
deleted file mode 100644
index fed9059b..00000000
--- a/packages/client/src/tiptap/components/divider.tsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import React from 'react';
-
-export const _Divider = ({ vertical = false }) => {
- return (
-
- );
-};
-
-export const Divider = React.memo(_Divider, (prevProps, nextProps) => {
- return prevProps.vertical === nextProps.vertical;
-});
diff --git a/packages/client/src/tiptap/components/skeleton.tsx b/packages/client/src/tiptap/components/skeleton.tsx
deleted file mode 100644
index ad941f13..00000000
--- a/packages/client/src/tiptap/components/skeleton.tsx
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Skeleton } from '@douyinfe/semi-ui';
-import React from 'react';
-
-export const DocumentSkeleton = () => {
- const placeholder = (
- <>
-
-
- >
- );
-
- return ;
-};
diff --git a/packages/client/src/tiptap/markdown/markdown-to-prosemirror/html-to-prosemirror/all-kit.tsx b/packages/client/src/tiptap/core/all-kit.ts
similarity index 92%
rename from packages/client/src/tiptap/markdown/markdown-to-prosemirror/html-to-prosemirror/all-kit.tsx
rename to packages/client/src/tiptap/core/all-kit.ts
index 872bcbf0..3b9f3f9b 100644
--- a/packages/client/src/tiptap/markdown/markdown-to-prosemirror/html-to-prosemirror/all-kit.tsx
+++ b/packages/client/src/tiptap/core/all-kit.ts
@@ -1,5 +1,3 @@
-// 基础扩展
-// 自定义节点扩展
import { Attachment } from 'tiptap/core/extensions/attachment';
import { BackgroundColor } from 'tiptap/core/extensions/background-color';
import { Blockquote } from 'tiptap/core/extensions/blockquote';
@@ -64,18 +62,7 @@ export const DocumentWithTitle = Document.extend({
export const AllExtensions = [
Paragraph,
- Placeholder.configure({
- placeholder: ({ node, editor }) => {
- if (!editor.isEditable) return;
-
- if (node.type.name === 'title') {
- return '请输入标题';
- }
- return '输入 / 唤起更多';
- },
- showOnlyCurrent: false,
- showOnlyWhenEditable: true,
- }),
+ Placeholder,
BackgroundColor,
Blockquote,
Bold,
diff --git a/packages/client/src/tiptap/editor/views/bubble-menu/bubble-menu-plugin.tsx b/packages/client/src/tiptap/core/bubble-menu/bubble-menu-plugin.tsx
similarity index 100%
rename from packages/client/src/tiptap/editor/views/bubble-menu/bubble-menu-plugin.tsx
rename to packages/client/src/tiptap/core/bubble-menu/bubble-menu-plugin.tsx
diff --git a/packages/client/src/tiptap/editor/views/bubble-menu/index.tsx b/packages/client/src/tiptap/core/bubble-menu/index.tsx
similarity index 100%
rename from packages/client/src/tiptap/editor/views/bubble-menu/index.tsx
rename to packages/client/src/tiptap/core/bubble-menu/index.tsx
diff --git a/packages/client/src/tiptap/core/extensions/collaboration-cursor/cursor-plugin/index.ts b/packages/client/src/tiptap/core/extensions/collaboration-cursor/cursor-plugin/index.ts
index cb12f1c5..75cd9a9b 100644
--- a/packages/client/src/tiptap/core/extensions/collaboration-cursor/cursor-plugin/index.ts
+++ b/packages/client/src/tiptap/core/extensions/collaboration-cursor/cursor-plugin/index.ts
@@ -7,7 +7,7 @@ import {
setMeta,
yCursorPluginKey,
ySyncPluginKey,
-} from 'tiptap/core/y-prosemirror/y-prosemirror';
+} from 'tiptap/core/thritypart/y-prosemirror/y-prosemirror';
import * as Y from 'yjs';
/**
diff --git a/packages/client/src/tiptap/core/extensions/collaboration/collaboration.ts b/packages/client/src/tiptap/core/extensions/collaboration/collaboration.ts
index 4687a3d2..33c87978 100644
--- a/packages/client/src/tiptap/core/extensions/collaboration/collaboration.ts
+++ b/packages/client/src/tiptap/core/extensions/collaboration/collaboration.ts
@@ -1,5 +1,11 @@
import { Extension } from '@tiptap/core';
-import { redo, undo, ySyncPlugin, yUndoPlugin, yUndoPluginKey } from 'tiptap/core/y-prosemirror/y-prosemirror';
+import {
+ redo,
+ undo,
+ ySyncPlugin,
+ yUndoPlugin,
+ yUndoPluginKey,
+} from 'tiptap/core/thritypart/y-prosemirror/y-prosemirror';
import { UndoManager } from 'yjs';
declare module '@tiptap/core' {
diff --git a/packages/client/src/tiptap/core/extensions/collaboration/helpers/is-change-origin.ts b/packages/client/src/tiptap/core/extensions/collaboration/helpers/is-change-origin.ts
index 42d90445..73a5c8e7 100644
--- a/packages/client/src/tiptap/core/extensions/collaboration/helpers/is-change-origin.ts
+++ b/packages/client/src/tiptap/core/extensions/collaboration/helpers/is-change-origin.ts
@@ -1,5 +1,5 @@
import { Transaction } from 'prosemirror-state';
-import { ySyncPluginKey } from 'tiptap/core/y-prosemirror/y-prosemirror';
+import { ySyncPluginKey } from 'tiptap/core/thritypart/y-prosemirror/y-prosemirror';
export function isChangeOrigin(transaction: Transaction): boolean {
return !!transaction.getMeta(ySyncPluginKey);
diff --git a/packages/client/src/tiptap/core/extensions/quick-insert.tsx b/packages/client/src/tiptap/core/extensions/quick-insert.ts
similarity index 98%
rename from packages/client/src/tiptap/core/extensions/quick-insert.tsx
rename to packages/client/src/tiptap/core/extensions/quick-insert.ts
index 0f4ba345..92b8224c 100644
--- a/packages/client/src/tiptap/core/extensions/quick-insert.tsx
+++ b/packages/client/src/tiptap/core/extensions/quick-insert.ts
@@ -4,8 +4,8 @@ import Suggestion from '@tiptap/suggestion';
import { Plugin, PluginKey } from 'prosemirror-state';
import tippy from 'tippy.js';
import { EXTENSION_PRIORITY_HIGHEST } from 'tiptap/core/constants';
+import { QUICK_INSERT_ITEMS } from 'tiptap/core/menus/quick-insert';
import { MenuList } from 'tiptap/core/wrappers/menu-list';
-import { QUICK_INSERT_ITEMS } from 'tiptap/editor/menus/quick-insert';
export const QuickInsertPluginKey = new PluginKey('quickInsert');
diff --git a/packages/client/src/tiptap/core/extensions/table-header.tsx b/packages/client/src/tiptap/core/extensions/table-header.ts
similarity index 100%
rename from packages/client/src/tiptap/core/extensions/table-header.tsx
rename to packages/client/src/tiptap/core/extensions/table-header.ts
diff --git a/packages/client/src/tiptap/editor/hooks/use-active.tsx b/packages/client/src/tiptap/core/hooks/use-active.tsx
similarity index 100%
rename from packages/client/src/tiptap/editor/hooks/use-active.tsx
rename to packages/client/src/tiptap/core/hooks/use-active.tsx
diff --git a/packages/client/src/tiptap/editor/hooks/use-attributes.tsx b/packages/client/src/tiptap/core/hooks/use-attributes.tsx
similarity index 100%
rename from packages/client/src/tiptap/editor/hooks/use-attributes.tsx
rename to packages/client/src/tiptap/core/hooks/use-attributes.tsx
diff --git a/packages/client/src/tiptap/core/index.tsx b/packages/client/src/tiptap/core/index.tsx
new file mode 100644
index 00000000..93eb8048
--- /dev/null
+++ b/packages/client/src/tiptap/core/index.tsx
@@ -0,0 +1,44 @@
+import { EditorOptions } from '@tiptap/core';
+import { Editor as BuiltInEditor } from '@tiptap/react';
+import { EditorContent, NodeViewContent, NodeViewWrapper } from '@tiptap/react';
+import { EventEmitter } from 'helpers/event-emitter';
+import { DependencyList, useEffect, useState } from 'react';
+
+function useForceUpdate() {
+ const [, setValue] = useState(0);
+ return () => setValue((value) => value + 1);
+}
+
+export class Editor extends BuiltInEditor {
+ public eventEmitter: EventEmitter = new EventEmitter();
+}
+
+export const useEditor = (options: Partial = {}, deps: DependencyList = []) => {
+ const [editor, setEditor] = useState(null);
+ const forceUpdate = useForceUpdate();
+
+ useEffect(() => {
+ const instance = new Editor(options);
+
+ setEditor(instance);
+
+ if (!options.editable) {
+ instance.on('transaction', () => {
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => {
+ forceUpdate();
+ });
+ });
+ });
+ }
+
+ return () => {
+ instance.destroy();
+ };
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, deps);
+
+ return editor;
+};
+
+export { EditorContent, NodeViewContent, NodeViewWrapper };
diff --git a/packages/client/src/tiptap/editor/menus/_event.ts b/packages/client/src/tiptap/core/menus/_event.ts
similarity index 97%
rename from packages/client/src/tiptap/editor/menus/_event.ts
rename to packages/client/src/tiptap/core/menus/_event.ts
index 37918c29..fe687da4 100644
--- a/packages/client/src/tiptap/editor/menus/_event.ts
+++ b/packages/client/src/tiptap/core/menus/_event.ts
@@ -1,5 +1,5 @@
import { EventEmitter } from 'helpers/event-emitter';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
const getEventEmitter = (editor: Editor): EventEmitter => {
try {
diff --git a/packages/client/src/tiptap/editor/menus/align/index.tsx b/packages/client/src/tiptap/core/menus/align/index.tsx
similarity index 95%
rename from packages/client/src/tiptap/editor/menus/align/index.tsx
rename to packages/client/src/tiptap/core/menus/align/index.tsx
index f0b5eeab..9960797d 100644
--- a/packages/client/src/tiptap/editor/menus/align/index.tsx
+++ b/packages/client/src/tiptap/core/menus/align/index.tsx
@@ -1,9 +1,9 @@
import { IconAlignCenter, IconAlignJustify, IconAlignLeft, IconAlignRight } from '@douyinfe/semi-icons';
import { Button, Dropdown, Tooltip } from '@douyinfe/semi-ui';
import React, { useCallback, useMemo } from 'react';
+import { Editor } from 'tiptap/core';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Align: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/attachment/bubble.tsx b/packages/client/src/tiptap/core/menus/attachment/bubble.tsx
similarity index 91%
rename from packages/client/src/tiptap/editor/menus/attachment/bubble.tsx
rename to packages/client/src/tiptap/core/menus/attachment/bubble.tsx
index de0512c9..d246ae91 100644
--- a/packages/client/src/tiptap/editor/menus/attachment/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/attachment/bubble.tsx
@@ -1,10 +1,10 @@
import { IconCopy, IconDelete } from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import { Tooltip } from 'components/tooltip';
import { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Attachment } from 'tiptap/core/extensions/attachment';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
export const AttachmentBubbleMenu = ({ editor }) => {
diff --git a/packages/client/src/tiptap/editor/menus/attachment/index.tsx b/packages/client/src/tiptap/core/menus/attachment/index.tsx
similarity index 85%
rename from packages/client/src/tiptap/editor/menus/attachment/index.tsx
rename to packages/client/src/tiptap/core/menus/attachment/index.tsx
index a076c2ea..b8cbff73 100644
--- a/packages/client/src/tiptap/editor/menus/attachment/index.tsx
+++ b/packages/client/src/tiptap/core/menus/attachment/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { AttachmentBubbleMenu } from './bubble';
diff --git a/packages/client/src/tiptap/editor/menus/background-color/index.tsx b/packages/client/src/tiptap/core/menus/background-color/index.tsx
similarity index 85%
rename from packages/client/src/tiptap/editor/menus/background-color/index.tsx
rename to packages/client/src/tiptap/core/menus/background-color/index.tsx
index 97b354f9..3315b910 100644
--- a/packages/client/src/tiptap/editor/menus/background-color/index.tsx
+++ b/packages/client/src/tiptap/core/menus/background-color/index.tsx
@@ -1,12 +1,12 @@
import { IconMark } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
+import { ColorPicker } from 'components/color-picker';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { ColorPicker } from 'tiptap/components/color-picker';
+import { Editor } from 'tiptap/core';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
+import { useActive } from 'tiptap/core/hooks/use-active';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
const FlexStyle: React.CSSProperties = {
display: 'inline-flex',
diff --git a/packages/client/src/tiptap/editor/menus/blockquote/index.tsx b/packages/client/src/tiptap/core/menus/blockquote/index.tsx
similarity index 90%
rename from packages/client/src/tiptap/editor/menus/blockquote/index.tsx
rename to packages/client/src/tiptap/core/menus/blockquote/index.tsx
index 8fa22a09..65ecc44b 100644
--- a/packages/client/src/tiptap/editor/menus/blockquote/index.tsx
+++ b/packages/client/src/tiptap/core/menus/blockquote/index.tsx
@@ -2,10 +2,10 @@ import { Button } from '@douyinfe/semi-ui';
import { IconQuote } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Blockquote as BlockquoteExtension } from 'tiptap/core/extensions/blockquote';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Blockquote: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/bold/index.tsx b/packages/client/src/tiptap/core/menus/bold/index.tsx
similarity index 89%
rename from packages/client/src/tiptap/editor/menus/bold/index.tsx
rename to packages/client/src/tiptap/core/menus/bold/index.tsx
index ba0b1bd5..aa3517b8 100644
--- a/packages/client/src/tiptap/editor/menus/bold/index.tsx
+++ b/packages/client/src/tiptap/core/menus/bold/index.tsx
@@ -2,10 +2,10 @@ import { IconBold } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Bold as BoldExtension } from 'tiptap/core/extensions/bold';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Bold: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/bullet-list/index.tsx b/packages/client/src/tiptap/core/menus/bullet-list/index.tsx
similarity index 90%
rename from packages/client/src/tiptap/editor/menus/bullet-list/index.tsx
rename to packages/client/src/tiptap/core/menus/bullet-list/index.tsx
index 6515de67..b7463d0f 100644
--- a/packages/client/src/tiptap/editor/menus/bullet-list/index.tsx
+++ b/packages/client/src/tiptap/core/menus/bullet-list/index.tsx
@@ -2,10 +2,10 @@ import { Button } from '@douyinfe/semi-ui';
import { IconList } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { BulletList as BulletListExtension } from 'tiptap/core/extensions/bullet-list';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const BulletList: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/callout/bubble.module.scss b/packages/client/src/tiptap/core/menus/callout/bubble.module.scss
similarity index 100%
rename from packages/client/src/tiptap/editor/menus/callout/bubble.module.scss
rename to packages/client/src/tiptap/core/menus/callout/bubble.module.scss
diff --git a/packages/client/src/tiptap/editor/menus/callout/bubble.tsx b/packages/client/src/tiptap/core/menus/callout/bubble.tsx
similarity index 96%
rename from packages/client/src/tiptap/editor/menus/callout/bubble.tsx
rename to packages/client/src/tiptap/core/menus/callout/bubble.tsx
index 7d3c1521..00a21f93 100644
--- a/packages/client/src/tiptap/editor/menus/callout/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/callout/bubble.tsx
@@ -1,12 +1,12 @@
import { IconCopy, IconDelete } from '@douyinfe/semi-icons';
import { Button, Popover, Space, Typography } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import { IconDrawBoard } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { Editor } from 'tiptap/core';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Callout } from 'tiptap/core/extensions/callout';
-import { Editor } from 'tiptap/editor';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
import styles from './bubble.module.scss';
diff --git a/packages/client/src/tiptap/editor/menus/callout/index.tsx b/packages/client/src/tiptap/core/menus/callout/index.tsx
similarity index 84%
rename from packages/client/src/tiptap/editor/menus/callout/index.tsx
rename to packages/client/src/tiptap/core/menus/callout/index.tsx
index 5a89558a..ec5e7b71 100644
--- a/packages/client/src/tiptap/editor/menus/callout/index.tsx
+++ b/packages/client/src/tiptap/core/menus/callout/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { CalloutBubbleMenu } from './bubble';
diff --git a/packages/client/src/tiptap/editor/menus/clear-node-and-marks/index.tsx b/packages/client/src/tiptap/core/menus/clear-node-and-marks/index.tsx
similarity index 93%
rename from packages/client/src/tiptap/editor/menus/clear-node-and-marks/index.tsx
rename to packages/client/src/tiptap/core/menus/clear-node-and-marks/index.tsx
index 4a6d86f5..4ce3d565 100644
--- a/packages/client/src/tiptap/editor/menus/clear-node-and-marks/index.tsx
+++ b/packages/client/src/tiptap/core/menus/clear-node-and-marks/index.tsx
@@ -2,7 +2,7 @@ import { Button } from '@douyinfe/semi-ui';
import { IconClear } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
export const CleadrNodeAndMarks: React.FC<{ editor: Editor }> = ({ editor }) => {
const clear = useCallback(() => {
diff --git a/packages/client/src/tiptap/editor/menus/code-block/bubble.tsx b/packages/client/src/tiptap/core/menus/code-block/bubble.tsx
similarity index 93%
rename from packages/client/src/tiptap/editor/menus/code-block/bubble.tsx
rename to packages/client/src/tiptap/core/menus/code-block/bubble.tsx
index 79a9ca72..cf5ad256 100644
--- a/packages/client/src/tiptap/editor/menus/code-block/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/code-block/bubble.tsx
@@ -1,10 +1,10 @@
import { IconCopy, IconDelete } from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { CodeBlock } from 'tiptap/core/extensions/code-block';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
export const CodeBlockBubbleMenu = ({ editor }) => {
diff --git a/packages/client/src/tiptap/editor/menus/code-block/index.tsx b/packages/client/src/tiptap/core/menus/code-block/index.tsx
similarity index 85%
rename from packages/client/src/tiptap/editor/menus/code-block/index.tsx
rename to packages/client/src/tiptap/core/menus/code-block/index.tsx
index cb6aefd2..1795b2d2 100644
--- a/packages/client/src/tiptap/editor/menus/code-block/index.tsx
+++ b/packages/client/src/tiptap/core/menus/code-block/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { CodeBlockBubbleMenu } from './bubble';
diff --git a/packages/client/src/tiptap/editor/menus/code/index.tsx b/packages/client/src/tiptap/core/menus/code/index.tsx
similarity index 89%
rename from packages/client/src/tiptap/editor/menus/code/index.tsx
rename to packages/client/src/tiptap/core/menus/code/index.tsx
index 70a03f9f..5a44beab 100644
--- a/packages/client/src/tiptap/editor/menus/code/index.tsx
+++ b/packages/client/src/tiptap/core/menus/code/index.tsx
@@ -2,10 +2,10 @@ import { IconCode } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Code as InlineCode } from 'tiptap/core/extensions/code';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Code: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/countdown/bubble.tsx b/packages/client/src/tiptap/core/menus/countdown/bubble.tsx
similarity index 90%
rename from packages/client/src/tiptap/editor/menus/countdown/bubble.tsx
rename to packages/client/src/tiptap/core/menus/countdown/bubble.tsx
index cf13c716..d7dcfa42 100644
--- a/packages/client/src/tiptap/editor/menus/countdown/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/countdown/bubble.tsx
@@ -1,11 +1,11 @@
import { IconCopy, IconDelete, IconEdit } from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import { Tooltip } from 'components/tooltip';
import { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Countdown } from 'tiptap/core/extensions/countdown';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
import { triggerOpenCountSettingModal } from '../_event';
diff --git a/packages/client/src/tiptap/editor/menus/countdown/index.tsx b/packages/client/src/tiptap/core/menus/countdown/index.tsx
similarity index 89%
rename from packages/client/src/tiptap/editor/menus/countdown/index.tsx
rename to packages/client/src/tiptap/core/menus/countdown/index.tsx
index c0dc4ec0..b07c7bfa 100644
--- a/packages/client/src/tiptap/editor/menus/countdown/index.tsx
+++ b/packages/client/src/tiptap/core/menus/countdown/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { CountdownBubbleMenu } from './bubble';
import { CountdownSettingModal } from './modal';
diff --git a/packages/client/src/tiptap/editor/menus/countdown/modal.tsx b/packages/client/src/tiptap/core/menus/countdown/modal.tsx
similarity index 97%
rename from packages/client/src/tiptap/editor/menus/countdown/modal.tsx
rename to packages/client/src/tiptap/core/menus/countdown/modal.tsx
index 9b6d547a..d91b017e 100644
--- a/packages/client/src/tiptap/editor/menus/countdown/modal.tsx
+++ b/packages/client/src/tiptap/core/menus/countdown/modal.tsx
@@ -2,7 +2,7 @@ import { Form, Modal } from '@douyinfe/semi-ui';
import { FormApi } from '@douyinfe/semi-ui/lib/es/form';
import { useToggle } from 'hooks/use-toggle';
import { useCallback, useEffect, useRef, useState } from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { cancelSubject, OPEN_COUNT_SETTING_MODAL, subject } from '../_event';
diff --git a/packages/client/src/tiptap/editor/menus/countdown/service.ts b/packages/client/src/tiptap/core/menus/countdown/service.ts
similarity index 83%
rename from packages/client/src/tiptap/editor/menus/countdown/service.ts
rename to packages/client/src/tiptap/core/menus/countdown/service.ts
index 3e14d4e7..cc1c9770 100644
--- a/packages/client/src/tiptap/editor/menus/countdown/service.ts
+++ b/packages/client/src/tiptap/core/menus/countdown/service.ts
@@ -1,4 +1,4 @@
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { triggerOpenCountSettingModal } from '../_event';
diff --git a/packages/client/src/tiptap/editor/menus/document-children/bubble.tsx b/packages/client/src/tiptap/core/menus/document-children/bubble.tsx
similarity index 91%
rename from packages/client/src/tiptap/editor/menus/document-children/bubble.tsx
rename to packages/client/src/tiptap/core/menus/document-children/bubble.tsx
index 2d73e911..2ce45ceb 100644
--- a/packages/client/src/tiptap/editor/menus/document-children/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/document-children/bubble.tsx
@@ -1,10 +1,10 @@
import { IconCopy, IconDelete } from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { DocumentChildren } from 'tiptap/core/extensions/document-children';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
export const DocumentChildrenBubbleMenu = ({ editor }) => {
diff --git a/packages/client/src/tiptap/editor/menus/document-children/index.tsx b/packages/client/src/tiptap/core/menus/document-children/index.tsx
similarity index 86%
rename from packages/client/src/tiptap/editor/menus/document-children/index.tsx
rename to packages/client/src/tiptap/core/menus/document-children/index.tsx
index dd491bb3..44c763ad 100644
--- a/packages/client/src/tiptap/editor/menus/document-children/index.tsx
+++ b/packages/client/src/tiptap/core/menus/document-children/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { DocumentChildrenBubbleMenu } from './bubble';
diff --git a/packages/client/src/tiptap/editor/menus/document-reference/bubble.tsx b/packages/client/src/tiptap/core/menus/document-reference/bubble.tsx
similarity index 96%
rename from packages/client/src/tiptap/editor/menus/document-reference/bubble.tsx
rename to packages/client/src/tiptap/core/menus/document-reference/bubble.tsx
index c2241ba2..a7954856 100644
--- a/packages/client/src/tiptap/editor/menus/document-reference/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/document-reference/bubble.tsx
@@ -1,14 +1,14 @@
import { IconCopy, IconDelete, IconEdit } from '@douyinfe/semi-icons';
import { Button, List, Popover, Space, Typography } from '@douyinfe/semi-ui';
import { DataRender } from 'components/data-render';
+import { Divider } from 'components/divider';
import { IconDocument } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import { useWikiTocs } from 'data/wiki';
import { useRouter } from 'next/router';
import { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { DocumentReference } from 'tiptap/core/extensions/document-reference';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
const { Text } = Typography;
diff --git a/packages/client/src/tiptap/editor/menus/document-reference/index.tsx b/packages/client/src/tiptap/core/menus/document-reference/index.tsx
similarity index 86%
rename from packages/client/src/tiptap/editor/menus/document-reference/index.tsx
rename to packages/client/src/tiptap/core/menus/document-reference/index.tsx
index 3ea87d02..76fc8329 100644
--- a/packages/client/src/tiptap/editor/menus/document-reference/index.tsx
+++ b/packages/client/src/tiptap/core/menus/document-reference/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { DocumentReferenceBubbleMenu } from './bubble';
diff --git a/packages/client/src/tiptap/editor/menus/emoji/index.tsx b/packages/client/src/tiptap/core/menus/emoji/index.tsx
similarity index 95%
rename from packages/client/src/tiptap/editor/menus/emoji/index.tsx
rename to packages/client/src/tiptap/core/menus/emoji/index.tsx
index 1680ac3f..1d253bfd 100644
--- a/packages/client/src/tiptap/editor/menus/emoji/index.tsx
+++ b/packages/client/src/tiptap/core/menus/emoji/index.tsx
@@ -3,7 +3,7 @@ import { EmojiPicker } from 'components/emoji-picker';
import { IconEmoji } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
export const Emoji: React.FC<{ editor: Editor }> = ({ editor }) => {
const setEmoji = useCallback(
diff --git a/packages/client/src/tiptap/editor/menus/flow/bubble.tsx b/packages/client/src/tiptap/core/menus/flow/bubble.tsx
similarity index 89%
rename from packages/client/src/tiptap/editor/menus/flow/bubble.tsx
rename to packages/client/src/tiptap/core/menus/flow/bubble.tsx
index 7bed994d..47f4f9e6 100644
--- a/packages/client/src/tiptap/editor/menus/flow/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/flow/bubble.tsx
@@ -1,11 +1,11 @@
import { IconCopy, IconDelete, IconEdit } from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import { Tooltip } from 'components/tooltip';
import { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Flow } from 'tiptap/core/extensions/flow';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
import { triggerOpenFlowSettingModal } from '../_event';
diff --git a/packages/client/src/tiptap/editor/menus/flow/index.tsx b/packages/client/src/tiptap/core/menus/flow/index.tsx
similarity index 88%
rename from packages/client/src/tiptap/editor/menus/flow/index.tsx
rename to packages/client/src/tiptap/core/menus/flow/index.tsx
index 130e2bdb..bb990128 100644
--- a/packages/client/src/tiptap/editor/menus/flow/index.tsx
+++ b/packages/client/src/tiptap/core/menus/flow/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { FlowBubbleMenu } from './bubble';
import { FlowSettingModal } from './modal';
diff --git a/packages/client/src/tiptap/editor/menus/flow/modal.tsx b/packages/client/src/tiptap/core/menus/flow/modal.tsx
similarity index 98%
rename from packages/client/src/tiptap/editor/menus/flow/modal.tsx
rename to packages/client/src/tiptap/core/menus/flow/modal.tsx
index 90d90db5..89988ed6 100644
--- a/packages/client/src/tiptap/editor/menus/flow/modal.tsx
+++ b/packages/client/src/tiptap/core/menus/flow/modal.tsx
@@ -2,7 +2,7 @@ import { Modal, Spin, Typography } from '@douyinfe/semi-ui';
import { useToggle } from 'hooks/use-toggle';
import { useCallback, useEffect, useRef, useState } from 'react';
import { createEditor, load } from 'thirtypart/diagram';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { cancelSubject, OPEN_FLOW_SETTING_MODAL, subject } from '../_event';
diff --git a/packages/client/src/tiptap/editor/menus/fontsize/index.tsx b/packages/client/src/tiptap/core/menus/fontsize/index.tsx
similarity index 85%
rename from packages/client/src/tiptap/editor/menus/fontsize/index.tsx
rename to packages/client/src/tiptap/core/menus/fontsize/index.tsx
index a18e5889..7facc5fd 100644
--- a/packages/client/src/tiptap/editor/menus/fontsize/index.tsx
+++ b/packages/client/src/tiptap/core/menus/fontsize/index.tsx
@@ -1,9 +1,9 @@
import { Select } from '@douyinfe/semi-ui';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
+import { useActive } from 'tiptap/core/hooks/use-active';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
export const FONT_SIZES = [12, 13, 14, 15, 16, 19, 22, 24, 29, 32, 40, 48];
diff --git a/packages/client/src/tiptap/editor/menus/heading/index.tsx b/packages/client/src/tiptap/core/menus/heading/index.tsx
similarity index 95%
rename from packages/client/src/tiptap/editor/menus/heading/index.tsx
rename to packages/client/src/tiptap/core/menus/heading/index.tsx
index d4ce2a1e..b84240b1 100644
--- a/packages/client/src/tiptap/editor/menus/heading/index.tsx
+++ b/packages/client/src/tiptap/core/menus/heading/index.tsx
@@ -1,8 +1,8 @@
import { Select } from '@douyinfe/semi-ui';
import React, { useCallback, useMemo } from 'react';
+import { Editor } from 'tiptap/core';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Heading: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/horizontal-rule/index.tsx b/packages/client/src/tiptap/core/menus/horizontal-rule/index.tsx
similarity index 88%
rename from packages/client/src/tiptap/editor/menus/horizontal-rule/index.tsx
rename to packages/client/src/tiptap/core/menus/horizontal-rule/index.tsx
index cfb56cc6..c4677850 100644
--- a/packages/client/src/tiptap/editor/menus/horizontal-rule/index.tsx
+++ b/packages/client/src/tiptap/core/menus/horizontal-rule/index.tsx
@@ -2,9 +2,9 @@ import { Button } from '@douyinfe/semi-ui';
import { IconHorizontalRule } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const HorizontalRule: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/ident/index.tsx b/packages/client/src/tiptap/core/menus/ident/index.tsx
similarity index 91%
rename from packages/client/src/tiptap/editor/menus/ident/index.tsx
rename to packages/client/src/tiptap/core/menus/ident/index.tsx
index 0bb24039..4fb07454 100644
--- a/packages/client/src/tiptap/editor/menus/ident/index.tsx
+++ b/packages/client/src/tiptap/core/menus/ident/index.tsx
@@ -2,9 +2,9 @@ import { IconIndentLeft, IconIndentRight } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Ident: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/iframe/bubble.tsx b/packages/client/src/tiptap/core/menus/iframe/bubble.tsx
similarity index 93%
rename from packages/client/src/tiptap/editor/menus/iframe/bubble.tsx
rename to packages/client/src/tiptap/core/menus/iframe/bubble.tsx
index 7e4e2ef0..38cb3c7f 100644
--- a/packages/client/src/tiptap/editor/menus/iframe/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/iframe/bubble.tsx
@@ -1,14 +1,14 @@
import { IconCopy, IconDelete, IconEdit, IconExternalOpen, IconLineHeight } from '@douyinfe/semi-icons';
import { Button, Form, Modal, Space, Typography } from '@douyinfe/semi-ui';
import { FormApi } from '@douyinfe/semi-ui/lib/es/form';
+import { Divider } from 'components/divider';
+import { SizeSetter } from 'components/size-setter';
import { Tooltip } from 'components/tooltip';
import { useToggle } from 'hooks/use-toggle';
import { useCallback, useRef } from 'react';
-import { Divider } from 'tiptap/components/divider';
-import { Size } from 'tiptap/components/size';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Iframe } from 'tiptap/core/extensions/iframe';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
const { Text } = Typography;
@@ -110,11 +110,11 @@ export const IframeBubbleMenu = ({ editor }) => {
} onClick={openEditLinkModal} />
-
+
} type="tertiary" theme="borderless" size="small" />
-
+
diff --git a/packages/client/src/tiptap/editor/menus/iframe/index.tsx b/packages/client/src/tiptap/core/menus/iframe/index.tsx
similarity index 84%
rename from packages/client/src/tiptap/editor/menus/iframe/index.tsx
rename to packages/client/src/tiptap/core/menus/iframe/index.tsx
index a1a0c77b..7ef4f61b 100644
--- a/packages/client/src/tiptap/editor/menus/iframe/index.tsx
+++ b/packages/client/src/tiptap/core/menus/iframe/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { IframeBubbleMenu } from './bubble';
diff --git a/packages/client/src/tiptap/editor/menus/image/bubble.tsx b/packages/client/src/tiptap/core/menus/image/bubble.tsx
similarity index 91%
rename from packages/client/src/tiptap/editor/menus/image/bubble.tsx
rename to packages/client/src/tiptap/core/menus/image/bubble.tsx
index ce1ac29b..710670ac 100644
--- a/packages/client/src/tiptap/editor/menus/image/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/image/bubble.tsx
@@ -7,13 +7,13 @@ import {
IconLineHeight,
} from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
+import { SizeSetter } from 'components/size-setter';
import { Tooltip } from 'components/tooltip';
import React, { useCallback, useEffect, useState } from 'react';
-import { Divider } from 'tiptap/components/divider';
-import { Size } from 'tiptap/components/size';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Image } from 'tiptap/core/extensions/image';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
import { copyNode, deleteNode, getEditorContainerDOMSize } from 'tiptap/prose-utils';
export const ImageBubbleMenu = ({ editor }) => {
@@ -107,11 +107,11 @@ export const ImageBubbleMenu = ({ editor }) => {
} type="tertiary" theme="borderless" size="small" />
-
+
} type="tertiary" theme="borderless" size="small" />
-
+
diff --git a/packages/client/src/tiptap/editor/menus/image/index.tsx b/packages/client/src/tiptap/core/menus/image/index.tsx
similarity index 84%
rename from packages/client/src/tiptap/editor/menus/image/index.tsx
rename to packages/client/src/tiptap/core/menus/image/index.tsx
index 7b1c29e3..230d7858 100644
--- a/packages/client/src/tiptap/editor/menus/image/index.tsx
+++ b/packages/client/src/tiptap/core/menus/image/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { ImageBubbleMenu } from './bubble';
diff --git a/packages/client/src/tiptap/editor/menus/insert/index.tsx b/packages/client/src/tiptap/core/menus/insert/index.tsx
similarity index 98%
rename from packages/client/src/tiptap/editor/menus/insert/index.tsx
rename to packages/client/src/tiptap/core/menus/insert/index.tsx
index f3f74f4f..f6f3db55 100644
--- a/packages/client/src/tiptap/editor/menus/insert/index.tsx
+++ b/packages/client/src/tiptap/core/menus/insert/index.tsx
@@ -21,9 +21,9 @@ import { useUser } from 'data/user';
import { createKeysLocalStorageLRUCache } from 'helpers/lru-cache';
import { useToggle } from 'hooks/use-toggle';
import React, { useCallback, useEffect, useMemo, useState } from 'react';
+import { Editor } from 'tiptap/core';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
import { createCountdown } from '../countdown/service';
diff --git a/packages/client/src/tiptap/editor/menus/italic/index.tsx b/packages/client/src/tiptap/core/menus/italic/index.tsx
similarity index 89%
rename from packages/client/src/tiptap/editor/menus/italic/index.tsx
rename to packages/client/src/tiptap/core/menus/italic/index.tsx
index b2eb9809..58ffd491 100644
--- a/packages/client/src/tiptap/editor/menus/italic/index.tsx
+++ b/packages/client/src/tiptap/core/menus/italic/index.tsx
@@ -2,10 +2,10 @@ import { IconItalic } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Italic as ItalicExtension } from 'tiptap/core/extensions/italic';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Italic: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/katex/bubble.tsx b/packages/client/src/tiptap/core/menus/katex/bubble.tsx
similarity index 93%
rename from packages/client/src/tiptap/editor/menus/katex/bubble.tsx
rename to packages/client/src/tiptap/core/menus/katex/bubble.tsx
index 2c4d0b3a..ad2062d7 100644
--- a/packages/client/src/tiptap/editor/menus/katex/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/katex/bubble.tsx
@@ -1,14 +1,14 @@
import { IconCopy, IconDelete, IconEdit, IconHelpCircle } from '@douyinfe/semi-icons';
import { Button, Popover, Space, TextArea, Typography } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import { Tooltip } from 'components/tooltip';
import { useUser } from 'data/user';
import { useToggle } from 'hooks/use-toggle';
import { useCallback, useEffect, useRef } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { Editor } from 'tiptap/core';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Katex } from 'tiptap/core/extensions/katex';
-import { Editor } from 'tiptap/editor';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
const { Text } = Typography;
diff --git a/packages/client/src/tiptap/editor/menus/katex/index.tsx b/packages/client/src/tiptap/core/menus/katex/index.tsx
similarity index 84%
rename from packages/client/src/tiptap/editor/menus/katex/index.tsx
rename to packages/client/src/tiptap/core/menus/katex/index.tsx
index 76a7a700..ee5e9ccc 100644
--- a/packages/client/src/tiptap/editor/menus/katex/index.tsx
+++ b/packages/client/src/tiptap/core/menus/katex/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { KatexBubbleMenu } from './bubble';
diff --git a/packages/client/src/tiptap/editor/menus/link/bubble.tsx b/packages/client/src/tiptap/core/menus/link/bubble.tsx
similarity index 92%
rename from packages/client/src/tiptap/editor/menus/link/bubble.tsx
rename to packages/client/src/tiptap/core/menus/link/bubble.tsx
index 146bf819..a987b6d2 100644
--- a/packages/client/src/tiptap/editor/menus/link/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/link/bubble.tsx
@@ -1,11 +1,11 @@
import { IconEdit, IconExternalOpen, IconUnlink } from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import { Tooltip } from 'components/tooltip';
-import { useCallback, useEffect, useRef, useState } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { useCallback, useEffect, useState } from 'react';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Link } from 'tiptap/core/extensions/link';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
import { findMarkPosition, isMarkActive } from 'tiptap/prose-utils';
import { triggerOpenLinkSettingModal } from '../_event';
diff --git a/packages/client/src/tiptap/editor/menus/link/index.tsx b/packages/client/src/tiptap/core/menus/link/index.tsx
similarity index 91%
rename from packages/client/src/tiptap/editor/menus/link/index.tsx
rename to packages/client/src/tiptap/core/menus/link/index.tsx
index 3cd63a11..b463cb9e 100644
--- a/packages/client/src/tiptap/editor/menus/link/index.tsx
+++ b/packages/client/src/tiptap/core/menus/link/index.tsx
@@ -2,10 +2,10 @@ import { Button } from '@douyinfe/semi-ui';
import { IconLink } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Link as LinkExtension } from 'tiptap/core/extensions/link';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
import { LinkBubbleMenu } from './bubble';
import { LinkSettingModal } from './modal';
diff --git a/packages/client/src/tiptap/editor/menus/link/modal.tsx b/packages/client/src/tiptap/core/menus/link/modal.tsx
similarity index 98%
rename from packages/client/src/tiptap/editor/menus/link/modal.tsx
rename to packages/client/src/tiptap/core/menus/link/modal.tsx
index 39ac53e5..bb4ad78f 100644
--- a/packages/client/src/tiptap/editor/menus/link/modal.tsx
+++ b/packages/client/src/tiptap/core/menus/link/modal.tsx
@@ -2,7 +2,7 @@ import { Form, Modal } from '@douyinfe/semi-ui';
import { FormApi } from '@douyinfe/semi-ui/lib/es/form';
import { useToggle } from 'hooks/use-toggle';
import { useCallback, useEffect, useRef, useState } from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { isValidURL } from 'tiptap/prose-utils';
import { cancelSubject, OPEN_LINK_SETTING_MODAL, subject } from '../_event';
diff --git a/packages/client/src/tiptap/editor/menus/link/service.ts b/packages/client/src/tiptap/core/menus/link/service.ts
similarity index 93%
rename from packages/client/src/tiptap/editor/menus/link/service.ts
rename to packages/client/src/tiptap/core/menus/link/service.ts
index e5cbfee5..42432750 100644
--- a/packages/client/src/tiptap/editor/menus/link/service.ts
+++ b/packages/client/src/tiptap/core/menus/link/service.ts
@@ -1,4 +1,4 @@
-import { Editor } from 'tiptap/editor/react';
+import { Editor } from 'tiptap/core';
import { isMarkActive } from 'tiptap/prose-utils';
import { triggerOpenLinkSettingModal } from '../_event';
diff --git a/packages/client/src/tiptap/editor/menus/mind/bubble.tsx b/packages/client/src/tiptap/core/menus/mind/bubble.tsx
similarity index 88%
rename from packages/client/src/tiptap/editor/menus/mind/bubble.tsx
rename to packages/client/src/tiptap/core/menus/mind/bubble.tsx
index c39d0824..e701cf5f 100644
--- a/packages/client/src/tiptap/editor/menus/mind/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/mind/bubble.tsx
@@ -1,12 +1,12 @@
import { IconCopy, IconDelete, IconEdit, IconLineHeight } from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
+import { SizeSetter } from 'components/size-setter';
import { Tooltip } from 'components/tooltip';
import { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
-import { Size } from 'tiptap/components/size';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Mind } from 'tiptap/core/extensions/mind';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
import { copyNode, deleteNode, getEditorContainerDOMSize } from 'tiptap/prose-utils';
import { triggerOpenMindSettingModal } from '../_event';
@@ -55,11 +55,11 @@ export const MindBubbleMenu = ({ editor }) => {
} onClick={openEditLinkModal} />
-
+
} type="tertiary" theme="borderless" size="small" />
-
+
diff --git a/packages/client/src/tiptap/editor/menus/mind/constant.ts b/packages/client/src/tiptap/core/menus/mind/constant.ts
similarity index 100%
rename from packages/client/src/tiptap/editor/menus/mind/constant.ts
rename to packages/client/src/tiptap/core/menus/mind/constant.ts
diff --git a/packages/client/src/tiptap/editor/menus/mind/index.tsx b/packages/client/src/tiptap/core/menus/mind/index.tsx
similarity index 88%
rename from packages/client/src/tiptap/editor/menus/mind/index.tsx
rename to packages/client/src/tiptap/core/menus/mind/index.tsx
index 8a9bbcf0..2e71dedf 100644
--- a/packages/client/src/tiptap/editor/menus/mind/index.tsx
+++ b/packages/client/src/tiptap/core/menus/mind/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { MindBubbleMenu } from './bubble';
import { MindSettingModal } from './modal';
diff --git a/packages/client/src/tiptap/editor/menus/mind/modal.tsx b/packages/client/src/tiptap/core/menus/mind/modal.tsx
similarity index 98%
rename from packages/client/src/tiptap/editor/menus/mind/modal.tsx
rename to packages/client/src/tiptap/core/menus/mind/modal.tsx
index fd85887b..d8ecf19e 100644
--- a/packages/client/src/tiptap/editor/menus/mind/modal.tsx
+++ b/packages/client/src/tiptap/core/menus/mind/modal.tsx
@@ -2,7 +2,7 @@ import { Modal, Spin, Typography } from '@douyinfe/semi-ui';
import { useToggle } from 'hooks/use-toggle';
import { useCallback, useEffect, useState } from 'react';
import { load, renderMind } from 'thirtypart/kityminder';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { cancelSubject, OPEN_MIND_SETTING_MODAL, subject } from '../_event';
import styles from './style.module.scss';
diff --git a/packages/client/src/tiptap/editor/menus/mind/style.module.scss b/packages/client/src/tiptap/core/menus/mind/style.module.scss
similarity index 100%
rename from packages/client/src/tiptap/editor/menus/mind/style.module.scss
rename to packages/client/src/tiptap/core/menus/mind/style.module.scss
diff --git a/packages/client/src/tiptap/editor/menus/mind/toolbar/image.tsx b/packages/client/src/tiptap/core/menus/mind/toolbar/image.tsx
similarity index 100%
rename from packages/client/src/tiptap/editor/menus/mind/toolbar/image.tsx
rename to packages/client/src/tiptap/core/menus/mind/toolbar/image.tsx
diff --git a/packages/client/src/tiptap/editor/menus/mind/toolbar/index.module.scss b/packages/client/src/tiptap/core/menus/mind/toolbar/index.module.scss
similarity index 100%
rename from packages/client/src/tiptap/editor/menus/mind/toolbar/index.module.scss
rename to packages/client/src/tiptap/core/menus/mind/toolbar/index.module.scss
diff --git a/packages/client/src/tiptap/editor/menus/mind/toolbar/index.tsx b/packages/client/src/tiptap/core/menus/mind/toolbar/index.tsx
similarity index 99%
rename from packages/client/src/tiptap/editor/menus/mind/toolbar/index.tsx
rename to packages/client/src/tiptap/core/menus/mind/toolbar/index.tsx
index 7b43a099..c73fece5 100644
--- a/packages/client/src/tiptap/editor/menus/mind/toolbar/index.tsx
+++ b/packages/client/src/tiptap/core/menus/mind/toolbar/index.tsx
@@ -1,11 +1,11 @@
import { IconBold, IconFont, IconHelpCircle, IconMark } from '@douyinfe/semi-icons';
import { Button, Descriptions, Popover, Space, Tooltip, Typography } from '@douyinfe/semi-ui';
import cls from 'classnames';
+import { ColorPicker } from 'components/color-picker';
import { IconDrawBoard, IconMindCenter, IconStructure } from 'components/icons';
import { IconZoomIn, IconZoomOut } from 'components/icons';
import { useToggle } from 'hooks/use-toggle';
import { useCallback, useEffect, useState } from 'react';
-import { ColorPicker } from 'tiptap/components/color-picker';
import { clamp } from 'tiptap/prose-utils';
import { MAX_ZOOM, MIN_ZOOM, TEMPLATES, THEMES, ZOOM_STEP } from '../constant';
diff --git a/packages/client/src/tiptap/editor/menus/mind/toolbar/link.tsx b/packages/client/src/tiptap/core/menus/mind/toolbar/link.tsx
similarity index 100%
rename from packages/client/src/tiptap/editor/menus/mind/toolbar/link.tsx
rename to packages/client/src/tiptap/core/menus/mind/toolbar/link.tsx
diff --git a/packages/client/src/tiptap/editor/menus/ordered-list/index.tsx b/packages/client/src/tiptap/core/menus/ordered-list/index.tsx
similarity index 90%
rename from packages/client/src/tiptap/editor/menus/ordered-list/index.tsx
rename to packages/client/src/tiptap/core/menus/ordered-list/index.tsx
index 6371034e..b8b7ae41 100644
--- a/packages/client/src/tiptap/editor/menus/ordered-list/index.tsx
+++ b/packages/client/src/tiptap/core/menus/ordered-list/index.tsx
@@ -2,10 +2,10 @@ import { Button } from '@douyinfe/semi-ui';
import { IconOrderedList } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { OrderedList as OrderedListExtension } from 'tiptap/core/extensions/ordered-list';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const OrderedList: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/quick-insert.tsx b/packages/client/src/tiptap/core/menus/quick-insert.tsx
similarity index 99%
rename from packages/client/src/tiptap/editor/menus/quick-insert.tsx
rename to packages/client/src/tiptap/core/menus/quick-insert.tsx
index 3d7d71f3..241887b5 100644
--- a/packages/client/src/tiptap/editor/menus/quick-insert.tsx
+++ b/packages/client/src/tiptap/core/menus/quick-insert.tsx
@@ -21,7 +21,7 @@ import {
IconTableOfContents,
IconTask,
} from 'components/icons';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { createCountdown } from './countdown/service';
import { createOrToggleLink } from './link/service';
diff --git a/packages/client/src/tiptap/editor/menus/redo/index.tsx b/packages/client/src/tiptap/core/menus/redo/index.tsx
similarity index 92%
rename from packages/client/src/tiptap/editor/menus/redo/index.tsx
rename to packages/client/src/tiptap/core/menus/redo/index.tsx
index 31b9578c..f69f432a 100644
--- a/packages/client/src/tiptap/editor/menus/redo/index.tsx
+++ b/packages/client/src/tiptap/core/menus/redo/index.tsx
@@ -2,7 +2,7 @@ import { IconRedo } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
export const Redo: React.FC<{ editor: Editor }> = ({ editor }) => {
const redo = useCallback(() => editor.chain().focus().redo().run(), [editor]);
diff --git a/packages/client/src/tiptap/editor/menus/search/index.tsx b/packages/client/src/tiptap/core/menus/search/index.tsx
similarity index 99%
rename from packages/client/src/tiptap/editor/menus/search/index.tsx
rename to packages/client/src/tiptap/core/menus/search/index.tsx
index b4516475..8ec1edaa 100644
--- a/packages/client/src/tiptap/editor/menus/search/index.tsx
+++ b/packages/client/src/tiptap/core/menus/search/index.tsx
@@ -4,8 +4,8 @@ import { Tooltip } from 'components/tooltip';
import { IsOnMobile } from 'hooks/use-on-mobile';
import { useToggle } from 'hooks/use-toggle';
import React, { useCallback, useEffect, useState } from 'react';
+import { Editor } from 'tiptap/core';
import { SearchNReplace } from 'tiptap/core/extensions/search';
-import { Editor } from 'tiptap/editor';
const { Text } = Typography;
diff --git a/packages/client/src/tiptap/editor/menus/strike/index.tsx b/packages/client/src/tiptap/core/menus/strike/index.tsx
similarity index 89%
rename from packages/client/src/tiptap/editor/menus/strike/index.tsx
rename to packages/client/src/tiptap/core/menus/strike/index.tsx
index 01ed7ce4..989d2958 100644
--- a/packages/client/src/tiptap/editor/menus/strike/index.tsx
+++ b/packages/client/src/tiptap/core/menus/strike/index.tsx
@@ -2,10 +2,10 @@ import { IconStrikeThrough } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Strike as StrikeExtension } from 'tiptap/core/extensions/strike';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Strike: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/subscript/index.tsx b/packages/client/src/tiptap/core/menus/subscript/index.tsx
similarity index 93%
rename from packages/client/src/tiptap/editor/menus/subscript/index.tsx
rename to packages/client/src/tiptap/core/menus/subscript/index.tsx
index d8c975eb..ae67da25 100644
--- a/packages/client/src/tiptap/editor/menus/subscript/index.tsx
+++ b/packages/client/src/tiptap/core/menus/subscript/index.tsx
@@ -4,7 +4,7 @@ import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
import { Subscript as SubscriptExtension } from 'tiptap/core/extensions/subscript';
import { Title } from 'tiptap/core/extensions/title';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Subscript: React.FC<{ editor: any }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/superscript/index.tsx b/packages/client/src/tiptap/core/menus/superscript/index.tsx
similarity index 93%
rename from packages/client/src/tiptap/editor/menus/superscript/index.tsx
rename to packages/client/src/tiptap/core/menus/superscript/index.tsx
index 35aa048d..50ea09ac 100644
--- a/packages/client/src/tiptap/editor/menus/superscript/index.tsx
+++ b/packages/client/src/tiptap/core/menus/superscript/index.tsx
@@ -4,7 +4,7 @@ import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
import { Superscript as SuperscriptExtension } from 'tiptap/core/extensions/superscript';
import { Title } from 'tiptap/core/extensions/title';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Superscript: React.FC<{ editor: any }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/table/bubble.tsx b/packages/client/src/tiptap/core/menus/table/bubble.tsx
similarity index 97%
rename from packages/client/src/tiptap/editor/menus/table/bubble.tsx
rename to packages/client/src/tiptap/core/menus/table/bubble.tsx
index d1cdcdd6..d0aa7c0e 100644
--- a/packages/client/src/tiptap/editor/menus/table/bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/table/bubble.tsx
@@ -1,5 +1,6 @@
import { IconCopy } from '@douyinfe/semi-icons';
import { Button, Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import {
IconAddColumnAfter,
IconAddColumnBefore,
@@ -16,9 +17,8 @@ import {
} from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { Divider } from 'tiptap/components/divider';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Table } from 'tiptap/core/extensions/table';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { copyNode, deleteNode } from 'tiptap/prose-utils';
export const TableBubbleMenu = ({ editor }) => {
diff --git a/packages/client/src/tiptap/editor/menus/table/col-bubble.tsx b/packages/client/src/tiptap/core/menus/table/col-bubble.tsx
similarity index 97%
rename from packages/client/src/tiptap/editor/menus/table/col-bubble.tsx
rename to packages/client/src/tiptap/core/menus/table/col-bubble.tsx
index fafcbfa2..6599bd0c 100644
--- a/packages/client/src/tiptap/editor/menus/table/col-bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/table/col-bubble.tsx
@@ -2,8 +2,8 @@ import { Button, Space } from '@douyinfe/semi-ui';
import { IconAddColumnAfter, IconAddColumnBefore, IconDeleteColumn } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Table } from 'tiptap/core/extensions/table';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { isTableSelected } from 'tiptap/prose-utils';
export const TableColBubbleMenu = ({ editor }) => {
diff --git a/packages/client/src/tiptap/editor/menus/table/index.tsx b/packages/client/src/tiptap/core/menus/table/index.tsx
similarity index 91%
rename from packages/client/src/tiptap/editor/menus/table/index.tsx
rename to packages/client/src/tiptap/core/menus/table/index.tsx
index 4905e041..14cc501a 100644
--- a/packages/client/src/tiptap/editor/menus/table/index.tsx
+++ b/packages/client/src/tiptap/core/menus/table/index.tsx
@@ -1,5 +1,5 @@
import React from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
import { TableBubbleMenu } from './bubble';
import { TableColBubbleMenu } from './col-bubble';
diff --git a/packages/client/src/tiptap/editor/menus/table/row-bubble.tsx b/packages/client/src/tiptap/core/menus/table/row-bubble.tsx
similarity index 97%
rename from packages/client/src/tiptap/editor/menus/table/row-bubble.tsx
rename to packages/client/src/tiptap/core/menus/table/row-bubble.tsx
index f600268c..ba2de110 100644
--- a/packages/client/src/tiptap/editor/menus/table/row-bubble.tsx
+++ b/packages/client/src/tiptap/core/menus/table/row-bubble.tsx
@@ -2,8 +2,8 @@ import { Button, Space } from '@douyinfe/semi-ui';
import { IconAddRowAfter, IconAddRowBefore, IconDeleteRow } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Table } from 'tiptap/core/extensions/table';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { isTableSelected } from 'tiptap/prose-utils';
export const TableRowBubbleMenu = ({ editor }) => {
diff --git a/packages/client/src/tiptap/editor/menus/task-list/index.tsx b/packages/client/src/tiptap/core/menus/task-list/index.tsx
similarity index 89%
rename from packages/client/src/tiptap/editor/menus/task-list/index.tsx
rename to packages/client/src/tiptap/core/menus/task-list/index.tsx
index 207af62c..5b72ccab 100644
--- a/packages/client/src/tiptap/editor/menus/task-list/index.tsx
+++ b/packages/client/src/tiptap/core/menus/task-list/index.tsx
@@ -2,10 +2,10 @@ import { Button } from '@douyinfe/semi-ui';
import { IconTask } from 'components/icons';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { TaskList as TaskListExtension } from 'tiptap/core/extensions/task-list';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const TaskList: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/text-color/index.tsx b/packages/client/src/tiptap/core/menus/text-color/index.tsx
similarity index 87%
rename from packages/client/src/tiptap/editor/menus/text-color/index.tsx
rename to packages/client/src/tiptap/core/menus/text-color/index.tsx
index 72161e16..e9b33620 100644
--- a/packages/client/src/tiptap/editor/menus/text-color/index.tsx
+++ b/packages/client/src/tiptap/core/menus/text-color/index.tsx
@@ -1,13 +1,13 @@
import { IconFont } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
+import { ColorPicker } from 'components/color-picker';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { ColorPicker } from 'tiptap/components/color-picker';
+import { Editor } from 'tiptap/core';
import { TextStyle } from 'tiptap/core/extensions/text-style';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
-import { useAttributes } from 'tiptap/editor/hooks/use-attributes';
+import { useActive } from 'tiptap/core/hooks/use-active';
+import { useAttributes } from 'tiptap/core/hooks/use-attributes';
type Color = { color: string };
diff --git a/packages/client/src/tiptap/editor/menus/text/index.tsx b/packages/client/src/tiptap/core/menus/text/index.tsx
similarity index 97%
rename from packages/client/src/tiptap/editor/menus/text/index.tsx
rename to packages/client/src/tiptap/core/menus/text/index.tsx
index 14e0aa40..62e4e63f 100644
--- a/packages/client/src/tiptap/editor/menus/text/index.tsx
+++ b/packages/client/src/tiptap/core/menus/text/index.tsx
@@ -1,5 +1,6 @@
import { Space } from '@douyinfe/semi-ui';
import React, { useCallback } from 'react';
+import { BubbleMenu } from 'tiptap/core/bubble-menu';
import { Attachment } from 'tiptap/core/extensions/attachment';
import { Callout } from 'tiptap/core/extensions/callout';
import { CodeBlock } from 'tiptap/core/extensions/code-block';
@@ -16,7 +17,6 @@ import { Mind } from 'tiptap/core/extensions/mind';
import { Table } from 'tiptap/core/extensions/table';
import { TableOfContents } from 'tiptap/core/extensions/table-of-contents';
import { Title } from 'tiptap/core/extensions/title';
-import { BubbleMenu } from 'tiptap/editor/views/bubble-menu';
import { BackgroundColor } from '../background-color';
import { Bold } from '../bold';
diff --git a/packages/client/src/tiptap/editor/menus/underline/index.tsx b/packages/client/src/tiptap/core/menus/underline/index.tsx
similarity index 88%
rename from packages/client/src/tiptap/editor/menus/underline/index.tsx
rename to packages/client/src/tiptap/core/menus/underline/index.tsx
index e5b760d0..58c1aebb 100644
--- a/packages/client/src/tiptap/editor/menus/underline/index.tsx
+++ b/packages/client/src/tiptap/core/menus/underline/index.tsx
@@ -2,9 +2,9 @@ import { IconUnderline } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
+import { Editor } from 'tiptap/core';
import { Title } from 'tiptap/core/extensions/title';
-import { Editor } from 'tiptap/editor';
-import { useActive } from 'tiptap/editor/hooks/use-active';
+import { useActive } from 'tiptap/core/hooks/use-active';
export const Underline: React.FC<{ editor: Editor }> = ({ editor }) => {
const isTitleActive = useActive(editor, Title.name);
diff --git a/packages/client/src/tiptap/editor/menus/undo/index.tsx b/packages/client/src/tiptap/core/menus/undo/index.tsx
similarity index 92%
rename from packages/client/src/tiptap/editor/menus/undo/index.tsx
rename to packages/client/src/tiptap/core/menus/undo/index.tsx
index 1dd39139..b6e8fe7f 100644
--- a/packages/client/src/tiptap/editor/menus/undo/index.tsx
+++ b/packages/client/src/tiptap/core/menus/undo/index.tsx
@@ -2,7 +2,7 @@ import { IconUndo } from '@douyinfe/semi-icons';
import { Button } from '@douyinfe/semi-ui';
import { Tooltip } from 'components/tooltip';
import React, { useCallback } from 'react';
-import { Editor } from 'tiptap/editor';
+import { Editor } from 'tiptap/core';
export const Undo: React.FC<{ editor: Editor }> = ({ editor }) => {
const undo = useCallback(() => editor.chain().focus().undo().run(), [editor]);
diff --git a/packages/client/src/tiptap/editor/react/index.tsx b/packages/client/src/tiptap/core/thritypart/react/index.tsx
similarity index 100%
rename from packages/client/src/tiptap/editor/react/index.tsx
rename to packages/client/src/tiptap/core/thritypart/react/index.tsx
diff --git a/packages/client/src/tiptap/editor/react/useEditor.tsx b/packages/client/src/tiptap/core/thritypart/react/useEditor.tsx
similarity index 100%
rename from packages/client/src/tiptap/editor/react/useEditor.tsx
rename to packages/client/src/tiptap/core/thritypart/react/useEditor.tsx
diff --git a/packages/client/src/tiptap/core/y-indexeddb.js b/packages/client/src/tiptap/core/thritypart/y-indexeddb.js
similarity index 100%
rename from packages/client/src/tiptap/core/y-indexeddb.js
rename to packages/client/src/tiptap/core/thritypart/y-indexeddb.js
diff --git a/packages/client/src/tiptap/core/y-prosemirror/lib.js b/packages/client/src/tiptap/core/thritypart/y-prosemirror/lib.js
similarity index 100%
rename from packages/client/src/tiptap/core/y-prosemirror/lib.js
rename to packages/client/src/tiptap/core/thritypart/y-prosemirror/lib.js
diff --git a/packages/client/src/tiptap/core/y-prosemirror/plugins/awareness.js b/packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/awareness.js
similarity index 100%
rename from packages/client/src/tiptap/core/y-prosemirror/plugins/awareness.js
rename to packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/awareness.js
diff --git a/packages/client/src/tiptap/core/y-prosemirror/plugins/cursor-plugin.js b/packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/cursor-plugin.js
similarity index 100%
rename from packages/client/src/tiptap/core/y-prosemirror/plugins/cursor-plugin.js
rename to packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/cursor-plugin.js
diff --git a/packages/client/src/tiptap/core/y-prosemirror/plugins/keys.js b/packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/keys.js
similarity index 100%
rename from packages/client/src/tiptap/core/y-prosemirror/plugins/keys.js
rename to packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/keys.js
diff --git a/packages/client/src/tiptap/core/y-prosemirror/plugins/sync-plugin.js b/packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/sync-plugin.js
similarity index 100%
rename from packages/client/src/tiptap/core/y-prosemirror/plugins/sync-plugin.js
rename to packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/sync-plugin.js
diff --git a/packages/client/src/tiptap/core/y-prosemirror/plugins/undo-plugin.js b/packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/undo-plugin.js
similarity index 100%
rename from packages/client/src/tiptap/core/y-prosemirror/plugins/undo-plugin.js
rename to packages/client/src/tiptap/core/thritypart/y-prosemirror/plugins/undo-plugin.js
diff --git a/packages/client/src/tiptap/core/y-prosemirror/y-prosemirror.js b/packages/client/src/tiptap/core/thritypart/y-prosemirror/y-prosemirror.js
similarity index 100%
rename from packages/client/src/tiptap/core/y-prosemirror/y-prosemirror.js
rename to packages/client/src/tiptap/core/thritypart/y-prosemirror/y-prosemirror.js
diff --git a/packages/client/src/tiptap/core/wrappers/mind/index.tsx b/packages/client/src/tiptap/core/wrappers/mind/index.tsx
index 3cb9661e..0411b5a2 100644
--- a/packages/client/src/tiptap/core/wrappers/mind/index.tsx
+++ b/packages/client/src/tiptap/core/wrappers/mind/index.tsx
@@ -9,7 +9,7 @@ import { useToggle } from 'hooks/use-toggle';
import { useCallback, useEffect, useRef, useState } from 'react';
import { load, renderMind } from 'thirtypart/kityminder';
import { Mind } from 'tiptap/core/extensions/mind';
-import { MAX_ZOOM, MIN_ZOOM, ZOOM_STEP } from 'tiptap/editor/menus/mind/constant';
+import { MAX_ZOOM, MIN_ZOOM, ZOOM_STEP } from 'tiptap/core/menus/mind/constant';
import { clamp, getEditorContainerDOMSize } from 'tiptap/prose-utils';
import styles from './index.module.scss';
diff --git a/packages/client/src/tiptap/editor/collaboration/collaboration/editor.tsx b/packages/client/src/tiptap/editor/collaboration/collaboration/editor.tsx
index de8279e6..f7217dee 100644
--- a/packages/client/src/tiptap/editor/collaboration/collaboration/editor.tsx
+++ b/packages/client/src/tiptap/editor/collaboration/collaboration/editor.tsx
@@ -12,11 +12,11 @@ import { useNetwork } from 'hooks/use-network';
import { IsOnMobile } from 'hooks/use-on-mobile';
import { useToggle } from 'hooks/use-toggle';
import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
+import { EditorContent, useEditor } from 'tiptap/core';
import { Collaboration } from 'tiptap/core/extensions/collaboration';
import { CollaborationCursor } from 'tiptap/core/extensions/collaboration-cursor';
import { Tocs } from 'tiptap/editor/tocs';
-import { EditorContent, useEditor } from '../../react';
import { CollaborationKit } from '../kit';
import styles from './index.module.scss';
import { MenuBar } from './menubar';
diff --git a/packages/client/src/tiptap/editor/collaboration/collaboration/index.tsx b/packages/client/src/tiptap/editor/collaboration/collaboration/index.tsx
index 4140a1ba..5f6ce80d 100644
--- a/packages/client/src/tiptap/editor/collaboration/collaboration/index.tsx
+++ b/packages/client/src/tiptap/editor/collaboration/collaboration/index.tsx
@@ -5,9 +5,9 @@ import { throttle } from 'helpers/throttle';
import { useToggle } from 'hooks/use-toggle';
import { SecureDocumentIllustration } from 'illustrations/secure-document';
import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from 'react';
-import { IndexeddbPersistence } from 'tiptap/core/y-indexeddb';
+import { Editor } from 'tiptap/core';
+import { IndexeddbPersistence } from 'tiptap/core/thritypart/y-indexeddb';
-import { Editor } from '../../react';
import { EditorInstance } from './editor';
import styles from './index.module.scss';
import { ICollaborationEditorProps, ProviderStatus } from './type';
diff --git a/packages/client/src/tiptap/editor/collaboration/collaboration/menubar.tsx b/packages/client/src/tiptap/editor/collaboration/collaboration/menubar.tsx
index 3a318780..fdcc9e88 100644
--- a/packages/client/src/tiptap/editor/collaboration/collaboration/menubar.tsx
+++ b/packages/client/src/tiptap/editor/collaboration/collaboration/menubar.tsx
@@ -1,44 +1,44 @@
import { Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import React, { useMemo } from 'react';
-import { Divider } from 'tiptap/components/divider';
-import { Editor } from 'tiptap/editor';
-import { Align } from 'tiptap/editor/menus/align';
-import { Attachment } from 'tiptap/editor/menus/attachment';
-import { BackgroundColor } from 'tiptap/editor/menus/background-color';
-import { Blockquote } from 'tiptap/editor/menus/blockquote';
-import { Bold } from 'tiptap/editor/menus/bold';
-import { BulletList } from 'tiptap/editor/menus/bullet-list';
-import { Callout } from 'tiptap/editor/menus/callout';
-import { CleadrNodeAndMarks } from 'tiptap/editor/menus/clear-node-and-marks';
-import { Code } from 'tiptap/editor/menus/code';
-import { CodeBlock } from 'tiptap/editor/menus/code-block';
-import { Countdonw } from 'tiptap/editor/menus/countdown';
-import { DocumentChildren } from 'tiptap/editor/menus/document-children';
-import { DocumentReference } from 'tiptap/editor/menus/document-reference';
-import { Emoji } from 'tiptap/editor/menus/emoji';
-import { Flow } from 'tiptap/editor/menus/flow';
-import { FontSize } from 'tiptap/editor/menus/fontsize';
-import { Heading } from 'tiptap/editor/menus/heading';
-import { HorizontalRule } from 'tiptap/editor/menus/horizontal-rule';
-import { Ident } from 'tiptap/editor/menus/ident';
-import { Iframe } from 'tiptap/editor/menus/iframe';
-import { Image } from 'tiptap/editor/menus/image';
-import { Insert } from 'tiptap/editor/menus/insert';
-import { Italic } from 'tiptap/editor/menus/italic';
-import { Katex } from 'tiptap/editor/menus/katex';
-import { Link } from 'tiptap/editor/menus/link';
-import { Mind } from 'tiptap/editor/menus/mind';
-import { OrderedList } from 'tiptap/editor/menus/ordered-list';
-import { Redo } from 'tiptap/editor/menus/redo';
-import { Search } from 'tiptap/editor/menus/search';
-import { Strike } from 'tiptap/editor/menus/strike';
-import { Subscript } from 'tiptap/editor/menus/subscript';
-import { Superscript } from 'tiptap/editor/menus/superscript';
-import { Table } from 'tiptap/editor/menus/table';
-import { TaskList } from 'tiptap/editor/menus/task-list';
-import { TextColor } from 'tiptap/editor/menus/text-color';
-import { Underline } from 'tiptap/editor/menus/underline';
-import { Undo } from 'tiptap/editor/menus/undo';
+import { Editor } from 'tiptap/core';
+import { Align } from 'tiptap/core/menus/align';
+import { Attachment } from 'tiptap/core/menus/attachment';
+import { BackgroundColor } from 'tiptap/core/menus/background-color';
+import { Blockquote } from 'tiptap/core/menus/blockquote';
+import { Bold } from 'tiptap/core/menus/bold';
+import { BulletList } from 'tiptap/core/menus/bullet-list';
+import { Callout } from 'tiptap/core/menus/callout';
+import { CleadrNodeAndMarks } from 'tiptap/core/menus/clear-node-and-marks';
+import { Code } from 'tiptap/core/menus/code';
+import { CodeBlock } from 'tiptap/core/menus/code-block';
+import { Countdonw } from 'tiptap/core/menus/countdown';
+import { DocumentChildren } from 'tiptap/core/menus/document-children';
+import { DocumentReference } from 'tiptap/core/menus/document-reference';
+import { Emoji } from 'tiptap/core/menus/emoji';
+import { Flow } from 'tiptap/core/menus/flow';
+import { FontSize } from 'tiptap/core/menus/fontsize';
+import { Heading } from 'tiptap/core/menus/heading';
+import { HorizontalRule } from 'tiptap/core/menus/horizontal-rule';
+import { Ident } from 'tiptap/core/menus/ident';
+import { Iframe } from 'tiptap/core/menus/iframe';
+import { Image } from 'tiptap/core/menus/image';
+import { Insert } from 'tiptap/core/menus/insert';
+import { Italic } from 'tiptap/core/menus/italic';
+import { Katex } from 'tiptap/core/menus/katex';
+import { Link } from 'tiptap/core/menus/link';
+import { Mind } from 'tiptap/core/menus/mind';
+import { OrderedList } from 'tiptap/core/menus/ordered-list';
+import { Redo } from 'tiptap/core/menus/redo';
+import { Search } from 'tiptap/core/menus/search';
+import { Strike } from 'tiptap/core/menus/strike';
+import { Subscript } from 'tiptap/core/menus/subscript';
+import { Superscript } from 'tiptap/core/menus/superscript';
+import { Table } from 'tiptap/core/menus/table';
+import { TaskList } from 'tiptap/core/menus/task-list';
+import { TextColor } from 'tiptap/core/menus/text-color';
+import { Underline } from 'tiptap/core/menus/underline';
+import { Undo } from 'tiptap/core/menus/undo';
const _MenuBar: React.FC<{ editor: Editor }> = ({ editor }) => {
const isEditable = useMemo(() => editor && editor.isEditable, [editor]);
diff --git a/packages/client/src/tiptap/editor/collaboration/index.tsx b/packages/client/src/tiptap/editor/collaboration/index.tsx
index bd000c9b..5a4a1aff 100644
--- a/packages/client/src/tiptap/editor/collaboration/index.tsx
+++ b/packages/client/src/tiptap/editor/collaboration/index.tsx
@@ -1,4 +1,3 @@
export * from './collaboration';
export * from './collaboration/type';
export * from './kit';
-export * from './reader';
diff --git a/packages/client/src/tiptap/editor/comment/menubar.tsx b/packages/client/src/tiptap/editor/comment/menubar.tsx
index 83843c9b..ff4e0ca2 100644
--- a/packages/client/src/tiptap/editor/comment/menubar.tsx
+++ b/packages/client/src/tiptap/editor/comment/menubar.tsx
@@ -1,20 +1,20 @@
import { Space } from '@douyinfe/semi-ui';
+import { Divider } from 'components/divider';
import React from 'react';
-import { Divider } from 'tiptap/components/divider';
-import { Editor } from 'tiptap/editor';
-import { BackgroundColor } from 'tiptap/editor/menus/background-color';
-import { Bold } from 'tiptap/editor/menus/bold';
-import { CleadrNodeAndMarks } from 'tiptap/editor/menus/clear-node-and-marks';
-import { Code } from 'tiptap/editor/menus/code';
-import { Heading } from 'tiptap/editor/menus/heading';
-import { Italic } from 'tiptap/editor/menus/italic';
-import { Redo } from 'tiptap/editor/menus/redo';
-import { Strike } from 'tiptap/editor/menus/strike';
-import { Subscript } from 'tiptap/editor/menus/subscript';
-import { Superscript } from 'tiptap/editor/menus/superscript';
-import { TextColor } from 'tiptap/editor/menus/text-color';
-import { Underline } from 'tiptap/editor/menus/underline';
-import { Undo } from 'tiptap/editor/menus/undo';
+import { Editor } from 'tiptap/core';
+import { BackgroundColor } from 'tiptap/core/menus/background-color';
+import { Bold } from 'tiptap/core/menus/bold';
+import { CleadrNodeAndMarks } from 'tiptap/core/menus/clear-node-and-marks';
+import { Code } from 'tiptap/core/menus/code';
+import { Heading } from 'tiptap/core/menus/heading';
+import { Italic } from 'tiptap/core/menus/italic';
+import { Redo } from 'tiptap/core/menus/redo';
+import { Strike } from 'tiptap/core/menus/strike';
+import { Subscript } from 'tiptap/core/menus/subscript';
+import { Superscript } from 'tiptap/core/menus/superscript';
+import { TextColor } from 'tiptap/core/menus/text-color';
+import { Underline } from 'tiptap/core/menus/underline';
+import { Undo } from 'tiptap/core/menus/undo';
const _CommentMenuBar: React.FC<{ editor: Editor }> = ({ editor }) => {
return (
diff --git a/packages/client/src/tiptap/editor/index.tsx b/packages/client/src/tiptap/editor/index.tsx
index 6082bef4..b2c13ac0 100644
--- a/packages/client/src/tiptap/editor/index.tsx
+++ b/packages/client/src/tiptap/editor/index.tsx
@@ -1,3 +1,3 @@
export * from './collaboration';
export * from './comment';
-export * from './react';
+export * from './reader';
diff --git a/packages/client/src/tiptap/editor/collaboration/reader.module.scss b/packages/client/src/tiptap/editor/reader/index.module.scss
similarity index 100%
rename from packages/client/src/tiptap/editor/collaboration/reader.module.scss
rename to packages/client/src/tiptap/editor/reader/index.module.scss
diff --git a/packages/client/src/tiptap/editor/collaboration/reader.tsx b/packages/client/src/tiptap/editor/reader/index.tsx
similarity index 89%
rename from packages/client/src/tiptap/editor/collaboration/reader.tsx
rename to packages/client/src/tiptap/editor/reader/index.tsx
index af9ad8a4..33a9f60c 100644
--- a/packages/client/src/tiptap/editor/collaboration/reader.tsx
+++ b/packages/client/src/tiptap/editor/reader/index.tsx
@@ -3,11 +3,11 @@ import { ImageViewer } from 'components/image-viewer';
import { isMobile } from 'helpers/env';
import { safeJSONParse } from 'helpers/json';
import React, { useCallback, useMemo, useRef } from 'react';
+import { EditorContent, useEditor } from 'tiptap/core';
-import { EditorContent, useEditor } from '../react';
+import { CollaborationKit } from '../collaboration/kit';
import { Tocs } from '../tocs';
-import { CollaborationKit } from './kit';
-import styles from './reader.module.scss';
+import styles from './index.module.scss';
interface IProps {
content: string;
diff --git a/packages/client/src/tiptap/markdown/markdown-to-prosemirror/html-to-prosemirror/utils.ts b/packages/client/src/tiptap/markdown/markdown-to-prosemirror/html-to-prosemirror/utils.ts
index a02427e4..e5875513 100644
--- a/packages/client/src/tiptap/markdown/markdown-to-prosemirror/html-to-prosemirror/utils.ts
+++ b/packages/client/src/tiptap/markdown/markdown-to-prosemirror/html-to-prosemirror/utils.ts
@@ -1,4 +1,4 @@
-import { AllExtensions } from './all-kit';
+import { AllExtensions } from 'tiptap/core/all-kit';
/**
* 通过 tiptap extension 的配置从 DOM 节点上获取属性值