{% macro header(title, id, parent, quantity=none, expanded=false, icon=none, class=none, danger=none, image=none, alt=none) %}
  {% if danger %}
    {% set icon='alert-fill' %}
  {% endif %}
  <div class="accordion-item">
    <h2 class="accordion-header">
      <button class="accordion-button {% if danger %}text-danger{% endif %} {% if not expanded %}collapsed{% endif %} {% if image %}py-0 ps-0{% endif %}" type="button" data-bs-toggle="collapse" data-bs-target="#{{ id }}" aria-expanded="{% if expanded %}true{% else %}false{% endif %}" aria-controls="{{ id }}">
        {% if image %}
          <img class="accordion-img me-1" src="{{ image }}" {% if alt %}alt="{{ alt }}"{% endif %} loading="lazy">
        {% elif icon %}
          <i class="ri-{{ icon }} me-1"></i>
        {% endif %}
        {{ title }}
        {% if quantity %}
          (x{{ quantity }})
        {% endif %}
      </button>
    </h2>
    <div id="{{ id }}" class="accordion-collapse collapse {% if expanded %}show{% endif %}" {% if not config['INDEPENDENT_ACCORDIONS'] %}data-bs-parent="#{{ parent }}"{% endif %}>
      <div class="accordion-body {% if class %}{{ class }}{% endif %}">
{% endmacro %}

{% macro footer() %}
      </div>
    </div>
  </div>
{% endmacro %}

{% macro cards(card_collection, title, id, parent, target, icon=none) %}
  {% set size=card_collection | length %}
  {% if size %}
    {{ header(title, id, parent, icon=icon) }}
      <div class="row">
        {% for item in card_collection %}
          <div class="col-md-6 col-xl-3 d-flex align-items-stretch">
            {% with solo=false, tiny=true %}
              {% include target %}
            {% endwith %}
          </div>
        {% endfor %}
      </div>
      {{ footer() }}
  {% endif %}
{% endmacro %}

{% macro table(table_collection, title, id, parent, target, quantity=none, icon=none, image=none, alt=none, details=none, no_missing=none, read_only_missing=none) %}
  {% set size=table_collection | length %}
  {% if size %}
    {{ header(title, id, parent, quantity=quantity, icon=icon, class='p-0', image=image, alt=alt) }}
      {% if details %}
        <p class="border-top border-bottom p-2 text-center">
          {% if image %}
            <a data-lightbox data-caption="{{ title }}" href="{{ image }}" target="_blank" class="text-decoration-none text-reset">
              <img class="accordion-img" src="{{ image }}" {% if alt %}alt="{{ alt }}"{% endif %} loading="lazy">
            </a>
          {% endif %}
          <a class="btn border bg-secondary-text" href="{{ details }}">{% if icon %}<i class="ri-{{ icon }}"></i>{% endif %} Details</a>
        </p>
      {% endif %}
      {% with solo=true, all=false %}
        {% include target %}
      {% endwith %}
    {{ footer() }}
  {% endif %}
{% endmacro %}