{# Parameters:
  - type (string) (default: 'border')
    - options ['border', 'grow']
  - variant (string) (default: '')
  - size (string) (default: '')
    - options ['sm', 'lg']
  - assistive_text (string) (default: '')
  - attributes (drupal attrs)
#}

{%- set _type = type|default('border') %}
{% set _variant = variant|default('') %}
{% set _size = size|default('') %}
{% set _assistive_text = assistive_text|default('') %}

{%- set _classes = ['spinner-' ~ _type] %}
{% if _size is not empty %}
  {%- set _classes = _classes|merge(['spinner-' ~ _type ~ '-' ~ _size]) %}
{% endif %}
{% if _variant is not empty %}
  {%- set _classes = _classes|merge(['text-' ~ _variant]) %}
{% endif %}

{%- if attributes is empty %}
  {%- set attributes = create_attribute() %}
{% endif %}

{%- set attributes = attributes.addClass(_classes).setAttribute('role', 'status') -%}

<div
  {{ attributes }}
>
{%- if _assistive_text is not empty -%}
  <span class="visually-hidden">{{ _assistive_text }}</span>
{%- endif -%}
</div>
{#--#}
