UNPKG

@ebay/ebayui-core

Version:

Collection of core eBay components; considered to be the building blocks for all composite structures, pages & apps.

46 lines (45 loc) 1.45 kB
import { createLinear } from "makeup-roving-tabindex"; import type { WithNormalizedProps } from "../../global"; export interface Panel extends Omit<Marko.HTML.Div, `on${string}`> { } export interface Tab extends Omit<Marko.HTML.Div, `on${string}`> { disabled?: Marko.HTML.Button["disabled"]; } export interface TabsEvent { selectedIndex: number; } interface TabsInput extends Omit<Marko.HTML.Div, `on${string}`> { tab?: Marko.AttrTag<Tab>; panel?: Marko.AttrTag<Panel>; activation?: "auto" | "manual"; size?: "large" | "regular"; fake?: boolean; "selected-index"?: number | string; "on-select"?: (event: TabsEvent) => void; } export interface Input extends WithNormalizedProps<TabsInput> { } export interface State { selectedIndex: number; tab: Tab[]; panel: Panel[]; } declare class Tabs extends Marko.Component<Input, State> { _linearRovingTabindex: ReturnType<typeof createLinear>; /** * 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;