{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "spinner",
  "title": "Spinner",
  "description": "An indeterminate activity indicator for short waits when the system is working and the result is on its way.",
  "dependencies": [],
  "registryDependencies": [
    "https://www.prfct.dev/r/utils.json",
    "https://www.prfct.dev/r/locale.json"
  ],
  "files": [
    {
      "path": "components/ui/spinner.tsx",
      "content": "\"use client\"\n\nimport { cn } from \"@/lib/utils\"\n\nimport { useLocale } from \"@/components/ui/locale\"\n\n/**\n * An indeterminate activity indicator. Twelve tapered strokes rotate in steps,\n * which reads as \"working\" even when animation is reduced to a single frame.\n */\nfunction Spinner({\n  className,\n  label,\n  ...props\n}: React.ComponentProps<\"svg\"> & { label?: string }) {\n  const { messages } = useLocale()\n  return (\n    <svg\n      data-slot=\"spinner\"\n      role=\"status\"\n      aria-label={label ?? messages.loading}\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke=\"currentColor\"\n      strokeWidth={2.25}\n      strokeLinecap=\"round\"\n      className={cn(\n        \"size-4 shrink-0 animate-[spin_0.9s_steps(12,end)_infinite]\",\n        className\n      )}\n      {...props}\n    >\n      {Array.from({ length: 12 }, (_, i) => (\n        <line\n          key={i}\n          x1=\"12\"\n          y1=\"3\"\n          x2=\"12\"\n          y2=\"6.5\"\n          opacity={0.14 + (i / 11) * 0.86}\n          transform={`rotate(${i * 30} 12 12)`}\n        />\n      ))}\n    </svg>\n  )\n}\n\nexport { Spinner }\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}