"use client"; import { motion } from "motion/react"; import { useButtonClick } from "@/hooks/useButtonClick"; import { cls } from "@/lib/utils"; import { useStyle } from "@/components/ui/useStyle"; import ButtonArrow from "@/components/ui/ButtonArrow"; import ButtonBounce from "@/components/ui/ButtonBounce"; import ButtonBubble from "@/components/ui/ButtonBubble"; import ButtonElastic from "@/components/ui/ButtonElastic"; import ButtonExpand from "@/components/ui/ButtonExpand"; import ButtonFlip from "@/components/ui/ButtonFlip"; import ButtonMagnetic from "@/components/ui/ButtonMagnetic"; import ButtonPill from "@/components/ui/ButtonPill"; import ButtonShift from "@/components/ui/ButtonShift"; import ButtonSlide from "@/components/ui/ButtonSlide"; import ButtonStagger from "@/components/ui/ButtonStagger"; interface ButtonProps { text: string; variant?: "primary" | "secondary"; href?: string; onClick?: () => void; animate?: boolean; animationDelay?: number; className?: string; } const DefaultButton = ({ text, variant = "primary", href = "#", onClick, animate = true, animationDelay = 0, className = "" }: ButtonProps) => { const handleClick = useButtonClick(href, onClick); const button = ( {text} ); if (!animate) return button; return ( {button} ); }; const Button = (props: ButtonProps) => { const { buttonVariant } = useStyle(); switch (buttonVariant) { case "arrow": return ; case "bounce": return ; case "bubble": return ; case "elastic": return ; case "expand": return ; case "flip": return ; case "magnetic": return ; case "pill": return ; case "shift": return ; case "slide": return ; case "stagger": return ; default: return ; } }; export default Button;