{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "signing-progress-list", "type": "registry:component", "title": "Signing Progress List", "description": "Standalone per-document signing status list for pending, signing, signed, and failed rows.", "registryDependencies": [ "badge" ], "dependencies": [ "lucide-react" ], "files": [ { "path": "registry/default/signing-progress-list/signing-progress-list.tsx", "type": "registry:component", "target": "@components/signature-kit/signing-progress-list.tsx", "content": "\"use client\";\n\nimport { CheckCircle2, Loader2, XCircle } from \"lucide-react\";\nimport * as React from \"react\";\n\nimport { Badge } from \"@/components/ui/badge\";\nimport { cn } from \"@/lib/utils\";\n\nexport type SigningProgressRow = {\n readonly id: string;\n readonly name: string;\n readonly status: \"pending\" | \"signing\" | \"signed\" | \"failed\";\n readonly error?: unknown;\n};\n\nexport type SigningProgressListProps = {\n readonly rows: ReadonlyArray;\n readonly formatError?: (error: unknown) => string;\n readonly emptyLabel?: string;\n readonly className?: string;\n};\n\nconst statusLabel = (status: SigningProgressRow[\"status\"]): string => {\n if (status === \"pending\") return \"Pending\";\n if (status === \"signing\") return \"Signing\";\n if (status === \"signed\") return \"Signed\";\n return \"Failed\";\n};\n\nconst statusVariant = (status: SigningProgressRow[\"status\"]): \"secondary\" | \"outline\" =>\n status === \"signed\" || status === \"signing\" ? \"secondary\" : \"outline\";\n\nexport function SigningProgressList({\n rows,\n formatError,\n emptyLabel = \"No documents queued yet.\",\n className,\n}: SigningProgressListProps) {\n return (\n
\n {rows.length === 0 ? (\n

\n {emptyLabel}\n

\n ) : (\n \n )}\n
\n );\n}\n" } ] }