{% macro button(icon, values, type) %} {% import '@Tabler/includes/utils.html.twig' as macros %} {%- apply spaceless -%} {% if type is same as (false) %} {# when using in dropdown actions for example, which might not have a "btn" class #} {% set class = "" %} {% elseif type is null %} {% set class = "btn " %} {% else %} {% set class = "btn btn-" ~ type ~ " " %} {% endif %} {% set icon = values.icon ?? icon %} {% set disabled = values.disabled ?? false %} {% set url = values.url ?? '#' %} {% set onclick = values.onclick ?? null %} {% set collapse = values.collapse ?? null %} {% set modal = values.modal ?? null %} {% set toggle = values.toggle ?? null %} {% set target = values.target ?? null %} {% set id = values.id ?? null %} {% set title = values.title ?? null %} {% set class = class ~ ( values.class | default("")) %} {% set attr = values.attr ?? {} %} {% set forceTitle = icon is same as (false) or (values.combined ?? false) %} {% set badge = values.badge ?? (values.label ?? null) %} {% set badge_color = values.badgeColor ?? (values.labelColor ?? 'yellow') %} {% set translation_domain = values.translation_domain ?? 'messages' %} {% set translation_params = values.translation_params ?? {} %} {% set isSubmit = values.buttonType is defined and values.buttonType == 'submit' %} {% set buttonType = values.buttonType is defined and (values.buttonType == 'button' or values.buttonType == 'submit') ? 'button' : 'a' %} {% set tooltip = values.tooltip ?? true %} {% set accesskey = values.accesskey is defined ? values.accesskey : null %} {% if type != 'link' and icon is not same as (false) and (not forceTitle and badge is null) and (type is not same as (false)) %} {% set class = class ~ ' btn-icon' %} {% endif %} {% if disabled is same as (true) %} {% set class = class ~ " disabled" %} {% endif %} <{{ buttonType|raw }} class="{{ class | trim }}" {% if buttonType is not same as ("button") %}href="{{ url }}"{% endif %} {%- if disabled is same as (true) %} disabled="disabled"{% endif %} {%- if id is not empty %} id="{{ id }}"{% endif %} {%- if toggle is not empty %} data-bs-toggle="{{ toggle }}"{% endif %} {%- if modal is not empty %} data-bs-toggle="modal" data-bs-target="{{ modal }}"{% endif %} {%- if collapse is not empty %} data-bs-toggle="collapse" data-bs-target="{{ collapse }}"{% endif %} {%- if onclick is not empty %} onclick="{{ onclick }}"{% endif %} {%- if target is not empty %} {% if isSubmit %}formtarget{% else %}target{% endif %}="{{ target }}"{% endif %} {%- if tooltip and not forceTitle and title is not null and type is not same as (false) %} {{ values.tooltip_attr ?? 'data-bs-toggle' }}="tooltip" data-bs-placement="top" title="{{ title|trans(translation_params, translation_domain) }}"{% endif %} {%- if accesskey is not empty %} accesskey="{{ accesskey }}"{% endif %} {{ macros.attr_to_html(attr) }} > {%- if icon is not same as (false) -%} {{ tabler_icon(icon, ("btn-sm" not in class and "btn-lg" not in class), icon) }} {% endif %} {%- if (forceTitle or icon is same as (false)) and title is not null -%} {{ title|trans(translation_params, translation_domain) }} {% endif %} {%- if badge is not null -%} {{ badge }} {%- endif -%} {% endapply %} {% endmacro %}