{% if icon %}{{ icon }}{% endif %}
{% if slot_label %}{{ slot_label|safe }}{% else %}{{ label }}{% endif %}
{% if badge %}{{ badge }}{% endif %}
{% if slot_items %}
{{ slot_items|safe }}
{% else %}
{% for item in items %}
{% comment %}
`navigate` is opt-in per item: a link the app knows points at a
LiveView route carries dj-navigate so a plain left click goes over
the open socket instead of reloading the document. The href is
what makes the rest still work — copy-link, crawlers, and the
modified clicks (Cmd, Ctrl, Shift, Alt, middle button) that
dj-navigate deliberately does not intercept.
{% endcomment %}
{% if item.icon %}{{ item.icon }}{% endif %}
{{ item.label }}
{% if item.badge %}{{ item.badge }}{% endif %}
{% endfor %}
{% endif %}