{% load humanize common_extras %}{% comment %} The flow list: the summary cards, then the rows in Live / Offline / Draft sections (HANDOFF §3). Rendered both inside list.html and on its own for every HTMX refresh — one renderer, so a filtered view and a post-mutation refresh can never disagree about what a row looks like, and the counts above the rows cannot go stale when a switch moves a flow between sections. **Seven buttons became one plus a menu.** Every row used to carry Edit, Stats, Rename, Duplicate, Export, Export bundle and Archive at equal weight, which made the action wanted on nine visits out of ten exactly as prominent as the one wanted twice a year. The named action is now Open — or Continue, for a draft somebody started and left — and the rest sit behind the "…". The menu panel is `position: fixed` and anchored on open, the same way components/ui_select.html does it and for the same reason: these rows live in a scrolling container, and an absolutely positioned panel is clipped by that overflow. The coordinates are captured once, and partials/_list_behaviours.html closes the menu on scroll so it cannot drift away from its button — that listener is registered once for the page, and in the capture phase, because .app-content is what scrolls and a scroll event never bubbles out of it. {% endcomment %} {% comment %} The filter popover's footer reads this after every swap, so "Show N flows" stays true as the selection changes. {% endcomment %}
{% if summary_oob %}{% include "flows/_summary.html" with oob=True %}{% endif %} {% if not groups %} {% if query or filters.status or filters.folder %} {% include "components/empty_state.html" with icon="search" title="No flows match" body="Nothing matches these filters. Try a different word, or clear them." action_label="Clear filters" action_click="clearFilters()" %} {% else %} {% include "components/empty_state.html" with icon="flows" title="No flows here yet" body="Start from a template above, or create one from scratch." %} {% endif %} {% else %} {% for group in groups %}