{"_id":"@aspicio/svelte","_rev":"7-c0bc5a0d185f4f0522a6fab11405195f","name":"@aspicio/svelte","dist-tags":{"latest":"0.13.0"},"versions":{"0.8.0":{"name":"@aspicio/svelte","version":"0.8.0","author":"Dmitri Kochelorov <dmitri@frontsail.ai>","license":"MIT","_id":"@aspicio/svelte@0.8.0","maintainers":[{"name":"korya","email":"kochelorov.dmitri@gmail.com"}],"homepage":"https://github.com/frontsail-ai/aspicio/tree/master/packages/svelte#readme","dist":{"shasum":"236ffa21b0554b981114ec957aa10b266713afbe","tarball":"https://registry.npmjs.org/@aspicio/svelte/-/svelte-0.8.0.tgz","fileCount":7,"integrity":"sha512-h0saddj/Ej9ErTTXI4bcGp+YJtY6jnIq/rOYGSJKQIaG+9hUvV51JxgC2yhFxc23VGhldw15JRVYkjuvIvXsgA==","signatures":[{"sig":"MEQCIA0+mxyHA8SNEyZUaljlHMopcK9DV+y1U9t9EEl30uHKAiB6nb+1rQXIHibI9j/Co3nvPc51nj138MpLIWilkE6HHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14504},"type":"module","shasum":"236ffa21b0554b981114ec957aa10b266713afbe","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vp test","check":"vp check"},"_npmUser":{"name":"korya","email":"kochelorov.dmitri@gmail.com"},"_integrity":"sha512-h0saddj/Ej9ErTTXI4bcGp+YJtY6jnIq/rOYGSJKQIaG+9hUvV51JxgC2yhFxc23VGhldw15JRVYkjuvIvXsgA==","repository":{"url":"git+https://github.com/frontsail-ai/aspicio.git","type":"git","directory":"packages/svelte"},"_npmVersion":"10.8.3","description":"Svelte 5 bindings for the Aspicio DXF viewer.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@aspicio/core":"^0.8.0","@aspicio/elements":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.56.0","happy-dom":"^20.0.0","vite-plus":"0.2.4","typescript":"^7.0.2","@sveltejs/vite-plugin-svelte":"^7.2.0"},"peerDependencies":{"three":">=0.184.0 <1.0.0","svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte_0.8.0_1784659866341_0.9754062737390194","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@aspicio/svelte","version":"0.9.0","author":"Dmitri Kochelorov <dmitri@frontsail.ai>","license":"MIT","_id":"@aspicio/svelte@0.9.0","maintainers":[{"name":"korya","email":"kochelorov.dmitri@gmail.com"}],"homepage":"https://github.com/frontsail-ai/aspicio/tree/master/packages/svelte#readme","dist":{"shasum":"6821092689a14376db456225787f7fad3a6987a5","tarball":"https://registry.npmjs.org/@aspicio/svelte/-/svelte-0.9.0.tgz","fileCount":7,"integrity":"sha512-JfzYtilfqfE0wSiQJCLuT04YoBpQXLrsflj9tCvrKeSua6m2Y+4dk9CKRsZGxZAoqpKkrEXGCE4KXrr877iA/Q==","signatures":[{"sig":"MEYCIQDBrtbBwKHL/UtYn3UT0OISaE2b8/5eMXPUe/R26qQ0zQIhAO0S9SGG9JnHj/Jqz2StPccExatkh0vP5cwvGomN3gft","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14504},"type":"module","shasum":"6821092689a14376db456225787f7fad3a6987a5","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vp test","check":"vp check"},"_npmUser":{"name":"korya","email":"kochelorov.dmitri@gmail.com"},"_integrity":"sha512-JfzYtilfqfE0wSiQJCLuT04YoBpQXLrsflj9tCvrKeSua6m2Y+4dk9CKRsZGxZAoqpKkrEXGCE4KXrr877iA/Q==","repository":{"url":"git+https://github.com/frontsail-ai/aspicio.git","type":"git","directory":"packages/svelte"},"_npmVersion":"10.8.3","description":"Svelte 5 bindings for the Aspicio DXF viewer.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@aspicio/core":"^0.9.0","@aspicio/elements":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.56.0","happy-dom":"^20.0.0","vite-plus":"0.2.4","typescript":"^7.0.2","@sveltejs/vite-plugin-svelte":"^7.2.0"},"peerDependencies":{"three":">=0.184.0 <1.0.0","svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte_0.9.0_1784668367765_0.4094673208958408","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@aspicio/svelte","version":"0.10.0","author":"Dmitri Kochelorov <dmitri@frontsail.ai>","license":"MIT","_id":"@aspicio/svelte@0.10.0","maintainers":[{"name":"korya","email":"kochelorov.dmitri@gmail.com"}],"homepage":"https://github.com/frontsail-ai/aspicio/tree/master/packages/svelte#readme","dist":{"shasum":"0fbab9235eed206a343c0d832a2f97b14e48d252","tarball":"https://registry.npmjs.org/@aspicio/svelte/-/svelte-0.10.0.tgz","fileCount":7,"integrity":"sha512-XqVfHn0OV8xSVGdXu6akpsS0W3DdhZrd7Uq3Av3CW4API7XTxuFzPcxDmbvlS/qcPBPk9/ycVyg3FWKlgYd7hA==","signatures":[{"sig":"MEUCIQDO3AQRf1y7mgbvUjjpnbtrM7yqOBI+jTFswFBM0ostIQIgSoKVGraK5Uz3Rg+KglkahI6fqiLpK3baGl7NvRuYP1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14587},"type":"module","shasum":"0fbab9235eed206a343c0d832a2f97b14e48d252","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vp test","check":"vp check"},"_npmUser":{"name":"korya","email":"kochelorov.dmitri@gmail.com"},"_integrity":"sha512-XqVfHn0OV8xSVGdXu6akpsS0W3DdhZrd7Uq3Av3CW4API7XTxuFzPcxDmbvlS/qcPBPk9/ycVyg3FWKlgYd7hA==","repository":{"url":"git+https://github.com/frontsail-ai/aspicio.git","type":"git","directory":"packages/svelte"},"_npmVersion":"10.8.3","description":"Svelte 5 bindings for the Aspicio DXF viewer.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@aspicio/core":"^0.10.0","@aspicio/elements":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.56.0","happy-dom":"^20.0.0","vite-plus":"0.2.4","typescript":"^7.0.2","@sveltejs/vite-plugin-svelte":"^7.2.0"},"peerDependencies":{"three":">=0.184.0 <1.0.0","svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte_0.10.0_1784681997900_0.2315125875955646","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@aspicio/svelte","version":"0.11.0","author":"Dmitri Kochelorov <dmitri@frontsail.ai>","license":"MIT","_id":"@aspicio/svelte@0.11.0","maintainers":[{"name":"korya","email":"kochelorov.dmitri@gmail.com"}],"homepage":"https://github.com/frontsail-ai/aspicio/tree/master/packages/svelte#readme","dist":{"shasum":"908103143d1718c546d080ced8b1b6dfa4e034cf","tarball":"https://registry.npmjs.org/@aspicio/svelte/-/svelte-0.11.0.tgz","fileCount":7,"integrity":"sha512-gR3MpW0q3s4p/P/bFsffnrth0ZT9M86Ud6ALz6vrtEYaHpOyNXOgbm65rUAc9w61RAUFN7vlYcGHt1VwBW6XMw==","signatures":[{"sig":"MEYCIQDcnqTXthIpCOqF5O5JzNwnWCk4KmArpnq6C/Uflq10GAIhAPt3AKwGvnOoOVSOxN3KwWEpjEoZu9n/zSx04iu0JARl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14587},"type":"module","shasum":"908103143d1718c546d080ced8b1b6dfa4e034cf","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vp test","check":"vp check"},"_npmUser":{"name":"korya","email":"kochelorov.dmitri@gmail.com"},"_integrity":"sha512-gR3MpW0q3s4p/P/bFsffnrth0ZT9M86Ud6ALz6vrtEYaHpOyNXOgbm65rUAc9w61RAUFN7vlYcGHt1VwBW6XMw==","repository":{"url":"git+https://github.com/frontsail-ai/aspicio.git","type":"git","directory":"packages/svelte"},"_npmVersion":"10.8.3","description":"Svelte 5 bindings for the Aspicio DXF viewer.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@aspicio/core":"^0.11.0","@aspicio/elements":"^0.11.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.56.0","happy-dom":"^20.0.0","vite-plus":"0.2.4","typescript":"^7.0.2","@sveltejs/vite-plugin-svelte":"^7.2.0"},"peerDependencies":{"three":">=0.184.0 <1.0.0","svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte_0.11.0_1784773650938_0.20363228078195417","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@aspicio/svelte","version":"0.11.1","author":"Dmitri Kochelorov <dmitri@frontsail.ai>","license":"MIT","_id":"@aspicio/svelte@0.11.1","maintainers":[{"name":"korya","email":"kochelorov.dmitri@gmail.com"}],"homepage":"https://github.com/frontsail-ai/aspicio/tree/master/packages/svelte#readme","dist":{"shasum":"e3bad90e0bbd3a217cfa9b8443089a12ffee8eff","tarball":"https://registry.npmjs.org/@aspicio/svelte/-/svelte-0.11.1.tgz","fileCount":7,"integrity":"sha512-fBWPI5uL86tQZ4AU/Izfc4ylcoL97zuemGGjoKRk8saWDEmYjnugyRulb4CAYeZEa0Hbx04ccO1pjbFmaxt78w==","signatures":[{"sig":"MEQCIHaIXbpkxW6mGVqv6iR8km9oIYrKm3WK1A1RYo1ufO8iAiB3tZyF4UL7XnUAziXkj6uQq+PjjvF9B/1unprv+xD9hA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14587},"type":"module","shasum":"e3bad90e0bbd3a217cfa9b8443089a12ffee8eff","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js","default":"./src/index.js"},"./package.json":"./package.json"},"scripts":{"test":"vp test","check":"vp check"},"_npmUser":{"name":"korya","email":"kochelorov.dmitri@gmail.com"},"_integrity":"sha512-fBWPI5uL86tQZ4AU/Izfc4ylcoL97zuemGGjoKRk8saWDEmYjnugyRulb4CAYeZEa0Hbx04ccO1pjbFmaxt78w==","repository":{"url":"git+https://github.com/frontsail-ai/aspicio.git","type":"git","directory":"packages/svelte"},"_npmVersion":"10.8.3","description":"Svelte 5 bindings for the Aspicio DXF viewer.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","dependencies":{"@aspicio/core":"^0.11.1","@aspicio/elements":"^0.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.56.0","happy-dom":"^20.0.0","vite-plus":"0.2.4","typescript":"^7.0.2","@sveltejs/vite-plugin-svelte":"^7.2.0"},"peerDependencies":{"three":">=0.184.0 <1.0.0","svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte_0.11.1_1784834522562_0.662197592972344","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@aspicio/svelte","version":"0.12.0","author":"Dmitri Kochelorov <dmitri@frontsail.ai>","license":"MIT","_id":"@aspicio/svelte@0.12.0","maintainers":[{"name":"korya","email":"kochelorov.dmitri@gmail.com"}],"homepage":"https://github.com/frontsail-ai/aspicio/tree/master/packages/svelte#readme","dist":{"shasum":"e2d955fdacb3603a9e49ce9b12adcb46a1a5ddcd","tarball":"https://registry.npmjs.org/@aspicio/svelte/-/svelte-0.12.0.tgz","fileCount":11,"integrity":"sha512-9psEUSTyn7CYgP1V9irtNoXPsR1VSN5Mo1OblaUS2zzMSjw+gzi7Jv/IgnHNj8+0yJcUlKhx4TyAo2TwzQvhWA==","signatures":[{"sig":"MEQCIG1tRTF3+0kR1vCruYsb7JnaxUUw4Y/9PZ8famWFEJ2wAiBRfbWgLpQXDM+bdcT63mlBsPKKBgsUKHtFXz147cIaFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":16820},"type":"module","shasum":"e2d955fdacb3603a9e49ce9b12adcb46a1a5ddcd","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js","default":"./src/index.js"},"./formats/dxf":{"types":"./src/formats/dxf.d.ts","svelte":"./src/formats/dxf.js","default":"./src/formats/dxf.js"},"./formats/pdf":{"types":"./src/formats/pdf.d.ts","svelte":"./src/formats/pdf.js","default":"./src/formats/pdf.js"},"./package.json":"./package.json"},"scripts":{"test":"vp test","check":"vp check"},"_npmUser":{"name":"korya","email":"kochelorov.dmitri@gmail.com"},"_integrity":"sha512-9psEUSTyn7CYgP1V9irtNoXPsR1VSN5Mo1OblaUS2zzMSjw+gzi7Jv/IgnHNj8+0yJcUlKhx4TyAo2TwzQvhWA==","repository":{"url":"git+https://github.com/frontsail-ai/aspicio.git","type":"git","directory":"packages/svelte"},"_npmVersion":"10.8.3","description":"Svelte 5 bindings for the Aspicio DXF and PDF viewer.","directories":{},"sideEffects":["./src/formats/*"],"_nodeVersion":"24.3.0","dependencies":{"@aspicio/core":"^0.12.0","@aspicio/elements":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.56.0","happy-dom":"^20.0.0","vite-plus":"0.2.4","typescript":"^7.0.2","@sveltejs/vite-plugin-svelte":"^7.2.0"},"peerDependencies":{"three":">=0.184.0 <1.0.0","svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte_0.12.0_1785700845756_0.5675075862786305","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@aspicio/svelte","version":"0.13.0","description":"Svelte 5 bindings for the Aspicio DXF and PDF viewer.","homepage":"https://github.com/frontsail-ai/aspicio/tree/master/packages/svelte#readme","license":"MIT","author":"Dmitri Kochelorov <dmitri@frontsail.ai>","repository":{"type":"git","url":"git+https://github.com/frontsail-ai/aspicio.git","directory":"packages/svelte"},"type":"module","sideEffects":["./src/formats/*"],"svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js","default":"./src/index.js"},"./formats/dxf":{"types":"./src/formats/dxf.d.ts","svelte":"./src/formats/dxf.js","default":"./src/formats/dxf.js"},"./formats/pdf":{"types":"./src/formats/pdf.d.ts","svelte":"./src/formats/pdf.js","default":"./src/formats/pdf.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"scripts":{"test":"vp test","check":"vp check"},"dependencies":{"@aspicio/core":"^0.13.0","@aspicio/elements":"^0.13.0"},"devDependencies":{"@sveltejs/vite-plugin-svelte":"^7.2.0","happy-dom":"^20.11.2","svelte":"^5.56.8","typescript":"^7.0.2","vite-plus":"0.2.4"},"peerDependencies":{"svelte":"^5.0.0","three":">=0.184.0 <1.0.0"},"_id":"@aspicio/svelte@0.13.0","_integrity":"sha512-Y4DGWjys9UKMUZpoHIRf2xst0cqQ9OBg40do3Wum8OoXFdcW2MlrZG7MMMRFIOl6OlJCEpL3n7qUA3drztZKBA==","_nodeVersion":"24.3.0","_npmVersion":"10.8.3","shasum":"bae0a3047dfd7f7d9650cc5d43880ab4a13792c4","dist":{"integrity":"sha512-Y4DGWjys9UKMUZpoHIRf2xst0cqQ9OBg40do3Wum8OoXFdcW2MlrZG7MMMRFIOl6OlJCEpL3n7qUA3drztZKBA==","shasum":"bae0a3047dfd7f7d9650cc5d43880ab4a13792c4","tarball":"https://registry.npmjs.org/@aspicio/svelte/-/svelte-0.13.0.tgz","fileCount":11,"unpackedSize":17123,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICbdGtzohUjSRmDv5fwo4dlPnloYUqEz8A5/yGpBkGkkAiBfVBf72SY6dJRvPEieWN90/m5/2ZyaKqfJQaEUizNi2A=="}]},"_npmUser":{"name":"korya","email":"kochelorov.dmitri@gmail.com"},"directories":{},"maintainers":[{"name":"korya","email":"kochelorov.dmitri@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/svelte_0.13.0_1786451918528_0.5856661831967971"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-21T18:51:06.158Z","modified":"2026-08-11T12:38:38.886Z","0.8.0":"2026-07-21T18:51:06.493Z","0.9.0":"2026-07-21T21:12:47.913Z","0.10.0":"2026-07-22T00:59:58.039Z","0.11.0":"2026-07-23T02:27:31.067Z","0.11.1":"2026-07-23T19:22:02.720Z","0.12.0":"2026-08-02T20:00:45.926Z","0.13.0":"2026-08-11T12:38:38.677Z"},"author":"Dmitri Kochelorov <dmitri@frontsail.ai>","license":"MIT","homepage":"https://github.com/frontsail-ai/aspicio/tree/master/packages/svelte#readme","repository":{"type":"git","url":"git+https://github.com/frontsail-ai/aspicio.git","directory":"packages/svelte"},"description":"Svelte 5 bindings for the Aspicio DXF and PDF viewer.","maintainers":[{"name":"korya","email":"kochelorov.dmitri@gmail.com"}],"readme":"# @aspicio/svelte\n\nSvelte 5 bindings for the\n[Aspicio](https://github.com/frontsail-ai/aspicio#readme) DXF and PDF\nviewer —\nthin veneers over the framework-neutral\n[`@aspicio/elements`](../elements) web components, so Svelte, React,\nVue, and plain-HTML embeds share one implementation and one look\n(pixel-identical, verified). Ships as **raw `.svelte` source** via the\n`svelte` export condition; your bundler compiles it against your own\nSvelte version (5+). Try the viewer live at\n[aspicio.frontsail.app](https://aspicio.frontsail.app/).\n\n```bash\nnpm install @aspicio/svelte svelte three   # @aspicio/core and @aspicio/elements come along; svelte 5 and three (>=0.184) are peers\n```\n\n- `<AspicioEmbed>` — batteries included: layer list + interactive preview in\n  one component.\n- `<AspicioPreview>` — the embeddable canvas alone: pan/zoom/rotate (mouse\n  and multi-touch), animated fit, batched WebGL rendering. No chrome.\n  Providing `onhoverlayer` hit-tests the layer under the cursor.\n- `<AspicioLayerPanel>` — the ready-made layer list, identical to the demo\n  app: header with layer count, visibility checkboxes, effective-color\n  swatches, entity counts, hover-to-highlight, double-click-to-solo\n  (with a banner), and a gesture-hints footer. `theme=\"none\"` renders a\n  minimal list.\n\n## One component\n\n```svelte\n<script>\n  import { AspicioEmbed } from \"@aspicio/svelte\";\n  import \"@aspicio/svelte/formats/dxf\";\n\n  const onloaded = ({ layers, stats }) => console.log(stats.entityCount);\n</script>\n\n<!-- src also accepts File | Blob | ArrayBuffer | DXF text -->\n<AspicioEmbed srcUrl=\"/drawing.dxf\" style=\"height: 480px\" {onloaded} />\n```\n\nProps: `src`, `srcUrl`, `panel` (`left` | `right` | `none`), `theme`\n(`aspicio` | `none`), `panelStyle`, `options`, `showDownload`,\n`shortcuts`. Callback props: `onloaded`, `onloaderror`,\n`onviewerchange`, `onhoverlayer` — payloads arrive unwrapped.\n\n## The full viewer\n\n`bind:this` exposes `viewer()` — the complete `DrawingViewer` (`fitView`,\n`zoomBy`, `setLayerVisible`, `pickLayer`, `view`, `toSVG`, `toPNG`):\n\n```svelte\n<script>\n  import { AspicioEmbed } from \"@aspicio/svelte\";\n  let embed;\n</script>\n\n<AspicioEmbed bind:this={embed} srcUrl=\"/drawing.dxf\" />\n<button onclick={() => embed.viewer()?.fitView()}>Fit</button>\n```\n\n## Custom layout\n\nCompose `AspicioPreview` + `AspicioLayerPanel` yourself and hand the panel the\nviewer from `onviewerchange`; `reverseHighlightLayer` wires canvas-hover\nto the row highlight (the embed does this automatically).\n\n## Theming\n\nThe internals render in shadow DOM. Theme through `--aspicio-*` CSS\ncustom properties and `::part()` hooks — see the\n[`@aspicio/elements` README](../elements#theming) for the token and part\nlist. The theme uses IBM Plex font _stacks_ but never loads webfonts\nitself; load IBM Plex Sans/Mono in your page for the exact demo look.\n\n## Notes\n\n- Changing `src` / `srcUrl` loads the new document; the most recently\n  set source wins, and stale in-flight loads are ignored.\n- `shortcuts` keys are scoped to the **focused** embed (click it first):\n  `F` fit, `+`/`-` zoom, `R` reset rotation, `A` show all layers.\n- Because the package is uncompiled source, there is no SSR build to\n  mismatch: SvelteKit compiles it for server and client alike, and the\n  viewer is only created in the browser. See `apps/svelte-example` for a\n  full setup.\n\n## Migrating from 0.x\n\nTwo breaking changes ship together:\n\n1. **Formats are opted into by import.** Add `import \"@aspicio/svelte/formats/dxf\";` once —\n   without it every load fails with an error saying exactly that.\n2. **Format-neutral names dropped their `Dxf` prefix**: `<DxfEmbed>` / `<DxfPreview>` / `<DxfLayerPanel>` → `<AspicioEmbed>` / `<AspicioPreview>` / `<AspicioLayerPanel>`, `DxfTheme` → `AspicioTheme`, and `DxfViewer` → `DrawingViewer`.\n","readmeFilename":"README.md"}