import { ComponentInterface, EventEmitter } from '../../stencil-public-runtime'; import { JSX } from '../../components'; import { Q2Badge } from '../q2-badge/q2-badge'; type TabPane = { label: string; value: string; badgeCount: number; badgeDescription: string; badgeTheme: Q2Badge['theme']; badgeStatus: Q2Badge['status']; }; /** * @name Tab Container * @category Display * @summary Use for switching between multiple views within the same context. */ export declare class Q2TabContainer implements ComponentInterface { guid: number; hasValidTab: boolean; lastScrolled: number; listElement: HTMLUListElement; mutationObserver: MutationObserver; narrowViewportListener: (event: MediaQueryListEvent) => void; narrowViewportMedia: MediaQueryList; resizeObserver: ResizeObserver; scheduledAfterRender: (() => void)[]; hostElement: HTMLElement; hasLeft: boolean; hasRight: boolean; isNarrowViewport: boolean; scrollEnabled: boolean; showScrollBack: boolean; showScrollForward: boolean; tabs: TabPane[]; /** * Controls which variables are used to color the tab controls. * * - `undefined` (default) * - Uses `--t-tab-active` and `--t-tab-inactive`. * - `alt` * - Uses `--t-tab-alt-active` and `--t-tab-alt-inactive`. * - The default fallback for these variables is `inherit`. */ color: 'alt' | undefined; /** * Used to establish a relationship between `q2-tab-container` and its associated tab panes. * @warning * The element can fail if this property is not set. Nested tab containers without the `name` property will not render correctly. */ name: string; /** Controls visibility of tab list in a print view. Tab content will still be visible even if `noPrint` is true. */ noPrint: boolean; /** * The orientation of the tab strip. * - `horizontal` (default) — tabs run left-to-right above the panel content. * - `vertical` — tabs stack top-to-bottom beside the panel content. * * @info * Vertical orientation is intended for wider layouts (e.g. admin consoles). * At viewports narrower than 768px, the component falls back to horizontal. */ orientation: 'horizontal' | 'vertical'; /** Determines the font size of the tab controls. */ type: 'main' | 'section'; /** Corresponds to the value of the selected tab pane. */ value: string; /** * Emitted when the selected tab changes. * @legacyEvent * @deprecated Use 'tctChange' instead */ change: EventEmitter<{ value: string; }>; /** * Emitted when the component has finished rendering. * @private */ settled: EventEmitter; /** * Emitted when the selected tab changes. * @legacyEvent */ tctChange: EventEmitter<{ value: string; }>; disconnectedCallback(): void; componentWillLoad(): void; componentDidLoad(): void; componentDidRender(): void; onBadge(): void; defaultChangeHandler(event: CustomEvent): void; onFocus(event: FocusEvent): void; onResize(): void; /** * A method to select a tab pane corresponding with the value. * * @testOnly */ selectTab(value: string): Promise; nameObserver(): void; valueObserver(): void; get computedOrientation(): 'horizontal' | 'vertical'; get selectedTabValue(): string; get tabList(): Element; get tabPanes(): (HTMLQ2TabPaneElement | HTMLTectonTabPaneElement)[]; checkScrollState: () => void; determineTabMove(): void; moveToAdjacentTab: (value: string, direction: "next" | "prev" | "first" | "last") => void; moveToTab: (index: number, shouldFocus?: boolean) => void; onScrollBtnClick: (direction?: "back" | "forward") => void; onSlotChange: () => void; onTabClick: (event: MouseEvent) => void; onTabKeyDown: (event: KeyboardEvent) => void; resizeIframe(): void; setTabs: () => void; updateTabPaneProps: () => void; updateTabs: () => void; renderTab(tab: TabPane, index: number): JSX.IntrinsicElements; renderTabWithBadge(tab: TabPane, isSelected: boolean): JSX.IntrinsicElements; render(): any; } export {};