import { createLinear } from "makeup-roving-tabindex"; import type { WithNormalizedProps } from "../../global"; export interface Panel extends Omit { } export interface Tab extends Omit { disabled?: Marko.HTML.Button["disabled"]; } export interface TabsEvent { selectedIndex: number; } interface TabsInput extends Omit { tab?: Marko.AttrTag; panel?: Marko.AttrTag; activation?: "auto" | "manual"; size?: "large" | "regular"; fake?: boolean; "selected-index"?: number | string; "on-select"?: (event: TabsEvent) => void; } export interface Input extends WithNormalizedProps { } export interface State { selectedIndex: number; tab: Tab[]; panel: Panel[]; } declare class Tabs extends Marko.Component { _linearRovingTabindex: ReturnType; /** * Handle a11y for heading * https://ebay.gitbooks.io/mindpatterns/content/disclosure/tabs.html */ handleHeadingKeydown(dataIndex: number, event: KeyboardEvent): void; handleHeadingClick(selectedIndex: number): void; onCreate(): void; onInput(input: Input): void; onMount(): void; onUpdate(): void; onRender(): void; onDestroy(): void; _setIndex(selectedIndex: number): void; _setupMakeup(): void; _cleanupMakeup(): void; } export default Tabs;