{"_id":"render-tag","_rev":"39-b94e2b616b0a566416c961518e7820f5","name":"render-tag","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"render-tag","version":"0.1.0","author":{"name":"Anton Lavrenov"},"_id":"render-tag@0.1.0","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","dist":{"shasum":"58de320f981bb1a959b2429a5f1d0b3521035118","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.0.tgz","fileCount":26,"integrity":"sha512-QaqmZ+JLVv/VYI4aG+pziFoe3O3aycK/dTWYTdSd6A4Ez9UhxU9B+yPzuumxcd+9qPueS9MmnL15uAFHJQjAbw==","signatures":[{"sig":"MEYCIQC79PJeGtWkbGiT4BqLi7wr0eBeMwY2YGYhqF5J3n6fOwIhAKNlaeGs030GADv5Is/ljl2z2W3Hkw0Tgymm/A3v3aeO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":178007},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"}},"gitHead":"2dc4a294a84f9274d6c88627ae62cbee7cf23a9b","scripts":{"dev":"vite","docs":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.0_1774749984036_0.8814686720869558","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"render-tag","version":"0.1.1","author":{"name":"Anton Lavrenov"},"_id":"render-tag@0.1.1","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","dist":{"shasum":"2e691e02beaaf3b54e47d519a3e8d06df03406bc","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.1.tgz","fileCount":26,"integrity":"sha512-n43DFlXfzDi3PMobrB2cq7mI5czjjb7F0hKkcc2ArXku8AssrNLS3DZt1Lm0dsD4VFz0uMsv3nKPekLDyu8TYA==","signatures":[{"sig":"MEQCIGcGvLCiuvpiYYLc26lxlgBOF/v276SNdw0KSSyIj7t+AiBE6LgR5rN++BZdDJGgvozjQkD3UgsWHnr/QV5R/eBd6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":194027},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"}},"gitHead":"16d6839fcfd2f4a8c92914824b6b40a369ac78d1","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.1_1774791162227_0.9825532153021261","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"render-tag","version":"0.1.2","author":{"name":"Anton Lavrenov"},"_id":"render-tag@0.1.2","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","dist":{"shasum":"ef222c248928e67db1ca03cd9f3ea7f6b0cf59a8","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.2.tgz","fileCount":28,"integrity":"sha512-wlUQz6XdfqwLD2VpNzb24XV3WFuZAZ6nypxpWx4tOTp5lYAY5TzwPkgNY2I0blVtJrgqeKIGpbD+QJEs47F3bw==","signatures":[{"sig":"MEQCICTtSivyQGTIfkZS7sy9wHgxpLeFSU9nRnup6IQq2rRxAiAsV0916/OC5XMeRaErzgJ+MOzeM57JmYJeF4vt6HJQtg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348742},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js"},"gitHead":"6c155f683f05d48d9a439f643f80a2c8241aed17","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.2_1774792692840_0.8524686431700337","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"render-tag","version":"0.1.3","author":{"name":"Anton Lavrenov"},"_id":"render-tag@0.1.3","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","dist":{"shasum":"ec2e5cee0df66c5b9a73e4bc5f7b3dfd54652f13","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.3.tgz","fileCount":32,"integrity":"sha512-Rx78UvH7QYP+nv+i3LIRYJRllaoL++zKx4UGBwJdjFSNvJ5bt77F0E5ADIghJX3SrfPKadAHkOgIop9cxGw+kg==","signatures":[{"sig":"MEYCIQCXsxNUxtgAVh9hdC923gZmYzy+lz1rma/7GPpKIggi5AIhALL7DyQEIz+y78mG/H7QdB1eY4nRsBuTByKEZz5+jq7K","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":507805},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js"},"gitHead":"b49cfdf9ead63d25615299afd991a4e0622c3afb","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.3_1774914354317_0.27180535989924404","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"render-tag","version":"0.1.4","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.4","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"3501a43c7bd8e96af081834d33aa994f47c64155","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.4.tgz","fileCount":32,"integrity":"sha512-6oF6skw3rYY9c2RAQsq3L2jEywSm3rbl/m9Fidbs5zH7caNRFM74cfA+K+3sTBkvIobw+ItE8VqtZoKzRTAQFw==","signatures":[{"sig":"MEUCIFgX8jttUQyJ+MydjU4+hoOfiOsxofxrSLC5gBOXtEhPAiEAvRd6ZE73AhpEJWr/9LTI+ulNFScKKyZgUvNL7fmmWJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":524889},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js"},"gitHead":"48e07d6c95f177fbeb0243b843793ee4a12861c7","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.4_1777396668046_0.336535273242339","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"render-tag","version":"0.1.5","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.5","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"4950002f70a59b29d587212bc4d2f7ec02c44fc2","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.5.tgz","fileCount":32,"integrity":"sha512-zM4XcGjWKoLJ59+dWxPBT99v14tICXSKcQcmxEweb1LrvudZHTXAKddfW/MAma8K87Qgyrp3F3hFE4YnJxhr/A==","signatures":[{"sig":"MEUCIQD/yN4mAcdRPLRFqAw0MVs1hq1kdLUBh3jxlabn9CsILAIgT1UCplTDLIPRqJw46X+La2gWEmJJa1AkBBmZGO/8A4M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":529153},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js"},"gitHead":"3112811cd0ddc73082d82efb76b6b9af8aca806e","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.5_1777470151613_0.09489438612116197","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"render-tag","version":"0.1.6","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.6","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"886c7f755d0e428039014b2fb9ca52f895002464","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.6.tgz","fileCount":32,"integrity":"sha512-jfHqzIqWgQmrw5Os7nOFWpQNhoa6AZ//xh5yEQj1osZYUHSAYzac4DQ1NctgHV0eHL08DGEIExGX4OoEThjlow==","signatures":[{"sig":"MEUCIE0WA9wMGuV5P8vre1Ut6OyuqLdPQxIMGh18cGTxiPILAiEA5sNtc+u0sV0jhcf5g6tAseamw6mz8ZufQAvfYsNaEl8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":545851},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js"},"gitHead":"623ccc4d01e9d13c9ce14a0012f988f0bbe028d2","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.6_1777482301567_0.47582827110607573","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"render-tag","version":"0.1.7","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.7","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"0c390b8a36a16a9af50b5da153b94b646f3d72ce","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.7.tgz","fileCount":32,"integrity":"sha512-8ISJTx3Ip5iqHbUs/EqRI5uluWcx7/duob9M6dH41yRlpnRa4cFDM/34PTQvuYunku0EW5qGt5s+aKeNAzitLg==","signatures":[{"sig":"MEUCIQC0n0n8Rkjfm3EKlsPN5SqjlF1/9VvO8kwOiyKeG5/PkQIgPZGAXK+qHW8tLsz2Rms5wozdIWrJCA+rxCDIuG8uc4c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":553521},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js"},"gitHead":"32d300ac01b6b14246ad5ce4e312918eafaa1bc1","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.7_1778070623711_0.9812159485400798","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"render-tag","version":"0.1.8","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.8","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"30230e8f2f8e8b6a5ce0609a022ace2add45a5d7","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.8.tgz","fileCount":48,"integrity":"sha512-DPYa/upzKhWzy2JaW/M4jUGa3Jz51u2sjRqrcW7HUb2703UNyeB3ZTfTBhH4Jqpt+OrM5Z7ojb564lNli5s8FQ==","signatures":[{"sig":"MEUCIQDpnZI0VEN/AX0DO0xlmUudHm5HfDcqKLiLt1JnZ3HLsgIgIteKSCBDCa4HzktxBI4GBv8z+fWbCM9UuPJKuovkDIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":633136},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"e83ae83c28d379f48ef6e8c45b0ee0ccd34e277e","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.8_1779553534303_0.15479454842291918","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"render-tag","version":"0.1.9","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.9","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"2921542194f0c48e9b37e42baa72d1eee3258efb","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.9.tgz","fileCount":48,"integrity":"sha512-lF4fdTZjFqd4IC0keWQTk0C95yb3uXXvJoodH0nOsv6YXRWdCn82GfJGAJIE2J5XkBKcr8qX3VHKClueHKSiSw==","signatures":[{"sig":"MEQCICpcMadsNQueOJo0QKeBiC0+MlCYEp/+2EvHkLGAcmV9AiAmL0K9d+bWm6cgWu70MVnWa8InSS2YrV+NU0K9m3HIxA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":684496},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"1163c674e92db2d2762087a7916e6356609c781a","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.9_1779567610625_0.6223984854919637","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"render-tag","version":"0.1.10","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.10","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"e388cd271fe39828b2cca2971aa2d6b6224599a4","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.10.tgz","fileCount":48,"integrity":"sha512-aB+qbKTnq3KBPA4S6K8O8/1EE4FxuTGi+N4RTz+QUqwSX7Vk7xoNJODPl+AnjRVHqn9Ax8uhocGtYIYyMhZGEg==","signatures":[{"sig":"MEUCIQDre+iJVXGbDIO6d+j3JDwETQy0dIAURHXfS5vwjumirQIgd+37QyU5AGTw9lg3v6X4TXcuSDf2qgLGzY9AC6J1r/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":686174},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"799c0c10c0355b5640081652be8a71c93842d335","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.10_1779591265598_0.7013421348815383","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"render-tag","version":"0.1.11","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.11","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"cb6e802ded5fe185e411772691d521d24be4e72c","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.11.tgz","fileCount":48,"integrity":"sha512-Bj9QXx8EqS3z6RX23edmWKacNRMo5JCRzBc3Vq+22AxBsEx/bbs9YRcUvbpAAVlnhlhkeHNS/FjpxDEXcZeGOg==","signatures":[{"sig":"MEUCIQCJi/dDnxL/myftTNXzXwYSF8Xc8M4770SNkhuqiBjqqQIgbB8YZTNwFVm3p0l7Cyda6OvnFfCkZ4jzUq3Rwv2+uX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735169},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"3f00df0db2b8607160eb241e1cd415921a0e2da4","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.11_1780944317105_0.5427716846834338","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"render-tag","version":"0.1.12","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.12","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"7ef9297a00c0bbb8d709b246b6170521b94a7f34","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.12.tgz","fileCount":48,"integrity":"sha512-X7ZMnvOkr6y1tOEgF/ko2JCs5AVoDUJ6uAfFQnXWPx8krQ5YOng2grOfkJFG7O/hdrWt6L4Bl4HN9iG2Vssc6g==","signatures":[{"sig":"MEUCIA/1hFygnTPXSUsbgsCDbeHFMCGTuzG06GJ+4EHn+91vAiEA8UBhJsnB3lO1dLaafcwnU7ii2zLiAdXD3KDiwWtKba4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":736122},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"76658e3122352ee0066ac9ec88badad414dda33f","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.12_1781004158034_0.8291603832867753","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"render-tag","version":"0.1.13","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.13","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"947922e6f8e1d14de83e73f54cbc5a5e002b44fe","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.13.tgz","fileCount":48,"integrity":"sha512-yJMyq6ci8gCwfCb9LZd9N1hIaz9cGpXAgvHJ3fgy1vz6Y15LPURpMg7j3rcgRqOq0rAXcc2zrofg+fZsB4twOw==","signatures":[{"sig":"MEQCID+reOV9BHSWAKpa/IwBX2QkmLN4xn4fo2wQA2IaZd7IAiBJ8HtnjFUaGgqvzv8xUIllBPg4ner2xesuWtocLUwanw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":762134},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"75afaeab12042874a075c51b2f9657cd421000af","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.13_1781009260301_0.2787147684270266","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"render-tag","version":"0.1.14","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.14","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"bf3f5c7d228ccdcae9feb76a5f0534be85f59743","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.14.tgz","fileCount":48,"integrity":"sha512-j+4KZP3g/ENARLB63QsZYeGzVVP5uF9jjrqeepuNUTeHxsF9wL4ysCJknNQLP7eDbA2FP8d4slr0tOCNZDIkPQ==","signatures":[{"sig":"MEYCIQD7olmBA5jaUrp27U9ED3+vsFa+yxpH00u2aRsYGbWArQIhALmpywSZYnSK5xPE5QjlA4dLTQ+gFwa28zb0D5sop0qq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":765730},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"331349b710ba7e1b37079af3abe1c11416497ace","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.14_1781076830240_0.33152718087190336","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"render-tag","version":"0.1.15","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.15","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"dc5f28a4a9ce57dbf130d9acd2fb77c656c088fb","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.15.tgz","fileCount":48,"integrity":"sha512-x2nVSHF2l62ZTqmXUO6wZkctDuI3bvIjwdyhWiQxLADCQq1vWOKT147OAR+HmOGcibm1tJleFTWAKNL+gVG5XQ==","signatures":[{"sig":"MEUCIA68zRlfUmWYjhfiamXRPQP1v9IdqrXp8rMyjW9KwoyIAiEApSGElF6aJK0AdlNq8Wyrdi3EHRnZK+ok3HOwdMsnl5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":771342},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"2004e7acb24b4487988b8f797bf9ad2e0cb63f8b","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.15_1781100694894_0.34832447007061784","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"render-tag","version":"0.1.16","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.16","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"789f1c399aab626c039e08b5a2cf54d97d0b87ac","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.16.tgz","fileCount":48,"integrity":"sha512-JaUHY/UIF0ojbFo8Qcj/UpWCJW1W+L/1OVOl5wm/0wyb40YLuqGSJ8QLJy2RtvyK647Zme2COGjC502KztxaNQ==","signatures":[{"sig":"MEUCIQCQ5U84TFy7BGziIKlhJnXzMHSTJRRqm8iALOsLAx8aeAIgdQFRIC7AiuIj5Fuy7aLwm+1c5wKM01ERnk1dR5TVYSY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":777806},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"05f0f40d50a7a2b982855c4dc54a8f07d54ae4c2","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.16_1783004899897_0.6379755320423062","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"render-tag","version":"0.1.17","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.17","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"7185c79c193d67d0d5730c1978e22addc0e33779","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.17.tgz","fileCount":48,"integrity":"sha512-J5cVZhAMeB2u5NOOYeAJJFFhTMHvaE+p555cEE436JxzEDOODJk4fV4FyP9a3KpoVqGGjj5ukKnynWw1HnYbeA==","signatures":[{"sig":"MEQCID5csZx+TJ8CmYsmmCUoWdpR4uxF2SjN4tQ4XQMkUk6hAiA5H28NB0bR6cwnOt1+0bYAJ6LunPMo2r5dh4nNyIlF3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":780702},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"types":"./lib/index.d.ts","import":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"types":"./lib/path/index.d.ts","import":"./lib/path/index.js"}},"gitHead":"44df3b18c80c11b11e1097610c8168804c763ad8","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts","build":"tsc && vite build --config vite.umd.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.17_1783362919321_0.5691747472946365","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"render-tag","version":"0.1.18","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.18","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"151431d01f306aa315fd37c8cc74c975ddb6cc3d","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.18.tgz","fileCount":60,"integrity":"sha512-yv2fIDVyYWtsdBc17qFPQJNFos+gNnmNOYvefjpYfdqBKtsS9nYWYV/PwzLJSlkKxQXpigOxwwoSmD8zKG33iQ==","signatures":[{"sig":"MEQCIBfRpMRMmQ2Urc1sF6mQncWovwLKhfX3Y1b10fCEBeobAiAXxgWEXZN5Bptxhwk9wYP++enrXpqjCPbA/ZR2HN1GqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":800977},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"d074311691025e104add3403d8ad628792cc8d43","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.18_1783869676821_0.4919497046195709","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"render-tag","version":"0.1.19","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.19","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"61c0fd84f1463235d5722001ade6a8328eddb9e7","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.19.tgz","fileCount":60,"integrity":"sha512-4kI4PP5fKiO9KjFR+m47g24FOeL/TadVsMEqg3rjcZgHoVjjumwTnfDITmeBRJJpOfN33MhevZ+btgmOBG5rRQ==","signatures":[{"sig":"MEQCICtsnyo9g1GGgAZtdZr0r+W8Oka4WVTg44qe81/xlK0CAiATLBRSLSGUq5H2RLE1xMSZcNZw6i7IFUYte8GzGLKz3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":802421},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"484f103cf36bbba109557bb84eac92c7be13150e","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.19_1783876526112_0.4580227417630889","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"render-tag","version":"0.1.20","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.20","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"8920f9ad1579d90bd997855e750d76f735c4744c","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.20.tgz","fileCount":60,"integrity":"sha512-uHGhXRiX6ytx+I1IwuPod9SLwChbCjtNswQ06f6Zu5ow1kkNY8QGUwh77BfZSx14UO2kwl7+yEUBI5H3Do2T0w==","signatures":[{"sig":"MEQCIHq2E4nV+HLxBZaIeFg3MkjHpSywyWtsiSERRIYerKIYAiBqZpl76TpPd4+AJdGWYaBTH7btL29tzNPPlloUUALOTQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":813907},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"b28dbb6769d078b9d82880fd706662ab0285d777","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.20_1783971218932_0.6628443991155466","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"name":"render-tag","version":"0.1.21","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.21","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"c9dae2ebe4ae24386284121073ba9aaa39b6d324","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.21.tgz","fileCount":60,"integrity":"sha512-5kaZWAag06GzE7OFufA/zSQntAUH6SIvGD6FZZ+z4JTHWaBTCJ+YpQrW2Qr/2CD+jn1IuC2+RpeenZkjVrfXHQ==","signatures":[{"sig":"MEUCIQDdW+f4XVOPb+9wfNC/FDfiLeiZbhKGkvQX5XxbRt4KgQIgWmli8zFWsNSd0UcB21Isf3lAU5i0c6olNIP3DxbH5u4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":817360},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"6b227faed228946a102905097d0355838f89234c","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.21_1783973854707_0.33555856084216384","host":"s3://npm-registry-packages-npm-production"}},"0.1.22":{"name":"render-tag","version":"0.1.22","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.22","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"07ea28be013ae5a5bbee233d7c56a3acc08cb6cc","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.22.tgz","fileCount":60,"integrity":"sha512-FOCMl6jk1fbKBe1iGMv6BKdm/JVB5bjAfr3hQuK0imYyCPjTtwaD4BHT/c7X2Irpqlh+YldpZohilZyxm0fEcQ==","signatures":[{"sig":"MEQCIBV4AbVHHDp1+HG0E7YZ3dxiVjBkimOA9H1bXMS2ardiAiB+dKjPuM9nGGUKNrVs10Q0OltNOqQRu8T/r3XKZoc2uQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":824482},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"48ce650458f5d16690ca7025b60656b8d152bb4a","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-stroke.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.22_1783991239365_0.04846823732349814","host":"s3://npm-registry-packages-npm-production"}},"0.1.23":{"name":"render-tag","version":"0.1.23","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.23","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"38c77fcd5a801e9b59566966c9806ec42b985982","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.23.tgz","fileCount":60,"integrity":"sha512-zJDIBireOA8hfuBzoW3JiiJnK2EJDA3/7QR3Oo6wseDEiHbl5NI8TZxPYoD2bCxXwGjBf6KTVcCkawF2w/FeFw==","signatures":[{"sig":"MEYCIQDINlAqeOr1RDE71EAJwlqJYRgc8ZMv4+vaOW9Cw5GkgwIhAONuCNM8oYDzIjqL9dlK+9hRnhtk1pVaCneL/wZ+Tvg/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":827801},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"664fedba96087f83b26f7cce07041532e6216c9b","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-stroke.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.23_1784036255246_0.8404797516834746","host":"s3://npm-registry-packages-npm-production"}},"0.1.24":{"name":"render-tag","version":"0.1.24","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.24","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"26b1ee1e9968576cbd6de3c4db895e652bc2939f","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.24.tgz","fileCount":60,"integrity":"sha512-3P773hvXRoRVlX7NW3JLWPeMuvDmpWcEeMQThLJBgCGBL3eXDr9tcF//kkFhuxakyADJgywNLrmsYMGJ0mnV8A==","signatures":[{"sig":"MEYCIQCvaUBsCD1Xr7jm3OUIxB/kXqEjOlYAn1j7rH3zXUgUvwIhALUUlUcbeSiGogqpnxf6+NirH4NO5zqEMKR/hhsdJRXy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":867360},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"f686eeb018a2ea61316c7e7f89de65a819646845","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.24_1784138907064_0.6091825117628911","host":"s3://npm-registry-packages-npm-production"}},"0.1.25":{"name":"render-tag","version":"0.1.25","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.25","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"26874e8455a61b902f88b066242dafb4ddbfafb7","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.25.tgz","fileCount":60,"integrity":"sha512-0UX9xvstwA77pAT52R8o4aYQ1KOmpKaTEybDSBMSik0Rq9sH/nhpPAfVyyujzvTTiM1jD0agrDoOX38GfhzjIg==","signatures":[{"sig":"MEUCIQDc5gFiG2nkHm4jbngNBinqYFI0TfcBiGD4BIEcDvQaCgIgTdahuNspRlYqIbh3bgsXLgXa/ZPwx9yPr9onRanLTKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":870192},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"fd37797718a7fbcac17c7527b0b9f22a8367ed58","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.25_1784160878929_0.8373583056803366","host":"s3://npm-registry-packages-npm-production"}},"0.1.26":{"name":"render-tag","version":"0.1.26","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.26","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"729df9799ca717821d4540c3769eb8b0baf818c6","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.26.tgz","fileCount":60,"integrity":"sha512-SzyKdNiGwzBejz9FbY2pl7FoOHw3APsYQQ140OSH3P8SmJFJsAveCcXycpweKUHKNK139jXdruC27+dXtKcLkg==","signatures":[{"sig":"MEYCIQCE45KIcZAO88Fv190UlDmvvGOmtuukmpiQmqXuiHAMFQIhAL9MQghfCM/tjkFPHS7H5Ufv4reRR7RDbQuzE0MeE7Ra","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":872756},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"c46bdc9f4dd0ff777a4fa4e2e8f411a38a3c6063","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.26_1784167246323_0.30792492855128395","host":"s3://npm-registry-packages-npm-production"}},"0.1.27":{"name":"render-tag","version":"0.1.27","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.27","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"e9d4f01494e44146ad01d9d2c79daab9acec63b5","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.27.tgz","fileCount":60,"integrity":"sha512-XeA8g23MmVB+C/OTp49P0RBl0nsSOu9XSXxHQzFZwWh7zM1zf1oL8tupBRlG3gZCKoe02OqiePZSemoIfTh1WA==","signatures":[{"sig":"MEQCIFjuH/5/IsASQDU3YeJthPhar93m5ybH6Hg0vzCUZ3VOAiAtys/zble52hYjcqMOW9zmNpihCzm1mBBo6onjq14THg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":874231},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"8a5520a0679cc04a3b46cf724cd5c20bfcd3e9c6","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.27_1785378884007_0.9203115393443075","host":"s3://npm-registry-packages-npm-production"}},"0.1.28":{"name":"render-tag","version":"0.1.28","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.28","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"b450f3070c5816c3aebe91e0fc2da1a1bb75fa2c","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.28.tgz","fileCount":60,"integrity":"sha512-w9OlibSnIny/NyT/VQYOXtloFqkRAzSTsTgbXlAg3mIP74ungi81JmmMT/ZDDuZUf8onIPNmM+B4VTtzhwKL5A==","signatures":[{"sig":"MEUCIHMjWc0twUJMAJPi0M6bTKDTIhTY8EYkw4n4FbWD4+gtAiEA4oOFIfvnhy/kH9cxn86X0jNgmuRIgxijuTWZtVN5sSM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":885214},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"f2d73bfd2adaaf845abe92d658c035b1ab2e1168","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.28_1786639162031_0.508737217069833","host":"s3://npm-registry-packages-npm-production"}},"0.1.29":{"name":"render-tag","version":"0.1.29","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.29","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"c3b6e183c6799a0792918265e66c33a17f95cc5f","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.29.tgz","fileCount":60,"integrity":"sha512-+5R3OEufUmDcbEZG8Ury10EvoXSCyjN/neOmP+/mGuccN+cEFSMR5JiQNRlildnUzqL+5gdWmgQb3vm1f0IdrQ==","signatures":[{"sig":"MEUCIDsi19rKcYmUH2gBGo1V+srWa+nYWjxqzWIv8lzY9B8wAiEA+uwb2QlYT5dxn8intuUJVHTuq4hs1gYnOqOQ0YiBYfs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":902827},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"9c0c615594db594835c3a9bf772623e0b06fbb92","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.29_1786642731293_0.08873208657043463","host":"s3://npm-registry-packages-npm-production"}},"0.1.30":{"name":"render-tag","version":"0.1.30","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.30","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"cf8c496ed080f9426ddf97a58e7d30a9fe40193d","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.30.tgz","fileCount":60,"integrity":"sha512-ayun6D63nGWVCL4q/ibEWlkIe2g1lBYYnDcuc9Eq5TPbIkukNN+XirHkM8lHoPkilOJELN4n6dC+LpNzarKqlw==","signatures":[{"sig":"MEUCIFGaFMGTDKCGLjLNFb27venWq6gmjH+uOHdk3fY1lcOxAiEAzSdVJd6eSCzdv2jTlqQeM5MbVblaqxFYX4y9AbBeGw4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":924113},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"e3470e702dd1f137958d18cb08053caa0df933a6","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/line-baseline-parity.test.ts tests/line-box-parity.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.30_1787260689191_0.2357897131500355","host":"s3://npm-registry-packages-npm-production"}},"0.1.31":{"name":"render-tag","version":"0.1.31","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.31","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"619cec3286808194249a517835411a0e28ae7ba7","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.31.tgz","fileCount":60,"integrity":"sha512-Sf6B1O+s8iwEirtwvEAHv1aSH6M43bto8jwevgfV4DmNAKbfKlg7CDfziF909OaXXD7ndt15uJFNq+6jfaxWeg==","signatures":[{"sig":"MEQCIGRBgpo/jSm58DHOSbThRvatEn/+gNrZYRql3Kn5aA+NAiAMilP0YH8gwwnfjqYB7sd+s+tQd4LX/mABiShgyAODxw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":924858},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"0143d64531e4212b9616814885f8eda2a719eed1","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/line-baseline-parity.test.ts tests/line-box-parity.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.31_1787262004073_0.19148301867449402","host":"s3://npm-registry-packages-npm-production"}},"0.1.32":{"name":"render-tag","version":"0.1.32","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.32","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"a36594ea3cb4b18108c247c80747907fcf762a43","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.32.tgz","fileCount":60,"integrity":"sha512-nVl4Sac5GdhdjDoRgoNo788Ig1jSEf/0qShokjbNmzI64Y78q2B13yzj/8dnE9Y07e6lGnFz55jEne9mWCcBnw==","signatures":[{"sig":"MEUCIEUTPWerSiPCHyaq0/Bf3y/9gdesvMy0zLQVH0U76cdHAiEA3qms/WA07dsdexg5YeE1Ac+uw7t8IceM7e28622DOdA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":924776},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"d3418b28f132ba4008c1545a99341ce7896d7d32","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/line-baseline-parity.test.ts tests/line-box-parity.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.32_1787269146076_0.6691194659818489","host":"s3://npm-registry-packages-npm-production"}},"0.1.33":{"name":"render-tag","version":"0.1.33","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.33","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"02928a4a4eafc0d2459aaa3c9b397a04d1c5049f","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.33.tgz","fileCount":60,"integrity":"sha512-6sRUveSr6pxjNDnLos78rZq+VBdSNfhRL13K32liq/ufWJrQCSwdk8aMfc2xskfLh6Wkqz5wWmccrgTZSkA45A==","signatures":[{"sig":"MEYCIQCuEzraC5lZ3fvt8jnWuUPWDGHxPfxUrTsCtCBsAmFFfwIhALBp6h9qrikExyrNYblJs3MXWBgFowGucUy5qD+xmTul","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":927106},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"586c70fcf7e6111cdf804de1fcc60d1f2869c830","scripts":{"dev":"vite --config docs/vite.config.ts","test":"vitest run tests/render.test.ts tests/line-baseline-parity.test.ts tests/line-box-parity.test.ts tests/wrap-fuzz.test.ts tests/parse-parity.test.ts tests/gradient-clip-descendants.test.ts tests/gradient-clip-inline-nested.test.ts tests/gradient-stroke.test.ts tests/gradient-stroke-inline.test.ts tests/solid-clip-text.test.ts tests/path/gradient-clip-parity.test.ts && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run tests/render.test.ts -c vitest.webkit.config.ts","test:firefox":"vitest run tests/render.test.ts -c vitest.firefox.config.ts","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","rasterizehtml":"^1.4.1","@vitest/browser":"^4","@vitest/browser-playwright":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.33_1787331137690_0.9394369018224922","host":"s3://npm-registry-packages-npm-production"}},"0.1.34":{"name":"render-tag","version":"0.1.34","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.34","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"70c848dcdeb2748ed2469f892e6aaaeb3acc02ba","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.34.tgz","fileCount":60,"integrity":"sha512-0ZJkoWEUg9VROw7TMgb9nxQ5ucSgYQORMCG2ybInab6+s8V2GTQl05cHLCUBv/qGgoQcr1DGFt1U0jh+NWuESQ==","signatures":[{"sig":"MEUCIE1ZlRmQ41HKhjG2JJZQ44AsAuRTPFmkAnMkrhDSAwTYAiEAht1MMt5H6Ddkm+pbpNjvPpEDySggCEaOYdiJyLSFJfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1021317},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"31311865cc08d2153c9fb15f9f2b0b9e6291fd37","scripts":{"dev":"vite --config docs/vite.config.ts","test":"npm run test:browser && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run -c vitest.webkit.config.ts","test:browser":"vitest run --exclude='tests/node/**' --exclude='tests/generate-baselines.test.ts' --exclude='tests/cross-browser.compare.test.ts' --exclude='tests/cross-browser.record.test.ts' --exclude='tests/wrap-debug.test.ts' --exclude='tests/wrap-sweep.test.ts' --exclude='tests/perf.test.ts' --exclude='tests/list-marker-parity.test.ts' --exclude='tests/svg-oracle-parity.test.ts'","test:firefox":"vitest run -c vitest.firefox.config.ts","test:svg-oracle":"vitest run tests/svg-oracle-parity.test.ts","test:wrap-sweep":"vitest run tests/wrap-sweep.test.ts","test:safari-native":"node tests/run-safari-native.mjs","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:wrap-sweep:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts","test:clear-native-cache":"node tests/clear-native-cache.mjs","test:wrap-sweep:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-stress-baseline":"vitest run tests/stress.test.ts --mode update-stress","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts","test:update-wrap-sweep-baseline":"vitest run tests/wrap-sweep.test.ts --mode update-wrap-sweep","test:update-stress-baseline:webkit":"vitest run tests/stress.test.ts -c vitest.webkit.config.ts --mode update-stress","test:update-stress-baseline:firefox":"vitest run tests/stress.test.ts -c vitest.firefox.config.ts --mode update-stress","test:update-wrap-sweep-baseline:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts --mode update-wrap-sweep","test:update-wrap-sweep-baseline:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts --mode update-wrap-sweep","test:update-cross-browser-baseline:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts --mode update-cross-browser","test:update-cross-browser-baseline:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts --mode update-cross-browser"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","@vitest/browser":"^4","@fontsource/lobster":"5.3.0","@fontsource/noto-emoji":"5.3.0","@fontsource/noto-sans-jp":"5.3.0","@fontsource/noto-sans-kr":"5.3.0","@fontsource/noto-sans-sc":"5.3.0","@fontsource-variable/arimo":"5.3.0","@vitest/browser-playwright":"^4.1.2","@fontsource-variable/roboto":"5.3.0","@fontsource/noto-sans-arabic":"5.3.0","@fontsource-variable/open-sans":"5.3.0","@fontsource-variable/inconsolata":"5.3.0","@fontsource-variable/merriweather":"5.3.0","@fontsource-variable/noto-sans-thai":"5.3.0","@fontsource-variable/noto-sans-khmer":"5.3.0","@fontsource-variable/playfair-display":"5.3.0","@fontsource-variable/noto-sans-myanmar":"5.3.0","@fontsource-variable/noto-sans-devanagari":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.34_1787677200787_0.8897245580776014","host":"s3://npm-registry-packages-npm-production"}},"0.1.35":{"name":"render-tag","version":"0.1.35","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.35","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"0c25f082cf4cfe7b9e3ea525f75e3db66525113c","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.35.tgz","fileCount":60,"integrity":"sha512-ig5t2hLS15iGwTVo7/gPMv3mHvyhtU/URSW/0RAWtR3bEpwwAPoTdnY0xIN7WLXnRVaNHA1iiFtTp5HNoSkZMA==","signatures":[{"sig":"MEUCICajS2fkHLihKPUjFU1PFGX+ueUFMYezH5Pf9xxl5V7nAiEAgwy8rk1rGyF9ur5tKU8K29RWTneNCRLaAX02dZkaCO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1024326},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"27f924ad5abc8fd2a557fa2df9e864083978b263","scripts":{"dev":"vite --config docs/vite.config.ts","test":"npm run test:browser && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run -c vitest.webkit.config.ts","test:browser":"vitest run --exclude='tests/node/**' --exclude='tests/generate-baselines.test.ts' --exclude='tests/cross-browser.compare.test.ts' --exclude='tests/cross-browser.record.test.ts' --exclude='tests/wrap-debug.test.ts' --exclude='tests/wrap-sweep.test.ts' --exclude='tests/perf.test.ts' --exclude='tests/list-marker-parity.test.ts' --exclude='tests/svg-oracle-parity.test.ts'","test:firefox":"vitest run -c vitest.firefox.config.ts","test:svg-oracle":"vitest run tests/svg-oracle-parity.test.ts","test:wrap-sweep":"vitest run tests/wrap-sweep.test.ts","test:safari-native":"node tests/run-safari-native.mjs","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:wrap-sweep:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts","test:clear-native-cache":"node tests/clear-native-cache.mjs","test:wrap-sweep:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-stress-baseline":"vitest run tests/stress.test.ts --mode update-stress","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts","test:update-wrap-sweep-baseline":"vitest run tests/wrap-sweep.test.ts --mode update-wrap-sweep","test:update-stress-baseline:webkit":"vitest run tests/stress.test.ts -c vitest.webkit.config.ts --mode update-stress","test:update-stress-baseline:firefox":"vitest run tests/stress.test.ts -c vitest.firefox.config.ts --mode update-stress","test:update-wrap-sweep-baseline:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts --mode update-wrap-sweep","test:update-wrap-sweep-baseline:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts --mode update-wrap-sweep","test:update-cross-browser-baseline:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts --mode update-cross-browser","test:update-cross-browser-baseline:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts --mode update-cross-browser"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.9.0","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","@vitest/browser":"^4","@fontsource/lobster":"5.3.0","@fontsource/noto-emoji":"5.3.0","@fontsource/noto-sans-jp":"5.3.0","@fontsource/noto-sans-kr":"5.3.0","@fontsource/noto-sans-sc":"5.3.0","@fontsource-variable/arimo":"5.3.0","@vitest/browser-playwright":"^4.1.2","@fontsource-variable/roboto":"5.3.0","@fontsource/noto-sans-arabic":"5.3.0","@fontsource-variable/open-sans":"5.3.0","@fontsource-variable/inconsolata":"5.3.0","@fontsource-variable/merriweather":"5.3.0","@fontsource-variable/noto-sans-thai":"5.3.0","@fontsource-variable/noto-sans-khmer":"5.3.0","@fontsource-variable/playfair-display":"5.3.0","@fontsource-variable/noto-sans-myanmar":"5.3.0","@fontsource-variable/noto-sans-devanagari":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.35_1787800564795_0.4417163590134696","host":"s3://npm-registry-packages-npm-production"}},"0.1.36":{"name":"render-tag","version":"0.1.36","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.36","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"754ea09786c9b7d3bb3e9271e7579d7b2b20318d","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.36.tgz","fileCount":64,"integrity":"sha512-Axebm0N5HFyiHoOjRyz8G94u/CnzYQ8VallgntKqgloCUZsrLbBhAyxOA9uED8amWbj/01wqIjtsD++KC/Agug==","signatures":[{"sig":"MEUCIA37kQQmGMnil5vVmyJdRuZUPTTZZvvYzSBp1S0j3gHWAiEA6hIPev5jsg5VWUS1Ffmn74fUOtO8gU2qX01zXbiF2CY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGnYXkHvDVvaPP75KbvqKFiutsxQPIuSFOAEkecQzFjcAiEAjJrQlkCWNBnWUH/CMVzJw/rKb0vtyg4XBZojkDtVBvk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1086764},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"f73923046b5ee81b90b98137fd2733ce4e285259","scripts":{"dev":"vite --config docs/vite.config.ts","test":"npm run test:browser && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run -c vitest.webkit.config.ts","test:browser":"vitest run --exclude='tests/node/**' --exclude='tests/generate-baselines.test.ts' --exclude='tests/cross-browser.compare.test.ts' --exclude='tests/cross-browser.record.test.ts' --exclude='tests/wrap-debug.test.ts' --exclude='tests/wrap-sweep.test.ts' --exclude='tests/perf.test.ts' --exclude='tests/list-marker-parity.test.ts' --exclude='tests/svg-oracle-parity.test.ts'","test:firefox":"vitest run -c vitest.firefox.config.ts","test:svg-oracle":"vitest run tests/svg-oracle-parity.test.ts","test:wrap-sweep":"vitest run tests/wrap-sweep.test.ts","test:safari-native":"node tests/run-safari-native.mjs","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:wrap-sweep:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts","test:clear-native-cache":"node tests/clear-native-cache.mjs","test:wrap-sweep:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-stress-baseline":"vitest run tests/stress.test.ts --mode update-stress","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts","test:update-wrap-sweep-baseline":"vitest run tests/wrap-sweep.test.ts --mode update-wrap-sweep","test:update-stress-baseline:webkit":"vitest run tests/stress.test.ts -c vitest.webkit.config.ts --mode update-stress","test:update-stress-baseline:firefox":"vitest run tests/stress.test.ts -c vitest.firefox.config.ts --mode update-stress","test:update-wrap-sweep-baseline:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts --mode update-wrap-sweep","test:update-wrap-sweep-baseline:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts --mode update-wrap-sweep","test:update-cross-browser-baseline:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts --mode update-cross-browser","test:update-cross-browser-baseline:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts --mode update-cross-browser"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.19.1","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"26.8.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","@vitest/browser":"^4","@fontsource/lobster":"5.3.0","@fontsource/noto-emoji":"5.3.0","@fontsource/noto-sans-jp":"5.3.0","@fontsource/noto-sans-kr":"5.3.0","@fontsource/noto-sans-sc":"5.3.0","@fontsource-variable/arimo":"5.3.0","@vitest/browser-playwright":"^4.1.2","@fontsource-variable/roboto":"5.3.0","@fontsource/noto-sans-arabic":"5.3.0","@fontsource-variable/open-sans":"5.3.0","@fontsource-variable/inconsolata":"5.3.0","@fontsource-variable/merriweather":"5.3.0","@fontsource-variable/noto-sans-thai":"5.3.0","@fontsource-variable/noto-sans-khmer":"5.3.0","@fontsource-variable/playfair-display":"5.3.0","@fontsource-variable/noto-sans-myanmar":"5.3.0","@fontsource-variable/noto-sans-devanagari":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.36_1789581214493_0.028475991235481946","host":"s3://npm-registry-packages-npm-production"}},"0.1.37":{"name":"render-tag","version":"0.1.37","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"author":{"name":"Anton Lavrenov"},"license":"MIT","_id":"render-tag@0.1.37","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"homepage":"https://polotno.com/render-tag/","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"907f89ae52a141fb6ce4d2d445848bc41de7b096","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.1.37.tgz","fileCount":64,"integrity":"sha512-bZu2L9LBOTkcPeGBb9PlnIe8LY4Su25utIrBYsZPkB95F00S2qHqxn6WRARqmAmMbx89/pURhYH5BVzQ5wkoew==","signatures":[{"sig":"MEYCIQC+j4OYFeKtU0zM6th0y2xpXgyrv/Yc1qC+KsQPmMyUqwIhAK7xX5l/svHVhOUI4xMeicIhr0i5CrgluM46MGhs3/T1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDp2oWO+qtLm5NuJ/LZEA+MkcIGmegMtGych29L/D6dCgIgRYqNhemKis6lm7T/5nPmG4gEkO/oZr1UV1EapsALj3M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1092494},"main":"./lib/index.js","type":"module","types":"./lib/index.d.ts","exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"261e079cde525e99612dc43dde90c1b3a9fdaedf","scripts":{"dev":"vite --config docs/vite.config.ts","test":"npm run test:browser && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run -c vitest.webkit.config.ts","test:browser":"vitest run --exclude='tests/node/**' --exclude='tests/generate-baselines.test.ts' --exclude='tests/cross-browser.compare.test.ts' --exclude='tests/cross-browser.record.test.ts' --exclude='tests/wrap-debug.test.ts' --exclude='tests/wrap-sweep.test.ts' --exclude='tests/perf.test.ts' --exclude='tests/list-marker-parity.test.ts' --exclude='tests/svg-oracle-parity.test.ts'","test:firefox":"vitest run -c vitest.firefox.config.ts","test:svg-oracle":"vitest run tests/svg-oracle-parity.test.ts","test:wrap-sweep":"vitest run tests/wrap-sweep.test.ts","test:safari-native":"node tests/run-safari-native.mjs","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:wrap-sweep:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts","test:clear-native-cache":"node tests/clear-native-cache.mjs","test:wrap-sweep:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-stress-baseline":"vitest run tests/stress.test.ts --mode update-stress","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts","test:update-wrap-sweep-baseline":"vitest run tests/wrap-sweep.test.ts --mode update-wrap-sweep","test:update-stress-baseline:webkit":"vitest run tests/stress.test.ts -c vitest.webkit.config.ts --mode update-stress","test:update-stress-baseline:firefox":"vitest run tests/stress.test.ts -c vitest.firefox.config.ts --mode update-stress","test:update-wrap-sweep-baseline:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts --mode update-wrap-sweep","test:update-wrap-sweep-baseline:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts --mode update-wrap-sweep","test:update-cross-browser-baseline:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts --mode update-cross-browser","test:update-cross-browser-baseline:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts --mode update-cross-browser"},"_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.19.1","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"_nodeVersion":"26.8.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","@vitest/browser":"^4","@fontsource/lobster":"5.3.0","@fontsource/noto-emoji":"5.3.0","@fontsource/noto-sans-jp":"5.3.0","@fontsource/noto-sans-kr":"5.3.0","@fontsource/noto-sans-sc":"5.3.0","@fontsource-variable/arimo":"5.3.0","@vitest/browser-playwright":"^4.1.2","@fontsource-variable/roboto":"5.3.0","@fontsource/noto-sans-arabic":"5.3.0","@fontsource-variable/open-sans":"5.3.0","@fontsource-variable/inconsolata":"5.3.0","@fontsource-variable/merriweather":"5.3.0","@fontsource-variable/noto-sans-thai":"5.3.0","@fontsource-variable/noto-sans-khmer":"5.3.0","@fontsource-variable/playfair-display":"5.3.0","@fontsource-variable/noto-sans-myanmar":"5.3.0","@fontsource-variable/noto-sans-devanagari":"5.3.0"},"_npmOperationalInternal":{"tmp":"tmp/render-tag_0.1.37_1789594836916_0.40709257116778375","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"_id":"render-tag@0.2.0","bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"dist":{"shasum":"7c6fa7313d343f146bf0935db656086ec329c578","tarball":"https://registry.npmjs.org/render-tag/-/render-tag-0.2.0.tgz","fileCount":64,"integrity":"sha512-a55F+orpA28Ml42y6aknH5YVS6boV9CrIw37tOdT5xzkhFIut7k9HrLpYpxfpKfD3go/xtFfS8yhi+tcp+e9Bg==","signatures":[{"sig":"MEUCIHVPPNTRxdVmCtSXBEV3iJGdLfywV70L//fE2c47dWkIAiEA8tN+XDC8xQhfxCgw3Iq12kXLPEFy/rHVTtpwV6yDfqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCy4T2FjaqdlZfDNcDsJRF0JjD1nD10MmafQYiFYFrehAIgBECrBzLmzEjFgY0AGuQg24IXHelXqVoKcLoaBDWsLsA="}],"unpackedSize":1099389},"main":"./lib/index.js","name":"render-tag","type":"module","types":"./lib/index.d.ts","author":{"name":"Anton Lavrenov"},"exports":{".":{"node":"./lib/index.node.js","types":"./lib/index.d.ts","import":"./lib/index.js","default":"./lib/index.js"},"./umd":"./lib/render-tag.umd.js","./path":{"node":"./lib/path/index.node.js","types":"./lib/path/index.d.ts","import":"./lib/path/index.js","default":"./lib/path/index.js"}},"gitHead":"cc2bde1c258b32e4851805b9afc67ddcb0378233","license":"MIT","scripts":{"dev":"vite --config docs/vite.config.ts","test":"npm run test:browser && npm run test:node","build":"tsc && vite build --config vite.umd.config.ts","test:node":"vitest run -c vitest.node.config.ts","docs:build":"vite build --config docs/vite.config.ts","test:stress":"vitest run tests/stress.test.ts","test:webkit":"vitest run -c vitest.webkit.config.ts","test:browser":"vitest run --exclude='tests/node/**' --exclude='tests/generate-baselines.test.ts' --exclude='tests/cross-browser.compare.test.ts' --exclude='tests/cross-browser.record.test.ts' --exclude='tests/wrap-debug.test.ts' --exclude='tests/wrap-sweep.test.ts' --exclude='tests/perf.test.ts' --exclude='tests/list-marker-parity.test.ts' --exclude='tests/svg-oracle-parity.test.ts'","test:firefox":"vitest run -c vitest.firefox.config.ts","test:svg-oracle":"vitest run tests/svg-oracle-parity.test.ts","test:wrap-sweep":"vitest run tests/wrap-sweep.test.ts","test:safari-native":"node tests/run-safari-native.mjs","test:update-baselines":"vitest run tests/generate-baselines.test.ts","test:wrap-sweep:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts","test:clear-native-cache":"node tests/clear-native-cache.mjs","test:wrap-sweep:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts","test:cross-browser:record":"vitest run tests/cross-browser.record.test.ts","test:cross-browser:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts","test:cross-browser:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts","test:update-stress-baseline":"vitest run tests/stress.test.ts --mode update-stress","test:update-baselines:webkit":"vitest run tests/generate-baselines.test.ts -c vitest.webkit.config.ts","test:update-baselines:firefox":"vitest run tests/generate-baselines.test.ts -c vitest.firefox.config.ts","test:update-wrap-sweep-baseline":"vitest run tests/wrap-sweep.test.ts --mode update-wrap-sweep","test:update-stress-baseline:webkit":"vitest run tests/stress.test.ts -c vitest.webkit.config.ts --mode update-stress","test:update-stress-baseline:firefox":"vitest run tests/stress.test.ts -c vitest.firefox.config.ts --mode update-stress","test:update-wrap-sweep-baseline:webkit":"vitest run tests/wrap-sweep.test.ts -c vitest.webkit.config.ts --mode update-wrap-sweep","test:update-wrap-sweep-baseline:firefox":"vitest run tests/wrap-sweep.test.ts -c vitest.firefox.config.ts --mode update-wrap-sweep","test:update-cross-browser-baseline:webkit":"vitest run tests/cross-browser.compare.test.ts -c vitest.webkit.config.ts --mode update-cross-browser","test:update-cross-browser-baseline:firefox":"vitest run tests/cross-browser.compare.test.ts -c vitest.firefox.config.ts --mode update-cross-browser"},"version":"0.2.0","_npmUser":{"name":"lavrton","email":"lavrton@gmail.com"},"homepage":"https://polotno.com/render-tag/","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"_npmVersion":"11.19.1","description":"Render HTML rich text onto canvas using pure 2D API","directories":{},"maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"_nodeVersion":"26.8.2","_hasShrinkwrap":false,"devDependencies":{"vite":"^8","vitest":"^4","linkedom":"^0.18","pixelmatch":"^7","playwright":"^1","typescript":"^6","@vitest/browser":"^4","@fontsource/lobster":"5.3.0","@fontsource/noto-emoji":"5.3.0","@fontsource/noto-sans-jp":"5.3.0","@fontsource/noto-sans-kr":"5.3.0","@fontsource/noto-sans-sc":"5.3.0","@fontsource-variable/arimo":"5.3.0","@vitest/browser-playwright":"^4.1.2","@fontsource-variable/roboto":"5.3.0","@fontsource/noto-sans-arabic":"5.3.0","@fontsource-variable/open-sans":"5.3.0","@fontsource-variable/inconsolata":"5.3.0","@fontsource-variable/merriweather":"5.3.0","@fontsource-variable/noto-sans-thai":"5.3.0","@fontsource-variable/noto-sans-khmer":"5.3.0","@fontsource-variable/playfair-display":"5.3.0","@fontsource-variable/noto-sans-myanmar":"5.3.0","@fontsource-variable/noto-sans-devanagari":"5.3.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/render-tag_0.2.0_1790180086379_0.3860910842202083"}}},"time":{"created":"2026-03-29T02:06:24.034Z","modified":"2026-09-23T16:14:46.654Z","0.1.0":"2026-03-29T02:06:24.253Z","0.1.1":"2026-03-29T13:32:42.428Z","0.1.2":"2026-03-29T13:58:13.009Z","0.1.3":"2026-03-30T23:45:54.483Z","0.1.4":"2026-04-28T17:17:48.212Z","0.1.5":"2026-04-29T13:42:31.773Z","0.1.6":"2026-04-29T17:05:01.768Z","0.1.7":"2026-05-06T12:30:23.851Z","0.1.8":"2026-05-23T16:25:34.445Z","0.1.9":"2026-05-23T20:20:10.863Z","0.1.10":"2026-05-24T02:54:25.775Z","0.1.11":"2026-06-08T18:45:17.281Z","0.1.12":"2026-06-09T11:22:38.222Z","0.1.13":"2026-06-09T12:47:40.468Z","0.1.14":"2026-06-10T07:33:50.426Z","0.1.15":"2026-06-10T14:11:35.089Z","0.1.16":"2026-07-02T15:08:20.161Z","0.1.17":"2026-07-06T18:35:19.500Z","0.1.18":"2026-07-12T15:21:16.970Z","0.1.19":"2026-07-12T17:15:26.338Z","0.1.20":"2026-07-13T19:33:39.123Z","0.1.21":"2026-07-13T20:17:34.897Z","0.1.22":"2026-07-14T01:07:19.609Z","0.1.23":"2026-07-14T13:37:35.411Z","0.1.24":"2026-07-15T18:08:27.222Z","0.1.25":"2026-07-16T00:14:39.164Z","0.1.26":"2026-07-16T02:00:46.562Z","0.1.27":"2026-07-30T02:34:44.272Z","0.1.28":"2026-08-13T16:39:22.153Z","0.1.29":"2026-08-13T17:38:51.492Z","0.1.30":"2026-08-20T21:18:09.327Z","0.1.31":"2026-08-20T21:40:04.221Z","0.1.32":"2026-08-20T23:39:06.228Z","0.1.33":"2026-08-21T16:52:17.844Z","0.1.34":"2026-08-25T17:00:00.927Z","0.1.35":"2026-08-27T03:16:04.968Z","0.1.36":"2026-09-16T17:53:34.588Z","0.1.37":"2026-09-16T21:40:37.014Z","0.2.0":"2026-09-23T16:14:46.467Z"},"bugs":{"url":"https://github.com/polotno-project/render-tag/issues"},"author":{"name":"Anton Lavrenov"},"license":"MIT","homepage":"https://polotno.com/render-tag/","keywords":["canvas","html","rich-text","text-rendering","html-to-canvas","canvas-text","design-editor","image-export","foreignObject","fillText","html2canvas"],"repository":{"url":"git+https://github.com/polotno-project/render-tag.git","type":"git"},"description":"Render HTML rich text onto canvas using pure 2D API","maintainers":[{"name":"lavrton","email":"lavrton@gmail.com"}],"readme":"# render-tag\n\nRender HTML rich text onto canvas with the 2D API. No SVG, no `foreignObject` — just `fillText`, `measureText`, and drawing primitives. Significantly faster than SVG-based approaches; synchronous; zero dependencies.\n\n**Website & demos:** [https://polotno.com/render-tag/](https://polotno.com/render-tag/)\n\nBy design, render-tag focuses on **rich text only** — paragraphs, headings, lists, tables, inline formatting. Not interactive elements or arbitrary HTML layouts.\n\n## Install\n\n```bash\nnpm install render-tag\n```\n\n## Usage\n\n```typescript\nimport { render } from 'render-tag';\n\nconst { canvas, height } = render({\n  html: `\n    <style>.title { font-size: 24px; font-family: Georgia, serif; color: #1a1a1a; }</style>\n    <p class=\"title\">Hello <strong>world</strong></p>\n  `,\n  width: 400,\n});\n\ndocument.body.appendChild(canvas);\n```\n\n`render` is **synchronous** — load fonts before calling (e.g. `await document.fonts.load('400 16px \"Roboto\"')`). If a font isn't loaded yet, the browser falls back to a default and text metrics will be wrong. Re-render once fonts arrive.\n\n## API\n\n```ts\nfunction render(config: RenderConfig): { canvas, height, layoutRoot, lines, paintBounds };\nfunction layout(config: LayoutConfig): { layoutRoot, height, lines, paintBounds };\nfunction drawLayout(config: DrawConfig): { canvas };\n```\n\n| Option | Default | Notes |\n|---|---|---|\n| `html` | *required* | HTML string (include `<style>` tags for CSS). |\n| `width` | *required* | Layout width in CSS pixels. |\n| `height` | auto | Fixed height; auto-sized from content if omitted. |\n| `canvas` | created | Existing target canvas (mutually exclusive with `ctx`). |\n| `ctx` | — | Existing 2D context — no canvas resizing or scaling. |\n| `createCanvas` | browser canvas | Factory `(width, height) => canvas` for shadow composition. Required for shadows outside browsers. |\n| `renderShadows` | `true` | Set `false` to omit CSS and context shadows without allocating shadow buffers. Foreground stays drawing commands in both modes. |\n| `pixelRatio` | `devicePixelRatio` | HiDPI scaling. |\n| `accuracy` | `'performance'` | `'balanced'` uses DOM probes for per-browser line-height accuracy; `'performance'` is pure canvas and consistent cross-browser. |\n\nUse `layout()` + `drawLayout()` when you need to measure content, render the same layout onto multiple targets, or render onto an `OffscreenCanvas`.\n\n### Painted bounds\n\nBoth `layout()` and `layoutTextOnPath()` return `paintBounds`: a conservative\n`{ x, y, width, height }` in layout coordinates. It includes overflowing glyphs,\nstrokes, decorations, box paints and CSS text shadows. Use it to size offscreen\nbuffers; `x` and `y` can be negative. Existing layout dimensions and curved-text\n`bounds` keep their selection/layout meaning.\n\n```ts\nconst result = layout({ html, width: 400 });\nconst { x, y, width, height } = result.paintBounds;\n```\n\nBounds are measured on first access and reused, so layout-only callers pay no\nextra measurement cost. Load fonts first and create a new layout when content,\nstyles or fonts change; treat the returned layout as a snapshot.\n\nMeasurement uses the layout's context (required in Node) and preserves its current\nstate. Bounds exclude destination transforms, clipping and canvas effects. CSS\nshadows are always included, even if drawing later uses `renderShadows: false`.\nThe combined `render()` and `drawTextOnPath()` APIs expose the same property.\n\n### Line geometry and breaks\n\nRead `layoutRoot` for rendering. Boxes with inline content expose `lineBoxes`:\n\n```ts\ninterface LayoutLineBox {\n  x: number;\n  y: number;       // top, not baseline\n  width: number;\n  height: number;\n  endedByHardBreak: boolean;\n}\n```\n\nThese rectangles use canvas coordinates and the line heights used during layout.\nEach box owns its lines; table cells and inline-blocks keep separate arrays.\nAn absent or empty array means the box has no lines of its own.\nThe metadata reflects the current layout, including its existing limitations:\nRTL inline-block content is flattened, and inline-blocks containing only `<br>`\nelements are dropped. Neither case has separate inner line boxes.\n\n`endedByHardBreak` is true for `<br>` and preserved newlines. It is false for\nsoft wraps, the end of content, and lines cut by an ellipsis. Soft-hyphen\nsubstitution does not affect this flag. Justification is already reflected in\nthe positioned text runs; renderers should use those positions.\n\nBlank lines from `<br>` or preserved newlines have zero width and retain their\nheight. An empty `<p></p>` creates no line box, matching native HTML. Paragraph\nmargins are spacing between boxes, not blank lines. Backgrounds that extend a\nblank line to a neighbour's width are a consumer policy.\n\n### `LayoutLine` summary\n\nEach entry in `result.lines`:\n\n```ts\ninterface LayoutLine {\n  y: number;        // rounded baseline y\n  text: string;\n  bounds: { x, y, width, height };  // union of line boxes\n}\n```\n\n`result.lines` is a lossy summary for wrap inspection. It omits blank lines and\nmerges text and bounds from separate flows on the same visual row, including\ntable cells and list markers. Use `layoutRoot` for backgrounds, hit-testing,\nand rendering.\n\n### Multi-line ellipsis (`-webkit-line-clamp`)\n\n```css\n.caption { width: 240px; -webkit-line-clamp: 3; }\n```\n\nClips to N lines and appends an ellipsis to the Nth. `line-clamp` (unprefixed) is accepted as a synonym. `none` / `auto` / `0` mean \"no clamp\". Like Chrome's legacy `-webkit-box` behavior, the line count spans block descendants — a clamp on a wrapper truncates across its `<p>`/`<div>` children and drops everything below the cut.\n\n## Text on path: `render-tag/path`\n\nDraw rich text along an SVG path. Separate subpath entry point.\n\n```ts\nimport { drawTextOnPath } from 'render-tag/path';\n\ndrawTextOnPath({\n  html: '<span style=\"font-size:24px;font-family:sans-serif\">Hello <b>world</b></span>',\n  path: 'M20,150 Q200,20 380,150',  // SVG `d` string, or a PathLike\n  ctx,\n  align: 'center',          // 'left' | 'center' | 'right' | 'justify' (default 'left')\n  textBaseline: 'middle',   // path = vertical center of text (default 'alphabetic')\n});\n```\n\n`textBaseline` controls where the path runs relative to the text:\n`'alphabetic'` (default) — path = baseline, descenders below.\n`'middle'` — path through the vertical center.\n`'top'` / `'bottom'` — text hangs below / above the path.\n\nSame HTML/CSS dialect as the main API: fonts, colors, weights, `direction: rtl`, `text-shadow`, `background-color`, `text-decoration`, gradient text via `background-clip: text`. Joining scripts (Arabic, Hebrew, Indic, Thai, Khmer, Myanmar) are shaped as runs so cursive joining works.\n\nThe path lays out as a single logical line — glyphs that overflow the path's end are dropped.\n\nReturns `{ glyphs, textWidth, pathLength, lineHeight, bounds }`. Each `GlyphPlacement` has `{ char, x, y, rotation, width, style, ascent, descent, pathOffset, shaped }`.\n\n`bounds` is a `DOMRect`-shaped `{ x, y, width, height }` describing the visible area of the rendered curved text — the union of per-glyph cells. Use it to size a parent UI element without re-walking the glyphs. The library does not consume `bounds` internally; it's purely for consumers.\n\n### Layout once, draw many\n\n```ts\nimport { layoutTextOnPath, drawTextOnPathLayout } from 'render-tag/path';\n\nconst result = layoutTextOnPath({ html, path, align: 'center' });\ndrawTextOnPathLayout({ layout: result, ctx: canvas1.getContext('2d')! });\ndrawTextOnPathLayout({ layout: result, ctx: canvas2.getContext('2d')! });\n```\n\nNot supported: full mixed-script BiDi shaping (pure-RTL via `direction: rtl` works).\n\n## Node.js / server-side\n\nrender-tag stays zero-dependency, so nothing works out of the box in Node — inject a DOM parser (linkedom, jsdom, …) and pass a measurement 2D context. Nothing is ever written to `globalThis`.\n\n```ts\nimport { layout, drawLayout, setDOMParser } from 'render-tag';\nimport { DOMParser } from 'linkedom';\nimport { createCanvas } from 'canvas';\n\nsetDOMParser(new DOMParser()); // once\n\nconst ctx = createCanvas(1, 1).getContext('2d');\nconst result = layout({ html, width: 400, ctx }); // ctx is required on Node\ndrawLayout({ layout: result, width: 400, ctx: outputCtx, createCanvas });\n```\n\nWithout injection, functions throw with guidance. `accuracy: 'balanced'` needs a real browser DOM and throws on Node — use the default `'performance'`. `render-tag/path` works the same way (`layoutTextOnPath` already takes `ctx`; it re-exports `setDOMParser`).\n\n## Shadows\n\n`text-shadow` paints behind the combined text fill, stroke and decorations.\nMultiple shadows paint in CSS order (the first listed is on top). Shadows do\nnot repaint the foreground or include box backgrounds. Offsets and blur are\nin layout pixels and transform with the text; on a path they use the whole\npath's coordinates, not each glyph's rotated coordinates.\n\nAn existing `ctx.shadow*` casts one shadow from the completed rendering,\nincluding backgrounds and CSS shadows. Its offsets and blur retain Canvas 2D's\ndevice pixel semantics. Combining both intentionally produces both effects.\nBoth shadow paths rasterize only the effect. The foreground still uses text,\nstroke and decoration commands, retaining the caller's per-paint opacity and\nblending behavior.\n\nShadow composition uses temporary canvases sized for the painted content,\nincluding overhanging glyphs and decorations. Node consumers must pass\n`createCanvas` to `render`, `drawLayout`, `drawTextOnPath`, or\n`drawTextOnPathLayout` when using shadows. It must return a fresh canvas\ncompatible with the destination context. Drawing without shadows needs no\nscratch canvas. Fonts and blur rasterization can still differ slightly between\nbrowser engines; these APIs do not promise byte-identical pixels across engines.\n\n### PDF and other vector adapters\n\nSome consumers pass a Canvas-like proxy that translates drawing commands into\nPDF operations, preserving vector text. The same drawing API works with a\ncompatible proxy: render-tag emits shadow images through `drawImage`, then\nforeground text, stroke and decoration commands in the correct paint order.\n\n```ts\n// Requires a compatible Canvas 2D proxy and a raster canvas factory.\ndrawLayout({ layout: result, width: 400, ctx: pdfContext, createCanvas });\n```\n\nWith shadows enabled, the proxy must support Canvas 2D image and transform\noperations, including `drawImage`, `getTransform` and `setTransform`. The adapter\nowns PDF image embedding and must preserve drawing order if embedding is\nasynchronous; render-tag's drawing APIs remain synchronous. The factory supplies\nreal raster canvases for shadow composition. The foreground remains drawing\ncommands on the destination proxy.\n\nFor adapters that paint effects separately, use `renderShadows: false`:\n\n```ts\ndrawLayout({ layout: result, width: 400, ctx: pdfContext, renderShadows: false });\n```\n\nThis omits both CSS `text-shadow` and caller-supplied `ctx.shadow*`, allocates no\nshadow canvases, and keeps foreground commands and layout unchanged. It requires\nno image or transform-query APIs. The adapter must provide the omitted effects;\nthis option alone does not preserve the appearance of shadowed text.\n\nUnsupported proxies fail with guidance when shadows are enabled. Exporters\nremain responsible for matching fonts, opacity, blending and effect placement\nacross formats. No separate shadow-layer or preparation API is required.\n\n## What it renders\n\nParagraphs, headings, divs, spans · bold, italic, underline, strikethrough, overline · colors, background colors, text-shadow, text-stroke (solid **and gradient**), gradient text · font families, sizes, weights (100–900) · line-height, letter-spacing, text-align (left/center/right/justify) · ordered/unordered lists with nesting · flexbox (row/column, with `flex-grow`/`flex-shrink`/`flex-basis` sized against min- and max-content like the browser), basic tables · `-webkit-line-clamp` · `pre-wrap`, `overflow-wrap: break-word`, soft hyphens · RTL, CJK, emoji.\n\nText decorations follow HTML painting rules. A visible text stroke supplies the\nautomatic decoration color without widening the band. An explicit decoration\ncolor other than `currentColor` overrides it. `paint-order` controls glyph\nfill/stroke order; it does not add a filled outline to the decoration as native\nSVG text can.\n\n## render-tag-specific inputs\n\nrender-tag renders plain HTML/CSS — no custom syntax required. The exception:\na couple of properties that **have no real CSS equivalent** for canvas text, so\nrender-tag reads them off the element's style as an extra channel. They are\ninert in a real browser (a browser ignores or drops them), so the same HTML\nstill renders in the DOM — render-tag just paints a little extra.\n\n| Property | Type | Effect |\n|---|---|---|\n| `--rt-text-stroke-image` | CSS custom property, a `linear-gradient(...)` | Paints the `-webkit-text-stroke` outline with a gradient instead of a solid color. |\n| `stroke-linejoin` | `round` (default) \\| `miter` \\| `bevel` | Corner join for `-webkit-text-stroke` (SVG-style; HTML text-stroke has no join control). |\n\n### Gradient text stroke\n\nCSS can only give a text stroke a **solid** color (`-webkit-text-stroke: 4px #333`),\nand there is no CSS way to paint the outline with a gradient — the DOM\nwork-around is a two-layer `background-clip: text` stack. On canvas a gradient\nstroke is trivial (`ctx.strokeStyle = gradient`), so render-tag exposes it\ndirectly. Set the normal stroke for width + a solid fallback color, then hand\nrender-tag the gradient via `--rt-text-stroke-image`:\n\n```html\n<div style=\"\n  color: #fff;                                     /* fill */\n  -webkit-text-stroke: 4px #000;                   /* width + solid fallback */\n  --rt-text-stroke-image: linear-gradient(0deg, #000 0%, #d400ff 100%);\n  paint-order: stroke fill;                         /* stroke under the fill */\n\">Outlined</div>\n```\n\nThe gradient spans the declaring element (like a `background-clip: text` fill\ngradient) and threads through block children (`<p>`, `<li>`), so wrapped lines\nand list items share one continuous stroke gradient. A custom property is used\nbecause a browser strips unknown *real* properties from inline `cssText` before\nrender-tag can read them — custom properties survive.\n\nThe gradient paints glyph outlines. Automatic decorations use the solid text\nstroke color, following the HTML rules above.\n\n## Recommended CSS reset\n\nFor tighter DOM/canvas parity, drop these into your input HTML:\n\n```css\n/* Chrome gives <code>/<pre> a smaller monospace default; canvas cannot replicate it. */\ncode, pre, kbd, samp { font-family: inherit; font-size: inherit; }\n\n/* Firefox's ::marker adds ~1.5px per <li>; render-tag draws markers itself. */\nli::marker { content: none; font-size: 0; line-height: 0; }\n\n/* Firefox's canvas kerning drifts on emoji; disable it on emoji-bearing text. */\n.has-emoji { font-kerning: none; }\n```\n\n## How it works\n\n1. Parse HTML with `DOMParser`.\n2. Resolve styles with a built-in CSS parser (selectors, specificity, cascade, inheritance — no DOM insertion).\n3. Lay out with canvas `measureText` (block flow, inline wrapping, margin collapsing).\n4. Render with the canvas 2D API (`fillText`, `fillRect`, `strokeText`, …).\n\n### Design decisions\n\n- **Chrome-first.** When a rendering choice must favor one browser over another, Chrome wins.\n- **Cross-browser consistency over per-browser DOM fidelity.** Same canvas output in every browser, not pixel-matching each browser's quirks. `accuracy: 'balanced'` probes browser line heights where that improves geometry, but it cannot reconcile browser-specific line-break policies or Canvas/DOM metric differences.\n- **The line-box baseline follows the engine's own rounding.** Blink floors half-leading + ascent onto a whole CSS pixel (`FontHeight::AddLeading`); Gecko and WebKit keep the exact value. render-tag does what the engine it runs in does, so canvas text lands on the baseline that browser's own DOM would use — which is what keeps a canvas render and a contenteditable overlay of the same text on one line. Safari is the closest fit rather than a match: its canvas metrics disagree with its own layout metrics, so no canvas-side rule reaches its DOM exactly. This is the one place per-browser fidelity wins over identical output.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}