import type { ButtonHTMLAttributes, CSSProperties, ReactNode } from 'react';
import type { AsProps } from '../../types';
export type RightContent = {
/**
* Значение таба
*/
value?: string | number;
/**
* Слот для контента справа, например `Icon`
*/
contentRight?: never;
} | {
/**
* Значение таба
*/
value?: never;
/**
* Слот для контента справа, например `Icon`
*/
contentRight?: ReactNode;
};
export interface BaseTabItemProps extends Omit, 'value'>, AsProps {
/**
* Выбран ли TabItem
*/
selected?: boolean;
/**
* TabItem неактивен
* @default false
*/
disabled?: boolean;
/**
* Контент справа
*/
contentRight?: ReactNode;
/**
* Слот для интерактивных элементов (крестик)
*/
actionContent?: ReactNode;
/**
* Callback, необходимый для клавиатурной навигации
*/
onIndexChange?: (index: number) => void;
/**
* Индекс TabItem внутри Tabs - необходим для клавиатурной навигации
*/
itemIndex?: number;
/**
* Обрезает контент по максимальной ширине и добавляет ...
* @default 'auto'
*/
maxItemWidth?: CSSProperties['width'];
}
export type CustomHorizontalTabItemProps = {
/**
* Расположение табов
*/
orientation?: 'horizontal';
/**
* Контент слева
*/
contentLeft?: ReactNode;
/**
* TabItem c округлым border-radius
* @deprecated
* @default false
*/
pilled?: boolean;
/**
* Фон TabItem меняется с анимацией
* @deprecated
* @default true
*/
animated?: boolean;
/**
* Вид TabItem
*/
view?: string;
/**
* Размер TabItem
*/
size?: 'xs' | 's' | 'm' | 'l';
/**
* Активен ли TabItem
* @deprecated Используйте свойство `selected`
*/
isActive?: boolean;
} & RightContent;
export type CustomHorizontalIconTabItemProps = {
/**
* Расположение табов
*/
orientation?: 'horizontal';
/**
* Фон TabItem меняется с анимацией
* @deprecated
* @default true
*/
animated?: boolean;
/**
* Вид TabItem
*/
view?: string;
/**
* Размер TabItem
*/
size?: 'xs' | 's' | 'm' | 'l' | 'h6' | 'h5' | 'h4' | 'h3' | 'h2' | 'h1';
/**
* Активен ли TabItem
* @deprecated Используйте свойство `selected`
*/
isActive?: boolean;
};
export type CustomVerticalIconTabItemProps = {
/**
* Расположение табов
*/
orientation?: 'vertical';
/**
* Вид TabItem
*/
view?: string;
/**
* Размер TabItem
*/
size?: string;
};
export type CustomHeaderTabItemProps = {
/**
* Расположение табов
*/
orientation?: 'horizontal';
/**
* Контент слева
*/
contentLeft?: never;
/**
* TabItem c округлым border-radius
* @deprecated
* @default false
*/
pilled?: never;
/**
* Фон TabItem меняется с анимацией
* @deprecated
* @default true
*/
animated?: never;
/**
* Вид TabItem
*/
view?: string;
/**
* Размер TabItem
*/
size: 'h6' | 'h5' | 'h4' | 'h3' | 'h2' | 'h1';
/**
* Активен ли TabItem
* @deprecated Используйте свойство `selected`
*/
isActive?: never;
} & Extract;
export type CustomVerticalTabItemProps = {
/**
* Расположение табов
*/
orientation: 'vertical';
/**
* Контент слева
*/
contentLeft?: ReactNode;
/**
* Вид TabItem
*/
view?: string;
/**
* Размер TabItem
*/
size?: string;
} & RightContent;
export type HorizontalTabItemProps = BaseTabItemProps & (CustomHorizontalTabItemProps | CustomHeaderTabItemProps);
export type HorizontalIconTabItemProps = Omit & CustomHorizontalIconTabItemProps;
export type VerticalTabItemProps = BaseTabItemProps & CustomVerticalTabItemProps;
export type VerticalIconTabItemProps = Omit & CustomVerticalIconTabItemProps;
export type TabItemProps = HorizontalTabItemProps | VerticalTabItemProps;
//# sourceMappingURL=TabItem.types.d.ts.map