"use client"; import { forwardRef } from "react"; import { cn } from "@/lib/utils"; // ============================================================================= // CleanButton — Black primary, gray secondary, ghost // ============================================================================= export type CleanButtonVariant = "primary" | "secondary" | "ghost" | "outline"; export type CleanButtonSize = "sm" | "md" | "lg"; export interface CleanButtonProps extends React.ButtonHTMLAttributes { variant?: CleanButtonVariant; size?: CleanButtonSize; fullWidth?: boolean; icon?: React.ReactNode; iconRight?: React.ReactNode; } const variantClasses: Record = { primary: "bg-[#111217] text-[#fbfbfc] hover:bg-[#0b0d12] active:bg-[#1a1c24] border border-transparent shadow-[0_1px_2px_rgba(15,17,23,0.06)]", secondary: "bg-[#F0F1F4] text-[#3A3F4C] hover:bg-[#E4E6EC] active:bg-[#D4D7E0] border border-[#E4E6EC]", ghost: "bg-transparent text-[#5C6170] hover:bg-[#F3F4F7] hover:text-[#111217] active:bg-[#EBECF0] border border-transparent", outline: "bg-white text-[#3A3F4C] hover:bg-[#F7F8FA] active:bg-[#F0F1F4] border border-[#E4E6EC]", }; const sizeClasses: Record = { sm: "h-8 px-3 text-[12px] font-medium gap-1.5 rounded-lg", md: "h-10 px-4 text-[13px] font-semibold gap-2 rounded-lg", lg: "h-11 px-5 text-[14px] font-semibold gap-2 rounded-xl", }; export const CleanButton = forwardRef( ( { variant = "primary", size = "md", fullWidth = false, icon, iconRight, className, children, disabled, ...props }, ref, ) => { return ( ); }, ); CleanButton.displayName = "CleanButton";