{"_id":"@carbon-labs/wc-wysiwyg","_rev":"5-60b51bfcb39eb647a29bf93a30e09d77","name":"@carbon-labs/wc-wysiwyg","dist-tags":{"latest":"0.4.0"},"versions":{"0.1.0":{"name":"@carbon-labs/wc-wysiwyg","version":"0.1.0","keywords":["carbon","carbon-labs","web-components","wysiwyg","rich-text-editor","editor","tiptap","text-editor","content-editor"],"author":{"name":"Your Name","email":"your@email.com"},"license":"Apache-2.0","_id":"@carbon-labs/wc-wysiwyg@0.1.0","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"tay1orjones","email":"taylor.jones826@gmail.com"},{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},{"name":"ibmdesign","email":"ibmdesign@us.ibm.com"},{"name":"jeffreychew","email":"jeff.chew@gmail.com"}],"homepage":"https://github.com/carbon-design-system/carbon-labs#readme","bugs":{"url":"https://github.com/carbon-design-system/carbon-labs/issues"},"dist":{"shasum":"6b89c66b62f24201c128e4c27d738b4478846a57","tarball":"https://registry.npmjs.org/@carbon-labs/wc-wysiwyg/-/wc-wysiwyg-0.1.0.tgz","fileCount":127,"integrity":"sha512-dhTINFf8lHK8SxUe1ic3kimSdJiy9maxIfoFXlSMs10oXQG5GJUvAyRdEDt1xoozWJ3Gc6JBbzJ+n3CRa/+LEg==","signatures":[{"sig":"MEUCIAQOVAT6Ti6I9bpiqfj8bw5rzZ1hB2xrllQ+Fbd7tX72AiEAsJ6nuos9OYaFdVY9R81dukquWCvzoEGjStmWhuxErVY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@carbon-labs%2fwc-wysiwyg@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":614080},"types":"./src/index.d.ts","exports":{".":{"default":"./src/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"gitHead":"ce7cdba314e1ee08e9b6f43585d7d2c3b17052f2","scripts":{"build":"node ../../../tasks/build.js","clean":"rimraf es lib","build:dist":"rm -rf dist && rollup --config ../../../tasks/build-dist.js","build:dist:canary":"rm -rf dist && rollup --config ../../../tasks/build-dist.js --configCanary"},"_npmUser":{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},"repository":{"url":"git+https://github.com/carbon-design-system/carbon-labs.git","type":"git","directory":"packages/wysiwyg"},"_npmVersion":"lerna/9.0.7/node@v22.22.3+x64 (linux)","description":"Carbon Labs - wysiwyg component","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@tiptap/pm":"3.25.0","@tiptap/core":"3.25.0","@babel/runtime":"^7.23.2","@carbon-labs/utilities":"0.28.0","@carbon/element-styles":"^0.2.5","@carbon/web-components":"^2.40.0","@tiptap/extension-bold":"3.25.0","@tiptap/extension-code":"3.25.0","@tiptap/extension-link":"3.25.0","@tiptap/extension-list":"3.25.0","@tiptap/extension-text":"3.25.0","@tiptap/extension-color":"3.25.0","@tiptap/extension-image":"3.25.0","@tiptap/extension-table":"3.25.0","@tiptap/extension-italic":"3.25.0","@tiptap/extension-strike":"3.25.0","@tiptap/extension-heading":"3.25.0","@tiptap/extension-document":"3.25.0","@tiptap/extension-highlight":"3.25.0","@tiptap/extension-list-item":"3.25.0","@tiptap/extension-paragraph":"3.25.0","@tiptap/extension-table-row":"3.25.0","@tiptap/extension-task-item":"3.25.0","@tiptap/extension-task-list":"3.25.0","@tiptap/extension-underline":"3.25.0","@tiptap/extension-blockquote":"3.25.0","@tiptap/extension-code-block":"3.25.0","@tiptap/extension-hard-break":"3.25.0","@tiptap/extension-table-cell":"3.25.0","@tiptap/extension-text-align":"3.25.0","@tiptap/extension-text-style":"3.25.0","@tiptap/extension-bullet-list":"3.25.0","@tiptap/extension-font-family":"3.25.0","@tiptap/extension-ordered-list":"3.25.0","@tiptap/extension-table-header":"3.25.0","@tiptap/extension-horizontal-rule":"3.25.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"@tiptap/markdown":"3.25.0"},"_npmOperationalInternal":{"tmp":"tmp/wc-wysiwyg_0.1.0_1784545231514_0.5499683998071208","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@carbon-labs/wc-wysiwyg","version":"0.2.0","keywords":["carbon","carbon-labs","web-components","wysiwyg","rich-text-editor","editor","tiptap","text-editor","content-editor"],"author":{"name":"Your Name","email":"your@email.com"},"license":"Apache-2.0","_id":"@carbon-labs/wc-wysiwyg@0.2.0","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},{"name":"ibmdesign","email":"ibmdesign@us.ibm.com"},{"name":"jeffreychew","email":"jeff.chew@gmail.com"}],"homepage":"https://github.com/carbon-design-system/carbon-labs#readme","bugs":{"url":"https://github.com/carbon-design-system/carbon-labs/issues"},"dist":{"shasum":"e1cb4e49c344fe6b0c7adcd934d1452103476c0f","tarball":"https://registry.npmjs.org/@carbon-labs/wc-wysiwyg/-/wc-wysiwyg-0.2.0.tgz","fileCount":127,"integrity":"sha512-/L8y9khsaUpEAxiOzgGPxj7jz/CtRjWcNKaZqX8pqOp5zj/YNTJ2f551jNqK08Btj0ApPrrSQBsh5L5iIXsMfw==","signatures":[{"sig":"MEQCIHKyGtGIQ7sfUSjBXNds1qPdPnZZjwaMkyK1lCQ5w8RpAiAsNWtO1H4gW9XSuoluMmqBue5b3T+JmeepVuv+TEWFfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDri/0nSWzRgISZ229kqRKNXm3Hzzj3JtozulwlL09WZwIgVh9Yz0D4SQCuOp4QatXxPgo9hUTQwCGk34VvSGJoD08=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@carbon-labs%2fwc-wysiwyg@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":682324},"types":"./src/index.d.ts","exports":{".":{"default":"./src/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"gitHead":"cc905e878019cd3311a4c61f4b472d103371fe56","scripts":{"build":"node ../../../tasks/build.js","clean":"rimraf es lib","build:dist":"rm -rf dist && rollup --config ../../../tasks/build-dist.js","build:dist:canary":"rm -rf dist && rollup --config ../../../tasks/build-dist.js --configCanary"},"_npmUser":{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},"repository":{"url":"git+https://github.com/carbon-design-system/carbon-labs.git","type":"git","directory":"packages/wysiwyg"},"_npmVersion":"lerna/9.0.7/node@v22.23.2+x64 (linux)","description":"Carbon Labs - wysiwyg component","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@tiptap/pm":"3.25.0","@tiptap/core":"3.25.0","@babel/runtime":"^7.23.2","@carbon-labs/utilities":"0.28.0","@carbon/element-styles":"^0.3.0","@carbon/web-components":"^2.40.0","@tiptap/extension-bold":"3.25.0","@tiptap/extension-code":"3.25.0","@tiptap/extension-link":"3.25.0","@tiptap/extension-list":"3.25.0","@tiptap/extension-text":"3.25.0","@tiptap/extension-color":"3.25.0","@tiptap/extension-image":"3.25.0","@tiptap/extension-table":"3.25.0","@tiptap/extension-italic":"3.25.0","@tiptap/extension-strike":"3.25.0","@tiptap/extension-heading":"3.25.0","@tiptap/extension-document":"3.25.0","@tiptap/extension-highlight":"3.25.0","@tiptap/extension-list-item":"3.25.0","@tiptap/extension-paragraph":"3.25.0","@tiptap/extension-table-row":"3.25.0","@tiptap/extension-task-item":"3.25.0","@tiptap/extension-task-list":"3.25.0","@tiptap/extension-underline":"3.25.0","@tiptap/extension-blockquote":"3.25.0","@tiptap/extension-code-block":"3.25.0","@tiptap/extension-hard-break":"3.25.0","@tiptap/extension-table-cell":"3.25.0","@tiptap/extension-text-align":"3.25.0","@tiptap/extension-text-style":"3.25.0","@tiptap/extension-bullet-list":"3.25.0","@tiptap/extension-font-family":"3.25.0","@tiptap/extension-ordered-list":"3.25.0","@tiptap/extension-table-header":"3.25.0","@tiptap/extension-horizontal-rule":"3.25.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"@tiptap/markdown":"3.25.0"},"_npmOperationalInternal":{"tmp":"tmp/wc-wysiwyg_0.2.0_1790021349475_0.38469090252250915","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@carbon-labs/wc-wysiwyg","version":"0.3.0","keywords":["carbon","carbon-labs","web-components","wysiwyg","rich-text-editor","editor","tiptap","text-editor","content-editor"],"author":{"name":"Your Name","email":"your@email.com"},"license":"Apache-2.0","_id":"@carbon-labs/wc-wysiwyg@0.3.0","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},{"name":"ibmdesign","email":"ibmdesign@us.ibm.com"},{"name":"jeffreychew","email":"jeff.chew@gmail.com"}],"homepage":"https://github.com/carbon-design-system/carbon-labs#readme","bugs":{"url":"https://github.com/carbon-design-system/carbon-labs/issues"},"dist":{"shasum":"b9989a36acc60d1597cc8524b91304c1e69d41a2","tarball":"https://registry.npmjs.org/@carbon-labs/wc-wysiwyg/-/wc-wysiwyg-0.3.0.tgz","fileCount":127,"integrity":"sha512-sDTmMDYHZIgdNseDApbpHBtzkQF48EUB3OXL08Hx3MYCYFGsBUCH3w9MduwjnhVLeMCGzrwTQ/RCrNg8Jy4rJg==","signatures":[{"sig":"MEUCIQD012ZZT08wAcwn9W72X4H5Hrr16SuYAVqQL0Ez2BQj9QIgAtmpSo5vVJ7GT3RnZkCAOP/L91aSpCb5oGy9oxRD/40=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCTX74kAlHBD6H0i/nn77OwF9QQjGBpn//bkMtRppNN8wIhAJVrDmRNCA5D1frIYvkwxDYwSBOsGPqgcVTQhMHceVWw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@carbon-labs%2fwc-wysiwyg@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":682324},"types":"./src/index.d.ts","exports":{".":{"default":"./src/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"gitHead":"59df37e30ad0db8972037904f2ac7ecb8c306350","scripts":{"build":"node ../../../tasks/build.js","clean":"rimraf es lib","build:dist":"rm -rf dist && rollup --config ../../../tasks/build-dist.js","build:dist:canary":"rm -rf dist && rollup --config ../../../tasks/build-dist.js --configCanary"},"_npmUser":{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},"repository":{"url":"git+https://github.com/carbon-design-system/carbon-labs.git","type":"git","directory":"packages/wysiwyg"},"_npmVersion":"lerna/9.0.7/node@v22.23.2+x64 (linux)","description":"Carbon Labs - wysiwyg component","directories":{},"_nodeVersion":"22.23.2","dependencies":{"@tiptap/pm":"3.25.0","@tiptap/core":"3.30.5","@babel/runtime":"^7.23.2","@carbon-labs/utilities":"0.28.0","@carbon/element-styles":"^0.3.0","@carbon/web-components":"^2.40.0","@tiptap/extension-bold":"3.25.0","@tiptap/extension-code":"3.25.0","@tiptap/extension-link":"3.25.0","@tiptap/extension-list":"3.25.0","@tiptap/extension-text":"3.25.0","@tiptap/extension-color":"3.25.0","@tiptap/extension-image":"3.25.0","@tiptap/extension-table":"3.25.0","@tiptap/extension-italic":"3.25.0","@tiptap/extension-strike":"3.25.0","@tiptap/extension-heading":"3.25.0","@tiptap/extension-document":"3.25.0","@tiptap/extension-highlight":"3.25.0","@tiptap/extension-list-item":"3.25.0","@tiptap/extension-paragraph":"3.25.0","@tiptap/extension-table-row":"3.25.0","@tiptap/extension-task-item":"3.25.0","@tiptap/extension-task-list":"3.25.0","@tiptap/extension-underline":"3.25.0","@tiptap/extension-blockquote":"3.25.0","@tiptap/extension-code-block":"3.25.0","@tiptap/extension-hard-break":"3.25.0","@tiptap/extension-table-cell":"3.25.0","@tiptap/extension-text-align":"3.25.0","@tiptap/extension-text-style":"3.25.0","@tiptap/extension-bullet-list":"3.25.0","@tiptap/extension-font-family":"3.25.0","@tiptap/extension-ordered-list":"3.25.0","@tiptap/extension-table-header":"3.25.0","@tiptap/extension-horizontal-rule":"3.25.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"@tiptap/markdown":"3.25.0"},"_npmOperationalInternal":{"tmp":"tmp/wc-wysiwyg_0.3.0_1790238475839_0.8773230817783908","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"_id":"@carbon-labs/wc-wysiwyg@0.4.0","bugs":{"url":"https://github.com/carbon-design-system/carbon-labs/issues"},"dist":{"shasum":"07a42f264c0bbc2221967fdfb3ac71fa90f978d9","tarball":"https://registry.npmjs.org/@carbon-labs/wc-wysiwyg/-/wc-wysiwyg-0.4.0.tgz","fileCount":127,"integrity":"sha512-qZy+pJO7xxsDh73h/U3aTHMdjBQeOoOZzu+7VyRLbToWLXLPt+RCt6gYfdnjearkN0uigDX6QvztUAI4Hlg+oA==","signatures":[{"sig":"MEUCIFpkUrpqfn6hMM/89w+YBQIswidiFEXdNF/j22z2KWVkAiEAxTMOXcChEMlwd/AmqXgem4ih/tB+Bi5+XNgGKqMrfHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDe02Z6tYxakwDd0ffKdu+ujmfqNKdX22qJW2TpUHzv9AIhAI2A4tcdf9sag2UQpOxuyEEnT5+3CSJPuXMq2h1+htED"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@carbon-labs%2fwc-wysiwyg@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":682324},"name":"@carbon-labs/wc-wysiwyg","types":"./src/index.d.ts","author":{"name":"Your Name","email":"your@email.com"},"exports":{".":{"default":"./src/index.js"},"./es/*":"./es/*","./lib/*":"./lib/*"},"gitHead":"9cf5c04720c967106682ca03a4738ac80bb1a13f","license":"Apache-2.0","scripts":{"build":"node ../../../tasks/build.js","clean":"rimraf es lib","build:dist":"rm -rf dist && rollup --config ../../../tasks/build-dist.js","build:dist:canary":"rm -rf dist && rollup --config ../../../tasks/build-dist.js --configCanary"},"version":"0.4.0","_npmUser":{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},"homepage":"https://github.com/carbon-design-system/carbon-labs#readme","keywords":["carbon","carbon-labs","web-components","wysiwyg","rich-text-editor","editor","tiptap","text-editor","content-editor"],"repository":{"url":"git+https://github.com/carbon-design-system/carbon-labs.git","type":"git","directory":"packages/wysiwyg"},"_npmVersion":"lerna/9.0.7/node@v22.23.2+x64 (linux)","description":"Carbon Labs - wysiwyg component","directories":{},"maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},{"name":"ibmdesign","email":"ibmdesign@us.ibm.com"},{"name":"jeffreychew","email":"jeff.chew@gmail.com"}],"_nodeVersion":"22.23.2","dependencies":{"@tiptap/pm":"3.31.3","@tiptap/core":"3.30.5","@babel/runtime":"^7.23.2","@carbon-labs/utilities":"0.28.0","@carbon/element-styles":"^0.3.0","@carbon/web-components":"^2.40.0","@tiptap/extension-bold":"3.31.3","@tiptap/extension-code":"3.31.3","@tiptap/extension-link":"3.31.3","@tiptap/extension-list":"3.31.3","@tiptap/extension-text":"3.31.3","@tiptap/extension-color":"3.31.3","@tiptap/extension-image":"3.31.3","@tiptap/extension-table":"3.31.3","@tiptap/extension-italic":"3.31.3","@tiptap/extension-strike":"3.31.3","@tiptap/extension-heading":"3.31.3","@tiptap/extension-document":"3.31.3","@tiptap/extension-highlight":"3.31.3","@tiptap/extension-list-item":"3.31.3","@tiptap/extension-paragraph":"3.31.3","@tiptap/extension-table-row":"3.31.3","@tiptap/extension-task-item":"3.31.3","@tiptap/extension-task-list":"3.31.3","@tiptap/extension-underline":"3.31.3","@tiptap/extension-blockquote":"3.31.3","@tiptap/extension-code-block":"3.31.3","@tiptap/extension-hard-break":"3.31.3","@tiptap/extension-table-cell":"3.31.3","@tiptap/extension-text-align":"3.31.3","@tiptap/extension-text-style":"3.31.3","@tiptap/extension-bullet-list":"3.31.3","@tiptap/extension-font-family":"3.31.3","@tiptap/extension-ordered-list":"3.31.3","@tiptap/extension-table-header":"3.31.3","@tiptap/extension-horizontal-rule":"3.31.3"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"customElements":"custom-elements.json","devDependencies":{"@tiptap/markdown":"3.31.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/wc-wysiwyg_0.4.0_1790250337706_0.28297092596425255"}}},"time":{"created":"2026-07-20T11:00:31.418Z","modified":"2026-09-24T11:45:38.155Z","0.1.0":"2026-07-20T11:00:31.660Z","0.2.0":"2026-09-21T20:09:09.644Z","0.3.0":"2026-09-24T08:27:55.938Z","0.4.0":"2026-09-24T11:45:37.820Z"},"bugs":{"url":"https://github.com/carbon-design-system/carbon-labs/issues"},"author":{"name":"Your Name","email":"your@email.com"},"license":"Apache-2.0","homepage":"https://github.com/carbon-design-system/carbon-labs#readme","keywords":["carbon","carbon-labs","web-components","wysiwyg","rich-text-editor","editor","tiptap","text-editor","content-editor"],"repository":{"url":"git+https://github.com/carbon-design-system/carbon-labs.git","type":"git","directory":"packages/wysiwyg"},"description":"Carbon Labs - wysiwyg component","maintainers":[{"name":"carbon-design-system","email":"carbon@us.ibm.com"},{"name":"carbon-bot","email":"carbondesignsystem@gmail.com"},{"name":"ibmdesign","email":"ibmdesign@us.ibm.com"},{"name":"jeffreychew","email":"jeff.chew@gmail.com"}],"readme":"<p align=\"center\">\n  <a href=\"https://www.carbondesignsystem.com\">\n    <img alt=\"Carbon Design System\" src=\"https://user-images.githubusercontent.com/3901764/57545698-ce5f2380-7320-11e9-8682-903df232d7b0.png\" width=\"100%\" />\n  </a>\n</p>\n<h1 align=\"center\">\n  Carbon Labs WYSIWYG Editor\n</h1>\n\n> A rich text editor component built with TipTap and Carbon Design System\n\n## Overview\n\nThe WYSIWYG (What You See Is What You Get) editor is a comprehensive rich text\nediting component that provides a full-featured editing experience with Carbon\nDesign System styling. Built on [TipTap](https://tiptap.dev/), it offers\nextensibility, accessibility, and seamless integration with Carbon components.\n\n## Features\n\n- **Rich Text Editing** - Bold, italic, underline, strikethrough, inline code\n- **Typography** - Six heading levels and paragraph formatting\n- **Lists** - Bullet lists, numbered lists, and interactive task lists\n- **Tables** - Full table editing with merge/split and row/column operations\n- **Styling** - Text alignment, colors using Carbon tokens, highlighting\n- **Search** - Real-time in-editor search with match highlighting\n- **Code & Quotes** - Code blocks and blockquotes\n- **Media** - Insert and edit links and images with resizing\n- **Source Editing** - Toggle between visual, HTML, and Markdown modes\n- **History** - Full undo/redo with keyboard shortcuts\n- **Accessible** - Keyboard navigation, ARIA labels, screen reader support\n- **Extensible** - Built on TipTap's extension system\n\n## Getting started\n\n### Installation\n\nInstall `@carbon-labs/wc-wysiwyg` to use this component.\n\n```bash\nnpm install @carbon-labs/wc-wysiwyg\n```\n\nor\n\n```bash\nyarn add @carbon-labs/wc-wysiwyg\n```\n\n### Basic Usage\n\n```javascript\nimport '@carbon-labs/wc-wysiwyg/es/index.js';\nimport {\n  History,\n  TextFormatting,\n  Typography,\n  Lists,\n} from '@carbon-labs/wc-wysiwyg/es/index.js';\n\n// Get the editor element\nconst editor = document.querySelector('clabs-wysiwyg');\n\n// Configure extensions\neditor.extensions = [History, TextFormatting, Typography, Lists];\n\n// Set initial content\neditor.content = '<p>Start typing...</p>';\n\n// Listen for changes\neditor.addEventListener('content-change', (e) => {\n  console.log('Content:', e.detail.content);\n});\n```\n\n### HTML\n\n```html\n<clabs-wysiwyg toolbar-size=\"md\" content=\"<p>Initial content</p>\">\n</clabs-wysiwyg>\n```\n\n## Extensions\n\nThe editor's functionality is provided through extensions. Import and use only\nthe extensions you need:\n\n### Core Extensions\n\n```javascript\nimport {\n  History, // Undo/redo\n  TextFormatting, // Bold, italic, underline, etc.\n  Typography, // Headings and paragraphs\n} from '@carbon-labs/wc-wysiwyg/es/index.js';\n```\n\n### List Extensions\n\n```javascript\nimport {\n  Lists, // Bullet, numbered, and task lists\n} from '@carbon-labs/wc-wysiwyg/es/index.js';\n```\n\n### Advanced Extensions\n\n```javascript\nimport {\n  Tables, // Table editing\n  Alignment, // Text alignment\n  TextColor, // Colors and highlighting\n  Search, // In-editor search\n  Blocks, // Code blocks and blockquotes\n  Insert, // Links and images\n  Typeface, // Font family selection\n} from '@carbon-labs/wc-wysiwyg/es/index.js';\n```\n\n### Source Editing Extensions\n\n```javascript\nimport {\n  Html, // HTML source editing\n  Markdown, // Markdown editing\n} from '@carbon-labs/wc-wysiwyg/es/index.js';\n```\n\n### Complete Example\n\n```javascript\nimport '@carbon-labs/wc-wysiwyg/es/index.js';\nimport {\n  History,\n  TextFormatting,\n  Typography,\n  Lists,\n  Tables,\n  Alignment,\n  TextColor,\n  Search,\n  Html,\n  Markdown,\n  Blocks,\n  Insert,\n  Typeface,\n} from '@carbon-labs/wc-wysiwyg/es/index.js';\n\nconst editor = document.querySelector('clabs-wysiwyg');\n\n// Use all extensions\neditor.extensions = [\n  History,\n  TextFormatting,\n  Typography,\n  Lists,\n  Tables,\n  Alignment,\n  TextColor,\n  Search,\n  Html,\n  Markdown,\n  Blocks,\n  Insert,\n  Typeface,\n];\n```\n\n## API\n\n### Properties\n\n| Property      | Type                   | Default | Description                |\n| ------------- | ---------------------- | ------- | -------------------------- |\n| `content`     | `string`               | `''`    | HTML content of the editor |\n| `extensions`  | `Array<Extension>`     | `[]`    | Array of extension objects |\n| `toolbarSize` | `'sm' \\| 'md' \\| 'lg'` | `'md'`  | Size of toolbar buttons    |\n\n### Events\n\n#### `content-change`\n\nFired when editor content changes.\n\n**Event Detail:**\n\n```typescript\n{\n  content: string; // HTML content\n  markdown: string; // Markdown (if Markdown extension enabled)\n}\n```\n\n**Example:**\n\n```javascript\neditor.addEventListener('content-change', (event) => {\n  const { content, markdown } = event.detail;\n  console.log('HTML:', content);\n  console.log('Markdown:', markdown);\n});\n```\n\n### Methods\n\nThe editor exposes the TipTap editor instance through the `editor` property:\n\n```javascript\nconst editorInstance = document.querySelector('clabs-wysiwyg').editor;\n\n// Get content\nconst html = editorInstance.getHTML();\nconst json = editorInstance.getJSON();\n\n// Set content\neditorInstance.commands.setContent('<p>New content</p>');\n\n// Execute commands\neditorInstance.chain().focus().toggleBold().run();\n```\n\n## Extension Details\n\n### History\n\nProvides undo/redo functionality with keyboard shortcuts.\n\n**Keyboard Shortcuts:**\n\n- `Ctrl+Z` / `Cmd+Z` - Undo\n- `Ctrl+Shift+Z` / `Cmd+Shift+Z` - Redo\n\n### TextFormatting\n\nBasic text formatting options.\n\n**Features:**\n\n- Bold (`Ctrl+B` / `Cmd+B`)\n- Italic (`Ctrl+I` / `Cmd+I`)\n- Underline (`Ctrl+U` / `Cmd+U`)\n- Strikethrough\n- Inline code\n\n### Typography\n\nHeading levels and paragraph formatting.\n\n**Features:**\n\n- Heading 1-6\n- Paragraph\n- Dropdown selector\n\n### Lists\n\nList formatting with nesting support.\n\n**Features:**\n\n- Bullet lists\n- Numbered lists\n- Task lists (checkboxes)\n- Indent/outdent\n\n### Tables\n\nComplete table editing capabilities.\n\n**Features:**\n\n- Insert tables\n- Add/delete rows and columns\n- Merge/split cells\n- Resizable columns\n\n### Alignment\n\nText alignment options.\n\n**Features:**\n\n- Left align\n- Center align\n- Right align\n- Justify\n\n### TextColor\n\nText colors and highlighting using Carbon tokens.\n\n**Features:**\n\n- Primary/secondary text colors\n- Link colors\n- Status colors (success, error, warning, info)\n- Text highlighting\n- Semantic marks (insert, delete)\n\n### Search\n\nReal-time search within the editor.\n\n**Features:**\n\n- Live search as you type\n- Match highlighting\n- Match count display\n- Case-insensitive\n\n### Html\n\nHTML source editing mode.\n\n**Features:**\n\n- Toggle to HTML view\n- Syntax formatting\n- Direct HTML editing\n\n### Markdown\n\nMarkdown editing mode.\n\n**Features:**\n\n- Toggle to Markdown view\n- Full Markdown syntax support\n- Converts between Markdown and HTML\n\n### Blocks\n\nCode blocks and blockquotes.\n\n**Features:**\n\n- Code blocks with syntax preservation\n- Blockquotes\n- Citation support\n\n### Insert\n\nInsert links and images.\n\n**Features:**\n\n- Link insertion and editing\n- Image insertion by URL\n- Image resizing with drag handles\n- Link validation\n\n### Typeface\n\nFont family selection.\n\n**Features:**\n\n- IBM Plex Sans (default)\n- IBM Plex Serif\n- IBM Plex Mono\n- Common system fonts\n\n## Creating Custom Extensions\n\nYou can create custom extensions using TipTap's extension API:\n\n```javascript\nimport { Extension, Mark } from '@tiptap/core';\nimport { html } from 'lit';\n\n// Create a custom mark\nconst HighlightMark = Mark.create({\n  name: 'highlight',\n\n  parseHTML() {\n    return [{ tag: 'mark' }];\n  },\n\n  renderHTML({ HTMLAttributes }) {\n    return ['mark', HTMLAttributes, 0];\n  },\n});\n\n// Create extension\nconst HighlightExtension = Extension.create({\n  name: 'highlightExtension',\n  addExtensions: () => [HighlightMark],\n});\n\n// Add toolbar UI\nHighlightExtension.toolbarRender = (editor, toolbarSize) => {\n  return html`\n    <div class=\"clabs-wysiwyg__toolbar-group\">\n      <cds-icon-button\n        kind=\"ghost\"\n        .size=${toolbarSize}\n        @click=${() => editor?.chain().focus().toggleMark('highlight').run()}>\n        <span slot=\"tooltip-content\">Highlight</span>\n      </cds-icon-button>\n    </div>\n  `;\n};\n\n// Use it\neditor.extensions = [HighlightExtension, ...otherExtensions];\n```\n\n## Styling\n\nThe editor uses Carbon Design System tokens. You can customize appearance using\nCSS custom properties:\n\n```css\nclabs-wysiwyg {\n  /* Override Carbon tokens */\n  --cds-layer-01: #f4f4f4;\n  --cds-text-primary: #161616;\n  --cds-border-strong: #8d8d8d;\n}\n```\n\n## Accessibility\n\nThe editor is built with accessibility in mind:\n\n- ✅ Keyboard navigation for all controls\n- ✅ ARIA labels on interactive elements\n- ✅ Descriptive tooltips\n- ✅ Proper focus management\n- ✅ Screen reader support\n- ✅ Semantic HTML output\n\n## Browser Support\n\n- Chrome/Edge (latest)\n- Firefox (latest)\n- Safari (latest)\n- Mobile browsers (iOS Safari, Chrome Mobile)\n\n## Performance Tips\n\nFor optimal performance with large documents:\n\n1. Use only the extensions you need\n2. Consider pagination for very long documents\n3. Disable real-time search for documents >10,000 words\n4. Limit history depth if needed\n\n## Examples\n\n### Minimal Editor\n\n```javascript\nimport '@carbon-labs/wc-wysiwyg/es/index.js';\nimport {\n  History,\n  TextFormatting,\n  Typography,\n} from '@carbon-labs/wc-wysiwyg/es/index.js';\n\neditor.extensions = [History, TextFormatting, Typography];\n```\n\n### Full-Featured Editor\n\n```javascript\nimport '@carbon-labs/wc-wysiwyg/es/index.js';\nimport {\n  History,\n  TextFormatting,\n  Typography,\n  Lists,\n  Tables,\n  Alignment,\n  TextColor,\n  Search,\n  Html,\n  Markdown,\n  Blocks,\n  Insert,\n} from '@carbon-labs/wc-wysiwyg/es/index.js';\n\neditor.extensions = [\n  History,\n  TextFormatting,\n  Typography,\n  Lists,\n  Tables,\n  Alignment,\n  TextColor,\n  Search,\n  Html,\n  Markdown,\n  Blocks,\n  Insert,\n];\n```\n\n### With Event Handling\n\n```javascript\nconst editor = document.querySelector('clabs-wysiwyg');\n\neditor.addEventListener('content-change', (e) => {\n  // Auto-save\n  localStorage.setItem('draft', e.detail.content);\n\n  // Update character count\n  const text = e.detail.content.replace(/<[^>]*>/g, '');\n  document.getElementById('char-count').textContent = text.length;\n});\n```\n\n## Storybook\n\nYou can view the current state of the component in our\n[Storybook](https://labs.carbondesignsystem.com/web-components/).\n\n## Contributing\n\nWe welcome contributions! Please see our\n[contributing guidelines](https://github.com/carbon-design-system/carbon-labs/blob/main/CONTRIBUTING.md).\n\n## 📝 License\n\nLicensed under the\n[Apache 2.0 License](https://github.com/carbon-design-system/carbon-labs/blob/main/LICENSE).\n\n## <picture><source height=\"20\" width=\"20\" media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/ibm-telemetry/telemetry-js/main/docs/images/ibm-telemetry-dark.svg\"><source height=\"20\" width=\"20\" media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/ibm-telemetry/telemetry-js/main/docs/images/ibm-telemetry-light.svg\"><img height=\"20\" width=\"20\" alt=\"IBM Telemetry\" src=\"https://raw.githubusercontent.com/ibm-telemetry/telemetry-js/main/docs/images/ibm-telemetry-light.svg\"></picture> IBM Telemetry\n\nThis package uses IBM Telemetry to collect de-identified and anonymized metrics\ndata. By installing this package as a dependency you are agreeing to telemetry\ncollection. To opt out, see\n[Opting out of IBM Telemetry data collection](https://github.com/ibm-telemetry/telemetry-js/tree/main#opting-out-of-ibm-telemetry-data-collection).\nFor more information on the data being collected, please see the\n[IBM Telemetry documentation](https://github.com/ibm-telemetry/telemetry-js/tree/main#ibm-telemetry-collection-basics).\n","readmeFilename":"README.md"}