import { Optional, PropTypes } from '@mekari/pixel3-utils'; /** * Exported avatar types. */ type AvatarVariant = 'square' | 'circle'; type AvatarVariantColor = 'gray' | 'sky' | 'teal' | 'violet' | 'amber' | 'rose' | 'stone' | 'lime' | 'pink'; type AvatarSize = 'sm' | 'md' | 'lg' | 'xl'; interface AvatarProps { id?: string; name?: string; size?: AvatarSize; variant?: AvatarVariant; variantColor?: AvatarVariantColor; hasBorder?: boolean; borderColor?: string; src?: string; icon?: string; iconVariant?: string; iconColor?: string; spacing?: number; onClick?: (evt: MouseEvent | TouchEvent) => void; } interface AvatarGroupProps { id?: string; size?: AvatarSize; max?: number; spacing?: number; borderColor?: string; onClick?: (evt: MouseEvent | TouchEvent) => void; } type AvatarDefinedContext = Optional; type AvatarGroupDefinedContext = Optional; interface AvatarApiMachine { name?: string; src?: string; icon?: string; isLoaded?: object; rootProps?: T['element']; fallbackProps?: T['element']; imageProps?: T['img']; iconProps?: T['img']; } interface AvatarGroupApiMachine { rootProps?: T['element']; excessProps?: T['element']; } interface AvatarState extends AvatarProps { } interface AvatarGroupState extends AvatarGroupProps { } interface AvatarClasses { root?: string; fallback?: string; image?: string; icon?: string; excess?: string; } export { AvatarApiMachine, AvatarClasses, AvatarDefinedContext, AvatarGroupApiMachine, AvatarGroupDefinedContext, AvatarGroupProps, AvatarGroupState, AvatarProps, AvatarSize, AvatarState, AvatarVariant, AvatarVariantColor };