├── .nvmrc ├── .npmrc ├── pnpm-workspace.yaml ├── docs ├── .vitepress │ ├── cache │ │ └── deps │ │ │ ├── package.json │ │ │ ├── vue.js.map │ │ │ ├── _metadata.json │ │ │ ├── vitepress___@vue_devtools-api.js │ │ │ ├── vue.js │ │ │ └── vitepress___@vue_devtools-api.js.map │ ├── theme │ │ ├── index.ts │ │ ├── components │ │ │ └── HomeTeam.vue │ │ └── style.css │ └── config.ts ├── public │ ├── favicon.ico │ ├── assets │ │ ├── mango.png │ │ ├── devtools.png │ │ ├── headless.png │ │ ├── vue-i18n.png │ │ ├── devtools-field.png │ │ ├── devtools-forms.png │ │ ├── devtools-select.png │ │ ├── feather.svg │ │ ├── devtools.svg │ │ ├── rocket.svg │ │ ├── ts.svg │ │ ├── world.svg │ │ └── zod.svg │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── apple-touch-icon.png │ ├── mstile-150x150.png │ ├── android-chrome-192x192.png │ ├── android-chrome-512x512.png │ ├── browserconfig.xml │ └── site.webmanifest ├── playground.md ├── guide │ ├── devtools.md │ └── getting-started.md ├── index.md ├── examples │ ├── external-errors.md │ └── subforms.md ├── CHANGELOG.md ├── best-practices │ ├── custom-input.md │ └── i18n.md └── api │ ├── field.md │ ├── field-array.md │ └── useForm.md ├── .vscode └── settings.json ├── src ├── lib │ ├── index.ts │ └── formatErrors.ts ├── index.ts ├── types │ ├── index.ts │ ├── devtools.type.ts │ ├── standardSpec.type.ts │ ├── utils.type.ts │ └── eager.type.ts ├── devtools │ ├── devtoolsBuilder.ts │ └── devtools.ts └── utils │ └── index.ts ├── .gitignore ├── eslint.config.js ├── tsconfig.json ├── .github ├── workflows │ ├── release.yml │ ├── docs.yml │ └── ci.yml └── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── test ├── useFormReactiveInitialState.test.ts ├── useFormIsChanged.test.ts ├── useFormComplexForm.test.ts ├── testUtils.ts ├── useFormIsTouched.test.ts ├── useFormArrayModifiers.test.ts ├── useFormSetValue.test.ts ├── useFormValueSync.test.ts ├── useFormReset.test.ts ├── useFormBlurAll.test.ts ├── useFormUnregister.test.ts ├── useFormIsDirty.test.ts ├── useFormNestedArray.test.ts ├── wiserTemplateSchema.ts ├── useFormFieldRegister.test.ts ├── useFormSubmit.test.ts ├── useFormInitialStateNull.test.ts ├── useFormIsValid.test.ts ├── useFormErrors.test.ts └── useFormRegister.test.ts ├── LICENSE ├── CHANGELOG.md ├── package.json ├── README.md ├── logo.svg └── CODE_OF_CONDUCT.md /.nvmrc: -------------------------------------------------------------------------------- 1 | v23 -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | ignore-workspace-root-check=true 2 | shamefully-hoist=true 3 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - playground 3 | - examples/* 4 | -------------------------------------------------------------------------------- /docs/.vitepress/cache/deps/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "eslint.experimental.useFlatConfig": false 3 | } 4 | -------------------------------------------------------------------------------- /docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/public/assets/mango.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/assets/mango.png -------------------------------------------------------------------------------- /docs/public/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/favicon-16x16.png -------------------------------------------------------------------------------- /docs/public/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/favicon-32x32.png -------------------------------------------------------------------------------- /docs/public/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/apple-touch-icon.png -------------------------------------------------------------------------------- /docs/public/assets/devtools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/assets/devtools.png -------------------------------------------------------------------------------- /docs/public/assets/headless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/assets/headless.png -------------------------------------------------------------------------------- /docs/public/assets/vue-i18n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/assets/vue-i18n.png -------------------------------------------------------------------------------- /docs/public/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/mstile-150x150.png -------------------------------------------------------------------------------- /src/lib/index.ts: -------------------------------------------------------------------------------- 1 | export { formatErrorsToZodFormattedError } from './formatErrors' 2 | export { useForm } from './useForm' 3 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './lib' 2 | export type { 3 | Field, FieldArray, Form, FormattedError, UseForm, 4 | } from './types' 5 | -------------------------------------------------------------------------------- /docs/public/assets/devtools-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/assets/devtools-field.png -------------------------------------------------------------------------------- /docs/public/assets/devtools-forms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/assets/devtools-forms.png -------------------------------------------------------------------------------- /docs/public/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/android-chrome-192x192.png -------------------------------------------------------------------------------- /docs/public/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/android-chrome-512x512.png -------------------------------------------------------------------------------- /docs/public/assets/devtools-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wisemen-digital/vue-formango/HEAD/docs/public/assets/devtools-select.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .cache 2 | .DS_Store 3 | .idea 4 | *.log 5 | *.tgz 6 | coverage 7 | dist 8 | lib-cov 9 | logs 10 | node_modules 11 | temp 12 | -------------------------------------------------------------------------------- /docs/.vitepress/cache/deps/vue.js.map: -------------------------------------------------------------------------------- 1 | { 2 | "version": 3, 3 | "sources": [], 4 | "sourcesContent": [], 5 | "mappings": "", 6 | "names": [] 7 | } 8 | -------------------------------------------------------------------------------- /src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './common.type' 2 | export * from './eager.type' 3 | export * from './form.type' 4 | export * from './standardSpec.type' 5 | export * from './utils.type' 6 | -------------------------------------------------------------------------------- /docs/public/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | #da532c 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /eslint.config.js: -------------------------------------------------------------------------------- 1 | import WisemenEslintConfig from '@wisemen/eslint-config-vue' 2 | 3 | export default [ 4 | ...(await WisemenEslintConfig), 5 | { 6 | rules: { 7 | 'require-explicit-generics/require-explicit-generics': 'off', 8 | 'ts/explicit-function-return-type': 'off', 9 | }, 10 | }, 11 | 12 | ] 13 | -------------------------------------------------------------------------------- /docs/.vitepress/theme/index.ts: -------------------------------------------------------------------------------- 1 | // https://vitepress.dev/guide/custom-theme 2 | import './style.css' 3 | 4 | import Theme from 'vitepress/theme' 5 | import { h } from 'vue' 6 | 7 | export default { 8 | enhanceApp() { 9 | // ... 10 | }, 11 | extends: Theme, 12 | Layout: () => { 13 | return h(Theme.Layout, null, {}) 14 | }, 15 | } 16 | -------------------------------------------------------------------------------- /docs/playground.md: -------------------------------------------------------------------------------- 1 | # Playground 2 | 3 |