{"_id":"@wolfden-ui/form","_rev":"28-add9bc97661c1c87f98f29615c7c74db","name":"@wolfden-ui/form","dist-tags":{"latest":"0.0.32"},"versions":{"0.0.4":{"name":"@wolfden-ui/form","version":"0.0.4","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.4","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"512a020a941f387bfb2cf0af6b80a91a1be4d0d6","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.4.tgz","fileCount":46,"integrity":"sha512-LxoPm8KrTSt55wpzpbJoDJRlgfV5xZ59xkG8ZMGxphlZf6QLbaO7tf95qfe7yq+V8So7VptUiDkUMSWpdiAU4g==","signatures":[{"sig":"MEQCIElpYNBSs3ix1XKA6SNy85b8RY1JfZOlmmTRdBagEwkPAiA+zEAfWbTI9WscyFKowuI+2ncvbkkl35xnayLv93xKoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":91753},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"c266446042a7f8b8ed221b8d2f93b7b6e244ffd1","scripts":{"build":"tsc","prettier":"prettier --write \"src/**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is wolfden ui","directories":{},"_nodeVersion":"18.19.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.2.0","react-dom":"^18.2.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.4_1720930487379_0.6394462915223198","host":"s3://npm-registry-packages"}},"0.0.5":{"name":"@wolfden-ui/form","version":"0.0.5","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.5","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"af76bbb1ac12ee1c8f836e2dd2c6e51f328975aa","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.5.tgz","fileCount":48,"integrity":"sha512-IJkKHCAGErpssv5+dR3+VjV5agwYWMwuMcmhu8cRPY4Dl5qyKv+v6uPDwsoYNu0uq65HbTB1g/voxv+Y6O9s6A==","signatures":[{"sig":"MEUCIAjTTVJCOkblvZVxrjP5FFgFSDmrD3r2//S5w2O2XKsdAiEAnt02Nhtuf2+DDOo1cLiFz9pxVP2oXv390j2ZaHyWsh4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":90088},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"52f70a4f9e456969a1cc64cbfd10c07ac66c6462","scripts":{"build":"tsc","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.5_1721059651392_0.19765295090024937","host":"s3://npm-registry-packages"}},"0.0.6":{"name":"@wolfden-ui/form","version":"0.0.6","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.6","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"2020774a5e4f80206b5f6f98e2a50d60fc753aaf","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.6.tgz","fileCount":50,"integrity":"sha512-Uzwu91WLkTK7lMAtEmhZGLeLEmyz2yHF60lq5ulERuTd4iweAt1vBTlgWsYY2aY840wjlOVFpgxXneblF8UHHg==","signatures":[{"sig":"MEUCIB9F5k4TMmwIKATvwfRo/eloS40NiRITExZb1Ppze60EAiEA73VPbcb8GVmBsm6HW3L3r2vQHpJ0uU1/8PDKK8fHWEc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":167124},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"451f0b01422708c552a80dd7e7c77b72e7dafa5e","scripts":{"build":"tsc","prettier":"prettier --write \"**/*.{ts,tsx}\"","build:watch":"tsc --watch"},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.6_1724811918151_0.781474289269511","host":"s3://npm-registry-packages"}},"0.0.7":{"name":"@wolfden-ui/form","version":"0.0.7","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.7","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"1e4d6a5d86b2234e3f054b223d7ecb8f779a052b","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.7.tgz","fileCount":50,"integrity":"sha512-yi3EI5v0Ni9ADkUaEXCLJDU62HLnBsYsb0O6Ic1uAa9OgrK1ZBGWcG9E9Kgu0tP1A4EEwwVxLRgYVxWS/ZKllA==","signatures":[{"sig":"MEQCIHIcUxlWCkWl2R3Ciwvjf44dNuO5kHrD8PEY46HanRIXAiByHC+YY/1fE+w2FOKHbJbg6x6YDIDv+Su2F9cNZMntOw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":140656},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"451f0b01422708c552a80dd7e7c77b72e7dafa5e","scripts":{"build":"npx tsc -p .","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.8.2","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"20.17.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.7_1726455292733_0.3993817433041489","host":"s3://npm-registry-packages"}},"0.0.8":{"name":"@wolfden-ui/form","version":"0.0.8","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.8","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"577a66ad2492064960c218765341b04fc0a4f0a4","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.8.tgz","fileCount":50,"integrity":"sha512-01yoh08BKIk/Kiafrx7y6z33yr0G7j7Tn1BG/PP5rXFyacmmF73F/8jfCp3WrK2enq9b8Kwi1zOaCZomPynXtQ==","signatures":[{"sig":"MEUCIHHiP/RfRmGmBHTvfiQvLuZDQXmMRJIYfH5uz0ocZQsxAiEA+2sfg6D1x4hybr1pTc9NuuDCkIpj8FcuHVLoPrCYcqU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":167048},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"451f0b01422708c552a80dd7e7c77b72e7dafa5e","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.8_1729279320450_0.04662144381718458","host":"s3://npm-registry-packages"}},"0.0.9":{"name":"@wolfden-ui/form","version":"0.0.9","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.9","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"b4081109b407be7767b936752f0d6cc28025f8fc","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.9.tgz","fileCount":50,"integrity":"sha512-N7wEsEPlppo5689TVQQswaxkTl6WCpQ/LODHrvrK/mgqEYu9O0pPr/neyGjz2/hMqun8W4P5oUp/dAJKfJuVIQ==","signatures":[{"sig":"MEYCIQDD97mtB2touxrZRWXeNPcyvGDDzgaeAR7ZGuWP7kV+4gIhAPm6Zrq4KpsPpN9VMl39iOr8cR8n8BqoFl0nIAt/DyWI","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166510},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7c042b367c6049d354466bd60f576102f3ad9996","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.9_1733251643692_0.3743927856086231","host":"s3://npm-registry-packages"}},"0.0.10":{"name":"@wolfden-ui/form","version":"0.0.10","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.10","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"8f20a21891025b50ed8bd6f035da81cbd0c3bd24","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.10.tgz","fileCount":50,"integrity":"sha512-N0IveD3qV8t3zspZIrwMHPCJnGf3ikJ1z0k5tPAM0dXubF2YnFVlBwmaVgsEXWsUT4MVz738Efup811/GlFXaw==","signatures":[{"sig":"MEYCIQCXjhzfgdNqdriayUyoCIB26f7DkIQo8jQyucf7e9KFBQIhAOyoSMtPZQCLgCYa1oTE+nlN2xLRSrCSIWFM1WYvwlXl","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166535},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7c042b367c6049d354466bd60f576102f3ad9996","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.10_1733427492948_0.7248156678838464","host":"s3://npm-registry-packages"}},"0.0.11":{"name":"@wolfden-ui/form","version":"0.0.11","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.11","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"c6e062700f3739ea22a470d7b6e076e89f070193","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.11.tgz","fileCount":50,"integrity":"sha512-WLy0YYD5JqVie0FCnjFwMa5Rpp9Z/DmR2IByoT7hkuM4LUwbRaHaFqSxeLtJXsGmlhOlmOT+T2jpl/aAhMN40Q==","signatures":[{"sig":"MEQCIFqIh1FSVmmfGKiex7ecdPFBnP+j00DNU3N8ZcRhi8ApAiAH891kuj0lwfPGNdiJWc8xCbEIfgnkwnXw55c5TZ68QQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":166536},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"17d1d438386528219f051b7f5fdc55d355797dd3","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.11_1733427563106_0.5122027353388658","host":"s3://npm-registry-packages"}},"0.0.12":{"name":"@wolfden-ui/form","version":"0.0.12","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.12","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"09d83e80cfd3b4ccb37ee8b27b5cb3d8aa42e7fe","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.12.tgz","fileCount":50,"integrity":"sha512-iBAmrILZXkTp/rAasQ0p2GEIcyE+mboM9iq5qy2uTrNyLPTo9SOXZz5FmOIMD2428mRjwuOZu0Z6kkYety2zew==","signatures":[{"sig":"MEUCIAYWR1sqqdHUQsUk3AETW1aqJzId/fUeEajVavao9rBeAiEAvnne7LPRLspfTU3+CcHRC7NLYKlC39+XFrYmc8UsCxA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":133821},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"17d1d438386528219f051b7f5fdc55d355797dd3","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.12_1733759331671_0.14512583730239936","host":"s3://npm-registry-packages-npm-production"}},"0.0.13":{"name":"@wolfden-ui/form","version":"0.0.13","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.13","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"2d736b013c8253dfa8498e8ab5d5c288d899c1ba","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.13.tgz","fileCount":50,"integrity":"sha512-WSVMsHU0MTbfhFzDnE6hTxFoqn+6eT/g8HoM3cytgrJI1eYFY52PVjXLlXX2RAItO6P2hBkscHc3mf/LrjfveQ==","signatures":[{"sig":"MEUCIQC52lHDZ5TD+0BHxroZxdPkkHn6N2jxD0ybJNfJCS7ODgIgUPqouoQXz6YS/CjEpYnqXzH5aozYi615xgW74H8zyY4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":133997},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"2f283507f57041fcb41216e93fbf5ac3493b07e7","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.13_1734367498960_0.31550446491209105","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@wolfden-ui/form","version":"0.0.14","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.14","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"dceb05e5a0a65814979387e45e43117151181fea","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.14.tgz","fileCount":50,"integrity":"sha512-AJNp1U0xz62D4euo91orLmVZNUCjItyggiUrbJQBhj4kODk085h+TmREK5LQthK9FFbrWmtJCJvs7zxPloQMiw==","signatures":[{"sig":"MEYCIQCpP3rC12Mhp3Kj8bHbUqgLRLtQtefNhkeEBrz5sJSF5wIhAI84wM6h4uyVZZRCkV30fEZPT3/6MlRUkFuso/moJU/l","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":134062},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"587dc440e66cb5afe7426bb3296aa5a885d904f8","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0","react-dom":"^18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.14_1734633919957_0.3669706999071698","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@wolfden-ui/form","version":"0.0.15","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.15","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"afb227772b4227119bbbd6617d068e32903a80dc","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.15.tgz","fileCount":50,"integrity":"sha512-jfVVbOutJMOc8VKrcM3/ZFfOU/wepktizXsTcGNsMGIDBwwmPbq7Qq1mGjsyBm8i8wNU50l0O5VkIuNKxvNJ0g==","signatures":[{"sig":"MEYCIQC9ywDH4pQhOoCX3Kt5twDQYyRcuGkdg6cUTQt7ftn8KQIhANIyqKgOb7gwpVe8LVNYxwQKgZLSGeXU7Fqx8GuPGu5D","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128761},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"140c7b11d7d66b81790a67e5e456f5b19f918925","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.15_1741978586620_0.7163511037204664","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@wolfden-ui/form","version":"0.0.16","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.16","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"5a3403dd1d3ce66bd7dd18b985b37fb200d5ddb0","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.16.tgz","fileCount":50,"integrity":"sha512-MrexzC77aGs1MU+S/VWHQKmP1aeCiilFp9oXig1sSEHn7f8P6GSlEy+9PeUjQOpmivfKJxocp3my7ypzYbNT4w==","signatures":[{"sig":"MEQCIGg6rycmwXVPC5bu1l+dv0dgr3o2uMJveyaq9j4BC2EpAiBFVyXMDlNG8FbVkyeccqWf7VAYlUd6igX9PkQSaxYrxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130135},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"fcf0f93d9e6cf68313784e508802de4d580323d1","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.16_1743011885582_0.875846045286208","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@wolfden-ui/form","version":"0.0.17","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.17","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"7d582b2a04b1855f2fb4e54efcecb94cfc89f0c3","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.17.tgz","fileCount":50,"integrity":"sha512-XP+E47XeNfTRjeVwhG0KtW9c2uIE5LQYqWf+ASy3KeoMXa1AOz03y9Miivjb6/8Y4Er2TRxdkquSvtinCUHX/w==","signatures":[{"sig":"MEUCIHoXyEhB18oB+6WBv7ZFnWMkbT0M6slr7FTYUOfC0/UjAiEAx6rejDJlqobSIUkafK32O3KnY64tij3JJr/mOddYRBs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130927},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"724a6719f9c422e0bf8f54659fce59b7e8bde433","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.17_1743013507814_0.6256970329692253","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@wolfden-ui/form","version":"0.0.18","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.18","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"ae8ca7fb6a3f674b44a8e3e1270aafde28645a01","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.18.tgz","fileCount":50,"integrity":"sha512-UoH2UY21bfoe8u8usCpCWMwFmx8Pt0mMW+vOixzyTHwQuEX9MYL/26G/+6n2CKnWYiWl8qtG4vbLLttA7cUOtA==","signatures":[{"sig":"MEQCIAxGEjjZXteRwdNe/7BiWWJh+EgDiIPFFZESpKTDeUHkAiB6qMhYfoEBKEvclrGaJf1qS9FoUb8L1pBrACZUWRS5FA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131237},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"3f4d0a9ea28567b3a12394c3e643618e8de043bd","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.18_1744724824361_0.8015576552509154","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@wolfden-ui/form","version":"0.0.19","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.19","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"5c66e13a40b9c0c5ac0ad09cc125e4a3b6a86c3e","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.19.tgz","fileCount":50,"integrity":"sha512-viu6++F2ne/hzePIvWJ35G7xWrMpxSgPyz5vAw5iU4e41LrbCa50tUM4fG1cq6ZzMXWXs8FE2hJy/4lWz61gtw==","signatures":[{"sig":"MEUCIQCITisJLI/TT2yaPtkUxQ7kSp9gnSPDb6CW6gMg1CbCLgIgGbuDLhqLdikjPnLBzewENqYHg3SrlWwlwC81h8BQbIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130367},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"bdf76899967eaf2fb7b447a947892ca329c41811","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.19_1746636949545_0.11398690743506168","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"name":"@wolfden-ui/form","version":"0.0.20","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.20","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"b61262de36e9ad90a110dc8b274699a9d16a6f69","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.20.tgz","fileCount":50,"integrity":"sha512-lTxbkPKEFRATDxkB0CEoph9HgPiFe+G1LlPOLDk6OVv1PHZnVznt0vre2vaLVg6+nkniLUAh4F1+B4AZnfVq/g==","signatures":[{"sig":"MEUCIQDAhsIQsiwVREmedr/jehCFvOBCbZkF5DgTGJkBn3i1zgIgQBaYSu/SMDloq7vVYO7eCdXUnUG9i/Lkhc4ZfyiNi7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130306},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"38ab8f8b0705e436b7046a19071ec23b7b9eeb3f","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.20_1748268995707_0.9093229922117181","host":"s3://npm-registry-packages-npm-production"}},"0.0.21":{"name":"@wolfden-ui/form","version":"0.0.21","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.21","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"625424afd087c550741a50ac4ef4b7d353eff239","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.21.tgz","fileCount":50,"integrity":"sha512-jwXx0QwCivqR5W7ieS3iRI2d2SJi+G/aY67LpjbOczQDMD9ZAfqm+PcxSsyM/T9P5N5sW29YQVcDaXsjHTJXbg==","signatures":[{"sig":"MEUCIQDRPlTBkssc09gnSE5lo+11jtgZG7Z9tRl8xlCb/2wTfQIgXjxI0gIof6FY0ujc6duXu1y6b0rZI1yP+kszMcVx134=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130370},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"4f95251676f5b3bd41b1dc1853e90a11fff9de87","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.21_1749650756032_0.08075752120319657","host":"s3://npm-registry-packages-npm-production"}},"0.0.22":{"name":"@wolfden-ui/form","version":"0.0.22","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.22","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"93a9b9ac63c86fa74b5f746f4c3385ff656a1708","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.22.tgz","fileCount":50,"integrity":"sha512-0x9KmTHr0qFz7RKhOkX8HSrIOP5UOjhjDJsXPPSvuTUmDbhqd7N8wnRorv0ggcicY/8mOvVChYKPvRdScEZXdg==","signatures":[{"sig":"MEUCIQCntmBc3r2ONrVoW5rmCwSwd5T8csnXxgI6QiUqBMmdZgIgamObcyXByo3z3poU4uetPhGstFM5XfYwvCif1wSUtkk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130377},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"8ce7b05225c5e5abefe54d1f8c1a2be792d7ba76","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.22_1749651039895_0.8322086609548451","host":"s3://npm-registry-packages-npm-production"}},"0.0.23":{"name":"@wolfden-ui/form","version":"0.0.23","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.23","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"f7b511efe6682365c6cb97edd4f98efae8f4fb2c","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.23.tgz","fileCount":50,"integrity":"sha512-5X7Eo7DshqJzM+3ZF/qC/NVBOjRyqq10h8yZT4mj2Go/3PSpEX1odNLKQHrwbvhMP9YnML/D6wS24swQfaRzQw==","signatures":[{"sig":"MEQCIBJb8M189FFAVjdGHpq6i/GvYucJC8BcTo3SQYgY4juwAiBKqFCxV4VQ1khSS6Jhevoo+lvjowy//VM+kMWTgLAu0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":130378},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"8ad5c9c5c6a5677a9e93604e522e2d865218d18d","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.23_1749652984244_0.4330511459627684","host":"s3://npm-registry-packages-npm-production"}},"0.0.24":{"name":"@wolfden-ui/form","version":"0.0.24","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.24","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"827f7e34dbbd7a4b11113f485f9e45b06e721882","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.24.tgz","fileCount":50,"integrity":"sha512-ISVLFLrO6GiD+gFHkLeiRGazVcFZ737QErDIS4MqZoooT/EcoqVrA3a5riG9ZesdVI9cmBWQg2P/m35LeeSHug==","signatures":[{"sig":"MEUCIQD9cqt+JJxvPAenMGtomkOvyP1O6x6p0FYdNj5CLQE9dAIgJ3KWV2QlMxsf8qlUqskiZGu89+4rG5OAYZGmOU5f4Qw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":131443},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"0eb496ae80a6e7340bcc0450080d1f0b55a029be","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.2.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"18.19.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.24_1749759404529_0.8834600711467684","host":"s3://npm-registry-packages-npm-production"}},"0.0.26":{"name":"@wolfden-ui/form","version":"0.0.26","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.26","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"217dfdbcbec376147f5c71dd1a61c28ae90d5d8f","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.26.tgz","fileCount":74,"integrity":"sha512-Km48hnbfs692wjbWHv6ZjpVsKbjc3pIoIzTCdfV4XtTlGU9wSnZs8cWxk/SOuDHSXsPZ19iuo9J1j5HEneZ/rw==","signatures":[{"sig":"MEUCID0DMElUi7WIr6M/2az5c7+ir87J0ucXamMdYghin1VOAiEAxhPm/NP4r9vMUg4QTeH/LzaML10+a0ORiERGe1HgWag=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209916},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"8b64fae0f53e8d13f8bbadd4ad0ad25c45340a59","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"11.5.1","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"24.7.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.26_1758558324403_0.06644024748679178","host":"s3://npm-registry-packages-npm-production"}},"0.0.27":{"name":"@wolfden-ui/form","version":"0.0.27","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.27","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"6342ebc6e9f508275a64dab989500ad78d12a7bb","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.27.tgz","fileCount":74,"integrity":"sha512-QXv1wf5R13SWPu0rq2ErUzVfyHWgvrmF+KAjgWvBwHfMmff8SybHJnNUQ89gaDkZA4Oeq/VbkqCcZOO0GmQSaQ==","signatures":[{"sig":"MEUCIQCXgwvMn43PTyd30Ni+m6g2Ud7c6tnRhktOeG7tg9TangIgb9otX48NP6kYDkh9NhICR56yx3gdK/a5QpqMpDisxEg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209916},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"8b64fae0f53e8d13f8bbadd4ad0ad25c45340a59","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"11.5.1","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"24.7.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.27_1758563721596_0.8219250729351588","host":"s3://npm-registry-packages-npm-production"}},"0.0.28":{"name":"@wolfden-ui/form","version":"0.0.28","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.28","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"98a2b08dde0864f5584634be8823525fa5b616ed","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.28.tgz","fileCount":74,"integrity":"sha512-veWGRFKElNDO9OLx+N0Dy7ZiYvnjSdsrmc6BWGpMxllXy+kGgQFZrPxPbo0grPRcVoQR2BxFs8xqamYX1RXpJw==","signatures":[{"sig":"MEUCIQDYituE8jPtKcPUH8xc/d/YWuICwEWvMoOJi4wj0Gt5HgIgbni9CjiGEC9SNvjYqkxImqbg2y9y8et32gL+6DeLe+Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210032},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"8b64fae0f53e8d13f8bbadd4ad0ad25c45340a59","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"11.5.1","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"24.7.0","dependencies":{"@wolfden-ui/system":"^0.0.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18","react-dom":"^18"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.28_1758913727914_0.03497111200070435","host":"s3://npm-registry-packages-npm-production"}},"0.0.29":{"name":"@wolfden-ui/form","version":"0.0.29","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.29","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"97eb21ce7cc149f6209c34470838419593dfd107","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.29.tgz","fileCount":74,"integrity":"sha512-VTMePZOu1XjDnhUHjeDcC3KyGGq8LhZP+C9G/wmswu//qFHibWzo7GqNeeTjF74bliw40LvPmkc2pSnj31idOQ==","signatures":[{"sig":"MEUCIH3adIsK9brXnk1pQCYS9qO6OnodQT16IAArSJyZ3gECAiEAlUVtvq/uNEpbrwM7cHB034KU3E89QYOc0d53nKUtu4g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":210063},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"02921f455cb837e444beb070a805b831bef7903a","scripts":{"build":"tsc","start":"tsc -w","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.9.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@wolfden-ui/system":"^0.0.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^18.3.3"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.29_1768577255851_0.7158036750210066","host":"s3://npm-registry-packages-npm-production"}},"0.0.30":{"name":"@wolfden-ui/form","version":"0.0.30","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.30","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"d47fb70d6b3640bbf580b3dce3d7f34dfe9ee22c","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.30.tgz","fileCount":52,"integrity":"sha512-Eiykt5pAQUXcOpxhNHoyx3nS5h/R9S5gf7aTCIflSNdFecINplBtzqAgQUJRlI57+BT4C3+KlkX4R503zibp9Q==","signatures":[{"sig":"MEUCIQD5C1Dli2Jzzd/QCq/2SVDT8lUQEt8gSd2KJ+o3KnZUpQIgSBwGgCDUQUps8PoaZRvw8kv97F5fMs7KTk0Req6lC5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265013},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"02921f455cb837e444beb070a805b831bef7903a","scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","start":"tsup src/index.ts --format cjs,esm --dts --watch","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.9.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@wolfden-ui/system":"^0.0.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^19.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.30_1768578448337_0.48803133151026845","host":"s3://npm-registry-packages-npm-production"}},"0.0.31":{"name":"@wolfden-ui/form","version":"0.0.31","author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","_id":"@wolfden-ui/form@0.0.31","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"dist":{"shasum":"609a5b7ff8c2275076de56a455b9bad8c1ca7962","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.31.tgz","fileCount":52,"integrity":"sha512-8/ArBW1yKEdXq3YZuGQPwJQ+7CU1HhQwOpxvH3jHNAL8KmCLqzXcynQv6lpnv1liqgKvGKpi9ldCNo6/kQUEpw==","signatures":[{"sig":"MEUCIQCj/N5BmgWQIRWh0DHOoPeawcSbE8aoOgrCJ2WpTfEasAIgeLRzIq+lLbR8MJDPJV5yn85Kk9xEYQONAMeCx6k3EKk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265013},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"60c0a1a94601ae3255de4a1bf6284274ffaf51da","scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","start":"tsup src/index.ts --format cjs,esm --dts --watch","prettier":"prettier --write \"**/*.{ts,tsx}\""},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"_npmVersion":"10.9.3","description":"This is the form package for Wolfden UI","directories":{},"_nodeVersion":"22.19.0","dependencies":{"@wolfden-ui/system":"^0.0.19"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.5.2","@types/node":"^20.14.9","@types/react":"^19.0.0"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/form_0.0.31_1768589262947_0.061798553032598846","host":"s3://npm-registry-packages-npm-production"}},"0.0.32":{"name":"@wolfden-ui/form","version":"0.0.32","description":"This is the form package for Wolfden UI","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","publishConfig":{"access":"public"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts","start":"tsup src/index.ts --format cjs,esm --dts --watch","prettier":"prettier --write \"**/*.{ts,tsx}\""},"author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","devDependencies":{"@types/node":"^20.14.9","@types/react":"^19.0.0","tsup":"^8.0.0","typescript":"^5.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0","react-dom":"^18.0.0 || ^19.0.0"},"dependencies":{"@wolfden-ui/system":"^0.0.19"},"_id":"@wolfden-ui/form@0.0.32","gitHead":"60c0a1a94601ae3255de4a1bf6284274ffaf51da","_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-lOrjoHlrEQiUxRu5jr4iOf3nSd5IeQRk57unJ8bADuuozLKBwX95MkbDU3kWzpx7vtYBKQOEROavh/ujSZWQ3Q==","shasum":"8321659230f90256d76680047790ce0d6a1dd481","tarball":"https://registry.npmjs.org/@wolfden-ui/form/-/form-0.0.32.tgz","fileCount":52,"unpackedSize":264680,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDwku3Zqsmml90tQFO6d15NQrtLhUJnzFsfN406hjWM6QIgGuTKa7Pytejtjq4QLT/jXjUqsIGjERkuEsVOSmLgBtQ="}]},"_npmUser":{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"},"directories":{},"maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/form_0.0.32_1768589326935_0.08648169355826107"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-14T04:14:47.294Z","modified":"2026-01-16T18:48:47.199Z","0.0.4":"2024-07-14T04:14:47.563Z","0.0.5":"2024-07-15T16:07:31.584Z","0.0.6":"2024-08-28T02:25:18.296Z","0.0.7":"2024-09-16T02:54:52.905Z","0.0.8":"2024-10-18T19:22:00.626Z","0.0.9":"2024-12-03T18:47:23.946Z","0.0.10":"2024-12-05T19:38:13.131Z","0.0.11":"2024-12-05T19:39:23.273Z","0.0.12":"2024-12-09T15:48:51.944Z","0.0.13":"2024-12-16T16:44:59.169Z","0.0.14":"2024-12-19T18:45:20.157Z","0.0.15":"2025-03-14T18:56:26.806Z","0.0.16":"2025-03-26T17:58:05.815Z","0.0.17":"2025-03-26T18:25:08.021Z","0.0.18":"2025-04-15T13:47:04.552Z","0.0.19":"2025-05-07T16:55:49.787Z","0.0.20":"2025-05-26T14:16:35.911Z","0.0.21":"2025-06-11T14:05:56.216Z","0.0.22":"2025-06-11T14:10:40.105Z","0.0.23":"2025-06-11T14:43:04.416Z","0.0.24":"2025-06-12T20:16:44.690Z","0.0.26":"2025-09-22T16:25:24.609Z","0.0.27":"2025-09-22T17:55:21.789Z","0.0.28":"2025-09-26T19:08:48.091Z","0.0.29":"2026-01-16T15:27:36.006Z","0.0.30":"2026-01-16T15:47:28.476Z","0.0.31":"2026-01-16T18:47:43.087Z","0.0.32":"2026-01-16T18:48:47.078Z"},"author":{"name":"Nazareno Ciancaglini","email":"nazareno.ciancaglini@gmail.com"},"license":"ISC","description":"This is the form package for Wolfden UI","maintainers":[{"name":"nazsaciank","email":"nazareno.ciancaglini@gmail.com"}],"readme":"# Wolfden UI Form\n\n## Descripción\n\n`@wolfden-ui/form` es una biblioteca para gestionar formularios en aplicaciones `React`, ofreciendo una funcionalidad reactiva similar a la que se utiliza en `Angular`.\n\n## Instalación\n\nPuedes instalar la biblioteca utilizando npm o yarn:\n\n```bash\nnpm install @wolfden-ui/form\n```\n\n```bash\nyarn add @wolfden-ui/form\n```\n\n## Uso\n\n### Controlador\n\nEl hook `useFormControl` permite gestionar el estado de inputs, selects, textareas y otros componentes de React como `Dropdown`. Este hook devuelve un objeto `FormControl`, que te permite interactuar con el valor y estado del campo.\n\n```tsx\nexport function Input({}: Props) {\n\tconst input = useFormControl({ value: \"\" })\n\n\treturn <input value={input.value} onChange={(ev) => input.setValue(ev.target.value)} />\n}\n```\n\n### Argumentos\n\n| Propiedad              | Tipo                  | Requerido | Valor por defecto | Descripción                                        |\n| ---------------------- | --------------------- | --------- | ----------------- | -------------------------------------------------- |\n| schema                 | `FormControlSchema`   | Sí        |                   | Esquema de configuración del control.              |\n| schema.value           | `V`                   | Sí        |                   | Valor inicial del control.                         |\n| schema.disabled        | `boolean`             | No        | `false`           | Indica si el control está deshabilitado.           |\n| schema.validators      | `ValidatorFn[]`       | No        | `[]`              | Lista de funciones de validación síncronas.        |\n| schema.asyncValidators | `AsyncValidatorFn[]`  | No        | `[]`              | Lista de funciones de validación asíncronas.       |\n| schema.mask            | `MaskFn`              | No        | `null`            | Función para aplicar una máscara al valor.         |\n| schema.parse           | `ParseFn`             | No        | `null`            | Función para transformar el valor antes de usarlo. |\n| options                | `UseFormControlProps` | No        | `{}`              | Opciones adicionales de configuración.             |\n| options.name           | `string`              | No        | `\"\"`              | Nombre del control.                                |\n| options.control        | `FormControl`         | No        |                   | Control existente para extender.                   |\n| options.debounce       | `number`              | No        | `500`             | Tiempo de espera antes de aplicar el cambio.       |\n\n### FormControl\n\nEl objeto `FormControl` proporciona una API rica para gestionar el estado del formulario.\n\n| Propiedad          | Tipo                                                                  | Descripción                                               |\n| ------------------ | --------------------------------------------------------------------- | --------------------------------------------------------- |\n| name               | `string`                                                              | Nombre del control.                                       |\n| value              | `V`                                                                   | Valor actual del control.                                 |\n| parsed             | `any`                                                                 | Valor parseado según la función de parseo.                |\n| status             | `ControlStatus`                                                       | Estado actual del control `VALID`, `INVALID` o `PENDING`. |\n| error              | `ValidatorError \\| null`                                              | Error de validación actual, si existe.                    |\n| isTouched          | `boolean`                                                             | Indica si el control ha sido tocado.                      |\n| isDirty            | `boolean`                                                             | Indica si el valor del control ha sido modificado.        |\n| isDisabled         | `boolean`                                                             | Indica si el control está deshabilitado.                  |\n| isIndeterminate    | `boolean`                                                             | Indica si el valor es indeterminado.                      |\n| isValid            | `boolean`                                                             | Indica si el valor es válido.                             |\n| isInvalid          | `boolean`                                                             | Indica si el valor es inválido.                           |\n| isPending          | `boolean`                                                             | Indica si la validación está pendiente.                   |\n| setValue           | `(value: V) => void`                                                  | Establece un nuevo valor para el control.                 |\n| reset              | `() => void`                                                          | Reinicia el control a su estado inicial.                  |\n| validate           | `() => void`                                                          | Ejecuta las validaciones síncronas de forma manual.       |\n| asyncValidate      | `() => void`                                                          | Ejecuta las validaciones asíncronas de forma manual.      |\n| setValidators      | `(validators: ValidatorFn[], revalidate?: boolean) => void`           | Establece nuevas funciones de validación.                 |\n| setAsyncValidators | `(asyncValidators: AsyncValidatorFn[], revalidate?: boolean) => void` | Establece nuevas funciones de validación asíncrona.       |\n| setMask            | `(mask: MaskFn, emitSelf?: boolean) => void`                          | Establece una nueva función de máscara.                   |\n| setParse           | `(parse: ParseFn, emitSelf?: boolean) => void`                        | Establece una nueva función de parseo.                    |\n| setError           | `(error: ValidatorError \\| null) => void`                             | Establece un error manualmente.                           |\n| enabled            | `() => void`                                                          | Habilita el control.                                      |\n| disabled           | `() => void`                                                          | Deshabilita el control.                                   |\n| markAsDirty        | `() => void`                                                          | Marca el control como modificado.                         |\n| markAsPristine     | `() => void`                                                          | Marca el control como no modificado.                      |\n| markAsTouched      | `() => void`                                                          | Marca el control como tocado.                             |\n| markAsUntouched    | `() => void`                                                          | Marca el control como no tocado.                          |\n\n### Controlador de Errores\n\nExisten tres formas principales de gestionar los errores en los formularios:\n\n1. **Validadores Síncronos y Asíncronos**: Los `validators` y `asyncValidators` son funciones que pueden devolver un `ValidatorError` si se detecta un error, o `null` si no hay ningún problema. Estas funciones se basan en el valor actual del campo, el estado del formulario, y pueden recibir argumentos adicionales según se defina en los tipos `ValidatorFn` y `AsyncValidatorFn`.\n\n#### Ejemplo de Validadores\n\nPrimero, creamos los validadores necesarios para nuestro controlador:\n\n```ts\nexport const required: ValidatorFn = (value: any) => {\n\tif (value === null || value === undefined || value === \"\") return { required: true }\n\treturn null\n}\n\nexport const email: ValidatorFn = (value: any) => {\n\tif (value === null) return { email: true }\n\tif (typeof value !== \"string\") return { email: true }\n\tif (!/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/.test(value)) return { email: true }\n\treturn null\n}\n\nexport const validateEmailExist: AsyncValidatorFn = async (value: any) => {\n\tconst isExist = await validateInServerIsEmailExist(value)\n\tif (isExist) return { emailIsExist: true }\n\treturn null\n}\n```\n\nLuego, añadimos estos validadores al controlador de nuestro formulario:\n\n```tsx\nimport * as Validators from \"./validators\"\n\nfunction InputEmail({}: Props) {\n\tconst input = useFormControl({\n\t\tvalue: \"\",\n\t\tvalidators: [Validators.required, Validators.email],\n\t\tasyncValidators: [Validators.validateEmailExist],\n\t})\n\n\treturn <input type=\"email\" value={input.value} onChange={(ev) => input.setValue(ev.target.value)} />\n}\n```\n\n2. **Asignación Manual de Errores**: Además de los validadores, puedes manejar los errores de manera manual utilizando el método `setError`. Esto es útil en casos específicos donde necesitas aplicar una lógica adicional para establecer un error.\n\n```tsx\nimport * as Validators from \"./validators\"\n\nfunction InputEmail({}: Props) {\n\tconst input = useFormControl({\n\t\tvalue: \"\",\n\t\tvalidators: [Validators.required, Validators.email],\n\t\tasyncValidators: [Validators.validateEmailExist],\n\t})\n\n\tuseEffect(() => {\n\t\tif (input.isInvalid) return\n\t\tconst isJoe = input.value === \"joe@doe.com\"\n\t\tif (isJoe) input.setError({ isJoe: true })\n\t}, [input.value])\n\n\treturn <input type=\"email\" value={input.value} onChange={(ev) => input.setValue(ev.target.value)} />\n}\n```\n\n### MaskFn y ParseFn\n\nEn `@wolfden-ui/form`, las funciones `MaskFn` y `ParseFn` son herramientas poderosas que permiten manipular el valor de los campos de formulario antes de que se guarde en el estado o se procese de alguna manera. Estas funciones son útiles para asegurar que los datos capturados por el usuario estén en el formato correcto y para transformar los datos antes de su validación o almacenamiento.\n\n#### 1. **MaskFn: Aplicación de Máscaras a los Valores**\n\n**`MaskFn`** es una función que se utiliza para modificar el valor de entrada del usuario en tiempo real, antes de que se almacene en el estado del formulario. Esto es útil en casos donde se necesita que el valor siga un formato específico, como números de teléfono, códigos postales o fechas.\n\n##### Ejemplo de `MaskFn`\n\nAquí tienes un ejemplo de cómo se puede utilizar `MaskFn` para formatear un número de teléfono:\n\n```ts\nexport const phoneMask: MaskFn = (value: string) => {\n\tconst cleaned = (\"\" + value).replace(/\\D/g, \"\") // Elimina todo excepto dígitos\n\tconst match = cleaned.match(/^(\\d{3})(\\d{3})(\\d{4})$/)\n\n\tif (match) {\n\t\treturn `(${match[1]}) ${match[2]}-${match[3]}`\n\t}\n\n\treturn value\n}\n```\n\nEn este ejemplo, `phoneMask` toma un valor de entrada y lo convierte en un formato de número de teléfono estándar, como `(123) 456-7890`. Esta máscara se aplicaría cada vez que el usuario introduce un número en el campo, garantizando que el formato sea consistente.\n\n##### Uso de `MaskFn` en un Formulario\n\n```tsx\nfunction PhoneNumberInput({}: Props) {\n\tconst phoneInput = useFormControl({\n\t\tvalue: \"\",\n\t\tmask: phoneMask,\n\t})\n\n\treturn <input type=\"text\" value={phoneInput.value} onChange={(ev) => phoneInput.setValue(ev.target.value)} />\n}\n```\n\nEn este ejemplo, el campo de número de teléfono aplicará automáticamente la máscara definida cada vez que el usuario introduzca un valor.\n\n#### 2. **ParseFn: Transformación de Valores de Entrada**\n\n**`ParseFn`** es una función que se utiliza para transformar el valor de entrada antes de que se valide o se almacene en el estado. A diferencia de `MaskFn`, que modifica el valor visible, `ParseFn` transforma el valor de una forma que puede no ser visible para el usuario, pero que es esencial para el procesamiento o almacenamiento de los datos.\n\n##### Ejemplo de `ParseFn`\n\nAquí tienes un ejemplo de cómo `ParseFn` puede usarse para convertir una cadena de texto en un número:\n\n```ts\nexport const parseToNumber: ParseFn = (value: string) => {\n\tconst number = parseFloat(value.replace(/,/g, \"\")) // Elimina las comas y convierte a número\n\treturn isNaN(number) ? null : number\n}\n```\n\nEn este caso, `parseToNumber` toma un valor de entrada que puede incluir comas como separadores de miles (por ejemplo, `1,234.56`) y lo convierte en un número flotante (`1234.56`).\n\n##### Uso de `ParseFn` en un Formulario\n\n```tsx\nfunction PriceInput({}: Props) {\n\tconst priceInput = useFormControl({\n\t\tvalue: \"\",\n\t\tparse: parseToNumber,\n\t})\n\n\treturn <input type=\"text\" value={priceInput.value} onChange={(ev) => priceInput.setValue(ev.target.value)} />\n}\n```\n\nEn este ejemplo, el campo de precio aceptará una entrada con formato de texto, pero al almacenarla, la convertirá en un número para su posterior uso en cálculos o validaciones.\n\n#### 3. **Uso Combinado de `MaskFn` y `ParseFn`**\n\nEs posible utilizar `MaskFn` y `ParseFn` conjuntamente para aplicar una máscara al valor visible y luego transformar ese valor antes de que se guarde en el estado.\n\n##### Ejemplo Combinado\n\n```tsx\nexport const currencyMask: MaskFn = (value: string) => {\n\treturn `$${value.replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\")}` // Aplica formato de moneda\n}\n\nexport const parseCurrency: ParseFn = (value: string) => {\n\treturn parseFloat(value.replace(/[$,]/g, \"\")) // Elimina símbolos de dólar y comas, y convierte a número\n}\n\nfunction CurrencyInput({}: Props) {\n\tconst currencyInput = useFormControl({\n\t\tvalue: \"\",\n\t\tmask: currencyMask,\n\t\tparse: parseCurrency,\n\t})\n\n\treturn <input type=\"text\" value={currencyInput.value} onChange={(ev) => currencyInput.setValue(ev.target.value)} />\n}\n```\n\nEn este caso, el campo de entrada mostrará un valor con formato de moneda mientras el usuario escribe (`$1,234.56`), pero almacenará el valor como un número flotante (`1234.56`) para ser utilizado posteriormente.\n\nSí, algunas de las propiedades de `FormControl` podrían beneficiarse de una explicación más detallada en la documentación, especialmente aquellas que no son tan intuitivas o que tienen un impacto significativo en el comportamiento del formulario. Aquí te proporciono una lista de propiedades que podrían necesitar más contexto, junto con una breve explicación y ejemplos:\n\n### 1. **`status`**\n\n**Descripción**: La propiedad `status` indica el estado actual del control. Este puede ser uno de varios valores como `VALID`, `INVALID`, o `PENDING`.\n\n**Ampliación Sugerida**: Explica cómo y cuándo cambian los estados, y cómo pueden afectar la lógica de la aplicación. Por ejemplo, `PENDING` se utiliza durante la validación asíncrona.\n\n**Ejemplo**:\n\n```tsx\nfunction StatusIndicator({}: Props) {\n\tconst input = useFormControl({ value: \"\" })\n\n\treturn (\n\t\t<div>\n\t\t\t<input value={input.value} onChange={(ev) => input.setValue(ev.target.value)} />\n\t\t\t<span>{input.status}</span>\n\t\t</div>\n\t)\n}\n```\n\nEn este ejemplo, el estado del control (`VALID`, `INVALID`, etc.) se muestra junto al campo de entrada.\n\n### 2. **`parsed`**\n\n**Descripción**: La propiedad `parsed` contiene el valor del campo después de haber sido procesado por `ParseFn`. Esto es útil si necesitas acceder al valor transformado para validaciones o cálculos adicionales.\n\n**Ampliación Sugerida**: Explica cómo se diferencia de `value` y cuándo es importante utilizar `parsed` en lugar de `value`.\n\n**Ejemplo**:\n\n```tsx\nfunction ParsedValueExample({}: Props) {\n\tconst input = useFormControl({\n\t\tvalue: \"1000\",\n\t\tparse: parseToNumber,\n\t})\n\n\treturn (\n\t\t<div>\n\t\t\t<input value={input.value} onChange={(ev) => input.setValue(ev.target.value)} />\n\t\t\t<p>Valor Parseado: {input.parsed}</p>\n\t\t</div>\n\t)\n}\n```\n\nEste ejemplo muestra cómo se utiliza `parsed` para obtener el valor numérico de una entrada que inicialmente es una cadena de texto.\n\n### 3. **`isTouched` y `isDirty`**\n\n**Descripción**:\n\n-   `isTouched` es una propiedad booleana que indica si el campo ha sido tocado (es decir, si el usuario ha interactuado con el campo al menos una vez).\n-   `isDirty` indica si el valor del campo ha sido modificado desde su valor inicial.\n\n**Ampliación Sugerida**: Explica la diferencia entre `touched` y `dirty`, y cómo estas propiedades pueden influir en la validación y el manejo de errores.\n\n**Ejemplo**:\n\n```tsx\nfunction InteractionExample({}: Props) {\n\tconst input = useFormControl({ value: \"\" })\n\n\treturn (\n\t\t<div>\n\t\t\t<input value={input.value} onChange={(ev) => input.setValue(ev.target.value)} onBlur={() => input.markAsTouched()} />\n\t\t\t<p>Tocado: {input.isTouched ? \"Sí\" : \"No\"}</p>\n\t\t\t<p>Modificado: {input.isDirty ? \"Sí\" : \"No\"}</p>\n\t\t</div>\n\t)\n}\n```\n\nEn este ejemplo, se muestra cómo `isTouched` y `isDirty` cambian en función de la interacción del usuario con el campo.\n\n### 4. **`isIndeterminate`**\n\n**Descripción**: La propiedad `isIndeterminate` se usa para indicar un estado intermedio en casos donde el valor del campo no puede ser determinado como completamente `checked` o `unchecked`. Es común en checkboxes que representan una selección parcial.\n\n**Ampliación Sugerida**: Explica cuándo y por qué utilizar `isIndeterminate`, especialmente en formularios con opciones múltiples o jerarquías de selección.\n\n**Ejemplo**:\n\n```tsx\nfunction IndeterminateExample({}: Props) {\n\tconst checkbox = useFormControl({ value: false })\n\n\tuseEffect(() => {\n\t\tcheckbox.setIndeterminate(true) // Se establece como indeterminado al iniciar\n\t}, [])\n\n\treturn (\n\t\t<div>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={checkbox.value}\n\t\t\t\tonChange={(ev) => checkbox.setValue(ev.target.checked)}\n\t\t\t\tref={(el) => {\n\t\t\t\t\tif (el) el.indeterminate = checkbox.isIndeterminate\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<p>Indeterminado: {checkbox.isIndeterminate ? \"Sí\" : \"No\"}</p>\n\t\t</div>\n\t)\n}\n```\n\nEste ejemplo muestra cómo se puede utilizar `isIndeterminate` para gestionar estados intermedios en un checkbox.\n\n### 5. **`enabled` y `disabled`**\n\n**Descripción**: Estos métodos permiten habilitar o deshabilitar un control de forma programática. Cuando un control está deshabilitado, no es editable ni se valida.\n\n**Ampliación Sugerida**: Explica cómo y cuándo se deben usar estos métodos, y cómo afectan a la validación y al envío de formularios.\n\n**Ejemplo**:\n\n```tsx\nfunction ToggleDisabledExample({}: Props) {\n\tconst input = useFormControl({ value: \"\", disabled: true })\n\n\treturn (\n\t\t<div>\n\t\t\t<input value={input.value} onChange={(ev) => input.setValue(ev.target.value)} disabled={input.isDisabled} />\n\t\t\t<button onClick={() => input.enabled()}>Habilitar</button>\n\t\t\t<button onClick={() => input.disabled()}>Deshabilitar</button>\n\t\t</div>\n\t)\n}\n```\n\nEn este ejemplo, los botones permiten al usuario habilitar o deshabilitar el campo de entrada.\n\n### 6. **`validate` y `asyncValidate`**\n\n**Descripción**: Estos métodos se utilizan para activar manualmente la validación síncrona y asíncrona del campo. Son útiles cuando necesitas forzar una validación fuera del ciclo de vida normal del formulario.\n\n**Ampliación Sugerida**: Explica cuándo es necesario llamar a estos métodos manualmente y cómo se integran con los validadores definidos.\n\n**Ejemplo**:\n\n```tsx\nfunction ManualValidationExample({}: Props) {\n\tconst input = useFormControl({\n\t\tvalue: \"\",\n\t\tvalidators: [Validators.required, Validators.email],\n\t})\n\n\treturn (\n\t\t<div>\n\t\t\t<input value={input.value} onChange={(ev) => input.setValue(ev.target.value)} />\n\t\t\t<button onClick={() => input.validate()}>Validar</button>\n\t\t\t{input.isInvalid && <p>Error: {input.error?.email ? \"Email no válido\" : \"Campo requerido\"}</p>}\n\t\t</div>\n\t)\n}\n```\n\nEste ejemplo muestra cómo se puede desencadenar la validación manualmente y manejar los errores resultantes.\n\n### `useFormGroup`\n\nEl hook `useFormGroup` es parte de la biblioteca `@wolfden-ui/form` y está diseñado para gestionar el estado y la validación de un formulario completo en React. Este hook devuelve un objeto `FormGroup` que ofrece varias utilidades para manipular y consultar el estado del formulario.\n\n### Argumentos\n\n```ts\nexport type FormGroupSchema<T extends object = any> = {\n\t[K in keyof T]: FormControlSchema<T[K]>\n}\n```\n\n| Propiedad        | Tipo                  | Requerido | Valor por defecto | Descripción                                                                           |\n| ---------------- | --------------------- | --------- | ----------------- | ------------------------------------------------------------------------------------- |\n| schema           | `FormGroupSchema`     | Sí        |                   | Define la estructura del formulario. Cada campo corresponde a un `FormControlSchema`. |\n| options          | `UseFormGroupOptions` | No        | `{}`              | Opciones adicionales de configuración.                                                |\n| options.debounce | `number`              | No        | `500`             | Tiempo de espera en milisegundos antes de aplicar el cambio al formulario.            |\n\n### `FormGroup`\n\nEl objeto `FormGroup` que se devuelve de `useFormGroup` contiene las siguientes propiedades y métodos:\n\n| Propiedad     | Tipo                                                | Descripción                                                                  |\n| ------------- | --------------------------------------------------- | ---------------------------------------------------------------------------- |\n| values        | `T[]`                                               | Valor actual del formulario.                                                 |\n| status        | `ControlStatus`                                     | Estado actual del formulario: `VALID`, `INVALID` o `PENDING`.                |\n| errors        | `FormControlError`                                  | Objeto que indica cuáles son los controles que tienen errores de validación. |\n| isValid       | `boolean`                                           | Indica si el formulario es válido.                                           |\n| isInvalid     | `boolean`                                           | Indica si algún control dentro del formulario es inválido.                   |\n| isPending     | `boolean`                                           | Indica si algún control dentro del formulario está en estado pendiente.      |\n| find          | `(path) => FormControl \\| null`                     | Busca y devuelve un `FormControl` correspondiente a un campo específico.     |\n| add           | `(path: string, schema: FormControlSchema) => void` | Agrega un nuevo control al formulario en la ruta especificada.               |\n| remove        | `(path: string) => void`                            | Elimina el control en la ruta especificada del formulario.                   |\n| setValue      | `(value: Partial<T>) => void`                       | Establece nuevos valores sobre en el formulario                              |\n| reset         | `() => void`                                        | Reinicia el formulario a su estado inicial.                                  |\n| validate      | `() => void`                                        | Valida manualmente todos los controles dentro del formulario.                |\n| asyncValidate | `() => void`                                        | Realiza la validación asincrónica de todos los controles del formulario.     |\n\nEste hook es esencial cuando necesitas manejar formularios complejos con múltiples campos interdependientes, ofreciendo un control centralizado sobre la validación y el estado del formulario.\n\nAquí tienes la documentación en markdown para `useFormArray`:\n\n### `useFormArray`\n\nEl hook `useFormArray` controla un arreglo de formularios y devuelve un `FormArray`, que permite manejar múltiples formularios de manera conjunta.\n\n#### Argumentos\n\n```ts\nexport type FormGroupSchema<T extends object = any> = {\n\t[K in keyof T]: FormControlSchema<T[K]>\n}\n```\n\n| Propiedad        | Tipo                  | Requerido | Valor por defecto | Descripción                                  |\n| ---------------- | --------------------- | --------- | ----------------- | -------------------------------------------- |\n| schema           | `FormGroupSchema`     | Sí        |                   |                                              |\n| options          | `UseFormArrayOptions` | No        | `{}`              | Opciones adicionales de configuración.       |\n| options.debounce | `number`              | No        | `500`             | Tiempo de espera antes de aplicar el cambio. |\n\n#### `FormArray`\n\n| Propiedad     | Tipo                                                   | Descripción                                                                     |\n| ------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------- |\n| values        | `T[]`                                                  | Valor actual del arreglo de formularios.                                        |\n| status        | `ControlStatus`                                        | Estado actual del arreglo de formularios: `VALID`, `INVALID` o `PENDING`.       |\n| errors        | `FormControlError[]`                                   | Errores presentes en los formularios del arreglo.                               |\n| isValid       | `boolean`                                              | Indica si todos los formularios en el arreglo son válidos.                      |\n| isInvalid     | `boolean`                                              | Indica si algún formulario en el arreglo es inválido.                           |\n| isPending     | `boolean`                                              | Indica si algún formulario en el arreglo está pendiente.                        |\n| length        | `number`                                               | Número de formularios en el arreglo.                                            |\n| map           | `(mapFn: (group: FormGroup, index: number) => R): R[]` | Itera sobre los formularios del arreglo y aplica la función `mapFn` a cada uno. |\n| find          | `(at: number) => FormGroup \\| null`                    | Busca un formulario en el arreglo por su índice.                                |\n| push          | `(schema: FormGroupSchema) => void`                    | Agrega un nuevo formulario al final del arreglo.                                |\n| unshift       | `(schema: FormGroupSchema) => void`                    | Agrega un nuevo formulario al inicio del arreglo.                               |\n| remove        | `(at: number) => void`                                 | Elimina un formulario del arreglo por su índice.                                |\n| reset         | `() => void`                                           | Reinicia todos los formularios en el arreglo a su estado inicial.               |\n| validate      | `() => void`                                           | Valida todos los formularios en el arreglo.                                     |\n| asyncValidate | `() => void`                                           | Valida asíncronamente todos los formularios en el arreglo.                      |\n","readmeFilename":"README.md"}