{% macro onsDocumentList(params) %}
    {% set titleTag = params.headingLevel | default(2) %}
    {% set openingTag = "<h" ~ titleTag %}
    {% set closingTag = "</h" ~ titleTag ~ ">" %}
    <ul
        {% if params.id %}id="{{ params.id }}"{% endif %}class="ons-document-list{{ ' ' + params.classes if params.classes else '' }}"
        {% if params.attributes %}{% for attribute, value in (params.attributes.items() if params.attributes is mapping and params.attributes.items else params.attributes) %}{{ ' ' }}{{ attribute }}="{{ value }}"{% endfor %}{% endif %}
    >
        {% for document in params.documents %}
            {% set documentItem %}
                {% if document.thumbnail %}
                    <div
                        class="ons-document-list__item-image{{ ' ons-document-list__item-image--file' if document.metadata.file }}"
                        aria-hidden="true"
                    >
                        {% if document.thumbnail.smallSrc and document.thumbnail.largeSrc %}
                            <img
                                class="ons-document-list__image"
                                srcset="{{ document.thumbnail.smallSrc }} 1x, {{ document.thumbnail.largeSrc }} 2x"
                                src="{{ document.thumbnail.smallSrc }}"
                                alt=""
                                loading="lazy"
                            />
                        {% else %}
                            <span class="ons-document-list__image ons-document-list__image--placeholder"> </span>
                        {% endif %}
                    </div>
                {% endif %}

                <div class="ons-document-list__item-content">
                    <div
                        class="ons-document-list__item-header{{ ' ons-document-list__item-header--reverse' if document.showMetadataFirst == true }}"
                    >
                        {{ openingTag | safe }} class="ons-document-list__item-title ons-u-fs-m ons-u-mt-no ons-u-mb-2xs">
                        <a href="{{ document.title.url }}"
                            >{{ document.title.text }}
                            {%- if document.metadata and document.metadata.file -%}
                                <span class="ons-u-vh">
                                    {%
                                        set fileMetadataItems = [
                                        document.metadata.file.fileType + ' document download' if document.metadata.file.fileType,
                                        document.metadata.file.fileSize if document.metadata.file.fileSize,
                                        document.metadata.file.filePages if document.metadata.file.filePages ]
                                    %}
                                    , {{ fileMetadataItems | select | join(', ') }}
                                </span>
                            {% endif %}
                        </a>
                        {{ closingTag | safe }}

                        {%- if document.metadata -%}
                            <ul class="ons-document-list__item-metadata{{ ' ons-u-mb-2xs' if document.description else ' ons-u-mb-no' }}">
                                {%- if document.metadata.date -%}
                                    <li class="ons-document-list__item-attribute">
                                        {% set prefixClass = "ons-u-fw-b" if document.metadata.date.showPrefix == true else "ons-u-vh" %}
                                        <span class="{{ prefixClass }}">{{ document.metadata.date.prefix | default("Published") }}: </span>
                                        {%- if document.metadata.date.iso -%}
                                            <time datetime="{{ document.metadata.date.iso }}">{{ document.metadata.date.short }}</time>
                                        {%- endif -%}
                                    </li>
                                {% endif %}

                                {%- if document.metadata.object and document.metadata.object.text -%}
                                    <li class="ons-document-list__item-attribute{{ ' ons-u-mr-no' if document.metadata.file }}">
                                        {% set metadataObject %}
                                            <span
                                                {% if not document.metadata.file and not document.metadata.object.url %}class="ons-u-fw-b"{% endif %}
                                                >{{ document.metadata.object.text }}{%- if document.metadata.object.ref -%}:{% elif document.metadata.file %},{% endif %}</span
                                            >
                                        {% endset %}
                                        {%- if document.metadata.object.url -%}
                                            <a class="ons-document-list__attribute-link" href="{{ document.metadata.object.url }}">
                                                {{ metadataObject | safe }}
                                            </a>
                                        {% else %}
                                            {{ metadataObject | safe }}
                                        {% endif %}
                                        {%- if document.metadata.object.ref -%}
                                            <span>{{ document.metadata.object.ref }}</span>
                                        {% endif %}
                                    </li>
                                {% endif %}

                                {%- if document.metadata.file and document.metadata.file.fileType -%}
                                    <li class="ons-document-list__item-attribute" aria-hidden="true">
                                        {%
                                            set fileMetadataItems = [
                                            document.metadata.file.fileType if document.metadata.file.fileType,
                                            document.metadata.file.fileSize if document.metadata.file.fileSize,
                                            document.metadata.file.filePages if document.metadata.file.filePages ]
                                        %}
                                        {{ fileMetadataItems | select | join(', ') }}
                                    </li>
                                {%- endif -%}
                            </ul>
                        {% endif %}
                    </div>
                    {% if document.description %}
                        <div class="ons-document-list__item-description">{{ document.description | safe }}</div>
                    {% endif %}
                </div>
            {% endset %}

            <li
                class="ons-document-list__item{{ ' ons-document-list__item--featured' if document.featured }}{{ ' ons-document-list__item--full-width' if document.featured and document.fullWidth == true }}{{ ' ' + document.classes if document.classes else '' }}"
                {% if document.attributes %}{% for attribute, value in (document.attributes.items() if document.attributes is mapping and document.attributes.items else document.attributes) %}{{ ' ' }}{{ attribute }}="{{ value }}"{% endfor %}{% endif %}
            >
                {% if document.featured and document.fullWidth == true %}
                    <div class="ons-container{{ ' ons-container--wide' if document.wide == true }}">{{ documentItem | safe }}</div>
                {% else %}
                    {{ documentItem | safe }}
                {% endif %}
            </li>
        {% endfor %}
    </ul>
{% endmacro %}
