{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "user-avatar",
  "title": "User Avatar",
  "description": "Avatar from an optional image URL with first+last-name (or email) initials fallback; serializable props only.",
  "registryDependencies": [
    "@sav/avatar"
  ],
  "files": [
    {
      "path": "registry/sav/components/user-avatar.tsx",
      "content": "// @sav-registry: user-avatar\n\"use client\"\n\n// Reusable user avatar: image when available, first+last initials otherwise.\n// Takes only serializable props so it renders straight from server\n// components. Mint any signed image URL on the server and pass it in; the\n// base-ui primitive falls back to the initials automatically if the image\n// fails to load.\n\nimport {\n  Avatar,\n  AvatarFallback,\n  AvatarImage,\n} from \"@/registry/sav/ui/avatar\"\n\nfunction initials(\n  firstName?: string | null,\n  lastName?: string | null,\n  email?: string | null\n): string {\n  const first = (firstName ?? \"\").trim()\n  const last = (lastName ?? \"\").trim()\n  const fromName = `${first.charAt(0)}${last.charAt(0)}`.trim()\n  if (fromName) return fromName.toUpperCase()\n  const mail = (email ?? \"\").trim()\n  return mail ? mail.charAt(0).toUpperCase() : \"?\"\n}\n\nexport function UserAvatar({\n  src,\n  firstName,\n  lastName,\n  email,\n  size = \"default\",\n  className,\n  alt,\n}: {\n  src: string | null | undefined\n  firstName?: string | null\n  lastName?: string | null\n  email?: string | null\n  size?: \"default\" | \"sm\" | \"lg\"\n  className?: string\n  alt?: string\n}) {\n  const label =\n    alt ?? ([firstName, lastName].filter(Boolean).join(\" \") || email || \"User\")\n  return (\n    <Avatar size={size} className={className}>\n      {src ? <AvatarImage src={src} alt={label} /> : null}\n      <AvatarFallback>{initials(firstName, lastName, email)}</AvatarFallback>\n    </Avatar>\n  )\n}\n",
      "type": "registry:component",
      "target": "@components/user-avatar.tsx"
    }
  ],
  "categories": [
    "patterns"
  ],
  "type": "registry:component"
}