@cds/core
Version:
Clarity Design System - common components, themes, and utilties
24 lines (23 loc) • 859 B
TypeScript
import { ReactiveController, ReactiveElement } from 'lit';
export declare type CloseChangeType = 'focusout' | 'backdrop-click' | 'escape-keypress' | 'close-button-click' | 'custom';
export declare type Closable = ReactiveElement & {
trigger?: HTMLElement;
};
export interface ClosableControllerConfig {
escape: boolean;
focusout: boolean;
}
/**
* Given a closable component provides the following
* - close on escape
* - close on focusout
* - close on custom event
*/
export declare function closable<T extends Closable>(config?: Partial<ClosableControllerConfig>): ClassDecorator;
export declare class ClosableController<T extends Closable> implements ReactiveController {
private host;
private config;
constructor(host: T, config?: Partial<ClosableControllerConfig>);
hostConnected(): void;
close(detail?: any): void;
}