import { ISlottable } from '../../../Behaviors/Slottable'; import { TabPanelAlignment } from '../../../Types/TabPanelAlignment'; import { TabStripPlacement } from '../../../Types/TabStripPlacement'; import { CustomElement } from '../../Abstracts/CustomElement'; import type { ITabPanelElementProps } from './ITabPanelElementProps'; declare const TabPanelElement_base: (abstract new (...args: Array) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array) => import("../../../Behaviors/Slottable").ISlottableProps & ISlottable) & (abstract new (...args: Array) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor; /** * Tab Panel - A scrollable container for tab strip items with optional navigation buttons. * * @description * The Tab Panel component serves as a container for the tab strip, providing horizontal scrolling * when the total width of tab items exceeds the available space. It automatically detects scrollable * content and displays navigation buttons (start/end) to allow users to scroll through tabs that * extend beyond the visible area. The component supports different alignments and placements, * integrates with the parent tab's indicator settings, and can enable swipe gestures for touch * devices. * * @name Tab Panel * @element mosaik-tab-panel * @category Selectors * * @slot - The default slot for the tab strip element * * @csspart startScrollButton - The navigation button for scrolling to start * @csspart content - The scrollable content container * @csspart endScrollButton - The navigation button for scrolling to end * * @cssprop {String} --tab-panel-background-color - The background fill color of the panel * * @dependency {ButtonElement} - Navigation button components for scrolling * * @fires connected {ConnectedEvent} - Fired when connected to the DOM * @fires changed {PropertyChangedEvent} - Fired when properties change * * @example * Tab panel with scrollable content: * ```html * * * Tab 1 * Tab 2 * Tab 3 * * * ``` * * @example * Tab panel with alignment: * ```html * * * Overview * Details * * * ``` * * @public */ export declare class TabPanelElement extends TabPanelElement_base implements ITabPanelElementProps, ISlottable { private _containerElement; private _hasScrollableContent; private _canScrollToStart; private _canScrollToEnd; private _alignment; private _placement; private _hasIndicator; private _enableGestures; /** * @public */ constructor(); /** * Returns the `is` property. * The `is` property represents natural name of this element. * * @public * @static * @readonly */ static get is(): string; /** * Gets or sets the `alignment` property. * * @public * @attr */ get alignment(): TabPanelAlignment; set alignment(value: TabPanelAlignment); /** * Gets or sets the `placement` property. * * @public * @attr */ get placement(): TabStripPlacement; set placement(value: TabStripPlacement); /** * Gets or sets the `hasIndicator` property. * * @public * @attr */ get hasIndicator(): boolean; set hasIndicator(value: boolean); /** * Gets or sets the `enableGestures` property. * * @public * @attr */ get enableGestures(): boolean; set enableGestures(value: boolean); /** * Gets the `hasScrollableContent` property. * * @public * @readonly */ get hasScrollableContent(): boolean; private set hasScrollableContent(value); /** * Gets the `canScrollToStart` property. * * @public * @readonly */ get canScrollToStart(): boolean; private set canScrollToStart(value); /** * Gets or sets the `canScrollToEnd` property. * * @public * @readonly */ get canScrollToEnd(): boolean; private set canScrollToEnd(value); render(): unknown; /** * @protected * @override */ protected onApplyTemplate(): void; /** * @private * @template */ scrollByTabOffset(direction: 'before' | 'after'): void; /** * @private * @template */ onScroll(e: Event): void; } /** * @public */ export declare namespace TabPanelElement { type Props = ITabPanelElementProps; } /** * @public */ declare global { interface HTMLElementTagNameMap { 'mosaik-tab-panel': TabPanelElement; } } export {}; //# sourceMappingURL=TabPanelElement.d.ts.map