{% load allauth %}
{% comment %}
Three branches because a Cotton attribute is always written out: `form=""`
on a plain submit button would detach it from its form. `link` and `ghost`
are attributes of the button, not variants, so their classes are written
in `class`, where a tag can decide them.
{% endcomment %}
{% with tags=attrs.tags|default:"" %}
{% if attrs.href %}
{% slot %}
{% endslot %}
{% elif attrs.form %}
{% slot %}
{% endslot %}
{% else %}
{% slot %}
{% endslot %}
{% endif %}
{% endwith %}