{#
  AAE Form File — renders <input type="file">.
  name falls back to _cssid, then element id; `multiple` appends [] so every
  chosen file rides the same submission key. The accept prop ('pdf,jpg' or
  '.pdf,.jpg') is normalized to the browser's ".ext,.ext" format; the raw
  extension list + size/count rules also ride as data attrs for the runtime's
  client-side validation (the server re-validates from the schema).
#}
{% set classes = ['aae-a-form-file', '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 accept_exts = [] %}
{% for part in (settings.accept | default('')) | split(',') %}
    {% set ext = part | trim | trim('.', 'left') | lower %}
    {% if ext is not empty %}
        {% set accept_exts = accept_exts | merge([ext]) %}
    {% endif %}
{% endfor %}

<input
    class="{{ classes }} {{ editor_classes | default('') }}"
    type="file"
    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 settings._cssid is defined and settings._cssid is not empty %}id="{{ settings._cssid | e('html_attr') }}"{% endif %}
    {% if accept_exts is not empty %}accept=".{{ accept_exts | join(',.') }}" data-aae-accept="{{ accept_exts | join(',') | e('html_attr') }}"{% endif %}
    {% if settings.max_size is defined and settings.max_size is not empty %}data-aae-max-size="{{ settings.max_size | e('html_attr') }}"{% endif %}
    {% if settings.multiple %}multiple{% endif %}
    {% if settings.multiple and settings.max_files is defined and settings.max_files is not empty %}data-aae-max-files="{{ settings.max_files | e('html_attr') }}"{% endif %}
    {% if settings.required %}required aria-required="true"{% 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 }}
/>
