{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "spinner",
  "title": "Spinner",
  "description": "Loading indicator.",
  "dependencies": [
    "lucide-react@^1.48.0"
  ],
  "files": [
    {
      "path": "registry/rapid/ui/spinner/spinner.tsx",
      "content": "import { Loader2Icon } from 'lucide-react'\nimport { cn } from '@/lib/utils'\n\n/**\n * An animated loading indicator, announced as a status named \"Loading\".\n *\n * Pass an `aria-label` to translate or specify the name: this package carries no translations, so \"Loading\" is only\n * an English fallback. Pass `aria-hidden` when visible text next to the spinner already says what is happening; the\n * spinner is then decorative and has no role or name.\n */\nfunction Spinner({\n\tclassName,\n\trole = 'status',\n\t'aria-hidden': ariaHidden,\n\t'aria-label': ariaLabel,\n\t'aria-labelledby': ariaLabelledBy,\n\t...props\n}: React.ComponentProps<'svg'>) {\n\tconst hidden = ariaHidden === true || ariaHidden === 'true'\n\n\treturn (\n\t\t<Loader2Icon\n\t\t\tdata-slot=\"spinner\"\n\t\t\tclassName={cn('size-4 animate-spin', className)}\n\t\t\t{...(hidden\n\t\t\t\t? { 'aria-hidden': true }\n\t\t\t\t: {\n\t\t\t\t\t\trole,\n\t\t\t\t\t\t'aria-label': ariaLabel ?? (ariaLabelledBy ? undefined : 'Loading'),\n\t\t\t\t\t\t'aria-labelledby': ariaLabelledBy,\n\t\t\t\t\t})}\n\t\t\t{...props}\n\t\t/>\n\t)\n}\n\nexport { Spinner }\n",
      "type": "registry:ui",
      "target": "components/ui/spinner.tsx"
    }
  ],
  "meta": {
    "new": true
  },
  "type": "registry:ui"
}