{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"spinner","type":"registry:ui","title":"Spinner","description":"An animated indicator for loading states.","dependencies":["class-variance-authority","lucide-react"],"registryDependencies":["https://dashral.com/r/utils.json"],"files":[{"path":"registry/dashral/spinner.tsx","type":"registry:file","target":"components/dashral/spinner.tsx","content":"import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Loader2 } from \"lucide-react\"\n\nimport { cn } from \"./lib/utils\"\n\nconst spinnerVariants = cva(\"animate-spin motion-reduce:animate-[spin_1.5s_linear_infinite]\", {\n  variants: {\n    size: {\n      sm: \"size-4\",\n      default: \"size-6\",\n      lg: \"size-8\",\n      xl: \"size-12\",\n    },\n  },\n  defaultVariants: {\n    size: \"default\",\n  },\n})\n\nfunction Spinner({\n  className,\n  size,\n  label = \"Loading\",\n  ...props\n}: React.ComponentProps<\"svg\"> & VariantProps<typeof spinnerVariants> & { label?: string }) {\n  return (\n    <Loader2\n      data-slot=\"spinner\"\n      role=\"status\"\n      aria-label={label}\n      className={cn(spinnerVariants({ size }), className)}\n      {...props}\n    />\n  )\n}\n\nexport { Spinner, spinnerVariants }\n"}]}