import * as react_jsx_runtime from 'react/jsx-runtime'; import * as class_variance_authority_types from 'class-variance-authority/types'; import * as React from 'react'; import { Avatar as Avatar$1 } from 'radix-ui'; import { VariantProps } from 'class-variance-authority'; /** Maps to Shadcn Studio avatar demos (shape / ring / stack). Uses theme tokens only. */ declare const avatarRootVariants: (props?: ({ size?: "default" | "sm" | "lg" | null | undefined; shape?: "circle" | "square" | "rounded-sm" | "rounded-md" | "rounded-lg" | "rounded-xl" | null | undefined; variant?: "default" | "group" | "ring" | "ring-offset" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; type AvatarProps = React.ComponentProps & VariantProps & { /** * Subtle inner hairline on the avatar edge (token `border-border`). * Default **false** — full-bleed circle for photos/logos (Shadcn Studio–style profile look). */ insetBorder?: boolean; }; declare function Avatar({ className, size, shape, variant, insetBorder, ...props }: AvatarProps): react_jsx_runtime.JSX.Element; declare function AvatarImage({ className, referrerPolicy, ...props }: React.ComponentProps): react_jsx_runtime.JSX.Element; declare function AvatarFallback({ className, ...props }: React.ComponentProps): react_jsx_runtime.JSX.Element; declare function AvatarBadge({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element; /** * A row of avatars with an overflow counter — **never overlapping**. * * Overlapping face piles (Slack / GitHub style) have known UX problems in * dense product chrome: ring-on-background contrast is fragile in dark mode, * click targets stack, and screen readers announce ambiguous groupings. * `AvatarGroup` therefore renders children side-by-side with a small inline * gap. See `.cursor/rules/exxat-person-identity-display.mdc` (MUST NOT — * overlapping avatars) and the `PageHeader` collaboration variant which * uses the same gapped row. */ declare function AvatarGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element; declare function AvatarGroupCount({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element; type AvatarShape = NonNullable["shape"]>; type AvatarVariant = NonNullable["variant"]>; type AvatarSize = NonNullable["size"]>; type AvatarInitialsProps = Omit & { initials: string; /** When true, initials are hidden from accessibility tree (pair with visible name). Default true. */ decorative?: boolean; /** Extra classes on `AvatarFallback` (e.g. font weight). */ fallbackClassName?: string; }; /** Initials-only chip using `--avatar-initials-bg` / `--avatar-initials-fg` (Exxat tokens). */ declare function AvatarInitials({ initials, decorative, fallbackClassName, className, ...avatarProps }: AvatarInitialsProps): react_jsx_runtime.JSX.Element; type AvatarStatusTone = "online" | "busy" | "away"; /** Presence dot (Studio avatars 7–9). Wraps a single `Avatar`. */ declare function AvatarStatus({ children, status, label, className, position, }: { children: React.ReactNode; status: AvatarStatusTone; /** Announced to screen readers (e.g. "Busy"). */ label: string; className?: string; /** `bottom-end` matches `AvatarBadge`; `top-end` matches some Studio away demos. */ position?: "bottom-end" | "top-end"; }): react_jsx_runtime.JSX.Element; /** Numeric badge overlay (Studio avatar 11). */ declare function AvatarNotificationCount({ children, count, className, badgeClassName, }: { children: React.ReactNode; count: number | string; className?: string; badgeClassName?: string; }): react_jsx_runtime.JSX.Element; /** Verified check overlay (Studio avatar 12) — primary token fill. */ declare function AvatarVerified({ children, label, className, }: { children: React.ReactNode; label?: string; className?: string; }): react_jsx_runtime.JSX.Element; /** Leo assistant mark — centralized; same icon treatment as Ask Leo sidebar. */ declare function AvatarLeoAssistant({ className, size, ...props }: Omit): react_jsx_runtime.JSX.Element; /** “Add profile” affordance (Studio avatar 10). `onClick` on the button. */ declare function AvatarPlusAction({ children, actionLabel, onClick, className, buttonClassName, }: { children: React.ReactNode; actionLabel: string; onClick?: () => void; className?: string; buttonClassName?: string; }): react_jsx_runtime.JSX.Element; export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, AvatarInitials, type AvatarInitialsProps, AvatarLeoAssistant, AvatarNotificationCount, AvatarPlusAction, type AvatarProps, type AvatarShape, type AvatarSize, AvatarStatus, type AvatarStatusTone, type AvatarVariant, AvatarVerified, avatarRootVariants };