import { LuxenElement } from '../../shared/luxen-element.js';
export type TabsVariant = 'enclosed' | 'line';
export type TabsOrientation = 'horizontal' | 'vertical';
/** Fired when the active tab changes. Bubbles; not composed. */
export declare class TabsChangeEvent extends Event {
readonly index: number;
readonly name: string | null;
constructor(index: number, name: string | null);
}
interface TabsEventMap {
change: TabsChangeEvent;
}
/**
* @summary A tabs component that progressively enhances light DOM markup
* with ARIA roles, keyboard navigation, and animated indicators.
*
* @example
* ```html
*
*
*
*
*
* Content 1
* Content 2
*
* ```
*
* @event change - Fired when the active tab changes. Bubbles. Properties: `index: number`, `name: string | null`.
*
* @cssproperty [--indicator-color=var(--l-color-text-primary)] - `line` variant: color of the active underline that slides under the selected tab.
* @cssproperty [--indicator-thickness=2px] - `line` variant: thickness of the active underline.
* @cssproperty [--track-color=var(--l-color-border)] - `line` variant: color of the static bottom border the tabs sit on.
* @cssproperty [--track-thickness=1px] - `line` variant: thickness of the static bottom border.
*
* @customElement l-tabs
*/
export declare class Tabs extends LuxenElement {
createRenderRoot(): this;
private _initialized;
private _setupTimer;
private _instanceId;
private _tablistEl;
private _tabs;
private _panels;
private _resizeObserver;
/** Visual variant. */
variant: TabsVariant;
/** Index of the active tab (0-based). */
value: string;
/** Stretch tabs to fill container width. */
fullWidth: boolean;
/** Tab orientation. */
orientation: TabsOrientation;
connectedCallback(): void;
disconnectedCallback(): void;
/** @returns true when setup ran or was already done; false to schedule a retry. */
private _trySetup;
updated(changed: Map): void;
private _setup;
private _teardown;
private _selectTab;
private _updateIndicator;
private _onClick;
private _onKeyDown;
}
export interface Tabs {
addEventListener(type: K, listener: (this: Tabs, ev: TabsEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
removeEventListener(type: K, listener: (this: Tabs, ev: TabsEventMap[K]) => void, options?: boolean | EventListenerOptions): void;
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
}
export {};
//# sourceMappingURL=tabs.d.ts.map