{#
/**
 * @file
 * Default theme implementation for a facets item list.
 *
 * Available variables:
 * - items: A list of items. Each item contains:
 *   - attributes: HTML attributes to be applied to each list item.
 *   - value: The content of the list element.
 * - title: The title of the list.
 * - list_type: The tag for list element ("ul" or "ol").
 * - wrapper_attributes: HTML attributes to be applied to the list wrapper.
 * - attributes: HTML attributes to be applied to the list.
 * - empty: A message to display when there are no items. Allowed value is a
 *   string or render array.
 * - context: A list of contextual data associated with the list. May contain:
 *   - list_style: The ID of the widget plugin this facet uses.
 * - facet: The facet for this result item.
 *   - id: the machine name for the facet.
 *   - label: The facet label.
 *
 * @see facets_preprocess_facets_item_list()
 *
 * @ingroup themeable
 */
#}

{% if not localgov_base_remove_css %}
  {{ attach_library('localgov_base/facets') }}
{% endif %}

<div class="facets-widget facets-widget--{{- facet.widget.type -}}">
  {% if facet.widget.type %}
    {% set attributes = attributes.addClass('facets-widget__list', 'facets-widget__list--' ~ facet.widget.type) %}
  {% endif %}

  {% if items or empty %}
    {% if title is not empty %}
      <h3 class="facets-widget__title">{{ title }}</h3>
    {% endif %}

    {% if items %}
      {% for group in items %}
        {% if group.title %}
          <h4 class="facet-group__title">{{ group.title }}</h4>
        {% endif %}
        <{{ list_type }}{{ attributes }}>
          {% for item in group.items %}
            <li{{ item.attributes }}>{{ item.value }}</li>
          {% endfor %}
        </{{ list_type }}>
      {% endfor %}
        {% else %}
        {{ empty }}
    {% endif %}
  {% endif %}
</div>
