{% set icon = _args.icon|default(null) %}
{% set text = _args.text|default(null) %}
{% set image = _args.image|default(null) %}
{% set link = _args.link|default('#') %}
{% set target = _args.target|default(null) %}
{% set styles = _args.styles|default(['default']) %}
{% set dropdown = _args.dropdown|default(null) %}
{% set drop = _args.drop|default('down') %}
{% set dropattr = _args.dropattr|default({}) %}
{% set modal = _args.modal|default(null) %}
{% set sidepanel = _args.sidepanel|default(null) %}
{% set attr = _args.attr|default({}) %}
{% set post = _args.post|default(null) %}
{% set form = _args.form|default(null) %}
{% set churnzero = _args.churnzero|default(null) %}
{% if styles is not iterable %}
{% set styles = styles|split(' ') %}
{% endif %}
{% if icon is not empty %}
{% set styles = styles|merge(['icon']) %}
{% endif %}
{% set dropattr = dropattr|merge({
class: 'btn-group drop%s %s'|format(
drop,
dropattr.class|default(''),
)|trim,
}) %}
{% set attr = attr|merge({
class: '%s btn btn-%s %s'|format(
attr.class|default(''),
styles|join(' btn-')|trim,
(dropdown) ? 'dropdown-toggle' : ''
)|trim,
href: link,
target: target,
'data-post': (post) ? ((post is same as(true)) ? '' : post|json_encode) : null,
'data-toggle': sidepanel ? 'sidepanel' : ((dropdown) ? 'dropdown' : ((modal) ? 'modal' : null)),
'data-target': sidepanel ? ('#' ~ sidepanel) : (modal ? ('#' ~ modal) : null),
'data-form': form ? ('#' ~ form) : null,
'data-churnzero': churnzero and churnzero.event is defined ? churnzero.event : null,
'data-churnzero-extras': churnzero and churnzero.extras is defined ? churnzero.extras|json_encode : null,
}) %}
{% if dropdown %}
<div {{ attributes(dropattr) }}>
{% endif %}
<a {{ attributes(attr) }}>
{% if image %}
<img src="{{ image }}" />
{% endif %}
{% if text %}<span>{{ text }}</span>{% endif %}
{% if icon %}<i class="{{ icon }}"></i>{% endif %}
</a>
{% if dropdown %}
{% include '@ui2022/dropdown__menu.html.twig' with dropdown %}
</div>
{% endif %}