{# Daily-cost panel fragment.
Targeted by HTMX swaps when the breakdown selector changes. The
wrapping
is what HTMX replaces; the chart inside is initialised
by the bootstrap script in base.html (which listens for
``htmx:afterSettle``), keyed off the ``.cost-chart`` class and
``data-figure-id`` attribute. No executable JS in this fragment — that
way the swap can't fire chart init mid-settle.
The Plotly figure JSON is delivered through a non-executing
" inside a
future trace name can't break out of an outer script.
#}
Break down by:
{% for opt in breakdown_options %}
{{ opt }}
{% endfor %}
{% if has_data %}
{{ total_cost }} across {{ day_count }} day{{ '' if day_count == 1 else 's' }}
{% endif %}
{% if has_data %}
Tip: click any bar to drill into hourly cost for that day.