{# FULL-WIDTH CONTAINER Single-column: the frame's full content width (frame.width less frame.pad_x on both sides — 616px at the shipped 680px frame). Context variables: content — Pre-rendered component HTML (required) section_align — Optional alignment for this section's copy; empty means the template's own behaviour, which is what keeps an email that states none byte-identical (#126) section_title — Optional heading text section_anchor — The heading's `id`, empty when untitled (#183) section_badge — The title's badge, {label, tone}, or none (#325) section_kicker — The label above the title, {text, grounded}, or none (#333) background_color — Optional hex override; defaults to the theme's surface, or its highlight tint when highlighted highlight — When true, tints the band and adds hairline rules top and bottom section_border — The frame's colour when the section is bordered (#267), else empty section_frame — "solid" or "dashed", how that frame is drawn (#390) section_break — The row's break declarations on paper (#364), empty elsewhere section_kept — The row's `id` when kept together on paper, for the tall-section check flow_columns — Columns the content flows through (#189); 0 for none. Only FlowedColumns sets it, and only on paper section_source — The section's source line, cut at its markers (#338); empty for none section_as_of — Its date, or empty section_bleed — On paper, how far the ground runs past the frame, {left, right, top} (#396) section_pin — On paper, how the section reaches its sheet's foot (#397); see placed.html #} {# A highlighted band spends 1px a side on its hairline frame, so every horizontal inset inside it gives that pixel back. Content then starts at frame.pad_x from the frame edge whether the band is highlighted or not — which is the whole of #85: a heading and the text under it must not disagree about where the left margin is. A border (#267) spends one more. #} {# `section_align` lands on TWO cells, and that is not redundancy: the title and the content are sibling tables, not parent and child, so a declaration on the content cell alone leaves the heading where it was. Both spellings travel together per #125 — the attribute for Outlook's Word engine, the style because an attribute is not inherited by the prose inside the cell and inheritance is #126's whole mechanism. #} {% from "common/badge.html" import badge with context %} {% from "common/kicker.html" import kicker with context %} {% from "common/source-line.html" import source_line with context %} {% from "common/placed.html" import open_placed, close_placed %} {% set edge_pad = size.frame.pad_x - (1 if highlight else 0) - (1 if section_border else 0) %} {% if section_bleed or section_pin %} {{ open_placed(section_bleed, section_pin, background_color | default(theme.palette.highlight_tint if highlight else theme.palette.surface)) }} {% endif %} {% if section_title %} {% if section_kicker %} {{ kicker(section_kicker) }} {% endif %} {{ section_title | escape_html }} {% if section_badge %} {{ badge(section_badge) }} {% endif %} {% endif %}
{% if flow_columns %}
{% endif %} {{ content }} {% if flow_columns %}
{% endif %} {% if section_source %} {{ source_line(section_source, section_as_of) }} {% endif %}
{% if section_bleed or section_pin %} {{ close_placed(section_bleed, section_pin) }} {% endif %}