/**
* **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 `