import Z from"./CqPzG2RW.js";import{c as M,r as K,s as I,R as Q,t as _,v as p,T as x}from"./CqITJyyW.js";import{k as w,H as C,M as ee,N as ne,O as ae,i as b,b as G,l as u,p as le,W as A,X as te,a as ue,t as j,I as $,Z as ie,G as oe,a6 as N,Y as y,J as q,$ as V}from"./CfFgK9wb.js";import{i as re,u as se}from"./B3d5QtfZ.js";import{u as de}from"./BidkxkpM.js";const ce=w({props:{name:{type:String,required:!0},mode:{type:String,required:!1,default:null},size:{type:[Number,String],required:!1,default:null},customize:{type:Function,required:!1,default:null}}});function fe(e,l,r,n,a,t){const o=Z;return C(),ee(o,ne(ae(e.$props)),null,16)}const T=M(ce,[["render",fe],["__file","Icon.vue"]]),ge=(e,l,r=!0)=>{const n=b("form-events",void 0),a=b("form-group",void 0),t=b("form-inputs",void 0);a&&(!r||e?.legend?a.inputId.value=void 0:e?.id&&(a.inputId.value=e?.id),t&&(t.value[a.name.value]=a.inputId.value));const o=G(!1);function s(g,S){n&&n.emit({type:g,path:S})}function B(){s("blur",a?.name.value),o.value=!0}function h(){s("change",a?.name.value)}const d=de(()=>{(o.value||a?.eagerValidation.value)&&s("input",a?.name.value)},300);return{inputId:u(()=>e?.id??a?.inputId.value),name:u(()=>e?.name??a?.name.value),size:u(()=>{const g=l.size[a?.size.value]?a?.size.value:null;return e?.size??g??l.default?.size}),color:u(()=>a?.error?.value?"red":e?.color),emitFormBlur:B,emitFormInput:d,emitFormChange:h}};function ve({ui:e,props:l}){const r=ue();if(le("ButtonGroupContextConsumer",!0),b("ButtonGroupContextConsumer",!1))return{size:u(()=>l.size),rounded:u(()=>e.value.rounded)};let a=r.parent,t;for(;a&&!t;){if(a.type.name==="ButtonGroup"){t=b(`group-${a.uid}`);break}a=a.parent}const o=u(()=>t?.value.children.indexOf(r));return A(()=>{t?.value.register(r)}),te(()=>{t?.value.unregister(r)}),{size:u(()=>t?.value?t?.value.size??e.value.default.size:l.size),rounded:u(()=>!t||o.value===-1?e.value.rounded:t.value.children.length===1?t.value.ui.rounded:o.value===0?t.value.rounded.start:o.value===t.value.children.length-1?t.value.rounded.end:"rounded-none")}}const c=K(I.ui.strategy,I.ui.input,re),me=w({components:{UIcon:T},inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},type:{type:String,default:"text"},id:{type:String,default:null},name:{type:String,default:null},placeholder:{type:String,default:null},required:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},autofocusDelay:{type:Number,default:100},icon:{type:String,default:null},loadingIcon:{type:String,default:()=>c.default.loadingIcon},leadingIcon:{type:String,default:null},trailingIcon:{type:String,default:null},trailing:{type:Boolean,default:!1},leading:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(e){return Object.keys(c.size).includes(e)}},color:{type:String,default:()=>c.default.color,validator(e){return[...I.ui.colors,...Object.keys(c.color)].includes(e)}},variant:{type:String,default:()=>c.default.variant,validator(e){return[...Object.keys(c.variant),...Object.values(c.color).flatMap(l=>Object.keys(l))].includes(e)}},inputClass:{type:String,default:null},class:{type:[String,Object,Array],default:()=>""},ui:{type:Object,default:()=>({})},modelModifiers:{type:Object,default:()=>({})}},emits:["update:modelValue","blur","change"],setup(e,{emit:l,slots:r}){const{ui:n,attrs:a}=se("input",j(e,"ui"),c,j(e,"class")),{size:t,rounded:o}=ve({ui:n,props:e}),{emitFormBlur:s,emitFormInput:B,size:h,color:d,inputId:g,name:S}=ge(e,c),f=u(()=>t.value??h.value),v=G(Q({},e.modelModifiers,{trim:!1,lazy:!1,number:!1})),O=G(null),W=()=>{e.autofocus&&O.value?.focus()},k=i=>{v.value.trim&&(i=i.trim()),(v.value.number||e.type==="number")&&(i=x(i)),l("update:modelValue",i),B()},U=i=>{v.value.lazy||k(i.target.value)},D=i=>{if(e.type==="file"){const m=i.target.files;l("change",m)}else{const m=i.target.value;l("change",m),v.value.lazy&&k(m),v.value.trim&&(i.target.value=m.trim())}},R=i=>{s(),l("blur",i)};A(()=>{setTimeout(()=>{W()},e.autofocusDelay)});const E=u(()=>{const i=n.value.color?.[d.value]?.[e.variant]||n.value.variant[e.variant];return _(p(n.value.base,n.value.form,o.value,n.value.placeholder,e.type==="file"&&n.value.file.base,n.value.size[f.value],e.padded?n.value.padding[f.value]:"p-0",i?.replaceAll("{color}",d.value),(z.value||r.leading)&&n.value.leading.padding[f.value],(F.value||r.trailing)&&n.value.trailing.padding[f.value]),e.inputClass)}),z=u(()=>e.icon&&e.leading||e.icon&&!e.trailing||e.loading&&!e.trailing||e.leadingIcon),F=u(()=>e.icon&&e.trailing||e.loading&&e.trailing||e.trailingIcon),J=u(()=>e.loading?e.loadingIcon:e.leadingIcon||e.icon),L=u(()=>e.loading&&!z.value?e.loadingIcon:e.trailingIcon||e.icon),H=u(()=>p(n.value.icon.leading.wrapper,n.value.icon.leading.pointer,n.value.icon.leading.padding[f.value])),P=u(()=>p(n.value.icon.base,d.value&&I.ui.colors.includes(d.value)&&n.value.icon.color.replaceAll("{color}",d.value),n.value.icon.size[f.value],e.loading&&n.value.icon.loading)),X=u(()=>p(n.value.icon.trailing.wrapper,n.value.icon.trailing.pointer,n.value.icon.trailing.padding[f.value])),Y=u(()=>p(n.value.icon.base,d.value&&I.ui.colors.includes(d.value)&&n.value.icon.color.replaceAll("{color}",d.value),n.value.icon.size[f.value],e.loading&&!z.value&&n.value.icon.loading));return{ui:n,attrs:a,name:S,inputId:g,input:O,isLeading:z,isTrailing:F,inputClass:E,leadingIconName:J,leadingIconClass:P,leadingWrapperIconClass:H,trailingIconName:L,trailingIconClass:Y,trailingWrapperIconClass:X,onInput:U,onChange:D,onBlur:R}}}),pe=["id","name","type","required","placeholder","disabled"];function ye(e,l,r,n,a,t){const o=T;return C(),$("div",{class:y(e.type==="hidden"?"hidden":e.ui.wrapper)},[ie("input",oe({id:e.inputId,ref:"input",name:e.name,type:e.type,required:e.required,placeholder:e.placeholder,disabled:e.disabled,class:e.inputClass},e.type==="file"?e.attrs:{...e.attrs,value:e.modelValue},{onInput:l[0]||(l[0]=(...s)=>e.onInput&&e.onInput(...s)),onBlur:l[1]||(l[1]=(...s)=>e.onBlur&&e.onBlur(...s)),onChange:l[2]||(l[2]=(...s)=>e.onChange&&e.onChange(...s))}),null,16,pe),N(e.$slots,"default"),e.isLeading&&e.leadingIconName||e.$slots.leading?(C(),$("span",{key:0,class:y(e.leadingWrapperIconClass)},[N(e.$slots,"leading",{disabled:e.disabled,loading:e.loading},()=>[q(o,{name:e.leadingIconName,class:y(e.leadingIconClass)},null,8,["name","class"])])],2)):V("",!0),e.isTrailing&&e.trailingIconName||e.$slots.trailing?(C(),$("span",{key:1,class:y(e.trailingWrapperIconClass)},[N(e.$slots,"trailing",{disabled:e.disabled,loading:e.loading},()=>[q(o,{name:e.trailingIconName,class:y(e.trailingIconClass)},null,8,["name","class"])])],2)):V("",!0)],2)}const he=M(me,[["render",ye],["__file","Input.vue"]]);export{he as _,T as a,ve as u};
