{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "spinner",
  "type": "registry:ui",
  "title": "Spinner",
  "description": "Loading indicator with a reduced-motion opacity fallback.",
  "dependencies": [
    "lucide-react"
  ],
  "registryDependencies": [
    "https://seamui.dev/r/utils.json"
  ],
  "files": [
    {
      "path": "registry/seam/ui/spinner.tsx",
      "content": "import type * as React from \"react\"\nimport { Loader2 } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Reduced motion swaps the rotation for an opacity pulse — feedback is never\n// removed, it just stops traveling (seamui reduced-motion policy).\nfunction Spinner({\n  className,\n  ...props\n}: React.ComponentProps<typeof Loader2>) {\n  return (\n    <Loader2\n      data-slot=\"spinner\"\n      role=\"status\"\n      aria-label=\"Loading\"\n      className={cn(\n        \"size-4 animate-spin motion-reduce:animate-pulse\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\nexport { Spinner }\n",
      "type": "registry:ui",
      "target": "components/ui/spinner.tsx"
    }
  ]
}