import { EventEmitter } from '../../stencil-public-runtime'; /** * @slot default - Body of the drawer. * @slot trigger - Content to be placed as the trigger, will override the trigger prop. * @slot header - Content to be placed as the header, will override the header prop. * @slot footer - Content to be placed as the footer, will override the footer prop. */ export declare class NvDrawer { el: HTMLNvDrawerElement; private dialogElement; private backdropElement; private contentElement; private eventsAttached; private form; private swipeStartX; private swipeStartY; private swipeStartTime; private isSwiping; private SWIPE_THRESHOLD; private SWIPE_EDGE_ZONE; private SWIPE_VELOCITY_THRESHOLD; private triggerElement?; private headerElement?; private footerElement?; private triggerClickEvents; /****************************************************************************/ /** * Use this prop to toggle the visibility of the drawer. Set to true to show * the drawer and false to hide it. */ open: boolean; /** * If true, the drawer cannot be closed by the user. */ readonly undismissable: boolean; /** * If true, the drawer will be closed when the backdrop is clicked. */ readonly clickOutside: boolean; /** * If true, the drawer visibility is managed manually through methods or the * open prop. */ readonly controlled: boolean; /** * Side from which the drawer appears. */ readonly side: 'left' | 'right'; /** * Size of the drawer. Defaults to 'md'. * - 'sm': Small drawer (~320px) * - 'md': Medium drawer (~400px) * - 'lg': Large drawer (~600px) * - 'full': Full width drawer (100vw on mobile, ~800px on desktop) */ readonly size: 'sm' | 'md' | 'lg' | 'full'; /** * Width of the drawer. If specified, this will override the size prop. * Defaults to the width corresponding to the size prop (400px for 'md'). */ readonly width?: string; /** * Controls whether the drawer should automatically focus the first focusable * element when opened. When disabled, prevents unwanted tooltip triggers on * drawer open. */ readonly autofocus: boolean; /** * Enables swipe gesture to open/close the drawer on touch devices. * - Swipe from the edge (left for left drawer, right for right drawer) to open * - Swipe towards the edge from inside the drawer to close */ readonly swipeToOpen: boolean; /****************************************************************************/ /** * Call this method to show the drawer, making it visible on the screen. */ show(): Promise; /** * Call this method to hide the drawer, making it disappear from view. */ close(): Promise; /** * Sets the autofocus on the first focusable element in the drawer. */ private setAutofocus; /** * Attaches event listeners to the drawer. */ private attachEventListeners; /** * Prevents the body from scrolling when the drawer is open. * Compensates for scrollbar width to prevent layout shift. */ private preventScroll; /** * Allows the body to scroll when the drawer is closed. * Removes the applied overflow and padding styles. */ private allowScroll; private ensureFormId; /** * Checks for and sets up form ID if a form is present */ private checkForForm; /** * Handles the native drawer close event. */ private handleDrawerClose; /****************************************************************************/ /** * Emitted when the drawer is closing in order to allow for cleanup, data-capture, etc. * @bind open */ openChanged: EventEmitter; /****************************************************************************/ handleDrawerOpenChange(isOpen: boolean): Promise; /****************************************************************************/ /** * Handles the keydown event to optionally prevent the native drawer from closing when the escape key is pressed. * @param {KeyboardEvent} event - The keydown event. */ handleKeyDown(event: KeyboardEvent): void; /** * Handles the click event to close the drawer when clickOutside is true. * @param {MouseEvent} event - The click event. */ private handleDrawerClick; private checkForOpenPopovers; /** * Handles pointer down events for swipe detection. * @param {PointerEvent} event - The pointer down event. */ handlePointerDown(event: PointerEvent): void; /** * Handles pointer move events during swipe. * @param {PointerEvent} event - The pointer move event. */ handlePointerMove(event: PointerEvent): void; /** * Handles pointer up events to complete swipe gesture. * @param {PointerEvent} event - The pointer up event. */ handlePointerUp(event: PointerEvent): void; /** * Resets swipe tracking state. */ private resetSwipe; /****************************************************************************/ /** * Lifecycle method that runs before the component loads. * Looks for passed header, and footer elements, either by their slot * attribute or by their tag name (for dialog header/footer) */ componentWillLoad(): void; componentDidRender(): void; componentDidLoad(): void; disconnectedCallback(): void; /****************************************************************************/ render(): any; }