'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 */}
); }