{#
  AAE Form Select — renders <select> with options parsed from the `options`
  prop: one line per option, "value|Label|selected" (label falls back to the
  value; the optional 3rd part "selected" pre-selects that option). name
  falls back to _cssid, then element id. `multiple` appends [] to the name so
  PHP receives all selected values. `placeholder` sets the multi-select UI's
  empty-state label (data-placeholder) and, for a single select, an empty
  first option.
#}
{% set classes = ['aae-a-form-select', 'e-atomic-element', base_styles.base | default('')] | merge(settings.classes | default([])) | join(' ') | trim %}
{% set base_name = settings.name is defined and settings.name is not empty ? settings.name : (settings._cssid is defined and settings._cssid is not empty ? settings._cssid : id) %}
{% set input_name = settings.multiple ? base_name ~ '[]' : base_name %}
{% set placeholder = settings.placeholder | default('') | trim %}

<select
    class="{{ classes }} {{ editor_classes | default('') }}"
    name="{{ input_name | e('html_attr') }}"
    data-id="{{ id }}"
    data-element_type="{{ type }}"
    data-e-type="{{ type }}"
    data-interaction-id="{{ interaction_id | default(id) }}"
    {% if placeholder is not empty %}data-placeholder="{{ placeholder | e('html_attr') }}"{% endif %}
    {% if settings._cssid is defined and settings._cssid is not empty %}id="{{ settings._cssid | e('html_attr') }}"{% endif %}
    {% if settings.required %}required aria-required="true"{% endif %}
    {% if settings.multiple %}multiple{% endif %}
    {% if settings.error_message is defined and settings.error_message is not empty %}data-aae-error-message="{{ settings.error_message | e('html_attr') }}"{% endif %}
    {% if settings.attributes is defined and settings.attributes is not empty %}{{ settings.attributes | raw }}{% endif %}
    {{ editor_attributes | default('') | raw }}
>
    {# Single select: a non-selectable placeholder as the empty first option. #}
    {% if not settings.multiple and placeholder is not empty %}
        <option value="" disabled selected hidden>{{ placeholder }}</option>
    {% endif %}
    {% for line in (settings.options | default('')) | split('\n') %}
        {% if line | trim is not empty %}
            {% set parts = line | split('|') %}
            {% set opt_value = (parts[0] | default('')) | trim %}
            {% set opt_label = (parts[1] | default(opt_value)) | trim %}
            {% set opt_selected = (parts[2] | default('')) | trim | lower == 'selected' %}
            <option value="{{ opt_value | e('html_attr') }}"{% if opt_selected %} selected{% endif %}>{{ opt_label }}</option>
        {% endif %}
    {% endfor %}
</select>
