| "use client"; | |
| import { Icons } from "@midday/ui/icons"; | |
| import { MaterialIcon } from "./homepage/icon-mapping"; | |
| export function HeaderCommandPanelPreview() { | |
| const transaction = { | |
| name: "Acme Corporation", | |
| }; | |
| const invoices = [ | |
| { | |
| id: 1, | |
| name: "Invoice #INV-2025-001", | |
| }, | |
| { | |
| id: 2, | |
| name: "Invoice #INV-2024-089", | |
| }, | |
| ]; | |
| const receipts = [ | |
| { | |
| id: 1, | |
| name: "Receipt - Acme Services", | |
| }, | |
| { | |
| id: 2, | |
| name: "Receipt - Acme Subscription", | |
| }, | |
| ]; | |
| const files = [ | |
| { | |
| id: 1, | |
| name: "Acme_Contract_Q1_2025.pdf", | |
| }, | |
| { | |
| id: 2, | |
| name: "Invoice_Acme_2025-001.pdf", | |
| }, | |
| ]; | |
| return ( | |
| <div className="w-full h-full flex items-center justify-center p-2 bg-background"> | |
| {/* Container with border and dotted pattern */} | |
| <div | |
| className="w-full h-full border border-border p-2 relative scale-50 origin-center" | |
| style={{ | |
| backgroundImage: | |
| "radial-gradient(circle at 1px 1px, hsl(var(--border)) 0.5px, transparent 0)", | |
| backgroundSize: "6px 6px", | |
| }} | |
| > | |
| {/* Command Panel Container */} | |
| <div className="w-full h-full border border-border bg-background flex flex-col relative"> | |
| {/* Search Bar */} | |
| <div className="pt-1 pb-1 border-b border-border flex items-center"> | |
| <div className="relative w-full"> | |
| <input | |
| type="text" | |
| value="Acme" | |
| readOnly | |
| placeholder="Type a command or search..." | |
| className="w-full bg-background px-2 py-1 text-[11px] text-foreground placeholder:text-muted-foreground focus:outline-none rounded-none pr-7" | |
| /> | |
| <MaterialIcon | |
| name="search" | |
| className="absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground pointer-events-none" | |
| size={14} | |
| /> | |
| </div> | |
| </div> | |
| {/* Content Area */} | |
| <div className="flex-1 overflow-hidden px-2 py-2"> | |
| {/* Transaction Section */} | |
| <div className="mb-3"> | |
| <div className="text-[10px] text-muted-foreground uppercase tracking-wider mb-1.5 px-1"> | |
| Transaction | |
| </div> | |
| <div className="flex items-center gap-2 pr-2 py-1"> | |
| <MaterialIcon | |
| name="list_alt" | |
| className="text-muted-foreground flex-shrink-0" | |
| size={16} | |
| /> | |
| <div className="flex-1 min-w-0"> | |
| <div className="text-[11px] text-foreground"> | |
| {transaction.name} | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| {/* Invoice Section */} | |
| <div className="mb-3"> | |
| <div className="text-[10px] text-muted-foreground uppercase tracking-wider mb-1.5 px-1"> | |
| Invoice | |
| </div> | |
| <div className="space-y-0.5"> | |
| {invoices.map((invoice) => ( | |
| <div | |
| key={invoice.id} | |
| className="flex items-center gap-2 pr-2 py-1" | |
| > | |
| <MaterialIcon | |
| name="docs" | |
| className="text-muted-foreground flex-shrink-0" | |
| size={16} | |
| /> | |
| <div className="flex-1 min-w-0"> | |
| <div className="text-[11px] text-foreground"> | |
| {invoice.name} | |
| </div> | |
| </div> | |
| </div> | |
| ))} | |
| </div> | |
| </div> | |
| {/* Receipts Section */} | |
| <div className="mb-3"> | |
| <div className="text-[10px] text-muted-foreground uppercase tracking-wider mb-1.5 px-1"> | |
| Receipt | |
| </div> | |
| <div className="space-y-0.5"> | |
| {receipts.map((receipt) => ( | |
| <div | |
| key={receipt.id} | |
| className="flex items-center gap-2 pr-2 py-1" | |
| > | |
| <MaterialIcon | |
| name="receipt" | |
| className="text-muted-foreground flex-shrink-0" | |
| size={16} | |
| /> | |
| <div className="flex-1 min-w-0"> | |
| <div className="text-[11px] text-foreground"> | |
| {receipt.name} | |
| </div> | |
| </div> | |
| </div> | |
| ))} | |
| </div> | |
| </div> | |
| {/* Files Section */} | |
| <div className="mb-3"> | |
| <div className="text-[10px] text-muted-foreground uppercase tracking-wider mb-1.5 px-1"> | |
| Files | |
| </div> | |
| <div className="space-y-0.5"> | |
| {files.map((file) => ( | |
| <div | |
| key={file.id} | |
| className="flex items-center gap-2 pr-2 py-1" | |
| > | |
| <MaterialIcon | |
| name="pdf" | |
| className="text-muted-foreground flex-shrink-0" | |
| size={16} | |
| /> | |
| <div className="flex-1 min-w-0"> | |
| <div className="text-[11px] text-foreground truncate"> | |
| {file.name} | |
| </div> | |
| </div> | |
| </div> | |
| ))} | |
| </div> | |
| </div> | |
| </div> | |
| {/* Navigation Controls */} | |
| <div className="px-2 py-1.5 border-t border-border flex items-center justify-between"> | |
| <div className="flex items-center"> | |
| <Icons.LogoSmall className="w-4 h-4 text-muted-foreground" /> | |
| </div> | |
| <div className="flex items-center gap-1"> | |
| <button | |
| type="button" | |
| className="w-5 h-5 flex items-center justify-center bg-muted hover:bg-muted/80 transition-colors" | |
| > | |
| <MaterialIcon | |
| name="arrow_upward" | |
| className="text-muted-foreground" | |
| size={12} | |
| /> | |
| </button> | |
| <button | |
| type="button" | |
| className="w-5 h-5 flex items-center justify-center bg-muted hover:bg-muted/80 transition-colors" | |
| > | |
| <MaterialIcon | |
| name="arrow_downward" | |
| className="text-muted-foreground" | |
| size={12} | |
| /> | |
| </button> | |
| <button | |
| type="button" | |
| className="w-5 h-5 flex items-center justify-center bg-muted hover:bg-muted/80 transition-colors" | |
| > | |
| <MaterialIcon | |
| name="subdirectory_arrow_left" | |
| className="text-muted-foreground" | |
| size={12} | |
| /> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| ); | |
| } | |