/** * **Deprecated — moved to `@blobatar/vue`.** * * This entry point still works and still renders exactly what it always did. * It is frozen, not maintained in parallel: `@blobatar/vue` re-exports this * component, so the two are the same object and cannot drift. * * ```sh * bunx blobatar-codemod . * bun add @blobatar/vue * ``` * * Removed in v3. Nothing else about the component changes when you move — same * props, same output, only the specifier. * * The reason it is still here rather than deleted: removing it is breaking, and * a break costs a major, and a major is how a consumer opts into their users' * faces changing (ADR-0008). Spending one on a repackaging would force every * consumer to take a new generation to get a new import path. So the two travel * separately, and this subpath waits for the major that was going to happen * anyway. */ import { computed, defineComponent, h, type CSSProperties, type PropType, } from "vue"; import { serializeVars, type Animate } from "./animate"; import { _parts, type BlobatarOptions } from "./blobatar"; import type { Palette } from "./color"; import type { Expression } from "./expression"; import type { TraitOverrides } from "./traits"; import { blobatarUri } from "./uri"; /** * Vue 3 adapter: the same two rendering modes as `blobatar/react`, behind the * same props. * * Static blobatars render as an ``: a list of a few hundred is exactly the * case where you do not want extra DOM nodes per screen, and nothing here uses * `currentColor`, so inline SVG would buy nothing. * * Animated blobatars cannot. Content inside an `` is an isolated, * non-interactive document — `:hover` never fires inside it and host-page CSS * cannot reach the shapes — so `animate` switches to inline SVG and costs * roughly a dozen nodes per blobatar. That trade is the reason animation is * opt-in rather than a default. See `react.tsx` for the full argument; none of * it is framework-specific. * * A render function rather than a template or an SFC: the same `setup()` then * works in `