{#- Shared table markup for the list views. Every data table renders through `table` (headers + the caller's tbody) so column semantics and the dense data-table styling stay identical across views; `empty_state` renders the standard no-data notice. Import with context, like _links.html. -#} {% macro table(headers) -%} {%- for header in headers %} {%- endfor %} {{ caller() }}
{{ header }}
{%- endmacro %} {#- `code` appends a command chip ("run `cairn build`") to the notice. -#} {% macro empty_state(message, code='') -%}

{{ message }}{%- if code %} {{ code }}{%- endif %}.

{%- endmacro %}