import type { PropsWithChildren, ReactNode } from "react"; import type { BaseComponentSizes, TComponentIcon, ClassName } from "@helpers/types"; type Sizes = "xxs" | "xs" | BaseComponentSizes | "xl" | "xxl"; type Shapes = "circle" | "square"; type StatusPositions = "top" | "bottom"; export interface ContainerProps extends PropsWithChildren, ClassName { shape?: Shapes; size?: Sizes; statusNode?: ReactNode; statusPosition: StatusPositions; } export interface AvatarChildrenProps extends PropsWithChildren, ClassName { } export interface ImageProps extends AvatarChildrenProps { src: string; alt?: string; } export interface StatusProps extends PropsWithChildren { size?: Sizes; position: StatusPositions; } export interface AvatarProps extends Pick, Pick { name?: string; label?: ReactNode; labelDescription?: ReactNode; caption?: ReactNode; contentType?: "icon" | "text"; icon?: TComponentIcon; src?: string; statusNode?: ReactNode; statusPosition?: StatusPositions; } interface SizesClasses { xxs: string; xs: string; sm: string; md: string; lg: string; xl: string; xxl: string; } export interface PositionVariants { top: SizesClasses; bottom: SizesClasses; } export {};