import type { Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; import type { AlertSlots, AlertVariants } from './alert.variants.js'; /** * Props interface for Alert component * * @summary An inline notice that stays put — status, warning, error or hint, with an optional action. * @description Persistent inline notification for communicating status, warnings, errors, * or informational messages. Supports icons, titles, descriptions, actions, and dismissal. * * @tag feedback * @related Toast * @related Badge * * @example * ```svelte * * Your changes have been saved. * * ``` * * @example * ```svelte * (visible = false)}> * {#snippet icon()}{/snippet} * Something went wrong. Please try again. * {#snippet actions()}{/snippet} * * ``` */ export interface AlertProps extends AlertVariants, Omit, 'title' | 'children'> { /** Semantic color intent @default 'primary' */ intent?: 'primary' | 'info' | 'success' | 'warning' | 'danger' | 'neutral'; /** Visual style @default 'soft' */ variant?: 'soft' | 'inline' | 'filled'; /** Size @default 'md' */ size?: 'sm' | 'md' | 'lg'; /** Alert title (bold header text) */ title?: string; /** Description content (children slot) */ children?: Snippet; /** Custom icon snippet (replaces default intent icon) */ icon?: Snippet; /** Action buttons snippet */ actions?: Snippet; /** Show dismiss/close button @default false */ dismissible?: boolean; /** Callback when dismissed */ onDismiss?: () => void; /** Custom CSS class */ class?: string; /** Remove default styles */ unstyled?: boolean; /** Per-slot class overrides. Slots: base | icon | content | title | description | actions | dismissButton */ slotClasses?: Partial>; /** * Apply a named preset registered via ``. * Prefer this over `class` overrides when the requested look falls outside the * semantic intent palette — presets keep hover/active/dark-mode logic coherent * and make the custom look reusable across the project. */ preset?: string; } export { default as Alert } from './Alert.svelte'; export { type AlertVariants, alertVariants } from './alert.variants.js';