{% set DEFAULT_ALERT_SETTINGS = {
  className: '',
  head: '',
  icon: '',
  canClose: false,
  actions: [],
  closeAttrs: {
    '@click': '$root.remove()'
  },
  attrs: {}
} %}

{% macro Alert(settings = {}) %}
  {% set settings = merge(DEFAULT_ALERT_SETTINGS, settings) %}
  {% set classNames = [settings.className] %}

  <div
    class="alert {{ setClass(classNames) }}"
    x-data
    {{ Helpers.setAttributes(settings.attrs) }}>
    {% if settings.icon %}
      <span class="alert__icon">
        {{ Helpers.svg(settings.icon) }}
      </span>
    {% endif %}

    <div class="alert__content">
      {% if settings.head %}
        <p class="alert__title"> {{ settings.head }} </p>
      {% endif %}

      <div class="alert__text rte">
        {{ caller() }}
      </div>

      {% if settings.actions | length %}
        <div class="alert__actions">
          {% for item in settings.actions  %}
            <a href="{{ item.href }}" class="alert__action {{ item.classNames }}">{{ item.text }}</a>
          {% endfor %}
        </div>
      {% endif %}
    </div>

    {% if settings.canClose %}
      <button class="alert__button-close" aria-label="Close" type="button" {{ Helpers.setAttributes(settings.closeAttrs) }}>
        <span aria-hidden="true">
          {{ Helpers.svg('icons/close') }}
        </span>
      </button>
    {% endif %}
  </div>
{% endmacro %}
