{
  "name": "download-bounce-default",
  "type": "registry:ui",
  "tier": "free",
  "dependencies": [
    "framer-motion"
  ],
  "registryDependencies": [
    "https://www.craftui.space/r/craftui-base.json"
  ],
  "files": [
    {
      "path": "components/craftui/loaders/download-bounce/default.tsx",
      "content": "'use client';\n\nimport { motion } from 'motion/react';\n\ninterface DownloadBounceProps {\n  width?: number;\n  height?: number;\n  color?: string;\n  strokeWidth?: number;\n  isAnimating?: boolean;\n  duration?: number;\n  ease?: any;\n}\n\nexport function DownloadBounce({\n  width = 48,\n  height = 48,\n  color = 'currentColor',\n  strokeWidth = 1.5,\n  isAnimating = true,\n  duration = 1.0,\n  ease = 'easeInOut',\n}: DownloadBounceProps) {\n  return (\n    <svg\n      width={width}\n      height={height}\n      viewBox=\"0 0 24 24\"\n      fill=\"none\"\n      stroke={color}\n      strokeWidth={strokeWidth}\n      strokeLinecap=\"round\"\n      strokeLinejoin=\"round\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <motion.g\n        animate={{ y: [0, 5, 0] }}\n        transition={{\n          duration,\n          repeat: isAnimating ? Infinity : 0,\n          ease,\n          times: [0, 0.5, 1],\n        }}\n      >\n        <line x1=\"12\" y1=\"14\" x2=\"12\" y2=\"4\" />\n        <polyline points=\"9,11 12,14 15,11\" />\n      </motion.g>\n      <motion.polyline\n        points=\"5,15 5,19 19,19 19,15\"\n        animate={{ y: [0, 0, 1.5, -0.4, 0] }}\n        transition={{\n          duration,\n          repeat: isAnimating ? Infinity : 0,\n          ease: 'easeOut',\n          times: [0, 0.5, 0.65, 0.82, 1],\n        }}\n      />\n    </svg>\n  );\n}\n",
      "type": "registry:ui",
      "target": "~/components/craftui/loaders/download-bounce/default.tsx"
    }
  ],
  "meta": {
    "displayName": "Download Bounce - Download Bounce",
    "description": "Arrow continuously bounces down into the tray while download is in progress",
    "category": "loaders",
    "tags": [
      "download",
      "arrow",
      "bounce",
      "loop",
      "transfer"
    ],
    "animationType": "loop"
  }
}