import { AnchorHTMLAttributes, HTMLAttributes, MouseEvent, ReactNode } from 'react';
import { PropsWithChildren, QA } from '../common';
export type TabProps = {
/** Обязательный идентификатор
*
* Можно использовать любой уникальный в рамках меню int|string|uuid
*/
value: string;
/** Label */
label?: ReactNode;
/** Иконка */
icon?: ReactNode;
/** Значок */
badge?: ReactNode;
/** Отключен
*
* Не позволяет переход по табу
*/
disabled?: boolean;
} & QA & AnchorHTMLAttributes;
export type TabsProps = {
/** Выбранный таб */
value?: string;
/** Обработчик смены таба
*
* Если передан, над событиями будет вызван preventDefault (отменяет переход по ссылкам в текущем окне)
*
* Не будет вызван для
*
* - disabled табов
*
* - выбранного таба
*
* - табов с target не равным undefined | '_self'
*/
onChange?: (
/** Новый таб */
newValue: string,
/** Событие клика | нажатия */
e: MouseEvent) => void;
/** Показывать стрелки при overflow */
arrows?: boolean;
} & QA & Omit, 'onChange'> & Pick, 'className' | 'children'>;
export type TabContextProps = Pick;
export type TabListProps = Omit;
export type TabPanelProps = Pick & PropsWithChildren;