Kaufmann Commerce UI / Operator family
Admin & Orders
The operator's bar, the constant spine, and an Orders projection whose cells carry posture rather than status.
Admin bar
The third member of the top-bar family and the quietest. No cart, no shop search — an operator is working, not shopping. It composes the same BrandBlock as the storefront bars.
Posture is a gradient, not a status
The founding engines document is explicit: a resolved value carries posture, not a bare boolean — not in_stock: true but true · verified-from-count versus · estimated. Four steps, and they are ordered:
| Posture | Auf der Oberfläche | What it permits you to believe |
|---|---|---|
verified | Gezählt | Known by counting. The strongest thing a projection may say. |
watching | Beobachtet | Known, but moving — something is expected to change it. |
estimated | Geschätzt | Inferred from a rule, not from an observation. |
candidate | Kandidat | Proposed only. Never to be read as a fact. |
They are drawn as a gradient — a mark that fills, halves, hatches and finally dashes — rather than four colours that would read as pass and fail. A green tick beside a candidate would be a lie told in CSS.
Orders
A real table with row headers and a caption, not a grid of divs. Every row states its posture; what cannot be explained is collected beneath it.
| Beleg | Eingegangen | Kundschaft | Betrag | Haltung |
|---|---|---|---|---|
| 2026-0184 | 12.10.2026 | M. Brandt | 36,00 € | Gezählt |
| 2026-0183 | 11.10.2026 | Papeterie Lind | 128,00 € | Beobachtet |
| 2026-0181 | 09.10.2026 | J. Vollmer | 24,00 € | Geschätzt |
| 2026-0179 | 08.10.2026 | Atelier Nord | 62,00 € | Kandidat |
Ungeklärt
- 2026-0183 Zahlung avisiert, noch keine Bankzeile zugeordnet.
- 2026-0181 Versandkosten geschätzt — Zone noch nicht bestätigt.
Residue: the engine typing its own ignorance
Residue is the floor of posture, not a separate warning system. When the book cannot explain something — a payment announced but not yet matched to a bank line, shipping inferred because the zone was never confirmed — it says so, in its own words, beneath the rows it belongs to.
---
import { AdminBar, OrderTable } from "@kaufmann/ui";
---
<AdminBar client:load brand={brand} region="Überblick · Cockpit" />
<OrderTable orders={orders} locale="de-DE" />