# XWUIContactWorkbench

A list-detail workbench for CRM contacts: a roster pane (`basic/XWUIList`)
selects into a detail pane that composes `basic/XWUICardContact` (identity,
contact methods, tags), `basic/XWUILeadScore` (score thermometer, only when
the contact has a `score`), `basic/XWUIQuickActions` (Call/Email - each shown
only when the contact actually has that contact method - plus the fixed
Note/Task/Meeting/Log set from `XWUIQuickActions.DEFAULT_CRM_ACTIONS`) and
`basic/XWUITimeline` (recent `activity`, when present). Selection defaults to
the first contact and is controllable via `data.selectedId`; a click on a
roster row, a call to `selectContact(id)`, and a `host.data = {...}` write on
the custom element all go through the same path.

`data.loading` and `data.error` take precedence over the roster and leave the
detail pane blank, so a host wiring this to a real fetch does not need a
separate skeleton component.

This is the second component in `industry/crm/` after `XWUIDealPipelineBoard`
(the kanban pipeline board) - together they are what `XWUISuperCRM` mounts for
its `crm-pipeline` and `crm-contacts` menu leaves. `crm-companies`,
`crm-deals`, `crm-activities` and `crm-reports` still mount the shell's
placeholder.

## Basic Usage

Three contacts with mixed methods, scores and activity, so every gated detail
widget (score dial, Call action, Email action, activity timeline) is visible
on at least one of them.

```api
```
