{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "hooks-use-hover-lift",
  "type": "registry:lib",
  "title": "Use Hover Lift",
  "description": "The use-hover-lift hook.",
  "dependencies": [
    "motion"
  ],
  "files": [
    {
      "path": "lib/use-hover-lift.ts",
      "content": "import { type MotionProps, type Easing } from \"motion/react\";\n\nexport interface UseHoverLiftOptions {\n  liftDistance?: number;\n\n  addShadow?: boolean;\n\n  shadowIntensity?: number;\n\n  duration?: number;\n\n  ease?: Easing | Easing[];\n\n  scale?: number;\n}\n\nexport function useHoverLift(options: UseHoverLiftOptions = {}): MotionProps {\n  const {\n    liftDistance = 8,\n    addShadow = true,\n    shadowIntensity = 0.3,\n    duration = 0.2,\n    ease = \"easeOut\",\n    scale = 1,\n  } = options;\n\n  const shadowBlur = liftDistance * 2;\n  const shadowSpread = Math.round(liftDistance / 4);\n\n  return {\n    initial: {\n      y: 0,\n      scale: 1,\n      boxShadow: addShadow\n        ? `0 2px 4px rgba(0, 0, 0, ${shadowIntensity * 0.3})`\n        : undefined,\n    },\n    whileHover: {\n      y: -liftDistance,\n      scale,\n      boxShadow: addShadow\n        ? `0 ${shadowBlur}px ${shadowBlur + shadowSpread}px rgba(0, 0, 0, ${shadowIntensity})`\n        : undefined,\n    },\n    transition: {\n      duration,\n      ease,\n    },\n  };\n}\n",
      "type": "registry:lib"
    }
  ]
}