{"_id":"@weasyprint-tsx/ui","_rev":"42-595c82fc43d05390218b5657c9c5fb6f","name":"@weasyprint-tsx/ui","dist-tags":{"latest":"0.2.17"},"versions":{"0.0.1":{"name":"@weasyprint-tsx/ui","version":"0.0.1","_id":"@weasyprint-tsx/ui@0.0.1","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"8dd4d154131c933fe13d431096a3788e7afed54c","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.0.1.tgz","fileCount":18,"integrity":"sha512-efot7/9qpr8EzVdKo1d5TtNm0x5K7KCZYbfHTTaTXy70MAZBMHZPdHbGL72mdF8U072jeal9o9bM1EFh32b7Mw==","signatures":[{"sig":"MEUCIQCxINPxPxH+vPrjUHvbIygUgzIiiLrPIV3ei1CW9JCN9AIgVwYZK4gj8suOQx+7kYXqR8wXgugfE+aNr58pxZlqtN0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21031},"gitHead":"fbff6f725b066561697bbca1cd99c70dcb5fa285","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"workspaces":["packages/*"],"_npmVersion":"10.9.2","directories":{},"_nodeVersion":"22.15.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.0.1_1781263166879_0.7871904336633322","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@weasyprint-tsx/ui","version":"0.0.2","_id":"@weasyprint-tsx/ui@0.0.2","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"fac81c87e191bfe1b8b7d70df0d441b33dceb8ce","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.0.2.tgz","fileCount":18,"integrity":"sha512-emnfH68F5/r7TficYXhNGGCygdQcfG4c2c6dC/L0dEvZnBz2ctEWB0gG33UFiMeZvuHNxZpZ1kBZAwfXCaLH6g==","signatures":[{"sig":"MEQCIHPGJyTtB0lwCA4RGdw+f2ntAB6Fu/7mTj++IEu/ND7UAiBytppc4rwU7W4Rwcf5B2rMa97grwemMnVwX5neENNWag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21097},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"fbff6f725b066561697bbca1cd99c70dcb5fa285","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","directories":{},"_nodeVersion":"22.15.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.0.2_1781266816800_0.7179462145276918","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@weasyprint-tsx/ui","version":"0.0.3","_id":"@weasyprint-tsx/ui@0.0.3","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"9d218639569fcaf18552a87395f87281c2d31e02","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.0.3.tgz","fileCount":18,"integrity":"sha512-/G8Mng0UzClRbaioRIEX/JiK6ZuLgLB84yP35N+FGM4FqEjNYwMmA4Wmn/942e1UM/Re/iviWvm7mfxR31V9qQ==","signatures":[{"sig":"MEYCIQDDxYWrlq8gYPUC7q/SkpTilRqToV0iF3t3ESIwE5nIwAIhAJkZxF7ISGVaZG6ko5VfcT1gC4BxiOrQef0mhlo1iJ3l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":21065},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"fbff6f725b066561697bbca1cd99c70dcb5fa285","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","directories":{},"_nodeVersion":"22.15.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.0.3_1781267504802_0.9527995162374814","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@weasyprint-tsx/ui","version":"0.1.0","_id":"@weasyprint-tsx/ui@0.1.0","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"ec217c08d15faa66a06eab1b2892b53761646814","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.0.tgz","fileCount":19,"integrity":"sha512-sr0BbY0rrWUbnEmZ0VkWrvAE8L5gnnanZzjUmjcYfinI7qUBOu+EGkfymevdk8R4W69F4z6EE2PCcYb36bAWyA==","signatures":[{"sig":"MEQCIFDH57CpaZNDU/M0bUTINDhfRPS2ffW1ScVrDhJwpj2fAiBBFyh1bKl3SORoihLCvVwHZkwL3zQ5kkZ5nwUb5uAA8g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28424},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"efa8ed46cf5cd80237d424e6d6aa52d22af98eae","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.0_1781269570200_0.9313137695015057","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@weasyprint-tsx/ui","version":"0.1.1","_id":"@weasyprint-tsx/ui@0.1.1","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"9b161e70727183c69c3e38f4f94a39e3870b2647","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.1.tgz","fileCount":22,"integrity":"sha512-jxNKEnyJmD7dnHR+z+dLJl7oo84q3ZWI4bHFXqd1ok53o3jJmpwZ05e1JoeB+0bE7D7Q7iJGn6bKL6s6q58eSw==","signatures":[{"sig":"MEYCIQDBnL7/jSEfBV4PKzD8UKLOiGhsBmUGFKoqUFFi/bwB4AIhAJ5Ixsv0mU3ofLP4+IUCXAOygSY4PJDWRLL2FeczbN1h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29959},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"f469a55bff574d96a0c861d001c099d8495c02a7","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"highlight.js":"11.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.1_1781280838906_0.970202462121786","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@weasyprint-tsx/ui","version":"0.1.2","_id":"@weasyprint-tsx/ui@0.1.2","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"f64525ce4ef088c86a02a2e0ecf340c47e448f9c","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.2.tgz","fileCount":22,"integrity":"sha512-CEr5M6nQjcjidnUqiMHu9B4nXEXJ8HiCQBDzBDJ3dArGfG2hqITJIiNG8Y0RcjO5+m8zih1yP2jdryCINY7E5g==","signatures":[{"sig":"MEUCIQDcKKhZAxK8fHvhpLtW/ux/6k8AJb51CKIAqpYdLza+LwIgJicxX+edMlTS/GdO6f5aQdf53fg0BR4oPQPpRjHDesE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29984},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d8ca4ea0fcddab14dfc5ac85d9e07c8fcf37201f","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","highlight.js":"11.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.2_1781299527576_0.9558122039881864","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@weasyprint-tsx/ui","version":"0.1.3","_id":"@weasyprint-tsx/ui@0.1.3","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"06a6e611b98f3003b62178bde9f22eaecf2bfed8","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.3.tgz","fileCount":22,"integrity":"sha512-aoddX2uv7/KkqXHRoP2AK/9ceBM3FhaOO6UDyaHL1NmqKqSICIeQ4jhoDvBKdtVRnaUNqeWGhtnIWlOuLTsoCg==","signatures":[{"sig":"MEUCIB0xAz4V33XleZQXKthQhqBKUyoKEJwuYwq1uaKyfEDzAiEAyBNt9WkUhCJsLi0fo5UxKEsoA299o/TJt/SUGknr3b0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":30009},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d8ca4ea0fcddab14dfc5ac85d9e07c8fcf37201f","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","highlight.js":"11.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.3_1781299843071_0.7636714019693254","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@weasyprint-tsx/ui","version":"0.1.4","_id":"@weasyprint-tsx/ui@0.1.4","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"ef1bac902e4ec391fc47356211cd35795fc81725","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.4.tgz","fileCount":22,"integrity":"sha512-XLHD2nGhgIFiGeenyd+HF9Z8Q/uSmExhGZ/IXtH0rMh+OC+H5JHJM4wCZ3cX9xradI+RVs9SdIMh9XdJ0Q3OHA==","signatures":[{"sig":"MEQCIFpXdJBcXMldfiO+FoacECGStEmqoA3rljVByiYwYt1tAiAFRrw+NDRZfJdTQjMA0Io2LDtiad9PT/3qK/Dp+ypbDg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32071},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d8ca4ea0fcddab14dfc5ac85d9e07c8fcf37201f","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","highlight.js":"11.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.4_1781363338588_0.16181208704628092","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@weasyprint-tsx/ui","version":"0.1.5","_id":"@weasyprint-tsx/ui@0.1.5","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"bc0aa53e8520037d91daccb4f2cecc6907ff0e9a","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.5.tgz","fileCount":22,"integrity":"sha512-FXBwE9BK/t6CMtL3RCLfd+YS+JwUhh0UQ52CTFJADG77d8k1SRPiEvE5ctaltnzGoVrylLiwzW7poT6KllIlkw==","signatures":[{"sig":"MEUCIGpDgt15UfOyQTEnGrFHuohnUHt8PEYV731CCTr7FTCNAiEA4yy4d6ITSD0QCk7AI4NgW6HiAim0W4ozqxwaId/wSYY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32079},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"dc58a05a40609069610734c97a9b4f49675b4acc","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","highlight.js":"11.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.5_1781364666932_0.5868068186003939","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@weasyprint-tsx/ui","version":"0.1.6","_id":"@weasyprint-tsx/ui@0.1.6","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"1d2e4e57c262e74db0fc263f14a35a847cded6b4","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.6.tgz","fileCount":22,"integrity":"sha512-wJAtFXLvNuSjewwSBPFVjoUZtbK5p6MMMuVJBD6vFepofPJKmAMtTWXgnoFZCA5S60DhhQMYKhNYhQIykCWa6Q==","signatures":[{"sig":"MEUCICQFZBhkWiUWm4tZdfNdQQkOlqUYO4Cp0QfxwQP5xzZEAiEArKd/m2eBsGVYr2Q6JhRTfQ7C/xBnxy/RhOtX2gaHZo4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32073},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"dc58a05a40609069610734c97a9b4f49675b4acc","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","highlight.js":"11.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.6_1781364748910_0.5075597684386526","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@weasyprint-tsx/ui","version":"0.1.7","_id":"@weasyprint-tsx/ui@0.1.7","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"8ce9e2c77335e020ff619be724e5045cf9e4c1ca","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.7.tgz","fileCount":22,"integrity":"sha512-AsTmMSJ38EQtdrCAbg/PeFJ4iu3OJIn1rBgHpJ2f7lugwhXjX/XAKReZ9fYqRl5KjlipaeV5kSmoD7P/zr/rdw==","signatures":[{"sig":"MEYCIQCzFu3pIoOmI8HgggxIFIqcBFrlELGZjLaka4MzjUeCHQIhAM3iV7I0zq2rRC6nbzSeZcC69TTEbSNPnYDJ6P2+KBqz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":32069},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"dc58a05a40609069610734c97a9b4f49675b4acc","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","highlight.js":"11.11.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.7_1781367315327_0.1812988712896273","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@weasyprint-tsx/ui","version":"0.1.8","_id":"@weasyprint-tsx/ui@0.1.8","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"548b3f49afa5358694d89c0acf3aa2dd52c3a642","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.8.tgz","fileCount":23,"integrity":"sha512-M1ZrD0raBWXs6La6I1WIS9igYAWCPpkCEuIiZ+IrdTvB01SgnI1K1t9Nm/AZQoos4lHqUHkfBAOfwBNH/o6udw==","signatures":[{"sig":"MEUCIEbJoBUIWB8FcY81h3iIHEwdhYqGF2QgZ7+3BsTibWwQAiEA1Wt/Ae6paoXXVD+yXK37bpJvUczHvax9RiR1b7dbKX4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35723},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"1cd0d95383d9ffa7d977c0eb6e7474d4ffdcda41","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.8_1781617855733_0.4209660555813872","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@weasyprint-tsx/ui","version":"0.1.9","_id":"@weasyprint-tsx/ui@0.1.9","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"01412c37b758c1a51fa9dd2c632aac4b7579fae4","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.9.tgz","fileCount":23,"integrity":"sha512-otG2LyMG7zN0QUaJpamYRWDfa4GMwXhTUPw89sJhEMTy9O+RQVQD1UFH+a4Fe7SGPpqmoofZ98Pv9Dt41vNLEw==","signatures":[{"sig":"MEUCIHzUukUITHpjmMS1cWao2BS5Tn0wttPijvHJkoDpk7eKAiEA/6ZQlVgOSqTXEE9/hX2yZ0Le7quKy5HdvAHkyjg/LQE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35731},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"fe12b88f6c046c046f853e73bc79509cebfac40e","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.9_1781691939925_0.45106318545811175","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@weasyprint-tsx/ui","version":"0.1.10","_id":"@weasyprint-tsx/ui@0.1.10","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"bf941b4bcb8e6d9ed5e7f53cba2c7d4dbcf9333b","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.10.tgz","fileCount":23,"integrity":"sha512-bXqlM9CysbGmDg0rEKvPcB4X/ZTPS5rGyCj1dLpF95afXzMD3DlSUwxTCF8YIIe5xeI42VzYqamo/jb3b5STAA==","signatures":[{"sig":"MEUCIQCxdpgnvkb32+chAfp8LiHUE0k8NSW3OQvWEpC2GBp/FAIgCUz96yGkjU9qimTYH4os/pUj/X2v0nkumm3Ke93+pZ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35738},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"fe12b88f6c046c046f853e73bc79509cebfac40e","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.10_1781702124767_0.7328133639759566","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@weasyprint-tsx/ui","version":"0.1.11","_id":"@weasyprint-tsx/ui@0.1.11","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"1baa3c7e6426fd2451118ce592572b511f732286","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.11.tgz","fileCount":23,"integrity":"sha512-h/hz0zvLugZiKRlUU6O8VA4o2zcZ3u6HDIvEqL1CPhdMWkdW83XXmtYA0JqwQ+Sxqd7Lps1oc8j4oeU1G2KNQg==","signatures":[{"sig":"MEYCIQCwapZzBdnt6452irS3xb/H3IS3Lt+IX8x5tSJWO8pGyQIhAIGUYAgQXfgsriewbDBQcWukEJeq7AKyUez8R2HNny5j","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35736},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"fe12b88f6c046c046f853e73bc79509cebfac40e","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.11_1781702493191_0.22430244577615","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@weasyprint-tsx/ui","version":"0.1.12","_id":"@weasyprint-tsx/ui@0.1.12","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"2733fb2709313283db034294ca1645554703f5bc","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.12.tgz","fileCount":23,"integrity":"sha512-GY8Sly+2yXZiQqDTiQn4xQaYwoJXRNS808l0rkmdBy76Nw3rU8MxzJPUfn0pHTFAtInXbllO/j97yXr03IdzXQ==","signatures":[{"sig":"MEUCIQDu+fMpQfO4nYmSw8oFPBD18j9D7N+tlYRV7vhUqXBGnAIgONecHLpZXtc2wLK/nQcOHlkYMkGWq6LlMucUP/ZzYaE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35742},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"fe12b88f6c046c046f853e73bc79509cebfac40e","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.12_1781702912070_0.6743348075854583","host":"s3://npm-registry-packages-npm-production"}},"0.1.13":{"name":"@weasyprint-tsx/ui","version":"0.1.13","_id":"@weasyprint-tsx/ui@0.1.13","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"3f730840cc44dcb3c0abe3e1957be4f1628cacf0","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.13.tgz","fileCount":23,"integrity":"sha512-oE6tpMmVM9BrEByliXLY8uYyUyWdmIFZUzp59I6Pz+y60/nBMXGNfZw4cOcFD/JCF5qmQzEISdniVh8DwQPRBw==","signatures":[{"sig":"MEQCIFiMEFL6g08NI36cwPzldkoIjyx+Y9Q8XD+R7ZcI82SWAiAqePzlsbSpHRJirXCjlwXT4+FtfbAuPeY4/AsyPg1xRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35747},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"fe12b88f6c046c046f853e73bc79509cebfac40e","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.13_1781703074466_0.6614309835586882","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@weasyprint-tsx/ui","version":"0.1.14","_id":"@weasyprint-tsx/ui@0.1.14","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"08776204140fc7b664d67609926da2f43db13ffa","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.14.tgz","fileCount":24,"integrity":"sha512-G1eAW/mqxAvu1YtUk/6GZXIFTmIK4lbbhHUOFVfBJNnLeTAiioPJsvYrZ9bNWgFmfs53fPmzEgWpUmUugrj5Jg==","signatures":[{"sig":"MEQCICPZSaqWXOzoa8y62m4Dw4oFQZZpwi6xYoHhzsbJ4FovAiBiI7jmHAQL+yrQ2eIyKMwpjZ4C1Qqnx7F+4lrHtQ5tJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37275},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"fe12b88f6c046c046f853e73bc79509cebfac40e","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.14_1782211052667_0.4814839368062023","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@weasyprint-tsx/ui","version":"0.1.15","_id":"@weasyprint-tsx/ui@0.1.15","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"d154ece4b7693106481c4b75c68dfaadf12ffff6","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.15.tgz","fileCount":24,"integrity":"sha512-/Sxi/FoWqkyrHHZnXaETISto86ktd20++giq9S4pZQofJDvRXUU78Km9LSTMGRAjz7ueOcQieR+vVWTLhuOrVg==","signatures":[{"sig":"MEYCIQCzDrorkjH0oM/JQHGplxnaYVwprViFMWWV7whftJvsGAIhAJ0dvWugBj9zK0z968bY1JSrjw1g6raIeT1YxVchIhoa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37251},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d96d1472f747917df14e90dd6649ffaf3aa6bf96","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.15_1782212588132_0.3405998237294212","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@weasyprint-tsx/ui","version":"0.1.16","_id":"@weasyprint-tsx/ui@0.1.16","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"95e0ae5b2034d4e7fa71d2c64e6cf0c78c6a41aa","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.16.tgz","fileCount":24,"integrity":"sha512-4GFK7IAorEBzlQQR7e5ASXmGQaXuafLgOPkn6ZYyaJ7GR4F1KOrFrSIj6+Dbsa8jUYWoB8zZzG34ufoSJnEbrg==","signatures":[{"sig":"MEUCIQChtePFJN3orLgvjMWY138lO/oAgRaRpjg9HMrjA3PhhwIgQ+7pb/0Okh5lBOr8QrDOHePmJiBDraXaxbhM8TxFxLQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37474},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d96d1472f747917df14e90dd6649ffaf3aa6bf96","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.16_1782213090106_0.4383833053909909","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@weasyprint-tsx/ui","version":"0.1.17","_id":"@weasyprint-tsx/ui@0.1.17","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"a2e74d88348ab82f9811bb7895dd3c5248ee567d","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.17.tgz","fileCount":24,"integrity":"sha512-+dkgujAUNbWNDP7wNnbPR6lCbw1kjDl29EOdYW1uNVhh1DQQpehH9uSK8X283JzyvvDf+BwBMtPG2jJ6Jm8FAQ==","signatures":[{"sig":"MEUCID1IS+2UogjssGq8J4/RmXSDvfxhGOAobgh1YIJHGEKoAiEAsiS2ozUbg4yV3MM07JzbFonS6UBsG7FQLxtAabwkszY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37497},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d96d1472f747917df14e90dd6649ffaf3aa6bf96","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.17_1782732896344_0.09919341569442675","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@weasyprint-tsx/ui","version":"0.1.18","_id":"@weasyprint-tsx/ui@0.1.18","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"327d73653493543a747c0ef2c1376f7de58a0980","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.18.tgz","fileCount":24,"integrity":"sha512-rDpXIcjabbJUKiWmC4XCZWB5BolNztI/HX8HuTWURMHwvUrYrqNhaJxQy0IbPNioSLP+5Gyk3dL4YypW4MpNpg==","signatures":[{"sig":"MEUCIQDiWqoS4HeWsw7OEogVtkb32wdWwn5oKYCWPKN10oKiGAIgXTMfIQoRvYSN/ukTCObXluZUwu0B8GQ2A3yKNOh65pY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37639},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d96d1472f747917df14e90dd6649ffaf3aa6bf96","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.18_1782733332329_0.8834532122165191","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@weasyprint-tsx/ui","version":"0.1.19","_id":"@weasyprint-tsx/ui@0.1.19","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"f12b4f6e597f6f769f72e5215fbc87b99f399c7c","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.19.tgz","fileCount":24,"integrity":"sha512-K5TQKxgu7xrdw8B9o/9kH/+HW4m3RqlFMGurDWWqw/io74W+L4vpL1+WdROGNczvsx9PzJglPVf888WARQoEWQ==","signatures":[{"sig":"MEUCIQC2DxwECbUUG5xTN1qnYyaF6XR9+KgaYWcbFsTIt2EtCgIgfZEzQJytbJdrjOUAi0StZdiyLElGTQc1/TB0i2VbytI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37719},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d96d1472f747917df14e90dd6649ffaf3aa6bf96","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.19_1782815091859_0.6203735906424586","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@weasyprint-tsx/ui","version":"0.1.20","_id":"@weasyprint-tsx/ui@0.1.20","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"29de34aa84e9de68a4be032d7624abf142625ed0","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.1.20.tgz","fileCount":24,"integrity":"sha512-rChrEloHRW1fQD/WQChA7t+W8+VxvJo4cc6PMf3zig379md3bdhDH22P5R1qYxmSk7/ahfg2JuemXP74SKEuQw==","signatures":[{"sig":"MEQCIDwz7lPqb3pG7y9VtVtSVzFj0UW8SE1Z/LkuZ8kEDDhsAiBcQzoVI9OwEQKn3fBm/kC6JxiBByaSj2Hh5n5frh2WaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37815},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"d96d1472f747917df14e90dd6649ffaf3aa6bf96","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.1.20_1782832877449_0.06032216745963126","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@weasyprint-tsx/ui","version":"0.2.0","_id":"@weasyprint-tsx/ui@0.2.0","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"141914820433fd06bcdff8357adb585603bf7149","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.0.tgz","fileCount":24,"integrity":"sha512-1rYp0vl8EA4h5vQHqgUkznMF425l176lawfUx5az910dUFkN6+ODU7poH/QbJIsr4iQyOmZ/AGAEicFY3o3LTA==","signatures":[{"sig":"MEQCIHsbmCI3TW28Dlsj5vYNfp8Hf1r7LDZukQEJYWdv2QBAAiAXU0trwUuy/IlFXK3iEo4XM8Maf95Snv8zwoEpDfEI7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49936},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"b22c7d1957b40d8a618cb6e90b6d59cde109f98b","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.0_1785841537229_0.4957751234654608","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@weasyprint-tsx/ui","version":"0.2.1","_id":"@weasyprint-tsx/ui@0.2.1","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"65e0934fba05cd126cb03fdce4aae6dd39aeac7c","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.1.tgz","fileCount":24,"integrity":"sha512-ATnrVRPyE6OABH3zXbK4nVSbsnPuW+Y9GAh4IC32Iv0QcErMaj5PPdNkJqI6nJBB0OjgmHPU+WyRnO50zhya/Q==","signatures":[{"sig":"MEQCIFNHnsxTWOLQ+cMZOen9cQ/Syq2Sax6sDaULrWbJW8YsAiBMtomUmQtVy6qStnvgG5keWEGKDTWs9rRycTwz65ozUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50002},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"b22c7d1957b40d8a618cb6e90b6d59cde109f98b","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.1_1785843207233_0.3119344365552994","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@weasyprint-tsx/ui","version":"0.2.2","_id":"@weasyprint-tsx/ui@0.2.2","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"ad41cea377b7ee2fb91febb2e5a08b92cbb34df8","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.2.tgz","fileCount":24,"integrity":"sha512-+ENHMaNW89CQHraHNZI0uT2QBuEn5M1O2hIwU8gQ0Suy5Vcc7je1Iv4R0uvw5JqiniNvBDIdsVcEyGLb8hzn0g==","signatures":[{"sig":"MEUCIF6ZgGr2mZDlBDfPcgM4OxowtWkAoqAcxlG43lgWsJP1AiEAm7vwFzVBHlsQhbRYcKTFoUvFCyGLWQhqfrkfXyv+dCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50027},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"a6dada0fdabc6be4dfc9f330f92adb1a6089e093","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.2_1785843424344_0.9124733852215252","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@weasyprint-tsx/ui","version":"0.2.3","_id":"@weasyprint-tsx/ui@0.2.3","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"f746ae33f87bd321cb7ad25dceb4022dced600c6","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.3.tgz","fileCount":24,"integrity":"sha512-xi4Ro0EqixZV0H/UM6aqnwmqJNmczNi0EU5qQduc4ApojjcnPPmvaUF6l3iSOujTDGSzNXEfvGiCO2U16xnXoA==","signatures":[{"sig":"MEUCIADncQwxlZD21AODlw6FC1EIqS9Ux1A7I0a8A4bQHO1mAiEAiqkmz6So7hyC0GHDFycXe5PR/bcYgNlCgX+dSIflFWQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49985},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"9324e99099c51d31594f910240b1f6bb2ca86261","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.3_1785843717499_0.05976420752445377","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@weasyprint-tsx/ui","version":"0.2.4","_id":"@weasyprint-tsx/ui@0.2.4","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"557caeb4eb28f3ef2c40c5d681cdb62c4c0a9de7","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.4.tgz","fileCount":24,"integrity":"sha512-MYjZrKVpNWBzhEzsqgLMavD9DljDryyXpv+ln5ZGcp6p2THxIY0Lu03oymUd43146qB0eQ5MR6RDhs+rOKjrkQ==","signatures":[{"sig":"MEYCIQDKnkCrHqlhA6Rh5fV7y+ZBEPQ7yMDLNCFLW5RijAXjaAIhAPm6yEwCGazHhPzyOIjRi0tAPSU5LimuynurtED7SWMI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49984},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"e80401e617e3fc1b3cd2e141a463548bd6dd6908","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.4_1785843947554_0.2633590889755222","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@weasyprint-tsx/ui","version":"0.2.5","_id":"@weasyprint-tsx/ui@0.2.5","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"305f5a23d3798c241f7a0728586ebe86110eb876","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.5.tgz","fileCount":24,"integrity":"sha512-DH6TMOtatKJmG6X5V9htlnX+lr2QyheCHiv79OMNgmybntOJB07CbCCWXaBt92p2ulOwxg5eWDkkhWomD+5TYg==","signatures":[{"sig":"MEYCIQCcwUBXyDJ6cgl7KLI6lcX7pdTnISOwWxEWQNczyoM7mwIhANFXjg2G3HtQab66NxW/IndMoH1uvrAMtXk8Iuwecuy4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50081},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"e80401e617e3fc1b3cd2e141a463548bd6dd6908","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.5_1785846262976_0.09100906052720115","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@weasyprint-tsx/ui","version":"0.2.6","_id":"@weasyprint-tsx/ui@0.2.6","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"a9dec4053fe6ac49bcaeb8d4504bed324960636a","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.6.tgz","fileCount":24,"integrity":"sha512-v/aBDykqM1TFxa1TcKSB7bcWDF3i72IUic4fGc1twPu5nlefV8sDeio7HagAU5THR148HuHCfMlnXz9J5CNa5A==","signatures":[{"sig":"MEQCIGLbWMgbijqjmZHSDujx0sFLOahn8KXy7jni/jw6Zf9xAiB7IflnVOcWea5+Zu82stNBaxK4w+I9GHHsyjtcO2mL8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50301},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"e80401e617e3fc1b3cd2e141a463548bd6dd6908","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.6_1785848184719_0.6543784873170588","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@weasyprint-tsx/ui","version":"0.2.7","_id":"@weasyprint-tsx/ui@0.2.7","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"0ab19886c9174f3acedc912a907f9e61cc4b63c5","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.7.tgz","fileCount":24,"integrity":"sha512-gzqGPE/4iPYGA1RDOuBlnZIHz7bXlkchczZ7b8kgeYJSC9+cW4V+Bfq5ti+8+Tbe4ZiDEUhD13dCnys1Un/+YQ==","signatures":[{"sig":"MEYCIQCYPrLTjW+fde1L8IjnvCJcYAfue17wBiL7yAVOXNM3ywIhANsmsLdWf9Vruxz+9ge+HgeMPG5NvYYe78QCsVe/zidC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50300},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"e80401e617e3fc1b3cd2e141a463548bd6dd6908","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.7_1785848536214_0.7199537588155231","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@weasyprint-tsx/ui","version":"0.2.8","_id":"@weasyprint-tsx/ui@0.2.8","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"174970278b2a3b53c5cbc9cc7f07814ec99faf2b","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.8.tgz","fileCount":24,"integrity":"sha512-xmk595Tczg3a0HalBB4VgXvYqmF/35h80wz9kM3qRCWAI2hSGtzbehIn08AGh6of+CVbtezIeQ/nzFMfOOqqvw==","signatures":[{"sig":"MEQCIEg+9Z9tCgsRXSI9irhjmJ4p+2JHAYL3UDhp43V6Hh9HAiB8l1Qu4O2RWQyGOIPvVIIl248qos+vFmYl474BRkSh5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50300},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"e80401e617e3fc1b3cd2e141a463548bd6dd6908","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.8_1785848637859_0.8789562350925197","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@weasyprint-tsx/ui","version":"0.2.9","_id":"@weasyprint-tsx/ui@0.2.9","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"103c45e89cff02332854c9d9767fd0d03ede8097","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.9.tgz","fileCount":24,"integrity":"sha512-k2E1IwUSKnZM7RVTxr+5Neo9sSoA/y7qAgk2oPfJFQ5MoVtautedt89rsVR1TouKVKsLsdspQCk2YJYxC7F4oA==","signatures":[{"sig":"MEUCIQDJm69HXzgfyVYZsC13pKZh1Z3Ym+8E2VhNKFjDjgL8lwIgSxQgnF2vr6ToPW86u0zWY3zsPlOtFdMoFBNYNiY2k0E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50293},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"e80401e617e3fc1b3cd2e141a463548bd6dd6908","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.9_1785850198166_0.12584996663610926","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@weasyprint-tsx/ui","version":"0.2.10","_id":"@weasyprint-tsx/ui@0.2.10","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"ac742874448c1b7df971a9911fb2181c26e79391","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.10.tgz","fileCount":24,"integrity":"sha512-PKClM5p02y8Q76VV+n3FLEW7ZwwVvI61ZTVSkEshrJvWuoaQDdWsz2Bk69rBIB8HakBt3Scjfhn6XqAVtuLEug==","signatures":[{"sig":"MEUCIQCyCN9YGgFrbq+J9NVgXWWP/liXZuOYrc+gOyWT4BrKrgIgOM4z9Ik0ywENRDeV5GMpnlRgNoWtiqxOStLZxBb0ZuY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50328},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"e80401e617e3fc1b3cd2e141a463548bd6dd6908","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.10_1786107388253_0.3476025784970558","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"name":"@weasyprint-tsx/ui","version":"0.2.11","_id":"@weasyprint-tsx/ui@0.2.11","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"2a3fa3b8da8e7579430bce6d580e39111ba8ab9e","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.11.tgz","fileCount":24,"integrity":"sha512-rU8jVxrzUkf3sQJNfPw3X4cvFmFjmM00cSPl9HjDI7NfPEa2F4/awk54mVJrbSHhaXD1C/1QOsQWEwSGwPzJxg==","signatures":[{"sig":"MEUCIQCXn8c/v4oyJJF7HrRVloKfBI4z9de5XFEg1ct4bdvh/wIgZS7IUM42wTnp3SAD/YqICAQU/WIKH8WQQguKAz3daG0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50326},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"6a9cba6fcd443e24b840532c226c26566f13f603","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"11.6.1","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.11_1787763822509_0.2099943986573718","host":"s3://npm-registry-packages-npm-production"}},"0.2.12":{"name":"@weasyprint-tsx/ui","version":"0.2.12","_id":"@weasyprint-tsx/ui@0.2.12","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"c56b7d4b09ffffe42bae7fcd8f0da26c8f60c03d","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.12.tgz","fileCount":24,"integrity":"sha512-YfTAC2Sk8LM6y9NydHIej0iLd96eww8ZnkjUIsYj0NLFrmQ8cefnP2VdUcXfY+SRT+42/yQn7IYQ6pdbMY15VA==","signatures":[{"sig":"MEYCIQDWhypB2zFcamqmASFZ98FHpoXV8mHA75Zrl8igWdPX0wIhAKc+Tgcrv6Z1XEbGtUBTdlSa/VLMTM6WRQ8rbpt2KNJy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50306},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"c3402c865bf802629dfce133b4c75e654d45597e","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"11.6.1","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.12_1787764424666_0.57310407971449","host":"s3://npm-registry-packages-npm-production"}},"0.2.13":{"name":"@weasyprint-tsx/ui","version":"0.2.13","_id":"@weasyprint-tsx/ui@0.2.13","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"ac0045dc8071c450fc026b74939102cf40ac44db","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.13.tgz","fileCount":24,"integrity":"sha512-hKOf8cjrlIkBU4a+8dUis9I/Z738pZF3nF7o/zymDQp63W2cLG/rmB1HZrLe8MSNb3zznIY19FavPou8bAqNtw==","signatures":[{"sig":"MEUCIQD5O2b7Nu6FWGv5zYxWIZjbwHN1vFxPQuD6sZO6wtK2yAIgQWDOblqFco+sSjn+qjZoh3AyAQIkDN7NjeH4eGtE8rw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50280},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"10bfa58dae29471f3b2de867dc5d2bd96d0e1ef2","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"11.6.1","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.13_1787765492696_0.5527316744837005","host":"s3://npm-registry-packages-npm-production"}},"0.2.14":{"name":"@weasyprint-tsx/ui","version":"0.2.14","_id":"@weasyprint-tsx/ui@0.2.14","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"ff6d87630501dc3f32f1178096df8a9e418cc26f","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.14.tgz","fileCount":24,"integrity":"sha512-9XpP0BVUwRFex7bMXvauV0347JTHcSu1Oz9/tgBqjdAxpeD+ahbE2qIEyiNu9guF/lpPTJ65RwBffGrc+xnJ2Q==","signatures":[{"sig":"MEYCIQCdAEjOlT++yKgKxNmMExGI/VpFjqBpJyF3sJSic2VesgIhAJVVA5lFM22J6POI0v8MKGGNFx6hAz2wK2cQIzZtjM8l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50185},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"ef0f5f24d73800ab3998f4843c557317008e638f","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.14_1787919716262_0.08638181938753009","host":"s3://npm-registry-packages-npm-production"}},"0.2.15":{"name":"@weasyprint-tsx/ui","version":"0.2.15","_id":"@weasyprint-tsx/ui@0.2.15","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"5dd35f1d4ce3674fe9e9cac823856ccff00b5d11","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.15.tgz","fileCount":24,"integrity":"sha512-GAAabipIyit9h+FlMbEQbXsoGWjj8gEGIOPwJJX0N7wH/sjtJ3c7GDaRzlAN4IsObeYUWK68ito7K5gbqoX1lA==","signatures":[{"sig":"MEUCIQCMh4ho9BPZkeEdw4iuhoQ58QD/OvYj/RNEm5cUhfvESgIgIkoyI2WgWTfSWXCF3VzNPJd0E/7+wRU0Idnr2ZdTTGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50186},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"4fbe4f41a84103d415d48953cfa7e9bc8bb404f8","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.15_1787920026328_0.7571947368435228","host":"s3://npm-registry-packages-npm-production"}},"0.2.16":{"name":"@weasyprint-tsx/ui","version":"0.2.16","_id":"@weasyprint-tsx/ui@0.2.16","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"dist":{"shasum":"996d793816ec07d279b0a3e723b164e77870ddcf","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.16.tgz","fileCount":24,"integrity":"sha512-TgCwXWRUgm5zqXpqAeHEm/JpvG4FWTRSzp4Om9mJmZJzJU2Hb2/Mm9khE4uEMnFRe4XRTMBmsZGI0OICvcLsIg==","signatures":[{"sig":"MEYCIQCnasZpDwQgZstyIS20sOD2rSl00hVlyU98d23DaxUALAIhAM0sji4O6lHPO1BidPOV4G98UVWvDWdvv9uu8oroCquo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEuqK6EQPhvm1fS1kl8oFHtpqvUFu3dS1sQFR+K3fEPVAiEA4NbjeXy8FqW0H+leTyq/KEb02EPSTAN6fUH3gLo5t3k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":49542},"types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"82105e8511d88f3e1752c7d5816938810bf7322a","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"tmp":"tmp/ui_0.2.16_1789569638861_0.18544288467578052","host":"s3://npm-registry-packages-npm-production"}},"0.2.17":{"_id":"@weasyprint-tsx/ui@0.2.17","dist":{"shasum":"ffe9ee5707c5ba4c21d69e54287d980939739626","tarball":"https://registry.npmjs.org/@weasyprint-tsx/ui/-/ui-0.2.17.tgz","fileCount":24,"integrity":"sha512-hgD2wvzoEl91e9cYB7bZ1BdQkOcxmexl6Y1aWPAExpkLtZNmhJsPT9nC4E5xrYxlAY4noseLseOcBEXv9erp5g==","signatures":[{"sig":"MEUCIQDPRpwRLsBO81LW/A73qFHG09X1ngX+eyJMHRNXyZ0cBAIgYBeYJqaUwvmiLTmiNNiavDu3qOwsMCOiLc4XRL5DvFs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDLmH6HaMtdsYtikyuq0o4AK4nWeMV5b6YLlWFDoYJKLAiB2aL5a9x1rUtZzwR9dOMhxfbWykiLOIdcWVSAKiCL/NA=="}],"unpackedSize":49795},"name":"@weasyprint-tsx/ui","types":"./src/index.ts","exports":{".":"./src/index.ts"},"gitHead":"194d953531f3b720fe5467c238ad47c6c2230eae","version":"0.2.17","_npmUser":{"name":"henrylf","email":"henrylf@protonmail.com"},"_npmVersion":"10.9.2","description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","directories":{},"maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"_nodeVersion":"22.15.1","dependencies":{"katex":"^0.16.47","qrcode":"^1.5.4","chart.js":"^4.5.1","highlight.js":"11.11.1","@napi-rs/canvas":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/qrcode":"^1.5.6"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ui_0.2.17_1789592991969_0.7185428902209381"}}},"time":{"created":"2026-06-12T11:19:26.745Z","modified":"2026-09-16T21:09:52.264Z","0.0.1":"2026-06-12T11:19:27.004Z","0.0.2":"2026-06-12T12:20:16.988Z","0.0.3":"2026-06-12T12:31:44.949Z","0.1.0":"2026-06-12T13:06:10.331Z","0.1.1":"2026-06-12T16:13:59.026Z","0.1.2":"2026-06-12T21:25:27.741Z","0.1.3":"2026-06-12T21:30:43.246Z","0.1.4":"2026-06-13T15:08:58.736Z","0.1.5":"2026-06-13T15:31:07.138Z","0.1.6":"2026-06-13T15:32:29.055Z","0.1.7":"2026-06-13T16:15:15.458Z","0.1.8":"2026-06-16T13:50:55.869Z","0.1.9":"2026-06-17T10:25:40.076Z","0.1.10":"2026-06-17T13:15:24.900Z","0.1.11":"2026-06-17T13:21:33.331Z","0.1.12":"2026-06-17T13:28:32.214Z","0.1.13":"2026-06-17T13:31:14.579Z","0.1.14":"2026-06-23T10:37:32.803Z","0.1.15":"2026-06-23T11:03:08.303Z","0.1.16":"2026-06-23T11:11:30.240Z","0.1.17":"2026-06-29T11:34:56.467Z","0.1.18":"2026-06-29T11:42:12.478Z","0.1.19":"2026-06-30T10:24:51.992Z","0.1.20":"2026-06-30T15:21:17.620Z","0.2.0":"2026-08-04T11:05:37.422Z","0.2.1":"2026-08-04T11:33:27.394Z","0.2.2":"2026-08-04T11:37:04.478Z","0.2.3":"2026-08-04T11:41:57.644Z","0.2.4":"2026-08-04T11:45:47.696Z","0.2.5":"2026-08-04T12:24:23.131Z","0.2.6":"2026-08-04T12:56:24.846Z","0.2.7":"2026-08-04T13:02:16.368Z","0.2.8":"2026-08-04T13:03:58.000Z","0.2.9":"2026-08-04T13:29:58.316Z","0.2.10":"2026-08-07T12:56:28.395Z","0.2.11":"2026-08-26T17:03:42.679Z","0.2.12":"2026-08-26T17:13:44.817Z","0.2.13":"2026-08-26T17:31:32.852Z","0.2.14":"2026-08-28T12:21:56.422Z","0.2.15":"2026-08-28T12:27:06.470Z","0.2.16":"2026-09-16T14:40:38.958Z","0.2.17":"2026-09-16T21:09:52.061Z"},"description":"Print-optimized Preact components for [weasyprint-tsx](../../README.md) documents.","maintainers":[{"name":"henrylf","email":"henrylf@protonmail.com"}],"readme":"# @weasyprint-tsx/ui\n\nPrint-optimized Preact components for [weasyprint-tsx](../../README.md) documents.\n\nThis package provides layout **primitives** rather than a full design system. WeasyPrint's support for `display: flex` and `display: grid` is partial and comparatively expensive to lay out over large paginated documents, so every component here is built on plain block/inline-block flow, `table`/`table-cell`, floats, and CSS custom properties instead. This keeps documents fast and predictable to paginate, at the cost of the ergonomics you'd get from flex/grid in a browser context — expect to reach for `ratio`/`basis`/`gap`-style numeric props rather than `justify-content` or `grid-template-columns`.\n\n```ts\nimport { H1, H2, Page, UL, LI, Table, Entry, BlockBox, Block } from \"@weasyprint-tsx/ui\";\n```\n\nAll components accept a `style` prop; CSS custom properties are merged onto it via `mergeStyle`, so an explicit `style` value always wins over a shorthand prop that maps to the same variable. All components also forward an optional `className`, appended alongside the component's own class(es).\n\n---\n\n## Page layout\n\n### `Page`\n\nWraps a page section. Maps to a `<section className=\"wsx--page\">`.\n\n```tsx\n<Page page=\"cover\">\n  <H1>My Document</H1>\n</Page>\n```\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `page` | `string` | Value for the CSS `page` property (named page rule) |\n| `...rest` | `ComponentProps<\"section\">` | All standard `<section>` attributes |\n\n**Class names:** `wsx--page` on the `<section>`.\n\n**CSS variables:** none — `page` is applied as a direct CSS property, not a custom property.\n\n---\n\n### `PageBreak`\n\nForces a page break at the current position. Renders `<div className=\"wsx--pagebreak\">`.\n\n```tsx\n<PageBreak />\n```\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `page` | `string` | Value for the CSS `page` property (named page rule) |\n\n**Class names:** `wsx--pagebreak` on the `<div>`.\n\n**CSS variables:** none.\n\n---\n\n## Headings\n\n### `H1` – `H6`\n\nRender `<h1>`–`<h6>` with optional marker, color, font-size, and CSS-counter overrides.\n\n```tsx\n<H1>Title</H1>\n<H2 color=\"#1e40af\" fontSize=\"14pt\">Section</H2>\n<H3 marker=\"§\">Subsection</H3>\n```\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `marker` | `string` | Sets `data-marker` attribute, rendered via a `::before` rule in the stylesheet |\n| `color` | `string` | Text color |\n| `fontSize` | `string` | Font size |\n| `count` | `number` | Sets the heading's CSS counter to this value (e.g. to resume/restart numbering) |\n| `...rest` | `ComponentProps<\"h1\">` etc. | All standard HTML heading attributes |\n\n**Class names:** `wsx--h1`…`wsx--h6` on the respective heading element.\n\n**CSS variables** (`N` = 1–6, e.g. `--wsx--h1--color`):\n\n| Variable | Default | Set by |\n|----------|---------|--------|\n| `--wsx--hN--color` | `inherit` | `color` |\n| `--wsx--hN--fontsize` | `inherit` | `fontSize` |\n\nHeadings also drive CSS counters for automatic numbering (`H1` → upper-roman, `H2` → decimal, `H3` → upper-alpha, `H4` → decimal, `H5` → lower-alpha, `H6` → lower-roman) via the stylesheet's `counter-reset`/`counter-increment` rules — no additional setup needed in consuming documents.\n\n---\n\n## Lists\n\n### `UL`\n\nUnordered list wrapper. Children should be `<LI>` elements. Renders `<div className=\"wsx--list--ul\">`.\n\n```tsx\n<UL marker=\"→\" indent=\"1cm\">\n  <LI>Item one</LI>\n  <LI>Item two</LI>\n</UL>\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `marker` | `string` | `\"-\"` | Default bullet for all items (overridable per-`LI`) |\n| `indent` | `number \\| string` | — | Left padding of the list |\n| `spacing` | `number \\| string` | — | Horizontal gap between marker and item content |\n| `...rest` | `ComponentProps<\"div\">` | — | All standard `<div>` attributes |\n\n**Class names:** `wsx--list--ul` on the wrapper `<div>`.\n\n**CSS variables:**\n\n| Variable | Default | Set by |\n|----------|---------|--------|\n| `--wsx--list--indent` | `0.5cm` | `indent` |\n| `--wsx--list--marker-spacing` | `0.1cm` | `spacing` |\n\n---\n\n### `OL`\n\nOrdered list wrapper. Children should be `<LI>` elements. Renders `<div className=\"wsx--list--ol\">`.\n\n```tsx\n<OL start={1} separator=\")\" format={n => String(n)}>\n  <LI>First</LI>\n  <LI>Second</LI>\n</OL>\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `start` | `number` | `0` | Starting counter value (first `LI` increments from this) |\n| `format` | `(n: number) => string` | `(s) => \\`${s}.\\`` | Formats the counter value into marker text |\n| `separator` | `string` | `\".\"` | Appended after the formatted marker |\n| `indent` | `number \\| string` | — | Left padding of the list |\n| `spacing` | `number \\| string` | — | Horizontal gap between marker and item content |\n| `...rest` | `ComponentProps<\"div\">` | — | All standard `<div>` attributes |\n\n**Class names:** `wsx--list--ol` on the wrapper `<div>`.\n\n**CSS variables:** same as `UL` (`--wsx--list--indent`, `--wsx--list--marker-spacing`).\n\n---\n\n### `LI`\n\nList item, used inside `UL` or `OL`. Renders `<div className=\"wsx--li\">` containing a `<div className=\"wsx--li--marker\">` plus the item content.\n\n```tsx\n<LI>Plain item</LI>\n<LI marker=\"★\">Custom marker (inside UL)</LI>\n<LI value={5}>Jump the counter (inside OL)</LI>\n<LI format={n => `#${n}`}>Custom per-item format (inside OL)</LI>\n```\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `marker` | `string` | Overrides the parent `UL`'s marker for this item only |\n| `value` | `number \\| ((n: number) => number)` | Sets or transforms the running counter (`OL` only) |\n| `format` | `(n: number) => string` | Overrides the parent `OL`'s format for this item only |\n| `...rest` | `ComponentProps<\"div\">` | All standard `<div>` attributes |\n\n**Class names:** `wsx--li` on the item `<div>`; `wsx--li--marker` on the inner marker `<div>`.\n\n**CSS variables:** none directly — `LI` renders inside its parent's indent/spacing context.\n\n---\n\n## Table\n\n### `Table`\n\nRenders an HTML `<table className=\"wsx--table\">`. Children must be `<Entry>` components.\n\n```tsx\n<Table orientation=\"col\" headerBg=\"#1e40af\" borderColor=\"#cbd5e1\">\n  <Entry content={[\"Alice\", \"Engineer\", \"Berlin\"]} />\n  <Entry content={[\"Bob\", \"Designer\", \"Paris\"]} />\n</Table>\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `orientation` | `\"col\"` \\| `\"row\"` | `\"col\"` | `\"col\"`: each `Entry` is a column header with its `content` as the rows beneath it (`<thead>`/`<tbody>` grid). `\"row\"`: each `Entry` becomes one `<tr>`, its heading text is a row header (`<th scope=\"row\">`) and `content` fills the cells across that row. |\n| `headerBg` | `string` | — | Background color for header cells |\n| `cellBg` | `string` | — | Background color for data cells |\n| `headerFontSize` | `string` | — | Font size for header cells |\n| `cellFontSize` | `string` | — | Font size for data cells |\n| `borderWidth` | `string` | `1px` | Border width between cells |\n| `borderColor` | `string` | `currentColor` | Border color between cells |\n| `contentClass` | `string` | — | Extra class applied to all data cells (merged with each `Entry`'s own `contentClass`) |\n| `headerClass` | `string` | — | Extra class applied to all header cells |\n| `...rest` | `ComponentProps<\"table\">` | — | All standard `<table>` attributes |\n\n**Class names:** `wsx--table` always; plus `wsx--table--row` when `orientation=\"col\"`, or `wsx--table--col` when `orientation=\"row\"` (these track the resulting border layout, not the `orientation` value itself). Header/data cells don't carry a fixed `wsx--` class — they're styled by `.wsx--table th` / `.wsx--table td` descendant selectors — but do receive `headerClass`/`contentClass` if supplied.\n\n**CSS variables:**\n\n| Variable | Default | Set by |\n|----------|---------|--------|\n| `--wsx--table--header-color` | `transparent` | `headerBg` (on `Table` or per-`Entry`) |\n| `--wsx--table--cell-color` | `transparent` | `cellBg` (on `Table` or per-`Entry`) |\n| `--wsx--table--header-fontsize` | `inherit` | `headerFontSize` (on `Table` or per-`Entry`) |\n| `--wsx--table--cell-fontsize` | `inherit` | `cellFontSize` (on `Table` or per-`Entry`) |\n| `--wsx--table--border-width` | `1px` | `borderWidth` |\n| `--wsx--table--border-color` | `currentColor` | `borderColor` |\n\n---\n\n### `Entry`\n\nData row or column for `Table`. Renders `null` — `Table` reads its props directly and never mounts it as a real element.\n\n```tsx\n<Entry content={[\"Name\", \"Role\", \"Location\"]} headerBg=\"#e2e8f0\" />\n```\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `content` | `ComponentChild[]` | Cell values (rows beneath the header in `\"col\"` orientation, or cells across the row in `\"row\"` orientation) |\n| `contentClass` | `string` | Extra class for this Entry's data cells |\n| `headerBg` | `string` | Overrides `Table`'s `headerBg` for this Entry |\n| `cellBg` | `string` | Overrides `Table`'s `cellBg` for this Entry |\n| `headerFontSize` | `string` | Overrides `Table`'s `headerFontSize` for this Entry |\n| `cellFontSize` | `string` | Overrides `Table`'s `cellFontSize` for this Entry |\n| `...rest` | `ComponentProps<\"th\">` | Forwarded to the header cell (e.g. `children` as header label) |\n\n**Class names:** none — `Entry` itself renders nothing; its `className`/`contentClass` are read by `Table` and applied to the cells it generates.\n\n**CSS variables:** none of its own — see `Table`.\n\n---\n\n## BlockBox / Block\n\nRatio-based multi-column layout without `flex`/`grid`: `BlockBox` lays out `<Block>` children as `inline-block` columns sized with `calc()`.\n\n### `BlockBox`\n\n```tsx\n<BlockBox gap=\"1cm\">\n  <Block ratio={2}>Wide column</Block>\n  <Block ratio={1}>Narrow column</Block>\n</BlockBox>\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `basis` | `number` | sum of children's `ratio` (each defaulting to `1`) | Total ratio units the columns are divided into. Set explicitly to reserve empty space (e.g. columns summing to less than `basis`). |\n| `align` | `\"top\"` \\| `\"bottom\"` \\| `\"middle\"` | `\"middle\"` | Default vertical alignment for blocks (`vertical-align`), overridable per `Block` |\n| `gap` | `string \\| number` | — | Horizontal gap between blocks |\n| `children` | `VNode \\| VNode[]` | — | `Block` elements (or any other children, each wrapped in an equal-width column) |\n| `...rest` | `ComponentProps<\"div\">` | — | All standard `<div>` attributes |\n\n**Class names:** `wsx--blockbox` on the container `<div>`; `wsx--block` on each generated column `<div>` (whether it came from a `Block` child or a plain child).\n\n**CSS variables:**\n\n| Variable | Default | Set by |\n|----------|---------|--------|\n| `--wsx--blockbox--gap` | `0` | `gap` |\n| `--wsx--blockbox--align` | `middle` | `align` (container default; a `Block`'s own `align` overrides it locally on that block) |\n\n### `Block`\n\nA single column inside `BlockBox`. Must be a direct child for its `ratio`/`align` to be read — `BlockBox` inspects each child's props itself and renders the column `<div>` on its behalf, rather than `Block` rendering its own layout.\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `ratio` | `number` | Relative width versus sibling `Block`s (default `1`); width is `calc(100% * ratio / basis)` |\n| `align` | `\"top\"` \\| `\"bottom\"` \\| `\"middle\"` | Vertical alignment override for this block only |\n| `...rest` | `ComponentProps<\"div\">` | All standard `<div>` attributes |\n\n**Class names:** none of its own — see `wsx--block` above, applied by `BlockBox`.\n\n---\n\n## Stack\n\nVertical stack of children with configurable per-child left/right margins — a `display: block` alternative to a flex column.\n\n```tsx\n<Stack gap=\"4mm\">\n  <div>First</div>\n  <StackChild align=\"right\">Right-aligned</StackChild>\n  <div>Third</div>\n</Stack>\n```\n\n| Prop (`Stack`) | Type | Description |\n|------|------|-------------|\n| `gap` | `number \\| string` | Vertical gap between stacked children |\n| `align` | `\"left\"` \\| `\"right\"` \\| `\"middle\"` | Default horizontal alignment for all children (`\"middle\"` centers, `\"left\"`/`\"right\"` push flush to that side) |\n| `children` | — | Any children; plain children and `StackChild` children are both wrapped in a `\"wsx--stack--child\"` row |\n| `...rest` | `ComponentProps<\"div\">` | All standard `<div>` attributes |\n\n`StackChild` is a marker component — wrap a child in it only to override `gap`/`align` for that one item; `Stack` reads its props and re-renders the row itself.\n\n| Prop (`StackChild`) | Type | Description |\n|------|------|-------------|\n| `align` | `\"left\"` \\| `\"right\"` \\| `\"middle\"` | Horizontal alignment override for this child only |\n\n**Class names:** `wsx--stack` on the container `<div>`; `wsx--stack--child` on each generated child row.\n\n**CSS variables:**\n\n| Variable | Default | Set by |\n|----------|---------|--------|\n| `--wsx--stack--gap` | `5mm` | `gap` on `Stack` |\n| `--wsx--stack--ml` | `auto` | `align` (`\"left\"` → `0`, else `auto`) |\n| `--wsx--stack--mr` | `auto` | `align` (`\"right\"` → `0`, else `auto`) |\n\n---\n\n## DotLine\n\nA repeating dot pattern, useful for fill lines in tables of contents or forms.\n\n```tsx\n<DotLine width=\"100%\" />\n<DotLine inline width=\"4cm\" lineHeight=\"1.2em\" />\n<DotLine count={3} />\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `count` | `number` | `0` (renders 1 line) | Number of stacked dot-line rows |\n| `inline` | `boolean` | `false` | Render a single `inline-block` dot line instead of `count` block-level rows |\n| `width` | `number \\| string` | — | Width of each dot line |\n| `lineHeight` | `string` | — | Minimum height of each dot-line row |\n| `marginBottom` | `string` | — | Bottom margin of each dot-line row |\n| `...rest` | `ComponentProps<\"div\">` | — | All standard `<div>` attributes |\n\n**Class names:** `wsx--dotline` on each dot-line row `<div>`.\n\n**CSS variables:**\n\n| Variable | Default | Set by |\n|----------|---------|--------|\n| `--wsx--dotline--line-height` | `1em` | `lineHeight` |\n| `--wsx--dotline--margin-bottom` | `0.2em` | `marginBottom` |\n\n---\n\n## CodeBlock\n\nSyntax-highlighted code block using highlight.js (Atom One Dark theme by default).\n\n```tsx\n<CodeBlock language=\"typescript\" code={`const x: number = 42;`} />\n<CodeBlock language=\"python\" code=\"print('hi')\" bgColor=\"#f8fafc\" color=\"#0f172a\" />\n```\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `language` | `string` | highlight.js language identifier (e.g. `\"typescript\"`, `\"python\"`, `\"bash\"`) |\n| `code` | `string` | Source code string |\n| `bgColor` | `string` | Background color |\n| `color` | `string` | Text color |\n| `...rest` | `Omit<ComponentProps<\"code\">, \"children\">` | Forwarded to the inner `<code>` element |\n\n**Class names:** `wsx--code-block` on the outer `<pre>`. The inner `<code>` gets its highlight.js token classes from `hljs.highlight()`, not a `wsx--` class.\n\n**CSS variables:**\n\n| Variable | Default | Set by |\n|----------|---------|--------|\n| `--wsx--code-block--bg` | `#0f172a` | `bgColor` |\n| `--wsx--code-block--color` | `#cbd5e1` | `color` |\n\nRenders with `break-inside: avoid` to prevent page breaks mid-block.\n\n---\n\n## LaTeX\n\nLaTeX/chemistry equation rendering via KaTeX.\n\n```tsx\n<LaTeX displayMode>{\"E = mc^2\"}</LaTeX>\n<LaTeX tex=\"H2O\" chemical />\n<LaTeX aligned displayMode>{\"x &= a + b \\\\\\\\ y &= c + d\"}</LaTeX>\n<LaTeX numberFormat={false}>{\"1234567\"}</LaTeX>\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `tex` | `string` | — | LaTeX source (takes precedence over `children`) |\n| `children` | `string` | — | LaTeX source, used if `tex` is not set |\n| `displayMode` | `boolean` | `false` | Render as block-level (display) equation instead of inline |\n| `aligned` | `boolean` | `false` | Wrap in `\\begin{aligned}…\\end{aligned}` |\n| `chemical` | `boolean` | `false` | Wrap in `\\ce{…}` for chemical notation |\n| `numberFormat` | `boolean` | `true` | Auto-inserts thousands separators (`\\,`) into bare numbers in the source |\n| `padding` | `number \\| string` | — | Padding around the rendered equation |\n| `...rest` | `ComponentProps<\"div\">` | — | All standard `<div>` attributes |\n\n**Class names:** `wsx--latex` on the `<div>`.\n\n**CSS variables:**\n\n| Variable | Default | Set by |\n|----------|---------|--------|\n| `--wsx--latex--padding` | `2px` | `padding` |\n\n---\n\n## Chart\n\nRenders a [chart.js](https://www.chartjs.org/) chart server-side as a base64-encoded PNG `<img>` (via `@napi-rs/canvas`, no browser required).\n\n### `Chart`\n\n```tsx\nimport type { ChartConfiguration } from \"chart.js\";\nimport { Chart } from \"@weasyprint-tsx/ui\";\n\nconst config: ChartConfiguration = {\n  type: \"bar\",\n  data: {\n    labels: [\"Jan\", \"Feb\", \"Mar\"],\n    datasets: [{ label: \"Sales\", data: [12, 8, 21] }],\n  },\n};\n\n<Chart config={config} width={600} height={300} />\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `config` | `ChartConfiguration` | — | chart.js configuration object (rendered with `animation: false`, `responsive: false`) |\n| `width` | `number` | `800` | Canvas width in pixels |\n| `height` | `number` | `500` | Canvas height in pixels |\n| `...rest` | `Omit<ComponentProps<\"img\">, \"src\">` | — | All standard `<img>` attributes except `src` |\n\n**Class names:** none — plain `<img>`, only your own `className` if passed.\n\n**CSS variables:** none — plain `<img>`, no component class.\n\n---\n\n### `chartFunction`\n\nSamples a numeric function into a data array for chart datasets. Produces `sample + 1` values evaluated at `n * step` for `n` in `0..sample`.\n\n```ts\nchartFunction(func, options?)\n```\n\n| Param | Type | Default | Description |\n|-------|------|---------|-------------|\n| `func` | `(n: number) => number` | — | Function to sample |\n| `options.step` | `number` | `1` | Multiplier applied to the index before calling `func` |\n| `options.sample` | `number` | `100` | Number of intervals (yields `sample + 1` points) |\n\n```tsx\nimport { Chart, chartFunction } from \"@weasyprint-tsx/ui\";\n\n<Chart config={{\n  type: \"line\",\n  data: {\n    labels: chartFunction(n => n, { step: 0.1 }),\n    datasets: [{ label: \"sin(x)\", data: chartFunction(Math.sin, { step: 0.1 }) }],\n  },\n}} />\n```\n\n---\n\n### `labelFunction`\n\nSame signature as `chartFunction` but the sampling function may return a `number` or `string`. Use to generate axis labels.\n\n```ts\nlabelFunction(func, options?)\n```\n\n| Param | Type | Default | Description |\n|-------|------|---------|-------------|\n| `func` | `(n: number) => number \\| string` | — | Function to sample |\n| `options.step` | `number` | `1` | Multiplier applied to the index |\n| `options.sample` | `number` | `100` | Number of intervals (yields `sample + 1` values) |\n\n---\n\n## QrCode\n\nRenders a QR code server-side as a base64-encoded PNG `<img>`, wrapped in a link to the encoded URL.\n\n```tsx\n<QrCode href=\"https://example.com\" size={150} color=\"#000\" bgColor=\"#fff\" />\n```\n\n| Prop | Type | Default | Description |\n|------|------|---------|-------------|\n| `href` | `string` | — | URL to encode, and the `href` of the wrapping `<a>` |\n| `size` | `number` | `200` | Target pixel size (actual output is rounded to a whole number of QR modules) |\n| `margin` | `number` | `4` | Quiet-zone margin in pixels |\n| `color` | `string` | `\"#000\"` | Module (foreground) color |\n| `bgColor` | `string` | `\"transparent\"` | Background color |\n| `...rest` | `Omit<ComponentProps<\"img\">, \"src\">` | — | All standard `<img>` attributes except `src` |\n\n**Class names:** none — the `<a>` wrapper and `<img>` carry no `wsx--` class, only your own `className` on the `<img>` if passed.\n\n**CSS variables:** none — colors are baked into the generated PNG, not applied via CSS.\n\n---\n\n## Utilities\n\nA handful of small helpers are also exported for building custom components on top of the same conventions:\n\n| Export | Description |\n|--------|-------------|\n| `joinClasses(...classes)` | Joins class names, filtering out `undefined`/empty values |\n| `mergeStyle(base, extra)` | Merges an inline `style` prop (object or string) with an object of extra properties, dropping `null`/`undefined` entries |\n| `cssString(value)` | Wraps a string in literal double quotes for use as a CSS `content` value, or `undefined` if the input is `undefined` |\n| `toRomanNumberals(n, lower?)` / `toLowerRoman(n)` | Converts a number to Roman numerals |\n| `toAlphabetical(n, lower?)` / `toLowerAlphabetical(n)` | Converts a number to a base-26 letter sequence (`A`, `B`, … `Z`, `AA`, …) |\n","readmeFilename":"README.md"}