'use client'; import * as React from 'react'; import { Keyboard, X } from 'lucide-react'; import { Modal } from '@/components/ui/Modal'; import { Button } from '@/components/ui/Button'; import { cn } from '@/lib/utils/cn'; export interface KeyboardShortcutsDialogProps { open: boolean; onClose: () => void; } interface ShortcutCategory { name: string; shortcuts: Array<{ keys: string[]; description: string; }>; } const SHORTCUTS: ShortcutCategory[] = [ { name: 'Playback', shortcuts: [ { keys: ['Space'], description: 'Play / Pause' }, { keys: ['Home'], description: 'Go to Start' }, { keys: ['End'], description: 'Go to End' }, { keys: ['←'], description: 'Seek Backward' }, { keys: ['→'], description: 'Seek Forward' }, { keys: ['Ctrl', '←'], description: 'Seek Backward 5s' }, { keys: ['Ctrl', '→'], description: 'Seek Forward 5s' }, ], }, { name: 'Edit', shortcuts: [ { keys: ['Ctrl', 'Z'], description: 'Undo' }, { keys: ['Ctrl', 'Shift', 'Z'], description: 'Redo' }, { keys: ['Ctrl', 'X'], description: 'Cut' }, { keys: ['Ctrl', 'C'], description: 'Copy' }, { keys: ['Ctrl', 'V'], description: 'Paste' }, { keys: ['Delete'], description: 'Delete Selection' }, { keys: ['Ctrl', 'D'], description: 'Duplicate' }, { keys: ['Ctrl', 'A'], description: 'Select All' }, ], }, { name: 'View', shortcuts: [ { keys: ['Ctrl', '+'], description: 'Zoom In' }, { keys: ['Ctrl', '-'], description: 'Zoom Out' }, { keys: ['Ctrl', '0'], description: 'Fit to View' }, ], }, { name: 'File', shortcuts: [ { keys: ['Ctrl', 'S'], description: 'Save Project' }, { keys: ['Ctrl', 'K'], description: 'Open Command Palette' }, ], }, ]; function KeyboardKey({ keyName }: { keyName: string }) { return ( {keyName} ); } export function KeyboardShortcutsDialog({ open, onClose }: KeyboardShortcutsDialogProps) { if (!open) return null; return ( {/* Header */} Keyboard Shortcuts {/* Shortcuts Grid */} {SHORTCUTS.map((category) => ( {category.name} {category.shortcuts.map((shortcut, index) => ( {shortcut.description} {shortcut.keys.map((key, keyIndex) => ( {keyIndex > 0 && ( + )} ))} ))} ))} {/* Footer */} Press + to open the command palette and search for more actions {/* Close Button */} Close ); }
Press + to open the command palette and search for more actions