/*** EXPORT ------------------------------------------- ***/ export type ShortcutAction = | { type: "closeTab" } | { type: "format" } | { type: "newTab" } | { type: "nextTab" } | { type: "prevTab" } | { type: "run" }; export function matchShortcut(event: KeyboardEvent): ShortcutAction | null { const meta = event.metaKey || event.ctrlKey; if (!meta) return null; if (event.key === "Enter") { if (event.shiftKey) return { type: "newTab" }; if (!event.altKey) return { type: "run" }; return null; } if (event.shiftKey && !event.altKey) { const key = event.key.toLowerCase(); if (key === "w") return { type: "closeTab" }; if (key === "f") return { type: "format" }; } if (event.altKey && !event.shiftKey) { if (event.key === "ArrowRight") return { type: "nextTab" }; if (event.key === "ArrowLeft") return { type: "prevTab" }; } return null; }