{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "components-skeleton",
  "type": "registry:component",
  "title": "Skeleton",
  "description": "A placeholder block that reserves the box content will paint",
  "author": "sudo-kw <https://github.com/sudo-kw>",
  "dependencies": [
    "@gpuix/native@0.11.0",
    "@gpuix/react@0.11.0"
  ],
  "registryDependencies": [
    "https://gpuixui.sudokw.com/gpuix-primitives.json"
  ],
  "files": [
    {
      "path": "packages/components/src/skeleton.tsx",
      "target": "@ui/gpuixui/components/skeleton.tsx",
      "type": "registry:component",
      "content": "/** @jsxImportSource @gpuix/react */\nimport {\n  Skeleton as PrimitiveSkeleton,\n  type SkeletonProps as PrimitiveSkeletonProps,\n} from \"../primitives/skeleton.js\";\n\nexport interface SkeletonProps extends Omit<\n  PrimitiveSkeletonProps,\n  \"reducedMotion\"\n> {\n  readonly animate?: boolean;\n}\n\nexport const Skeleton = ({ animate, ...rest }: SkeletonProps) => (\n  <PrimitiveSkeleton\n    {...rest}\n    reducedMotion={animate === false ? true : undefined}\n  />\n);\n\nexport const skeletonMeta = {\n  name: \"Skeletons\",\n  tier: 1,\n  status: \"done\",\n  gpuixSupport: \"partial\",\n  limitations: [\n    \"No shimmer sweep: the runtime animates opacity, so the pulse is a two-frame step\",\n    \"The reduced-motion preference comes from the app's `MotionProvider`; the runtime exposes no query of its own\",\n    \"A side that is not a paintable length (a `NaN` measurement, a stored blank) takes its default rather than painting no box\",\n  ],\n  docs: \"docs/skeleton.mdx\",\n  example: \"examples/skeleton.example.tsx\",\n  testFile: \"src/behaviour/skeleton.test.tsx\",\n} as const;\n"
    }
  ],
  "docs": "[Skeleton](https://gpuixui.sudokw.com/components/skeleton) — These are GPUix native components: the files render through GPUix's reconciler against `@gpuix/react`, not the DOM, and need the per-platform `@gpuix/native` binding. The CLI installs the `@gpuixui/*` runtime the components import as registry items, so the copied tree resolves on its own; wrap it in `ThemeProvider` before it renders.",
  "meta": {
    "url": "/components/skeleton",
    "kind": "component",
    "runtime": "gpuix",
    "registry": "gpuixui"
  }
}