{# TODO: Add hasErrors parameter to support server-side invalidation #}

{% set attributes = create_attribute(attributes | default({})) %}
{% set classes = ["c-bolt-input", "c-bolt-input--select"] %}

{% spaceless %}
  <select{{ attributes.addClass(classes) }}>
    {% for option in options %}
      {% set form_select_attributes = option.attributes|default({}) %}
      {% set option_attributes = create_attribute(form_select_attributes) %}
      {% if option.type == 'optgroup' %}
        <optgroup label="{{ option.label }}">
          {% for sub_option in option.options %}
            <option value="{{ sub_option.value }}"{{ sub_option.selected ? ' selected="selected"' }} {{ option_attributes }}>{{ sub_option.label }}</option>
          {% endfor %}
        </optgroup>
      {% elseif option.type == 'option' %}
        <option value="{{ option.value }}"{{ option.selected ? ' selected="selected"' }} {{ option_attributes }}>{{ option.label }}</option>
      {% endif %}
    {% endfor %}
  </select>


  {% if not attributes.multiple %}

    {% set _icons = ["chevron-down"] %}

    <div class="c-bolt-input-icons">
      {% include "@bolt-components-form/form-icons.twig" with {"icons": _icons, icon_size: icon_size } only %}
    </div>

  {% endif %}
{% endspaceless %}
