{"_id":"@aravindvjn/stepper-form","_rev":"8-3167ca2f5974bdc854e3c7b53d11da1e","name":"@aravindvjn/stepper-form","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.1":{"name":"@aravindvjn/stepper-form","version":"0.0.1","_id":"@aravindvjn/stepper-form@0.0.1","maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"bin":{"stepper-form":"bin/index.mjs"},"dist":{"shasum":"f71d848f11e5360a33f4ffa98477799741a083c6","tarball":"https://registry.npmjs.org/@aravindvjn/stepper-form/-/stepper-form-0.0.1.tgz","fileCount":28,"integrity":"sha512-4zegZsq1eehyV2xUQ6clLrv4Bzd/nUBpd8tvOYhw46X4uR8zc4fjJOgSlk1QUbSoj1VkK4CEKBX2IZzsfAR6ug==","signatures":[{"sig":"MEYCIQDghIqeZzDyYtCiG0Ihwxr1z7lUXramiz49FhwRS2/2TAIhAMl99XOrAVvMqzn1SQt6EVcPYF93KxrtKfdkTKPiLzU5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":78121},"type":"module","gitHead":"f6bc63a3faae9b2e6a96fef6eda3dad4a043c4fe","scripts":{"dev":"node ./bin/index.mjs","test:local":"node ./bin/index.mjs"},"_npmUser":{"name":"aravindvjn","email":"aravind284479@gmail.com"},"_npmVersion":"11.9.0","description":"","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stepper-form_0.0.1_1776710353275_0.8366026408568052","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@aravindvjn/stepper-form","version":"0.0.2","_id":"@aravindvjn/stepper-form@0.0.2","maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"bin":{"stepper-form":"bin/index.mjs"},"dist":{"shasum":"8cc4434890bcac3f9f3e1719f204c9940bd66193","tarball":"https://registry.npmjs.org/@aravindvjn/stepper-form/-/stepper-form-0.0.2.tgz","fileCount":28,"integrity":"sha512-x8Mbp1gAsXkDeAx9rmnKYE6AI93+wUh8I8lQwe/7vDUDNkffinZ0xKIWZq9y6K6pBlwnPY+3M9tHL8FyltSmYQ==","signatures":[{"sig":"MEYCIQCFRG4QPC4ZKe6+eUBp+nPdxV9cTZ5ozYAKjfqz54BTQgIhAN8ngSb5+tN+G0IdqrZh16OXnkE9gXVBWacp8wqhWRNM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82336},"type":"module","gitHead":"782a1cae3ddc1fbbc12565df7636f269d5d2466c","scripts":{"dev":"node ./bin/index.mjs","test:local":"node ./bin/index.mjs"},"_npmUser":{"name":"aravindvjn","email":"aravind284479@gmail.com"},"_npmVersion":"11.9.0","description":"A CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stepper-form_0.0.2_1776710989875_0.16993435753987685","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@aravindvjn/stepper-form","version":"0.0.3","_id":"@aravindvjn/stepper-form@0.0.3","maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"bin":{"stepper-form":"bin/index.mjs"},"dist":{"shasum":"ddeb37d14aae231d3576f5699bf9ad324f9af665","tarball":"https://registry.npmjs.org/@aravindvjn/stepper-form/-/stepper-form-0.0.3.tgz","fileCount":28,"integrity":"sha512-L8gE1YsPPWnQNTAGWWD+E+QqbEKAp7Tn/Wkm5tD/LmW6eBHNA+20vqY96XWAP8qCGJG2mihJrCkmUd7OwoHbPQ==","signatures":[{"sig":"MEUCIQDM6l5reHNtRULOalehIvE7BoZaXVu5+EpEOgQn3TgSIQIgUPLbC+NfktqsIArL76AD4L1EdoqYMJ8q+S6qCzX6Ak8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":82070},"type":"module","gitHead":"0b40f147aa594d942b96d787cb92640d9ef42ba1","scripts":{"dev":"node ./bin/index.mjs","test:local":"node ./bin/index.mjs"},"_npmUser":{"name":"aravindvjn","email":"aravind284479@gmail.com"},"_npmVersion":"11.9.0","description":"A CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stepper-form_0.0.3_1776711199764_0.9365674317095658","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@aravindvjn/stepper-form","version":"0.0.4","_id":"@aravindvjn/stepper-form@0.0.4","maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"bin":{"stepper-form":"bin/index.mjs"},"dist":{"shasum":"d972778385f88a0c687ea450eb5956fef0d1e33f","tarball":"https://registry.npmjs.org/@aravindvjn/stepper-form/-/stepper-form-0.0.4.tgz","fileCount":28,"integrity":"sha512-l/LdBGUjkQJgy+1+N+gz+4XEuZweQRv9Ow5iUFr+8EURvv7j7VTaWGZ2znNRHwQdwUZFrgYEdc++d5uRgmiXbw==","signatures":[{"sig":"MEQCIAXEoHPBc5VbrIGU2tqzgWzDjogbL1z1qgEL29yj8Ai6AiA37u37BhbUextlPyx5heBDdZ4Jw1T23oklav6ciHkWgA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85287},"type":"module","gitHead":"5c415becd1f0731ee8a407f9021ee3301c31381b","scripts":{"dev":"node ./bin/index.mjs","test:local":"node ./bin/index.mjs"},"_npmUser":{"name":"aravindvjn","email":"aravind284479@gmail.com"},"_npmVersion":"11.9.0","description":"A CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stepper-form_0.0.4_1776711758019_0.7396934800045314","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@aravindvjn/stepper-form","version":"0.0.5","_id":"@aravindvjn/stepper-form@0.0.5","maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"bin":{"stepper-form":"bin/index.mjs"},"dist":{"shasum":"c035a2f2c9a6a32f6f0ab1d218a6bf0f3c23d8f8","tarball":"https://registry.npmjs.org/@aravindvjn/stepper-form/-/stepper-form-0.0.5.tgz","fileCount":28,"integrity":"sha512-eoJXNyWr7c3wtF8OY9t3NYQETIKc8y95gTr6Jz+wCoM9oLRtTfY7r73qKV0KfPY9CjKaz1vavV/oimCQ+w0unQ==","signatures":[{"sig":"MEYCIQC5do5QZ/pOBuHMHDFhFoWc5e5MjkRqeUGUQKmFXzJh1AIhALxSnldpVxVe4zzVP8pOXt3FsNvlnzxSOzul5GdB23ui","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85280},"type":"module","gitHead":"1d6745fd3ced0543f9ffc7a02ea5ab4c6eed42b9","scripts":{"dev":"node ./bin/index.mjs","test:local":"node ./bin/index.mjs"},"_npmUser":{"name":"aravindvjn","email":"aravind284479@gmail.com"},"_npmVersion":"11.9.0","description":"A CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stepper-form_0.0.5_1776712050175_0.9671928222168644","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@aravindvjn/stepper-form","version":"0.0.6","_id":"@aravindvjn/stepper-form@0.0.6","maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"bin":{"stepper-form":"bin/index.mjs"},"dist":{"shasum":"8c17d9dcb882016d77fbc3d1e74e6a40280cb5e3","tarball":"https://registry.npmjs.org/@aravindvjn/stepper-form/-/stepper-form-0.0.6.tgz","fileCount":28,"integrity":"sha512-sUSBoB9pjrWPI/9opk92+p7MiOHjySq0LgX4x79cEIb3xcK3xp7dI3dgbOuYnG67K+eUSLNX7/ZK+tMbXWzY5A==","signatures":[{"sig":"MEYCIQDmkh3YERT3o2PC1U2+9i/lK78XtXPIOeg5lWL8Dr8tJQIhAOxbwFY3DSd7wrAte+M3TE1DN75wR3ecX0srjWmJWnsk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85213},"type":"module","gitHead":"4b764a33dedd1ca496a777f9fe2150e8994d3073","scripts":{"dev":"node ./bin/index.mjs","test:local":"node ./bin/index.mjs"},"_npmUser":{"name":"aravindvjn","email":"aravind284479@gmail.com"},"_npmVersion":"11.9.0","description":"A CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stepper-form_0.0.6_1777112686772_0.3401668149220751","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@aravindvjn/stepper-form","version":"0.0.7","_id":"@aravindvjn/stepper-form@0.0.7","maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"bin":{"stepper-form":"bin/index.mjs"},"dist":{"shasum":"6290983fc02fc9bfe680be10a443719c67650f7f","tarball":"https://registry.npmjs.org/@aravindvjn/stepper-form/-/stepper-form-0.0.7.tgz","fileCount":28,"integrity":"sha512-f8o42Y2RursDFYrCvXoDQC9zAYXmfIEIzoY9viVQXpVn1CklLp0Tt5H2VMtAR7LKz6nYLF7Z1P/o8RUSImXmMg==","signatures":[{"sig":"MEUCIQCJbHrxBwDPy9keyeGua78beNmvXs1Kj/iCqXKsb/YLbQIgFc5F9w8PtlOvLuoYdeVI912gNqOkMSgciBD5+lifuJw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":85379},"type":"module","gitHead":"af5a61e40a6fc111d498a2564497ae918aa76f6f","scripts":{"dev":"node ./bin/index.mjs","test:local":"node ./bin/index.mjs"},"_npmUser":{"name":"aravindvjn","email":"aravind284479@gmail.com"},"_npmVersion":"11.9.0","description":"A CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.","directories":{},"_nodeVersion":"25.6.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/stepper-form_0.0.7_1777113124912_0.7172484530457488","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aravindvjn/stepper-form","version":"1.0.0","type":"module","bin":{"stepper-form":"bin/index.mjs"},"scripts":{"dev":"node ./bin/index.mjs","test:local":"node ./bin/index.mjs"},"gitHead":"45eb087a83b8fd75a6328a836ef8cbd2c4388f49","_id":"@aravindvjn/stepper-form@1.0.0","description":"A CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.","_nodeVersion":"25.6.1","_npmVersion":"11.9.0","dist":{"integrity":"sha512-/qi2zSeY3M2tWB+ibcuA5LcDXwm1dNtbCtoSEW35jcbWPtryKzXWSlX2VK8Jg6EdBj7UMei2aido3OIBdKw1KA==","shasum":"711751c67d41be73eb8e70271a3008d56c702343","tarball":"https://registry.npmjs.org/@aravindvjn/stepper-form/-/stepper-form-1.0.0.tgz","fileCount":28,"unpackedSize":85391,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCeSVZtGtpZhfIOfZxRbIHN8dmVCZJrfuT06KmokO+LpgIhAMljh9V+217Mhl0veu/0AH8XIQbrpFNVSgCUmxnZYLbJ"}]},"_npmUser":{"name":"aravindvjn","email":"aravind284479@gmail.com"},"directories":{},"maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/stepper-form_1.0.0_1777113457150_0.8084966810247376"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-20T18:39:13.174Z","modified":"2026-04-25T10:37:37.424Z","0.0.1":"2026-04-20T18:39:13.413Z","0.0.2":"2026-04-20T18:49:50.011Z","0.0.3":"2026-04-20T18:53:19.888Z","0.0.4":"2026-04-20T19:02:38.202Z","0.0.5":"2026-04-20T19:07:30.311Z","0.0.6":"2026-04-25T10:24:46.949Z","0.0.7":"2026-04-25T10:32:05.057Z","1.0.0":"2026-04-25T10:37:37.316Z"},"description":"A CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.","maintainers":[{"name":"aravindvjn","email":"aravind284479@gmail.com"}],"readme":"# @aravindvjn/stepper-form\n\nA CLI to generate a fully reusable, config-driven stepper form system for React / Next.js apps.\n\nBuild complex multi-step forms faster using React Hook Form, Zod, Tailwind, and CVA — without writing boilerplate.\n\n---\n\n## ✨ Features\n\n- Config-driven stepper form\n- Separate reusable field components\n- React Hook Form + Zod ready\n- Tailwind + tailwind-merge + CVA variants\n- Searchable select & multi-select\n- Country / State / City fields\n- Fully extensible architecture\n- CLI-based setup (similar to shadcn)\n\n---\n\n## 🚀 Usage\n\nRun directly with npx:\n\n```bash\nnpx @aravindvjn/stepper-form init\n```\n\nWith demo:\n\n```bash\nnpx @aravindvjn/stepper-form init --demo\n```\n\nCustom path:\n\n```bash\nnpx @aravindvjn/stepper-form init --path components/custom-stepper\n```\n\n\n---\n\n## 📁 What it generates\n\nAutomatically detects your project structure:\n\n| Project Structure | Output Folder |\n|---|---|\n| `src/components` exists | `src/components/stepper-form` |\n| `components` exists | `components/stepper-form` |\n| none | `src/components/stepper-form` |\n\n---\n\n## 📦 Install dependencies\n\nAfter running the CLI:\n\n```bash\nnpm install react-hook-form zod @hookform/resolvers class-variance-authority clsx tailwind-merge lucide-react @countrystatecity/countries-browser country-data\n```\n\n(or pnpm / yarn will be suggested automatically)\n\n---\n\n## 🧑‍💻 Usage Example\n\n### 1. Import\n\n```ts\nimport { StepperForm } from \"@/components/stepper-form\";\n```\n\n### 2. Create schema\n\n```ts\nimport { z } from \"zod\";\n\nexport const schema = z.object({\n  full_name: z.string().min(1, \"Required\"),\n  email: z.string().email(),\n  skills: z.array(z.string()).min(1),\n});\n```\na\n### 3. Create steps config\n\n```ts\nconst steps = [\n  {\n    step: 1,\n    title: \"Basic Details\",\n    fields: [\n      {\n        name: \"full_name\",\n        label: \"Full Name\",\n        type: \"text\",\n        required: true,\n      },\n      {\n        name: \"email\",\n        label: \"Email\",\n        type: \"email\",\n        required: true,\n      },\n    ],\n  },\n  {\n    step: 2,\n    title: \"Skills\",\n    fields: [\n      {\n        name: \"skills\",\n        label: \"Skills\",\n        type: \"multi-select\",\n        required: true,\n        options: [\n          { label: \"React\", value: \"react\" },\n          { label: \"Next.js\", value: \"nextjs\" },\n          { label: \"TypeScript\", value: \"ts\" },\n        ],\n        selectProps: {\n          searchable: true,\n        },\n      },\n    ],\n  },\n];\n```\n\n### 4. Use StepperForm\n\n```tsx\nimport { useForm } from \"react-hook-form\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\n\nconst form = useForm({\n  resolver: zodResolver(schema),\n  defaultValues: {\n    full_name: \"\",\n    email: \"\",\n    skills: [],\n  },\n});\n\n<StepperForm\n  form={form}\n  steps={steps}\n  title=\"Example Form\"\n  description=\"Reusable stepper form\"\n  onSubmit={(values) => {\n    console.log(values);\n  }}\n/>;\n```\n\n---\n\n## 🧩 Supported Field Types\n\n- `text`\n- `email`\n- `password`\n- `number`\n- `date`\n- `textarea`\n- `select`\n- `multi-select`\n- `checkbox`\n- `radio`\n- `file`\n- `tel`\n- `country`\n- `state`\n- `city`\n\n---\n\n## 🎨 Variants\n\nAll fields support:\n\n```ts\nvariant: \"default\" | \"filled\" | \"ghost\" | \"error\";\nsize: \"sm\" | \"md\" | \"lg\";\nradius: \"sm\" | \"md\" | \"lg\";\n```\n\n---\n\n## 🧱 Architecture\n\n- **StepperForm** → handles steps and navigation\n- **FormRenderer** → renders fields dynamically\n- **Field components** → reusable independently\n- **Config** → drives everything\n\n---\n\n## 🔧 Customization\n\nYou can:\n\n- Override fields using `renderField`\n- Inject custom UI\n- Extend field types\n- Modify variants\n- Use fields independently\n\n---\n\n## 📸 Demo\n\nGenerate demo:\n\n```bash\nnpx @aravindvjn/stepper-form init --demo\n```\n\n---\n\n## 🛠 Roadmap\n\n- [ ] Interactive CLI (like shadcn)\n- [ ] Add/remove components individually\n- [ ] Theme support\n- [ ] Validation presets\n- [ ] Form builder UI\n\n---\n\n## 🤝 Contributing\n\nPRs and ideas are welcome.\n\n---\n\n## 📄 License\n\nAravind Vijayan","readmeFilename":"README.md"}