reactjs-tiptap-editor
Version:
A modern WYSIWYG rich text editor based on tiptap and shadcn ui for React
845 lines (844 loc) • 23.6 kB
JSON
{
"name": "reactjs-tiptap-editor",
"type": "module",
"version": "1.0.17",
"packageManager": "pnpm@8.15.9",
"description": "A modern WYSIWYG rich text editor based on tiptap and shadcn ui for React",
"license": "MIT",
"homepage": "https://reactjs-tiptap-editor.vercel.app/",
"repository": {
"type": "git",
"url": "git+https://github.com/hunghg255/reactjs-tiptap-editor.git"
},
"bugs": "https://github.com/hunghg255/reactjs-tiptap-editor/issues",
"keywords": [
"react",
"tiptap",
"editor",
"wysiwyg",
"rich-text",
"reactjs-tiptap-editor",
"tiptap-editor",
"tiptap-react",
"tiptap-react-editor",
"tiptap-react-wysiwyg",
"tiptap-react-rich-text",
"tiptap-react-rc-editor",
"tiptap-react-rc-wysiwyg",
"tiptap-react-rc-rich-text"
],
"sideEffects": false,
"main": "./lib/index.cjs",
"module": "./lib/index.js",
"types": "./lib/index.d.ts",
"pnpm": {
"overrides": {
"@excalidraw/excalidraw>nanoid": "3.3.11",
"@excalidraw/mermaid-to-excalidraw": "2.0.0",
"@excalidraw/mermaid-to-excalidraw>nanoid": "5.1.6",
"esbuild": "0.25.12",
"prosemirror-view": "1.41.1"
}
},
"exports": {
".": {
"require": {
"types": "./lib/index.d.cts",
"default": "./lib/index.cjs"
},
"import": {
"types": "./lib/index.d.ts",
"default": "./lib/index.js"
}
},
"./locale-bundle": {
"require": {
"types": "./lib/locale-bundle.d.cts",
"default": "./lib/locale-bundle.cjs"
},
"import": {
"types": "./lib/locale-bundle.d.ts",
"default": "./lib/locale-bundle.js"
}
},
"./bubble": {
"require": {
"types": "./lib/bubble.d.cts",
"default": "./lib/bubble.cjs"
},
"import": {
"types": "./lib/bubble.d.ts",
"default": "./lib/bubble.js"
}
},
"./theme": {
"require": {
"types": "./lib/theme/theme.d.cts",
"default": "./lib/theme.cjs"
},
"import": {
"types": "./lib/theme/theme.d.ts",
"default": "./lib/theme.js"
}
},
"./style.css": {
"require": "./lib/style.css",
"import": "./lib/style.css"
},
"./lib/*": "./lib/*",
"./package.json": "./package.json",
"./*": "./lib/*",
"./attachment": {
"require": {
"types": "./lib/extensions/Attachment/index.d.ts",
"default": "./lib/Attachment.cjs"
},
"import": {
"types": "./lib/extensions/Attachment/index.d.ts",
"default": "./lib/Attachment.js"
}
},
"./blockquote": {
"require": {
"types": "./lib/extensions/Blockquote/index.d.ts",
"default": "./lib/Blockquote.cjs"
},
"import": {
"types": "./lib/extensions/Blockquote/index.d.ts",
"default": "./lib/Blockquote.js"
}
},
"./bold": {
"require": {
"types": "./lib/extensions/Bold/index.d.ts",
"default": "./lib/Bold.cjs"
},
"import": {
"types": "./lib/extensions/Bold/index.d.ts",
"default": "./lib/Bold.js"
}
},
"./bulletlist": {
"require": {
"types": "./lib/extensions/BulletList/index.d.ts",
"default": "./lib/BulletList.cjs"
},
"import": {
"types": "./lib/extensions/BulletList/index.d.ts",
"default": "./lib/BulletList.js"
}
},
"./clear": {
"require": {
"types": "./lib/extensions/Clear/index.d.ts",
"default": "./lib/Clear.cjs"
},
"import": {
"types": "./lib/extensions/Clear/index.d.ts",
"default": "./lib/Clear.js"
}
},
"./code": {
"require": {
"types": "./lib/extensions/Code/index.d.ts",
"default": "./lib/Code.cjs"
},
"import": {
"types": "./lib/extensions/Code/index.d.ts",
"default": "./lib/Code.js"
}
},
"./codeview": {
"require": {
"types": "./lib/extensions/CodeView/index.d.ts",
"default": "./lib/CodeView.cjs"
},
"import": {
"types": "./lib/extensions/CodeView/index.d.ts",
"default": "./lib/CodeView.js"
}
},
"./codeblock": {
"require": {
"types": "./lib/extensions/CodeBlock/index.d.ts",
"default": "./lib/CodeBlock.cjs"
},
"import": {
"types": "./lib/extensions/CodeBlock/index.d.ts",
"default": "./lib/CodeBlock.js"
}
},
"./color": {
"require": {
"types": "./lib/extensions/Color/index.d.ts",
"default": "./lib/Color.cjs"
},
"import": {
"types": "./lib/extensions/Color/index.d.ts",
"default": "./lib/Color.js"
}
},
"./drawer": {
"require": {
"types": "./lib/extensions/Drawer/index.d.ts",
"default": "./lib/Drawer.cjs"
},
"import": {
"types": "./lib/extensions/Drawer/index.d.ts",
"default": "./lib/Drawer.js"
}
},
"./emoji": {
"require": {
"types": "./lib/extensions/Emoji/index.d.ts",
"default": "./lib/Emoji.cjs"
},
"import": {
"types": "./lib/extensions/Emoji/index.d.ts",
"default": "./lib/Emoji.js"
}
},
"./excalidraw": {
"require": {
"types": "./lib/extensions/Excalidraw/index.d.ts",
"default": "./lib/Excalidraw.cjs"
},
"import": {
"types": "./lib/extensions/Excalidraw/index.d.ts",
"default": "./lib/Excalidraw.js"
}
},
"./exportpdf": {
"require": {
"types": "./lib/extensions/ExportPdf/index.d.ts",
"default": "./lib/ExportPdf.cjs"
},
"import": {
"types": "./lib/extensions/ExportPdf/index.d.ts",
"default": "./lib/ExportPdf.js"
}
},
"./exportword": {
"require": {
"types": "./lib/extensions/ExportWord/index.d.ts",
"default": "./lib/ExportWord.cjs"
},
"import": {
"types": "./lib/extensions/ExportWord/index.d.ts",
"default": "./lib/ExportWord.js"
}
},
"./fontfamily": {
"require": {
"types": "./lib/extensions/FontFamily/index.d.ts",
"default": "./lib/FontFamily.cjs"
},
"import": {
"types": "./lib/extensions/FontFamily/index.d.ts",
"default": "./lib/FontFamily.js"
}
},
"./fontsize": {
"require": {
"types": "./lib/extensions/FontSize/index.d.ts",
"default": "./lib/FontSize.cjs"
},
"import": {
"types": "./lib/extensions/FontSize/index.d.ts",
"default": "./lib/FontSize.js"
}
},
"./heading": {
"require": {
"types": "./lib/extensions/Heading/index.d.ts",
"default": "./lib/Heading.cjs"
},
"import": {
"types": "./lib/extensions/Heading/index.d.ts",
"default": "./lib/Heading.js"
}
},
"./highlight": {
"require": {
"types": "./lib/extensions/Highlight/index.d.ts",
"default": "./lib/Highlight.cjs"
},
"import": {
"types": "./lib/extensions/Highlight/index.d.ts",
"default": "./lib/Highlight.js"
}
},
"./history": {
"require": {
"types": "./lib/extensions/History/index.d.ts",
"default": "./lib/History.cjs"
},
"import": {
"types": "./lib/extensions/History/index.d.ts",
"default": "./lib/History.js"
}
},
"./horizontalrule": {
"require": {
"types": "./lib/extensions/HorizontalRule/index.d.ts",
"default": "./lib/HorizontalRule.cjs"
},
"import": {
"types": "./lib/extensions/HorizontalRule/index.d.ts",
"default": "./lib/HorizontalRule.js"
}
},
"./iframe": {
"require": {
"types": "./lib/extensions/Iframe/index.d.ts",
"default": "./lib/Iframe.cjs"
},
"import": {
"types": "./lib/extensions/Iframe/index.d.ts",
"default": "./lib/Iframe.js"
}
},
"./image": {
"require": {
"types": "./lib/extensions/Image/index.d.ts",
"default": "./lib/Image.cjs"
},
"import": {
"types": "./lib/extensions/Image/index.d.ts",
"default": "./lib/Image.js"
}
},
"./imagegif": {
"require": {
"types": "./lib/extensions/ImageGif/index.d.ts",
"default": "./lib/ImageGif.cjs"
},
"import": {
"types": "./lib/extensions/ImageGif/index.d.ts",
"default": "./lib/ImageGif.js"
}
},
"./importword": {
"require": {
"types": "./lib/extensions/ImportWord/index.d.ts",
"default": "./lib/ImportWord.cjs"
},
"import": {
"types": "./lib/extensions/ImportWord/index.d.ts",
"default": "./lib/ImportWord.js"
}
},
"./indent": {
"require": {
"types": "./lib/extensions/Indent/index.d.ts",
"default": "./lib/Indent.cjs"
},
"import": {
"types": "./lib/extensions/Indent/index.d.ts",
"default": "./lib/Indent.js"
}
},
"./italic": {
"require": {
"types": "./lib/extensions/Italic/index.d.ts",
"default": "./lib/Italic.cjs"
},
"import": {
"types": "./lib/extensions/Italic/index.d.ts",
"default": "./lib/Italic.js"
}
},
"./katex": {
"require": {
"types": "./lib/extensions/Katex/index.d.ts",
"default": "./lib/Katex.cjs"
},
"import": {
"types": "./lib/extensions/Katex/index.d.ts",
"default": "./lib/Katex.js"
}
},
"./lineheight": {
"require": {
"types": "./lib/extensions/LineHeight/index.d.ts",
"default": "./lib/LineHeight.cjs"
},
"import": {
"types": "./lib/extensions/LineHeight/index.d.ts",
"default": "./lib/LineHeight.js"
}
},
"./link": {
"require": {
"types": "./lib/extensions/Link/index.d.ts",
"default": "./lib/Link.cjs"
},
"import": {
"types": "./lib/extensions/Link/index.d.ts",
"default": "./lib/Link.js"
}
},
"./mention": {
"require": {
"types": "./lib/extensions/Mention/index.d.ts",
"default": "./lib/Mention.cjs"
},
"import": {
"types": "./lib/extensions/Mention/index.d.ts",
"default": "./lib/Mention.js"
}
},
"./mermaid": {
"require": {
"types": "./lib/extensions/Mermaid/index.d.ts",
"default": "./lib/Mermaid.cjs"
},
"import": {
"types": "./lib/extensions/Mermaid/index.d.ts",
"default": "./lib/Mermaid.js"
}
},
"./moremark": {
"require": {
"types": "./lib/extensions/MoreMark/index.d.ts",
"default": "./lib/MoreMark.cjs"
},
"import": {
"types": "./lib/extensions/MoreMark/index.d.ts",
"default": "./lib/MoreMark.js"
}
},
"./column": {
"require": {
"types": "./lib/extensions/Column/index.d.ts",
"default": "./lib/Column.cjs"
},
"import": {
"types": "./lib/extensions/Column/index.d.ts",
"default": "./lib/Column.js"
}
},
"./orderedlist": {
"require": {
"types": "./lib/extensions/OrderedList/index.d.ts",
"default": "./lib/OrderedList.cjs"
},
"import": {
"types": "./lib/extensions/OrderedList/index.d.ts",
"default": "./lib/OrderedList.js"
}
},
"./searchandreplace": {
"require": {
"types": "./lib/extensions/SearchAndReplace/index.d.ts",
"default": "./lib/SearchAndReplace.cjs"
},
"import": {
"types": "./lib/extensions/SearchAndReplace/index.d.ts",
"default": "./lib/SearchAndReplace.js"
}
},
"./slashcommand": {
"require": {
"types": "./lib/extensions/SlashCommand/index.d.ts",
"default": "./lib/SlashCommand.cjs"
},
"import": {
"types": "./lib/extensions/SlashCommand/index.d.ts",
"default": "./lib/SlashCommand.js"
}
},
"./strike": {
"require": {
"types": "./lib/extensions/Strike/index.d.ts",
"default": "./lib/Strike.cjs"
},
"import": {
"types": "./lib/extensions/Strike/index.d.ts",
"default": "./lib/Strike.js"
}
},
"./table": {
"require": {
"types": "./lib/extensions/Table/index.d.ts",
"default": "./lib/Table.cjs"
},
"import": {
"types": "./lib/extensions/Table/index.d.ts",
"default": "./lib/Table.js"
}
},
"./tasklist": {
"require": {
"types": "./lib/extensions/TaskList/index.d.ts",
"default": "./lib/TaskList.cjs"
},
"import": {
"types": "./lib/extensions/TaskList/index.d.ts",
"default": "./lib/TaskList.js"
}
},
"./textalign": {
"require": {
"types": "./lib/extensions/TextAlign/index.d.ts",
"default": "./lib/TextAlign.cjs"
},
"import": {
"types": "./lib/extensions/TextAlign/index.d.ts",
"default": "./lib/TextAlign.js"
}
},
"./textdirection": {
"require": {
"types": "./lib/extensions/TextDirection/index.d.ts",
"default": "./lib/TextDirection.cjs"
},
"import": {
"types": "./lib/extensions/TextDirection/index.d.ts",
"default": "./lib/TextDirection.js"
}
},
"./textunderline": {
"require": {
"types": "./lib/extensions/TextUnderline/index.d.ts",
"default": "./lib/TextUnderline.cjs"
},
"import": {
"types": "./lib/extensions/TextUnderline/index.d.ts",
"default": "./lib/TextUnderline.js"
}
},
"./twitter": {
"require": {
"types": "./lib/extensions/Twitter/index.d.ts",
"default": "./lib/Twitter.cjs"
},
"import": {
"types": "./lib/extensions/Twitter/index.d.ts",
"default": "./lib/Twitter.js"
}
},
"./video": {
"require": {
"types": "./lib/extensions/Video/index.d.ts",
"default": "./lib/Video.cjs"
},
"import": {
"types": "./lib/extensions/Video/index.d.ts",
"default": "./lib/Video.js"
}
},
"./callout": {
"require": {
"types": "./lib/extensions/Callout/index.d.ts",
"default": "./lib/Callout.cjs"
},
"import": {
"types": "./lib/extensions/Callout/index.d.ts",
"default": "./lib/Callout.js"
}
}
},
"typesVersions": {
"*": {
"locale-bundle": [
"./lib/locale-bundle.d.ts"
],
"bubble": [
"./lib/bubble.d.ts"
],
"theme": [
"./lib/theme.d.ts"
],
"*": [
"./lib/*",
"./*"
],
"./attachment": [
"./lib/extensions/Attachment/index.d.ts"
],
"./blockquote": [
"./lib/extensions/Blockquote/index.d.ts"
],
"./bold": [
"./lib/extensions/Bold/index.d.ts"
],
"./bulletlist": [
"./lib/extensions/BulletList/index.d.ts"
],
"./clear": [
"./lib/extensions/Clear/index.d.ts"
],
"./code": [
"./lib/extensions/Code/index.d.ts"
],
"./codeblock": [
"./lib/extensions/CodeBlock/index.d.ts"
],
"./codeview": [
"./lib/extensions/CodeView/index.d.ts"
],
"./color": [
"./lib/extensions/Color/index.d.ts"
],
"./drawer": [
"./lib/extensions/Drawer/index.d.ts"
],
"./emoji": [
"./lib/extensions/Emoji/index.d.ts"
],
"./excalidraw": [
"./lib/extensions/Excalidraw/index.d.ts"
],
"./exportpdf": [
"./lib/extensions/ExportPdf/index.d.ts"
],
"./exportword": [
"./lib/extensions/ExportWord/index.d.ts"
],
"./fontfamily": [
"./lib/extensions/FontFamily/index.d.ts"
],
"./fontsize": [
"./lib/extensions/FontSize/index.d.ts"
],
"./heading": [
"./lib/extensions/Heading/index.d.ts"
],
"./highlight": [
"./lib/extensions/Highlight/index.d.ts"
],
"./history": [
"./lib/extensions/History/index.d.ts"
],
"./horizontalrule": [
"./lib/extensions/HorizontalRule/index.d.ts"
],
"./iframe": [
"./lib/extensions/Iframe/index.d.ts"
],
"./image": [
"./lib/extensions/Image/index.d.ts"
],
"./imagegif": [
"./lib/extensions/ImageGif/index.d.ts"
],
"./importword": [
"./lib/extensions/ImportWord/index.d.ts"
],
"./indent": [
"./lib/extensions/Indent/index.d.ts"
],
"./italic": [
"./lib/extensions/Italic/index.d.ts"
],
"./katex": [
"./lib/extensions/Katex/index.d.ts"
],
"./lineheight": [
"./lib/extensions/LineHeight/index.d.ts"
],
"./link": [
"./lib/extensions/Link/index.d.ts"
],
"./mention": [
"./lib/extensions/Mention/index.d.ts"
],
"./mermaid": [
"./lib/extensions/Mermaid/index.d.ts"
],
"./moremark": [
"./lib/extensions/MoreMark/index.d.ts"
],
"./column": [
"./lib/extensions/Column/index.d.ts"
],
"./orderedlist": [
"./lib/extensions/OrderedList/index.d.ts"
],
"./searchandreplace": [
"./lib/extensions/SearchAndReplace/index.d.ts"
],
"./slashcommand": [
"./lib/extensions/SlashCommand/index.d.ts"
],
"./strike": [
"./lib/extensions/Strike/index.d.ts"
],
"./table": [
"./lib/extensions/Table/index.d.ts"
],
"./tasklist": [
"./lib/extensions/TaskList/index.d.ts"
],
"./textalign": [
"./lib/extensions/TextAlign/index.d.ts"
],
"./textdirection": [
"./lib/extensions/TextDirection/index.d.ts"
],
"./textunderline": [
"./lib/extensions/TextUnderline/index.d.ts"
],
"./twitter": [
"./lib/extensions/Twitter/index.d.ts"
],
"./video": [
"./lib/extensions/Video/index.d.ts"
],
"./callout": [
"./lib/extensions/Callout/index.d.ts"
]
}
},
"files": [
"lib",
"package.json",
"README.md",
"LICENSE"
],
"engines": {
"node": ">=18.0.0"
},
"scripts": {
"build:lib": "vite build",
"build:lib:dev": "vite build --mode development --watch",
"build:playground": "pnpm build:lib && pnpm --dir ./playground run build",
"docs:dev": "pnpm --parallel --filter docs... dev",
"docs:build": "pnpm --filter docs... build",
"docs:preview": "pnpm -C docs preview",
"prepublishOnly": "pnpm build:lib",
"playground": "pnpm --dir ./playground run dev",
"preview": "pnpm --dir ./playground run preview",
"lint": "eslint src --quiet",
"lint:fix": "eslint src --fix --quiet",
"type-check": "tsc",
"verify-commit": "verify-commit-msg",
"prepare": "git-scm-hooks",
"release": "bumpp -r",
"gen-changelog": "esno ./scripts/genExtensions.ts && esno ./scripts/changelog.ts",
"gen-contributors": "contributorkit"
},
"dependencies": {
"@excalidraw/excalidraw": "^0.18.0",
"@floating-ui/dom": "^1.7.4",
"@hocuspocus/provider": "^3.4.3",
"@radix-ui/react-checkbox": "^1.3.3",
"@radix-ui/react-dialog": "^1.1.15",
"@radix-ui/react-dropdown-menu": "^2.1.16",
"@radix-ui/react-icons": "^1.3.2",
"@radix-ui/react-label": "^2.1.8",
"@radix-ui/react-popover": "^1.1.15",
"@radix-ui/react-select": "^2.2.6",
"@radix-ui/react-separator": "^1.1.8",
"@radix-ui/react-slot": "^1.2.4",
"@radix-ui/react-switch": "^1.2.6",
"@radix-ui/react-tabs": "^1.1.13",
"@radix-ui/react-toast": "^1.2.15",
"@radix-ui/react-toggle": "^1.1.10",
"@radix-ui/react-tooltip": "^1.2.8",
"@tiptap/core": "^3.14.0",
"@tiptap/extension-blockquote": "^3.14.0",
"@tiptap/extension-bold": "^3.14.0",
"@tiptap/extension-bullet-list": "^3.14.0",
"@tiptap/extension-code": "^3.14.0",
"@tiptap/extension-collaboration": "^3.14.0",
"@tiptap/extension-collaboration-caret": "^3.14.0",
"@tiptap/extension-document": "^3.14.0",
"@tiptap/extension-drag-handle": "^3.14.0",
"@tiptap/extension-drag-handle-react": "^3.14.0",
"@tiptap/extension-emoji": "^3.14.0",
"@tiptap/extension-hard-break": "^3.14.0",
"@tiptap/extension-heading": "^3.14.0",
"@tiptap/extension-highlight": "^2.27.1",
"@tiptap/extension-horizontal-rule": "^3.14.0",
"@tiptap/extension-image": "^3.14.0",
"@tiptap/extension-italic": "^3.14.0",
"@tiptap/extension-link": "^3.14.0",
"@tiptap/extension-list": "^3.14.0",
"@tiptap/extension-list-item": "^3.14.0",
"@tiptap/extension-mention": "^3.14.0",
"@tiptap/extension-node-range": "^3.14.0",
"@tiptap/extension-ordered-list": "^3.14.0",
"@tiptap/extension-paragraph": "^3.14.0",
"@tiptap/extension-strike": "^3.14.0",
"@tiptap/extension-subscript": "^3.14.0",
"@tiptap/extension-superscript": "^3.14.0",
"@tiptap/extension-table": "^3.14.0",
"@tiptap/extension-task-item": "^3.14.0",
"@tiptap/extension-task-list": "^3.14.0",
"@tiptap/extension-text": "^3.14.0",
"@tiptap/extension-text-align": "^3.14.0",
"@tiptap/extension-text-style": "^3.14.0",
"@tiptap/extension-underline": "^3.14.0",
"@tiptap/extensions": "^3.14.0",
"@tiptap/pm": "^3.14.0",
"@tiptap/react": "^3.14.0",
"@tiptap/suggestion": "^3.14.0",
"@tiptap/y-tiptap": "^3.0.1",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"deep-equal": "^2.2.3",
"docx": "^9.5.1",
"easydrawer": "^0.0.15",
"frimousse": "^0.3.0",
"katex": "^0.16.27",
"lodash-es": "^4.17.22",
"lucide-react": "^0.427.0",
"mermaid": "^11.12.2",
"prism-code-editor-lightweight": "^0.0.3",
"prosemirror-docx": "^0.2.1",
"re-resizable": "^6.11.2",
"react-colorful": "^5.6.1",
"react-image-crop": "^11.0.10",
"react-tweet": "^3.3.0",
"reactjs-signal": "^2.0.4",
"scroll-into-view-if-needed": "^3.1.0",
"svg64": "^2.0.0",
"y-protocols": "^1.0.7",
"yjs": "^13.6.28"
},
"devDependencies": {
"@hunghg255/eslint-config": "^1.0.1",
"@types/deep-equal": "^1.0.4",
"@types/katex": "^0.16.7",
"@types/lodash-es": "^4.17.12",
"@types/node": "^24.10.4",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.2",
"autoprefixer": "^10.4.23",
"bumpp": "^10.3.2",
"contributorkit": "^0.0.4",
"eslint": "^9.39.2",
"eslint-plugin-tailwindcss": "^3.18.2",
"esno": "^4.8.0",
"execa": "^9.6.1",
"git-scm-hooks": "^0.2.0",
"globby": "^14.1.0",
"mammoth": "^1.11.0",
"md5": "^2.3.0",
"postcss": "^8.5.6",
"postcss-replace": "^2.0.1",
"postcss-scss": "^4.0.9",
"react": "^19.2.3",
"react-dom": "^19.2.3",
"sass": "^1.97.1",
"tailwind-merge": "^2.6.0",
"tailwindcss": "^3.4.19",
"typescript": "^5.9.3",
"unplugin-dts": "1.0.0-beta.6",
"verify-commit-msg": "^0.1.0",
"vite": "^6.4.1"
},
"browserslist": [
">0.3%",
"not ie 11",
"not dead",
"not op_mini all"
],
"git-hooks": {
"pre-commit": "npm run lint:fix",
"commit-msg": "npm run verify-commit"
}
}