import { Dialog, DialogContent, DialogHeader, DialogTitle } from "@/components/ui/dialog"; interface ShortcutEntry { keys: string[]; label: string; /** Render keys as a simultaneous chord (joined with "+") rather than a * "then" sequence. */ combo?: boolean; } // Platform-appropriate label for the Cmd/Ctrl modifier so the cheatsheet shows // the same key the user actually presses (re-pointed in the collapsible sidebar // work — Cmd/Ctrl+B toggles the rail). function getPlatformLabel() { if (typeof navigator === "undefined") return ""; const nav = navigator as Navigator & { userAgentData?: { platform?: string } }; return nav.userAgentData?.platform || navigator.userAgent || ""; } const META_KEY = /Mac|iPhone|iPad|iPod/.test(getPlatformLabel()) ? "⌘" : "Ctrl"; interface ShortcutSection { title: string; shortcuts: ShortcutEntry[]; } const sections: ShortcutSection[] = [ { title: "Inbox", shortcuts: [ { keys: ["j"], label: "Move down" }, { keys: ["↓"], label: "Move down" }, { keys: ["k"], label: "Move up" }, { keys: ["↑"], label: "Move up" }, { keys: ["←"], label: "Collapse selected group" }, { keys: ["→"], label: "Expand selected group" }, { keys: ["Enter"], label: "Open selected item" }, { keys: ["a"], label: "Archive item" }, { keys: ["y"], label: "Archive item" }, { keys: ["r"], label: "Mark as read" }, { keys: ["U"], label: "Mark as unread" }, ], }, { title: "Task detail", shortcuts: [ { keys: ["y"], label: "Quick-archive back to inbox" }, { keys: ["g", "i"], label: "Go to inbox" }, { keys: ["g", "c"], label: "Focus comment composer" }, ], }, { title: "Decisions", shortcuts: [ { keys: ["j"], label: "Move down" }, { keys: ["↓"], label: "Move down" }, { keys: ["k"], label: "Move up" }, { keys: ["↑"], label: "Move up" }, { keys: ["Enter"], label: "Open or close selected decision" }, { keys: ["x"], label: "Dismiss selected decision" }, ], }, { title: "Global", shortcuts: [ { keys: ["/"], label: "Search current page or quick search" }, { keys: ["c"], label: "New task" }, { keys: ["["], label: "Toggle sidebar" }, { keys: [META_KEY, "B"], label: "Collapse or expand sidebar", combo: true }, { keys: ["]"], label: "Toggle panel" }, { keys: ["?"], label: "Show keyboard shortcuts" }, ], }, ]; function KeyCap({ children }: { children: string }) { return ( {children} ); } export function KeyboardShortcutsCheatsheetContent() { return ( <>
Press