@macrulez/vue-form-schema 0.1.9 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +461 -180
  2. package/dist/MaskEngine-BEXwX4BK.js +144 -0
  3. package/dist/MaskEngine-CPr-fSPy.cjs +1 -0
  4. package/dist/ValidationEngine-BC4U1ef1.js +135 -0
  5. package/dist/ValidationEngine-Diz-qTFs.cjs +1 -0
  6. package/dist/_plugin-vue_export-helper-BHFhmbuH.cjs +1 -0
  7. package/dist/_plugin-vue_export-helper-CHgC5LLL.js +9 -0
  8. package/dist/core/ConditionEvaluator.d.ts.map +1 -1
  9. package/dist/core/MaskEngine.d.ts.map +1 -1
  10. package/dist/core/ValidationEngine.d.ts +7 -0
  11. package/dist/core/ValidationEngine.d.ts.map +1 -1
  12. package/dist/core/formRegistry.d.ts +33 -0
  13. package/dist/core/formRegistry.d.ts.map +1 -0
  14. package/dist/core/inferTypes.d.ts.map +1 -1
  15. package/dist/core/schemaUtils.d.ts +38 -0
  16. package/dist/core/schemaUtils.d.ts.map +1 -1
  17. package/dist/core/serverErrors.d.ts +69 -0
  18. package/dist/core/serverErrors.d.ts.map +1 -0
  19. package/dist/core/types.d.ts +12 -0
  20. package/dist/core/types.d.ts.map +1 -1
  21. package/dist/core/useForm.d.ts +4 -1
  22. package/dist/core/useForm.d.ts.map +1 -1
  23. package/dist/core/useMultiStepForm.d.ts.map +1 -1
  24. package/dist/devtools/index.d.ts +26 -0
  25. package/dist/devtools/index.d.ts.map +1 -0
  26. package/dist/devtools.cjs +1 -0
  27. package/dist/devtools.d.ts +6 -0
  28. package/dist/devtools.js +93 -0
  29. package/dist/formRegistry-Bv1eaWQ-.js +31 -0
  30. package/dist/formRegistry-DaDmXyYY.cjs +1 -0
  31. package/dist/index.cjs +1 -1
  32. package/dist/index.d.ts +4 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +393 -368
  35. package/dist/openapi.cjs +1 -0
  36. package/dist/openapi.d.ts +202 -0
  37. package/dist/openapi.js +118 -0
  38. package/dist/parsers/json.d.ts.map +1 -1
  39. package/dist/parsers/openapi.d.ts +139 -0
  40. package/dist/parsers/openapi.d.ts.map +1 -0
  41. package/dist/parsers/valibot.d.ts +13 -4
  42. package/dist/parsers/valibot.d.ts.map +1 -1
  43. package/dist/parsers/yup.d.ts +10 -4
  44. package/dist/parsers/yup.d.ts.map +1 -1
  45. package/dist/parsers/zod.d.ts +18 -4
  46. package/dist/parsers/zod.d.ts.map +1 -1
  47. package/dist/schemaUtils-Cc7CwGXB.cjs +1 -0
  48. package/dist/schemaUtils-Cvlsk24U.js +337 -0
  49. package/dist/style.css +1 -0
  50. package/dist/ui/naive/index.d.ts +11 -0
  51. package/dist/ui/naive/index.d.ts.map +1 -0
  52. package/dist/ui/primevue/index.d.ts +11 -0
  53. package/dist/ui/primevue/index.d.ts.map +1 -0
  54. package/dist/ui/shadcn/index.d.ts +11 -0
  55. package/dist/ui/shadcn/index.d.ts.map +1 -0
  56. package/dist/ui-naive.cjs +1 -0
  57. package/dist/ui-naive.d.ts +276 -0
  58. package/dist/ui-naive.js +667 -0
  59. package/dist/ui-primevue.cjs +1 -0
  60. package/dist/ui-primevue.d.ts +276 -0
  61. package/dist/ui-primevue.js +651 -0
  62. package/dist/ui-shadcn.cjs +1 -0
  63. package/dist/ui-shadcn.d.ts +276 -0
  64. package/dist/ui-shadcn.js +650 -0
  65. package/dist/ui-tailwind.cjs +1 -1
  66. package/dist/ui-tailwind.d.ts +153 -274
  67. package/dist/ui-tailwind.js +180 -161
  68. package/dist/ui.cjs +1 -1
  69. package/dist/ui.d.ts +170 -308
  70. package/dist/ui.js +130 -131
  71. package/dist/valibot.cjs +1 -1
  72. package/dist/valibot.d.ts +25 -2
  73. package/dist/valibot.js +47 -20
  74. package/dist/yup.cjs +1 -1
  75. package/dist/yup.d.ts +23 -3
  76. package/dist/yup.js +16 -15
  77. package/dist/zod.cjs +1 -1
  78. package/dist/zod.d.ts +31 -3
  79. package/dist/zod.js +58 -28
  80. package/package.json +69 -7
  81. package/dist/MaskEngine-DAKSNIHQ.cjs +0 -1
  82. package/dist/MaskEngine-mLoXKd4d.js +0 -251
package/dist/ui.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),y=require("./MaskEngine-DAKSNIHQ.cjs"),R=["for"],w={key:0,class:"vfs-field__required","aria-hidden":"true"},A=["id"],B=e.defineComponent({__name:"BaseField",props:{field:{},error:{},touched:{type:Boolean}},setup(t){const r=t,l=e.computed(()=>{var i;return!!(r.touched&&((i=r.error)!=null&&i.length))}),u=e.computed(()=>`${r.field.name}-error`),o=e.computed(()=>({"aria-required":r.field.required?"true":void 0,"aria-invalid":l.value?"true":"false","aria-describedby":l.value?u.value:void 0}));return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vfs-field",[`vfs-field--${r.field.type}`,{"vfs-field--error":l.value}]])},[r.field.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:r.field.name,class:"vfs-field__label"},[e.createTextVNode(e.toDisplayString(r.field.label)+" ",1),r.field.required?(e.openBlock(),e.createElementBlock("span",w,"*")):e.createCommentVNode("",!0)],8,R)):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"default",e.normalizeProps(e.guardReactiveProps(o.value))),l.value?(e.openBlock(),e.createElementBlock("ul",{key:1,id:u.value,class:"vfs-field__errors",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(m,v)=>(e.openBlock(),e.createElementBlock("li",{key:v,class:"vfs-field__error"},e.toDisplayString(m),1))),128))],8,A)):e.createCommentVNode("",!0)],2))}}),P=["id","type","name","value","placeholder","disabled","required"],V=e.defineComponent({__name:"TextField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=t,u=r,o=e.ref(null);let i=null;e.onMounted(()=>{o.value&&l.field.mask&&(i=y.bindMask(o.value,l.field.mask))}),e.onUnmounted(()=>i==null?void 0:i());function s(m){u("update:modelValue",m.target.value)}return(m,v)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(c=>[e.createElementVNode("input",e.mergeProps({id:t.field.name,ref_key:"inputRef",ref:o,type:t.field.type==="email"?"email":"text",name:t.field.name,value:t.modelValue??"",placeholder:t.field.placeholder,disabled:t.field.disabled===!0,required:t.field.required},c,{class:"vfs-input",onInput:s,onBlur:v[0]||(v[0]=b=>u("blur"))}),null,16,P)]),_:1},8,["field","error","touched"]))}}),T=["id","name","value","placeholder","disabled","required"],$=e.defineComponent({__name:"NumberField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=r;function u(o){const i=o.target.value;l("update:modelValue",i===""?null:Number(i))}return(o,i)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(s=>[e.createElementVNode("input",e.mergeProps({id:t.field.name,type:"number",name:t.field.name,value:t.modelValue??"",placeholder:t.field.placeholder,disabled:t.field.disabled===!0,required:t.field.required},s,{class:"vfs-input",onInput:u,onBlur:i[0]||(i[0]=m=>l("blur"))}),null,16,T)]),_:1},8,["field","error","touched"]))}}),z=["id","name","value","placeholder","disabled","required"],E=e.defineComponent({__name:"TextareaField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=r;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(i=>[e.createElementVNode("textarea",e.mergeProps({id:t.field.name,name:t.field.name,value:t.modelValue??"",placeholder:t.field.placeholder,disabled:t.field.disabled===!0,required:t.field.required},i,{class:"vfs-textarea",onInput:o[0]||(o[0]=s=>l("update:modelValue",s.target.value)),onBlur:o[1]||(o[1]=s=>l("blur"))}),null,16,z)]),_:1},8,["field","error","touched"]))}}),I={key:0,class:"vfs-select-loading"},M=["id","name","disabled","required"],U=["selected"],O=["value","selected"],C=e.defineComponent({__name:"SelectField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=t,u=r,o=e.computed(()=>Array.isArray(l.field.options)?l.field.options:[]);function i(s){const m=s.target,v=o.value.find(c=>String(c.value)===m.value);u("update:modelValue",(v==null?void 0:v.value)??m.value)}return(s,m)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(v=>[t.field.optionsLoading?(e.openBlock(),e.createElementBlock("div",I,"Loading…")):(e.openBlock(),e.createElementBlock("select",e.mergeProps({key:1,id:t.field.name,name:t.field.name,disabled:t.field.disabled===!0||t.field.optionsLoading,required:t.field.required},v,{class:"vfs-select",onChange:i,onBlur:m[0]||(m[0]=c=>u("blur"))}),[e.createElementVNode("option",{value:"",disabled:"",selected:t.modelValue===null||t.modelValue===void 0||t.modelValue===""},e.toDisplayString(t.field.placeholder??"Select an option"),9,U),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,c=>(e.openBlock(),e.createElementBlock("option",{key:String(c.value),value:String(c.value),selected:t.modelValue===c.value},e.toDisplayString(c.label),9,O))),128))],16,M))]),_:1},8,["field","error","touched"]))}}),j={class:"vfs-checkbox-label"},K=["id","name","checked","disabled","required","aria-checked"],G={key:0,class:"vfs-checkbox-text"},S=e.defineComponent({__name:"CheckboxField",props:{field:{},modelValue:{type:[Boolean,null]},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=r;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:{...t.field,label:void 0},error:t.error,touched:t.touched},{default:e.withCtx(i=>[e.createElementVNode("label",j,[e.createElementVNode("input",e.mergeProps({id:t.field.name,type:"checkbox",name:t.field.name,checked:!!t.modelValue,disabled:t.field.disabled===!0,required:t.field.required,"aria-checked":t.modelValue?"true":"false"},i,{class:"vfs-checkbox",onChange:o[0]||(o[0]=s=>l("update:modelValue",s.target.checked)),onBlur:o[1]||(o[1]=s=>l("blur"))}),null,16,K),t.field.label?(e.openBlock(),e.createElementBlock("span",G,e.toDisplayString(t.field.label),1)):e.createCommentVNode("",!0)])]),_:1},8,["field","error","touched"]))}}),H=["aria-required","aria-invalid","aria-describedby"],J={key:0,class:"vfs-field__label"},Q={key:0,class:"vfs-field__required","aria-hidden":"true"},W={class:"vfs-radio-group"},X=["name","value","checked","disabled","onChange"],Y=["id"],N=e.defineComponent({__name:"RadioField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=t,u=r,o=e.computed(()=>{var m;return!!(l.touched&&((m=l.error)!=null&&m.length))}),i=e.computed(()=>`${l.field.name}-error`),s=e.computed(()=>Array.isArray(l.field.options)?l.field.options:[]);return(m,v)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(["vfs-field vfs-field--radio",{"vfs-field--error":o.value}]),"aria-required":t.field.required?"true":void 0,"aria-invalid":o.value?"true":"false","aria-describedby":o.value?i.value:void 0},[t.field.label?(e.openBlock(),e.createElementBlock("legend",J,[e.createTextVNode(e.toDisplayString(t.field.label)+" ",1),t.field.required?(e.openBlock(),e.createElementBlock("span",Q,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",W,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,c=>(e.openBlock(),e.createElementBlock("label",{key:String(c.value),class:"vfs-radio-label"},[e.createElementVNode("input",{type:"radio",name:t.field.name,value:String(c.value),checked:t.modelValue===c.value,disabled:t.field.disabled===!0,class:"vfs-radio",onChange:b=>u("update:modelValue",c.value),onBlur:v[0]||(v[0]=b=>u("blur"))},null,40,X),e.createTextVNode(" "+e.toDisplayString(c.label),1)]))),128))]),o.value?(e.openBlock(),e.createElementBlock("ul",{key:1,id:i.value,class:"vfs-field__errors",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(c,b)=>(e.openBlock(),e.createElementBlock("li",{key:b,class:"vfs-field__error"},e.toDisplayString(c),1))),128))],8,Y)):e.createCommentVNode("",!0)],10,H))}}),Z=["id","name","value","disabled","required"],x=e.defineComponent({__name:"DateField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=r;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(i=>[e.createElementVNode("input",e.mergeProps({id:t.field.name,type:"date",name:t.field.name,value:t.modelValue??"",disabled:t.field.disabled===!0,required:t.field.required},i,{class:"vfs-input",onInput:o[0]||(o[0]=s=>l("update:modelValue",s.target.value)),onBlur:o[1]||(o[1]=s=>l("blur"))}),null,16,Z)]),_:1},8,["field","error","touched"]))}}),_={class:"vfs-array"},ee={key:0,class:"vfs-field__label"},te=["onClick"],D=e.defineComponent({__name:"ArrayField",props:{field:{},form:{},components:{}},setup(t){const r=t,l=y.useRegistry(),u={text:V,email:V,number:$,textarea:E,select:C,checkbox:S,radio:N,date:x};function o(k){var n;return k.component?k.component:((n=r.components)==null?void 0:n[k.type])??l[k.type]??u[k.type]??null}const{rows:i,append:s,remove:m}=y.useFieldArray(r.form,r.field.name);function v(k){return y.getByPath(r.form.values.value,k.name)}function c(k,n){r.form.setField(k.name,n)}function b(k){var a;const n=r.form;(a=n.touchField)==null||a.call(n,k.name)}function h(k){return r.form.errors.value[k.name]??[]}function g(k){return r.form.touched.value[k.name]??!1}return(k,n)=>(e.openBlock(),e.createElementBlock("div",_,[e.createVNode(B,{field:{...t.field,label:void 0},error:[],touched:!1},{default:e.withCtx(()=>[t.field.label?(e.openBlock(),e.createElementBlock("div",ee,e.toDisplayString(t.field.label),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(i),a=>(e.openBlock(),e.createElementBlock("div",{key:a.key,class:"vfs-array__row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.fields,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[o(f)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o(f)),{key:0,field:f,"model-value":v(f),error:h(f),touched:g(f),"onUpdate:modelValue":d=>c(f,d),onBlur:d=>b(f)},null,40,["field","model-value","error","touched","onUpdate:modelValue","onBlur"])):e.createCommentVNode("",!0)],64))),128)),e.createElementVNode("button",{type:"button",class:"vfs-array__remove",onClick:f=>e.unref(m)(a.index)}," Remove ",8,te)]))),128)),e.createElementVNode("button",{type:"button",class:"vfs-array__add",onClick:n[0]||(n[0]=a=>e.unref(s)())}," + Add row ")]),_:1},8,["field"])]))}}),le=["id","name","accept","multiple","disabled","required"],oe=["for"],ne={key:0,class:"vfs-file-hint"},re={key:0,class:"vfs-file-list"},ae={class:"vfs-file-name"},ie={class:"vfs-file-size"},de=["aria-label","onClick"],q=e.defineComponent({__name:"FileField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=t,u=r,o=e.ref(!1),i=e.ref(null),s=e.computed(()=>l.modelValue?Array.isArray(l.modelValue)?l.modelValue:[l.modelValue]:[]),m=e.computed(()=>l.field.multiple??!1);function v(a){if(!a||a.length===0){u("update:modelValue",null);return}m.value?u("update:modelValue",Array.from(a)):u("update:modelValue",a[0])}function c(a){v(a.target.files),u("blur")}function b(a){var f;o.value=!1,a.preventDefault(),v(((f=a.dataTransfer)==null?void 0:f.files)??null),u("blur")}function h(a){a.preventDefault(),o.value=!0}function g(){o.value=!1}function k(a){const f=s.value.filter((d,p)=>p!==a);f.length===0?(u("update:modelValue",null),i.value&&(i.value.value="")):m.value?u("update:modelValue",f):u("update:modelValue",f[0])}function n(a){return a<1024?`${a} B`:a<1024*1024?`${(a/1024).toFixed(1)} KB`:`${(a/(1024*1024)).toFixed(1)} MB`}return(a,f)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(d=>[e.createElementVNode("div",{class:e.normalizeClass(["vfs-file-zone",{"vfs-file-zone--dragging":o.value}]),onDragover:h,onDragleave:g,onDrop:b},[e.createElementVNode("input",e.mergeProps({id:t.field.name,ref_key:"inputRef",ref:i,type:"file",name:t.field.name,accept:t.field.accept,multiple:m.value,disabled:t.field.disabled===!0,required:t.field.required},d,{class:"vfs-file-input",onChange:c}),null,16,le),e.createElementVNode("label",{for:t.field.name,class:"vfs-file-label"},[f[0]||(f[0]=e.createElementVNode("span",{class:"vfs-file-icon","aria-hidden":"true"},"📁",-1)),e.createElementVNode("span",null,e.toDisplayString(o.value?"Drop files here":"Click to upload or drag & drop"),1),t.field.accept?(e.openBlock(),e.createElementBlock("span",ne,e.toDisplayString(t.field.accept),1)):e.createCommentVNode("",!0)],8,oe)],34),s.value.length?(e.openBlock(),e.createElementBlock("ul",re,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(p,F)=>(e.openBlock(),e.createElementBlock("li",{key:`${p.name}-${F}`,class:"vfs-file-item"},[e.createElementVNode("span",ae,e.toDisplayString(p.name),1),e.createElementVNode("span",ie,e.toDisplayString(n(p.size)),1),e.createElementVNode("button",{type:"button",class:"vfs-file-remove","aria-label":`Remove ${p.name}`,onClick:ye=>k(F)}," × ",8,de)]))),128))])):e.createCommentVNode("",!0)]),_:1},8,["field","error","touched"]))}}),ue={key:1,class:"vfs-group"},ce={key:0},se=["disabled"],L=e.defineComponent({__name:"FormRenderer",props:{form:{},components:{},submitLabel:{}},emits:["submit"],setup(t,{emit:r}){const l=t,u=y.useRegistry(),o=r,i={text:V,email:V,number:$,textarea:E,select:C,checkbox:S,radio:N,date:x,file:q};function s(n){var a;return n.component?n.component:((a=l.components)==null?void 0:a[n.type])??u[n.type]??i[n.type]??null}function m(n){return y.getByPath(l.form.values.value,n.name)}function v(n,a){l.form.setField(n.name,a)}function c(n){var f;const a=l.form;(f=a.touchField)==null||f.call(a,n.name)}function b(n){return l.form.errors.value[n.name]??[]}function h(n){return l.form.touched.value[n.name]??!1}const g=e.computed(()=>l.form.fields.value.filter(n=>n.visible!==!1));async function k(n){n.preventDefault(),await l.form.submit(),o("submit")}return(n,a)=>{const f=e.resolveComponent("FormRenderer",!0);return e.openBlock(),e.createElementBlock("form",{class:"vfs-form",novalidate:"",onSubmit:k},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,d=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.name},[n.$slots[`field-${d.name}`]?e.renderSlot(n.$slots,`field-${d.name}`,{key:0,field:d,value:m(d),error:b(d),touched:h(d),setValue:p=>v(d,p),touch:()=>c(d)}):d.type==="group"?(e.openBlock(),e.createElementBlock("fieldset",ue,[d.label?(e.openBlock(),e.createElementBlock("legend",ce,e.toDisplayString(d.label),1)):e.createCommentVNode("",!0),d.fields?(e.openBlock(),e.createBlock(f,{key:1,form:t.form,components:t.components},null,8,["form","components"])):e.createCommentVNode("",!0)])):d.type==="array"?(e.openBlock(),e.createBlock(D,{key:2,field:d,form:t.form,components:t.components},null,8,["field","form","components"])):s(d)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s(d)),{key:3,field:d,"model-value":m(d),error:b(d),touched:h(d),"onUpdate:modelValue":p=>v(d,p),onBlur:p=>c(d)},e.createSlots({_:2},[n.$slots[`label-${d.name}`]?{name:"label",fn:e.withCtx(()=>[e.renderSlot(n.$slots,`label-${d.name}`,{field:d})]),key:"0"}:void 0,n.$slots[`error-${d.name}`]?{name:"error",fn:e.withCtx(()=>[e.renderSlot(n.$slots,`error-${d.name}`,{field:d,error:b(d)})]),key:"1"}:void 0]),1064,["field","model-value","error","touched","onUpdate:modelValue","onBlur"])):e.createCommentVNode("",!0)],64))),128)),e.renderSlot(n.$slots,"submit",{isSubmitting:t.form.isSubmitting.value,isValid:t.form.isValid.value},()=>[e.createElementVNode("button",{type:"submit",disabled:t.form.isSubmitting.value,class:"vfs-submit"},e.toDisplayString(t.submitLabel??"Submit"),9,se)])],32)}}}),me={class:"vfs-multistep"},fe={class:"vfs-multistep__steps"},ve={class:"vfs-multistep__step-number"},ke={key:0,class:"vfs-multistep__step-label"},be={class:"vfs-multistep__progress"},pe={class:"vfs-multistep__nav"},Be=["disabled"],he=e.defineComponent({__name:"MultiStepFormRenderer",props:{form:{},components:{},submitLabel:{},nextLabel:{},backLabel:{},stepLabels:{}},emits:["submit"],setup(t,{emit:r}){const l=t,u=r;async function o(){await l.form.next()}async function i(){await l.form.submit(),u("submit")}return(s,m)=>(e.openBlock(),e.createElementBlock("div",me,[e.createElementVNode("div",fe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.form.steps,(v,c)=>{var b;return e.openBlock(),e.createElementBlock("div",{key:c,class:e.normalizeClass(["vfs-multistep__step",{"vfs-multistep__step--active":c===t.form.currentStep.value,"vfs-multistep__step--done":c<t.form.currentStep.value}])},[e.createElementVNode("span",ve,e.toDisplayString(c+1),1),(b=t.stepLabels)!=null&&b[c]?(e.openBlock(),e.createElementBlock("span",ke,e.toDisplayString(t.stepLabels[c]),1)):e.createCommentVNode("",!0)],2)}),128))]),e.createElementVNode("div",be," Step "+e.toDisplayString(t.form.currentStep.value+1)+" of "+e.toDisplayString(t.form.totalSteps),1),e.createVNode(L,{form:t.form.form.value,components:t.components},{submit:e.withCtx(()=>[e.createElementVNode("div",pe,[t.form.isFirstStep.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vfs-multistep__back",onClick:m[0]||(m[0]=v=>t.form.back())},e.toDisplayString(t.backLabel??"← Back"),1)),t.form.isLastStep.value?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"vfs-submit",disabled:t.form.isSubmitting.value,onClick:i},e.toDisplayString(t.submitLabel??"Submit"),9,Be)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vfs-multistep__next",onClick:o},e.toDisplayString(t.nextLabel??"Next →"),1))])]),_:1},8,["form","components"])]))}});exports.ArrayField=D;exports.CheckboxField=S;exports.DateField=x;exports.FileField=q;exports.FormRenderer=L;exports.MultiStepFormRenderer=he;exports.NumberField=$;exports.RadioField=N;exports.SelectField=C;exports.TextField=V;exports.TextareaField=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),V=require("./MaskEngine-CPr-fSPy.cjs"),D=require("./ValidationEngine-Diz-qTFs.cjs"),w=["for"],A={key:0,class:"vfs-field__required","aria-hidden":"true"},P=["id"],B=e.defineComponent({__name:"BaseField",props:{field:{},error:{},touched:{type:Boolean}},setup(t){const r=t,l=e.computed(()=>{var d;return!!(r.touched&&((d=r.error)!=null&&d.length))}),u=e.computed(()=>`${r.field.name}-error`),o=e.computed(()=>({"aria-required":r.field.required?"true":void 0,"aria-invalid":l.value?"true":"false","aria-describedby":l.value?u.value:void 0}));return(d,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vfs-field",[`vfs-field--${r.field.type}`,{"vfs-field--error":l.value}]])},[r.field.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:r.field.name,class:"vfs-field__label"},[e.createTextVNode(e.toDisplayString(r.field.label)+" ",1),r.field.required?(e.openBlock(),e.createElementBlock("span",A,"*")):e.createCommentVNode("",!0)],8,w)):e.createCommentVNode("",!0),e.renderSlot(d.$slots,"default",e.normalizeProps(e.guardReactiveProps(o.value))),l.value?(e.openBlock(),e.createElementBlock("ul",{key:1,id:u.value,class:"vfs-field__errors",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(m,v)=>(e.openBlock(),e.createElementBlock("li",{key:v,class:"vfs-field__error"},e.toDisplayString(m),1))),128))],8,P)):e.createCommentVNode("",!0)],2))}}),T=["id","type","name","value","placeholder","disabled","required"],g=e.defineComponent({__name:"TextField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=t,u=r,o=e.ref(null);let d=null;e.onMounted(()=>{o.value&&l.field.mask&&(d=V.bindMask(o.value,l.field.mask))}),e.onUnmounted(()=>d==null?void 0:d());function s(m){u("update:modelValue",m.target.value)}return(m,v)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(c=>[e.createElementVNode("input",e.mergeProps({id:t.field.name,ref_key:"inputRef",ref:o,type:t.field.type==="email"?"email":"text",name:t.field.name,value:t.modelValue??"",placeholder:t.field.placeholder,disabled:t.field.disabled===!0,required:t.field.required},c,{class:"vfs-input",onInput:s,onBlur:v[0]||(v[0]=b=>u("blur"))}),null,16,T)]),_:1},8,["field","error","touched"]))}}),z=["id","name","value","placeholder","disabled","required"],$=e.defineComponent({__name:"NumberField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=r;function u(o){const d=o.target.value;l("update:modelValue",d===""?null:Number(d))}return(o,d)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(s=>[e.createElementVNode("input",e.mergeProps({id:t.field.name,type:"number",name:t.field.name,value:t.modelValue??"",placeholder:t.field.placeholder,disabled:t.field.disabled===!0,required:t.field.required},s,{class:"vfs-input",onInput:u,onBlur:d[0]||(d[0]=m=>l("blur"))}),null,16,z)]),_:1},8,["field","error","touched"]))}}),I=["id","name","value","placeholder","disabled","required"],E=e.defineComponent({__name:"TextareaField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=r;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(d=>[e.createElementVNode("textarea",e.mergeProps({id:t.field.name,name:t.field.name,value:t.modelValue??"",placeholder:t.field.placeholder,disabled:t.field.disabled===!0,required:t.field.required},d,{class:"vfs-textarea",onInput:o[0]||(o[0]=s=>l("update:modelValue",s.target.value)),onBlur:o[1]||(o[1]=s=>l("blur"))}),null,16,I)]),_:1},8,["field","error","touched"]))}}),M={key:0,class:"vfs-select-loading"},U=["id","name","disabled","required"],O=["selected"],j=["value","selected"],C=e.defineComponent({__name:"SelectField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=t,u=r,o=e.computed(()=>Array.isArray(l.field.options)?l.field.options:[]);function d(s){const m=s.target,v=o.value.find(c=>String(c.value)===m.value);u("update:modelValue",(v==null?void 0:v.value)??m.value)}return(s,m)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(v=>[t.field.optionsLoading?(e.openBlock(),e.createElementBlock("div",M,"Loading…")):(e.openBlock(),e.createElementBlock("select",e.mergeProps({key:1,id:t.field.name,name:t.field.name,disabled:t.field.disabled===!0||t.field.optionsLoading,required:t.field.required},v,{class:"vfs-select",onChange:d,onBlur:m[0]||(m[0]=c=>u("blur"))}),[e.createElementVNode("option",{value:"",disabled:"",selected:t.modelValue===null||t.modelValue===void 0||t.modelValue===""},e.toDisplayString(t.field.placeholder??"Select an option"),9,O),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,c=>(e.openBlock(),e.createElementBlock("option",{key:String(c.value),value:String(c.value),selected:t.modelValue===c.value},e.toDisplayString(c.label),9,j))),128))],16,U))]),_:1},8,["field","error","touched"]))}}),K={class:"vfs-checkbox-label"},G=["id","name","checked","disabled","required","aria-checked"],H={key:0,class:"vfs-checkbox-text"},S=e.defineComponent({__name:"CheckboxField",props:{field:{},modelValue:{type:[Boolean,null]},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=r;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:{...t.field,label:void 0},error:t.error,touched:t.touched},{default:e.withCtx(d=>[e.createElementVNode("label",K,[e.createElementVNode("input",e.mergeProps({id:t.field.name,type:"checkbox",name:t.field.name,checked:!!t.modelValue,disabled:t.field.disabled===!0,required:t.field.required,"aria-checked":t.modelValue?"true":"false"},d,{class:"vfs-checkbox",onChange:o[0]||(o[0]=s=>l("update:modelValue",s.target.checked)),onBlur:o[1]||(o[1]=s=>l("blur"))}),null,16,G),t.field.label?(e.openBlock(),e.createElementBlock("span",H,e.toDisplayString(t.field.label),1)):e.createCommentVNode("",!0)])]),_:1},8,["field","error","touched"]))}}),J=["aria-required","aria-invalid","aria-describedby"],Q={key:0,class:"vfs-field__label"},W={key:0,class:"vfs-field__required","aria-hidden":"true"},X={class:"vfs-radio-group"},Y=["name","value","checked","disabled","onChange"],Z=["id"],N=e.defineComponent({__name:"RadioField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=t,u=r,o=e.computed(()=>{var m;return!!(l.touched&&((m=l.error)!=null&&m.length))}),d=e.computed(()=>`${l.field.name}-error`),s=e.computed(()=>Array.isArray(l.field.options)?l.field.options:[]);return(m,v)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass(["vfs-field vfs-field--radio",{"vfs-field--error":o.value}]),"aria-required":t.field.required?"true":void 0,"aria-invalid":o.value?"true":"false","aria-describedby":o.value?d.value:void 0},[t.field.label?(e.openBlock(),e.createElementBlock("legend",Q,[e.createTextVNode(e.toDisplayString(t.field.label)+" ",1),t.field.required?(e.openBlock(),e.createElementBlock("span",W,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",X,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,c=>(e.openBlock(),e.createElementBlock("label",{key:String(c.value),class:"vfs-radio-label"},[e.createElementVNode("input",{type:"radio",name:t.field.name,value:String(c.value),checked:t.modelValue===c.value,disabled:t.field.disabled===!0,class:"vfs-radio",onChange:b=>u("update:modelValue",c.value),onBlur:v[0]||(v[0]=b=>u("blur"))},null,40,Y),e.createTextVNode(" "+e.toDisplayString(c.label),1)]))),128))]),o.value?(e.openBlock(),e.createElementBlock("ul",{key:1,id:d.value,class:"vfs-field__errors",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(c,b)=>(e.openBlock(),e.createElementBlock("li",{key:b,class:"vfs-field__error"},e.toDisplayString(c),1))),128))],8,Z)):e.createCommentVNode("",!0)],10,J))}}),_=["id","name","value","disabled","required"],x=e.defineComponent({__name:"DateField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=r;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(d=>[e.createElementVNode("input",e.mergeProps({id:t.field.name,type:"date",name:t.field.name,value:t.modelValue??"",disabled:t.field.disabled===!0,required:t.field.required},d,{class:"vfs-input",onInput:o[0]||(o[0]=s=>l("update:modelValue",s.target.value)),onBlur:o[1]||(o[1]=s=>l("blur"))}),null,16,_)]),_:1},8,["field","error","touched"]))}}),ee={class:"vfs-array"},te={key:0,class:"vfs-field__label"},le=["onClick"],q=e.defineComponent({__name:"ArrayField",props:{field:{},form:{},components:{}},setup(t){const r=t,l=V.useRegistry(),u={text:g,email:g,number:$,textarea:E,select:C,checkbox:S,radio:N,date:x};function o(k){var n;return k.component?k.component:((n=r.components)==null?void 0:n[k.type])??l[k.type]??u[k.type]??null}const{rows:d,append:s,remove:m}=V.useFieldArray(r.form,r.field.name);function v(k){return D.getByPath(r.form.values.value,k.name)}function c(k,n){r.form.setField(k.name,n)}function b(k){var a;const n=r.form;(a=n.touchField)==null||a.call(n,k.name)}function h(k){return r.form.errors.value[k.name]??[]}function y(k){return r.form.touched.value[k.name]??!1}return(k,n)=>(e.openBlock(),e.createElementBlock("div",ee,[e.createVNode(B,{field:{...t.field,label:void 0},error:[],touched:!1},{default:e.withCtx(()=>[t.field.label?(e.openBlock(),e.createElementBlock("div",te,e.toDisplayString(t.field.label),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(d),a=>(e.openBlock(),e.createElementBlock("div",{key:a.key,class:"vfs-array__row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(a.fields,f=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:f.name},[o(f)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o(f)),{key:0,field:f,"model-value":v(f),error:h(f),touched:y(f),"onUpdate:modelValue":i=>c(f,i),onBlur:i=>b(f)},null,40,["field","model-value","error","touched","onUpdate:modelValue","onBlur"])):e.createCommentVNode("",!0)],64))),128)),e.createElementVNode("button",{type:"button",class:"vfs-array__remove",onClick:f=>e.unref(m)(a.index)},"Remove",8,le)]))),128)),e.createElementVNode("button",{type:"button",class:"vfs-array__add",onClick:n[0]||(n[0]=a=>e.unref(s)())},"+ Add row")]),_:1},8,["field"])]))}}),oe=["id","name","accept","multiple","disabled","required"],ne=["for"],re={key:0,class:"vfs-file-hint"},ae={key:0,class:"vfs-file-list"},ie={class:"vfs-file-name"},de={class:"vfs-file-size"},ue=["aria-label","onClick"],L=e.defineComponent({__name:"FileField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:r}){const l=t,u=r,o=e.ref(!1),d=e.ref(null),s=e.computed(()=>l.modelValue?Array.isArray(l.modelValue)?l.modelValue:[l.modelValue]:[]),m=e.computed(()=>l.field.multiple??!1);function v(a){if(!a||a.length===0){u("update:modelValue",null);return}m.value?u("update:modelValue",Array.from(a)):u("update:modelValue",a[0])}function c(a){v(a.target.files),u("blur")}function b(a){var f;o.value=!1,a.preventDefault(),v(((f=a.dataTransfer)==null?void 0:f.files)??null),u("blur")}function h(a){a.preventDefault(),o.value=!0}function y(){o.value=!1}function k(a){const f=s.value.filter((i,p)=>p!==a);f.length===0?(u("update:modelValue",null),d.value&&(d.value.value="")):m.value?u("update:modelValue",f):u("update:modelValue",f[0])}function n(a){return a<1024?`${a} B`:a<1024*1024?`${(a/1024).toFixed(1)} KB`:`${(a/(1024*1024)).toFixed(1)} MB`}return(a,f)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(i=>[e.createElementVNode("div",{class:e.normalizeClass(["vfs-file-zone",{"vfs-file-zone--dragging":o.value}]),onDragover:h,onDragleave:y,onDrop:b},[e.createElementVNode("input",e.mergeProps({id:t.field.name,ref_key:"inputRef",ref:d,type:"file",name:t.field.name,accept:t.field.accept,multiple:m.value,disabled:t.field.disabled===!0,required:t.field.required},i,{class:"vfs-file-input",onChange:c}),null,16,oe),e.createElementVNode("label",{for:t.field.name,class:"vfs-file-label"},[f[0]||(f[0]=e.createElementVNode("span",{class:"vfs-file-icon","aria-hidden":"true"},"📁",-1)),e.createElementVNode("span",null,e.toDisplayString(o.value?"Drop files here":"Click to upload or drag & drop"),1),t.field.accept?(e.openBlock(),e.createElementBlock("span",re,e.toDisplayString(t.field.accept),1)):e.createCommentVNode("",!0)],8,ne)],34),s.value.length?(e.openBlock(),e.createElementBlock("ul",ae,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,(p,F)=>(e.openBlock(),e.createElementBlock("li",{key:`${p.name}-${F}`,class:"vfs-file-item"},[e.createElementVNode("span",ie,e.toDisplayString(p.name),1),e.createElementVNode("span",de,e.toDisplayString(n(p.size)),1),e.createElementVNode("button",{type:"button",class:"vfs-file-remove","aria-label":`Remove ${p.name}`,onClick:ge=>k(F)}," × ",8,ue)]))),128))])):e.createCommentVNode("",!0)]),_:1},8,["field","error","touched"]))}}),ce={key:1,class:"vfs-group"},se={key:0},me=["disabled"],R=e.defineComponent({__name:"FormRenderer",props:{form:{},components:{},submitLabel:{},fields:{}},emits:["submit"],setup(t,{emit:r}){const l=t,u=V.useRegistry(),o=r,d={text:g,email:g,number:$,textarea:E,select:C,checkbox:S,radio:N,date:x,file:L};function s(n){var a;return n.component?n.component:((a=l.components)==null?void 0:a[n.type])??u[n.type]??d[n.type]??null}function m(n){return D.getByPath(l.form.values.value,n.name)}function v(n,a){l.form.setField(n.name,a)}function c(n){var f;const a=l.form;(f=a.touchField)==null||f.call(a,n.name)}function b(n){return l.form.errors.value[n.name]??[]}function h(n){return l.form.touched.value[n.name]??!1}const y=e.computed(()=>(l.fields??l.form.fields.value).filter(n=>n.visible!==!1));async function k(n){n.preventDefault(),await l.form.submit(),o("submit")}return(n,a)=>{const f=e.resolveComponent("FormRenderer",!0);return e.openBlock(),e.createElementBlock("form",{class:"vfs-form",novalidate:"",onSubmit:k},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,i=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:i.name},[n.$slots[`field-${i.name}`]?e.renderSlot(n.$slots,`field-${i.name}`,{key:0,field:i,value:m(i),error:b(i),touched:h(i),setValue:p=>v(i,p),touch:()=>c(i)}):i.type==="group"?(e.openBlock(),e.createElementBlock("fieldset",ce,[i.label?(e.openBlock(),e.createElementBlock("legend",se,e.toDisplayString(i.label),1)):e.createCommentVNode("",!0),i.fields?(e.openBlock(),e.createBlock(f,{key:1,form:t.form,fields:i.fields,components:t.components},null,8,["form","fields","components"])):e.createCommentVNode("",!0)])):i.type==="array"?(e.openBlock(),e.createBlock(q,{key:2,field:i,form:t.form,components:t.components},null,8,["field","form","components"])):s(i)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s(i)),{key:3,field:i,"model-value":m(i),error:b(i),touched:h(i),"onUpdate:modelValue":p=>v(i,p),onBlur:p=>c(i)},e.createSlots({_:2},[n.$slots[`label-${i.name}`]?{name:"label",fn:e.withCtx(()=>[e.renderSlot(n.$slots,`label-${i.name}`,{field:i})]),key:"0"}:void 0,n.$slots[`error-${i.name}`]?{name:"error",fn:e.withCtx(()=>[e.renderSlot(n.$slots,`error-${i.name}`,{field:i,error:b(i)})]),key:"1"}:void 0]),1064,["field","model-value","error","touched","onUpdate:modelValue","onBlur"])):e.createCommentVNode("",!0)],64))),128)),e.renderSlot(n.$slots,"submit",{isSubmitting:t.form.isSubmitting.value,isValid:t.form.isValid.value},()=>[e.createElementVNode("button",{type:"submit",disabled:t.form.isSubmitting.value,class:"vfs-submit"},e.toDisplayString(t.submitLabel??"Submit"),9,me)])],32)}}}),fe={class:"vfs-multistep"},ve={class:"vfs-multistep__steps"},ke={class:"vfs-multistep__step-number"},be={key:0,class:"vfs-multistep__step-label"},pe={class:"vfs-multistep__progress"},Be={class:"vfs-multistep__nav"},he=["disabled"],ye=e.defineComponent({__name:"MultiStepFormRenderer",props:{form:{},components:{},submitLabel:{},nextLabel:{},backLabel:{},stepLabels:{}},emits:["submit"],setup(t,{emit:r}){const l=t,u=r;async function o(){await l.form.next()}async function d(){await l.form.submit(),u("submit")}return(s,m)=>(e.openBlock(),e.createElementBlock("div",fe,[e.createElementVNode("div",ve,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.form.steps,(v,c)=>{var b;return e.openBlock(),e.createElementBlock("div",{key:c,class:e.normalizeClass(["vfs-multistep__step",{"vfs-multistep__step--active":c===t.form.currentStep.value,"vfs-multistep__step--done":c<t.form.currentStep.value}])},[e.createElementVNode("span",ke,e.toDisplayString(c+1),1),(b=t.stepLabels)!=null&&b[c]?(e.openBlock(),e.createElementBlock("span",be,e.toDisplayString(t.stepLabels[c]),1)):e.createCommentVNode("",!0)],2)}),128))]),e.createElementVNode("div",pe," Step "+e.toDisplayString(t.form.currentStep.value+1)+" of "+e.toDisplayString(t.form.totalSteps),1),e.createVNode(R,{form:t.form.form.value,components:t.components},{submit:e.withCtx(()=>[e.createElementVNode("div",Be,[t.form.isFirstStep.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vfs-multistep__back",onClick:m[0]||(m[0]=v=>t.form.back())},e.toDisplayString(t.backLabel??"← Back"),1)),t.form.isLastStep.value?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:"vfs-submit",disabled:t.form.isSubmitting.value,onClick:d},e.toDisplayString(t.submitLabel??"Submit"),9,he)):(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"vfs-multistep__next",onClick:o},e.toDisplayString(t.nextLabel??"Next →"),1))])]),_:1},8,["form","components"])]))}});exports.ArrayField=q;exports.CheckboxField=S;exports.DateField=x;exports.FileField=L;exports.FormRenderer=R;exports.MultiStepFormRenderer=ye;exports.NumberField=$;exports.RadioField=N;exports.SelectField=C;exports.TextField=g;exports.TextareaField=E;
package/dist/ui.d.ts CHANGED
@@ -3,222 +3,198 @@ import { ComponentOptionsMixin } from 'vue';
3
3
  import { ComponentProvideOptions } from 'vue';
4
4
  import { ComputedRef } from 'vue';
5
5
  import { DefineComponent } from 'vue';
6
- import { ExtractPropTypes } from 'vue';
7
- import { PropType } from 'vue';
8
6
  import { PublicProps } from 'vue';
9
7
  import { Ref } from 'vue';
10
8
 
11
- declare const __VLS_component: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
12
- form: UseFormReturn;
13
- /** Override individual field renderers: { text: MyTextInput, ... } */
14
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
15
- /** Label for the submit button */
16
- submitLabel?: string;
17
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
18
- submit: () => void;
19
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
20
- form: UseFormReturn;
21
- /** Override individual field renderers: { text: MyTextInput, ... } */
22
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
23
- /** Label for the submit button */
24
- submitLabel?: string;
25
- }>>> & Readonly<{
26
- onSubmit?: (() => any) | undefined;
27
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
28
-
29
- declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
30
-
31
- declare type __VLS_NonUndefinedable_10<T> = T extends undefined ? never : T;
32
-
33
- declare type __VLS_NonUndefinedable_11<T> = T extends undefined ? never : T;
34
-
35
- declare type __VLS_NonUndefinedable_2<T> = T extends undefined ? never : T;
36
-
37
- declare type __VLS_NonUndefinedable_3<T> = T extends undefined ? never : T;
38
-
39
- declare type __VLS_NonUndefinedable_4<T> = T extends undefined ? never : T;
40
-
41
- declare type __VLS_NonUndefinedable_5<T> = T extends undefined ? never : T;
42
-
43
- declare type __VLS_NonUndefinedable_6<T> = T extends undefined ? never : T;
44
-
45
- declare type __VLS_NonUndefinedable_7<T> = T extends undefined ? never : T;
46
-
47
- declare type __VLS_NonUndefinedable_8<T> = T extends undefined ? never : T;
48
-
49
- declare type __VLS_NonUndefinedable_9<T> = T extends undefined ? never : T;
9
+ declare const __VLS_base: DefineComponent<__VLS_Props, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
10
+ submit: () => any;
11
+ }, string, PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ onSubmit?: (() => any) | undefined;
13
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
14
+
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+
17
+ declare const __VLS_export_10: DefineComponent<__VLS_Props_10, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<__VLS_Props_10> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
18
+
19
+ declare const __VLS_export_11: DefineComponent<__VLS_Props_11, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
20
+ blur: () => any;
21
+ "update:modelValue": (value: File | File[] | null) => any;
22
+ }, string, PublicProps, Readonly<__VLS_Props_11> & Readonly<{
23
+ onBlur?: (() => any) | undefined;
24
+ "onUpdate:modelValue"?: ((value: File | File[] | null) => any) | undefined;
25
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
26
+
27
+ declare const __VLS_export_2: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
28
+ submit: () => any;
29
+ }, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{
30
+ onSubmit?: (() => any) | undefined;
31
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
32
+
33
+ declare const __VLS_export_3: DefineComponent<__VLS_Props_3, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
34
+ blur: () => any;
35
+ "update:modelValue": (value: string) => any;
36
+ }, string, PublicProps, Readonly<__VLS_Props_3> & Readonly<{
37
+ onBlur?: (() => any) | undefined;
38
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
39
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
40
+
41
+ declare const __VLS_export_4: DefineComponent<__VLS_Props_4, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
42
+ blur: () => any;
43
+ "update:modelValue": (value: number | null) => any;
44
+ }, string, PublicProps, Readonly<__VLS_Props_4> & Readonly<{
45
+ onBlur?: (() => any) | undefined;
46
+ "onUpdate:modelValue"?: ((value: number | null) => any) | undefined;
47
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
48
+
49
+ declare const __VLS_export_5: DefineComponent<__VLS_Props_5, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
50
+ blur: () => any;
51
+ "update:modelValue": (value: string) => any;
52
+ }, string, PublicProps, Readonly<__VLS_Props_5> & Readonly<{
53
+ onBlur?: (() => any) | undefined;
54
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
55
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
56
+
57
+ declare const __VLS_export_6: DefineComponent<__VLS_Props_6, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
58
+ blur: () => any;
59
+ "update:modelValue": (value: unknown) => any;
60
+ }, string, PublicProps, Readonly<__VLS_Props_6> & Readonly<{
61
+ onBlur?: (() => any) | undefined;
62
+ "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
63
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
64
+
65
+ declare const __VLS_export_7: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
66
+ blur: () => any;
67
+ "update:modelValue": (value: boolean) => any;
68
+ }, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{
69
+ onBlur?: (() => any) | undefined;
70
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
71
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
72
+
73
+ declare const __VLS_export_8: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
74
+ blur: () => any;
75
+ "update:modelValue": (value: unknown) => any;
76
+ }, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{
77
+ onBlur?: (() => any) | undefined;
78
+ "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
79
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
80
+
81
+ declare const __VLS_export_9: DefineComponent<__VLS_Props_9, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
82
+ blur: () => any;
83
+ "update:modelValue": (value: string) => any;
84
+ }, string, PublicProps, Readonly<__VLS_Props_9> & Readonly<{
85
+ onBlur?: (() => any) | undefined;
86
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
87
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
88
+
89
+ declare type __VLS_Props = {
90
+ form: UseFormReturn;
91
+ /** Override individual field renderers: { text: MyTextInput, ... } */
92
+ components?: Partial<Record<FieldDefinition['type'], Component | string>>;
93
+ /** Label for the submit button */
94
+ submitLabel?: string;
95
+ /**
96
+ * Internal: the field list to render. Used by the `group` case to recurse
97
+ * into `field.fields` instead of re-rendering the whole top-level schema
98
+ * (which would recurse into the same group forever). Defaults to the
99
+ * form's top-level fields — not meant to be passed by consumers.
100
+ */
101
+ fields?: FieldDefinition[];
102
+ };
50
103
 
51
- declare function __VLS_template(): Partial<Record<`field-${string}`, (_: {
52
- field: FieldDefinition;
53
- value: unknown;
54
- error: string[];
55
- touched: boolean;
56
- setValue: (v: unknown) => void;
57
- touch: () => void;
58
- }) => any>> & Partial<Record<`label-${string}`, (_: {
59
- field: FieldDefinition;
60
- }) => any>> & Partial<Record<`error-${string}`, (_: {
104
+ declare type __VLS_Props_10 = {
61
105
  field: FieldDefinition;
62
- error: string[];
63
- }) => any>> & {
64
- submit?(_: {
65
- isSubmitting: boolean;
66
- isValid: boolean;
67
- }): any;
106
+ form: UseFormReturn;
107
+ components?: Partial<Record<FieldDefinition['type'], Component | string>>;
68
108
  };
69
109
 
70
- declare type __VLS_TypePropsToRuntimeProps<T> = {
71
- [K in keyof T]-?: {} extends Pick<T, K> ? {
72
- type: PropType<__VLS_NonUndefinedable<T[K]>>;
73
- } : {
74
- type: PropType<T[K]>;
75
- required: true;
76
- };
110
+ declare type __VLS_Props_11 = {
111
+ field: FieldDefinition;
112
+ modelValue: File | File[] | null;
113
+ error?: string[];
114
+ touched?: boolean;
77
115
  };
78
116
 
79
- declare type __VLS_TypePropsToRuntimeProps_10<T> = {
80
- [K in keyof T]-?: {} extends Pick<T, K> ? {
81
- type: PropType<__VLS_NonUndefinedable_10<T[K]>>;
82
- } : {
83
- type: PropType<T[K]>;
84
- required: true;
85
- };
117
+ declare type __VLS_Props_2 = {
118
+ form: MultiStepFormReturn;
119
+ components?: Partial<Record<FieldDefinition['type'], Component | string>>;
120
+ submitLabel?: string;
121
+ nextLabel?: string;
122
+ backLabel?: string;
123
+ stepLabels?: string[];
86
124
  };
87
125
 
88
- declare type __VLS_TypePropsToRuntimeProps_11<T> = {
89
- [K in keyof T]-?: {} extends Pick<T, K> ? {
90
- type: PropType<__VLS_NonUndefinedable_11<T[K]>>;
91
- } : {
92
- type: PropType<T[K]>;
93
- required: true;
94
- };
95
- };
96
-
97
- declare type __VLS_TypePropsToRuntimeProps_2<T> = {
98
- [K in keyof T]-?: {} extends Pick<T, K> ? {
99
- type: PropType<__VLS_NonUndefinedable_2<T[K]>>;
100
- } : {
101
- type: PropType<T[K]>;
102
- required: true;
103
- };
126
+ declare type __VLS_Props_3 = {
127
+ field: FieldDefinition;
128
+ modelValue: string | null;
129
+ error?: string[];
130
+ touched?: boolean;
104
131
  };
105
132
 
106
- declare type __VLS_TypePropsToRuntimeProps_3<T> = {
107
- [K in keyof T]-?: {} extends Pick<T, K> ? {
108
- type: PropType<__VLS_NonUndefinedable_3<T[K]>>;
109
- } : {
110
- type: PropType<T[K]>;
111
- required: true;
112
- };
133
+ declare type __VLS_Props_4 = {
134
+ field: FieldDefinition;
135
+ modelValue: number | null;
136
+ error?: string[];
137
+ touched?: boolean;
113
138
  };
114
139
 
115
- declare type __VLS_TypePropsToRuntimeProps_4<T> = {
116
- [K in keyof T]-?: {} extends Pick<T, K> ? {
117
- type: PropType<__VLS_NonUndefinedable_4<T[K]>>;
118
- } : {
119
- type: PropType<T[K]>;
120
- required: true;
121
- };
140
+ declare type __VLS_Props_5 = {
141
+ field: FieldDefinition;
142
+ modelValue: string | null;
143
+ error?: string[];
144
+ touched?: boolean;
122
145
  };
123
146
 
124
- declare type __VLS_TypePropsToRuntimeProps_5<T> = {
125
- [K in keyof T]-?: {} extends Pick<T, K> ? {
126
- type: PropType<__VLS_NonUndefinedable_5<T[K]>>;
127
- } : {
128
- type: PropType<T[K]>;
129
- required: true;
130
- };
147
+ declare type __VLS_Props_6 = {
148
+ field: FieldDefinition;
149
+ modelValue: unknown;
150
+ error?: string[];
151
+ touched?: boolean;
131
152
  };
132
153
 
133
- declare type __VLS_TypePropsToRuntimeProps_6<T> = {
134
- [K in keyof T]-?: {} extends Pick<T, K> ? {
135
- type: PropType<__VLS_NonUndefinedable_6<T[K]>>;
136
- } : {
137
- type: PropType<T[K]>;
138
- required: true;
139
- };
154
+ declare type __VLS_Props_7 = {
155
+ field: FieldDefinition;
156
+ modelValue: boolean | null;
157
+ error?: string[];
158
+ touched?: boolean;
140
159
  };
141
160
 
142
- declare type __VLS_TypePropsToRuntimeProps_7<T> = {
143
- [K in keyof T]-?: {} extends Pick<T, K> ? {
144
- type: PropType<__VLS_NonUndefinedable_7<T[K]>>;
145
- } : {
146
- type: PropType<T[K]>;
147
- required: true;
148
- };
161
+ declare type __VLS_Props_8 = {
162
+ field: FieldDefinition;
163
+ modelValue: unknown;
164
+ error?: string[];
165
+ touched?: boolean;
149
166
  };
150
167
 
151
- declare type __VLS_TypePropsToRuntimeProps_8<T> = {
152
- [K in keyof T]-?: {} extends Pick<T, K> ? {
153
- type: PropType<__VLS_NonUndefinedable_8<T[K]>>;
154
- } : {
155
- type: PropType<T[K]>;
156
- required: true;
157
- };
168
+ declare type __VLS_Props_9 = {
169
+ field: FieldDefinition;
170
+ modelValue: string | null;
171
+ error?: string[];
172
+ touched?: boolean;
158
173
  };
159
174
 
160
- declare type __VLS_TypePropsToRuntimeProps_9<T> = {
161
- [K in keyof T]-?: {} extends Pick<T, K> ? {
162
- type: PropType<__VLS_NonUndefinedable_9<T[K]>>;
163
- } : {
164
- type: PropType<T[K]>;
165
- required: true;
166
- };
175
+ declare type __VLS_Slots = {} & {
176
+ [K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
177
+ } & {
178
+ [K in NonNullable<typeof __VLS_26>]?: (props: typeof __VLS_27) => any;
179
+ } & {
180
+ [K in NonNullable<typeof __VLS_31>]?: (props: typeof __VLS_32) => any;
181
+ } & {
182
+ submit?: (props: typeof __VLS_34) => any;
167
183
  };
168
184
 
169
- declare type __VLS_WithTemplateSlots<T, S> = T & {
185
+ declare type __VLS_WithSlots<T, S> = T & {
170
186
  new (): {
171
187
  $slots: S;
172
188
  };
173
189
  };
174
190
 
175
- export declare const ArrayField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_10<{
176
- field: FieldDefinition;
177
- form: UseFormReturn;
178
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
179
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_10<{
180
- field: FieldDefinition;
181
- form: UseFormReturn;
182
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
183
- }>>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
191
+ export declare const ArrayField: typeof __VLS_export_10;
184
192
 
185
193
  declare type AsyncValidatorFn = (value: unknown, values: Record<string, unknown>) => Promise<string | null>;
186
194
 
187
- export declare const CheckboxField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_7<{
188
- field: FieldDefinition;
189
- modelValue: boolean | null;
190
- error?: string[];
191
- touched?: boolean;
192
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
193
- blur: () => void;
194
- "update:modelValue": (value: boolean) => void;
195
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_7<{
196
- field: FieldDefinition;
197
- modelValue: boolean | null;
198
- error?: string[];
199
- touched?: boolean;
200
- }>>> & Readonly<{
201
- onBlur?: (() => any) | undefined;
202
- "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
203
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
204
-
205
- export declare const DateField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_9<{
206
- field: FieldDefinition;
207
- modelValue: string | null;
208
- error?: string[];
209
- touched?: boolean;
210
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
211
- blur: () => void;
212
- "update:modelValue": (value: string) => void;
213
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_9<{
214
- field: FieldDefinition;
215
- modelValue: string | null;
216
- error?: string[];
217
- touched?: boolean;
218
- }>>> & Readonly<{
219
- onBlur?: (() => any) | undefined;
220
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
221
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
195
+ export declare const CheckboxField: typeof __VLS_export_7;
196
+
197
+ export declare const DateField: typeof __VLS_export_9;
222
198
 
223
199
  declare interface FieldDefinition {
224
200
  type: FieldType;
@@ -278,25 +254,9 @@ declare interface FieldOption {
278
254
 
279
255
  declare type FieldType = 'text' | 'number' | 'email' | 'select' | 'checkbox' | 'radio' | 'textarea' | 'date' | 'array' | 'group' | 'file';
280
256
 
281
- export declare const FileField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_11<{
282
- field: FieldDefinition;
283
- modelValue: File | File[] | null;
284
- error?: string[];
285
- touched?: boolean;
286
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
287
- blur: () => void;
288
- "update:modelValue": (value: File | File[] | null) => void;
289
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_11<{
290
- field: FieldDefinition;
291
- modelValue: File | File[] | null;
292
- error?: string[];
293
- touched?: boolean;
294
- }>>> & Readonly<{
295
- onBlur?: (() => any) | undefined;
296
- "onUpdate:modelValue"?: ((value: File | File[] | null) => any) | undefined;
297
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
298
-
299
- export declare const FormRenderer: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
257
+ export declare const FileField: typeof __VLS_export_11;
258
+
259
+ export declare const FormRenderer: typeof __VLS_export;
300
260
 
301
261
  declare interface MaskConfig {
302
262
  preset?: MaskPreset;
@@ -306,25 +266,7 @@ declare interface MaskConfig {
306
266
 
307
267
  declare type MaskPreset = 'phone-ru' | 'phone-eu' | 'date' | 'inn' | 'iban';
308
268
 
309
- export declare const MultiStepFormRenderer: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_2<{
310
- form: MultiStepFormReturn;
311
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
312
- submitLabel?: string;
313
- nextLabel?: string;
314
- backLabel?: string;
315
- stepLabels?: string[];
316
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
317
- submit: () => void;
318
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_2<{
319
- form: MultiStepFormReturn;
320
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
321
- submitLabel?: string;
322
- nextLabel?: string;
323
- backLabel?: string;
324
- stepLabels?: string[];
325
- }>>> & Readonly<{
326
- onSubmit?: (() => any) | undefined;
327
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
269
+ export declare const MultiStepFormRenderer: typeof __VLS_export_2;
328
270
 
329
271
  declare interface MultiStepFormReturn {
330
272
  currentStep: Ref<number>;
@@ -346,95 +288,15 @@ declare interface MultiStepFormReturn {
346
288
  submit(): Promise<void>;
347
289
  }
348
290
 
349
- export declare const NumberField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_4<{
350
- field: FieldDefinition;
351
- modelValue: number | null;
352
- error?: string[];
353
- touched?: boolean;
354
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
355
- blur: () => void;
356
- "update:modelValue": (value: number | null) => void;
357
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_4<{
358
- field: FieldDefinition;
359
- modelValue: number | null;
360
- error?: string[];
361
- touched?: boolean;
362
- }>>> & Readonly<{
363
- onBlur?: (() => any) | undefined;
364
- "onUpdate:modelValue"?: ((value: number | null) => any) | undefined;
365
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
366
-
367
- export declare const RadioField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_8<{
368
- field: FieldDefinition;
369
- modelValue: unknown;
370
- error?: string[];
371
- touched?: boolean;
372
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
373
- blur: () => void;
374
- "update:modelValue": (value: unknown) => void;
375
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_8<{
376
- field: FieldDefinition;
377
- modelValue: unknown;
378
- error?: string[];
379
- touched?: boolean;
380
- }>>> & Readonly<{
381
- onBlur?: (() => any) | undefined;
382
- "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
383
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
384
-
385
- export declare const SelectField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_6<{
386
- field: FieldDefinition;
387
- modelValue: unknown;
388
- error?: string[];
389
- touched?: boolean;
390
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
391
- blur: () => void;
392
- "update:modelValue": (value: unknown) => void;
393
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_6<{
394
- field: FieldDefinition;
395
- modelValue: unknown;
396
- error?: string[];
397
- touched?: boolean;
398
- }>>> & Readonly<{
399
- onBlur?: (() => any) | undefined;
400
- "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
401
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
402
-
403
- export declare const TextareaField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_5<{
404
- field: FieldDefinition;
405
- modelValue: string | null;
406
- error?: string[];
407
- touched?: boolean;
408
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
409
- blur: () => void;
410
- "update:modelValue": (value: string) => void;
411
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_5<{
412
- field: FieldDefinition;
413
- modelValue: string | null;
414
- error?: string[];
415
- touched?: boolean;
416
- }>>> & Readonly<{
417
- onBlur?: (() => any) | undefined;
418
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
419
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
420
-
421
- export declare const TextField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_3<{
422
- field: FieldDefinition;
423
- modelValue: string | null;
424
- error?: string[];
425
- touched?: boolean;
426
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
427
- blur: () => void;
428
- "update:modelValue": (value: string) => void;
429
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_3<{
430
- field: FieldDefinition;
431
- modelValue: string | null;
432
- error?: string[];
433
- touched?: boolean;
434
- }>>> & Readonly<{
435
- onBlur?: (() => any) | undefined;
436
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
437
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
291
+ export declare const NumberField: typeof __VLS_export_4;
292
+
293
+ export declare const RadioField: typeof __VLS_export_8;
294
+
295
+ export declare const SelectField: typeof __VLS_export_6;
296
+
297
+ export declare const TextareaField: typeof __VLS_export_5;
298
+
299
+ export declare const TextField: typeof __VLS_export_3;
438
300
 
439
301
  declare interface UseFormReturn<T extends Record<string, unknown> = Record<string, unknown>> {
440
302
  fields: ComputedRef<FieldDefinition[]>;