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

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

{%- if params.size and
  params.size in ["s", "m", "l", "xl"] and (
    not params.classes or (
      not "nhsuk-label--s" in params.classes and
      not "nhsuk-label--m" in params.classes and
      not "nhsuk-label--l" in params.classes and
      not "nhsuk-label--xl" in params.classes
    )
  )
%}
  {% set classNames = classNames ~ " nhsuk-label--" ~ params.size %}
{% endif %}

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

{%- if caller or params.html or params.text %}
{% set labelHtml %}
<label
  {{- nhsukAttributes({
    class: classNames,
    id: {
      value: params.id,
      optional: true
    },
    for: {
      value: params.for,
      optional: true
    }
  }) -}}

  {{- nhsukAttributes(params.attributes) }}>
{% if caller or params.html %}
  {{ caller() if caller else params.html | safe | trim | indent(2) }}
{% elif params.text %}
  {{ params.text | trim | indent(2) }}
{% endif %}
</label>
{% endset -%}

{% if params.isPageHeading %}
<h1 class="nhsuk-label-wrapper">
  {{ labelHtml | safe | trim | indent(2) }}
</h1>
{% else %}
{{ labelHtml | safe | trim }}
{% endif %}
{% endif %}
