{% set variant = variant|default(type|default('primary')) %}
{% set size = size|default('md') %}
{% set href = href|default(null) %}
{% set disabled = disabled|default(false) %}
{% set loading = loading|default(false) %}
{% set iconOnly = icon_only|default(false) %}
{% set variantClasses = {
primary: 'btn-primary',
secondary: 'btn-secondary',
outline: 'btn-outline',
ghost: 'btn-ghost',
danger: 'btn-danger',
success: 'btn-success'
} %}
{% set classes = [
'btn',
variantClasses[variant]|default('btn-primary'),
size == 'sm' ? 'btn-sm' : '',
iconOnly ? 'btn-icon btn-icon-only' : '',
loading ? 'btn-loading' : '',
class|default('')
]|filter(value => value)|join(' ') %}
{% set accessibleLabel = aria_label|default(iconOnly ? label|default('') : '') %}
{% if href %}
{% if icon is defined %}{{ icon|raw }}{% endif %}
{% if not iconOnly %}{{ label|default('')|raw }}{% endif %}
{% else %}
{% endif %}