{% set icon = _args.icon|default(null) %}
{% set text = _args.text|default(null) %}
{% set type = _args.type|default('button') %}
{% set styles = _args.styles|default(['default']) %}
{% set unstyled = _args.unstyled|default(false) %}
{% set form = _args.form|default({}) %}
{% set attr = _args.attr|default({}) %}
{% if styles is not iterable %}
{% set styles = styles|split(' ') %}
{% endif %}
{% if icon is not empty %}
{% set styles = styles|merge(['icon']) %}
{% endif %}
{% set attr = attr|merge(form|merge({
class: (unstyled) ? attr.class|default('') : '%s btn btn-%s'|format(
attr.class|default(''),
styles|join(' btn-')|trim
)|trim,
type: type,
})) %}
<button {{ attributes(attr) }}>
{%- if text -%}{{- text -}}{%- endif -%}
{%- if icon is not empty -%}<i class="{{- icon -}}"></i>{%- endif -%}
</button>