{"_id":"@arminmajerie/keyboard-manager","_rev":"2-74290556ef583f31459fbd93ff5e7e6d","name":"@arminmajerie/keyboard-manager","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@arminmajerie/keyboard-manager","version":"1.0.0","keywords":["keyboard","shortcuts","hotkeys","solid-js","typescript","manager"],"author":{"name":"Armin Majerie"},"license":"MIT","_id":"@arminmajerie/keyboard-manager@1.0.0","maintainers":[{"name":"arminmajerie","email":"majeriemail@gmail.com"}],"homepage":"https://github.com/arminmajerie/keyboard-manager#readme","bugs":{"url":"https://github.com/arminmajerie/keyboard-manager/issues"},"dist":{"shasum":"333b01cf8b9520f7c6fe81507625db7c0f4377eb","tarball":"https://registry.npmjs.org/@arminmajerie/keyboard-manager/-/keyboard-manager-1.0.0.tgz","fileCount":11,"integrity":"sha512-dFQeGdt3zA2ei918lysoclWaVaFRypbUM2xPqOggy2ALi4agmYmeUWloKx2IY8IlAabp3lzqQ1ZgOK5aq6LoYg==","signatures":[{"sig":"MEUCIBnc5QDjxGlViOgtjJewtlxr6QRGZQ75A/+SSu0hJMzDAiEA+T3WFypwWscXT7CY85pXQsQlNBI9+nzzHcmICoTG9D8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25471},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"fc4b50862b13315c977b0cd22e8537268fc3e34e","scripts":{"build":"npm run clean && tsc -p tsconfig.json && node scripts/fix-esm-imports.js","clean":"rimraf dist","rebuild":"npm run clean && npm run build","prepublishOnly":"npm run build","publish:keybord_manager":"npm publish"},"_npmUser":{"name":"arminmajerie","email":"majeriemail@gmail.com"},"repository":{"url":"git+https://github.com/arminmajerie/keyboard-manager.git","type":"git"},"_npmVersion":"10.8.2","description":"A centralized keyboard shortcut manager for Solid.js applications with user customization support","directories":{},"_nodeVersion":"20.19.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"rimraf":"^6.1.2","typescript":"5.9.3","@types/node":"24.10.1"},"peerDependencies":{"solid-js":"^1.9.10"},"_npmOperationalInternal":{"tmp":"tmp/keyboard-manager_1.0.0_1774314799737_0.26396580178915086","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@arminmajerie/keyboard-manager","version":"1.0.1","description":"A centralized keyboard shortcut manager for Solid.js applications with user customization support","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"}},"keywords":["keyboard","shortcuts","hotkeys","solid-js","typescript","manager"],"author":{"name":"Armin Majerie"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/arminmajerie/keyboard-manager.git"},"bugs":{"url":"https://github.com/arminmajerie/keyboard-manager/issues"},"homepage":"https://github.com/arminmajerie/keyboard-manager#readme","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"peerDependencies":{"solid-js":"^1.9.10"},"devDependencies":{"typescript":"5.9.3","@types/node":"24.10.1","rimraf":"^6.1.2"},"scripts":{"publish:keybord_manager":"npm publish","prepublishOnly":"npm run build","clean":"rimraf dist","build":"npm run clean && tsc -p tsconfig.json && node scripts/fix-esm-imports.js","rebuild":"npm run clean && npm run build"},"_id":"@arminmajerie/keyboard-manager@1.0.1","gitHead":"fc4b50862b13315c977b0cd22e8537268fc3e34e","_nodeVersion":"20.19.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-/ZPPMdqJrXFpsLY1P8FIJ4Iis0wQKaoiEHhqLkVSwOllCVB9Oq+Aw30xRlztQx+8Y/qC8YQXhugctr7SyqZ8nA==","shasum":"a1ef530be3efe5c237752aef3dc1584d97a646d0","tarball":"https://registry.npmjs.org/@arminmajerie/keyboard-manager/-/keyboard-manager-1.0.1.tgz","fileCount":11,"unpackedSize":25471,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDWXCJgLDPhLdv7IJ/anD/JKYotSi8eSYM3lT4f98BokAiEA1Xcu/2yD915/kfwG21oZFjBAimSHGqJ8fYiYrI9on7A="}]},"_npmUser":{"name":"arminmajerie","email":"majeriemail@gmail.com"},"directories":{},"maintainers":[{"name":"arminmajerie","email":"majeriemail@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/keyboard-manager_1.0.1_1774314996203_0.3257319880902394"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-24T01:13:19.664Z","modified":"2026-03-24T01:16:36.475Z","1.0.0":"2026-03-24T01:13:19.876Z","1.0.1":"2026-03-24T01:16:36.351Z"},"bugs":{"url":"https://github.com/arminmajerie/keyboard-manager/issues"},"author":{"name":"Armin Majerie"},"license":"MIT","homepage":"https://github.com/arminmajerie/keyboard-manager#readme","keywords":["keyboard","shortcuts","hotkeys","solid-js","typescript","manager"],"repository":{"type":"git","url":"git+https://github.com/arminmajerie/keyboard-manager.git"},"description":"A centralized keyboard shortcut manager for Solid.js applications with user customization support","maintainers":[{"name":"arminmajerie","email":"majeriemail@gmail.com"}],"readme":"# @arminmajerie/keyboard-manager\n\nA centralized keyboard shortcut manager for Solid.js applications with user customization support.\n\n## Installation\n\n```bash\nnpm install @arminmajerie/keyboard-manager\n```\n\n## Usage\n\n```typescript\nimport { KeyboardManager, KeyboardShortcutsPanel } from '@arminmajerie/keyboard-manager';\n\n// Initialize the keyboard manager\nKeyboardManager.init();\n\n// Register shortcuts\nKeyboardManager.registerShortcut({\n  id: 'editor.save',\n  command: 'Save File',\n  defaultKey: 'Ctrl+S',\n  when: 'editorFocus',\n  handler: (e) => {\n    e?.preventDefault();\n    0&&console['log']('Saving file...');\n  }\n});\n\n// Open the shortcuts panel for user customization\nconst closePanel = openKeyboardShortcutsPanel();\n```\n\n## Features\n\n- **Context-aware shortcuts** - Shortcuts can be scoped to specific contexts (e.g., \"editorFocus\", \"canvasFocus\")\n- **User customization** - Users can customize keyboard shortcuts via the built-in panel\n- **Conflict detection** - Automatically detects and reports shortcut conflicts\n- **Input field protection** - Shortcuts don't fire when typing in input fields (unless explicitly allowed)\n- **Cross-platform support** - Handles both Windows/Mac key conventions\n- **Persistent storage** - User customizations are saved to localStorage\n\n## API\n\n### KeyboardManager\n\n- `init()` - Initialize the keyboard manager (required)\n- `registerShortcut(shortcut: Shortcut)` - Register a new shortcut\n- `setContext(context: string)` - Set the current context\n- `clearContext(context: string)` - Clear a specific context\n- `updateShortcut(id: string, newKey: string)` - Update a shortcut's key binding\n- `resetToDefault(id: string)` - Reset a shortcut to its default key\n\n### Components\n\n- `KeyboardShortcutsPanel` - Solid.js component for shortcut customization\n- `openKeyboardShortcutsPanel()` - Programmatically open the shortcuts panel\n\n## License\n\nMIT","readmeFilename":"README.md"}