{% macro button(icon, values, type) %} {% import '@Tabler/includes/utils.html.twig' as macros %} {%- 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 -%} {% endmacro %}