# XWUIChatContact

A chat-domain contact element (not the CRM `XWUICardContact`) representing one person you message with: avatar, name, a status line, and a presence dot (`showPresence`) derived from the `presence` value or a relative last-seen string. The `variant` switches between a compact `row` (a clickable list-item that surfaces an `unread` badge and fires `onSelect()`) and a detail `card` that adds Message / Call / Video / Mute action buttons (`showActions`) wired to `onMessage()`, `onCall()`, and `onMute()`; the contact itself is supplied as `data.contact` and can be swapped with `setContact()`.

## Basic Usage

A `row`-variant contact for an online person showing a custom status line and an unread-message badge.

```example
file: examples/BasicUsage.ts
html: examples/BasicUsage.html
title: Basic Usage
description: Compact row contact with an online presence dot and an unread badge.
```

## Card

The `card` variant for a busy contact with a last-seen timestamp, rendering the Message / Call / Video / Mute action buttons and logging each via onMessage, onCall, and onMute.

```example
file: examples/Card.ts
html: examples/Card.html
title: Card
description: Detail-card contact exposing message, call, video, and mute actions.
```

## Away With Last Seen

An offline, muted row contact whose lastSeen timestamp renders as a relative "Xh ago" status and whose row click opens the thread via onSelect.

```example
file: examples/AwayWithLastSeen.ts
html: examples/AwayWithLastSeen.html
title: Away With Last Seen
description: An offline muted row contact with an avatar and a relative last-seen status, wired to onSelect.
```

## Broadcast Card

A card-variant contact for a one-way broadcast list with presence and action buttons intentionally suppressed.

```example
file: examples/BroadcastCard.ts
html: examples/BroadcastCard.html
title: Broadcast Card
description: A detail card with showPresence and showActions off - identity and status only, for a broadcast list.
```

```api
```
