Files
vue-formkit-example/formkit.config.ts
严浩 da379a71eb
All checks were successful
/ test (push) Successful in 26s
/ surge (push) Successful in 24s
feat: 更新自定义切换组件,重命名为 headlessui-switch 并调整类型定义
2024-11-21 14:35:44 +08:00

56 lines
2.1 KiB
TypeScript

import { createAutoAnimatePlugin, createAutoHeightTextareaPlugin } from '@formkit/addons'
import type { FormKitOptions } from '@formkit/core'
import { createI18nPlugin, zh } from '@formkit/i18n'
import { genesisIcons } from '@formkit/icons'
import { checkbox, createLibraryPlugin, form, group, list, number, range, submit, text, textarea, } from '@formkit/inputs'
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, createInput } from '@formkit/vue'
import { addAsteriskPlugin } from './formkit.addAsteriskPlugin'
import { rootClasses } from "./formkit.config.theme"
import HeadlessuiToggle from "./src/headlessui-switch.vue";
const library = createLibraryPlugin({
text, form, submit, group, checkbox, range, list, number, textarea,
'headlessuiSwitch': createInput(HeadlessuiToggle)
})
const validation = createValidationPlugin(defaultRules)
const i18n = createI18nPlugin({ zh })
const theme = undefined;
const icons = genesisIcons;
const themePlugin = createThemePlugin(theme, icons/* , iconLoaderUrl, iconLoader */)
const apiKey = 'fk-6cdd5192223'
export default {
plugins: [
createProPlugin(apiKey, { toggle }),
library,
themePlugin, bindings, i18n, validation, addAsteriskPlugin,
// https://github.com/formkit/formkit/blob/ac1947a305eb5082ba95f53800305d080787cb32/packages/addons/src/plugins/autoHeightTextarea.ts
createAutoHeightTextareaPlugin(),
// https://auto-animate.formkit.com/#usage
// https://github.com/formkit/auto-animate/
// https://github.com/formkit/formkit/blob/46d64d05c1b37875fc6227853f2bcfa987550c91/packages/addons/src/plugins/autoAnimatePlugin.ts
createAutoAnimatePlugin(
{
duration: 250,
easing: 'ease-in-out',
},
// {
// /* optional animation targets object */
// // default:
// global: ['outer', 'inner'],
// form: ['form'],
// repeater: ['items'],
// }
)
],
config: { rootClasses },
} satisfies FormKitOptions