@macrulez/vue-form-schema 0.1.6 → 0.1.9
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.
- package/LICENSE +21 -0
- package/README.md +12 -0
- package/dist/MaskEngine-DAKSNIHQ.cjs +1 -0
- package/dist/MaskEngine-mLoXKd4d.js +251 -0
- package/dist/core/ValidationEngine.d.ts +6 -0
- package/dist/core/ValidationEngine.d.ts.map +1 -1
- package/dist/core/types.d.ts +10 -2
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/useForm.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +159 -151
- package/dist/ui/index.d.ts +1 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/tailwind/index.d.ts +11 -0
- package/dist/ui/tailwind/index.d.ts.map +1 -0
- package/dist/ui-tailwind.cjs +1 -0
- package/dist/ui-tailwind.d.ts +397 -0
- package/dist/ui-tailwind.js +650 -0
- package/dist/ui.cjs +1 -1
- package/dist/ui.d.ts +47 -10
- package/dist/ui.js +436 -300
- package/dist/valibot.d.ts +10 -2
- package/dist/yup.d.ts +10 -2
- package/dist/zod.d.ts +10 -2
- package/package.json +38 -24
- package/dist/MaskEngine-BqJQYybS.js +0 -233
- package/dist/MaskEngine-BwAs2Zb0.cjs +0 -1
- package/dist/__tests__/ConditionEvaluator.test.d.ts +0 -2
- package/dist/__tests__/ConditionEvaluator.test.d.ts.map +0 -1
- package/dist/__tests__/MaskEngine.test.d.ts +0 -2
- package/dist/__tests__/MaskEngine.test.d.ts.map +0 -1
- package/dist/__tests__/ValidationEngine.test.d.ts +0 -2
- package/dist/__tests__/ValidationEngine.test.d.ts.map +0 -1
- package/dist/__tests__/parsers.test.d.ts +0 -2
- package/dist/__tests__/parsers.test.d.ts.map +0 -1
- package/dist/__tests__/phase3.test.d.ts +0 -2
- package/dist/__tests__/phase3.test.d.ts.map +0 -1
- package/dist/__tests__/phase4.test.d.ts +0 -2
- package/dist/__tests__/phase4.test.d.ts.map +0 -1
- package/dist/__tests__/useFieldArray.test.d.ts +0 -2
- package/dist/__tests__/useFieldArray.test.d.ts.map +0 -1
- package/dist/__tests__/useForm.test.d.ts +0 -2
- package/dist/__tests__/useForm.test.d.ts.map +0 -1
- package/dist/__tests__/useMultiStepForm.test.d.ts +0 -2
- package/dist/__tests__/useMultiStepForm.test.d.ts.map +0 -1
package/dist/ui.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),h=require("./MaskEngine-BwAs2Zb0.cjs"),L=["for"],D={key:0,class:"vfs-field__required","aria-hidden":"true"},w=["id"],B=e.defineComponent({__name:"BaseField",props:{field:{},error:{},touched:{type:Boolean}},setup(t){const a=t;return(n,u)=>{var o,r;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["vfs-field",[`vfs-field--${a.field.type}`,{"vfs-field--error":t.touched&&((o=t.error)==null?void 0:o.length)}]])},[a.field.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:a.field.name,class:"vfs-field__label"},[e.createTextVNode(e.toDisplayString(a.field.label)+" ",1),a.field.required?(e.openBlock(),e.createElementBlock("span",D,"*")):e.createCommentVNode("",!0)],8,L)):e.createCommentVNode("",!0),e.renderSlot(n.$slots,"default"),t.touched&&((r=t.error)!=null&&r.length)?(e.openBlock(),e.createElementBlock("ul",{key:1,id:`${a.field.name}-error`,class:"vfs-field__errors",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(f,c)=>(e.openBlock(),e.createElementBlock("li",{key:c,class:"vfs-field__error"},e.toDisplayString(f),1))),128))],8,w)):e.createCommentVNode("",!0)],2)}}}),R=["id","type","name","value","placeholder","disabled","required"],y=e.defineComponent({__name:"TextField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:a}){const n=t,u=a,o=e.ref(null);let r=null;e.onMounted(()=>{o.value&&n.field.mask&&(r=h.bindMask(o.value,n.field.mask))}),e.onUnmounted(()=>r==null?void 0:r());function f(c){u("update:modelValue",c.target.value)}return(c,i)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(()=>[e.createElementVNode("input",{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,class:"vfs-input",onInput:f,onBlur:i[0]||(i[0]=k=>u("blur"))},null,40,R)]),_: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:a}){const n=a;function u(o){const r=o.target.value;n("update:modelValue",r===""?null:Number(r))}return(o,r)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(()=>[e.createElementVNode("input",{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,class:"vfs-input",onInput:u,onBlur:r[0]||(r[0]=f=>n("blur"))},null,40,T)]),_:1},8,["field","error","touched"]))}}),A=["id","name","value","placeholder","disabled","required"],C=e.defineComponent({__name:"TextareaField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:a}){const n=a;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(()=>[e.createElementVNode("textarea",{id:t.field.name,name:t.field.name,value:t.modelValue,placeholder:t.field.placeholder,disabled:t.field.disabled===!0,required:t.field.required,class:"vfs-textarea",onInput:o[0]||(o[0]=r=>n("update:modelValue",r.target.value)),onBlur:o[1]||(o[1]=r=>n("blur"))},null,40,A)]),_:1},8,["field","error","touched"]))}}),M={key:0,class:"vfs-select-loading"},U=["id","name","disabled","required"],I=["selected"],P=["value","selected"],E=e.defineComponent({__name:"SelectField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:a}){const n=t,u=a,o=e.computed(()=>Array.isArray(n.field.options)?n.field.options:[]);function r(f){const c=f.target,i=o.value.find(k=>String(k.value)===c.value);u("update:modelValue",(i==null?void 0:i.value)??c.value)}return(f,c)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(()=>[t.field.optionsLoading?(e.openBlock(),e.createElementBlock("div",M,"Loading…")):(e.openBlock(),e.createElementBlock("select",{key:1,id:t.field.name,name:t.field.name,disabled:t.field.disabled===!0||t.field.optionsLoading,required:t.field.required,class:"vfs-select",onChange:r,onBlur:c[0]||(c[0]=i=>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,I),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value,i=>(e.openBlock(),e.createElementBlock("option",{key:String(i.value),value:String(i.value),selected:t.modelValue===i.value},e.toDisplayString(i.label),9,P))),128))],40,U))]),_:1},8,["field","error","touched"]))}}),z={class:"vfs-checkbox-label"},j=["id","name","checked","disabled","required"],O={key:0,class:"vfs-checkbox-text"},S=e.defineComponent({__name:"CheckboxField",props:{field:{},modelValue:{type:Boolean},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:a}){const n=a;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:{...t.field,label:void 0},error:t.error,touched:t.touched},{default:e.withCtx(()=>[e.createElementVNode("label",z,[e.createElementVNode("input",{id:t.field.name,type:"checkbox",name:t.field.name,checked:t.modelValue,disabled:t.field.disabled===!0,required:t.field.required,class:"vfs-checkbox",onChange:o[0]||(o[0]=r=>n("update:modelValue",r.target.checked)),onBlur:o[1]||(o[1]=r=>n("blur"))},null,40,j),t.field.label?(e.openBlock(),e.createElementBlock("span",O,e.toDisplayString(t.field.label),1)):e.createCommentVNode("",!0)])]),_:1},8,["field","error","touched"]))}}),G=["aria-labelledby"],H=["name","value","checked","disabled","onChange"],x=e.defineComponent({__name:"RadioField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:a}){const n=a;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(()=>[e.createElementVNode("div",{class:"vfs-radio-group",role:"radiogroup","aria-labelledby":t.field.name+"-label"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.field.options,r=>(e.openBlock(),e.createElementBlock("label",{key:String(r.value),class:"vfs-radio-label"},[e.createElementVNode("input",{type:"radio",name:t.field.name,value:String(r.value),checked:t.modelValue===r.value,disabled:t.field.disabled===!0,class:"vfs-radio",onChange:f=>n("update:modelValue",r.value),onBlur:o[0]||(o[0]=f=>n("blur"))},null,40,H),e.createTextVNode(" "+e.toDisplayString(r.label),1)]))),128))],8,G)]),_:1},8,["field","error","touched"]))}}),J=["id","name","value","disabled","required"],N=e.defineComponent({__name:"DateField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:a}){const n=a;return(u,o)=>(e.openBlock(),e.createBlock(B,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(()=>[e.createElementVNode("input",{id:t.field.name,type:"date",name:t.field.name,value:t.modelValue,disabled:t.field.disabled===!0,required:t.field.required,class:"vfs-input",onInput:o[0]||(o[0]=r=>n("update:modelValue",r.target.value)),onBlur:o[1]||(o[1]=r=>n("blur"))},null,40,J)]),_:1},8,["field","error","touched"]))}}),K={class:"vfs-array"},Q={key:0,class:"vfs-field__label"},W=["onClick"],F=e.defineComponent({__name:"ArrayField",props:{field:{},form:{},components:{}},setup(t){const a=t,n=h.useRegistry(),u={text:y,email:y,number:$,textarea:C,select:E,checkbox:S,radio:x,date:N};function o(s){var l;return s.component?s.component:((l=a.components)==null?void 0:l[s.type])??n[s.type]??u[s.type]??null}const{rows:r,append:f,remove:c}=h.useFieldArray(a.form,a.field.name);function i(s){return h.getByPath(a.form.values.value,s.name)}function k(s,l){a.form.setField(s.name,l)}function b(s){var m;const l=a.form;(m=l.touchField)==null||m.call(l,s.name)}function V(s){return a.form.errors.value[s.name]??[]}function p(s){return a.form.touched.value[s.name]??!1}return(s,l)=>(e.openBlock(),e.createElementBlock("div",K,[e.createVNode(B,{field:{...t.field,label:void 0},error:[],touched:!1},{default:e.withCtx(()=>[t.field.label?(e.openBlock(),e.createElementBlock("div",Q,e.toDisplayString(t.field.label),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(r),m=>(e.openBlock(),e.createElementBlock("div",{key:m.key,class:"vfs-array__row"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.fields,v=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:v.name},[o(v)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o(v)),{key:0,field:v,"model-value":i(v),error:V(v),touched:p(v),"onUpdate:modelValue":d=>k(v,d),onBlur:d=>b(v)},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:v=>e.unref(c)(m.index)}," Remove ",8,W)]))),128)),e.createElementVNode("button",{type:"button",class:"vfs-array__add",onClick:l[0]||(l[0]=m=>e.unref(f)())}," + Add row ")]),_:1},8,["field"])]))}}),X={key:1,class:"vfs-group"},Y={key:0},Z=["disabled"],q=e.defineComponent({__name:"FormRenderer",props:{form:{},components:{},submitLabel:{}},emits:["submit"],setup(t,{emit:a}){const n=t,u=h.useRegistry(),o=a,r={text:y,email:y,number:$,textarea:C,select:E,checkbox:S,radio:x,date:N};function f(l){var m;return l.component?l.component:((m=n.components)==null?void 0:m[l.type])??u[l.type]??r[l.type]??null}function c(l){return h.getByPath(n.form.values.value,l.name)}function i(l,m){n.form.setField(l.name,m)}function k(l){var v;const m=n.form;(v=m.touchField)==null||v.call(m,l.name)}function b(l){return n.form.errors.value[l.name]??[]}function V(l){return n.form.touched.value[l.name]??!1}const p=e.computed(()=>n.form.fields.value.filter(l=>l.visible!==!1));async function s(l){l.preventDefault(),await n.form.submit(),o("submit")}return(l,m)=>{const v=e.resolveComponent("FormRenderer",!0);return e.openBlock(),e.createElementBlock("form",{class:"vfs-form",novalidate:"",onSubmit:s},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.value,d=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.name},[l.$slots[`field-${d.name}`]?e.renderSlot(l.$slots,`field-${d.name}`,{key:0,field:d,value:c(d),error:b(d),touched:V(d),setValue:g=>i(d,g),touch:()=>k(d)}):d.type==="group"?(e.openBlock(),e.createElementBlock("fieldset",X,[d.label?(e.openBlock(),e.createElementBlock("legend",Y,e.toDisplayString(d.label),1)):e.createCommentVNode("",!0),d.fields?(e.openBlock(),e.createBlock(v,{key:1,form:t.form,components:t.components},null,8,["form","components"])):e.createCommentVNode("",!0)])):d.type==="array"?(e.openBlock(),e.createBlock(F,{key:2,field:d,form:t.form,components:t.components},null,8,["field","form","components"])):f(d)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f(d)),{key:3,field:d,"model-value":c(d),error:b(d),touched:V(d),"onUpdate:modelValue":g=>i(d,g),onBlur:g=>k(d)},e.createSlots({_:2},[l.$slots[`label-${d.name}`]?{name:"label",fn:e.withCtx(()=>[e.renderSlot(l.$slots,`label-${d.name}`,{field:d})]),key:"0"}:void 0,l.$slots[`error-${d.name}`]?{name:"error",fn:e.withCtx(()=>[e.renderSlot(l.$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(l.$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,Z)])],32)}}}),_={class:"vfs-multistep"},ee={class:"vfs-multistep__steps"},te={class:"vfs-multistep__step-number"},le={key:0,class:"vfs-multistep__step-label"},oe={class:"vfs-multistep__progress"},ne={class:"vfs-multistep__nav"},re=["disabled"],ae=e.defineComponent({__name:"MultiStepFormRenderer",props:{form:{},components:{},submitLabel:{},nextLabel:{},backLabel:{},stepLabels:{}},emits:["submit"],setup(t,{emit:a}){const n=t,u=a;async function o(){await n.form.next()}async function r(){await n.form.submit(),u("submit")}return(f,c)=>(e.openBlock(),e.createElementBlock("div",_,[e.createElementVNode("div",ee,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.form.steps,(i,k)=>{var b;return e.openBlock(),e.createElementBlock("div",{key:k,class:e.normalizeClass(["vfs-multistep__step",{"vfs-multistep__step--active":k===t.form.currentStep.value,"vfs-multistep__step--done":k<t.form.currentStep.value}])},[e.createElementVNode("span",te,e.toDisplayString(k+1),1),(b=t.stepLabels)!=null&&b[k]?(e.openBlock(),e.createElementBlock("span",le,e.toDisplayString(t.stepLabels[k]),1)):e.createCommentVNode("",!0)],2)}),128))]),e.createElementVNode("div",oe," Step "+e.toDisplayString(t.form.currentStep.value+1)+" of "+e.toDisplayString(t.form.totalSteps),1),e.createVNode(q,{form:t.form.form.value,components:t.components},{submit:e.withCtx(()=>[e.createElementVNode("div",ne,[t.form.isFirstStep.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"vfs-multistep__back",onClick:c[0]||(c[0]=i=>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:r},e.toDisplayString(t.submitLabel??"Submit"),9,re)):(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=F;exports.CheckboxField=S;exports.DateField=N;exports.FormRenderer=q;exports.MultiStepFormRenderer=ae;exports.NumberField=$;exports.RadioField=x;exports.SelectField=E;exports.TextField=y;exports.TextareaField=C;
|
|
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;
|
package/dist/ui.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
|
|
|
30
30
|
|
|
31
31
|
declare type __VLS_NonUndefinedable_10<T> = T extends undefined ? never : T;
|
|
32
32
|
|
|
33
|
+
declare type __VLS_NonUndefinedable_11<T> = T extends undefined ? never : T;
|
|
34
|
+
|
|
33
35
|
declare type __VLS_NonUndefinedable_2<T> = T extends undefined ? never : T;
|
|
34
36
|
|
|
35
37
|
declare type __VLS_NonUndefinedable_3<T> = T extends undefined ? never : T;
|
|
@@ -83,6 +85,15 @@ declare type __VLS_TypePropsToRuntimeProps_10<T> = {
|
|
|
83
85
|
};
|
|
84
86
|
};
|
|
85
87
|
|
|
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
|
+
|
|
86
97
|
declare type __VLS_TypePropsToRuntimeProps_2<T> = {
|
|
87
98
|
[K in keyof T]-?: {} extends Pick<T, K> ? {
|
|
88
99
|
type: PropType<__VLS_NonUndefinedable_2<T[K]>>;
|
|
@@ -175,7 +186,7 @@ declare type AsyncValidatorFn = (value: unknown, values: Record<string, unknown>
|
|
|
175
186
|
|
|
176
187
|
export declare const CheckboxField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_7<{
|
|
177
188
|
field: FieldDefinition;
|
|
178
|
-
modelValue: boolean;
|
|
189
|
+
modelValue: boolean | null;
|
|
179
190
|
error?: string[];
|
|
180
191
|
touched?: boolean;
|
|
181
192
|
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
@@ -183,7 +194,7 @@ blur: () => void;
|
|
|
183
194
|
"update:modelValue": (value: boolean) => void;
|
|
184
195
|
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_7<{
|
|
185
196
|
field: FieldDefinition;
|
|
186
|
-
modelValue: boolean;
|
|
197
|
+
modelValue: boolean | null;
|
|
187
198
|
error?: string[];
|
|
188
199
|
touched?: boolean;
|
|
189
200
|
}>>> & Readonly<{
|
|
@@ -193,7 +204,7 @@ onBlur?: (() => any) | undefined;
|
|
|
193
204
|
|
|
194
205
|
export declare const DateField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_9<{
|
|
195
206
|
field: FieldDefinition;
|
|
196
|
-
modelValue: string;
|
|
207
|
+
modelValue: string | null;
|
|
197
208
|
error?: string[];
|
|
198
209
|
touched?: boolean;
|
|
199
210
|
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
@@ -201,7 +212,7 @@ blur: () => void;
|
|
|
201
212
|
"update:modelValue": (value: string) => void;
|
|
202
213
|
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_9<{
|
|
203
214
|
field: FieldDefinition;
|
|
204
|
-
modelValue: string;
|
|
215
|
+
modelValue: string | null;
|
|
205
216
|
error?: string[];
|
|
206
217
|
touched?: boolean;
|
|
207
218
|
}>>> & Readonly<{
|
|
@@ -215,7 +226,7 @@ declare interface FieldDefinition {
|
|
|
215
226
|
name: string;
|
|
216
227
|
label?: string;
|
|
217
228
|
placeholder?: string;
|
|
218
|
-
defaultValue?: unknown;
|
|
229
|
+
defaultValue?: unknown | ((values: Record<string, unknown>) => unknown);
|
|
219
230
|
required?: boolean;
|
|
220
231
|
/** Static or dynamic disabled state */
|
|
221
232
|
disabled?: boolean | ((values: Record<string, unknown>) => boolean);
|
|
@@ -250,6 +261,14 @@ declare interface FieldDefinition {
|
|
|
250
261
|
* Receives FormFieldProps and must emit 'update:modelValue' and 'blur'.
|
|
251
262
|
*/
|
|
252
263
|
component?: Component | string;
|
|
264
|
+
/** Accepted file types, e.g. "image/*,.pdf" — passed to <input accept> */
|
|
265
|
+
accept?: string;
|
|
266
|
+
/** Allow selecting multiple files */
|
|
267
|
+
multiple?: boolean;
|
|
268
|
+
/** Maximum file size in bytes */
|
|
269
|
+
maxSize?: number;
|
|
270
|
+
/** Maximum number of files (only relevant when multiple=true) */
|
|
271
|
+
maxFiles?: number;
|
|
253
272
|
}
|
|
254
273
|
|
|
255
274
|
declare interface FieldOption {
|
|
@@ -257,7 +276,25 @@ declare interface FieldOption {
|
|
|
257
276
|
value: unknown;
|
|
258
277
|
}
|
|
259
278
|
|
|
260
|
-
declare type FieldType = 'text' | 'number' | 'email' | 'select' | 'checkbox' | 'radio' | 'textarea' | 'date' | 'array' | 'group';
|
|
279
|
+
declare type FieldType = 'text' | 'number' | 'email' | 'select' | 'checkbox' | 'radio' | 'textarea' | 'date' | 'array' | 'group' | 'file';
|
|
280
|
+
|
|
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>;
|
|
261
298
|
|
|
262
299
|
export declare const FormRenderer: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
|
|
263
300
|
|
|
@@ -365,7 +402,7 @@ onBlur?: (() => any) | undefined;
|
|
|
365
402
|
|
|
366
403
|
export declare const TextareaField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_5<{
|
|
367
404
|
field: FieldDefinition;
|
|
368
|
-
modelValue: string;
|
|
405
|
+
modelValue: string | null;
|
|
369
406
|
error?: string[];
|
|
370
407
|
touched?: boolean;
|
|
371
408
|
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
@@ -373,7 +410,7 @@ blur: () => void;
|
|
|
373
410
|
"update:modelValue": (value: string) => void;
|
|
374
411
|
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_5<{
|
|
375
412
|
field: FieldDefinition;
|
|
376
|
-
modelValue: string;
|
|
413
|
+
modelValue: string | null;
|
|
377
414
|
error?: string[];
|
|
378
415
|
touched?: boolean;
|
|
379
416
|
}>>> & Readonly<{
|
|
@@ -383,7 +420,7 @@ onBlur?: (() => any) | undefined;
|
|
|
383
420
|
|
|
384
421
|
export declare const TextField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_3<{
|
|
385
422
|
field: FieldDefinition;
|
|
386
|
-
modelValue: string;
|
|
423
|
+
modelValue: string | null;
|
|
387
424
|
error?: string[];
|
|
388
425
|
touched?: boolean;
|
|
389
426
|
}>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
|
|
@@ -391,7 +428,7 @@ blur: () => void;
|
|
|
391
428
|
"update:modelValue": (value: string) => void;
|
|
392
429
|
}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_3<{
|
|
393
430
|
field: FieldDefinition;
|
|
394
|
-
modelValue: string;
|
|
431
|
+
modelValue: string | null;
|
|
395
432
|
error?: string[];
|
|
396
433
|
touched?: boolean;
|
|
397
434
|
}>>> & Readonly<{
|