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'>;