{"_id":"@arena.ai/faster-latex-dom","_rev":"3-602b3ed2617221585ee3df06b31a8c35","name":"@arena.ai/faster-latex-dom","dist-tags":{"placeholder":"0.0.0","latest":"0.2.1"},"versions":{"0.0.0":{"name":"@arena.ai/faster-latex-dom","version":"0.0.0","license":"Apache-2.0","_id":"@arena.ai/faster-latex-dom@0.0.0","maintainers":[{"name":"matthova","email":"matthova87@gmail.com"}],"homepage":"https://github.com/Arena-OSS/faster-latex#readme","bugs":{"url":"https://github.com/Arena-OSS/faster-latex/issues"},"dist":{"shasum":"a7c5217ad60639bf54bb7c1863649dd3b042467e","tarball":"https://registry.npmjs.org/@arena.ai/faster-latex-dom/-/faster-latex-dom-0.0.0.tgz","fileCount":4,"integrity":"sha512-lzNRK1fduvytOYksVS26AmxUpiHt3DrkbeqLSI4GYb6S8A+ni7jMdwkD8iUum1pI6+XsyNRwBBTzSutakjxGvQ==","signatures":[{"sig":"MEYCIQCigPdKxeTB63H534/BJXBmxK5eiJx7Lq0qnZPKnT8MjgIhALuuGF7OuxEJlE5R6dJDAHjJLpgL/6unZVifTe4qn0/M","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1100},"main":"index.js","type":"module","types":"index.d.ts","_npmUser":{"name":"matthova","email":"matthova87@gmail.com"},"repository":{"url":"git+https://github.com/Arena-OSS/faster-latex.git","type":"git","directory":"sdk/dom"},"_npmVersion":"10.9.8","description":"Reserved placeholder for the faster-latex DOM adapter. Not yet released.","directories":{},"_nodeVersion":"22.22.3","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/faster-latex-dom_0.0.0_1787637197624_0.3882892249137522","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@arena.ai/faster-latex-dom","version":"0.2.0","keywords":["latex","html","mathml","wasm","incremental","renderer","dom"],"author":{"name":"Matt Hova"},"license":"Apache-2.0","_id":"@arena.ai/faster-latex-dom@0.2.0","maintainers":[{"name":"matthova","email":"matthova87@gmail.com"}],"homepage":"https://github.com/matthova/faster-latex#readme","bugs":{"url":"https://github.com/matthova/faster-latex/issues"},"dist":{"shasum":"e577140f5f68a5d7de534036efbb23e26696a3dc","tarball":"https://registry.npmjs.org/@arena.ai/faster-latex-dom/-/faster-latex-dom-0.2.0.tgz","fileCount":34,"integrity":"sha512-2BtDlQmlZN/30HCvWRCA0dTdY/gNElFNHCsf6sxTn+1sV/pR7K2xGxcQQTNt6rwRnEaZRoCaf0hHskbwMH1veg==","signatures":[{"sig":"MEUCIB59/eQlsiTdTbKZ4/l51HWkrEJqdUmgVkILtWDKDi8sAiEAi1/f9s985MqlHW7fSIQSzfiUzrmUQgFxuNyxqP8sv1w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":80688},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./server":{"types":"./dist/server.d.ts","default":"./dist/server.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/styles.js"},"./package.json":"./package.json"},"gitHead":"5f69162199849558db370ec20277e062c44eb06e","scripts":{"test":"node scripts/gen-css.mjs && tsc -p tsconfig.build.json && node --test --experimental-strip-types test/*.test.ts","build":"node scripts/gen-css.mjs && tsc -p tsconfig.build.json","prebuild":"node scripts/gen-css.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81e2bdce-8743-4cfa-a5d5-9d9f1440fff8"}},"repository":{"url":"git+https://github.com/matthova/faster-latex.git","type":"git","directory":"sdk/dom"},"_npmVersion":"12.0.2","description":"Framework-neutral DOM controller for faster-latex: WASM loading, worker lifecycle, incremental block patching, deduplicated styles, and server-side render-to-string.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"@arena.ai/faster-latex":"workspace:^"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"25.0.1","typescript":"5.7.3"},"_npmOperationalInternal":{"tmp":"tmp/faster-latex-dom_0.2.0_1787669634670_0.37779105507851507","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@arena.ai/faster-latex-dom","version":"0.2.1","description":"Framework-neutral DOM controller for faster-latex: WASM loading, worker lifecycle, incremental block patching, deduplicated styles, and server-side render-to-string.","type":"module","license":"Apache-2.0","author":{"name":"Matt Hova"},"repository":{"type":"git","url":"git+https://github.com/matthova/faster-latex.git","directory":"sdk/dom"},"homepage":"https://github.com/matthova/faster-latex#readme","bugs":{"url":"https://github.com/matthova/faster-latex/issues"},"keywords":["latex","html","mathml","wasm","incremental","renderer","dom"],"sideEffects":false,"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./styles":{"types":"./dist/styles.d.ts","default":"./dist/styles.js"},"./server":{"types":"./dist/server.d.ts","default":"./dist/server.js"},"./package.json":"./package.json"},"dependencies":{"@arena.ai/faster-latex":"^0.3.0"},"devDependencies":{"jsdom":"25.0.1","typescript":"5.7.3"},"publishConfig":{"access":"public","provenance":false},"scripts":{"prebuild":"node scripts/gen-css.mjs","build":"node scripts/gen-css.mjs && tsc -p tsconfig.build.json","test":"node scripts/gen-css.mjs && tsc -p tsconfig.build.json && node --test --experimental-strip-types test/*.test.ts"},"_id":"@arena.ai/faster-latex-dom@0.2.1","_integrity":"sha512-4ByQvRcPlCsVO84MfI0s5nXXBFad8io3BuXLXh/b8dyALvMJ/p0MhpqNohQ+PGH8mqxcSsa5evbhlciE4y1Vxg==","_resolved":"/tmp/fl-release-XQxopk/arena.ai-faster-latex-dom-0.2.1.tgz","_from":"file:/tmp/fl-release-XQxopk/arena.ai-faster-latex-dom-0.2.1.tgz","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-4ByQvRcPlCsVO84MfI0s5nXXBFad8io3BuXLXh/b8dyALvMJ/p0MhpqNohQ+PGH8mqxcSsa5evbhlciE4y1Vxg==","shasum":"36ae510fd9906faeb5a7100e8ce03937673d873c","tarball":"https://registry.npmjs.org/@arena.ai/faster-latex-dom/-/faster-latex-dom-0.2.1.tgz","fileCount":35,"unpackedSize":92040,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICaI/pYPNmabg4XXlefrluPS+MDmkRnI03wK0KwoEmvhAiEAssgwxDoPd/AgpU4t+MRpg5tgJdJl5y4K1H674MU7bIk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:81e2bdce-8743-4cfa-a5d5-9d9f1440fff8"}},"directories":{},"maintainers":[{"name":"matthova","email":"matthova87@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/faster-latex-dom_0.2.1_1787693309513_0.15371590581232297"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-25T05:53:17.502Z","modified":"2026-08-25T21:28:29.831Z","0.0.0":"2026-08-25T05:53:17.784Z","0.2.0":"2026-08-25T14:53:54.815Z","0.2.1":"2026-08-25T21:28:29.666Z"},"bugs":{"url":"https://github.com/matthova/faster-latex/issues"},"author":{"name":"Matt Hova"},"license":"Apache-2.0","homepage":"https://github.com/matthova/faster-latex#readme","keywords":["latex","html","mathml","wasm","incremental","renderer","dom"],"repository":{"type":"git","url":"git+https://github.com/matthova/faster-latex.git","directory":"sdk/dom"},"description":"Framework-neutral DOM controller for faster-latex: WASM loading, worker lifecycle, incremental block patching, deduplicated styles, and server-side render-to-string.","maintainers":[{"name":"matthova","email":"matthova87@gmail.com"}],"readme":"# @arena.ai/faster-latex-dom\n\nFramework-neutral DOM controller for [@arena.ai/faster-latex](https://www.npmjs.com/package/@arena.ai/faster-latex).\nIt owns everything a live LaTeX preview needs so a framework adapter (see\n[`@arena.ai/faster-latex-react`](https://www.npmjs.com/package/@arena.ai/faster-latex-react)) can be a thin\nshell:\n\n- **WASM loading + worker lifecycle**, with an automatic main-thread fallback.\n- **Incremental block patching** — applies the engine's per-keystroke splice to\n  the host's children instead of reassigning `innerHTML`, so the browser relays\n  out one block, not the whole document.\n- **Resynchronisation** — if a patch cannot be applied (the host DOM diverged),\n  it forces a full repaint rather than corrupting the tree.\n- **Deduplicated styles** and **observable render state**.\n\n```js\nimport { createRenderer } from \"@arena.ai/faster-latex-dom\";\n\nconst renderer = createRenderer(document.getElementById(\"preview\"), {\n  execution: \"auto\", // \"auto\" (worker, falling back to main) | \"worker\" | \"main\"\n  options: { packages: shimMap },\n});\n\nrenderer.subscribe((state) => {\n  // state: { status, version, warnings, packages, total, error, execution }\n});\n\ntextarea.addEventListener(\"input\", () => renderer.update(textarea.value));\n// on teardown:\nrenderer.dispose();\n```\n\nThe controller **owns the host's children** — never render into the host\nyourself.\n\n## API\n\n`createRenderer(host, config?) → Renderer`\n\n- `config.execution` — `\"auto\"` (default), `\"worker\"`, or `\"main\"`.\n- `config.options` — faster-latex `RenderOptions`, set once (not per keystroke).\n- `config.styles` — `\"auto\"` (default, installs the deduplicated article\n  stylesheet) or `\"none\"`.\n- `config.styleTarget` — where `\"auto\"` styles go (default: the host's root\n  node, so shadow-DOM hosts are styled correctly).\n- `config.onPatch(nodes, { full })` — post-paint hook (e.g. dark-mode colour\n  adaptation) called with the freshly inserted top-level elements.\n- `config.loadWorkerSession` / `config.loadEngine` — override the default\n  `@arena.ai/faster-latex/worker` / `@arena.ai/faster-latex/web` loaders (pinned build, CDN, mock).\n\n`Renderer`: `update(source)`, `reset()`, `subscribe(fn) → off`, `getState()`,\n`dispose()`.\n\n## CSP / SSR: static stylesheet\n\nFor applications that install CSS out of band (a strict Content-Security-Policy,\nor server-side rendering), the article stylesheet is exported as a static string\n— no engine initialisation required:\n\n```js\nimport { articleStylesheet } from \"@arena.ai/faster-latex-dom/styles\";\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}