vanilla-hamburger
Version:
A tiny framework agnostic hamburger button element for modern web apps
76 lines • 2.36 kB
TypeScript
import { props, render, update } from '../internals.js';
import type { BurgerProps, RenderOptions } from '../types';
declare const btn: unique symbol;
declare const updating: unique symbol;
declare const prepare: unique symbol;
export declare const defaultProps: BurgerProps;
export declare abstract class Burger extends HTMLElement {
static get observedAttributes(): string[];
protected abstract get lines(): number;
protected abstract [render](options: RenderOptions): void;
private [btn];
private [props];
private [updating];
/**
* A valid `transition-timing-function` CSS value, for example 'ease-out'.
* @type {string}
* @default cubic-bezier(0, 0, 0, 1)
*/
get easing(): string;
set easing(easing: string);
/**
* The vertical distance between the lines. Small (sm), medium (md) or large (lg).
* @type {'sm' | 'md' | 'lg'}
* @default md
*/
get distance(): 'sm' | 'md' | 'lg';
set distance(distance: 'sm' | 'md' | 'lg');
/**
* The duration of the animation. Can be set to zero if no animation is desired.
* @type {number}
* @default 0.4
*/
get duration(): number;
set duration(duration: number);
/**
* When set to true, the internal <button> element is disabled.
* @type {boolean}
* @attr disabled
* @default false
*/
get disabled(): boolean;
set disabled(disabled: boolean);
/**
* Accessible label set on the internal <button> element for screen readers.
* @type {string}
* @default {hamburger}
*/
get label(): string;
set label(label: string);
/**
* Set to true when element is pressed.
* @type {boolean}
* @attr pressed
* @default false
*/
get pressed(): boolean;
set pressed(pressed: boolean);
/**
* Size of the icon. Should be a number between 12 and 48.
* @type {number}
* @default 32
*/
get size(): number;
set size(size: number);
constructor();
connectedCallback(): void;
attributeChangedCallback(prop: string, oldVal: string, newVal: string): void;
handleEvent(event: KeyboardEvent | MouseEvent): void;
focus(): void;
blur(): void;
click(): void;
private [prepare];
protected [update](): Promise<void>;
}
export {};
//# sourceMappingURL=burger.d.ts.map