{"_id":"@akreid/ampm-timepicker","_rev":"13-b8f5e07cb495de41011017585289d55b","name":"@akreid/ampm-timepicker","dist-tags":{"latest":"1.2.7"},"versions":{"1.0.0":{"name":"@akreid/ampm-timepicker","version":"1.0.0","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.0.0","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"dist":{"shasum":"71acb603ac7164aabc3d150b6b4116382bfdcbea","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.0.0.tgz","fileCount":3,"integrity":"sha512-vVwLdn0qzZwZwdTCS96FRM/+XKLjBlzCxxp2UYnom5nCkd4qf2HqgRUPZJkrFLcsvu7PsaZi2/M5KG26RiEBFg==","signatures":[{"sig":"MEQCIGJJbTWJuL639gx/ecCERHsNhdJ8MhRoKIQTRwwS5bmQAiBfi7n+UBM2/yL4T21bP/3eTT2PwtEh2nNC0/rpmMXIyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29529},"main":"ampmTimepicker.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM 12-hour and 24-hour formats with keyboard accessibility.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.0.0_1777438840471_0.6248443731259898","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@akreid/ampm-timepicker","version":"1.1.0","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.1.0","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampm-timepicker/","bugs":{"url":"https://github.com/akreid/ampm-timepicker/issues"},"dist":{"shasum":"2d468d010b31b48504e77f4d48686c60e2853b3d","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.1.0.tgz","fileCount":4,"integrity":"sha512-05+lUIG8n6P4SGpTuIB4khwfZvJjK8Jh0Q17qzymeVpnfXCIlWFTumF1oiBUjdnQa0lfPkfMz2D1lyaa4np+Tg==","signatures":[{"sig":"MEUCIQCX6283z4DjtiAxbuxgpxuW8ErT/SJ2nSPMYJyoXd+1ZgIgUrKfooiAKdJEfLogyw/v/CGFJcCvaXdfBtNEqm0YadM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35887},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"39dd6506aa69d56c2a1509ed7a6d8500ecc8c9d7","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.1.0_1777866094526_0.7595912785315921","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@akreid/ampm-timepicker","version":"1.1.1","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.1.1","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampm-timepicker/issues"},"dist":{"shasum":"b35d68bc72eed8437ef4c20945860bffc2201d3c","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.1.1.tgz","fileCount":4,"integrity":"sha512-bDwij7f3VgXtUamjpexJHxengNaisOntpSSkvZGprCsoiqKEf5qGgPnIs6/RbdHDpvZEt99Boqyh0MlJ9vjtNQ==","signatures":[{"sig":"MEUCIEdHBz1HLGArULqgobQzO/C8CLtPjRuX5LChheKiGtKVAiEAil7oIKWOODC4pof3CwJbA5DGBDs0iiSsSgvjUnOMFHA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35885},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"f9ac85fd2d865ed6e908de6c41c44d7db15e8e34","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.1.1_1777866550403_0.9994935505615368","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@akreid/ampm-timepicker","version":"1.1.2","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.1.2","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampm-timepicker/issues"},"dist":{"shasum":"b6723d832e6572b1f43f6aa1a948e312ab0e38a2","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.1.2.tgz","fileCount":4,"integrity":"sha512-nLS/KA2PTKSC7W01FBnB40s58D5/1KuZqnNV4IduDFcZbD/Po18oJU0X7BvV7KldFKd0i4imdPPEyKQDRmsB9Q==","signatures":[{"sig":"MEUCIQDRzr+fZ6mhLebqsUSQwsWYrn+KgI5OoZEArWkBwAsIWQIgZm+C7CebpPtR5dUJvCwha/b1sEc8J+JlhxHG9MPtBwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":36098},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"2b58a53f9baf534cac098ad6003f4003992b687d","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.1.2_1777867902636_0.9080812887509901","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@akreid/ampm-timepicker","version":"1.1.3","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.1.3","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampm-timepicker/issues"},"dist":{"shasum":"58eed9d200643d759d8c1e4256923bad7b6b3c21","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.1.3.tgz","fileCount":5,"integrity":"sha512-OUECBkBVIz21hQtitt5kJjD+4R7HoQNsI+Vkd06hBnomMj5ovZdBmZkSkWE7WhEXzcTziuY0BV29Onhcn1x0pQ==","signatures":[{"sig":"MEYCIQDF731L2zDhoNY106QAgbTsYCcLqYrR49OkKV6HY5k5PgIhANW2m8t5byIATuDdpF5QdEP1GzTAp0K0eeLQAR8K8PPl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46861},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"1b555bb193eae41b884d61f37008b7ad45b61389","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.1.3_1778053638235_0.66880328743149","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@akreid/ampm-timepicker","version":"1.2.0","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.2.0","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampm-timepicker/issues"},"dist":{"shasum":"ac798258cba8e2cfdd365654a82e12186aa57e33","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.2.0.tgz","fileCount":6,"integrity":"sha512-MVeKs5x37S65YEk4DcJu/1fQWRNuFJbFhxG037wG1/IFB6R6lSEsqyAx5BrVKaw4qMEtgWox+qe9dYwyCQnHXg==","signatures":[{"sig":"MEYCIQDegOl/ctsWn23g/74PR415e4l88euixGXoXDk0g+Z70wIhAKtTpvtl/yRvTZQmlBhYsvpL5tZvzF/hK1nKrpQ/wjsb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171210},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"433b3d4341e70f2e0ebd3ae0f431637c79a6b7ed","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.2.0_1778202989342_0.47005792203619423","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@akreid/ampm-timepicker","version":"1.2.1","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.2.1","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampmTimepicker/issues"},"dist":{"shasum":"855ee4017d9527478dd3e92c7254b07e1b7aadba","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.2.1.tgz","fileCount":7,"integrity":"sha512-3NsGq0kfcmVXi5isvMd9vyhSIXxMKwA5u34ggkqm3IYc7v7Ju2sm1vQTCZLG0QvxgAFmdbNRv8X3ntNwjC7gOQ==","signatures":[{"sig":"MEQCIFoT6ZusGsOnp1dgrDQBzluxLEgIZdYRbiOAPR5jHAR/AiBhWXWuyHX1WY8uBycfNxU6aUvstUEWm8X9ORnbzQ/oXQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173133},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"433b3d4341e70f2e0ebd3ae0f431637c79a6b7ed","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.2.1_1778205299131_0.8902188986627944","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@akreid/ampm-timepicker","version":"1.2.2","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.2.2","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampmTimepicker/issues"},"dist":{"shasum":"499b42cd639edf049293cffc5024c54cacf3c16d","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.2.2.tgz","fileCount":7,"integrity":"sha512-p+foQw1tL5H/QgB5ch6/snvssHHrScDIWvphKBdmphG3HxqTRoZbIt526v9QagJ6TkVny8JznDlHuRP1TkM2tw==","signatures":[{"sig":"MEQCIGyaqdTu0zcizw/5T6YRwVrbR/34QWmvQQ1/LtfY0sZCAiA80TzlGDffh+UXs9AYpSY7dwXtlSibJ8WW5DeO0GXncg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184585},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"9e1a490dcd3909fa4b2afca2a167a45ba2645ce3","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.2.2_1778638133288_0.18283093675060935","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@akreid/ampm-timepicker","version":"1.2.3","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.2.3","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampmTimepicker/issues"},"dist":{"shasum":"72d4e5e270a7f632d881ba4ba3c1d05274bac19a","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.2.3.tgz","fileCount":7,"integrity":"sha512-A0IYGvFxWjlxN7oHqo3cwVWsppU2lQQy+XU6DlDm9zjT9vxyOOMPhRwoMkDjVsWDc8fbfWIOPL0frqlrJxs7nQ==","signatures":[{"sig":"MEUCIFgOYw/hNJl5amrT0raPp7k+/JrdWnB7DFwwXql4Y9buAiEA3PgjhYFt8cIyKuD84wBV4guwg20hbDPGlIHx13xLeXU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184631},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"1bd278077d2cfe3cbdfad79238c2e8991ef27de9","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.2.3_1778638568652_0.9758697297024554","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@akreid/ampm-timepicker","version":"1.2.4","keywords":["timepicker","web-component","custom-element","ampm","time","picker","vanilla-js"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.2.4","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampmTimepicker/issues"},"dist":{"shasum":"e88e66a39a1f120bccb108162a7a450a9ad0ba05","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.2.4.tgz","fileCount":7,"integrity":"sha512-1LRY+pRswNs1zut7Lgc8xcJfdRrJz5jNOsodCfEO84XWNH1OBGcdf8hTuAsjELOxnbi8Pzd9h1xy8C2N8BBEqg==","signatures":[{"sig":"MEYCIQC0MlGPgvLcVM+wPEY7zehUB3aKKQVuweIVBQ5Kch8X3AIhAOaYHVwu+QuFiXr2mcikMvEF5Gg6fwXIwoR6/u50SaXg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":185549},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"907ba42ad99b366af42eeaf46d8fe54bb9771e01","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.2.4_1778639335745_0.7236844278586909","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@akreid/ampm-timepicker","version":"1.2.5","keywords":["vanilla-js","web-components","shadow-dom","zero-dependency","lightweight","customizable","dark-mode","mobile-friendly","accessible"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.2.5","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampmTimepicker/issues"},"dist":{"shasum":"ec520f5642181cfdd87718f91396ed1e04f68742","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.2.5.tgz","fileCount":7,"integrity":"sha512-Ew5TNTQ/GqKgSDSDBktQy57EJoETDR7uOGNIe4LUW96ixb9ClVXmN0ZiaXs8XvPcsDU5Lux2uqi7Ync3lQ5XXg==","signatures":[{"sig":"MEUCIQDbBPlzATrCgr22nrHdDML0Pl7odkGeRSrhO7DOj/hLgAIgMFUF95Ykrggf0E5f9sKoplO6iZ0R32tXWaeE6HIUvuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":189187},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"001e9a0528cd86d5c0cf70df3867337b028c1c06","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.2.5_1779066082919_0.9439487655863261","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@akreid/ampm-timepicker","version":"1.2.6","keywords":["vanilla-js","web-components","shadow-dom","zero-dependency","lightweight","customizable","dark-mode","mobile-friendly","accessible"],"author":{"name":"akreid"},"license":"MIT","_id":"@akreid/ampm-timepicker@1.2.6","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampmTimepicker/issues"},"dist":{"shasum":"e7ce44bbf3bfb2ca7e52de67071e9f4742700ead","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.2.6.tgz","fileCount":7,"integrity":"sha512-hmkTMhkxCerdPYWDFr2ORDmon8o69Zi9kkDs4ty4wDXFJaeV2g5nbr2/p4IZZ2A8lLmtj7ZcfOJUxAYNrWDzxQ==","signatures":[{"sig":"MEUCIGM5FAIjJMYDkN85m2xyFz42t2LAlOsLMAMo9lY2iDNaAiEAlz4pbFTbzC7FSs1DZ4B7/6CELpItFlxfvKshIQ45g00=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":193711},"main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"gitHead":"454dc1f073f7f15993d659949418bf01feacb43c","scripts":{"test":"vitest run","test:watch":"vitest"},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"repository":{"url":"git+https://github.com/akreid/ampmTimepicker.git","type":"git"},"_npmVersion":"10.9.2","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","directories":{},"_nodeVersion":"22.14.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jsdom":"^29.1.1","vitest":"^4.1.6","happy-dom":"^20.9.0"},"_npmOperationalInternal":{"tmp":"tmp/ampm-timepicker_1.2.6_1779849262437_0.7626963500087565","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@akreid/ampm-timepicker","version":"1.2.7","description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","main":"ampmTimepicker.js","type":"module","exports":{".":"./ampmTimepicker.js"},"keywords":["vanilla-js","web-components","shadow-dom","zero-dependency","lightweight","customizable","dark-mode","mobile-friendly","accessible"],"scripts":{"test":"vitest run","test:watch":"vitest"},"author":{"name":"akreid"},"license":"MIT","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/akreid/ampmTimepicker.git"},"homepage":"https://akreid.github.io/ampmTimepicker/","bugs":{"url":"https://github.com/akreid/ampmTimepicker/issues"},"devDependencies":{"happy-dom":"^20.9.0","jsdom":"^29.1.1","vitest":"^4.1.6"},"_id":"@akreid/ampm-timepicker@1.2.7","gitHead":"5e0ddf42b31198512dcbb78b2989fe1a7c0f713e","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-Xkq00qqqNAj55CKMt6ADV1JKFuLLc++MKdfvS5VBWSPJvIEYy3DOYXxakCv6kAoy+RKc+A/tcTyrPFpF9p/DXg==","shasum":"0e76e2c3df931b581c700161793b79a7699576fe","tarball":"https://registry.npmjs.org/@akreid/ampm-timepicker/-/ampm-timepicker-1.2.7.tgz","fileCount":7,"unpackedSize":195932,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICd2R/Uou8orl/NmRpTSHxsanzy9/rmz+2z5+GACEc5WAiBc1uHJSNJtbO0tilirCduKH8I+SC8C+NSNvkBP97qwtw=="}]},"_npmUser":{"name":"akreid","email":"akreid.m@gmail.com"},"directories":{},"maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ampm-timepicker_1.2.7_1780976086854_0.5210050068609409"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-29T05:00:40.371Z","modified":"2026-06-09T03:34:47.161Z","1.0.0":"2026-04-29T05:00:40.743Z","1.1.0":"2026-05-04T03:41:34.648Z","1.1.1":"2026-05-04T03:49:10.552Z","1.1.2":"2026-05-04T04:11:42.785Z","1.1.3":"2026-05-06T07:47:18.401Z","1.2.0":"2026-05-08T01:16:29.535Z","1.2.1":"2026-05-08T01:54:59.259Z","1.2.2":"2026-05-13T02:08:53.444Z","1.2.3":"2026-05-13T02:16:08.844Z","1.2.4":"2026-05-13T02:28:55.903Z","1.2.5":"2026-05-18T01:01:23.172Z","1.2.6":"2026-05-27T02:34:22.609Z","1.2.7":"2026-06-09T03:34:47.053Z"},"bugs":{"url":"https://github.com/akreid/ampmTimepicker/issues"},"author":{"name":"akreid"},"license":"MIT","homepage":"https://akreid.github.io/ampmTimepicker/","keywords":["vanilla-js","web-components","shadow-dom","zero-dependency","lightweight","customizable","dark-mode","mobile-friendly","accessible"],"repository":{"type":"git","url":"git+https://github.com/akreid/ampmTimepicker.git"},"description":"A custom web component timepicker supporting AM/PM and 24-hour formats.","maintainers":[{"name":"akreid","email":"akreid.m@gmail.com"}],"readme":"> **Note**: This document has been translated using AI.\n\n# `ampmTimepicker.js` Usage Guide\n\n[🇰🇷 한국어 버전](./README_KR.md)\n\n[![npm version](https://img.shields.io/npm/v/@akreid/ampm-timepicker.svg?style=flat-square)](https://www.npmjs.com/package/@akreid/ampm-timepicker)\n[![npm downloads](https://img.shields.io/npm/dm/@akreid/ampm-timepicker.svg?style=flat-square)](https://www.npmjs.com/package/@akreid/ampm-timepicker)\n[![npm total downloads](https://img.shields.io/npm/dt/@akreid/ampm-timepicker.svg?style=flat-square)](https://www.npmjs.com/package/@akreid/ampm-timepicker)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n\n\n![js](https://img.shields.io/badge/JavaScript-F7DF1E?style=flat&logo=JavaScript&logoColor=white)\n\n\n\n> ⚠️ **v1.2.0 Update Notice (Styling Changes)**<br>\n> Starting from this update, the component now inherits fonts and colors from its parent element and supports automatic dark mode. As a result, its appearance might look slightly different when updating from older versions. However, it will now blend much more naturally with your default website styles without requiring manual CSS tweaks.\n\n`<time-picker>` is a **zero-dependency, vanilla JavaScript** timepicker implemented as a native Custom Web Component. It works seamlessly in any environment **without frameworks like React or Vue.** It supports both AM/PM 12-hour and 24-hour formats and includes an intuitive UI with built-in keyboard accessibility (arrow keys and tab navigation).\n\n## Demo\nhttps://akreid.github.io/ampmTimepicker/\n\n### 1. Using ES Module (Recommended)\n\nIf your project supports ES modules, it's best to install it via npm and import it.\n\n```bash\n# Install via npm\nnpm install @akreid/ampm-timepicker\n# or via yarn\nyarn add @akreid/ampm-timepicker\n```\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n  <title>AmPmTimePicker Demo</title>\n  <!-- Import the component as a module -->\n  <script type=\"module\" src=\"https://cdn.jsdelivr.net/npm/@akreid/ampm-timepicker@1.2.7/ampmTimepicker.js\"></script>\n</head>\n<body>\n  <!-- Usage example -->\n  <time-picker use-ampm=\"true\" interval=\"15\"></time-picker>\n</body>\n</html>\n```\n\n### 2. Using CDN (Quick Start)\n\nYou can use it immediately by adding a `<script>` tag to your HTML file. It is recommended to use a file path that includes the version number.\n\n```html\n<!-- Include script (Version: 1.2.7) -->\n<script src=\"https://cdn.jsdelivr.net/npm/@akreid/ampm-timepicker@1.2.7/ampmTimepicker.js\"></script>\n\n<!-- Basic usage -->\n<time-picker></time-picker>\n```\n\n## ⚙️ Attributes\n\nYou can control the picker's behavior and display format by adding attributes to the component tag.\n\n| Attribute | Type | Default | Description |\n|---|---|---|---|\n| `use-ampm` | `boolean` | `false` | When set to `true`, it operates in an AM/PM 12-hour format. (Defaults to 24-hour format if not set) |\n| `interval` | `number` | `1` | Sets the minute selection interval. (e.g., `5`, `10`, `15`) |\n| `start-time` | `string` | `00:00` | The minimum selectable time (Format: `HH:mm`, based on 24-hour format) |\n| `end-time` | `string` | `23:59` | The maximum selectable time (Format: `HH:mm`, based on 24-hour format) |\n| `margin-right`| `string` | `0px` | Sets the right margin. (e.g., `10px`) |\n| `hide-button` | `boolean`| `false` | When set to `true`, hides the dropdown toggle (arrow) button on the right. |\n| `hour-label` | `string` | `null` | The label displayed at the top of the Hour column in the dropdown |\n| `min-label` | `string` | `null` | The label displayed at the top of the Minute column in the dropdown |\n| `ampm-label` | `string` | `null` | The label displayed at the top of the AM/PM column in the dropdown |\n| `disabled` | `boolean`| `false` | When set to `true`, the component is disabled and interaction is blocked |\n| `readonly` | `boolean`| `false` | When set to `true`, the value cannot be changed by the user |\n| `required` | `boolean`| `false` | When set to `true`, the field must be filled before submitting a form |\n| `required-message` | `string` | `null` | Custom validation error message when the `required` condition is not met. If not provided, the browser's default localized message is used. |\n| `name` | `string` | `null` | The name of the element used for form submission |\n| `value` | `string` | `null` | The initial time value (Format: `HH:mm`) |\n| `dropdown-class` | `string` | `null` | A custom class name injected directly into the dynamically appended dropdown element for scoped styling |\n\n### HTML Example\n```html\n<time-picker \n  use-ampm=\"true\" \n  interval=\"10\" \n  start-time=\"09:00\" \n  end-time=\"18:30\" \n  hour-label=\"Hour\" \n  min-label=\"Min\" \n  ampm-label=\"AM/PM\"\n  margin-right=\"8px\">\n</time-picker>\n```\n\n### Global / Batch Configuration (JS)\nIf you have multiple timepickers on a single page, you can apply common attributes globally using JavaScript instead of repeating them in your HTML.\n\n```html\n<!-- Add a common class to your timepickers -->\n<time-picker class=\"common-time\"></time-picker>\n<!-- Override specific attributes directly in HTML if needed -->\n<time-picker class=\"common-time\" interval=\"30\"></time-picker>\n\n<script type=\"module\">\n  document.addEventListener('DOMContentLoaded', () => {\n    const defaultOptions = {\n      'use-ampm': 'true',\n      'interval': '15',\n      'hour-label': 'Hour',\n      'min-label': 'Min',\n      'ampm-label': 'AM/PM'\n    };\n\n    document.querySelectorAll('.common-time').forEach(picker => {\n      Object.entries(defaultOptions).forEach(([key, value]) => {\n        // Apply default value only if not explicitly set in HTML\n        if (!picker.hasAttribute(key)) {\n          picker.setAttribute(key, value);\n        }\n      });\n    });\n  });\n</script>\n```\n\n## 🎨 Styling & Theming\n\n`<time-picker>` natively supports **Automatic Dark Mode** synchronized with the OS and browser settings. Its default styles adapt naturally to the parent container's theme using native CSS System Colors.\n\n### 1. CSS Custom Properties\nYou can override the default colors using the following CSS variables. (Old variable names are still supported, but `--ampm-` prefix is recommended to prevent conflicts.)\n\n| Variable Name | Default Value | Description |\n|---|---|---|\n| `--ampm-width` | `165px` | The total width of the input form |\n| `--ampm-height` | `42px` | The total height of the input form |\n| `--ampm-border-radius`| `8px` | The border-radius for all corners |\n| `--ampm-primary-color`| `#007bff` / `#4da3ff` (Dark) | Outline color on focus and active list item (hover/focus) color |\n\n### 2. Internal Element & State Control (`::part`, Attribute Selectors)\nFor more granular control (like the toggle button styling) or overriding specific states (`disabled`, `readonly`), combine `::part()` with attribute selectors.\n- `part=\"container\"`: The main wrapper container\n- `part=\"input\"`: The internal text input\n- `part=\"toggle-btn\"`: The dropdown toggle button\n\n```css\n/* 1. Customizing the toggle button's border and icon */\ntime-picker::part(toggle-btn) {\n  border-left: 2px dashed #ccc;\n  background-image: url('custom-icon.svg');\n}\n\n/* 2. Forcing a custom background color when disabled (without using variables) */\ntime-picker[disabled]::part(container) {\n  background-color: #ffe6e6;\n  border-color: #ff0000;\n}\n```\n\n### 3. Dropdown Scoped Styling Guide\nThe dropdown list is dynamically appended to the bottom of `document.body` to prevent clipping issues. For custom styling, refer to the internal DOM structure of the dropdown below:\n\n#### 🏗️ Dropdown DOM Structure Tree\n```text\ndiv.ampm-timepicker-dropdown\n├── div.ampm-col-wrapper\n│   ├── div.ampm-header (AM/PM Header)\n│   └── div.ampm-column.ampm-period-column\n│       ├── div.ampm-item.ampm-active (\"AM\")\n│       └── div.ampm-item (\"PM\")\n├── div.ampm-col-wrapper\n│   ├── div.ampm-header (Hour Header)\n│   └── div.ampm-column.ampm-hour-column\n│       ├── div.ampm-item (\"12\")\n│       └── ...\n└── div.ampm-col-wrapper\n    ├── div.ampm-header (Minute Header)\n    └── div.ampm-column.ampm-minute-column\n        ├── div.ampm-item (\"00\")\n        └── ...\n```\n\nBecause it is appended globally, custom classes applied directly to the component do not automatically affect the dropdown. To solve this, we provide two powerful synchronization options:\n\n#### 1) Explicit Custom Class (`dropdown-class` attribute)\nIf you want to style the dropdown of a specific time picker instance, use the `dropdown-class` attribute. The class you provide will be injected directly into the dynamically created dropdown element.\n```html\n<time-picker dropdown-class=\"my-pink-theme\"></time-picker>\n```\n```css\n/* Target this specific dropdown safely in your global CSS */\n.my-pink-theme { border: 2px solid pink; }\n.my-pink-theme .ampm-header { background-color: #ffe6e6; }\n```\n\n#### 2) Vue/Svelte Scoped CSS Auto-Support (`data-*` Syncing)\nWhen using `<style scoped>` in frameworks like Vue or Svelte, the framework injects a unique hash (e.g., `data-v-1a2b3c`) into your elements.\n`AmPmTimePicker` automatically **syncs all `data-` attributes** from the `<time-picker>` tag directly to the appended dropdown. Therefore, framework developers can use scoped CSS seamlessly without any extra configuration!\n\n### 4. ⚠️ Deprecated CSS Variables\nThe following highly specific CSS variables are scheduled to be **completely removed in the next major version (v2.0)** for optimization and standard compliance. While they will continue to work for now (via fallback), it is highly recommended to migrate your styles using the `::part()` selector approach explained above.\n\n| Deprecated Variable | Migration Guide (Recommended Alternative) |\n| :--- | :--- |\n| `--ampm-bg-color` | Use `time-picker::part(container) { background-color: ... }` |\n| `--ampm-font-color` | Use `time-picker { color: ... }` |\n| `--ampm-border-color` | Use `time-picker::part(container) { border-color: ... }` |\n| `--ampm-toggle-border-left` | Use `time-picker::part(toggle-btn) { border-left: ... }` |\n| `--ampm-toggle-icon-url` | Use `time-picker::part(toggle-btn) { background-image: ... }` |\n| `--ampm-toggle-icon-size` | Use `time-picker::part(toggle-btn) { background-size: ... }` |\n| `--ampm-invalid-color` | Use `time-picker:invalid::part(container) { border-color: ... }` |\n| `--ampm-disabled-bg` | Use `time-picker[disabled]::part(container) { background-color: ... }` |\n| `--ampm-disabled-opacity` | Use `time-picker[disabled] { opacity: ... }` |\n| `--ampm-readonly-bg` | Use `time-picker[readonly]::part(container) { background-color: ... }` |\n| `--ampm-dropdown-bg`<br>`--ampm-dropdown-text-color`<br>`--ampm-dropdown-border-color` | Use global class:<br>`.ampm-timepicker-dropdown { background-color: ...; color: ...; border-color: ...; }` |\n| `--ampm-bg-hover`<br>`--ampm-dropdown-hover-bg` | Use `.ampm-timepicker-dropdown .ampm-item:hover { background-color: ... }` |\n| `--ampm-dropdown-header-bg` | Use `.ampm-timepicker-dropdown .ampm-header { background-color: ... }` |\n| `--ampm-dropdown-divider-color` | Use `.ampm-timepicker-dropdown .ampm-column { border-right-color: ... }`<br>`.ampm-timepicker-dropdown .ampm-header { border-bottom-color: ... }` |\n| `--ampm-dropdown-scrollbar-thumb` | Use `.ampm-timepicker-dropdown .ampm-column::-webkit-scrollbar-thumb { background: ... }` |\n\n> **Note**: If you want to disable automatic dark mode and force a light theme, add `:root { --ampm-bg-color: #ffffff; --ampm-font-color: #333333; }` to your global stylesheet.\n\n## 💻 JavaScript API\n\n### 1. Properties\nYou can get the selected time or change it dynamically through the `value` property.\n> 💡 **Note**: The input/output format of the value is always a 24-hour `HH:mm` string.\n\n```javascript\nconst picker = document.querySelector('time-picker');\n\n// Set a value\npicker.value = '14:30'; \n\n// Get the current value\nconsole.log(picker.value); // \"14:30\"\n```\n\n### 2. Events\n`change` event is triggered whenever the time changes. You can check the selected value in `e.detail.value`.\n\n```javascript\nconst picker = document.querySelector('time-picker');\n\npicker.addEventListener('change', (e) => {\n  const selectedTime = e.detail.value;\n  console.log('Selected time:', selectedTime); // e.g., \"09:00\"\n});\n```\n\n### 3. Dynamic Attributes\nYou can dynamically modify attributes like `start-time`, `end-time`, `disabled`, `readonly`, etc., using standard DOM APIs. The component will react immediately.\n\n```javascript\nconst startPicker = document.getElementById('start-picker');\nconst endPicker = document.getElementById('end-picker');\n\n// Create a paired constraint dynamically\nstartPicker.addEventListener('change', (e) => {\n  if (e.detail.value) endPicker.setAttribute('start-time', e.detail.value);\n  else endPicker.removeAttribute('start-time');\n});\n```\n\n### 4. Form Integration\nSince it supports `ElementInternals`, you can use it directly inside a `<form>` tag like a native input.\n\n```html\n<form id=\"scheduleForm\">\n  <time-picker name=\"setTime\"></time-picker>\n  <time-picker name=\"startTime\" start-time=\"08:30\" value=\"09:00\" interval=\"10\"></time-picker>\n</form>\n\n<script>\n  const scheduleForm = document.getElementById('scheduleForm');\n  scheduleForm.addEventListener('submit', (e) => {\n    e.preventDefault();\n    \n    // Use the native FormData API to easily extract values\n    const formData = new FormData(scheduleForm);\n    const setTime = formData.get('setTime');\n    const startTime = formData.get('startTime');\n    \n    alert(`Selected Time: ${setTime}\\nStart Work: ${startTime}`);\n\n    // Tip: When sending to a server via fetch or axios:\n    // axios.post('/api/save', Object.fromEntries(formData));\n  });\n</script>\n```\n\n## ⌨️ Accessibility and UX\nThis component is designed to be fully operable using a keyboard, in addition to a mouse.\n\n- **Smart Typing Input**: Typing numbers into the input field automatically auto-corrects to the specified format.\n- **Arrow Key Navigation (Input)**: While the input is focused, pressing the `↑` (Up) or `↓` (Down) keys will increment/decrement the time by the `interval` unit.\n- **Dropdown Navigation**: \n  - When the dropdown is open, pressing the `←` or `→` keys will switch focus between the AM/PM, Hour, and Minute columns.\n  - Within each column, use the `↑` or `↓` keys to navigate through the values.\n- **Tab Focus Control**: Pressing the `Tab` key within the dropdown smoothly moves the focus to the next element. Logic is applied to prevent the browser address bar from capturing the focus (a common Shadow DOM focus trap issue).\n- **Mobile Touch Optimization**: On touch devices, the virtual keyboard is automatically disabled (`inputmode=\"none\"`) upon focus, preventing the screen from being obscured and allowing for a comfortable dropdown scrolling experience.\n- **Screen Scroll Synchronization**: Scrolling the browser window while the dropdown is open will automatically close the dropdown and commit the currently selected value.\n\n## 📝 Changelog\nDetailed changes for each release are documented in the [CHANGELOG.md](./CHANGELOG.md).\n","readmeFilename":"README.md"}