/** * @fileoverview Avatar — user profile image with size variants and hover scale animation. * @module packages/ui/components/ui/avatar * @layer core * * Self-contained implementation built on Radix Avatar primitive. Supports * three size variants (sm, default, lg) and includes a subtle hover scale * transition. Provides fallback initials when the image fails to load. * * @component * @example * import { Avatar, AvatarImage, AvatarFallback } from "@saasflare/ui"; * * * * JD * */ import * as React from "react"; import * as AvatarPrimitive from "@radix-ui/react-avatar"; import { type SaasflareComponentProps } from "../../providers"; /** * Props for {@link Avatar}. * * Extends the Radix Avatar root props and {@link SaasflareComponentProps} so * `surface`, `radius`, `animated`, and `iconWeight` can be supplied * per-instance or inherited from . */ interface AvatarProps extends Omit, keyof SaasflareComponentProps>, SaasflareComponentProps { /** Visual size. `"default"` is a deprecated alias for `"md"`. */ size?: "sm" | "md" | "lg" | "default"; } /** * User avatar with size variants and a subtle hover-scale animation. Built on * the Radix Avatar primitive — compose with {@link AvatarImage} and * {@link AvatarFallback}; wrap several in {@link AvatarGroup} for an * overlapping stack. * * @component * @layer core * * @example * * * JD * */ declare function Avatar({ className, size, surface, radius, animated, iconWeight, ...props }: AvatarProps): import("react/jsx-runtime").JSX.Element; /** * Avatar image — fills the circle once the source has loaded; until then * {@link AvatarFallback} renders. * * @component * @layer core */ declare function AvatarImage({ className, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Fallback initials shown while the avatar image loads or when it fails. * * @component * @layer core */ declare function AvatarFallback({ className, ...props }: React.ComponentProps): import("react/jsx-runtime").JSX.Element; /** * Status badge anchored to the avatar's bottom-right corner, scaled to the * avatar size. * * @component * @layer core */ declare function AvatarBadge({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element; /** * Overlapping stack of avatars separated by background-colored rings. * * @component * @layer core */ declare function AvatarGroup({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element; /** * Overflow count bubble (e.g. "+3") rendered at the end of an * {@link AvatarGroup}. * * @component * @layer core */ declare function AvatarGroupCount({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element; export { Avatar, AvatarImage, AvatarFallback, AvatarBadge, AvatarGroup, AvatarGroupCount, type AvatarProps, };