{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "block-card", "title": "Block card", "description": "Compact Bitcoin block summary.", "dependencies": [ "lucide-react" ], "registryDependencies": [ "dennisonbertram/bitcoin-ui/bitcoin-amount", "dennisonbertram/bitcoin-ui/hash-display" ], "files": [ { "path": "components/bitcoin/block-card.tsx", "content": "import { Box, Database, Scale, Timer } from \"lucide-react\";\nimport type { ComponentProps } from \"react\";\n\nimport {\n formatBlockHeight,\n formatBytes,\n formatRelativeTime,\n formatTimestamp,\n formatWeight,\n toDate,\n type BitcoinBlock,\n} from \"@/lib/bitcoin\";\nimport { componentClasses } from \"@/lib/utils\";\n\nimport { BitcoinAmount } from \"./bitcoin-amount\";\nimport { HashDisplay } from \"./hash-display\";\nimport { panelStyles, type BitcoinVisualProps } from \"./shared\";\n\nexport type BlockCardProps = Omit, \"children\"> &\n BitcoinVisualProps & {\n block: BitcoinBlock;\n hashHref?: string;\n now?: number | Date;\n };\n\nexport function BlockCard({\n block,\n hashHref,\n now,\n unstyled,\n className,\n ...props\n}: BlockCardProps) {\n const timestamp = formatTimestamp(block.timestamp);\n\n return (\n \n \n
\n \n Block\n

\n \n {formatBlockHeight(block.height)}\n \n
\n \n {formatRelativeTime(block.timestamp, now)}\n \n \n \n \n \n \n \n {block.feeTotal !== undefined ? (\n
\n \n Fees\n \n
\n \n
\n
\n ) : (\n \n )}\n \n {block.miner ? (\n \n Mined by{\" \"}\n \n {block.miner}\n \n

\n ) : null}\n \n );\n}\n\nfunction BlockMetric({\n icon: Icon,\n label,\n value,\n unstyled,\n}: {\n icon: typeof Box;\n label: string;\n value: string;\n unstyled?: boolean;\n}) {\n return (\n
\n \n \n {label}\n \n \n {value}\n \n
\n );\n}\n", "type": "registry:component" } ], "type": "registry:component" }