{"_id":"@fogpipe/forma-react","_rev":"26-fc9e62077089b1a4c387ae3c779df3aa","name":"@fogpipe/forma-react","dist-tags":{"alpha":"0.12.0-alpha.2","latest":"0.19.2"},"versions":{"0.6.0":{"name":"@fogpipe/forma-react","version":"0.6.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.6.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"3eba6275dbee646968f8a262f6765a3e4620334f","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.6.0.tgz","fileCount":15,"integrity":"sha512-IGLOIqp6SjI3nd9ZMZ5Bq0l4RT0w8G23jmCADVTb501fn8PAQfcn0NJ59LqJIXW70R7P0Te5ATdpZwYHGPdB1w==","signatures":[{"sig":"MEUCIAtdaFpi0VeRIbzcJ7czpf0taGnBu6MJoAKMOKrMsMxQAiEAplWUPH7h/1EfBjY6hyD2TRESXq+Wn5pcJl85l97cK/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273928},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"c68c98ec6793d29e09dd989657d755d1273cbe22","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"lillheaton","email":"emil@fogpipe.com"},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"10.9.4","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"22.21.1","dependencies":{"@fogpipe/forma-core":"^0.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.6.0_1767960629171_0.9786434801456041","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@fogpipe/forma-react","version":"0.7.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.7.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"10e7f403394d8bd199bbf948a05a1ce12feb04b6","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.7.0.tgz","fileCount":15,"integrity":"sha512-XX+N2vwwe7X3fAiLK2ZtfHzpKPAEWdN3pV1hoP41INTILsfbpRBD2x7a08ANWWJYJvPiY26e0jVE/scz+1Lhug==","signatures":[{"sig":"MEQCIEHUXq9xg4nyL63WK61lkY/PxbHwXv9iXrR465H5cKR+AiBdDakS+jL853DW2CBVd9zO+4zHdehGaOvWUoolF9/jow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":273928},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"017833fa46941520994e0820cbef4646754edc2b","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@fogpipe/forma-core":"^0.7.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.7.0_1767962014872_0.5263634560269344","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@fogpipe/forma-react","version":"0.8.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.8.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"f42d5db56d31c8a81f66d0c3800352e3b2662fa8","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.8.0.tgz","fileCount":16,"integrity":"sha512-iJJ2loKgp/I/Bt+NQdU4WVn9k+YQ3y19kwasFJW18Q0mUcICvvWLbLAe7PffvTUx6R+ats9gHbZ5xYvGuVI/sg==","signatures":[{"sig":"MEUCIFvCPTTpbD3C7eRvlpkn7fDaRT0QcpT1HG/kyexvFOEhAiEAkuSXqHkia+ktyiZ3mSusp3NeaF8flnhQxyp3FFhWFAU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286449},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"5d678efc1d5d854775ef9bf31249db4e14b67409","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@fogpipe/forma-core":"^0.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.8.0_1768479346906_0.7676200135704891","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@fogpipe/forma-react","version":"0.8.1","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.8.1","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"9993a068935ead65d4e3c9c42a08d88d825f1d21","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.8.1.tgz","fileCount":16,"integrity":"sha512-y7CnqMYfqiJIffKIPPpZKRJ2FbWEASX8+PRQB1toM3wAFwnNAJW1IznN5fotHwJ18MzMBZvG/8EIgHakQ5KOaQ==","signatures":[{"sig":"MEUCIEwuFCSZfMIM7cWkZI/OQCtrdW4MUb9M87OXximhXRlfAiEAxDfoNFv2MYf97yk9rgdBqqWVMmllA950MC0UrgfM5NQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286485},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"9c0451dfa664ae3f42acfdaf6a7d104f8b250f1f","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@fogpipe/forma-core":"^0.8.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.8.1_1768480024441_0.9555985993115537","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@fogpipe/forma-react","version":"0.8.2","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.8.2","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"755bedbaf88c96e54ba991236f2fc0d5792125e1","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.8.2.tgz","fileCount":17,"integrity":"sha512-H5bfDHdXIiWhei1JEUh8UV1yUWr3SmeVcMiUCUbk1+zaSDAuVRX4XHd25tD0k4w8ghIFtHHpkltzMbVDABiPcg==","signatures":[{"sig":"MEUCIQDP1Ly8UvINYxNE7sy1OXCw4psoNqrBEcum0f0hayX4NQIgXjNNL8WchQ4ypHUQt99GHRa4Kc0GqwG2dePVPGi4niw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":322830},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"ad45b5d3e49f7e0881980a118afc6f766bc892cc","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@fogpipe/forma-core":"^0.8.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.8.2_1768486234575_0.8413681986576369","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@fogpipe/forma-react","version":"0.9.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.9.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"a6c22cc518fb71d0a690284037ffc796ac12cf62","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.9.0.tgz","fileCount":19,"integrity":"sha512-7ArRfGiGoPSq5x/u1nOA8P4walQSthDd/XZvfbRBHWShRiBUj943636tFTVsA0jr2AQpN94FtwEJVsxfGFYseg==","signatures":[{"sig":"MEUCIQCjChBh4yFk8KopIQ9WNOflLMKEl77npU3vOKSMXrTHlAIgbVHx61TdGnotRmLt+aP8wYCiScWeh7dYYGtadfiM2XM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":372737},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"834bc53a0a181392e7f9af127a6a766b937579a1","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@fogpipe/forma-core":"^0.9.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.9.0_1768552526978_0.010949822255546193","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@fogpipe/forma-react","version":"0.10.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.10.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"6b17de2109a7edc368e00b7cdd594f0facb202ff","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.10.0.tgz","fileCount":19,"integrity":"sha512-9ELIHibxtd+eHHW+o347PSUdAVWZSG6xs1Qb15q/3LJyDkhUH4dg2AG3m0uh5A5sFvEI8DkaV0JOAFFWxqDyIA==","signatures":[{"sig":"MEYCIQCaRI2quSbnZ2sZC8X+Zlt8PlQ5D+7gmx9aJN9Mq+b0EAIhAMzkNxhuH9cSAMlVDLEL98MfBeAPV9vlhQDwq0LU00i5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":385902},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"e57b7dc568de142616325e9f6c0050907a24c15a","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@fogpipe/forma-core":"^0.10.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.10.0_1768835228949_0.5949425737646394","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@fogpipe/forma-react","version":"0.10.1","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.10.1","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"e3ac1f9825cee10e979c2ee3f784a47584bbbc0a","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.10.1.tgz","fileCount":19,"integrity":"sha512-Q67mZkojzaRhWpbWOgF/WLSx1IixdLxOuq9o/0WXkM3o6OVE+O687f/Tw5VhWvhcvNBoanJvyo499KMmwWYwPg==","signatures":[{"sig":"MEUCIQDc26i8l+6NtzjaXxfEXJCO/Hd6C8NlYJhGvgC1lBhmQgIgQ5HAqxD9EfFJ8Jequkylm5OyUWV5G8YJZpRSH8RBKV4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":381376},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"061b261fe609667b769e038056a50df216e230c1","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@fogpipe/forma-core":"^0.10.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.10.1_1768997374958_0.7226332705896121","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"@fogpipe/forma-react","version":"0.10.2","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.10.2","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"9f26d3f7adef6a419042d0e2c331d530fff2c082","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.10.2.tgz","fileCount":19,"integrity":"sha512-AeNwoPrkl2vQZSfGhKcv6stOfk3hWQV1cZnOpAJMLDHs1dXXHFhvsbwdkSqP2zb+ERoocULG0LyLzP9kpoImsw==","signatures":[{"sig":"MEQCIAF2k2+FdtqoOztJW8osrbzNyrmoUpTENf+AQJ8E3BUiAiAbwDIgyHOAHWAfJW95exndPXoSaX2m8GjPvZSay9U8hA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393322},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"24b12d9d0be39ef78d2a637a6b8b4a20b15f718c","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.12.0","dependencies":{"@fogpipe/forma-core":"^0.10.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.10.2_1768998323596_0.5453080130770984","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"@fogpipe/forma-react","version":"0.10.3","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.10.3","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"916bd1881b7a267f51ccc1749e751dbdc423fa69","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.10.3.tgz","fileCount":19,"integrity":"sha512-VgkUN4voZdBDVl2w5zaINAcopzlcM3o9fH1YZ+Ou9tVXpRG8S5UK/c3yK+DH09lhJ/oELQ0HnTHfl9FdDkyqCw==","signatures":[{"sig":"MEUCIAN2H9QqDnldUKABKLl4PTAba5G6qlPwVLQSU6h2M1jCAiEAyaRpHIwpDosvkUaDAyT/q3qc75q+s2Z+T37illDU9Sc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.10.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393322},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"83b4d6fb0733fde5b6999a3d0ecf3d813d753acc","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@fogpipe/forma-core":"^0.10.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.10.3_1769501142740_0.7327768810639692","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"@fogpipe/forma-react","version":"0.10.4","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.10.4","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"3565b7f85035d5cd50b63f6d13c18b7c2312c43c","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.10.4.tgz","fileCount":19,"integrity":"sha512-xWKQ7+R2Av5BrN3oGnXrld1xloUohR9RTwUhZfOFpXxN091RPpYhT2M0wCZryPjRv0DerQmfp8oMJzf9qVTnqg==","signatures":[{"sig":"MEUCIQC977P5y24kAcE7pSo7/GQyfst5JywUomd7LbXDlmslgQIgcrHuvsKY2UfUpQOZew+4QfCmcJ3bW3pmIzrKb4IznB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.10.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393322},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"5162803acc22ed65602972f14d01b5d463eb9e1e","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@fogpipe/forma-core":"^0.10.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.10.4_1769506572238_0.5945239593447169","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@fogpipe/forma-react","version":"0.11.1","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.11.1","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"62979a37b040ab8f37611173c999d340b29d18e9","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.11.1.tgz","fileCount":20,"integrity":"sha512-zRijgxMCUBfOBKlwqMT19w9TbS3fR5wKoEVZYyteMMdFFCtPrIXrU4qWiIFcQ6K5JHRrqKY5cgUc8I51VhWMLA==","signatures":[{"sig":"MEYCIQDcgOtkRaRwypeb1qc/uPDXFFuUOtLmh9f0G7q/ze2PBQIhALRwkRdm97Uso7NbvcbKwm5iGPp2TKX78Uheb5/peHHz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":414754},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"7913c511a21220b0e396819f3e5d8a6dcc551139","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@fogpipe/forma-core":"^0.11.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.11.1_1770628119954_0.3321403322862695","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"name":"@fogpipe/forma-react","version":"0.11.2","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.11.2","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"5adea41972b57de9c7fc2b05186f25789a8805da","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.11.2.tgz","fileCount":20,"integrity":"sha512-hO4AFXjCC7JqVkx8Dqr1RCJO0rrNG06RWSZxwjmCqpSj+BMY42YjgaaGS+evIQUXmddEWpqK5F5kviulyWvdrQ==","signatures":[{"sig":"MEUCIDsl0rCk34pmZyllf9SeAii6Z4HhcqqHJ4ff0/ZIc8orAiEA3K27aAoTl28kBmMG1rITREA8fGx2Gmuf2AqZxiLvskI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":422089},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"2d50a0a3e4d8d93a232b957a0739a9b15a76cf6c","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@fogpipe/forma-core":"^0.11.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.11.2_1770641439085_0.338318454347619","host":"s3://npm-registry-packages-npm-production"}},"0.12.0-alpha.1":{"name":"@fogpipe/forma-react","version":"0.12.0-alpha.1","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.12.0-alpha.1","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"19be4cb92cc715175e2a4d699cea056501002a53","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.12.0-alpha.1.tgz","fileCount":20,"integrity":"sha512-gSmTWMBL4yr2iBjzOOVCvgFE+tlShfOnCjthi5JREg7I57MD4R0SSQo5mN/tYD2sT+TpSrTdyzVaitqO8BWZlw==","signatures":[{"sig":"MEQCIAaj1hMiQlM4DI3z2Uy9yl3GgiN+mwWJVE6mIB+l1NwJAiBNIeiuY6bF8xkBob2qq+YKUKYwLXeDm2h3hmGZEn6MmQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.12.0-alpha.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":436624},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"cdfc33f5c03c25a52c2ed232877f99954baf727f","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@fogpipe/forma-core":"^0.12.0-alpha.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.12.0-alpha.1_1770715895493_0.46195329834063537","host":"s3://npm-registry-packages-npm-production"}},"0.12.0-alpha.2":{"name":"@fogpipe/forma-react","version":"0.12.0-alpha.2","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.12.0-alpha.2","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"41fa1f6e1d925b952a04e4ec89798e45f03f1558","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.12.0-alpha.2.tgz","fileCount":20,"integrity":"sha512-4Jc2fL5tg8IoD27v0jM+adHEbb6K9aByJ1sOq5hLOaA0TpHfo+BxrQG2Xz0rNjez6Y83TMWkQUu4ARHwal+S7w==","signatures":[{"sig":"MEYCIQCbUDz4Ucn6DoZ8No0k6QCHKNiqhT88Xk2Jx7zAuWaC1gIhAN7tbsJl5rB9D3guiEomnZyXowrKwLely9mH+GE8zDj2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.12.0-alpha.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":458554},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"46e6d47523fe7dbbb8f0e4bbaadb5095cf8e6599","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@fogpipe/forma-core":"^0.12.0-alpha.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.12.0-alpha.2_1770813694058_0.9287388551972646","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@fogpipe/forma-react","version":"0.12.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.12.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"c8bb6c25b6e62512a188f4c54b3af12b7fd86648","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.12.0.tgz","fileCount":20,"integrity":"sha512-j8pabinmys1wbydCDSPy12xC6fDCZtTq8bYWkahjsCOTnWxe1k4yvdm2SfDzqjeJnPraUeQ/0ZHNW3BHMY2vxQ==","signatures":[{"sig":"MEQCIF/+Dxlhxy40vd11YIXYX5iRgwoTPzz26oMa5AfkU23MAiAVPt3bZfOUETVFGPZDkxLlec3DUf2+anm/l1WTovonhg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":458538},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"3c667e5b06f98b21c7d8741b77148d0682b62a92","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@fogpipe/forma-core":"^0.12.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.12.0_1770816726529_0.4989357235530205","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"@fogpipe/forma-react","version":"0.13.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.13.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"f2a40c3d2b2c034f4572518048feca0094ea5b41","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.13.0.tgz","fileCount":20,"integrity":"sha512-Yp4ZgEGjV7QptUk60WPycBOjTqUAmhHArEX+6EPxmMIjZKIEZc8N4tNZsmEcN4iZxpW1FsbypoyPHk4Y8WLGuQ==","signatures":[{"sig":"MEQCIARJvNTaCoT5RPuuY4aTiBgdNRqHMAj+KzgTiFLIp8KGAiBLTjMzGudWvja3zPPG7hJJ5KcG8JEhLPKaAkSF93XnRA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":476646},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"bd15b7b9661943d153e570bb921e70374abddd2b","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.6.2","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.13.0","dependencies":{"@fogpipe/forma-core":"^0.13.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.13.0_1771944807589_0.7407663287735444","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@fogpipe/forma-react","version":"0.14.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.14.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"9fe45256991ff56ccb71d89703c091b109b60e08","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.14.0.tgz","fileCount":22,"integrity":"sha512-nTLKK5Z/D+cFZkyB4aIfnAujDpff2AIWKaj6IvyHG0XNai31UDVoSbUYTDmsDk7h0L6f3FYeJwpeGIkEdwWftQ==","signatures":[{"sig":"MEUCIQD0wP7jsY6UJmlBHIoN83wYWnNsLceEJc6i6lSk0W+WVgIgHZgGNIysXhSISV35VEQ/QXsfwnG7UoAVLYy6CgHeBiE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":536567},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"10100c60492a01e2c1764e5bbd28e027b684a7da","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.9.0","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@fogpipe/forma-core":"^0.14.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.14.0_1773043398370_0.4448080472278779","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@fogpipe/forma-react","version":"0.15.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.15.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"877cabc26dc0b54a2136fa7b9276143f4bfd0e29","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.15.0.tgz","fileCount":22,"integrity":"sha512-wcBkHKhPNwTp5qR3rVLWshxh5oD5tAobzlYiqwaV3UMnV1FpHdsfPmUGdGOilx3qA4Wrx/pOXaEXfN8f/+TSsg==","signatures":[{"sig":"MEQCIAlQ8/xBE7RNMdIjoySThEZaP0Ba+MdE0+3QHhZeHCPhAiBrMwBobrl5OQHlbu+QR7i6BS8R8pIgSFoTnIEeCycFog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540250},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"7e14dbddd373eea2ac3fc02f4cae059dcf4f7e8a","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.9.0","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@fogpipe/forma-core":"^0.15.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.15.0_1773317777239_0.9650021336538477","host":"s3://npm-registry-packages-npm-production"}},"0.16.0":{"name":"@fogpipe/forma-react","version":"0.16.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.16.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"0c2017d5545b458342a942ed0115f9a7076242c0","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.16.0.tgz","fileCount":22,"integrity":"sha512-FtpTVApF6cpJv/cEsMOJ7/7JXjPyjrMgQxScCx/wUWH0cI99WDX564HfHBn4owwW+fgfhrKTsGR485u9GjOVkw==","signatures":[{"sig":"MEYCIQCFTJHT8ty5f7J2pn1q7IH48bkY+wMbgS/e0e6RalrRDgIhAMMW8+l3CKvNfBj/HynolhUaW9MPhxjHGbrKk31V1xeM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":540464},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"de96af07cb1a370c6dda75924ba9395ecae88ce0","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.9.0","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@fogpipe/forma-core":"^0.16.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.16.0_1773321205277_0.3056591413440515","host":"s3://npm-registry-packages-npm-production"}},"0.17.0":{"name":"@fogpipe/forma-react","version":"0.17.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.17.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"0b4824803e8a97f3752ec09280e2bf9fcabee12c","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.17.0.tgz","fileCount":22,"integrity":"sha512-Q//1VjRBJO35wdbcOBcKQga7sHE8p5ajRxGZ69X3i1MfOrQ/0C0zkJoxdGZfJ/U9ca2ABeksjplx3N+oVWDkiw==","signatures":[{"sig":"MEQCIGRPu/iKl6M0Jyow4iXE6J06Xs895nfz9QD4i0RDS21pAiBLtPK1p117ZVBc+JCWC5YJn47EF+XNrvqrXu2QHCmdaA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":552963},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"9693f4e9b1475f1fb430017650c12d09aac13215","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.9.0","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@fogpipe/forma-core":"^0.17.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.17.0_1773400679720_0.36876151168331184","host":"s3://npm-registry-packages-npm-production"}},"0.17.1":{"name":"@fogpipe/forma-react","version":"0.17.1","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.17.1","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"845df29e56211d86ed089fd1df5cbcae59da7d9a","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.17.1.tgz","fileCount":22,"integrity":"sha512-Af0rXoE9wXyTp4dh+AqQSB/6o32NgxZmYw7bF9yggwmdOo2JXSfyon52VJgdhNaPSDYEicyp+BtCxlheGKE+xQ==","signatures":[{"sig":"MEUCIQCTtXWmp3vMS68MzPPYyqxrdwJnEAVhMkx4hsZkQR+7BQIgGQvO5qWICN8VLdrS80pMcno2CkkHxlxJkIzcKCLVbLA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.17.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":574650},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}}},"gitHead":"5b62c694d7963822058d2a9b656a345360417a68","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.9.0","description":"Headless React form renderer for Forma specifications","directories":{},"_nodeVersion":"24.14.0","dependencies":{"@fogpipe/forma-core":"^0.17.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.17.1_1773655183719_0.8643998288531667","host":"s3://npm-registry-packages-npm-production"}},"0.18.0":{"name":"@fogpipe/forma-react","version":"0.18.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.18.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"c2dde05a86255894a8bdeece2e812a175e8e8c47","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.18.0.tgz","fileCount":53,"integrity":"sha512-wAWUPyu53EklC/a7lW4j6byWth7IVJJ1uTJtJse06FNsbBseFBjDPkqUkcei9SULxbC6StZ/3xpL07QRFARtew==","signatures":[{"sig":"MEUCIQDCapWCXlrfTFYUwGuBaJ2TG327bIgPyPgHAo0ZsrWH7gIgfPFFQrK9Oi6LSPXsmQ638msE+5q6idEBB1NMyyEFFOw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":784889},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./defaults":{"import":{"types":"./dist/defaults/index.d.ts","default":"./dist/defaults/index.js"},"default":{"types":"./dist/defaults/index.d.ts","default":"./dist/defaults/index.js"}},"./defaults/styles.css":"./dist/defaults/styles/forma-defaults.css"},"gitHead":"0f96a21cf79ea5e638b6df1bc49738851de6fc88","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.9.0","description":"Headless React form renderer for Forma specifications","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.14.0","dependencies":{"@fogpipe/forma-core":"^0.18.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.18.0_1773670970027_0.3813070843876858","host":"s3://npm-registry-packages-npm-production"}},"0.19.0":{"name":"@fogpipe/forma-react","version":"0.19.0","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.19.0","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"5b38db34962f78c5340fd39d5b54b84862288ab5","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.19.0.tgz","fileCount":53,"integrity":"sha512-SC7YV9aFlRkWOFb1XeBneXEyyXqcGtODu5IST6AYkNgIfGQBun6FIzGZh9pd/EW9xHnOc44Iw4Mmuzq4IA9KQg==","signatures":[{"sig":"MEQCIHnfXU5yufGW+JAzBZiE9lIbYKTQhsevJagT2oLe2YZkAiBp2YOkSEYpNc+gh1hGt9RfyRzKtQEUbrXvNZMuLxQcqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.19.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":806137},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./defaults":{"import":{"types":"./dist/defaults/index.d.ts","default":"./dist/defaults/index.js"},"default":{"types":"./dist/defaults/index.d.ts","default":"./dist/defaults/index.js"}},"./defaults/styles.css":"./dist/defaults/styles/forma-defaults.css"},"gitHead":"3c2abeff638641c74f224731a77247011aa9684e","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.9.0","description":"Headless React form renderer for Forma specifications","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.14.0","dependencies":{"@fogpipe/forma-core":"^0.19.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.19.0_1773910768506_0.4832091449999152","host":"s3://npm-registry-packages-npm-production"}},"0.19.1":{"name":"@fogpipe/forma-react","version":"0.19.1","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","_id":"@fogpipe/forma-react@0.19.1","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"homepage":"https://github.com/fogpipe/forma#readme","bugs":{"url":"https://github.com/fogpipe/forma/issues"},"dist":{"shasum":"4f5e7139c09da845de32516644a19fb685e8ed76","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.19.1.tgz","fileCount":53,"integrity":"sha512-ayRCJdto3YPNG5ba08J/IbK8ONHLmJd9K4OTrfAFbRAc3G57XEPxrZSfucoGPowp5UJctFPfaOb5MOYqWlj03w==","signatures":[{"sig":"MEYCIQCWDXeAO0fWExlKgmyDmyuVlLxjJkeYwGnGkaQfZmiIhwIhALdfc7YeUVT/nYMEpR3m0xaMJTB2AS3f3dwXJPPcqnDb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.19.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":806131},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./defaults":{"import":{"types":"./dist/defaults/index.d.ts","default":"./dist/defaults/index.js"},"default":{"types":"./dist/defaults/index.d.ts","default":"./dist/defaults/index.js"}},"./defaults/styles.css":"./dist/defaults/styles/forma-defaults.css"},"gitHead":"fc7f0c55f69e354ef8fc7e66fd25c82e73f24708","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts,.tsx","test":"vitest run","build":"tsup","clean":"rm -rf dist","test:watch":"vitest","check-types":"tsc --noEmit","test:coverage":"vitest run --coverage","check-types:test":"tsc --project tsconfig.test.json --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"repository":{"url":"git+https://github.com/fogpipe/forma.git","type":"git","directory":"packages/forma-react"},"_npmVersion":"11.9.0","description":"Headless React form renderer for Forma specifications","directories":{},"sideEffects":["*.css"],"_nodeVersion":"24.14.0","dependencies":{"@fogpipe/forma-core":"^0.19.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.3.5","jsdom":"^26.0.0","react":"^19.0.0","vitest":"^2.0.0","react-dom":"^19.0.0","typescript":"^5.7.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","@fogpipe/eslint-config":"*","@testing-library/react":"^16.2.0","@testing-library/jest-dom":"^6.6.3","@fogpipe/typescript-config":"*","@testing-library/user-event":"^14.5.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"_npmOperationalInternal":{"tmp":"tmp/forma-react_0.19.1_1773924211007_0.9391425895858181","host":"s3://npm-registry-packages-npm-production"}},"0.19.2":{"name":"@fogpipe/forma-react","version":"0.19.2","description":"Headless React form renderer for Forma specifications","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"default":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./defaults":{"import":{"types":"./dist/defaults/index.d.ts","default":"./dist/defaults/index.js"},"default":{"types":"./dist/defaults/index.d.ts","default":"./dist/defaults/index.js"}},"./defaults/styles.css":"./dist/defaults/styles/forma-defaults.css"},"sideEffects":["*.css"],"scripts":{"build":"tsup","dev":"tsup --watch","check-types":"tsc --noEmit","check-types:test":"tsc --project tsconfig.test.json --noEmit","lint":"eslint src --ext .ts,.tsx","clean":"rm -rf dist","test":"vitest run","test:watch":"vitest","test:coverage":"vitest run --coverage"},"dependencies":{"@fogpipe/forma-core":"^0.19.2"},"peerDependencies":{"react":"^18.0.0 || ^19.0.0"},"devDependencies":{"@fogpipe/eslint-config":"*","@fogpipe/typescript-config":"*","@testing-library/jest-dom":"^6.6.3","@testing-library/react":"^16.2.0","@testing-library/user-event":"^14.5.2","@types/react":"^19.0.0","@vitejs/plugin-react":"^4.3.4","jsdom":"^26.0.0","react":"^19.0.0","react-dom":"^19.0.0","tsup":"^8.3.5","typescript":"^5.7.2","vitest":"^2.0.0"},"keywords":["form","react","headless","dynamic-forms","wizard","feel"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/fogpipe/forma.git","directory":"packages/forma-react"},"bugs":{"url":"https://github.com/fogpipe/forma/issues"},"homepage":"https://github.com/fogpipe/forma#readme","publishConfig":{"access":"public"},"gitHead":"1c5018c0e4bc587f671167fe64e6e3fc3b679784","_id":"@fogpipe/forma-react@0.19.2","_nodeVersion":"24.15.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-iAzTkdL+pcEL/DGmvEiXW8tZdRV+XUibZYe1OhE1qFPFyQI+5REAhJ83Ia8SJPU66CoHtuWwRbUK6uqMsJ8iGQ==","shasum":"9b6ecbec48448a146b13aaf602da62fd14263f0b","tarball":"https://registry.npmjs.org/@fogpipe/forma-react/-/forma-react-0.19.2.tgz","fileCount":53,"unpackedSize":808491,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@fogpipe%2fforma-react@0.19.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHleYRrg3wMRVlGArWvCM2gCNoiuWLQiwMlCQkV7DeEKAiBBBUYN+QpaPJDzDEdypFVS52pcLy7WDLN03HDGJsfuig=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:3a7237be-0c9f-4be2-b4de-bdd702daf575"}},"directories":{},"maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/forma-react_0.19.2_1779884895115_0.6059220530956253"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-09T12:10:29.091Z","modified":"2026-05-27T12:28:15.652Z","0.6.0":"2026-01-09T12:10:29.314Z","0.7.0":"2026-01-09T12:33:35.017Z","0.8.0":"2026-01-15T12:15:47.050Z","0.8.1":"2026-01-15T12:27:04.605Z","0.8.2":"2026-01-15T14:10:34.714Z","0.9.0":"2026-01-16T08:35:27.128Z","0.10.0":"2026-01-19T15:07:09.111Z","0.10.1":"2026-01-21T12:09:35.085Z","0.10.2":"2026-01-21T12:25:23.749Z","0.10.3":"2026-01-27T08:05:42.871Z","0.10.4":"2026-01-27T09:36:12.399Z","0.11.1":"2026-02-09T09:08:40.117Z","0.11.2":"2026-02-09T12:50:39.225Z","0.12.0-alpha.1":"2026-02-10T09:31:35.642Z","0.12.0-alpha.2":"2026-02-11T12:41:34.214Z","0.12.0":"2026-02-11T13:32:06.674Z","0.13.0":"2026-02-24T14:53:27.742Z","0.14.0":"2026-03-09T08:03:18.527Z","0.15.0":"2026-03-12T12:16:17.404Z","0.16.0":"2026-03-12T13:13:25.465Z","0.17.0":"2026-03-13T11:17:59.943Z","0.17.1":"2026-03-16T09:59:43.877Z","0.18.0":"2026-03-16T14:22:50.223Z","0.19.0":"2026-03-19T08:59:28.692Z","0.19.1":"2026-03-19T12:43:31.168Z","0.19.2":"2026-05-27T12:28:15.296Z"},"bugs":{"url":"https://github.com/fogpipe/forma/issues"},"license":"MIT","homepage":"https://github.com/fogpipe/forma#readme","keywords":["form","react","headless","dynamic-forms","wizard","feel"],"repository":{"type":"git","url":"git+https://github.com/fogpipe/forma.git","directory":"packages/forma-react"},"description":"Headless React form renderer for Forma specifications","maintainers":[{"name":"lillheaton","email":"emil@fogpipe.com"}],"readme":"# @fogpipe/forma-react\n\nHeadless React form renderer for Forma specifications.\n\n## Installation\n\n```bash\nnpm install @fogpipe/forma-core @fogpipe/forma-react\n```\n\n## Features\n\n- **Headless Architecture** - Bring your own UI components\n- **useForma Hook** - Complete form state management\n- **FormRenderer Component** - Declarative form rendering\n- **Multi-Page Support** - Built-in wizard navigation\n- **Type Safety** - Full TypeScript support\n- **Accessibility** - Built-in ARIA attribute support\n- **Error Boundary** - Graceful error handling for form components\n\n## Quick Start\n\n### 1. Define Your Components\n\nComponents receive `{ field, spec }` props. The `field` object contains all field state and handlers:\n\n```tsx\nimport type {\n  ComponentMap,\n  TextComponentProps,\n  BooleanComponentProps,\n} from \"@fogpipe/forma-react\";\n\nconst TextInput = ({ field }: TextComponentProps) => (\n  <div>\n    <input\n      type=\"text\"\n      value={field.value || \"\"}\n      onChange={(e) => field.onChange(e.target.value)}\n      onBlur={field.onBlur}\n      placeholder={field.placeholder}\n      aria-invalid={field[\"aria-invalid\"]}\n      aria-describedby={field[\"aria-describedby\"]}\n      aria-required={field[\"aria-required\"]}\n    />\n    {field.errors.map((e, i) => (\n      <span key={i} className=\"error\">\n        {e.message}\n      </span>\n    ))}\n  </div>\n);\n\nconst Checkbox = ({ field }: BooleanComponentProps) => (\n  <label>\n    <input\n      type=\"checkbox\"\n      checked={field.value || false}\n      onChange={(e) => field.onChange(e.target.checked)}\n    />\n    {field.label}\n  </label>\n);\n\nconst components: ComponentMap = {\n  text: TextInput,\n  email: TextInput,\n  boolean: Checkbox,\n  // ... more components\n};\n```\n\n### 2. Render the Form\n\n```tsx\nimport { FormRenderer } from \"@fogpipe/forma-react\";\nimport type { Forma } from \"@fogpipe/forma-core\";\n\nconst myForm: Forma = {\n  meta: { title: \"Contact Us\" },\n  fields: [\n    { id: \"name\", type: \"text\", label: \"Name\", required: true },\n    { id: \"email\", type: \"email\", label: \"Email\", required: true },\n    { id: \"subscribe\", type: \"boolean\", label: \"Subscribe to newsletter\" },\n  ],\n};\n\nfunction App() {\n  const handleSubmit = (data: Record<string, unknown>) => {\n    console.log(\"Submitted:\", data);\n  };\n\n  return (\n    <FormRenderer\n      spec={myForm}\n      components={components}\n      onSubmit={handleSubmit}\n    />\n  );\n}\n```\n\n## useForma Hook\n\nFor custom rendering, use the `useForma` hook directly:\n\n```tsx\nimport { useForma } from \"@fogpipe/forma-react\";\n\nfunction CustomForm({ spec }: { spec: Forma }) {\n  const {\n    data,\n    errors,\n    visibility,\n    required,\n    isValid,\n    isSubmitting,\n    setFieldValue,\n    setFieldTouched,\n    submitForm,\n  } = useForma({\n    spec,\n    onSubmit: (data) => console.log(data),\n  });\n\n  return (\n    <form\n      onSubmit={(e) => {\n        e.preventDefault();\n        submitForm();\n      }}\n    >\n      {spec.fields.map((field) => {\n        if (!visibility[field.id]) return null;\n\n        return (\n          <div key={field.id}>\n            <label>{field.label}</label>\n            <input\n              value={String(data[field.id] || \"\")}\n              onChange={(e) => setFieldValue(field.id, e.target.value)}\n              onBlur={() => setFieldTouched(field.id)}\n            />\n          </div>\n        );\n      })}\n\n      <button type=\"submit\" disabled={isSubmitting || !isValid}>\n        Submit\n      </button>\n    </form>\n  );\n}\n```\n\n## Multi-Page Forms (Wizard)\n\n```tsx\nfunction WizardForm({ spec }: { spec: Forma }) {\n  const forma = useForma({ spec, onSubmit: handleSubmit });\n  const { wizard } = forma;\n\n  if (!wizard) return <div>Not a wizard form</div>;\n\n  return (\n    <div>\n      {/* Page indicator */}\n      <div>\n        Page {wizard.currentPageIndex + 1} of {wizard.pages.length}\n      </div>\n\n      {/* Current page fields */}\n      {wizard.currentPage?.fields.map((fieldId) => {\n        const field = spec.fields.find((f) => f.id === fieldId);\n        if (!field) return null;\n        // Render field...\n      })}\n\n      {/* Navigation */}\n      <button onClick={wizard.previousPage} disabled={!wizard.hasPreviousPage}>\n        Previous\n      </button>\n\n      {wizard.isLastPage ? (\n        <button onClick={forma.submitForm}>Submit</button>\n      ) : (\n        <button onClick={wizard.nextPage} disabled={!wizard.canProceed}>\n          Next\n        </button>\n      )}\n    </div>\n  );\n}\n```\n\n## Event System\n\nThe event system lets you observe form lifecycle events for side effects like analytics, data injection, and external state sync. Events do not trigger React re-renders.\n\n### Available Events\n\n| Event          | Description                                         |\n| -------------- | --------------------------------------------------- |\n| `fieldChanged` | Fires after a field value changes                   |\n| `preSubmit`    | Fires before validation; `data` is mutable          |\n| `postSubmit`   | Fires after submission (success, error, or invalid) |\n| `pageChanged`  | Fires when wizard page changes                      |\n| `formReset`    | Fires after `resetForm()` completes                 |\n\n### Declarative Registration\n\nPass listeners via the `on` option — callbacks are stable (ref-based):\n\n```tsx\nconst forma = useForma({\n  spec,\n  onSubmit: handleSubmit,\n  on: {\n    fieldChanged: (event) => {\n      analytics.track(\"field_changed\", {\n        path: event.path,\n        source: event.source,\n      });\n    },\n    preSubmit: async (event) => {\n      event.data.token = await getCSRFToken();\n    },\n    postSubmit: (event) => {\n      if (event.success) router.push(\"/thank-you\");\n    },\n  },\n});\n```\n\n### Imperative Registration\n\nRegister listeners dynamically — returns an unsubscribe function:\n\n```tsx\nconst forma = useForma({ spec, onSubmit: handleSubmit });\n\nuseEffect(() => {\n  const unsubscribe = forma.on(\"fieldChanged\", (event) => {\n    console.log(`${event.path}: ${event.previousValue} → ${event.value}`);\n  });\n  return unsubscribe;\n}, [forma]);\n```\n\n### Event Payloads\n\n**`fieldChanged`**: `{ path, value, previousValue, source }` where `source` is `'user' | 'reset' | 'setValues'`\n\n**`preSubmit`**: `{ data, computed }` — mutate `data` to inject fields before validation\n\n**`postSubmit`**: `{ data, success, error?, validationErrors? }`\n\n**`pageChanged`**: `{ fromIndex, toIndex, page }`\n\n**`formReset`**: `{}` (no payload)\n\n## API Reference\n\n### FormRenderer Props\n\n| Prop           | Type                                     | Description                      |\n| -------------- | ---------------------------------------- | -------------------------------- |\n| `spec`         | `Forma`                                  | The Forma specification          |\n| `components`   | `ComponentMap`                           | Map of field types to components |\n| `initialData`  | `Record<string, unknown>`                | Initial form values              |\n| `onSubmit`     | `(data) => void`                         | Submit handler                   |\n| `onChange`     | `(data, computed) => void`               | Change handler                   |\n| `layout`       | `React.ComponentType<LayoutProps>`       | Custom layout                    |\n| `fieldWrapper` | `React.ComponentType<FieldWrapperProps>` | Custom field wrapper             |\n| `validateOn`   | `\"change\" \\| \"blur\" \\| \"submit\"`         | Validation timing                |\n\n### FormRenderer Ref\n\n```tsx\nconst formRef = useRef<FormRendererHandle>(null);\n\n// Imperative methods\nformRef.current?.submitForm();\nformRef.current?.resetForm();\nformRef.current?.validateForm();\nformRef.current?.focusFirstError();\nformRef.current?.getValues();\nformRef.current?.setValues({ name: \"John\" });\n```\n\n### useForma Return Value\n\n| Property       | Type                      | Description            |\n| -------------- | ------------------------- | ---------------------- |\n| `data`         | `Record<string, unknown>` | Current form values    |\n| `computed`     | `Record<string, unknown>` | Computed field values  |\n| `visibility`   | `Record<string, boolean>` | Field visibility map   |\n| `required`     | `Record<string, boolean>` | Field required state   |\n| `enabled`      | `Record<string, boolean>` | Field enabled state    |\n| `errors`       | `FieldError[]`            | Validation errors      |\n| `isValid`      | `boolean`                 | Form validity          |\n| `isSubmitting` | `boolean`                 | Submission in progress |\n| `isDirty`      | `boolean`                 | Any field modified     |\n| `wizard`       | `WizardHelpers \\| null`   | Wizard navigation      |\n\n### useForma Methods\n\n| Method                            | Description                                  |\n| --------------------------------- | -------------------------------------------- |\n| `setFieldValue(path, value)`      | Set field value                              |\n| `setFieldTouched(path, touched?)` | Mark field as touched                        |\n| `setValues(values)`               | Set multiple values                          |\n| `validateField(path)`             | Validate single field                        |\n| `validateForm()`                  | Validate entire form                         |\n| `submitForm()`                    | Submit the form                              |\n| `resetForm()`                     | Reset to initial values                      |\n| `on(event, listener)`             | Register event listener; returns unsubscribe |\n\n### useForma Options\n\n| Option                 | Type                             | Default  | Description                 |\n| ---------------------- | -------------------------------- | -------- | --------------------------- |\n| `spec`                 | `Forma`                          | required | The Forma specification     |\n| `initialData`          | `Record<string, unknown>`        | `{}`     | Initial form values         |\n| `onSubmit`             | `(data) => void`                 | -        | Submit handler              |\n| `onChange`             | `(data, computed) => void`       | -        | Change handler              |\n| `validateOn`           | `\"change\" \\| \"blur\" \\| \"submit\"` | `\"blur\"` | When to validate            |\n| `referenceData`        | `Record<string, unknown>`        | -        | Additional reference data   |\n| `validationDebounceMs` | `number`                         | `0`      | Debounce validation (ms)    |\n| `on`                   | `FormaEvents`                    | -        | Declarative event listeners |\n\n## Error Boundary\n\nWrap forms with `FormaErrorBoundary` to catch render errors gracefully:\n\n```tsx\nimport { FormRenderer, FormaErrorBoundary } from \"@fogpipe/forma-react\";\n\nfunction App() {\n  return (\n    <FormaErrorBoundary\n      fallback={<div>Something went wrong with the form</div>}\n      onError={(error) => console.error(\"Form error:\", error)}\n    >\n      <FormRenderer spec={myForm} components={components} />\n    </FormaErrorBoundary>\n  );\n}\n```\n\nThe error boundary supports:\n\n- Custom fallback UI (static or function)\n- `onError` callback for logging\n- `resetKey` prop to reset error state\n\n## Default Components\n\nDon't want to build every field component yourself? The default component library gives you a working form in 2 lines:\n\n```tsx\nimport { DefaultFormRenderer } from \"@fogpipe/forma-react/defaults\";\nimport \"@fogpipe/forma-react/defaults/styles.css\";\n\n<DefaultFormRenderer spec={formaSpec} onSubmit={handleSubmit} />;\n```\n\nThis renders a fully styled, accessible form with all 18 field types, error handling, and wizard support — zero configuration.\n\n### Override Individual Components\n\nSwap any component while keeping the rest:\n\n```tsx\nimport { FormRenderer } from \"@fogpipe/forma-react\";\nimport {\n  defaultComponentMap,\n  defaultFieldWrapper,\n  defaultLayout,\n} from \"@fogpipe/forma-react/defaults\";\nimport \"@fogpipe/forma-react/defaults/styles.css\";\n\nconst components = { ...defaultComponentMap, select: MyFancySelect };\n\n<FormRenderer\n  spec={formaSpec}\n  components={components}\n  fieldWrapper={defaultFieldWrapper}\n  layout={defaultLayout}\n  onSubmit={handleSubmit}\n/>;\n```\n\n### Wizard Forms\n\nEnable wizard layout for multi-page forms:\n\n```tsx\n<DefaultFormRenderer spec={wizardSpec} onSubmit={handleSubmit} wizardLayout />\n```\n\n### Theming\n\nOverride CSS variables to customize the look:\n\n```css\n:root {\n  --forma-color-primary: #7c3aed;\n  --forma-color-error: #e11d48;\n  --forma-radius: 12px;\n  --forma-font-family: \"Inter\", sans-serif;\n}\n```\n\nDark mode works via `[data-theme=\"dark\"]` attribute or `prefers-color-scheme: dark` media query.\n\n### Component Reference\n\n| Field Type | Component | Renders |\n|---|---|---|\n| `text`, `email`, `phone`, `url`, `password` | TextInput | `<input>` with type mapping |\n| `textarea` | TextareaInput | `<textarea>` |\n| `number` | NumberInput | `<input type=\"number\">` with parseFloat |\n| `integer` | IntegerInput | `<input type=\"number\">` with parseInt |\n| `boolean` | BooleanInput | Custom styled checkbox |\n| `date` | DateInput | `<input type=\"date\">` |\n| `datetime` | DateTimeInput | `<input type=\"datetime-local\">` |\n| `select` | SelectInput | Native `<select>` with custom arrow |\n| `multiselect` | MultiSelectInput | Checkbox group |\n| `array` | ArrayField | Item list with Add/Remove |\n| `object` | ObjectField | `<fieldset>` container |\n| `computed` | ComputedDisplay | Read-only `<output>` |\n| `display` | DisplayField | Static content `<div>` |\n| `matrix` | MatrixField | `<table>` with radio/checkbox cells |\n| `fallback` | FallbackField | Text input + dev warning |\n\nSee the [full documentation](https://docs.formidable.fogpipe.com/forma-react/default-components) for theming details, all CSS variables, and advanced usage.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}