{"_id":"@curiousmedia/keyboard-trap","_rev":"4-929cbd5b50dd3d6e42d5e7b8b16dea46","name":"@curiousmedia/keyboard-trap","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@curiousmedia/keyboard-trap","version":"1.0.0","author":"","license":"MIT","_id":"@curiousmedia/keyboard-trap@1.0.0","maintainers":[{"name":"cm-gregory","email":"gregory@curiousmedia.com"},{"name":"kyfoote","email":"kyfoote@gmail.com"},{"name":"curiousjason","email":"support@curiousmedia.com"},{"name":"eaglstun","email":"postpostmodern@gmail.com"},{"name":"ishoa","email":"shane@curiousmedia.com"}],"dist":{"shasum":"09e4221944f27194188a4bb17f7c36b277916f28","tarball":"https://registry.npmjs.org/@curiousmedia/keyboard-trap/-/keyboard-trap-1.0.0.tgz","fileCount":15,"integrity":"sha512-0O3eZpkCSR6LRTR039PNijoGw012Y8RUWBqC0cgzBRotyWPitnuKyIWoibIaHI2q6ycBcBFwL76gMSGt1tLhnQ==","signatures":[{"sig":"MEQCIDNG8yG11KDHS/CkMLB3WqqvkMXBqKyvWGy1hGkdNM+jAiBx6Bqq8/Nz7fL5IsvTyHZh+LrPqxarvTOofCYCOW59/g==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15225},"main":"dist/keyboard-trap.js","type":"module","module":"dist/keyboard-trap.esm.js","gitHead":"78550ef0616b86d40c6f39d269fe64bd0d76ccb0","scripts":{"dist":"rollup -c","test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"curiousjason","email":"support@curiousmedia.com"},"_npmVersion":"8.19.3","description":"Create a keyboard trap to enhance accessibility","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.23.0","@babel/core":"^7.21.8","@babel/preset-env":"^7.21.5","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.4.3","@rollup/plugin-node-resolve":"^15.0.2"},"_npmOperationalInternal":{"tmp":"tmp/keyboard-trap_1.0.0_1684874504290_0.37556557686758185","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"@curiousmedia/keyboard-trap","version":"1.1.0","author":"","license":"MIT","_id":"@curiousmedia/keyboard-trap@1.1.0","maintainers":[{"name":"cm-gregory","email":"gregory@curiousmedia.com"},{"name":"kyfoote","email":"kyfoote@gmail.com"},{"name":"curiousjason","email":"support@curiousmedia.com"},{"name":"eaglstun","email":"postpostmodern@gmail.com"},{"name":"ishoa","email":"shane@curiousmedia.com"}],"dist":{"shasum":"c614132cf9ec151753e60440d73eeaf567869eee","tarball":"https://registry.npmjs.org/@curiousmedia/keyboard-trap/-/keyboard-trap-1.1.0.tgz","fileCount":15,"integrity":"sha512-gbJ+YphanSZiookMhubblK29V9SJ/PxPrkxRe37cFkGqzOyP1djUy5bNjxuoiRqtsYMkXhhhCFV7UrejuFw0Hw==","signatures":[{"sig":"MEYCIQC4R+cZXxvDUH1BJZc247o7rgaTHSWwf8S7IiEGvcWQsQIhAKrBafnDsT1iUvREmBur82agMqIzAv9vMQIoYqT6sngv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16134},"main":"dist/keyboard-trap.js","type":"module","module":"dist/keyboard-trap.esm.js","gitHead":"2c52df25e246fe86aed0bfd74cfde81101519cea","scripts":{"dist":"rollup -c","test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"curiousjason","email":"support@curiousmedia.com"},"_npmVersion":"8.19.3","description":"Create a keyboard trap to enhance accessibility","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.23.0","@babel/core":"^7.21.8","@babel/preset-env":"^7.21.5","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.4.3","@rollup/plugin-node-resolve":"^15.0.2"},"_npmOperationalInternal":{"tmp":"tmp/keyboard-trap_1.1.0_1684958387801_0.5451220089695357","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"@curiousmedia/keyboard-trap","version":"1.1.1","author":"","license":"MIT","_id":"@curiousmedia/keyboard-trap@1.1.1","maintainers":[{"name":"cm-gregory","email":"gregory@curiousmedia.com"},{"name":"kyfoote","email":"kyfoote@gmail.com"},{"name":"curiousjason","email":"support@curiousmedia.com"},{"name":"eaglstun","email":"postpostmodern@gmail.com"},{"name":"ishoa","email":"shane@curiousmedia.com"}],"dist":{"shasum":"c0b7a80508327aaae6e681277fbca9fe1918d1c4","tarball":"https://registry.npmjs.org/@curiousmedia/keyboard-trap/-/keyboard-trap-1.1.1.tgz","fileCount":15,"integrity":"sha512-YtceltehPeGrcrqbxu9BM03i2B3cJOSp9kYlLbpqA7Lhm8/HQogQbTiMguhgnOiHcyP6M8WJ/DGsY2JcMBI2KQ==","signatures":[{"sig":"MEUCIQCQnQW9v5yfcM1TcneFQK48OYwyN7scbermSjFBrjlj4wIgCQ2V8P7mVxWblnBTt3lo4KxKJYsC3MhiWjuCe+W2Grw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17208},"main":"dist/keyboard-trap.js","type":"module","module":"dist/keyboard-trap.esm.js","gitHead":"aa18e29d0cce0ce4b8d9fdbe88be6a7c817de131","scripts":{"dist":"rollup -c","test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"curiousjason","email":"support@curiousmedia.com"},"_npmVersion":"8.19.3","description":"Create a keyboard trap to enhance accessibility","directories":{},"_nodeVersion":"16.19.0","_hasShrinkwrap":false,"devDependencies":{"rollup":"^3.23.0","@babel/core":"^7.21.8","@babel/preset-env":"^7.21.5","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-terser":"^0.4.3","@rollup/plugin-node-resolve":"^15.0.2"},"_npmOperationalInternal":{"tmp":"tmp/keyboard-trap_1.1.1_1684959422264_0.18729345585731094","host":"s3://npm-registry-packages"}},"1.1.2":{"name":"@curiousmedia/keyboard-trap","version":"1.1.2","description":"Create a keyboard trap to enhance accessibility","main":"dist/keyboard-trap.js","module":"dist/keyboard-trap.esm.js","type":"module","devDependencies":{"@babel/core":"^7.21.8","@babel/preset-env":"^7.21.5","@rollup/plugin-babel":"^6.0.3","@rollup/plugin-node-resolve":"^15.0.2","@rollup/plugin-terser":"^0.4.3","rollup":"^3.23.0"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","dist":"rollup -c"},"author":"","license":"MIT","gitHead":"537f678c2f87be514bbd45a2f7647f9391d7d5a1","_id":"@curiousmedia/keyboard-trap@1.1.2","_nodeVersion":"16.20.2","_npmVersion":"8.19.4","dist":{"integrity":"sha512-pOwG2uH2+VkrJ9lxEFyccck0OmxRmBmezHBdmJqDy2MmDoMwyK4cVnmq8z37eXeod62Zr/bDFLZdLzmLPX0g9Q==","shasum":"25838690c9e7db2d8c1ce999651a6db6344261f9","tarball":"https://registry.npmjs.org/@curiousmedia/keyboard-trap/-/keyboard-trap-1.1.2.tgz","fileCount":6,"unpackedSize":14714,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDSi80e9ISqpTKlTpFgUnHG/zpqWKiCw2vo0Cahkp6vQgIgXzLsBdO/qZ5b8q6VX42/uDd0RDYFzZ7xNNRif1+mVLs="}]},"_npmUser":{"name":"curiousjason","email":"support@curiousmedia.com"},"directories":{},"maintainers":[{"name":"cm-gregory","email":"gregory@curiousmedia.com"},{"name":"kyfoote","email":"kyfoote@gmail.com"},{"name":"curiousjason","email":"support@curiousmedia.com"},{"name":"eaglstun","email":"postpostmodern@gmail.com"},{"name":"ishoa","email":"shane@curiousmedia.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/keyboard-trap_1.1.2_1754422398468_0.1452879513913481"},"_hasShrinkwrap":false}},"time":{"created":"2023-05-23T20:41:44.231Z","modified":"2025-08-05T19:33:18.946Z","1.0.0":"2023-05-23T20:41:44.409Z","1.1.0":"2023-05-24T19:59:47.954Z","1.1.1":"2023-05-24T20:17:02.482Z","1.1.2":"2025-08-05T19:33:18.657Z"},"license":"MIT","description":"Create a keyboard trap to enhance accessibility","maintainers":[{"name":"cm-gregory","email":"gregory@curiousmedia.com"},{"name":"kyfoote","email":"kyfoote@gmail.com"},{"name":"curiousjason","email":"support@curiousmedia.com"},{"name":"eaglstun","email":"postpostmodern@gmail.com"},{"name":"ishoa","email":"shane@curiousmedia.com"}],"readme":"# Keyboard Trap\nCreate a keyboard trap to enhance accessibility on UI components such as modals and toggled navigation.\n\n## Example\n### HTML\n```html\n<div class=\"modal\">\n  <button class=\"close\">Close</button>\n  \n  <form>\n    <label>Name<input type=\"text\" /></label>\n    <button>Submit</button>\n  </form>\n</div>\n<button class=\"toggle\">Open modal</button>\n```\n\n### Javascript\n```javascript\nconst trap = new KeyboardTrap(document.querySelector('.modal'));\n\ndocument.querySelector('.toggle').addEventListener('click', (e) => {\n  trap.setFocusVisibleByPointerType(e); // Determines visibility of focus based on event pointer type\n  trap.enable = !trap.enable;\n});\n\ndocument.querySelector('.close').addEventListener('click', () => {\n  trap.setFocusVisibleByPointerType(e); // Determines visibility of focus based on event pointer type\n  trap.enable = false;\n});\n```","readmeFilename":"readme.md"}