import { cn } from '@/lib/utils' /** * Register-detail document grammar (customers, suppliers, articles). * * A detail page is one flowing document, not a pile of cards: each group of * facts is introduced by an uppercase hairline kicker and set as aligned * label/value rows. The kicker's hairline is the only rule; groups are * separated by whitespace, never borders (Living Paper, design.md). */ export function DetailSection({ kicker, aside, children, className, }: { kicker: string /** Optional right-aligned element on the kicker line: a count, a quiet action. */ aside?: React.ReactNode children: React.ReactNode className?: string }) { return (

{kicker}

{aside}
{children}
) } export function DefRow({ label, children, className, }: { label: string children: React.ReactNode className?: string }) { return (
{label}
{children}
) } /** * Muted placeholder for a value that matters but is not filled in. The en dash * is the literal rendered value (same vocabulary as the orders list), which is * why it is allowed to be a dash at all. */ export function DefEmpty() { return {'–'} }