import type { HTMLAttributes, ReactNode } from 'react'; export type AlertType = 'success' | 'danger' | 'warning' | 'info'; export interface BaseAlertProps extends Omit, 'children' | 'title'> { /** * Defines alert type * @default "info" */ type?: AlertType; /** * Defines if alert is removable */ removable?: boolean; /** * Handler when closing / dismissing alert */ onRemove?: () => void; /** * Override the default type icon. Pass null to suppress the icon entirely. */ icon?: ReactNode; /** * Optional bold title rendered above the message */ title?: ReactNode; } /** * Alert component used to display important messages. * * One of `message` or `children` is required. * @remarks Only one should be provided at a time. */ export type AlertProps = (BaseAlertProps & { /** Text content to display in alert */ message: string; children?: never; }) | (BaseAlertProps & { /** ReactNode to display in alert */ children: ReactNode; message?: never; });