import { forwardRef, type ButtonHTMLAttributes, type ReactNode } from 'react'; import { cn } from '@/utils/classNames'; export interface IconButtonProps extends ButtonHTMLAttributes { readonly label: string; readonly icon: ReactNode; readonly size?: 'sm' | 'md' | 'lg'; readonly variant?: 'solid' | 'ghost' | 'outline'; } const sizeClasses = { sm: 'size-9 rounded-xl', md: 'size-10 rounded-xl', lg: 'size-12 rounded-2xl' } as const; const variantClasses = { solid: 'border-border/80 bg-elevated text-foreground hover:border-accent/45 hover:bg-accent/12', ghost: 'border-transparent bg-transparent text-muted hover:bg-elevated/75 hover:text-foreground', outline: 'border-border/80 bg-transparent text-foreground hover:border-accent/55 hover:bg-accent/10' } as const; export const IconButton = forwardRef(function IconButton( { className, icon, label, size = 'md', type = 'button', variant = 'ghost', ...props }, ref, ) { return ( ); });