import { HorizontalDirection } from '../../types'; import { HTMLAttributes, MouseEvent, ReactNode } from 'react'; import { IconName } from '../Icon'; export type BadgeState = 'default' | 'success' | 'neutral' | 'danger' | 'disabled' | 'warning' | 'info'; export type BadgeSize = 'sm' | 'md'; export type BadgeType = 'opaque' | 'solid'; export interface CommonBadgeProps extends HTMLAttributes { text: ReactNode; state?: BadgeState; size?: BadgeSize; type?: BadgeType; icon?: IconName; iconDir?: HorizontalDirection; ellipsisContent?: boolean; } export interface DismissibleBadge extends CommonBadgeProps { dismissible: true; onClose: (e: MouseEvent) => void; } export interface NonDismissibleBadge extends CommonBadgeProps { dismissible?: never; onClose?: never; } export type BadgeProps = DismissibleBadge | NonDismissibleBadge;