{"_id":"@kontakto/email-template-editor","_rev":"28-041da60b4dd7dd112b7442204fd3e5bb","name":"@kontakto/email-template-editor","dist-tags":{"latest":"2.13.0"},"versions":{"1.2.0":{"name":"@kontakto/email-template-editor","version":"1.2.0","_id":"@kontakto/email-template-editor@1.2.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"4ab604062d6ca04f1c112bf13dac27db1b249545","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.2.0.tgz","fileCount":9,"integrity":"sha512-MYP0xo+VQ9eNSRJziO5SWO6yHX5UrHF1QuYW+LkSce7GGLkQsST2n8mUDyKbYWbf7wrvfNjmCIRM3sP/648bTg==","signatures":[{"sig":"MEUCIDhWTjYqsmxYRU+Pfrc+2qeM+j2bAayF0lVOcTgVk9cEAiEAnKoiyF9DsErFqFaAORfOxsEGhnBfg+RVRuomiwal2Vg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1580466},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","module":"dist/index.esm.js","gitHead":"a5b5b267656112be8ed352998d4538b7426b3e40","scripts":{"dev":"vite","test":"jest","build":"vite build && tsup","preview":"vite preview"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"10.9.2","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^3.22.4","react":"^17.0.0 || ^18.0.0","htmlfy":"^0.7.2","insane":"^2.6.2","marked":"^12.0.0","zustand":"^4.5.1","react-dom":"^17.0.0 || ^18.0.0","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","vite":"^5.1.0","eslint":"^8.56.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/react":"^18.2.55","@jest/globals":"^29.7.0","@types/react-dom":"^18.2.19","react-test-renderer":"^18.2.0","@testing-library/react":"^14.2.1","jest-environment-jsdom":"^29.7.0","@vitejs/plugin-react-swc":"^3.5.0","@typescript-eslint/parser":"^6.21.0","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.5","@rollup/rollup-linux-x64-gnu":"^4.40.2","@typescript-eslint/eslint-plugin":"^6.21.0","eslint-plugin-simple-import-sort":"^12.0.0"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0","react-dom":"^17.0.0 || ^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.2.0_1746795540564_0.29235866373681607","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@kontakto/email-template-editor","version":"1.2.1","_id":"@kontakto/email-template-editor@1.2.1","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"a4a11b6eea37b6c6fe0f19b4dd23d63ea4cc1089","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.2.1.tgz","fileCount":9,"integrity":"sha512-xUDgmrxk8UbV+CQ8BbUtAArIQc9o05l7hjuBA3Hm1CIW3m1AzVbPUkNFShy7hBuRR/xDc4zQ7RPt2rI/OmPwCg==","signatures":[{"sig":"MEUCIHZCaucXsTcDVfcONuSIEY+Rsnv9RXAveQF3g20//n6HAiEAhZU3mba30rJOzjcmkXHlp1E9SBvZ36iCaYKUPnnQ5sM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1584035},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"25aad2efebbe3a681041c475b796fc739984647f","scripts":{"dev":"vite","test":"jest","build":"vite build && tsup","preview":"vite preview"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.8.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","insane":"^2.6.2","marked":"^12.0.0","zustand":"^4.5.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","vite":"^5.1.0","eslint":"^8.56.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/react":"^18.2.55","@jest/globals":"^29.7.0","@types/react-dom":"^18.2.19","react-test-renderer":"^18.2.0","@testing-library/react":"^14.2.1","jest-environment-jsdom":"^29.7.0","@vitejs/plugin-react-swc":"^3.5.0","@typescript-eslint/parser":"^6.21.0","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.5","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^6.21.0","eslint-plugin-simple-import-sort":"^12.0.0"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.2.1_1772450696518_0.668690575756602","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@kontakto/email-template-editor","version":"1.3.0","_id":"@kontakto/email-template-editor@1.3.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"da65442485c76639668e8dfd85a2789678370e21","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.3.0.tgz","fileCount":9,"integrity":"sha512-cCkfhFg2GEpYHj6AA9tljHGZs4EO/ykQVkmU4DjVVRHlp9stNBiHVrhMUCmzoRYwCDeURKNPN7TzLrEnAjmfsg==","signatures":[{"sig":"MEQCIGPMVtvVxuqevbrjMGgdZefTr+fLwO1/jrLsgp1+ySEIAiBWoKoXjLsI6O/ry9QQ/rSllUC/QlVQ3WgExQfYPOog3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1591783},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"fd905048a44f2a81f05f969eaf80c3ba41628bf1","scripts":{"dev":"vite","test":"jest","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.8.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","insane":"^2.6.2","marked":"^12.0.0","zustand":"^4.5.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","vite":"^5.1.0","react":"^18.3.1","eslint":"^8.56.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/react":"^18.2.55","@jest/globals":"^29.7.0","@playwright/test":"^1.58.2","@types/react-dom":"^18.2.19","react-test-renderer":"^18.2.0","@vitejs/plugin-react":"^5.1.4","@testing-library/react":"^14.2.1","jest-environment-jsdom":"^29.7.0","@vitejs/plugin-react-swc":"^3.5.0","@typescript-eslint/parser":"^6.21.0","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.5","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^6.21.0","eslint-plugin-simple-import-sort":"^12.0.0"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.3.0_1772459598010_0.9813295610785389","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@kontakto/email-template-editor","version":"1.3.1","_id":"@kontakto/email-template-editor@1.3.1","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"7303fbad9db333b3d7e81e1b85ff7df6418e5693","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.3.1.tgz","fileCount":9,"integrity":"sha512-RZMChTKa1/OrGQbo6M2ouveERyTS7OmScPXyhNEt0p4M5aIX5XCDWCd6eb1JSJxQqEfNb8xtzzXWBqsD97wlrA==","signatures":[{"sig":"MEQCIAVKEYNKAUbi1alaoa5pS5YJJ5/SRW/WUIk9jKH8d/a1AiBlLCvhJ38sWX0xpCubNshF7VBVEX5Wh4MBnTRkJj/zXg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1588725},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"0864135844bb465959b582ca11485d0a6fa350ee","scripts":{"dev":"vite","test":"jest","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.8.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^8.56.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/react":"^18.2.55","@jest/globals":"^29.7.0","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","react-test-renderer":"^18.2.0","@vitejs/plugin-react":"^5.1.4","@testing-library/react":"^14.2.1","jest-environment-jsdom":"^29.7.0","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.5","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^8.56.1","eslint-plugin-simple-import-sort":"^12.0.0"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.3.1_1772460388631_0.49687533352330826","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@kontakto/email-template-editor","version":"1.3.2","_id":"@kontakto/email-template-editor@1.3.2","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"ae0ce069b15db2b727ffd54a78bc3da8be3d12b8","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.3.2.tgz","fileCount":9,"integrity":"sha512-aXGiCNNfXZ4avwWgKy8xsalm2W9RNWiaIIP32hdW20+TMh9HuN5lro6bBwWk1vOFKGABSiMzhqyjeCCsOQcSww==","signatures":[{"sig":"MEYCIQCaeRMkXm1WyqIz94ngJ/U2nOx+Z5IN1eSXHtJDL7/8ZgIhAKNyIhrXjVNenKMcZ3+IUJbvBdmmVFmCas0eI+izDi+p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1589360},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"45a10c2ad685ff1b4da9479fca3f3e3c5720a6e9","scripts":{"dev":"vite","test":"jest","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.8.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^8.56.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/react":"^18.2.55","@jest/globals":"^29.7.0","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","react-test-renderer":"^18.2.0","@vitejs/plugin-react":"^5.1.4","@testing-library/react":"^14.2.1","jest-environment-jsdom":"^29.7.0","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.5","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^8.56.1","eslint-plugin-simple-import-sort":"^12.0.0"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.3.2_1772478980866_0.19726147655717763","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@kontakto/email-template-editor","version":"1.3.3","_id":"@kontakto/email-template-editor@1.3.3","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"1f2a9970c2951cbac2451bc419bd61a9688470ce","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.3.3.tgz","fileCount":9,"integrity":"sha512-elpMuqbBwTo9gPNdO/KOsh7g8IAgvYY9QGD0PFIflim0ggy5KO/9V/5H8bKJGzL6ToZWYagf3/4KYakxz8rLPw==","signatures":[{"sig":"MEQCICKkk5UUYdMzX/2h97kOPkswu3Q8TVfhLBtoCR1HgSInAiA+foXK2iwR9ToRjdA3PfOJmfqAo0LP7Rz6mO0sE4DkTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1589355},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"36aa7d824c235ed38b75048be87d3e7392686db8","scripts":{"dev":"vite","test":"jest","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.8.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.13.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^8.56.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/react":"^18.2.55","@jest/globals":"^29.7.0","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","react-test-renderer":"^18.2.0","@vitejs/plugin-react":"^5.1.4","@testing-library/react":"^14.2.1","jest-environment-jsdom":"^29.7.0","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.5","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^8.56.1","eslint-plugin-simple-import-sort":"^12.0.0"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.3.3_1772483434946_0.6354117722375481","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@kontakto/email-template-editor","version":"1.4.0","_id":"@kontakto/email-template-editor@1.4.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"45c92bb26b3bff22e59f31daeebae76f93e7f9bf","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.4.0.tgz","fileCount":9,"integrity":"sha512-ND9E2sUlJ/LiRrYs0aKAsuupnZIkHd7BkfvUL5skOGO2JerNoW0CJHwcQZ0G3ohmbz38IUWzlMSiiEQonjpz9A==","signatures":[{"sig":"MEUCIHmo9+IbleYtZHCezwfdiKYp8zUQl/SD3xUGTdjPoW3vAiEAms5E7DZtpBI5A4u6m6iMkERV1Mn2eoyRlzz/9Y1XZpQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1627284},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9078e2618cbcee609d2e6742696bf6cc3d3d6ed4","scripts":{"dev":"vite","test":"jest","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.9.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^8.56.0","ts-jest":"^29.1.2","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/jest":"^29.5.12","@types/react":"^18.2.55","@jest/globals":"^29.7.0","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","react-test-renderer":"^18.2.0","@vitejs/plugin-react":"^5.1.4","@testing-library/react":"^14.2.1","jest-environment-jsdom":"^29.7.0","@typescript-eslint/parser":"^8.56.1","eslint-plugin-react-hooks":"^4.6.0","eslint-plugin-react-refresh":"^0.4.5","@rollup/rollup-linux-x64-gnu":"^4.59.0","@typescript-eslint/eslint-plugin":"^8.56.1","eslint-plugin-simple-import-sort":"^12.0.0"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.4.0_1772706143670_0.4432790354872269","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@kontakto/email-template-editor","version":"1.5.0","_id":"@kontakto/email-template-editor@1.5.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"f6672f6f7a513df7818eb9fbcbcac1d67284e49a","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.5.0.tgz","fileCount":9,"integrity":"sha512-OQw1s30Z+MfSlACo38dU23HwHr/7QL5is8tfDpgZyIbM5tBWxf4/RyECLiF0ovVfIxLjBBJdJ8Pp8DQLIzYVcA==","signatures":[{"sig":"MEUCIH2zJiVX+ozRqQusn+3Wk2aef5zqtvlzT8Lpx5cxnHrAAiEAyl6paAXiIfO5fPB9/mMJtsP7PU5QNOitpwMh4xos7HQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1956603},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d9f2adad6d3a62c9d665f28b5f98199dfdc54b11","scripts":{"dev":"vite --port 5443","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.9.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.5.0_1772711811535_0.6927823745590151","host":"s3://npm-registry-packages-npm-production"}},"1.5.1":{"name":"@kontakto/email-template-editor","version":"1.5.1","_id":"@kontakto/email-template-editor@1.5.1","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"89c70870e2e20f1875dd4cb7adf6c5f30fed4b5d","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.5.1.tgz","fileCount":9,"integrity":"sha512-x2rMt/HKmgBRLM9oFfo8SXwNRFDw8RIVHK89poeZv7T1pwEbXKT2PwUrA2vXFWc4xCwFuRH4kgFcARmCs9R/Ew==","signatures":[{"sig":"MEYCIQDh/66He/ErZkKOswP4yHQZ2TomJYxjtbtnenCl6yyDdAIhAOhdqndG6sm8Kr6rUH3LyProZMRZi2R8GVUK5kIOAO7o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1956557},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1f285bfa7e6ee8acd43f9a011a69fc4f36578ad9","scripts":{"dev":"vite --port 5443","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.9.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.5.1_1772712455732_0.20998845353568218","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@kontakto/email-template-editor","version":"1.6.0","_id":"@kontakto/email-template-editor@1.6.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"583861fa4528c69986a1a2138a457ac9466044ca","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-1.6.0.tgz","fileCount":9,"integrity":"sha512-nH9rqG0Ow5j/26MXXtwGjyLqVKitn3LlN8VZDUHdzUIul7s+FaUAqEy4Yx51O2G1sTae+MArvGxvU5sDp5SHjg==","signatures":[{"sig":"MEUCIFMHBT3XUCnSai7wrDOdIgeuMwPU4tGAE0e4+WUDPUC4AiEAyHP+N6rbPRsOVLdhzxcedf8VbiWQC1ferLpUCTUmEmw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1966307},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"7eb9949887ace51683ef087c014adc38daf1aa51","scripts":{"dev":"vite --port 5443","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.9.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_1.6.0_1774435569430_0.14744845027493736","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@kontakto/email-template-editor","version":"2.0.0","_id":"@kontakto/email-template-editor@2.0.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"9436b0e9d395de2fb198514ddd237abdf193ea1f","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.0.0.tgz","fileCount":9,"integrity":"sha512-drdfv2GoVnxUMX9eQRqJtqnvFQyPGCkY3FF0ZGrV7BoGr58uJ9gH0obpBgtt2pJJB4mAwjbqihCYykC/zZ0f0g==","signatures":[{"sig":"MEYCIQCDLGtT1ZeYpHDgpDbCkXHlM0vVnl45JK6YDf+F1zuQjQIhAJ/Rhy9rpxnUOE+XRtV0nQ9OPwSE+Io+JBmt0/9D9bzB","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2145426},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ea1e0fbdf3c00b50d39fe7c1c943992a6f7bddcc","scripts":{"dev":"vite","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.12.1","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.0.0_1776863343170_0.6873507761081643","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@kontakto/email-template-editor","version":"2.1.0","_id":"@kontakto/email-template-editor@2.1.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"7c97ce82b35dfd0db6e7e616f826fd3b1494b2f0","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.1.0.tgz","fileCount":9,"integrity":"sha512-oMS5WYZ6LRbtnGXLm8NWOLKrfCpKVJRj1EDvla3v97C6cAcGSfrP4iG+8E7RcDoXEUX9zIlvSucZr8BhsWvdig==","signatures":[{"sig":"MEUCIDVyb04DxV8xghaHC8IKh8QxB8heMSgdzrQHqIaFLM58AiEAlASz1wmSuULDQR9rX84r9y6DdXaiEgyHWGqPE8XpOnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2416200},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"6df15ecddd9ed8d9a80de44c1a3224b880b11c67","scripts":{"dev":"vite","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.12.1","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.1.0_1776866030220_0.6415643849992916","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@kontakto/email-template-editor","version":"2.2.0","_id":"@kontakto/email-template-editor@2.2.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"81bb3a6131686c85dc8684bc824af9ce27719bf5","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.2.0.tgz","fileCount":9,"integrity":"sha512-zpHfNnPVuy/dWdoi3spwTNzVNmRqUsF2LJGpjyQwj5j6kdZL8xDmxFMdSGbi0L/HnicOQfqpsLT+zzWvOLNHcw==","signatures":[{"sig":"MEYCIQDPgZ0/sEWE4mABGy/T6BN3rdPvlOaQ5Lp9+7Jg2kSdqAIhAOYWNgHLfcqoCMC4wCncx+0ySbIUDNojuZ5ztgNXaXYz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2468702},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"da20fd34d6a07574b3ab2d3e216bb4bbba81ef92","scripts":{"dev":"vite","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.2.0_1776869122155_0.969136404501225","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@kontakto/email-template-editor","version":"2.2.1","_id":"@kontakto/email-template-editor@2.2.1","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"54023316d74011bb1f9613ee2a09f18bfb10a387","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.2.1.tgz","fileCount":9,"integrity":"sha512-y013CRlwxmFSF8CmRv3Nq/4vXCA9TECpcEgSXeLGgNrHxMHHH7SwG9Ngor87RY0MSeiMBVAZDy6Pq9WhNhn4ug==","signatures":[{"sig":"MEYCIQDF5r8HLMIA1FGgKUiysu0V2Ec+XnJBJto0RNQ2lSvY/AIhAIg3+ELB5Fk+/Wh7ui8EF8CoEo166xTi6QQuGlshZ7hJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2476200},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"babb889e3f236a4fc6fa08fe4226cb62e04dd280","scripts":{"dev":"vite","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.12.1","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.2.1_1776872264325_0.9244329341971786","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@kontakto/email-template-editor","version":"2.2.2","_id":"@kontakto/email-template-editor@2.2.2","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"7907cf8ab8e4e926bf09270acaf4bf27033e5d4e","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.2.2.tgz","fileCount":9,"integrity":"sha512-NrZ6LW7suebntT7iV6khzdGdT2R6OqQtF8LZCHMn/kpgs3EUG0xn0AaGTjUKUEUEzbvuRpFncVQzNbsUfyEpvg==","signatures":[{"sig":"MEYCIQCrxdcf34UTyIa0q8pq64IuSGLuFqQRvnPoVEhc8HhnxwIhAJPNWRjrgo7G3N/yOK6V1DEhsbBKrywTlwLRtrE0a2cM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2477844},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"0c7745f2f3bc9fc151151771e124b727e194173a","scripts":{"dev":"vite","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.2.2_1776874049724_0.7041261217600452","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@kontakto/email-template-editor","version":"2.3.0","_id":"@kontakto/email-template-editor@2.3.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"b27968f4ff0d3226a0e3d9aabc2dedad7f2c9a28","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.3.0.tgz","fileCount":9,"integrity":"sha512-akvW99ICgbE1A+3Gpk/ZpRrfDAiSo3Fgk/xixqkiB/Vebooy7frXqATTTUQ8g0VSxc2m3ZeVei4fAfedYNlDcg==","signatures":[{"sig":"MEQCIHA7CIER5fv9iK6QQY5reG86bYDk3pCTUEYMvyKpsxGKAiAD/eYrhhJocsf7l+yWnwPcwRO152LYUBd36+1jQFAyHQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2750646},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"66362a0aa15e572fc55024093a53ceda53bb484e","scripts":{"dev":"vite","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.12.1","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.3.0_1776936360735_0.715417101608889","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@kontakto/email-template-editor","version":"2.3.1","_id":"@kontakto/email-template-editor@2.3.1","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"a8c9b386c2c16b1b8a19b22f4c0c86a9efc650d4","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.3.1.tgz","fileCount":9,"integrity":"sha512-vnjQ8T6wNL6iiaQQm96EYdiQhXWDsY3qt1E3l2H2AqPRC3sr5dZypwQvDnwBXEeXrJmadCu/FzO6Y8HHfBHAAQ==","signatures":[{"sig":"MEUCIQCBxXRM1G5W8hQDJTy7sf8QUyYrye7u2We+315v2ffXsAIgDGjJRH9igXP3yX7uyt2v0/7YJm8lWatUDE0XFP+PkrE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2755024},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"89474ec4178186a7e0fd7c3658a03aa149d8b05e","scripts":{"dev":"vite","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.12.1","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.3.1_1776938412150_0.7063972822278213","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@kontakto/email-template-editor","version":"2.4.0","_id":"@kontakto/email-template-editor@2.4.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"986f60a50d6f1b50a1b2e20b301b27b1d92a8141","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.4.0.tgz","fileCount":9,"integrity":"sha512-C/e8FWmdXuvoD97iKQrtc9SIYLBJEPsmV6w3RY5dnkjy6wb9xI6tQZOeOBMrm2sMESKeI2ZMtpX/BnslfBKA1Q==","signatures":[{"sig":"MEUCIFWdFMcO5+CHVoNXRMS/YtL5rhYsu/anpSNDRuirP0+BAiEAvLSz0WWEVusLr8JJ6zrUCM31VTRBI9NcYphLwtpUkkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2791884},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8ff983e27c70808f496d60884673ec034b456862","scripts":{"dev":"vite","test":"playwright test","build":"vite build && tsup","preview":"vite preview","test:e2e":"playwright test"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","highlight.js":"^11.9.0","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.4.0_1776939298150_0.918246406127817","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@kontakto/email-template-editor","version":"2.5.0","_id":"@kontakto/email-template-editor@2.5.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"9202739c359f8eac2619c7e1ec108edd8f750735","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.5.0.tgz","fileCount":9,"integrity":"sha512-gXUg8iELlCGlaeBmr3bVvPxAkt8mkX2UMBDrr2+H2slgXwxa5h6gynmtEcrODlB09r/wyXdp0sKerBrI110xcg==","signatures":[{"sig":"MEYCIQDVWFYZJ6tBNIBRwzxnJezkGe5UcYc/44Z8GOVD56eBLAIhAPxHmh2D7OLgITa/6JGnpbk9Svqt1bmKaHkStPXrhhOg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2853398},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"a9804b29014d189a1ad7b38b2361ac8f2b385f33","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.5.0_1776939383199_0.9870242373737388","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@kontakto/email-template-editor","version":"2.6.0","_id":"@kontakto/email-template-editor@2.6.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"488c2713b1850f80b4e196b8c9793759c5c30c66","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.6.0.tgz","fileCount":9,"integrity":"sha512-ZdTSHFpI3GdG6TuDqWkc9PcJI+bLHjdTOJZLsiWwqc4Qqk14xy/gDu1XWCsTQ5dzrzPdKnfz/6FCjZKrIZWsQA==","signatures":[{"sig":"MEUCIF3VNkC14yT+DLYPc3dsdfnD1cQ7nesuicHfaHCmaCvwAiEAx7HtUSpnehQExw5vBYQyic+xCeFIrZeEJqSkXB1+szc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2881759},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"8f148932f1cf6d06cc6caa18f51ff10f03bd3a52","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.12.1","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","zundo":"^2.3.0","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.6.0_1776941063996_0.4536525971540528","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@kontakto/email-template-editor","version":"2.7.0","_id":"@kontakto/email-template-editor@2.7.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"215bc493553c35b9ae069a9a40a3055f379390ef","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.7.0.tgz","fileCount":9,"integrity":"sha512-OfUDF271Td2kF9TLqMujyR3XsgKC/kb+aUNPA97H0sImVHmoc99E4qahBEc9+v+20KTl97TE89yECyrrA49c6g==","signatures":[{"sig":"MEUCIHvS38OEEA5RD2dkYVMuSIMfLrEDK8dz7jW7ARLMzIW6AiEAxTUGxXbeXgUUz0JQPToFlHCL1idNqe8b64Mq6pHHXaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2961970},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"adb6051e5f4ab92799b850aa956b7741e36e8ac6","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.12.1","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","zundo":"^2.3.0","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.7.0_1776942346795_0.09978439501001435","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@kontakto/email-template-editor","version":"2.8.0","_id":"@kontakto/email-template-editor@2.8.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"c1f537e2e320548e5f5038581f7b14a4ba142c72","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.8.0.tgz","fileCount":9,"integrity":"sha512-yYNaAmWjS2+msjzfTsDg47eCGTygrzjVjH4VELw5Pt/gr2pOdfeRBk4DHiKSKN8Cv5ah9+F3e8mbr1h4ecswGQ==","signatures":[{"sig":"MEYCIQDDK++ya08nSz7EskENu6LEUDJB80Q/Am6JyxWxeeQjDAIhAOGk9ByRc8ta60T4YEeoUEGEme9eutZUVpokIKowby4o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2994550},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5cb291b448964fa1b6e0f99cbae7e3a0ff1dc830","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.12.1","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.15.0","dependencies":{"zod":"^3.22.4","zundo":"^2.3.0","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.8.0_1776968160936_0.22838870518583332","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@kontakto/email-template-editor","version":"2.9.0","_id":"@kontakto/email-template-editor@2.9.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"b09f57726520b14bc52a29543dbb4de1830d77dc","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.9.0.tgz","fileCount":9,"integrity":"sha512-PNV68zO+15dsbooaEe3AASdx/DjHBtbQjGNVi2n7za3R9uwGqwRnYxREfSzVKA7UiEGnF6gxAJ+5Z63JWQB9WA==","signatures":[{"sig":"MEQCIB1rkMgY0WCaHQSJzEAqpsVqvX2lKYyYeprL/7u80hqWAiAPEOeS2EjlVvL33YRa7WW6Q+4AY4DEiuUzI/Pt9X6Cgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3011782},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"3ddada94044bc95bebc726ed828164c268fe183a","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","zundo":"^2.3.0","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.9.0_1777008221555_0.17560170367546046","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"@kontakto/email-template-editor","version":"2.10.0","_id":"@kontakto/email-template-editor@2.10.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"1c305f98f8e28c6c9da917eb07e90970873fb4bf","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.10.0.tgz","fileCount":9,"integrity":"sha512-7woBrO6xhX1aQYKUBDakeVZIVUD4wBAecNwJ9LjaDbsemq2am5rjQ40wmFpZRY8go9Z6EJxwONK6dIn7bETQlQ==","signatures":[{"sig":"MEQCIDzihzA2/QAP3fNrN01sS5G5Hwycghy3dJZ2XzQxwePCAiAkCRF6xZ3NPfFpvHlfH7rGoNC3AFSz+6ZZZ3arvrCzKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3047470},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"423b748c883b6f40470a30ba4e6a2533aecf0e8e","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","zundo":"^2.3.0","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.10.0_1777018598419_0.4649175187996273","host":"s3://npm-registry-packages-npm-production"}},"2.10.1":{"name":"@kontakto/email-template-editor","version":"2.10.1","_id":"@kontakto/email-template-editor@2.10.1","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"f2f6af4395aed69cc1fbd851c87f450af46919db","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.10.1.tgz","fileCount":9,"integrity":"sha512-aX6LhaVCv7I/wi+dcuNWnDofBGGY8WIRqjC3smDUf9ml5SarCZEWvjNLykgtmcRX8vO4ubD1HvlZiXIa7HiL4g==","signatures":[{"sig":"MEQCIBns41/Gam1ZdVN+Zrotz/9cqt8bfMRgXxPSyuF2r0JTAiAg5veSN6HvCpKj5Kpnsw7JdWaNrIM9F0f+HkXvIh52NQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3051306},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e5a819fcd4c478e9ea3ed4d8d3a83d325db3560f","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","zundo":"^2.3.0","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.10.1_1777021618260_0.803911387573381","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"@kontakto/email-template-editor","version":"2.11.0","_id":"@kontakto/email-template-editor@2.11.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"286241b81c7c5c8f11d5e182f081732bb895fc3f","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.11.0.tgz","fileCount":9,"integrity":"sha512-dywuNK8W1HOLNCfeDLvsIhJ3k0yF0Oa5BUAwlzL26ROnitZxfsfmhnGVKfpXH8VQrbGQrr6tVRQBs5NWfDsDtw==","signatures":[{"sig":"MEQCIG9nAzeWrYswZ6VoIQEErGUi6QE7A0QtRc100Ny6EfSvAiBIYdhLxaSQW9j1lBkgYqAOzhvetvbzVfacY5AjOkIXcw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3066513},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"37583d3b9e57a564dd9ad84b2f526b5753276201","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","zundo":"^2.3.0","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.11.0_1777029430616_0.5177684345027251","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"@kontakto/email-template-editor","version":"2.12.0","_id":"@kontakto/email-template-editor@2.12.0","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"dist":{"shasum":"c15f8c574caff1a3923de5f64f2177026d71846a","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.12.0.tgz","fileCount":9,"integrity":"sha512-yky1zqDRY2vGEX1Puh3b9tzzHq7e2T7VfvBv8MNz7ikPmVL1NyFWLbjA7QIseqmVssaz9+nGfQJNIqfLqeKudA==","signatures":[{"sig":"MEUCIQCCL8jUCan/SQVN4KBo18TlTp4CERrZ0+TTDco3YXr0pwIgfIqjUbrV4GLb9Y5HBSa/R7x3yMAZwGMoHCGmFhEQX+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3095369},"main":"dist/index.cjs","type":"module","types":"dist/index.d.ts","module":"dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9e80a72c7764ef905f098c81a2acb98e397e14d5","scripts":{"dev":"vite","test":"playwright test","build":"lingui compile && vite build && tsup","preview":"vite preview","test:e2e":"playwright test","i18n:compile":"lingui compile","i18n:extract":"lingui extract"},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"_npmVersion":"11.11.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.22.4","zundo":"^2.3.0","htmlfy":"^0.7.2","marked":"^12.0.0","zustand":"^4.5.1","dompurify":"^3.3.1","handlebars":"^4.7.9","@lingui/core":"^5.9.5","highlight.js":"^11.9.0","@lingui/react":"^5.9.5","@mui/material":"^5","@emotion/react":"^11.11.3","react-colorful":"^5.6.1","@emotion/styled":"^11.11.0","@mui/icons-material":"^5","react-contenteditable":"^3.3.7"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.2","vite":"^7.3.1","react":"^18.3.1","eslint":"^9.39.3","ts-node":"^10.9.2","prettier":"^3.2.5","react-dom":"^18.3.1","typescript":"^5.3.3","@lingui/cli":"^5.9.5","@types/react":"^18.2.55","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react-dom":"^18.2.19","@lingui/format-po":"^5.9.5","typescript-eslint":"^8.56.1","@vitejs/plugin-react":"^5.1.4","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/email-template-editor_2.12.0_1778008403617_0.8427530962741709","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"@kontakto/email-template-editor","version":"2.13.0","type":"module","main":"dist/index.cjs","module":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"scripts":{"dev":"vite","build":"lingui compile && vite build && tsup","preview":"vite preview","test":"playwright test","test:e2e":"playwright test","i18n:extract":"lingui extract","i18n:compile":"lingui compile"},"dependencies":{"@emotion/react":"^11.11.3","@emotion/styled":"^11.11.0","@lingui/core":"^5.9.5","@lingui/react":"^5.9.5","@mui/icons-material":"^5","@mui/material":"^5","dompurify":"^3.3.1","handlebars":"^4.7.9","highlight.js":"^11.9.0","htmlfy":"^0.7.2","marked":"^12.0.0","react-colorful":"^5.6.1","react-contenteditable":"^3.3.7","zod":"^3.22.4","zundo":"^2.3.0","zustand":"^4.5.1"},"devDependencies":{"@lingui/cli":"^5.9.5","@lingui/format-po":"^5.9.5","@playwright/test":"^1.58.2","@types/dompurify":"^3.0.5","@types/react":"^18.2.55","@types/react-dom":"^18.2.19","@vitejs/plugin-react":"^5.1.4","eslint":"^9.39.3","eslint-plugin-react-hooks":"^5.2.0","eslint-plugin-react-refresh":"^0.5.2","eslint-plugin-simple-import-sort":"^12.1.1","prettier":"^3.2.5","react":"^18.3.1","react-dom":"^18.3.1","ts-node":"^10.9.2","tsup":"^8.0.2","typescript":"^5.3.3","typescript-eslint":"^8.56.1","vite":"^7.3.1"},"peerDependencies":{"react":"^17.0.0 || ^18.0.0 || ^19.0.0","react-dom":"^17.0.0 || ^18.0.0 || ^19.0.0"},"gitHead":"3ae1d902d6522e39d433b4eb945b2b35d6213afc","_id":"@kontakto/email-template-editor@2.13.0","description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-VPXH4cwZ4Qkwr9UpnRxypMZ1xIGyRh3thzOGpNO6YuQ1Md8J0NGT4prbdkL4Ki3doKhsUpo/tKAoE04Dtox+Kw==","shasum":"fdbfdc4be8edde8f1be0f340418a07e0fa2d890d","tarball":"https://registry.npmjs.org/@kontakto/email-template-editor/-/email-template-editor-2.13.0.tgz","fileCount":9,"unpackedSize":3207742,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIB5OJtrUOjAiKG/zMNMYi3viaXf9Irg0LlL9enOW59r+AiBSFkhwTCXG+PUukssvIP4K1joMgZSpWe20451y5rdC4A=="}]},"_npmUser":{"name":"kontakto","email":"admin@kontakto.fi"},"directories":{},"maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/email-template-editor_2.13.0_1778171208706_0.8661539999632668"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-09T12:59:00.506Z","modified":"2026-05-07T16:26:49.070Z","1.2.0":"2025-05-09T12:59:00.822Z","1.2.1":"2026-03-02T11:24:56.726Z","1.3.0":"2026-03-02T13:53:18.258Z","1.3.1":"2026-03-02T14:06:28.874Z","1.3.2":"2026-03-02T19:16:21.056Z","1.3.3":"2026-03-02T20:30:35.136Z","1.4.0":"2026-03-05T10:22:23.843Z","1.5.0":"2026-03-05T11:56:51.777Z","1.5.1":"2026-03-05T12:07:35.919Z","1.6.0":"2026-03-25T10:46:09.710Z","2.0.0":"2026-04-22T13:09:03.322Z","2.1.0":"2026-04-22T13:53:50.406Z","2.2.0":"2026-04-22T14:45:22.423Z","2.2.1":"2026-04-22T15:37:44.486Z","2.2.2":"2026-04-22T16:07:29.945Z","2.3.0":"2026-04-23T09:26:00.953Z","2.3.1":"2026-04-23T10:00:12.299Z","2.4.0":"2026-04-23T10:14:58.353Z","2.5.0":"2026-04-23T10:16:23.371Z","2.6.0":"2026-04-23T10:44:24.198Z","2.7.0":"2026-04-23T11:05:46.958Z","2.8.0":"2026-04-23T18:16:01.085Z","2.9.0":"2026-04-24T05:23:41.763Z","2.10.0":"2026-04-24T08:16:38.580Z","2.10.1":"2026-04-24T09:06:58.503Z","2.11.0":"2026-04-24T11:17:10.787Z","2.12.0":"2026-05-05T19:13:23.891Z","2.13.0":"2026-05-07T16:26:48.968Z"},"description":"A React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.","maintainers":[{"name":"kontakto","email":"admin@kontakto.fi"}],"readme":"# Email Editor for React\n\nA React-based email template editor component that allows users to create and customize email templates through a visual interface. This component can be embedded in any React application.\n\n## Features\n\n- Visual email template builder\n- Rich set of components (text, buttons, images, dividers, containers, columns, etc.)\n- Markdown support for text editing\n- Responsive email templates\n- Embeddable into React applications\n\n## Installation\n\n```bash\nnpm install @kontakto/email-template-editor\n```\n\n## Usage\n\n### Embedding into existing project\n\nYou can easily embed the EmailEditor into any React application:\n\n```jsx\nimport { EmailEditor } from '@kontakto/email-template-editor';\n\nfunction MyApp() {\n  return (\n    <div className=\"my-container\">\n      <EmailEditor \n        persistenceEnabled={true}\n        minHeight=\"80vh\"\n      />\n    </div>\n  );\n}\n```\n\n#### Available Props\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `minHeight` | string | '100vh' | Sets the minimum height of the editor container |\n| `persistenceEnabled` | boolean | false | When true, enables save functionality and shows save buttons. Requires callbacks for persistence operations. |\n| `samplesDrawerEnabled` | boolean | true | Controls whether the templates/samples drawer is shown |\n| `drawerEnterDuration` | number | 225 | Duration for drawer enter transition (ms) |\n| `drawerExitDuration` | number | 225 | Duration for drawer exit transition (ms) |\n| `initialTemplate` | object | - | Initial template to load when editor first mounts |\n| `initialTemplateId` | string | - | ID of the initial template |\n| `initialTemplateName` | string | - | Name of the initial template |\n| `onSave` | function | - | Callback when template is saved: `(payload: SavePayload) => void \\| Promise<void>` (see SavePayload below) |\n| `onChange` | function | - | Callback when template changes: `(template) => void` |\n| `loadSamples` | function | - | Loads sample templates: `() => Promise<TemplateListItem[]>` |\n| `loadTemplates` | function | - | Loads user templates: `() => Promise<TemplateListItem[]>` |\n| `loadTemplate` | function | - | Loads specific template: `(id) => Promise<Template>` |\n| `deleteTemplate` | function | - | Deletes a template: `(id) => void` |\n| `copyTemplate` | function | - | Copies a template: `(name, content) => void` |\n| `renameTemplate` | function | - | Renames a template: `(id, newSlug) => void \\| Promise<void>` |\n| `setTemplateKind` | function | - | Promotes/demotes a row between template and sample: `(id, kind) => void \\| Promise<void>`. When omitted, promote/demote menu items are hidden. |\n| `saveAs` | function | - | Saves template with a new name: `(name, payload: SavePayload) => Promise<{ id, slug }>` |\n| `uploadImage` | function | - | Uploads a single image file: `(file: File) => Promise<UploadedImage>`. Enables the Upload button on the Image inspector, drag-and-drop on the canvas, and paste-image-to-insert. When omitted, all upload UI is hidden and URL paste remains the only way to set an image. |\n| `loadImages` | function | - | Lists previously uploaded images for the library picker: `() => Promise<LibraryImage[]>`. Enables the \"Library\" button on the Image inspector. When omitted, the library button is hidden. |\n| `deleteImage` | function | - | Deletes an image from the library by URL: `(url: string) => Promise<void>`. When omitted, the per-row delete button in the library is hidden. |\n\n`TemplateListItem` is the lean list-endpoint shape (no `editor_config`):\n\n```ts\ntype TemplateKind = 'template' | 'sample';\n\ntype TemplateListItem = {\n  id: string;\n  slug: string;                 // primary label\n  kind: TemplateKind;           // 'template' (editable) or 'sample' (read-only starting point)\n  description?: string;         // secondary line\n  subject?: string;\n  variables?: Array<{ name: string; description?: string }>;\n  tags?: string[];\n  thumbnailUrl?: string;\n  createdAt?: string;\n  updatedAt?: string;\n};\n```\n\nThe drawer groups rows by `kind`, not by which callback returned them. Both `loadTemplates` and `loadSamples` should return their items with the correct `kind`; backends typically scope the two endpoints differently (per-user vs. org-wide), but the `kind` field is what determines the section a row appears in.\n\nSamples are read-only starting points: Save on a loaded sample is disabled — the user must use Save As, which creates a fresh row with `kind='template'`.\n\n#### Subject and variables\n\nEmail subject and template variables are stored on the `EmailLayout` block's data and round-trip with the editor configuration:\n\n```ts\ntype EmailLayoutData = {\n  // ...style fields\n  subject?: string;\n  variables?: Array<{ name: string; description?: string; sampleValue?: string }>;\n};\n```\n\nThe editor renders a subject input above the canvas (always visible, supports `{{variable}}` syntax) and a Variables tab in the right inspector panel for declaring variables. Both persist via the standard save flow — consumers who previously stored `subject` in a separate DB column can read it from the saved `editor_config` instead.\n\nThe Variables tab supports Handlebars-aware management:\n\n- **Add/rename/delete**. Names follow Handlebars identifier rules (`[A-Za-z_][A-Za-z0-9_]*`, max 64 chars, reserved words rejected). Renaming a declared variable rewrites all `{{oldName}}` and `{{oldName.*}}` tokens in the subject and in text/heading/button/html blocks — including inside block helpers (`{{#if}}`, `{{#each}}`, `{{#unless}}`, `{{#with}}`).\n- **Usage indicators.** Each row shows how many times the variable is referenced, or \"Unused in body\" if the declared name never appears. Tokens found in the body that aren't declared surface at the top of the panel with a one-click \"add as variable\" action.\n- **Insert at cursor.** Focus a text/heading/button/html editor or the subject input, then click the Insert button next to a variable to splice `{{name}}` at the caret.\n- **Sample values.** Each row has an optional `sampleValue` field that travels with the template (persisted on `editor_config.root.data.variables[].sampleValue`). In Preview mode, `{{name}}` and `{{name.*}}` tokens in the subject and in text/heading/button/html blocks render with the sample value substituted in; block helpers (`{{#if}}`, `{{#each}}`, …) are stripped so their content renders inline, but the control flow is not evaluated. Edit mode always shows the raw tokens.\n\n#### Save payload\n\n`onSave` and `saveAs` receive the same `SavePayload`. The editor renders body HTML and plain text on every save so consumers don't ship the renderer themselves:\n\n```ts\ntype SavePayload = {\n  editorConfig: TEditorConfiguration;   // source of truth\n  subject?: string;                     // from the subject input\n  variables?: Array<{ name: string; description?: string }>;\n  bodyHtml: string;                     // pre-rendered, ready to send\n  bodyText: string;                     // pre-rendered, ready to send\n};\n```\n\nThe `renderToStaticMarkup` and `renderToText` utilities are also exposed publicly for consumers that need to re-render outside the save flow (e.g. batch jobs).\n\n#### Handlebars render pipeline\n\n`renderToStaticMarkup(doc, { rootBlockId, variables? })` and `renderToText(doc, { rootBlockId, variables? })` both accept an optional `variables` context. When omitted (the default — including `buildSavePayload`), the output keeps raw `{{name}}` placeholders in place so the consumer's sending pipeline can evaluate them at send time with the recipient's actual data. When provided, the rendered output is compiled and evaluated as a [Handlebars](https://handlebarsjs.com/) template:\n\n```ts\nrenderToStaticMarkup(doc, {\n  rootBlockId: 'root',\n  variables: { name: 'Alice', premium: true, amount: 19.99, next_bill: '2026-05-01' },\n});\n// → \"<!DOCTYPE html>...Hi Alice! Premium user. Next bill: 5/1/2026, total €19.99...\"\n```\n\nBuilt-in block helpers are whatever Handlebars ships with: `{{#if}}`, `{{#unless}}`, `{{#each}}`, `{{#with}}`, `{{else}}`. The editor registers two extra formatters on a scoped Handlebars instance:\n\n- `{{formatDate value \"date\"|\"time\"|\"datetime\"|\"iso\"}}` — formats a Date or ISO string via the user's locale.\n- `{{formatNumber value currency=\"EUR\" style=\"currency\" maximumFractionDigits=0}}` — wraps `Intl.NumberFormat`.\n\nThe scoped instance is exported as `editorHandlebars` for consumers who want to register additional helpers or partials without polluting the global `Handlebars` default instance:\n\n```ts\nimport { editorHandlebars, evaluateHandlebars } from '@kontakto/email-template-editor';\n\neditorHandlebars.registerHelper('upper', (s: string) => (s ?? '').toUpperCase());\nevaluateHandlebars('Hello {{upper name}}', { name: 'world' }); // → \"Hello WORLD\"\n```\n\nBackwards compat: templates using only simple `{{placeholder}}` substitution render identically whether Handlebars is invoked or not, so existing consumers can opt in gradually.\n\n#### Image upload and library (BYO backend)\n\nThe editor delegates image storage to the consumer through three optional callbacks. When omitted, the corresponding UI is hidden and URL paste remains the fallback.\n\n```ts\ntype UploadedImage = {\n  url: string;\n  width?: number;\n  height?: number;\n  alt?: string;\n};\n\ntype LibraryImage = UploadedImage & {\n  thumbnailUrl?: string;\n  uploadedAt?: string;\n};\n```\n\n- **`uploadImage(file)`** — receives a single `File`, uploads it (S3, R2, Bunny, presigned PUT, etc.), and returns the public `url` plus optional intrinsic dimensions and alt text. Wires up: the Upload button in the Image inspector, drag-and-drop of an image file onto the canvas, and paste-image-from-clipboard.\n- **`loadImages()`** — returns the consumer's image list for the \"Library\" picker dialog (grid + filter by alt/URL).\n- **`deleteImage(url)`** — removes an image from the library; surfaces a delete button on hover in the picker.\n\nReference upload handler:\n\n```ts\nconst uploadImage = async (file: File) => {\n  const form = new FormData();\n  form.append('file', file);\n  const res = await fetch('/api/images', { method: 'POST', body: form });\n  return res.json(); // { url, width, height }\n};\n```\n\nNewly uploaded images get their `width` / `height` set on the resulting Image block — important for Outlook, which needs explicit dimensions to lay the email out before images load.\n\n#### Example PostgreSQL schema\n\nA minimal schema that maps directly onto `SavePayload`, `TemplateListItem`, and the image-library callbacks. The editor itself is backend-agnostic — this is just a reference starting point.\n\n```sql\n-- Email templates (user-editable rows + org-wide read-only samples)\ncreate table email_templates (\n  id            uuid primary key default gen_random_uuid(),\n  slug          text not null,                                  -- primary label shown in the drawer\n  kind          text not null check (kind in ('template', 'sample')),\n  description   text,\n  subject       text,                                           -- mirrors editor_config.root.data.subject\n  variables     jsonb not null default '[]'::jsonb,             -- [{ name, description?, sampleValue? }]\n  tags          text[] not null default '{}',\n  thumbnail_url text,\n\n  -- Source of truth: full TEditorConfiguration from SavePayload.editorConfig\n  editor_config jsonb not null,\n\n  -- Pre-rendered output from the save pipeline; usually what you ship to the sender\n  body_html     text not null,\n  body_text     text not null,\n\n  -- null for org-wide samples, set for user/tenant-owned templates\n  owner_id      uuid references users(id) on delete cascade,\n\n  created_at    timestamptz not null default now(),\n  updated_at    timestamptz not null default now(),\n\n  unique (owner_id, slug)\n);\n\ncreate index email_templates_owner_kind_idx on email_templates (owner_id, kind);\ncreate index email_templates_tags_gin_idx   on email_templates using gin (tags);\n\n-- Image library backing uploadImage / loadImages / deleteImage\ncreate table email_images (\n  id            uuid primary key default gen_random_uuid(),\n  url           text not null unique,\n  thumbnail_url text,\n  width         int,\n  height        int,\n  alt           text,\n  owner_id      uuid references users(id) on delete cascade,\n  uploaded_at   timestamptz not null default now()\n);\n\ncreate index email_images_owner_uploaded_idx on email_images (owner_id, uploaded_at desc);\n```\n\n`loadTemplates` typically scopes to `owner_id = :user` with `kind = 'template'`; `loadSamples` returns `kind = 'sample'` (often ignoring `owner_id`, or scoping to an org). The `kind` column — not which endpoint returned the row — decides which drawer section a template appears in.\n\n| `theme` | object | theme.ts | Custom theme for the EmailEditor, must be a Material UI theme object |\n\n#### Imperative API\n\nYou can access the EmailEditor's methods using a ref:\n\n```jsx\nimport { EmailEditor } from 'kontakto-email-editor';\nimport { useRef } from 'react';\n\nfunction MyApp() {\n  const editorRef = useRef(null);\n  \n  const handleSave = () => {\n    const template = editorRef.current.saveTemplate();\n    console.log('Saved template:', template);\n  };\n  \n  const handleLoad = (template) => {\n    editorRef.current.loadTemplate(template);\n  };\n  \n  const handleGetCurrent = () => {\n    const current = editorRef.current.getTemplate();\n    console.log('Current template:', current);\n  };\n  \n  return (\n    <div>\n      <button onClick={handleSave}>Save</button>\n      <button onClick={handleGetCurrent}>Get Current</button>\n      <EmailEditor ref={editorRef} minHeight=\"600px\" />\n    </div>\n  );\n}\n```\n\n### Keyboard shortcuts\n\nThe editor surfaces a few global shortcuts. Inside text fields or rich-text blocks the native browser behavior takes over — global undo/redo only fires when focus is on the canvas (not mid-typing).\n\n| Action | macOS | Windows / Linux |\n|---|---|---|\n| Undo | ⌘ + Z | Ctrl + Z |\n| Redo | ⌘ + Shift + Z | Ctrl + Shift + Z, Ctrl + Y |\n| Bold (inside text) | ⌘ + B | Ctrl + B |\n| Italic (inside text) | ⌘ + I | Ctrl + I |\n| Link (inside text) | ⌘ + K | Ctrl + K |\n\nThe undo history tracks document mutations only (block insert/delete/move, content edits, style changes, variable edits). Rapid consecutive edits (dragging a slider, typing a burst) collapse into a single history entry. The ring buffer holds the last 100 entries and resets whenever a new template is loaded.\n\n### Stand-alone version using Vite\n\nThis project includes a standalone version that can be run using Vite:\n\n```bash\n# Install dependencies\nnpm install\n\n# Run the development server\nnpm run dev\n```\n\nThis will start a development server with the EmailEditor running as a standalone application that uses browsers local storage to save and load templates.\n\n## Theming\n\nThe EmailEditor component has the CssBaseline and ThemeProvider components from Material UI applied by default. However, if you need to supply a custom theme, you can do so by passing a custom theme to the EmailEditor component. The theme should be a Material UI theme object.\n\n\n## Development\n\nTo run this locally:\n\n1. Clone the repository\n2. Install dependencies:\n   ```\n   npm install\n   ```\n3. Start the development server:\n   ```\n   npm run dev\n   ```\n4. Visit http://localhost:5173/ in your browser\n\n## Project Structure\n\n- `src/blocks/` - Email components (text, images, buttons, etc.)\n- `src/editor/` - Core editor functionality\n- `src/app/` - Main application components\n- `src/email-builder/` - Email template rendering\n- `src/core/` - Core utilities and types\n\n## Technologies\n\n- React\n- TypeScript\n- Material UI\n- Zustand for state management\n- Vite as the build tool\n- Marked and Highlight.js for markdown and code highlighting\n\n# Email-Template-Editor\n\nLicensed under the MIT License. See `LICENSE` for details.\n\nThis project, Email-Template-Editor, is a substantial derivative work based on an original MIT-licensed project, `email-builder-js` by Waypoint (Metaccountant, Inc.).  `email-builder-js` is a free and open-source block-based email template builder designed for developers to create emails with JSON or HTML output. While the original code was created by Waypoint, this project has been significantly refactored with:\n\n1.  Restructuring of the project files and directories.\n2.  Implementation of how external context is handled.\n3.  Changes to the purpose of the project to be integrated and embedded into other React based projects.\n\n## Original Code from Waypoint (Metaccountant, Inc.)\n\nThe following parts (not limited to) of this project are derived from the original MIT-licensed project `email-builder-js` by Waypoint:\n\n*   The parsing logic is based on Waypoint's original block-based parsing approach\n*   The concepts for the blocks\n*   The concepts for the editor\n*   The concepts of the builder\n\n## Acknowledgements\n\nThis project gratefully acknowledges the original work by Waypoint (Metaccountant, Inc.) on `email-builder-js` as the foundation upon which this version was built.","readmeFilename":"README.md"}