{#
  AAE Form Textarea — renders a single <textarea>.
  name falls back to _cssid, then element id, so submitted data always has a key.
#}
{% set classes = ['aae-a-form-textarea', 'e-atomic-element', base_styles.base | default('')] | merge(settings.classes | default([])) | join(' ') | trim %}
{% set input_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) %}

{# Placeholder colour: class-scoped rules in form.scss — see
   aae-a-form-input.html.twig. #}
<textarea
    class="{{ classes }} {{ editor_classes | default('') }}"
    name="{{ input_name | e('html_attr') }}"
    rows="{{ settings.rows | default(4) }}"
    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 settings.placeholder is defined and settings.placeholder is not empty %}placeholder="{{ settings.placeholder | e('html_attr') }}"{% endif %}
    {% if settings.required %}required aria-required="true"{% endif %}
    {% if settings.readonly %}readonly{% 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 }}
></textarea>
