import * as lit_html from 'lit-html'; import * as lit from 'lit'; import { LitElement } from 'lit'; import { b as TypeDirection } from '../constants-CcB9aXsT.js'; import KemetTab from './tab.js'; import KemetTabPanel from './tab-panel.js'; import '../form-controller-BR0gZhrG.js'; interface InterfaceLink { width: string; height: string; positionX: string; positionY: string; } interface InterfaceTabsDetails { element: KemetTabs; selectedName: string; selectedIndex: number; } declare const panelEffect: readonly ["none", "slide", "fade", "stacked"]; declare enum EnumPanelEffect { None = "none", Slide = "slide", Fade = "fade", Stacked = "stacked" } type TypePanelEffect = typeof panelEffect[number]; declare const tabsAlign: readonly ["center", "between", "around", "evenly", "start", "end"]; declare enum EnumTabsAlign { Center = "center", Between = "between", Around = "around", Evenly = "evenly", Start = "start", End = "end" } type TypeTabsAlign = typeof tabsAlign[number]; /** * @since 1.0.0 * @status stable * * @tagname kemet-tabs * @summary A group of tabs and panels. * * @prop {string} selected - The selected tab by name * @prop {number} selectedIndex - The selected tab by index * @prop {number} panelPosition - Positions the current panel * @prop {string} panelEffect - The transition effect for panels * @prop {boolean} swipe - Determines whether to enable swipe behavior * @prop {TypeDirection} placement - Places the tabs to the top, right, bottom, or left * @prop {boolean} divider - Determines whether to show a divider line * @prop {TypeTabsAlign} tabsAlign - Spacing alignment of the tabs * @prop {object} ink - An object that contains information about the ink * @prop {boolean} hideInk - Determines whether to hide the ink * @prop {boolean} overflow - Is true when the space of the tabs is larger than it's container * * @slot tab - Place the tabs here. * @slot panel - Place the panels here. * * @csspart links - The container for the tablist. * @csspart tablist - Contains the tabs. * @csspart panels - Contains the panels. * @csspart ink - The ink element. * @csspart divider - The divider element. * * @cssproperty --kemet-tabs-ink-size - The thickness of the ink. * @cssproperty --kemet-tabs-ink-radius - The radius on the ink. * @cssproperty --kemet-tabs-ink-color - The color of the ink. * @cssproperty --kemet-tabs-divider-size - The thickness of the divider. * @cssproperty --kemet-tabs-divider-color - The color of the divider. * @cssproperty --kemet-tabs-transition-speed - The transition speed of the panels. * @cssproperty --kemet-tabs-spacer - The space between tabs and panels. * * @event kemet-change - Fires when a tab is changed * */ declare class KemetTabs extends LitElement { static styles: lit.CSSResult[]; selected: string; selectedIndex: number; panelPosition: number; panelEffect: TypePanelEffect; swipe: boolean; placement: TypeDirection; divider: boolean; tabsAlign: TypeTabsAlign; ink: InterfaceLink; hideInk: boolean; overflow: boolean; tabs: KemetTab[]; panels: KemetTabPanel[]; xDown: number | null; yDown: number | null; links: HTMLElement; panelsElement: HTMLElement; constructor(); firstUpdated(): void; render(): lit_html.TemplateResult<1>; updated(prevProps: Map): void; handleLinksSlotChange(): void; handlePanelsSlotChange(): void; handleLeftArrow(): void; handleRightArrow(): void; handleTabClose(event: CustomEvent): void; makeInk(location: string): lit_html.TemplateResult<1>; makeDivider(): lit_html.TemplateResult<1>; makeLeftArrow(): lit_html.TemplateResult<1>; makeRightArrow(): lit_html.TemplateResult<1>; selectTab(): void; selectPanel(): void; dispatchTabChange(): void; tabSelectedChange(event: CustomEvent): void; determineFade(): void; determineStacked(): void; determineOverflow(): void; handleResize(): void; animatePanel(panelName: string, panelIndex: number): void; handleTabKeydown(event: KeyboardEvent): void; handleTouchStart(event: TouchEvent): void; handleTouchMove(event: TouchEvent): void; } declare global { interface HTMLElementTagNameMap { 'kemet-tabs': KemetTabs; } } export { EnumPanelEffect, EnumTabsAlign, type InterfaceTabsDetails, type TypePanelEffect, type TypeTabsAlign, KemetTabs as default, panelEffect, tabsAlign };