import { CSSProperties, ReactNode } from 'react'; import { IconContent } from '../types/icon.types.js'; import { SlotClassNames, SlotStyles, HtmlProps } from '../types/slots.types.js'; import { ColorValue } from '../themeProvider/color.types.js'; export type AlertSlots = 'root' | 'icon' | 'content' | 'title' | 'description' | 'closeButton'; /** Text Alert renders of its own, for translating it. */ export interface AlertLabels { /** Close button, read out by screen readers. */ dismiss?: string; } export interface AlertProps extends Omit { title?: ReactNode; children?: ReactNode; /** * A `ThemeColor` (default `Primary`) or any CSS colour. A ThemeColor also picks the icon; any * other colour shows `icon`, or a bell. */ color?: ColorValue; icon?: IconContent; hideIcon?: boolean; onClose?: () => void; className?: string; style?: CSSProperties; classNames?: SlotClassNames; styles?: SlotStyles; /** Overrides the text Alert renders of its own. Merged per key. */ labels?: AlertLabels; }