import{E as T,a_ as $,L as m,_ as q,f as F,c as H,o as A,a as D,D as R,m as x,n as E,G,H as B,i as h,V as J,j as z,X as K,v as L,J as P,K as U,aI as X,ak as Q}from"./B5SccrHB.js";import{u as W}from"./CijXy2Q0.js";const n=T(m.ui.strategy,m.ui.textarea,$),Y=F({inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},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},rows:{type:Number,default:3},maxrows:{type:Number,default:0},autoresize:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},autofocusDelay:{type:Number,default:100},resize:{type:Boolean,default:!1},padded:{type:Boolean,default:!0},size:{type:String,default:null,validator(e){return Object.keys(n.size).includes(e)}},color:{type:String,default:()=>n.default.color,validator(e){return[...m.ui.colors,...Object.keys(n.color)].includes(e)}},variant:{type:String,default:()=>n.default.variant,validator(e){return[...Object.keys(n.variant),...Object.values(n.color).flatMap(t=>Object.keys(t))].includes(e)}},textareaClass:{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:t}){const{ui:l,attrs:c}=G("textarea",B(e,"ui"),n,B(e,"class")),{emitFormBlur:p,emitFormInput:v,inputId:r,color:y,size:g,name:C}=W(e,n),s=h(J({},e.modelModifiers,{trim:!1,lazy:!1,number:!1,nullify:!1})),o=h(null),b=()=>{var a;e.autofocus&&((a=o.value)==null||a.focus())},d=()=>{if(e.autoresize){if(!o.value)return;o.value.rows=e.rows;const a=o.value.style.overflow;o.value.style.overflow="hidden";const u=window.getComputedStyle(o.value),i=Number.parseInt(u.paddingTop),k=Number.parseInt(u.paddingBottom),O=i+k,M=Number.parseInt(u.lineHeight),{scrollHeight:V}=o.value,f=(V-O)/M;f>e.rows&&(o.value.rows=e.maxrows?Math.min(f,e.maxrows):f),o.value.style.overflow=a}},w=a=>{s.value.trim&&(a=a.trim()),s.value.number&&(a=X(a)),s.value.nullify&&(a||(a=null)),t("update:modelValue",a),v()},I=a=>{d(),s.value.lazy||w(a.target.value)},S=a=>{const u=a.target.value;t("change",u),s.value.lazy&&w(u),s.value.trim&&(a.target.value=u.trim())},j=a=>{t("blur",a),p()};z(()=>{setTimeout(()=>{b()},e.autofocusDelay)}),K(()=>e.modelValue,()=>{Q(d)}),z(()=>{setTimeout(()=>{b(),d()},100)});const N=L(()=>{var u,i;const a=((i=(u=l.value.color)==null?void 0:u[y.value])==null?void 0:i[e.variant])||l.value.variant[e.variant];return P(U(l.value.base,l.value.form,l.value.rounded,l.value.placeholder,l.value.size[g.value],e.padded?l.value.padding[g.value]:"p-0",a==null?void 0:a.replaceAll("{color}",y.value),!e.resize&&"resize-none"),e.textareaClass)});return{ui:l,attrs:c,name:C,inputId:r,textarea:o,textareaClass:N,onInput:I,onChange:S,onBlur:j}}}),Z=["id","value","name","rows","required","disabled","placeholder"];function _(e,t,l,c,p,v){return A(),H("div",{class:E(e.ui.wrapper)},[D("textarea",x({id:e.inputId,ref:"textarea",value:e.modelValue,name:e.name,rows:e.rows,required:e.required,disabled:e.disabled,placeholder:e.placeholder,class:e.textareaClass},e.attrs,{onInput:t[0]||(t[0]=(...r)=>e.onInput&&e.onInput(...r)),onBlur:t[1]||(t[1]=(...r)=>e.onBlur&&e.onBlur(...r)),onChange:t[2]||(t[2]=(...r)=>e.onChange&&e.onChange(...r))}),null,16,Z),R(e.$slots,"default")],2)}const te=q(Y,[["render",_]]);export{te as _};
