@lion/ui
Version:
A package of extendable web components
111 lines • 2.76 kB
TypeScript
/**
* LionTabs: A tabbed interface component
*
* @slot tab - The tab elements for the tabs
* @slot panel - The panel elements for the tabs
*
* @customElement lion-tabs
*/
export class LionTabs extends LitElement {
static get properties(): {
selectedIndex: {
type: NumberConstructor;
attribute: string;
reflect: boolean;
};
};
static get styles(): import("lit").CSSResult[];
/**
* // TODO: check if this is a false positive or if we can improve
* @configure ReactiveElement
*/
static enabledWarnings: import("lit").WarningKind[];
render(): import("lit-html").TemplateResult<1>;
/**
* @param {number} value The new index
*/
set selectedIndex(arg: number);
/**
* @return {number}
*/
get selectedIndex(): number;
get tabs(): HTMLButtonElement[];
get panels(): HTMLElement[];
/** @private */
private __setupSlots;
/** @private */
private __setupStore;
/** @type {StoreEntry[]} */
__store: StoreEntry[] | undefined;
/** @private */
private __cleanStore;
/**
* @param {HTMLButtonElement[]} tabs
* @param {HTMLButtonElement} currentTab
* @param {'right' | 'left'} dir
* @returns {HTMLButtonElement|undefined}
* @private
*/
private __getNextNotDisabledTab;
/**
* @param {number} newIndex
* @param {string} direction
* @returns {number}
* @private
*/
private __getNextAvailableIndex;
/**
* @param {number} index
* @returns {(event: Event) => unknown}
* @private
*/
private __createButtonClickHandler;
/**
* @param {Event} ev
* @private
*/
private __handleButtonKeyup;
/** @type {number | undefined} */
__selectedIndex: number | undefined;
/**
* @param {number} value The new index for focus
* @protected
*/
protected _setSelectedIndexWithFocus(value: number): void;
/** @protected */
protected get _pairCount(): number;
/** @private */
private __updateSelected;
}
export type StoreEntry = {
/**
* Dom Element
*/
el: HTMLElement;
/**
* Unique ID for the entry
*/
uid: string;
/**
* Button HTMLElement for the entry
*/
button: HTMLElement;
/**
* Panel HTMLElement for the entry
*/
panel: HTMLElement;
/**
* executed on click event
*/
clickHandler: (event: Event) => unknown;
/**
* executed on keydown event
*/
keydownHandler: (event: Event) => unknown;
/**
* executed on keyup event
*/
keyupHandler: (event: Event) => unknown;
};
import { LitElement } from "lit";
//# sourceMappingURL=LionTabs.d.ts.map