import { EventEmitter } from '../../stencil-public-runtime'; /** * Main sidebar container for navigation. Supports collapsible and persistent modes. * @slot default - All sidebar components (logo, header, content, footer). */ export declare class NvSidebar { el: HTMLNvSidebarElement; private mutationObserver; private resizeStartX; private resizeStartWidth; /****************************************************************************/ /** * The type of sidebar behavior. * - collapsible: Can be toggled open/closed * - persistent: Always visible */ readonly type: 'collapsible' | 'persistent'; /** * Whether the sidebar is currently open (only applies to collapsible type). */ open: boolean; /** * The current active path. Used to automatically set the active state of nav items. * Example: "/dashboard" or "/settings/profile" */ readonly activePath?: string; /** * Determines the type of notification bullets in the sidebar. * - neutral: Uses neutral colors (gray) * - brand: Uses brand colors (orange/teal depending on theme) */ readonly notificationIntention: 'neutral' | 'brand'; /** * Determines the emphasis of notification bullets in the sidebar. * - high: More prominent appearance * - low: Less prominent appearance */ readonly notificationEmphasis: 'high' | 'low'; /** * When true, the sidebar can be resized horizontally by dragging its right edge. * Only active when the sidebar is open (not collapsed). */ readonly resizable: boolean; /** * Minimum width in pixels when resizing. */ readonly minWidth: number; /** * Maximum width in pixels when resizing. */ readonly maxWidth: number; /** * Current sidebar width in pixels. When set (or while resizing), overrides * the default CSS token width. Updated as the user drags the resize handle. * Not reflected to the attribute to avoid DOM churn on every pointer move. */ width?: number; /****************************************************************************/ private resizing; /****************************************************************************/ /** * Emitted when the open state changes. * @bind open */ openChanged: EventEmitter; /** * Emitted when the sidebar width changes via the resize handle. * Fires at the end of a drag, or after each keyboard adjustment. */ widthChanged: EventEmitter; /****************************************************************************/ private handleToggle; private getBounds; private clampWidth; private canResize; private getAriaValueNow; private applyWidthStyle; private handleResizeStart; private handleResizeMove; private releasePointerCapture; private handleResizeEnd; private handleResizeCancel; private cancelResize; private handleResizeKeyDown; private handleCollapsedSideEffects; /** * Sets the active state of navigation items based on activePath */ private setActiveNavItems; private pendingActiveUpdate; /** * Sets up the MutationObserver to watch for changes in child elements. * Only triggers on new nav items being added, not on attribute changes. */ private setupMutationObserver; /****************************************************************************/ onActivePathChanged(): void; protected onOpenChanged(newValue: boolean, oldValue: boolean): void; protected onWidthChanged(): void; protected onBoundsChanged(): void; protected onResizableChanged(newValue: boolean): void; /****************************************************************************/ componentWillLoad(): void; disconnectedCallback(): void; /****************************************************************************/ render(): any; }