From 3d3d9f0a7f522174dab2d2d28584650bf01eecc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=A5=E6=B5=A9?= Date: Thu, 21 Nov 2024 12:43:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=87=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E5=88=87=E6=8D=A2=E7=BB=84=E4=BB=B6=EF=BC=8C=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20FormKit=20=E9=85=8D=E7=BD=AE=E4=BB=A5=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=96=B0=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- formkit.config.ts | 10 +++++++-- package.json | 1 + pnpm-lock.yaml | 29 ++++++++++++++++++++++++++ src/headlessui-switch.vue | 41 +++++++++++++++++++++++++++++++++++++ src/tutorial-form/index.vue | 5 +++++ 5 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 src/headlessui-switch.vue diff --git a/formkit.config.ts b/formkit.config.ts index 4255b91..b7fe9de 100644 --- a/formkit.config.ts +++ b/formkit.config.ts @@ -7,11 +7,17 @@ import { createProPlugin, toggle } from '@formkit/pro' import * as defaultRules from '@formkit/rules' import { createThemePlugin } from '@formkit/themes' import { createValidationPlugin } from '@formkit/validation' -import { /* defaultConfig, */ bindings } from '@formkit/vue' +import { /* defaultConfig, */ bindings, createInput } from '@formkit/vue' import { addAsteriskPlugin } from './formkit.addAsteriskPlugin' import { rootClasses } from "./formkit.config.theme" +import FormKitToggle from "./src/headlessui-switch.vue"; -const library = createLibraryPlugin({ text, form, submit, group, checkbox, range, list, number, textarea, }) + +const library = createLibraryPlugin({ + text, form, submit, group, checkbox, range, list, number, textarea, + + mytoggle: createInput(FormKitToggle) +}) const validation = createValidationPlugin(defaultRules) const i18n = createI18nPlugin({ zh }) const theme = undefined; diff --git a/package.json b/package.json index 01c3264..e758e62 100644 --- a/package.json +++ b/package.json @@ -17,6 +17,7 @@ "@formkit/themes": "latest", "@formkit/vue": "latest", "@formkit/zod": "^1.6.9", + "@headlessui/vue": "^1.7.23", "autoprefixer": "latest", "i18next": "^23.16.6", "postcss": "latest", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3cdcd45..7b17f76 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,6 +29,9 @@ importers: '@formkit/zod': specifier: ^1.6.9 version: 1.6.9(zod@3.23.8) + '@headlessui/vue': + specifier: ^1.7.23 + version: 1.7.23(vue@3.5.13(typescript@5.6.3)) autoprefixer: specifier: latest version: 10.4.20(postcss@8.4.49) @@ -299,6 +302,12 @@ packages: peerDependencies: zod: ^3.0.0 + '@headlessui/vue@1.7.23': + resolution: {integrity: sha512-JzdCNqurrtuu0YW6QaDtR2PIYCKPUWq28csDyMvN4zmGccmE7lz40Is6hc3LA4HFeCI7sekZ/PQMTNmn9I/4Wg==} + engines: {node: '>=10'} + peerDependencies: + vue: ^3.2.0 + '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -436,6 +445,14 @@ packages: cpu: [x64] os: [win32] + '@tanstack/virtual-core@3.10.9': + resolution: {integrity: sha512-kBknKOKzmeR7lN+vSadaKWXaLS0SZZG+oqpQ/k80Q6g9REn6zRHS/ZYdrIzHnpHgy/eWs00SujveUN/GJT2qTw==} + + '@tanstack/vue-virtual@3.10.9': + resolution: {integrity: sha512-KU2quiwJQpA0sdflpXw24bhW+x8PG+FlrSJK3Ilobim671HNn4ztLVWUCEz3Inei4dLYq+GW1MK9X6i6ZeirkQ==} + peerDependencies: + vue: ^2.7.0 || ^3.0.0 + '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -1208,6 +1225,11 @@ snapshots: '@formkit/core': 1.6.9 zod: 3.23.8 + '@headlessui/vue@1.7.23(vue@3.5.13(typescript@5.6.3))': + dependencies: + '@tanstack/vue-virtual': 3.10.9(vue@3.5.13(typescript@5.6.3)) + vue: 3.5.13(typescript@5.6.3) + '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -1303,6 +1325,13 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.27.2': optional: true + '@tanstack/virtual-core@3.10.9': {} + + '@tanstack/vue-virtual@3.10.9(vue@3.5.13(typescript@5.6.3))': + dependencies: + '@tanstack/virtual-core': 3.10.9 + vue: 3.5.13(typescript@5.6.3) + '@types/estree@1.0.6': {} '@vitejs/plugin-vue@5.2.0(vite@5.4.11)(vue@3.5.13(typescript@5.6.3))': diff --git a/src/headlessui-switch.vue b/src/headlessui-switch.vue new file mode 100644 index 0000000..9acca01 --- /dev/null +++ b/src/headlessui-switch.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/tutorial-form/index.vue b/src/tutorial-form/index.vue index 8faf888..b37032c 100644 --- a/src/tutorial-form/index.vue +++ b/src/tutorial-form/index.vue @@ -146,6 +146,11 @@ onMounted(() => { :label="`如果清空 name 输入框,这个确认框及其值将被移除。`" /> + +