{% set defaults = {
	isButton: false,
	isSnug: false,
	isCard: false,
	type: "submit",
	attributes: [],
	classes: [],
	url: "",
	text: 'Read more',
	target: false,
	icon: "outline/chevron-right",
} %}

{% set self = defaults|merge(self) %}

{% import 'macros' as macros %}

{% set classes = self.classes is iterable ? self.classes : [] %}

{% if self.url or self.isButton %}
	{% set classes = classes|merge(["group", "hocus:bg-blue-500"]) %}
{% else %}
	{% set classes = classes|merge(["group-hocus:bg-blue-500"]) %}
{% endif %}
{% if self.isSnug %}
	{% set classes = classes|merge(["btn--snug"]) %}
{% endif %}
{% if self.isCard %}
	{% set classes = classes|merge(["btn--card"]) %}
{% endif %}

<{%- if self.url -%}
	a
	href="{{ self.url }}"
	{% if self.target %}target="_blank"{% endif %}
{%- elseif self.isButton -%}
	button type="{{ self.type }}"
{%- else -%}
	span
{%- endif %} class="btn text-white bg-blue-700{{ classes|length ? " #{classes|join(' ')}" }}" {{ macros.addAttributes(self.attributes) }}>
	{% if self.text %}
		<span class="{{ not self.icon ? null : (self.isSnug ? "mr-4" : "mr-8") }}">{{ self.text }}</span>
	{% endif %}
	{% if self.icon %}
		{{ macros.icon(self.icon, "group-hocus:-translate-x-2" ~ (self.isSnug ? " text-xs" : null)) }}
	{% endif %}
</{{ self.url ? 'a' : self.isButton ? 'button' : 'span'}}>
