{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "signed-receipt", "type": "registry:ui", "title": "Signed Receipt", "description": "The ownable audit visual — one hash-chained, Ed25519-signed ledger record, with the signal bar, seal, and mono kv grid.", "dependencies": [ "lucide-react" ], "registryDependencies": [ "@delego/delego-theme" ], "files": [ { "path": "registry/delego/ui/signed-receipt.tsx", "content": "import * as React from \"react\"\nimport { BadgeCheck, ShieldCheck } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\n// Signed receipt — the ownable audit visual: one hash-chained, Ed25519-signed\n// record from the ledger. The left signal bar + seal read \"verified\"; the kv grid\n// is mono, with fingerprint/hash fields tinted in the signal color. Outcome tints\n// to the decision palette.\ntype SignedReceiptProps = React.ComponentProps<\"div\"> & {\n seq: string | number\n outcome: \"allow\" | \"needs_approval\" | \"deny\"\n fingerprint: string\n intentHash: string\n prevHash?: string\n phase?: string\n signatureOk?: boolean\n}\n\nconst OUTCOME_COLOR: Record = {\n allow: \"var(--delego-allow)\",\n needs_approval: \"var(--delego-approval)\",\n deny: \"var(--delego-deny)\",\n}\n\nfunction Row({ k, v, hash }: { k: string; v: React.ReactNode; hash?: boolean }) {\n return (\n <>\n {k}\n \n {v}\n \n \n )\n}\n\nfunction SignedReceipt({\n seq,\n outcome,\n fingerprint,\n intentHash,\n prevHash,\n phase = \"execution\",\n signatureOk = true,\n className,\n ...props\n}: SignedReceiptProps) {\n return (\n \n \n
\n
\n \n
\n
\n receipt · seq {seq}\n
\n {signatureOk && (\n \n \n signature ok\n \n )}\n
\n
\n \n {outcome}}\n />\n \n \n {prevHash ? : null}\n
\n \n )\n}\n\nexport { SignedReceipt, type SignedReceiptProps }\n", "type": "registry:ui", "target": "components/ui/signed-receipt.tsx" } ] }