{"_id":"@alphinex/forms","_rev":"11-1868859a957f9fef5f8f66983afd9365","name":"@alphinex/forms","dist-tags":{"latest":"1.4.1"},"versions":{"1.0.0":{"name":"@alphinex/forms","version":"1.0.0","license":"UNLICENSED","_id":"@alphinex/forms@1.0.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"4aa8b6199eed8b26cf8b4d69d3478a504818870b","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.0.0.tgz","fileCount":5,"integrity":"sha512-DwoOZF0hdlFa4cs7Kq1x2h5hgu/LC2DRrEjWOe3LMLAGs7SAyu+PzGB4OUuLEe3EeLGDhL2Y6W+lROVFYHDEKg==","signatures":[{"sig":"MEUCIQD8GxIWZrz0ke+cu4HOlyEluic97FVYSYINy2cWIcWU+gIgdKx1jBg3As+MApIOvoRzWnHEQLOolD0fIrgTSCYNmYU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44550},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"1.0.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.0","@alphinex/theme":"1.0.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.0.0_1785852480373_0.13373109951700224","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alphinex/forms","version":"1.0.1","license":"UNLICENSED","_id":"@alphinex/forms@1.0.1","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"3229f9b0607ae012b11e7cac5d6542ad8ecf53ca","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.0.1.tgz","fileCount":5,"integrity":"sha512-KllamqdZQqiNuaVJ7HNrKfL3MvBUi3xziOJS9w9hdONybYyYzaHgKJQpbVSfSSUk5YyockRCTZZ3ZLTts+W57A==","signatures":[{"sig":"MEYCIQD/y5K4/9ayNl2xg4z7Kta3VAUJaA9aiYHT3ZqKLZW0bwIhAI5QPsXB0/nDWMhUOrm7QHMmFcV1XLx7y3tInbhxiwEk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44550},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.0.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.0","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.0.1_1785858427155_0.3446650895516681","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@alphinex/forms","version":"1.0.2","license":"UNLICENSED","_id":"@alphinex/forms@1.0.2","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"9f007fb769070f19d22fc64afcd3704c5638a122","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.0.2.tgz","fileCount":5,"integrity":"sha512-JZpu/54v0QF6nWm29pNsCefROhc5M4s4fSKrOmrtEAr278rLftwE2MmnP6o3ZSwG6kEe9fMDpSAqR2VcrGilVA==","signatures":[{"sig":"MEYCIQCKyLwxbIMmaB3gKgaInneEB3yRtvPJeyMta16yDZXPJQIhANPY4RjfWyC6Q3Wxc0j9Cso8j632c1otF6OmbYk2k8EK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44550},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.1.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.0","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.0.2_1785896121345_0.4447256752412718","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@alphinex/forms","version":"1.0.3","license":"UNLICENSED","_id":"@alphinex/forms@1.0.3","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"e0547224283fd137eac27114b870c5e50e1a1d06","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.0.3.tgz","fileCount":5,"integrity":"sha512-N03sr5AyCzWw7G7dt/vYooEbhp/W76fhB3Sdw774KjtfURxSfGPksn8oD9+9beAxlv58V/MA9BOYifhLxvAi0A==","signatures":[{"sig":"MEUCIQCpJkuh6OV/siKjmst54Z/RbTapK6B2n7NhhcbykNlYPQIgRV/FjBz437+0367frx6ueJ+FsH8xv0pgtmu2x6tnmPo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44550},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.1.1","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.0.3_1785938259997_0.24416162911987183","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@alphinex/forms","version":"1.0.4","license":"UNLICENSED","_id":"@alphinex/forms@1.0.4","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"b1bf19d002da078b8090fc1a5e8f263215921468","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.0.4.tgz","fileCount":5,"integrity":"sha512-Iu6+Mzt9qxcMlAEatzgNzY9wtWrBho92zl0xafizuzFcS1d6a+bisgC2Qkot1dDDpv/NUjl/LMy0eWpzqC0z6Q==","signatures":[{"sig":"MEYCIQCvgDueDJZ/KVdk/t0U4RlHmdRRbNyXP+yKNIlU0uwvzgIhAPg86ikvst4+R6l3hyuTG0DN5Vy0bV1WX9F5rr1g1P8g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50405},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.2.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.0.4_1786003928193_0.7647803609752808","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@alphinex/forms","version":"1.0.5","license":"UNLICENSED","_id":"@alphinex/forms@1.0.5","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"f25d4aa1270bd653b17d7afe309fd325b6979296","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.0.5.tgz","fileCount":5,"integrity":"sha512-C8VvoANYiRmyPzmmIpeHwJdKKkuoSqX+3KP7ssCfVRvdTlHWbvtb+/auxk2DIljDDiqLsC0C6tKZ6pJtWOcpxQ==","signatures":[{"sig":"MEQCID/6wF9S2bW5lk0kw0ca8GnIR9XSMIiZM4Q+cWKPXLbDAiAy7PA62/W7z7GkUY+AEnDf940P/aKhcaM8T2nuQsmCSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":50405},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.3.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.0.5_1786200446925_0.0976925633208734","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alphinex/forms","version":"1.1.0","license":"UNLICENSED","_id":"@alphinex/forms@1.1.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"f577fc6f188fdc1ce25d9d703483e08475dff806","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.1.0.tgz","fileCount":5,"integrity":"sha512-0CDjo2c9Rwb9dbNv03seynSGa5T2b1eFV/LvaPfo02aWdLWf/XYu2hL9x4dzMI3cNqsT4hKSFvF2anhp3rm/kQ==","signatures":[{"sig":"MEQCIFsMSygAV40xm8TT4+zOi+6bc5otPfCKZfQCtVLBlTRZAiBtPkI3bLZdetvjqqtmrZ9uVxxTv3YkBs9cBs6b6acEww==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78802},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.4.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.1.0_1786218403829_0.4271681106133145","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alphinex/forms","version":"1.2.0","license":"UNLICENSED","_id":"@alphinex/forms@1.2.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"bf4621b77924270c259e57c82d30a730ee86adf7","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.2.0.tgz","fileCount":5,"integrity":"sha512-8KXfLLMC5Y/lXlE9iCg/gI8Z/jXLa1HNaW9kAdpKePTBwYAcFg06D4XHN5p8H8xUZIMUsI1i/0neBgXFimUtpA==","signatures":[{"sig":"MEUCIBdpfsBbXFlAAEG5JZkRxoMI1y02qt8mo41Gxsm+h9KMAiEAgGfuuvQQUE6rUOgNCYD/e9EXWkGk/6oRV+v3f6G+92Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":99303},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.5.0","@alphinex/core":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.2.0_1786273315276_0.6652709832607924","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@alphinex/forms","version":"1.3.0","license":"UNLICENSED","_id":"@alphinex/forms@1.3.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"aca02e5622d7199a3e61ae17136c30a257e20c88","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.3.0.tgz","fileCount":5,"integrity":"sha512-LirBCyDCg4C8JiWaZ4erun+Fn6T+9Kvby18+4gKnlUbFQ2XpFFgH7ubIU+OzA5mIIlezhmgLfM7JyaybV4XKNg==","signatures":[{"sig":"MEUCIFZImFvHPYH1sHLBucn1PIi9xcCMG0LTBb26qJYxf51dAiEAkAk2x3SYqO9gX21YWLEcmK1GfdVNdvT+6mjPsJpoJ14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":116565},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.5.1","@alphinex/core":"1.0.0","@alphinex/dates":"1.0.0","@alphinex/hooks":"1.0.1","@alphinex/theme":"1.1.0","@alphinex/utils":"1.0.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.3.0_1786298608792_0.777774712065533","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@alphinex/forms","version":"1.4.0","license":"UNLICENSED","_id":"@alphinex/forms@1.4.0","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"dist":{"shasum":"f9921645aa5acb1e57ac6dc0eba5d3add806fb55","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.4.0.tgz","fileCount":5,"integrity":"sha512-Lc26UU301NsdNG4/DdEdbm7FP2Mb276sNao4u3hOlAsM+nV2sMcQjb3TF4bUr3rVtpxz0Xkyn9fOtcmj82YviQ==","signatures":[{"sig":"MEQCIAdL+wfDb70TzkIIxCjYQikUSyZPs5W7u4pcAUdNt3WuAiBzZiCGHxWIVXQOnatDVxQHhwDWGtbsuFaHJMxGqjfF+A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":122211},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"private":false,"scripts":{"dev":"vite build --watch","lint":"eslint .","test":"vitest run","build":"vite build","clean":"rimraf dist .turbo","typecheck":"tsc --noEmit"},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"@alphinex/ui":"2.6.0","@alphinex/core":"1.0.0","@alphinex/dates":"1.0.1","@alphinex/hooks":"1.0.2","@alphinex/theme":"1.1.0","@alphinex/utils":"1.1.0","@hookform/resolvers":"^3.9.1"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.1","vite":"^6.0.5","jsdom":"^25.0.1","react":"^19.0.0","eslint":"^9.17.0","vitest":"^2.1.8","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.2","react-hook-form":"^7.54.0","@types/react-dom":"^19.0.2","@vitejs/plugin-react":"^4.3.4","@alphinex/build-config":"0.0.0","@testing-library/react":"^16.1.0","@alphinex/eslint-config":"0.0.0","@testing-library/jest-dom":"^6.6.3","@alphinex/typescript-config":"0.0.0","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0"},"peerDependenciesMeta":{"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false},"react-hook-form":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/forms_1.4.0_1786525490760_0.5027574982361138","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@alphinex/forms","version":"1.4.1","private":false,"description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","license":"UNLICENSED","type":"module","sideEffects":false,"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./package.json":"./package.json"},"dependencies":{"@hookform/resolvers":"^3.9.1","@alphinex/core":"1.0.0","@alphinex/theme":"1.1.0","@alphinex/ui":"2.7.0","@alphinex/dates":"1.0.2","@alphinex/utils":"1.1.0","@alphinex/hooks":"1.0.2"},"peerDependencies":{"react-hook-form":"^7.54.0","zod":"^3.24.1","react":"^19.0.0","react-dom":"^19.0.0"},"peerDependenciesMeta":{"react-hook-form":{"optional":false},"zod":{"optional":false},"react":{"optional":false},"react-dom":{"optional":false}},"devDependencies":{"typescript":"^5.7.2","vite":"^6.0.5","vitest":"^2.1.8","react":"^19.0.0","react-dom":"^19.0.0","react-hook-form":"^7.54.0","zod":"^3.24.1","@types/react":"^19.0.2","@types/react-dom":"^19.0.2","@testing-library/react":"^16.1.0","@testing-library/jest-dom":"^6.6.3","@testing-library/user-event":"^14.5.2","@vitejs/plugin-react":"^4.3.4","jsdom":"^25.0.1","eslint":"^9.17.0","@alphinex/build-config":"0.0.0","@alphinex/eslint-config":"0.0.0","@alphinex/typescript-config":"0.0.0"},"scripts":{"build":"vite build","dev":"vite build --watch","lint":"eslint .","typecheck":"tsc --noEmit","test":"vitest run","clean":"rimraf dist .turbo"},"_nodeVersion":"22.14.0","_id":"@alphinex/forms@1.4.1","dist":{"integrity":"sha512-wPGVb/A0RtBXgPPCVpqND5T+q3yM3a9iYurTwjdvML17Cbdma71i3WdofmBqBfhNWLoiWdSe4KtxWKgk+cihUw==","shasum":"12ae41fa0908aaf7a68e3131cfb3c9472a8f4ddb","tarball":"https://registry.npmjs.org/@alphinex/forms/-/forms-1.4.1.tgz","fileCount":5,"unpackedSize":122211,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCHYy9xSRMLmKrc3S5jAJETOch2FdUov7DSdMRTDwQvuQIgXDtcK56TQDeHK0AvkhEzc3bOjeX4DMBDN1q/m170qk4="}]},"_npmUser":{"name":"anasaliqureshi","email":"anas@alphinex.com"},"directories":{},"maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/forms_1.4.1_1786546531741_0.2006205867561459"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-04T14:08:00.106Z","modified":"2026-08-12T14:55:32.088Z","1.0.0":"2026-08-04T14:08:00.521Z","1.0.1":"2026-08-04T15:47:07.521Z","1.0.2":"2026-08-05T02:15:21.476Z","1.0.3":"2026-08-05T13:57:40.151Z","1.0.4":"2026-08-06T08:12:08.331Z","1.0.5":"2026-08-08T14:47:27.074Z","1.1.0":"2026-08-08T19:46:43.979Z","1.2.0":"2026-08-09T11:01:55.444Z","1.3.0":"2026-08-09T18:03:28.959Z","1.4.0":"2026-08-12T09:04:50.896Z","1.4.1":"2026-08-12T14:55:31.906Z"},"license":"UNLICENSED","description":"Form Engine: FormProvider, Zod/RHF integration, field components, dynamic form builder.","maintainers":[{"name":"anasaliqureshi","email":"anas@alphinex.com"}],"readme":"# @alphinex/forms\n\nThe platform's form engine: a thin wrapper over [React Hook Form](https://react-hook-form.com/)\nwith [Zod](https://zod.dev/) as the single source of validation truth, a matched set of typed field\ncomponents, and `buildFormFromSchema` for rendering forms from a JSON-serializable definition\n(e.g. per-tenant custom fields configured outside the codebase). Every field component reads its\nvalue/error state from RHF's context — nothing is passed to them explicitly beyond a `name`.\n\n## useAppForm + Form\n\n`useAppForm` is the one way to create a form in this platform: it's RHF's `useForm` pre-wired to a\nZod schema via `zodResolver`, so validation logic never has to be duplicated between a schema and ad\nhoc RHF `rules`. `Form` wraps RHF's own `FormProvider` with a real `<form>` element bound to\n`handleSubmit`:\n\n```tsx\nimport { Form, useAppForm, TextField, NumberField } from \"@alphinex/forms\";\nimport { z } from \"zod\";\n\nconst schema = z.object({\n  name: z.string().min(1, \"Name is required\"),\n  age: z.coerce.number().min(0),\n});\n\nfunction ProfileForm() {\n  const form = useAppForm({\n    schema,\n    defaultValues: { name: \"\", age: 0 },\n  });\n\n  return (\n    <Form form={form} onSubmit={(values) => console.log(values)}>\n      <TextField name=\"name\" label=\"Name\" required />\n      <NumberField name=\"age\" label=\"Age\" description=\"In years\" />\n      <button type=\"submit\">Save</button>\n    </Form>\n  );\n}\n```\n\n`useAppForm`'s options are RHF's `UseFormProps` (`defaultValues`, `mode`, ...) plus `schema` — every\nother RHF option (`resolver` aside, which is set for you) passes through unchanged.\n\n## Field components\n\n`TextField`, `NumberField`, `TextareaField`, `CheckboxField`, `SwitchField`, `SelectField`, and\n`DateField` all take a `name` (matching a key in your Zod schema/`defaultValues`), plus optional\n`label`, `description`, and `required`. They must render inside a `<Form>` (or anything wrapping RHF's\n`FormProvider`) since they call `useController({ name })` internally. Everything else spreads onto\nthe underlying `@alphinex/ui` control, so e.g. `TextField` also accepts `placeholder`, `Select`'s\nprops flow through `SelectField`, and so on.\n\n```tsx\nimport {\n  Form,\n  useAppForm,\n  TextField,\n  TextareaField,\n  CheckboxField,\n  SwitchField,\n  SelectField,\n  DateField,\n} from \"@alphinex/forms\";\nimport { z } from \"zod\";\n\nconst schema = z.object({\n  title: z.string().min(1),\n  notes: z.string().optional(),\n  isUrgent: z.boolean(),\n  notifyByEmail: z.boolean(),\n  priority: z.string(),\n  dueDate: z.string(),\n});\n\nfunction TaskForm() {\n  const form = useAppForm({\n    schema,\n    defaultValues: {\n      title: \"\",\n      notes: \"\",\n      isUrgent: false,\n      notifyByEmail: true,\n      priority: \"normal\",\n      dueDate: \"\",\n    },\n  });\n\n  return (\n    <Form form={form} onSubmit={(values) => console.log(values)}>\n      <TextField name=\"title\" label=\"Title\" required />\n      <TextareaField name=\"notes\" label=\"Notes\" />\n      <CheckboxField name=\"isUrgent\" label=\"Urgent\" />\n      <SwitchField name=\"notifyByEmail\" label=\"Email me updates\" />\n      <SelectField\n        name=\"priority\"\n        label=\"Priority\"\n        options={[\n          { value: \"low\", label: \"Low\" },\n          { value: \"normal\", label: \"Normal\" },\n          { value: \"high\", label: \"High\" },\n        ]}\n      />\n      <DateField name=\"dueDate\" label=\"Due date\" />\n      <button type=\"submit\">Create task</button>\n    </Form>\n  );\n}\n```\n\n`NumberField` renders `<input type=\"number\">` bound to RHF as a string like any other text input —\npair it with `z.coerce.number()` in the field's schema so validation (and the typed form values)\nresolve to an actual `number`. `DateField` similarly renders a native `<input type=\"date\">`, bound as\nan ISO `\"YYYY-MM-DD\"` string.\n\n`FieldWrapper` and `FieldMessage` are the shared label/control/help-or-error layout every field above\nrenders through — reach for them directly only when building a new field type that doesn't exist yet.\n`getFieldError(errors, name)` resolves a possibly-nested error (e.g. `\"address.street\"`) out of RHF's\n`errors` object, and `useFieldMeta(name, description)` derives the id/aria wiring (`id`,\n`descriptionId`, `errorId`, `error`, `describedBy`) that every field component above uses internally.\n\n### Data-entry fields\n\n`RadioGroupField`, `NumberInputField`, `SliderField`, `RangeSliderField`, `TagInputField`,\n`OtpInputField`, `RatingField`, and `ColorPickerField` bind the matching `@alphinex/ui` controls\nto RHF, taking the same `name`/`label`/`description`/`required` props as the fields above and\nspreading everything else onto the underlying control:\n\n```tsx\nimport {\n  Form,\n  useAppForm,\n  RadioGroupField,\n  NumberInputField,\n  SliderField,\n  RangeSliderField,\n  TagInputField,\n  OtpInputField,\n  RatingField,\n  ColorPickerField,\n} from \"@alphinex/forms\";\nimport { z } from \"zod\";\n\nconst schema = z.object({\n  plan: z.string().min(1, \"Pick a plan\"),\n  seats: z.number().min(1),\n  volume: z.number(),\n  budget: z.tuple([z.number(), z.number()]),\n  tags: z.array(z.string()).min(1, \"Add at least one tag\"),\n  code: z.string().length(6, \"Enter all 6 digits\"),\n  score: z.number().min(1, \"Rate it\"),\n  brand: z.string(),\n});\n\n<Form form={form} onSubmit={save}>\n  <RadioGroupField\n    name=\"plan\"\n    label=\"Plan\"\n    options={[\n      { value: \"basic\", label: \"Basic\" },\n      { value: \"pro\", label: \"Pro\" },\n    ]}\n  />\n  <NumberInputField name=\"seats\" label=\"Seats\" min={1} max={50} />\n  <SliderField name=\"volume\" label=\"Volume\" />\n  <RangeSliderField name=\"budget\" label=\"Budget\" />\n  <TagInputField name=\"tags\" label=\"Tags\" />\n  <OtpInputField name=\"code\" label=\"Verification code\" length={6} />\n  <RatingField name=\"score\" label=\"Score\" allowHalf />\n  <ColorPickerField name=\"brand\" label=\"Brand color\" />\n</Form>;\n```\n\nNote `NumberInputField` is distinct from `NumberField`: the latter wraps a plain `Input`, while\nthis one wraps `NumberInput` and brings increment/decrement affordances plus min/max clamping.\nControls with no single focusable element (a radiogroup, a slider, a rating) are labelled via\n`aria-labelledby` rather than `htmlFor`, which `FieldWrapper`'s `labelId` prop handles.\n\n### Selection fields\n\n`ComboboxField`, `MultiSelectField`, `AutocompleteField`, `CascaderField`, `TreeSelectField`, and\n`TransferField` bind the searchable-selection controls to RHF:\n\n```tsx\nimport {\n  ComboboxField,\n  MultiSelectField,\n  AutocompleteField,\n  CascaderField,\n  TreeSelectField,\n  TransferField,\n} from \"@alphinex/forms\";\n\n<Form form={form} onSubmit={save}>\n  {/* value: the selected option's `value` */}\n  <ComboboxField name=\"country\" label=\"Country\" options={countries} clearable />\n  {/* value: string[] of option values */}\n  <MultiSelectField name=\"visited\" label=\"Visited\" options={countries} max={5} />\n  {/* value: whatever text is in the field */}\n  <AutocompleteField name=\"city\" label=\"City\" options={cities} />\n  {/* value: the path array, root-first */}\n  <CascaderField name=\"region\" label=\"Region\" options={regions} />\n  {/* value: the selected node's id */}\n  <TreeSelectField name=\"category\" label=\"Category\" items={categories} />\n  {/* value: string[] of chosen values */}\n  <TransferField name=\"grants\" label=\"Grants\" options={permissions} searchable />\n</Form>;\n```\n\nMatch the Zod type to what each field stores — `z.string()` for `ComboboxField`/`TreeSelectField`/\n`AutocompleteField`, `z.array(z.string())` for `MultiSelectField`/`CascaderField`/`TransferField`.\n\n### Date and time fields\n\n`DatePickerField`, `DateRangePickerField`, `TimePickerField`, and `DateTimePickerField` bind\n`@alphinex/dates`' pickers to RHF. They need a `<ThemeProvider>` above them, like `SliderField`.\n\n```tsx\nimport {\n  DatePickerField,\n  DateRangePickerField,\n  DateTimePickerField,\n  TimePickerField,\n} from \"@alphinex/forms\";\n\n<Form form={form} onSubmit={save}>\n  {/* value: Date */}\n  <DatePickerField name=\"dueAt\" label=\"Due date\" min={new Date()} disabledDaysOfWeek={[0, 6]} />\n  {/* value: Date — the calendar day of any existing value is preserved */}\n  <TimePickerField name=\"reminderAt\" label=\"Reminder\" minuteStep={15} minTime=\"09:00\" />\n  {/* value: Date */}\n  <DateTimePickerField name=\"startsAt\" label=\"Starts at\" defaultTime=\"09:00\" />\n  {/* value: { start: Date | null; end: Date | null } */}\n  <DateRangePickerField name=\"stay\" label=\"Stay\" startLabel=\"Check in\" endLabel=\"Check out\" />\n</Form>;\n```\n\nUse `z.date()` for the three single-value fields, and\n`z.object({ start: z.date().nullable(), end: z.date().nullable() })` for the range.\n\n`defaultValues` may hold ISO **strings** rather than `Date` objects — a form hydrated straight from\na JSON API needs no conversion. They are read as local dates, so `\"2024-03-20\"` is the 20th\neverywhere, not the 19th west of Greenwich.\n\n## buildFormFromSchema\n\nRenders a form from a JSON-serializable array of `FieldDefinition` objects instead of hand-written\nJSX — the mechanism behind admin-configurable forms (e.g. per-tenant custom fields stored in a\ndatabase), built entirely on top of the same field components you'd use directly. Wrap the result in\n`<Form>`:\n\n```tsx\nimport { Form, useAppForm, buildFormFromSchema, type FieldDefinition } from \"@alphinex/forms\";\nimport { z } from \"zod\";\n\nconst fieldDefs: FieldDefinition[] = [\n  { type: \"text\", name: \"companyName\", label: \"Company name\", required: true },\n  {\n    type: \"select\",\n    name: \"industry\",\n    label: \"Industry\",\n    options: [\n      { value: \"tech\", label: \"Technology\" },\n      { value: \"retail\", label: \"Retail\" },\n    ],\n  },\n  { type: \"checkbox\", name: \"acceptsTerms\", label: \"I accept the terms\" },\n];\n\nconst schema = z.object({\n  companyName: z.string().min(1),\n  industry: z.string(),\n  acceptsTerms: z.boolean(),\n});\n\nfunction DynamicOnboardingForm() {\n  const form = useAppForm({\n    schema,\n    defaultValues: { companyName: \"\", industry: \"\", acceptsTerms: false },\n  });\n\n  return (\n    <Form form={form} onSubmit={(values) => console.log(values)}>\n      {buildFormFromSchema(fieldDefs)}\n      <button type=\"submit\">Continue</button>\n    </Form>\n  );\n}\n```\n\nEach `FieldDefinition` is a discriminated union on `type` (`\"text\" | \"number\" | \"textarea\" |\n\"checkbox\" | \"switch\" | \"select\" | \"date\"`), so TypeScript narrows the extra options per type —\n`select` requires `options: SelectOption[]`, `text`/`number`/`textarea` accept `placeholder`, and so\non. The Zod schema is still yours to write and keep in sync with the field names.\n\nSee [documentation/ARCHITECTURE.md](../../documentation/ARCHITECTURE.md) for the full package contract, dependency rules, and roadmap placement.\n\n## FileUploadField\n\n```tsx\nimport { FileUploadField } from \"@alphinex/forms\";\n\n<FileUploadField\n  name=\"attachments\"\n  label=\"Attachments\"\n  multiple\n  accept=\".pdf,.png\"\n  maxSize={5_000_000}\n/>;\n```\n\nThe stored value is always a `File[]`, even in single-file mode — one shape means a schema and a\nsubmit handler never have to branch on `multiple`:\n\n```ts\nconst schema = z.object({\n  attachments: z.array(z.instanceof(File)).min(1, \"Attach at least one file\"),\n  avatar: z.array(z.instanceof(File)).max(1),\n});\n```\n\nFiles failing the field's own `accept`/`maxSize` checks never reach the form value, and the\nreason is shown under the drop zone.\n","readmeFilename":""}