import React from 'react';
import Button from '@/components/ui/Button.tsx';

type IconButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
  variant?: 'primary' | 'outline' | 'ghost' | 'primary-ghost';
  size?: 'default' | 'sm' | 'lg';
  children: React.ReactNode;
  'aria-label': string;
};

const IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(
  ({ variant = 'ghost', size = 'sm', children, className, ...props }, ref) => {
    const sizeClasses = {
      default: 'h-10 w-10',
      sm: 'h-9 w-9',
      lg: 'h-12 w-12',
    };

    return (
      <Button
        ref={ref}
        variant={variant}
        size={size}
        className={`p-0 ${sizeClasses[size]} ${className}`}
        {...props}
      >
        {children}
      </Button>
    );
  }
);

IconButton.displayName = 'IconButton';

export default IconButton;
