{"_id":"svelte-dynamic-forms","_rev":"30-f592597ae3abca06e8d82ae4bd58b47b","name":"svelte-dynamic-forms","dist-tags":{"latest":"1.0.25"},"versions":{"0.0.1":{"name":"svelte-dynamic-forms","version":"0.0.1","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@0.0.1","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://github.com/UNAFFI/svelte-dynamic-forms","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"6c8b8768dcace815591d30ccda0c5ff8219efdd3","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-0.0.1.tgz","fileCount":15,"integrity":"sha512-u4kXCh83yZfTMifzMcX7tJuZoUVBxxGgA3+p2WjCxmBw2s4S7EsT3e/ZhwJCHQKZ/k4VomxIaieZ18D9TTNW8g==","signatures":[{"sig":"MEYCIQDIebjpbHsZQMxlMgsji0IL357quVuqoe1hirXKTUTi2gIhAOq8SlO0YJ4VD4ihEOHRc1ggGCA1iREPlMtcb3K4DRyx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62235},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"9bf022c077948ae9aa6c74c6df39f12a2aeaecde","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_0.0.1_1755510801279_0.2669663280366201","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"svelte-dynamic-forms","version":"0.0.2","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@0.0.2","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"71498b4e3e39a5bea8cf8fd074724e4ac720266a","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-0.0.2.tgz","fileCount":23,"integrity":"sha512-MYmG3SZIzbEuaJBmcGn7LJrHK6W7+gCJDH7gM8v9AwyBECCETW25zw/lQNS3DIr1PysO0V8E54seLVWntpyeJA==","signatures":[{"sig":"MEQCIEj2J6PxP0KwPPsde+kwn1y6MRjcWSP1S+kNE0OPjDDFAiBRaMxJZYIuTb3dH8RYC57FiAvc75/v2BDZ4Q5Ee5BxSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67947},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"f7c41adf43ca2cf11f361f0f57dfa9a92f28e33b","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_0.0.2_1755512631502_0.5690589436374811","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"svelte-dynamic-forms","version":"1.0.0","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.0","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"2bfa20fbeb0a4296efd6612f3b3aff553e3b3932","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.0.tgz","fileCount":23,"integrity":"sha512-GwAp9LJhzTPNVn+RYu2Bcbm564ll/USyvs56G2KKpovC8wkHuxU7tldno29oS/YH12JGA1DXfyDA1Em++hIqrw==","signatures":[{"sig":"MEUCIBc1Wnl3yL5Z2CMIcbDZzByzdFr2DQWU30PrgjNVX9aTAiEA70HlWZGPJ+LBeQw53dJkKZ0hpvwyYQVvqvy4sHhZjPg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67947},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"75aa438e3074d8d8c68ace4870b03be74abc487d","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.0_1755513484471_0.5825483521885793","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"svelte-dynamic-forms","version":"1.0.1","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.1","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"cb83f46eede7dcf79e117f84286bf0dce961f05d","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.1.tgz","fileCount":15,"integrity":"sha512-Tk4HfDUctgyooZO4r0SbrF++p3TsFoAMijDO8b1T6gexHZHcWzZoxT3TU6+zxSlmILGooRofT7OrGo+NDofpVA==","signatures":[{"sig":"MEYCIQCxqfCZ6kgpXtDUmXnd4srX7kUwDrx51HSjprLrmBDnSwIhAPCIVQUJBtykqyXFJPNzFyGmI3A+J4Z97I96RdLZZJQ9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62497},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"b5f2ee80ffc80197e5276e6ace333963f263b026","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.1_1755514102215_0.8420246187154703","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"svelte-dynamic-forms","version":"1.0.2","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.2","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"aba2436cf58e30667ef14112f4ee7f2f890bee02","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.2.tgz","fileCount":15,"integrity":"sha512-NupzPp/VENh7OMnAl5WB5SylJqr+3T3BZoRkUJwz3GNAqyEhz005j5gpYhgkH0Ys6v5PstX1WAq2tUp8oxX75g==","signatures":[{"sig":"MEUCIQDtQOMeSIbphmLY4E7QYxszuwVIAyH86/rwgJDcKDOd6wIgMnrFTLyp/xgaeVHxMsnDXvBQAygu05OgQ2gTOd7cvoM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62508},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/types/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"93d81b11c2a3bde415f430b8e2079293bd59c543","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.2_1755514735944_0.18576597948921103","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"svelte-dynamic-forms","version":"1.0.3","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.3","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"037e9f08c132fa7971b678862ac1e353695519e5","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.3.tgz","fileCount":15,"integrity":"sha512-4ssZhrTMih5Y+LUQtfRxLMD147hgzTcg2ZUSr7/oTZBWG+umA2lb36Y+wBwt5CehrbLdlz6A2wp0ZMUDLBBVDQ==","signatures":[{"sig":"MEUCIE+JTBw+An9lTAaOdAinQ78rGmDYqDv+SRQWdZlFbefRAiEArczfBAW+0bESnz7K6IFXiVYlKb/XZyxAUndMUmTJluM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62502},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"f1df954f482002930deb24b8310894c65ec789a0","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.3_1755518717093_0.26072893786225815","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"svelte-dynamic-forms","version":"1.0.4","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.4","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"0ec69995ee0477c77a879fc08ee5c927fc80688f","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.4.tgz","fileCount":15,"integrity":"sha512-FP4nbE6rcnlY5b2A/AzGyrI7hCz687ojiPKE/44w+RuEysDqMlotdUpsohEKf4GunubpCCQqM286XNLzEpsugg==","signatures":[{"sig":"MEYCIQCP0uwQgMNMDekJclE4zYA79T2ParzOSirmxDhpfNN3TQIhAMIxauspE6DLTm3MbqePeFDwQgDfOvhFnLHBOYWmRj9U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62635},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"f1df954f482002930deb24b8310894c65ec789a0","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.4_1755519698134_0.28997108049334286","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"svelte-dynamic-forms","version":"1.0.5","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.5","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"0a02c258e23e4971c473ba5d6f84ef8a933f03db","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.5.tgz","fileCount":15,"integrity":"sha512-A+1EEfgzuMRG8ahf+Q5VYYt63WuVYwpZ+aT7VzS2CnoGxZGF7Cc4sumF8AY/U7/s/tx/mv7sjA+Rgunl+Z+JlQ==","signatures":[{"sig":"MEUCIBhqhEyw1DwOSPZ0G9wS6wRXH671cZg4PNdLLfhAuB5EAiEA+iVEw4r5OC8cyKzARX/wsqXE1bm/tP5VHzbqFGy9qJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62635},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"f1df954f482002930deb24b8310894c65ec789a0","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.5_1755520378123_0.6325615404217486","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"svelte-dynamic-forms","version":"1.0.6","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.6","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"68cc7bb9c615206e641b35ca7ec8f3bce7da7121","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.6.tgz","fileCount":15,"integrity":"sha512-GIERcju4u4bN5gK2PNko/YoCMjA3xdUNLfRuJ/xx/PqGa4S+z4sNcLp1stH7p5vcBIwyJgWOakmbJ/uOIhKW5g==","signatures":[{"sig":"MEUCIQC1YHPgSOAGIEW3UJmoFvA2exlHUUN232u24i3OJjtI8gIgYISRmfD/2ZIRWdU+cDSE/uD9GlPV3mQGGYb4srq58Js=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62445},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"1b0f6f894f54dfd8dfd76b6c4874661130a1754a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.6_1755685940595_0.009014663670183776","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"svelte-dynamic-forms","version":"1.0.7","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.7","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"3bda5a4cfb226a0c437a4b11ac2640057a533ce1","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.7.tgz","fileCount":15,"integrity":"sha512-6WZdoa1I9JBrToqAJy2VRorUB3/W6CghCdhjQgtmDxWgngaKi4ZyvasYJIpq8a32pCN884HJo7C5OLHggBP+nw==","signatures":[{"sig":"MEUCIC0V+DDa+EuBJ00UNZS4VvY8FBPb+HNqkgmXHLNhki2cAiEA2g3ZvfkROPOAVKB0j6rrIu1Pr/g9A33EKgfy6GshJ2Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62445},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.7_1755686260275_0.5308945509148002","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"svelte-dynamic-forms","version":"1.0.8","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.8","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"2c8742e65eb788ca1dd07135459cbbfa6826147d","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.8.tgz","fileCount":15,"integrity":"sha512-WO9UuWPUn5VLhzn7Lsz2WzrYWBndPk8hX7P2saJzpWMOn8W97fA+auiwv6KUaaKkZLOQprKZ1RCDePg3GmqTSA==","signatures":[{"sig":"MEUCIH9ibQSy6oG+3c2Heyom1ndR2rqAYZD0sIJcT7dx2CsHAiEA7IlMc3z90X88YDs9TfT085BjYQVP1GCdeT6LhmJxLcQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62447},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.8_1755687146071_0.13707906356175692","host":"s3://npm-registry-packages-npm-production"}},"1.0.9":{"name":"svelte-dynamic-forms","version":"1.0.9","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.9","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"9afe48321d0fcfd0b09b97846e51198a8849a0fc","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.9.tgz","fileCount":15,"integrity":"sha512-MhnsAdzzHuw+XUAdDys+13geCvh/4LsEnddNd5oBCVm+t9A6oEwSdILmUOT7fCCSM7DGwvPiNJHXvE/jGSpY8A==","signatures":[{"sig":"MEYCIQCg3tpQJr9sUkXUNQacDL4c7yJu291oBEQLq6GkXHb3zAIhANgvS8yjjv7S4eHegRLRKlAfBNoLVC3CfAROgNr80Jag","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62622},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.9_1755692064233_0.1056127012768282","host":"s3://npm-registry-packages-npm-production"}},"1.0.10":{"name":"svelte-dynamic-forms","version":"1.0.10","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.10","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"fb598b610be78e7b377dbf64f3931eac9f20b111","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.10.tgz","fileCount":15,"integrity":"sha512-bQV82szZADEpz7Pt0TbOrHNCrK5iGUCF0rmmz0kVdCYpLNifzn+cbs5T8ZFOldjkQL2CPec7IjKMY+p61mtEUQ==","signatures":[{"sig":"MEUCIHgubKXgmDnxHRsEMHGtb3NGQBVDjp/kCV1jR9a+l8iNAiEAsSem4s8GqO98D6jWA0A3nAvoC8jawPyu28FDQ4GdYSk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62410},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.10_1755698650273_0.06312171227997365","host":"s3://npm-registry-packages-npm-production"}},"1.0.11":{"name":"svelte-dynamic-forms","version":"1.0.11","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.11","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"a212096b2ae224f4d24909ebee82e40d72ab3dab","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.11.tgz","fileCount":15,"integrity":"sha512-U4NKpl90DjY84AzCFJpqQWRjKcoyYSepUEjfh2BejKAKxJl4BdCh2uR9p9TED0xskgBdqBvPtrm+4YPXqVFV5g==","signatures":[{"sig":"MEUCIApckDbiBbf/BQOM5d29+ckNzSoLuo6vhejuLiH63wILAiEAyfRHkKNNvKY/4z7wjVLwZnmj7uKMj80bZMEikF7bnFw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":62440},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.11_1755701701941_0.6296213137510926","host":"s3://npm-registry-packages-npm-production"}},"1.0.12":{"name":"svelte-dynamic-forms","version":"1.0.12","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.12","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"5c79889891524916d79817929c4cdfa2b3df7e55","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.12.tgz","fileCount":15,"integrity":"sha512-rQ5hkL3QiiwXVML95eLBKmZo+IGcxZF9JxPQ3sZnsFKHUfofDrJxRbVVrj/lL/IXKei6FcIR2+ui5JfGi7vrYQ==","signatures":[{"sig":"MEUCIESpCtYGf+I56iQNBC9wW12c1b54S9yey5/AIli9MYM8AiEA7PAVp0a9UN4WVa1JLOXJq9yNvc63bZMo3AnKlpf1s34=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63207},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.12_1755753054927_0.33834579131529985","host":"s3://npm-registry-packages-npm-production"}},"1.0.13":{"name":"svelte-dynamic-forms","version":"1.0.13","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.13","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"62d2e3eb631d194e6878d4332a551f7c5d21542f","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.13.tgz","fileCount":15,"integrity":"sha512-aZoZbbqwz8rftXIw2oJOBLqpr/d10UnejOV5LNBoY4569Q0Y+b2RUgNNvpzNhQ9CPnCmzUawzTIK/gH9lD/AkA==","signatures":[{"sig":"MEYCIQDGMlcSVmndzof31L3w2mEaAEPR5+mwDY7f1BHGBAQSCQIhAPyJSIElDmxlKFCAx4f/vjSTvrYrTObgd0DnsocTmIw2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63220},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.13_1755753233482_0.49301109766129003","host":"s3://npm-registry-packages-npm-production"}},"1.0.14":{"name":"svelte-dynamic-forms","version":"1.0.14","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.14","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"b99fac88f5533282d34d54739bebed5c1fd6fcd6","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.14.tgz","fileCount":15,"integrity":"sha512-NQNQA0f04a+Zoh+sW7aXLL3UknGePxtmSPUc6CM9adj0rTnQEZxh535CiA/6SFsElTTMoyoh2C6E3PCMD7GDEA==","signatures":[{"sig":"MEUCIQDVfUhfwc2XpqQC5pWAm4H2laxFbAcb6sxVX2Yt7em2uAIgU79B4vjgx+nM7RtZzBwyZxImEjmGqMw2hoME8Rui7AI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63300},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.14_1755756393201_0.6992039254072786","host":"s3://npm-registry-packages-npm-production"}},"1.0.15":{"name":"svelte-dynamic-forms","version":"1.0.15","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.15","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"3d84a130025852168b981402652b2e7d54fbf4b6","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.15.tgz","fileCount":15,"integrity":"sha512-kY22kX7skeKxO8eew645PObilEiKcn7sN5u9BvRJpuGHuyg23F/7Z4DThEwM8gBHaIT0Km/8H4njjTe4RCebnQ==","signatures":[{"sig":"MEUCIFZqYuwX2hsTj4983pyzu/P2ubdqVtzN9J2lg1JTjhsSAiEArpBLGoukQFOWymYUpt2oHkULmA5ayWtU2Ttbw5MP5jY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63367},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.15_1755756604839_0.08879697544292653","host":"s3://npm-registry-packages-npm-production"}},"1.0.16":{"name":"svelte-dynamic-forms","version":"1.0.16","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.16","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"f36d19990b259f8cf6659b603db251920265cf86","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.16.tgz","fileCount":15,"integrity":"sha512-D2OzS9vQbkntCHZws+Y70kOmAmeEZt5U5Qu1797b1+uw8aqT3e1rgvbd40y4qPv5y6c+EXMhgPTzXvXq/o4vnQ==","signatures":[{"sig":"MEMCIGTv40zWppE3nudlQQKVNz6mphvIT9BM+HCDKhCkPshVAh9Njdd4kHtvCQ1snWCF6IaH5MWQ0GlqoDfUTeh0Jnr8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63429},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.16_1755757049140_0.35772627982149174","host":"s3://npm-registry-packages-npm-production"}},"1.0.17":{"name":"svelte-dynamic-forms","version":"1.0.17","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.17","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"53983b728cd5b6016ad8405343b13c5e7e6303a0","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.17.tgz","fileCount":15,"integrity":"sha512-S+YLTZrPTNfcrIKzbm9isnTCxJsqGcE2CFI9QIQxxTRhm4HnfzmLrjB/BOqa9TLRo3AGpH+HX2GkinEtRwj9Xg==","signatures":[{"sig":"MEYCIQD4B2VdwUIuPUh0XGdGXcaNKeGz0mhDDwa/43HVvOCUTAIhAMAQdCe4KIhk7zoksaMjqTmdpiLaAaBoIp99A4+zHAbG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63430},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.17_1755757219351_0.42733417597142576","host":"s3://npm-registry-packages-npm-production"}},"1.0.18":{"name":"svelte-dynamic-forms","version":"1.0.18","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.18","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"2f19a26a8896f2793d842d522293d3af94579f26","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.18.tgz","fileCount":15,"integrity":"sha512-tYLoXl/RRyfCO0lCXocPgHtTPd5vPHN+9vYCvNMAS7LzmiUurdn2JaNr8q4Vw+5YgkXUj3hE9yt8leHrxCEY/w==","signatures":[{"sig":"MEQCIHMEtGnFZMi8zL10it0h8SddVAfWXVMpLEjhXAAESPthAiAh39Eu/YcWJEEb1J5gsPPcuNocwXOD5EuTDmuIMN3mJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63431},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.18_1755757536175_0.46318512794193856","host":"s3://npm-registry-packages-npm-production"}},"1.0.19":{"name":"svelte-dynamic-forms","version":"1.0.19","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.19","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"945a34d837f657a53001c614ca33af06036540f2","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.19.tgz","fileCount":15,"integrity":"sha512-FbozscD/Uj7XIj7aaaN/DASjdGEZLwFBtNxBzQgmRCaN9QaVYI2IpwnsbIqj4s2kCtdyNR0LX0o5Q9he178UMw==","signatures":[{"sig":"MEYCIQDr9QigoLLN1jaktrXQNpyta3dzZYMKimkLxDqiW6IsqgIhAIIla3rvn4vvx/+JzCg9Mm8OlEJEc5QWn8Vxe1ksy3QQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63356},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"50f3740ebeb55aae3b32170ad973f84ba6ff732a","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.19_1755757672720_0.13335955219827955","host":"s3://npm-registry-packages-npm-production"}},"1.0.20":{"name":"svelte-dynamic-forms","version":"1.0.20","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.20","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"367e57efdc14d4060ac5b7c1c1a9a1bde58c889b","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.20.tgz","fileCount":15,"integrity":"sha512-YgaVaQXRPal6OxowmXRFp9C+nMUTWmDlixT5oABCVnlzjTJViihqtD48Bnrn7hBKl8Yosk07wVjy9pOIik/0uQ==","signatures":[{"sig":"MEUCICInhebYf6zDW7Yf4VHBGhb7QgawjeEScAYsGoaZC3OHAiEA6rc1vG7lOu0H0L9E0I29NaxMP5mvA9lEsXtxPafsbaA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63330},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"d791dc4a5df0730be680447c95cbc33b8b4fdc02","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.20_1759319378257_0.6431300018803698","host":"s3://npm-registry-packages-npm-production"}},"1.0.21":{"name":"svelte-dynamic-forms","version":"1.0.21","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.21","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"a7d18129dfc8ed21c6890b782e410d250c049380","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.21.tgz","fileCount":15,"integrity":"sha512-FL3BKe0OLcJl6gCwOKrXQaiEUCLvXrmlJXRRjM8b65PbkdtYcBo6//BQ7PgA0bamVjL4Lfk9+5tDdtjD6kRpug==","signatures":[{"sig":"MEUCIGaXgPPSPuNQW3spDaEmIGuiBblJRAPUUMBuYY6nRAU9AiEArAluyxrWyoQ9ty99aNKoRpRXd/71vTODlBRb4e477e4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63330},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"2e67790c910a7f3b71672b333ef60397dba83319","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.21_1759393016981_0.02747997654604184","host":"s3://npm-registry-packages-npm-production"}},"1.0.22":{"name":"svelte-dynamic-forms","version":"1.0.22","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.22","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"d85e806ba1f8e4048470e4475d23599068c9a202","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.22.tgz","fileCount":15,"integrity":"sha512-3roKr/ZpsukIQynLiZ0P81E+16b9GrCf2f+0nGlYp5dPcktubQs5GvHvy5KgV61e22QxeKrYFn8u5XO6+O0Y6Q==","signatures":[{"sig":"MEUCIQDIhNAwnzFlWzQBsWLJ/laaHAoGihH091wZkv2NpsswYAIgVkcPlTQDVKn3kVXRvDYnzKlrLA2W35rCZbLWtBTDgbs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63330},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"2192474953b2ce8962f68a31b97cf68f4f26eca7","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.5.2","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.14.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.22_1759394315505_0.7585807113418521","host":"s3://npm-registry-packages-npm-production"}},"1.0.23":{"name":"svelte-dynamic-forms","version":"1.0.23","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.23","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"},{"name":"tertiusunaffi","email":"tertius@unaffi.com"},{"name":"deanwmarx404","email":"dean@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"2b0636e94e394305311ac748b70765115ef266bf","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.23.tgz","fileCount":15,"integrity":"sha512-2GXEwVGg+E4eBBGIv5AKb93x/T/NDX/2iIBdSVFdgA39rq/IMpqkm1WLgNlGM79hcsmF3lVqdgab5Mp0rsK0NA==","signatures":[{"sig":"MEUCIQDEamPliVm2RPloOL/g15olVSWTS6hAY+g6tFxKQEUs1wIgJM0t3OJasDaobLLbvQz7K3y+kTgQjGMq/dzjb/Q1yfU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63372},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"fcbe46ecdd631b93238bef28365ebe2a10a915c2","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.13.0","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.15.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.55.5","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.5.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.3.7","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.23_1777898173716_0.052301732670840595","host":"s3://npm-registry-packages-npm-production"}},"1.0.24":{"name":"svelte-dynamic-forms","version":"1.0.24","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"author":{"name":"UNAFFI"},"license":"MIT","_id":"svelte-dynamic-forms@1.0.24","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"},{"name":"tertiusunaffi","email":"tertius@unaffi.com"},{"name":"deanwmarx404","email":"dean@unaffi.com"}],"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"dist":{"shasum":"d7e742827a2d19388888bc858c139076ddb9a913","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.24.tgz","fileCount":15,"integrity":"sha512-2ntg++Pdhn6ZD4Y6ceNTM42xTO8GWyGZ5XQzC1R23myF7Itu6P09gffa8iglWFMfZNE1RmHN0qe1CnyjXGUhng==","signatures":[{"sig":"MEYCIQCAErIjR4DYWXJ31cpprQmeCMVvMpQX+Twh8VQlWzvssQIhAKB+C4JNOiSx8P3kcB99UX0YwfBJKttjpDzg/zM5/84f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63366},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"gitHead":"6f6134fba4266c471b0b3d55ce0891f5d6f15856","scripts":{"dev":"vite dev","lint":"prettier --check . && eslint .","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","format":"prettier --write .","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","storybook":"storybook dev -p 6006","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","build-storybook":"storybook build"},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"repository":{"url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git","type":"git"},"_npmVersion":"11.17.0","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.19.0","dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","eslint":"^9.18.0","svelte":"^5.0.0","globals":"^16.0.0","publint":"^0.3.2","prettier":"^3.4.2","storybook":"^9.1.1","@eslint/js":"^9.18.0","typescript":"^5.0.0","@types/node":"^22","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@eslint/compat":"^1.2.5","@sveltejs/package":"^2.0.0","@storybook/sveltekit":"^9.1.1","eslint-plugin-svelte":"^3.0.0","@storybook/addon-docs":"^9.1.2","@sveltejs/adapter-auto":"^6.1.0","eslint-config-prettier":"^10.0.1","prettier-plugin-svelte":"^3.3.3","eslint-plugin-storybook":"^9.1.1","@storybook/addon-svelte-csf":"^5.0.7","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/svelte-dynamic-forms_1.0.24_1788423748993_0.5147686243483938","host":"s3://npm-registry-packages-npm-production"}},"1.0.25":{"name":"svelte-dynamic-forms","version":"1.0.25","description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","license":"MIT","author":{"name":"UNAFFI"},"repository":{"type":"git","url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git"},"homepage":"https://svelte-dynamic-forms.unaffi.com/","bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"scripts":{"dev":"vite dev","build":"vite build && npm run prepack","preview":"vite preview","prepare":"svelte-kit sync || echo ''","prepack":"svelte-kit sync && svelte-package && publint","check":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json","check:watch":"svelte-kit sync && svelte-check --tsconfig ./jsconfig.json --watch","format":"prettier --write .","lint":"prettier --check . && eslint .","storybook":"storybook dev -p 6006","build-storybook":"storybook build"},"sideEffects":["**/*.css"],"svelte":"./dist/index.js","types":"./dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"},"./types":{"types":"./dist/types/index.d.ts","default":"./dist/types/index.js"}},"publishConfig":{"access":"public"},"peerDependencies":{"svelte":"^5.0.0"},"devDependencies":{"@eslint/compat":"^1.2.5","@eslint/js":"^9.18.0","@storybook/addon-docs":"^9.1.2","@storybook/addon-svelte-csf":"^5.0.7","@storybook/sveltekit":"^9.1.1","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/kit":"^2.22.0","@sveltejs/package":"^2.0.0","@sveltejs/vite-plugin-svelte":"^6.0.0","@types/node":"^22","eslint":"^9.18.0","eslint-config-prettier":"^10.0.1","eslint-plugin-storybook":"^9.1.1","eslint-plugin-svelte":"^3.0.0","globals":"^16.0.0","prettier":"^3.4.2","prettier-plugin-svelte":"^3.3.3","publint":"^0.3.2","storybook":"^9.1.1","svelte":"^5.0.0","svelte-check":"^4.0.0","typescript":"^5.0.0","vite":"^7.0.4"},"keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"dependencies":{"jsonata":"^2.1.0","mustache":"^4.2.0"},"gitHead":"e4721941f0da64a6672438178c2b23dea54aa992","_id":"svelte-dynamic-forms@1.0.25","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-8HLEcwD4GkxB2yckxQ4i6e+643BfV8/OqvS1NwDVH6gkPkmS9j6b5+WNQyIB/VRZXWLW+u1VKL3Zd9q6Ir7zpg==","shasum":"ff15a420389efea0eb68b0faf58b967e519c6943","tarball":"https://registry.npmjs.org/svelte-dynamic-forms/-/svelte-dynamic-forms-1.0.25.tgz","fileCount":15,"unpackedSize":63377,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQClvLDCh7bKbMKUCuD1HjJREVoWtP74tZx58fTqyRRnQgIgFKqnsQc7hbofHiSjkkFtcUqCB/wa70W9tqQmHYe82kY="}]},"_npmUser":{"name":"ivanunaffi","email":"ivan@unaffi.com"},"directories":{},"maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"},{"name":"tertiusunaffi","email":"tertius@unaffi.com"},{"name":"deanwmarx404","email":"dean@unaffi.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/svelte-dynamic-forms_1.0.25_1788425082346_0.1824195268585347"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-18T09:53:21.278Z","modified":"2026-09-03T08:44:42.662Z","0.0.1":"2025-08-18T09:53:21.468Z","0.0.2":"2025-08-18T10:23:51.690Z","1.0.0":"2025-08-18T10:38:04.655Z","1.0.1":"2025-08-18T10:48:22.418Z","1.0.2":"2025-08-18T10:58:56.128Z","1.0.3":"2025-08-18T12:05:17.274Z","1.0.4":"2025-08-18T12:21:38.327Z","1.0.5":"2025-08-18T12:32:58.318Z","1.0.6":"2025-08-20T10:32:20.796Z","1.0.7":"2025-08-20T10:37:40.473Z","1.0.8":"2025-08-20T10:52:26.245Z","1.0.9":"2025-08-20T12:14:24.420Z","1.0.10":"2025-08-20T14:04:10.454Z","1.0.11":"2025-08-20T14:55:02.123Z","1.0.12":"2025-08-21T05:10:55.112Z","1.0.13":"2025-08-21T05:13:53.688Z","1.0.14":"2025-08-21T06:06:33.384Z","1.0.15":"2025-08-21T06:10:05.011Z","1.0.16":"2025-08-21T06:17:29.325Z","1.0.17":"2025-08-21T06:20:19.515Z","1.0.18":"2025-08-21T06:25:36.361Z","1.0.19":"2025-08-21T06:27:52.886Z","1.0.20":"2025-10-01T11:49:38.462Z","1.0.21":"2025-10-02T08:16:57.161Z","1.0.22":"2025-10-02T08:38:35.694Z","1.0.23":"2026-05-04T12:36:13.846Z","1.0.24":"2026-09-03T08:22:29.188Z","1.0.25":"2026-09-03T08:44:42.486Z"},"bugs":{"url":"https://github.com/UNAFFI/svelte-dynamic-forms/issues"},"author":{"name":"UNAFFI"},"license":"MIT","homepage":"https://svelte-dynamic-forms.unaffi.com/","keywords":["svelte","svelte5","forms","dynamic-forms","validation","reactive","components","ui","frontend"],"repository":{"type":"git","url":"git+https://github.com/UNAFFI/svelte-dynamic-forms.git"},"description":"A dynamic form library for Svelte 5 with validation, conditional field rendering, reactive dependencies, and template-based configuration","maintainers":[{"name":"ivanunaffi","email":"ivan@unaffi.com"},{"name":"tertiusunaffi","email":"tertius@unaffi.com"},{"name":"deanwmarx404","email":"dean@unaffi.com"}],"readme":"# Svelte Dynamic Forms\n\nA dynamic form library for **Svelte 5** with validation, conditional field rendering, reactive dependencies, and template-based configuration.\n\n👉 Docs & Playground: https://svelte-dynamic-forms.unaffi.com/\n\n## Installation\n\n```bash\nnpm install svelte-dynamic-forms\n```\n\n## Quick Start\n\nCreate a simple form with validation and conditional fields:\n\n```svelte\n<script>\n\timport { Form, Field } from 'svelte-dynamic-forms';\n\timport TextInput from './TextInput.svelte';\n\timport EmailInput from './EmailInput.svelte';\n\n\tlet formData = $state({});\n\tlet formMetadata = $state({});\n\n\tconst components = { \n\t\ttext: TextInput, \n\t\temail: EmailInput \n\t};\n\n\tconst fields = [\n\t\t{ \n\t\t\tfieldtype: 'text', \n\t\t\tname: 'First Name',\n\t\t\tvalidations: [\n\t\t\t\t{\n\t\t\t\t\texpression: '[[jsonata]]$length(field_data.first_name) >= 2',\n\t\t\t\t\terror_message: 'Name must be at least 2 characters'\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{ \n\t\t\tfieldtype: 'email', \n\t\t\tname: 'Email Address',\n\t\t\tdependencies: ['data.first_name'],\n\t\t\tconditions: [\n\t\t\t\t{\n\t\t\t\t\texpression: '[[jsonata]]data.first_name and $length(data.first_name) > 0'\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t];\n\n\t// Access form validation state\n\t$effect(() => {\n\t\tconsole.log('Form valid:', formMetadata?.validations?.is_valid);\n\t\tconsole.log('Form data:', formData);\n\t});\n</script>\n\n<Form \n\tbind:data={formData} \n\tbind:metadata={formMetadata}\n\t{fields} \n\t{components} \n/>\n```\n\n### Basic Custom Component\n\nCreate input components that work with the library:\n\n```svelte\n<!-- TextInput.svelte -->\n<script>\n\tlet { field_metadata = $bindable(), field_data = $bindable() } = $props();\n\t\n\tconst value = $derived(field_data?.[field_metadata?.data_key] || '');\n\tconst isValid = $derived(field_metadata?.validations?.is_valid !== false);\n\tconst errorMessage = $derived(field_metadata?.validations?.error_message);\n</script>\n\n<input\n\ttype=\"text\"\n\tbind:value={field_data[field_metadata?.data_key]}\n\tclass:error={!isValid}\n/>\n{#if !isValid && errorMessage}\n\t<span class=\"error\">{errorMessage}</span>\n{/if}\n```\n\n## Key Features\n\n- 🔄 **Dynamic Field Rendering** - Show/hide fields based on conditions\n- ✅ **Automatic Validation** - Real-time validation with dependency tracking\n- 📊 **Reactive Dependencies** - Fields automatically update when dependencies change\n- 🎯 **Default Values** - Smart default value management per field type\n- 📝 **Template Support** - Mustache and JSONata expressions for dynamic configuration\n- ⚡ **Svelte 5 Native** - Built with modern Svelte 5 runes and patterns\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [API Reference](#api-reference)\n  - [Field Component](#field-component)\n  - [Form Component](#form-component)\n- [Concepts](#concepts)\n  - [Component Interface](#component-interface)\n  - [Template Evaluation](#template-evaluation)\n  - [Settings and Dynamic Settings](#settings-and-dynamic-settings)\n- [Requirements](#requirements)\n- [License](#license)\n- [Contributing](#contributing)\n- [Support](#support)\n\n## API Reference\n\n## Field Component\n\nThe Field component renders individual form fields with dynamic behavior. When used standalone, it only has access to its own data and metadata.\n\n### Basic Example\n\n```svelte\n<script>\n\timport { Field } from 'svelte-dynamic-forms';\n\timport TextInput from './TextInput.svelte';\n\n\tlet fieldData = $state({});\n\tlet fieldMetadata = $state({});\n</script>\n\n<Field\n\tfieldtype=\"text\"\n\tname=\"First Name\"\n\tcomponent={TextInput}\n\tbind:field_data={fieldData}\n\tbind:field_metadata={fieldMetadata}\n/>\n```\n\n### Properties\n\n#### `field_data`\n\nBindable object containing the field's data. The field will write its value to this object using the field's data key.\n\n```svelte\n<script>\n\tlet fieldData = $state({ first_name: 'John' });\n</script>\n\n<Field fieldtype=\"text\" name=\"First Name\" bind:field_data={fieldData} />\n```\n\n#### `field_metadata`\n\nBindable object containing the field's metadata including validation state, conditions, and configuration. This provides insight into the field's current state.\n\n```svelte\n<script>\n\tlet fieldMetadata = $state({});\n\n\t// Access validation state\n\t$effect(() => {\n\t\tif (fieldMetadata.validations?.is_valid === false) {\n\t\t\tconsole.log('Field is invalid:', fieldMetadata.validations.error_message);\n\t\t}\n\t});\n</script>\n\n<Field bind:field_metadata={fieldMetadata} />\n```\n\n#### `fieldtype`\n\nString that identifies the field type and maps to a component. Can be a template expression that evaluates on field mount.\n\n```svelte\n<!-- Static fieldtype -->\n<Field fieldtype=\"text\" component={TextInput} />\n\n<!-- Dynamic fieldtype with JSONata (requires Form context) -->\n<Field fieldtype=\"[[jsonata]]field_metadata.userRole = 'admin' ? 'admin_text' : 'text'\" />\n```\n\n#### `name`\n\nDisplay name of the field. Used for labels and generating the field ID. Can be a template expression.\n\n```svelte\n<!-- Static name -->\n<Field name=\"Email Address\" />\n\n<!-- Dynamic name with JSONata function -->\n<Field name=\"[[jsonata]]'Entry created at ' & $now()\" />\n```\n\n#### `component`\n\nDirect component override. If provided, this component will be used instead of looking up the fieldtype in the components map.\n\n```svelte\n<script>\n\timport CustomInput from './CustomInput.svelte';\n</script>\n\n<Field fieldtype=\"text\" name=\"Special Field\" component={CustomInput} />\n```\n\n#### `dependencies`\n\nArray of data paths that trigger re-evaluation of dynamic field properties when they change. When used standalone, can only reference the field's own data.\n\n```svelte\n<Field\n\tfieldtype=\"text\"\n\tname=\"Username\"\n\tdependencies={['field_data.username']}\n\tvalidations={[\n\t\t{\n\t\t\texpression: '[[jsonata]]$length(field_data.username) >= 3',\n\t\t\terror_message: 'Username must be at least 3 characters'\n\t\t}\n\t]}\n/>\n```\n\n#### `default_value`\n\nInitial value for the field. Can be a static value or template expression that evaluates on field mount.\n\n```svelte\n<!-- Static default -->\n<Field default_value=\"Hello World\" />\n\n<!-- JSONata expression using built-in functions -->\n<Field default_value=\"[[jsonata]]$now()\" />\n\n<!-- JSONata expression with string manipulation -->\n<Field default_value=\"[[jsonata]]'Created on ' & $substring($now(), 0, 10)\" />\n```\n\n#### `settings`\n\nStatic field settings that are not evaluated at ever. Use for configuration that doesn't need to change.\n\n```svelte\n<Field\n\tfieldtype=\"select\"\n\tsettings={{\n\t\tplaceholder: 'Choose an option',\n\t\tmultiple: false,\n\t\toptions: [\n\t\t\t{ value: 'a', label: 'Option A' },\n\t\t\t{ value: 'b', label: 'Option B' }\n\t\t]\n\t}}\n/>\n```\n\n#### `dynamic_settings`\n\nField settings that re-evaluate whenever dependencies change. Use for configuration that needs to be reactive.\n\n```svelte\n<Field\n\tfieldtype=\"select\"\n\tname=\"Options\"\n\tdependencies={['field_data.category']}\n\tdynamic_settings={{\n\t\toptions: '[[jsonata]]field_metadata.availableOptions[field_data.category]'\n\t}}\n/>\n```\n\n#### `validations`\n\nArray of validation rules that check field data. Each rule has an expression and error message. Validations re-run when dependencies change.\n\n```svelte\n<Field\n\tfieldtype=\"text\"\n\tname=\"Age\"\n\tdependencies={['field_data.age']}\n\tvalidations={[\n\t\t{\n\t\t\texpression: '[[jsonata]]field_data.age and field_data.age >= 18',\n\t\t\terror_message: 'Must be 18 or older'\n\t\t},\n\t\t{\n\t\t\texpression: '[[jsonata]]field_data.age <= 100',\n\t\t\terror_message: 'Must be 100 or younger'\n\t\t}\n\t]}\n/>\n```\n\n#### `conditions`\n\nArray of conditions that determine if the field should be rendered. If any condition fails, the field is hidden.\n\n```svelte\n<Field\n\tfieldtype=\"text\"\n\tname=\"Additional Info\"\n\tdependencies={['field_data.show_extra']}\n\tconditions={[\n\t\t{\n\t\t\texpression: '[[jsonata]]field_data.show_extra = true'\n\t\t}\n\t]}\n/>\n```\n\n#### `keep_data_on_conditions_failed`\n\nBoolean that controls whether field data is preserved when conditions fail. By default, data is cleared when a field becomes hidden.\n\n```svelte\n<Field\n\tfieldtype=\"text\"\n\tname=\"Optional Details\"\n\tdependencies={['field_data.show_details']}\n\tkeep_data_on_conditions_failed={true}\n\tconditions={[\n\t\t{\n\t\t\texpression: '[[jsonata]]field_data.show_details = true'\n\t\t}\n\t]}\n/>\n```\n\nWhen `keep_data_on_conditions_failed` is `true`, the field's data remains in the form data even when the field is hidden. When `false` (default), the data is removed when conditions fail.\n\n> **Note**: When using Field components standalone (without Form), they can only access their own `field_data` and `field_metadata`. Cross-field references like `data.otherField` require the Form component for shared context.\n\n## Form Component\n\nThe Form component creates a shared context that enables Fields to work together reactively. It provides form-wide data management, cross-field validation, component mapping, and centralized state. Fields within a Form can reference each other's data and benefit from shared configuration.\n\n### Declarative Fields\n\nDefine all fields in a single array for automatic rendering:\n\n```svelte\n<script>\n\timport { Form } from 'svelte-dynamic-forms';\n\n\tlet formData = $state({});\n\tlet formMetadata = $state({});\n\n\tconst components = {\n\t\ttext: TextInput,\n\t\temail: EmailInput\n\t};\n\n\tconst fields = [\n\t\t{\n\t\t\tfieldtype: 'text',\n\t\t\tname: 'First Name'\n\t\t},\n\t\t{\n\t\t\tfieldtype: 'email',\n\t\t\tname: 'Email Address',\n\t\t\tdependencies: ['data.first_name'],\n\t\t\tconditions: [\n\t\t\t\t{\n\t\t\t\t\texpression: '[[jsonata]]data.first_name and $length(data.first_name) > 0'\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t];\n</script>\n\n<Form bind:data={formData} bind:metadata={formMetadata} {fields} {components} />\n```\n\n### Imperative Fields\n\nPlace Field components as children for custom layout control:\n\n```svelte\n<script>\n\timport { Form, Field } from 'svelte-dynamic-forms';\n\n\tlet formData = $state({});\n\tconst components = { text: TextInput };\n</script>\n\n<Form bind:data={formData} {components}>\n\t<div class=\"form-section\">\n\t\t<h3>Personal Information</h3>\n\t\t<Field fieldtype=\"text\" name=\"First Name\" />\n\t\t<Field fieldtype=\"text\" name=\"Last Name\" />\n\t</div>\n\n\t<div class=\"form-section\">\n\t\t<h3>Contact</h3>\n\t\t<Field fieldtype=\"email\" name=\"Email\" />\n\t</div>\n</Form>\n```\n\n### Cross-Field References\n\nFields can reference other fields' data when inside a Form:\n\n```svelte\n<script>\n\tconst fields = [\n\t\t{\n\t\t\tfieldtype: 'email',\n\t\t\tname: 'Email',\n\t\t\tvalidations: [\n\t\t\t\t{\n\t\t\t\t\texpression: '[[jsonata]]$match(field_data.email, /^[^@]+@[^@]+$/)',\n\t\t\t\t\terror_message: 'Invalid email format'\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\tfieldtype: 'email',\n\t\t\tname: 'Confirm Email',\n\t\t\tdependencies: ['data.email', 'field_data.confirm_email'],\n\t\t\tvalidations: [\n\t\t\t\t{\n\t\t\t\t\texpression: '[[jsonata]]field_data.confirm_email = data.email',\n\t\t\t\t\terror_message: 'Emails must match'\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t];\n</script>\n\n<Form {fields} {components} bind:data={formData} />\n```\n\n### Components Prop\n\nMap field types to Svelte components:\n\n```svelte\n<script>\n\timport TextInput from './TextInput.svelte';\n\timport EmailInput from './EmailInput.svelte';\n\timport SelectInput from './SelectInput.svelte';\n\n\tconst components = {\n\t\ttext: TextInput,\n\t\temail: EmailInput,\n\t\tselect: SelectInput,\n\t\tcustom_field: CustomFieldComponent\n\t};\n</script>\n\n<Form {components}>\n\t<Field fieldtype=\"text\" name=\"Name\" />\n\t<Field fieldtype=\"email\" name=\"Email\" />\n\t<Field fieldtype=\"custom_field\" name=\"Special Input\" />\n</Form>\n```\n\n### Default Values\n\nSet default values by field type:\n\n```svelte\n<script>\n\tconst defaultValues = {\n\t\ttext: '',\n\t\tnumber: 0,\n\t\tselect: null,\n\t\tcheckbox: false,\n\t\tcountry: 'US'\n\t};\n\n\tconst fields = [\n\t\t{ fieldtype: 'text', name: 'Name' }, // Gets '' as default\n\t\t{ fieldtype: 'country', name: 'Country' }, // Gets 'US' as default\n\t\t{ fieldtype: 'text', name: 'Bio', default_value: 'Tell us about yourself' } // Explicit default overrides\n\t];\n</script>\n\n<Form {fields} {components} default_values={defaultValues} />\n```\n\n### Validate Function\n\nProgrammatically validate the entire form:\n\n```svelte\n<script>\n\tlet formComponent;\n\tlet formData = $state({});\n\tlet formSettings = $state({});\n\n\tasync function handleSubmit() {\n\t\tawait formComponent.validate();\n\n\t\tif (formSettings.validations.is_valid) {\n\t\t\tconsole.log('Form is valid, submitting:', formData);\n\t\t\t// Submit the form\n\t\t} else {\n\t\t\tconsole.log('Validation errors:', formSettings.validations.issues);\n\t\t\t// Show validation errors to user\n\t\t}\n\t}\n</script>\n\n<Form\n\tbind:this={formComponent}\n\tbind:data={formData}\n\tbind:form_settings={formSettings}\n\t{fields}\n\t{components}\n/>\n\n<button onclick={handleSubmit}>Submit</button>\n```\n\n### Data Prop\n\nThe form data object where all field values are stored:\n\n```svelte\n<script>\n\t// Initialize with existing data\n\tlet formData = $state({\n\t\tfirst_name: 'John',\n\t\tlast_name: 'Doe',\n\t\temail: 'john@example.com'\n\t});\n\n\t// Watch for changes\n\t$effect(() => {\n\t\tconsole.log('Form data changed:', formData);\n\t});\n</script>\n\n<Form bind:data={formData} {fields} {components} />\n```\n\n## Concepts\n\n### Component Interface\n\nThe Field component passes only two reactive properties to your custom components: `field_metadata` and `field_data`. Understanding this simple interface is crucial for building custom field components.\n\n#### What Your Component Receives\n\n```svelte\n<!-- YourCustomComponent.svelte -->\n<script>\n  let { field_metadata = $bindable(), field_data = $bindable() } = $props();\n  \n  // field_metadata contains all field configuration and state\n  // field_data contains the actual form data object where this field writes its value\n</script>\n```\n\n#### field_metadata Structure\n\nThe `field_metadata` object contains everything about the field's configuration and current state:\n\n```javascript\n{\n  field_id: 'first_name',           // Unique field identifier\n  data_key: 'first_name',          // Key where field writes its value\n  init_value: 'John',              // Initial value from form data\n  default_value: '',               // Default value for this field type\n  \n  // Validation state (reactive)\n  validations: {\n    is_valid: true,\n    error_message: '',\n    checks: [...]\n  },\n  \n  // Condition state (reactive)\n  conditions: {\n    is_passed: true,\n    previous_result: true\n  },\n  \n  // Reactive settings (updates when dependencies change)\n  dynamic_settings: {\n    placeholder: 'Enter your name',\n    disabled: false\n  },\n  \n  // Field definition (static configuration)\n  definition: {\n    name: 'First Name',\n    fieldtype: 'text',\n    settings: {\n      label: 'First Name',\n      required: true\n    },\n    // ... other static properties\n  }\n}\n```\n\n#### field_data Structure\n\nThe `field_data` object is where your component reads and writes the field's value:\n\n```svelte\n<script>\n  let { field_metadata = $bindable(), field_data = $bindable() } = $props();\n  \n  // Get the current value\n  const currentValue = $derived(field_data?.[field_metadata?.data_key] || '');\n  \n  // Update the value\n  function updateValue(newValue) {\n    if (field_data && field_metadata?.data_key) {\n      field_data[field_metadata.data_key] = newValue;\n    }\n  }\n</script>\n\n<input \n  value={currentValue}\n  oninput={(e) => updateValue(e.target.value)}\n/>\n```\n\n#### Complete Component Example\n\n```svelte\n<!-- TextInput.svelte -->\n<script>\n  let { field_metadata = $bindable(), field_data = $bindable() } = $props();\n  \n  // Extract commonly used values\n  const fieldId = $derived(field_metadata?.field_id);\n  const dataKey = $derived(field_metadata?.data_key);\n  const currentValue = $derived(field_data?.[dataKey] || '');\n  const isValid = $derived(field_metadata?.validations?.is_valid !== false);\n  const errorMessage = $derived(field_metadata?.validations?.error_message);\n  \n  // Get static settings\n  const settings = $derived(field_metadata?.definition?.settings || {});\n  \n  // Get dynamic settings (reactive)\n  const dynamicSettings = $derived(field_metadata?.dynamic_settings || {});\n  \n  // Combine configuration\n  const config = $derived({ ...settings, ...dynamicSettings });\n  \n  function handleInput(event) {\n    if (field_data && dataKey) {\n      field_data[dataKey] = event.target.value;\n    }\n  }\n</script>\n\n<div class=\"field-wrapper\">\n  {#if config.label}\n    <label for={fieldId}>{config.label}</label>\n  {/if}\n  \n  <input\n    id={fieldId}\n    type=\"text\"\n    value={currentValue}\n    placeholder={config.placeholder}\n    disabled={config.disabled}\n    required={config.required}\n    class:error={!isValid}\n    oninput={handleInput}\n  />\n  \n  {#if !isValid && errorMessage}\n    <span class=\"error-message\">{errorMessage}</span>\n  {/if}\n</div>\n\n<style>\n  .error {\n    border-color: red;\n  }\n  \n  .error-message {\n    color: red;\n    font-size: 0.875rem;\n  }\n</style>\n```\n\n#### Key Principles\n\n1. **Two-way binding**: Your component must bind to both `field_metadata` and `field_data`\n2. **Read from field_data**: Get the current value using `field_data[field_metadata.data_key]`\n3. **Write to field_data**: Update values by modifying `field_data[field_metadata.data_key]`\n4. **Configuration access**: Use `field_metadata.definition.settings` (static) and `field_metadata.dynamic_settings` (reactive)\n5. **Validation state**: Check `field_metadata.validations` for validation results\n\nThis simple interface gives your components everything they need while keeping the API clean and predictable.\n\n### Template Evaluation\n\nThe library supports dynamic configuration through template expressions using two engines: **Mustache** (default) and **JSONata** (with `[[jsonata]]` prefix). Understanding when templates are evaluated is crucial for building reactive forms.\n\n#### Mustache Templates (Default)\n\nSimple string interpolation for basic dynamic values:\n\n```javascript\n{\n  name: 'Hello {{context.user.name}}',\n  data_path: '{{context.section}}.details'\n}\n```\n\n#### JSONata Expressions\n\nAdvanced expressions with the `[[jsonata]]` prefix for complex logic:\n\n```javascript\n{\n  name: '[[jsonata]]\"Question \" & $string(context.questionNumber)',\n  default_value: '[[jsonata]]$now()',\n  validations: [\n    {\n      expression: '[[jsonata]]field_data.age >= 18 and field_data.age <= 100',\n      error_message: 'Age must be between 18 and 100'\n    }\n  ]\n}\n```\n\n#### Static vs Reactive Evaluation\n\nField properties fall into two categories based on when they're evaluated:\n\n**Static Properties (Evaluated Once on Field Mount):**\n- `fieldtype` - Component type determination\n- `name` - Field label and ID generation  \n- `data_path` - Where the field writes data\n- `default_value` - Initial field value\n- `settings` - Static configuration options\n\n```javascript\n// These are evaluated once when the field mounts\n{\n  fieldtype: '[[jsonata]]context.userRole = \"admin\" ? \"admin_input\" : \"text\"',\n  name: 'User {{context.userName}}',\n  default_value: '[[jsonata]]$now()',\n  settings: {\n    placeholder: 'Enter {{context.fieldHint}}'\n  }\n}\n```\n\n**Reactive Properties (Re-evaluated When Dependencies Change):**\n- `validations` - Validation rules\n- `conditions` - Visibility conditions\n- `dynamic_settings` - Reactive configuration\n\n```javascript\n// These re-evaluate every time dependencies change\n{\n  dependencies: ['data.country', 'field_data.city'],\n  validations: [\n    {\n      expression: '[[jsonata]]field_data.city in context.validCities[data.country]',\n      error_message: 'Invalid city for selected country'\n    }\n  ],\n  conditions: [\n    {\n      expression: '[[jsonata]]data.country != null'\n    }\n  ],\n  dynamic_settings: {\n    options: '[[jsonata]]context.cities[data.country]'\n  }\n}\n```\n\n#### Evaluation Context\n\nAll templates have access to this context object:\n\n```javascript\n{\n  context,        // Form-wide context (Form only)\n  data,          // Form data (Form only)\n  metadata,      // All field metadata (Form only)\n  settings,      // Form settings (Form only)\n  field_data,    // Current field's data object\n  field_metadata // Current field's metadata\n}\n```\n\n#### Best Practices\n\n1. **Use static properties** for values that won't change during the field's lifecycle\n2. **Use reactive properties** for values that should update when other fields change\n3. **Minimize dependencies** - only include paths that actually affect the field\n4. **Choose the right template engine** - Mustache for simple interpolation, JSONata for logic\n\n```javascript\n// Good: Minimal dependencies, appropriate property types\n{\n  name: 'Confirm Email', // Static - won't change\n  dependencies: ['data.email'], // Only what's needed\n  validations: [\n    {\n      expression: '[[jsonata]]field_data.confirm_email = data.email', // Reactive\n      error_message: 'Emails must match'\n    }\n  ]\n}\n\n// Avoid: Unnecessary dependencies, wrong property type\n{\n  name: '[[jsonata]]\"Confirm Email\"', // Unnecessary template for static value\n  dependencies: ['data.email', 'data.first_name'], // first_name not needed\n}\n```\n\n### Settings and Dynamic Settings\n\nThe `settings` and `dynamic_settings` properties are flexible containers for any configuration your custom components need. They're passed to your components and can contain anything from labels and placeholders to complex configuration objects.\n\n#### Settings (Static Configuration)\n\nThe `settings` property is evaluated once when the field mounts and contains configuration that doesn't change during the field's lifecycle:\n\n```javascript\n{\n  fieldtype: 'text',\n  name: 'Email',\n  settings: {\n    placeholder: 'Enter your email address',\n    label: 'Email Address',\n    helpText: 'We will never share your email',\n    required: true,\n    autocomplete: 'email',\n    icon: 'mail',\n    maxLength: 255,\n    className: 'email-input'\n  }\n}\n```\n\n#### Dynamic Settings (Reactive Configuration)\n\nThe `dynamic_settings` property is re-evaluated whenever dependencies change, perfect for configuration that needs to be reactive:\n\n```javascript\n{\n  fieldtype: 'select',\n  name: 'City',\n  dependencies: ['data.country', 'data.state'],\n  dynamic_settings: {\n    // Options change based on selected country and state\n    options: '[[jsonata]]context.cities[data.country][data.state]',\n    placeholder: '[[jsonata]]\"Select a city in \" & data.state',\n    disabled: '[[jsonata]]data.country = null or data.state = null',\n    loading: '[[jsonata]]field_metadata.isLoadingCities'\n  }\n}\n```\n\n#### Component Integration\n\nYour custom components receive these settings through the field metadata:\n\n```svelte\n<!-- CustomInput.svelte -->\n<script>\n  let { field_metadata = $bindable(), field_data = $bindable() } = $props();\n  \n  // Access static settings\n  const settings = $derived(field_metadata?.definition?.settings || {});\n  \n  // Access reactive settings\n  const dynamicSettings = $derived(field_metadata?.dynamic_settings || {});\n  \n  // Combine both for final configuration\n  const config = $derived({ ...settings, ...dynamicSettings });\n</script>\n\n<div class=\"field-wrapper\">\n  {#if config.label}\n    <label for={field_metadata?.field_id}>{config.label}</label>\n  {/if}\n  \n  <input\n    id={field_metadata?.field_id}\n    type=\"text\"\n    placeholder={config.placeholder}\n    disabled={config.disabled}\n    maxlength={config.maxLength}\n    autocomplete={config.autocomplete}\n    class={config.className}\n    bind:value={field_data[field_metadata?.data_key]}\n  />\n  \n  {#if config.helpText}\n    <small class=\"help-text\">{config.helpText}</small>\n  {/if}\n</div>\n```\n\n#### Use Cases\n\n**Form Layout Configuration:**\n```javascript\n{\n  settings: {\n    layout: 'horizontal',\n    labelWidth: '120px',\n    showAsterisk: true,\n    wrapperClass: 'form-group'\n  }\n}\n```\n\n**Input Behavior:**\n```javascript\n{\n  settings: {\n    debounceMs: 300,\n    clearable: true,\n    searchable: true,\n    multiSelect: false\n  }\n}\n```\n\n**Conditional UI Elements:**\n```javascript\n{\n  dependencies: ['data.user_role'],\n  dynamic_settings: {\n    showAdvanced: '[[jsonata]]data.user_role = \"admin\"',\n    helpText: '[[jsonata]]data.user_role = \"admin\" ? \"Advanced configuration\" : \"Basic settings\"'\n  }\n}\n```\n\n**API Configuration:**\n```javascript\n{\n  dependencies: ['data.category'],\n  dynamic_settings: {\n    apiEndpoint: '[[jsonata]]\"/api/options/\" & data.category',\n    headers: '[[jsonata]]{\"Authorization\": \"Bearer \" & context.authToken}'\n  }\n}\n```\n\nThe key principle is that **settings** are for static configuration that won't change, while **dynamic_settings** are for reactive configuration that updates based on form state or other dependencies.\n\n## Requirements\n\n- **Svelte 5.0+** - This library is built specifically for Svelte 5 and uses modern runes\n- **Node.js 18+** - For development and build processes\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file for details.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## Support\n\nIf you encounter any issues or have questions, please visit the docs at https://svelte-dynamic-forms.unaffi.com/ or [open an issue](https://github.com/UNAFFI/svelte-dynamic-forms/issues) on GitHub.\n","readmeFilename":"README.md"}