import type { XySemanticClassNames, XySemanticStyles } from "../core"; import type { XyIconName } from "../icon"; export type XyAlertType = "danger" | "info" | "success" | "warning"; export type XyAlertVariant = "borderless" | "filled" | "outlined"; export type XyAlertSemanticDom = "action" | "body" | "close" | "content" | "description" | "icon" | "root" | "title"; export interface XyAlertSemanticProps { banner: boolean; closable: boolean; hasAction: boolean; hasDescription: boolean; hasIcon: boolean; hasTitle: boolean; showIcon: boolean; type: XyAlertType; variant: XyAlertVariant; } export type XyAlertClassNames = XySemanticClassNames; export type XyAlertStyles = XySemanticStyles; export interface XyAlertProps { type?: XyAlertType; title?: string; description?: string; showIcon?: boolean; icon?: boolean | XyIconName; closable?: boolean; banner?: boolean; variant?: XyAlertVariant; strongTitle?: boolean; open?: boolean; classNames?: XyAlertClassNames; styles?: XyAlertStyles; } export interface XyAlertSlots { default?: () => unknown; action?: () => unknown; closeIcon?: () => unknown; description?: () => unknown; icon?: () => unknown; title?: () => unknown; } export interface XyAlertMarqueeProps { direction?: "left" | "right"; gradient?: boolean; gap?: number; pauseOnHover?: boolean; speed?: number; } export interface XyAlertMarqueeSlots { default?: () => unknown; }