{% from "_macros.html" import icon %} {# One row, always, and it scrolls sideways rather than wrapping -- the same rule the composer's toolbar is built around. A strip that wraps to three lines on a narrow panel takes the file with it. A tab is a button posting to a route that serves POST. Not a link: `GET` never moves the active tab, because there is no CSRF token here and the cookie is SameSite Lax, so a state-changing GET is a link somebody can be made to follow. #} {# `oob` is set only when this arrives on the reply's SSE stream, where it has to find its own way to the panel rather than being swapped into the bubble the stream is writing. Out of band, exactly as the `done` frame's title is. #}
{% for tab in tabs %}
{% endfor %}