UNPKG

@rhds/elements

Version:

Red Hat Design System Elements

88 lines (87 loc) 3.96 kB
import { LitElement, type TemplateResult } from 'lit'; import '@rhds/elements/rh-surface/rh-surface.js'; import '@rhds/elements/rh-button/rh-button.js'; import '@rhds/elements/rh-icon/rh-icon.js'; interface AlertAction { action: 'dismiss' | 'confirm' | string; text: string; } interface ToastOptions { id?: string; /** Alert body content. Can be any value which lit-html can render. Simple strings are preferable */ message: string | Node | TemplateResult | (string | Node | TemplateResult)[]; /** Alert heading content. Must be a simple string. */ heading?: string; /** Alert `state` attribute */ state?: RhAlert['state']; /** Whether the alert should remain on screen until the user explicitly dismisses it */ persistent?: boolean; /** One or more optional body actions */ actions?: [] | [AlertAction] | [AlertAction, AlertAction]; } export declare class AlertCloseEvent extends Event { action: 'close' | 'confirm' | 'dismiss' | string; constructor(action: 'close' | 'confirm' | 'dismiss' | string); } /** * An alert is a banner used to notify a user about a change in status * or communicate other information. It can be generated with or without * a user triggering an action first. * * @summary Notifies a user without blocking their workflow * * @alias alert * * @fires {AlertCloseEvent} close - when the dismissable alert closes */ export declare class RhAlert extends LitElement { #private; static readonly styles: CSSStyleSheet[]; /** * Toast a message with an rh-alert * @param options * @param options.message alert text * @param [options.actions] optional array of actions * @param [options.heading="Success"] alert heading * @param [options.state="info"] `<rh-alert state="...">` * @param [options.persistent=false] when true, toast remains on screen until dismissed */ static toast({ message, persistent, heading, state, actions: _actions, }: Omit<ToastOptions, 'id'>): Promise<void>; /** * Communicates the urgency of a message and is denoted by various styling configurations. * * - `neutral` - Indicates generic information or a message with no severity. * - `danger` - Indicates a danger state, like an error that is blocking a user from completing a task. * - `warning` - Indicates a warning state, like a non-blocking error that might need to be fixed. * - `caution` - Indicates an action or notice which should immediately draw the attention * - `info` - Indicates helpful information or a message with very little to no severity. * - `success` - Indicates a success state, like if a process was completed without errors. * * Note: 'note', 'default', and 'error' will also work, but are deprecated */ state: 'danger' | 'warning' | 'caution' | 'neutral' | 'info' | 'success'; /** * The alternate Inline alert style includes a border instead of a line which * can be used to express more urgency or better grab the attention of a user. * * A Toast alert is used to present a global message about an event, * update, or confirmation, like the result of a user action that cannot * be presented within a specific layout or component. */ variant?: 'alternate' | 'toast' | 'inline'; /** * Alert variants have different rules regarding their ability to be dismissed by a user. * Default, Info, and Success Inline alerts can be dismissed by a user selecting the close button. * Warning and Danger Inline alerts can be dismissed by a user resolving the issues caused by the alert. * All Toast alerts can be dismissed by a user selecting the close button or waiting for them to time out. */ dismissable: boolean; connectedCallback(): void; render(): TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'rh-alert': RhAlert; } } export {};