{#
/**
 * Available variables:
 * - link_content - the content of the link (typically text)
 * - link_url - the url this link should point to
 * - link_attributes - array of attribute,value pairs
 * - bem_link_element - the base class name
 * - bem_link_modifiers - array of modifiers to add to the base classname
 * - bem_link_block - blockname prepended to the base classname
 * - no_link - if there is no link provided, fall back to span instead of a-tag
 *
 * Available blocks:
 * - link_content - used to replace the content of the link
 *     Example: to insert the image component
 */
#}

{#
  Do we want the link title to show up (e.g. NOT in most navigations, for
  accessibility reasons but yes in other links).
#}
{% set has_link_title = has_link_title ?? true %}

{# if a menu item has no link to pass (see _menu-item.twig), this will be true #}
{% set no_link = no_link|default(false) %}

{% set bem_link_block = bem_link_block|default(false) %}
{% set bem_link_element = bem_link_element|default('link') %}
{% set bem_link_modifiers = bem_link_modifiers|default([]) %}

{% set link_attribute_class = link_attribute_class|default([]) %}

{% set bem_link_extra = bem_link_extra|default([])|merge(link_attribute_class) %}
{% set link_attributes = link_attributes|default(create_attribute()) %}

{# if a menu item has no link to pass (see _menu-item.twig), this will be true #}
{% if no_link %}
  {% set bem_link_modifiers = bem_link_modifiers|merge(['empty']) %}
  <span
    {{ link_attributes.addClass(bem(bem_link_block, bem_link_element, bem_link_modifiers, bem_link_extra)) }}
  >
{% else %}
  {# We might NOT want the link title to show up (e.g. in most navigations, for accessibility reasons). #}
  {% if has_link_title != true %}
    {% set link_attributes = link_attributes.removeAttribute('title') %}
  {% endif %}
  {% if bem_link_block or bem_link_element or link_attributes %}
    {% set link_attributes = link_attributes.addClass(bem(bem_link_block, bem_link_element, bem_link_modifiers, bem_link_extra)) %}
  {% endif %}

  <a {{ link_attributes }}
    href="{{ link_url }}"
  >
{% endif %}
  {% block link_content %}
    {{ link_content }}
  {% endblock link_content %}
{% if no_link %}
  </span>
{% else %}
  </a>
{% endif %}
