diff --git a/src/lib/components/AboutDialog.svelte b/src/lib/components/AboutDialog.svelte index 572de81..e23044b 100644 --- a/src/lib/components/AboutDialog.svelte +++ b/src/lib/components/AboutDialog.svelte @@ -4,12 +4,43 @@ let { onClose }: { onClose: () => void } = $props(); let version = $state(''); + let activeTab = $state<'about' | 'shortcuts'>('about'); $effect(() => { getVersion().then((v) => { version = v; }); }); + + const globalShortcuts = [ + { key: 'Space', action: 'Play / Pause' }, + { key: 'K', action: 'Play / Pause' }, + { key: 'J', action: 'Shuttle slower (−0.25×)' }, + { key: 'L', action: 'Shuttle faster (+0.25×)' }, + { key: '←', action: 'Seek back 5s' }, + { key: '→', action: 'Seek forward 5s' }, + { key: 'Shift+←', action: 'Seek back 1s' }, + { key: 'Shift+→', action: 'Seek forward 1s' }, + { key: ',', action: 'Previous frame' }, + { key: '.', action: 'Next frame' }, + { key: '< (Shift+,)', action: 'Previous keyframe' }, + { key: '> (Shift+.)', action: 'Next keyframe' }, + { key: 'C / P', action: 'Toggle mode' }, + { key: '⌘/', action: 'About' }, + ]; + + const playerShortcuts = [ + { key: 'F', action: 'Toggle fullscreen' }, + { key: 'X', action: 'Cut clip at playhead → Clipper' }, + { key: 'Z', action: 'Cut clip 10s before playhead → Clipper' }, + ]; + + const clipperShortcuts = [ + { key: 'I', action: 'Set in-point' }, + { key: 'O', action: 'Set out-point' }, + { key: 'Delete / ⌫', action: 'Remove selected clip' }, + { key: '⌘E', action: 'Export' }, + ];