{#
/**
 * @file
 * Default theme implementation for a details element.
 *
 * Available variables
 * - attributes: A list of HTML attributes for the details element.
 * - errors: (optional) Any errors for this details element, may not be set.
 * - title: (optional) The title of the element, may not be set.
 * - summary_attributes: A list of HTML attributes for the summary element.
 * - description: (optional) The description of the element, may not be set.
 * - children: (optional) The children of the element, may not be set.
 * - value: (optional) The value of the element, may not be set.
 *
 * @see \Drupal\Core\Form\FormPreprocess::preprocessDetails()
 *
 * @ingroup themeable
 */
#}
<details{{ attributes }}>
  {%
    set summary_classes = [
      required ? 'js-form-required',
      required ? 'form-required',
    ]
  %}
  {%- if title -%}
    <summary{{ summary_attributes.addClass(summary_classes) }}>{{ title }}</summary>
  {%- endif -%}

  {% if errors %}
    <div>
      {{ errors }}
    </div>
  {% endif %}

  {%- if description -%}
    {% set description_attributes = create_attribute({id: attributes['aria-describedby']}) %}
    <div{{ description_attributes }}>{{ description }}</div>
  {%- endif -%}

  {{ children }}
  {{ value }}
</details>
