import type React from 'react'; import type { ControlSize } from './control'; import type { IconSource } from './icon'; import type { PressableProps } from './pressable'; import type { SurfaceColor } from './surfaceColor'; export type ButtonIconSpec = IconSource; export type ButtonVariant = 'solid' | 'outline' | 'ghost' | 'soft'; export interface ButtonProps extends Omit< PressableProps, 'accessibilityLabel' | 'children' | 'style' > { children?: React.ReactNode; variant?: ButtonVariant; color?: SurfaceColor; size?: ControlSize; loading?: boolean; leadingIcon?: ButtonIconSpec; trailingIcon?: ButtonIconSpec; fullWidth?: boolean; } export interface IconButtonProps extends Omit< PressableProps, 'children' | 'style' | 'accessibilityLabel' > { icon: IconSource; accessibilityLabel: string; variant?: ButtonVariant; color?: SurfaceColor; size?: ControlSize; }