import type { AvatarData, AvatarSize, AvatarStatus } from './types'; type Props = { /** Image URL. If omitted or fails to load, falls back to initials, then to a generic icon. */ src?: string | null; /** Person's display name — used for the initials fallback and the `aria-label`. */ name?: string; /** Size preset. @default 'md' */ size?: AvatarSize; /** Optional status dot rendered in the bottom-right corner. Ignored while `badge` is set — both occupy the same corner. */ status?: AvatarStatus | null; /** Secondary mini-avatar layered on the bottom-right corner — the workspace/org-with-user pattern. Reuses the image → initials → icon fallback chain at badge scale. Takes the corner over `status`. */ badge?: AvatarData | null; }; /** * A circular avatar with three render modes (priority order): image → initials (derived from `name`) * → generic person icon. If `src` fails to load, automatically falls back to initials/icon. Optional * status dot in the bottom-right corner, or a square `badge` mini-avatar in the same corner (the * workspace/org-with-user pattern, same fallback chain at badge scale) — `badge` and `status` are * mutually exclusive, `badge` wins. Built on top of the kit `Image` component, which handles the * load / error / stub state machine. * * ### CSS Custom Properties * | Property | Description | Default | * |---|---|---| * | `--sc-kit--avatar--size` | Diameter (overrides size preset) | per `size` preset (20 / 24 / 32 / 40 / 56 px) | * | `--sc-kit--avatar--border-radius` | Avatar shape (set e.g. `--sc-kit--radius--sm` for a rounded square) | `50%` | * | `--sc-kit--avatar--background` | Fallback container background (initials / icon mode) | `--sc-kit--color--bg--active` | * | `--sc-kit--avatar--color` | Fallback foreground (generic icon tint) | `--sc-kit--color--text--muted` | * | `--sc-kit--avatar--initials--background` | Initials chip background | `--sc-kit--color--accent--soft` | * | `--sc-kit--avatar--initials--color` | Initials chip text color | `--sc-kit--color--accent` | * | `--sc-kit--avatar--dot--border-color` | Status-dot outline (separates dot from page bg) | `--sc-kit--color--bg--app` | * | `--sc-kit--avatar--dot--color-online` | Online dot color | `--sc-kit--color--success` | * | `--sc-kit--avatar--dot--color-busy` | Busy dot color | `--sc-kit--color--danger` | * | `--sc-kit--avatar--dot--color-offline` | Offline dot color | `--sc-kit--color--text--muted` | * | `--sc-kit--avatar--badge--size` | Badge mini-avatar box | 45% of the avatar diameter | * | `--sc-kit--avatar--badge--ring-color` | Badge separation ring (override on active/hover row backgrounds to blend) | `--sc-kit--color--bg--panel` | * | `--sc-kit--avatar--badge--ring-width` | Badge separation ring thickness | `1.5px` | * | `--sc-kit--avatar--badge--initials--background` | Badge initials chip background (contrast element of org-with-user) | `--sc-kit--color--accent` | * | `--sc-kit--avatar--badge--initials--color` | Badge initials chip text color | `--sc-kit--color--text--on-accent` | */ declare const Cmp: import("svelte").Component; type Cmp = ReturnType; export default Cmp;