{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "loader",
  "type": "registry:component",
  "title": "Loader",
  "description": "A simple loader component for displaying loading states.",
  "dependencies": [
    "motion"
  ],
  "files": [
    {
      "path": "registry/lagos/ui/loader.tsx",
      "content": "// ./registry/lagos/ui/loader.tsx\n\nimport { cn } from \"@/lib/utils\";\nimport { AnimatePresence, motion } from \"motion/react\";\n\nconst LoaderIcon: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      width=\"267\"\n      height=\"267\"\n      fill=\"none\"\n      viewBox=\"0 0 267 267\"\n      {...props}\n    >\n      <path\n        fill=\"currentColor\"\n        fillOpacity=\"0.3\"\n        d=\"M133.5 0C207.23 0 267 59.77 267 133.5c0 73.73-59.77 133.5-133.5 133.5C59.77 267 0 207.23 0 133.5 0 59.77 59.77 0 133.5 0zm0 226.95c51.611 0 93.45-41.839 93.45-93.45 0-51.611-41.839-93.45-93.45-93.45-51.611 0-93.45 41.839-93.45 93.45 0 51.611 41.839 93.45 93.45 93.45z\"\n      ></path>\n      <path\n        fill=\"currentColor\"\n        d=\"M66.75 17.886A133.5 133.5 0 004.549 98.948l38.685 10.365A93.45 93.45 0 0186.775 52.57L66.75 17.886z\"\n      ></path>\n    </svg>\n  );\n};\n\nconst Loader: React.FC<{ loading: boolean; className?: string }> = ({\n  loading,\n  className,\n}) => {\n  return (\n    <AnimatePresence>\n      {loading && (\n        <motion.div\n          className=\"overflow-clip\"\n          initial={{ width: 0, scale: 0 }}\n          animate={{ width: loading ? \"auto\" : 0, scale: loading ? 1 : 0 }}\n          exit={{\n            width: 0,\n            scale: 0,\n          }}\n        >\n          <LoaderIcon className={cn(\"icon animate-spin\", className)} />\n        </motion.div>\n      )}\n    </AnimatePresence>\n  );\n};\n\nexport default Loader;\n",
      "type": "registry:component",
      "target": "components/ui/aevr/loader.tsx"
    }
  ]
}