{"_id":"@uniquedj95/vform","_rev":"44-f7c16dfac62070b9c51a5c333e6f94f2","name":"@uniquedj95/vform","dist-tags":{"latest":"3.8.1"},"versions":{"1.2.0":{"name":"@uniquedj95/vform","version":"1.2.0","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.2.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"ba4989ff875af6d98490792ef42b21bc9664b5bb","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.2.0.tgz","fileCount":25,"integrity":"sha512-NiMLGoGlkHq7kj/0hATGYFWLCP+PIvT7bxlxVLfVMi7hV+RTQb2uCD2jYYQy45RXTMAnALLW4AHPZjnhVwMeew==","signatures":[{"sig":"MEUCIBFkF71173gimxviziwGGA6HdpaC3ntkGLmhdYllGVIKAiEAzeGSrWtIiiqnvwLJHshw8TvKa7AtXYotpr/DcJgjZVc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":741324},"main":"./dist/index.umd.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"import":"./dist/index.es.js","require":"./dist/index.umd.js"}},"gitHead":"3bc1004a46fee71593ed5ba34e2ab3dd4a910249","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.31","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.4.31"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.2.0_1723062389362_0.19516213173465302","host":"s3://npm-registry-packages"}},"1.3.0":{"name":"@uniquedj95/vform","version":"1.3.0","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.3.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"6521064364ff3b3d705ed440cc67215e80dd9036","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.3.0.tgz","fileCount":28,"integrity":"sha512-3gi8dB910MjxZsiLs4EaljVwXQWJteUIgJkvwaWnYKwZensyYnP4z0P0q6TkjG33AAU7jF7gGMBsApFinkJG9g==","signatures":[{"sig":"MEUCIQCniYCRoFI0c6iLZPEwybXQCUaRVT1tYDHwYvc68+JbEAIgHrranFK/WLDYqHgLcew32JwgaIt5ICQ9bcMdslKOyh0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":777844},"main":"./dist/index.umd.js","type":"module","style":"./dist/index.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/index.css"},"gitHead":"2035ace2c254fb1e2c0fa25735d83c10aef4119c","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.4.31","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.4.31"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.3.0_1728413604767_0.887204240619698","host":"s3://npm-registry-packages"}},"1.4.0":{"name":"@uniquedj95/vform","version":"1.4.0","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.4.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"9832784e8ddd1df78b0b8ab1457383885536fd1e","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.4.0.tgz","fileCount":30,"integrity":"sha512-E571HdzswMdJMUb//sEC3jtFZytOGk9LGcewP18iObkLKlCWLmtxsfq8px43HlbsjFIrdryx51CwCT9Wth3rmg==","signatures":[{"sig":"MEQCIG7PsE3rFD1W8QF8HvnjyIF96WVNsSHafpyJIZqxSuikAiB9cfhttMSwPggJW6HuhKI3Nn5efhiJgsl1ZeTPvnat2A==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":798375},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"39c5510c8f89826e04f32d2c39eb241f7af54f10","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.4.0_1728599372172_0.29566291204909345","host":"s3://npm-registry-packages"}},"1.4.1":{"name":"@uniquedj95/vform","version":"1.4.1","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.4.1","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"35770a8fbb4a9d490017260203accdabb286e672","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.4.1.tgz","fileCount":30,"integrity":"sha512-7K54fLiCgEh60pw3FTIGxwVGTeUF/KQuIb90w49Wr6XiXDxx0UNF1yrsuN1QZ7+QAf0HvSZV9Hqle9blEtSuBQ==","signatures":[{"sig":"MEUCIQCo7FPgdk1zHvEDWwW2wcn62pN+0TOP0OhpJtoYcLNNIAIgGwoyeqqvauKcMtwqlykmgH5K3MWwmgg/po4VhjNOB68=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":804061},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"ec970c018b701d25df1cfb229bb53890f5abd171","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.4.1_1728604384156_0.5374646791910012","host":"s3://npm-registry-packages"}},"1.4.2":{"name":"@uniquedj95/vform","version":"1.4.2","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.4.2","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"0a52e37501d36b5e1e89d0eda54035237cc95ec3","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.4.2.tgz","fileCount":30,"integrity":"sha512-hQXkpCI4cE8r9wtzi9MLqimOoCF1G2k5BCQjVrYyh5xQCQqKOYFrOC4B9OhZq80tKv2IVS8Y9J2dstZ7WBbLjw==","signatures":[{"sig":"MEQCIGrhHUy/tiDUlp+TkoZhUQL97Fqtp6lVAg77CqLzPXsYAiA+yJzSMZXPF8l7xcFlmbAQHInMesosAKU4u4fvS5YpTQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":804196},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"ef04b9ff776b847c5372d73c4c4ff3422875945c","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.4.2_1729157797854_0.3322542963576489","host":"s3://npm-registry-packages"}},"1.4.3":{"name":"@uniquedj95/vform","version":"1.4.3","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.4.3","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"729062d200213d6c66698070e0363a65b229f3f5","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.4.3.tgz","fileCount":30,"integrity":"sha512-DV/QFwOt99MrUbetS8TpCFPl+V4RmrRr242B1qTOnyR1h6xiH3J3T2Z3LOWNjTgliS/lqdVb23BGi5TRf2I7GQ==","signatures":[{"sig":"MEQCICKUCS+o8ndjU35sgEN9IUdTjw5arP941MDIJXiHNlgFAiA6I+n3+3hNpzbCedOIv7SWvkvknJfCQP3zuaXGZ2ifpw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":804331},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"d0da50dd0a5fd40b6dd9c944f545a8d5a6f3be97","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.4.3_1729158808259_0.462052020742044","host":"s3://npm-registry-packages"}},"1.4.4":{"name":"@uniquedj95/vform","version":"1.4.4","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.4.4","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"608bd414205ffdef762558d6c9a0760f8ba17f2b","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.4.4.tgz","fileCount":30,"integrity":"sha512-Wp+cV76Yp05osO7151vGWozdOjvzWj2praAaB4fAKGTeJ5IjTeVmQfCSCJVrfvGH36Kwhzd1D54cn5/Fkf3qpQ==","signatures":[{"sig":"MEUCIQDZAFPfk7uBMPGlB75Z6ppu4yQUXMxZe4F8ugkSy10/ewIgXhDWVms9RznyCa7AE+OIMR1c2DVRegOITte2nUrsYHk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":804813},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"cebcd9f775e8b0f4c62facdf02b21ca3a593a376","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.4.4_1729167924398_0.5396998334173562","host":"s3://npm-registry-packages"}},"1.4.5":{"name":"@uniquedj95/vform","version":"1.4.5","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.4.5","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"8c0734375615501e470f35aa1589decd8bfec2f9","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.4.5.tgz","fileCount":30,"integrity":"sha512-EfQw5z3uunYh9kRsd+Ayp4XuPrZySL8lWSGsWSgXPDWCRH/fU3uWXki+DuJW8hAJAX+4JxMAydyLyFHo/qL1hg==","signatures":[{"sig":"MEUCIBC6+wfPLrrGBq6Q6BeV7JN4iQd2MQv1rWKM6C1d7nKFAiEAm9PUU5BBVqcdyaPJkczGo+JlHKA02S2mS9/rbZOR4l4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":805225},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"e76e90fb476dfc681dd88d641fdea4e1ec6eb302","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.4.5_1729419098604_0.9549491968680066","host":"s3://npm-registry-packages"}},"1.5.0":{"name":"@uniquedj95/vform","version":"1.5.0","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.5.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"fce211e8c62c723f19b5158ec47286a957ebee2f","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.5.0.tgz","fileCount":32,"integrity":"sha512-QI2w2oT5t3hHq1p1x+m5Zci+bxwv73ncvGT26+J1pYt7BECqMgnDkFMw6DqDMIxwK8Nyt+4tT9C1q2ZuuDB/tQ==","signatures":[{"sig":"MEUCIQDEqLPy90KwS1uDtegRKyKzQhuEL76fP6DW2wP7zFmDEAIgBhBpBBmmraqHQHxpQa5CusjAcdTSwWt+VknP9xOaehI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":820215},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"5913c17029f430f22d6f70962512c061b862eebd","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.5.0_1729671327935_0.7337506207855056","host":"s3://npm-registry-packages"}},"1.6.0":{"name":"@uniquedj95/vform","version":"1.6.0","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.6.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"2257de682b90dccb9a3ae07f810e7fe46a9dd2eb","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.6.0.tgz","fileCount":32,"integrity":"sha512-Rhn8zJ9CpCuSDp5/MOT5weNSnn8P1Hb/BBjGAVyTTHCjCTLVRTuDA96QbwS7tGCuuHVJPyw4B4SPd4q7HjM6ig==","signatures":[{"sig":"MEQCIApwrOWYdYazuVWVIKEO0i2Gk3y73M0ttnNNWye2o5ayAiBQ2QoMhsKsMqP1wTKDq/ggG0HNdx9DUjztyW0XrGi7lQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":834254},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"1dd977d74c6e0322278ee23016d69997a288d799","scripts":{"build":"vite build","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.6.0_1731450091679_0.16511475899054462","host":"s3://npm-registry-packages"}},"1.6.1":{"name":"@uniquedj95/vform","version":"1.6.1","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.6.1","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"baad761da683f36e1b86e82e5174f0bc8d792b9f","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.6.1.tgz","fileCount":32,"integrity":"sha512-TNVyQZaMIWn17puBrd0t5Pvm8alBZ1x8MjbxK9WCPJPm8BweHaZ5gH37BiM3heXLGV3ukSS81lgqCXlYKOHNSQ==","signatures":[{"sig":"MEYCIQDJ58Zhjl/sqrT9PGjixW3oM+nfjieSwJbFSpR9nPvbfAIhAJVOpKwRrwhiXZwWZqG9suaRnbYOtKi9Mi4C51Jb1PYS","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":834342},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"7931e5e60b0e536b8a8fe4b1b036325eb39868d5","scripts":{"build":"vite build","postpublish":"git push && git push --tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.6.1_1731451230278_0.8412206857492202","host":"s3://npm-registry-packages"}},"1.6.2":{"name":"@uniquedj95/vform","version":"1.6.2","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.6.2","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"827fbc08b062723fec78d5b8696370270bf94324","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.6.2.tgz","fileCount":32,"integrity":"sha512-cvtEJOqSFGGY/S5ommtTSJeAjfLJb62DTQOtOWSErZAPlIT6NkViKYRjUiTUrYFLZWr6VdhmgpGTDzw794kHJA==","signatures":[{"sig":"MEYCIQDsXBkkhV6V56FhY+SLqZS0gIwpPVDskqU77SgyqL4DaQIhAMFqQzXOlyjxFzED2/0OpZg6Fkw4pMu/W7qTA5r6W2OA","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":835045},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"869d5b3c7ded4be9c32bbcbab515ffcd150b9987","scripts":{"build":"vite build","postpublish":"git push && git push --tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.6.2_1731937596959_0.8446884952616325","host":"s3://npm-registry-packages"}},"1.6.3-0":{"name":"@uniquedj95/vform","version":"1.6.3-0","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.6.3-0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"7c70e805ee5a963ce9fd8d9efc3d21f933147781","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.6.3-0.tgz","fileCount":32,"integrity":"sha512-Q9uWNyEXb4jI79hXLm/oH+vDPE/He45kUd7nsUkv2VimyFFYtQFHdD8+R5A4B2pTwwWOOlW+vzdwGLKWllM7aA==","signatures":[{"sig":"MEYCIQDCbC+JVZrXuqh8NCbBDZOO6bbYb9Ma1KV9NtZQm8bE2gIhAMr1dEum7CwKu78CfTyDBYl0fDtk+muOfQ8+d0YMemP3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":834315},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"7a2c1d5b2ac232d33403825247e0ee9774c0dc24","scripts":{"build":"vite build","postpublish":"git push && git push --tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.6.3-0_1732267133301_0.9043360546334651","host":"s3://npm-registry-packages"}},"1.6.3":{"name":"@uniquedj95/vform","version":"1.6.3","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.6.3","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"3db4be2968b2efe792325f9e3422600c8da9a6dd","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.6.3.tgz","fileCount":32,"integrity":"sha512-+7CqWd3lXh3I0pABlw/NJXd7fRS239zJldzey23wIl9rwfkzmGavkRfyGJI92Vngem1t6ANdmbraHX/EqHWqSA==","signatures":[{"sig":"MEYCIQCRREIgz/rfKDlbrGniVbPDs3qCBKo98M+IFUNDwFJa5wIhAMDUnBGncCtt15rxXIWu3gOAiYyUI2P3tKkFC165iM2t","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":834382},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"52205431ddd7d1ea1e0044192436438251c0d203","scripts":{"build":"vite build","postpublish":"git push && git push --tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.6.3_1732268341050_0.12017674942089096","host":"s3://npm-registry-packages"}},"1.7.0":{"name":"@uniquedj95/vform","version":"1.7.0","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@1.7.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"4a75b90615908dc0dbbf42daf3b2f9cd71420e9c","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-1.7.0.tgz","fileCount":34,"integrity":"sha512-Ai/rLRjiL7VUCxkimX293llhVxZ038jvxDyu7IEeDbWW24vQGe57HBA53y2wcp1QNB6V7iviRElfTh+hGm3UrQ==","signatures":[{"sig":"MEUCIC/dGnJ5SKxBOO9X/zbiFgY2iSQMPq4slGArEZbPbTkMAiEA5Rh/7F+g+HaZP6E3BN6EQfaDH7rZLr8/h9Zl+ilOC0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":841611},"main":"./dist/index.umd.js","type":"module","style":"./dist/style.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./styles.css":"./dist/style.css"},"gitHead":"2536d8173e57a9c8821c3178a292395546852682","scripts":{"build":"vite build","postpublish":"git push && git push --tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.7.0","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"20.15.0","dependencies":{"@vuepic/vue-datepicker":"^9.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^5.3.3","ionicons":"^7.4.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^3.9.1","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_1.7.0_1746452651284_0.9785206296901485","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@uniquedj95/vform","version":"2.0.1","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@2.0.1","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"0e0027f96c3a9d9eb013f7e398e75e0dbfa5e427","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-2.0.1.tgz","fileCount":34,"integrity":"sha512-gJtHh3GLWlQHUmU/WUqlAg6+v1jQWhsDIUrvhUvOsP1+j78yR/YBb3MkCxTz+lnbMHC2bVh8sZJcAHoSMP1lrA==","signatures":[{"sig":"MEUCIAlADY7Aea8xtVS391TqXdPCyrg7wAqChs6o/g5BpJ42AiEA03hbD3rKfMjmwR9mUkYlIZHrnpXlQDJzoLDHKn8cdCE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":890667},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"b31123321435b6fe9a336ac6a540f6fc5e16da76","scripts":{"build":"vite build","postpublish":"git push && git push --tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.9.2","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@vuepic/vue-datepicker":"11.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^6.3.5","ionicons":"^8.0.9","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_2.0.1_1749296405667_0.9180265228461102","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@uniquedj95/vform","version":"2.0.2","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@2.0.2","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"191d3c4145cfdc2e34acc2f08deeea54dad4e8d1","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-2.0.2.tgz","fileCount":34,"integrity":"sha512-e7J4T8qzujU7812kPXqlQU/E96MkH4QO+rqmc+WPzc1GhJRTCbT0HSOps7Kbg0VP/hnGmkMJBP+YVxk6xtWfmg==","signatures":[{"sig":"MEQCIH0YXo1mI3rtZtt36yfvhpmEXUQgGzduACgukWe5i5HbAiAKZDQ6uAXkSFUc9A1X/Zjbs6JZSiOg2VUxMmEcL5GuKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":890374},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"d8b1f1c5e442d73ddff6817c5bc5c91ce0f86fce","scripts":{"build":"vite build","postpublish":"git push && git push --tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.9.2","description":"A simplified ionic vue desktop form builder","directories":{},"_nodeVersion":"22.15.0","dependencies":{"@vuepic/vue-datepicker":"11.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^6.3.5","ionicons":"^8.0.9","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_2.0.2_1749296679980_0.8991238760595923","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@uniquedj95/vform","version":"2.0.3","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@2.0.3","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"ca877ac18d344aa5b6ecac961a3e39d8001c66a5","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-2.0.3.tgz","fileCount":37,"integrity":"sha512-hRURy+5M5JH0WUp7x/kT2zVpdSbVCdV1R/WgviQGmTiAGEnaeTXs2juGRuA8Z2F/fNsjJOJLrbCszMZtjcoYRA==","signatures":[{"sig":"MEYCIQDQ2Oe1TuA6ipP3AqzxxsYwmzu7yabyDNdCbD/GwfXcBAIhAJN8mxv2pGaSPT17kNmfbd2LI3SitykiKj7UcBItNCLH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2905604},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"a710cc8db1467fa20cd2161afb501f1e3182b3d6","scripts":{"build":"vite build","postpublish":"git push && git push --tags","prepublishOnly":"npm run build"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.9.2","description":"A simplified ionic vue form builder","directories":{},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"22.15.0","dependencies":{"@vuepic/vue-datepicker":"11.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vue":"^3.5.10","vite":"^6.3.5","ionicons":"^8.0.9","@ionic/vue":"^8.2.5","typescript":"^5.5.3","vite-plugin-dts":"^4.5.4","@vitejs/plugin-vue":"^5.0.5"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_2.0.3_1749298851184_0.23729447897116018","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@uniquedj95/vform","version":"3.0.2","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.0.2","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"c74270cf51c4cac232a89327e5f0f6cad2deb0cb","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.0.2.tgz","fileCount":57,"integrity":"sha512-i0CXmBPPnnAoW6XO9+HucGB1eejArygBtXtJ9+D/M9yeAjGcKMtlNqutCNnpM8kYJura/YG/f7NsgqjGKXQEqA==","signatures":[{"sig":"MEUCIFw6zCIsV9oCXAkX/xTadQLPrhwZ6yd6OCRZTkb7GQILAiEAjmLb5Bc6jRw8dNjdKDGT26hsgcGNEGli5XEQIrF8Am4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463870},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"1c73083cfd034152202b8bc89defd06b626e57b2","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","postpublish":"git push && git push --tags","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.1","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0","@vuepic/vue-datepicker":"11.0.2"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.0.2_1749426328945_0.6369542281891547","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@uniquedj95/vform","version":"3.0.3","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.0.3","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"7ff6e49fa3fbfa170168b71e6cc6b139298abc07","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.0.3.tgz","fileCount":57,"integrity":"sha512-s5y4bv7uJO4NWWoskr5GDUPMPJz7PoRN0p5U2jmJ/eVzmbomn2dzVwsh5fUtqKtWvb16vWx79MtLEAKIY6X2Mg==","signatures":[{"sig":"MEYCIQDyztLUJGdbj+PQXaVWIzAcGwez0YjHwgIoCkXKuh9ulwIhAKPtWPX0nD9vDfCmBliH8UfksPQ1adKZIkxsrYCtinPb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463820},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"d3ae9837d9d568cad2ae2703d99b8c52ffddcaeb","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.1","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0","@vuepic/vue-datepicker":"11.0.2"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.0.3_1749426808241_0.36715201621921545","host":"s3://npm-registry-packages-npm-production"}},"3.0.5":{"name":"@uniquedj95/vform","version":"3.0.5","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.0.5","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"0697a2bb672ee76a138e1df7199eda51ff938f4b","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.0.5.tgz","fileCount":57,"integrity":"sha512-CICJE+X+wl3GqRZMkDv3ztFYj9OsTyCCpagS1z+9uXUwRQ45ZRrxxRa8wwurMxMW019oDvuXVPEp7ScxkGFGLA==","signatures":[{"sig":"MEUCIQCJLaNhit1S0iFZATYsDRm09sMnoZQlEjOVCsnlL6PfgwIgKUm3fhOsKhADGqk3xxeQeKgZhztewo5buNShOEqiwc0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468266},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"ee8c83c28f29521c074da70351b3a11145fe9882","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.1","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0","@vuepic/vue-datepicker":"11.0.2"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.0.5_1749437762758_0.4506518625798963","host":"s3://npm-registry-packages-npm-production"}},"3.0.6":{"name":"@uniquedj95/vform","version":"3.0.6","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.0.6","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"a60ddbe5a6133e4fe147709de6bc1e3266c82cd8","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.0.6.tgz","fileCount":57,"integrity":"sha512-Y65og14eFVLV1WFkl7ly23LJVWqn9ILCldny79pVJV4GEgtRxWLEvm2W8cMQV/FwOkyFtPXIw5Fa/wkbo+Repg==","signatures":[{"sig":"MEYCIQDQF4fUNn9gwlvkMAKyoluMCkiCW63LuSLjSbGTO2+fbwIhALuEKXQcMZP+UEDdRasw7BEWq7309eR4F+rVRR9WTPzQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":468434},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"62ba440cf45c150fbcf17cc65b4ed2f94ba0d250","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.1","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0","@vuepic/vue-datepicker":"11.0.2"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.0.6_1749438253638_0.2026260239852471","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@uniquedj95/vform","version":"3.1.0","keywords":["Vue","ionic","typescript","Form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.1.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"c9e1ada2d888a20a82672613aed8f5cd6c70fd99","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.1.0.tgz","fileCount":57,"integrity":"sha512-hgV/H8GcpS9epovVrdzikbfji8sORzkMmC+JX3JGew9GCsVrjlL05q4AdTKXiYPsn+CYeOS05hAhvGiiyGhkdw==","signatures":[{"sig":"MEUCIQDt0QHLcvutJ1hJ9G57Ip+2+EHJW+c0BpukCzB++ohCQgIgSy42D7XfCfrJ/vWUj01hrSReJuMv1jqb6Etmtr1mYaY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":486380},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"b1d11e065058c3a965f62dc4c14c3f171dcd4786","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.1","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0","@vuepic/vue-datepicker":"11.0.2"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.1.0_1749471618495_0.22709982493216962","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@uniquedj95/vform","version":"3.1.1","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.1.1","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"b0c87b3bc1b8876a897a7524861307253c5ab3d8","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.1.1.tgz","fileCount":57,"integrity":"sha512-M8L6i35ucVojjEGeT8D5fugDIrc6kjRbYwC5guQfxfjYHu7O0zhN7b0m4TPIJzP1oj+rEh/X0V04R6Mgkiyc0Q==","signatures":[{"sig":"MEYCIQDPn6aAhVJg83dCCxy0X9bSw+DfA22LzkrHS1s3QqaO1QIhAIN6iA0gt/GzKO4tvRpz1/IREX9Y0FssaXutnYEW4UEI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416401},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"951e18386db70c16e5365f07530edc7df5d60fda","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.1","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.1.1_1749532277712_0.9026332186760175","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@uniquedj95/vform","version":"3.1.2","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.1.2","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"2a47e4dcdb7e4f12cff9d61f6f0215e56d4a0f14","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.1.2.tgz","fileCount":57,"integrity":"sha512-MV7MmSsZtI1Tuw8+bsKZnS7gXrXCIhXUa8seOdTGt1cJrw6Yc2S0nHWbH8ed53vq1woV4lcv2j8Ol+07qGgtzQ==","signatures":[{"sig":"MEUCIF4G9WQZwk7JPfMjHgab02cojBi53SNhRk4GUee/bi51AiEA2F4qFCz6fh8rRTmdkbPD4QHbeV7qvbNMtWLyp4K2CMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416365},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"9114c27169d8e09952127ae99186d17c4ee301b5","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.2","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.1.2_1749589635170_0.11029731346084204","host":"s3://npm-registry-packages-npm-production"}},"3.1.3":{"name":"@uniquedj95/vform","version":"3.1.3","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.1.3","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"0d298649e3b371be85234b7a1974d639eb31450b","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.1.3.tgz","fileCount":57,"integrity":"sha512-v5TpENSMZpvxPtVJ2p8xEK9PvsnKyMvVBevnGmCGl8glAcKvs1sMjzkx2mMG5JwWMdtxO5oYyV1X8pbKF6piYg==","signatures":[{"sig":"MEUCIGyzYPspmVe2hDPBFwCqetNFC/zd41dsYp3Zp5nXJ/exAiEAwCMaQbgzcFPSdPUXB7QBzPZbsTAiWasAZXvqeVR6lO0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":428498},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"cccfba8f65b305f34c64c74d08613c696954abbd","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.2","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.1.3_1749787709050_0.42173554030351523","host":"s3://npm-registry-packages-npm-production"}},"3.1.4":{"name":"@uniquedj95/vform","version":"3.1.4","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.1.4","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"43856151c0c4a6fd9a6cb0d9de6ea48267b5d019","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.1.4.tgz","fileCount":57,"integrity":"sha512-9B81d2W/qoGHiIaSZyGtHKMZ9AUEkdvkWZlciZCIhosnD8BbmOczNrWlWVIxTJN5Kk8jq8dsDzMcyGoBMPV69Q==","signatures":[{"sig":"MEYCIQDYoLvN+TMtqHoDi64FxwEvbhnpAspGR986SaG4YhSJmQIhAKkye+cS2Zx81/qE+9PtglDqBLInBIQIjpzKotpGtEQY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":428724},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"9939c62c7406983bfd3a518a1d1083d018a3f8b5","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.2","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.1.4_1749839953126_0.6364600366554469","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@uniquedj95/vform","version":"3.2.0","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.2.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"a75b3306bba5807afbaebf633f069875b996c82c","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.2.0.tgz","fileCount":59,"integrity":"sha512-+X2y0ldf1nyoS4ubXWzqWEwH5mVISq1ijr+NDnCx3YzCMXh/YSMiYe3sHQld9vckxYicna/RJNHVi/AV4v81RA==","signatures":[{"sig":"MEQCIA4KBnQSFAtH5hYVXgSaKKstTXF642K3V4XdoFfF0WG0AiAbmlQ6aY+k7aVXkRGugEJ2rCv1KUtprNROojPSbw8iFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":478925},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"64a905e08631d56eb7c8aab4e10e2a1e24caa677","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","pre-commit":"lint-staged","test:watch":"vitest","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","actor":{"name":"uniquedj95","type":"user","email":"danieljmuleke@gmail.com"},"email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.2","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.2.0_1750321773661_0.8901568415392371","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@uniquedj95/vform","version":"3.3.0","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.3.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"6e28e543899824df3da9f0a5e3e0d5c984e9ccf3","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.3.0.tgz","fileCount":59,"integrity":"sha512-GUo4ZL/gfq7Per0p++RNDDjZgYF2GbCTKiejp9yTx6tVi1K+KPAyWkperOWIzCmSt3mDM8LCA2U+gCnrVmDdlg==","signatures":[{"sig":"MEYCIQDL86ozH3LRRRFP8rZEo6Swoat/ZM9ys1Su+okwqWxSuAIhAKw3ianmCbL6I4PHrPKaV0wn1wYnYmIYYLgF7GSDohKE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":477718},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"66eaf246b184d249e942bdedc23dd6d9fa5979db","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","actor":{"name":"uniquedj95","type":"user","email":"danieljmuleke@gmail.com"},"email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.2","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.3.0_1750345240357_0.33586169312923064","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@uniquedj95/vform","version":"3.4.0","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.4.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"4c5321d805bede3e425f9d4ec7132940df8efce0","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.4.0.tgz","fileCount":63,"integrity":"sha512-LM3GW/HmTU5bLZ1od0lKnVhqJ8XaqfWsmQJf4jq8AKejdkQYMSyeC6F0mdRG96KoQ2JvUJ4n9MibV/79L579yQ==","signatures":[{"sig":"MEQCIBcPYWYzprai3Gqqo0FL3ZAUIjmmAOuIi7WKs9AHZ21RAiAmzzi6VvR97PBpO9JpHc/a1xMepsfE93iHBa32ubaH6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":646060},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"fff223cb2103d99df30f919d735beb401f73930c","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","actor":{"name":"uniquedj95","type":"user","email":"danieljmuleke@gmail.com"},"email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.2","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.4.0_1750413551652_0.9934038010931676","host":"s3://npm-registry-packages-npm-production"}},"3.4.1":{"name":"@uniquedj95/vform","version":"3.4.1","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.4.1","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"3213d7ece704633c1969fc39c84c251bf59dd5d4","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.4.1.tgz","fileCount":63,"integrity":"sha512-yI+w4v6Wqi1UUtUJL6RmvxXYPW9UdgVHkOmbYWm4aubEy/27Zhc6XmjduZsXGL3EkWAjHsdUwqzr0EPYpQFegw==","signatures":[{"sig":"MEUCIQDHPKFcDyDloZ4ukRn7w4A6elh7P35Hqj3/yCB9xkfGRgIgJiqqt6cZLRtchtqwyXZ9kRal6n6ELMUR5PHN3uyqJsE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":654471},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"947d7e4f076c322fec71ffda9ae62862355ec3f4","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","actor":{"name":"uniquedj95","type":"user","email":"danieljmuleke@gmail.com"},"email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.2","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.4.1_1751030763421_0.34782508425859504","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@uniquedj95/vform","version":"3.5.0","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.5.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"ea534d05fc3d6073bcf1485cb83fbce2cbe6c689","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.5.0.tgz","fileCount":65,"integrity":"sha512-27VdJ35MRrMTo4W8ctsKf8EKXLGJuNlz28uVRuVWJOgMpp2EaKBvkzyLkZDpfjdyr9iBCcFgRZMKErbj66UWDA==","signatures":[{"sig":"MEUCIQCFZByPsvTXD2+7GIMB59wOJ9ytphSsOVNdybI79OP2cgIgW7EmPWkr+mMNyZq8Q8p3uKxNi2NAZFjDSziBuK3QBkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683388},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"8803398aff68579e17684785c03a028249512f30","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","actor":{"name":"uniquedj95","type":"user","email":"danieljmuleke@gmail.com"},"email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.2","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.5.0_1751122953412_0.0354753198661415","host":"s3://npm-registry-packages-npm-production"}},"3.5.2":{"name":"@uniquedj95/vform","version":"3.5.2","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.5.2","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"8b7b46fe3cd4b26727954c6642b4f7bda22f49ad","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.5.2.tgz","fileCount":65,"integrity":"sha512-9kzSpoXUbwKIGctq9RwSRQu8SzHzayIIEi7aGOgkhVbm3Px06Ib0pjm/yGu8+tjYa6qGWltZs7kLbThYzDuntQ==","signatures":[{"sig":"MEQCIA+zyT3ghdcphjfJK59F1SSqmpEBRrK6m0fACAerN2iQAiA8ij6rQkmHM6MhkGfhJ3TlgTLw36pIbic4ffp47xMajQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":685225},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"773d1e6595d6acedcd5025dda6250ab70d0ac1db","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.3","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.5.2_1753185639233_0.9788288710603237","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@uniquedj95/vform","version":"3.6.0","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.6.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"c5731fd1cf09a8ab23cf1ba63080635ffbbc2d2a","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.6.0.tgz","fileCount":65,"integrity":"sha512-1ORWfaJbsV9amK8JO47BDwXGt2+p0tPfBxpi1zpxh8aFkt0AmrfrLnHo9YPafKsk5oxC0El033DhVyjpAerCmQ==","signatures":[{"sig":"MEUCIHrsA7ZtmU7+N0tExGvE5VALfdIogfqNWRGrnMIgfBYlAiEAm724Bp5HXw34di75jFGXvKBypzt1c+GyyalStVByOPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":715926},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"787b8a039655c4b176f91b2ca9b850839ff6d865","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.6.0_1753369681701_0.4742802273921711","host":"s3://npm-registry-packages-npm-production"}},"3.6.1":{"name":"@uniquedj95/vform","version":"3.6.1","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.6.1","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"984b4e1c5a36d5892ad7adef0475093b0d7a80ed","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.6.1.tgz","fileCount":65,"integrity":"sha512-dVipFWnj7yarBOwNTcw7OaQMahoPte4KdsONkQC29aGE3TUMYLP6TPjVS4zYs65r4/S/UtV+aanQth3hHBk63g==","signatures":[{"sig":"MEUCIQCJ9rv+brX7ihdQZT2J4LdL0f7ZX64eX5NFPLDoHBiH3wIgYsTPM4eQ2F89RncSvNYV65r8M8/Rq31YAYlqHPLc3Xo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":726444},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"a702a792c2a54af5cec022cead5948f38955fac3","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.6.1_1753694045978_0.7583329602892217","host":"s3://npm-registry-packages-npm-production"}},"3.6.2":{"name":"@uniquedj95/vform","version":"3.6.2","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.6.2","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"7dc094176e1e3439f0ab7ed9635efc72798a372b","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.6.2.tgz","fileCount":65,"integrity":"sha512-xskdIS7L3FR7RtjutbSn+wpzpoLeWTFq2MpsIDb+Mmkdz+0ZwPByo90obQtvchZEC8OKSHGhQBNp/Xq7n8vKAg==","signatures":[{"sig":"MEQCIChjnb0fL2OSzbYq5cqgPj27odIDcatrHRJCF+VGwZIMAiBJeCSN+QRYGlwhoxv0OqwkI6I0s45WHbyyEq6I1dZ08g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":728974},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"97358d05c35d51fab6b48a6925d88a15a910caf0","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.6.2_1754502612837_0.4643014264202856","host":"s3://npm-registry-packages-npm-production"}},"3.6.3":{"name":"@uniquedj95/vform","version":"3.6.3","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.6.3","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"98511ff2e68150ca29978372d4e98147edca3a25","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.6.3.tgz","fileCount":65,"integrity":"sha512-UrMKZVm/tvK53qVZIyEYsogLXibnOMiClGnphHSUd1VHQJ/OX9tdQPuaBPghhwyd4WYzwdTqxSxKGyD5JtFnAA==","signatures":[{"sig":"MEQCIBq3pDu8k9InGH47PNSnicviuIq1qEXDGG6FqrWomUZGAiAhnYKxXK5x2GKai8Jvvvp3gUo6vrYr9rM5Hc7TCTydzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":727924},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"f4581de94e531cab041ce6a9c9e1bec61fe82126","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.6.3_1754513183534_0.42243494470962495","host":"s3://npm-registry-packages-npm-production"}},"3.7.0":{"name":"@uniquedj95/vform","version":"3.7.0","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.7.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"b299282235f15a684039e2a03acab98d11b277c6","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.7.0.tgz","fileCount":69,"integrity":"sha512-QwGE/oTQAbga+n0oxfppVmC3p0f0l3VanBilZTqXdXTVCHOxsGQWdnkVgMZNDQ0JlPHboFlAiMaaGI9CFd81Xw==","signatures":[{"sig":"MEUCIAhswDzr2mS9fowYN3awuQtwQKnNZY1jCqf9fJqXc5gMAiEApVDBE+KWOQkTYXZ3+Be+rOHYuzcNbvOwXKIidmHBZ94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":757015},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"1c5d8b47f23f7f59347d46b16cafbc1f8b134cf3","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.7.0_1755825380824_0.6803604976224111","host":"s3://npm-registry-packages-npm-production"}},"3.7.1":{"name":"@uniquedj95/vform","version":"3.7.1","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.7.1","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"3fe9752c265d0bf2fae8954a44e67ab7d695ae24","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.7.1.tgz","fileCount":69,"integrity":"sha512-yAicbctpAwPpIbe9SzhuLsLzkUZ2549Kfqa/bNMLjPyRs4sk/t4+sgHpF6sqT4Ubzsi8bDUZHPq/tZ60wcOEHw==","signatures":[{"sig":"MEQCIDMBSIvrcQ8MAZg72PybLddhOKcM8CIr65JrBAsyWS+IAiB+Q2Zx6iF+6P4f8negQa/mivDxWmu4op8D/hYbA+r7kA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":776925},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"fdaf4e4af60bcb5d347d76a191ee877ad2cc91db","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.7.1_1756397386459_0.9450991628887799","host":"s3://npm-registry-packages-npm-production"}},"3.7.2":{"name":"@uniquedj95/vform","version":"3.7.2","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.7.2","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"480b648dc558aa8990146736a48ec5cbddc37753","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.7.2.tgz","fileCount":69,"integrity":"sha512-Aa+rTI74HxiCQQRZ1sRK2kIM4X263JLcW8eQ3uOzLdI/Qo6O84KbYq57NnwHM8zEjWwAfyU7ayHDIh2nyC7qAA==","signatures":[{"sig":"MEQCIGRBDniF4tt9fsifBEPMNp8YXaKUeTgBJefP5rwLo+4UAiBA2DHFiFuArgDcsgnux+lqeq0JotoqROCvw2r3Nvi/XQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":789043},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"8bfb3c01afe31c3aedce49b5f456cb2964450b08","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.7.2_1756452200304_0.2920190699025538","host":"s3://npm-registry-packages-npm-production"}},"3.7.3":{"name":"@uniquedj95/vform","version":"3.7.3","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.7.3","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"40ef4eb3a53d7155177243a27f31c63fcb67485b","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.7.3.tgz","fileCount":69,"integrity":"sha512-2cAnXSnGYjGruPN4dOSuv8hKb2Xqi8OK6oVgM1q6ThW35ukzJiBiI9cz0H49jtFxZaRfcQ7N4QIr+XMewtAQTQ==","signatures":[{"sig":"MEUCIQDzwWo03qLVlVwSGRCA/kyPoQfky9eg9/UOt4A3RSIoBQIgRQIR1aPEKCNzGhljoeULU5J1UN+Fdu9T5prMG+0gp/g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":789002},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"ce9b06a7281619c82edf7d4a7ba4407a445c9a90","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.7.3_1756455400409_0.40774926380842924","host":"s3://npm-registry-packages-npm-production"}},"3.7.4":{"name":"@uniquedj95/vform","version":"3.7.4","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.7.4","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"d5d7ecb006ddc779b443697a0ed76ccc79eeb107","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.7.4.tgz","fileCount":69,"integrity":"sha512-Li+24bEM9dsr9IKXp7F5Ko5pyT1yAw5RpxS/m8vLdo4T+kVITEfhbFS0EsiQqaeaM3k3UZIipt2iLVbZqHoBoA==","signatures":[{"sig":"MEUCICFdK+klMzZuqJ+83VBDv8MewUUTeorc7UBpQ9o7fsEaAiEAwIvMnAjQ539YVenGtl3zvUC6yPbCC5iUmaWfC85YJm8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":789238},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"6fbe5ff5d7de66f7252ded17dffa2e7b9152d76a","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.7.4_1756457723640_0.07490730445792937","host":"s3://npm-registry-packages-npm-production"}},"3.8.0":{"name":"@uniquedj95/vform","version":"3.8.0","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","_id":"@uniquedj95/vform@3.8.0","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"dist":{"shasum":"0c5ee919bb2b70880c0032aef6539a98a0d1c464","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.8.0.tgz","fileCount":71,"integrity":"sha512-82uGP58+Epj/dODbPtyLzPUFtQZ1iCrVZRahT+u7CWEdYi8SnN5TiN26JmYY0Ds6yXo159WhzdQ5sGb8flgOWg==","signatures":[{"sig":"MEUCIEhumU538uhxT07b+nSwvE5uhv6tK0PBCfQv2vTTcgrlAiEA0YSmPvzuHE5lVLvQ7BcyYOo/n2sUv80Pgd01te0Ai3o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":828093},"main":"./dist/index.umd.js","type":"module","style":"./dist/vform.css","types":"./dist/index.d.ts","module":"./dist/index.es.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"gitHead":"53a45de84e9084f38e1cc81354de3d9325b19ed0","scripts":{"lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","test":"vitest run","build":"vite build","format":"prettier --write src/","prepare":"husky","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:setup":"./setup-demo.sh","pre-commit":"lint-staged","test:watch":"vitest","demo:update":"npm run build && cd demo && npm install file:..","release:major":"./scripts/version-bump.sh major","release:minor":"./scripts/version-bump.sh minor","release:patch":"./scripts/version-bump.sh patch","test:coverage":"vitest run --coverage","version:major":"./scripts/version-bump.sh major","version:minor":"./scripts/version-bump.sh minor","version:patch":"./scripts/version-bump.sh patch","prepublishOnly":"npm run build","version:major:dry":"./scripts/version-bump.sh --dry-run major","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:patch:dry":"./scripts/version-bump.sh --dry-run patch"},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"_npmVersion":"10.8.2","description":"A simplified ionic vue form builder","directories":{},"lint-staged":{"*.{json,md}":["prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"]},"sideEffects":["*.css","**/*.css"],"_nodeVersion":"20.19.4","dependencies":{"@maskito/vue":"^3.9.0","@maskito/core":"^3.9.0"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^10.1.3","vue":"^3.5.10","vite":"^6.3.5","husky":"^9.1.7","jsdom":"^26.1.0","eslint":"^9.28.0","vitest":"^3.2.2","globals":"^16.2.0","ionicons":"^8.0.9","prettier":"^3.5.3","@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","typescript":"^5.5.3","lint-staged":"^16.1.0","@vue/test-utils":"^2.4.6","vite-plugin-dts":"^4.5.4","eslint-plugin-vue":"^10.2.0","typescript-eslint":"^8.33.1","vue-eslint-parser":"^10.1.3","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@testing-library/vue":"^8.1.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","@typescript-eslint/parser":"^8.33.1","@typescript-eslint/eslint-plugin":"^8.33.1"},"peerDependencies":{"vue":"^3.5.10"},"_npmOperationalInternal":{"tmp":"tmp/vform_3.8.0_1756467898521_0.8118787279657935","host":"s3://npm-registry-packages-npm-production"}},"3.8.1":{"name":"@uniquedj95/vform","version":"3.8.1","description":"A simplified ionic vue form builder","type":"module","main":"./dist/index.umd.js","module":"./dist/index.es.js","types":"./dist/index.d.ts","style":"./dist/vform.css","sideEffects":["*.css","**/*.css"],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.es.js","require":"./dist/index.umd.js"},"./vform.css":"./dist/vform.css"},"scripts":{"build":"vite build","prepublishOnly":"npm run build","demo:setup":"./setup-demo.sh","demo:dev":"cd demo && npm run dev","demo:build":"cd demo && npm run build","demo:update":"npm run build && cd demo && npm install file:..","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage","lint":"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --ignore-pattern 'dist/**' --ignore-pattern 'node_modules/**' --fix","format":"prettier --write src/","version:patch":"./scripts/version-bump.sh patch","version:minor":"./scripts/version-bump.sh minor","version:major":"./scripts/version-bump.sh major","version:patch:dry":"./scripts/version-bump.sh --dry-run patch","version:minor:dry":"./scripts/version-bump.sh --dry-run minor","version:major:dry":"./scripts/version-bump.sh --dry-run major","release:patch":"./scripts/version-bump.sh patch","release:minor":"./scripts/version-bump.sh minor","release:major":"./scripts/version-bump.sh major","prepare":"husky","pre-commit":"lint-staged"},"keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","devDependencies":{"@eslint/js":"^9.28.0","@ionic/vue":"^8.2.5","@testing-library/vue":"^8.1.0","@typescript-eslint/eslint-plugin":"^8.33.1","@typescript-eslint/parser":"^8.33.1","@vitejs/plugin-vue":"^5.0.5","@vitest/coverage-v8":"^3.2.2","@vue/test-utils":"^2.4.6","c8":"^10.1.3","eslint":"^9.28.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.1","eslint-plugin-vue":"^10.2.0","globals":"^16.2.0","husky":"^9.1.7","ionicons":"^8.0.9","jsdom":"^26.1.0","lint-staged":"^16.1.0","prettier":"^3.5.3","typescript":"^5.5.3","typescript-eslint":"^8.33.1","vite":"^6.3.5","vite-plugin-dts":"^4.5.4","vitest":"^3.2.2","vue":"^3.5.10","vue-eslint-parser":"^10.1.3"},"peerDependencies":{"vue":"^3.5.10"},"dependencies":{"@maskito/core":"^3.9.0","@maskito/vue":"^3.9.0"},"lint-staged":{"*.{js,jsx,ts,tsx,vue}":["eslint --fix","prettier --write"],"*.{css,scss,less}":["prettier --write"],"*.{json,md}":["prettier --write"]},"_id":"@uniquedj95/vform@3.8.1","gitHead":"0b003d7c79a861378c23766a26e9e98f3300f950","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-CtCkN3Ig34L9/0XUGVLew5dCQk+qvSkYTPJOq/5/ABnxX3hfJc6M2ZIJ70QIDw5vOfpESGNgpwlwFdUFglbHUg==","shasum":"c672ba25226c5084559a6e4af79fac999bfbf03b","tarball":"https://registry.npmjs.org/@uniquedj95/vform/-/vform-3.8.1.tgz","fileCount":71,"unpackedSize":853368,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICbUqGsOuq5DtQfJX5qtmnV77UWTkPA8O1qy42ztDMmTAiA27IEVR1j1a1ViOf8K/DeyhqKaxd6XuRK1xvFMAduPLA=="}]},"_npmUser":{"name":"uniquedj95","email":"danieljmuleke@gmail.com"},"directories":{},"maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/vform_3.8.1_1756473184672_0.42875163580682085"},"_hasShrinkwrap":false}},"time":{"created":"2024-08-07T20:26:29.277Z","modified":"2025-08-29T13:13:05.027Z","1.2.0":"2024-08-07T20:26:29.725Z","1.3.0":"2024-10-08T18:53:25.229Z","1.4.0":"2024-10-10T22:29:32.561Z","1.4.1":"2024-10-10T23:53:04.422Z","1.4.2":"2024-10-17T09:36:38.178Z","1.4.3":"2024-10-17T09:53:28.566Z","1.4.4":"2024-10-17T12:25:24.745Z","1.4.5":"2024-10-20T10:11:38.869Z","1.5.0":"2024-10-23T08:15:28.235Z","1.6.0":"2024-11-12T22:21:31.990Z","1.6.1":"2024-11-12T22:40:30.575Z","1.6.2":"2024-11-18T13:46:37.170Z","1.6.3-0":"2024-11-22T09:18:53.613Z","1.6.3":"2024-11-22T09:39:01.252Z","1.7.0":"2025-05-05T13:44:11.543Z","2.0.1":"2025-06-07T11:40:05.904Z","2.0.2":"2025-06-07T11:44:40.250Z","2.0.3":"2025-06-07T12:20:51.412Z","3.0.2":"2025-06-08T23:45:29.177Z","3.0.3":"2025-06-08T23:53:28.426Z","3.0.5":"2025-06-09T02:56:02.937Z","3.0.6":"2025-06-09T03:04:13.831Z","3.1.0":"2025-06-09T12:20:18.700Z","3.1.1":"2025-06-10T05:11:17.935Z","3.1.2":"2025-06-10T21:07:15.419Z","3.1.3":"2025-06-13T04:08:29.221Z","3.1.4":"2025-06-13T18:39:13.394Z","3.2.0":"2025-06-19T08:29:33.823Z","3.3.0":"2025-06-19T15:00:40.565Z","3.4.0":"2025-06-20T09:59:11.874Z","3.4.1":"2025-06-27T13:26:03.652Z","3.5.0":"2025-06-28T15:02:33.695Z","3.5.2":"2025-07-22T12:00:39.488Z","3.6.0":"2025-07-24T15:08:02.011Z","3.6.1":"2025-07-28T09:14:06.208Z","3.6.2":"2025-08-06T17:50:13.106Z","3.6.3":"2025-08-06T20:46:23.786Z","3.7.0":"2025-08-22T01:16:21.080Z","3.7.1":"2025-08-28T16:09:46.698Z","3.7.2":"2025-08-29T07:23:20.518Z","3.7.3":"2025-08-29T08:16:40.631Z","3.7.4":"2025-08-29T08:55:23.854Z","3.8.0":"2025-08-29T11:44:58.726Z","3.8.1":"2025-08-29T13:13:04.847Z"},"author":{"name":"Daniel Justin","email":"danieljmuleke@gamil.com"},"license":"MIT","keywords":["Vue","ionic","typescript","Form builder","form","vform","maskito","mask","masking","vue 3","vue 3 form","vue 3 form builder","vue 3 form masking","ionic vue form","ionic vue form builder","ionic form","ionic form builder"],"description":"A simplified ionic vue form builder","maintainers":[{"name":"uniquedj95","email":"danieljmuleke@gmail.com"}],"readme":"<div align=\"center\">\n\n# vForm\n\n<img src=\"https://img.icons8.com/color/96/000000/form.png\" alt=\"vForm Logo\"/>\n\nA dynamic form builder for Vue.js with Ionic components\n\n[![Version](https://img.shields.io/badge/version-3.8.1-blue.svg)](https://github.com/uniquedj95/vform/releases)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![Vue Version](https://img.shields.io/badge/vue-3.5+-brightgreen.svg)](https://vuejs.org/)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue)](https://www.typescriptlang.org/)\n[![Downloads](https://img.shields.io/npm/dt/@uniquedj95/vform.svg)](https://www.npmjs.com/package/@uniquedj95/vform)\n[![Ionic Vue](https://img.shields.io/badge/Ionic-8.2+-blue)](https://ionicframework.com/)\n[![Bundle Size](https://img.shields.io/bundlephobia/min/@uniquedj95/vform)](https://bundlephobia.com/package/@uniquedj95/vform)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/uniquedj95/vform/pulls)\n\n</div>\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Demo](#demo)\n- [Features](#features)\n- [Installation](#installation)\n- [Usage](#usage)\n- [Schema Structure](#schema-structure)\n  - [Example Schema](#example-schema)\n  - [Field Configuration Options](#field-configuration-options)\n  - [Input Masking](#input-masking)\n- [Multi-Step Forms](#multi-step-forms)\n  - [Basic Multi-Step Setup](#basic-multi-step-setup)\n  - [Step Configuration](#step-configuration)\n  - [Step Indicator Positioning](#step-indicator-positioning)\n  - [Conditional Steps](#conditional-steps)\n  - [Custom Components in Steps](#custom-components-in-steps)\n  - [Step Validation](#step-validation)\n- [Form Sections](#form-sections)\n  - [Basic Section Usage](#basic-section-usage)\n  - [Section Configuration](#section-configuration)\n- [Form Events](#form-events)\n- [Form Methods](#form-methods)\n- [Composables](#composables)\n- [Input Dependencies](#input-dependencies)\n  - [Dynamic Options](#dynamic-options)\n  - [Resetting Dependent Fields](#resetting-dependent-fields)\n- [Advanced Components](#advanced-components)\n  - [SelectInput](#selectinput)\n  - [Custom Buttons](#custom-buttons)\n  - [RepeatInput](#repeatinput)\n  - [Option Descriptions](#option-descriptions)\n- [Component Exports](#component-exports)\n- [Issue Reporting and Feedback](#issue-reporting-and-feedback)\n- [Contributors](#contributors)\n\n## Overview\n\nvForm is a Vue.js component that dynamically generates forms based on a provided schema. It leverages Ionic components for a responsive and mobile-friendly design, supporting complex forms with conditional rendering and validation logic. It provides a robust and flexible form-building solution for Vue.js applications, allowing for a high degree of customization and control over the form behavior and appearance.\n\n## Demo\n\nExplore all VForm features with our comprehensive interactive demo:\n\n```bash\n# Clone the repository\ngit clone https://github.com/uniquedj95/vform.git\ncd vform\n\n# Setup and run the demo\nnpm run demo:setup\nnpm run demo:dev\n```\n\nThe demo showcases:\n\n- **Basic Forms**: All input types and basic functionality\n- **Form Sections**: Organized forms with section headers and titles\n- **Multi-Step Forms**: Step indicators, validation, and smart navigation\n- **Custom Components**: Integration of custom Vue components within multi-step workflows\n- **Advanced Features**: Masking, computed fields, custom buttons\n- **Validation Examples**: Custom validators and error handling\n- **Dependent Fields**: Dynamic field behavior and cascading options\n- **Custom Styles**: Theming and visual customization\n\nVisit the displayed URL (usually `http://localhost:3000`) to explore the interactive examples.\n\n### Development Workflow\n\nWhen working on the library and wanting to test changes in the demo:\n\n```bash\n# Update demo with latest library changes\nnpm run demo:update\n```\n\n## Features\n\n- **Multi-Step Forms**: Create guided, step-by-step forms with configurable step indicators, validation, and smart navigation.\n- **Custom Components**: Integrate custom Vue components directly into multi-step forms for advanced visualizations and workflows.\n- **Form Sections**: Organize forms into logical sections with titles and subtitles for better user experience.\n- **Dynamic Form Generation**: Create forms dynamically based on a schema definition.\n- **Input Masking**: Built-in support for input masking using Maskito for consistent data entry formatting.\n- **Conditional Field Rendering**: Fields can be shown or hidden based on other form values.\n- **Dependent Options**: Load options for select inputs based on the values of other fields.\n- **Responsive Grid Layout**: Utilizes Ionic Grid for a responsive design that works across different screen sizes.\n- **Enhanced Date Input Field**: Built-in date and datetime picker support with Ionic components.\n- **Multiple Selection Interfaces**: Three different interfaces for select inputs (popover, action sheet, alert).\n- **Repeatable Field Groups**: Create dynamic, repeatable sets of form fields.\n- **Advanced Validation**: Built-in validation with support for custom validation functions and step-by-step validation.\n- **Computed Values**: Generate and transform values based on other form fields.\n- **Customizable Styling**: Complete control over appearance with `className` property support across all input components and sections.\n- **Form Actions**: Customizable buttons with support for additional custom actions.\n- **Rich Text Areas**: Textarea inputs with auto-grow capability and character counting.\n- **Form Field Dependencies**: Create relationships between fields that react to changes.\n- **Option Descriptions**: Add helpful descriptions to select and checkbox options.\n\n## Installation\n\n1. Install the package using your preferred package manager:\n\n   ```bash\n   npm install @uniquedj95/vform\n   # or\n   yarn add @uniquedj95/vform\n   # or\n   pnpm add @uniquedj95/vform\n   ```\n\n2. Make sure you have the required peer dependencies:\n\n   ```bash\n   npm install vue@^3.5.10 @ionic/vue@^8.2.5 ionicons@^8.0.9\n   ```\n\n## Usage\n\n1. Register `VForm` component in your Vue.js application:\n\n   ```typescript\n   import { createApp } from 'vue';\n   import VForm from '@uniquedj95/vform';\n   import '@uniquedj95/vform/vform.css';\n\n   const app = createApp({});\n   app.use(VForm);\n   ```\n\n2. Use the component in your template:\n\n   ```vue\n   <template>\n     <v-form :schema=\"formSchema\" @submit=\"handleSubmit\" />\n   </template>\n\n   <script setup lang=\"ts\">\n   import { reactive } from 'vue';\n   import { FormSchema, FormData, ComputedData } from '@uniquedj95/vform';\n\n   const formSchema: FormSchema = {\n     // Your form fields here\n   };\n\n   function handleSubmit(formData: FormData, computedData: ComputedData) {\n     console.log('Form submitted:', { formData, computedData });\n   }\n   </script>\n   ```\n\n## Schema Structure\n\nThe schema object should define the structure of the form. Each key in the schema represents a form field with its configuration.\n\n### Example Schema\n\n```typescript\nconst formSchema: FormSchema = {\n  firstName: {\n    type: 'TextInput',\n    label: 'First Name',\n    required: true,\n    grid: { xs: '12', md: '6' },\n  },\n  lastName: {\n    type: 'TextInput',\n    label: 'Last Name',\n    required: true,\n    grid: { xs: '12', md: '6' },\n  },\n  birthDate: {\n    type: 'DateInput',\n    label: 'Date of Birth',\n    required: true,\n    pattern: 'DD/MMM/YYYY',\n  },\n  email: {\n    type: 'EmailInput',\n    label: 'Email Address',\n    required: true,\n    validation: value => {\n      if (!value.includes('@')) {\n        return ['Invalid email format'];\n      }\n      return null;\n    },\n  },\n  category: {\n    type: 'SelectInput',\n    label: 'Category',\n    options: [\n      { label: 'Option 1', value: '1' },\n      {\n        label: 'Option 2',\n        value: '2',\n        description: { text: 'With an explanation', color: 'secondary', show: 'always' },\n      },\n    ],\n  },\n  notes: {\n    type: 'TextAreaInput',\n    label: 'Notes',\n    rows: 4,\n    autoGrow: true,\n  },\n};\n```\n\n### Field Configuration Options\n\n#### Input Types\n\nThe following input types are supported:\n\n| Type            | Description                                                     |\n| --------------- | --------------------------------------------------------------- |\n| `TextInput`     | Standard text input field                                       |\n| `DateInput`     | Date picker with customizable format                            |\n| `NumberInput`   | Numeric input field                                             |\n| `EmailInput`    | Input field with email validation                               |\n| `PasswordInput` | Secure password input with toggle visibility                    |\n| `TextAreaInput` | Multi-line text input                                           |\n| `SelectInput`   | Dropdown selection                                              |\n| `CheckboxInput` | Toggle on/off input                                             |\n| `RadioInput`    | Single selection from multiple radio options                    |\n| `RepeatInput`   | Repeatable group of fields                                      |\n| `FormSection`   | Section header with title and subtitle (unified with FormField) |\n\n#### Common Properties\n\n| Property         | Type                                                     | Description                                             | Applies To        |\n| ---------------- | -------------------------------------------------------- | ------------------------------------------------------- | ----------------- |\n| `label`          | `string`                                                 | The label displayed for the form field                  | All               |\n| `placeholder`    | `string`                                                 | Placeholder text for the input field                    | Text-based inputs |\n| `required`       | `boolean`                                                | Determines if the field is required for form submission | All               |\n| `disabled`       | `boolean`                                                | Disables the input field if set to `true`               | All               |\n| `hidden`         | `boolean`                                                | Hides the field completely if set to `true`             | All               |\n| `autoFocus`      | `boolean`                                                | Automatically focuses the input field on form load      | All               |\n| `error`          | `string`                                                 | Custom error message for the field                      | All               |\n| `fill`           | `\"solid\" \\| \"outline\"`                                   | Defines the fill style of the input field               | All               |\n| `labelPlacement` | `\"stacked\" \\| \"start\" \\| \"end\" \\| \"fixed\" \\| \"floating\"` | Determines the position of the label                    | All               |\n\n#### Layout Properties\n\n| Property    | Type       | Description                                                   |\n| ----------- | ---------- | ------------------------------------------------------------- |\n| `grid`      | `GridSize` | Specifies responsive grid sizes: `xs`, `sm`, `md`, `lg`, `xl` |\n| `className` | `string`   | Custom CSS class for styling input fields and sections        |\n| `icon`      | `string`   | Icon to display within the input field                        |\n| `prefix`    | `string`   | Text to display before the input value                        |\n| `suffix`    | `string`   | Text to display after the input value                         |\n\n#### Validation and Dynamic Behavior\n\n| Property        | Type                   | Description                                                                                                                       |\n| --------------- | ---------------------- | --------------------------------------------------------------------------------------------------------------------------------- |\n| `validation`    | `FormValidator`        | Custom validation function: `(value: FormValue, schema?: FormSchema) => Promise<Array<string> \\| null> \\| Array<string> \\| null>` |\n| `condition`     | `Function`             | Function to determine if field should be rendered: `(data: FormData, computedData: ComputedData) => boolean`                      |\n| `computedValue` | `ComputedValueHandler` | Function to compute derived values: `(value: FormValue, schema: FormSchema) => Promise<any> \\| any`                               |\n| `onChange`      | `Function`             | Function triggered on field value changes: `(value: FormValue) => FormValue`                                                      |\n\n#### Text Input Properties\n\n| Property    | Type     | Description                                                                | Applies To        |\n| ----------- | -------- | -------------------------------------------------------------------------- | ----------------- |\n| `minLength` | `number` | Minimum text length                                                        | Text-based inputs |\n| `maxLength` | `number` | Maximum text length                                                        | Text-based inputs |\n| `pattern`   | `string` | Regular expression pattern for validation and input masking (uses Maskito) | Text-based inputs |\n\n#### Number Input Properties\n\n| Property | Type               | Description   |\n| -------- | ------------------ | ------------- |\n| `min`    | `number \\| string` | Minimum value |\n| `max`    | `number \\| string` | Maximum value |\n\n#### TextArea Properties\n\n| Property   | Type      | Description                                  |\n| ---------- | --------- | -------------------------------------------- |\n| `rows`     | `number`  | Number of visible text lines                 |\n| `cols`     | `number`  | Visible width in characters                  |\n| `autoGrow` | `boolean` | Automatic height adjustment based on content |\n| `counter`  | `boolean` | Show character counter                       |\n\n#### Date Input Properties\n\n| Property     | Type      | Description                                 |\n| ------------ | --------- | ------------------------------------------- |\n| `pattern`    | `string`  | Date format pattern (e.g., \"DD/MMM/YYYY\")   |\n| `enableTime` | `boolean` | Enable time picker alongside date selection |\n\n#### Select Input Properties\n\n| Property           | Type                                     | Description                                    |\n| ------------------ | ---------------------------------------- | ---------------------------------------------- |\n| `options`          | `FormOptions`                            | Array of options or function returning options |\n| `multiple`         | `boolean`                                | Allow multiple selections                      |\n| `interface`        | `\"popover\" \\| \"action-sheet\" \\| \"alert\"` | How select options are displayed               |\n| `optionsPlacement` | `\"top\" \\| \"bottom\"`                      | Position of popover options list               |\n\n#### RepeatInput Properties\n\n| Property   | Type         | Description                           |\n| ---------- | ------------ | ------------------------------------- |\n| `children` | `FormSchema` | Schema for the repeatable field group |\n\n#### RadioInput Properties\n\n| Property               | Type          | Description                                                      |\n| ---------------------- | ------------- | ---------------------------------------------------------------- |\n| `options`              | `FormOptions` | Array of options or function returning options                   |\n| `showOptionsSeparator` | `boolean`     | Whether to show lines between radio options                      |\n| `compareWith`          | `Function`    | Custom comparison function for option selection                  |\n| `allowEmptySelection`  | `boolean`     | Whether to allow deselecting all options (defaults to !required) |\n\n#### CheckboxInput Properties\n\n| Property  | Type      | Description                           |\n| --------- | --------- | ------------------------------------- |\n| `checked` | `boolean` | Initial checked state of the checkbox |\n\n### Custom Styling with className\n\nAll form input components now support the `className` property for custom styling. This allows you to apply CSS classes to individual input fields and form sections for complete visual customization.\n\n#### Usage Examples\n\n```typescript\nconst formSchema: FormSchema = {\n  // Custom styled text input\n  customInput: {\n    type: 'TextInput',\n    label: 'Styled Input',\n    className: 'my-custom-input',\n    placeholder: 'Enter text here',\n  },\n\n  // Custom styled section\n  styledSection: {\n    type: 'FormSection',\n    title: 'Custom Section',\n    subtitle: 'This section has custom styling',\n    className: 'my-custom-section',\n  },\n\n  // Custom styled select input\n  styledSelect: {\n    type: 'SelectInput',\n    label: 'Styled Select',\n    className: 'my-custom-select',\n    options: [\n      { label: 'Option 1', value: '1' },\n      { label: 'Option 2', value: '2' },\n    ],\n  },\n};\n```\n\n#### CSS Implementation\n\n```css\n/* Custom input styling */\n.my-custom-input {\n  --background: #f8f9fa;\n  --border-color: #007bff;\n  --color: #333;\n}\n\n/* Custom section styling */\n.my-custom-section .form-section-title {\n  color: #007bff;\n  font-size: 1.5rem;\n  font-weight: 600;\n}\n\n.my-custom-section .form-section-subtitle {\n  color: #6c757d;\n  font-style: italic;\n}\n\n/* Custom select styling */\n.my-custom-select {\n  --background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n  --color: white;\n}\n```\n\n#### Component Support\n\nThe `className` property is supported across all input components:\n\n- **BaseInput**: Applied to `ion-input` element (covers TextInput, EmailInput, NumberInput, PasswordInput, DateInput)\n- **TextAreaInput**: Applied to `ion-textarea` element\n- **SelectInput**: Applied to the wrapper container\n- **CheckboxInput**: Applied to `ion-checkbox` element\n- **RadioInput**: Applied to `ion-radio-group` element\n- **RepeatInput**: Applied to each repeat group wrapper\n- **FormSection**: Applied to the section container\n\n### Input Masking\n\nvForm includes built-in support for input masking using [Maskito](https://maskito.dev/), which provides consistent data entry formatting for various input types.\n\n#### Basic Usage\n\nUse the `pattern` property on text-based inputs to apply masking:\n\n```typescript\nconst formSchema: FormSchema = {\n  phoneNumber: {\n    type: 'TextInput',\n    label: 'Phone Number',\n    pattern: '+1 (000) 000-0000',\n    placeholder: '+1 (555) 123-4567',\n  },\n  creditCard: {\n    type: 'TextInput',\n    label: 'Credit Card',\n    pattern: '0000 0000 0000 0000',\n    placeholder: '1234 5678 9012 3456',\n  },\n  socialSecurity: {\n    type: 'TextInput',\n    label: 'SSN',\n    pattern: '000-00-0000',\n    placeholder: '123-45-6789',\n  },\n};\n```\n\n#### Common Mask Patterns\n\n| Pattern                 | Description        | Example Output        |\n| ----------------------- | ------------------ | --------------------- |\n| `'000-00-0000'`         | US Social Security | `123-45-6789`         |\n| `'+1 (000) 000-0000'`   | US Phone Number    | `+1 (555) 123-4567`   |\n| `'0000 0000 0000 0000'` | Credit Card        | `1234 5678 9012 3456` |\n| `'00/00/0000'`          | Date (MM/DD/YYYY)  | `12/25/2023`          |\n| `'00:00'`               | Time (HH:MM)       | `14:30`               |\n\n#### Advanced Masking\n\nFor more complex masking requirements, you can use regular expressions:\n\n```typescript\nconst emailMask = {\n  type: 'EmailInput',\n  label: 'Email',\n  pattern: '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-zA-Z]{2,}$',\n};\n```\n\nThe masking is automatically applied when the user types, providing real-time formatting and validation feedback.\n\n## Multi-Step Forms\n\nvForm supports multi-step forms with configurable step indicators, validation, and smart navigation. Multi-step forms break complex forms into manageable sections, improving user experience and data collection.\n\n### Basic Multi-Step Setup\n\nTo create a multi-step form, define a `multiStepConfig` prop:\n\n```vue\n<template>\n  <v-form\n    :multi-step-config=\"multiStepConfig\"\n    @multi-step-submit=\"handleSubmit\"\n    @step-change=\"handleStepChange\"\n  />\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue';\nimport { FormSchema, MultiStepConfig } from '@uniquedj95/vform';\n\nconst multiStepConfig: MultiStepConfig = {\n  steps: [\n    {\n      id: 'personal',\n      title: 'Personal Information',\n      subtitle: 'Basic details about you',\n      schema: {\n        firstName: {\n          type: 'TextInput',\n          label: 'First Name',\n          required: true,\n        },\n        lastName: {\n          type: 'TextInput',\n          label: 'Last Name',\n          required: true,\n        },\n      },\n    },\n    {\n      id: 'contact',\n      title: 'Contact Details',\n      subtitle: 'How we can reach you',\n      schema: {\n        email: {\n          type: 'EmailInput',\n          label: 'Email',\n          required: true,\n        },\n        phone: {\n          type: 'TextInput',\n          label: 'Phone Number',\n        },\n      },\n    },\n    {\n      id: 'review',\n      title: 'Review & Submit',\n      subtitle: 'Final review of your information',\n      schema: {\n        comments: {\n          type: 'TextAreaInput',\n          label: 'Additional Comments',\n        },\n      },\n    },\n  ],\n  stepPosition: 'top',\n  showProgress: true,\n  allowStepNavigation: true,\n};\n\nfunction handleSubmit(allData: MultiStepFormData) {\n  console.log('All form data:', allData);\n}\n\nfunction handleStepChange(stepIndex: number, stepId: string) {\n  console.log(`Moved to step ${stepIndex + 1}: ${stepId}`);\n}\n</script>\n```\n\n### Step Configuration\n\nEach step in the multi-step configuration supports the following properties:\n\n| Property         | Type         | Description                                                              | Required |\n| ---------------- | ------------ | ------------------------------------------------------------------------ | -------- |\n| `id`             | `string`     | Unique identifier for the step                                           | Yes      |\n| `title`          | `string`     | Display title for the step                                               | Yes      |\n| `subtitle`       | `string`     | Optional subtitle/description for the step                               | No       |\n| `schema`         | `FormSchema` | Schema object containing fields for this step                            | No       |\n| `component`      | `Component`  | Custom Vue component to render instead of a schema                       | No       |\n| `componentProps` | `Object`     | Props to pass to the custom component                                    | No       |\n| `condition`      | `function`   | Function that determines if the step should be shown, based on form data | No       |\n| `validation`     | `function`   | Custom validation function for the step                                  | No       |\n\n\\*Either `schema` or `component` must be provided.\n\n### Custom Components in Steps\n\nvForm allows you to use custom Vue components in multi-step forms instead of schema-defined fields. This is useful for complex steps that require custom layouts, visualizations, or integration with other components.\n\n```vue\n<template>\n  <v-form :multi-step-config=\"multiStepConfig\" @multi-step-submit=\"handleSubmit\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { MultiStepConfig } from '@uniquedj95/vform';\nimport PreviousResultsTable from './components/PreviousResultsTable.vue';\n\nconst multiStepConfig: MultiStepConfig = {\n  steps: [\n    {\n      id: 'patient-info',\n      title: 'Patient Information',\n      schema: {\n        // Regular form schema for step 1\n        patientId: {\n          type: 'TextInput',\n          label: 'Patient ID',\n          required: true,\n        },\n      },\n    },\n    {\n      id: 'previous-results',\n      title: 'Previous ANC Results',\n      // Use a custom component instead of a schema\n      component: PreviousResultsTable,\n      componentProps: {\n        // Props to pass to your component\n        clinicId: 123,\n        showDetails: true,\n      },\n    },\n    {\n      id: 'new-visit',\n      title: 'New ANC Visit',\n      schema: {\n        // Back to regular schema for step 3\n        visitDate: {\n          type: 'DateInput',\n          label: 'Visit Date',\n          required: true,\n        },\n      },\n    },\n  ],\n};\n</script>\n```\n\nCustom components need to implement a `validate()` method that returns a boolean to integrate with the form validation workflow, and emit an `update:data` event to pass data back to the form.\n\nFor detailed implementation examples and best practices, see the [Custom Components Guide](./docs/CUSTOM_COMPONENTS.md).\n\nA complete working example is available in the demo app under `demo/src/examples/CustomComponentExample.vue` that demonstrates a real-world ANC (Antenatal Care) workflow using a custom component to display previous visit history.\n\n### Step Indicator Positioning\n\nThe step indicator can be positioned in four different locations:\n\n```typescript\nconst multiStepConfig: MultiStepConfig = {\n  stepPosition: 'top', // Above the form content (default)\n  // stepPosition: 'bottom', // Below the form content\n  // stepPosition: 'left',   // Left side of the form content\n  // stepPosition: 'right',  // Right side of the form content\n  // ... other config\n};\n```\n\n#### Position Behaviors\n\n- **Top/Bottom**: Step indicators display horizontally with connecting lines\n- **Left**: Step indicators display vertically with titles to the right of numbered markers\n- **Right**: Step indicators display vertically with titles to the left of numbered markers\n\n### Conditional Steps\n\nvForm allows you to conditionally show or hide steps based on the values entered in previous steps. This is useful for creating dynamic workflows that adapt to user input.\n\n```vue\n<script setup lang=\"ts\">\nimport { reactive } from 'vue';\nimport { MultiStepConfig } from '@uniquedj95/vform';\n\nconst multiStepConfig = reactive<MultiStepConfig>({\n  steps: [\n    {\n      id: 'account-type',\n      title: 'Account Type',\n      schema: {\n        accountType: {\n          type: 'SelectInput',\n          label: 'Account Type',\n          options: [\n            { label: 'Personal', value: 'personal' },\n            { label: 'Business', value: 'business' },\n          ],\n          value: 'personal',\n          required: true,\n        },\n      },\n    },\n    {\n      id: 'business-details',\n      title: 'Business Details',\n      schema: {\n        businessName: {\n          type: 'TextInput',\n          label: 'Business Name',\n          required: true,\n        },\n      },\n      // Only show this step if accountType is 'business'\n      // Using stepData with step ID to avoid field name conflicts\n      condition: (stepData, stepComputedData) => {\n        return /business/i.test(stepData['account-type'].accountType.label);\n      },\n    },\n    {\n      id: 'review',\n      title: 'Review',\n      schema: {\n        // Review fields\n      },\n    },\n  ],\n});\n</script>\n```\n\nThe `condition` function receives two arguments:\n\n- `stepData`: Form data organized by step ID to avoid key conflicts\n- `stepComputedData`: Computed data organized by step ID\n\n```typescript\ncondition: (stepData, stepComputedData) => {\n  const firstStepData = stepData['first-step-id'];\n  return firstStepData.someField === 'expectedValue';\n};\n```\n\nWhen a step is hidden:\n\n- It won't be visible in the step indicator\n- Navigation will skip over it automatically\n- The step count and progress indicators will update accordingly\n- **Data behavior**: Form data from hidden steps is automatically cleared\n  - Hidden step data is not included in the final submission\n  - If a step becomes visible again, it starts with empty/default values\n  - This prevents processing of data that was meant to be skipped\n\n> **Note:** The data clearing happens whenever the visibility of steps changes. If you need\n> to preserve data from conditionally hidden steps for some specific use case, you can\n> store a backup of the data separately before the condition changes:\n>\n> ```typescript\n> // Save data before hiding a step\n> const backupData = { ...stepData.value['step-to-be-hidden'] };\n>\n> // Later, if you need to restore the data when the step becomes visible again\n> updateStepData('step-to-be-hidden', backupData);\n> ```\n\n### Step Validation\n\nMulti-step forms include built-in validation that prevents users from proceeding to the next step until the current step is valid:\n\n- **Next Step**: Validates all fields in the current step before advancing\n- **Step Navigation**: When clicking step indicators, validates current step if moving forward\n- **Submit**: Validates all steps before final submission\n\n```typescript\nconst multiStepConfig: MultiStepConfig = {\n  steps: [\n    {\n      id: 'personal',\n      title: 'Personal Information',\n      schema: {\n        /* fields */\n      },\n      // Optional custom validation for this step\n      validation: async (stepData, computedData) => {\n        const errors: string[] = [];\n\n        // Custom validation logic\n        if (stepData.firstName && stepData.lastName && stepData.firstName === stepData.lastName) {\n          errors.push('First and last name cannot be the same');\n        }\n\n        return errors;\n      },\n    },\n    // ... other steps\n  ],\n  // ... other config\n};\n```\n\n### Multi-Step Configuration Options\n\n| Property              | Type                                     | Description                                   | Default     |\n| --------------------- | ---------------------------------------- | --------------------------------------------- | ----------- |\n| `steps`               | `FormStep[]`                             | Array of step configurations                  | Required    |\n| `stepPosition`        | `'top' \\| 'bottom' \\| 'left' \\| 'right'` | Position of the step indicator                | `'top'`     |\n| `stepDisplayMode`     | `'numbers' \\| 'labels'`                  | Display mode for step indicators              | `'numbers'` |\n| `showProgress`        | `boolean`                                | Show progress bar and step counter            | `true`      |\n| `allowStepNavigation` | `boolean`                                | Allow clicking on step indicators to navigate | `false`     |\n\n### Multi-Step Events\n\n| Event         | Description                               | Signature                                                       |\n| ------------- | ----------------------------------------- | --------------------------------------------------------------- |\n| `step-change` | Emitted when user navigates between steps | `(stepIndex: number, stepId: string) => void`                   |\n| `submit`      | Emitted when multi-step form is submitted | `(allData: FormData, multiStepData: MultiStepFormData) => void` |\n\nThe `submit` event provides both the combined data from all steps and the per-step data structure:\n\n```typescript\n// multi-step data structure\nmultiStepData: MultiStepFormData = {\n  formData: {\n    personal: { firstName: 'John', lastName: 'Doe' },\n    contact: { email: 'john@example.com', phone: '...' },\n    review: { comments: '...' },\n  },\n  computedData: {\n    /* computed values per step */\n  },\n};\n```\n\n## Form Sections\n\nForm sections allow you to organize your forms into logical groups with titles and subtitles, making complex forms more readable and user-friendly. Sections are now fully integrated into the FormField interface, providing a unified approach to form building.\n\n### Basic Section Usage\n\nTo create sections in your form, add FormField items with `type: 'FormSection'` to your schema alongside regular form fields:\n\n```vue\n<template>\n  <v-form :schema=\"formSchema\" @submit=\"handleSubmit\" />\n</template>\n\n<script setup lang=\"ts\">\nimport { reactive } from 'vue';\nimport { FormSchema, FormData, ComputedData } from '@uniquedj95/vform';\n\nconst formSchema: FormSchema = {\n  // Personal Information Section\n  personalInfoSection: {\n    type: 'FormSection',\n    title: 'Personal Information',\n    subtitle: 'Basic details about yourself',\n  },\n  firstName: {\n    type: 'TextInput',\n    label: 'First Name',\n    required: true,\n  },\n  lastName: {\n    type: 'TextInput',\n    label: 'Last Name',\n    required: true,\n  },\n  email: {\n    type: 'EmailInput',\n    label: 'Email Address',\n    required: true,\n  },\n\n  // Employment Section\n  employmentSection: {\n    type: 'FormSection',\n    title: 'Employment Details',\n    subtitle: 'Information about your job',\n  },\n  jobTitle: {\n    type: 'TextInput',\n    label: 'Job Title',\n    required: true,\n  },\n  department: {\n    type: 'SelectInput',\n    label: 'Department',\n    options: [\n      { label: 'Engineering', value: 'engineering' },\n      { label: 'Marketing', value: 'marketing' },\n      { label: 'Sales', value: 'sales' },\n    ],\n  },\n\n  // Address Section\n  addressSection: {\n    type: 'FormSection',\n    title: 'Address Information',\n  },\n  streetAddress: {\n    type: 'TextInput',\n    label: 'Street Address',\n    required: true,\n  },\n  city: {\n    type: 'TextInput',\n    label: 'City',\n    required: true,\n  },\n};\n\nfunction handleSubmit(formData: FormData, computedData: ComputedData) {\n  console.log('Form submitted:', { formData, computedData });\n  // Note: Section items don't appear in form data as they're display-only\n}\n</script>\n```\n\n### Section Configuration\n\nForm sections are FormField objects with `type: 'FormSection'` and support the following configuration options:\n\n| Property    | Type            | Description                                | Required |\n| ----------- | --------------- | ------------------------------------------ | -------- |\n| `type`      | `'FormSection'` | Identifies this as a section (not a field) | ✓        |\n| `title`     | `string`        | The main section title                     | ✓        |\n| `subtitle`  | `string`        | Optional subtitle for additional context   |          |\n| `className` | `string`        | Optional CSS class for custom styling      |          |\n| `grid`      | `GridSize`      | Grid layout configuration for the section  |          |\n| `label`     | `string`        | Alternative to `title` for section header  |          |\n\n> **Note**: For sections, you can use either `title` or `label` for the section header. The `title` property is recommended for clarity, but `label` is supported for consistency with other form fields.\n\n#### Grid Configuration\n\nSections support the same responsive grid configuration as form fields:\n\n```typescript\nconst sectionWithGrid: FormSchema = {\n  customSection: {\n    type: 'FormSection',\n    title: 'Custom Section',\n    subtitle: 'This section has custom grid settings',\n    grid: {\n      xs: '12', // Full width on extra small screens\n      md: '10', // 10/12 width on medium screens\n      lg: '8', // 8/12 width on large screens\n    },\n    className: 'my-custom-section',\n  },\n  // ... form fields\n};\n```\n\n#### Section Styling\n\nSections are styled with default CSS that provides a clean, professional appearance:\n\n- **Title**: Primary color, medium font weight, clear hierarchy\n- **Subtitle**: Muted color, smaller font size\n- **Border**: Bottom border in primary color for visual separation\n- **Spacing**: Appropriate margins for visual grouping\n\nYou can customize section appearance using the `className` property and your own CSS:\n\n```css\n.my-custom-section .form-section-title {\n  color: #custom-color;\n  font-size: 1.5rem;\n}\n\n.my-custom-section .form-section-subtitle {\n  font-style: italic;\n}\n```\n\n#### Important Notes\n\n- **Unified Interface**: Form sections are now part of the FormField interface, providing a consistent API for all form elements\n- **Data Handling**: Form sections are display-only components and do not contribute to form data\n- **Validation**: Sections cannot have validation rules as they don't hold values\n- **Order**: Sections will appear in the form in the order they're defined in your schema\n- **Multi-Step Compatibility**: Sections work seamlessly within multi-step forms\n- **Responsive**: Sections automatically adapt to different screen sizes using Ionic's grid system\n- **Custom Styling**: Use the `className` property to apply custom CSS classes to sections\n\n## Form Events\n\n### Single-Step Form Events\n\n| Event    | Description                                                      | Signature                                                      |\n| -------- | ---------------------------------------------------------------- | -------------------------------------------------------------- |\n| `submit` | Emitted when the form is submitted successfully after validation | `(formData: FormData, computedFormData: ComputedData) => void` |\n| `clear`  | Emitted when the form fields are cleared to their initial state  | `() => void`                                                   |\n| `cancel` | Emitted when the form submission is canceled, resetting fields   | `() => void`                                                   |\n\n### Multi-Step Form Events\n\n| Event               | Description                               | Signature                                     |\n| ------------------- | ----------------------------------------- | --------------------------------------------- |\n| `multi-step-submit` | Emitted when multi-step form is submitted | `(data: multiStepData) => void`               |\n| `step-change`       | Emitted when user navigates between steps | `(stepIndex: number, stepId: string) => void` |\n\nThe `multi-step-submit` event provides both the combined data from all steps and the per-step data structure:\n\n```typescript\n// multi-step data structure\nmultiStepData: MultiStepFormData = {\n  formData: {\n    personal: { firstName: 'John', lastName: 'Doe' },\n    contact: { email: 'john@example.com' },\n    // ... other step data\n  },\n  computedData: {\n    personal: { fullName: 'John Doe' },\n    contact: { domain: 'example.com' },\n    // ... other computed step data\n  },\n};\n```\n\n## Form Methods\n\nWhen accessing the VForm via a template ref, you can utilize these methods:\n\n### Single-Step Form Methods\n\n| Method          | Description                                            | Return Type                                          |\n| --------------- | ------------------------------------------------------ | ---------------------------------------------------- |\n| `resetForm()`   | Resets all form fields to their initial state          | `void`                                               |\n| `isFormValid()` | Validates all form fields and returns validation state | `Promise<boolean>`                                   |\n| `resolveData()` | Returns the current form data and computed data        | `{ formData: FormData, computedData: ComputedData }` |\n\n### Multi-Step Form Methods\n\n| Method                  | Description                              | Return Type             |\n| ----------------------- | ---------------------------------------- | ----------------------- |\n| `nextStep()`            | Moves to the next step (with validation) | `Promise<void>`         |\n| `previousStep()`        | Moves to the previous step               | `void`                  |\n| `goToStep(index)`       | Navigates to a specific step by index    | `Promise<void>`         |\n| `getCurrentStep()`      | Returns the current step configuration   | `FormStep \\| undefined` |\n| `getCurrentStepIndex()` | Returns the current step index           | `number`                |\n\n## Composables\n\nvForm exports several composables that you can use to build custom form solutions or extend functionality:\n\n### Available Composables\n\n| Composable              | Description                                        | Use Case                                      |\n| ----------------------- | -------------------------------------------------- | --------------------------------------------- |\n| `useFormValidation`     | Core form validation logic and state management    | Building custom form wrappers                 |\n| `useInputValidation`    | Input-specific validation and error handling       | Creating custom input components              |\n| `useDataTransformation` | Data transformation and computed value handling    | Processing form data for display/submission   |\n| `useDependentOptions`   | Managing dependent field options and relationships | Dynamic option loading and field dependencies |\n| `useMultiStepForm`      | Multi-step form navigation and state management    | Custom multi-step form implementations        |\n\n### Example Usage\n\n```typescript\nimport { useFormValidation, useInputValidation } from '@uniquedj95/vform';\n\n// In your custom form component\nconst { isValid, validateForm, getErrors } = useFormValidation();\n\n// In your custom input component\nconst { onValueUpdate, onFocus, getErrors } = useInputValidation(inputRef, model, input, schema);\n```\n\nFor detailed usage examples of these composables, see the [source code](./src/composables/) or examine how they're used in the built-in components.\n\n## Input Dependencies\n\nvForm provides a powerful system for creating dependent form inputs, where the options displayed in one input depend on the values selected in another. This is especially useful for hierarchical selections like country → state → city or category → subcategory.\n\n#### Dynamic Options\n\nTo create dependent select inputs, use the `dependsOn` property and the extended `options` function:\n\n```javascript\nconst formSchema = {\n  country: {\n    type: 'SelectInput',\n    label: 'Country',\n    value: '',\n    options: [\n      { label: 'Malawi', value: 'malawi' },\n      { label: 'Zambia', value: 'zambia' },\n    ],\n    required: true,\n  },\n  district: {\n    type: 'SelectInput',\n    label: 'District',\n    value: '',\n    dependsOn: 'country', // This field depends on the country field\n    options: async (filter, dependencyValues) => {\n      // Get the country value\n      if (!dependencyValues?.country) return [];\n\n      const countryId =\n        typeof dependencyValues.country === 'object'\n          ? dependencyValues.country.value\n          : dependencyValues.country;\n\n      // In a real app, you would make an API call here\n      if (countryId === 'malawi') {\n        return [\n          { label: 'Lilongwe', value: 'lilongwe' },\n          { label: 'Blantyre', value: 'blantyre' },\n        ];\n      }\n      return []; // Return empty options for unknown countries\n    },\n    required: true,\n  },\n};\n```\n\n#### Multiple Dependencies\n\nAn input can also depend on multiple other inputs:\n\n```javascript\n{\n  locality: {\n    type: 'SelectInput',\n    label: 'Locality',\n    dependsOn: ['country', 'region'],  // Array of field IDs this depends on\n    options: async (filter, dependencyValues) => {\n      // Access to all dependency values\n      if (!dependencyValues) return [];\n\n      const country = dependencyValues.country;\n      const region = dependencyValues.region;\n\n      // Return options based on both dependencies\n      // ...\n    }\n  }\n}\n```\n\nFor more details and examples, see the [Dependencies Documentation](./docs/DEPENDENCIES.md).\n\n#### Resetting Dependent Fields\n\nWhen a dependency changes, you often want to reset the dependent field's value to prevent invalid combinations (e.g., when changing from \"USA\" to \"Canada\", the previously selected \"California\" state should be cleared).\n\n**Method 1: Automatic Reset (Built-in)**\n\nThe SelectInput component automatically detects dependency changes and resets the field value when using the `dependsOn` property:\n\n```javascript\nconst formSchema = {\n  country: {\n    type: 'SelectInput',\n    label: 'Country',\n    options: [\n      { label: 'United States', value: 'us' },\n      { label: 'Canada', value: 'ca' },\n    ],\n  },\n  state: {\n    type: 'SelectInput',\n    label: 'State/Province',\n    dependsOn: 'country',\n    options: (filter, dependencyValues) => {\n      const country = dependencyValues?.country?.value;\n      return getStatesForCountry(country);\n    },\n  },\n};\n```\n\nWhen the country changes, the state field automatically resets to empty and reloads options.\n\n**Method 2: Manual Reset (Workaround)**\n\nIf the automatic reset doesn't work as expected, you can manually reset dependent fields using the `onChange` callback:\n\n```javascript\n{\n  country: {\n    type: 'SelectInput',\n    label: 'Country',\n    options: [...],\n    onChange: (value, schema) => {\n      // Manual reset as workaround\n      schema.state.value = '';\n      return value;\n    },\n  }\n}\n```\n\n**Method 3: Multiple Field Reset**\n\nYou can reset multiple dependent fields at once using onChange:\n\n```javascript\n{\n  country: {\n    type: 'SelectInput',\n    label: 'Country',\n    options: [...],\n    onChange: (value, schema) => {\n      // Reset all location-dependent fields\n      schema.state.value = '';\n      schema.city.value = '';\n      schema.zipCode.value = '';\n      return value;\n    },\n  }\n}\n```\n\n**Note:** Use the onChange approach as a workaround when the automatic reset doesn't work properly, or when you need to reset multiple fields or perform additional logic when dependencies change.\n\n### Advanced Components\n\n#### DateInput\n\nThe DateInput component supports both date-only and date-time inputs, with different format requirements for setting default values:\n\n- **Date Only Format**: When using DateInput without time selection.\n\n  ```js\n  {\n    type: 'DateInput',\n    label: 'Date of Birth',\n    value: '', // Format: YYYY-MM-DD\n    required: true\n  }\n  ```\n\n- **Date Time Format**: When using DateInput with time selection enabled.\n\n  ```js\n  {\n    type: 'DateInput',\n    label: 'Appointment Date & Time',\n    value: '', // Format: YYYY-MM-DDTHH:MM:SS\n    enableTime: true,\n    required: true\n  }\n  ```\n\nSetting the `enableTime` property to `true` will render a datetime-local input that allows users to select both date and time.\n\n#### SelectInput\n\nThe SelectInput component provides various display modes for selection options:\n\n- **Popover Interface**: Default presentation that displays options in a dropdown.\n\n  ```js\n  {\n    type: 'SelectInput',\n    label: 'Choose an option',\n    interface: 'popover', // default\n    optionsPlacement: 'bottom', // 'top' or 'bottom'\n    options: [...]\n  }\n  ```\n\n- **Action Sheet Interface**: Opens a sheet from the bottom of the screen with options.\n  ```js\n  {\n    type: 'SelectInput',\n    label: 'Choose an option',\n    interface: 'action-sheet',\n    options: [...]\n  }\n  ```\n- **Alert Interface**: Displays options in a modal dialog.\n  ```js\n  {\n    type: 'SelectInput',\n    label: 'Choose an option',\n    interface: 'alert',\n    options: [...]\n  }\n  ```\n\n#### Custom Buttons\n\nYou can add custom action buttons to the form with the `customButtons` prop:\n\n```js\nconst customButtons = [\n  {\n    label: 'Save Draft',\n    icon: 'save',\n    fill: 'outline',\n    color: 'secondary',\n    action: () => saveDraft(),\n  },\n];\n```\n\n#### RepeatInput\n\nThe RepeatInput component allows for creating repeatable groups of fields:\n\n```js\n{\n  type: 'RepeatInput',\n  label: 'Add Items',\n  children: {\n    name: {\n      type: 'TextInput',\n      label: 'Item Name',\n      required: true\n    },\n    quantity: {\n      type: 'NumberInput',\n      label: 'Quantity',\n      required: true\n    }\n  }\n}\n```\n\nEach repeated set includes add and remove buttons, allowing the user to dynamically create or delete instances of the field group.\n\n#### Option Descriptions\n\nWhen using SelectInput or CheckboxInput, you can add descriptions to options:\n\n```js\n{\n  type: 'SelectInput',\n  label: 'Subscription Plan',\n  options: [\n    {\n      label: 'Basic',\n      value: 'basic',\n      description: {\n        text: 'Free plan with limited features',\n        color: 'secondary', // 'primary', 'warning', 'danger', 'secondary', 'light'\n        show: 'always' // or 'onChecked' to show only when selected\n      }\n    },\n    {\n      label: 'Premium',\n      value: 'premium',\n      description: {\n        text: 'Full access to all features',\n        color: 'primary',\n        show: 'always'\n      }\n    }\n  ]\n}\n```\n\n### Form Props\n\n| Property             | Type                           | Description                                                            | Default      |\n| -------------------- | ------------------------------ | ---------------------------------------------------------------------- | ------------ |\n| `schema`             | `FormSchema`                   | The schema object defining the form structure and field configurations | _Required_   |\n| `multiStepConfig`    | `MultiStepConfig`              | Configuration for multi-step forms (optional)                          | `undefined`  |\n| `showLabels`         | `boolean`                      | Determines if labels are displayed for each field                      | `true`       |\n| `showClearButton`    | `boolean`                      | Controls the visibility of the clear/reset button                      | `true`       |\n| `showCancelButton`   | `boolean`                      | Controls the visibility of the cancel button                           | `true`       |\n| `buttonPlacement`    | `'start' \\| 'middle' \\| 'end'` | Specifies the alignment of action buttons within the form              | `'start'`    |\n| `submitButtonText`   | `string`                       | Custom text for the submit button                                      | `\"Submit\"`   |\n| `clearButtonText`    | `string`                       | Custom text for the clear/reset button                                 | `\"Reset\"`    |\n| `cancelButtonText`   | `string`                       | Custom text for the cancel button                                      | `\"Cancel\"`   |\n| `nextButtonText`     | `string`                       | Custom text for the next button (multi-step forms)                     | `\"Next\"`     |\n| `previousButtonText` | `string`                       | Custom text for the previous button (multi-step forms)                 | `\"Previous\"` |\n| `hideButtons`        | `boolean`                      | When true, hides all action buttons                                    | `false`      |\n| `customButtons`      | `Array<CustomButton>`          | Array of custom buttons to add to the form                             | `[]`         |\n\n## Component Exports\n\nvForm exports individual components that you can use directly in your applications for more granular control:\n\n### Available Components\n\n```typescript\nimport {\n  VForm, // Main form component\n  FormBuilder, // Alias for VForm\n  TextInput,\n  DateInput,\n  NumberInput,\n  EmailInput,\n  PasswordInput,\n  SelectInput,\n  TextAreaInput,\n  RepeatInput,\n  CheckboxInput,\n  RadioInput,\n  FormSection,\n} from '@uniquedj95/vform';\n```\n\n### Usage Example\n\n```vue\n<template>\n  <div>\n    <!-- Use individual components directly -->\n    <TextInput v-model=\"textField\" />\n    <SelectInput v-model=\"selectField\" />\n    <CheckboxInput v-model=\"checkboxField\" />\n\n    <!-- Or use within a custom form -->\n    <form @submit=\"handleSubmit\">\n      <DateInput v-model=\"dateField\" />\n      <NumberInput v-model=\"numberField\" />\n      <ion-button type=\"submit\">Submit</ion-button>\n    </form>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue';\nimport { TextInput, SelectInput, CheckboxInput, DateInput, NumberInput } from '@uniquedj95/vform';\nimport { FormField } from '@uniquedj95/vform';\n\nconst textField = ref<FormField>({\n  type: 'TextInput',\n  label: 'Name',\n  placeholder: 'Enter your name',\n});\n\nconst selectField = ref<FormField>({\n  type: 'SelectInput',\n  label: 'Country',\n  options: [\n    { label: 'USA', value: 'us' },\n    { label: 'Canada', value: 'ca' },\n  ],\n});\n\n// ... other field definitions\n</script>\n```\n\n### Component Props\n\nAll individual components accept the following props:\n\n| Prop      | Type         | Description                                              | Required |\n| --------- | ------------ | -------------------------------------------------------- | -------- |\n| `v-model` | `FormField`  | The form field configuration object                      | ✓        |\n| `schema`  | `FormSchema` | Optional schema for validation and dependency resolution | No       |\n\n## Issue Reporting and Feedback\n\nIf you encounter any issues or have suggestions for improvements, please feel free to report them on the [GitHub Issues page](https://github.com/uniquedj95/vform/issues). Your feedback is invaluable in helping us enhance this project.\n\n## Contributors\n\nI welcome contributions from the community! If you'd like to contribute, please follow these steps:\n\n1. Fork the repository.\n2. Create a new branch for your feature or bug fix.\n3. Implement your changes and commit them to your branch.\n4. Submit a pull request detailing your changes.\n\nThank you to all the [contributors](https://github.com/uniquedj95/vform/graphs/contributors) who have helped make vForm better!\n\n## TypeScript Support\n\nvForm is built with TypeScript and provides complete type definitions for all components and interfaces. Import the types to get full IntelliSense support in your IDE:\n\n```typescript\nimport {\n  FormSchema,\n  FormData,\n  ComputedData,\n  FormField,\n  Option,\n  InputType,\n  FormValidator,\n  ComputedValueHandler,\n  FormOptions,\n  GridSize,\n  CustomButton,\n  // Multi-step types\n  MultiStepConfig,\n  MultiStepFormData,\n  FormStep,\n  StepPosition,\n} from '@uniquedj95/vform';\n```\n\nWhen defining your form schema, you can use these types for proper type checking:\n\n```typescript\nimport { reactive } from 'vue';\nimport { FormSchema } from '@uniquedj95/vform';\n\nconst myFormSchema = reactive<FormSchema>({\n  // Your form fields here with proper type checking\n});\n```\n\n## Development\n\n### Setup\n\n```bash\n# Install dependencies\nnpm install\n\n# Run tests\nnpm run test\n\n# Build for production\nnpm run build\n```\n\n### Quality Tools\n\nvForm uses several tools to ensure code quality:\n\n- **ESLint**: Enforces code style and detects potential issues\n\n  ```bash\n  # Run linting\n  npm run lint\n  ```\n\n- **Prettier**: Formats code consistently\n\n  ```bash\n  # Format code\n  npm run format\n  ```\n\n- **Vitest**: Runs unit tests\n  ```bash\n  # Run tests\n  npm run test\n  # Run tests with coverage report\n  npm run test:coverage\n  # Run tests in watch mode\n  npm run test:watch\n  ```\n\n### Versioning\n\nvForm includes scripts to help with versioning:\n\n```bash\n# Patch update (0.0.x)\nnpm run version:patch\n\n# Minor update (0.x.0)\nnpm run version:minor\n\n# Major update (x.0.0)\nnpm run version:major\n```\n\n### Continuous Integration\n\nThis project uses GitHub Actions for CI/CD:\n\n- Pull requests trigger linting, building, and testing\n- Releases are automatically published to npm\n\n## License\n\nvForm is licensed under the MIT License. See the LICENSE file for more information.\n","readmeFilename":"README.md"}