{% from "nhsuk/macros/attributes.njk" import nhsukAttributes %}

{#- Set variant for this component #}
{%- set variant = params.variant -%}

{#- Set classes for this component #}
{%- set classNames = "nhsuk-details" -%}

{#- Support summary as string (with deprecated options) #}
{%- set summary = params.summary if params.summary is mapping and params.summary is not escaped else {
  text: params.summary if params.summary is string else params.summaryText,
  html: params.summary if params.summary is escaped else params.summaryHtml
} -%}

{%- if variant == "reverse" and (not params.classes or not "nhsuk-details--reverse" in params.classes) %}
  {% set classNames = classNames ~ " nhsuk-details--" ~ variant %}
{% endif %}

{%- if params.classes %}
  {% set classNames = classNames ~ " " ~ params.classes %}
{% endif -%}

<details class="{{ classNames }}" {%- if params.id %} id="{{ params.id }}"{% endif %}
  {{- nhsukAttributes(params.attributes) }} {{- " open" if params.open }}>
  <summary class="nhsuk-details__summary {%- if summary.classes %} {{ summary.classes }}{% endif %}"
    {{- nhsukAttributes(summary.attributes) }}>
    <span class="nhsuk-details__summary-text">
    {% if summary.html %}
      {{ summary.html | safe | trim | indent(6) }}
    {% elif summary.text %}
      {{ summary.text | trim | indent(6) }}
    {% endif %}
    </span>
  </summary>
  <div class="nhsuk-details__text">
  {% if caller %}
    {{- caller() }}
  {% elif params.html %}
    {{ params.html | safe | trim | indent(4) }}
  {% elif params.text %}
    {{ params.text | trim | indent(4) }}
  {% endif %}
  </div>
</details>
