{"_id":"web-doc","_rev":"6-ea1a4fc88138ea5acf9c1e2ebb0c9994","name":"web-doc","dist-tags":{"latest":"0.6.2"},"versions":{"0.3.0":{"name":"web-doc","version":"0.3.0","keywords":["document-viewer","wasm","pdf","docx","xlsx","pptx"],"license":"MIT OR Apache-2.0","_id":"web-doc@0.3.0","maintainers":[{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"}],"homepage":"https://bnku.github.io/zrimo/","bugs":{"url":"https://github.com/leonidkuznetsov18/web-doc/issues"},"bin":{"web-doc-copy-assets":"bin/copy-assets.mjs"},"dist":{"shasum":"78f40cfbe035646af98162f659320b649f7e8099","tarball":"https://registry.npmjs.org/web-doc/-/web-doc-0.3.0.tgz","fileCount":308,"integrity":"sha512-nd2kF4WmNaHu+8OJOmWqypSme1CuSc8rh/gnm1qEJg89689T/lSgWDbg7DHLWUht97jukCOAVXqlevlZfpATvw==","signatures":[{"sig":"MEUCIH4CWsF5PvOKIlmHgdkoxEE7FGcXU2u144aT4FORVACfAiEA8tgO+y+bd2NnFs4V5Y7eynKcbPQJ1cSg9+jh7U96e6w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/web-doc@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":17988162},"type":"module","_from":"file:web-doc-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=22.13.0 || >=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"},"./fonts/*":"./dist/fonts/*","./assets/*":"./dist/assets/*","./headless":{"types":"./dist/headless.d.ts","import":"./dist/headless.js"},"./workers/*":"./dist/workers/*","./styles.css":"./dist/styles.css"},"scripts":{"test":"node ../../scripts/test-viewer.mjs","build":"node ../../scripts/build-viewer.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"},"_resolved":"/home/runner/work/web-doc/web-doc/release/web-doc-0.3.0.tgz","_integrity":"sha512-nd2kF4WmNaHu+8OJOmWqypSme1CuSc8rh/gnm1qEJg89689T/lSgWDbg7DHLWUht97jukCOAVXqlevlZfpATvw==","repository":{"url":"git+https://github.com/leonidkuznetsov18/web-doc.git","type":"git","directory":"packages/viewer"},"_npmVersion":"11.19.0","description":"web-doc — embeddable browser-only document viewer with Rust/WASM adapters (a fork of Zrimo)","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"pdfjs-dist":"6.2.108","@silurus/ooxml":"0.72.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-doc_0.3.0_1788884687875_0.2038351375094858","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"web-doc","version":"0.4.0","keywords":["document-viewer","wasm","pdf","docx","xlsx","pptx"],"license":"MIT OR Apache-2.0","_id":"web-doc@0.4.0","maintainers":[{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"}],"homepage":"https://bnku.github.io/zrimo/","bugs":{"url":"https://github.com/leonidkuznetsov18/web-doc/issues"},"bin":{"web-doc-copy-assets":"bin/copy-assets.mjs"},"dist":{"shasum":"0af85bff4d384743c3eba25fad9df2888368a006","tarball":"https://registry.npmjs.org/web-doc/-/web-doc-0.4.0.tgz","fileCount":310,"integrity":"sha512-CyeOZy8KXqn94NNdGAYslBcTi08aMf0uhq8QJVhMUpZEjcz0zFl4H3HCvCMz2Jm7q8Foh9ucuTd1HzxJ/6s64Q==","signatures":[{"sig":"MEYCIQDt9vSOGC8AXaJlEFQUCOcm0tdX7EF0n2/QnmPoGejr4gIhAPzzzde/DBH8q7AYQqM443CxzUC1cvhpcD1ZMzK4Wn3e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/web-doc@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18004376},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=22.13.0 || >=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"},"./fonts/*":"./dist/fonts/*","./assets/*":"./dist/assets/*","./headless":{"types":"./dist/headless.d.ts","import":"./dist/headless.js"},"./workers/*":"./dist/workers/*","./styles.css":"./dist/styles.css"},"gitHead":"82f81c9863e98d17fa5332a4640f783371e3188d","scripts":{"test":"node ../../scripts/test-viewer.mjs","build":"node ../../scripts/build-viewer.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"},"repository":{"url":"git+https://github.com/leonidkuznetsov18/web-doc.git","type":"git","directory":"packages/viewer"},"_npmVersion":"11.19.1","description":"web-doc — embeddable browser-only document viewer with Rust/WASM adapters (a fork of Zrimo)","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"fuse.js":"7.5.0","pdfjs-dist":"6.2.108","@silurus/ooxml":"0.72.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-doc_0.4.0_1789202116625_0.05224777551160864","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"web-doc","version":"0.5.0","keywords":["document-viewer","wasm","pdf","docx","xlsx","pptx"],"license":"MIT OR Apache-2.0","_id":"web-doc@0.5.0","maintainers":[{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"}],"homepage":"https://bnku.github.io/zrimo/","bugs":{"url":"https://github.com/leonidkuznetsov18/web-doc/issues"},"bin":{"web-doc-copy-assets":"bin/copy-assets.mjs"},"dist":{"shasum":"508164b49ca045314919a12d0a5c8f7dd9ef222a","tarball":"https://registry.npmjs.org/web-doc/-/web-doc-0.5.0.tgz","fileCount":314,"integrity":"sha512-9ITiOD0nQMpatrhsbcz2j+k6BPjPvAwUjvhOK4+TOzTPVudYZtyhlZd/krErBm+/7OciV61T8gS/C9p16dChPA==","signatures":[{"sig":"MEYCIQDA5GZlViMW9UCpu8qlEdusRnYZ4T4dU+hOMiqesd7kSQIhAI6n4gIxzTCFBjY1EEfT4t6F262Y13OxkQdZMDPvs0rK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/web-doc@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18014702},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=22.13.0 || >=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"},"./fonts/*":"./dist/fonts/*","./assets/*":"./dist/assets/*","./headless":{"types":"./dist/headless.d.ts","import":"./dist/headless.js"},"./workers/*":"./dist/workers/*","./styles.css":"./dist/styles.css"},"gitHead":"b48e6c48b0edd9e65e8d29b8a7abcced34bde512","scripts":{"test":"node ../../scripts/test-viewer.mjs","build":"node ../../scripts/build-viewer.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"},"repository":{"url":"git+https://github.com/leonidkuznetsov18/web-doc.git","type":"git","directory":"packages/viewer"},"_npmVersion":"11.19.1","description":"web-doc — embeddable browser-only document viewer with Rust/WASM adapters (a fork of Zrimo)","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"fuse.js":"7.5.0","pdfjs-dist":"6.2.108","@silurus/ooxml":"0.72.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-doc_0.5.0_1789211002522_0.16519665827238783","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"web-doc","version":"0.6.0","keywords":["document-viewer","wasm","pdf","docx","xlsx","pptx"],"license":"MIT OR Apache-2.0","_id":"web-doc@0.6.0","maintainers":[{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"}],"homepage":"https://bnku.github.io/zrimo/","bugs":{"url":"https://github.com/leonidkuznetsov18/web-doc/issues"},"bin":{"web-doc-copy-assets":"bin/copy-assets.mjs"},"dist":{"shasum":"429b1ce851d69b7ded6bf183df6205abf2e3d638","tarball":"https://registry.npmjs.org/web-doc/-/web-doc-0.6.0.tgz","fileCount":321,"integrity":"sha512-TZYtwQ8aZ4hSFGjC+ZVQHjywAz3exOgsZngtdVSGcezQFYwvA5UJM6Oeeg99ohORd/E6aEtLYLazPzJthfr+Og==","signatures":[{"sig":"MEUCIFo43GSlcf/+tiSN6kvOhY3IhyRaIyM5lK7CwzyoPtIIAiEAyrW2WxmrFovUj2CvjwYNXYFPvF47VxKSENuho5Cx9Tk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/web-doc@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18084599},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=22.13.0 || >=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"},"./fonts/*":"./dist/fonts/*","./assets/*":"./dist/assets/*","./headless":{"types":"./dist/headless.d.ts","import":"./dist/headless.js"},"./workers/*":"./dist/workers/*","./styles.css":"./dist/styles.css"},"gitHead":"4896c87da4b995923ac081624484a20a06d18c01","scripts":{"test":"node ../../scripts/test-viewer.mjs","build":"node ../../scripts/build-viewer.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"},"repository":{"url":"git+https://github.com/leonidkuznetsov18/web-doc.git","type":"git","directory":"packages/viewer"},"_npmVersion":"11.19.1","description":"web-doc — embeddable browser-only document viewer with Rust/WASM adapters (a fork of Zrimo)","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"fuse.js":"7.5.0","pdfjs-dist":"6.2.108","@silurus/ooxml":"0.72.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-doc_0.6.0_1789212223469_0.42736824814060825","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"web-doc","version":"0.6.1","keywords":["document-viewer","wasm","pdf","docx","xlsx","pptx"],"license":"MIT OR Apache-2.0","_id":"web-doc@0.6.1","maintainers":[{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"}],"homepage":"https://bnku.github.io/zrimo/","bugs":{"url":"https://github.com/leonidkuznetsov18/web-doc/issues"},"bin":{"web-doc-copy-assets":"bin/copy-assets.mjs"},"dist":{"shasum":"49c23e376ccf4aedc6815431fef26c8997f4a4a1","tarball":"https://registry.npmjs.org/web-doc/-/web-doc-0.6.1.tgz","fileCount":325,"integrity":"sha512-A+lr5rARtQb8/uskLQ6KBigeuuR8gFX2BWFupJQ8m4UFWtShVKwr25XkSV58+hsMmbsvnF4tmcM+77a7f4kFIA==","signatures":[{"sig":"MEUCIBZQNJtzW389JmfT1qSEUrnLeNfAEEaLeHIsIZWuE1fzAiEAliAWU3do+QlLefz0r3TVqDLrIO6tPjEC38bV0/zn5VQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCICQQF9jVwQg8zJFRhEPin3lZH2WHU7M23uVsqsba5RZ6AiBi5O+qV9orHF4Z2vMu0vvQ6AoYsTWTHVebikPAoh4TvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/web-doc@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18091440},"type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=22.13.0 || >=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"},"./fonts/*":"./dist/fonts/*","./assets/*":"./dist/assets/*","./headless":{"types":"./dist/headless.d.ts","import":"./dist/headless.js"},"./workers/*":"./dist/workers/*","./styles.css":"./dist/styles.css"},"gitHead":"1f3db8be162aaaa7aa74125918fe04b87d3a357f","scripts":{"test":"node ../../scripts/test-viewer.mjs","build":"node ../../scripts/build-viewer.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"},"repository":{"url":"git+https://github.com/leonidkuznetsov18/web-doc.git","type":"git","directory":"packages/viewer"},"_npmVersion":"11.19.1","description":"web-doc — embeddable browser-only document viewer with Rust/WASM adapters (a fork of Zrimo)","directories":{},"sideEffects":["./dist/styles.css"],"_nodeVersion":"24.20.0","dependencies":{"fuse.js":"7.5.0","pdfjs-dist":"6.2.108","@silurus/ooxml":"0.72.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/web-doc_0.6.1_1789470872751_0.3096698008945338","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"_id":"web-doc@0.6.2","bin":{"web-doc-copy-assets":"bin/copy-assets.mjs"},"bugs":{"url":"https://github.com/leonidkuznetsov18/web-doc/issues"},"dist":{"shasum":"1581b83a2f2e0b3d41da8894761b9cd005881897","tarball":"https://registry.npmjs.org/web-doc/-/web-doc-0.6.2.tgz","fileCount":325,"integrity":"sha512-GOZknjXUSr8ZTJ3wyLCgLLjg84hnQDDr4QUGdg5MK5BCpg0MP/WWqQj5ck40PrPTt6iEjr2F03tFwKtjRr5uWA==","signatures":[{"sig":"MEYCIQDFWmpm1w7EzoMbyTbd2bqpyGiDde2CxDf2QqWiPWrI+wIhALFeHp6Hf3Encjtvk4K7A134SNNS0s3koXmxtWr7czRa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAD+d3x0WgkZn7S6hTIEbhaQ2jJu0Q1X4X+fkeIoqzgQAiEAkUBfXovRZCawu42donJqNxDm6sWvEsXlrulz+6ByZRs="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/web-doc@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":18091501},"name":"web-doc","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","browser":"./dist/index.js","engines":{"node":">=22.13.0 || >=24"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./worker":{"types":"./dist/worker.d.ts","import":"./dist/worker.js"},"./fonts/*":"./dist/fonts/*","./assets/*":"./dist/assets/*","./headless":{"types":"./dist/headless.d.ts","import":"./dist/headless.js"},"./workers/*":"./dist/workers/*","./styles.css":"./dist/styles.css"},"gitHead":"3770e6adaa5f85c7343df6ec7ca7bc41f97ae240","license":"MIT OR Apache-2.0","scripts":{"test":"node ../../scripts/test-viewer.mjs","build":"node ../../scripts/build-viewer.mjs","typecheck":"tsc -p tsconfig.json --noEmit"},"version":"0.6.2","_npmUser":{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"},"homepage":"https://bnku.github.io/zrimo/","keywords":["document-viewer","wasm","pdf","docx","xlsx","pptx"],"repository":{"url":"git+https://github.com/leonidkuznetsov18/web-doc.git","type":"git","directory":"packages/viewer"},"_npmVersion":"11.19.1","description":"web-doc — embeddable browser-only document viewer with Rust/WASM adapters (a fork of Zrimo)","directories":{},"maintainers":[{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"}],"sideEffects":["./dist/styles.css"],"_nodeVersion":"24.21.0","dependencies":{"fuse.js":"7.5.0","pdfjs-dist":"6.2.108","@silurus/ooxml":"0.72.2","@silurus/ooxml-pptx":"npm:@silurus/ooxml@0.88.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/web-doc_0.6.2_1790099145799_0.5900439842789496"}}},"time":{"created":"2026-09-08T16:24:47.693Z","modified":"2026-09-22T17:45:46.689Z","0.3.0":"2026-09-08T16:24:48.211Z","0.4.0":"2026-09-12T08:35:16.982Z","0.5.0":"2026-09-12T11:03:22.957Z","0.6.0":"2026-09-12T11:23:43.797Z","0.6.1":"2026-09-15T11:14:33.031Z","0.6.2":"2026-09-22T17:45:46.133Z"},"bugs":{"url":"https://github.com/leonidkuznetsov18/web-doc/issues"},"license":"MIT OR Apache-2.0","homepage":"https://bnku.github.io/zrimo/","keywords":["document-viewer","wasm","pdf","docx","xlsx","pptx"],"repository":{"url":"git+https://github.com/leonidkuznetsov18/web-doc.git","type":"git","directory":"packages/viewer"},"description":"web-doc — embeddable browser-only document viewer with Rust/WASM adapters (a fork of Zrimo)","maintainers":[{"name":"leonidkuznetsov","email":"gitmrche@gmail.com"}],"readme":"# web-doc\n\n**Any document. One canvas.**\n\n[Website](https://bnku.github.io/zrimo/) ·\n[Live React demo](https://bnku.github.io/zrimo/demo/) ·\n[Documentation](https://bnku.github.io/zrimo/getting-started) ·\n[GitHub](https://github.com/leonidkuznetsov18/web-doc)\n\n> web-doc is a fork of [Zrimo](https://github.com/bnku/zrimo) maintained at\n> [leonidkuznetsov18/web-doc](https://github.com/leonidkuznetsov18/web-doc).\n> It adds page-scoped search (`SearchOptions.pageRange`), an approximate page\n> hint with a fuzzy fallback (`SearchOptions.nearPage` / `fuzzy`) and is released\n> independently; the runtime API, CSS hooks (`.zrimo-ui`, `--zrimo-*`) and\n> asset layout are the same as upstream's `@zrimo/viewer`.\n\n## Why web-doc?\n\n- **One viewer for common business formats.** Open DOCX, XLSX, PPTX, legacy\n  Office, PDF, images, SVG, CSV and TSV through one TypeScript API.\n- **Use our interface or bring your own.** Mount the built-in toolbar, hide it\n  behind React controls, or render headlessly to your own canvas.\n- **Real document interactions.** Pan, zoom, fit, search, selectable text,\n  thumbnails, sheet navigation, multi-cell selection and TSV clipboard output.\n- **International documents.** Latin, Cyrillic, CJK, Arabic and supported Indic\n  scripts use application fonts, system fonts or lazy self-hosted fallbacks.\n- **Browser-private by design.** Parsers, renderers and legacy converters run\n  locally; format-specific Rust/WASM modules load only when needed.\n\n## Install\n\n```bash\nnpm install web-doc\nnpx web-doc-copy-assets public/zrimo\n```\n\nThe second command copies workers, WASM modules and optional font assets into\nyour application's public directory. Until a version is on npm, every\n[GitHub release](https://github.com/leonidkuznetsov18/web-doc/releases) carries\nthe same tarball (`web-doc-x.y.z.tgz`, with `SHA256SUMS`), which can be\npinned by URL instead.\n\n## Quick start\n\n```ts\nimport { ViewerClient } from \"web-doc\";\nimport \"web-doc/styles.css\";\n\nconst client = ViewerClient.create({\n  assetBaseUrl: new URL(\"/zrimo/\", location.href),\n});\n\nconst viewer = client.createViewer({\n  container: document.querySelector(\"#viewer\")!,\n  ui: true,\n  fit: \"width\",\n});\n\nawait viewer.load(file, { fileName: file.name });\n\n// When the host component unmounts:\nawait viewer.destroy();\nawait client.destroy();\n```\n\nGive the host element an explicit size:\n\n```css\n#viewer {\n  width: 100%;\n  height: 100%;\n  min-height: 320px;\n}\n```\n\nSee the [installation guide](https://bnku.github.io/zrimo/getting-started) for\nframework setup, asset paths and production MIME configuration.\n\n## Choose your integration\n\n| Approach    | Configuration                            | Best for                                              |\n| ----------- | ---------------------------------------- | ----------------------------------------------------- |\n| Built-in UI | `createViewer({ container, ui: true })`  | A complete viewer with minimal host code              |\n| Custom UI   | `createViewer({ container, ui: false })` | React/Vue/Svelte controls around the managed viewport |\n| Headless    | `web-doc/headless`                       | Custom canvas rendering and application-owned layout  |\n\nThe [live React demo](https://bnku.github.io/zrimo/demo/) shows the built-in UI,\na fully custom React toolbar and the headless API side by side.\n\n## Supported formats\n\n| Family               | Formats                                              |\n| -------------------- | ---------------------------------------------------- |\n| Modern Office        | DOCX, DOCM, XLSX, XLSM, PPTX, PPTM, PPSX             |\n| Legacy Office        | Word 97–2003 DOC, BIFF8 XLS, PPT                     |\n| Documents and images | PDF, PNG, JPEG, WebP, GIF, BMP, multi-page TIFF, SVG |\n| Structured data      | CSV, TSV                                             |\n\nMacros and document scripts never execute. Spreadsheet formulas display their\nstored cached values. Images are rendered without OCR. Password-protected\ndocuments are not currently supported, and complex legacy Office objects may\nrender with reduced fidelity. The maintained details live in the\n[compatibility guide](https://bnku.github.io/zrimo/compatibility).\n\n## Public entry points\n\n- `web-doc` — complete API and optional built-in UI;\n- `web-doc/headless` — UI-free runtime and adapters;\n- `web-doc/worker` — worker adapter and RPC contracts;\n- `web-doc/styles.css` — built-in UI styles;\n- `web-doc/assets/*`, `/workers/*`, `/fonts/*` — explicit runtime assets.\n\nStart with the [API reference](https://bnku.github.io/zrimo/api/reference),\n[UI guide](https://bnku.github.io/zrimo/ui) or\n[framework integrations](https://bnku.github.io/zrimo/integrations).\n\n## Browser support\n\nZrimo targets Safari 16.4+ and the latest two stable Chrome, Edge, Firefox and\nSafari releases. Automated browser coverage runs in Chromium, Firefox and\nWebKit.\n\n## Built on open source\n\nZrimo exists thanks to the maintainers and contributors behind these projects:\n\n| Project                                                                                                                                              | License                   | Used for                                                              |\n| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | --------------------------------------------------------------------- |\n| [Office Open XML Viewer (`@silurus/ooxml`)](https://github.com/yukiyokotani/office-open-xml-viewer)                                                  | MIT                       | Rust/WASM parsing and Canvas rendering for DOCX, XLSX and PPTX        |\n| [`office_oxide`](https://github.com/yfedoseev/office_oxide)                                                                                          | MIT OR Apache-2.0         | Compound files, shared Office utilities and legacy XLS/PPT conversion |\n| [Mozilla PDF.js](https://github.com/mozilla/pdf.js)                                                                                                  | Apache-2.0                | PDF parsing, fonts, Canvas rendering, links and selectable text       |\n| [`@napi-rs/canvas`](https://github.com/Brooooooklyn/canvas)                                                                                          | MIT                       | Optional PDF.js Node dependency; not bundled into the browser runtime |\n| [`image`](https://github.com/image-rs/image) and [`tiff`](https://github.com/image-rs/image-tiff)                                                    | MIT OR Apache-2.0 / MIT   | Multi-page TIFF decoding and image output                             |\n| [`wasm-bindgen`](https://github.com/wasm-bindgen/wasm-bindgen)                                                                                       | MIT OR Apache-2.0         | JavaScript and TypeScript bindings for Rust/WASM modules              |\n| [`zip`](https://github.com/zip-rs/zip2)                                                                                                              | MIT                       | Bounded in-memory ZIP and OOXML package handling                      |\n| [Serde](https://github.com/serde-rs/serde), [`serde_json`](https://github.com/serde-rs/json) and [`thiserror`](https://github.com/dtolnay/thiserror) | MIT OR Apache-2.0         | Serialization and structured Rust errors                              |\n| [`core-js`](https://github.com/zloirock/core-js)                                                                                                     | MIT                       | Compatibility modules used by the PDF.js legacy browser build         |\n| [Noto Sans](https://github.com/notofonts/noto-fonts) and [Noto Sans CJK](https://github.com/notofonts/noto-cjk)                                      | SIL Open Font License 1.1 | Lazy self-hosted multilingual fallback fonts                          |\n\nThird-party components retain their own licenses. The npm package includes\n`THIRD_PARTY_NOTICES.md` and its font notices. The complete pinned inventory is\navailable as the repository's\n[generated SPDX SBOM](https://github.com/bnku/zrimo/blob/main/artifacts/sbom.spdx.json).\n\n## License\n\nZrimo's original source code and documentation are dual-licensed, at your\noption, under the [MIT License](LICENSE-MIT) or the\n[Apache License 2.0](LICENSE-APACHE). Copyright (c) 2026 Zrimo contributors.\n","readmeFilename":"README.md"}