# `MishkaCmsCoreWeb.Live.Admin.Components.SiteHealthPanel`
[🔗](https://github.com/mishka-group/mishka_cms_core/blob/v0.0.1/lib/mishka_cms_core_web/live/admin/components/site_health_panel.ex#L5)

Renders a site's runtime health from `MishkaCmsCore.Runtime.SiteHealth.compute/1`:
a one-glance headline (Healthy / Recovered / Working / Needs attention / Offline / Inactive),
the site's in-progress and failed compile tasks, a per-resource active/inactive/
archived roll-up, CSS/JS bundle status + freshness, and a compact recent-activity list.

Each failed task is a native `<details>` disclosure (no JS — the panel ships as a
static HTML string) showing that job's error inline; for a master admin (`viewer_oban`)
it also links to the job's full log in Oban Web (`/oban/jobs/<id>`). The error detail is
always scoped to this site's jobs, so it is safe for a tenant viewer.

Rendered to an HTML string on the parent LiveView and pushed into the gervaz
expanded row of the admin Sites table.

# `dot_tone`

```elixir
@spec dot_tone(atom()) :: String.t()
```

The dot inside that pill.

# `panel`

## Attributes

* `health` (`:map`) (required)
* `viewer_oban` (`:boolean`) - Defaults to `false`.

# `pill_tone`

```elixir
@spec pill_tone(atom()) :: String.t()
```

The classes of the pill that names a `MishkaCmsCore.Runtime.SiteHealth` headline state, here and in
`MishkaCmsCoreWeb.Live.Admin.Components.SiteDetailsModal`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
