import { type ReactElement } from "react"; import * as React from "react"; import { Avatar as AvatarPrimitive } from "@base-ui/react/avatar"; import { cn } from "@/lib/utils"; /** * Avatar — shadcn/WealthX * Base: npx shadcn\@latest add avatar (latest) * Figma: Design-System---shadcn?node-id=72-2717 * * WealthX: * - Removed overflow-hidden from Avatar root → moved to AvatarImage/AvatarFallback * so AvatarBadge (absolute positioned) is not clipped by the parent. * - Added font-sans to AvatarFallback for consistent typography. */ export type AvatarProps = React.ComponentProps & { size?: "default" | "sm" | "lg"; }; function Avatar({ className, size = "default", ...props }: AvatarProps): ReactElement { return ( ); } export type AvatarImageProps = React.ComponentProps< typeof AvatarPrimitive.Image >; function AvatarImage({ className, ...props }: AvatarImageProps): ReactElement { return ( ); } export type AvatarFallbackProps = React.ComponentProps< typeof AvatarPrimitive.Fallback >; function AvatarFallback({ className, ...props }: AvatarFallbackProps): ReactElement { return ( ); } export type AvatarBadgeProps = React.ComponentProps<"span">; function AvatarBadge({ className, ...props }: AvatarBadgeProps): ReactElement { return ( svg]:hidden", "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2", "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2", className, )} data-slot="avatar-badge" {...props} /> ); } export type AvatarGroupProps = React.ComponentProps<"div">; function AvatarGroup({ className, ...props }: AvatarGroupProps): ReactElement { return (
); } export type AvatarGroupCountProps = React.ComponentProps<"div">; function AvatarGroupCount({ className, ...props }: AvatarGroupCountProps): ReactElement { return (
svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3", className, )} data-slot="avatar-group-count" {...props} /> ); } export { Avatar, AvatarImage, AvatarFallback, AvatarBadge, AvatarGroup, AvatarGroupCount, };