{# LIBRARIES #}
{{ attach_library('ui_patterns/libraries.bs_buttons') }}
{{ attach_library('ui_patterns/form-form.form_lib') }}

{# VARIABLES #}
{% set value = value|default("submit") %}
{% set btn_type = btn_type|default("submit") %}
{% set text = text|default(value) %}
{% set outline = outline|default(false) %}
{% set expanded = expanded|default(false) %}
{% set size = size|default('md') %}
{% set tag = tag|default('button') %}
{% set status = status|default('default') %}
{% set attributes = attributes|default(create_attribute()) %}
{% set class = class|default("") %}
{% set icon_position = icon_position|default('right') %}
{% set style = "" %}

{% if outline %}
  {% set style = "btn-outline-#{status}" %}
{% elseif status is not empty %}
  {% set style = "btn-#{status}" %}
{% endif %}

{% set class = [
  class,
  'btn',
  expanded ? 'w-100',
  style,
  'btn-' ~ size,
] %}

{% if url is not empty %}
  {% set attributes = attributes.setAttribute('href', url) %}
  {% set tag = 'a' %}
{% endif %}

{# TEMPLATE #}
<{{ tag }}
  {{ attributes.addClass(class | sort | join(' ') | trim) }}
  {% if tag in ['input', 'button'] %} value="{{ value }}" type="{{ btn_type }}" {% endif %}
>
{% if tag in ['a', 'button', 'span'] %}
  {% if icon and icon_position == 'left' %}
    <i class="{{ icon }}"></i>
  {% endif %}
  {{ text|raw }}
  {% if icon and icon_position == 'right' %}
    <i class="{{ icon }}"></i>
  {% endif %}
{% endif %}
</{{ tag }}>
