{"version":3,"sources":["../src/hooks/useKeyboardShortcuts.ts"],"names":["useEffect"],"mappings":";;;;;AAUO,SAAS,qBAAqB,SAAA,EAAuB;AAC1D,EAAAA,eAAA,CAAU,MAAM;AACd,IAAA,MAAM,OAAA,GAAU,CAAC,CAAA,KAAqB;AACpC,MAAA,KAAA,MAAW,KAAK,SAAA,EAAW;AACzB,QAAA,MAAM,QAAA,GAAW,CAAA,CAAE,GAAA,GAAO,CAAA,CAAE,OAAA,IAAW,EAAE,OAAA,GAAW,EAAE,CAAA,CAAE,OAAA,IAAW,CAAA,CAAE,OAAA,CAAA;AACrE,QAAA,MAAM,aAAa,CAAA,CAAE,KAAA,GAAQ,CAAA,CAAE,QAAA,GAAW,CAAC,CAAA,CAAE,QAAA;AAC7C,QAAA,MAAM,WAAW,CAAA,CAAE,GAAA,GAAM,CAAA,CAAE,MAAA,GAAS,CAAC,CAAA,CAAE,MAAA;AACvC,QAAA,IAAI,CAAA,CAAE,GAAA,CAAI,WAAA,EAAY,KAAM,CAAA,CAAE,IAAI,WAAA,EAAY,IAAK,QAAA,IAAY,UAAA,IAAc,QAAA,EAAU;AACrF,UAAA,CAAA,CAAE,QAAQ,CAAC,CAAA;AACX,UAAA;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,WAAW,OAAO,CAAA;AAC1C,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,SAAA,EAAW,OAAO,CAAA;AAAA,EAC5D,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAChB","file":"chunk-4TPHEEHU.cjs","sourcesContent":["import { useEffect } from 'react'\n\ninterface Shortcut {\n  key: string\n  cmd?: boolean  // meta or ctrl\n  shift?: boolean\n  alt?: boolean\n  handler: (e: KeyboardEvent) => void\n}\n\nexport function useKeyboardShortcuts(shortcuts: Shortcut[]) {\n  useEffect(() => {\n    const handler = (e: KeyboardEvent) => {\n      for (const s of shortcuts) {\n        const cmdMatch = s.cmd ? (e.metaKey || e.ctrlKey) : !(e.metaKey || e.ctrlKey)\n        const shiftMatch = s.shift ? e.shiftKey : !e.shiftKey\n        const altMatch = s.alt ? e.altKey : !e.altKey\n        if (e.key.toLowerCase() === s.key.toLowerCase() && cmdMatch && shiftMatch && altMatch) {\n          s.handler(e)\n          return\n        }\n      }\n    }\n    window.addEventListener('keydown', handler)\n    return () => window.removeEventListener('keydown', handler)\n  }, [shortcuts])\n}\n"]}