<.header> {@page_title} <:subtitle> {t("All ready coverages overlaid. Click any point to query each tower's predicted RSSI.")} <:actions> <.link navigate={~p"/coverage/list"} class="btn text-sm !py-1 !px-3 border border-gray-300 bg-transparent dark:border-gray-600 gap-1.5" > <.icon name="hero-list-bullet" class="h-4 w-4" /> {t("List view")} <.button navigate={~p"/coverage/new"} variant="primary"> <.icon name="hero-plus" class="h-5 w-5" /> {t("New Coverage")} <%= if @coverages == [] do %>
<.icon name="hero-signal" class="h-12 w-12 text-blue-500 dark:text-blue-400" />

{t("No ready coverages")}

{t( "Coverage maps appear here once the background compute finishes. Create or wait for a coverage to finish." )}

<.button navigate={~p"/coverage/new"} variant="primary"> <.icon name="hero-plus" class="h-4 w-4" /> {t("New Coverage")}
<% else %>
<%!-- SM install-height slider (vertical, left side) — cnHeat-style --%>
<%!-- LOS vs NLOS mode toggle. The label and reference frame of the height slider switch with the mode. --%>
{t("Height above clutter")} 10 ft
<%!-- Tower toggle list (top-right, overlay above map) --%>

{t("Towers")}

    <%= for c <- @coverages do %>
  • <% end %>
<%!-- Opacity slider + legend (bottom-center, overlay above map) --%>
70%
<%!-- Min signal-strength filter — hides pixels weaker than this. --%>
-100 dBm
≥-50 -65 -75 -85 ≤-95 dBm
<%!-- Distance Tool side panel — opens when the user clicks the map --%>
<.icon name="hero-map-pin" class="h-4 w-4 text-blue-500" /> {:erlang.float_to_binary(@probe.lat * 1.0, decimals: 5)}, {:erlang.float_to_binary( @probe.lon * 1.0, decimals: 5 )}
{t("Units:")}
<%= for row <- @probe.rows do %> <% end %>
{t("Tower")} {t("Distance")} RSSI
{row.coverage.name} {fmt_distance(row.distance_m, @probe_units)} "text-gray-400" is_number(row.rssi) and row.rssi >= -75 -> "text-green-600 dark:text-green-400 font-bold" is_number(row.rssi) and row.rssi >= -85 -> "text-yellow-600 dark:text-yellow-400" is_number(row.rssi) -> "text-red-600 dark:text-red-400" true -> "text-gray-400" end ]}> {fmt_rssi(row.rssi)}
<% end %>