{# v11.0.0a4: stateBadge unification.
A single Alpine helper for the small icon+label badges scattered
across statusStrip (bridge state), reembedPanel (phase), and
networkPanel (live/offline). Eliminates 3 near-identical markup
blocks so future tweaks (icon family, ring color, hover) happen
in one place.
Usage in a template (Alpine context):
{% include "_partials/_state_badge.html" %}
Or, the more idiomatic call (computed by the parent component):
Props:
state — semantic state name (used as data-state attr for tests)
icon — single character / emoji (e.g. ✓, ⚠, ⊘)
color — tailwind color name (emerald, amber, rose, gray, cyan)
label — human-readable text shown to the right of the icon
(also becomes the aria-label).
The helper attaches itself to `window.harbormaster.stateBadgeHtml`
so it's reachable from any Alpine factory without per-component
registration. Idempotent — multiple includes are safe.
#}