{#
  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), set further down below by checking url.
#}
{% set no_link = false %}

{% set bem_item_block = bem_item_block|default('menu') %}
{% set bem_item_element = bem_item_element|default('item') %}

{% set bem_link_block = bem_link_block|default(bem_item_block) %}
{% set bem_link_element = bem_link_element|default('link') %}

{% set bem_item_modifiers = bem_item_modifiers|default([]) %}
{% set bem_item_extra = bem_item_extra|default([]) %}

{% if item.in_active_trail == TRUE %}
  {% set bem_item_modifiers = bem_item_modifiers|merge(['active']) %}
{% endif %}
{% if menu_level > 0 %}
  {% set bem_item_modifiers = bem_item_modifiers|merge(['sub', 'sub-' ~ menu_level]) %}
{% endif %}
{% if item.below %}
  {% set bem_item_modifiers = bem_item_modifiers|merge(['with-sub']) %}
  {% set bem_item_extra = bem_item_extra|merge(['has-sub']) %}
{% endif %}
{# Below could maybe be done without a loop? #}
{% for modifier in item.modifiers %}
  {% set bem_item_modifiers = bem_item_modifiers|merge([modifier]) %}
{% endfor %}

{% if item.url.options.attributes is empty %}
  {% set item_link_attributes = create_attribute() %}
{% else %}
  {% set item_link_attributes = create_attribute(item.url.options.attributes) %}
{% endif %}

{% set item_link_attributes = item_link_attributes.addClass(link_attribute_class) %}

{% embed "@rocketship-theme-starter-atoms/03-lists/list--ul/_list-item.twig" with {
  list_item_label,
  list_item_content,
  "bem_li_block": bem_item_block,
  "bem_li_element": bem_item_element,
  "bem_li_modifiers": bem_item_modifiers,
  "bem_li_extra": bem_item_extra,
} %}
  {% block list_item_content %}
    {% if item.url.isRouted() == true and item.url.getRouteName() == '<nolink>' %}
      {% set no_link = true %}
    {% endif %}

    {% include "@rocketship-theme-starter-atoms/01-links/00-link/_link.twig" with {
      "link_content": item.title,
      "link_url": item.url,
      no_link,
      "bem_link_block": bem_item_block,
      bem_link_element,
      "bem_link_modifiers": bem_item_modifiers,
      "has_link_title": has_link_title,
      'link_attributes': item_link_attributes,
    } %}
    {% if item.below %}
      <button type="button" class="expand-sub"
        aria-expanded="false" aria-controls="submenu-{{ item.title|clean_class }}"
        aria-label="{{ 'Submenu @page'|t({
          '@page': item.title,
        }) }}"
      >
      </button>
      {% import "@rocketship-theme-starter-molecules/menus/menu/_menu--macros.twig" as menus %}
      {{ menus.menu_links(
        item.below,
        attributes.setAttribute('id', 'submenu-' ~ item.title|clean_class),
        has_link_title,
        menu_level + 1,
        bem_menu_block,
        bem_menu_element,
        bem_menu_modifiers,
        bem_item_block,
        bem_item_element,
        bem_item_modifiers,
        item
      ) }}
    {% endif %}
  {% endblock list_item_content %}
{% endembed %}
