import { IconName } from '../../Icons';
import {
  ButtonIconOptions,
  CommonJsButtonOptions,
  CommonNavigationButtonOptions,
} from '../Button.model';

export type ButtonProps =
  | (NavigationButtonProps | ContextButtonProps) & {
      /** Optional button's height (default: 50px) */
      width?: string | number;
      /** Optional button's height (default: 50px) */
      height?: string | number;
      /** Optional icon (default: IconName.ChevronRight) */
      icon?: IconName;
    };

/**
 * Button options for icon buttons with navigation
 */
export interface NavigationButtonProps
  extends CommonNavigationButtonOptions,
    Pick<ButtonIconOptions, 'icon' | 'customIcon'> {}

/**
 * Button options for icon buttons with JS handlers
 */
export interface ContextButtonProps
  extends CommonJsButtonOptions,
    Pick<ButtonIconOptions, 'icon' | 'customIcon'> {}
