32 lines
1.9 KiB
HTML
32 lines
1.9 KiB
HTML
{# Mini-cart preview shown on hover over the navbar cart (Alza-style).
|
||
Lazy-loaded via htmx from /partials/cart into the hover dropdown panel in
|
||
base.html. Receives: items[], total, currency, lang. #}
|
||
{% import "macros/ui.html" as ui %}
|
||
{% if items | length > 0 %}
|
||
<div class="max-h-80 divide-y divide-outline overflow-y-auto dark:divide-outline-dark">
|
||
{% for item in items %}
|
||
<div class="flex items-start gap-3 px-4 py-3">
|
||
<div class="min-w-0 flex-1">
|
||
<a href="/shop/{{ item.slug }}" class="block truncate text-sm font-medium text-on-surface-strong hover:text-primary dark:text-on-surface-dark-strong dark:hover:text-primary-dark">{{ item.name }}</a>
|
||
<p class="mt-0.5 text-xs tabular-nums text-on-surface dark:text-on-surface-dark">{{ item.quantity }} × {{ item.price }} {{ item.currency }}</p>
|
||
</div>
|
||
<span class="shrink-0 text-sm font-semibold tabular-nums text-on-surface-strong dark:text-on-surface-dark-strong">{{ item.line_total }} {{ item.currency }}</span>
|
||
</div>
|
||
{% endfor %}
|
||
</div>
|
||
<div class="border-t border-outline px-4 py-3 dark:border-outline-dark">
|
||
<div class="mb-3 flex items-center justify-between">
|
||
<span class="text-sm text-on-surface dark:text-on-surface-dark">{{ t(key="cart-total", lang=lang | default(value='sk')) }}</span>
|
||
<span class="text-base font-bold tabular-nums text-primary dark:text-primary-dark">{{ total }} {{ currency }}</span>
|
||
</div>
|
||
<div class="flex gap-2">
|
||
{{ ui::button(href="/cart", variant="outline-primary", label=t(key="cart-title", lang=lang | default(value='sk')), extra="flex-1", attrs='hx-boost="false"') }}
|
||
{{ ui::button(href="/checkout", variant="primary", label=t(key="cart-checkout", lang=lang | default(value='sk')), extra="flex-1", attrs='hx-boost="false"') }}
|
||
</div>
|
||
</div>
|
||
{% else %}
|
||
<div class="px-4 py-10 text-center text-sm text-on-surface dark:text-on-surface-dark">
|
||
{{ t(key="cart-empty", lang=lang | default(value='sk')) }}
|
||
</div>
|
||
{% endif %}
|