import { CSSResultGroup, PropertyValues, TemplateResult, LitElement } from 'lit';
export interface InterfaceSbbTabGroupActions {
activate(): void;
deactivate(): void;
enable(): void;
disable(): void;
select(): void;
}
export interface InterfaceSbbTabGroupTab extends HTMLElement {
active?: boolean;
disabled?: boolean;
relatedContent?: HTMLElement;
index?: number;
tabGroupActions?: InterfaceSbbTabGroupActions;
size: 'l' | 'xl';
}
/**
* It displays one or more tab, each one with a title and a content.
*
* @slot - Use the unnamed slot to add html-content to the `sbb-tab-group`.
* Wrap the content in a `div`, a `section`, an `article` or provide a nested `sbb-tab-group`:
* This is correct: `
Some text
Some other text
`
* This is not correct: `Some textSome other text
`
* @slot tab-bar - When you provide the `sbb-tab-title` tag through the unnamed slot,
* it will be automatically moved to this slot. You do not need to use it directly.
* @event {CustomEvent} didChange - Emits an event on selected tab change
*/
export declare class SbbTabGroupElement extends LitElement {
static styles: CSSResultGroup;
static readonly events: {
readonly didChange: "didChange";
};
private _tabs;
private _selectedTab?;
private _tabGroupElement;
private _tabContentElement;
private _abort;
private _tabAttributeObserver;
private _tabGroupResizeObserver;
private _tabContentResizeObserver;
/**
* Size variant, either l or xl.
*/
set size(value: InterfaceSbbTabGroupTab['size']);
get size(): InterfaceSbbTabGroupTab['size'];
private _size;
/**
* Sets the initial tab. If it matches a disabled tab or exceeds the length of
* the tab group, the first enabled tab will be selected.
*/
initialSelectedIndex: number;
private _updateSize;
/**
* Emits an event on selected tab change
*/
private _selectedTabChanged;
/**
* Disables a tab by index.
* @param tabIndex The index of the tab you want to disable.
*/
disableTab(tabIndex: number): void;
/**
* Enables a tab by index.
* @param tabIndex The index of the tab you want to enable.
*/
enableTab(tabIndex: number): void;
/**
* Activates a tab by index.
* @param tabIndex The index of the tab you want to activate.
*/
activateTab(tabIndex: number): void;
private _getTabs;
private get _enabledTabs();
connectedCallback(): void;
protected firstUpdated(changedProperties: PropertyValues): void;
disconnectedCallback(): void;
private _onContentSlotChange;
private _onTabsSlotChange;
private _assignId;
private _initSelection;
private _onTabAttributesChange;
private _onTabGroupElementResize;
private _onTabContentElementResize;
private _configure;
private _handleKeyDown;
protected render(): TemplateResult;
}
declare global {
interface HTMLElementTagNameMap {
'sbb-tab-group': SbbTabGroupElement;
}
}
//# sourceMappingURL=tab-group.d.ts.map