import { HTMLAttributes } from 'react'; import type { CustomCounterProps } from '../Counter/Counter.types'; import type { CustomBadgeProps } from '../Badge/Badge.types'; type Only = { [P in keyof T]: T[P]; } & { [P in keyof U]?: never; }; type OneOf = Only | Only; type ExtraBadgeProps = { /** * Вид Badge * @default * default */ badgeView?: string; /** * Компонент c округлым border-radius */ pilled?: boolean; } & Omit; type ExtraCounterProps = { /** * Вид Counter * @default * default */ counterView?: string; /** * Отображаемое число. Не может быть меньше 1. */ count?: number; } & Omit; type ExtraProps = OneOf; type CustomAvatarProps = { /** * Форма аватара. Возможные значения: 'circled', 'rounded'. * @default circled */ shape?: string; /** * Размер аватара */ size?: string; /** * ФИО человека */ name?: string; /** * Ссылка на фотографию */ url?: string; /** * Кастомный текст вместо фотографии */ customText?: string; /** * Статус профиля */ status?: 'active' | 'inactive'; /** * Масштабируемый при наведении */ isScalable?: boolean; /** * Фокус */ focused?: boolean; /** * Словарь для озвучивания значений свойства status [a11y] * @default * { active: 'Активен', inactive: 'Неактивен' } */ statusLabels?: StatusLabels; /** * Включить отображение дополнительного элемента */ hasExtra?: boolean; /** * Тип дополнительного элемента */ type?: 'badge' | 'counter'; /** * Расположение дополнительного элемента */ extraPlacement?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; /** * Кастомный border-radius для fit варианта */ customBorderRadius?: number | string; } & ExtraProps; export type StatusLabels = Record<'active' | 'inactive', string>; export type AvatarProps = HTMLAttributes & CustomAvatarProps; export {}; //# sourceMappingURL=Avatar.types.d.ts.map