import type { HTMLProps } from 'react'; export type TTabPosition = 'top' | 'bottom' | 'left' | 'right'; export type TTabPanelSlideDirection = 'right' | 'left'; export type TTabProps = { /** Set `Tab` to be active. If `Tab` is wrapped inside a `TabList`, this value will be overridden by the `TabList` */ active?: boolean; /** Set Tab `onClick` function */ onClick?: (value?: number) => void; /** Set Tab position. If `Tab` is wrapped inside a `TabList`, this value will be overridden by the `TabList` */ position?: TTabPosition; } & Omit, 'onClick' | 'value'>; export type TTabActive = { index: number; top?: number; left?: number; width?: number; height?: number; }; export type TTabListProps = { /** Set TabList's active Tab. The value is a zero based index of the `Tab` in the `TabList` */ activeTab?: number; /** Set TabList `onChange`. The `onChange` will be triggered when the `Tab` inside the `TabList` is clicked */ onChange?: (value?: number) => void; /** Set TabList position */ position?: TTabPosition; } & Omit, 'onChange'>; export type TTabPanelProps = { /** Set TabPanel to be active. If `TabPanel` is wrapped inside `TabPanelList`, this value will be overridden by the `TabPanelList` */ active?: boolean; /** Set TabPanel slide direction when active. If `TabPanel` is wrapped inside `TabPanelList`, this value will be overridden by the `TabPanelList` */ slideDirection?: TTabPanelSlideDirection; } & Omit, 'value'>; export type TTabPanelListProps = { /** Set TabPanelList's active TabPanel. The value is a zero based index of the `TabPanel` in the `TabPanelList` */ activePanel?: number; } & HTMLProps; export type TTabsProps = { /** Set Tabs active Tab. The value is a zero based index of the `Tab` in the `TabList` */ activeTab?: number; /** Set Tabs `onChange`. The `onChange` will be triggered when the `Tab` inside the `TabList` is clicked */ onChange?: (value?: number) => void; /** Set Tabs position */ position?: TTabPosition; } & Omit, 'onChange'>;