{"_id":"@desource/phone-mask-vue","_rev":"23-6f4794ec0f01d84c6506fea657dd8837","name":"@desource/phone-mask-vue","dist-tags":{"internal-beta":"1.2.1-beta.2","latest":"1.6.4"},"versions":{"0.2.0":{"name":"@desource/phone-mask-vue","version":"0.2.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@0.2.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"f01e4dae132fb0704c868d60bdffd86e7d29a119","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-0.2.0.tgz","fileCount":26,"integrity":"sha512-BndyajeTdwUJsQzle764MANdNWsr+eZNdhM5WzyxJkrmn8kf4nuooazLc2n6M/f/NtxxR6XxHonfog2Mzw2MWg==","signatures":[{"sig":"MEUCIE3R24h5Zc12xF9BGBc/6FqHd7UGmMI7YsDaiQPnoLirAiEAiN2Nxo5gaYzkl0U8gcpQnLKWD6ob3XDqrf6jxVeiKVA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236836},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-0.2.0.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"build":"pnpm build-lib && pnpm build-types","clean":"rimraf dist tsconfig.tsbuildinfo","build-lib":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","build-types":"vue-tsc --emitDeclarationOnly --declaration -p tsconfig.json"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/private/var/folders/g3/x7p07yx57kd2nrtdsjq0zwz40000gn/T/67347eff84fb2d7d576641d2d281f83e/desource-phone-mask-vue-0.2.0.tgz","_integrity":"sha512-BndyajeTdwUJsQzle764MANdNWsr+eZNdhM5WzyxJkrmn8kf4nuooazLc2n6M/f/NtxxR6XxHonfog2Mzw2MWg==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"10.9.2","description":"🔌 Vue 3 component & directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@desource/phone-mask":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.22","vue-tsc":"^3.1.3","@vitejs/plugin-vue":"^6.0.1"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_0.2.0_1762215629214_0.9850194979323683","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@desource/phone-mask-vue","version":"0.2.1","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@0.2.1","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"b5d4997ac5aaf82ea60c8e21a643cd017872efb0","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-0.2.1.tgz","fileCount":26,"integrity":"sha512-3L+QBly1Ba6Lq7mW9xvuTJuGqEY96dyvgAjet7oHzQOJvSlKff2jRj4hVtS/FKKaUBsKFQcoSMWwHCPDad+CAw==","signatures":[{"sig":"MEUCIAPDzzfVHdkavrma7d1M9iBb+jS3Ae3sCc7LgnOJUnmIAiEA2L4+UKlDAg3sI5mHv7JC5dEmZfQ0/f6ZM2nsS+gQ+sQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236933},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-0.2.1.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"build":"pnpm build-lib && pnpm build-types","clean":"rimraf dist tsconfig.tsbuildinfo","build-lib":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","build-types":"vue-tsc --emitDeclarationOnly --declaration -p tsconfig.json"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/ea03ad69050e848c2d48e36eaf70a0ec/desource-phone-mask-vue-0.2.1.tgz","_integrity":"sha512-3L+QBly1Ba6Lq7mW9xvuTJuGqEY96dyvgAjet7oHzQOJvSlKff2jRj4hVtS/FKKaUBsKFQcoSMWwHCPDad+CAw==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"10.8.2","description":"🔌 Vue 3 component & directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"20.19.5","dependencies":{"@desource/phone-mask":"0.2.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.22","vue-tsc":"^3.1.3","@vitejs/plugin-vue":"^6.0.1"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_0.2.1_1762390375260_0.6027849123118367","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@desource/phone-mask-vue","version":"0.2.2","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@0.2.2","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"51eb635a17f84e3d55e2bace67443f71f07e90b2","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-0.2.2.tgz","fileCount":26,"integrity":"sha512-YSl4ayTWpvC+Xplc+7Hk+80WkBn4knnyiKJMWwcB3nVr0wv/Tt3c9hpFzfvyX8kPpeDLs+8GlBjINfC+/RhuRw==","signatures":[{"sig":"MEUCIQCBg+RBZ+XlbRx6iD4MRmflZQbGZXZOhfv03L2fqKKBNgIgM0bRZzjSieVKaTp7Putub6D+zgeMGVDpOo/r1ZZ9RtE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237012},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-0.2.2.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"build":"pnpm build-lib && pnpm build-types","clean":"rimraf dist tsconfig.tsbuildinfo","build-lib":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","build-types":"vue-tsc --emitDeclarationOnly --declaration -p tsconfig.json"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/e6f9d2d1cea12425b110be8de90fcd52/desource-phone-mask-vue-0.2.2.tgz","_integrity":"sha512-YSl4ayTWpvC+Xplc+7Hk+80WkBn4knnyiKJMWwcB3nVr0wv/Tt3c9hpFzfvyX8kPpeDLs+8GlBjINfC+/RhuRw==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"10.8.2","description":"🔌 Vue 3 component & directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"@desource/phone-mask":"0.2.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.27","vue-tsc":"^3.2.3","@vitejs/plugin-vue":"^6.0.3"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_0.2.2_1769192007964_0.7967042569760141","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@desource/phone-mask-vue","version":"0.2.3","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@0.2.3","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"a3c970963e3246c32591486ef75ce6e61823ff8f","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-0.2.3.tgz","fileCount":26,"integrity":"sha512-Mua4O94V61JLsBrQ54irJiWrz6Azicfe6LN6aXPq68i2aAwlxgBZmg1WqlgSLqXpU4ISYvYmawCZSMfVLvMCKA==","signatures":[{"sig":"MEYCIQCwi62CeQtlhrPZshwmHhNBmAlCTNrpYHmveZGhBFNOmQIhAOE6dya2dwLJIRrnn5867ySSTQGmHdRuLpb0LrwBCh92","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238715},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-0.2.3.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"build":"pnpm build-lib && pnpm build-types","clean":"rimraf dist tsconfig.tsbuildinfo","build-lib":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","build-types":"vue-tsc --emitDeclarationOnly --declaration -p tsconfig.json"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/addc7e2d0a3119775f6f74f2e3f7abbd/desource-phone-mask-vue-0.2.3.tgz","_integrity":"sha512-Mua4O94V61JLsBrQ54irJiWrz6Azicfe6LN6aXPq68i2aAwlxgBZmg1WqlgSLqXpU4ISYvYmawCZSMfVLvMCKA==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"10.8.2","description":"🔌 Vue 3 component & directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"@desource/phone-mask":"0.2.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.27","vue-tsc":"^3.2.4","@vitejs/plugin-vue":"^6.0.4"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_0.2.3_1770772163595_0.2200844824079231","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@desource/phone-mask-vue","version":"0.3.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@0.3.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"5fc57162ff503b58214065175886812b4775bc14","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-0.3.0.tgz","fileCount":26,"integrity":"sha512-wprFFhFUbiH2moMa3ZjFzYYUWWnzx8op89hqbfhQsJsFQhOtafx0OVSX1X9r6qtDd8pzmzwp0D6cEHN94V8dJQ==","signatures":[{"sig":"MEQCIBXA1QapHmkAbHSYXrXApvES4sH2jDkscMg2PkdegRT1AiBx2CjuoUt7c+1fH3/bkclwGMlxRUMGK1yJ+h9dY9xDLw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235098},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-0.3.0.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"build":"pnpm build-lib && pnpm build-types","clean":"rimraf dist tsconfig.tsbuildinfo","build-lib":"vite build","typecheck":"tsc -p tsconfig.json --noEmit","build-types":"vue-tsc --emitDeclarationOnly --declaration -p tsconfig.json"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/46468ba8cc23d270386ab3d445880b35/desource-phone-mask-vue-0.3.0.tgz","_integrity":"sha512-wprFFhFUbiH2moMa3ZjFzYYUWWnzx8op89hqbfhQsJsFQhOtafx0OVSX1X9r6qtDd8pzmzwp0D6cEHN94V8dJQ==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"10.8.2","description":"🔌 Vue 3 component & directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"20.20.0","dependencies":{"@desource/phone-mask":"0.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.28","vue-tsc":"^3.2.4","@vitejs/plugin-vue":"^6.0.4"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_0.3.0_1771186368631_0.09849431746506832","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@desource/phone-mask-vue","version":"1.0.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.0.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"7bb665fea2e15d76f76bd4dd2639216399c2e0e4","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.0.0.tgz","fileCount":36,"integrity":"sha512-D9u2TkXyjMlmnMP0+u9SixzM2BMY4Ct7t9vm/SiiCadulTi822LX2Z/BSCar5zCS1/AVyIY1pQl720i9/z2qrQ==","signatures":[{"sig":"MEUCIQCgPj3p0OcnDuDPOM+CZ/5mNyqWU7UOk6XT37GT8Im6pwIgQYPRxDsv3WkHngM3XoL7UqRr++D2lOvGeXbllbGS9v4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238987},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.0.0.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc --emitDeclarationOnly --declaration -p tsconfig.json","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/cb57b63ac7c9c6971f58b365df9b3780/desource-phone-mask-vue-1.0.0.tgz","_integrity":"sha512-D9u2TkXyjMlmnMP0+u9SixzM2BMY4Ct7t9vm/SiiCadulTi822LX2Z/BSCar5zCS1/AVyIY1pQl720i9/z2qrQ==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"11.11.0","description":"🔌 Vue 3 component & directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.8.0","dependencies":{"@desource/phone-mask":"1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.29","vue-tsc":"^3.2.5","@vue/test-utils":"^2.4.6","@vitejs/plugin-vue":"^6.0.4"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.0.0_1772815349841_0.5628280787140643","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@desource/phone-mask-vue","version":"1.1.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.1.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"d5aeb6af63fcfcc0fd3ff2ebd66b8b4caae6fe5d","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.1.0.tgz","fileCount":36,"integrity":"sha512-WJErSFnHT1s+D8/YBO8vOxDe2zBn/PbtHdrtpQdRfTyCz4dC5iZFOqJkN6LRu0VATLdyoSJ7XYgIlHbYZVaxAg==","signatures":[{"sig":"MEUCIB746PzEkblGdhISwwRUMbLpKv9iG5clWeTXl9/FxziEAiEAtFA2BWZ8OFBnWhiPeNDKnMHEd/AIdNIMYM6/+ehJRP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237711},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.1.0.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc --emitDeclarationOnly --declaration -p tsconfig.json","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/7eed44ab0b6f45804189cb8cc15ed434/desource-phone-mask-vue-1.1.0.tgz","_integrity":"sha512-WJErSFnHT1s+D8/YBO8vOxDe2zBn/PbtHdrtpQdRfTyCz4dC5iZFOqJkN6LRu0VATLdyoSJ7XYgIlHbYZVaxAg==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"11.11.0","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"@desource/phone-mask":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.30","vue-tsc":"^3.2.5","@vitejs/plugin-vue":"^6.0.5","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.1.0_1773596887275_0.5819822800285528","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@desource/phone-mask-vue","version":"1.1.1","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.1.1","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"d4364f16485725e9c3b1cd51f787e2018cea59e4","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.1.1.tgz","fileCount":36,"integrity":"sha512-zwFDtKVbC4EujhaNhy17Nupo0cTkEt6Lbf1IUE7Ht7i1x6XgxeR4pGxAeGSHA4q2H+m8WhBdXxhwRVJ8TWGFSw==","signatures":[{"sig":"MEYCIQDdWPSZdjnOhQbzW9/deZzzFT/YYXZgcKEGEeqcHomx6wIhAJJZPBntfi6hzzVLbuOVY8ejRsDCFjM3a+QDjTyDrjnq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":237859},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.1.1.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc --emitDeclarationOnly --declaration -p tsconfig.json","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/373e912294274c7ce997ba50f2fec7b0/desource-phone-mask-vue-1.1.1.tgz","_integrity":"sha512-zwFDtKVbC4EujhaNhy17Nupo0cTkEt6Lbf1IUE7Ht7i1x6XgxeR4pGxAeGSHA4q2H+m8WhBdXxhwRVJ8TWGFSw==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"11.11.0","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"@desource/phone-mask":"1.1.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.30","vue-tsc":"^3.2.5","@vitejs/plugin-vue":"^6.0.5","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.1.1_1773599968686_0.7515728242600466","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@desource/phone-mask-vue","version":"1.1.2","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.1.2","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"0e99c088651f272b33c80764a6e0fd287e6c11e9","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.1.2.tgz","fileCount":35,"integrity":"sha512-+N7FOYFFTK7iCC3RYWLCowhm0QIIo2U348A3+owC+BxoubB+c9dPJamL/N5xXObiZnAEoiqG1032FCyGZ+e+ow==","signatures":[{"sig":"MEQCIAyyi/91ne+FrLWjHb/yxHB+MqGm+xW5OLJtNXdQilaHAiBIfQnmVY0TvPCXur60NVq9CgTmxDOEzAz/xsfDe5SGtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99913},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.1.2.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/6ef67bd229e6aac770a8c504b9bd7786/desource-phone-mask-vue-1.1.2.tgz","_integrity":"sha512-+N7FOYFFTK7iCC3RYWLCowhm0QIIo2U348A3+owC+BxoubB+c9dPJamL/N5xXObiZnAEoiqG1032FCyGZ+e+ow==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"11.11.0","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"@desource/phone-mask":"1.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.30","vue-tsc":"^3.2.6","@vitejs/plugin-vue":"^6.0.5","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.1.2_1774194533301_0.4509152547702602","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@desource/phone-mask-vue","version":"1.2.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.2.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"9ac1192f9aff634ddfc80875dce51302f2ab4766","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.2.0.tgz","fileCount":35,"integrity":"sha512-j+20HDDEXF3rUtxw1U5FwsAYp+tHuuSRZsyr9b0spkduIFir3NLVPTs0HfD7lnP/U1ens3wTE61X7rM3gWhUVg==","signatures":[{"sig":"MEUCIEs1STg12FIZGIUWGbiE64LnN5EZXR53EnxIwqn3YbenAiEAmop0vqwXgOXBFBtEy25vgi65SsF9Y3/dd7n0OEJv5MQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100338},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.2.0.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/187e5badaa6c740f6fb154029d4af212/desource-phone-mask-vue-1.2.0.tgz","_integrity":"sha512-j+20HDDEXF3rUtxw1U5FwsAYp+tHuuSRZsyr9b0spkduIFir3NLVPTs0HfD7lnP/U1ens3wTE61X7rM3gWhUVg==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"11.11.1","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"@desource/phone-mask":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.30","vue-tsc":"^3.2.6","@vitejs/plugin-vue":"^6.0.5","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.2.0_1774433039912_0.1709489311250465","host":"s3://npm-registry-packages-npm-production"}},"1.2.1-beta.0":{"name":"@desource/phone-mask-vue","version":"1.2.1-beta.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.2.1-beta.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"660bda4ebc6c2379f0f29b6694eec227d0b45e49","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.2.1-beta.0.tgz","fileCount":38,"integrity":"sha512-NAslgbe8UQWPfUWE6rfZtVYxWeVNRX1wQSss4goV3ZWfQ6K0Y9c0S0Q83vzMkPwRyw/ODCJqECUX0o9lObgaXw==","signatures":[{"sig":"MEYCIQDvK6Ojck1dwWlKlcAKXxxVbqvLnhgrcOQO11/ZugeiCQIhAOTmFRxCca5eGH9/7VeK9JWdTEB8B9KHMiLWLBdn/zVo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99059},"main":"dist/index.cjs","type":"module","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"gitHead":"ae7f5444d0602f73b56bc44ef5b8a7c8388ba71b","private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"10.9.3","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@desource/phone-mask":"workspace:*"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.31","vue-tsc":"^3.2.6","@vitejs/plugin-vue":"^6.0.5","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.2.1-beta.0_1774556443921_0.11667199388871219","host":"s3://npm-registry-packages-npm-production"}},"1.2.1-beta.1":{"name":"@desource/phone-mask-vue","version":"1.2.1-beta.1","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.2.1-beta.1","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"4bb5e8faaf45bc33f47b2aa9e14081efab24d5e3","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.2.1-beta.1.tgz","fileCount":39,"integrity":"sha512-XZpPcvijyVJK6fALyJ455lEZYjGcev3yjUr74UV7Uo/z/XFMUgHOK08LzlL6EScw3Ghm44HbSgSq6b5ItRYMYw==","signatures":[{"sig":"MEQCIG8MbcEfF+J/eQfOuqZupVNBYEaO+padRBSLp5XGe2KvAiBhtcptT4MVwxYn39Dv7MMO2bXUVUeHfC8gILAz6Im1jw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100122},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.2.1-beta.1.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/private/var/folders/g3/x7p07yx57kd2nrtdsjq0zwz40000gn/T/27f527d7fcead27d4cdfbb376737b3b5/desource-phone-mask-vue-1.2.1-beta.1.tgz","_integrity":"sha512-XZpPcvijyVJK6fALyJ455lEZYjGcev3yjUr74UV7Uo/z/XFMUgHOK08LzlL6EScw3Ghm44HbSgSq6b5ItRYMYw==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"10.9.2","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@desource/phone-mask":"1.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.31","vue-tsc":"^3.2.6","@vitejs/plugin-vue":"^6.0.5","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.2.1-beta.1_1774557603607_0.6921701184877063","host":"s3://npm-registry-packages-npm-production"}},"1.2.1-beta.2":{"name":"@desource/phone-mask-vue","version":"1.2.1-beta.2","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.2.1-beta.2","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"451fa0fe95c6944631df45b5a14ad9a86140bb62","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.2.1-beta.2.tgz","fileCount":39,"integrity":"sha512-r7KazAHxJdRchvw2NbgU56rtPq/dXHb8C/XGlaHp42h26VRkhZycDb+NwBpB6pC8yAk6uF2feS5m3e+MOy+Jgg==","signatures":[{"sig":"MEYCIQC4xH820Zi+AeCETg+UZFj9wr7wf82Zo+yYgXR5SsoQGQIhAOZ4L2HING3zQYHHJswNMskb40M+xhLsiaZQJnnzB5JQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100129},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.2.1-beta.2.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/private/var/folders/g3/x7p07yx57kd2nrtdsjq0zwz40000gn/T/9e2139daa4ea1564274865a8a5313a74/desource-phone-mask-vue-1.2.1-beta.2.tgz","_integrity":"sha512-r7KazAHxJdRchvw2NbgU56rtPq/dXHb8C/XGlaHp42h26VRkhZycDb+NwBpB6pC8yAk6uF2feS5m3e+MOy+Jgg==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"10.9.2","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"22.16.0","dependencies":{"@desource/phone-mask":"1.2.1-beta.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vue":"^3.5.31","vue-tsc":"^3.2.6","@vitejs/plugin-vue":"^6.0.5","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.2.1-beta.2_1774559841807_0.368115550060355","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@desource/phone-mask-vue","version":"1.3.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.3.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"cdd586809e935bced8c714d51babaa2ddccae38a","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.3.0.tgz","fileCount":39,"integrity":"sha512-UcRNT4TciBuzZGab/VXDEPEuSdZQLotL+BhRVE6qWhSYgmCSE/MXtb8DEvJ95EW/NeJK6FRDvDQSlivvidtavQ==","signatures":[{"sig":"MEUCIAwdAFj83ok0s/IQTjgKjijDMHjK8TCq4A0dDn8ZeaWsAiEAyy3DO7pIxEoMD5vyLVQdmoncacP6ouGs/mjVIA4/I3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104558},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.3.0.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"stefanpopov","email":"stef4n.popov@gmail.com"},"_resolved":"/tmp/97c0ec75d86585ebce338ece77645d8c/desource-phone-mask-vue-1.3.0.tgz","_integrity":"sha512-UcRNT4TciBuzZGab/VXDEPEuSdZQLotL+BhRVE6qWhSYgmCSE/MXtb8DEvJ95EW/NeJK6FRDvDQSlivvidtavQ==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"11.11.1","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.8.2","dependencies":{"@desource/phone-mask":"1.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.31","vue-tsc":"^3.2.6","@vitejs/plugin-vue":"^6.0.5","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.3.0_1774905962838_0.11914306348696213","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@desource/phone-mask-vue","version":"1.3.1","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.3.1","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"72b887f7bd8afdaf22df786e195aa79aa3f2c767","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.3.1.tgz","fileCount":39,"integrity":"sha512-km7zsjyFWr3D7lFhBjMIPu8F1+ISOuQmvHkz7E08R8xB6kxMvhJzILTUky6Y+2DxxVUDw76IS4g4PO4tkLB6pg==","signatures":[{"sig":"MEYCIQCm/GFBtoaCT8K22taGr0oCqsIw/Eug/tFex0VTIFIBeQIhANh7vXR8w86I4Aw5xofESL+Q9kDF/Axh9beYvOvIH0vy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":107649},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.3.1.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"_resolved":"/tmp/6284ac8712ddda31fdbcf081310000b3/desource-phone-mask-vue-1.3.1.tgz","_integrity":"sha512-km7zsjyFWr3D7lFhBjMIPu8F1+ISOuQmvHkz7E08R8xB6kxMvhJzILTUky6Y+2DxxVUDw76IS4g4PO4tkLB6pg==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"11.12.1","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@desource/phone-mask":"1.3.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.33","vue-tsc":"^3.2.7","@vitejs/plugin-vue":"^6.0.6","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.3.1_1777638838897_0.5305952730598871","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@desource/phone-mask-vue","version":"1.4.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":{"name":"Stefan Popov","email":"stefan@desource-labs.org"},"license":"MIT","_id":"@desource/phone-mask-vue@1.4.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"c59539f1c3c0fe6a9a5fa207135ae8f3539842f8","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.4.0.tgz","fileCount":39,"integrity":"sha512-oYd0B161DvcGF9+HN1GCDBKlLKMxx7uyyGoAXUXFwoEVsiing91MCja0x61MI35S2b0abvJUmpFAp3AAuCNRdg==","signatures":[{"sig":"MEUCICwn58Uwl3zaOtgRyur/RbD4qLJLbcyAdakBK0nJ1bh1AiEAjy0v3+4M8yAVjey+y0ON4dAbRNM6A5LBWUU/qe8fo2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109237},"main":"dist/index.cjs","type":"module","_from":"file:desource-phone-mask-vue-1.4.0.tgz","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"_resolved":"/tmp/7dd68dfe59afd4a0a8d6b7d4760c6a66/desource-phone-mask-vue-1.4.0.tgz","_integrity":"sha512-oYd0B161DvcGF9+HN1GCDBKlLKMxx7uyyGoAXUXFwoEVsiing91MCja0x61MI35S2b0abvJUmpFAp3AAuCNRdg==","repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"_npmVersion":"11.12.1","description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@desource/phone-mask":"1.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.34","vue-tsc":"^3.2.8","@vitejs/plugin-vue":"^6.0.6","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.4.0_1778254287033_0.7550161304170111","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@desource/phone-mask-vue","version":"1.4.1","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":"Stefan Popov <stefan@desource-labs.org>","license":"MIT","_id":"@desource/phone-mask-vue@1.4.1","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"2b9cb9bee235e87bf2a23afe43535b87b9c08a56","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.4.1.tgz","fileCount":39,"integrity":"sha512-XJyLVMuwguf36jy58SWdUZhQYv3vWrKq/LpgEk/yaRYa+w2CTjQiDo4NMHUubdJhukvD5Yh3whjh/UeUbZMqZQ==","signatures":[{"sig":"MEYCIQDXf/pD3/QsPMgKqU+mHquhSWP6O7pwqtRQz57wGO+OSQIhAIYYGfPsXFJQ2n8eKsL/NTM7rJJzYoZq9pAwvlt841Y3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":109767},"main":"dist/index.cjs","type":"module","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:lib":"vite build","test:unit":"vitest run","typecheck":"vue-tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@desource/phone-mask":"1.4.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.39","vue-tsc":"^3.3.6","@vitejs/plugin-vue":"^6.0.7","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.4.1_1783979125613_0.37627465492133605","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@desource/phone-mask-vue","version":"1.5.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":"Stefan Popov <stefan@desource-labs.org>","license":"MIT","_id":"@desource/phone-mask-vue@1.5.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"41d87ab15b13ac4013ed3a1233e3704d07ffbfde","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.5.0.tgz","fileCount":39,"integrity":"sha512-eBJUHxW50wCnW00gLJcWepBdru6aCcyszHQ1jWLTOpAPZaFtg9TVp/+UFazuHaV9rBu5D/P60GdHNjTj3g2NcQ==","signatures":[{"sig":"MEUCIQCmdYCFZwXh/mJ8LIneJ6/j75Qls6LCVJCwM+Sfqo3IYAIgAwG8T2xxQ62z1i3YFZl9UV7yvVgzDgMwKsAVG2i4oJU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":112719},"main":"dist/index.cjs","type":"module","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:css":"sass src/style.scss dist/phone-mask-vue.css --no-source-map --style=compressed","build:lib":"vite build","test:unit":"vitest run","typecheck":"vue-tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types && pnpm build:css","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@desource/phone-mask":"1.5.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","vue-tsc":"^3.3.8","@vitejs/plugin-vue":"^6.0.7","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.5.0_1785691052762_0.6873780006356585","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@desource/phone-mask-vue","version":"1.6.0","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":"Stefan Popov <stefan@desource-labs.org>","license":"MIT","_id":"@desource/phone-mask-vue@1.6.0","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"51ccb0cd6cfe628eabb8da50e1cb0f53132d8843","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.6.0.tgz","fileCount":39,"integrity":"sha512-F8MvXHeYyU6SsyCgnZDIurj3CIe/3jgHPsZ/joWHNpF5YzbpqJnnVCa+677kCSKz/hc+5SeDN38TeuFk46vFUA==","signatures":[{"sig":"MEYCIQDULpchlcQSQQS2EqF6F9YbYzq2KF93auGMfa5mGPR3CwIhAPTpRbRIsm4IacQnM3UbeYl5Bh1HosD5Hk51GXuksM4f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113319},"main":"dist/index.cjs","type":"module","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:css":"sass src/style.scss dist/phone-mask-vue.css --no-source-map --style=compressed","build:lib":"vite build","test:unit":"vitest run","typecheck":"vue-tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types && pnpm build:css","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@desource/phone-mask":"1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","vue-tsc":"^3.3.8","@vitejs/plugin-vue":"^6.0.7","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.6.0_1786098005287_0.024309468294394954","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@desource/phone-mask-vue","version":"1.6.1","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":"Stefan Popov <stefan@desource-labs.org>","license":"MIT","_id":"@desource/phone-mask-vue@1.6.1","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"29421350ddceace071d2182ccf2851b7d17ad521","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.6.1.tgz","fileCount":39,"integrity":"sha512-pIZ0OOr/c0vPm6plR7UVC89JruWZjMJCAnx4ZA/Io0TFI1DhBAmX3Gb+YTIguPIPgYdYLR5AmYdPZTrI9c3zsA==","signatures":[{"sig":"MEYCIQC4SNktfnE+UgWgTWVe9HPcRx0ulvAvVRS+nKcjEODuWgIhAIgpOoHdYn5A6nHIYo0XQTJy9ePFxGlo3obHHxWBUnTG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113508},"main":"dist/index.cjs","type":"module","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:css":"sass src/style.scss dist/phone-mask-vue.css --no-source-map --style=compressed","build:lib":"vite build","test:unit":"vitest run","typecheck":"vue-tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types && pnpm build:css","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"25.9.0","dependencies":{"@desource/phone-mask":"1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.40","vue-tsc":"^3.3.8","@vitejs/plugin-vue":"^6.0.7","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.6.1_1786099322126_0.16536084647327898","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@desource/phone-mask-vue","version":"1.6.2","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":"Stefan Popov <stefan@desource-labs.org>","license":"MIT","_id":"@desource/phone-mask-vue@1.6.2","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"2c5ae18b22fa97be76fb805221b6b5ceaa344258","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.6.2.tgz","fileCount":39,"integrity":"sha512-p1B8nIdaxRCf0u8Znz/YtYh2StSwZFsXEIY+NrHTdClCS5WHIT+dL0opy5FwLZpaPvPzeI+V8zNGep5WDBpV7w==","signatures":[{"sig":"MEUCIHuR+BsMEMcx8wVxoT7IDPRCCFlSpJxUfyJ/UzUTzl2lAiEA0O6V3UHjNyL2+4zmJQEyQ0080A2lH8RveHjJklhKWpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113825},"main":"dist/index.cjs","type":"module","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:css":"sass src/style.scss dist/phone-mask-vue.css --no-source-map --style=compressed","build:lib":"vite build","test:unit":"vitest run","typecheck":"vue-tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types && pnpm build:css","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"26.7.0","dependencies":{"@desource/phone-mask":"1.6.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.41","vue-tsc":"^3.3.11","@vitejs/plugin-vue":"^6.0.8","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.6.2_1787574774280_0.7182743906675668","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"@desource/phone-mask-vue","version":"1.6.3","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"author":"Stefan Popov <stefan@desource-labs.org>","license":"MIT","_id":"@desource/phone-mask-vue@1.6.3","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"b1050e1a7ca83431a66a6951a9af86275f4c9ffb","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.6.3.tgz","fileCount":39,"integrity":"sha512-qcDO1LdGWsQf5UKoOfuoDWqKVbAx8YJuspfs5sgr7fp4eBVEJauHFPR8ewtWIQK1XwJGsna/yXRDymj1uNrhpQ==","signatures":[{"sig":"MEUCIBrXCFQgntiZcc4Bkby4s/t/BByMGJRKCLwcMdWINQorAiEAlm4GWHY8OeVEAIA9VS3o0SAVTivOVwmfRlkFzYMtpEw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114044},"main":"dist/index.cjs","type":"module","types":"dist/types/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:css":"sass src/style.scss dist/phone-mask-vue.css --no-source-map --style=compressed","build:lib":"vite build","test:unit":"vitest run","typecheck":"vue-tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types && pnpm build:css","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"sideEffects":false,"_nodeVersion":"26.8.1","dependencies":{"@desource/phone-mask":"1.6.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.42","vue-tsc":"^3.3.11","@vitejs/plugin-vue":"^6.0.8","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"tmp":"tmp/phone-mask-vue_1.6.3_1788824874980_0.5442876805990129","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"_id":"@desource/phone-mask-vue@1.6.4","bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"dist":{"shasum":"8098365502d8a0820395175c72195783a2d41ef8","tarball":"https://registry.npmjs.org/@desource/phone-mask-vue/-/phone-mask-vue-1.6.4.tgz","fileCount":39,"integrity":"sha512-96gk3I6ErUYgF5Ib0HLltMJlQvWc1IOXFwEgQzyUBKSBTGGn84zEJfwksPkDC+s+ReBiY/1jcfiBRDDhp520WQ==","signatures":[{"sig":"MEUCIEOqlGDvnJOSwLLUHqdHSWKhvwqjAW4I7IK85YSjmXRRAiEA+2xU6/DNQXF4xDH8obp5vKHLvXOGNwTgPg/+mejtgJ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCcZiC8U8kgixMuebLcBVBj3i3aLK5ChPIGbNfAo2pHZgIhAJkFGo1X5LN4UTzCHMK12AWwSyeWCIiW6WnYZvpDakTK"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@desource%2fphone-mask-vue@1.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114503},"main":"dist/index.cjs","name":"@desource/phone-mask-vue","type":"module","types":"dist/types/index.d.ts","author":"Stefan Popov <stefan@desourcelabs.com>","module":"dist/index.mjs","exports":{".":{"types":"./dist/types/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.cjs"},"./core":{"types":"./dist/types/core.d.ts","import":"./dist/core.mjs","require":"./dist/core.cjs"},"./assets/lib.css":"./dist/phone-mask-vue.css"},"license":"MIT","private":false,"scripts":{"dev":"vite demo","build":"pnpm clean && pnpm build:internal","clean":"rimraf dist tsconfig.tsbuildinfo test-results coverage","test:e2e":"playwright test","build:css":"sass src/style.scss dist/phone-mask-vue.css --no-source-map --style=compressed","build:lib":"vite build","test:unit":"vitest run","typecheck":"vue-tsc -p tsconfig.json --noEmit","build:types":"vue-tsc -p tsconfig.json","clean:modules":"rimraf node_modules","build:internal":"pnpm build:lib && pnpm build:types && pnpm build:css","test:unit:coverage":"vitest run --coverage.enabled --coverage.provider=v8 --coverage.reporter=lcov --coverage.reportsDirectory=coverage"},"version":"1.6.4","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1a50c991-d4d2-4af4-b921-ed085b03338d"}},"homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","directories":{},"maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"sideEffects":false,"dependencies":{"@desource/phone-mask":"1.6.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.43","vue-tsc":"^3.3.11","@vitejs/plugin-vue":"^6.0.9","@testing-library/vue":"^8.1.0"},"peerDependencies":{"vue":"^3.4.33"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/phone-mask-vue_1.6.4_1790382011759_0.763971382807741"}}},"time":{"created":"2025-11-04T00:20:29.134Z","modified":"2026-09-26T00:20:12.133Z","0.2.0":"2025-11-04T00:20:29.408Z","0.2.1":"2025-11-06T00:52:55.470Z","0.2.2":"2026-01-23T18:13:28.105Z","0.2.3":"2026-02-11T01:09:23.748Z","0.3.0":"2026-02-15T20:12:48.783Z","1.0.0":"2026-03-06T16:42:30.015Z","1.1.0":"2026-03-15T17:48:07.462Z","1.1.1":"2026-03-15T18:39:28.838Z","1.1.2":"2026-03-22T15:48:53.446Z","1.2.0":"2026-03-25T10:04:00.040Z","1.2.1-beta.0":"2026-03-26T20:20:44.118Z","1.2.1-beta.1":"2026-03-26T20:40:03.760Z","1.2.1-beta.2":"2026-03-26T21:17:21.953Z","1.3.0":"2026-03-30T21:26:02.986Z","1.3.1":"2026-05-01T12:33:59.054Z","1.4.0":"2026-05-08T15:31:27.176Z","1.4.1":"2026-07-13T21:45:25.739Z","1.5.0":"2026-08-02T17:17:32.896Z","1.6.0":"2026-08-07T10:20:05.431Z","1.6.1":"2026-08-07T10:42:02.260Z","1.6.2":"2026-08-24T12:32:54.438Z","1.6.3":"2026-09-07T23:47:55.132Z","1.6.4":"2026-09-26T00:20:11.843Z"},"bugs":{"url":"https://github.com/DeSource-Labs/phone-mask/issues"},"author":"Stefan Popov <stefan@desourcelabs.com>","license":"MIT","homepage":"https://github.com/DeSource-Labs/phone-mask/tree/main/packages/phone-mask-vue#readme","keywords":["vue","vue3","phone","mask","input","component","directive","international","libphonenumber","country-code","phone-number","formatting","validation","composition-api","typescript"],"repository":{"url":"git+https://github.com/DeSource-Labs/phone-mask.git","type":"git","directory":"packages/phone-mask-vue"},"description":"🔌 Vue 3 component, composable, and directive for international phone number masking. Powered by @desource/phone-mask with Google libphonenumber sync.","maintainers":[{"name":"stefanpopov","email":"stef4n.popov@gmail.com"}],"readme":"# @desource/phone-mask-vue\n\n> Vue 3 phone input component with Google's libphonenumber data\n\n[![npm version](https://img.shields.io/npm/v/@desource/phone-mask-vue?color=blue&logo=vuedotjs)](https://www.npmjs.com/package/@desource/phone-mask-vue)\n[![codewiki](https://img.shields.io/badge/code%20wiki-000000?logo=googlegemini&logoColor=white)](https://codewiki.google/github.com/desource-labs/phone-mask)\n[![bundle size](https://img.shields.io/bundlephobia/minzip/@desource/phone-mask-vue?label=gzip%20size&color=purple)](https://bundlephobia.com/package/@desource/phone-mask-vue)\n[![context7 docs](https://img.shields.io/badge/context7%20docs-000000)](https://context7.com/desource-labs/phone-mask)\n[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/DeSource-Labs/phone-mask/blob/main/LICENSE)\n\nBeautiful, accessible, extreme small & tree-shakeable Vue 3 phone input with auto-formatting, country selector, and validation.\n\n## ✨ Features\n\n- 🎨 **Beautiful UI** — Modern design with light/dark themes\n- 🔍 **Smart Country Search** — Fuzzy matching with keyboard navigation\n- 🎭 **Auto-formatting** — As-you-type formatting with smart cursor\n- ✅ **Validation** — Built-in validation with visual feedback\n- 📋 **Copy Button** — One-click copy to clipboard\n- 🌐 **Auto-detection** — GeoIP and locale-based detection\n- ♿ **Accessible** — ARIA labels, keyboard navigation\n- 📱 **Mobile-friendly** — Optimized for touch devices\n- 🎯 **TypeScript** — Full type safety\n- 🧩 **Three modes** — Component, composable, or directive\n- ⚡ **Optimized** — Tree-shaking and code splitting\n\n## 📦 Installation\n\n```bash\nnpm install @desource/phone-mask-vue\n# or\nyarn add @desource/phone-mask-vue\n# or\npnpm add @desource/phone-mask-vue\n```\n\n## 🚀 Quick Start\n\n### Importing\n\nComponent mode:\n\n```ts\nimport { createApp } from 'vue';\nimport { PhoneInput } from '@desource/phone-mask-vue';\nimport '@desource/phone-mask-vue/assets/lib.css'; // Import styles\n\nconst app = createApp(App);\napp.component('PhoneInput', PhoneInput);\napp.mount('#app');\n```\n\nDirective mode (for custom input implementations):\n\n```ts\nimport { createApp } from 'vue';\nimport { vPhoneMask } from '@desource/phone-mask-vue';\n\nconst app = createApp(App);\napp.directive('phone-mask', vPhoneMask);\napp.mount('#app');\n```\n\nComposable mode (for custom input implementations in case even directive doesn't fit your needs):\n\n```ts\nimport { usePhoneMask } from '@desource/phone-mask-vue';\n```\n\nCore kit utilities and mask data re-exported from the core package subpaths:\n\n```ts\nimport { getFlagEmoji, formatDigitsWithMap } from '@desource/phone-mask-vue/core';\n```\n\nRegister all at once (component + directive):\n\n```ts\nimport { createApp } from 'vue';\nimport phoneMask from '@desource/phone-mask-vue';\nimport '@desource/phone-mask-vue/assets/lib.css'; // Import styles for component mode\n\nconst app = createApp(App);\napp.use(phoneMask); // Registers component and directive\napp.mount('#app');\n```\n\n### Component Mode\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { PhoneInput } from '@desource/phone-mask-vue';\n\nconst phoneDigits = ref('');\nconst isValid = ref(false);\n</script>\n\n<template>\n  <PhoneInput v-model=\"phoneDigits\" country=\"US\" theme=\"light\" @validation-change=\"isValid = $event\" />\n\n  <p v-if=\"isValid\">✓ Valid phone number</p>\n</template>\n```\n\n### Directive Mode\n\nFor custom styling with automatic formatting:\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport type { PMaskPhoneNumber } from '@desource/phone-mask-vue';\n\nconst country = ref('US');\nconst phone = ref('');\nconst digits = ref('');\n\nconst handleChange = (nextPhone: PMaskPhoneNumber) => {\n  phone.value = nextPhone.full;\n  digits.value = nextPhone.digits;\n};\n</script>\n\n<template>\n  <div class=\"phone-wrapper\">\n    <select v-model=\"country\">\n      <option value=\"US\">🇺🇸 +1</option>\n      <option value=\"GB\">🇬🇧 +44</option>\n      <option value=\"DE\">🇩🇪 +49</option>\n    </select>\n\n    <input\n      v-phone-mask=\"{\n        country,\n        onChange: handleChange\n      }\"\n      placeholder=\"Phone number\"\n    />\n  </div>\n\n  <p>{{ digits }} digits entered</p>\n</template>\n```\n\n### Composable Mode\n\nFor custom input implementations (in case even directive doesn't fit your needs):\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { usePhoneMask } from '@desource/phone-mask-vue';\n\nconst value = ref('');\n\nconst { inputRef, digits, full, fullFormatted, isComplete, setCountry } = usePhoneMask({\n  value,\n  onChange: (newValue) => (value.value = newValue),\n  country: 'US',\n  detect: true\n});\n</script>\n\n<template>\n  <div>\n    <input ref=\"inputRef\" type=\"tel\" placeholder=\"Phone number\" />\n    <p>Formatted: {{ fullFormatted }}</p>\n    <p>Valid: {{ isComplete ? 'Yes' : 'No' }}</p>\n    <button @click=\"setCountry('GB')\">Use UK</button>\n  </div>\n</template>\n```\n\n### Send Raw Digits to Backend\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { PhoneInput, type PMaskPhoneNumber } from '@desource/phone-mask-vue';\n\nconst phoneDigits = ref('');\n\nconst onPhoneChange = async (phone: PMaskPhoneNumber) => {\n  await fetch('/api/profile/phone', {\n    method: 'POST',\n    headers: { 'content-type': 'application/json' },\n    body: JSON.stringify({\n      phoneDigits: phone.digits, // unformatted value for backend\n      phoneFull: phone.full // optional full number with country code\n    })\n  });\n};\n</script>\n\n<template>\n  <PhoneInput v-model=\"phoneDigits\" country=\"US\" @change=\"onPhoneChange\" />\n</template>\n```\n\n### Dynamic Mask Updates on Country Change\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { usePhoneMask, type PCountryKey } from '@desource/phone-mask-vue';\n\nconst selectedCountry = ref<PCountryKey>('US');\nconst digits = ref('');\n\nconst { inputRef, fullFormatted, isComplete, setCountry } = usePhoneMask({\n  value: digits,\n  onChange: (value) => (digits.value = value),\n  country: selectedCountry\n});\n\nconst onCountrySelect = (nextCountry: PCountryKey) => {\n  selectedCountry.value = nextCountry;\n  setCountry(nextCountry); // updates mask immediately\n};\n</script>\n\n<template>\n  <select :value=\"selectedCountry\" @change=\"onCountrySelect(($event.target as HTMLSelectElement).value as PCountryKey)\">\n    <option value=\"US\">US</option>\n    <option value=\"GB\">GB</option>\n    <option value=\"DE\">DE</option>\n  </select>\n\n  <input ref=\"inputRef\" type=\"tel\" />\n  <p>{{ fullFormatted }}</p>\n  <p>{{ isComplete ? 'complete' : 'incomplete' }}</p>\n</template>\n```\n\n### Multi-tenant: tenantId Default Country + Tenant-specific Validation Rules\n\n```vue\n<script setup lang=\"ts\">\nimport { computed, ref } from 'vue';\nimport { usePhoneMask, type PCountryKey } from '@desource/phone-mask-vue';\n\ntype TenantPolicy = {\n  defaultCountry: PCountryKey;\n  prefixRule?: RegExp;\n};\n\nconst props = defineProps<{ tenantId: string }>();\n\nconst TENANT_POLICIES: Record<string, TenantPolicy> = {\n  acme: { defaultCountry: 'US', prefixRule: /^(202|303)\\d{7}$/ },\n  globex: { defaultCountry: 'GB', prefixRule: /^7\\d{9}$/ }\n};\n\nconst tenantPolicy = computed(() => TENANT_POLICIES[props.tenantId] ?? { defaultCountry: 'US' as const });\nconst digits = ref('');\n\nconst {\n  inputRef,\n  digits: maskDigits,\n  isComplete\n} = usePhoneMask({\n  value: digits,\n  onChange: (value) => (digits.value = value),\n  country: computed(() => tenantPolicy.value.defaultCountry)\n});\n\nconst isTenantValid = computed(() => {\n  if (!isComplete.value) return false;\n  const rule = tenantPolicy.value.prefixRule;\n  return rule ? rule.test(maskDigits.value) : true;\n});\n</script>\n\n<template>\n  <input ref=\"inputRef\" type=\"tel\" />\n  <p>Default country: {{ tenantPolicy.defaultCountry }}</p>\n  <p>Tenant validation: {{ isTenantValid ? 'pass' : 'fail' }}</p>\n</template>\n```\n\n## 📖 Component API\n\n### Props\n\n```ts\ninterface PhoneInputProps {\n  // v-model binding\n  modelValue?: string;\n\n  // Optional id/name applied to the underlying <input> for forms/autofill\n  id?: string;\n  name?: string;\n\n  // Preselected country (ISO 3166-1 alpha-2)\n  country?: CountryKey;\n\n  // Auto-detect country from IP/locale\n  detect?: boolean; // Default: true\n\n  // Locale for country names\n  locale?: string; // Default: browser language\n\n  // Size variant\n  size?: 'compact' | 'normal' | 'large'; // Default: 'normal'\n\n  // Visual theme (\"auto\" | \"light\" | \"dark\")\n  theme?: 'auto' | 'light' | 'dark'; // Default: 'auto'\n\n  // Disabled state\n  disabled?: boolean; // Default: false\n\n  // Readonly state\n  readonly?: boolean; // Default: false\n\n  // Show copy button\n  showCopy?: boolean; // Default: true\n\n  // Show clear button\n  showClear?: boolean; // Default: false\n\n  // Show validation state (borders & outline)\n  withValidity?: boolean; // Default: true\n\n  // Custom search placeholder\n  searchPlaceholder?: string; // Default: 'Search country or code...'\n\n  // Custom no results text\n  noResultsText?: string; // Default: 'No countries found'\n\n  // Custom clear button label\n  clearButtonLabel?: string; // Default: 'Clear phone number'\n\n  // Dropdown menu custom CSS class\n  dropdownClass?: string;\n\n  // Disable default styles\n  disableDefaultStyles?: boolean; // Default: false\n}\n```\n\n### Events\n\n```ts\ninterface PhoneInputEvents {\n  // v-model update\n  'update:modelValue': (value: string) => void;\n\n  // Value changed\n  // Provides an object with:\n  // - full: Full phone number with country code (e.g. +1234567890)\n  // - fullFormatted: Full phone number formatted according to country rules (e.g. +1 234-567-890)\n  // - digits: Only the digits of the phone number without country code (e.g. 234567890)\n  change: (value: PMaskPhoneNumber) => void;\n\n  // Country changed\n  'country-change': (country: PMaskFull) => void;\n\n  // Validation state changed\n  'validation-change': (isValid: boolean) => void;\n\n  // Input focused\n  focus: (event: FocusEvent) => void;\n\n  // Input blurred\n  blur: (event: FocusEvent) => void;\n\n  // Copy button clicked\n  copy: (value: string) => void;\n\n  // When input is cleared\n  clear: () => void;\n}\n```\n\n### Exposed Methods\n\n```ts\ninterface PhoneInputExpose {\n  // Focus the phone input\n  focus: () => void;\n\n  // Blur the phone input\n  blur: () => void;\n\n  // Clear the phone input\n  clear: () => void;\n\n  // Select a country by its ISO 3166-1 alpha-2 code\n  selectCountry: (country: CountryKey) => void;\n\n  // Get the full phone number with country code (e.g. +1234567890)\n  getFullNumber: () => string;\n\n  // Get the full phone number formatted according to country rules (e.g. +1 234-567-890)\n  getFullFormattedNumber: () => string;\n\n  // Get only the digits of the phone number without country code (e.g. 234567890)\n  getDigits: () => string;\n\n  // Check if the current phone number is valid\n  isValid: () => boolean;\n\n  // Check if the current phone number is complete\n  isComplete: () => boolean;\n}\n```\n\n### Slots\n\n- `actions-before` — Slot for custom actions before default buttons\n\n- `flag` — Slot for custom country flag rendering in the country list and country selector\n\n- `copy-svg` — Slot for custom copy button SVG icon\n\n- `clear-svg` — Slot for custom clear button SVG icon\n\n### Usage with Refs\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { PhoneInput } from '@desource/phone-mask-vue';\n\nconst phoneInputRef = ref<InstanceType<typeof PhoneInput>>();\n\nconst focusInput = () => {\n  phoneInputRef.value?.focus();\n};\n\nconst clearInput = () => {\n  phoneInputRef.value?.clear();\n};\n</script>\n\n<template>\n  <PhoneInput ref=\"phoneInputRef\" v-model=\"phone\" />\n  <button @click=\"focusInput\">Focus</button>\n  <button @click=\"clearInput\">Clear</button>\n</template>\n```\n\n## 🎨 Component Styling\n\n### CSS Custom Properties\n\nCustomize colors via CSS variables:\n\n```css\n.desource-phone-input,\n.desource-phone-dropdown {\n  /* Colors */\n  --pi-bg: #ffffff;\n  --pi-fg: #111827;\n  --pi-muted: #6b7280;\n  --pi-border: #e5e7eb;\n  --pi-border-hover: #d1d5db;\n  --pi-border-focus: #3b82f6;\n  --pi-focus-ring: 3px solid rgb(59 130 246 / 0.15);\n  --pi-disabled-bg: #f9fafb;\n  --pi-disabled-fg: #9ca3af;\n  /* Sizes */\n  --pi-font-size: 16px;\n  --pi-height: 44px;\n  /* Spacing */\n  --pi-padding: 12px;\n  /* Border radius */\n  --pi-radius: 8px;\n  /* Shadows */\n  --pi-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n  --pi-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.05);\n  /* Validation */\n  --pi-warning: #f59e0b;\n  --pi-warning-light: #fbbf24;\n  --pi-success: #10b981;\n  --pi-focus-ring-warning: 3px solid rgb(245 158 11 / 0.15);\n  --pi-focus-ring-success: 3px solid rgb(16 185 129 / 0.15);\n}\n```\n\n### Dark Theme\n\n```vue\n<template>\n  <PhoneInput v-model=\"phone\" theme=\"dark\" />\n</template>\n```\n\nOr with CSS:\n\n```css\n.desource-phone-input.theme-dark {\n  --pi-bg: #1f2937;\n  --pi-fg: #f9fafb;\n  --pi-border: #374151;\n}\n```\n\n## 🧩 Directive API\n\n### Basic Usage\n\n```vue\n<template>\n  <input v-phone-mask=\"'US'\" />\n</template>\n```\n\n### With Options\n\n```ts\ninterface PMaskDirectiveOptions {\n  // Predefined country ISO code (e.g., 'US', 'DE', 'GB')\n  country?: string;\n\n  // Locale for country names (default: navigator.language)\n  locale?: string;\n\n  // Auto-detect country from IP/locale (default: false)\n  detect?: boolean;\n\n  // Value change callback\n  onChange?: (phone: PMaskPhoneNumber) => void;\n\n  // Country change callback\n  onCountryChange?: (country: PMaskFull) => void;\n}\n```\n\n```vue\n<template>\n  <input\n    v-phone-mask=\"{\n      country: 'US',\n      locale: 'en',\n      onChange: handleChange,\n      onCountryChange: handleCountryChange\n    }\"\n  />\n</template>\n```\n\n### Reactive Country\n\n```vue\n<script setup lang=\"ts\">\nimport type { PMaskPhoneNumber } from '@desource/phone-mask-vue';\n\nconst selectedCountry = ref('US');\n\nconst handleChange = (phone: PMaskPhoneNumber) => {\n  console.log('Phone:', phone.full, 'Digits:', phone.digits);\n};\n</script>\n\n<template>\n  <select v-model=\"selectedCountry\">\n    <option value=\"US\">🇺🇸 United States</option>\n    <option value=\"GB\">🇬🇧 United Kingdom</option>\n  </select>\n\n  <input\n    v-phone-mask=\"{\n      country: selectedCountry,\n      onChange: handleChange\n    }\"\n  />\n</template>\n```\n\n## 🪝 Composable API\n\n### `usePhoneMask`\n\nFor custom input implementations:\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { usePhoneMask } from '@desource/phone-mask-vue';\n\nconst value = ref('');\n\nconst { inputRef, digits, full, fullFormatted, isComplete, setCountry, clear } = usePhoneMask({\n  value,\n  onChange: (newValue) => (value.value = newValue),\n  country: 'US',\n  detect: false\n});\n</script>\n\n<template>\n  <div>\n    <input ref=\"inputRef\" type=\"tel\" />\n    <button @click=\"setCountry('GB')\">Switch to UK</button>\n    <button @click=\"clear\">Clear</button>\n    <p>Full: {{ fullFormatted || '—' }}</p>\n    <p>Valid: {{ isComplete ? 'Yes' : 'No' }}</p>\n  </div>\n</template>\n```\n\n### Options\n\n> **Note:** The composable requires controlled behavior. Both `value` and `onChange` options are required.\n\n```ts\ninterface UsePhoneMaskOptions {\n  // Controlled value (digits only, without country code) - REQUIRED\n  value: MaybeRefOrGetter<string>;\n\n  // Callback when the digits value changes - REQUIRED\n  onChange: (digits: string) => void;\n\n  // Predefined country ISO code (e.g., 'US', 'DE', 'GB')\n  country?: MaybeRefOrGetter<string | undefined>;\n\n  // Locale for country names (default: navigator.language)\n  locale?: MaybeRefOrGetter<string | undefined>;\n\n  // Auto-detect country from IP/locale (default: false)\n  detect?: MaybeRefOrGetter<boolean | undefined>;\n\n  // Callback when the phone changes (full, fullFormatted, digits)\n  onPhoneChange?: (phone: PhoneNumber) => void;\n\n  // Country change callback\n  onCountryChange?: (country: MaskFull) => void;\n}\n```\n\n### Return Value\n\n```ts\ninterface UsePhoneMaskReturn {\n  // Ref to attach to your input element\n  inputRef: ShallowRef<HTMLInputElement | null>;\n\n  // Raw digits without formatting (e.g., \"1234567890\")\n  digits: ComputedRef<string>;\n\n  // Phone formatter instance\n  formatter: ComputedRef<FormatterHelpers>;\n\n  // Full phone number with country code (e.g., \"+11234567890\")\n  full: ComputedRef<string>;\n\n  // Full phone number formatted (e.g., \"+1 123-456-7890\")\n  fullFormatted: ComputedRef<string>;\n\n  // Whether the phone number is complete\n  isComplete: ComputedRef<boolean>;\n\n  // Whether the input is empty\n  isEmpty: ComputedRef<boolean>;\n\n  // Whether to show validation warning\n  shouldShowWarn: ComputedRef<boolean>;\n\n  // Current country data\n  country: ComputedRef<MaskFull>;\n\n  // Change country programmatically\n  setCountry: (countryCode?: string | null) => boolean;\n\n  // Clear the input\n  clear: () => void;\n}\n```\n\n## 📚 Examples\n\n### With Validation\n\n```vue\n<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport { PhoneInput } from '@desource/phone-mask-vue';\n\nconst phone = ref('');\nconst isValid = ref(false);\n\nconst errorMessage = computed(() => {\n  if (!phone.value) return '';\n  return isValid.value ? '' : 'Please enter a valid phone number';\n});\n</script>\n\n<template>\n  <div>\n    <PhoneInput v-model=\"phone\" country=\"US\" @validation-change=\"isValid = $event\" />\n\n    <span v-if=\"errorMessage\" class=\"error\">\n      {{ errorMessage }}\n    </span>\n  </div>\n</template>\n```\n\n### Auto-detect Country\n\n```vue\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { PhoneInput, type PMaskFull } from '@desource/phone-mask-vue';\n\nconst phone = ref('');\nconst detectedCountry = ref('');\n\nconst handleCountryChange = (country: PMaskFull) => {\n  detectedCountry.value = country.name;\n};\n</script>\n\n<template>\n  <PhoneInput v-model=\"phone\" detect @country-change=\"handleCountryChange\" />\n\n  <p v-if=\"detectedCountry\">Detected: {{ detectedCountry }}</p>\n</template>\n```\n\n### With Form Libraries\n\n#### VeeValidate\n\n```vue\n<script setup lang=\"ts\">\nimport { useField } from 'vee-validate';\nimport { PhoneInput } from '@desource/phone-mask-vue';\n\nconst { value, errorMessage } = useField('phone', (value) => {\n  if (!value) return 'Phone is required';\n  // Add custom validation\n  return true;\n});\n</script>\n\n<template>\n  <PhoneInput v-model=\"value\" />\n  <span v-if=\"errorMessage\">{{ errorMessage }}</span>\n</template>\n```\n\n### Multiple Inputs\n\n```vue\n<script setup lang=\"ts\">\nimport { reactive } from 'vue';\nimport { PhoneInput } from '@desource/phone-mask-vue';\n\nconst form = reactive({\n  mobile: '',\n  home: '',\n  work: ''\n});\n</script>\n\n<template>\n  <div class=\"form\">\n    <label>\n      Mobile\n      <PhoneInput v-model=\"form.mobile\" country=\"US\" />\n    </label>\n\n    <label>\n      Home\n      <PhoneInput v-model=\"form.home\" country=\"US\" />\n    </label>\n\n    <label>\n      Work\n      <PhoneInput v-model=\"form.work\" country=\"US\" />\n    </label>\n  </div>\n</template>\n```\n\n## 🎯 Browser Support\n\n- Chrome/Edge 90+\n- Firefox 88+\n- Safari 14+\n- iOS Safari 14+\n- Chrome Mobile\n\n## 📦 What's Included\n\n```\n@desource/phone-mask-vue/\n├── dist/\n│   ├── index.mjs           # Main ESM entry\n│   ├── index.cjs           # Main CommonJS entry\n│   ├── core.mjs            # Core kit utilities and mask data subpath\n│   ├── core.cjs            # Core kit utilities and mask data CJS subpath\n│   ├── phone-mask-vue.css  # Component styles\n│   └── types/              # TypeScript declarations\n├── README.md               # This file\n└── package.json            # Package manifest\n```\n\n## 🔗 Related\n\n- [@desource/phone-mask](../phone-mask) — Core library\n- [@desource/phone-mask-nuxt](../phone-mask-nuxt) — Nuxt module\n- [@desource/phone-mask-react](../phone-mask-react) — React bindings\n\n## 📄 License\n\n[MIT](../../LICENSE) © 2026 DeSource Labs\n\n## 🤝 Contributing\n\nSee [Contributing Guide](../../CONTRIBUTING.md)\n\n---\n\n<div align=\"center\">\n  <sub>Made with ❤️ by <a href=\"https://github.com/DeSource-Labs\">DeSource Labs</a></sub>\n</div>\n","readmeFilename":""}