{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"spinner","title":"Spinner","description":"An animated loading indicator for pending actions and in-flight state.","dependencies":["cn","lucide-react"],"files":[{"path":"components/ui/spinner.tsx","content":"import { cn } from \"cn\"\nimport { Loader2Icon } from \"lucide-react\"\n\nfunction Spinner({\n  className,\n  variant = \"default\",\n  ...props\n}: React.ComponentProps<\"svg\"> & {\n  /** `gradient`: a closed ring whose line fades around it, 1.5px at every size. */\n  variant?: \"default\" | \"gradient\"\n}) {\n  if (variant === \"gradient\") {\n    return (\n      <svg\n        data-slot=\"spinner\"\n        data-variant=\"gradient\"\n        role=\"status\"\n        aria-label=\"Loading\"\n        viewBox=\"0 0 24 24\"\n        className={cn(\n          \"size-4 shrink-0 animate-spin rounded-full bg-[conic-gradient(color-mix(in_oklab,currentColor_5%,transparent),color-mix(in_oklab,currentColor_50%,transparent))] mask-[radial-gradient(closest-side,transparent_calc(75%-1.25px),#000_calc(75%-0.5px),#000_calc(75%+0.5px),transparent_calc(75%+1.25px))]\",\n          className\n        )}\n        {...props}\n      />\n    )\n  }\n\n  return (\n    <Loader2Icon\n      data-slot=\"spinner\"\n      role=\"status\"\n      aria-label=\"Loading\"\n      className={cn(\"size-4 animate-spin\", className)}\n      {...props}\n    />\n  )\n}\n\nexport { Spinner }\n","type":"registry:ui"}],"categories":["feedback"],"type":"registry:ui"}