{"_id":"@usefy/use-key-press","_rev":"29-6f6a6696a8287e8c52f6ce163c51c6bd","name":"@usefy/use-key-press","dist-tags":{"latest":"1.1.0"},"versions":{"0.3.1":{"name":"@usefy/use-key-press","version":"0.3.1","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.3.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"47e3b53c99e5b073778d046a87f4962d98f96911","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.3.1.tgz","fileCount":8,"integrity":"sha512-rk/kkC2lR+p2EvrTdysOWxeE0wdVgUtwT2zkqoVjHS/jkZMK3YrX7J0Gf9mp3NdFLG2ug3MTMkFdOjxFIZNOEw==","signatures":[{"sig":"MEUCIAJLpEa5YMkH5oo/KnXBADqJx/KzJ2P3qCtfpYjnySyhAiEA1aAiUrzn5EmXEj8XdPzAcc2vc39u9SRbSjRFEIY4X9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106186},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.3.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/462a58cd2bc5d92a92a0c65ffd6221d3/usefy-use-key-press-0.3.1.tgz","_integrity":"sha512-rk/kkC2lR+p2EvrTdysOWxeE0wdVgUtwT2zkqoVjHS/jkZMK3YrX7J0Gf9mp3NdFLG2ug3MTMkFdOjxFIZNOEw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.3.1_1782887955793_0.9112122159521872","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@usefy/use-key-press","version":"0.4.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.4.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"ef7a151fa6771a84c540eb12678d983545ce7470","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.4.0.tgz","fileCount":8,"integrity":"sha512-ny6MVXkzEEm4xFeKrEkrnzpAzAacLIBdcwRTaX0tR60vela/hgDp6bFRVeuWpsFP4mCByCgyJX4lgljIf9fPFQ==","signatures":[{"sig":"MEUCIQCS+L84ZPzb6pJH7iw3AQ/2JUi/JgShKM+ij+OEv5SGBQIgEaRQvJPUuATNU6EiDg4mTIj+7JpLcYZobt42XI8Cg9g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106186},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/39b1ddfcc8f98db518202e9b1af567cd/usefy-use-key-press-0.4.0.tgz","_integrity":"sha512-ny6MVXkzEEm4xFeKrEkrnzpAzAacLIBdcwRTaX0tR60vela/hgDp6bFRVeuWpsFP4mCByCgyJX4lgljIf9fPFQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.4.0_1782891338023_0.3236822676758848","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@usefy/use-key-press","version":"0.5.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.5.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"15e0464a7b9120b891dbe401a0272c909c7d90b6","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.5.0.tgz","fileCount":8,"integrity":"sha512-9D2PJ2umVQZZGFCI0lEZrk8jIIkujlmTWdKUqBT5eImk/hLCEgcYmlIcXzj/PoADhB4NHUY5WAuekd3+fSM6IQ==","signatures":[{"sig":"MEQCIBTXbr8IWxtFcJYXKZus1xBvnvg31tTbxGlGuKRtJtT2AiBKRk2BUM6xgVVNoQ33yPeqhwpVv/vpZM7a7aSLRd8oCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106186},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/63e9233f2911c1fdbc66c4aebfa1b3fd/usefy-use-key-press-0.5.0.tgz","_integrity":"sha512-9D2PJ2umVQZZGFCI0lEZrk8jIIkujlmTWdKUqBT5eImk/hLCEgcYmlIcXzj/PoADhB4NHUY5WAuekd3+fSM6IQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.5.0_1782895523953_0.1573322335591445","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@usefy/use-key-press","version":"0.6.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.6.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"9ae13a8e2f3b8ae79c2925ffc495b6d25621ad5c","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.6.0.tgz","fileCount":8,"integrity":"sha512-pv1hpWrxcRLMu0hESFapEmoHueOrEz99OFQ7z24zF5MOPUNUmZ+d2S/rIqFVomazgPxqddloVo7CTqT7uQeasg==","signatures":[{"sig":"MEYCIQDnszaGLXRzrcjJb8UrrBTjhfKzpADcCvJd3xE+JEc+4wIhAIrlCq7NVY9e8l35o6CO+/3gJF97YeYZ5R56UnkDYTLJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106186},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/7ef8a0122b666ff6c6d030ea1b5378ac/usefy-use-key-press-0.6.0.tgz","_integrity":"sha512-pv1hpWrxcRLMu0hESFapEmoHueOrEz99OFQ7z24zF5MOPUNUmZ+d2S/rIqFVomazgPxqddloVo7CTqT7uQeasg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.6.0_1782912663160_0.5176761676849047","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@usefy/use-key-press","version":"0.7.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.7.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"b9ad4e65ae84d814b81a989de0f512b243c9b00b","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.7.0.tgz","fileCount":8,"integrity":"sha512-5Rmw8xLSpIEup/lr1y7O07go12kyTqonyuepUMp3Bd09k0daoOJrnflieSdqZBmpyPE2cyJVcvcUGVvbOmrRdQ==","signatures":[{"sig":"MEUCIG2p3TUG8UH/TCx88fWviOx12YMen2mX34f4+9ius6+GAiEAy6rVl2cRL0OSS0aPGtMeRu554h0GVR8lR+eXY+JpmMw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106186},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/0a24ebe817973ffff3c8bd7ea2d48cef/usefy-use-key-press-0.7.0.tgz","_integrity":"sha512-5Rmw8xLSpIEup/lr1y7O07go12kyTqonyuepUMp3Bd09k0daoOJrnflieSdqZBmpyPE2cyJVcvcUGVvbOmrRdQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.7.0_1782957065413_0.40395839435143466","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@usefy/use-key-press","version":"0.8.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.8.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"b5865126cb1bf6f71db290baf9a5abb02707a792","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.8.0.tgz","fileCount":8,"integrity":"sha512-tmyzcgJ2Rg6cjw41ZqHP3JA0pSituX2GAa4M/EQRbyW73/D2zl1P0+BKntzAXNLBZgfp+BBwqg8Wnaf9SkrtEw==","signatures":[{"sig":"MEUCICk5iKMqY7Z9x0lKVPhvlxoG+F3b5+NbtBPJjFEtOBOdAiEA6Cl2v4Qr/WzD5kv308QcSSq7T+0lyoW0hZmZo/xeRZw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106186},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/f5dfcd3d17f7975c61cdd286bf8f3218/usefy-use-key-press-0.8.0.tgz","_integrity":"sha512-tmyzcgJ2Rg6cjw41ZqHP3JA0pSituX2GAa4M/EQRbyW73/D2zl1P0+BKntzAXNLBZgfp+BBwqg8Wnaf9SkrtEw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.8.0_1782972507432_0.9063731848707888","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@usefy/use-key-press","version":"0.9.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.9.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"6f983d9970bff1cea9d6430d28b73990b6474fa4","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.9.0.tgz","fileCount":8,"integrity":"sha512-WEMGdbjcKljLMMtGOmOM66xGnD4IozLQHWcpjybU/UT+y3aUoOQF8khhGwh1AzfbfXtDyway6hMDRoPGHhg+uA==","signatures":[{"sig":"MEQCIFzGxKsthq4ihzoIhG/jIYS/unr1xDRUOtnwqjTG82DUAiAdmYlFisLF+tCc0G6e2xJsDBaOQVvN6/+9h4ZjlCVDyg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106186},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.9.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/207d5f0cc44a7e993efe37a0bf2b1e8d/usefy-use-key-press-0.9.0.tgz","_integrity":"sha512-WEMGdbjcKljLMMtGOmOM66xGnD4IozLQHWcpjybU/UT+y3aUoOQF8khhGwh1AzfbfXtDyway6hMDRoPGHhg+uA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.9.0_1783043226919_0.6876590646719423","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@usefy/use-key-press","version":"0.10.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.10.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"4b61915f271f0c920affde69876216c8e0178462","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.10.0.tgz","fileCount":8,"integrity":"sha512-Ad1M01rB9BtkfXksoYJKKPtooYfV97U1rEamDraK+UcrknOwaWzYci5gcn3XTOC4Bb/GqMQ2YMpbm1lmq8Z+jQ==","signatures":[{"sig":"MEUCIQCMA1vu6ox5y2W8q+RT/8fFXf1CVHOB8mgyo497aiPvTgIgQnxcfgbjLphIOtm6H6jRlnlq7sV1Max0blKVC74B02Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/86fe0e6324a617de1df4e083dcad17e0/usefy-use-key-press-0.10.0.tgz","_integrity":"sha512-Ad1M01rB9BtkfXksoYJKKPtooYfV97U1rEamDraK+UcrknOwaWzYci5gcn3XTOC4Bb/GqMQ2YMpbm1lmq8Z+jQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.10.0_1783048390648_0.46259848751330845","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@usefy/use-key-press","version":"0.11.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.11.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"f7a0ee62fc9c547500417e7404e5e9950db84f46","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.11.0.tgz","fileCount":8,"integrity":"sha512-A0rCnM7fTRtczpOQZP4S6kBjKa6G2Hn5rUmYUw1p6O3f3w+X/NWTVd7a9PDEKNe8PME7035yMI3ztpVgTvJahQ==","signatures":[{"sig":"MEQCIGFA7hhz8KlEm8+AORZU1DP3UpxsmQ3aDYnpgCr7G2JcAiAyaDBKbQDk2yEBGGJ2SznHsWA0Edbtj5Wip6chr6+oUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.11.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/532a6e5dc14d29b0dc83f88e90d20ddf/usefy-use-key-press-0.11.0.tgz","_integrity":"sha512-A0rCnM7fTRtczpOQZP4S6kBjKa6G2Hn5rUmYUw1p6O3f3w+X/NWTVd7a9PDEKNe8PME7035yMI3ztpVgTvJahQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"10.8.2","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"20.20.2","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.11.0_1783057603456_0.5822897652848367","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@usefy/use-key-press","version":"0.12.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.12.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"eb9cf73c5a7fceeda8634e765e552f60c13703a1","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.12.0.tgz","fileCount":8,"integrity":"sha512-eureogvvMjdlmKuI2ViXTCL4ySSFuITi8WHAml9uKaAH8Y3wJ8Plct5TYoLgSbyRVdv5uF5PJhW4LiWsue6uIA==","signatures":[{"sig":"MEYCIQDFfEytpseIBqENY+44tkOrGLsaaCFncojLlm/rHhJ7RQIhALGzLn5FYmDxSnUmaiJ5YFtlzkNzWu0JzCwDLyF1VqX1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.12.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/b090c3c3f5afa872d1729d67f7d5e170/usefy-use-key-press-0.12.0.tgz","_integrity":"sha512-eureogvvMjdlmKuI2ViXTCL4ySSFuITi8WHAml9uKaAH8Y3wJ8Plct5TYoLgSbyRVdv5uF5PJhW4LiWsue6uIA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.12.0_1783063840514_0.0808421499288996","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@usefy/use-key-press","version":"0.12.1","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.12.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"fd50b23e62198522d1910ba83abd5db9b98957c6","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.12.1.tgz","fileCount":8,"integrity":"sha512-CTrkApcc8YrZY4Ye5FxY7QNmP6eLbg0vM3E3M94zilLgIINqsa6ef/2yE0P7uBJOUEHWhC2rGynh9ejbL/5GLA==","signatures":[{"sig":"MEYCIQCqc8qKyvS86e+Fmi8PdlVwPs9TE30t1QrfEfeQauRD6gIhAM57Qq+3JopT7e1jYGnlN3LLKBrl5N/gHqt0oqqkeH8I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.12.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/08d4d02be3159e2af9a7d649630d44d9/usefy-use-key-press-0.12.1.tgz","_integrity":"sha512-CTrkApcc8YrZY4Ye5FxY7QNmP6eLbg0vM3E3M94zilLgIINqsa6ef/2yE0P7uBJOUEHWhC2rGynh9ejbL/5GLA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.12.1_1783065584680_0.0017399889318279183","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"@usefy/use-key-press","version":"0.12.2","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.12.2","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"50396532fdc3d02f0c08b115697ff5d4b44485b5","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.12.2.tgz","fileCount":8,"integrity":"sha512-H59PufP1vnrJMw0LIvM5VnfOBbHXcnuDGNxiMeeilZoKStgNtAbKqz+rV78Z0OQ0ulQqLV/Hl/50IAdnxnWw3A==","signatures":[{"sig":"MEUCIBxUR+LA0O374eIYFalQk10+uQQj87/4ke2+QjLvRPExAiEAswNCvLxeGPjGSlqUIN13za6VKSm37xVQvwKfyMzsaDM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.12.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/b8d609c8a2222299d4187d2365f1ddeb/usefy-use-key-press-0.12.2.tgz","_integrity":"sha512-H59PufP1vnrJMw0LIvM5VnfOBbHXcnuDGNxiMeeilZoKStgNtAbKqz+rV78Z0OQ0ulQqLV/Hl/50IAdnxnWw3A==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.12.2_1783070639596_0.6755153423565285","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@usefy/use-key-press","version":"0.13.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.13.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"c705d1442814bd9b0a8fe17ded0e008004cc616f","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.13.0.tgz","fileCount":8,"integrity":"sha512-lmhKk33/Qm3PIWwXGWaGP0NXfW9+RBRN+x/oSXUq+g/QGNisZQlVNeuIbGInY1/z7ZZ8m59+7ALz/A1K4hq67g==","signatures":[{"sig":"MEUCIBR1OiMIs96Gp+IifG04ljPXsm09NQlUFYADnWg5xxhoAiEA9MFhcQFOOJvpoOJMhKp7Gg8wxhWjRnZB1/oBAtalzI8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.13.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/c3c386e4866479af7928c0db5089511b/usefy-use-key-press-0.13.0.tgz","_integrity":"sha512-lmhKk33/Qm3PIWwXGWaGP0NXfW9+RBRN+x/oSXUq+g/QGNisZQlVNeuIbGInY1/z7ZZ8m59+7ALz/A1K4hq67g==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.13.0_1783129963450_0.7573175430636383","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@usefy/use-key-press","version":"0.14.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.14.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"cd1a54f13d5253db9a67027d323c3f99e1cc01b5","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.14.0.tgz","fileCount":8,"integrity":"sha512-IdEgsHc5gpBAnyutWiPWPFibOX8eSwjelGxBWD6Ey2sqFRECz5uyCvGtSgL41kNe40aLLyY583ZCe5Fr9KkpyQ==","signatures":[{"sig":"MEQCIH4I7JjY8qrzoeGXmjjF8ROxTabq6GKGxJql6fqDZaLvAiBF/T9FkhMvqGbBQoH0IvYesmKhhjBa+OIJbxvOeLWJ7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.14.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/39524030a17bdc8fa479d0ad211d5081/usefy-use-key-press-0.14.0.tgz","_integrity":"sha512-IdEgsHc5gpBAnyutWiPWPFibOX8eSwjelGxBWD6Ey2sqFRECz5uyCvGtSgL41kNe40aLLyY583ZCe5Fr9KkpyQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.14.0_1783134816981_0.8332652089349204","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@usefy/use-key-press","version":"0.15.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.15.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"7b06c955c621672726a8c0a28615ec140e09e487","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.15.0.tgz","fileCount":8,"integrity":"sha512-qcIqTspKnCN41B7IavYILC1WNReEyN5sS/r33tH7LKtGM9+0hz1hSX4I3d5R7glafhRpwE3ct0SHUwpzoXBdOQ==","signatures":[{"sig":"MEQCIERTx099Wb2/u3EAm1K/Z3iFezlg4XjxsoFGM7W6x+VJAiAZ84kJx4Xf2evs35jVRnnmqgakm2MLSl5O1FAPZ8e4PA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.15.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/c7f26ffac3ce855fde1e45df61ed8be3/usefy-use-key-press-0.15.0.tgz","_integrity":"sha512-qcIqTspKnCN41B7IavYILC1WNReEyN5sS/r33tH7LKtGM9+0hz1hSX4I3d5R7glafhRpwE3ct0SHUwpzoXBdOQ==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.15.0_1783138384936_0.3380439699249085","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@usefy/use-key-press","version":"0.16.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.16.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"4f966b2de1d24911c4a73cb320d6c85ff359343d","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.16.0.tgz","fileCount":8,"integrity":"sha512-4qjsyduN95VhIPm3pLTAHR0KGhSX6EzqY9RUGXC6yfGNr/ZV+Ss38Exbw3yGcgaGkHF1kwgOPs7Fnmy+eWffOw==","signatures":[{"sig":"MEUCIGKdkx4Dxy3H+ZAEQiFUOjDGH1YJLihIU6mbmwhaGHjvAiEAhvo3mpfIVu0NZNhV6FUvVJuYGC/A108+SHxUzUM8FyY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.16.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/eaaca890b1a3800a1a1902948ac8f5e3/usefy-use-key-press-0.16.0.tgz","_integrity":"sha512-4qjsyduN95VhIPm3pLTAHR0KGhSX6EzqY9RUGXC6yfGNr/ZV+Ss38Exbw3yGcgaGkHF1kwgOPs7Fnmy+eWffOw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.16.0_1783142234396_0.6894919322057906","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@usefy/use-key-press","version":"0.17.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.17.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"9e1612d187449d076dda69d09eba107fe4fa3e46","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.17.0.tgz","fileCount":8,"integrity":"sha512-MgTSmLYtOaJwD51u05eTw6sGzbPCZJBKfvtm5K5Jb5nxQFX58fln+9mI95evlegBwY2IAGdic8diCQJ0tDYHag==","signatures":[{"sig":"MEUCIAGZJiYvoxHDnaHI76uemE5yUudfgIgUeIXBOG778GhVAiEAyuDZtm1caUSXgRd59wZYEiu+9e8G2qlCZeZ2mxpoVkQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.17.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/f9abbe5eda79643ab2f7cd157f1b3643/usefy-use-key-press-0.17.0.tgz","_integrity":"sha512-MgTSmLYtOaJwD51u05eTw6sGzbPCZJBKfvtm5K5Jb5nxQFX58fln+9mI95evlegBwY2IAGdic8diCQJ0tDYHag==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.17.0_1783230037678_0.5154185427539117","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@usefy/use-key-press","version":"0.18.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.18.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"c813cb62d1093f6c6308ece40a12dfbbd1d09aa0","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.18.0.tgz","fileCount":8,"integrity":"sha512-XYsSYeNBxybzBE3JHRY/0kLqFmI2O2zcnVLs4wz63M39PNAME8Qxd5GRn8MdjW1TP3BdaJlgEKVK3O0MeazLbw==","signatures":[{"sig":"MEUCIFMkhIK1fFTPlsYuwx/TH1nDe6BhznMo9QBGcE8OGdN3AiEAkYEmSg9vDNxuFlCFwQ2V+PMDu5vrW3ivBHAHJgl7euE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.18.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/b6659a3fb3d913df3c228e1a3b5afac6/usefy-use-key-press-0.18.0.tgz","_integrity":"sha512-XYsSYeNBxybzBE3JHRY/0kLqFmI2O2zcnVLs4wz63M39PNAME8Qxd5GRn8MdjW1TP3BdaJlgEKVK3O0MeazLbw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.18.0_1783252582610_0.8874305484127145","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@usefy/use-key-press","version":"0.19.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.19.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"abebb158ac7ef7ebdc2a4c32c41d85f7670a92a4","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.19.0.tgz","fileCount":8,"integrity":"sha512-xCBMPrmPz78mEEJpfcSljvu4rSNLBNUQBRRBbCxK0znJvxA70mYMLRoET6Jh3uB4YdmwsFy9Vnc1+iDtLc/sXg==","signatures":[{"sig":"MEQCIClnQdG99/M0DkWpswOz2LqgXkH9T2AQ+8MUch6VR00TAiA0UNhDI2IMU6sIhtc05qUAS8ViAr7mdfXk0JFlkqSEkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.19.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/fc4734afef6b96f69bc14fac4b160f14/usefy-use-key-press-0.19.0.tgz","_integrity":"sha512-xCBMPrmPz78mEEJpfcSljvu4rSNLBNUQBRRBbCxK0znJvxA70mYMLRoET6Jh3uB4YdmwsFy9Vnc1+iDtLc/sXg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.19.0_1783259385297_0.4044861656429919","host":"s3://npm-registry-packages-npm-production"}},"0.20.0":{"name":"@usefy/use-key-press","version":"0.20.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.20.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"5f4d21d474101320578ffd26725796984cd8e7f5","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.20.0.tgz","fileCount":8,"integrity":"sha512-e2lVe/xZl6o8lf8JYgG+gB3WtI/lxtw8Yu4o14uXrW9T9s7ADHK/GBmLd9VjjHLvQRMux1/LkqKkj6Kscs4YHw==","signatures":[{"sig":"MEUCIFdvnub6XJKWxMjvLCSDuh8jv2D4qLIEgBzjuvcBZ03LAiEA4zN5IbdBK36gSqsOW74HCQvjBa0yRjazp+ITzUPF6QM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.20.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/4af810a5c177072fdb91129e2d018c81/usefy-use-key-press-0.20.0.tgz","_integrity":"sha512-e2lVe/xZl6o8lf8JYgG+gB3WtI/lxtw8Yu4o14uXrW9T9s7ADHK/GBmLd9VjjHLvQRMux1/LkqKkj6Kscs4YHw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.20.0_1783342874696_0.05714470054599685","host":"s3://npm-registry-packages-npm-production"}},"0.21.0":{"name":"@usefy/use-key-press","version":"0.21.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.21.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"0633b6b382ff30e29c2f54f9fc2e20816d0c1462","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.21.0.tgz","fileCount":8,"integrity":"sha512-SdDdvnTRmh+iM2uYmbMnt20fF03mFgz94FfMB+dSbvFuSGk/cexsSuQq6n34/X1HPSgJ4Sosm64hH/i/lFgr0Q==","signatures":[{"sig":"MEUCIQCWfvN0jiCx7fTOyna2h9trHC3vn41aoUcD+UCHUCKXXAIgZ6Q5pwe2bBV4GNUQevGAo+HSobJt9ubP3sBBGoq2LEY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.21.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/a037d8a83e69b707a417e1b15017229e/usefy-use-key-press-0.21.0.tgz","_integrity":"sha512-SdDdvnTRmh+iM2uYmbMnt20fF03mFgz94FfMB+dSbvFuSGk/cexsSuQq6n34/X1HPSgJ4Sosm64hH/i/lFgr0Q==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.21.0_1783350149393_0.38636440089028334","host":"s3://npm-registry-packages-npm-production"}},"0.21.1":{"name":"@usefy/use-key-press","version":"0.21.1","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.21.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"eab37c93e9364281a139d1599d0555763064ce78","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.21.1.tgz","fileCount":8,"integrity":"sha512-7775n4TeWBpN4obHPpelqeE6KbSieFzdEMtRHJ4yo1ZwnEbJmitD2zhXQQnaQsU9eJakMrMReb3puOVoH9r3Sg==","signatures":[{"sig":"MEUCIQCwF3wfC4AcOa4Epl5+IjDuBhXOASta5620BZK/OxwSrAIgOsONUG8oBCkbXVVv8+udj73m9QMBc9WY1474PFjmqfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106187},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.21.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/cc84b55034bfacaf748af02f373a31aa/usefy-use-key-press-0.21.1.tgz","_integrity":"sha512-7775n4TeWBpN4obHPpelqeE6KbSieFzdEMtRHJ4yo1ZwnEbJmitD2zhXQQnaQsU9eJakMrMReb3puOVoH9r3Sg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.21.1_1783428141720_0.04134817613719055","host":"s3://npm-registry-packages-npm-production"}},"0.22.0":{"name":"@usefy/use-key-press","version":"0.22.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.22.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"bd0a2bdd119a29e19692a4f3b2a4146aaf06bed2","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.22.0.tgz","fileCount":8,"integrity":"sha512-2Q5AqjZwVex4N0dM0yBjLndPHqpqjOqkVKovjWPGoC9taKaKfpH+bNfLe2GbVw7fqj0oXDyyln6okjIK1BHmbw==","signatures":[{"sig":"MEYCIQCgFnppk16MvgcIe2aAVuelczgFlF6XyDBP/Kr5Qc33WgIhAMeGvo4UkfH2Nlm2YEZmUXxogK1QO2a6DU9Ie21NDX9+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117200},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.22.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/a68ec05bce0046fdd562417943a0fa7c/usefy-use-key-press-0.22.0.tgz","_integrity":"sha512-2Q5AqjZwVex4N0dM0yBjLndPHqpqjOqkVKovjWPGoC9taKaKfpH+bNfLe2GbVw7fqj0oXDyyln6okjIK1BHmbw==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.22.0_1783474461217_0.903517334095526","host":"s3://npm-registry-packages-npm-production"}},"0.23.0":{"name":"@usefy/use-key-press","version":"0.23.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.23.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"071f54131e791c5050c0e29dd6e515dc9f125639","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.23.0.tgz","fileCount":8,"integrity":"sha512-A+jOIACOQ04SiU98zyDrARIW7a/J3Pod6oGDDk0SFH3YbJXDSSEcg3AJ7qLEob7/2Dwk8KrnT0g2NbBUH5TULg==","signatures":[{"sig":"MEUCIQCJz1qI+I/bBY9YJQWD0DSovYIN7wh4F41zmjqzaiIZbwIgOJDQMKBOun//NwayrA+E5rEmdC9sjs+NWv9hkxUb9X0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117200},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.23.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/339d79c7ad8aa10a509f1615ea997d24/usefy-use-key-press-0.23.0.tgz","_integrity":"sha512-A+jOIACOQ04SiU98zyDrARIW7a/J3Pod6oGDDk0SFH3YbJXDSSEcg3AJ7qLEob7/2Dwk8KrnT0g2NbBUH5TULg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.23.0_1783499614795_0.6641284591240595","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@usefy/use-key-press","version":"0.24.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.24.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"75b88be275a02cb6ca28a94219bbf5dc60b9b163","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.24.0.tgz","fileCount":8,"integrity":"sha512-UueN18ZRlt2N4KPAUZ6HAQ5UYMUtm9DnLqJ75kqZjs55dah64Xz8bAOgRE1yAI6kI5QnxloUMcxLeiAoVsoZKA==","signatures":[{"sig":"MEQCIEiIIAjHTmKYvnYBWlSbVF1nZbhkin41EagN1q7urdiIAiATwLxyOT8dv9vZ4YuY15UOcbkCwSm45idacek7lSx2Ag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117200},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.24.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/3e71f907635df84e01f89a90514ebb4f/usefy-use-key-press-0.24.0.tgz","_integrity":"sha512-UueN18ZRlt2N4KPAUZ6HAQ5UYMUtm9DnLqJ75kqZjs55dah64Xz8bAOgRE1yAI6kI5QnxloUMcxLeiAoVsoZKA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.24.0_1783512245266_0.600020124925053","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@usefy/use-key-press","version":"0.25.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.25.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"75ff5a08e0b1c0f991a570592f47407963009811","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.25.0.tgz","fileCount":8,"integrity":"sha512-S/uqEt9zXZtfE8C9QOSBOfn9HCoQNRn3mJzBSC6pmDJiIVNdN0+8nu1rz1SiE0rqLvRMfkxdiX9kmtTdRXcG/w==","signatures":[{"sig":"MEUCIG5xLQvp4qmeHE/gvfYcdkEkz3Nme9OpS3y7uo4WzqOUAiEAk7P1lN9JpGBXh6Q4hxSdCV3ZpgHYEP54JmE7xAXIzIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117200},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.25.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/6348dd3116d67ac60f198525136a5fd1/usefy-use-key-press-0.25.0.tgz","_integrity":"sha512-S/uqEt9zXZtfE8C9QOSBOfn9HCoQNRn3mJzBSC6pmDJiIVNdN0+8nu1rz1SiE0rqLvRMfkxdiX9kmtTdRXcG/w==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.25.0_1783516978438_0.38025483693814577","host":"s3://npm-registry-packages-npm-production"}},"0.25.1":{"name":"@usefy/use-key-press","version":"0.25.1","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@0.25.1","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://github.com/mirunamu00/usefy#readme","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"713edaf52aadc865d15ef5f898c7995dcf8d89a3","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-0.25.1.tgz","fileCount":8,"integrity":"sha512-jhpcJrWcxLEZbQp9A+/1MB/ITKBxL9BlzkL2pRH0xHGbcdu206ZJqJiDggcudYzpPcmTUtJdm5PsNaGcFy/ckg==","signatures":[{"sig":"MEUCIELlAh7xKU4JAZOpVGbCuA4fqmctOlpDgixmTaA3x0q9AiEAvTldeazMIxvuDSJLdKtmUarroSd0ZK1S4JKbciPaXsc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117200},"main":"./dist/index.js","_from":"file:usefy-use-key-press-0.25.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/a19e3a22fe385172a704751e03d1e6c4/usefy-use-key-press-0.25.1.tgz","_integrity":"sha512-jhpcJrWcxLEZbQp9A+/1MB/ITKBxL9BlzkL2pRH0xHGbcdu206ZJqJiDggcudYzpPcmTUtJdm5PsNaGcFy/ckg==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_0.25.1_1783523666974_0.4611131681085954","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@usefy/use-key-press","version":"1.0.0","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"license":"MIT","_id":"@usefy/use-key-press@1.0.0","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"homepage":"https://usefy-web.vercel.app/packages/use-key-press","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"dist":{"shasum":"baec1e354388e669e2e0f9ee3237ad5f454b340d","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-1.0.0.tgz","fileCount":8,"integrity":"sha512-nE1iXqo3xkeM2p/N+MAJokL17GdywtaJh7XhAjV1epI7pyV7b9OdbiD7h2Xj17mRw9pd/Lfb00HfRaxHy3mAMA==","signatures":[{"sig":"MEYCIQDy+beBzoqjOrE64jlXQ8yv3NIZS62tk5lr1dT0WlM8GwIhALVAMqPizNuSEp7ktywd93BOgnMpceIA8BMJxY2S3H5h","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117268},"main":"./dist/index.js","_from":"file:usefy-use-key-press-1.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run","build":"tsup","clean":"rimraf dist","typecheck":"tsc --noEmit","test:watch":"vitest"},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"_resolved":"/tmp/02d27f24e475b483544b04bb80fa5a6d/usefy-use-key-press-1.0.0.tgz","_integrity":"sha512-nE1iXqo3xkeM2p/N+MAJokL17GdywtaJh7XhAjV1epI7pyV7b9OdbiD7h2Xj17mRw9pd/Lfb00HfRaxHy3mAMA==","repository":{"url":"git+https://github.com/mirunamu00/usefy.git","type":"git","directory":"packages/hooks/use-key-press"},"_npmVersion":"11.16.0","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","vitest":"^4.0.16","typescript":"^5.0.0","@types/react":"^19.0.0","@testing-library/react":"^16.3.1","@testing-library/jest-dom":"^6.9.1","@testing-library/user-event":"^14.6.1"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/use-key-press_1.0.0_1784693231668_0.68318813650012","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@usefy/use-key-press","version":"1.1.0","homepage":"https://usefy-web.vercel.app/packages/use-key-press","description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"sideEffects":false,"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"devDependencies":{"@testing-library/jest-dom":"^6.9.1","@testing-library/react":"^16.3.1","@testing-library/user-event":"^14.6.1","@types/react":"^19.0.0","jsdom":"^27.3.0","react":"^19.0.0","rimraf":"^6.0.1","tsup":"^8.0.0","typescript":"^5.0.0","vitest":"^4.0.16"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/mirunamu00/usefy.git","directory":"packages/hooks/use-key-press"},"license":"MIT","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","clean":"rimraf dist"},"_id":"@usefy/use-key-press@1.1.0","bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"_integrity":"sha512-KL0lv7i1m0jOlMbXCaNsIP9pF37RsEOFzUKlKDdq8wlyTqNWGGVChcGIvy1NMfcH906tRqsu9nOYrQyXWLDjmw==","_resolved":"/tmp/642a84b6507e00b70f545213423f8a54/usefy-use-key-press-1.1.0.tgz","_from":"file:usefy-use-key-press-1.1.0.tgz","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-KL0lv7i1m0jOlMbXCaNsIP9pF37RsEOFzUKlKDdq8wlyTqNWGGVChcGIvy1NMfcH906tRqsu9nOYrQyXWLDjmw==","shasum":"42102d77cc4eeaeb1677fceda8b06942faa4a92a","tarball":"https://registry.npmjs.org/@usefy/use-key-press/-/use-key-press-1.1.0.tgz","fileCount":8,"unpackedSize":117274,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIE+oeAvofIGOQV0Scu0Fh55XZbq63X5ZqzmaoFI3IwMvAiBb3+22vsEcfDy0zRbBDhtAAyB3kTrpoA5AZbPgdwuoPA=="}]},"_npmUser":{"name":"mirunamu","email":"geon0529@gmail.com"},"directories":{},"maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/use-key-press_1.1.0_1785214687968_0.20070046838558842"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-01T06:39:15.638Z","modified":"2026-07-28T04:58:08.339Z","0.3.1":"2026-07-01T06:39:15.912Z","0.4.0":"2026-07-01T07:35:38.169Z","0.5.0":"2026-07-01T08:45:24.108Z","0.6.0":"2026-07-01T13:31:03.305Z","0.7.0":"2026-07-02T01:51:05.589Z","0.8.0":"2026-07-02T06:08:27.564Z","0.9.0":"2026-07-03T01:47:07.058Z","0.10.0":"2026-07-03T03:13:10.808Z","0.11.0":"2026-07-03T05:46:43.580Z","0.12.0":"2026-07-03T07:30:40.644Z","0.12.1":"2026-07-03T07:59:44.820Z","0.12.2":"2026-07-03T09:23:59.730Z","0.13.0":"2026-07-04T01:52:43.599Z","0.14.0":"2026-07-04T03:13:37.121Z","0.15.0":"2026-07-04T04:13:05.061Z","0.16.0":"2026-07-04T05:17:14.535Z","0.17.0":"2026-07-05T05:40:37.823Z","0.18.0":"2026-07-05T11:56:22.746Z","0.19.0":"2026-07-05T13:49:45.462Z","0.20.0":"2026-07-06T13:01:14.835Z","0.21.0":"2026-07-06T15:02:29.545Z","0.21.1":"2026-07-07T12:42:21.836Z","0.22.0":"2026-07-08T01:34:21.342Z","0.23.0":"2026-07-08T08:33:34.926Z","0.24.0":"2026-07-08T12:04:05.413Z","0.25.0":"2026-07-08T13:22:58.576Z","0.25.1":"2026-07-08T15:14:27.100Z","1.0.0":"2026-07-22T04:07:11.816Z","1.1.0":"2026-07-28T04:58:08.130Z"},"bugs":{"url":"https://github.com/mirunamu00/usefy/issues"},"license":"MIT","homepage":"https://usefy-web.vercel.app/packages/use-key-press","keywords":["react","hooks","keyboard","keypress","keydown","shortcut","hotkey","combination","useKeyPress"],"repository":{"type":"git","url":"git+https://github.com/mirunamu00/usefy.git","directory":"packages/hooks/use-key-press"},"description":"A React hook for detecting keyboard key presses, shortcuts, and combinations","maintainers":[{"name":"mirunamu","email":"geon0529@gmail.com"}],"readme":"<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/mirunamu00/usefy/master/assets/logo.png\" alt=\"usefy logo\" width=\"120\" />\n</p>\n\n<h1 align=\"center\">@usefy/use-key-press</h1>\n\n<p align=\"center\">\n  <strong>A powerful React hook for detecting keyboard key presses, shortcuts, and combinations</strong>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@usefy/use-key-press\">\n    <img src=\"https://img.shields.io/npm/v/@usefy/use-key-press.svg?style=flat-square&color=007acc\" alt=\"npm version\" />\n  </a>\n  <a href=\"https://www.npmjs.com/package/@usefy/use-key-press\">\n    <img src=\"https://img.shields.io/npm/dm/@usefy/use-key-press.svg?style=flat-square&color=007acc\" alt=\"npm downloads\" />\n  </a>\n  <a href=\"https://bundlephobia.com/package/@usefy/use-key-press\">\n    <img src=\"https://img.shields.io/bundlephobia/minzip/@usefy/use-key-press?style=flat-square&color=007acc\" alt=\"bundle size\" />\n  </a>\n  <a href=\"https://github.com/mirunamu00/usefy/blob/master/LICENSE\">\n    <img src=\"https://img.shields.io/npm/l/@usefy/use-key-press.svg?style=flat-square&color=007acc\" alt=\"license\" />\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"#installation\">Installation</a> •\n  <a href=\"#quick-start\">Quick Start</a> •\n  <a href=\"#api-reference\">API Reference</a> •\n  <a href=\"#examples\">Examples</a> •\n  <a href=\"#license\">License</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://mirunamu00.github.io/usefy/?path=/docs/hooks-usekeypress--docs\" target=\"_blank\" rel=\"noopener noreferrer\">\n    <strong>📚 View Storybook Demo</strong>\n  </a>\n</p>\n\n---\n\n## Overview\n\n`@usefy/use-key-press` is a feature-rich React hook for detecting keyboard input — from a single key to complex modifier combinations. It supports cross-platform shortcuts, alternative bindings, physical-key matching, and callbacks with the raw event, making it ideal for command palettes, editor shortcuts, and game controls.\n\n**Part of the [@usefy](https://www.npmjs.com/org/usefy) ecosystem** — a collection of production-ready React hooks designed for modern applications.\n\n### Why use-key-press?\n\n- **Zero Dependencies** — Pure React implementation with no external dependencies\n- **TypeScript First** — Full type safety with comprehensive type definitions\n- **Shortcuts & Combinations** — `\"Escape\"`, `\"ctrl+s\"`, `\"mod+shift+k\"` out of the box\n- **Alternative Bindings** — Arrays are matched as OR: `[\"ctrl+s\", \"meta+s\"]`\n- **Cross-Platform `mod`** — Resolves to Ctrl on Windows/Linux, Cmd on macOS\n- **Key or Code Matching** — Layout-aware (`event.key`) or physical (`event.code`) for WASD-style controls\n- **Callbacks** — `onPress` / `onRelease` receive the raw event for `preventDefault`\n- **Robust** — Ignores auto-repeat & typing in inputs (opt-in), resets on window blur\n- **SSR Compatible** — Safe listener setup and automatic cleanup\n\n---\n\n## Installation\n\n```bash\n# npm\nnpm install @usefy/use-key-press\n\n# yarn\nyarn add @usefy/use-key-press\n\n# pnpm\npnpm add @usefy/use-key-press\n```\n\n### Peer Dependencies\n\nThis package requires React 18 or 19:\n\n```json\n{\n  \"peerDependencies\": {\n    \"react\": \"^18.0.0 || ^19.0.0\"\n  }\n}\n```\n\n---\n\n## Quick Start\n\n```tsx\nimport { useKeyPress } from \"@usefy/use-key-press\";\n\nfunction Modal({ onClose }: { onClose: () => void }) {\n  const escapePressed = useKeyPress(\"Escape\");\n\n  useEffect(() => {\n    if (escapePressed) onClose();\n  }, [escapePressed, onClose]);\n\n  return <div>Press Escape to close</div>;\n}\n```\n\n### Shortcut with a callback\n\n```tsx\n// mod = Ctrl on Windows/Linux, Cmd on macOS\nuseKeyPress(\"mod+k\", {\n  preventDefault: true,\n  onPress: () => openCommandPalette(),\n});\n```\n\n---\n\n## API Reference\n\n### `useKeyPress(target, options?)`\n\nDetects whether `target` is currently pressed and returns a `boolean`.\n\n#### Parameters\n\n| Parameter | Type                 | Description                                        |\n| --------- | -------------------- | -------------------------------------------------- |\n| `target`  | `KeyPressTarget`     | The key(s) or predicate to detect (see below)      |\n| `options` | `UseKeyPressOptions` | Optional configuration object                      |\n\n#### `target` — `KeyPressTarget`\n\n| Form               | Example                        | Meaning                                                   |\n| ------------------ | ------------------------------ | --------------------------------------------------------- |\n| `string`           | `\"Escape\"`, `\"ctrl+s\"`         | A single key or a `+`-joined modifier combination         |\n| `string[]`         | `[\"ctrl+s\", \"meta+s\"]`         | **Alternative** bindings — matches if **any** applies (OR) |\n| predicate function | `(e) => /^[0-9]$/.test(e.key)` | Full control over matching                                 |\n\n**Modifier aliases:** `ctrl`/`control`, `shift`, `alt`/`option`/`opt`, `meta`/`cmd`/`command`/`win`, and `mod` (Ctrl on Windows/Linux, Cmd on macOS).\n\n**Key aliases:** `esc`/`escape`, `space`, `up`/`down`/`left`/`right` (arrows), `enter`/`return`, `del`/`delete`, `tab`, `backspace`, `plus`, and more.\n\n#### Options — `UseKeyPressOptions`\n\n| Option                | Type                                          | Default    | Description                                                                                     |\n| --------------------- | --------------------------------------------- | ---------- | ----------------------------------------------------------------------------------------------- |\n| `target`              | `Window \\| Document \\| HTMLElement \\| RefObject \\| null` | `window` | The element to attach listeners to. `null` detaches                                             |\n| `eventType`           | `\"keydown\" \\| \"keyup\" \\| \"both\"`              | `\"both\"`   | Which events drive the pressed state. `\"both\"` tracks the full held lifecycle                   |\n| `enabled`             | `boolean`                                     | `true`     | When `false`, no listeners are attached and the result is always `false`                        |\n| `preventDefault`      | `boolean`                                     | `false`    | Call `event.preventDefault()` on a match (e.g. override the browser's `ctrl+s`)                 |\n| `stopPropagation`     | `boolean`                                     | `false`    | Call `event.stopPropagation()` on a match                                                        |\n| `ignoreRepeat`        | `boolean`                                     | `true`     | Ignore auto-repeated `keydown` events for `onPress` (does not affect the returned boolean)      |\n| `ignoreInputElements` | `boolean`                                     | `false`    | Ignore events from `<input>`, `<textarea>`, `<select>`, and `contenteditable` elements          |\n| `caseSensitive`       | `boolean`                                     | `false`    | Match letters case-sensitively (key mode only)                                                   |\n| `matchBy`             | `\"key\" \\| \"code\"`                             | `\"key\"`    | Match the logical key (`event.key`) or the physical key (`event.code`)                          |\n| `exactModifiers`      | `boolean`                                     | `true`     | Require an exact modifier match. When `true`, `\"ctrl+s\"` does **not** match `ctrl+shift+s`       |\n| `onPress`             | `(event: KeyboardEvent) => void`              | —          | Called on a matching `keydown`, with the raw event                                               |\n| `onRelease`           | `(event: KeyboardEvent) => void`              | —          | Called when a matched key is released                                                            |\n\n#### Returns\n\n`boolean` — `true` while the target key/combination is pressed (with the default `eventType: \"both\"`).\n\n---\n\n## Examples\n\n### Cross-platform save shortcut\n\n```tsx\nimport { useKeyPress } from \"@usefy/use-key-press\";\n\nfunction Editor({ onSave }: { onSave: () => void }) {\n  // Array = OR: matches Ctrl+S on Windows/Linux and Cmd+S on macOS\n  useKeyPress([\"ctrl+s\", \"meta+s\"], {\n    preventDefault: true, // stop the browser's Save dialog\n    onPress: () => onSave(),\n  });\n\n  return <textarea />;\n}\n```\n\n### Command palette\n\n```tsx\nimport { useState } from \"react\";\nimport { useKeyPress } from \"@usefy/use-key-press\";\n\nfunction App() {\n  const [open, setOpen] = useState(false);\n\n  useKeyPress(\"mod+k\", {\n    preventDefault: true,\n    onPress: () => setOpen((prev) => !prev),\n  });\n\n  return open ? <CommandPalette /> : null;\n}\n```\n\n### WASD game controls (physical keys)\n\n```tsx\nimport { useKeyPress } from \"@usefy/use-key-press\";\n\nfunction Game() {\n  // matchBy: \"code\" is layout-independent (works on AZERTY, Dvorak, etc.)\n  const up = useKeyPress(\"w\", { matchBy: \"code\" });\n  const left = useKeyPress(\"a\", { matchBy: \"code\" });\n  const down = useKeyPress(\"s\", { matchBy: \"code\" });\n  const right = useKeyPress(\"d\", { matchBy: \"code\" });\n\n  return <Player up={up} left={left} down={down} right={right} />;\n}\n```\n\n### Ignore shortcuts while typing\n\n```tsx\nimport { useKeyPress } from \"@usefy/use-key-press\";\n\nfunction App() {\n  // \"f\" opens a filter — but not while the user types \"f\" in a field\n  useKeyPress(\"f\", {\n    ignoreInputElements: true,\n    onPress: () => openFilter(),\n  });\n\n  return <input placeholder=\"Type freely...\" />;\n}\n```\n\n### Custom predicate\n\n```tsx\nimport { useKeyPress } from \"@usefy/use-key-press\";\n\nfunction NumericField() {\n  const digitPressed = useKeyPress((e) => /^[0-9]$/.test(e.key));\n  return <div data-active={digitPressed}>Press any number</div>;\n}\n```\n\n### Scoped to a specific element\n\n```tsx\nimport { useRef } from \"react\";\nimport { useKeyPress } from \"@usefy/use-key-press\";\n\nfunction ScopedInput() {\n  const ref = useRef<HTMLInputElement>(null);\n\n  // Only reacts while the input is the event target\n  const enterPressed = useKeyPress(\"Enter\", { target: ref });\n\n  return <input ref={ref} data-submit={enterPressed} />;\n}\n```\n\n---\n\n## TypeScript\n\nThis hook is written in TypeScript and exports comprehensive type definitions.\n\n```tsx\nimport {\n  useKeyPress,\n  type KeyPressTarget,\n  type UseKeyPressOptions,\n  type KeyPressEventType,\n  type KeyPressMatchBy,\n  type ParsedShortcut,\n} from \"@usefy/use-key-press\";\n\nconst options: UseKeyPressOptions = {\n  preventDefault: true,\n  matchBy: \"key\",\n  onPress: (event) => console.log(event.key),\n};\n\nconst isPressed: boolean = useKeyPress(\"mod+shift+p\", options);\n```\n\nUtility helpers such as `parseShortcut`, `isKeyPressSupported`, and `isApplePlatform` are also exported for advanced use.\n\n---\n\n## Behavior Notes\n\n- **Held state** — With the default `eventType: \"both\"`, the returned boolean is `true` only while the key/combination is physically held.\n- **Stuck-key prevention** — If focus leaves the window while a key is held (so `keyup` is never delivered), the state resets on `blur`. To keep `onPress`/`onRelease` balanced, `onRelease` also fires once on that `blur`, receiving a synthetic `keyup` event. `onRelease` is **not** fired when the hook is disabled (`enabled: false`) or unmounted while pressed.\n- **Modifier release** — For combinations, releasing either the primary key or a modifier that was part of the held trigger ends the pressed state. Releasing an unrelated modifier (e.g. `Shift` while holding a bare `\"a\"`) does **not** reset it.\n- **SSR** — In non-browser environments the hook safely returns `false` and attaches no listeners.\n\n---\n\n## Browser Support\n\nThis hook uses standard `keydown`/`keyup` events, supported in all modern browsers:\n\n- Chrome 1+\n- Firefox 1+\n- Safari 1+\n- Edge 12+\n- Opera 7+\n\nFor SSR environments, the hook gracefully degrades and returns `false`.\n\n---\n\n## Testing\n\nThis package maintains comprehensive test coverage to ensure reliability and stability.\n\n### Test Coverage\n\n📊 <a href=\"https://mirunamu00.github.io/usefy/coverage/hooks/use-key-press/src/index.html\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>View Detailed Coverage Report</strong></a> (GitHub Pages)\n\n### Test Files\n\n- `useKeyPress.test.ts` — 60 tests for hook behavior and utilities\n\n**Total: 60 tests**\n\n---\n\n## License\n\nMIT © [mirunamu](https://github.com/mirunamu00)\n\nThis package is part of the [usefy](https://github.com/mirunamu00/usefy) monorepo.\n\n---\n\n<p align=\"center\">\n  <sub>Built with care by the usefy team</sub>\n</p>\n","readmeFilename":"README.md"}