{"_id":"@amiruleeeiu/react-form-engine","_rev":"8-7801eee900a45fb8586b8b6e94b058e2","name":"@amiruleeeiu/react-form-engine","dist-tags":{"latest":"1.5.0"},"versions":{"1.0.0":{"name":"@amiruleeeiu/react-form-engine","version":"1.0.0","keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","zod","typescript"],"author":{"name":"amiruleeeiu"},"license":"MIT","_id":"@amiruleeeiu/react-form-engine@1.0.0","maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"homepage":"https://github.com/amiruleeeiu/form-engine#readme","bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"dist":{"shasum":"ede4c60aca0ea489c64405b0647ba3651326a4fb","tarball":"https://registry.npmjs.org/@amiruleeeiu/react-form-engine/-/react-form-engine-1.0.0.tgz","fileCount":9,"integrity":"sha512-tdPaiHBJ7+sTsx7kPzFD3G6cMRdHfw/W/yKzuJrgWWRefpAoCPAmhDBwSm8EaIb7VTTd2CK5pwPlZoHPF/zMFA==","signatures":[{"sig":"MEYCIQCna5m732SsJn9NSVcU2OGwhjgHHkT6C63IrEtgs2g+gQIhAM44H6maQEXHPsdgsbj1wj4PcgpYb1DNXvSpqkqW/fZg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2429263},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"4fb813f4c2f1a8e070b25513ce37ab4ad7b8b64f","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"},"repository":{"url":"git+https://github.com/amiruleeeiu/form-engine.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful and flexible React form engine with dynamic fields, validation, and conditional logic","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"zod":"^4.1.13","lucide-react":"^0.555.0","react-select":"^5.10.2","tailwind-merge":"^3.4.0","react-hook-form":"^7.67.0","@hookform/resolvers":"^5.2.2"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","eslint":"^9.39.1","globals":"^16.5.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","tailwindcss":"^4.1.17","@types/react":"^19.2.0","autoprefixer":"^10.4.22","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-form-engine_1.0.0_1764520020039_0.6204741298914214","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@amiruleeeiu/react-form-engine","version":"1.1.0","keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","zod","typescript"],"author":{"name":"amiruleeeiu"},"license":"MIT","_id":"@amiruleeeiu/react-form-engine@1.1.0","maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"homepage":"https://github.com/amiruleeeiu/form-engine#readme","bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"dist":{"shasum":"2b70ca369ef31f4ea82282b2a3cbea748bc14f24","tarball":"https://registry.npmjs.org/@amiruleeeiu/react-form-engine/-/react-form-engine-1.1.0.tgz","fileCount":9,"integrity":"sha512-izlKanxTMkVJlGA+TCWiYMUvnkNNCI9Xb8nN0jpq0uRVu1bwIvpEs4Y4OaFgR5oY8qDQnULMiZo3z2Hjkqa/Eg==","signatures":[{"sig":"MEQCIBYcsItb+s2Q0Lx+ujg2HxoANxISyQUP/aUabrdX9HKvAiA3SS57BMyvND0O/WldID4xcoEwyv06xQPLcAUkGgNvsw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2503862},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"05cedc3cb23c9156d11654a7b558eaabafeed481","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"},"repository":{"url":"git+https://github.com/amiruleeeiu/form-engine.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful and flexible React form engine with dynamic fields, validation, and conditional logic","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"zod":"^4.1.13","lucide-react":"^0.555.0","react-select":"^5.10.2","tailwind-merge":"^3.4.0","react-hook-form":"^7.67.0","@hookform/resolvers":"^5.2.2"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","react":"^19.2.0","eslint":"^9.39.1","globals":"^16.5.0","react-dom":"^19.2.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","tailwindcss":"^4.1.17","@types/react":"^19.2.0","autoprefixer":"^10.4.22","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-form-engine_1.1.0_1764781405453_0.2639362836468908","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@amiruleeeiu/react-form-engine","version":"1.1.1","keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","zod","typescript"],"author":{"name":"amiruleeeiu"},"license":"MIT","_id":"@amiruleeeiu/react-form-engine@1.1.1","maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"homepage":"https://github.com/amiruleeeiu/form-engine#readme","bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"dist":{"shasum":"a4430f9c9afda776043dbcf695f6c8b9683e25b0","tarball":"https://registry.npmjs.org/@amiruleeeiu/react-form-engine/-/react-form-engine-1.1.1.tgz","fileCount":11,"integrity":"sha512-rvfx+KKlnCquLS9G2cVY1oGxpfvklYCVM9Ky1kv0v3+cetVll8iNs+gLifsZxlp74XJLgfO+1zL6bQayR2eKHQ==","signatures":[{"sig":"MEQCIByk2laJ/6rACY39qA6P3h3G7o9r6i0iNcZfpLO9iOQGAiA8VmyjmmyrLzeeGwBJWlIbGPrnm1MkV1ygkY1/BZJ3xQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2546808},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"69e0b4b1deb68fafb8f539c10faa3fdde58170bd","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"},"repository":{"url":"git+https://github.com/amiruleeeiu/form-engine.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful and flexible React form engine with dynamic fields, validation, and conditional logic","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"zod":"^4.1.13","lucide-react":"^0.555.0","react-select":"^5.10.2","tailwind-merge":"^3.4.0","react-hook-form":"^7.67.0","@hookform/resolvers":"^5.2.2"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","react":"^19.2.0","eslint":"^9.39.1","globals":"^16.5.0","react-dom":"^19.2.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","tailwindcss":"^4.1.17","@types/react":"^19.2.0","autoprefixer":"^10.4.22","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-form-engine_1.1.1_1764782027230_0.8804367106395938","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@amiruleeeiu/react-form-engine","version":"1.2.1","keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","zod","typescript"],"author":{"name":"amiruleeeiu"},"license":"MIT","_id":"@amiruleeeiu/react-form-engine@1.2.1","maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"homepage":"https://github.com/amiruleeeiu/form-engine#readme","bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"dist":{"shasum":"993b770a47053ae346db34efff7c115ebbe67108","tarball":"https://registry.npmjs.org/@amiruleeeiu/react-form-engine/-/react-form-engine-1.2.1.tgz","fileCount":11,"integrity":"sha512-3SzfcliLhECN1zfGj5FSLLWbxaOziqWvpqbYTcTVXEl+BfWiMkSQO7qiVSd/LmP9smf+GPOF1pHDBeB+sbII8Q==","signatures":[{"sig":"MEYCIQD+5WBxalw8PnMOZPRU2EMrszPI+d/2zUywqSE1Cor+dQIhAN4Gumo79j/4ypiBu+gy8dS9DxDMuc04lp5FmOFFaOky","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4009680},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"69e0b4b1deb68fafb8f539c10faa3fdde58170bd","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"},"repository":{"url":"git+https://github.com/amiruleeeiu/form-engine.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful and flexible React form engine with dynamic fields, validation, and conditional logic","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"zod":"^4.1.13","lucide-react":"^0.555.0","react-select":"^5.10.2","tailwind-merge":"^3.4.0","react-hook-form":"^7.67.0","react-day-picker":"^9.11.3","@hookform/resolvers":"^5.2.2","react-phone-input-2":"^2.15.1"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","react":"^19.2.0","eslint":"^9.39.1","globals":"^16.5.0","react-dom":"^19.2.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","tailwindcss":"^4.1.17","@types/react":"^19.2.0","autoprefixer":"^10.4.22","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-form-engine_1.2.1_1764868176184_0.12253816773733117","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@amiruleeeiu/react-form-engine","version":"1.3.1","keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","zod","typescript"],"author":{"name":"amiruleeeiu"},"license":"MIT","_id":"@amiruleeeiu/react-form-engine@1.3.1","maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"homepage":"https://github.com/amiruleeeiu/form-engine#readme","bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"dist":{"shasum":"44ec194a21e849ebce70392355d940cce3f27674","tarball":"https://registry.npmjs.org/@amiruleeeiu/react-form-engine/-/react-form-engine-1.3.1.tgz","fileCount":11,"integrity":"sha512-G/VLExKcgXM6sBoVO0yPrACab/pgQpuFi520a1xy5uGGvHto3+RWdfr9ujyuqmH5xL9k8quXEXbn2VKU3yZQtQ==","signatures":[{"sig":"MEUCIQCtKrh/1SC5TVtPI6tSC830GdMHOvMdvwUHDKSkoq2sIgIgWrgsiYskKVDV6J6Odt9PG6fUKFplnIGqFJIhkL6bLgs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2818126},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"69e0b4b1deb68fafb8f539c10faa3fdde58170bd","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"},"repository":{"url":"git+https://github.com/amiruleeeiu/form-engine.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful and flexible React form engine with dynamic fields, validation, and conditional logic","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"zod":"^4.1.13","lucide-react":"^0.555.0","tailwind-merge":"^3.4.0","react-hook-form":"^7.67.0","react-day-picker":"^9.11.3","@hookform/resolvers":"^5.2.2","react-phone-input-2":"^2.15.1"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","react":"^19.2.0","eslint":"^9.39.1","globals":"^16.5.0","react-dom":"^19.2.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","tailwindcss":"^4.1.17","@types/react":"^19.2.0","autoprefixer":"^10.4.22","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-form-engine_1.3.1_1764871737945_0.8312774143549797","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@amiruleeeiu/react-form-engine","version":"1.3.2","keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","zod","typescript"],"author":{"name":"amiruleeeiu"},"license":"MIT","_id":"@amiruleeeiu/react-form-engine@1.3.2","maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"homepage":"https://github.com/amiruleeeiu/form-engine#readme","bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"dist":{"shasum":"47fa4ad9ef1c45de2ba15b5206f4533a73b6bdaf","tarball":"https://registry.npmjs.org/@amiruleeeiu/react-form-engine/-/react-form-engine-1.3.2.tgz","fileCount":11,"integrity":"sha512-kU0zB1pb+xyDYAZjMJ+p+XOzraCEcfeEvnLwreHYYCPqe7enw1676KHWascB95dkOFQPchRgzFsbSD7LOrMqwg==","signatures":[{"sig":"MEQCIDkUQfqf4K6b8aBuhnxWzZUM6CrGj93vGqDlNDk+PJ5hAiBD8/5rg1kclAbzUxlRaffPPb2hnQpIA4MCgj0ruMfGAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2828586},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"dcf91a79989f5a901aaf4a9f66890775b4a5af54","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"},"repository":{"url":"git+https://github.com/amiruleeeiu/form-engine.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful and flexible React form engine with dynamic fields, validation, and conditional logic","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"zod":"^4.1.13","lucide-react":"^0.555.0","tailwind-merge":"^3.4.0","react-hook-form":"^7.67.0","react-day-picker":"^9.11.3","@hookform/resolvers":"^5.2.2","react-phone-input-2":"^2.15.1"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","react":"^19.2.0","eslint":"^9.39.1","globals":"^16.5.0","react-dom":"^19.2.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","tailwindcss":"^4.1.17","@types/react":"^19.2.0","autoprefixer":"^10.4.22","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-form-engine_1.3.2_1764872601481_0.1480122980677403","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@amiruleeeiu/react-form-engine","version":"1.4.0","keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","field-level-validation","zod","typescript","conditional-logic","multi-step-form","wizard-form","dynamic-select","form-builder"],"author":{"name":"amiruleeeiu"},"license":"MIT","_id":"@amiruleeeiu/react-form-engine@1.4.0","maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"homepage":"https://github.com/amiruleeeiu/form-engine#readme","bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"dist":{"shasum":"fc6d75923d56d99b93524f02cd42478b76e195b0","tarball":"https://registry.npmjs.org/@amiruleeeiu/react-form-engine/-/react-form-engine-1.4.0.tgz","fileCount":11,"integrity":"sha512-8QNf020dCFBl1WHw585Djetum9YkVH5V27C6igxfWte10l+TbpHJbD+DfaAmUb0zgYXKfODUgPwHjkYPsScXtQ==","signatures":[{"sig":"MEQCIAMPg6/T0/4tPmu4eAhmT7FHTWJkiVcHd/1GLxFyB4ztAiBHGtiZq50c4h4kfgk0x5h+r4VFNydADN90LzOa1cBjKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2838122},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"gitHead":"bb8f1ccc925d28c83a61f2df46bcc26903797604","scripts":{"dev":"vite","lint":"eslint .","build":"tsc -b && vite build","preview":"vite preview","build:lib":"vite build --config vite.lib.config.ts","prepublishOnly":"npm run build:lib"},"_npmUser":{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"},"repository":{"url":"git+https://github.com/amiruleeeiu/form-engine.git","type":"git"},"_npmVersion":"10.9.2","description":"A powerful and flexible React form engine with field-level validation, dynamic options, conditional logic, and multi-step forms","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.16.0","dependencies":{"zod":"^4.1.13","lucide-react":"^0.555.0","tailwind-merge":"^3.4.0","react-hook-form":"^7.67.0","react-day-picker":"^9.11.3","@hookform/resolvers":"^5.2.2","react-phone-input-2":"^2.15.1"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vite":"^7.2.4","react":"^19.2.0","eslint":"^9.39.1","globals":"^16.5.0","react-dom":"^19.2.0","@eslint/js":"^9.39.1","typescript":"~5.9.3","@types/node":"^24.10.1","tailwindcss":"^4.1.17","@types/react":"^19.2.0","autoprefixer":"^10.4.22","vite-plugin-dts":"^4.5.4","@types/react-dom":"^19.2.3","typescript-eslint":"^8.46.4","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.17","@vitejs/plugin-react":"^5.1.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"_npmOperationalInternal":{"tmp":"tmp/react-form-engine_1.4.0_1764925982566_0.8090680482867176","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@amiruleeeiu/react-form-engine","version":"1.5.0","type":"module","description":"A powerful and flexible React form engine with repeatable sections, field-level validation, dynamic options, conditional logic, and multi-step forms","author":{"name":"amiruleeeiu"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/amiruleeeiu/form-engine.git"},"keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","field-level-validation","zod","typescript","conditional-logic","multi-step-form","wizard-form","dynamic-select","form-builder","repeatable-sections","form-array","field-array"],"main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./styles.css":"./dist/styles.css"},"sideEffects":["**/*.css"],"scripts":{"dev":"vite","build":"tsc -b && vite build","build:lib":"vite build --config vite.lib.config.ts","lint":"eslint .","preview":"vite preview","prepublishOnly":"npm run build:lib"},"peerDependencies":{"react":">=18.0.0","react-dom":">=18.0.0"},"dependencies":{"@hookform/resolvers":"^5.2.2","lucide-react":"^0.555.0","react-day-picker":"^9.11.3","react-hook-form":"^7.67.0","react-phone-input-2":"^2.15.1","tailwind-merge":"^3.4.0","zod":"^4.1.13"},"devDependencies":{"@eslint/js":"^9.39.1","@monaco-editor/react":"^4.7.0","@tailwindcss/postcss":"^4.1.17","@types/node":"^24.10.1","@types/react":"^19.2.0","@types/react-dom":"^19.2.3","@vitejs/plugin-react":"^5.1.1","ajv":"^8.17.1","autoprefixer":"^10.4.22","eslint":"^9.39.1","eslint-plugin-react-hooks":"^7.0.1","eslint-plugin-react-refresh":"^0.4.24","globals":"^16.5.0","react":"^19.2.0","react-dom":"^19.2.0","tailwindcss":"^4.1.17","typescript":"~5.9.3","typescript-eslint":"^8.46.4","vite":"^7.2.4","vite-plugin-dts":"^4.5.4"},"_id":"@amiruleeeiu/react-form-engine@1.5.0","gitHead":"46e858ce8183f0ad728b9e6148beba8ede031a07","bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"homepage":"https://github.com/amiruleeeiu/form-engine#readme","_nodeVersion":"22.16.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-XolmIWOAmsRknGkTwaKar1Fspkyua1m/CyX9xdtp0DpZpUSG1wCrZ9ma3SJt91v7iS6AxWWj1j1T2huLnZhHLg==","shasum":"f66b98043f9c987153da6c4b04b65df3bdcef2e5","tarball":"https://registry.npmjs.org/@amiruleeeiu/react-form-engine/-/react-form-engine-1.5.0.tgz","fileCount":11,"unpackedSize":2913177,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCA+HtcFf2Lbv80HZBr6D9ngL8RSqaSJnLvZC5UlPtp9QIhAJO2wy8TcmktOQ/985WSDgU3oh6GBIdt4p5c00p+9IH4"}]},"_npmUser":{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"},"directories":{},"maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/react-form-engine_1.5.0_1765307230158_0.43235611007349606"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-30T16:26:59.949Z","modified":"2025-12-09T19:07:10.561Z","1.0.0":"2025-11-30T16:27:00.323Z","1.1.0":"2025-12-03T17:03:25.665Z","1.1.1":"2025-12-03T17:13:47.464Z","1.2.1":"2025-12-04T17:09:36.401Z","1.3.1":"2025-12-04T18:08:58.170Z","1.3.2":"2025-12-04T18:23:21.715Z","1.4.0":"2025-12-05T09:13:02.834Z","1.5.0":"2025-12-09T19:07:10.346Z"},"bugs":{"url":"https://github.com/amiruleeeiu/form-engine/issues"},"author":{"name":"amiruleeeiu"},"license":"MIT","homepage":"https://github.com/amiruleeeiu/form-engine#readme","keywords":["react","form","form-engine","react-hook-form","dynamic-forms","validation","field-level-validation","zod","typescript","conditional-logic","multi-step-form","wizard-form","dynamic-select","form-builder","repeatable-sections","form-array","field-array"],"repository":{"type":"git","url":"git+https://github.com/amiruleeeiu/form-engine.git"},"description":"A powerful and flexible React form engine with repeatable sections, field-level validation, dynamic options, conditional logic, and multi-step forms","maintainers":[{"name":"amiruleeeiu","email":"amiruleeeiu15@gmail.com"}],"readme":"# @amiruleeeiu/react-form-engine\r\n\r\nA powerful, flexible, and beautiful form builder for React applications built with React Hook Form, Zod, Tailwind CSS, and React Select.\r\n\r\n## Features\r\n\r\n- ✨ **Reusable Field Components** - Text, Number, Date, Select, Autocomplete, File, Radio, Checkbox\r\n- 🎨 **Beautiful UI** - Built with Tailwind CSS, responsive grid layout\r\n- 🔄 **Conditional Logic** - Show/hide/enable/disable fields dynamically\r\n- 📊 **Multi-Step Forms** - Easy stepper/wizard forms with progress indicator\r\n- 🔁 **Repeatable Sections** - Dynamic field arrays for lists of data\r\n- 🌐 **Dynamic Options** - Load select options from API\r\n- ✅ **Dual Validation** - Field-level or Zod schema validation\r\n- 🏗️ **TypeScript Support** - Full type definitions included\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @amiruleeeiu/react-form-engine\r\n```\r\n\r\n### Peer Dependencies\r\n\r\nMake sure you have React 18+ installed:\r\n\r\n```bash\r\nnpm install react react-dom\r\n```\r\n\r\n### Import Styles\r\n\r\n**Important:** You must import the CSS file in your application:\r\n\r\n```tsx\r\n// In your main entry file (e.g., main.tsx or App.tsx)\r\nimport \"@amiruleeeiu/react-form-engine/styles.css\";\r\n```\r\n\r\nThe library comes with pre-compiled Tailwind CSS styles, so you don't need to configure Tailwind in your project.\r\n\r\n## Quick Start\r\n\r\n```tsx\r\nimport { FormEngine, FormSchema } from \"@amiruleeeiu/react-form-engine\";\r\n\r\nconst schema: FormSchema = {\r\n  fields: [\r\n    { name: \"firstName\", type: \"text\", label: \"First Name\", cols: 1 },\r\n    { name: \"lastName\", type: \"text\", label: \"Last Name\", cols: 1 },\r\n    {\r\n      name: \"email\",\r\n      type: \"text\",\r\n      label: \"Email\",\r\n      cols: 2,\r\n      validation: { required: true, email: true },\r\n    },\r\n  ],\r\n};\r\n\r\nfunction App() {\r\n  const handleSubmit = (data: any) => {\r\n    console.log(\"Form data:\", data);\r\n  };\r\n\r\n  return (\r\n    <FormEngine\r\n      schema={schema}\r\n      onSubmit={handleSubmit}\r\n      submitButtonText=\"Submit\"\r\n    />\r\n  );\r\n}\r\n```\r\n\r\n## Form Schema Structure\r\n\r\n### Simple Form with Fields\r\n\r\n```typescript\r\nconst schema: FormSchema = {\r\n  fields: [\r\n    { name: \"firstName\", type: \"text\", label: \"First Name\", cols: 1 },\r\n    { name: \"email\", type: \"text\", label: \"Email\", cols: 2 },\r\n  ],\r\n};\r\n```\r\n\r\n### Form with Sections\r\n\r\n```typescript\r\nconst schema: FormSchema = {\r\n  sections: [\r\n    {\r\n      title: \"Personal Information\",\r\n      fields: [\r\n        { name: \"firstName\", type: \"text\", label: \"First Name\" },\r\n        { name: \"lastName\", type: \"text\", label: \"Last Name\" },\r\n      ],\r\n    },\r\n    {\r\n      title: \"Contact\",\r\n      fields: [{ name: \"email\", type: \"text\", label: \"Email\" }],\r\n    },\r\n  ],\r\n};\r\n```\r\n\r\n### Multi-Step Form\r\n\r\n```typescript\r\nconst schema: FormSchema = {\r\n  steps: [\r\n    {\r\n      title: \"Personal Info\",\r\n      sections: [\r\n        {\r\n          title: \"Basic Details\",\r\n          fields: [{ name: \"firstName\", type: \"text\", label: \"First Name\" }],\r\n        },\r\n      ],\r\n    },\r\n    {\r\n      title: \"Contact\",\r\n      fields: [{ name: \"email\", type: \"text\", label: \"Email\" }],\r\n    },\r\n  ],\r\n};\r\n```\r\n\r\n## Field Types\r\n\r\n| Type           | Description                      |\r\n| -------------- | -------------------------------- |\r\n| `text`         | Text input                       |\r\n| `number`       | Numeric input                    |\r\n| `date`         | Date picker                      |\r\n| `select`       | Dropdown select                  |\r\n| `autocomplete` | Searchable select (React Select) |\r\n| `radio`        | Radio button group               |\r\n| `checkbox`     | Checkbox                         |\r\n| `file`         | File upload                      |\r\n\r\n## Validation\r\n\r\n### Field-Level Validation\r\n\r\n```typescript\r\n{\r\n  name: 'email',\r\n  type: 'text',\r\n  label: 'Email',\r\n  validation: {\r\n    required: true,                    // or custom message: \"Email is required\"\r\n    email: true,                       // or custom message: \"Invalid email\"\r\n    minLength: 5,                      // or { value: 5, message: 'Min 5 chars' }\r\n    maxLength: 100,\r\n    pattern: { value: /regex/, message: 'Invalid format' },\r\n    custom: (value) => value.includes('@') || 'Must contain @',\r\n  },\r\n}\r\n```\r\n\r\n### Zod Schema Validation\r\n\r\n```typescript\r\nimport { z } from 'zod';\r\n\r\nconst schema: FormSchema = {\r\n  validationSchema: z.object({\r\n    email: z.string().email('Invalid email'),\r\n    age: z.number().min(18, 'Must be 18+'),\r\n  }),\r\n  fields: [...],\r\n};\r\n```\r\n\r\n## Conditional Logic\r\n\r\n### Show/Hide Fields\r\n\r\n```typescript\r\n{\r\n  name: 'spouseName',\r\n  type: 'text',\r\n  label: \"Spouse's Name\",\r\n  showWhen: { field: 'isMarried', equals: true },\r\n}\r\n```\r\n\r\n### Enable/Disable Fields\r\n\r\n```typescript\r\n{\r\n  name: 'bankAccount',\r\n  type: 'text',\r\n  label: 'Bank Account',\r\n  enableWhen: { field: 'country', equals: 'BD' },\r\n}\r\n```\r\n\r\n### Condition Operators\r\n\r\n- `equals` / `notEquals` - Equality checks\r\n- `in` / `notIn` - Array membership\r\n- `isEmpty` / `isNotEmpty` - Empty checks\r\n- `greaterThan` / `lessThan` - Numeric comparisons\r\n\r\n## Repeatable Sections\r\n\r\n```typescript\r\n{\r\n  title: 'Work Experience',\r\n  repeatable: true,\r\n  repeatableConfig: {\r\n    addButtonText: 'Add Experience',\r\n    removeButtonText: 'Remove',\r\n    minItems: 1,\r\n    maxItems: 5,\r\n  },\r\n  fields: [\r\n    { name: 'company', type: 'text', label: 'Company' },\r\n    { name: 'position', type: 'text', label: 'Position' },\r\n  ],\r\n}\r\n```\r\n\r\n## Dynamic Options\r\n\r\n```typescript\r\n{\r\n  name: 'country',\r\n  type: 'autocomplete',\r\n  label: 'Country',\r\n  dynamicOptions: {\r\n    url: 'https://api.example.com/countries',\r\n    transform: (data) => data.map(c => ({ label: c.name, value: c.code })),\r\n  },\r\n}\r\n```\r\n\r\n## Grid System\r\n\r\nThe `cols` property controls field width (based on 2-column grid):\r\n\r\n- `cols: 1` - Half width (default)\r\n- `cols: 2` - Full width\r\n\r\n## FormEngine Props\r\n\r\n| Prop                 | Type                  | Description                               |\r\n| -------------------- | --------------------- | ----------------------------------------- |\r\n| `schema`             | `FormSchema`          | Form configuration                        |\r\n| `onSubmit`           | `(data: any) => void` | Submit handler                            |\r\n| `submitButtonText`   | `string`              | Submit button label                       |\r\n| `showStepNavigation` | `boolean`             | Show step navigation for multi-step forms |\r\n| `className`          | `string`              | Custom class for form element             |\r\n\r\n## Exports\r\n\r\n```typescript\r\n// Main component\r\nimport { FormEngine } from \"@amiruleeeiu/react-form-engine\";\r\n\r\n// Types\r\nimport type {\r\n  FormSchema,\r\n  FormEngineProps,\r\n  FieldConfig,\r\n  FormSection,\r\n  FormStep,\r\n  Condition,\r\n  FieldValidation,\r\n} from \"@amiruleeeiu/react-form-engine\";\r\n\r\n// Utilities\r\nimport {\r\n  cn,\r\n  evaluateCondition,\r\n  extractDefaultValues,\r\n  mergeDefaultValues,\r\n  useDynamicOptions,\r\n  getValidationRules,\r\n  convertJSONToFormSchema,\r\n  validateJSONSchema,\r\n} from \"@amiruleeeiu/react-form-engine\";\r\n```\r\n\r\n## Styling\r\n\r\nThe component uses Tailwind CSS classes. Make sure Tailwind is configured in your project, or override styles using the className props.\r\n\r\n## License\r\n\r\nMIT\r\n\r\n## Author\r\n\r\namiruleeeiu\r\n","readmeFilename":"README.npm.md"}