import { EventEmitter } from '../../stencil-public-runtime'; import { DrawerPosition, DrawerSize } from './types'; /** * @component BcmDrawer * @description A slide-in panel component built on the native HTML Dialog API. * Ideal for navigation menus, forms, and contextual information that slides in from any edge of the screen. * * @slot - Main content area of the drawer * @slot header - Custom header content (overrides headerText prop) * @slot helper - Custom helper text content (overrides helper-text prop) * @slot footer - Footer content for action buttons * * @part dialog - The native dialog element * @part container - The container wrapper for positioning * @part drawer - The main drawer panel * @part header - The header section * @part header-content - The content wrapper inside header * @part title - The title heading element * @part helper-text - The helper text paragraph * @part close-button - The close button in header * @part content - The main content area * @part footer - The footer section * * @example * ```html * * * * * * * *
Settings
*
...
*
* * *
*
* * * *

Custom height drawer

*
* * * Content * * ``` */ export declare class BcmDrawer { host: HTMLBcmDrawerElement; private dialogRef?; /** * Controls whether the drawer is open or closed */ open: boolean; /** * The size of the drawer. Can be a preset value or a custom CSS size * - For left/right drawers: * - 'small': 320px * - 'medium': 480px * - 'large': 1064px * - For top/bottom drawers: * - 'small': 40vh * - 'medium': 60vh * - 'large': 90vh * - Custom values: Any valid CSS size (e.g., '600px', '50%', '30rem', '80vw') */ size: DrawerSize; /** * The position where the drawer slides in from * - 'left': Slides from the left edge * - 'right': Slides from the right edge * - 'top': Slides from the top edge * - 'bottom': Slides from the bottom edge */ position: DrawerPosition; /** * Makes the drawer take full width (for left/right) or full height (for top/bottom) */ fullWidth: boolean; /** * Makes the drawer take the full screen (100vw x 100vh) */ fullScreen: boolean; /** * Controls backdrop behavior * - true: Shows backdrop, drawer can be closed by clicking outside * - false: No backdrop * - 'static': Shows backdrop but prevents closing by clicking outside (triggers shake animation) */ backdrop: boolean | 'static'; /** * Text to display in the drawer header */ headerText?: string; /** * Helper text to display below the header title */ helperText?: string; /** * Hides the header section completely */ noHeader: boolean; /** * Hides the footer section completely */ noFooter: boolean; /** * Allows closing the drawer by clicking on the backdrop */ closeOnBackdrop: boolean; /** * Allows closing the drawer by pressing the Escape key */ closeOnEscape: boolean; shake: boolean; /** * Emitted after the drawer has opened */ bcmOpen: EventEmitter; /** * Emitted after the drawer has closed */ bcmClose: EventEmitter; /** * Emitted before the drawer opens. Can be cancelled by calling event.preventDefault() */ bcmBeforeOpen: EventEmitter; /** * Emitted before the drawer closes. Can be cancelled by calling event.preventDefault() */ bcmBeforeClose: EventEmitter; private drawerClass; handleOpenChange(isOpen: boolean): void; handleClick(event: MouseEvent): void; /** * Programmatically opens the drawer */ show(): Promise; /** * Programmatically closes the drawer */ hide(): Promise; /** * Toggles the drawer open/closed state */ toggle(): Promise; private shakeDrawer; private handleBackdropClick; private handleDialogCancel; private handleDrawerClick; componentDidLoad(): void; disconnectedCallback(): void; private getDrawerStyle; render(): any; }