{% macro button(label, variant="primary", size="md", type="button", href=None, class_name="", disabled=False) -%}
{% set variants = {
"primary": "bg-slate-900 text-white hover:bg-slate-700 focus-visible:outline-slate-900",
"secondary": "bg-white text-slate-900 ring-1 ring-inset ring-slate-300 hover:bg-slate-50 focus-visible:outline-slate-900",
"danger": "bg-red-600 text-white hover:bg-red-500 focus-visible:outline-red-600"
} %}
{% set sizes = {
"sm": "rounded-md px-3 py-2 text-sm",
"md": "rounded-lg px-4 py-2.5 text-sm",
"lg": "rounded-lg px-5 py-3 text-base"
} %}
{% set classes = "inline-flex items-center justify-center gap-2 font-semibold shadow-sm transition focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 disabled:pointer-events-none disabled:opacity-50 " ~ variants.get(variant, variants["primary"]) ~ " " ~ sizes.get(size, sizes["md"]) ~ " " ~ class_name %}
{% if href %}
{{ label }}
{% else %}
{% endif %}
{%- endmacro %}