import type { HTMLAttributes, ElementType } from 'react';
export interface AlertProps extends Omit, 'role'> {
children: React.ReactNode;
variant?: 'filled' | 'soft';
severity?: 'info' | 'success' | 'warning' | 'error';
size?: 'small' | 'medium' | 'large';
icon?: React.ReactNode | boolean;
title?: string;
closable?: boolean;
onClose?: () => void;
action?: React.ReactNode;
role?: 'alert' | 'alertdialog' | 'status';
autoFocus?: boolean;
ariaLive?: 'polite' | 'assertive' | 'off';
ariaAtomic?: boolean;
id?: string;
IconInfo?: ElementType;
IconSuccess?: ElementType;
IconWarning?: ElementType;
IconError?: ElementType;
IconClose?: ElementType;
}
export interface AlertIconProps {
severity: 'info' | 'success' | 'warning' | 'error';
size: 'small' | 'medium' | 'large';
IconInfo?: ElementType;
IconSuccess?: ElementType;
IconWarning?: ElementType;
IconError?: ElementType;
}
export interface CloseButtonProps {
onClick: () => void;
size: 'small' | 'medium' | 'large';
variant: 'filled' | 'soft';
severity: 'info' | 'success' | 'warning' | 'error';
IconClose?: ElementType;
}