import React from 'react';
import type { BaseComponentProps, CallbackProps } from '../types';

/**
 * Props for Button component
 * FE-TYPE-013: Fully typed component props
 */
export interface ButtonProps extends BaseComponentProps, CallbackProps {
  children: React.ReactNode;
  type?: 'button' | 'submit' | 'reset';
  disabled?: boolean;
  variant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive';
  size?: 'sm' | 'md' | 'lg';
}

export const Button = ({ 
  children, 
  onClick,
  type = 'button',
  disabled = false,
  variant = 'primary',
  size = 'md',
  className,
  ...props
}: ButtonProps) => {
  return (
    <button 
      type={type}
      onClick={onClick}
      disabled={disabled}
      className={className}
      {...props}
    >
      {children}
    </button>
  );
};
