@krds.ui/vue 0.0.11 → 0.0.13

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.
@@ -1,2 +1,4 @@
1
- (function(k,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(k=typeof globalThis<"u"?globalThis:k||self,e(k.KrdsVue={},k.Vue))})(this,(function(k,e){"use strict";const O=e.defineComponent({name:"KrdsButton",props:{type:{type:String,default:"button"},size:{type:String,default:void 0},variant:{type:String,default:"primary"},icon:{type:Boolean,default:!1},border:{type:Boolean,default:!1},pure:{type:Boolean,default:!1},text:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:i,slots:a}){const l=e.computed(()=>{const o=["krds-btn"];return t.icon&&o.push("icon"),t.border&&o.push("border"),t.pure&&o.push("pure"),t.text&&o.push("text"),t.variant&&!t.icon&&o.push(t.variant),t.size&&o.push(t.size),t.class&&o.push(t.class),o}),n=o=>{t.disabled||i("click",o)};return()=>e.h("button",{type:t.type,class:l.value,disabled:t.disabled,onClick:n},a.default?.())}}),Y=e.defineComponent({name:"KrdsButtonGroup",props:{},setup(t,{slots:i}){return()=>e.h("div",{class:"btn-group"},i.default?.())}}),G=e.defineComponent({name:"KrdsIcon",props:{name:{type:String,required:!0},class:{type:String,default:void 0}},setup(t){return()=>e.h("i",{class:["svg-icon",t.name,t.class].filter(Boolean).join(" ")})}}),U=e.defineComponent({name:"KrdsLink",props:{href:{type:String,default:"#!"},target:{type:String,default:void 0},title:{type:String,default:void 0},size:{type:String,default:void 0},link:{type:Boolean,default:!0},basic:{type:Boolean,default:!1},pure:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:i,slots:a}){const l=e.computed(()=>{const r=["krds-btn"];return t.size&&r.push(t.size),t.link&&r.push("link"),t.basic&&r.push("basic"),t.pure&&r.push("pure"),t.class&&r.push(t.class),r}),n=e.computed(()=>{const r={href:t.href,class:l.value};return t.target&&(r.target=t.target),t.title&&(r.title=t.title),t.target==="_blank"&&(r.rel="noopener noreferrer"),r}),o=r=>{i("click",r)};return()=>e.h("a",{...n.value,onClick:o},a.default?.())}}),q=e.defineComponent({name:"KrdsSpinner",props:{label:{type:String,default:void 0}},render(){const t=[e.h("span",{class:"sr-only"},"로딩 중")];return this.label&&t.push(e.h("span",this.label)),e.h("div",{class:"krds-spinner",role:"status"},t)}}),X=e.defineComponent({name:"KrdsInput",props:{modelValue:{type:[String,Number],default:void 0},type:{type:String,default:"text"},size:{type:String,default:void 0},placeholder:{type:String,default:void 0},maxlength:{type:Number,default:void 0},minlength:{type:Number,default:void 0},max:{type:Number,default:void 0},min:{type:Number,default:void 0},step:{type:Number,default:void 0},autocomplete:{type:String,default:void 0},autofocus:{type:Boolean,default:!1},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},error:{type:String,default:void 0},state:{type:String,default:"default"},icon:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","input","change","focus","blur","keydown","keyup"],setup(t,{emit:i,slots:a}){const l=e.computed(()=>{const g=["krds-input"];return t.size&&g.push(t.size),t.class&&g.push(t.class),g}),n=g=>{const w=g.target,p=t.type==="number"?Number(w.value):w.value;i("update:modelValue",p),i("input",g)},o=g=>{i("change",g)},r=g=>{i("focus",g)},f=g=>{i("blur",g)},m=g=>{i("keydown",g)},h=g=>{i("keyup",g)},y=e.computed(()=>{const g={type:t.type,class:l.value,value:t.modelValue,placeholder:t.placeholder,name:t.name,id:t.id,required:t.required,readonly:t.readonly,disabled:t.disabled,autocomplete:t.autocomplete,autofocus:t.autofocus,onInput:n,onChange:o,onFocus:r,onBlur:f,onKeydown:m,onKeyup:h};return t.maxlength!==void 0&&(g.maxlength=t.maxlength),t.minlength!==void 0&&(g.minlength=t.minlength),t.type==="number"&&(t.max!==void 0&&(g.max=t.max),t.min!==void 0&&(g.min=t.min),t.step!==void 0&&(g.step=t.step)),g}),b=e.computed(()=>{const g=["form-conts"];return t.state!=="default"&&g.push(`is-${t.state}`),t.icon&&g.push("btn-ico-wrap"),g});return()=>{const g=[e.h("input",y.value)];return t.loading?e.h("div",{class:b.value},[e.h("div",{class:"form-spinner"},[...g,e.h(q)])]):(a.default&&g.push(...a.default()),e.h("div",{class:b.value},g))}}}),J=e.defineComponent({name:"KrdsFormLabel",props:{for:{type:String,default:void 0},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["click"],setup(t,{emit:i,slots:a}){const l=n=>{i("click",n)};return()=>e.h("div",{class:"form-tit"},[e.h("label",{for:t.for,id:t.id,class:t.class,style:t.style,onClick:l},a.default?.())])}}),Q=e.defineComponent({name:"KrdsFormHint",props:{type:{type:String,default:"hint"},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["click"],setup(t,{emit:i,slots:a}){const l=o=>{i("click",o)},n=()=>{let o;switch(t.type){case"error":o="form-hint-invalid";break;case"success":o="form-hint-success";break;case"information":o="form-hint-information";break;default:o="form-hint";break}return t.class?`${o} ${t.class}`:o};return()=>e.h("p",{id:t.id,class:n(),style:t.style,onClick:l},a.default?.())}}),Z=e.defineComponent({name:"KrdsFormGroup",props:{class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},setup(t,{slots:i}){const a=e.computed(()=>{const l=["form-group"];return t.class&&l.push(t.class),l});return()=>e.h("div",{id:t.id,class:a.value,style:t.style},i.default?.())}});function Ie(t,i){const a=new Date,l=e.ref(t||a.getFullYear()),n=e.ref(i||a.getMonth()+1),o=e.ref(null),r=e.ref(null),f=e.ref(null),m=e.computed(()=>{const d=a.getFullYear(),c=[];for(let u=d-10;u<=d+10;u++)c.push(u);return c}),h=e.computed(()=>Array.from({length:12},(d,c)=>c+1)),y=()=>{o.value=null,r.value=null},b=()=>{n.value===1?(n.value=12,l.value-=1):n.value-=1},g=()=>{n.value===12?(n.value=1,l.value+=1):n.value+=1},w=(d,c=!1)=>{if(c)o.value=d,r.value=d;else if(!o.value||o.value&&r.value)o.value=d,r.value=null;else{const u=new Date(o.value.replace(/\./g,"-"));new Date(d.replace(/\./g,"-"))<u?(o.value=d,r.value=null):r.value=d}};return{currentYear:l,currentMonth:n,selectedStartDate:o,selectedEndDate:r,activeDateSelector:f,yearOptions:m,monthOptions:h,clearDateSelection:y,prevMonth:b,nextMonth:g,handleDateSelection:w,selectToday:()=>{const d=`${a.getFullYear()}.${String(a.getMonth()+1).padStart(2,"0")}.${String(a.getDate()).padStart(2,"0")}`;w(d,!0)},isDateInSelectedRange:d=>{if(!o.value||!r.value)return{isInRange:!1,isStart:!1,isEnd:!1};const c=new Date(d.replace(/\./g,"-")),u=new Date(o.value.replace(/\./g,"-")),C=new Date(r.value.replace(/\./g,"-")),D=d===o.value,v=d===r.value;return{isInRange:c>=u&&c<=C,isStart:D,isEnd:v}}}}function Te(t,i,a={}){let l=null;const n=typeof a=="string"?{ignore:a}:a,{ignore:o,event:r="click"}=n,f=()=>{l=h=>{const y=h.target;t.value?.contains(y)||o&&y.closest(o)||i()},document.addEventListener(r,l)},m=()=>{if(l){const h=typeof a=="string"?"click":a.event||"click";document.removeEventListener(h,l),l=null}};return e.onMounted(()=>{f()}),e.onBeforeUnmount(()=>{m()}),{setupGlobalListeners:f,removeGlobalListeners:m}}const Me={class:"form-conts"},Re={class:"calendar-input"},Ae=["id","name","placeholder","value","readonly","disabled","required","autofocus"],Fe=["disabled","aria-expanded"],Pe={class:"calendar-head"},Oe={class:"calendar-switch-wrap"},qe={class:"calendar-drop-down"},He=["aria-expanded"],je={class:"calendar-select calendar-year-wrap"},We={class:"sel year"},Ye=["onClick"],Ge={class:"calendar-drop-down"},Ue=["aria-expanded"],Xe={class:"calendar-select calendar-mon-wrap"},Je={class:"sel month"},Qe=["onClick"],Ze={class:"calendar-body"},et={class:"calendar-table-wrap"},tt={class:"calendar-tbl"},nt=["data-date"],lt=["aria-pressed","onClick"],at={class:"calendar-footer"},ot={class:"calendar-btn-wrap"},ee=e.defineComponent({__name:"KrdsDateInput",props:{modelValue:{default:void 0},size:{default:"medium"},placeholder:{default:"YYYY.MM.DD"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},eventDates:{default:()=>[]},holidays:{default:()=>[]},initialYear:{default:void 0},initialMonth:{default:void 0},name:{default:void 0},required:{type:Boolean,default:!1},class:{default:void 0},style:{},id:{default:void 0}},emits:["update:modelValue","input","change","focus","blur"],setup(t,{emit:i}){const a=t,l=i,n=e.ref(),o=e.ref(),r=e.ref(!1),f=e.ref(null),{currentYear:m,currentMonth:h,selectedStartDate:y,selectedEndDate:b,yearOptions:g,monthOptions:w,prevMonth:p,nextMonth:s,handleDateSelection:d,selectToday:c,isDateInSelectedRange:u}=Ie(a.initialYear,a.initialMonth),C=()=>{r.value&&o.value?.focus(),r.value=!1,f.value=null};Te(n,C,".calendar-conts");const D=e.computed(()=>{const S=["krds-input","datepicker","cal"];return a.size&&S.push(a.size),a.class&&S.push(a.class),S}),v=e.computed(()=>["form-conts","calendar-conts"]),K=e.computed(()=>({"krds-calendar-area":!0,active:r.value})),N=e.computed(()=>{const S=m.value,E=h.value,V=new Date(S,E-1,1),T=new Date(V);T.setDate(T.getDate()-V.getDay());const I=[],x=new Date(T);for(let W=0;W<6;W++){const _e=[];for(let ze=0;ze<7;ze++){const nn=`${x.getFullYear()}.${String(x.getMonth()+1).padStart(2,"0")}.${String(x.getDate()).padStart(2,"0")}`,Le=x.getDay();_e.push({day:x.getDate(),dateString:nn,isCurrentMonth:x.getMonth()===E-1,isToday:x.toDateString()===new Date().toDateString(),isPrevMonth:x.getMonth()<E-1||x.getMonth()===11&&E===1,isNextMonth:x.getMonth()>E-1||x.getMonth()===0&&E===12,isSunday:Le===0,isSaturday:Le===6}),x.setDate(x.getDate()+1)}I.push(_e)}return I}),z=S=>{const E=[];if(S.isPrevMonth&&E.push("old"),S.isNextMonth&&E.push("new"),S.isToday&&E.push("today"),S.isSunday&&E.push("day-off"),a.holidays?.includes(S.dateString)&&E.push("day-off"),a.eventDates?.includes(S.dateString)&&E.push("day-event"),S.isCurrentMonth){const V=u(S.dateString);V.isInRange&&(E.push("period"),V.isStart&&E.push("start"),V.isEnd&&E.push("end"))}return E},B=e.computed(()=>[{id:"get-today",label:"오늘",class:"text",variant:void 0,size:"small",handler:c},{id:"cancel-btn",label:"취소",class:void 0,variant:"tertiary",size:"small",handler:C},{id:"confirm-btn",label:"확인",class:void 0,variant:"primary",size:"small",handler:M}]),L=S=>{f.value===S?f.value=null:f.value=S},F=S=>{m.value=S,f.value=null},j=S=>{h.value=S,f.value=null},M=()=>{if(y.value){if(b.value&&y.value!==b.value){const S=`${y.value} ~ ${b.value}`;l("update:modelValue",S)}else l("update:modelValue",y.value);C()}},$=()=>{r.value=!0,f.value=null,setTimeout(()=>{n.value?.querySelector(".calendar-wrap")?.focus()},50)},_=()=>{r.value?C():$()},$e=S=>{S.code==="Escape"&&(f.value?f.value=null:r.value&&C())},P=S=>{const E=S.target;l("update:modelValue",E.value),l("input",S)},Zt=S=>{l("change",S)},en=S=>{l("focus",S)},tn=S=>{l("blur",S)};return(S,E)=>(e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("div",{class:e.normalizeClass(v.value)},[e.createElementVNode("div",Re,[e.createElementVNode("input",{id:t.id,name:t.name,class:e.normalizeClass(D.value),placeholder:t.placeholder,value:t.modelValue,readonly:t.readonly,disabled:t.disabled,required:t.required,autofocus:t.autofocus,type:"text",onInput:P,onChange:Zt,onFocus:en,onBlur:tn},null,42,Ae),e.createElementVNode("button",{ref_key:"datePickerButtonRef",ref:o,class:e.normalizeClass(`krds-btn ${t.size||"medium"} icon form-btn-datepicker`),disabled:t.disabled,"aria-expanded":r.value,type:"button",onClick:_},[...E[4]||(E[4]=[e.createElementVNode("span",{class:"sr-only"},"달력 열기",-1),e.createElementVNode("i",{class:"svg-icon ico-calendar"},null,-1)])],10,Fe)]),e.createElementVNode("div",{ref_key:"datePickerAreaRef",ref:n,class:e.normalizeClass(K.value)},[e.withDirectives(e.createElementVNode("div",{class:"calendar-wrap bottom","aria-label":"달력",tabindex:"0",onKeydown:$e},[e.createElementVNode("div",Pe,[e.createElementVNode("button",{type:"button",class:"btn-cal-move prev",onClick:E[0]||(E[0]=(...V)=>e.unref(p)&&e.unref(p)(...V))},[...E[5]||(E[5]=[e.createElementVNode("span",{class:"sr-only"},"이전 달",-1)])]),e.createElementVNode("div",Oe,[e.createElementVNode("div",qe,[e.createElementVNode("button",{type:"button",class:"btn-cal-switch year","aria-label":"연도 선택","aria-expanded":f.value==="year",onClick:E[1]||(E[1]=V=>L("year"))},e.toDisplayString(e.unref(m))+"년 ",9,He),e.withDirectives(e.createElementVNode("div",je,[e.createElementVNode("ul",We,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(g),V=>(e.openBlock(),e.createElementBlock("li",{key:V},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:V===e.unref(m)}),onClick:T=>F(V)},e.toDisplayString(V)+"년",11,Ye)]))),128))])],512),[[e.vShow,f.value==="year"]])]),e.createElementVNode("div",Ge,[e.createElementVNode("button",{type:"button",class:"btn-cal-switch month","aria-label":"월 선택","aria-expanded":f.value==="month",onClick:E[2]||(E[2]=V=>L("month"))},e.toDisplayString(e.unref(h).toString().padStart(2,"0"))+"월 ",9,Ue),e.withDirectives(e.createElementVNode("div",Xe,[e.createElementVNode("ul",Je,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(w),V=>(e.openBlock(),e.createElementBlock("li",{key:V},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:V===e.unref(h)}),onClick:T=>j(V)},e.toDisplayString(V.toString().padStart(2,"0"))+"월 ",11,Qe)]))),128))])],512),[[e.vShow,f.value==="month"]])])]),e.createElementVNode("button",{type:"button",class:"btn-cal-move next",onClick:E[3]||(E[3]=(...V)=>e.unref(s)&&e.unref(s)(...V))},[...E[6]||(E[6]=[e.createElementVNode("span",{class:"sr-only"},"다음 달",-1)])])]),e.createElementVNode("div",Ze,[e.createElementVNode("div",et,[e.createElementVNode("table",tt,[e.createElementVNode("caption",null,e.toDisplayString(e.unref(m))+"년 "+e.toDisplayString(e.unref(h).toString().padStart(2,"0"))+"월",1),E[7]||(E[7]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"일"),e.createElementVNode("th",null,"월"),e.createElementVNode("th",null,"화"),e.createElementVNode("th",null,"수"),e.createElementVNode("th",null,"목"),e.createElementVNode("th",null,"금"),e.createElementVNode("th",null,"토")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,(V,T)=>(e.openBlock(),e.createElementBlock("tr",{key:T},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(V,(I,x)=>(e.openBlock(),e.createElementBlock("td",{key:x,class:e.normalizeClass(z(I)),"data-date":I.dateString},[e.createElementVNode("button",{type:"button",class:"btn-set-date","aria-pressed":e.unref(u)(I.dateString).isInRange?"true":"false",onClick:W=>e.unref(d)(I.dateString)},[e.createElementVNode("span",null,e.toDisplayString(I.day),1)],8,lt)],10,nt))),128))]))),128))])])])]),e.createElementVNode("div",at,[e.createElementVNode("div",ot,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B.value,V=>(e.openBlock(),e.createBlock(e.unref(O),{id:V.id,key:V.id,class:e.normalizeClass(V.class),variant:V.variant,size:V.size,onClick:V.handler},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(V.label),1)]),_:2},1032,["id","class","variant","size","onClick"]))),128))])])],544),[[e.vShow,r.value]])],2)],2)]))}}),te=e.defineComponent({name:"KrdsTextarea",props:{modelValue:{type:String,default:""},size:{type:String,default:void 0},placeholder:{type:String,default:void 0},maxlength:{type:Number,default:void 0},minlength:{type:Number,default:void 0},rows:{type:Number,default:4},cols:{type:Number,default:void 0},autofocus:{type:Boolean,default:!1},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},showCount:{type:Boolean,default:!0},resize:{type:String,default:"vertical"},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","input","change","focus","blur","keydown","keyup"],setup(t,{emit:i}){const a=e.ref(0);e.watch(()=>t.modelValue,s=>{a.value=(s||"").length},{immediate:!0});const l=e.computed(()=>{const s=["krds-input"];return t.size&&s.push(t.size),t.class&&s.push(t.class),s}),n=e.computed(()=>{const s={};return t.resize&&(s.resize=t.resize),s}),o=s=>{const c=s.target.value;a.value=c.length,i("update:modelValue",c),i("input",s)},r=s=>{i("change",s)},f=s=>{i("focus",s)},m=s=>{i("blur",s)},h=s=>{i("keydown",s)},y=s=>{i("keyup",s)},b=e.computed(()=>{const s={class:l.value,style:n.value,value:t.modelValue,placeholder:t.placeholder,name:t.name,id:t.id,required:t.required,readonly:t.readonly,disabled:t.disabled,autofocus:t.autofocus,rows:t.rows,cols:t.cols,onInput:o,onChange:r,onFocus:f,onBlur:m,onKeydown:h,onKeyup:y};return t.maxlength!==void 0&&(s.maxlength=t.maxlength),t.minlength!==void 0&&(s.minlength=t.minlength),s}),g=e.computed(()=>["form-conts"]),w=e.computed(()=>["textarea-wrap"]),p=e.computed(()=>{if(!t.showCount)return null;const s=a.value,d=t.maxlength;return{current:s,max:d||""}});return()=>{const s=[e.h("textarea",b.value)];return p.value&&s.push(e.h("p",{class:"textarea-count"},[e.h("span",{class:"count-now"},p.value.current),e.h("span",{class:"count-total"},p.value.max?`/${p.value.max}`:"")])),e.h("div",{class:g.value},[e.h("div",{class:w.value},s)])}}}),ne=e.defineComponent({name:"KrdsSelect",props:{modelValue:{type:[String,Number,null],default:null},size:{type:String,default:"medium"},title:{type:String,default:void 0},options:{type:Array,default:()=>[]},placeholder:{type:String,default:"선택"},name:{type:String,default:void 0},disabled:{type:Boolean,default:!1},state:{type:String,default:"default"},sort:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","focus","blur"],setup(t,{emit:i,slots:a}){const l=e.computed(()=>{const y=[];return t.sort?y.push("krds-form-select-sort"):y.push("krds-form-select"),t.size&&y.push(t.size),t.class&&y.push(t.class),y}),n=y=>{const b=y.target,g=b.value===""?null:b.value;i("update:modelValue",g)},o=y=>{i("focus",y)},r=y=>{i("blur",y)},f=e.computed(()=>({class:l.value,value:t.modelValue??"",title:t.title||t.placeholder,name:t.name,id:t.id,disabled:t.disabled||t.readonly,onChange:n,onFocus:o,onBlur:r})),m=e.computed(()=>{const y=["form-conts"];return t.state!=="default"&&y.push(`is-${t.state}`),y}),h=()=>{const y=[];return t.placeholder&&!t.modelValue&&y.push(e.h("option",{value:"",disabled:!0,selected:!0},t.placeholder)),t.options&&t.options.length>0&&t.options.forEach(b=>{y.push(e.h("option",{value:b.value,disabled:b.disabled,selected:b.value===t.modelValue},b.label))}),a.default&&y.push(...a.default()),y};return()=>{const y=e.h("select",f.value,h());return t.sort?y:e.h("div",{class:m.value},[y])}}}),le=e.defineComponent({name:"KrdsFileUpload",props:{modelValue:{type:Array,default:()=>[]},size:{type:String,default:"medium"},accept:{type:String,default:void 0},maxFiles:{type:Number,default:10},maxFileSize:{type:Number,default:20*1024*1024},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},dragAndDrop:{type:Boolean,default:!0},title:{type:String,default:"타이틀영역"},description:{type:String,default:"컨텐츠 영역"},placeholder:{type:String,default:"첨부할 파일을 여기에 끌어다 놓거나, 파일 선택 버튼을 눌러 파일을 직접 선택해주세요."},showPreview:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},showClearAll:{type:Boolean,default:!0},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","file-added","file-removed","file-error","upload-start","upload-progress","upload-complete","upload-error","clear-all","download","preview"],setup(t,{emit:i}){e.ref(!1),e.computed(()=>{const l=["krds-file-upload","line"];return t.class&&l.push(t.class),l});const a=e.computed(()=>t.modelValue?.length||0);return e.computed(()=>!t.disabled&&a.value<t.maxFiles),()=>null}}),ae=e.defineComponent({name:"KrdsBadge",props:{type:{type:String,default:"outline"},color:{type:String,default:"primary"},size:{type:String,default:"large"},number:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:i,slots:a}){const l=e.computed(()=>{const o=["krds-badge"];return o.push(`${t.type}-${t.color}`),t.size&&o.push(t.size),t.number&&o.push("number"),t.class&&o.push(t.class),o}),n=o=>{i("click",o)};return()=>e.h("span",{type:t.type,color:t.color,size:t.size,number:t.number,class:l.value,onClick:n},a.default?.())}}),oe=e.defineComponent({name:"KrdsTag",props:{link:{type:Boolean,default:!1},href:{type:String,default:"#"},target:{type:String,default:void 0},rel:{type:String,default:void 0},class:{type:String,default:void 0}},emits:["remove"],setup(t,{emit:i,slots:a}){const l=e.computed(()=>{const r=["krds-btn-tag"];return t.link&&r.push("link"),t.class&&r.push(t.class),r}),n=r=>{i("remove",r)},o=()=>e.h("button",{type:"button",class:"btn-delete",onClick:n},[e.h("span",{class:"sr-only"},"삭제")]);return()=>{const r=[],f=a.default?.();if(f&&r.push(f),t.link||r.push(o()),t.link){const m={href:t.href,class:l.value};return t.target&&(m.target=t.target),t.rel&&(m.rel=t.rel),e.h("a",m,r)}return e.h("span",{class:l.value},r)}}}),se=e.defineComponent({name:"KrdsTagGroup",props:{size:{type:String,default:"medium"},class:{type:String,default:void 0}},setup(t,{slots:i}){const a=e.computed(()=>{const l=["krds-tag-wrap"];return t.size&&l.push(t.size),t.class&&l.push(t.class),l});return()=>e.h("div",{class:a.value},i.default?.())}}),ie=e.defineComponent({name:"KrdsMasthead",props:{class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:i,slots:a}){const l=e.computed(()=>{const o=[""];return t.class&&o.push(t.class),o}),n=o=>{i("click",o)};return()=>e.h("div",{id:"krds-masthead",class:l.value,onClick:n},[e.h("div",{class:"toggle-wrap"},[e.h("div",{class:"toggle-head"},[e.h("div",{class:"inner"},[e.h("span",{class:"nuri-txt"},a.default?.())])])])])}});let st=0;function R(t="krds"){return`${t}-${++st}`}function it(){const t=Date.now().toString(36).slice(-4),i=Math.random().toString(36).substring(2,5);return`${t}${i}`}function A(...t){return t.filter(Boolean).join(" ")}const re=e.defineComponent({name:"KrdsToggleSwitch",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},label:{type:String,default:void 0},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","change"],setup(t,{emit:i,attrs:a}){const l=e.computed(()=>t.modelValue),n=e.computed(()=>A("krds-form-toggle-switch",t.size,t.class)),o=f=>{if(t.disabled)return;const h=f.target.checked;i("update:modelValue",h),i("change",h)},r=e.computed(()=>t.id||R("toggle-switch"));return()=>e.h("div",{class:n.value},[e.h("input",{type:"checkbox",id:r.value,name:t.name,checked:l.value,disabled:t.disabled,onChange:o,...a}),e.h("label",{for:r.value},[e.h("span",{class:"switch-toggle"},[e.h("i")]),t.label||""])])}}),ce=e.defineComponent({name:"KrdsCheckArea",props:{class:{type:String,default:void 0},column:{type:Boolean,default:!1}},setup(t,{slots:i}){return()=>{const a=["krds-check-area"];return t.column&&a.push("chk-column"),t.class&&a.push(t.class),e.h("div",{class:a},i.default?.())}}}),de=e.defineComponent({name:"KrdsCheckbox",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},chip:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue"],slots:Object,setup(t,{emit:i,attrs:a,slots:l}){const n=e.computed(()=>t.modelValue),o=e.computed(()=>{const m=t.chip?"krds-form-chip":"krds-form-check";return A(m,t.size,t.class)}),r=m=>{if(t.disabled)return;const y=m.target.checked;i("update:modelValue",y)},f=e.computed(()=>t.id||R("checkbox"));return()=>{const m=[e.h("input",{type:"checkbox",id:f.value,checked:n.value,disabled:t.disabled,onChange:r,...a}),e.h("label",{for:f.value},l.default?.())];return l.description&&!t.chip&&m.push(e.h("div",{class:"krds-form-check-cnt"},e.h("p",{class:"krds-form-check-p"},l.description()))),e.h("div",{class:o.value},m)}}}),ue=e.defineComponent({name:"KrdsRadio",props:{modelValue:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],required:!0},disabled:{type:Boolean,default:!1},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},chip:{type:Boolean,default:!1},name:{type:String,default:void 0},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue"],slots:Object,setup(t,{emit:i,attrs:a,slots:l}){const n=e.computed(()=>t.modelValue===t.value),o=e.computed(()=>{const h=t.chip?"krds-form-chip":"krds-form-check";return A(h,t.size,t.class)}),r=h=>{if(t.disabled)return;h.target.checked&&i("update:modelValue",t.value)},f=e.computed(()=>t.id||R("radio")),m=e.computed(()=>t.name);return()=>{const h=[e.h("input",{type:"radio",id:f.value,name:m.value,value:String(t.value),checked:n.value,disabled:t.disabled,onChange:r,...a}),e.h("label",{for:f.value},l.default?.())];return l.description&&!t.chip&&h.push(e.h("div",{class:"krds-form-check-cnt"},e.h("p",{class:"krds-form-check-p"},l.description()))),e.h("div",{class:o.value},h)}}}),fe=e.defineComponent({name:"KrdsStepIndicator",props:{modelValue:{type:Number,default:0},class:{type:String,default:void 0}},emits:["update:modelValue"],setup(t,{slots:i}){const a=e.computed(()=>{const f=["krds-step-wrap"];return t.class&&f.push(t.class),f}),l=f=>{const m=t.modelValue||0;return f<m?"done":f===m?"active":"pending"},n=e.ref(0),o=()=>{n.value=0},r=()=>n.value++;return e.provide("stepIndicator",{activeStep:e.computed(()=>t.modelValue||0),getStepStatus:l,getNextStepIndex:r,resetStepIndex:o}),()=>(o(),e.h("ol",{class:a.value},i.default?.()))}}),me=e.defineComponent({name:"KrdsStep",props:{step:{type:[String,Number],required:!0},title:{type:String,required:!0},status:{type:String,default:void 0},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:i,slots:a}){const l=e.inject("stepIndicator"),n=l?l.getNextStepIndex():-1,o=e.computed(()=>t.status?t.status:l&&n>=0?l.getStepStatus(n):"pending"),r=e.computed(()=>{const m=[o.value];return t.class&&m.push(t.class),m}),f=m=>{i("click",m,t.step)};return()=>{const m=o.value==="active";return e.h("li",{class:r.value,onClick:f},[e.h("span",[m&&e.h("em",{class:"sr-only"},"현재단계"),e.h("i",{class:"step"},t.step),e.h("span",{class:"step-tit"},t.title),a.default?.()])])}}}),pe=e.defineComponent({name:"KrdsSkipLink",props:{href:{type:String,required:!0,validator:t=>t.startsWith("#")},class:{type:[String,Array,Object],default:void 0},id:{type:String,default:"krds-skip-link"}},setup(t,{slots:i}){return()=>e.h("div",{id:t.id,class:t.class},[e.h("a",{href:t.href},i.default?.())])}}),rt=["id","aria-label"],ct={class:"breadcrumb"},dt=["href","aria-current","onClick"],ut={key:0},he=e.defineComponent({__name:"KrdsBreadcrumb",props:{items:{},id:{default:void 0},ariaLabel:{default:"현재 경로"},showHomeIcon:{type:Boolean,default:!0}},emits:["item-click"],setup(t,{emit:i}){const a=t,l=i,n=r=>r===a.items.length-1,o=(r,f)=>{r.onClick&&r.onClick(f),l("item-click",r,f)};return(r,f)=>(e.openBlock(),e.createElementBlock("nav",{id:t.id,class:"krds-breadcrumb-wrap","aria-label":t.ariaLabel},[e.createElementVNode("ol",ct,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(m,h)=>(e.openBlock(),e.createElementBlock("li",{key:`breadcrumb-${h}`,class:e.normalizeClass({home:h===0&&t.showHomeIcon})},[e.createElementVNode("a",{href:m.href||"#",class:"txt","aria-current":n(h)?"page":void 0,onClick:y=>o(m,y)},[h===0&&t.showHomeIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",ut,e.toDisplayString(m.text),1))],8,dt)],2))),128))])],8,rt))}}),ye=e.defineComponent({name:"KrdsInPageNavigation",props:{title:{type:String,default:void 0},caption:{type:String,default:"이 페이지의 구성"},items:{type:Array,default:()=>[]},autoActive:{type:Boolean,default:!0},headerTopSelector:{type:String,default:"#krds-masthead"},headerInnerSelector:{type:String,default:"#krds-header .header-in"},class:{type:String,default:void 0}},emits:["itemClick"],slots:Object,setup(t,{emit:i,slots:a}){const l=e.ref(""),n=e.ref(new Map),o=e.computed(()=>{const p=["krds-in-page-navigation-type"];return t.class&&p.push(t.class),p}),r=()=>{const p=t.headerTopSelector,s=t.headerInnerSelector,d=document.querySelector(p)?.clientHeight||0,c=document.querySelector(s)?.clientHeight||0;return d+c},f=(p,s)=>{if(i("itemClick",p,s),p.href.startsWith("#")){s.preventDefault();const d=document.querySelector(p.href);if(d){const c=r();if(window.scrollTo({left:0,top:d.getBoundingClientRect().top+window.scrollY-c,behavior:"smooth"}),l.value=p.href,s instanceof KeyboardEvent){const u=d.querySelector(".sec-tit, h1, h2, h3, h4, h5, h6");u&&u instanceof HTMLElement&&(u.setAttribute("tabindex","-1"),u.focus({preventScroll:!0}))}}}},m=()=>{n.value.clear(),t.items&&t.items.filter(p=>p.href.startsWith("#")).forEach(p=>{const s=document.querySelector(p.href);s&&n.value.set(p.href,s)})},h=()=>{if(!t.autoActive||!t.items||n.value.size===0)return;const p=window.innerHeight,s=Math.ceil(p/5),d=window.scrollY+p,c=document.body.scrollHeight,u=t.items.filter(N=>N.href.startsWith("#")&&n.value.has(N.href)).map(N=>({href:N.href,element:n.value.get(N.href),item:N}));if(u.length===0)return;const C=u[0],D=u[u.length-1],v=C.element.offsetTop;let K="";if(d>=c)K=D.href;else if(window.scrollY<=v)K=C.href;else for(const N of u){const z=N.element.offsetHeight,B=N.element.offsetTop-s;if(window.scrollY>B&&window.scrollY<=B+z){K=N.href;break}}K&&K!==l.value&&(l.value=K)},y=()=>{if(!t.items)return;const p=t.items.find(s=>s.active);p?l.value=p.href:t.items.length>0&&(l.value=t.items[0].href)};e.onMounted(()=>{if(y(),t.autoActive){m(),h(),window.addEventListener("scroll",h,{passive:!0});const p=new MutationObserver(()=>{m()});p.observe(document.body,{childList:!0,subtree:!0}),e.onUnmounted(()=>{p.disconnect()})}}),e.onUnmounted(()=>{t.autoActive&&(window.removeEventListener("scroll",h),n.value.clear())});const b=()=>!t.caption&&!t.title?null:e.h("div",{class:"in-page-navigation-header"},[t.caption&&e.h("p",{class:"quick-caption"},t.caption),t.title&&e.h("p",{class:"quick-title"},t.title)]),g=()=>{if(!t.items)return null;const p=t.items.map(s=>{const d=l.value===s.href||!t.autoActive&&s.active;return e.h("li",{key:s.href},[e.h("a",{href:s.href,class:d?"active":"",onClick:c=>f(s,c),onKeydown:c=>{(c.key==="Enter"||c.key===" ")&&(c.preventDefault(),f(s,c))}},s.text)])});return e.h("nav",{class:"in-page-navigation-list"},[e.h("ul",{},p)])},w=()=>a.action?e.h("div",{class:"in-page-navigation-action"},[a.action()]):null;return()=>e.h("div",{class:o.value},[e.h("div",{class:"krds-in-page-navigation-area"},[b(),g(),w()].filter(Boolean))])}}),ft=["id"],mt={class:"page-links"},pt=["href","aria-current","onClick"],ht={key:0},yt=["aria-label"],ge=e.defineComponent({__name:"KrdsPagination",props:{modelValue:{default:1},min:{default:1},max:{},id:{default:void 0},ariaLabel:{default:"페이지 내비게이션"},pageRange:{default:8}},emits:["update:modelValue"],setup(t,{emit:i}){const a=t,l=i,n=e.computed(()=>Math.max(1,a.min)),o=e.computed(()=>a.modelValue??n.value),r=e.computed(()=>o.value<=n.value),f=e.computed(()=>o.value>=a.max),m=e.computed(()=>{if(!r.value)return"#"}),h=e.computed(()=>{if(!f.value)return"#"}),y=e.computed(()=>{const{pageRange:p,max:s}=a,d=1,c=[];if(s<=p+2*d)for(let u=n.value;u<=s;u++)c.push({type:"page",key:`page-${u}`,page:u,href:"#"});else{const u=Math.min(d,s),C=Math.max(s-d+1,1),D=Math.max(n.value,o.value-Math.floor(p/2)),v=Math.min(s,D+p-1),K=Math.max(n.value,v-p+1);for(let B=n.value;B<=u;B++)c.push({type:"page",key:`page-${B}`,page:B,href:"#"});K>u+1&&c.push({type:"ellipsis",key:"ellipsis-left",ariaLabel:"페이지 생략"});const N=Math.max(K,u+1),z=Math.min(v,C-1);for(let B=N;B<=z;B++)c.push({type:"page",key:`page-${B}`,page:B,href:"#"});v<C-1&&c.push({type:"ellipsis",key:"ellipsis-right",ariaLabel:"페이지 생략"});for(let B=C;B<=s;B++)c.push({type:"page",key:`page-${B}`,page:B,href:"#"})}return c}),b=(p,s)=>{if(p===o.value){s.preventDefault();return}l("update:modelValue",p)},g=p=>{if(r.value){p.preventDefault();return}const s=o.value-1;l("update:modelValue",s)},w=p=>{if(f.value){p.preventDefault();return}const s=o.value+1;l("update:modelValue",s)};return(p,s)=>{const d=e.resolveDirective("sr-only");return e.openBlock(),e.createElementBlock("div",{id:t.id,class:"krds-pagination"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value?"span":"a"),{href:r.value?void 0:m.value,class:e.normalizeClass(["page-navi","prev",{disabled:r.value}]),onClick:g},{default:e.withCtx(()=>[...s[0]||(s[0]=[e.createTextVNode(" 이전 ",-1)])]),_:1},8,["href","class"])),e.createElementVNode("div",mt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,c=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:c.key},[c.type==="page"?(e.openBlock(),e.createElementBlock("a",{key:0,href:c.href||"#",class:e.normalizeClass(["page-link",{active:c.page===o.value}]),"aria-current":c.page===o.value?"page":void 0,onClick:u=>b(c.page,u)},[c.page===o.value?e.withDirectives((e.openBlock(),e.createElementBlock("span",ht,[...s[1]||(s[1]=[e.createTextVNode("현재페이지",-1)])])),[[d]]):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(c.page),1)],10,pt)):c.type==="ellipsis"?(e.openBlock(),e.createElementBlock("span",{key:1,class:"page-link link-dot","aria-label":c.ariaLabel},null,8,yt)):e.createCommentVNode("",!0)],64))),128))]),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(f.value?"span":"a"),{href:f.value?void 0:h.value,class:e.normalizeClass(["page-navi","next",{disabled:f.value}]),onClick:w},{default:e.withCtx(()=>[...s[2]||(s[2]=[e.createTextVNode(" 다음 ",-1)])]),_:1},8,["href","class"]))],8,ft)}}}),gt={class:"inner help-panel-flexible"},kt={class:"help-panel-wrap"},bt={class:"help-conts-area"},ke=e.defineComponent({__name:"KrdsPanel",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:i}){const a=t,l=i,n=e.computed({get:()=>a.modelValue,set:f=>l("update:modelValue",f)}),o=()=>{n.value=!0},r=()=>{n.value=!1};return(f,m)=>(e.openBlock(),e.createElementBlock("div",gt,[e.createElementVNode("button",{type:"button",class:"krds-btn small tertiary btn-help-panel expand btn-help-exec",onClick:o},[...m[0]||(m[0]=[e.createElementVNode("i",{class:"svg-icon ico-fold"},null,-1),e.createTextVNode(" 도움말 ",-1)])]),e.createElementVNode("div",{class:e.normalizeClass(["krds-help-panel",{expand:n.value}])},[e.createElementVNode("div",kt,[e.createElementVNode("div",bt,[e.renderSlot(f.$slots,"default"),e.createElementVNode("button",{type:"button",class:"krds-btn small tertiary btn-help-panel fold",onClick:r},[...m[1]||(m[1]=[e.createElementVNode("span",{class:"sr-only"},"도움말",-1),e.createTextVNode(" 접어두기 ",-1),e.createElementVNode("i",{class:"svg-icon ico-angle right"},null,-1)])])])])],2)]))}}),St={class:"tooltip-action"},Ct={key:0,class:"svg-icon ico-help"},Et={key:1,class:"svg-icon ico-tooltip"},Vt={class:"tooltip-title"},wt={class:"tooltip-contents"},be=e.defineComponent({__name:"KrdsContextualHelp",props:{tooltipTitle:{default:"도움말 제목"},helpIcon:{type:Boolean},position:{default:"top left"}},setup(t){const i=t,a=e.ref(),l=e.ref(),n=e.ref(),o=e.ref(),r=e.ref(!1),f=()=>{const s=r.value;y(),s||m()},m=()=>{if(!n.value||!l.value)return;r.value=!0,n.value.style.display="block",l.value.setAttribute("aria-expanded","true"),n.value.querySelector('a, button, [tabindex="0"], input, textarea, select')?.focus(),b()},h=()=>{!n.value||!l.value||(r.value=!1,n.value.style.display="none",l.value.setAttribute("aria-expanded","false"))},y=()=>{const s=document.querySelectorAll(".krds-contextual-help .tooltip-popover"),d=document.querySelectorAll(".krds-contextual-help .tooltip-btn");s.forEach(c=>{c.style.display="none"}),d.forEach(c=>{c.setAttribute("aria-expanded","false")}),r.value=!1},b=()=>{if(!a.value||!n.value)return;const s=window.innerWidth<=768,d=a.value.querySelector(".tooltip-action");if(s){const u=getComputedStyle(document.querySelector(":root")).getPropertyValue("--krds-contents-padding-x").trim().split("px")[0],D=d.getBoundingClientRect().left-parseInt(u),v=document.body.clientWidth-parseInt(u)*2;n.value.style.left=`-${D}px`,n.value.style.width=`${v}px`}else n.value.style.left="",n.value.style.right="",n.value.style.width="360px"},g=s=>{(s.key==="Escape"||s.key==="Esc")&&y()},w=s=>{s.target.closest(".tooltip-action")||y()},p=()=>{r.value&&b()};return e.onMounted(()=>{a.value&&(l.value&&l.value.setAttribute("aria-expanded","false"),n.value&&n.value.setAttribute("role","tooltip"),document.addEventListener("keydown",g),document.addEventListener("click",w),window.addEventListener("resize",p))}),e.onUnmounted(()=>{document.removeEventListener("keydown",g),document.removeEventListener("click",w),window.removeEventListener("resize",p)}),(s,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:a,class:e.normalizeClass(["krds-contextual-help",i.position])},[e.createElementVNode("div",St,[e.createElementVNode("button",{ref_key:"tooltipBtnRef",ref:l,type:"button",class:"krds-btn medium icon tooltip-btn",onClick:f},[d[0]||(d[0]=e.createElementVNode("span",{class:"sr-only"},"도움말",-1)),i.helpIcon?(e.openBlock(),e.createElementBlock("i",Ct)):(e.openBlock(),e.createElementBlock("i",Et))],512),e.createElementVNode("div",{ref_key:"tooltipPopoverRef",ref:n,class:"tooltip-popover",role:"tooltip"},[e.createElementVNode("h4",Vt,e.toDisplayString(i.tooltipTitle),1),e.createElementVNode("div",wt,[e.renderSlot(s.$slots,"default")]),e.createElementVNode("button",{ref_key:"closeBtnRef",ref:o,type:"button",class:"krds-btn xsmall icon tooltip-close",onClick:h},[...d[1]||(d[1]=[e.createElementVNode("span",{class:"sr-only"},"닫기",-1),e.createElementVNode("i",{class:"svg-icon ico-modal-close"},null,-1)])],512)],512)])],2))}}),Bt={key:0,class:"coach-balloon"},Nt={class:"coach-tit"},vt={class:"desc"},Kt={class:"coach-controls"},Dt={class:"num"},xt={class:"btn-wrap"},Se=e.defineComponent({__name:"KrdsCoachMark",props:{coachMarkClass:{default:""},stepsData:{},activeStep:{},modelValue:{default:null},class:{},style:{},id:{}},emits:["update:modelValue","close"],setup(t,{emit:i}){const a=t,l=e.computed(()=>{const m=a.activeStep-1;return a.stepsData&&m>=0&&m<a.stepsData.length?a.stepsData[m]:null}),n=i,o=()=>{a.activeStep>1&&n("update:modelValue",a.activeStep-1)},r=()=>{a.activeStep<a.stepsData.length&&n("update:modelValue",a.activeStep+1)},f=()=>{n("close")};return(m,h)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["krds-coach-mark",t.coachMarkClass]),style:e.normalizeStyle(t.style)},[t.modelValue===t.activeStep&&l.value?(e.openBlock(),e.createElementBlock("div",Bt,[h[2]||(h[2]=e.createElementVNode("h5",{class:"sr-only"},"따라하기 가이드",-1)),e.createElementVNode("h6",Nt,e.toDisplayString(t.activeStep)+"단계 : "+e.toDisplayString(l.value.title),1),e.createElementVNode("p",vt,e.toDisplayString(l.value.description),1),e.createElementVNode("div",Kt,[e.createElementVNode("div",Dt,[h[0]||(h[0]=e.createElementVNode("span",{class:"sr-only"},"현재 단계",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.activeStep),1),h[1]||(h[1]=e.createElementVNode("span",{class:"sr-only"},"총 단계",-1)),e.createElementVNode("span",null,e.toDisplayString(t.stepsData.length),1)]),e.createElementVNode("div",xt,[e.createElementVNode("button",{type:"button",class:"krds-btn small text",onClick:f},"그만보기"),t.activeStep!==1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"krds-btn small text",onClick:o},"이전으로")):e.createCommentVNode("",!0),t.activeStep!==t.stepsData.length?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"krds-btn small tertiary",onClick:r},"다음으로")):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0),e.renderSlot(m.$slots,"coach-mark-content")],6))}}),$t=["disabled","aria-labelledby"],_t=["id","aria-hidden"],zt={class:"sr-only"},Ce=e.defineComponent({__name:"KrdsTooltip",props:{type:{default:"default"},tooltipContent:{},vertical:{type:Boolean},box:{type:Boolean},disabled:{type:Boolean,default:!1},class:{},style:{},id:{}},setup(t){const i=t,a=e.ref(null),l=e.ref(null),n=e.ref(!1),o=e.ref({}),r=e.ref(`tooltip-popover-${Math.random().toString(36).substring(2,9)}`),f=e.ref(!1),m=e.computed(()=>{const u=["krds-btn","krds-tooltip"];return i.type==="default"?u.push("small","text"):i.type==="icon"?u.push("icon"):i.type==="button"&&u.push(""),!i.box&&i.vertical&&u.push("tooltip-vertical"),i.box&&!i.vertical&&u.push("tooltip-box"),u.join(" ")}),h=e.computed(()=>{const u=[];return i.box&&u.push("tooltip-box"),i.vertical&&u.push("tooltip-vertical"),n.value&&u.push("active"),u}),y=e.computed(()=>a.value?.querySelector("button")?.textContent?.trim()||""),b=()=>window.innerWidth<=768,g=()=>{if(!a.value||!l.value)return;const u=a.value.querySelector("button");if(!u)return;const C=12,{clientHeight:D,clientWidth:v}=l.value,{top:K,left:N,right:z,height:B,width:L}=u.getBoundingClientRect(),F=window.innerWidth/2,j=window.innerHeight/2;let M,$;const _=[];f.value||i.box||i.vertical?(K+B>j?(M=K-D-C,_.push("top")):(M=K+B+C,_.push("bottom")),N+L>F?($=z-v,_.push("right"),window.innerWidth-(N+L)>v/2&&($=N+(L-v)/2,_.splice(_.indexOf("right"),1))):($=N+(L-v)/2,$<0&&($=N,_.push("left")))):(M=K+(B-D)/2,N+L>F?($=N-v-C,_.push("right")):$=z+C);const P=window.innerWidth<=420;o.value={top:`${M}px`,left:P?"50%":`${$}px`,transform:P?"translateX(-50%)":"none"},l.value&&(l.value.className=`krds-tooltip-popover ${_.join(" ")} ${h.value.join(" ")}`)},w=async()=>{i.disabled||!i.tooltipContent||(n.value=!0,await e.nextTick(),g())},p=()=>{n.value=!1,o.value={}},s=u=>{(u.key==="Escape"||u.key==="Esc")&&n.value&&p()},d=()=>{f.value=b(),n.value&&p()},c=()=>{n.value&&p()};return e.onMounted(()=>{f.value=b(),document.addEventListener("keydown",s),window.addEventListener("scroll",c),window.addEventListener("resize",d)}),e.onUnmounted(()=>{document.removeEventListener("keydown",s),window.removeEventListener("scroll",c),window.removeEventListener("resize",d)}),(u,C)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:a},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(m.value),disabled:t.disabled,"aria-labelledby":r.value,onMouseover:w,onMouseout:p,onFocusin:w,onFocusout:p},[e.renderSlot(u.$slots,"default")],42,$t),e.withDirectives(e.createElementVNode("div",{id:r.value,ref_key:"popoverRef",ref:l,class:e.normalizeClass(["krds-tooltip-popover",h.value]),style:e.normalizeStyle(o.value),"aria-hidden":!n.value,role:"tooltip"},[e.createElementVNode("span",zt,e.toDisplayString(y.value),1),e.createTextVNode(" "+e.toDisplayString(t.tooltipContent),1)],14,_t),[[e.vShow,n.value]])],512))}}),Lt=["aria-expanded"],It={class:"drop-in"},Tt={key:0,class:"drop-top"},Mt={key:1,class:"drop-list"},Rt=["lang","aria-selected","onClick"],At={class:"sr-only"},Ft={key:2,class:"drop-list"},Pt=["href","lang"],Ee=e.defineComponent({__name:"KrdsLanguageSwitcher",props:{languageList:{},modelValue:{default:""},type:{default:"default"},dropPosition:{default:"center"},class:{},style:{},id:{}},emits:["update:modelValue","close"],setup(t,{emit:i}){const a=t,l=i,n=e.ref(!1),o=e.ref(),r=e.ref(),f=()=>{n.value=!n.value,n.value&&o.value&&y()},m=()=>{n.value=!1},h=s=>{l("update:modelValue",s),m(),l("close"),r.value?.focus()},y=()=>{if(!o.value)return;const s=o.value.querySelector(".drop-menu");if(!s)return;const d=s.getBoundingClientRect(),c=window.innerWidth;o.value.classList.remove("drop-left","drop-right"),d.left<0?o.value.classList.add("drop-left"):c<d.left+d.width&&o.value.classList.add("drop-right")},b=s=>{s.key==="Escape"&&(m(),r.value?.focus())},g=s=>{o.value?.contains(s.target)||m()},w=s=>{o.value?.contains(s.relatedTarget)||m()},p=s=>{if(!o.value)return;o.value.querySelectorAll(".drop-list .item-link").forEach(u=>{u.style.position="relative",u.style.zIndex="0"});const c=s.target;c.style.zIndex="1"};return e.watch(n,s=>{s?(document.addEventListener("keydown",b),document.addEventListener("click",g)):(document.removeEventListener("keydown",b),document.removeEventListener("click",g))}),e.onUnmounted(()=>{document.removeEventListener("keydown",b),document.removeEventListener("click",g)}),(s,d)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:o,class:e.normalizeClass(["krds-drop-wrap krds-language",{active:n.value,"drop-left":a.dropPosition==="left","drop-right":a.dropPosition==="right"}]),onFocusout:w},[e.createElementVNode("button",{ref_key:"buttonRef",ref:r,type:"button",class:e.normalizeClass(["krds-btn small text drop-btn",{active:n.value}]),"aria-expanded":n.value,onClick:f},[d[0]||(d[0]=e.createElementVNode("i",{class:"svg-icon ico-global"},null,-1)),e.renderSlot(s.$slots,"default"),d[1]||(d[1]=e.createElementVNode("i",{class:"svg-icon ico-toggle"},null,-1))],10,Lt),e.createElementVNode("div",{class:"drop-menu",style:e.normalizeStyle({display:n.value?"block":"none"})},[e.createElementVNode("div",It,[s.$slots["prev-item"]?(e.openBlock(),e.createElementBlock("div",Tt,[e.renderSlot(s.$slots,"prev-item")])):e.createCommentVNode("",!0),a.type==="default"?(e.openBlock(),e.createElementBlock("ul",Mt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.languageList,c=>(e.openBlock(),e.createElementBlock("li",{key:c.code},[e.createElementVNode("a",{href:"#",class:e.normalizeClass(["item-link",{active:a.modelValue===c.code}]),lang:c.code,"aria-selected":a.modelValue===c.code,onClick:e.withModifiers(u=>h(c.code),["prevent"]),onFocus:p},[e.createTextVNode(e.toDisplayString(c.name)+" ",1),e.createElementVNode("span",At,e.toDisplayString(a.modelValue===c.code?"선택됨":""),1)],42,Rt)]))),128))])):a.type==="external"?(e.openBlock(),e.createElementBlock("ul",Ft,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.languageList,c=>(e.openBlock(),e.createElementBlock("li",{key:c.code},[e.createElementVNode("a",{href:c.url||"#",class:"item-link",lang:c.code,target:"_blank",title:"새 창 열림",onFocus:p},[e.createTextVNode(e.toDisplayString(c.name)+" ",1),d[2]||(d[2]=e.createElementVNode("i",{class:"svg-icon ico-go"},null,-1))],40,Pt)]))),128))])):e.createCommentVNode("",!0)])],4)],34))}}),Ot={class:"drop-in"},qt={class:"drop-list"},Ht=["data-adjust-scale","onClick"],jt={class:"drop-bottom"},Ve=e.defineComponent({__name:"KrdsResize",emits:["update:modelValue","close"],setup(t,{emit:i}){const a=i,l=e.ref(!1),n=e.ref(),o=e.ref(),r=e.ref("md"),f=[{key:"sm",label:"작게",zoom:"0.9"},{key:"md",label:"보통",zoom:"1"},{key:"lg",label:"조금 크게",zoom:"1.1"},{key:"xlg",label:"크게",zoom:"1.3"},{key:"xxlg",label:"가장 크게",zoom:"1.5"}],m=()=>{l.value=!l.value,l.value&&n.value&&g()},h=()=>{l.value=!1},y=c=>{h(),a("close"),o.value?.focus(),r.value=c.key,document.body.style.zoom=c?.zoom},b=()=>{const c=f.find(u=>u.key==="md");c&&y(c)},g=()=>{if(!n.value)return;const c=n.value.querySelector(".drop-menu");if(!c)return;const u=c.getBoundingClientRect(),C=window.innerWidth;n.value.classList.remove("drop-left","drop-right"),u.left<0?n.value.classList.add("drop-left"):C<u.left+u.width&&n.value.classList.add("drop-right")},w=c=>{c.key==="Escape"&&(h(),o.value?.focus())},p=c=>{n.value?.contains(c.target)||h()},s=c=>{n.value?.contains(c.relatedTarget)||h()},d=c=>{if(!n.value)return;n.value.querySelectorAll(".drop-list .item-link").forEach(D=>{D.style.position="relative",D.style.zIndex="0"});const C=c.target;C.style.zIndex="1"};return e.watch(l,c=>{c?(document.addEventListener("keydown",w),document.addEventListener("click",p)):(document.removeEventListener("keydown",w),document.removeEventListener("click",p))}),e.onUnmounted(()=>{document.removeEventListener("keydown",w),document.removeEventListener("click",p)}),(c,u)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:n,class:"krds-drop-wrap krds-resize","data-adjust":"scale",onFocusout:s},[e.createElementVNode("button",{ref_key:"buttonRef",ref:o,type:"button",class:"krds-btn small text drop-btn",onClick:m},[...u[0]||(u[0]=[e.createTextVNode(" 화면크기 ",-1),e.createElementVNode("i",{class:"svg-icon ico-toggle"},null,-1)])],512),e.createElementVNode("div",{class:"drop-menu",style:e.normalizeStyle({display:l.value?"block":"none"})},[e.createElementVNode("div",Ot,[e.createElementVNode("ul",qt,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(f,C=>e.createElementVNode("li",{key:C.key},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["item-link",[C.key,C.key===r.value?"active":""]]),"data-adjust-scale":C.key,onClick:e.withModifiers(D=>y(C),["prevent"]),onFocus:d},e.toDisplayString(C.label),43,Ht)])),64))]),e.createElementVNode("div",jt,[e.createElementVNode("button",{type:"button",class:"krds-btn medium text","data-adjust-scale":"md",onClick:e.withModifiers(b,["prevent"]),onFocus:d},[...u[1]||(u[1]=[e.createElementVNode("i",{class:"svg-icon ico-reset"},null,-1),e.createTextVNode(" 초기화 ",-1)])],32)])])],4)],544))}}),we=e.defineComponent({name:"KrdsModal",props:{modelValue:{type:Boolean,default:!1},modalId:{type:String,default:void 0},backdrop:{type:Boolean,default:!0},size:{type:String,default:"medium"},full:{type:Boolean,default:!1},bottomSheet:{type:Boolean,default:!1},persistent:{type:Boolean,default:!1}},emits:["update:modelValue"],slots:Object,setup(t,{slots:i,emit:a}){const l=e.getCurrentInstance()?.uid,n=e.computed(()=>t.modalId??`krds-modal-${l}`),o=e.computed({get:()=>t.modelValue,set:d=>a("update:modelValue",d)}),r=e.computed(()=>`tit_${n.value}`),f=e.computed(()=>({small:"modal-sm",medium:"modal-md",large:"modal-lg"})[t.size]),m=()=>{o.value=!1};let h="",y=null;const b=e.ref(null),g=d=>Array.from(d.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter(u=>!u.hasAttribute("disabled")&&u.getAttribute("tabindex")!=="-1"),w=d=>{if(!b.value||d.key!=="Tab")return;const c=g(b.value);if(c.length===0){d.preventDefault();return}const u=c[0],C=c[c.length-1];d.shiftKey&&document.activeElement===u?(d.preventDefault(),C.focus()):!d.shiftKey&&document.activeElement===C&&(d.preventDefault(),u.focus())},p=d=>{d.key==="Escape"&&!t.persistent&&m()},s=()=>{document.body.style.overflow=h,document.removeEventListener("keydown",w),document.removeEventListener("keydown",p),y&&(y.focus(),y=null),b.value=null};return e.watch(()=>t.modelValue,async d=>{if(d){h=document.body.style.overflow,document.body.style.overflow="hidden",y=document.activeElement,await e.nextTick();const c=document.getElementById(n.value);if(c){b.value=c;const u=c.querySelector(".modal-conts");u&&(u.setAttribute("tabindex","-1"),u.focus()),document.addEventListener("keydown",w),document.addEventListener("keydown",p)}}else s()},{immediate:!0}),e.onBeforeUnmount(()=>{t.modelValue&&s()}),()=>{if(!o.value)return null;const d={id:n.value,class:"krds-modal fade in shown",role:"dialog","aria-modal":!0,"aria-labelledby":r.value};return t.full?d["data-type"]="full":t.bottomSheet&&(d["data-type"]="bottom-sheet"),e.h(e.Teleport,{to:"body"},e.h("section",d,[e.h("div",{class:`modal-dialog ${f.value}`},[e.h("div",{class:"modal-content"},[i.title?e.h("div",{class:"modal-header"},[e.h("h2",{id:r.value,class:"modal-title"},i.title())]):null,e.h("div",{class:"modal-conts"},[e.h("div",{class:"conts-area"},i.default?.())]),i.footer?e.h("div",{class:"modal-btn btn-wrap"},i.footer()):null,e.h("button",{type:"button",class:"krds-btn medium icon btn-close close-modal",onClick:m},[e.h("span",{class:"sr-only"},"닫기"),e.h("i",{class:"svg-icon ico-popup-close"})])].filter(Boolean))]),e.h("div",{class:t.backdrop?"modal-back in":"modal-back",onClick:t.persistent?void 0:m})]))}}}),Be=e.defineComponent({name:"KrdsAccordionGroup",props:{typeLine:{type:Boolean,default:!1},class:{type:String,default:void 0}},setup(t,{slots:i}){const a=e.computed(()=>{const l=["krds-accordion"];return t.typeLine&&l.push("type-line"),t.class&&l.push(t.class),l});return()=>e.h("div",{class:a.value},i.default?.())}}),Wt=["id"],Yt={class:"accordion-header"},Gt=["id","aria-expanded","aria-controls"],Ut=["id","aria-labelledby"],Xt={class:"accordion-body"},Ne=e.defineComponent({__name:"KrdsAccordionItem",props:{id:{},openItem:{},title:{},content:{}},emits:["toggle"],setup(t,{emit:i}){const a=t,l=i,n=e.computed(()=>a.openItem===a.id),o=()=>{l("toggle",a.id)};return(r,f)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(["accordion-item",{active:n.value}])},[e.createElementVNode("h5",Yt,[e.createElementVNode("button",{id:`accordion-header-${t.id}`,type:"button",class:"btn-accordion","aria-expanded":n.value,"aria-controls":`accordion-collapse-${t.id}`,onClick:f[0]||(f[0]=m=>o())},[e.renderSlot(r.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,Gt)]),e.createElementVNode("div",{id:`accordion-collapse-${t.id}`,class:"accordion-collapse collapse","aria-labelledby":`accordion-header-${t.id}`},[e.createElementVNode("div",Xt,[e.renderSlot(r.$slots,"content",{},()=>[e.createTextVNode(e.toDisplayString(t.content),1)])])],8,Ut)],10,Wt))}}),ve=Object.freeze(Object.defineProperty({__proto__:null,KrdsAccordionGroup:Be,KrdsAccordionItem:Ne,KrdsBadge:ae,KrdsBreadcrumb:he,KrdsButton:O,KrdsButtonGroup:Y,KrdsCheckArea:ce,KrdsCheckbox:de,KrdsCoachMark:Se,KrdsContextualHelp:be,KrdsDateInput:ee,KrdsFileUpload:le,KrdsFormGroup:Z,KrdsFormHint:Q,KrdsFormLabel:J,KrdsIcon:G,KrdsInPageNavigation:ye,KrdsInput:X,KrdsLanguageSwitcher:Ee,KrdsLink:U,KrdsMasthead:ie,KrdsModal:we,KrdsPagination:ge,KrdsPanel:ke,KrdsRadio:ue,KrdsResize:Ve,KrdsSelect:ne,KrdsSkipLink:pe,KrdsSpinner:q,KrdsStep:me,KrdsStepIndicator:fe,KrdsTag:oe,KrdsTagGroup:se,KrdsTextarea:te,KrdsToggleSwitch:re,KrdsTooltip:Ce},Symbol.toStringTag,{value:"Module"})),H={mounted(t,i){i.value!==!1&&t.classList.add("sr-only")},updated(t,i){i.value===!1?t.classList.remove("sr-only"):t.classList.add("sr-only")},unmounted(t){t.classList.remove("sr-only")}},Ke={"sr-only":H},De=t=>{t.directive("sr-only",H)},xe=Object.freeze(Object.defineProperty({__proto__:null,default:Ke,directives:Ke,installDirectives:De,vSrOnly:H},Symbol.toStringTag,{value:"Module"})),Jt={install(t,i={}){t.provide("krds:config",i);const a=i.components||Object.keys(ve);a.forEach(l=>{const n=ve[l];n&&t.component(l,n)}),typeof xe=="object"&&xe!==null&&De(t),t.config.globalProperties.$krds={version:"__VERSION__"},process.env.NODE_ENV!=="production"&&console.log(`[KRDS Vue] v__VERSION__ 설치 완료 - 컴포넌트: ${a.length}개`)}},Qt="__VERSION__";k.KrdsAccordionGroup=Be,k.KrdsAccordionItem=Ne,k.KrdsBadge=ae,k.KrdsBreadcrumb=he,k.KrdsButton=O,k.KrdsButtonGroup=Y,k.KrdsCheckArea=ce,k.KrdsCheckbox=de,k.KrdsCoachMark=Se,k.KrdsContextualHelp=be,k.KrdsDateInput=ee,k.KrdsFileUpload=le,k.KrdsFormGroup=Z,k.KrdsFormHint=Q,k.KrdsFormLabel=J,k.KrdsIcon=G,k.KrdsInPageNavigation=ye,k.KrdsInput=X,k.KrdsLanguageSwitcher=Ee,k.KrdsLink=U,k.KrdsMasthead=ie,k.KrdsModal=we,k.KrdsPagination=ge,k.KrdsPanel=ke,k.KrdsRadio=ue,k.KrdsResize=Ve,k.KrdsSelect=ne,k.KrdsSkipLink=pe,k.KrdsSpinner=q,k.KrdsStep=me,k.KrdsStepIndicator=fe,k.KrdsTag=oe,k.KrdsTagGroup=se,k.KrdsTextarea=te,k.KrdsToggleSwitch=re,k.KrdsTooltip=Ce,k.classNames=A,k.default=Jt,k.generateId=R,k.generateUid=it,k.version=Qt,Object.defineProperties(k,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(S,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(S=typeof globalThis<"u"?globalThis:S||self,e(S.KrdsVue={},S.Vue))})(this,(function(S,e){"use strict";const q=e.defineComponent({name:"KrdsButton",props:{type:{type:String,default:"button"},size:{type:String,default:void 0},variant:{type:String,default:"primary"},icon:{type:Boolean,default:!1},border:{type:Boolean,default:!1},pure:{type:Boolean,default:!1},text:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:o,slots:a}){const l=e.computed(()=>{const s=["krds-btn"];return t.icon&&s.push("icon"),t.border&&s.push("border"),t.pure&&s.push("pure"),t.text&&s.push("text"),t.variant&&!t.icon&&s.push(t.variant),t.size&&s.push(t.size),t.class&&s.push(t.class),s}),n=s=>{t.disabled||o("click",s)};return()=>e.h("button",{type:t.type,class:l.value,disabled:t.disabled,onClick:n},a.default?.())}}),Y=e.defineComponent({name:"KrdsButtonGroup",props:{},setup(t,{slots:o}){return()=>e.h("div",{class:"btn-group"},o.default?.())}}),G=e.defineComponent({name:"KrdsIcon",props:{name:{type:String,required:!0},class:{type:String,default:void 0}},setup(t){return()=>e.h("i",{class:["svg-icon",t.name,t.class].filter(Boolean).join(" ")})}}),U=e.defineComponent({name:"KrdsLink",props:{href:{type:String,default:"#!"},target:{type:String,default:void 0},title:{type:String,default:void 0},size:{type:String,default:void 0},link:{type:Boolean,default:!0},basic:{type:Boolean,default:!1},pure:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:o,slots:a}){const l=e.computed(()=>{const r=["krds-btn"];return t.size&&r.push(t.size),t.link&&r.push("link"),t.basic&&r.push("basic"),t.pure&&r.push("pure"),t.class&&r.push(t.class),r}),n=e.computed(()=>{const r={href:t.href,class:l.value};return t.target&&(r.target=t.target),t.title&&(r.title=t.title),t.target==="_blank"&&(r.rel="noopener noreferrer"),r}),s=r=>{o("click",r)};return()=>e.h("a",{...n.value,onClick:s},a.default?.())}}),H=e.defineComponent({name:"KrdsSpinner",props:{label:{type:String,default:void 0}},render(){const t=[e.h("span",{class:"sr-only"},"로딩 중")];return this.label&&t.push(e.h("span",this.label)),e.h("div",{class:"krds-spinner",role:"status"},t)}}),X=e.defineComponent({name:"KrdsInput",props:{modelValue:{type:[String,Number],default:void 0},type:{type:String,default:"text"},size:{type:String,default:void 0},placeholder:{type:String,default:void 0},maxlength:{type:Number,default:void 0},minlength:{type:Number,default:void 0},max:{type:Number,default:void 0},min:{type:Number,default:void 0},step:{type:Number,default:void 0},autocomplete:{type:String,default:void 0},autofocus:{type:Boolean,default:!1},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},error:{type:String,default:void 0},state:{type:String,default:"default"},icon:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","input","change","focus","blur","keydown","keyup"],setup(t,{emit:o,slots:a}){const l=e.computed(()=>{const b=["krds-input"];return t.size&&b.push(t.size),t.class&&b.push(t.class),b}),n=b=>{const v=b.target,h=t.type==="number"?Number(v.value):v.value;o("update:modelValue",h),o("input",b)},s=b=>{o("change",b)},r=b=>{o("focus",b)},m=b=>{o("blur",b)},c=b=>{o("keydown",b)},g=b=>{o("keyup",b)},y=e.computed(()=>{const b={type:t.type,class:l.value,value:t.modelValue,placeholder:t.placeholder,name:t.name,id:t.id,required:t.required,readonly:t.readonly,disabled:t.disabled,autocomplete:t.autocomplete,autofocus:t.autofocus,onInput:n,onChange:s,onFocus:r,onBlur:m,onKeydown:c,onKeyup:g};return t.maxlength!==void 0&&(b.maxlength=t.maxlength),t.minlength!==void 0&&(b.minlength=t.minlength),t.type==="number"&&(t.max!==void 0&&(b.max=t.max),t.min!==void 0&&(b.min=t.min),t.step!==void 0&&(b.step=t.step)),b}),C=e.computed(()=>{const b=["form-conts"];return t.state!=="default"&&b.push(`is-${t.state}`),t.icon&&b.push("btn-ico-wrap"),b});return()=>{const b=[e.h("input",y.value)];return t.loading?e.h("div",{class:C.value},[e.h("div",{class:"form-spinner"},[...b,e.h(H)])]):(a.default&&b.push(...a.default()),e.h("div",{class:C.value},b))}}}),J=e.defineComponent({name:"KrdsFormLabel",props:{for:{type:String,default:void 0},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["click"],setup(t,{emit:o,slots:a}){const l=n=>{o("click",n)};return()=>e.h("div",{class:"form-tit"},[e.h("label",{for:t.for,id:t.id,class:t.class,style:t.style,onClick:l},a.default?.())])}}),Q=e.defineComponent({name:"KrdsFormHint",props:{type:{type:String,default:"hint"},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["click"],setup(t,{emit:o,slots:a}){const l=s=>{o("click",s)},n=()=>{let s;switch(t.type){case"error":s="form-hint-invalid";break;case"success":s="form-hint-success";break;case"information":s="form-hint-information";break;default:s="form-hint";break}return t.class?`${s} ${t.class}`:s};return()=>e.h("p",{id:t.id,class:n(),style:t.style,onClick:l},a.default?.())}}),Z=e.defineComponent({name:"KrdsFormGroup",props:{class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},setup(t,{slots:o}){const a=e.computed(()=>{const l=["form-group"];return t.class&&l.push(t.class),l});return()=>e.h("div",{id:t.id,class:a.value,style:t.style},o.default?.())}});function Te(t,o){const a=new Date,l=e.ref(t||a.getFullYear()),n=e.ref(o||a.getMonth()+1),s=e.ref(null),r=e.ref(null),m=e.ref(null),c=e.computed(()=>{const u=a.getFullYear(),d=[];for(let f=u-10;f<=u+10;f++)d.push(f);return d}),g=e.computed(()=>Array.from({length:12},(u,d)=>d+1)),y=()=>{s.value=null,r.value=null},C=()=>{n.value===1?(n.value=12,l.value-=1):n.value-=1},b=()=>{n.value===12?(n.value=1,l.value+=1):n.value+=1},v=(u,d=!1)=>{if(d)s.value=u,r.value=u;else if(!s.value||s.value&&r.value)s.value=u,r.value=null;else{const f=new Date(s.value.replace(/\./g,"-"));new Date(u.replace(/\./g,"-"))<f?(s.value=u,r.value=null):r.value=u}};return{currentYear:l,currentMonth:n,selectedStartDate:s,selectedEndDate:r,activeDateSelector:m,yearOptions:c,monthOptions:g,clearDateSelection:y,prevMonth:C,nextMonth:b,handleDateSelection:v,selectToday:()=>{const u=`${a.getFullYear()}.${String(a.getMonth()+1).padStart(2,"0")}.${String(a.getDate()).padStart(2,"0")}`;v(u,!0)},isDateInSelectedRange:u=>{if(!s.value||!r.value)return{isInRange:!1,isStart:!1,isEnd:!1};const d=new Date(u.replace(/\./g,"-")),f=new Date(s.value.replace(/\./g,"-")),w=new Date(r.value.replace(/\./g,"-")),z=u===s.value,x=u===r.value;return{isInRange:d>=f&&d<=w,isStart:z,isEnd:x}}}}function Me(t,o,a={}){let l=null;const n=typeof a=="string"?{ignore:a}:a,{ignore:s,event:r="click"}=n,m=()=>{l=g=>{const y=g.target;t.value?.contains(y)||s&&y.closest(s)||o()},document.addEventListener(r,l)},c=()=>{if(l){const g=typeof a=="string"?"click":a.event||"click";document.removeEventListener(g,l),l=null}};return e.onMounted(()=>{m()}),e.onBeforeUnmount(()=>{c()}),{setupGlobalListeners:m,removeGlobalListeners:c}}const Fe={class:"form-conts"},Re={class:"calendar-input"},Ae=["id","name","placeholder","value","readonly","disabled","required","autofocus"],Pe=["disabled","aria-expanded"],Oe={class:"calendar-head"},qe={class:"calendar-switch-wrap"},He={class:"calendar-drop-down"},je=["aria-expanded"],We={class:"calendar-select calendar-year-wrap"},Ye={class:"sel year"},Ge=["onClick"],Ue={class:"calendar-drop-down"},Xe=["aria-expanded"],Je={class:"calendar-select calendar-mon-wrap"},Qe={class:"sel month"},Ze=["onClick"],et={class:"calendar-body"},tt={class:"calendar-table-wrap"},nt={class:"calendar-tbl"},lt=["data-date"],at=["aria-pressed","onClick"],ot={class:"calendar-footer"},st={class:"calendar-btn-wrap"},ee=e.defineComponent({__name:"KrdsDateInput",props:{modelValue:{default:void 0},size:{default:"medium"},placeholder:{default:"YYYY.MM.DD"},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},eventDates:{default:()=>[]},holidays:{default:()=>[]},initialYear:{default:void 0},initialMonth:{default:void 0},name:{default:void 0},required:{type:Boolean,default:!1},class:{default:void 0},style:{},id:{default:void 0}},emits:["update:modelValue","input","change","focus","blur"],setup(t,{emit:o}){const a=t,l=o,n=e.ref(),s=e.ref(),r=e.ref(!1),m=e.ref(null),{currentYear:c,currentMonth:g,selectedStartDate:y,selectedEndDate:C,yearOptions:b,monthOptions:v,prevMonth:h,nextMonth:i,handleDateSelection:u,selectToday:d,isDateInSelectedRange:f}=Te(a.initialYear,a.initialMonth),w=()=>{r.value&&s.value?.focus(),r.value=!1,m.value=null};Me(n,w,".calendar-conts");const z=e.computed(()=>{const E=["krds-input","datepicker","cal"];return a.size&&E.push(a.size),a.class&&E.push(a.class),E}),x=e.computed(()=>["form-conts","calendar-conts"]),D=e.computed(()=>({"krds-calendar-area":!0,active:r.value})),N=e.computed(()=>{const E=c.value,V=g.value,B=new Date(E,V-1,1),R=new Date(B);R.setDate(R.getDate()-B.getDay());const F=[],L=new Date(R);for(let W=0;W<6;W++){const _e=[];for(let Le=0;Le<7;Le++){const an=`${L.getFullYear()}.${String(L.getMonth()+1).padStart(2,"0")}.${String(L.getDate()).padStart(2,"0")}`,Ie=L.getDay();_e.push({day:L.getDate(),dateString:an,isCurrentMonth:L.getMonth()===V-1,isToday:L.toDateString()===new Date().toDateString(),isPrevMonth:L.getMonth()<V-1||L.getMonth()===11&&V===1,isNextMonth:L.getMonth()>V-1||L.getMonth()===0&&V===12,isSunday:Ie===0,isSaturday:Ie===6}),L.setDate(L.getDate()+1)}F.push(_e)}return F}),p=E=>{const V=[];if(E.isPrevMonth&&V.push("old"),E.isNextMonth&&V.push("new"),E.isToday&&V.push("today"),E.isSunday&&V.push("day-off"),a.holidays?.includes(E.dateString)&&V.push("day-off"),a.eventDates?.includes(E.dateString)&&V.push("day-event"),E.isCurrentMonth){const B=f(E.dateString);B.isInRange&&(V.push("period"),B.isStart&&V.push("start"),B.isEnd&&V.push("end"))}return V},k=e.computed(()=>[{id:"get-today",label:"오늘",class:"text",variant:void 0,size:"small",handler:d},{id:"cancel-btn",label:"취소",class:void 0,variant:"tertiary",size:"small",handler:w},{id:"confirm-btn",label:"확인",class:void 0,variant:"primary",size:"small",handler:T}]),K=E=>{m.value===E?m.value=null:m.value=E},_=E=>{c.value=E,m.value=null},$=E=>{g.value=E,m.value=null},T=()=>{if(y.value){if(C.value&&y.value!==C.value){const E=`${y.value} ~ ${C.value}`;l("update:modelValue",E)}else l("update:modelValue",y.value);w()}},I=()=>{r.value=!0,m.value=null,setTimeout(()=>{n.value?.querySelector(".calendar-wrap")?.focus()},50)},M=()=>{r.value?w():I()},ze=E=>{E.code==="Escape"&&(m.value?m.value=null:r.value&&w())},O=E=>{const V=E.target;l("update:modelValue",V.value),l("input",E)},tn=E=>{l("change",E)},nn=E=>{l("focus",E)},ln=E=>{l("blur",E)};return(E,V)=>(e.openBlock(),e.createElementBlock("div",Fe,[e.createElementVNode("div",{class:e.normalizeClass(x.value)},[e.createElementVNode("div",Re,[e.createElementVNode("input",{id:t.id,name:t.name,class:e.normalizeClass(z.value),placeholder:t.placeholder,value:t.modelValue,readonly:t.readonly,disabled:t.disabled,required:t.required,autofocus:t.autofocus,type:"text",onInput:O,onChange:tn,onFocus:nn,onBlur:ln},null,42,Ae),e.createElementVNode("button",{ref_key:"datePickerButtonRef",ref:s,class:e.normalizeClass(`krds-btn ${t.size||"medium"} icon form-btn-datepicker`),disabled:t.disabled,"aria-expanded":r.value,type:"button",onClick:M},[...V[4]||(V[4]=[e.createElementVNode("span",{class:"sr-only"},"달력 열기",-1),e.createElementVNode("i",{class:"svg-icon ico-calendar"},null,-1)])],10,Pe)]),e.createElementVNode("div",{ref_key:"datePickerAreaRef",ref:n,class:e.normalizeClass(D.value)},[e.withDirectives(e.createElementVNode("div",{class:"calendar-wrap bottom","aria-label":"달력",tabindex:"0",onKeydown:ze},[e.createElementVNode("div",Oe,[e.createElementVNode("button",{type:"button",class:"btn-cal-move prev",onClick:V[0]||(V[0]=(...B)=>e.unref(h)&&e.unref(h)(...B))},[...V[5]||(V[5]=[e.createElementVNode("span",{class:"sr-only"},"이전 달",-1)])]),e.createElementVNode("div",qe,[e.createElementVNode("div",He,[e.createElementVNode("button",{type:"button",class:"btn-cal-switch year","aria-label":"연도 선택","aria-expanded":m.value==="year",onClick:V[1]||(V[1]=B=>K("year"))},e.toDisplayString(e.unref(c))+"년 ",9,je),e.withDirectives(e.createElementVNode("div",We,[e.createElementVNode("ul",Ye,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(b),B=>(e.openBlock(),e.createElementBlock("li",{key:B},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:B===e.unref(c)}),onClick:R=>_(B)},e.toDisplayString(B)+"년",11,Ge)]))),128))])],512),[[e.vShow,m.value==="year"]])]),e.createElementVNode("div",Ue,[e.createElementVNode("button",{type:"button",class:"btn-cal-switch month","aria-label":"월 선택","aria-expanded":m.value==="month",onClick:V[2]||(V[2]=B=>K("month"))},e.toDisplayString(e.unref(g).toString().padStart(2,"0"))+"월 ",9,Xe),e.withDirectives(e.createElementVNode("div",Je,[e.createElementVNode("ul",Qe,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(v),B=>(e.openBlock(),e.createElementBlock("li",{key:B},[e.createElementVNode("button",{type:"button",class:e.normalizeClass({active:B===e.unref(g)}),onClick:R=>$(B)},e.toDisplayString(B.toString().padStart(2,"0"))+"월 ",11,Ze)]))),128))])],512),[[e.vShow,m.value==="month"]])])]),e.createElementVNode("button",{type:"button",class:"btn-cal-move next",onClick:V[3]||(V[3]=(...B)=>e.unref(i)&&e.unref(i)(...B))},[...V[6]||(V[6]=[e.createElementVNode("span",{class:"sr-only"},"다음 달",-1)])])]),e.createElementVNode("div",et,[e.createElementVNode("div",tt,[e.createElementVNode("table",nt,[e.createElementVNode("caption",null,e.toDisplayString(e.unref(c))+"년 "+e.toDisplayString(e.unref(g).toString().padStart(2,"0"))+"월",1),V[7]||(V[7]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"일"),e.createElementVNode("th",null,"월"),e.createElementVNode("th",null,"화"),e.createElementVNode("th",null,"수"),e.createElementVNode("th",null,"목"),e.createElementVNode("th",null,"금"),e.createElementVNode("th",null,"토")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,(B,R)=>(e.openBlock(),e.createElementBlock("tr",{key:R},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(B,(F,L)=>(e.openBlock(),e.createElementBlock("td",{key:L,class:e.normalizeClass(p(F)),"data-date":F.dateString},[e.createElementVNode("button",{type:"button",class:"btn-set-date","aria-pressed":e.unref(f)(F.dateString).isInRange?"true":"false",onClick:W=>e.unref(u)(F.dateString)},[e.createElementVNode("span",null,e.toDisplayString(F.day),1)],8,at)],10,lt))),128))]))),128))])])])]),e.createElementVNode("div",ot,[e.createElementVNode("div",st,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value,B=>(e.openBlock(),e.createBlock(e.unref(q),{id:B.id,key:B.id,class:e.normalizeClass(B.class),variant:B.variant,size:B.size,onClick:B.handler},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(B.label),1)]),_:2},1032,["id","class","variant","size","onClick"]))),128))])])],544),[[e.vShow,r.value]])],2)],2)]))}}),te=e.defineComponent({name:"KrdsTextarea",props:{modelValue:{type:String,default:""},size:{type:String,default:void 0},placeholder:{type:String,default:void 0},maxlength:{type:Number,default:void 0},minlength:{type:Number,default:void 0},rows:{type:Number,default:4},cols:{type:Number,default:void 0},autofocus:{type:Boolean,default:!1},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},showCount:{type:Boolean,default:!0},resize:{type:String,default:"vertical"},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","input","change","focus","blur","keydown","keyup"],setup(t,{emit:o}){const a=e.ref(0);e.watch(()=>t.modelValue,i=>{a.value=(i||"").length},{immediate:!0});const l=e.computed(()=>{const i=["krds-input"];return t.size&&i.push(t.size),t.class&&i.push(t.class),i}),n=e.computed(()=>{const i={};return t.resize&&(i.resize=t.resize),i}),s=i=>{const d=i.target.value;a.value=d.length,o("update:modelValue",d),o("input",i)},r=i=>{o("change",i)},m=i=>{o("focus",i)},c=i=>{o("blur",i)},g=i=>{o("keydown",i)},y=i=>{o("keyup",i)},C=e.computed(()=>{const i={class:l.value,style:n.value,value:t.modelValue,placeholder:t.placeholder,name:t.name,id:t.id,required:t.required,readonly:t.readonly,disabled:t.disabled,autofocus:t.autofocus,rows:t.rows,cols:t.cols,onInput:s,onChange:r,onFocus:m,onBlur:c,onKeydown:g,onKeyup:y};return t.maxlength!==void 0&&(i.maxlength=t.maxlength),t.minlength!==void 0&&(i.minlength=t.minlength),i}),b=e.computed(()=>["form-conts"]),v=e.computed(()=>["textarea-wrap"]),h=e.computed(()=>{if(!t.showCount)return null;const i=a.value,u=t.maxlength;return{current:i,max:u||""}});return()=>{const i=[e.h("textarea",C.value)];return h.value&&i.push(e.h("p",{class:"textarea-count"},[e.h("span",{class:"count-now"},h.value.current),e.h("span",{class:"count-total"},h.value.max?`/${h.value.max}`:"")])),e.h("div",{class:b.value},[e.h("div",{class:v.value},i)])}}}),ne=e.defineComponent({name:"KrdsSelect",props:{modelValue:{type:[String,Number,null],default:null},size:{type:String,default:"medium"},title:{type:String,default:void 0},options:{type:Array,default:()=>[]},placeholder:{type:String,default:"선택"},name:{type:String,default:void 0},disabled:{type:Boolean,default:!1},state:{type:String,default:"default"},sort:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","focus","blur"],setup(t,{emit:o,slots:a}){const l=e.computed(()=>{const y=[];return t.sort?y.push("krds-form-select-sort"):y.push("krds-form-select"),t.size&&y.push(t.size),t.class&&y.push(t.class),y}),n=y=>{const C=y.target,b=C.value===""?null:C.value;o("update:modelValue",b)},s=y=>{o("focus",y)},r=y=>{o("blur",y)},m=e.computed(()=>({class:l.value,value:t.modelValue??"",title:t.title||t.placeholder,name:t.name,id:t.id,disabled:t.disabled||t.readonly,onChange:n,onFocus:s,onBlur:r})),c=e.computed(()=>{const y=["form-conts"];return t.state!=="default"&&y.push(`is-${t.state}`),y}),g=()=>{const y=[];return t.placeholder&&!t.modelValue&&y.push(e.h("option",{value:"",disabled:!0,selected:!0},t.placeholder)),t.options&&t.options.length>0&&t.options.forEach(C=>{y.push(e.h("option",{value:C.value,disabled:C.disabled,selected:C.value===t.modelValue},C.label))}),a.default&&y.push(...a.default()),y};return()=>{const y=e.h("select",m.value,g());return t.sort?y:e.h("div",{class:c.value},[y])}}});let it=0;const le=e.defineComponent({name:"KrdsFileUpload",props:{modelValue:{type:Array,default:()=>[]},size:{type:String,default:"medium"},accept:{type:String,default:void 0},maxFiles:{type:Number,default:10},maxFileSize:{type:Number,default:20*1024*1024},multiple:{type:Boolean,default:!0},disabled:{type:Boolean,default:!1},dragAndDrop:{type:Boolean,default:!0},title:{type:String,default:"타이틀영역"},description:{type:String,default:"컨텐츠 영역"},placeholder:{type:String,default:"첨부할 파일을 여기에 끌어다 놓거나, 파일 선택 버튼을 눌러 파일을 직접 선택해주세요."},showPreview:{type:Boolean,default:!0},showDownload:{type:Boolean,default:!0},showPreviewButton:{type:Boolean,default:!0},showClearAll:{type:Boolean,default:!0},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},class:{type:String,default:void 0},style:{type:[String,Object],default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","file-added","file-removed","file-error","upload-start","upload-progress","upload-complete","upload-error","clear-all","download","preview"],setup(t,{emit:o}){const a=e.ref(!1),l=e.ref(null),n=t.id?`${t.id}-input`:`krds-file-upload-${++it}`,s=p=>p<1024?`${p}B`:p<1024*1024?`${Math.round(p/1024)}KB`:`${(p/(1024*1024)).toFixed(1)}MB`,r=p=>{const k=p.split(".");return k.length>1?k.pop().toLowerCase():""},m=p=>{const k=r(p.name),K=k?p.name.slice(0,-(k.length+1)):p.name;return k?`${K} [${k}, ${s(p.size)}]`:`${p.name} [${s(p.size)}]`},c=()=>`${Date.now()}-${Math.random().toString(36).substr(2,9)}`,g=p=>{if(t.maxFileSize&&p.size>t.maxFileSize)return`등록 가능한 파일 용량을 초과하였습니다.
2
+ ${s(t.maxFileSize)} 미만의 파일만 등록할 수 있습니다.`;if(t.accept){const k=t.accept.split(",").map($=>$.trim().toLowerCase()),K=`.${r(p.name)}`,_=p.type;if(!k.some($=>$.startsWith(".")?K===$:$.endsWith("/*")?_.startsWith($.replace("/*","/")):_===$))return"허용되지 않는 파일 형식입니다."}return null},y=p=>{if(t.disabled||t.readonly)return;let k=[...t.modelValue||[]];!t.multiple&&k.length>0&&(k=[]);const K=[];for(let _=0;_<p.length&&!(k.length+K.length>=t.maxFiles);_++){const $=p[_],T=g($),I={id:c(),file:$,name:$.name,size:$.size,type:$.type,status:T?"error":"pending",errorMessage:T||void 0};K.push(I),T?o("file-error",I,T):o("file-added",I)}K.length>0&&o("update:modelValue",[...k,...K])},C=p=>{const k=p.target;k.files?.length&&(y(k.files),k.value="")},b=p=>{t.disabled||t.readonly||!t.dragAndDrop||(p.preventDefault(),a.value=!0)},v=()=>{a.value=!1},h=p=>{p.preventDefault(),a.value=!1,!(t.disabled||t.readonly||!t.dragAndDrop)&&p.dataTransfer?.files&&y(p.dataTransfer.files)},i=()=>{t.disabled||t.readonly||l.value?.click()},u=p=>{t.disabled||t.readonly||(o("update:modelValue",(t.modelValue||[]).filter(k=>k.id!==p)),o("file-removed",p))},d=()=>{t.disabled||t.readonly||(o("update:modelValue",[]),o("clear-all"))},f=e.computed(()=>{const p=["krds-file-upload","line"];return t.class&&p.push(t.class),p}),w=()=>e.h("div",{class:"file-head"},[e.h("h3",{class:"tit"},t.title),e.h("div",null,[e.h("p",null,t.description)])]),z=()=>e.h("div",{class:"file-upload",onDragover:b,onDragleave:v,onDrop:h},[e.h("p",{class:"txt"},t.placeholder),e.h("div",{class:"file-upload-btn-wrap"},[e.h("input",{ref:l,type:"file",name:t.name||"myFile",id:n,hidden:!0,accept:t.accept||void 0,multiple:t.multiple,onChange:C}),e.h("label",{for:n},[e.h("button",{type:"button",class:["krds-btn",t.size],disabled:t.disabled||void 0,onClick:i},[e.h("i",{class:"svg-icon ico-upload"}),"파일선택"])])])]),x=p=>{const k=[];return p.status==="uploading"?k.push(e.h("span",{class:"krds-spinner",role:"status"},[e.h("span",{class:"sr-only"},"업로드 중")])):p.downloadUrl?(t.showDownload&&k.push(e.h("button",{type:"button",class:"krds-btn medium text",onClick:()=>o("download",p)},["다운로드 ",e.h("i",{class:"svg-icon ico-down"})])),t.showPreviewButton&&k.push(e.h("button",{type:"button",class:"krds-btn medium text",onClick:()=>o("preview",p)},["바로보기 ",e.h("i",{class:"svg-icon ico-angle right"})]))):p.status==="completed"?k.push(e.h("span",{class:"ico-invalid complete"},[e.h("em",{class:"sr-only"},"업로드 완료")])):t.readonly||k.push(e.h("button",{type:"button",class:"krds-btn medium text",disabled:t.disabled||void 0,onClick:()=>u(p.id)},["삭제 ",e.h("i",{class:"svg-icon ico-delete-fill"})])),k},D=p=>{const k=[e.h("div",{class:p.downloadUrl?"file-info m-column":"file-info"},[e.h("div",{class:"file-name"},m(p)),e.h("div",{class:"btn-wrap"},x(p))])];if(p.status==="error"&&p.errorMessage){const K=p.errorMessage.split(`
3
+ `),_=[];K.forEach(($,T)=>{T>0&&_.push(e.h("br")),_.push($)}),k.push(e.h("p",{class:"file-hint-invalid"},_))}return e.h("li",{key:p.id,class:p.status==="error"?"is-error":void 0},k)},N=p=>{const k=p.filter(_=>_.status!=="error").length,K=[e.h("div",{class:"total"},[e.h("span",{class:"current"},`${k}개`),` / ${t.maxFiles}개`]),e.h("ul",{class:"upload-list"},p.map(D))];return t.showClearAll&&!t.readonly&&K.push(e.h("div",{class:"upload-delete-btn"},[e.h("button",{type:"button",class:"krds-btn xsmall tertiary",disabled:t.disabled||void 0,onClick:d},["전체 파일 삭제",e.h("i",{class:"svg-icon ico-angle right"})])])),e.h("div",{class:"file-list"},K)};return()=>{const p=[w()];t.readonly||p.push(z());const k=t.modelValue||[];return k.length>0&&p.push(N(k)),e.h("div",{class:f.value,style:t.style||void 0},p)}}}),ae=e.defineComponent({name:"KrdsBadge",props:{type:{type:String,default:"outline"},color:{type:String,default:"primary"},size:{type:String,default:"large"},number:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:o,slots:a}){const l=e.computed(()=>{const s=["krds-badge"];return s.push(`${t.type}-${t.color}`),t.size&&s.push(t.size),t.number&&s.push("number"),t.class&&s.push(t.class),s}),n=s=>{o("click",s)};return()=>e.h("span",{type:t.type,color:t.color,size:t.size,number:t.number,class:l.value,onClick:n},a.default?.())}}),oe=e.defineComponent({name:"KrdsTag",props:{link:{type:Boolean,default:!1},href:{type:String,default:"#"},target:{type:String,default:void 0},rel:{type:String,default:void 0},class:{type:String,default:void 0}},emits:["remove"],setup(t,{emit:o,slots:a}){const l=e.computed(()=>{const r=["krds-btn-tag"];return t.link&&r.push("link"),t.class&&r.push(t.class),r}),n=r=>{o("remove",r)},s=()=>e.h("button",{type:"button",class:"btn-delete",onClick:n},[e.h("span",{class:"sr-only"},"삭제")]);return()=>{const r=[],m=a.default?.();if(m&&r.push(m),t.link||r.push(s()),t.link){const c={href:t.href,class:l.value};return t.target&&(c.target=t.target),t.rel&&(c.rel=t.rel),e.h("a",c,r)}return e.h("span",{class:l.value},r)}}}),se=e.defineComponent({name:"KrdsTagGroup",props:{size:{type:String,default:"medium"},class:{type:String,default:void 0}},setup(t,{slots:o}){const a=e.computed(()=>{const l=["krds-tag-wrap"];return t.size&&l.push(t.size),t.class&&l.push(t.class),l});return()=>e.h("div",{class:a.value},o.default?.())}}),ie=e.defineComponent({name:"KrdsMasthead",props:{class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:o,slots:a}){const l=e.computed(()=>{const s=[""];return t.class&&s.push(t.class),s}),n=s=>{o("click",s)};return()=>e.h("div",{id:"krds-masthead",class:l.value,onClick:n},[e.h("div",{class:"toggle-wrap"},[e.h("div",{class:"toggle-head"},[e.h("div",{class:"inner"},[e.h("span",{class:"nuri-txt"},a.default?.())])])])])}});let rt=0;function A(t="krds"){return`${t}-${++rt}`}function dt(){const t=Date.now().toString(36).slice(-4),o=Math.random().toString(36).substring(2,5);return`${t}${o}`}function P(...t){return t.filter(Boolean).join(" ")}const re=e.defineComponent({name:"KrdsToggleSwitch",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},label:{type:String,default:void 0},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},name:{type:String,default:void 0},required:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue","change"],setup(t,{emit:o,attrs:a}){const l=e.computed(()=>t.modelValue),n=e.computed(()=>P("krds-form-toggle-switch",t.size,t.class)),s=m=>{if(t.disabled)return;const g=m.target.checked;o("update:modelValue",g),o("change",g)},r=e.computed(()=>t.id||A("toggle-switch"));return()=>e.h("div",{class:n.value},[e.h("input",{type:"checkbox",id:r.value,name:t.name,checked:l.value,disabled:t.disabled,onChange:s,...a}),e.h("label",{for:r.value},[e.h("span",{class:"switch-toggle"},[e.h("i")]),t.label||""])])}}),de=e.defineComponent({name:"KrdsCheckArea",props:{class:{type:String,default:void 0},column:{type:Boolean,default:!1}},setup(t,{slots:o}){return()=>{const a=["krds-check-area"];return t.column&&a.push("chk-column"),t.class&&a.push(t.class),e.h("div",{class:a},o.default?.())}}}),ce=e.defineComponent({name:"KrdsCheckbox",props:{modelValue:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},chip:{type:Boolean,default:!1},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue"],slots:Object,setup(t,{emit:o,attrs:a,slots:l}){const n=e.computed(()=>t.modelValue),s=e.computed(()=>{const c=t.chip?"krds-form-chip":"krds-form-check";return P(c,t.size,t.class)}),r=c=>{if(t.disabled)return;const y=c.target.checked;o("update:modelValue",y)},m=e.computed(()=>t.id||A("checkbox"));return()=>{const c=[e.h("input",{type:"checkbox",id:m.value,checked:n.value,disabled:t.disabled,onChange:r,...a}),e.h("label",{for:m.value},l.default?.())];return l.description&&!t.chip&&c.push(e.h("div",{class:"krds-form-check-cnt"},e.h("p",{class:"krds-form-check-p"},l.description()))),e.h("div",{class:s.value},c)}}}),ue=e.defineComponent({name:"KrdsRadio",props:{modelValue:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],required:!0},disabled:{type:Boolean,default:!1},size:{type:String,default:"medium",validator:t=>["medium","large"].includes(t)},chip:{type:Boolean,default:!1},name:{type:String,default:void 0},class:{type:String,default:void 0},id:{type:String,default:void 0}},emits:["update:modelValue"],slots:Object,setup(t,{emit:o,attrs:a,slots:l}){const n=e.computed(()=>t.modelValue===t.value),s=e.computed(()=>{const g=t.chip?"krds-form-chip":"krds-form-check";return P(g,t.size,t.class)}),r=g=>{if(t.disabled)return;g.target.checked&&o("update:modelValue",t.value)},m=e.computed(()=>t.id||A("radio")),c=e.computed(()=>t.name);return()=>{const g=[e.h("input",{type:"radio",id:m.value,name:c.value,value:String(t.value),checked:n.value,disabled:t.disabled,onChange:r,...a}),e.h("label",{for:m.value},l.default?.())];return l.description&&!t.chip&&g.push(e.h("div",{class:"krds-form-check-cnt"},e.h("p",{class:"krds-form-check-p"},l.description()))),e.h("div",{class:s.value},g)}}}),fe=e.defineComponent({name:"KrdsStepIndicator",props:{modelValue:{type:Number,default:0},class:{type:String,default:void 0}},emits:["update:modelValue"],setup(t,{slots:o}){const a=e.computed(()=>{const m=["krds-step-wrap"];return t.class&&m.push(t.class),m}),l=m=>{const c=t.modelValue||0;return m<c?"done":m===c?"active":"pending"},n=e.ref(0),s=()=>{n.value=0},r=()=>n.value++;return e.provide("stepIndicator",{activeStep:e.computed(()=>t.modelValue||0),getStepStatus:l,getNextStepIndex:r,resetStepIndex:s}),()=>(s(),e.h("ol",{class:a.value},o.default?.()))}}),me=e.defineComponent({name:"KrdsStep",props:{step:{type:[String,Number],required:!0},title:{type:String,required:!0},status:{type:String,default:void 0},class:{type:String,default:void 0}},emits:["click"],setup(t,{emit:o,slots:a}){const l=e.inject("stepIndicator"),n=l?l.getNextStepIndex():-1,s=e.computed(()=>t.status?t.status:l&&n>=0?l.getStepStatus(n):"pending"),r=e.computed(()=>{const c=[s.value];return t.class&&c.push(t.class),c}),m=c=>{o("click",c,t.step)};return()=>{const c=s.value==="active";return e.h("li",{class:r.value,onClick:m},[e.h("span",[c&&e.h("em",{class:"sr-only"},"현재단계"),e.h("i",{class:"step"},t.step),e.h("span",{class:"step-tit"},t.title),a.default?.()])])}}}),he=e.defineComponent({name:"KrdsSkipLink",props:{href:{type:String,required:!0,validator:t=>t.startsWith("#")},class:{type:[String,Array,Object],default:void 0},id:{type:String,default:"krds-skip-link"}},setup(t,{slots:o}){return()=>e.h("div",{id:t.id,class:t.class},[e.h("a",{href:t.href},o.default?.())])}}),ct=["id","aria-label"],ut={class:"breadcrumb"},ft=["href","aria-current","onClick"],mt={key:0},pe=e.defineComponent({__name:"KrdsBreadcrumb",props:{items:{},id:{default:void 0},ariaLabel:{default:"현재 경로"},showHomeIcon:{type:Boolean,default:!0}},emits:["item-click"],setup(t,{emit:o}){const a=t,l=o,n=r=>r===a.items.length-1,s=(r,m)=>{r.onClick&&r.onClick(m),l("item-click",r,m)};return(r,m)=>(e.openBlock(),e.createElementBlock("nav",{id:t.id,class:"krds-breadcrumb-wrap","aria-label":t.ariaLabel},[e.createElementVNode("ol",ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.items,(c,g)=>(e.openBlock(),e.createElementBlock("li",{key:`breadcrumb-${g}`,class:e.normalizeClass({home:g===0&&t.showHomeIcon})},[e.createElementVNode("a",{href:c.href||"#",class:"txt","aria-current":n(g)?"page":void 0,onClick:y=>s(c,y)},[g===0&&t.showHomeIcon?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",mt,e.toDisplayString(c.text),1))],8,ft)],2))),128))])],8,ct))}}),ye=e.defineComponent({name:"KrdsInPageNavigation",props:{title:{type:String,default:void 0},caption:{type:String,default:"이 페이지의 구성"},items:{type:Array,default:()=>[]},autoActive:{type:Boolean,default:!0},headerTopSelector:{type:String,default:"#krds-masthead"},headerInnerSelector:{type:String,default:"#krds-header .header-in"},class:{type:String,default:void 0}},emits:["itemClick"],slots:Object,setup(t,{emit:o,slots:a}){const l=e.ref(""),n=e.ref(new Map),s=e.computed(()=>{const h=["krds-in-page-navigation-type"];return t.class&&h.push(t.class),h}),r=()=>{const h=t.headerTopSelector,i=t.headerInnerSelector,u=document.querySelector(h)?.clientHeight||0,d=document.querySelector(i)?.clientHeight||0;return u+d},m=(h,i)=>{if(o("itemClick",h,i),h.href.startsWith("#")){i.preventDefault();const u=document.querySelector(h.href);if(u){const d=r();if(window.scrollTo({left:0,top:u.getBoundingClientRect().top+window.scrollY-d,behavior:"smooth"}),l.value=h.href,i instanceof KeyboardEvent){const f=u.querySelector(".sec-tit, h1, h2, h3, h4, h5, h6");f&&f instanceof HTMLElement&&(f.setAttribute("tabindex","-1"),f.focus({preventScroll:!0}))}}}},c=()=>{n.value.clear(),t.items&&t.items.filter(h=>h.href.startsWith("#")).forEach(h=>{const i=document.querySelector(h.href);i&&n.value.set(h.href,i)})},g=()=>{if(!t.autoActive||!t.items||n.value.size===0)return;const h=window.innerHeight,i=Math.ceil(h/5),u=window.scrollY+h,d=document.body.scrollHeight,f=t.items.filter(N=>N.href.startsWith("#")&&n.value.has(N.href)).map(N=>({href:N.href,element:n.value.get(N.href),item:N}));if(f.length===0)return;const w=f[0],z=f[f.length-1],x=w.element.offsetTop;let D="";if(u>=d)D=z.href;else if(window.scrollY<=x)D=w.href;else for(const N of f){const p=N.element.offsetHeight,k=N.element.offsetTop-i;if(window.scrollY>k&&window.scrollY<=k+p){D=N.href;break}}D&&D!==l.value&&(l.value=D)},y=()=>{if(!t.items)return;const h=t.items.find(i=>i.active);h?l.value=h.href:t.items.length>0&&(l.value=t.items[0].href)};e.onMounted(()=>{if(y(),t.autoActive){c(),g(),window.addEventListener("scroll",g,{passive:!0});const h=new MutationObserver(()=>{c()});h.observe(document.body,{childList:!0,subtree:!0}),e.onUnmounted(()=>{h.disconnect()})}}),e.onUnmounted(()=>{t.autoActive&&(window.removeEventListener("scroll",g),n.value.clear())});const C=()=>!t.caption&&!t.title?null:e.h("div",{class:"in-page-navigation-header"},[t.caption&&e.h("p",{class:"quick-caption"},t.caption),t.title&&e.h("p",{class:"quick-title"},t.title)]),b=()=>{if(!t.items)return null;const h=t.items.map(i=>{const u=l.value===i.href||!t.autoActive&&i.active;return e.h("li",{key:i.href},[e.h("a",{href:i.href,class:u?"active":"",onClick:d=>m(i,d),onKeydown:d=>{(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),m(i,d))}},i.text)])});return e.h("nav",{class:"in-page-navigation-list"},[e.h("ul",{},h)])},v=()=>a.action?e.h("div",{class:"in-page-navigation-action"},[a.action()]):null;return()=>e.h("div",{class:s.value},[e.h("div",{class:"krds-in-page-navigation-area"},[C(),b(),v()].filter(Boolean))])}}),ht=["id"],pt={class:"page-links"},yt=["href","aria-current","onClick"],gt={key:0},kt=["aria-label"],ge=e.defineComponent({__name:"KrdsPagination",props:{modelValue:{default:1},min:{default:1},max:{},id:{default:void 0},ariaLabel:{default:"페이지 내비게이션"},pageRange:{default:8}},emits:["update:modelValue"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>Math.max(1,a.min)),s=e.computed(()=>a.modelValue??n.value),r=e.computed(()=>s.value<=n.value),m=e.computed(()=>s.value>=a.max),c=e.computed(()=>{if(!r.value)return"#"}),g=e.computed(()=>{if(!m.value)return"#"}),y=e.computed(()=>{const{pageRange:h,max:i}=a,u=1,d=[];if(i<=h+2*u)for(let f=n.value;f<=i;f++)d.push({type:"page",key:`page-${f}`,page:f,href:"#"});else{const f=Math.min(u,i),w=Math.max(i-u+1,1),z=Math.max(n.value,s.value-Math.floor(h/2)),x=Math.min(i,z+h-1),D=Math.max(n.value,x-h+1);for(let k=n.value;k<=f;k++)d.push({type:"page",key:`page-${k}`,page:k,href:"#"});D>f+1&&d.push({type:"ellipsis",key:"ellipsis-left",ariaLabel:"페이지 생략"});const N=Math.max(D,f+1),p=Math.min(x,w-1);for(let k=N;k<=p;k++)d.push({type:"page",key:`page-${k}`,page:k,href:"#"});x<w-1&&d.push({type:"ellipsis",key:"ellipsis-right",ariaLabel:"페이지 생략"});for(let k=w;k<=i;k++)d.push({type:"page",key:`page-${k}`,page:k,href:"#"})}return d}),C=(h,i)=>{if(h===s.value){i.preventDefault();return}l("update:modelValue",h)},b=h=>{if(r.value){h.preventDefault();return}const i=s.value-1;l("update:modelValue",i)},v=h=>{if(m.value){h.preventDefault();return}const i=s.value+1;l("update:modelValue",i)};return(h,i)=>{const u=e.resolveDirective("sr-only");return e.openBlock(),e.createElementBlock("div",{id:t.id,class:"krds-pagination"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value?"span":"a"),{href:r.value?void 0:c.value,class:e.normalizeClass(["page-navi","prev",{disabled:r.value}]),onClick:b},{default:e.withCtx(()=>[...i[0]||(i[0]=[e.createTextVNode(" 이전 ",-1)])]),_:1},8,["href","class"])),e.createElementVNode("div",pt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(y.value,d=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.key},[d.type==="page"?(e.openBlock(),e.createElementBlock("a",{key:0,href:d.href||"#",class:e.normalizeClass(["page-link",{active:d.page===s.value}]),"aria-current":d.page===s.value?"page":void 0,onClick:f=>C(d.page,f)},[d.page===s.value?e.withDirectives((e.openBlock(),e.createElementBlock("span",gt,[...i[1]||(i[1]=[e.createTextVNode("현재페이지",-1)])])),[[u]]):e.createCommentVNode("",!0),e.createTextVNode(" "+e.toDisplayString(d.page),1)],10,yt)):d.type==="ellipsis"?(e.openBlock(),e.createElementBlock("span",{key:1,class:"page-link link-dot","aria-label":d.ariaLabel},null,8,kt)):e.createCommentVNode("",!0)],64))),128))]),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(m.value?"span":"a"),{href:m.value?void 0:g.value,class:e.normalizeClass(["page-navi","next",{disabled:m.value}]),onClick:v},{default:e.withCtx(()=>[...i[2]||(i[2]=[e.createTextVNode(" 다음 ",-1)])]),_:1},8,["href","class"]))],8,ht)}}}),bt={class:"inner help-panel-flexible"},St={class:"help-panel-wrap"},Ct={class:"help-conts-area"},ke=e.defineComponent({__name:"KrdsPanel",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:o}){const a=t,l=o,n=e.computed({get:()=>a.modelValue,set:m=>l("update:modelValue",m)}),s=()=>{n.value=!0},r=()=>{n.value=!1};return(m,c)=>(e.openBlock(),e.createElementBlock("div",bt,[e.createElementVNode("button",{type:"button",class:"krds-btn small tertiary btn-help-panel expand btn-help-exec",onClick:s},[...c[0]||(c[0]=[e.createElementVNode("i",{class:"svg-icon ico-fold"},null,-1),e.createTextVNode(" 도움말 ",-1)])]),e.createElementVNode("div",{class:e.normalizeClass(["krds-help-panel",{expand:n.value}])},[e.createElementVNode("div",St,[e.createElementVNode("div",Ct,[e.renderSlot(m.$slots,"default"),e.createElementVNode("button",{type:"button",class:"krds-btn small tertiary btn-help-panel fold",onClick:r},[...c[1]||(c[1]=[e.createElementVNode("span",{class:"sr-only"},"도움말",-1),e.createTextVNode(" 접어두기 ",-1),e.createElementVNode("i",{class:"svg-icon ico-angle right"},null,-1)])])])])],2)]))}}),wt={class:"tooltip-action"},Et={key:0,class:"svg-icon ico-help"},Vt={key:1,class:"svg-icon ico-tooltip"},Bt={class:"tooltip-title"},vt={class:"tooltip-contents"},be=e.defineComponent({__name:"KrdsContextualHelp",props:{tooltipTitle:{default:"도움말 제목"},helpIcon:{type:Boolean},position:{default:"top left"}},setup(t){const o=t,a=e.ref(),l=e.ref(),n=e.ref(),s=e.ref(),r=e.ref(!1),m=()=>{const i=r.value;y(),i||c()},c=()=>{if(!n.value||!l.value)return;r.value=!0,n.value.style.display="block",l.value.setAttribute("aria-expanded","true"),n.value.querySelector('a, button, [tabindex="0"], input, textarea, select')?.focus(),C()},g=()=>{!n.value||!l.value||(r.value=!1,n.value.style.display="none",l.value.setAttribute("aria-expanded","false"))},y=()=>{const i=document.querySelectorAll(".krds-contextual-help .tooltip-popover"),u=document.querySelectorAll(".krds-contextual-help .tooltip-btn");i.forEach(d=>{d.style.display="none"}),u.forEach(d=>{d.setAttribute("aria-expanded","false")}),r.value=!1},C=()=>{if(!a.value||!n.value)return;const i=window.innerWidth<=768,u=a.value.querySelector(".tooltip-action");if(i){const f=getComputedStyle(document.querySelector(":root")).getPropertyValue("--krds-contents-padding-x").trim().split("px")[0],z=u.getBoundingClientRect().left-parseInt(f),x=document.body.clientWidth-parseInt(f)*2;n.value.style.left=`-${z}px`,n.value.style.width=`${x}px`}else n.value.style.left="",n.value.style.right="",n.value.style.width="360px"},b=i=>{(i.key==="Escape"||i.key==="Esc")&&y()},v=i=>{i.target.closest(".tooltip-action")||y()},h=()=>{r.value&&C()};return e.onMounted(()=>{a.value&&(l.value&&l.value.setAttribute("aria-expanded","false"),n.value&&n.value.setAttribute("role","tooltip"),document.addEventListener("keydown",b),document.addEventListener("click",v),window.addEventListener("resize",h))}),e.onUnmounted(()=>{document.removeEventListener("keydown",b),document.removeEventListener("click",v),window.removeEventListener("resize",h)}),(i,u)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:a,class:e.normalizeClass(["krds-contextual-help",o.position])},[e.createElementVNode("div",wt,[e.createElementVNode("button",{ref_key:"tooltipBtnRef",ref:l,type:"button",class:"krds-btn medium icon tooltip-btn",onClick:m},[u[0]||(u[0]=e.createElementVNode("span",{class:"sr-only"},"도움말",-1)),o.helpIcon?(e.openBlock(),e.createElementBlock("i",Et)):(e.openBlock(),e.createElementBlock("i",Vt))],512),e.createElementVNode("div",{ref_key:"tooltipPopoverRef",ref:n,class:"tooltip-popover",role:"tooltip"},[e.createElementVNode("h4",Bt,e.toDisplayString(o.tooltipTitle),1),e.createElementVNode("div",vt,[e.renderSlot(i.$slots,"default")]),e.createElementVNode("button",{ref_key:"closeBtnRef",ref:s,type:"button",class:"krds-btn xsmall icon tooltip-close",onClick:g},[...u[1]||(u[1]=[e.createElementVNode("span",{class:"sr-only"},"닫기",-1),e.createElementVNode("i",{class:"svg-icon ico-modal-close"},null,-1)])],512)],512)])],2))}}),Nt={key:0,class:"coach-balloon"},Kt={class:"coach-tit"},xt={class:"desc"},Dt={class:"coach-controls"},$t={class:"num"},zt={class:"btn-wrap"},Se=e.defineComponent({__name:"KrdsCoachMark",props:{coachMarkClass:{default:""},stepsData:{},activeStep:{},modelValue:{default:null},class:{},style:{},id:{}},emits:["update:modelValue","close"],setup(t,{emit:o}){const a=t,l=e.computed(()=>{const c=a.activeStep-1;return a.stepsData&&c>=0&&c<a.stepsData.length?a.stepsData[c]:null}),n=o,s=()=>{a.activeStep>1&&n("update:modelValue",a.activeStep-1)},r=()=>{a.activeStep<a.stepsData.length&&n("update:modelValue",a.activeStep+1)},m=()=>{n("close")};return(c,g)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["krds-coach-mark",t.coachMarkClass]),style:e.normalizeStyle(t.style)},[t.modelValue===t.activeStep&&l.value?(e.openBlock(),e.createElementBlock("div",Nt,[g[2]||(g[2]=e.createElementVNode("h5",{class:"sr-only"},"따라하기 가이드",-1)),e.createElementVNode("h6",Kt,e.toDisplayString(t.activeStep)+"단계 : "+e.toDisplayString(l.value.title),1),e.createElementVNode("p",xt,e.toDisplayString(l.value.description),1),e.createElementVNode("div",Dt,[e.createElementVNode("div",$t,[g[0]||(g[0]=e.createElementVNode("span",{class:"sr-only"},"현재 단계",-1)),e.createElementVNode("strong",null,e.toDisplayString(t.activeStep),1),g[1]||(g[1]=e.createElementVNode("span",{class:"sr-only"},"총 단계",-1)),e.createElementVNode("span",null,e.toDisplayString(t.stepsData.length),1)]),e.createElementVNode("div",zt,[e.createElementVNode("button",{type:"button",class:"krds-btn small text",onClick:m},"그만보기"),t.activeStep!==1?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"krds-btn small text",onClick:s},"이전으로")):e.createCommentVNode("",!0),t.activeStep!==t.stepsData.length?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"krds-btn small tertiary",onClick:r},"다음으로")):e.createCommentVNode("",!0)])])])):e.createCommentVNode("",!0),e.renderSlot(c.$slots,"coach-mark-content")],6))}}),_t=["disabled","aria-labelledby"],Lt=["id","aria-hidden"],It={class:"sr-only"},Ce=e.defineComponent({__name:"KrdsTooltip",props:{type:{default:"default"},tooltipContent:{},vertical:{type:Boolean},box:{type:Boolean},disabled:{type:Boolean,default:!1},class:{},style:{},id:{}},setup(t){const o=t,a=e.ref(null),l=e.ref(null),n=e.ref(!1),s=e.ref({}),r=e.ref(`tooltip-popover-${Math.random().toString(36).substring(2,9)}`),m=e.ref(!1),c=e.computed(()=>{const f=["krds-btn","krds-tooltip"];return o.type==="default"?f.push("small","text"):o.type==="icon"?f.push("icon"):o.type==="button"&&f.push(""),!o.box&&o.vertical&&f.push("tooltip-vertical"),o.box&&!o.vertical&&f.push("tooltip-box"),f.join(" ")}),g=e.computed(()=>{const f=[];return o.box&&f.push("tooltip-box"),o.vertical&&f.push("tooltip-vertical"),n.value&&f.push("active"),f}),y=e.computed(()=>a.value?.querySelector("button")?.textContent?.trim()||""),C=()=>window.innerWidth<=768,b=()=>{if(!a.value||!l.value)return;const f=a.value.querySelector("button");if(!f)return;const w=12,{clientHeight:z,clientWidth:x}=l.value,{top:D,left:N,right:p,height:k,width:K}=f.getBoundingClientRect(),_=window.innerWidth/2,$=window.innerHeight/2;let T,I;const M=[];m.value||o.box||o.vertical?(D+k>$?(T=D-z-w,M.push("top")):(T=D+k+w,M.push("bottom")),N+K>_?(I=p-x,M.push("right"),window.innerWidth-(N+K)>x/2&&(I=N+(K-x)/2,M.splice(M.indexOf("right"),1))):(I=N+(K-x)/2,I<0&&(I=N,M.push("left")))):(T=D+(k-z)/2,N+K>_?(I=N-x-w,M.push("right")):I=p+w);const O=window.innerWidth<=420;s.value={top:`${T}px`,left:O?"50%":`${I}px`,transform:O?"translateX(-50%)":"none"},l.value&&(l.value.className=`krds-tooltip-popover ${M.join(" ")} ${g.value.join(" ")}`)},v=async()=>{o.disabled||!o.tooltipContent||(n.value=!0,await e.nextTick(),b())},h=()=>{n.value=!1,s.value={}},i=f=>{(f.key==="Escape"||f.key==="Esc")&&n.value&&h()},u=()=>{m.value=C(),n.value&&h()},d=()=>{n.value&&h()};return e.onMounted(()=>{m.value=C(),document.addEventListener("keydown",i),window.addEventListener("scroll",d),window.addEventListener("resize",u)}),e.onUnmounted(()=>{document.removeEventListener("keydown",i),window.removeEventListener("scroll",d),window.removeEventListener("resize",u)}),(f,w)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"containerRef",ref:a},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(c.value),disabled:t.disabled,"aria-labelledby":r.value,onMouseover:v,onMouseout:h,onFocusin:v,onFocusout:h},[e.renderSlot(f.$slots,"default")],42,_t),e.withDirectives(e.createElementVNode("div",{id:r.value,ref_key:"popoverRef",ref:l,class:e.normalizeClass(["krds-tooltip-popover",g.value]),style:e.normalizeStyle(s.value),"aria-hidden":!n.value,role:"tooltip"},[e.createElementVNode("span",It,e.toDisplayString(y.value),1),e.createTextVNode(" "+e.toDisplayString(t.tooltipContent),1)],14,Lt),[[e.vShow,n.value]])],512))}}),Tt=["aria-expanded"],Mt={class:"drop-in"},Ft={key:0,class:"drop-top"},Rt={key:1,class:"drop-list"},At=["lang","aria-selected","onClick"],Pt={class:"sr-only"},Ot={key:2,class:"drop-list"},qt=["href","lang"],we=e.defineComponent({__name:"KrdsLanguageSwitcher",props:{languageList:{},modelValue:{default:""},type:{default:"default"},dropPosition:{default:"center"},class:{},style:{},id:{}},emits:["update:modelValue","close"],setup(t,{emit:o}){const a=t,l=o,n=e.ref(!1),s=e.ref(),r=e.ref(),m=()=>{n.value=!n.value,n.value&&s.value&&y()},c=()=>{n.value=!1},g=i=>{l("update:modelValue",i),c(),l("close"),r.value?.focus()},y=()=>{if(!s.value)return;const i=s.value.querySelector(".drop-menu");if(!i)return;const u=i.getBoundingClientRect(),d=window.innerWidth;s.value.classList.remove("drop-left","drop-right"),u.left<0?s.value.classList.add("drop-left"):d<u.left+u.width&&s.value.classList.add("drop-right")},C=i=>{i.key==="Escape"&&(c(),r.value?.focus())},b=i=>{s.value?.contains(i.target)||c()},v=i=>{s.value?.contains(i.relatedTarget)||c()},h=i=>{if(!s.value)return;s.value.querySelectorAll(".drop-list .item-link").forEach(f=>{f.style.position="relative",f.style.zIndex="0"});const d=i.target;d.style.zIndex="1"};return e.watch(n,i=>{i?(document.addEventListener("keydown",C),document.addEventListener("click",b)):(document.removeEventListener("keydown",C),document.removeEventListener("click",b))}),e.onUnmounted(()=>{document.removeEventListener("keydown",C),document.removeEventListener("click",b)}),(i,u)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:s,class:e.normalizeClass(["krds-drop-wrap krds-language",{active:n.value,"drop-left":a.dropPosition==="left","drop-right":a.dropPosition==="right"}]),onFocusout:v},[e.createElementVNode("button",{ref_key:"buttonRef",ref:r,type:"button",class:e.normalizeClass(["krds-btn small text drop-btn",{active:n.value}]),"aria-expanded":n.value,onClick:m},[u[0]||(u[0]=e.createElementVNode("i",{class:"svg-icon ico-global"},null,-1)),e.renderSlot(i.$slots,"default"),u[1]||(u[1]=e.createElementVNode("i",{class:"svg-icon ico-toggle"},null,-1))],10,Tt),e.createElementVNode("div",{class:"drop-menu",style:e.normalizeStyle({display:n.value?"block":"none"})},[e.createElementVNode("div",Mt,[i.$slots["prev-item"]?(e.openBlock(),e.createElementBlock("div",Ft,[e.renderSlot(i.$slots,"prev-item")])):e.createCommentVNode("",!0),a.type==="default"?(e.openBlock(),e.createElementBlock("ul",Rt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.languageList,d=>(e.openBlock(),e.createElementBlock("li",{key:d.code},[e.createElementVNode("a",{href:"#",class:e.normalizeClass(["item-link",{active:a.modelValue===d.code}]),lang:d.code,"aria-selected":a.modelValue===d.code,onClick:e.withModifiers(f=>g(d.code),["prevent"]),onFocus:h},[e.createTextVNode(e.toDisplayString(d.name)+" ",1),e.createElementVNode("span",Pt,e.toDisplayString(a.modelValue===d.code?"선택됨":""),1)],42,At)]))),128))])):a.type==="external"?(e.openBlock(),e.createElementBlock("ul",Ot,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.languageList,d=>(e.openBlock(),e.createElementBlock("li",{key:d.code},[e.createElementVNode("a",{href:d.url||"#",class:"item-link",lang:d.code,target:"_blank",title:"새 창 열림",onFocus:h},[e.createTextVNode(e.toDisplayString(d.name)+" ",1),u[2]||(u[2]=e.createElementVNode("i",{class:"svg-icon ico-go"},null,-1))],40,qt)]))),128))])):e.createCommentVNode("",!0)])],4)],34))}}),Ht={class:"drop-in"},jt={class:"drop-list"},Wt=["data-adjust-scale","onClick"],Yt={class:"drop-bottom"},Ee=e.defineComponent({__name:"KrdsResize",emits:["update:modelValue","close"],setup(t,{emit:o}){const a=o,l=e.ref(!1),n=e.ref(),s=e.ref(),r=e.ref("md"),m=[{key:"sm",label:"작게",zoom:"0.9"},{key:"md",label:"보통",zoom:"1"},{key:"lg",label:"조금 크게",zoom:"1.1"},{key:"xlg",label:"크게",zoom:"1.3"},{key:"xxlg",label:"가장 크게",zoom:"1.5"}],c=()=>{l.value=!l.value,l.value&&n.value&&b()},g=()=>{l.value=!1},y=d=>{g(),a("close"),s.value?.focus(),r.value=d.key,document.body.style.zoom=d?.zoom},C=()=>{const d=m.find(f=>f.key==="md");d&&y(d)},b=()=>{if(!n.value)return;const d=n.value.querySelector(".drop-menu");if(!d)return;const f=d.getBoundingClientRect(),w=window.innerWidth;n.value.classList.remove("drop-left","drop-right"),f.left<0?n.value.classList.add("drop-left"):w<f.left+f.width&&n.value.classList.add("drop-right")},v=d=>{d.key==="Escape"&&(g(),s.value?.focus())},h=d=>{n.value?.contains(d.target)||g()},i=d=>{n.value?.contains(d.relatedTarget)||g()},u=d=>{if(!n.value)return;n.value.querySelectorAll(".drop-list .item-link").forEach(z=>{z.style.position="relative",z.style.zIndex="0"});const w=d.target;w.style.zIndex="1"};return e.watch(l,d=>{d?(document.addEventListener("keydown",v),document.addEventListener("click",h)):(document.removeEventListener("keydown",v),document.removeEventListener("click",h))}),e.onUnmounted(()=>{document.removeEventListener("keydown",v),document.removeEventListener("click",h)}),(d,f)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"dropdownRef",ref:n,class:"krds-drop-wrap krds-resize","data-adjust":"scale",onFocusout:i},[e.createElementVNode("button",{ref_key:"buttonRef",ref:s,type:"button",class:"krds-btn small text drop-btn",onClick:c},[...f[0]||(f[0]=[e.createTextVNode(" 화면크기 ",-1),e.createElementVNode("i",{class:"svg-icon ico-toggle"},null,-1)])],512),e.createElementVNode("div",{class:"drop-menu",style:e.normalizeStyle({display:l.value?"block":"none"})},[e.createElementVNode("div",Ht,[e.createElementVNode("ul",jt,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(m,w=>e.createElementVNode("li",{key:w.key},[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["item-link",[w.key,w.key===r.value?"active":""]]),"data-adjust-scale":w.key,onClick:e.withModifiers(z=>y(w),["prevent"]),onFocus:u},e.toDisplayString(w.label),43,Wt)])),64))]),e.createElementVNode("div",Yt,[e.createElementVNode("button",{type:"button",class:"krds-btn medium text","data-adjust-scale":"md",onClick:e.withModifiers(C,["prevent"]),onFocus:u},[...f[1]||(f[1]=[e.createElementVNode("i",{class:"svg-icon ico-reset"},null,-1),e.createTextVNode(" 초기화 ",-1)])],32)])])],4)],544))}}),Ve=e.defineComponent({name:"KrdsModal",props:{modelValue:{type:Boolean,default:!1},modalId:{type:String,default:void 0},backdrop:{type:Boolean,default:!0},size:{type:String,default:"medium"},full:{type:Boolean,default:!1},bottomSheet:{type:Boolean,default:!1},persistent:{type:Boolean,default:!1}},emits:["update:modelValue"],slots:Object,setup(t,{slots:o,emit:a}){const l=e.getCurrentInstance()?.uid,n=e.computed(()=>t.modalId??`krds-modal-${l}`),s=e.computed({get:()=>t.modelValue,set:u=>a("update:modelValue",u)}),r=e.computed(()=>`tit_${n.value}`),m=e.computed(()=>({small:"modal-sm",medium:"modal-md",large:"modal-lg"})[t.size]),c=()=>{s.value=!1};let g="",y=null;const C=e.ref(null),b=u=>Array.from(u.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])')).filter(f=>!f.hasAttribute("disabled")&&f.getAttribute("tabindex")!=="-1"),v=u=>{if(!C.value||u.key!=="Tab")return;const d=b(C.value);if(d.length===0){u.preventDefault();return}const f=d[0],w=d[d.length-1];u.shiftKey&&document.activeElement===f?(u.preventDefault(),w.focus()):!u.shiftKey&&document.activeElement===w&&(u.preventDefault(),f.focus())},h=u=>{u.key==="Escape"&&!t.persistent&&c()},i=()=>{document.body.style.overflow=g,document.removeEventListener("keydown",v),document.removeEventListener("keydown",h),y&&(y.focus(),y=null),C.value=null};return e.watch(()=>t.modelValue,async u=>{if(u){g=document.body.style.overflow,document.body.style.overflow="hidden",y=document.activeElement,await e.nextTick();const d=document.getElementById(n.value);if(d){C.value=d;const f=d.querySelector(".modal-conts");f&&(f.setAttribute("tabindex","-1"),f.focus()),document.addEventListener("keydown",v),document.addEventListener("keydown",h)}}else i()},{immediate:!0}),e.onBeforeUnmount(()=>{t.modelValue&&i()}),()=>{if(!s.value)return null;const u={id:n.value,class:"krds-modal fade in shown",role:"dialog","aria-modal":!0,"aria-labelledby":r.value};return t.full?u["data-type"]="full":t.bottomSheet&&(u["data-type"]="bottom-sheet"),e.h(e.Teleport,{to:"body"},e.h("section",u,[e.h("div",{class:`modal-dialog ${m.value}`},[e.h("div",{class:"modal-content"},[o.title?e.h("div",{class:"modal-header"},[e.h("h2",{id:r.value,class:"modal-title"},o.title())]):null,e.h("div",{class:"modal-conts"},[e.h("div",{class:"conts-area"},o.default?.())]),o.footer?e.h("div",{class:"modal-btn btn-wrap"},o.footer()):null,e.h("button",{type:"button",class:"krds-btn medium icon btn-close close-modal",onClick:c},[e.h("span",{class:"sr-only"},"닫기"),e.h("i",{class:"svg-icon ico-popup-close"})])].filter(Boolean))]),e.h("div",{class:t.backdrop?"modal-back in":"modal-back",onClick:t.persistent?void 0:c})]))}}}),Be=e.defineComponent({name:"KrdsAccordionGroup",props:{typeLine:{type:Boolean,default:!1},class:{type:String,default:void 0}},setup(t,{slots:o}){const a=e.computed(()=>{const l=["krds-accordion"];return t.typeLine&&l.push("type-line"),t.class&&l.push(t.class),l});return()=>e.h("div",{class:a.value},o.default?.())}}),Gt=["id"],Ut={class:"accordion-header"},Xt=["id","aria-expanded","aria-controls"],Jt=["id","aria-labelledby"],Qt={class:"accordion-body"},ve=e.defineComponent({__name:"KrdsAccordionItem",props:{id:{},openItem:{},title:{},content:{}},emits:["toggle"],setup(t,{emit:o}){const a=t,l=o,n=e.computed(()=>a.openItem===a.id),s=()=>{l("toggle",a.id)};return(r,m)=>(e.openBlock(),e.createElementBlock("div",{id:t.id,class:e.normalizeClass(["accordion-item",{active:n.value}])},[e.createElementVNode("h5",Ut,[e.createElementVNode("button",{id:`accordion-header-${t.id}`,type:"button",class:"btn-accordion","aria-expanded":n.value,"aria-controls":`accordion-collapse-${t.id}`,onClick:m[0]||(m[0]=c=>s())},[e.renderSlot(r.$slots,"title",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])],8,Xt)]),e.createElementVNode("div",{id:`accordion-collapse-${t.id}`,class:"accordion-collapse collapse","aria-labelledby":`accordion-header-${t.id}`},[e.createElementVNode("div",Qt,[e.renderSlot(r.$slots,"content",{},()=>[e.createTextVNode(e.toDisplayString(t.content),1)])])],8,Jt)],10,Gt))}}),Ne=e.defineComponent({name:"KrdsTts",props:{text:{type:String,required:!0},label:{type:String,default:void 0},size:{type:String,default:"medium"},icon:{type:String,default:"volume"},disabled:{type:Boolean,default:!1},class:{type:String,default:void 0}},emits:["play","pause","end","error"],setup(t,{emit:o}){const a=e.ref(!1);let l=null;const n=()=>{typeof window<"u"&&window.speechSynthesis&&window.speechSynthesis.cancel(),a.value=!1,l=null},s=()=>{if(!t.disabled){if(a.value){n(),o("pause");return}if(typeof window>"u"||!window.speechSynthesis){o("error",new Error("SpeechSynthesis API is not supported"));return}window.speechSynthesis.cancel(),l=new SpeechSynthesisUtterance(t.text),l.lang="ko-KR",l.onstart=()=>{a.value=!0},l.onend=()=>{a.value=!1,l=null,o("end")},l.onerror=c=>{a.value=!1,l=null,c.error!=="canceled"&&o("error",new Error(c.error))},window.speechSynthesis.speak(l),o("play",t.text)}},r=e.computed(()=>{const c=["krds-tts"];return t.size&&c.push(t.size),a.value?c.push("pause"):t.icon==="play"&&c.push("play"),t.class&&c.push(t.class),c}),m=e.computed(()=>a.value?"ico-stop":t.icon==="play"?"ico-play":"ico-volume");return e.onBeforeUnmount(()=>{n()}),()=>{const c=[e.h("span",{class:"krds-tts-icon","aria-hidden":"true"},[e.h("i",{class:`svg-icon ${m.value}`})])];return t.label&&c.push(e.h("span",{class:"krds-tts-text"},t.label)),e.h("button",{type:"button",class:r.value,disabled:t.disabled||void 0,onClick:s},c)}}}),Ke=Object.freeze(Object.defineProperty({__proto__:null,KrdsAccordionGroup:Be,KrdsAccordionItem:ve,KrdsBadge:ae,KrdsBreadcrumb:pe,KrdsButton:q,KrdsButtonGroup:Y,KrdsCheckArea:de,KrdsCheckbox:ce,KrdsCoachMark:Se,KrdsContextualHelp:be,KrdsDateInput:ee,KrdsFileUpload:le,KrdsFormGroup:Z,KrdsFormHint:Q,KrdsFormLabel:J,KrdsIcon:G,KrdsInPageNavigation:ye,KrdsInput:X,KrdsLanguageSwitcher:we,KrdsLink:U,KrdsMasthead:ie,KrdsModal:Ve,KrdsPagination:ge,KrdsPanel:ke,KrdsRadio:ue,KrdsResize:Ee,KrdsSelect:ne,KrdsSkipLink:he,KrdsSpinner:H,KrdsStep:me,KrdsStepIndicator:fe,KrdsTag:oe,KrdsTagGroup:se,KrdsTextarea:te,KrdsToggleSwitch:re,KrdsTooltip:Ce,KrdsTts:Ne},Symbol.toStringTag,{value:"Module"})),j={mounted(t,o){o.value!==!1&&t.classList.add("sr-only")},updated(t,o){o.value===!1?t.classList.remove("sr-only"):t.classList.add("sr-only")},unmounted(t){t.classList.remove("sr-only")}},xe={"sr-only":j},De=t=>{t.directive("sr-only",j)},$e=Object.freeze(Object.defineProperty({__proto__:null,default:xe,directives:xe,installDirectives:De,vSrOnly:j},Symbol.toStringTag,{value:"Module"})),Zt={install(t,o={}){t.provide("krds:config",o);const a=o.components||Object.keys(Ke);a.forEach(l=>{const n=Ke[l];n&&t.component(l,n)}),typeof $e=="object"&&$e!==null&&De(t),t.config.globalProperties.$krds={version:"__VERSION__"},process.env.NODE_ENV!=="production"&&console.log(`[KRDS Vue] v__VERSION__ 설치 완료 - 컴포넌트: ${a.length}개`)}},en="__VERSION__";S.KrdsAccordionGroup=Be,S.KrdsAccordionItem=ve,S.KrdsBadge=ae,S.KrdsBreadcrumb=pe,S.KrdsButton=q,S.KrdsButtonGroup=Y,S.KrdsCheckArea=de,S.KrdsCheckbox=ce,S.KrdsCoachMark=Se,S.KrdsContextualHelp=be,S.KrdsDateInput=ee,S.KrdsFileUpload=le,S.KrdsFormGroup=Z,S.KrdsFormHint=Q,S.KrdsFormLabel=J,S.KrdsIcon=G,S.KrdsInPageNavigation=ye,S.KrdsInput=X,S.KrdsLanguageSwitcher=we,S.KrdsLink=U,S.KrdsMasthead=ie,S.KrdsModal=Ve,S.KrdsPagination=ge,S.KrdsPanel=ke,S.KrdsRadio=ue,S.KrdsResize=Ee,S.KrdsSelect=ne,S.KrdsSkipLink=he,S.KrdsSpinner=H,S.KrdsStep=me,S.KrdsStepIndicator=fe,S.KrdsTag=oe,S.KrdsTagGroup=se,S.KrdsTextarea=te,S.KrdsToggleSwitch=re,S.KrdsTooltip=Ce,S.KrdsTts=Ne,S.classNames=P,S.default=Zt,S.generateId=A,S.generateUid=dt,S.version=en,Object.defineProperties(S,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
2
4
  //# sourceMappingURL=krds-vue.umd.js.map