{% sw_extends '@Storefront/storefront/page/checkout/_page.html.twig' %}
{% block page_checkout %}
{# ═══════════════════════════════════════════
CHECKOUT STEPPER — 3-Step Wizard
Only visible on confirm page (after login) and finish page
Steps: Anschrift → Zahlung → Bestellung abschließen
═══════════════════════════════════════════ #}
{% set isConfirmPage = controllerAction|lower == 'confirmpage' %}
{% set isFinishPage = controllerAction|lower == 'finishpage' %}
{% set showStepper = isConfirmPage or isFinishPage %}
{% set steps = [
{ number: 1, label: 'checkoutStepper.address'|trans },
{ number: 2, label: 'checkoutStepper.payment'|trans },
{ number: 3, label: 'checkoutStepper.summary'|trans },
] %}
{% if showStepper %}
<nav class="checkout-stepper"
aria-label="{{ 'checkoutStepper.progress'|trans }}"
data-label-continue="{{ 'checkoutStepper.continue'|trans }}"
data-label-back="{{ 'checkoutStepper.back'|trans }}"
data-label-edit-address="{{ 'checkoutStepper.editAddress'|trans }}"
data-label-edit-payment="{{ 'checkoutStepper.editPayment'|trans }}"
data-label-step-1="{{ steps[0].label }}"
data-label-step-2="{{ steps[1].label }}"
data-label-step-3="{{ steps[2].label }}">
<div class="container">
<ol class="checkout-stepper__list">
{% for step in steps %}
{# On finish page: all completed. On confirm: JS manages state #}
{% if isFinishPage %}
{% set state = 'completed' %}
{% else %}
{# Default: step 1 active, rest upcoming. JS overrides this immediately #}
{% set state = step.number == 1 ? 'active' : 'upcoming' %}
{% endif %}
<li class="checkout-stepper__item checkout-stepper__item--{{ state }}" {% if state == 'active' %}aria-current="step"{% endif %}>
{# Connector line #}
{% if not loop.first %}
<div class="checkout-stepper__connector">
<div class="checkout-stepper__connector-fill {% if state == 'completed' or state == 'active' %}checkout-stepper__connector-fill--active{% endif %}"></div>
</div>
{% endif %}
{# Step circle + label #}
{% if state == 'completed' %}
<span class="checkout-stepper__step" style="cursor: default;">
<span class="checkout-stepper__circle checkout-stepper__circle--completed">
<svg width="14" height="14" viewBox="0 0 14 14" fill="none">
<path d="M11.6 3.5L5.25 9.85L2.4 7" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
</span>
<span class="checkout-stepper__label">{{ step.label }}</span>
</span>
{% elseif state == 'active' %}
<span class="checkout-stepper__step">
<span class="checkout-stepper__circle checkout-stepper__circle--active">{{ step.number }}</span>
<span class="checkout-stepper__label checkout-stepper__label--active">{{ step.label }}</span>
</span>
{% else %}
<span class="checkout-stepper__step">
<span class="checkout-stepper__circle checkout-stepper__circle--upcoming">{{ step.number }}</span>
<span class="checkout-stepper__label checkout-stepper__label--upcoming">{{ step.label }}</span>
</span>
{% endif %}
</li>
{% endfor %}
</ol>
</div>
</nav>
{% endif %}
{{ parent() }}
{% endblock %}