@rxxuzi/gumi
Version:
Clean & minimal design system with delightful interactions
31 lines (30 loc) • 820 B
TypeScript
export interface SidebarOptions {
overlay?: boolean;
closeOnOutsideClick?: boolean;
closeOnEscape?: boolean;
push?: boolean;
pushTarget?: string;
}
export declare class Sidebar {
private element;
private options;
private overlay;
private hamburger;
private isOpen;
private boundKeyHandler;
private boundOutsideClickHandler;
constructor(element: HTMLElement | string, options?: SidebarOptions);
private init;
private createOverlay;
private setupHamburger;
private bindEvents;
private handleKeyPress;
private handleOutsideClick;
open(): void;
close(): void;
toggle(): void;
isOpened(): boolean;
destroy(): void;
static initFromAttributes(selector?: string): Sidebar[];
static init(selector: string): Sidebar | null;
}