{#
    blocks: content

    isSecondary: bool (default=false)
    isPrimary: bool (default=false)
    disabled: bool (default=false)
    type: string (default=button)
    class: string (default='')
    text: string
    url: string
    attr: object
#}

{% set classes = html_classes('b-button', class|default(), {
    'is-primary': isPrimary|default(false),
    'is-secondary': not isPrimary|default(false) and isSecondary|default(false),
}) %}

{% set isLink = (url|default() and not disabled|default(false)) %}
{% set element = isLink ? 'a' : 'button' %}

{% set attr = attr|default({})|merge({
    href: isLink ? url : false,
    class: classes,
    type: type|default(isLink ? false : 'button'),
    disabled: disabled|default(false),
}) %}

<{{ element }}{{ html_attr(attr) }}>
    {% block content %}{{ text|default('') }}{% endblock %}
</{{ element }}>
