diff --git a/package.json b/package.json index 423315e..9f51159 100644 --- a/package.json +++ b/package.json @@ -15,10 +15,13 @@ "@formkit/icons": "latest", "@formkit/themes": "latest", "@formkit/vue": "latest", + "@formkit/zod": "^1.6.9", "autoprefixer": "latest", + "i18next": "^23.16.6", "postcss": "latest", "tailwindcss": "latest", - "vue": "^3.5.13" + "vue": "^3.5.13", + "zod-i18n-map": "^2.27.0" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a40bf81..0db6af0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,9 +23,15 @@ importers: '@formkit/vue': specifier: latest version: 1.6.9(tailwindcss@3.4.15)(vue@3.5.13(typescript@5.6.3)) + '@formkit/zod': + specifier: ^1.6.9 + version: 1.6.9(zod@3.23.8) autoprefixer: specifier: latest version: 10.4.20(postcss@8.4.49) + i18next: + specifier: ^23.16.6 + version: 23.16.6 postcss: specifier: latest version: 8.4.49 @@ -35,6 +41,9 @@ importers: vue: specifier: ^3.5.13 version: 3.5.13(typescript@5.6.3) + zod-i18n-map: + specifier: ^2.27.0 + version: 2.27.0(i18next@23.16.6)(zod@3.23.8) devDependencies: '@vitejs/plugin-vue': specifier: ^5.2.0 @@ -68,6 +77,10 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} + engines: {node: '>=6.9.0'} + '@babel/types@7.26.0': resolution: {integrity: sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==} engines: {node: '>=6.9.0'} @@ -262,6 +275,11 @@ packages: peerDependencies: vue: ^3.4.0 + '@formkit/zod@1.6.9': + resolution: {integrity: sha512-oQp2n2UoJTZTVsbbiDLRzpdOcGPrFTpmoaqp3tzbL4m7XJ9CE+Z9Q1sFA3MXTb1xrdCh3xWY2KAyXB0x4j5svw==} + peerDependencies: + zod: ^3.0.0 + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -621,6 +639,9 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true + i18next@23.16.6: + resolution: {integrity: sha512-wGdE5rUfkZtrL5k6MCptxbpjmgwku4rBRVU/YOJ7Xfd841fgaZjlxHpVJ5NIz8sfSvAJhEhJrvJ8qE7AWXE4Xg==} + is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} @@ -801,6 +822,9 @@ packages: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + regenerator-runtime@0.14.1: + resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} + resolve@1.22.8: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true @@ -962,6 +986,15 @@ packages: engines: {node: '>= 14'} hasBin: true + zod-i18n-map@2.27.0: + resolution: {integrity: sha512-ORu9XpiVh3WDiEUs5Cr9siGgnpeODoBsTIgSD8sQCH9B//f9KowlzqHUEdPYb3vFonaSH8yPvPCOFM4niwp3Sg==} + peerDependencies: + i18next: '>=21.3.0' + zod: '>=3.17.0' + + zod@3.23.8: + resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} + snapshots: '@alloc/quick-lru@5.2.0': {} @@ -974,6 +1007,10 @@ snapshots: dependencies: '@babel/types': 7.26.0 + '@babel/runtime@7.26.0': + dependencies: + regenerator-runtime: 0.14.1 + '@babel/types@7.26.0': dependencies: '@babel/helper-string-parser': 7.25.9 @@ -1123,6 +1160,11 @@ snapshots: - unocss - windicss + '@formkit/zod@1.6.9(zod@3.23.8)': + dependencies: + '@formkit/core': 1.6.9 + zod: 3.23.8 + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -1490,6 +1532,10 @@ snapshots: he@1.2.0: {} + i18next@23.16.6: + dependencies: + '@babel/runtime': 7.26.0 + is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 @@ -1631,6 +1677,8 @@ snapshots: dependencies: picomatch: 2.3.1 + regenerator-runtime@0.14.1: {} + resolve@1.22.8: dependencies: is-core-module: 2.15.1 @@ -1806,3 +1854,10 @@ snapshots: strip-ansi: 7.1.0 yaml@2.6.0: {} + + zod-i18n-map@2.27.0(i18next@23.16.6)(zod@3.23.8): + dependencies: + i18next: 23.16.6 + zod: 3.23.8 + + zod@3.23.8: {} diff --git a/src/App.vue b/src/App.vue index 7248cea..cc6551a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,233 +1,15 @@ - - diff --git a/src/guests.vue b/src/tutorial-form/guests.vue similarity index 97% rename from src/guests.vue rename to src/tutorial-form/guests.vue index 58cac0c..370a457 100644 --- a/src/guests.vue +++ b/src/tutorial-form/guests.vue @@ -13,7 +13,7 @@ import { FormKitMessages } from '@formkit/vue' #default="{ items, node, value }" >
diff --git a/src/tutorial-form/index.vue b/src/tutorial-form/index.vue new file mode 100644 index 0000000..8e3f430 --- /dev/null +++ b/src/tutorial-form/index.vue @@ -0,0 +1,240 @@ + + + + + + + \ No newline at end of file diff --git a/src/zod-form/index.vue b/src/zod-form/index.vue new file mode 100644 index 0000000..42e92d9 --- /dev/null +++ b/src/zod-form/index.vue @@ -0,0 +1,77 @@ + + + \ No newline at end of file