{% from "govuk/macros/attributes.njk" import govukAttributes -%}

{% set headingLevel = params.headingLevel or 2 %}
<div class="x-govuk-related-navigation{%- if params.classes %} {{ params.classes }}{% endif -%}"
  {{- govukAttributes(params.attributes) }}>
  {% for section in params.sections %}
  {% set sectionTitle = section.title or "Related content" %}
  {% set sectionId = section.id or sectionTitle | lower | replace(" ", "-") %}
  <nav class="x-govuk-related-navigation__nav-section" aria-labelledby="related-navigation-{{ sectionId }}">
    <h{{ headingLevel }} class="x-govuk-related-navigation__main-heading" id="related-navigation-{{ sectionId }}">
      {{- sectionTitle -}}
    </h{{ headingLevel }}>
    {% if section.items %}
    <ul class="x-govuk-related-navigation__link-list">
    {% for item in section.items %}
      <li class="x-govuk-related-navigation__link">
        <a class="govuk-link x-govuk-related-navigation__section-link x-govuk-related-navigation__section-link--other" href="{{ item.href }}">
          {{- item.text -}}
        </a>
      </li>
    {% endfor %}
    </ul>
    {% endif %}
    {% for subsection in section.subsections %}
    {% set subsectionId = subsection.id or subsection.title | lower | replace(" ", "-") %}
    <nav class="x-govuk-related-navigation__nav-section"{% if subsection.title %} aria-labelledby="related-navigation-{{ subsectionId }}"{% endif %}>
      {% if subsection.title %}
      <h{{ headingLevel + 1 }} class="x-govuk-related-navigation__sub-heading" id="related-navigation-{{ subsectionId }}">
        {{- subsection.title -}}
      </h{{ headingLevel + 1 }}>
      {% endif %}
      <ul class="x-govuk-related-navigation__link-list">
      {% for item in subsection.items %}
        <li class="x-govuk-related-navigation__link">
          <a class="govuk-link x-govuk-related-navigation__section-link" href="{{ item.href }}">
            {{- item.text -}}
          </a>
        </li>
      {% endfor %}
      </ul>
    </nav>
    {% endfor %}
  </nav>
  {% endfor %}
</div>
