@rhds/elements
Version:
Red Hat Design System Elements
88 lines (87 loc) • 3.96 kB
TypeScript
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 {};