{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "spinner",
  "title": "Spinner",
  "description": "Spinner primitive.",
  "registryDependencies": [
    "@circle-ui/utils"
  ],
  "files": [
    {
      "path": "registry/berlin/circle-ui/spinner.tsx",
      "content": "// Generated from packages/ui/src/components/spinner.tsx\nimport * as React from \"react\";\n\nimport { cn } from \"@/registry/berlin/lib/utils\";\n\nexport type SpinnerProps = React.HTMLAttributes<HTMLSpanElement> & {\n  color?: string;\n  size?: \"sm\" | \"md\" | \"lg\";\n  width?: string;\n  height?: string;\n};\n\nexport function Spinner({\n  className,\n  color = \"black\",\n  size = \"md\",\n  width,\n  height,\n  ...props\n}: SpinnerProps) {\n  const resolvedWidth = width ?? (size === \"sm\" ? \"16px\" : size === \"lg\" ? \"32px\" : \"24px\");\n  const resolvedHeight = height ?? resolvedWidth;\n  const ringSize = `calc(${resolvedWidth} * 0.95)`;\n  const ringBorderWidth = `calc(${resolvedWidth} * 0.0625)`;\n\n  return (\n    <span\n      aria-label=\"Loading\"\n      role=\"status\"\n      className={cn(\n        \"relative inline-block\",\n        className\n      )}\n      style={{ height: resolvedHeight, width: resolvedWidth }}\n      {...props}\n    >\n      {Array.from({ length: 4 }).map((_, index) => (\n        <span\n          key={index}\n          aria-hidden=\"true\"\n          className=\"absolute inset-0 box-border block animate-spin rounded-full border-solid\"\n          style={{\n            animationDelay: `${-0.45 + index * 0.15}s`,\n            animationDuration: \"1.2s\",\n            animationIterationCount: \"infinite\",\n            animationTimingFunction: \"cubic-bezier(0.5, 0, 0.5, 1)\",\n            borderColor: `${color} transparent transparent transparent`,\n            borderWidth: ringBorderWidth,\n            height: ringSize,\n            width: ringSize\n          }}\n        />\n      ))}\n    </span>\n  );\n}\n",
      "type": "registry:ui",
      "target": "src/components/circle/ui/spinner.tsx"
    }
  ],
  "type": "registry:ui"
}