{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "skeleton",
  "title": "Skeleton",
  "description": "Loading placeholder on the ai2 surface-3 token with 3 shapes (line, circle, rect) and 2 animations (pulse, none). Style dimensions via className.",
  "registryDependencies": [
    "@ai2/tokens"
  ],
  "files": [
    {
      "path": "registry/ai2/ui/skeleton.tsx",
      "content": "import type * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst skeletonVariants = cva(\"bg-surface-3\", {\n  variants: {\n    shape: {\n      line: \"h-4 w-full rounded-md\",\n      circle: \"aspect-square rounded-full\",\n      rect: \"rounded-md\",\n    },\n    animation: {\n      pulse: \"animate-pulse motion-reduce:animate-none\",\n      none: \"\",\n    },\n  },\n  defaultVariants: { shape: \"rect\", animation: \"pulse\" },\n})\n\ninterface SkeletonProps\n  extends React.ComponentProps<\"div\">,\n    VariantProps<typeof skeletonVariants> {}\n\nfunction Skeleton({ className, shape, animation, ...props }: SkeletonProps) {\n  return (\n    <div\n      data-slot=\"skeleton\"\n      className={cn(skeletonVariants({ shape, animation, className }))}\n      {...props}\n    />\n  )\n}\n\nexport { Skeleton, skeletonVariants, type SkeletonProps }\n",
      "type": "registry:ui"
    }
  ],
  "docs": "Compose multiple Skeletons to mirror the shape of the content that is loading.",
  "categories": [
    "display",
    "feedback"
  ],
  "type": "registry:ui"
}