/** * @license * Copyright 2023 Nuraly, Laabidi Aymen * SPDX-License-Identifier: MIT */ import { LitElement, PropertyValueMap } from 'lit'; import { TabOrientation, TabsAlign, TabSize, TabType, TabEditable, TabsPanelConfig, TabPopOutConfig, TabItem } from './tabs.types.js'; import '../panel/index.js'; import { type TabsKeyboardHost, type TabsDragDropHost, type TabsEditableHost, type TabsEventHost, type TabsPopOutHost } from './controllers/index.js'; declare const NrTabsElement_base: (new (...args: any[]) => import("@nuralyui/common/mixins").DependencyAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").ThemeAware) & (new (...args: any[]) => import("@nuralyui/common/mixins").EventHandlerCapable) & (new (...args: any[]) => import("packages/common/src/shared/base-mixin.js").LightDomContent) & typeof LitElement; /** * Versatile tabs component with support for multiple orientations, editable tabs, drag & drop, and optional panel wrapper. * * @example * ```html * * * * * * * * * * * * * * * ``` * * @fires nr-tab-click - Tab clicked * @fires nr-tab-change - Active tab changed * @fires nr-tab-add - New tab requested * @fires nr-tab-remove - Tab removal requested * @fires nr-tab-edit - Tab edited * @fires nr-tab-order-change - Tab order changed via drag & drop * @fires nr-tabs-panel-close - Panel closed (when pannable) * @fires nr-tabs-panel-minimize - Panel minimized (when pannable) * @fires nr-tabs-panel-resize - Panel resized (when pannable) * * @slot default - Tab content * * @csspart tab-list - The tab labels row/column container * @csspart tab - An individual tab label element * @csspart tab-panel - The active tab content panel */ export declare class NrTabsElement extends NrTabsElement_base implements TabsKeyboardHost, TabsDragDropHost, TabsEditableHost, TabsEventHost, TabsPopOutHost { static useShadowDom: boolean; static styles: import("lit").CSSResult; /** Currently active tab index */ activeTab: number; /** Tab orientation (horizontal, vertical) */ orientation: TabOrientation; /** Tab alignment (left, center, right, stretch) */ align: TabsAlign; /** Tab size (small, medium, large) */ tabSize: TabSize; /** Tab type/variant */ variant: TabType; /** Editable configuration */ editable?: TabEditable; /** Array of tab items */ tabs: TabItem[]; /** Whether tabs are animated */ animated: boolean; /** Whether to destroy inactive tab content */ destroyInactiveTabPane: boolean; /** Custom aria-label for the tabs container */ tabsAriaLabel: string; /** Panel configuration for making tabs pannable */ panelConfig?: TabsPanelConfig; /** Pop-out configuration for making tabs pop-outable */ popOut?: TabPopOutConfig; requiredComponents: string[]; private keyboardController; private dragDropController; private editableController; private eventController; private popOutController; connectedCallback(): void; render(): any; private renderTabsContent; private renderWithPanel; private observeChildrenChanges; private renderDeleteIcon; private renderPopOutIcon; private renderTabs; updated(changedProperties: PropertyValueMap | Map): void; private renderActiveTab; setActiveTab(index: number, event?: Event): void; private handlePanelClose; private handlePanelMinimize; private handlePanelResize; /** * Public method to pop in a tab from placeholder */ popInTab(popOutId: string): Promise; /** * Public method to pop out a tab */ popOutTab(tabIndex: number): Promise; } export {}; //# sourceMappingURL=tabs.component.d.ts.map