"use client"; import { motion } from "framer-motion"; import Link from "next/link"; interface ButtonProps { children: React.ReactNode; href?: string; onClick?: () => void; variant?: "primary" | "secondary" | "coral" | "outline"; size?: "sm" | "md" | "lg"; className?: string; external?: boolean; } const variants = { primary: "bg-bosphorus text-white hover:bg-bosphorus/90 shadow-lg shadow-bosphorus/25", secondary: "bg-deep-nazar text-white hover:bg-deep-nazar/90", coral: "bg-coral-spritz text-white hover:bg-coral-spritz/90 shadow-lg shadow-coral-spritz/25", outline: "border-2 border-deep-nazar text-deep-nazar hover:bg-deep-nazar hover:text-white", }; const sizes = { sm: "px-5 py-2.5 text-sm", md: "px-7 py-3.5 text-base", lg: "px-9 py-4 text-lg", }; export function Button({ children, href, onClick, variant = "primary", size = "md", className = "", external = false, }: ButtonProps) { const baseClasses = `inline-flex items-center justify-center font-semibold rounded-full transition-all duration-300 ${variants[variant]} ${sizes[size]} ${className}`; const motionProps = { whileHover: { scale: 1.03, y: -1 }, whileTap: { scale: 0.98 }, transition: { type: "spring" as const, stiffness: 400, damping: 17 }, }; if (href) { if (external) { return ( {children} ); } return ( {children} ); } return ( {children} ); }