{"_id":"@teispace/teieditor","_rev":"33-c43c81deb058ea3607f6b52dc446b7b8","name":"@teispace/teieditor","dist-tags":{"latest":"4.0.1"},"versions":{"0.1.12":{"name":"@teispace/teieditor","version":"0.1.12","keywords":["react","reactjs","react-component","react-rich-text-editor","rich-text-editor","editor","wysiwyg","typescript"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@0.1.12","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"contributors":[{"url":"https://github.com/iamkrishnaa","name":"Krishna Adhikari"},{"url":"https://github.com/teispace","name":"Teispace"}],"homepage":"https://github.com/teispace/teieditor#readme","bugs":{"url":"https://github.com/teispace/teieditor/issues"},"dist":{"shasum":"0b7e0700ac1d1842f86ed344c7385368c8963948","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-0.1.12.tgz","fileCount":11,"integrity":"sha512-l/O6XjHxNMqbLkqGi9o+iO7GJtDVaYcpJolVDUZuJwKTKHgq9ZjjR9Y7Cuz/3wRl+7OXRI0XOWy+cDOSKk7E+A==","signatures":[{"sig":"MEQCIAUvO+EE6GNaX+KTs0bbtQS2Sjp5Hw4fnwvB/4WKlavoAiB7ympxgRHWZCDn2V6Q5kAsCITQOQQFUVaGubs3wo1Ekw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9314},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"lint":"eslint . --ext .ts","test":"NODE_ENV=test jest --ci --runInBand --detectOpenHandles","build":"npm run build:css && npm run build:js","clean":"rm -rf dist && rm -rf coverage && rm -rf node_modules && npm install","format":"prettier --write .","prepare":"husky","build:js":"tsc --emitDeclarationOnly && rollup -c","lint:fix":"eslint . --ext .ts --fix","build:css":"tailwindcss -i ./src/styles.css -o ./dist/styles.css --minify","check-types":"tsc --pretty --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/teieditor.git","type":"git"},"_npmVersion":"11.3.0","description":"Full Featured Rich Text Editor for React.","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.26.0","rollup":"^4.40.2","ts-jest":"^29.3.2","ts-node":"^10.9.2","prettier":"^3.5.3","supertest":"^7.1.1","@eslint/js":"^9.26.0","typescript":"^5.8.3","@types/jest":"^29.5.14","tailwindcss":"^4.1.6","@types/react":"^19.1.4","@jest/globals":"^29.7.0","@tailwindcss/cli":"^4.1.6","@types/react-dom":"^19.1.5","@types/supertest":"^6.0.3","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.32.0","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/teieditor_0.1.12_1747195919535_0.04868894900463405","host":"s3://npm-registry-packages-npm-production"}},"0.1.121":{"name":"@teispace/teieditor","version":"0.1.121","keywords":["react","reactjs","react-component","react-rich-text-editor","rich-text-editor","editor","wysiwyg","typescript"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@0.1.121","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"contributors":[{"url":"https://github.com/iamkrishnaa","name":"Krishna Adhikari"},{"url":"https://github.com/teispace","name":"Teispace"}],"homepage":"https://github.com/teispace/teieditor#readme","bugs":{"url":"https://github.com/teispace/teieditor/issues"},"dist":{"shasum":"0bffb662ad2898145ab6f3e363c6101e0afdc66b","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-0.1.121.tgz","fileCount":11,"integrity":"sha512-QfgJB6G/BobYHX5H3aoqWLuDfha60DWBqV7KfwryRngV6mRQylgeORvDj6XqmLTU+MujqDKCbou78J/W+IlmOg==","signatures":[{"sig":"MEQCIAvclFIV2i+7RxQf6ckApeCmmOmmEgskA5yM4uZQOystAiAsXnjeMoSVks+ZonLcxdV5s7oRlQqJNYWA1joW/XcXKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9321},"main":"./dist/index.js","type":"module","types":"./dist/types/index.d.ts","module":"./dist/index.mjs","scripts":{"lint":"eslint . --ext .ts","test":"NODE_ENV=test jest --ci --runInBand --detectOpenHandles","build":"npm run build:css && npm run build:js","clean":"rm -rf dist && rm -rf coverage && rm -rf node_modules && npm install","format":"prettier --write .","prepare":"husky","build:js":"tsc --emitDeclarationOnly && rollup -c","lint:fix":"eslint . --ext .ts --fix","build:css":"tailwindcss -i ./src/styles.css -o ./dist/styles.css --minify","check-types":"tsc --pretty --noEmit","format:check":"prettier --check ."},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/teieditor.git","type":"git"},"_npmVersion":"11.3.0","description":"Full Featured Rich Text Editor for React.","directories":{},"_nodeVersion":"23.10.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","husky":"^9.1.7","tslib":"^2.8.1","eslint":"^9.26.0","rollup":"^4.40.2","ts-jest":"^29.3.2","ts-node":"^10.9.2","prettier":"^3.5.3","supertest":"^7.1.1","@eslint/js":"^9.26.0","typescript":"^5.8.3","@types/jest":"^29.5.14","tailwindcss":"^4.1.6","@types/react":"^19.1.4","@jest/globals":"^29.7.0","@tailwindcss/cli":"^4.1.6","@types/react-dom":"^19.1.5","@types/supertest":"^6.0.3","rollup-plugin-dts":"^6.2.1","typescript-eslint":"^8.32.0","@rollup/plugin-terser":"^0.4.4","rollup-plugin-postcss":"^4.0.2","@rollup/plugin-commonjs":"^28.0.3","@rollup/plugin-typescript":"^12.1.2","@rollup/plugin-node-resolve":"^16.0.1","rollup-plugin-peer-deps-external":"^2.2.4"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/teieditor_0.1.121_1747196377591_0.20649713784072832","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@teispace/teieditor","version":"1.1.0","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.1.0","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"bf744b0a8c0417e265fbbedb1f34f72c7b363cc2","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.1.0.tgz","fileCount":247,"integrity":"sha512-ny57tAlJlHz4ugoBRlwkq8lmRLPNWl0LNM7HfX79U8Pg5QgINSbWSd/8IOB0bc/iveLZOvlIdwAd4TeZdjUf3w==","signatures":[{"sig":"MEUCIQCqtp3DsrMSefOko0XZEyP1axcuOXZw5my9qIJyCt+0aAIgTUPsEoc1LhqWtI9vcdSG24kniNL8fMuNBZGcXTaqjHw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":541353},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js"},"./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js"}},"gitHead":"b0b41e588f44c467f23e6baf4633f3ef0aa6793a","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.3.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.2","react":"^19.2.5","vitest":"^4.1.4","lexical":"^0.43.0","react-dom":"^19.2.5","typescript":"^6.0.2","@types/node":"^25.6.0","@types/react":"^19.2.14","@lexical/code":"^0.43.0","@lexical/html":"^0.43.0","@lexical/link":"^0.43.0","@lexical/list":"^0.43.0","@lexical/react":"^0.43.0","@lexical/table":"^0.43.0","@lexical/utils":"^0.43.0","@lexical/history":"^0.43.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.43.0","@lexical/rich-text":"^0.43.0","@lexical/selection":"^0.43.0"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.1.0_1775804230563_0.7343981203435159","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@teispace/teieditor","version":"1.2.0","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.2.0","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"d1ad74d1d4e4c9e9833681b48dad2aab2b037521","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.2.0.tgz","fileCount":303,"integrity":"sha512-3nVVztr3nxUMydMyaXo2NxJM3nFZNRFZo7I2TBaBvFRdVG4bPrvgEC6Mn3Q137wwBnKxkqddDt8FPKOLT/uF9w==","signatures":[{"sig":"MEYCIQC7IAlLBA3pSblLijPtWiu5JxNRKXvjjSqlmqXk/1vYyQIhAOznkokfHtAZSKissQMmV6MGWxyf7gvw54j4nRU2gpXY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":664392},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js"},"./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js"}},"gitHead":"2afd016df5a45adacc9dfda6b793f615d976ed48","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.3.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.2","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.2.0_1775817748825_0.7824483679175527","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@teispace/teieditor","version":"1.3.0","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.3.0","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"930c261dabd895eb5950daf0a1ccb9ce8a3acaa0","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.3.0.tgz","fileCount":299,"integrity":"sha512-g34+pFwsuiFm4HEW8zCs0q1xhJxb0zpB+Tn2Oa42o9V+07vrdS/TXCpNOoPg6WMCBQY4H793VgSp3pJeoBCPOg==","signatures":[{"sig":"MEUCIQCgSkm3/bAKG8RiV1qUJ+9UmxZtBEKWuyWXPFSIvZE8gQIgfPQG4AQdOm26+b32OlDX4bBda0vnNBfn8ToRluqdl78=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":805576},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js"},"./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js"}},"gitHead":"2376087f69375ae3ee27c505080f28680b13cccc","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.3.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","jsdom":"^29.0.2","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.3.0_1775824185210_0.2675835577406238","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@teispace/teieditor","version":"1.4.0","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.4.0","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"5c3ba5bd8f68935a3ccef67a5eacc39097b10cc9","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.4.0.tgz","fileCount":299,"integrity":"sha512-zzyWIQM4zesFvk/mvi6jea0QS85IUHf4FMok5wNd6rmB7xNCKmEm+/cZgIpa34fdBk2Ssgj9u4cuI6sS4BldKg==","signatures":[{"sig":"MEUCIQCcNhYIBs6ob6qZT1HdbZXuHEXEkubJ1kRJATbWHkzdZgIgEHfJfWR63SBq/rc29iOkHsWfGe2WtqTRHurjjJ/imiQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":805598},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js"},"./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js"}},"gitHead":"d6340dcf27acbfa7ca0f0547ff17c93d9102d16f","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.3.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","jsdom":"^29.0.2","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.4.0_1775825107508_0.6813279090496627","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@teispace/teieditor","version":"1.5.0","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.5.0","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"b91ccf4b1b4432ed5678398f25e4dfbae7714cf2","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.5.0.tgz","fileCount":320,"integrity":"sha512-UUckNY28Xtm28/lnUmPbIG8eX2B14Z44N+429Pnhxy4ec7h1rW2rP9zDIJQtvTJ6DSsm0dIDcBXP4LcN+kHqlg==","signatures":[{"sig":"MEYCIQD54M2uyrbCwBBX/wS3jpGJhqtgXQdu1JYTz+G3BqsPXAIhAIZ0l1GLzcCCypZID6YZ48znMKEIe+wN38GYOyd83tLh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1232210},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"fafb37a6ac6f87f3883896031120b26184ab05ac","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.3.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","jsdom":"^29.0.2","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.5.0_1776943682508_0.12704391279827254","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@teispace/teieditor","version":"1.5.1","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.5.1","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"2e66958f8120780e930cf80abe24be0d770293f5","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.5.1.tgz","fileCount":323,"integrity":"sha512-qIRAfsRkOZl8+6VVkDRlAEYlMnPHVUBGHKYxidm8+VRasKqbTeQsw6gZW/seF2f8OGC33/NVrz2r3afx0lF4BA==","signatures":[{"sig":"MEYCIQClNiAy//arIC/NR+dbZNKxuPQ63ThQd/aSGTmHFE69hAIhAJ9CE0rkJ/y0JTDNdL1EQj9rYas3E/I7tmuB8z8aimZ8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1245766},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"28889213002d5e6dfc12bc44c5cd36638ae19542","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.3.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","jsdom":"^29.0.2","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.5.1_1777008542569_0.22437010182656425","host":"s3://npm-registry-packages-npm-production"}},"1.5.2":{"name":"@teispace/teieditor","version":"1.5.2","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.5.2","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"781c3199802bc6a14cd804e1c6dd6f062a8e5587","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.5.2.tgz","fileCount":323,"integrity":"sha512-ZJ5Y4A/SsYjaA7E6MAJiCqI5/HgkraFfbaeBnj92N+m1+8B1yRegBoWNezEP7BNBcFW85Vaoaag8bxeYG0EIFg==","signatures":[{"sig":"MEUCIQCkDGsklLz5N8dWnolnsTwwMnHmImU2bW12FZkAHenTgAIgWxqMH5xt+eXLkS81c0HGpcFk7eO8jK31vZV34WNRxp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1245766},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"954e459e4045f33a77305c691375b18de6da599e","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.4.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","jsdom":"^29.0.2","vitest":"^4.1.5","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.5.2_1777210611777_0.015718201811321553","host":"s3://npm-registry-packages-npm-production"}},"1.5.4":{"name":"@teispace/teieditor","version":"1.5.4","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.5.4","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"4e199bb76671ee412b67291f3eb5e048b49928ce","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.5.4.tgz","fileCount":323,"integrity":"sha512-ALpzYhqXywcO2wY230YAcVfICLawBqfq2DfVw09ku6s1xIZ8DSCa2UQLmzCuc/WBziQ98HmK4jpTAC5mpjh1AA==","signatures":[{"sig":"MEYCIQC3tZ/miKkpEAxP3qq5LlZnYQn623sS34bR7LLOMA1ibgIhALFHNZFFLwSYrO05vSBFG6NUOziQVqSENaZK5wYY7mBN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1245859},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"f38600d0b031de4bd716d2beae6c655b3f673588","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.4.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.5","vitest":"^4.1.5","react-dom":"^19.2.5","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@types/react-dom":"^19.2.3","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.5.4_1777696002898_0.4626339627426792","host":"s3://npm-registry-packages-npm-production"}},"1.5.5":{"name":"@teispace/teieditor","version":"1.5.5","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.5.5","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"6c6bb97dd505d26e2360ac96f0ff25a574f5e4f2","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.5.5.tgz","fileCount":323,"integrity":"sha512-xlGUC9Y/YSHtsNeVMJJSZ8fv2QiObbH3nEVQ3MqDcQlGGDQ/HTN34noCfXy4vhBgGZiCUdMF7XNj2I26e7dIMA==","signatures":[{"sig":"MEUCIQCQJye7V99MMHWnTxxArwfU9ndaEmf6tZ4oxaGRfRfOSgIgSGhTy6tnqXbPHGNCm/RTOCkOpRY0EjpYssI55ydeezg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1246257},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"31e696e49c27f48ce1f9511e0eb497bc4f6c7e58","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.4.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.5","vitest":"^4.1.5","lexical":"^0.44.0","react-dom":"^19.2.5","typescript":"^6.0.3","@types/node":"^25.6.0","@types/react":"^19.2.14","@lexical/code":"^0.44.0","@lexical/html":"^0.44.0","@lexical/link":"^0.44.0","@lexical/list":"^0.44.0","@lexical/react":"^0.44.0","@lexical/table":"^0.44.0","@lexical/utils":"^0.44.0","@lexical/history":"^0.44.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.44.0","@lexical/rich-text":"^0.44.0","@lexical/selection":"^0.44.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.5.5_1778075796937_0.7001697579111992","host":"s3://npm-registry-packages-npm-production"}},"1.5.6":{"name":"@teispace/teieditor","version":"1.5.6","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@1.5.6","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"17592877d5fa54da342300cd4c249fee0ab40809","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-1.5.6.tgz","fileCount":323,"integrity":"sha512-w8hOBrTg0tCHZLZpa9OwM+dcUBKVYN5A3EwT3Nzp4RyRi1JYM2DTaYiTJhD2MAiB46apZTWYHY14j78Q77UqMw==","signatures":[{"sig":"MEYCIQDT/RfuR1RxZPxTnUavKkBitdjMuRMcE4LQjBCD/tZwXQIhAKuiqyb0bHdsojL4Xpi5iRi5TCi25uc9X/B2T88DNfVF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@1.5.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1246257},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"a91f139f0cfe8ead607ee9bb5dec6b8c91a12ec4","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.4.0","commander":"^14.0.3","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.1","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.6","vitest":"^4.1.6","lexical":"^0.44.0","react-dom":"^19.2.6","typescript":"^6.0.3","@types/node":"^25.8.0","@types/react":"^19.2.14","@lexical/code":"^0.44.0","@lexical/html":"^0.44.0","@lexical/link":"^0.44.0","@lexical/list":"^0.44.0","@lexical/react":"^0.44.0","@lexical/table":"^0.44.0","@lexical/utils":"^0.44.0","@lexical/history":"^0.44.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.44.0","@lexical/rich-text":"^0.44.0","@lexical/selection":"^0.44.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_1.5.6_1779099263845_0.5133971679947797","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@teispace/teieditor","version":"2.0.0","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@2.0.0","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"a43ef350ea86836ce179f6f6edab503c0b43688c","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-2.0.0.tgz","fileCount":323,"integrity":"sha512-R64bABX99g8JsRb7QXYKGeraBjOVWacuoRyDrddWLi1eb270KCbJ8Pkzrg141+9ssYNCYEoex9/dRMq+o0RAGA==","signatures":[{"sig":"MEQCICOb1UXiaillhEmgEJotwPdUSRGX3EE2HhbPgqTm9aYFAiADWe1skWS7gTfkSxMzVNgqlsCuYxm9jAukAaVyN8x0Ow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1247109},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"f464ba6b2409337f002f95ea4fb26ff2d0802df3","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.4.0","commander":"^15.0.0","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.6","vitest":"^4.1.7","lexical":"^0.45.0","react-dom":"^19.2.6","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@lexical/code":"^0.45.0","@lexical/html":"^0.45.0","@lexical/link":"^0.45.0","@lexical/list":"^0.45.0","@lexical/react":"^0.45.0","@lexical/table":"^0.45.0","@lexical/utils":"^0.45.0","@lexical/history":"^0.45.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.45.0","@lexical/rich-text":"^0.45.0","@lexical/selection":"^0.45.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_2.0.0_1780201399309_0.9870002586433886","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@teispace/teieditor","version":"2.0.1","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@2.0.1","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"3aa126bce188d508dc69eace5465d5c0457bd045","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-2.0.1.tgz","fileCount":321,"integrity":"sha512-jqPn5kb+LF1o5d2ciss3gX1Evbr4ZwWO7jPwvZXgKTz2kIwSOMklne2Bm2G4CXIdObO+0bN7gxqs3nytS2XfKA==","signatures":[{"sig":"MEUCIB1hzV0odTTusvSqPqlOauzr3ccUViZ/1jseW9kkehwgAiEAv3L9TJlP1vI/xiOcmwUSTO1tgC7nhe0laUNekks6Xj8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1249469},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"d88f33cd346fad1d8f4b90c74fd8a9707860455a","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.4.0","commander":"^15.0.0","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.6","vitest":"^4.1.7","lexical":"^0.45.0","react-dom":"^19.2.6","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@lexical/code":"^0.45.0","@lexical/html":"^0.45.0","@lexical/link":"^0.45.0","@lexical/list":"^0.45.0","@lexical/react":"^0.45.0","@lexical/table":"^0.45.0","@lexical/utils":"^0.45.0","@lexical/history":"^0.45.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.45.0","@lexical/rich-text":"^0.45.0","@lexical/selection":"^0.45.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_2.0.1_1780208817469_0.7319644489150454","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@teispace/teieditor","version":"2.0.2","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@2.0.2","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"d553b52afee23c10c8f88c5488c912e9633fc34c","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-2.0.2.tgz","fileCount":206,"integrity":"sha512-pnEE4Km579K5EVm4TzKY7E5swqI66X/HgHgxHroxCJIrK+7fTYmPsKVtza8jSyeegB0hdAdkfh7JfKYyTTtepw==","signatures":[{"sig":"MEUCIQC4+qcQPNk/vUd5BUyzGVmmT7fW6LSmUZJxkeiEv0C+BQIgLVNNITph394tPgDIFaDrf9JWTUwZ2Yu/++TmwcOM4dI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":450539},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"e17139a4dc66b4ee21a6439ad9557fdd391cd8d1","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.4.0","commander":"^15.0.0","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.6","vitest":"^4.1.7","lexical":"^0.45.0","react-dom":"^19.2.6","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^19.2.15","@lexical/code":"^0.45.0","@lexical/html":"^0.45.0","@lexical/link":"^0.45.0","@lexical/list":"^0.45.0","@lexical/react":"^0.45.0","@lexical/table":"^0.45.0","@lexical/utils":"^0.45.0","@lexical/history":"^0.45.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.45.0","@lexical/rich-text":"^0.45.0","@lexical/selection":"^0.45.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_2.0.2_1780213747968_0.07421514323057266","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@teispace/teieditor","version":"2.0.3","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@2.0.3","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"552e460615313d6fce4b3063a663b3ddfcd1a875","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-2.0.3.tgz","fileCount":206,"integrity":"sha512-H/68nGNlP8Qfdy08d5477e6bagH/tYk7nOZVYCIGEA4xaP00uwSgMChoZN+6c/2gNc6KN+FRsuLRumdbxxaLyQ==","signatures":[{"sig":"MEUCIQDQPJDWdbSyLGQr2oqFhhrbC/v/CVWYZez7RfojW9BSzQIgUUea8p50sZmTkRWxJ7UZuGGAZxyHJnyb/R/VU8NglyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":450255},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=22.12.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"506750b2efe4530e1b8d26674b8ba285cad73f52","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"10.8.2","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","dependencies":{"ora":"^9.4.0","commander":"^15.0.0","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.1.8","lexical":"^0.45.0","react-dom":"^19.2.7","typescript":"^6.0.3","@types/node":"^25.9.2","@types/react":"^19.2.17","@lexical/code":"^0.45.0","@lexical/html":"^0.45.0","@lexical/link":"^0.45.0","@lexical/list":"^0.45.0","@lexical/react":"^0.45.0","@lexical/table":"^0.45.0","@lexical/utils":"^0.45.0","@lexical/history":"^0.45.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.45.0","@lexical/rich-text":"^0.45.0","@lexical/selection":"^0.45.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/html":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true},"@lexical/markdown":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_2.0.3_1780851328767_0.7239875283661839","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@teispace/teieditor","version":"3.0.0","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@3.0.0","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"caba9d654f05524048115df30ef1989d71f65dd9","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-3.0.0.tgz","fileCount":206,"integrity":"sha512-gVqXkTY11B7zoFvoWfamtVFrPt9BSkcw44QebEk3T+hSqiL2epk4Myk5Xftz8mil6fFLy6AUAO2OELlyj6ydiQ==","signatures":[{"sig":"MEYCIQD8vyUmjzPxjjn/Cwrst6dXBcrDiXvlOp6K33fUc9l/TQIhAMJqi42ZkypDQ8/nNY/cVs8wPLLCwzLfgPHNOUeJtlaf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":450890},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"b83c5a740c63e3c8a789e13912f8e3b96d5f5297","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn clean && yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"11.13.0","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"24.16.0","dependencies":{"ora":"^9.4.0","commander":"^15.0.0","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.1.9","lexical":"^0.45.0","react-dom":"^19.2.7","typescript":"^6.0.3","@types/node":"^26.0.0","@types/react":"^19.2.17","@lexical/code":"^0.45.0","@lexical/html":"^0.45.0","@lexical/link":"^0.45.0","@lexical/list":"^0.45.0","@lexical/react":"^0.45.0","@lexical/table":"^0.45.0","@lexical/utils":"^0.45.0","@lexical/history":"^0.45.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.45.0","@lexical/rich-text":"^0.45.0","@lexical/selection":"^0.45.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_3.0.0_1781960385718_0.6520355580348802","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@teispace/teieditor","version":"3.0.1","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@3.0.1","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"cbb75ac5451467a984bf73915f34635248777a13","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-3.0.1.tgz","fileCount":206,"integrity":"sha512-p2cQfpmZhnse6mMyyW3YRK1Nmqy5Rd835BCWzlcySVOKB/A8Wk2jvl5picKB6txLOI9ynxIwnGeEyIg7wF3b2A==","signatures":[{"sig":"MEUCIFzgi9woCSs3H9DdvZyonN8vZcOsEl2RlfHoc4TAeupPAiEAubP1CkVkLp1RmZyewYfW2mhaPQw9zwbkzxnR9GeW17w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":450887},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=24.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"712e50058d8c113ec1f1d0bef752a18252cf9e00","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn clean && yarn build"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"11.13.0","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":false,"_nodeVersion":"24.17.0","dependencies":{"ora":"^9.4.1","commander":"^15.0.0","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.4","tsup":"^8.5.1","jsdom":"^29.1.1","react":"^19.2.7","vitest":"^4.1.9","lexical":"^0.46.0","react-dom":"^19.2.7","typescript":"^6.0.3","@types/node":"^26.0.1","@types/react":"^19.2.17","@lexical/code":"^0.46.0","@lexical/html":"^0.46.0","@lexical/link":"^0.46.0","@lexical/list":"^0.46.0","@lexical/react":"^0.46.0","@lexical/table":"^0.46.0","@lexical/utils":"^0.46.0","@lexical/history":"^0.46.0","@types/react-dom":"^19.2.3","@lexical/markdown":"^0.46.0","@lexical/rich-text":"^0.46.0","@lexical/selection":"^0.46.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_3.0.1_1782638673270_0.9705300251037712","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"@teispace/teieditor","version":"4.0.0","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"author":{"name":"Teispace"},"license":"MIT","_id":"@teispace/teieditor@4.0.0","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"bin":{"teieditor":"dist/cli/index.js"},"dist":{"shasum":"47c1cc7b616ac565ad5450d84eb52352eb1327bf","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-4.0.0.tgz","fileCount":218,"integrity":"sha512-39owehbJA8TMGcQqMC2+PzOkIT8KOUvngLJMsaJj1/w4XI7NklLRUriwHmmaYstrrrWklsiD77oCNzQMJZzyng==","signatures":[{"sig":"MEQCIGFQmh4GJUk9jV6fbY3UNYGeW/buIaWx4aszidGZySTUAiAmhiyGL+0arhSH0ZCOv2cnjUC0WryCaQDnxzLf7VD14Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@4.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":661049},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=20.9.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./styles.css":"./styles.css","./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./package.json":"./package.json","./tailwind.css":"./tailwind.css"},"gitHead":"1c946d7156e5034a52aabea99531cf811ba90e53","scripts":{"dev":"tsup --watch","test":"vitest run","build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors && yarn registry:build","clean":"rm -rf dist","test:cov":"vitest run --coverage","test:watch":"vitest","type-check":"tsc --noEmit","prepublishOnly":"yarn clean && yarn build","registry:build":"tsx src/registry/build-registry.ts"},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"repository":{"url":"git+https://github.com/teispace/npm-packages.git","type":"git","directory":"packages/teieditor"},"_npmVersion":"11.17.0","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.19.0","dependencies":{"ora":"^9.4.1","commander":"^15.0.0","picocolors":"^1.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.23.12","tsup":"^8.5.1","jsdom":"^30.0.1","react":"^19.2.8","vitest":"^4.1.11","lexical":"^0.49.0","react-dom":"^19.2.8","typescript":"^6.0.3","@types/node":"^26.2.0","@types/react":"^19.2.18","@lexical/code":"^0.49.0","@lexical/html":"^0.49.0","@lexical/link":"^0.49.0","@lexical/list":"^0.49.0","@lexical/react":"^0.49.0","@lexical/table":"^0.49.0","@lexical/utils":"^0.49.0","@lexical/history":"^0.49.0","@types/react-dom":"^19.2.4","@lexical/markdown":"^0.49.0","@lexical/rich-text":"^0.49.0","@lexical/selection":"^0.49.0","@testing-library/react":"^16.3.2"},"peerDependencies":{"react":">=18.0.0","lexical":">=0.43.0","react-dom":">=18.0.0","@lexical/code":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/react":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","@lexical/history":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/teieditor_4.0.0_1787331053080_0.9945985705589457","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"@teispace/teieditor","version":"4.0.1","description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","type":"module","license":"MIT","author":{"name":"Teispace"},"repository":{"type":"git","url":"git+https://github.com/teispace/npm-packages.git","directory":"packages/teieditor"},"homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"sideEffects":["*.css"],"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","bin":{"teieditor":"dist/cli/index.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js","default":"./dist/core/index.js"},"./extensions":{"types":"./dist/extensions/index.d.ts","import":"./dist/extensions/index.js","default":"./dist/extensions/index.js"},"./extensions/*":{"types":"./dist/extensions/*/index.d.ts","import":"./dist/extensions/*/index.js","default":"./dist/extensions/*/index.js"},"./plugins":{"types":"./dist/plugins/index.d.ts","import":"./dist/plugins/index.js","default":"./dist/plugins/index.js"},"./themes":{"types":"./dist/themes/index.d.ts","import":"./dist/themes/index.js","default":"./dist/themes/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js","default":"./dist/utils/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.js","default":"./dist/react/index.js"},"./styles.css":"./styles.css","./tailwind.css":"./tailwind.css","./package.json":"./package.json"},"scripts":{"build":"NODE_OPTIONS='--max-old-space-size=8192' tsup && rm -rf registry && mkdir -p registry && cp -r src/registry/ui registry/ui && cp -r src/registry/components registry/components && cp -r src/registry/editors registry/editors && yarn registry:build","registry:build":"tsx src/registry/build-registry.ts","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","test:cov":"vitest run --coverage","type-check":"tsc --noEmit","clean":"rm -rf dist","prepublishOnly":"yarn clean && yarn build"},"engines":{"node":">=20.9.0"},"peerDependencies":{"@lexical/code":">=0.43.0","@lexical/history":">=0.43.0","@lexical/html":">=0.43.0","@lexical/link":">=0.43.0","@lexical/list":">=0.43.0","@lexical/markdown":">=0.43.0","@lexical/react":">=0.43.0","@lexical/rich-text":">=0.43.0","@lexical/selection":">=0.43.0","@lexical/table":">=0.43.0","@lexical/utils":">=0.43.0","lexical":">=0.43.0","react":">=18.0.0","react-dom":">=18.0.0"},"peerDependenciesMeta":{"@lexical/code":{"optional":true},"@lexical/link":{"optional":true},"@lexical/list":{"optional":true},"@lexical/table":{"optional":true}},"dependencies":{"commander":"^15.0.0","ora":"^9.4.1","picocolors":"^1.1.1"},"devDependencies":{"@lexical/code":"^0.49.0","@lexical/history":"^0.49.0","@lexical/html":"^0.49.0","@lexical/link":"^0.49.0","@lexical/list":"^0.49.0","@lexical/markdown":"^0.49.0","@lexical/react":"^0.49.0","@lexical/rich-text":"^0.49.0","@lexical/selection":"^0.49.0","@lexical/table":"^0.49.0","@lexical/utils":"^0.49.0","@testing-library/react":"^16.3.2","@types/node":"^26.2.0","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","jsdom":"^30.0.1","lexical":"^0.49.0","react":"^19.2.8","react-dom":"^19.2.8","tsup":"^8.5.1","tsx":"^4.23.12","typescript":"^6.0.3","vite":"^8.0.10","vitest":"^5.0.0"},"gitHead":"422263b3f16348c3f7fbb5f06d3ec00b43cd54c0","_id":"@teispace/teieditor@4.0.1","_nodeVersion":"24.20.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-gxhO1/DRVZiO2rLHPJkEZD4CXhZ0NRd9O/sB214FLGL4U/+aj0B/ErbMins/Zy4MGu74e4+peanTnHXHwTFjSg==","shasum":"a2e8366569ad0aa7ee51711c348ad785b24d91a9","tarball":"https://registry.npmjs.org/@teispace/teieditor/-/teieditor-4.0.1.tgz","fileCount":218,"unpackedSize":661071,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@teispace%2fteieditor@4.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICkxS45JpzjzO9dmFa4IVdnMm23HajMIAm7P3mIsNvReAiAJ8dTn0rr1jzngvO/zXAcRNuCNOkfpEdcCnLL3nIpkDw=="}]},"_npmUser":{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"},"directories":{},"maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/teieditor_4.0.1_1788690629078_0.2671770318228395"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-14T04:11:59.479Z","modified":"2026-09-06T10:30:29.556Z","0.0.1":"2025-05-10T05:42:01.691Z","0.0.1-beta.0":"2025-05-10T05:50:41.463Z","0.0.1-beta.1":"2025-05-10T08:37:39.459Z","0.0.2-beta.2":"2025-05-10T08:42:34.234Z","0.1.0":"2025-05-10T10:39:27.778Z","0.1.1":"2025-05-10T10:41:00.533Z","0.1.11":"2025-05-10T10:46:59.218Z","0.1.12":"2025-05-14T04:11:59.739Z","0.1.121":"2025-05-14T04:19:37.792Z","1.1.0":"2026-04-10T06:57:10.700Z","1.2.0":"2026-04-10T10:42:28.980Z","1.3.0":"2026-04-10T12:29:45.379Z","1.4.0":"2026-04-10T12:45:07.715Z","1.5.0":"2026-04-23T11:28:02.712Z","1.5.1":"2026-04-24T05:29:02.771Z","1.5.2":"2026-04-26T13:36:51.966Z","1.5.4":"2026-05-02T04:26:43.142Z","1.5.5":"2026-05-06T13:56:37.203Z","1.5.6":"2026-05-18T10:14:24.106Z","2.0.0":"2026-05-31T04:23:19.511Z","2.0.1":"2026-05-31T06:26:57.637Z","2.0.2":"2026-05-31T07:49:08.118Z","2.0.3":"2026-06-07T16:55:28.901Z","3.0.0":"2026-06-20T12:59:45.857Z","3.0.1":"2026-06-28T09:24:33.405Z","4.0.0":"2026-08-21T16:50:53.227Z","4.0.1":"2026-09-06T10:30:29.235Z"},"bugs":{"url":"https://github.com/teispace/npm-packages/issues"},"author":{"name":"Teispace"},"license":"MIT","homepage":"https://github.com/teispace/npm-packages/tree/main/packages/teieditor#readme","keywords":["editor","rich-text","lexical","wysiwyg","text-editor","react","tailwindcss","shadcn","notion-like","customizable"],"repository":{"type":"git","url":"git+https://github.com/teispace/npm-packages.git","directory":"packages/teieditor"},"description":"A feature-rich, lightweight, fully customizable text editor built on Lexical. shadcn-style — install, use, customize.","maintainers":[{"name":"iamkrishnaa","email":"krishna.forkhaki@gmail.com"}],"readme":"<div align=\"center\">\n\n# @teispace/teieditor\n\nA feature-rich, lightweight, fully customizable rich text editor built on [Lexical](https://lexical.dev).\n\n**shadcn-style** — UI lives in your project. You own the code. Fully customizable. No vendor lock-in.\n\n[![npm version](https://img.shields.io/npm/v/@teispace/teieditor.svg)](https://www.npmjs.com/package/@teispace/teieditor)\n[![license](https://img.shields.io/npm/l/@teispace/teieditor.svg)](https://github.com/teispace/npm-packages/blob/main/packages/teieditor/LICENSE)\n[![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue.svg)](https://www.typescriptlang.org/)\n\n</div>\n\n---\n\n## Why TeiEditor?\n\n|                   | TeiEditor                   | Tiptap            | Plate.js        | LexKit     |\n| ----------------- | --------------------------- | ----------------- | --------------- | ---------- |\n| **Foundation**    | Lexical (Meta)              | ProseMirror       | Slate           | Lexical    |\n| **Extensions**    | 48 built-in                 | 100+ (many paid)  | 40+             | 25+        |\n| **Cost**          | Free & open source          | Paid pro features | Free            | Free       |\n| **Customization** | shadcn-style (own the code) | Props/CSS only    | shadcn registry | Headless   |\n| **Format I/O**    | HTML, Markdown, JSON, Text  | HTML, JSON        | HTML, JSON      | HTML, JSON |\n| **Editor Modes**  | Full WYSIWYG, Notion-style  | WYSIWYG only      | WYSIWYG         | Headless   |\n| **Theming**       | CSS variables (`--tei-*`)   | CSS               | CSS variables    | CSS        |\n\n---\n\n## Features\n\n### Text Formatting\nBold, Italic, Underline, Strikethrough, Inline Code, Highlight, Subscript, Superscript, Font Size (+/- controls), Font Family (6 families), Text Color, Background Color, Clear Formatting\n\n### Block Types\nHeadings (H1-H6), Paragraphs, Blockquotes, Code Blocks (syntax highlighting, language selector, copy button), Callouts (info/warning/error/success), Collapsible/Toggle (3-node structure: container + editable title + editable content), Horizontal Rules, Page Breaks\n\n### Lists\nOrdered, Unordered, Checklists with nesting and max indent control\n\n### Media & Embeds\nImages (upload dialog, URL input, paste, drag & drop, resize handles), Tables (cell resizer, hover \"+\" buttons for rows/columns, right-click context menu), YouTube embeds, Twitter/X embeds, Figma embeds, Generic URL embeds, File attachments\n\n### Layout\nColumn layout system (2-col, 3-col, etc.), Element alignment (left/center/right/justify), Indent/Outdent\n\n### Floating UI\n- **Toolbar** (Full mode) — Undo/redo, block type, font family/size with +/-, text formatting (8 formats), colors, link, clear formatting, alignment, indent, insert dropdown\n- **Bubble Menu** — Floating format bar on text selection with bold, italic, underline, strikethrough, code, highlight, subscript, superscript, and link toggle\n- **Slash Menu** — Type `/` for a grouped command palette with 25+ commands (text, headings, lists, blocks, media, callouts)\n- **Link Editor** — Floating view/edit modes with URL validation, \"open in new tab\" toggle, auto-https prefix\n- **Code Action Menu** — Floating language selector + copy button on code blocks\n- **Table Menu** — Right-click context menu: insert/delete rows & columns, delete table\n- **Table Hover Actions** — \"+\" buttons on table edges for quick row/column insertion\n- **Table Cell Resizer** — Drag column borders to resize\n- **Context Menu** — Right-click any block: copy, cut, paste, duplicate, delete — with proper icons and keyboard shortcut hints\n- **Auto-Embed** — Paste a YouTube/Twitter/Figma URL and get an \"Embed this?\" popup\n- **Emoji Picker** — Type `:` followed by a keyword (e.g. `:fire`) for emoji suggestions\n- **Drag Handle** — Grip icon + \"+\" button on block hover for reordering and insertion\n\n### Notion-like UX\nSlash commands (`/`), floating bubble menu, drag-handle block reordering, per-block placeholders, turn-into block conversion — all wired and working out of the box\n\n### Advanced\n@Mentions (configurable trigger, async search), Emoji (`:` trigger), Live Markdown shortcuts, Find & Replace, Word Count, Table of Contents, Math/KaTeX blocks (optional peer dep), DateTime insertion\n\n### I/O\nImport & export in 4 formats: HTML, Markdown, JSON (lossless), Plain Text. Mix input/output formats freely.\n\n### DX\nTypeScript strict mode, 55+ subpath exports, tree-shakable ESM, `sideEffects: false`, CSS variable theming, dark mode, SSR-safe\n\n---\n\n## Architecture\n\n```\nnpm package (headless core, tree-shakable)\n├── core/           createTeiEditor, BaseExtension, TeiEditorProvider, useTeiEditor\n├── extensions/     48 extensions — nodes, plugins, configs, commands\n├── plugins/        Lexical plugins:\n│   ├── toolbar-context.tsx       Shared ToolbarProvider + useToolbarState hook\n│   ├── code-action-menu-plugin   Floating code block actions\n│   ├── table-cell-resizer-plugin Drag-to-resize table columns\n│   ├── table-hover-actions-plugin \"+\" buttons on table edges\n│   ├── auto-embed-plugin         URL detection on paste\n│   ├── emoji-picker-plugin       \":\" triggered emoji typeahead\n│   └── ...                       EditorContent, OnChange, InitialValue, etc.\n├── themes/         CSS variable system (--tei-*) + comprehensive default theme\n├── utils/          Serialization (4 formats), positioning, format helpers\n└── cli/            npx teieditor init/add/list\n\nregistry/ (copied to your project via CLI — you own these files)\n├── ui/             Primitives: button, dropdown, modal, color-picker,\n│                   image-resizer, separator, input, icons (40+ inline SVGs)\n├── components/     Feature UI:\n│   ├── toolbar/    Modular toolbar (block type, font family/size, 8 format\n│   │               buttons, colors, link, clear, alignment, indent, insert)\n│   ├── bubble-menu/  Floating format bar (10 buttons + link)\n│   ├── slash-menu/   Grouped command palette (25+ commands)\n│   ├── link-editor/  Floating view/edit with URL validation\n│   ├── table-menu/   Right-click table operations\n│   ├── context-menu/ Right-click block actions with shortcut hints\n│   ├── mention-list/ Avatar-initialed suggestions\n│   └── emoji-picker/ Emoji suggestions\n└── editors/        Presets:\n    ├── editor.tsx         Full WYSIWYG (toolbar + all floating UI)\n    └── editor-notion.tsx  Notion-style (no toolbar, slash + bubble + drag)\n```\n\n---\n\n## Table of Contents\n\n- [Quick Start](#quick-start)\n- [Editor Modes](#editor-modes)\n- [CLI](#cli)\n- [shadcn Registry](#shadcn-registry)\n- [Content Formats](#content-formats)\n- [Plugin System](#plugin-system)\n- [Extensions](#extensions)\n- [Creating Custom Extensions](#creating-custom-extensions)\n- [Theming](#theming)\n- [Keyboard Shortcuts](#keyboard-shortcuts)\n- [Props Reference](#props-reference)\n- [Collaboration & Advanced Lexical Config](#collaboration--advanced-lexical-config)\n- [Peer Dependencies](#peer-dependencies)\n- [Next.js & SSR](#nextjs--ssr)\n- [Mobile & touch](#mobile--touch)\n- [Troubleshooting](#troubleshooting)\n- [Upgrading from 3.0.x](#upgrading-from-30x)\n- [Contributing](#contributing)\n\n---\n\n## Quick Start\n\nTwo adoption paths. Pick one — both use the same underlying primitives.\n\n### Path A — Drop-in (recommended for most apps)\n\nOne command install, one import, one component. Batteries-included.\n\n```bash\nnpm install @teispace/teieditor lexical @lexical/react @lexical/rich-text \\\n  @lexical/selection @lexical/utils @lexical/history @lexical/html \\\n  @lexical/list @lexical/link @lexical/code @lexical/table @lexical/markdown\n```\n\n```tsx\n'use client';\nimport { TeiEditor } from '@teispace/teieditor/react';\nimport '@teispace/teieditor/styles.css'; // once, anywhere in your app\n\nexport default function Page() {\n  return <TeiEditor onChange={(html) => console.log(html)} />;\n}\n```\n\nThat's it. Full editor with toolbar, bubble menu, slash commands (`/`), tables, mentions (`@`), emoji (`:`), code blocks, auto-embed, and everything else — all wired together.\n\n### Path B — Scaffold (own the UI source)\n\nWant to fork, reskin, or delete pieces? Scaffold the UI into your project — shadcn-style.\n\n```bash\nnpm install @teispace/teieditor # + the same lexical peers as above\nnpx teieditor init\n```\n\nCopies 25 `.tsx` files into `src/components/teieditor/`. You own them — edit freely, commit to git.\n\n```tsx\nimport { TeiEditor } from '@/components/teieditor/editors/editor';\nimport '@teispace/teieditor/styles.css';\n\nexport default function Page() {\n  return <TeiEditor onChange={(html) => console.log(html)} />;\n}\n```\n\nLater, `npx teieditor update` re-syncs the files you haven't modified; your local edits are detected (by hash) and left alone.\n\n### Tailwind v4 (required for default styling)\n\nThe drop-in UI uses Tailwind utility classes. Add this to your main CSS:\n\n```css\n@import \"tailwindcss\";\n@import \"@teispace/teieditor/tailwind.css\";\n```\n\nThe `tailwind.css` file tells Tailwind to scan the package's compiled output so utilities used by the drop-in components land in your bundle. If you'd rather manage sources yourself, import `@teispace/teieditor/styles.css` (variables only) and add the package dir to your own `@source` directive.\n\n---\n\n## Editor Modes\n\n### Full WYSIWYG (default)\n\n```tsx\nimport { TeiEditor } from '@/components/teieditor/editors/editor';\n\n<TeiEditor onChange={setContent} showToolbar showBubbleMenu />\n```\n\nEverything enabled: fixed toolbar at top, floating bubble menu on selection, slash commands, link editor, code action menu on code blocks, table cell resizer + hover actions + context menu, auto-embed on URL paste, emoji picker with `:` trigger, and block-level context menu on right-click.\n\n**Toolbar sections:** Undo/Redo | Block Type Dropdown | Font Family | Font Size (+/-) | Bold, Italic, Underline, Strikethrough, Code, Highlight, Subscript, Superscript | Text/BG Color | Link | Clear Formatting | Alignment | Indent/Outdent | Insert Dropdown (Image, Table, Embed, Callout, Collapsible, Horizontal Rule)\n\n### Notion-style\n\n```tsx\nimport { TeiEditorNotion } from '@/components/teieditor/editors/editor-notion';\n\n<TeiEditorNotion onChange={setContent} />\n```\n\nNo toolbar. All formatting via:\n- **`/` Slash commands** — 25+ grouped commands for inserting any block type\n- **Bubble menu** — Floating format bar on text selection (10 format buttons + link)\n- **Drag handles** — Grip icon with \"+\" button on block hover\n- **Keyboard shortcuts** — All formatting shortcuts work\n- Plus: code action menu, table plugins, context menu, auto-embed, emoji picker\n\n---\n\n## CLI\n\n```bash\nnpx teieditor init                      # Scaffold the full UI tree (25 files)\nnpx teieditor init --path src/editor    # Custom output directory\nnpx teieditor init --force              # Overwrite existing files (destructive)\n\nnpx teieditor update                    # Re-sync unmodified files with the latest registry\nnpx teieditor update --force            # Overwrite even your local edits (destructive)\n\nnpx teieditor add toolbar               # Scaffold one group (pulls deps)\nnpx teieditor list                      # List available groups\n```\n\n**Groups** are independently-scaffoldable slices of the registry: `ui`, `toolbar`, `bubble-menu`, `slash-menu`, `link-editor`, `mention-list`, `table-menu`, `context-menu`, `code-bar`, `editor`. Use `add <group>` to pull just one slice.\n\n**Safe updates:** `teieditor update` compares each file's hash against the registry. Files you've edited are marked `modified locally` and left untouched — only unmodified defaults get updated. Opt in to clobber with `--force`.\n\n---\n\n## shadcn Registry\n\nThe same components the CLI scaffolds are also published as a\n[shadcn-spec registry](https://ui.shadcn.com/docs/registry), so `npx shadcn add`\nand coding agents can consume them:\n\n```bash\nnpx shadcn@latest add https://<your-host>/r/editor.json   # full editor + all deps\nnpx shadcn@latest add https://<your-host>/r/toolbar.json  # one slice\n```\n\n### What gets generated\n\n`yarn registry:build` (also run as part of `yarn build`) reads the same `GROUPS`\narray the CLI uses — `src/registry/manifest.ts` — and writes:\n\n| Artifact | Contents |\n|----------|----------|\n| `registry.json` | Source manifest — one item per group, no file contents |\n| `r/registry.json` | The same manifest, served next to the items |\n| `r/<item>.json` | One built item per group, file contents inlined |\n\nEach item carries:\n\n- **`type`** — `registry:ui` for the primitives, `registry:component` for the\n  floating menus, `registry:block` for the editor presets.\n- **`dependencies`** — derived by scanning the real imports. Our registry files\n  are deliberately **not** self-contained: they import from\n  `@teispace/teieditor/{core,plugins,utils,extensions/*}`, the same way Plate's\n  registry does. That is expressed as an npm dependency, pinned to the version\n  that generated the registry.\n- **`registryDependencies`** — the `GROUPS` dependency graph, 1:1.\n- **`files[{path,type,target}]`** — targets are\n  `@components/teieditor/<path>`, which preserves the folder layout the files'\n  relative imports rely on.\n- **`cssVars`** — the `--tei-*` design tokens for light and dark, attached to\n  the root `ui` item, so `shadcn add` injects them and you don't have to\n  `import '@teispace/teieditor/styles.css'` just to get the tokens. (You still\n  want `tailwind.css` for the utility classes — see below.)\n\n### Serving it\n\nThe generator does not deploy anything; it only produces static JSON. Point\n`shadcn add` at wherever you serve `r/` from — the files are shipped inside the\nnpm package, so any of these works:\n\n```bash\n# 1. Straight off a CDN mirror of the npm package\nnpx shadcn@latest add https://unpkg.com/@teispace/teieditor/r/editor.json\n\n# 2. Your own static host / docs site — copy `r/` into `public/r/`\nnpx shadcn@latest add https://your-docs-site.com/r/editor.json\n\n# 3. Locally, from a checkout\nnpx shadcn@latest add ./node_modules/@teispace/teieditor/r/editor.json\n```\n\nCross-item references default to relative paths (`./ui.json`) so a directory of\nJSON files is self-consistent wherever it is served from. Building for a fixed\nhost? Emit absolute URLs instead:\n\n```bash\nyarn workspace @teispace/teieditor registry:build --base-url https://your-docs-site.com/r\n```\n\n### Registry vs. CLI\n\nBoth scaffold identical files. Pick whichever fits:\n\n| | `npx teieditor init/add` | `npx shadcn add <url>` |\n|--|--|--|\n| Drift detection | Yes — SHA-256 per file, your edits are never clobbered | No |\n| `update` command | Yes | No |\n| Design tokens | Manual `styles.css` import | Injected via `cssVars` |\n| Agent/tooling support | teieditor-specific | Standard shadcn tooling |\n\n---\n\n## Content Formats\n\nImport and export in 4 formats. Mix them freely.\n\n```tsx\n// Default: HTML in/out\n<TeiEditor onChange={setContent} />\n\n// Markdown round-trip\n<TeiEditor initialValue=\"# Hello\" initialFormat=\"markdown\" onChange={setMd} format=\"markdown\" />\n\n// HTML in, Markdown out\n<TeiEditor initialValue=\"<h1>Hello</h1>\" initialFormat=\"html\" onChange={setMd} format=\"markdown\" />\n\n// JSON round-trip (lossless — best for databases)\n<TeiEditor initialValue={savedJson} initialFormat=\"json\" onChange={save} format=\"json\" />\n\n// Programmatic serialization\nimport { serialize, deserialize } from '@teispace/teieditor/utils';\nconst md = serialize(editor, 'markdown');\ndeserialize(editor, htmlString, 'html');\n```\n\n| Format | Lossless | Best for |\n|--------|----------|----------|\n| **JSON** | Yes | Database persistence |\n| **HTML** | Mostly | Rendering, emails, CMS |\n| **Markdown** | Partial | Docs, git-friendly content |\n| **Text** | No | Search indexing, previews |\n\n---\n\n## Plugin System\n\nTeiEditor includes a rich set of Lexical plugins that power the editor's floating UI and enhanced features. All plugins are available from `@teispace/teieditor/plugins`:\n\n### Shared State: ToolbarContext\n\nThe `ToolbarProvider` and `useToolbarState()` hook provide shared, selection-aware toolbar state to all components — the toolbar, bubble menu, and text color buttons all read from the same source of truth.\n\n```tsx\nimport { useToolbarState } from '@teispace/teieditor/plugins';\n\nfunction MyCustomToolbar() {\n  const toolbar = useToolbarState();\n  // toolbar.blockType, toolbar.activeFormats, toolbar.fontFamily, toolbar.fontSize,\n  // toolbar.fontColor, toolbar.bgColor, toolbar.canUndo, toolbar.canRedo, toolbar.isLink\n  // toolbar.toggleFormat('bold'), toolbar.applyFontFamily('Georgia'), etc.\n}\n```\n\n**State tracked:** `blockType`, `activeFormats` (Set of text formats), `elementFormat` (alignment), `canUndo`/`canRedo`, `isLink`, `fontFamily`, `fontSize`, `fontColor`, `bgColor`, `codeLanguage`, `rootType`, `activeEditor`\n\n**Actions available:** `toggleFormat()`, `setAlignment()`, `applyFontFamily()`, `applyFontSize()`, `applyFontColor()`, `applyBgColor()`, `clearFormatting()`\n\n### Built-in Plugins\n\n| Plugin | Purpose |\n|--------|---------|\n| `EditorContent` | Main editor rendering area with placeholder |\n| `OnChangePlugin` | Content change callback with format conversion |\n| `InitialValuePlugin` | Sets editor content on mount (any format) |\n| `KeyboardShortcutsPlugin` | Collects and registers shortcuts from all extensions |\n| `TabIndentationPlugin` | Tab/Shift+Tab for indentation |\n| `ClickableLinkPlugin` | Makes links clickable |\n| `CodeActionMenuPlugin` | Floating language selector + copy on code blocks |\n| `TableCellResizerPlugin` | Drag-to-resize table column widths |\n| `TableHoverActionsPlugin` | \"+\" buttons on table edges for adding rows/columns |\n| `AutoEmbedPlugin` | Detects YouTube/Twitter/Figma URLs on paste |\n| `EmojiPickerPlugin` | \":\" triggered emoji typeahead menu |\n\n---\n\n## Extensions\n\n### 46 Built-in Extensions\n\n#### Text Formatting\nBold, Italic, Underline, Strikethrough, InlineCode, Highlight, Subscript, Superscript\n\n#### Block-Level\nHeading (H1-H6), Paragraph, Blockquote, HorizontalRule, CodeBlock (syntax highlighting + language selector + copy), Callout (info/warning/error/success), Toggle/Collapsible (3-node: container + editable title + editable content), PageBreak\n\n#### Lists\nList (ordered/unordered/checklist), ListMaxIndent\n\n#### Media & Embeds\nImage (upload dialog + URL input, resize handles), Table (cell resizer + hover actions + context menu), YouTube, Twitter/X, Figma, Embed (generic URL), File attachment\n\n#### Layout & Alignment\nLayout (column system), Alignment (left/center/right/justify), FontSize (+/- controls), FontFamily (6 families), Color (text + background)\n\n#### Notion-like UX\nSlashCommand (25+ commands, grouped, extensible), DragHandle (grip + \"+\" button), Placeholder (per-block-type), TurnInto, DragDropPaste\n\n#### Advanced\nMention (@trigger, async search), Emoji (:trigger), Markdown (live shortcuts), FindReplace (Ctrl+F), WordCount, TOC (useToc hook), Math/KaTeX (optional peer dep), DateTime, MaxLength, History\n\n### Slash Commands (25+)\n\nType `/` to open the command palette. Built-in commands:\n\n| Group | Commands |\n|-------|----------|\n| **Basic** | Text |\n| **Headings** | Heading 1, 2, 3, 4, 5, 6 |\n| **Lists** | Bullet List, Numbered List, Checklist |\n| **Blocks** | Quote, Code Block, Divider, Collapsible, Info/Warning/Success/Error Callout |\n| **Media** | Image, Table, Embed |\n\nExtend with your own commands:\n\n```tsx\nimport { SlashCommand, defaultSlashCommands } from '@teispace/teieditor/extensions/slash-command';\n\nconst myCommand = {\n  name: 'myBlock',\n  label: 'My Custom Block',\n  description: 'Insert a custom block',\n  keywords: ['custom', 'block'],\n  group: 'Custom',\n  onSelect: (editor) => { /* dispatch your command */ },\n};\n\n<TeiEditor extensions={[\n  SlashCommand.configure({\n    commands: [...defaultSlashCommands, myCommand],\n  }),\n]} />\n```\n\n### Configuring Extensions\n\n```tsx\nimport { Heading } from '@teispace/teieditor/extensions/heading';\nimport { Image } from '@teispace/teieditor/extensions/image';\nimport { Mention } from '@teispace/teieditor/extensions/mention';\n\n<TeiEditor extensions={[\n  Heading.configure({ levels: ['h1', 'h2', 'h3'] }),\n  Image.configure({ onUpload: uploadFn, maxSize: 5_000_000 }),\n  Mention.configure({\n    trigger: '@',\n    onSearch: fetchUsers,\n    menuRenderFn: myCustomMentionUI,\n  }),\n]} />\n```\n\n---\n\n## Creating Custom Extensions\n\n```tsx\nimport { BaseExtension } from '@teispace/teieditor/core';\nimport { createCommand, COMMAND_PRIORITY_LOW } from 'lexical';\n\nconst MY_COMMAND = createCommand('MY_COMMAND');\n\nclass MyExtension extends BaseExtension<{ color: string }> {\n  readonly name = 'my-extension';\n  protected readonly defaults = { color: 'blue' };\n\n  getNodes() { return [MyCustomNode]; }\n  getPlugins() { return [MyPlugin]; }\n  getKeyBindings() {\n    return { 'Mod+Shift+M': (editor) => { /* ... */ return true; } };\n  }\n  onRegister(editor) {\n    return editor.registerCommand(MY_COMMAND, handler, COMMAND_PRIORITY_LOW);\n  }\n}\n\nexport const MyExt = new MyExtension();\n\n// Use it\n<TeiEditor extensions={[MyExt.configure({ color: 'red' })]} />\n```\n\n### Extension lifecycle\n\n1. `getNodes()` — Return custom Lexical node classes to register\n2. `getPlugins()` — Return React components to mount inside the editor\n3. `getKeyBindings()` — Return `{ 'Mod+B': handler }` shortcut mappings\n4. `onRegister(editor)` — Called when the editor mounts; register commands, transforms, listeners. Return a cleanup function.\n5. `onDestroy()` — Called when the editor unmounts\n6. `configure(overrides)` — Returns a new instance with merged config (immutable)\n\n---\n\n## Theming\n\nAll colors use CSS custom properties. Override in your global CSS:\n\n```css\n:root {\n  --tei-bg: 0 0% 100%;\n  --tei-fg: 0 0% 3.9%;\n  --tei-border: 0 0% 89.8%;\n  --tei-primary: 0 0% 9%;\n  --tei-primary-fg: 0 0% 98%;\n  --tei-accent: 0 0% 96.1%;\n  --tei-accent-fg: 0 0% 9%;\n  --tei-muted: 0 0% 96.1%;\n  --tei-muted-fg: 0 0% 45.1%;\n  --tei-popover: 0 0% 100%;\n  --tei-popover-fg: 0 0% 3.9%;\n  --tei-selection: 214 95% 93%;\n  --tei-highlight: 48 96% 89%;\n  --tei-bubble-bg: 0 0% 9%;\n  --tei-bubble-fg: 0 0% 98%;\n  --tei-toolbar-bg: 0 0% 100%;\n  --tei-toolbar-border: 0 0% 89.8%;\n  --tei-drag-handle: 0 0% 45%;\n  --tei-ring: 0 0% 63.9%;\n  --tei-radius: 0.5rem;\n}\n\n.dark {\n  --tei-bg: 0 0% 3.9%;\n  --tei-fg: 0 0% 98%;\n  --tei-border: 0 0% 14.9%;\n  --tei-primary: 0 0% 98%;\n  --tei-primary-fg: 0 0% 9%;\n  --tei-accent: 0 0% 14.9%;\n  --tei-accent-fg: 0 0% 98%;\n  --tei-muted: 0 0% 14.9%;\n  --tei-muted-fg: 0 0% 63.9%;\n  --tei-popover: 0 0% 7%;\n  --tei-popover-fg: 0 0% 98%;\n  --tei-selection: 214 59% 25%;\n  --tei-highlight: 48 40% 30%;\n  --tei-bubble-bg: 0 0% 15%;\n  --tei-bubble-fg: 0 0% 98%;\n  --tei-toolbar-bg: 0 0% 5%;\n  --tei-toolbar-border: 0 0% 14.9%;\n}\n```\n\nOr override the Lexical theme object:\n\n```tsx\nimport { defaultTheme } from '@teispace/teieditor/themes';\n\nconst editor = createTeiEditor({\n  theme: { ...defaultTheme, paragraph: 'my-custom-paragraph-class' },\n});\n```\n\n### Theme Coverage\n\nThe default theme includes classes for:\n- Root, paragraphs, headings (h1-h6), text formats (9 types), blockquotes\n- Lists (ordered/unordered/checklist with 5-level nesting depth)\n- Links, code blocks (30+ syntax highlight tokens)\n- Tables (cell, header, selection, resizer, sorted indicator, scroll wrapper)\n- Horizontal rule, embed blocks (base + focus), collapsible (container/title/content)\n- Layout (container/item), block cursor, character limit\n- Images, mentions, page breaks\n- Indent levels (1-10)\n\n---\n\n## Keyboard Shortcuts\n\n| Shortcut | Action | | Shortcut | Action |\n|----------|--------|-|----------|--------|\n| `Ctrl+B` | Bold | | `Ctrl+Shift+7` | Ordered List |\n| `Ctrl+I` | Italic | | `Ctrl+Shift+8` | Bullet List |\n| `Ctrl+U` | Underline | | `Ctrl+Shift+9` | Checklist |\n| `Ctrl+E` | Inline Code | | `Ctrl+Shift+H` | Highlight |\n| `Ctrl+K` | Link Editor | | `Ctrl+Shift+S` | Strikethrough |\n| `Ctrl+F` | Find & Replace | | `Tab / Shift+Tab` | Indent / Outdent |\n| `Ctrl+Z` | Undo | | `/` | Slash Commands |\n| `Ctrl+Y` | Redo | | `@` | Mentions |\n| `Ctrl+A` | Select All | | `:` + text | Emoji Picker |\n\nOn macOS, `Ctrl` becomes `Cmd`.\n\n**Markdown shortcuts:** `#` heading, `##` h2, `###` h3, `>` quote, `` ``` `` code block, `- ` bullet list, `1. ` numbered list, `**bold**`, `*italic*`, `` `code` ``, `~~strike~~`, `[text](url)`, `---` horizontal rule\n\n---\n\n## Props Reference\n\n### `<TeiEditor>` (Full Mode)\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `extensions` | `TeiExtension[]` | `[]` | Additional extensions beyond StarterKit |\n| `initialValue` | `string` | — | Initial content |\n| `initialFormat` | `'html' \\| 'markdown' \\| 'json' \\| 'text'` | `'html'` | Format of initial value |\n| `onChange` | `(value: string) => void` | — | Content change callback |\n| `format` | `'html' \\| 'markdown' \\| 'json' \\| 'text'` | `'html'` | Output format |\n| `placeholder` | `string` | `'Start writing...'` | Placeholder text |\n| `showToolbar` | `boolean` | `true` | Show fixed toolbar |\n| `showBubbleMenu` | `boolean` | `true` | Show floating format bar on selection |\n| `showWordCount` | `boolean` | `true` | Show the word/character status bar below the content |\n| `readOnly` | `boolean` | `false` | Read-only mode |\n| `className` | `string` | — | Wrapper CSS class |\n| `editorClassName` | `string` | — | Editor content area CSS class |\n| `config` | `TeiEditorConfigOverrides` | — | Advanced editor config overrides (everything except `extensions` / `editable`, which the `extensions` and `readOnly` props own) |\n\n### `<TeiEditorNotion>` (Notion Mode)\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `extensions` | `TeiExtension[]` | `[]` | Additional extensions beyond StarterKit |\n| `initialValue` | `string` | — | Initial content |\n| `initialFormat` | `'html' \\| 'markdown' \\| 'json' \\| 'text'` | `'html'` | Format of initial value |\n| `onChange` | `(value: string) => void` | — | Content change callback |\n| `format` | `'html' \\| 'markdown' \\| 'json' \\| 'text'` | `'html'` | Output format |\n| `placeholder` | `string` | `\"Type '/' for commands...\"` | Placeholder text |\n| `showWordCount` | `boolean` | `false` | Show the word/character status bar (off by default — Notion mode is chrome-free) |\n| `readOnly` | `boolean` | `false` | Read-only mode |\n| `className` | `string` | — | Wrapper CSS class |\n| `editorClassName` | `string` | — | Editor content area CSS class |\n| `config` | `TeiEditorConfigOverrides` | — | Advanced editor config overrides (everything except `extensions` / `editable`, which the `extensions` and `readOnly` props own) |\n\n---\n\n## Collaboration & Advanced Lexical Config\n\n`createTeiEditor()` passes three optional keys straight through to\n`<LexicalComposer>`, so you are never boxed out of Lexical's own APIs.\n\n### `editorState` — required for Yjs collaboration\n\nLexical's [collaboration setup](https://lexical.dev/docs/collaboration/react)\nrequires `editorState: null` on the composer, so the collab plugin (not Lexical)\nowns the initial content. Without it Lexical seeds a default empty paragraph\nthat collides with the Yjs document.\n\n```tsx\nimport { CollaborationPlugin } from '@lexical/react/LexicalCollaborationPlugin';\nimport { createTeiEditor, TeiEditorProvider } from '@teispace/teieditor/core';\nimport { StarterKit } from '@teispace/teieditor/extensions/starter-kit';\n\nconst editor = createTeiEditor({\n  extensions: StarterKit,\n  editorState: null, // ← the collab document owns initial state\n});\n\n<TeiEditorProvider editor={editor}>\n  <CollaborationPlugin id=\"my-doc\" providerFactory={createProvider} shouldBootstrap />\n  <EditorContent />\n</TeiEditorProvider>\n```\n\n`editorState` also accepts a serialized JSON string, an `EditorState`, or an\n`(editor) => void` updater. Omit it for the default behaviour.\n\n> TeiEditor does not bundle a Yjs extension — you wire the provider yourself.\n\n### `nodes` — override a core node\n\nExtra nodes are appended after every extension-contributed node, and accept\nLexical's [node-replacement](https://lexical.dev/docs/concepts/node-replacement)\nform:\n\n```tsx\ncreateTeiEditor({\n  extensions: StarterKit,\n  nodes: [\n    MyTextNode,\n    { replace: TextNode, with: (n) => new MyTextNode(n.__text), withKlass: MyTextNode },\n  ],\n});\n```\n\n### `html` — customise HTML import/export\n\n```tsx\ncreateTeiEditor({\n  extensions: StarterKit,\n  html: {\n    import: { span: () => ({ conversion: convertSpan, priority: 1 }) },\n    export: new Map([[TextNode, exportText]]),\n  },\n});\n```\n\n### Extension chrome slot\n\nExtension plugins mount **before** your children so their Lexical commands keep\npriority over the rich-text plugin. Extensions that render visible chrome (today\njust the WordCount status bar) therefore portal into a slot you place yourself:\n\n```tsx\nimport { TeiEditorProvider, TeiEditorSlot } from '@teispace/teieditor/core';\n\n<TeiEditorProvider editor={editor}>\n  <Toolbar />\n  <EditorContent />\n  <TeiEditorSlot />   {/* ← WordCount's status bar renders here */}\n</TeiEditorProvider>\n```\n\nNo slot mounted means no chrome — a provider never sprouts UI you didn't ask\nfor. The drop-in `<TeiEditor>` places one for you (`showWordCount`).\n\n---\n\n## Peer Dependencies\n\n**Required:**\n```json\n{\n  \"react\": \">=18.0.0\",\n  \"react-dom\": \">=18.0.0\",\n  \"lexical\": \">=0.43.0\",\n  \"@lexical/react\": \">=0.43.0\",\n  \"@lexical/rich-text\": \">=0.43.0\",\n  \"@lexical/selection\": \">=0.43.0\",\n  \"@lexical/utils\": \">=0.43.0\",\n  \"@lexical/history\": \">=0.43.0\"\n}\n```\n\n**Optional (for specific extensions):**\n```json\n{\n  \"@lexical/list\": \">=0.43.0\",\n  \"@lexical/link\": \">=0.43.0\",\n  \"@lexical/code\": \">=0.43.0\",\n  \"@lexical/table\": \">=0.43.0\",\n  \"@lexical/markdown\": \">=0.43.0\",\n  \"@lexical/html\": \">=0.43.0\"\n}\n```\n\n**Optional heavy dependencies (for specific features):**\n- `katex` — For Math/KaTeX extension\n- `prettier` — For code formatting in code blocks\n\n---\n\n## Next.js & SSR\n\nTeiEditor uses browser APIs (`document`, `window.getSelection`, `matchMedia`, `localStorage`). It must render on the client.\n\n### App Router (recommended)\n\n```tsx\n// app/editor/page.tsx\n'use client';\n\nimport { TeiEditor } from '@teispace/teieditor/react';\nimport '@teispace/teieditor/styles.css';\n\nexport default function EditorPage() {\n  return <TeiEditor onChange={(html) => console.log(html)} />;\n}\n```\n\nFor pages that should stay server-rendered, import the editor inside a child client component and keep the server page itself server-only.\n\n### Avoiding hydration warnings\n\nIf you render the editor directly in a SSR-tolerant page, wrap it with `next/dynamic` to opt out of SSR entirely:\n\n```tsx\nimport dynamic from 'next/dynamic';\n\nconst TeiEditor = dynamic(\n  () => import('@teispace/teieditor/react').then((m) => m.TeiEditor),\n  { ssr: false },\n);\n```\n\nBoth patterns work; use whichever fits your page boundary.\n\n### Persisting content\n\nPrefer the JSON format for database round-trips — it's lossless:\n\n```tsx\n<TeiEditor\n  initialValue={savedJsonString}\n  initialFormat=\"json\"\n  format=\"json\"\n  onChange={async (json) => {\n    await fetch('/api/doc', { method: 'PUT', body: json });\n  }}\n/>\n```\n\nHTML is fine for rendering/email output. Markdown is good for git-friendly content but is lossy for some blocks (callouts, layouts, embeds).\n\n---\n\n## Mobile & touch\n\nFloating UI (bubble menu, slash menu, context menu, link editor, code actions) uses the VisualViewport API where available, so positions stay correct when:\n\n- The mobile soft keyboard opens or closes\n- The user pinch-zooms\n- iOS Safari's address bar collapses\n\nTap targets on toolbar buttons are 32×32 px by default (Apple's recommended minimum is 44×44 px). If you scaffold the UI you can bump `sizeStyles.icon` in `registry/ui/button.tsx` — e.g. `h-11 w-11 sm:h-8 sm:w-8` to give phones bigger targets while keeping desktop compact.\n\nDrag handles and table cell resizers are pointer-based and may be awkward to reach on touch. For primarily-mobile editors, prefer the toolbar/slash-menu flow.\n\n---\n\n## Troubleshooting\n\n**\"Package path './react' is not exported\"**\nWebpack (especially in older Next.js setups) sometimes misses ESM-only exports. Make sure you're on `@teispace/teieditor` ≥ the version that added the `default` fallback condition in each export (the current one). If you're on an older major and can't upgrade, scaffold the editor instead (`npx teieditor init`) to import from your own `src/`.\n\n**Styles aren't applying**\nTwo things to check: (1) you imported `@teispace/teieditor/styles.css` once somewhere in your app, (2) Tailwind scans the package's compiled output. The easy fix is to `@import \"@teispace/teieditor/tailwind.css\";` in your main CSS — it adds the right `@source` directive.\n\n**\"window is not defined\" during build**\nYou're rendering the editor from a server component. Either add `'use client'` at the top of the file, or import via `next/dynamic` with `ssr: false` (see Next.js & SSR above).\n\n**KaTeX / math equations aren't rendering**\nMath is an optional feature with a peer dep: `npm install katex` and `import 'katex/dist/katex.min.css'` in your app.\n\n**Extensions passed via `extensions` prop conflict with the StarterKit defaults**\nThey don't — `createTeiEditor` dedups by extension name with last-wins. You can pass `FontFamily.configure({...})` alongside the starter kit and your configured version overrides the default cleanly.\n\n**Tests: `Storage is not defined` / `document is not defined`**\nUse the `jsdom` environment: `environment: 'jsdom'` in `vitest.config.ts`. On Node 22+ you may also need a polyfill for `localStorage` — see this package's own `__tests__/setup.ts` for a reference implementation.\n\n---\n\n## Upgrading from 3.0.x\n\n### Behaviour changes\n\n**1. Five keyboard shortcuts now actually fire.**\n`Mod+Shift+7` (bullet list), `Mod+Shift+8` (numbered list), `Mod+Shift+9`\n(check list), `Mod+Shift+=` and `Mod+Shift+-` (font size) were dead. The matcher\ncompared `event.key`, which reports the **shifted** character — on a US layout\nShift+7 is `&`, not `7` — so those chords could never match. Matching now falls\nback to `event.code` (the physical key) for digits and punctuation.\n\nIf you bound your own handler to those chords expecting them to be free, they\nare now claimed by the built-in extensions.\n\nTwo related fixes: `preventDefault()` now runs only *after* a handler claims the\nevent (a handler returning `false` used to suppress the browser default anyway,\nso the key did nothing at all), and the Mac/Windows modifier is resolved per\ncall instead of once at module load — a server-evaluated copy previously latched\n`Control` forever, breaking ⌘ shortcuts.\n\n**2. The word-count bar renders at the bottom.**\n`WordCount` is in `StarterKit` and returns visible chrome, but extension plugins\nmounted **before** `children`, so the drop-in `<TeiEditor>` rendered a \"0 words\"\nbar with a top border *above* the toolbar. Extensions that render chrome now\nportal into `<TeiEditorSlot />`, which the registry editors place last.\n\n```tsx\n<TeiEditor showWordCount={false} />   // opt out\n```\n\nPlugin mount order is deliberately unchanged — reordering it would have shifted\nLexical command priority relative to `RichTextPlugin`.\n\n**3. `config` can no longer replace `extensions` or `editable`.**\nThe prop is now `TeiEditorConfigOverrides = Omit<Partial<TeiEditorConfig>, 'extensions' | 'editable'>`,\nand the spread order was fixed so explicit props win even for JS callers.\nPreviously `config={{ extensions: [X] }}` silently discarded the entire starter\nkit *and* `readOnly`. To customise extensions, use the headless\n`createTeiEditor()` path.\n\n**4. Initial content is no longer undoable.**\n`InitialValuePlugin` now writes seeded content under Lexical's\n`HISTORY_MERGE_TAG`, so Ctrl+Z can't empty the document. Because Lexical's\n`OnChangePlugin` ignores history-merge changes by default, `OnChangePlugin` now\nexposes `ignoreHistoryMergeTagChange`, defaulted to `false` to preserve the\nexisting `onChange` contract.\n\n### Packaging\n\n- **`engines` lowered to `>=20.9.0`** (was `>=24`). The package targets es2020\n  and uses only `node:crypto`/`fs`/`path`/`url`, so `>=24` excluded Node 20/22\n  LTS for no reason.\n- **`sideEffects` is now `[\"*.css\"]`** instead of `false`, which had permitted\n  bundlers to drop `import '@teispace/teieditor/styles.css'` — a bare CSS import\n  has no bindings, exactly what that flag licenses eliding.\n- **Lexical floor.** Built and tested against **0.49**. Note 0.49 made\n  `LexicalCommand<T>` invariant; if you register a handler against\n  `PASTE_COMMAND`, type it `PasteCommandType` (not `ClipboardEvent`) and narrow.\n\n### New\n\nThe [shadcn registry](#shadcn-registry), `editorState`/node-replacement/`html`\npassthrough for [collaboration](#collaboration--advanced-lexical-config), and\n`<TeiEditorSlot />` for placing extension chrome.\n\n---\n\n## Contributing\n\n```bash\ngit clone https://github.com/teispace/npm-packages.git\ncd npm-packages && yarn install\n\n# Development\ncd packages/teieditor\nyarn dev          # Watch mode\nyarn build        # Production build\nyarn type-check   # TypeScript validation\nyarn test         # Vitest (188 tests)\n\n# From root\nyarn lint         # Biome check\n```\n\n### Adding a New Extension\n\n1. Create `src/extensions/<name>/index.ts`\n2. Extend `BaseExtension` with your config type\n3. Implement `getNodes()`, `getPlugins()`, `getKeyBindings()`, `onRegister()` as needed\n4. Add to `src/extensions/index.ts` barrel\n5. Add entry to `tsup.config.ts`\n6. Optionally add to StarterKit and slash commands\n7. Add default-commands entry if it should appear in the slash menu\n\n### Adding a New Plugin\n\n1. Create `src/plugins/<name>-plugin.tsx`\n2. Export from `src/plugins/index.ts`\n3. Add to both editor presets (`editor.tsx` and `editor-notion.tsx`) if it should always be active\n\nSee [CONTRIBUTING.md](../../CONTRIBUTING.md) for full guidelines.\n\n---\n\n## License\n\nMIT — free for personal and commercial use.\n","readmeFilename":"README.md"}