{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "slideup-button",
  "title": "Slide Up Button",
  "description": "A button with a smooth slide-up text animation on hover.",
  "dependencies": [
    "motion",
    "clsx",
    "tailwind-merge"
  ],
  "files": [
    {
      "path": "registry/chamaac/slideup-button/slideup-button.tsx",
      "content": "\"use client\";\n\nimport React from \"react\";\nimport { LazyMotion, domAnimation, m } from \"motion/react\";\nimport { cn } from \"@/lib/utils\";\n\ninterface SlideUpButtonProps {\n  children: React.ReactNode;\n  className?: string;\n  textDuration?: number;\n  cloneDuration?: number;\n  cloneDelay?: number;\n  buttonScale?: number;\n  buttonOpacity?: number;\n  onClick?: () => void;\n}\n\nconst SlideUpButton = ({\n  children,\n  className = \"bg-[#f73b20] text-white\",\n  textDuration = 0.25,\n  cloneDuration = 0.5,\n  cloneDelay = 0.12,\n  buttonScale = 0.98,\n  buttonOpacity = 0.8,\n  onClick,\n}: SlideUpButtonProps) => {\n  const buttonVariants = {\n    initial: { scale: 1 },\n    hover: { scale: buttonScale, opacity: buttonOpacity },\n  };\n\n  const textVariants = {\n    initial: { y: 0 },\n    hover: { y: \"-200%\" },\n  };\n\n  const cloneVariants = {\n    initial: { y: \"200%\", rotate: 20 },\n    hover: { y: 0, rotate: 0 },\n  };\n\n  return (\n    <LazyMotion features={domAnimation}>\n      <m.button\n        onClick={onClick}\n        variants={buttonVariants}\n        initial=\"initial\"\n        whileHover=\"hover\"\n        className={cn(\n          \"relative overflow-hidden px-6 py-3 rounded-[12px] text-[16px] leading-[1.5] cursor-pointer\",\n          className\n        )}\n      >\n        {/* container for stacked text */}\n        <m.div className=\"relative overflow-hidden\">\n          {/* ORIGINAL TEXT */}\n          <m.span\n            variants={textVariants}\n            transition={{\n              duration: textDuration,\n              ease: [0.55, 0.085, 0.68, 0.53],\n            }}\n            className=\"block\"\n          >\n            {children}\n          </m.span>\n\n          {/* CLONE TEXT */}\n          <m.span\n            variants={cloneVariants}\n            transition={{\n              duration: cloneDuration,\n              ease: [0.165, 0.84, 0.44, 1],\n              delay: cloneDelay,\n            }}\n            className=\"block absolute top-0 left-0\"\n          >\n            {children}\n          </m.span>\n        </m.div>\n      </m.button>\n    </LazyMotion>\n  );\n};\n\nexport default SlideUpButton;\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}