{# Parameters:
  - message (string) (default: '')
  - heading (string) (default: '')
  - variant (string) (default: 'primary')
  - dismissible (boolean) (default: true)
  - animated_dismiss (boolean) (default: true)
  - icon_path (string) (default: '')
  - icon_name (string) (default: '')
  - attributes (drupal attrs)
#}

{%- set _message = message|default('') %}
{% set _heading = heading|default('') %}
{% set _variant = variant|default('primary') %}
{% set _dismissible = dismissible ?? true %}
{% set _animated_dismiss = animated_dismiss ?? true %}
{% set _icon_path = icon_path|default('') %}
{% set _icon_name = icon_name|default('') %}

{%- set _classes = ['alert', 'alert-' ~ _variant|e('html_attr'), 'd-flex', 'align-items-center'] %}
{% set _icon_names = {
    primary: "info-circle-fill",
    secondary: "info-circle-fill",
    success: "check-circle-fill",
    danger: "dash-circle-fill",
    warning: "exclamation-triangle-fill",
    light: "info-circle-fill",
    info: "info-circle-fill",
    dark: "info-circle-fill",
  }
%}

{%- if _dismissible %}
  {%- set _classes = _classes|merge(['alert-dismissible']) %}
{% endif %}
{% if _animated_dismiss %}
  {%- set _classes = _classes|merge(['fade', 'show']) %}
{% endif %}

{%- set _classes = _classes|merge(['text-dark']) %}

{%- set _icon_classes = ['flex-shrink-0 me-3 mt-1 align-self-start' ] %}

{%- if _variant != 'light' %}
  {%- set _icon_classes = _icon_classes|merge(['text-' ~ _variant]) %}
{% endif %}

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

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

<div {{ attributes }}>
{%- if _icon_path is not empty %}
  {%- include '@oe-bcl/bcl-icon/icon.html.twig' with {
    name: _icon_name ?: _icon_names[_variant],
    size: 's',
    path: _icon_path,
    attributes: create_attribute().addClass(_icon_classes),
  } only %}
{% endif -%}
  <div class="alert-content flex-grow-1">
  {%- if _heading is not empty -%}
    <div class="alert-heading h4">{{ _heading }}</div>
  {%- endif -%}
  {%- if _message is not empty -%}
    {{- _message -}}
  {%- endif -%}
  </div>
{%- if _dismissible -%}
  <button
    type="button"
    class="btn-close"
    data-bs-dismiss="alert"
    aria-label="Close"
  ></button>
{%- endif -%}
</div>
{#--#}
