@alegendstale/holly-components
Version:
Reusable UI components created using lit
68 lines • 1.8 kB
TypeScript
import { LitElement } from 'lit';
import { EventEmitter } from '../../utils/EventEmitter.js';
type EventMap = {
snapped: [snapped: boolean, activeElement: Element | null | undefined];
};
export declare class BottomSheet extends LitElement {
static styles: import("lit").CSSResult[];
private dialog;
private nonModalDialog?;
private modalDialog?;
open: boolean;
nonmodal: boolean;
dragging: boolean;
scrolling: boolean;
snapPoints: number[];
defaultSnap: number;
set height(val: number);
get height(): number;
emitter: EventEmitter<EventMap>;
private startY;
private startHeight;
private previousTouch;
private lastScrollTop;
connectedCallback(): void;
disconnectedCallback(): void;
render(): import("lit-html").TemplateResult<1>;
/**
* Find closest point index to target in array
*/
private closestSnapPointIndex;
/**
* Sets sheet height to the closest snap
* @param height percentage
*/
private setSnap;
/**
* @returns Whether sheet is snapped to a snap point
*/
private isSnapped;
/**
* Sets the display state of the sheet
*/
showSheet(open: boolean): void;
/**
* Toggles the display state of the sheet
*/
toggleSheet(): void;
/**
* Remove overscroll to prevent mobile browsers from refreshing during drag
*/
private setOverscroll;
private setDialog;
private touchDown;
private touchMove;
private touchUp;
private pointerDown;
private pointerMove;
private pointerUp;
private onSnapped;
private contentScroll;
}
declare global {
interface HTMLElementTagNameMap {
'bottom-sheet': BottomSheet;
}
}
export {};
//# sourceMappingURL=bottom-sheet.d.ts.map