import { create } from "zustand"; import type { SidebarShortcutWorkspaceTarget } from "@/utils/sidebar-shortcuts"; interface KeyboardShortcutsState { commandCenterOpen: boolean; projectPickerOpen: boolean; shortcutsDialogOpen: boolean; capturingShortcut: boolean; altDown: boolean; cmdOrCtrlDown: boolean; /** Sidebar-visible workspace targets (up to 9), in top-to-bottom visual order. */ sidebarShortcutWorkspaceTargets: SidebarShortcutWorkspaceTarget[]; /** All visible workspace targets in top-to-bottom visual order. */ visibleWorkspaceTargets: SidebarShortcutWorkspaceTarget[]; setCommandCenterOpen: (open: boolean) => void; setProjectPickerOpen: (open: boolean) => void; setShortcutsDialogOpen: (open: boolean) => void; setCapturingShortcut: (capturing: boolean) => void; setAltDown: (down: boolean) => void; setCmdOrCtrlDown: (down: boolean) => void; setSidebarShortcutWorkspaceTargets: (targets: SidebarShortcutWorkspaceTarget[]) => void; setVisibleWorkspaceTargets: (targets: SidebarShortcutWorkspaceTarget[]) => void; resetModifiers: () => void; } export const useKeyboardShortcutsStore = create((set) => ({ commandCenterOpen: false, projectPickerOpen: false, shortcutsDialogOpen: false, capturingShortcut: false, altDown: false, cmdOrCtrlDown: false, sidebarShortcutWorkspaceTargets: [], visibleWorkspaceTargets: [], setCommandCenterOpen: (open) => set({ commandCenterOpen: open }), setProjectPickerOpen: (open) => set({ projectPickerOpen: open }), setShortcutsDialogOpen: (open) => set({ shortcutsDialogOpen: open }), setCapturingShortcut: (capturing) => set({ capturingShortcut: capturing }), setAltDown: (down) => set({ altDown: down }), setCmdOrCtrlDown: (down) => set({ cmdOrCtrlDown: down }), setSidebarShortcutWorkspaceTargets: (targets) => set({ sidebarShortcutWorkspaceTargets: targets }), setVisibleWorkspaceTargets: (targets) => set({ visibleWorkspaceTargets: targets }), resetModifiers: () => set({ altDown: false, cmdOrCtrlDown: false }), }));