-- File: keyboard._hs -- Purpose: Keyboard shortcut handlers for CV application -- Last Updated: 2025-11-30 -- ============================================================================== -- TOGGLE SHORTCUT HELPER -- ============================================================================== -- Helper function to toggle a checkbox by ID (tries primary ID, then menu ID) -- Called from inline keyboard handler in body tag def handleToggleShortcut(toggleId, menuToggleId) set toggle to document.getElementById(toggleId) if toggle is null set toggle to document.getElementById(menuToggleId) end if toggle is not null set toggle.checked to (not toggle.checked) send change to toggle end end -- ============================================================================== -- MODAL SHORTCUT HELPER -- ============================================================================== -- Helper function to open a modal dialog by ID def openModalShortcut(modalId) set modal to document.getElementById(modalId) if modal is not null call modal.showModal() end end -- ============================================================================== -- REFERENCE: Full keyboard handler logic -- ============================================================================== -- NOTE: The actual keydown handler MUST stay inline in body tag because -- hyperscript event handlers need direct access to the event context. -- The inline handler uses the helper functions above. -- -- Keyboard shortcuts: -- '?' - Open shortcuts modal -- 'L' - Toggle CV length (short/long) -- 'I' - Toggle icons visibility -- 'V' - Toggle visual theme (default/clean)