"use client"; import { cn } from "@/lib/utils"; import { ButtonHTMLAttributes, forwardRef } from "react"; interface ButtonProps extends ButtonHTMLAttributes { variant?: "primary" | "secondary" | "outline" | "ghost"; size?: "sm" | "md" | "lg"; loading?: boolean; } const Button = forwardRef( ( { className, variant = "primary", size = "md", loading = false, disabled, children, ...props }, ref ) => { const baseStyles = "inline-flex items-center justify-center font-semibold transition-all duration-300 rounded-xl cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed"; const variants = { primary: "bg-orange text-white hover:bg-orange-hover hover:translate-y-[-1px] hover:shadow-lg", secondary: "bg-navy text-white hover:bg-navy-light hover:translate-y-[-1px] hover:shadow-lg", outline: "bg-transparent text-navy border-2 border-navy hover:bg-navy hover:text-white", ghost: "bg-transparent text-text-light hover:text-navy hover:bg-bg-muted", }; const sizes = { sm: "px-4 py-2 text-sm", md: "px-6 py-3 text-base", lg: "px-8 py-4 text-lg", }; return ( ); } ); Button.displayName = "Button"; export default Button;