@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
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),v=require("./MaskEngine-DAKSNIHQ.cjs"),q={class:"mb-4"},D=["for"],T={key:0,class:"text-red-400 ml-0.5","aria-hidden":"true"},R=["id"],k=e.defineComponent({__name:"BaseField",props:{field:{},error:{},touched:{type:Boolean}},setup(t){const s=t,r=e.computed(()=>{var a;return!!(s.touched&&((a=s.error)!=null&&a.length))}),c=e.computed(()=>`${s.field.name}-error`),n=e.computed(()=>({"aria-required":s.field.required?"true":void 0,"aria-invalid":r.value?"true":"false","aria-describedby":r.value?c.value:void 0}));return(a,d)=>(e.openBlock(),e.createElementBlock("div",q,[t.field.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.field.name,class:"block text-xs font-semibold uppercase tracking-wider text-gray-400 mb-1.5"},[e.createTextVNode(e.toDisplayString(t.field.label)+" ",1),t.field.required?(e.openBlock(),e.createElementBlock("span",T,"*")):e.createCommentVNode("",!0)],8,D)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default",e.normalizeProps(e.guardReactiveProps(n.value))),r.value?(e.openBlock(),e.createElementBlock("ul",{key:1,id:c.value,class:"mt-1 space-y-0.5",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(i,m)=>(e.openBlock(),e.createElementBlock("li",{key:m,class:"text-red-400 text-xs"},e.toDisplayString(i),1))),128))],8,R)):e.createCommentVNode("",!0)]))}}),A=["id","type","name","value","placeholder","disabled","required"],x=e.defineComponent({__name:"TextField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const r=t,c=s,n=e.ref(null);let a=null;const d=e.computed(()=>{var i;return!!(r.touched&&((i=r.error)!=null&&i.length))});return e.onMounted(()=>{n.value&&r.field.mask&&(a=v.bindMask(n.value,r.field.mask))}),e.onUnmounted(()=>a==null?void 0:a()),(i,m)=>(e.openBlock(),e.createBlock(k,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(f=>[e.createElementVNode("input",e.mergeProps({id:t.field.name,ref_key:"inputRef",ref:n,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},f,{class:["w-full rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 placeholder-gray-500 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",d.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],onInput:m[0]||(m[0]=g=>c("update:modelValue",g.target.value)),onBlur:m[1]||(m[1]=g=>c("blur"))}),null,16,A)]),_:1},8,["field","error","touched"]))}}),P=["id","name","value","placeholder","disabled","required"],V=e.defineComponent({__name:"NumberField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const r=t,c=s,n=e.computed(()=>{var d;return!!(r.touched&&((d=r.error)!=null&&d.length))});function a(d){const i=d.target.value;c("update:modelValue",i===""?null:Number(i))}return(d,i)=>(e.openBlock(),e.createBlock(k,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(m=>[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},m,{class:["w-full rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 placeholder-gray-500 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",n.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],onInput:a,onBlur:i[0]||(i[0]=f=>c("blur"))}),null,16,P)]),_:1},8,["field","error","touched"]))}}),L=["id","name","value","placeholder","disabled","required"],$=e.defineComponent({__name:"TextareaField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const r=t,c=s,n=e.computed(()=>{var a;return!!(r.touched&&((a=r.error)!=null&&a.length))});return(a,d)=>(e.openBlock(),e.createBlock(k,{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:["w-full resize-y rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 placeholder-gray-500 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",n.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],style:{"min-height":"80px"},onInput:d[0]||(d[0]=m=>c("update:modelValue",m.target.value)),onBlur:d[1]||(d[1]=m=>c("blur"))}),null,16,L)]),_:1},8,["field","error","touched"]))}}),I={key:0,class:"py-2 text-sm text-gray-400"},M=["id","name","disabled","required"],z=["selected"],U=["value","selected"],E=e.defineComponent({__name:"SelectField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const r=t,c=s,n=e.computed(()=>Array.isArray(r.field.options)?r.field.options:[]),a=e.computed(()=>{var i;return!!(r.touched&&((i=r.error)!=null&&i.length))});function d(i){const m=i.target,f=n.value.find(g=>String(g.value)===m.value);c("update:modelValue",(f==null?void 0:f.value)??m.value)}return(i,m)=>(e.openBlock(),e.createBlock(k,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(f=>[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},f,{class:["w-full rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",a.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],onChange:d,onBlur:m[0]||(m[0]=g=>c("blur"))}),[e.createElementVNode("option",{value:"",disabled:"",selected:t.modelValue===null||t.modelValue===void 0||t.modelValue==="",class:"bg-gray-800"},e.toDisplayString(t.field.placeholder??"Select an option"),9,z),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,g=>(e.openBlock(),e.createElementBlock("option",{key:String(g.value),value:String(g.value),selected:t.modelValue===g.value,class:"bg-gray-800"},e.toDisplayString(g.label),9,U))),128))],16,M))]),_:1},8,["field","error","touched"]))}}),j={class:"flex cursor-pointer items-center gap-2.5"},K=["id","name","checked","disabled","required","aria-checked"],O={key:0,class:"text-sm text-gray-200"},C=e.defineComponent({__name:"CheckboxField",props:{field:{},modelValue:{type:[Boolean,null]},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const r=s;return(c,n)=>(e.openBlock(),e.createBlock(k,{field:{...t.field,label:void 0},error:t.error,touched:t.touched},{default:e.withCtx(a=>[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"},a,{class:"h-4 w-4 cursor-pointer rounded border-gray-600 bg-gray-900 text-indigo-500 accent-indigo-500 disabled:cursor-not-allowed disabled:opacity-50",onChange:n[0]||(n[0]=d=>r("update:modelValue",d.target.checked)),onBlur:n[1]||(n[1]=d=>r("blur"))}),null,16,K),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-required","aria-invalid","aria-describedby"],H={key:0,class:"block text-xs font-semibold uppercase tracking-wider text-gray-400 mb-2"},J={key:0,class:"text-red-400 ml-0.5","aria-hidden":"true"},Q={class:"space-y-2"},W=["name","value","checked","disabled","onChange"],X={class:"text-sm text-gray-200"},Y=["id"],w=e.defineComponent({__name:"RadioField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const r=t,c=s,n=e.computed(()=>{var i;return!!(r.touched&&((i=r.error)!=null&&i.length))}),a=e.computed(()=>`${r.field.name}-error`),d=e.computed(()=>Array.isArray(r.field.options)?r.field.options:[]);return(i,m)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mb-4","aria-required":t.field.required?"true":void 0,"aria-invalid":n.value?"true":"false","aria-describedby":n.value?a.value:void 0},[t.field.label?(e.openBlock(),e.createElementBlock("legend",H,[e.createTextVNode(e.toDisplayString(t.field.label)+" ",1),t.field.required?(e.openBlock(),e.createElementBlock("span",J,"*")):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0),e.createElementVNode("div",Q,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,f=>(e.openBlock(),e.createElementBlock("label",{key:String(f.value),class:"flex cursor-pointer items-center gap-2.5"},[e.createElementVNode("input",{type:"radio",name:t.field.name,value:String(f.value),checked:t.modelValue===f.value,disabled:t.field.disabled===!0,class:"h-4 w-4 cursor-pointer border-gray-600 bg-gray-900 text-indigo-500 accent-indigo-500 disabled:cursor-not-allowed disabled:opacity-50",onChange:g=>c("update:modelValue",f.value),onBlur:m[0]||(m[0]=g=>c("blur"))},null,40,W),e.createElementVNode("span",X,e.toDisplayString(f.label),1)]))),128))]),n.value?(e.openBlock(),e.createElementBlock("ul",{key:1,id:a.value,class:"mt-1 space-y-0.5",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(f,g)=>(e.openBlock(),e.createElementBlock("li",{key:g,class:"text-red-400 text-xs"},e.toDisplayString(f),1))),128))],8,Y)):e.createCommentVNode("",!0)],8,G))}}),Z=["id","name","value","disabled","required"],N=e.defineComponent({__name:"DateField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const r=t,c=s,n=e.computed(()=>{var a;return!!(r.touched&&((a=r.error)!=null&&a.length))});return(a,d)=>(e.openBlock(),e.createBlock(k,{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:["w-full rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",n.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],onInput:d[0]||(d[0]=m=>c("update:modelValue",m.target.value)),onBlur:d[1]||(d[1]=m=>c("blur"))}),null,16,Z)]),_:1},8,["field","error","touched"]))}}),_=["id","name","accept","multiple","disabled","required"],ee={class:"pointer-events-none space-y-1"},te={class:"text-sm text-gray-300"},oe={key:0,class:"text-xs text-gray-500"},re={key:0,class:"mt-2 space-y-1"},le={class:"truncate text-gray-200"},ne={class:"ml-2 shrink-0 text-xs text-gray-500"},ae=["aria-label","onClick"],F=e.defineComponent({__name:"FileField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const r=t,c=s,n=e.ref(!1),a=e.ref(null),d=e.computed(()=>r.modelValue?Array.isArray(r.modelValue)?r.modelValue:[r.modelValue]:[]),i=e.computed(()=>r.field.multiple??!1);function m(l){if(!l||l.length===0){c("update:modelValue",null);return}c("update:modelValue",i.value?Array.from(l):l[0])}function f(l){m(l.target.files),c("blur")}function g(l){var o;n.value=!1,l.preventDefault(),m(((o=l.dataTransfer)==null?void 0:o.files)??null),c("blur")}function h(l){const o=d.value.filter((b,y)=>y!==l);o.length===0?(c("update:modelValue",null),a.value&&(a.value.value="")):c("update:modelValue",i.value?o:o[0])}function B(l){return l<1024?`${l} B`:l<1024*1024?`${(l/1024).toFixed(1)} KB`:`${(l/(1024*1024)).toFixed(1)} MB`}return(l,o)=>(e.openBlock(),e.createBlock(k,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(b=>{var y;return[e.createElementVNode("div",{class:e.normalizeClass(["relative rounded-lg border-2 border-dashed p-6 text-center transition",n.value?"border-indigo-500 bg-indigo-500/10":t.touched&&((y=t.error)!=null&&y.length)?"border-red-500 bg-red-500/5":"border-gray-700 bg-gray-900 hover:border-gray-500"]),onDragover:o[0]||(o[0]=e.withModifiers(u=>n.value=!0,["prevent"])),onDragleave:o[1]||(o[1]=u=>n.value=!1),onDrop:g},[e.createElementVNode("input",e.mergeProps({id:t.field.name,ref_key:"inputRef",ref:a,type:"file",name:t.field.name,accept:t.field.accept,multiple:i.value,disabled:t.field.disabled===!0,required:t.field.required},b,{class:"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed",onChange:f}),null,16,_),e.createElementVNode("div",ee,[o[2]||(o[2]=e.createElementVNode("div",{class:"text-2xl"},"📁",-1)),e.createElementVNode("p",te,e.toDisplayString(n.value?"Drop files here":"Click to upload or drag & drop"),1),t.field.accept?(e.openBlock(),e.createElementBlock("p",oe,e.toDisplayString(t.field.accept),1)):e.createCommentVNode("",!0)])],34),d.value.length?(e.openBlock(),e.createElementBlock("ul",re,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(u,p)=>(e.openBlock(),e.createElementBlock("li",{key:`${u.name}-${p}`,class:"flex items-center justify-between rounded-lg border border-gray-700 bg-gray-900 px-3 py-2 text-sm"},[e.createElementVNode("span",le,e.toDisplayString(u.name),1),e.createElementVNode("span",ne,e.toDisplayString(B(u.size)),1),e.createElementVNode("button",{type:"button","aria-label":`Remove ${u.name}`,class:"ml-2 shrink-0 text-gray-500 hover:text-red-400 transition",onClick:be=>h(p)}," × ",8,ae)]))),128))])):e.createCommentVNode("",!0)]}),_:1},8,["field","error","touched"]))}}),de={class:"mb-4"},ie={key:0,class:"block text-xs font-semibold uppercase tracking-wider text-gray-400 mb-2"},ue={class:"flex-1 space-y-0"},ce=["onClick"],S=e.defineComponent({__name:"ArrayField",props:{field:{},form:{},components:{}},setup(t){const s=t,r=v.useRegistry(),c={text:x,email:x,number:V,textarea:$,select:E,checkbox:C,radio:w,date:N};function n(l){var o;return l.component?l.component:((o=s.components)==null?void 0:o[l.type])??r[l.type]??c[l.type]??null}const{rows:a,append:d,remove:i}=v.useFieldArray(s.form,s.field.name);function m(l){return v.getByPath(s.form.values.value,l.name)}function f(l,o){s.form.setField(l.name,o)}function g(l){var b;const o=s.form;(b=o.touchField)==null||b.call(o,l.name)}function h(l){return s.form.errors.value[l.name]??[]}function B(l){return s.form.touched.value[l.name]??!1}return(l,o)=>(e.openBlock(),e.createElementBlock("div",de,[t.field.label?(e.openBlock(),e.createElementBlock("div",ie,e.toDisplayString(t.field.label),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),b=>(e.openBlock(),e.createElementBlock("div",{key:b.key,class:"mb-2 flex items-start gap-2 rounded-lg border border-gray-700 bg-gray-900 p-3"},[e.createElementVNode("div",ue,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.fields,y=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:y.name},[n(y)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n(y)),{key:0,field:y,"model-value":m(y),error:h(y),touched:B(y),"onUpdate:modelValue":u=>f(y,u),onBlur:u=>g(y)},null,40,["field","model-value","error","touched","onUpdate:modelValue","onBlur"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("button",{type:"button",class:"mt-7 shrink-0 rounded px-2 py-1 text-xs text-gray-500 hover:bg-red-500/10 hover:text-red-400 transition",onClick:y=>e.unref(i)(b.index)}," Remove ",8,ce)]))),128)),e.createElementVNode("button",{type:"button",class:"mt-1 rounded-lg border border-dashed border-gray-600 px-4 py-2 text-sm text-gray-400 hover:border-indigo-500 hover:text-indigo-400 transition",onClick:o[0]||(o[0]=b=>e.unref(d)())}," + Add row ")]))}}),se={key:1,class:"mb-4 rounded-lg border border-gray-700 p-4"},me={key:0,class:"px-1 text-xs font-semibold uppercase tracking-wider text-gray-400"},fe=["disabled"],ge=e.defineComponent({__name:"TailwindFormRenderer",props:{form:{},components:{},submitLabel:{}},emits:["submit"],setup(t,{emit:s}){const r=t,c=v.useRegistry(),n=s,a={text:x,email:x,number:V,textarea:$,select:E,checkbox:C,radio:w,date:N,file:F};function d(o){var b;return o.component?o.component:((b=r.components)==null?void 0:b[o.type])??c[o.type]??a[o.type]??null}function i(o){return v.getByPath(r.form.values.value,o.name)}function m(o,b){r.form.setField(o.name,b)}function f(o){var y;const b=r.form;(y=b.touchField)==null||y.call(b,o.name)}function g(o){return r.form.errors.value[o.name]??[]}function h(o){return r.form.touched.value[o.name]??!1}const B=e.computed(()=>r.form.fields.value.filter(o=>o.visible!==!1));async function l(o){o.preventDefault(),await r.form.submit(),n("submit")}return(o,b)=>{const y=e.resolveComponent("TailwindFormRenderer",!0);return e.openBlock(),e.createElementBlock("form",{novalidate:"",onSubmit:l},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.name},[o.$slots[`field-${u.name}`]?e.renderSlot(o.$slots,`field-${u.name}`,{key:0,field:u,value:i(u),error:g(u),touched:h(u),setValue:p=>m(u,p),touch:()=>f(u)}):u.type==="group"?(e.openBlock(),e.createElementBlock("fieldset",se,[u.label?(e.openBlock(),e.createElementBlock("legend",me,e.toDisplayString(u.label),1)):e.createCommentVNode("",!0),u.fields?(e.openBlock(),e.createBlock(y,{key:1,form:t.form,components:t.components},null,8,["form","components"])):e.createCommentVNode("",!0)])):u.type==="array"?(e.openBlock(),e.createBlock(S,{key:2,field:u,form:t.form,components:t.components},null,8,["field","form","components"])):d(u)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d(u)),{key:3,field:u,"model-value":i(u),error:g(u),touched:h(u),"onUpdate:modelValue":p=>m(u,p),onBlur:p=>f(u)},null,40,["field","model-value","error","touched","onUpdate:modelValue","onBlur"])):e.createCommentVNode("",!0)],64))),128)),e.renderSlot(o.$slots,"submit",{isSubmitting:t.form.isSubmitting.value,isValid:t.form.isValid.value},()=>[e.createElementVNode("button",{type:"submit",disabled:t.form.isSubmitting.value,class:"mt-2 rounded-lg bg-indigo-600 px-5 py-2 text-sm font-medium text-white transition hover:bg-indigo-500 disabled:cursor-not-allowed disabled:opacity-40"},e.toDisplayString(t.submitLabel??"Submit"),9,fe)])],32)}}});exports.TailwindFormRenderer=ge;exports.TwArrayField=S;exports.TwCheckboxField=C;exports.TwDateField=N;exports.TwFileField=F;exports.TwNumberField=V;exports.TwRadioField=w;exports.TwSelectField=E;exports.TwTextField=x;exports.TwTextareaField=$;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),x=require("./MaskEngine-CPr-fSPy.cjs"),F=require("./ValidationEngine-Diz-qTFs.cjs"),D={class:"mb-4"},T=["for"],R={key:0,class:"text-red-400 ml-0.5","aria-hidden":"true"},A=["id"],k=e.defineComponent({__name:"BaseField",props:{field:{},error:{},touched:{type:Boolean}},setup(t){const s=t,o=e.computed(()=>{var a;return!!(s.touched&&((a=s.error)!=null&&a.length))}),c=e.computed(()=>`${s.field.name}-error`),n=e.computed(()=>({"aria-required":s.field.required?"true":void 0,"aria-invalid":o.value?"true":"false","aria-describedby":o.value?c.value:void 0}));return(a,d)=>(e.openBlock(),e.createElementBlock("div",D,[t.field.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.field.name,class:"block text-xs font-semibold uppercase tracking-wider text-gray-400 mb-1.5"},[e.createTextVNode(e.toDisplayString(t.field.label)+" ",1),t.field.required?(e.openBlock(),e.createElementBlock("span",R,"*")):e.createCommentVNode("",!0)],8,T)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default",e.normalizeProps(e.guardReactiveProps(n.value))),o.value?(e.openBlock(),e.createElementBlock("ul",{key:1,id:c.value,class:"mt-1 space-y-0.5",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(i,m)=>(e.openBlock(),e.createElementBlock("li",{key:m,class:"text-red-400 text-xs"},e.toDisplayString(i),1))),128))],8,A)):e.createCommentVNode("",!0)]))}}),P=["id","type","name","value","placeholder","disabled","required"],B=e.defineComponent({__name:"TextField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const o=t,c=s,n=e.ref(null);let a=null;const d=e.computed(()=>{var i;return!!(o.touched&&((i=o.error)!=null&&i.length))});return e.onMounted(()=>{n.value&&o.field.mask&&(a=x.bindMask(n.value,o.field.mask))}),e.onUnmounted(()=>a==null?void 0:a()),(i,m)=>(e.openBlock(),e.createBlock(k,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(f=>[e.createElementVNode("input",e.mergeProps({id:t.field.name,ref_key:"inputRef",ref:n,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},f,{class:["w-full rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 placeholder-gray-500 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",d.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],onInput:m[0]||(m[0]=g=>c("update:modelValue",g.target.value)),onBlur:m[1]||(m[1]=g=>c("blur"))}),null,16,P)]),_:1},8,["field","error","touched"]))}}),L=["id","name","value","placeholder","disabled","required"],V=e.defineComponent({__name:"NumberField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const o=t,c=s,n=e.computed(()=>{var d;return!!(o.touched&&((d=o.error)!=null&&d.length))});function a(d){const i=d.target.value;c("update:modelValue",i===""?null:Number(i))}return(d,i)=>(e.openBlock(),e.createBlock(k,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(m=>[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},m,{class:["w-full rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 placeholder-gray-500 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",n.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],onInput:a,onBlur:i[0]||(i[0]=f=>c("blur"))}),null,16,L)]),_:1},8,["field","error","touched"]))}}),I=["id","name","value","placeholder","disabled","required"],$=e.defineComponent({__name:"TextareaField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const o=t,c=s,n=e.computed(()=>{var a;return!!(o.touched&&((a=o.error)!=null&&a.length))});return(a,d)=>(e.openBlock(),e.createBlock(k,{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:["w-full resize-y rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 placeholder-gray-500 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",n.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],style:{"min-height":"80px"},onInput:d[0]||(d[0]=m=>c("update:modelValue",m.target.value)),onBlur:d[1]||(d[1]=m=>c("blur"))}),null,16,I)]),_:1},8,["field","error","touched"]))}}),M={key:0,class:"py-2 text-sm text-gray-400"},z=["id","name","disabled","required"],U=["selected"],j=["value","selected"],E=e.defineComponent({__name:"SelectField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const o=t,c=s,n=e.computed(()=>Array.isArray(o.field.options)?o.field.options:[]),a=e.computed(()=>{var i;return!!(o.touched&&((i=o.error)!=null&&i.length))});function d(i){const m=i.target,f=n.value.find(g=>String(g.value)===m.value);c("update:modelValue",(f==null?void 0:f.value)??m.value)}return(i,m)=>(e.openBlock(),e.createBlock(k,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(f=>[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},f,{class:["w-full rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",a.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],onChange:d,onBlur:m[0]||(m[0]=g=>c("blur"))}),[e.createElementVNode("option",{value:"",disabled:"",selected:t.modelValue===null||t.modelValue===void 0||t.modelValue==="",class:"bg-gray-800"},e.toDisplayString(t.field.placeholder??"Select an option"),9,U),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,g=>(e.openBlock(),e.createElementBlock("option",{key:String(g.value),value:String(g.value),selected:t.modelValue===g.value,class:"bg-gray-800"},e.toDisplayString(g.label),9,j))),128))],16,z))]),_:1},8,["field","error","touched"]))}}),K={class:"flex cursor-pointer items-center gap-2.5"},O=["id","name","checked","disabled","required","aria-checked"],G={key:0,class:"text-sm text-gray-200"},C=e.defineComponent({__name:"CheckboxField",props:{field:{},modelValue:{type:[Boolean,null]},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const o=s;return(c,n)=>(e.openBlock(),e.createBlock(k,{field:{...t.field,label:void 0},error:t.error,touched:t.touched},{default:e.withCtx(a=>[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"},a,{class:"h-4 w-4 cursor-pointer rounded border-gray-600 bg-gray-900 text-indigo-500 accent-indigo-500 disabled:cursor-not-allowed disabled:opacity-50",onChange:n[0]||(n[0]=d=>o("update:modelValue",d.target.checked)),onBlur:n[1]||(n[1]=d=>o("blur"))}),null,16,O),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:"block text-xs font-semibold uppercase tracking-wider text-gray-400 mb-2"},Q={key:0,class:"text-red-400 ml-0.5","aria-hidden":"true"},W={class:"space-y-2"},X=["name","value","checked","disabled","onChange"],Y={class:"text-sm text-gray-200"},Z=["id"],w=e.defineComponent({__name:"RadioField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const o=t,c=s,n=e.computed(()=>{var i;return!!(o.touched&&((i=o.error)!=null&&i.length))}),a=e.computed(()=>`${o.field.name}-error`),d=e.computed(()=>Array.isArray(o.field.options)?o.field.options:[]);return(i,m)=>(e.openBlock(),e.createElementBlock("fieldset",{class:"mb-4","aria-required":t.field.required?"true":void 0,"aria-invalid":n.value?"true":"false","aria-describedby":n.value?a.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(d.value,f=>(e.openBlock(),e.createElementBlock("label",{key:String(f.value),class:"flex cursor-pointer items-center gap-2.5"},[e.createElementVNode("input",{type:"radio",name:t.field.name,value:String(f.value),checked:t.modelValue===f.value,disabled:t.field.disabled===!0,class:"h-4 w-4 cursor-pointer border-gray-600 bg-gray-900 text-indigo-500 accent-indigo-500 disabled:cursor-not-allowed disabled:opacity-50",onChange:g=>c("update:modelValue",f.value),onBlur:m[0]||(m[0]=g=>c("blur"))},null,40,X),e.createElementVNode("span",Y,e.toDisplayString(f.label),1)]))),128))]),n.value?(e.openBlock(),e.createElementBlock("ul",{key:1,id:a.value,class:"mt-1 space-y-0.5",role:"alert","aria-live":"polite"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.error,(f,g)=>(e.openBlock(),e.createElementBlock("li",{key:g,class:"text-red-400 text-xs"},e.toDisplayString(f),1))),128))],8,Z)):e.createCommentVNode("",!0)],8,H))}}),_=["id","name","value","disabled","required"],N=e.defineComponent({__name:"DateField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const o=t,c=s,n=e.computed(()=>{var a;return!!(o.touched&&((a=o.error)!=null&&a.length))});return(a,d)=>(e.openBlock(),e.createBlock(k,{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:["w-full rounded-lg border bg-gray-900 px-3 py-2 text-sm text-gray-100 outline-none transition focus:ring-2 disabled:cursor-not-allowed disabled:opacity-50",n.value?"border-red-500 focus:ring-red-500":"border-gray-700 focus:ring-indigo-500 focus:border-indigo-500"],onInput:d[0]||(d[0]=m=>c("update:modelValue",m.target.value)),onBlur:d[1]||(d[1]=m=>c("blur"))}),null,16,_)]),_:1},8,["field","error","touched"]))}}),ee=["id","name","accept","multiple","disabled","required"],te={class:"pointer-events-none space-y-1"},oe={class:"text-sm text-gray-300"},re={key:0,class:"text-xs text-gray-500"},le={key:0,class:"mt-2 space-y-1"},ne={class:"truncate text-gray-200"},ae={class:"ml-2 shrink-0 text-xs text-gray-500"},de=["aria-label","onClick"],S=e.defineComponent({__name:"FileField",props:{field:{},modelValue:{},error:{},touched:{type:Boolean}},emits:["update:modelValue","blur"],setup(t,{emit:s}){const o=t,c=s,n=e.ref(!1),a=e.ref(null),d=e.computed(()=>o.modelValue?Array.isArray(o.modelValue)?o.modelValue:[o.modelValue]:[]),i=e.computed(()=>o.field.multiple??!1);function m(l){if(!l||l.length===0){c("update:modelValue",null);return}c("update:modelValue",i.value?Array.from(l):l[0])}function f(l){m(l.target.files),c("blur")}function g(l){var r;n.value=!1,l.preventDefault(),m(((r=l.dataTransfer)==null?void 0:r.files)??null),c("blur")}function h(l){const r=d.value.filter((b,y)=>y!==l);r.length===0?(c("update:modelValue",null),a.value&&(a.value.value="")):c("update:modelValue",i.value?r:r[0])}function v(l){return l<1024?`${l} B`:l<1024*1024?`${(l/1024).toFixed(1)} KB`:`${(l/(1024*1024)).toFixed(1)} MB`}return(l,r)=>(e.openBlock(),e.createBlock(k,{field:t.field,error:t.error,touched:t.touched},{default:e.withCtx(b=>{var y;return[e.createElementVNode("div",{class:e.normalizeClass(["relative rounded-lg border-2 border-dashed p-6 text-center transition",n.value?"border-indigo-500 bg-indigo-500/10":t.touched&&((y=t.error)!=null&&y.length)?"border-red-500 bg-red-500/5":"border-gray-700 bg-gray-900 hover:border-gray-500"]),onDragover:r[0]||(r[0]=e.withModifiers(u=>n.value=!0,["prevent"])),onDragleave:r[1]||(r[1]=u=>n.value=!1),onDrop:g},[e.createElementVNode("input",e.mergeProps({id:t.field.name,ref_key:"inputRef",ref:a,type:"file",name:t.field.name,accept:t.field.accept,multiple:i.value,disabled:t.field.disabled===!0,required:t.field.required},b,{class:"absolute inset-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed",onChange:f}),null,16,ee),e.createElementVNode("div",te,[r[2]||(r[2]=e.createElementVNode("div",{class:"text-2xl"},"📁",-1)),e.createElementVNode("p",oe,e.toDisplayString(n.value?"Drop files here":"Click to upload or drag & drop"),1),t.field.accept?(e.openBlock(),e.createElementBlock("p",re,e.toDisplayString(t.field.accept),1)):e.createCommentVNode("",!0)])],34),d.value.length?(e.openBlock(),e.createElementBlock("ul",le,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(d.value,(u,p)=>(e.openBlock(),e.createElementBlock("li",{key:`${u.name}-${p}`,class:"flex items-center justify-between rounded-lg border border-gray-700 bg-gray-900 px-3 py-2 text-sm"},[e.createElementVNode("span",ne,e.toDisplayString(u.name),1),e.createElementVNode("span",ae,e.toDisplayString(v(u.size)),1),e.createElementVNode("button",{type:"button","aria-label":`Remove ${u.name}`,class:"ml-2 shrink-0 text-gray-500 hover:text-red-400 transition",onClick:ye=>h(p)}," × ",8,de)]))),128))])):e.createCommentVNode("",!0)]}),_:1},8,["field","error","touched"]))}}),ie={class:"mb-4"},ue={key:0,class:"block text-xs font-semibold uppercase tracking-wider text-gray-400 mb-2"},ce={class:"flex-1 space-y-0"},se=["onClick"],q=e.defineComponent({__name:"ArrayField",props:{field:{},form:{},components:{}},setup(t){const s=t,o=x.useRegistry(),c={text:B,email:B,number:V,textarea:$,select:E,checkbox:C,radio:w,date:N};function n(l){var r;return l.component?l.component:((r=s.components)==null?void 0:r[l.type])??o[l.type]??c[l.type]??null}const{rows:a,append:d,remove:i}=x.useFieldArray(s.form,s.field.name);function m(l){return F.getByPath(s.form.values.value,l.name)}function f(l,r){s.form.setField(l.name,r)}function g(l){var b;const r=s.form;(b=r.touchField)==null||b.call(r,l.name)}function h(l){return s.form.errors.value[l.name]??[]}function v(l){return s.form.touched.value[l.name]??!1}return(l,r)=>(e.openBlock(),e.createElementBlock("div",ie,[t.field.label?(e.openBlock(),e.createElementBlock("div",ue,e.toDisplayString(t.field.label),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(a),b=>(e.openBlock(),e.createElementBlock("div",{key:b.key,class:"mb-2 flex items-start gap-2 rounded-lg border border-gray-700 bg-gray-900 p-3"},[e.createElementVNode("div",ce,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.fields,y=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:y.name},[n(y)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n(y)),{key:0,field:y,"model-value":m(y),error:h(y),touched:v(y),"onUpdate:modelValue":u=>f(y,u),onBlur:u=>g(y)},null,40,["field","model-value","error","touched","onUpdate:modelValue","onBlur"])):e.createCommentVNode("",!0)],64))),128))]),e.createElementVNode("button",{type:"button",class:"mt-7 shrink-0 rounded px-2 py-1 text-xs text-gray-500 hover:bg-red-500/10 hover:text-red-400 transition",onClick:y=>e.unref(i)(b.index)}," Remove ",8,se)]))),128)),e.createElementVNode("button",{type:"button",class:"mt-1 rounded-lg border border-dashed border-gray-600 px-4 py-2 text-sm text-gray-400 hover:border-indigo-500 hover:text-indigo-400 transition",onClick:r[0]||(r[0]=b=>e.unref(d)())}," + Add row ")]))}}),me={key:1,class:"mb-4 rounded-lg border border-gray-700 p-4"},fe={key:0,class:"px-1 text-xs font-semibold uppercase tracking-wider text-gray-400"},ge=["disabled"],be=e.defineComponent({__name:"TailwindFormRenderer",props:{form:{},components:{},submitLabel:{},fields:{}},emits:["submit"],setup(t,{emit:s}){const o=t,c=x.useRegistry(),n=s,a={text:B,email:B,number:V,textarea:$,select:E,checkbox:C,radio:w,date:N,file:S};function d(r){var b;return r.component?r.component:((b=o.components)==null?void 0:b[r.type])??c[r.type]??a[r.type]??null}function i(r){return F.getByPath(o.form.values.value,r.name)}function m(r,b){o.form.setField(r.name,b)}function f(r){var y;const b=o.form;(y=b.touchField)==null||y.call(b,r.name)}function g(r){return o.form.errors.value[r.name]??[]}function h(r){return o.form.touched.value[r.name]??!1}const v=e.computed(()=>(o.fields??o.form.fields.value).filter(r=>r.visible!==!1));async function l(r){r.preventDefault(),await o.form.submit(),n("submit")}return(r,b)=>{const y=e.resolveComponent("TailwindFormRenderer",!0);return e.openBlock(),e.createElementBlock("form",{novalidate:"",onSubmit:l},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(v.value,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.name},[r.$slots[`field-${u.name}`]?e.renderSlot(r.$slots,`field-${u.name}`,{key:0,field:u,value:i(u),error:g(u),touched:h(u),setValue:p=>m(u,p),touch:()=>f(u)}):u.type==="group"?(e.openBlock(),e.createElementBlock("fieldset",me,[u.label?(e.openBlock(),e.createElementBlock("legend",fe,e.toDisplayString(u.label),1)):e.createCommentVNode("",!0),u.fields?(e.openBlock(),e.createBlock(y,{key:1,form:t.form,fields:u.fields,components:t.components},null,8,["form","fields","components"])):e.createCommentVNode("",!0)])):u.type==="array"?(e.openBlock(),e.createBlock(q,{key:2,field:u,form:t.form,components:t.components},null,8,["field","form","components"])):d(u)?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(d(u)),{key:3,field:u,"model-value":i(u),error:g(u),touched:h(u),"onUpdate:modelValue":p=>m(u,p),onBlur:p=>f(u)},null,40,["field","model-value","error","touched","onUpdate:modelValue","onBlur"])):e.createCommentVNode("",!0)],64))),128)),e.renderSlot(r.$slots,"submit",{isSubmitting:t.form.isSubmitting.value,isValid:t.form.isValid.value},()=>[e.createElementVNode("button",{type:"submit",disabled:t.form.isSubmitting.value,class:"mt-2 rounded-lg bg-indigo-600 px-5 py-2 text-sm font-medium text-white transition hover:bg-indigo-500 disabled:cursor-not-allowed disabled:opacity-40"},e.toDisplayString(t.submitLabel??"Submit"),9,ge)])],32)}}});exports.TailwindFormRenderer=be;exports.TwArrayField=q;exports.TwCheckboxField=C;exports.TwDateField=N;exports.TwFileField=S;exports.TwNumberField=V;exports.TwRadioField=w;exports.TwSelectField=E;exports.TwTextField=B;exports.TwTextareaField=$;
@@ -3,150 +3,165 @@ 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
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
14
- submitLabel?: string;
15
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
16
- submit: () => void;
17
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
18
- form: UseFormReturn;
19
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
20
- submitLabel?: string;
21
- }>>> & Readonly<{
22
- onSubmit?: (() => any) | undefined;
23
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
24
-
25
- declare type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
26
-
27
- declare type __VLS_NonUndefinedable_10<T> = T extends undefined ? never : T;
28
-
29
- declare type __VLS_NonUndefinedable_2<T> = T extends undefined ? never : T;
30
-
31
- declare type __VLS_NonUndefinedable_3<T> = T extends undefined ? never : T;
32
-
33
- declare type __VLS_NonUndefinedable_4<T> = T extends undefined ? never : T;
34
-
35
- declare type __VLS_NonUndefinedable_5<T> = T extends undefined ? never : T;
36
-
37
- declare type __VLS_NonUndefinedable_6<T> = T extends undefined ? never : T;
38
-
39
- declare type __VLS_NonUndefinedable_7<T> = T extends undefined ? never : T;
40
-
41
- declare type __VLS_NonUndefinedable_8<T> = T extends undefined ? never : T;
42
-
43
- declare type __VLS_NonUndefinedable_9<T> = T extends undefined ? never : T;
44
-
45
- declare function __VLS_template(): Partial<Record<`field-${string}`, (_: {
46
- field: FieldDefinition;
47
- value: unknown;
48
- error: string[];
49
- touched: boolean;
50
- setValue: (v: unknown) => void;
51
- touch: () => void;
52
- }) => any>> & {
53
- submit?(_: {
54
- isSubmitting: boolean;
55
- isValid: boolean;
56
- }): any;
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_2: DefineComponent<__VLS_Props_2, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
20
+ blur: () => any;
21
+ "update:modelValue": (value: string) => any;
22
+ }, string, PublicProps, Readonly<__VLS_Props_2> & Readonly<{
23
+ onBlur?: (() => any) | undefined;
24
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
25
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
26
+
27
+ declare const __VLS_export_3: DefineComponent<__VLS_Props_3, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
28
+ blur: () => any;
29
+ "update:modelValue": (value: number | null) => any;
30
+ }, string, PublicProps, Readonly<__VLS_Props_3> & Readonly<{
31
+ onBlur?: (() => any) | undefined;
32
+ "onUpdate:modelValue"?: ((value: number | null) => any) | undefined;
33
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
34
+
35
+ declare const __VLS_export_4: DefineComponent<__VLS_Props_4, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
36
+ blur: () => any;
37
+ "update:modelValue": (value: string) => any;
38
+ }, string, PublicProps, Readonly<__VLS_Props_4> & Readonly<{
39
+ onBlur?: (() => any) | undefined;
40
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
41
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
42
+
43
+ declare const __VLS_export_5: DefineComponent<__VLS_Props_5, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
44
+ blur: () => any;
45
+ "update:modelValue": (value: unknown) => any;
46
+ }, string, PublicProps, Readonly<__VLS_Props_5> & Readonly<{
47
+ onBlur?: (() => any) | undefined;
48
+ "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
49
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
50
+
51
+ declare const __VLS_export_6: DefineComponent<__VLS_Props_6, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
52
+ blur: () => any;
53
+ "update:modelValue": (value: boolean) => any;
54
+ }, string, PublicProps, Readonly<__VLS_Props_6> & Readonly<{
55
+ onBlur?: (() => any) | undefined;
56
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
57
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
58
+
59
+ declare const __VLS_export_7: DefineComponent<__VLS_Props_7, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
60
+ blur: () => any;
61
+ "update:modelValue": (value: unknown) => any;
62
+ }, string, PublicProps, Readonly<__VLS_Props_7> & Readonly<{
63
+ onBlur?: (() => any) | undefined;
64
+ "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
65
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
66
+
67
+ declare const __VLS_export_8: DefineComponent<__VLS_Props_8, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
68
+ blur: () => any;
69
+ "update:modelValue": (value: string) => any;
70
+ }, string, PublicProps, Readonly<__VLS_Props_8> & Readonly<{
71
+ onBlur?: (() => any) | undefined;
72
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
73
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
74
+
75
+ declare const __VLS_export_9: DefineComponent<__VLS_Props_9, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
76
+ blur: () => any;
77
+ "update:modelValue": (value: File | File[] | null) => any;
78
+ }, string, PublicProps, Readonly<__VLS_Props_9> & Readonly<{
79
+ onBlur?: (() => any) | undefined;
80
+ "onUpdate:modelValue"?: ((value: File | File[] | null) => any) | undefined;
81
+ }>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
82
+
83
+ declare type __VLS_Props = {
84
+ form: UseFormReturn;
85
+ components?: Partial<Record<FieldDefinition['type'], Component | string>>;
86
+ submitLabel?: string;
87
+ /**
88
+ * Internal: the field list to render. Used by the `group` case to recurse
89
+ * into `field.fields` instead of re-rendering the whole top-level schema
90
+ * (which would recurse into the same group forever). Defaults to the
91
+ * form's top-level fields — not meant to be passed by consumers.
92
+ */
93
+ fields?: FieldDefinition[];
57
94
  };
58
95
 
59
- declare type __VLS_TypePropsToRuntimeProps<T> = {
60
- [K in keyof T]-?: {} extends Pick<T, K> ? {
61
- type: PropType<__VLS_NonUndefinedable<T[K]>>;
62
- } : {
63
- type: PropType<T[K]>;
64
- required: true;
65
- };
96
+ declare type __VLS_Props_10 = {
97
+ field: FieldDefinition;
98
+ form: UseFormReturn;
99
+ components?: Partial<Record<FieldDefinition['type'], Component | string>>;
66
100
  };
67
101
 
68
- declare type __VLS_TypePropsToRuntimeProps_10<T> = {
69
- [K in keyof T]-?: {} extends Pick<T, K> ? {
70
- type: PropType<__VLS_NonUndefinedable_10<T[K]>>;
71
- } : {
72
- type: PropType<T[K]>;
73
- required: true;
74
- };
102
+ declare type __VLS_Props_2 = {
103
+ field: FieldDefinition;
104
+ modelValue: string | null;
105
+ error?: string[];
106
+ touched?: boolean;
75
107
  };
76
108
 
77
- declare type __VLS_TypePropsToRuntimeProps_2<T> = {
78
- [K in keyof T]-?: {} extends Pick<T, K> ? {
79
- type: PropType<__VLS_NonUndefinedable_2<T[K]>>;
80
- } : {
81
- type: PropType<T[K]>;
82
- required: true;
83
- };
109
+ declare type __VLS_Props_3 = {
110
+ field: FieldDefinition;
111
+ modelValue: number | null;
112
+ error?: string[];
113
+ touched?: boolean;
84
114
  };
85
115
 
86
- declare type __VLS_TypePropsToRuntimeProps_3<T> = {
87
- [K in keyof T]-?: {} extends Pick<T, K> ? {
88
- type: PropType<__VLS_NonUndefinedable_3<T[K]>>;
89
- } : {
90
- type: PropType<T[K]>;
91
- required: true;
92
- };
116
+ declare type __VLS_Props_4 = {
117
+ field: FieldDefinition;
118
+ modelValue: string | null;
119
+ error?: string[];
120
+ touched?: boolean;
93
121
  };
94
122
 
95
- declare type __VLS_TypePropsToRuntimeProps_4<T> = {
96
- [K in keyof T]-?: {} extends Pick<T, K> ? {
97
- type: PropType<__VLS_NonUndefinedable_4<T[K]>>;
98
- } : {
99
- type: PropType<T[K]>;
100
- required: true;
101
- };
123
+ declare type __VLS_Props_5 = {
124
+ field: FieldDefinition;
125
+ modelValue: unknown;
126
+ error?: string[];
127
+ touched?: boolean;
102
128
  };
103
129
 
104
- declare type __VLS_TypePropsToRuntimeProps_5<T> = {
105
- [K in keyof T]-?: {} extends Pick<T, K> ? {
106
- type: PropType<__VLS_NonUndefinedable_5<T[K]>>;
107
- } : {
108
- type: PropType<T[K]>;
109
- required: true;
110
- };
130
+ declare type __VLS_Props_6 = {
131
+ field: FieldDefinition;
132
+ modelValue: boolean | null;
133
+ error?: string[];
134
+ touched?: boolean;
111
135
  };
112
136
 
113
- declare type __VLS_TypePropsToRuntimeProps_6<T> = {
114
- [K in keyof T]-?: {} extends Pick<T, K> ? {
115
- type: PropType<__VLS_NonUndefinedable_6<T[K]>>;
116
- } : {
117
- type: PropType<T[K]>;
118
- required: true;
119
- };
137
+ declare type __VLS_Props_7 = {
138
+ field: FieldDefinition;
139
+ modelValue: unknown;
140
+ error?: string[];
141
+ touched?: boolean;
120
142
  };
121
143
 
122
- declare type __VLS_TypePropsToRuntimeProps_7<T> = {
123
- [K in keyof T]-?: {} extends Pick<T, K> ? {
124
- type: PropType<__VLS_NonUndefinedable_7<T[K]>>;
125
- } : {
126
- type: PropType<T[K]>;
127
- required: true;
128
- };
144
+ declare type __VLS_Props_8 = {
145
+ field: FieldDefinition;
146
+ modelValue: string | null;
147
+ error?: string[];
148
+ touched?: boolean;
129
149
  };
130
150
 
131
- declare type __VLS_TypePropsToRuntimeProps_8<T> = {
132
- [K in keyof T]-?: {} extends Pick<T, K> ? {
133
- type: PropType<__VLS_NonUndefinedable_8<T[K]>>;
134
- } : {
135
- type: PropType<T[K]>;
136
- required: true;
137
- };
151
+ declare type __VLS_Props_9 = {
152
+ field: FieldDefinition;
153
+ modelValue: File | File[] | null;
154
+ error?: string[];
155
+ touched?: boolean;
138
156
  };
139
157
 
140
- declare type __VLS_TypePropsToRuntimeProps_9<T> = {
141
- [K in keyof T]-?: {} extends Pick<T, K> ? {
142
- type: PropType<__VLS_NonUndefinedable_9<T[K]>>;
143
- } : {
144
- type: PropType<T[K]>;
145
- required: true;
146
- };
158
+ declare type __VLS_Slots = {} & {
159
+ [K in NonNullable<typeof __VLS_2>]?: (props: typeof __VLS_3) => any;
160
+ } & {
161
+ submit?: (props: typeof __VLS_23) => any;
147
162
  };
148
163
 
149
- declare type __VLS_WithTemplateSlots<T, S> = T & {
164
+ declare type __VLS_WithSlots<T, S> = T & {
150
165
  new (): {
151
166
  $slots: S;
152
167
  };
@@ -220,161 +235,25 @@ declare interface MaskConfig {
220
235
 
221
236
  declare type MaskPreset = 'phone-ru' | 'phone-eu' | 'date' | 'inn' | 'iban';
222
237
 
223
- export declare const TailwindFormRenderer: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
224
-
225
- export declare const TwArrayField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_10<{
226
- field: FieldDefinition;
227
- form: UseFormReturn;
228
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
229
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_10<{
230
- field: FieldDefinition;
231
- form: UseFormReturn;
232
- components?: Partial<Record<FieldDefinition["type"], Component | string>>;
233
- }>>> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
234
-
235
- export declare const TwCheckboxField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_6<{
236
- field: FieldDefinition;
237
- modelValue: boolean | null;
238
- error?: string[];
239
- touched?: boolean;
240
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
241
- blur: () => void;
242
- "update:modelValue": (value: boolean) => void;
243
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_6<{
244
- field: FieldDefinition;
245
- modelValue: boolean | null;
246
- error?: string[];
247
- touched?: boolean;
248
- }>>> & Readonly<{
249
- onBlur?: (() => any) | undefined;
250
- "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
251
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
252
-
253
- export declare const TwDateField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_8<{
254
- field: FieldDefinition;
255
- modelValue: string | null;
256
- error?: string[];
257
- touched?: boolean;
258
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
259
- blur: () => void;
260
- "update:modelValue": (value: string) => void;
261
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_8<{
262
- field: FieldDefinition;
263
- modelValue: string | null;
264
- error?: string[];
265
- touched?: boolean;
266
- }>>> & Readonly<{
267
- onBlur?: (() => any) | undefined;
268
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
269
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
270
-
271
- export declare const TwFileField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_9<{
272
- field: FieldDefinition;
273
- modelValue: File | File[] | null;
274
- error?: string[];
275
- touched?: boolean;
276
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
277
- blur: () => void;
278
- "update:modelValue": (value: File | File[] | null) => void;
279
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_9<{
280
- field: FieldDefinition;
281
- modelValue: File | File[] | null;
282
- error?: string[];
283
- touched?: boolean;
284
- }>>> & Readonly<{
285
- onBlur?: (() => any) | undefined;
286
- "onUpdate:modelValue"?: ((value: File | File[] | null) => any) | undefined;
287
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
288
-
289
- export declare const TwNumberField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_3<{
290
- field: FieldDefinition;
291
- modelValue: number | null;
292
- error?: string[];
293
- touched?: boolean;
294
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
295
- blur: () => void;
296
- "update:modelValue": (value: number | null) => void;
297
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_3<{
298
- field: FieldDefinition;
299
- modelValue: number | null;
300
- error?: string[];
301
- touched?: boolean;
302
- }>>> & Readonly<{
303
- onBlur?: (() => any) | undefined;
304
- "onUpdate:modelValue"?: ((value: number | null) => any) | undefined;
305
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
306
-
307
- export declare const TwRadioField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_7<{
308
- field: FieldDefinition;
309
- modelValue: unknown;
310
- error?: string[];
311
- touched?: boolean;
312
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
313
- blur: () => void;
314
- "update:modelValue": (value: unknown) => void;
315
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_7<{
316
- field: FieldDefinition;
317
- modelValue: unknown;
318
- error?: string[];
319
- touched?: boolean;
320
- }>>> & Readonly<{
321
- onBlur?: (() => any) | undefined;
322
- "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
323
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
324
-
325
- export declare const TwSelectField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_5<{
326
- field: FieldDefinition;
327
- modelValue: unknown;
328
- error?: string[];
329
- touched?: boolean;
330
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
331
- blur: () => void;
332
- "update:modelValue": (value: unknown) => void;
333
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_5<{
334
- field: FieldDefinition;
335
- modelValue: unknown;
336
- error?: string[];
337
- touched?: boolean;
338
- }>>> & Readonly<{
339
- onBlur?: (() => any) | undefined;
340
- "onUpdate:modelValue"?: ((value: unknown) => any) | undefined;
341
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
342
-
343
- export declare const TwTextareaField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_4<{
344
- field: FieldDefinition;
345
- modelValue: string | null;
346
- error?: string[];
347
- touched?: boolean;
348
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
349
- blur: () => void;
350
- "update:modelValue": (value: string) => void;
351
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_4<{
352
- field: FieldDefinition;
353
- modelValue: string | null;
354
- error?: string[];
355
- touched?: boolean;
356
- }>>> & Readonly<{
357
- onBlur?: (() => any) | undefined;
358
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
359
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
360
-
361
- export declare const TwTextField: DefineComponent<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_2<{
362
- field: FieldDefinition;
363
- modelValue: string | null;
364
- error?: string[];
365
- touched?: boolean;
366
- }>>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {
367
- blur: () => void;
368
- "update:modelValue": (value: string) => void;
369
- }, string, PublicProps, Readonly<ExtractPropTypes<__VLS_TypePropsToRuntimeProps_2<{
370
- field: FieldDefinition;
371
- modelValue: string | null;
372
- error?: string[];
373
- touched?: boolean;
374
- }>>> & Readonly<{
375
- onBlur?: (() => any) | undefined;
376
- "onUpdate:modelValue"?: ((value: string) => any) | undefined;
377
- }>, {}, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
238
+ export declare const TailwindFormRenderer: typeof __VLS_export;
239
+
240
+ export declare const TwArrayField: typeof __VLS_export_10;
241
+
242
+ export declare const TwCheckboxField: typeof __VLS_export_6;
243
+
244
+ export declare const TwDateField: typeof __VLS_export_8;
245
+
246
+ export declare const TwFileField: typeof __VLS_export_9;
247
+
248
+ export declare const TwNumberField: typeof __VLS_export_3;
249
+
250
+ export declare const TwRadioField: typeof __VLS_export_7;
251
+
252
+ export declare const TwSelectField: typeof __VLS_export_5;
253
+
254
+ export declare const TwTextareaField: typeof __VLS_export_4;
255
+
256
+ export declare const TwTextField: typeof __VLS_export_2;
378
257
 
379
258
  declare interface UseFormReturn<T extends Record<string, unknown> = Record<string, unknown>> {
380
259
  fields: ComputedRef<FieldDefinition[]>;