{"_id":"@blobatar/svelte","_rev":"6-f7fa96dd3b89e4e52e34a2dabcccd082","name":"@blobatar/svelte","dist-tags":{"latest":"2.7.0"},"versions":{"2.3.0":{"name":"@blobatar/svelte","version":"2.3.0","keywords":["blobatar","avatar","identicon","svelte","svg","deterministic"],"author":{"name":"Alain"},"license":"MIT","_id":"@blobatar/svelte@2.3.0","maintainers":[{"name":"alain00","email":"alain00.alvarez@gmail.com"}],"homepage":"https://github.com/Alain00/blobatar#readme","bugs":{"url":"https://github.com/Alain00/blobatar/issues"},"dist":{"shasum":"a847ffb6dce26fd4f848754e3465db943825746b","tarball":"https://registry.npmjs.org/@blobatar/svelte/-/svelte-2.3.0.tgz","fileCount":8,"integrity":"sha512-WxG/+Im+q6fPqtvNhYZq47lygtvq/thM0juHq+vzOBluDm3WHb92zHRwHSrbXbCFOFWZ0h3A4o+ZiwOe1eDK8w==","signatures":[{"sig":"MEUCICt+GE9PMssiAsVVH+RBU32f8AwcpoEs/jZIamqQFND7AiEA3tjmsjZZViRQsCGQaFqAjn3Tln+ztDaaE8JTWob9SHI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12334},"type":"module","types":"./src/index.d.ts","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"bdabadddac79b407d61d383dee860c8a97e5719d","scripts":{"check":"bun run typecheck","//build":"None. There is nothing to build: the published artifact is the source, and a `dist` would only be a copy of it. This package is the reason `packages/harness` measures a source-resolved adapter by what it ships rather than by a `dist` it does not have.","typecheck":"svelte-check --tsconfig ./tsconfig.json"},"_npmUser":{"name":"alain00","email":"alain00.alvarez@gmail.com"},"//exports":"Source-resolved: what ships is Svelte, not JavaScript. A Svelte component only becomes renderable code inside the consumer's own compiler, so there is no built entry for a `default` condition to point at — and none is invented. A resolver without the `svelte` condition gets a resolution error naming this package, which is the true answer, rather than a file it cannot execute. See ADR-0010.","repository":{"url":"git+https://github.com/Alain00/blobatar.git","type":"git","directory":"packages/svelte"},"_npmVersion":"10.9.3","description":"Svelte adapter for blobatar — deterministic geometric avatars.","directories":{},"_nodeVersion":"22.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.0.0","blobatar":"workspace:*","typescript":"~6","svelte-check":"^4.0.0"},"peerDependencies":{"svelte":">=5","blobatar":"2.x"},"//peerDependencies":"`blobatar` is pinned to an exact major, not `^2`. Every package in this set publishes the same version (`.changeset/config.json`), and npm does not enforce that at install time — under ADR-0008 the major names the generation, so a mixed pair is not a version skew, it is the wrong picture. `packages/harness` asserts this range.","_npmOperationalInternal":{"tmp":"tmp/svelte_2.3.0_1787231872795_0.7064881656340212","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@blobatar/svelte","version":"2.3.1","keywords":["blobatar","avatar","identicon","svelte","svg","deterministic"],"author":{"name":"Alain"},"license":"MIT","_id":"@blobatar/svelte@2.3.1","maintainers":[{"name":"alain00","email":"alain00.alvarez@gmail.com"}],"homepage":"https://github.com/Alain00/blobatar#readme","bugs":{"url":"https://github.com/Alain00/blobatar/issues"},"dist":{"shasum":"b812587c7919029b7708d2fd7e1be46aa85ad67b","tarball":"https://registry.npmjs.org/@blobatar/svelte/-/svelte-2.3.1.tgz","fileCount":8,"integrity":"sha512-ZV/kJoPEOzfDM2fTvuNYrjCC7mCy4bHsupR/tJL509he72aywm3o0oj0bynhaDocAh/2Coq0fZO0u20J2z972A==","signatures":[{"sig":"MEUCIFj2k1kjPCvYtJZiSBQgkR4nczUgJP4lY+4m1Mb56qPwAiEAjUj/0Os1G1OczW5q7jaYte5iBLOqVURsd+8lHDuSA98=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blobatar%2fsvelte@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12334},"type":"module","types":"./src/index.d.ts","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"ddef55dd06dca54274cf525b47fdec37a79d09c4","scripts":{"check":"bun run typecheck","//build":"None. There is nothing to build: the published artifact is the source, and a `dist` would only be a copy of it. This package is the reason `packages/harness` measures a source-resolved adapter by what it ships rather than by a `dist` it does not have.","typecheck":"svelte-check --tsconfig ./tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52252056-749a-4e9d-98bb-e82ae414244f"}},"//exports":"Source-resolved: what ships is Svelte, not JavaScript. A Svelte component only becomes renderable code inside the consumer's own compiler, so there is no built entry for a `default` condition to point at — and none is invented. A resolver without the `svelte` condition gets a resolution error naming this package, which is the true answer, rather than a file it cannot execute. See ADR-0010.","repository":{"url":"git+https://github.com/Alain00/blobatar.git","type":"git","directory":"packages/svelte"},"_npmVersion":"12.0.2","description":"Svelte adapter for blobatar — deterministic geometric avatars.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.0.0","blobatar":"workspace:*","typescript":"~6","svelte-check":"^4.0.0"},"peerDependencies":{"svelte":">=5","blobatar":"2.x"},"//peerDependencies":"`blobatar` is pinned to an exact major, not `^2`. Every package in this set publishes the same version (`.changeset/config.json`), and npm does not enforce that at install time — under ADR-0008 the major names the generation, so a mixed pair is not a version skew, it is the wrong picture. `packages/harness` asserts this range.","_npmOperationalInternal":{"tmp":"tmp/svelte_2.3.1_1787247327275_0.08944633769697052","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@blobatar/svelte","version":"2.4.0","keywords":["blobatar","avatar","identicon","svelte","svg","deterministic"],"author":{"name":"Alain"},"license":"MIT","_id":"@blobatar/svelte@2.4.0","maintainers":[{"name":"alain00","email":"alain00.alvarez@gmail.com"}],"homepage":"https://github.com/Alain00/blobatar#readme","bugs":{"url":"https://github.com/Alain00/blobatar/issues"},"dist":{"shasum":"cdecc04d7e8148256c90f4a1cbea32dbec3877b2","tarball":"https://registry.npmjs.org/@blobatar/svelte/-/svelte-2.4.0.tgz","fileCount":8,"integrity":"sha512-rGLUjsqvAVN0oHRYXYp14rVkyPJ26l8k+aCXFveriKl42r4Z5tGW9TRwhnDD5aypDYd3y+5Ttyg9hPFWfZrNQA==","signatures":[{"sig":"MEUCIQDABlxKBl/5cxaAKU0Qfjp1CT4+Hed3s/qdbRkEYzgB8AIgM567MKtGA+bX7/iCxvpfgMiB7Bbs9PiOHNWaGM/PhKA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blobatar%2fsvelte@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12334},"type":"module","types":"./src/index.d.ts","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"16faea0a938f85e0d7612724aafadf98909739e4","scripts":{"check":"bun run typecheck","//build":"None. There is nothing to build: the published artifact is the source, and a `dist` would only be a copy of it. This package is the reason `packages/harness` measures a source-resolved adapter by what it ships rather than by a `dist` it does not have.","typecheck":"svelte-check --tsconfig ./tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52252056-749a-4e9d-98bb-e82ae414244f"}},"//exports":"Source-resolved: what ships is Svelte, not JavaScript. A Svelte component only becomes renderable code inside the consumer's own compiler, so there is no built entry for a `default` condition to point at — and none is invented. A resolver without the `svelte` condition gets a resolution error naming this package, which is the true answer, rather than a file it cannot execute. See ADR-0010.","repository":{"url":"git+https://github.com/Alain00/blobatar.git","type":"git","directory":"packages/svelte"},"_npmVersion":"12.0.2","description":"Svelte adapter for blobatar — deterministic geometric avatars.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.0.0","blobatar":"workspace:*","typescript":"~6","svelte-check":"^4.0.0"},"peerDependencies":{"svelte":">=5","blobatar":"2.x"},"//peerDependencies":"`blobatar` is pinned to an exact major, not `^2`. Every package in this set publishes the same version (`.changeset/config.json`), and npm does not enforce that at install time — under ADR-0008 the major names the generation, so a mixed pair is not a version skew, it is the wrong picture. `packages/harness` asserts this range.","_npmOperationalInternal":{"tmp":"tmp/svelte_2.4.0_1787316803598_0.828082087845198","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@blobatar/svelte","version":"2.5.0","keywords":["blobatar","avatar","identicon","svelte","svg","deterministic"],"author":{"name":"Alain"},"license":"MIT","_id":"@blobatar/svelte@2.5.0","maintainers":[{"name":"alain00","email":"alain00.alvarez@gmail.com"}],"homepage":"https://github.com/Alain00/blobatar#readme","bugs":{"url":"https://github.com/Alain00/blobatar/issues"},"dist":{"shasum":"2afe2bfc7a477b6991e61ac731a8227139baf0d0","tarball":"https://registry.npmjs.org/@blobatar/svelte/-/svelte-2.5.0.tgz","fileCount":8,"integrity":"sha512-zrAcYy5BmCiw3NkvCvEpbaKUUQaBtU+PJ+x3bYLopS7nqTZQzH+1WDxZJb3oAxgeOFI9+s8AmGIyg1qhldN1Kg==","signatures":[{"sig":"MEQCIFyVgWExQr2OBS6FBq6waQKTaJVH4gm8DLrAxGrBWGpBAiBLU1oJO0pogKwCq7KmVkUQ084u0bpUhwy3sG0IaxJ3wQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blobatar%2fsvelte@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12334},"type":"module","types":"./src/index.d.ts","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"8fbeea90385311c9d9d6db851f7c6508184dd069","scripts":{"check":"bun run typecheck","//build":"None. There is nothing to build: the published artifact is the source, and a `dist` would only be a copy of it. This package is the reason `packages/harness` measures a source-resolved adapter by what it ships rather than by a `dist` it does not have.","typecheck":"svelte-check --tsconfig ./tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52252056-749a-4e9d-98bb-e82ae414244f"}},"//exports":"Source-resolved: what ships is Svelte, not JavaScript. A Svelte component only becomes renderable code inside the consumer's own compiler, so there is no built entry for a `default` condition to point at — and none is invented. A resolver without the `svelte` condition gets a resolution error naming this package, which is the true answer, rather than a file it cannot execute. See ADR-0010.","repository":{"url":"git+https://github.com/Alain00/blobatar.git","type":"git","directory":"packages/svelte"},"_npmVersion":"12.0.2","description":"Svelte adapter for blobatar — deterministic geometric avatars.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.0.0","blobatar":"workspace:*","typescript":"~6","svelte-check":"^4.0.0"},"peerDependencies":{"svelte":">=5","blobatar":"2.x"},"//peerDependencies":"`blobatar` is pinned to an exact major, not `^2`. Every package in this set publishes the same version (`.changeset/config.json`), and npm does not enforce that at install time — under ADR-0008 the major names the generation, so a mixed pair is not a version skew, it is the wrong picture. `packages/harness` asserts this range.","_npmOperationalInternal":{"tmp":"tmp/svelte_2.5.0_1787506096152_0.13835005864054195","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@blobatar/svelte","version":"2.6.0","keywords":["blobatar","avatar","identicon","svelte","svg","deterministic"],"author":{"name":"Alain"},"license":"MIT","_id":"@blobatar/svelte@2.6.0","maintainers":[{"name":"alain00","email":"alain00.alvarez@gmail.com"}],"homepage":"https://github.com/Alain00/blobatar#readme","bugs":{"url":"https://github.com/Alain00/blobatar/issues"},"dist":{"shasum":"c2746a50c2fcf187729eaa03e55b14816435bc06","tarball":"https://registry.npmjs.org/@blobatar/svelte/-/svelte-2.6.0.tgz","fileCount":8,"integrity":"sha512-UKG4/SS2qrg73hXc8BBGDZKxHLYQrSuQGsONbWlCBh5BfsK3QUPWR5Vpp4w96txSYJI52TTyFlyhOKUDjVb7kQ==","signatures":[{"sig":"MEUCIQCXUeULsjAtR0ysmVoerQj96F2+uRoQxqSX3aUEItXTbQIgFdvpYcOV8AILDiJ1wqqe8JD61Ro3L5uFpqyWZSq6TKU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blobatar%2fsvelte@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":12334},"type":"module","types":"./src/index.d.ts","svelte":"./src/index.js","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js"},"./package.json":"./package.json"},"gitHead":"4f00346f41e17f420e6a00bf2f12ee4d0b4c4772","scripts":{"check":"bun run typecheck","//build":"None. There is nothing to build: the published artifact is the source, and a `dist` would only be a copy of it. This package is the reason `packages/harness` measures a source-resolved adapter by what it ships rather than by a `dist` it does not have.","typecheck":"svelte-check --tsconfig ./tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52252056-749a-4e9d-98bb-e82ae414244f"}},"//exports":"Source-resolved: what ships is Svelte, not JavaScript. A Svelte component only becomes renderable code inside the consumer's own compiler, so there is no built entry for a `default` condition to point at — and none is invented. A resolver without the `svelte` condition gets a resolution error naming this package, which is the true answer, rather than a file it cannot execute. See ADR-0010.","repository":{"url":"git+https://github.com/Alain00/blobatar.git","type":"git","directory":"packages/svelte"},"_npmVersion":"12.0.2","description":"Svelte adapter for blobatar — deterministic geometric avatars.","directories":{},"_nodeVersion":"22.23.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"svelte":"^5.0.0","blobatar":"workspace:*","typescript":"~6","svelte-check":"^4.0.0"},"peerDependencies":{"svelte":">=5","blobatar":"2.x"},"//peerDependencies":"`blobatar` is pinned to an exact major, not `^2`. Every package in this set publishes the same version (`.changeset/config.json`), and npm does not enforce that at install time — under ADR-0008 the major names the generation, so a mixed pair is not a version skew, it is the wrong picture. `packages/harness` asserts this range.","_npmOperationalInternal":{"tmp":"tmp/svelte_2.6.0_1787948323320_0.7086767047891958","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@blobatar/svelte","version":"2.7.0","description":"Svelte adapter for blobatar — deterministic geometric avatars.","type":"module","exports":{".":{"types":"./src/index.d.ts","svelte":"./src/index.js"},"./gaze":{"types":"./src/gaze.d.ts","svelte":"./src/gaze.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public"},"scripts":{"//build":"None. There is nothing to build: the published artifact is the source, and a `dist` would only be a copy of it. This package is the reason `packages/harness` measures a source-resolved adapter by what it ships rather than by a `dist` it does not have.","typecheck":"svelte-check --tsconfig ./tsconfig.json","check":"bun run typecheck"},"peerDependencies":{"blobatar":"2.x","svelte":">=5"},"devDependencies":{"blobatar":"workspace:*","svelte":"^5.0.0","svelte-check":"^4.0.0","typescript":"~6"},"keywords":["blobatar","avatar","identicon","svelte","svg","deterministic"],"license":"MIT","author":{"name":"Alain"},"repository":{"type":"git","url":"git+https://github.com/Alain00/blobatar.git","directory":"packages/svelte"},"homepage":"https://github.com/Alain00/blobatar#readme","bugs":{"url":"https://github.com/Alain00/blobatar/issues"},"//exports":"Source-resolved: what ships is Svelte, not JavaScript. A Svelte component only becomes renderable code inside the consumer's own compiler, so there is no built entry for a `default` condition to point at — and none is invented. A resolver without the `svelte` condition gets a resolution error naming this package, which is the true answer, rather than a file it cannot execute. See ADR-0010.","types":"./src/index.d.ts","svelte":"./src/index.js","//peerDependencies":"`blobatar` is pinned to an exact major, not `^2`. Every package in this set publishes the same version (`.changeset/config.json`), and npm does not enforce that at install time — under ADR-0008 the major names the generation, so a mixed pair is not a version skew, it is the wrong picture. `packages/harness` asserts this range.","gitHead":"ebb7ea4808b1263629fc8fa65e2398b9cbdb6f6b","_id":"@blobatar/svelte@2.7.0","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-Pf/RE5ICEUatbWloaBa4vGLRx+HRsKNN/eNCCHp1Nksgs3+3VuutpZBB61Y169fa0uMgAqPl72fAr+GcmnmtHA==","shasum":"b18ca907e93986d1ea06510505012c6f3fe988dc","tarball":"https://registry.npmjs.org/@blobatar/svelte/-/svelte-2.7.0.tgz","fileCount":10,"unpackedSize":25656,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@blobatar%2fsvelte@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIH5rHdfBpbc5PvrjG7wLMZ19yq+NfZkcMHlwvf00RhtnAiEA1HwrKXnTvGOxQz8r8Olnkxlz7mQHHCjXvc0xFk2CULM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:52252056-749a-4e9d-98bb-e82ae414244f"}},"directories":{},"maintainers":[{"name":"alain00","email":"alain00.alvarez@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/svelte_2.7.0_1788012091629_0.6123549041525047"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-20T13:17:52.694Z","modified":"2026-08-29T14:01:32.165Z","2.3.0":"2026-08-20T13:17:52.960Z","2.3.1":"2026-08-20T17:35:27.429Z","2.4.0":"2026-08-21T12:53:23.747Z","2.5.0":"2026-08-23T17:28:16.299Z","2.6.0":"2026-08-28T20:18:43.476Z","2.7.0":"2026-08-29T14:01:31.765Z"},"bugs":{"url":"https://github.com/Alain00/blobatar/issues"},"author":{"name":"Alain"},"license":"MIT","homepage":"https://github.com/Alain00/blobatar#readme","keywords":["blobatar","avatar","identicon","svelte","svg","deterministic"],"repository":{"type":"git","url":"git+https://github.com/Alain00/blobatar.git","directory":"packages/svelte"},"description":"Svelte adapter for blobatar — deterministic geometric avatars.","maintainers":[{"name":"alain00","email":"alain00.alvarez@gmail.com"}],"readme":"# @blobatar/svelte\n\nSvelte adapter for [blobatar](https://github.com/Alain00/blobatar) — deterministic geometric avatars.\n\n## Installation\n\n```sh\nbun add @blobatar/svelte blobatar\n```\n\n## Usage\n\n```svelte\n<script>\n  import { Blobatar } from \"@blobatar/svelte\";\n</script>\n\n<Blobatar name=\"username\" />\n```\n\n## Following the pointer\n\nThe eyes can track the cursor. That layer is the one part of the motion system\nthat needs JavaScript, so it is a separate subpath and costs nothing in your\nbundle unless you import it:\n\n```svelte\n<script>\n  import { Blobatar } from \"@blobatar/svelte\";\n  import { gaze } from \"@blobatar/svelte/gaze\";\n  import \"blobatar/motion.css\";\n  import \"blobatar/gaze.css\"; // required — the eyes hold still without it\n\n  const eyes = gaze({ travel: 3, target: \"pointer\" });\n</script>\n\n<Blobatar {@attach eyes} name=\"alain@example.com\" animate=\"always\" size={200} />\n```\n\nAn attachment rather than an action, and it needs Svelte 5.29 or newer: an\naction can only be written on the element it applies to, and the element here\nbelongs to `<Blobatar>`. Attachments cross that boundary, which is what makes\nthis a two-line integration instead of a reason to stop using the component.\n\n`travel` is the excursion, and it is what opts a blobatar into the layer:\n`--mo-track-travel` starts at `0px`, so a page with the stylesheet loaded and\nthe excursion set nowhere has a driver running and no eyes moving. It is in\nviewBox units — the blobatar is 100 across, so `3` is 3% of the face — and\nabout 1.5 to 4 reads well. Leave it out and the stylesheet owns it instead,\nwhich is the better route for a whole field of blobatars, since the property\ninherits, or for anything responsive:\n\n```css\n.hero .mo-eyes { --mo-track-travel: 3px; }\n```\n\nPick one, not both. `travel` is written inline on the eyes themselves, so here\nit beats a rule like that one — the opposite of what the React hook does, and\nfor a Svelte-specific reason: Svelte rewrites the `<svg>`'s whole `style`\nattribute whenever a prop changes, so a property written there would vanish the\nfirst time the `name` did.\n\nEverything in the options is read once, when the blobatar mounts. Aiming that\nchanges is `lookAt`, in an effect of your own:\n\n```svelte\nconst eyes = gaze({ travel: 3 });\n$effect(() => eyes.lookAt(watching ? \"pointer\" : \"rest\"));\n```\n\nBoth take the same things: a point in client coordinates, an element\n(`eyes.lookAt(button)`), `\"pointer\"` for the cursor, `\"rest\"` to park the eyes\nin the middle without resuming the idle glance, or `null` for nothing, which\nhands it back. The last thing asked for wins, whichever asked, and aiming\nbefore the blobatar has mounted is remembered rather than dropped — so a caret\ncan be driven straight through `lookAt` with no re-render per keystroke.\n\nHold the result in a `const`. Calling `gaze()` inline in the template rebuilds\nthe driver whenever the state it reads changes, and a new driver starts with the\neyes at centre.\n\n## What this package ships\n\nSvelte, not JavaScript. A Svelte component only becomes renderable code inside\nyour compiler, so there is no build output here and none is invented — the\npackage is reachable through the `svelte` export condition, which every Svelte\ntoolchain applies (`vite-plugin-svelte`, SvelteKit, `svelte-check`). A bundler\nconfigured without it will fail to resolve this package rather than hand you a\nfile it cannot execute.\n\nSvelte 5 is required: the component is written with runes.\n\n## Props\n\n| Prop | Type | Description |\n|------|------|-------------|\n| `name` | `string` | **Required.** Who the blobatar is for. |\n| `size` | `number` | Width and height in pixels. |\n| `animate` | `\"always\" \\| \"hover\"` | Enable animation. |\n| `background` | `string \\| false` | Background style. |\n| `palette` | `string[]` | Color palette. |\n| `hue` | `number` | Pin the hue. |\n| `tone` | `number` | Pin the tone. |\n| `normalize` | `boolean` | Normalize the name. |\n| `contrast` | `boolean` | Enable contrast. |\n| `title` | `string` | Accessible title. |\n| `expression` | `Expression` | Expression to render. |\n| `traits` | `TraitOverrides` | Override specific traits. |\n\n## License\n\nMIT\n","readmeFilename":"README.md"}