@sandlada/mdc
Version:
@sandlada/mdc is an open source component library that follows the Material Design 3 design specifications.
99 lines • 3.48 kB
TypeScript
/**
* @license
* Copyright 2026 Kai-Orion & Sandlada
* SPDX-License-Identifier: MIT
*/
import { LitElement, type PropertyValues, type TemplateResult } from 'lit';
import { type ISnackbar, type SnackbarAnimationMode, type SnackbarDuration, type SnackbarVariant } from './snackbar.interface';
declare global {
interface HTMLElementTagNameMap {
'mdc-snackbar': MDCSnackbar;
}
}
declare const MDCSnackbar_base: Omit<typeof LitElement, "prototype"> & (new () => LitElement & object);
/**
* @element mdc-snackbar
*
* A brief message displayed at the bottom of the screen.
* Can include an optional action button and close icon.
*
* @slot - The snackbar message text.
* @slot icon - Optional leading icon.
* @slot action - Optional action button.
* @slot close-icon - Optional close icon button.
*
* @fires snackbar-opening - Dispatched when the snackbar starts opening.
* @fires snackbar-opened - Dispatched when the snackbar is fully open.
* @fires snackbar-closing - Dispatched when the snackbar starts closing.
* @fires snackbar-closed - Dispatched when the snackbar is fully closed.
* @fires snackbar-action - Dispatched when the action button is clicked.
*
* @cssproperty --mdc-snackbar-enabled-container-color
* @cssproperty --mdc-snackbar-container-shape-start-start
* @cssproperty --mdc-snackbar-container-shape-start-end
* @cssproperty --mdc-snackbar-container-shape-end-start
* @cssproperty --mdc-snackbar-container-shape-end-end
* @cssproperty --mdc-snackbar-enabled-label-color
* @cssproperty --mdc-snackbar-enabled-action-text-color
* @cssproperty --mdc-snackbar-enabled-close-icon-color
*
* @version
* Material Design 3
*
* @link
* https://m3.material.io/components/snackbar/overview
*/
export declare class MDCSnackbar extends MDCSnackbar_base implements ISnackbar {
static styles: import("lit").CSSResult[];
open: boolean;
duration: SnackbarDuration;
animationMode: SnackbarAnimationMode;
multiline: boolean;
variant: SnackbarVariant;
hasAction: boolean;
hasCloseIcon: boolean;
hasIcon: boolean;
protected readonly containerElement: HTMLDivElement | null;
protected readonly actionButton: HTMLButtonElement | null;
protected readonly closeButton: HTMLButtonElement | null;
private autoHideTimer;
private animationAbortController;
constructor();
connectedCallback(): void;
disconnectedCallback(): void;
protected willUpdate(changedProperties: PropertyValues<this>): void;
protected getRenderClasses(): {
[x: string]: boolean;
container: boolean;
multiline: boolean;
'has-action': boolean;
'has-close-icon': boolean;
'has-icon': boolean;
closing: boolean;
};
protected render(): TemplateResult;
protected renderIcon(): TemplateResult;
protected renderLabel(): TemplateResult;
protected renderAction(): TemplateResult;
protected renderCloseIcon(): TemplateResult;
/**
* Shows the snackbar.
*/
show(): Promise<void>;
/**
* Hides the snackbar.
*/
hide(): Promise<void>;
private handleOpen;
private handleClose;
private startAutoHideTimer;
private clearAutoHideTimer;
private handleClick;
private handleActionClick;
private handleCloseIconClick;
private handleActionSlotChange;
private handleCloseIconSlotChange;
private handleIconSlotChange;
}
export {};
//# sourceMappingURL=snackbar.d.ts.map