feat(ui): Adressen, Retoure, Suche und Cookie-Hinweis

- Adressen im Zweierraster, Standardadresse mit Honigrahmen und Wabenmarke,
  neues Adressformular in der Formular-Karte
- Retoure: Positionen als Liste mit Waben, Formular in der Karte
- Suche: Vorschlaege gleiten gestaffelt herein, Suchbegriff hervorgehoben,
  Lupe wird zum Schliessen-Symbol; das Feld legt sich ueber die Navigation
  statt sie zu verschieben (vorher: waagerechter Scrollbalken)
- Cookie-Hinweis als schwebende Karte; "Nur notwendige" und "Alle
  akzeptieren" gleich gewichtet (vorher war Akzeptieren Waldgruen auf
  Waldgruen und kaum als Knopf erkennbar)

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-09-25 13:24:07 +02:00
1 parent baebf78ee4
commit d4bb6ec1cf
4 files changed
+125 -48

No files matched your search

@@ -1,5 +1,6 @@
import { redirect, notFound } from "next/navigation";
import { Container, SectionHeading, Button } from "@/components/ui";
import { Container, SectionHeading, Button, FormPanel } from "@/components/ui";
import { HexMark } from "@/components/honeycomb";
import { BackLink } from "@/components/back-link";
import { getCurrentCustomer } from "@/lib/auth";
import { prisma } from "@/lib/prisma";
@@ -46,15 +47,17 @@ export default async function RetourePage(props: PageProps<"/konto/bestellungen/
<BackLink href="/konto/bestellungen" label={t.retourePage.backLabel} />
<SectionHeading eyebrow={t.retourePage.orderEyebrow(order.orderNumber)} title={t.retourePage.title} />
<ul className="mt-8 text-sm text-ink/70 space-y-1">
<FormPanel className="mt-8">
<ul className="divide-y divide-ink/10 border-y border-ink/10 text-sm text-ink/75">
{order.items.map((item) => (
<li key={item.id}>
{item.quantity} × {item.productName}
<li key={item.id} className="flex items-center gap-3 py-3">
<HexMark className="h-2.5 w-2.5 text-honey" />
<span className="tabular-nums text-ink/55">{item.quantity} ×</span>
<span className="font-serif text-lg text-forest">{item.productName}</span>
</li>
))}
</ul>
<form action={requestReturnAction} className="mt-6 space-y-4">
<input type="hidden" name="orderId" value={order.id} />
<div>
@@ -73,6 +76,7 @@ export default async function RetourePage(props: PageProps<"/konto/bestellungen/
</div>
<Button type="submit">{t.retourePage.submit}</Button>
</form>
</FormPanel>
</Container>
</div>
);