@inherits DComponentBase
@* daisyUI Avatar: https://daisyui.com/components/avatar/ . Class goes on the inner frame, where daisyUI puts the size
and shape (w-16 rounded-full, mask mask-squircle) and, for a placeholder, the colours (bg-neutral
text-neutral-content); the other attributes go on the outer .avatar. Without Src the frame shows ChildContent. *@
@if (Src is not null)
{

}
else
{
@ChildContent
}
@code {
[Parameter] public string Src { get; set; }
// "" on purpose (the documented exception to "no string defaults"): an empty alt marks a decorative image.
[Parameter] public string Alt { get; set; } = "";
/// Shown in the frame when there is no Src, e.g. initials with Placeholder.
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public DAvatarStatus Status { get; set; }
/// Centre ChildContent in the frame (avatar-placeholder); give the frame a bg-* in Class.
[Parameter] public bool Placeholder { get; set; }
string CssClass => Cx("avatar", StatusClass, Placeholder ? "avatar-placeholder" : null);
string StatusClass => Status switch
{
DAvatarStatus.Online => "avatar-online",
DAvatarStatus.Offline => "avatar-offline",
_ => null
};
}