@useinsider/ab-components 0.0.13 → 0.0.15

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,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),ce="_button__size_default_16zzc_1",pe="_button__size_small_16zzc_8",de="_button_16zzc_1",me="_button__label_16zzc_193",fe="_button__solid_16zzc_205",be="_fill_16zzc_1125",P={button__size_default:ce,button__size_small:pe,button:de,button__label:me,"button__solid-primary":"_button__solid-primary_16zzc_205","no-hover-effect":"_no-hover-effect_16zzc_212","button--selected":"_button--selected_16zzc_234","button__solid-subtle-primary":"_button__solid-subtle-primary_16zzc_241","button__solid-secondary":"_button__solid-secondary_16zzc_277","button__solid-danger":"_button__solid-danger_16zzc_313","button__solid-warning":"_button__solid-warning_16zzc_349","button__solid-smart":"_button__solid-smart_16zzc_385","button__ghost-primary":"_button__ghost-primary_16zzc_421","button__ghost-subtle-primary":"_button__ghost-subtle-primary_16zzc_457","button__ghost-secondary":"_button__ghost-secondary_16zzc_493","button__ghost-danger":"_button__ghost-danger_16zzc_529","button__ghost-warning":"_button__ghost-warning_16zzc_565","button__ghost-smart":"_button__ghost-smart_16zzc_601","button__text-primary":"_button__text-primary_16zzc_637","button__text-text":"_button__text-text_16zzc_673","button__text-subtle-primary":"_button__text-subtle-primary_16zzc_709","button__text-secondary":"_button__text-secondary_16zzc_745","button__text-danger":"_button__text-danger_16zzc_781","button__text-warning":"_button__text-warning_16zzc_817","button__text-smart":"_button__text-smart_16zzc_853","button__outline-primary":"_button__outline-primary_16zzc_889","button__outline-subtle-primary":"_button__outline-subtle-primary_16zzc_926","button__outline-secondary":"_button__outline-secondary_16zzc_963","button__outline-danger":"_button__outline-danger_16zzc_1000","button__outline-warning":"_button__outline-warning_16zzc_1037","button__outline-smart":"_button__outline-smart_16zzc_1074",button__solid:fe,fill:be},ve=["disabled"],ge=e.defineComponent({__name:"Button",props:{variant:{},color:{},size:{default:"default"},leftIconName:{},rightIconName:{},loadingStatus:{type:Boolean,default:!1},successStatus:{type:Boolean,default:!1},label:{},disabled:{type:Boolean,default:!1},fill:{type:Boolean,default:!1}},emits:["click"],setup(u,{emit:n}){const a=u,o=n,l=r=>{a.disabled||o("click",r)},_=e.computed(()=>a.loadingStatus?"loading-circle":a.successStatus?"line-check-natural":a.leftIconName);return(r,t)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass([e.unref(P).button,e.unref(P)[`button__${r.variant}`],e.unref(P)[`button__${r.variant}-${r.color}`],e.unref(P)[`button__size_${r.size}`],{[e.unref(P).fill]:r.fill}]),disabled:a.disabled,onClick:l},[_.value?(e.openBlock(),e.createBlock(e.unref(M),{key:0,name:_.value},null,8,["name"])):e.createCommentVNode("",!0),r.label?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(P).button__label)},e.toDisplayString(r.label),3)):e.createCommentVNode("",!0),r.rightIconName?(e.openBlock(),e.createBlock(e.unref(M),{key:2,name:r.rightIconName},null,8,["name"])):e.createCommentVNode("",!0)],10,ve))}}),we={mounted(u,n){u.clickOutsideEvent=a=>{[u,...n.value.exclude||[]].some(l=>l&&(l===a.target||l.contains(a.target)))||n.value.handler()},document.addEventListener("click",u.clickOutsideEvent)},unmounted(u){u.clickOutsideEvent&&document.removeEventListener("click",u.clickOutsideEvent)}},he=(u,n)=>{var o;let a=0;for(const l of u)if(l.toLowerCase()===((o=n[a])==null?void 0:o.toLowerCase())&&a++,a===n.length)return!0;return!1},ye=(u,n,a)=>{if(!a.trim())return u;const o=a.toLowerCase();return u.filter(l=>{const _=String(l[n]);return he(_.toLowerCase(),o)}).sort((l,_)=>{const r=String(l[n]).toLowerCase(),t=String(_[n]).toLowerCase();return r===o?-1:t===o?1:r.startsWith(o)&&!t.startsWith(o)?-1:!r.startsWith(o)&&t.startsWith(o)?1:r.length-t.length})},ke="_dropdown_c02u6_1",ze="_menu_c02u6_1",Ce="_dropdown__valueContent_c02u6_183",Be="_dropdown__label_c02u6_194",$e="_dropdown__value_c02u6_183",xe="_dropdown__placeholder_c02u6_202",Se="_dropdown__arrowIcon_c02u6_210",Ee="_menu__searchContainer_c02u6_225",Ve="_menu__searchInputWrap_c02u6_229",Ne="_menu__searchInput_c02u6_229",Ie="_menu__errorMessage_c02u6_251",Pe="_menu__addButton_c02u6_258",Me="_menu__itemContainer_c02u6_266",Te="_menu__item_c02u6_266",b={dropdown:ke,menu:ze,dropdown__valueContent:Ce,"dropdown__valueContent--open":"_dropdown__valueContent--open_c02u6_191",dropdown__label:Be,dropdown__value:$e,dropdown__placeholder:xe,dropdown__arrowIcon:Se,menu__searchContainer:Ee,menu__searchInputWrap:Ve,menu__searchInput:Ne,"menu__searchInput--error":"_menu__searchInput--error_c02u6_248",menu__errorMessage:Ie,menu__addButton:Pe,menu__itemContainer:Me,menu__item:Te,"menu__item--active":"_menu__item--active_c02u6_304"},He=["for"],De=["placeholder"],Le=["onClick"],Oe=e.defineComponent({__name:"DropdownMenu",props:{id:{},label:{},modelValue:{default:""},menuHeight:{default:154},placeholder:{},addable:{type:Boolean},addButtonText:{},searchable:{type:Boolean},searchPlaceHolder:{},items:{},validateAddItem:{type:Function,default:()=>null}},emits:["update:modelValue","add-error","item-added","select-item"],setup(u,{emit:n}){const a=we,o=u,l=n,_=e.ref(),r=e.ref(),t=e.ref(!1),s=e.ref(null),c=e.ref(""),p=e.ref(null),y=e.ref({x:0,y:0,width:0,shouldOpenUp:!1,height:o.menuHeight}),z=e.reactive([...o.items]),k=e.reactive([...o.items]),N=()=>{if(!_.value)return;const{offsetTop:d,offsetLeft:m,offsetWidth:h}=_.value,I=window.innerHeight,T=d+_.value.offsetHeight,q=T+o.menuHeight>I;y.value={x:m+window.scrollX,y:q?d+window.scrollY:T+window.scrollY,width:h,shouldOpenUp:q,height:o.menuHeight}},w=()=>{N(),t.value=!t.value},x=()=>{p.value=null,c.value="",z.splice(0,z.length,...k)},L=()=>{t.value=!1,x()},R=d=>{s.value=d,l("select-item",d),l("update:modelValue",d.value),L()},V=()=>{const d=c.value.trim(),m=o.validateAddItem(d,k);if(m){p.value=m,l("add-error",m);return}const h={text:d,value:d};k.push(h),x(),l("item-added",h)},F=()=>{const d=ye(k,"text",c.value);z.splice(0,z.length,...d)},O=()=>{p.value=""},G=e.computed(()=>({top:y.value.shouldOpenUp?`${y.value.y-10}px`:`${y.value.y}px`,left:`${y.value.x}px`,width:`${y.value.width}px`,height:`${o.menuHeight}px`}));e.onMounted(()=>{if(N(),o.modelValue){const d=k.find(m=>m.value===o.modelValue);d&&(s.value=d)}});const j=e.computed(()=>s.value?s.value.text:"");return e.watch(()=>o.items,d=>{k.splice(0,k.length,...d),z.splice(0,z.length,...d)},{deep:!0}),(d,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"dropdownRef",ref:_,class:e.normalizeClass(e.unref(b).dropdown)},[d.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(b).dropdown__label),for:d.id},e.toDisplayString(d.label),11,He)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:e.normalizeClass([e.unref(b).dropdown__valueContent,{[e.unref(b)["dropdown__valueContent--open"]]:t.value}]),onClick:w},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(b).dropdown__value)},e.toDisplayString(j.value),3),d.placeholder&&!j.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(b).dropdown__placeholder)},e.toDisplayString(d.placeholder),3)):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock("svg",{fill:"none",height:"17",viewBox:"0 0 16 17",width:"16",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(e.unref(b).dropdown__arrowIcon)},m[2]||(m[2]=[e.createElementVNode("path",{d:"M8 11.2021L4.5359 6.70215L11.4641 6.70215L8 11.2021Z",fill:"#91949F"},null,-1)]),2))],2)],2),t.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuRef",ref:r,class:e.normalizeClass(e.unref(b).menu),style:e.normalizeStyle(G.value),onClick:m[1]||(m[1]=e.withModifiers(()=>{},["prevent"]))},[o.searchable?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(b).menu__searchContainer)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(b).menu__searchInputWrap)},[e.withDirectives(e.createElementVNode("input",{type:"text",class:e.normalizeClass([e.unref(b).menu__searchInput,{[e.unref(b)["menu__searchInput--error"]]:p.value}]),placeholder:d.searchPlaceHolder,"onUpdate:modelValue":m[0]||(m[0]=h=>c.value=h),onFocus:O,onInput:F},null,42,De),[[e.vModelText,c.value]]),p.value?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(e.unref(b).menu__errorMessage)},e.toDisplayString(p.value),3)):e.createCommentVNode("",!0)],2),o.addable?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(b).menu__addButton),onClick:V},e.toDisplayString(d.addButtonText),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("ul",{class:e.normalizeClass(e.unref(b).menu__itemContainer)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(z,(h,I)=>(e.openBlock(),e.createElementBlock("li",{key:`${h.value}-${I}`,class:e.normalizeClass([e.unref(b).menu__item,{[e.unref(b)["menu__item--active"]]:s.value&&h.value===s.value.value}]),onClick:T=>R(h)},e.toDisplayString(h.text),11,Le))),128))],2)],6)),[[e.unref(a),{handler:L,exclude:[_.value,r.value]}]]):e.createCommentVNode("",!0)],64))}}),je=["fill","height","width"],qe=["xlink:href"],We=e.defineComponent({__name:"Icon",props:{name:{},size:{default:16},color:{}},setup(u){const n=u,a=e.computed(()=>typeof n.size=="number"?`${n.size}px`:n.size);return(o,l)=>(e.openBlock(),e.createElementBlock("svg",{class:"icon",fill:o.color||"currentColor",height:a.value,width:a.value},[e.createElementVNode("use",{"xlink:href":`#${o.name}`},null,8,qe)],8,je))}}),Ae=(u,n)=>{const a=u.__vccOpts||u;for(const[o,l]of n)a[o]=l;return a},M=Ae(We,[["__scopeId","data-v-f04c8857"]]),Re="_container_2joy4_1",Fe="_container__text_2joy4_187",Ge="_container__default_2joy4_191",Ye="_container__warning_2joy4_199",Xe="_container__alert_2joy4_207",Ue="_container__success_2joy4_215",U={container:Re,container__text:Fe,container__default:Ge,container__warning:Ye,container__alert:Xe,container__success:Ue},Qe=e.defineComponent({__name:"OnPageMessage",props:{variant:{default:"default"},text:{}},setup(u){const n=u,a=e.computed(()=>{switch(n.variant){case"alert":return"filled-error-box";case"warning":return"line-caution-triangle";case"success":return"line-check-natural";default:return"filled-info-circle"}});return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(U).container,e.unref(U)[`container__${o.variant}`]])},[e.createVNode(M,{name:a.value,size:24},null,8,["name"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(U).container__text)},e.toDisplayString(o.text),3)],2))}}),Ze="_button__size_default_4wo1i_1",Je="_button__size_small_4wo1i_8",Ke="_button_4wo1i_1",et="_button__label_4wo1i_191",tt="_button__solid_4wo1i_330",ot="_segmentGroup_4wo1i_337",nt="_fill_4wo1i_359",B={button__size_default:Ze,button__size_small:Je,button:Ke,button__label:et,"button--primary":"_button--primary_4wo1i_208","button--selected":"_button--selected_4wo1i_218","button--secondary":"_button--secondary_4wo1i_231","button--danger":"_button--danger_4wo1i_254","button--warning":"_button--warning_4wo1i_277","button--smart":"_button--smart_4wo1i_300",button__solid:tt,segmentGroup:ot,"segmentGroup--vertical":"_segmentGroup--vertical_4wo1i_340","segmentGroup--horizontal":"_segmentGroup--horizontal_4wo1i_349",fill:nt},rt=["disabled","onClick"],at=e.defineComponent({__name:"SegmentButton",props:{color:{},size:{default:"default"},align:{default:"horizontal"},disabled:{type:Boolean,default:!1},segments:{},fill:{type:Boolean},modelValue:{}},emits:["update:modelValue","click"],setup(u,{emit:n}){const a=u,o=n,l=e.ref(a.modelValue||""),_=t=>{a.disabled||t.disabled||(l.value=t.value,o("update:modelValue",t.value),o("click",t.value))};e.watch(()=>a.modelValue,t=>{l.value=t||""});const r=e.ref([...a.segments]);return e.watch(()=>a.segments,t=>{r.value=[...t],t.some(s=>s.value===l.value)||(l.value="",o("update:modelValue",""))},{deep:!0}),(t,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(B).segmentGroup,e.unref(B)[`segmentGroup--${t.align}`],{[e.unref(B).fill]:t.fill}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(c,p)=>(e.openBlock(),e.createElementBlock("button",{key:`${c.value}-${p}`,class:e.normalizeClass([e.unref(B).button,e.unref(B)[`button--${t.color}`],e.unref(B)[`button__size_${t.size}`],e.unref(B).fill,{[e.unref(B)["button--selected"]]:c.value===l.value}]),disabled:c.disabled||a.disabled,onClick:y=>_(c)},[c.icon?(e.openBlock(),e.createBlock(e.unref(M),{key:0,name:c.icon},null,8,["name"])):e.createCommentVNode("",!0),c.label?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(B).button__label)},e.toDisplayString(c.label),3)):e.createCommentVNode("",!0)],10,rt))),128))],2))}}),lt="_wrapper__field_1ujuh_1",st="_wrapper__label_1ujuh_1",it="_wrapper__errorMessage_1ujuh_1",ut="_wrapper__counter_1ujuh_1",_t="_wrapper_1ujuh_1",ct="_wrapper__bottom_1ujuh_220",$={wrapper__field:lt,wrapper__label:st,wrapper__errorMessage:it,wrapper__counter:ut,wrapper:_t,wrapper__bottom:ct,"wrapper--error":"_wrapper--error_1ujuh_233"},pt=["for"],dt=["id","maxlength","name","placeholder","value"],mt=["id","maxlength","name","placeholder","value"],ft=e.defineComponent({__name:"TextInput",props:{id:{},name:{},modelValue:{default:""},label:{default:""},placeholder:{default:""},maxLength:{default:void 0},maxHeight:{default:void 0},error:{default:""},multiline:{type:Boolean,default:!1},autoGrow:{type:Boolean,default:!1},counter:{type:Boolean}},emits:["update:modelValue","input","change","paste","focus","blur"],setup(u,{emit:n}){const a=u,o=n,l=e.ref(null),_=()=>{if(a.autoGrow&&l.value){l.value.style.height="";const t=Math.min(l.value.scrollHeight,a.maxHeight||l.value.scrollHeight);l.value.style.height=`${t}px`}},r=t=>{const s=t.target;o("input",t),o("update:modelValue",s.value),_()};return e.onMounted(()=>{_()}),(t,s)=>{var c;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref($).wrapper)},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref($).wrapper__label),for:t.id},e.toDisplayString(t.label),11,pt)):e.createCommentVNode("",!0),t.multiline?(e.openBlock(),e.createElementBlock("textarea",{key:1,id:t.id,ref_key:"textareaRef",ref:l,class:e.normalizeClass([e.unref($).wrapper__field,{[e.unref($)["wrapper--error"]]:t.error}]),maxlength:t.maxLength,name:t.name,placeholder:t.placeholder,style:e.normalizeStyle(t.maxHeight?{maxHeight:`${t.maxHeight}px`}:void 0),value:t.modelValue,onBlur:s[0]||(s[0]=p=>o("blur",p)),onChange:s[1]||(s[1]=p=>t.$emit("change",p)),onFocus:s[2]||(s[2]=p=>o("focus",p)),onInput:r,onPaste:s[3]||(s[3]=p=>o("paste",p))},null,46,dt)):(e.openBlock(),e.createElementBlock("input",{key:2,id:t.id,type:"text",class:e.normalizeClass([e.unref($).wrapper__field,{[e.unref($)["wrapper--error"]]:t.error}]),maxlength:t.maxLength,name:t.name,placeholder:t.placeholder,value:t.modelValue,onBlur:s[4]||(s[4]=p=>o("blur",p)),onChange:s[5]||(s[5]=p=>t.$emit("change",p)),onFocus:s[6]||(s[6]=p=>o("focus",p)),onInput:r,onPaste:s[7]||(s[7]=p=>o("paste",p))},null,42,mt)),e.createElementVNode("div",{class:e.normalizeClass(e.unref($).wrapper__bottom)},[t.error?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref($).wrapper__errorMessage)},e.toDisplayString(t.error),3)):e.createCommentVNode("",!0),t.counter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref($).wrapper__counter)},e.toDisplayString(((c=t.modelValue)==null?void 0:c.toString().length)||0),3)):e.createCommentVNode("",!0)],2)],2)}}}),bt="_wrapper__label_3sncs_1",vt="_wrapper__errorMessage_3sncs_1",gt="_wrapper__counter_3sncs_1",wt="_wrapper_3sncs_1",ht="_wrapper__field_3sncs_8",yt="_wrapper__size_default_3sncs_185",kt="_wrapper__size_small_3sncs_188",zt="_wrapper__bottom_3sncs_225",S={wrapper__label:bt,wrapper__errorMessage:vt,wrapper__counter:gt,wrapper:wt,wrapper__field:ht,wrapper__size_default:yt,wrapper__size_small:kt,wrapper__bottom:zt,"wrapper--error":"_wrapper--error_3sncs_238"},Ct=["for"],Bt=["id","max","maxlength","min","name","placeholder","value"],$t=e.defineComponent({__name:"NumberInput",props:{id:{},name:{},modelValue:{default:void 0},label:{default:""},placeholder:{default:""},maxLength:{default:void 0},error:{default:""},errorStatus:{type:Boolean},counter:{type:Boolean},min:{default:void 0},max:{default:void 0},size:{default:"default"}},emits:["update:modelValue","input","change","paste","focus","blur"],setup(u,{emit:n}){const a=u,o=n,l=r=>{var s,c;if(r==="")return r;const t=Number(r);return typeof a.min=="number"&&t<a.min?(s=a.min)==null?void 0:s.toString():typeof a.max=="number"&&t>a.max?(c=a.max)==null?void 0:c.toString():t.toString()},_=r=>{const t=r.target,s=l(t.value);t.value=s,o("input",r),o("update:modelValue",Number(s))};return(r,t)=>{var s;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(S).wrapper,e.unref(S)[`wrapper__size_${r.size}`]])},[r.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(S).wrapper__label),for:r.id},e.toDisplayString(r.label),11,Ct)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:r.id,type:"number",class:e.normalizeClass([e.unref(S).wrapper__field,{[e.unref(S)["wrapper--error"]]:r.error||r.errorStatus}]),max:r.max,maxlength:r.maxLength,min:r.min,name:r.name,placeholder:r.placeholder,value:r.modelValue,onBlur:t[0]||(t[0]=c=>o("blur",c)),onChange:t[1]||(t[1]=c=>r.$emit("change",c)),onFocus:t[2]||(t[2]=c=>o("focus",c)),onInput:_,onPaste:t[3]||(t[3]=c=>o("paste",c))},null,42,Bt),r.counter||r.error?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(S).wrapper__bottom)},[r.error?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(S).wrapper__errorMessage)},e.toDisplayString(r.error),3)):e.createCommentVNode("",!0),r.counter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(S).wrapper__counter)},e.toDisplayString(((s=r.modelValue)==null?void 0:s.toString().length)||0),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],2)}}}),xt="_wrapper_d1zlt_169",St="_wrapper__label_d1zlt_176",Et="_wrapper__input_d1zlt_200",Vt="_wrapper_checked_d1zlt_210",Nt="_wrapper_disabled_d1zlt_217",D={wrapper:xt,wrapper__label:St,wrapper__input:Et,wrapper_checked:Vt,wrapper_disabled:Nt},It=["id","checked","disabled","name"],Pt=["for"],Mt=e.defineComponent({__name:"Toggle",props:{id:{},name:{},checked:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(u,{emit:n}){const a=u,o=n,l=()=>{o("click",!a.checked)};return(_,r)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass([e.unref(D).wrapper,{[e.unref(D).wrapper_checked]:_.checked,[e.unref(D).wrapper_disabled]:_.disabled}])},[e.createElementVNode("input",{id:_.id,type:"checkbox",checked:_.checked,class:e.normalizeClass(e.unref(D).wrapper__input),disabled:_.disabled,name:_.name,onClick:l},null,10,It),e.createElementVNode("label",{class:e.normalizeClass(e.unref(D).wrapper__label),for:_.id},null,10,Pt)],2))}});function Tt(u=""){return typeof u=="string"?u.replace(/<\/style>/gi,"").replace(/<(.*?) on(.*?)=['"](.*?)>/gi,"").replace(/(<meta |<style|<\/*script)(.*?)>/gi,"").replace(/(<([^>]+)>)/ig,"").replace(/<(.*?) (href|src)="j(.*)a(.*)v(.*)a(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t(.*):(.*?)>/gi,""):u}const Ht="_wrapper__box_1cst8_1",Dt="_wrapper_1cst8_1",Lt="_wrapper__icon_1cst8_184",Ot="_wrapper__text_1cst8_267",E={wrapper__box:Ht,wrapper:Dt,wrapper__icon:Lt,"wrapper__box_bottom-start":"_wrapper__box_bottom-start_1cst8_199","wrapper__box_bottom-center":"_wrapper__box_bottom-center_1cst8_205","wrapper__box_bottom-end":"_wrapper__box_bottom-end_1cst8_211","wrapper__box_top-start":"_wrapper__box_top-start_1cst8_217","wrapper__box_top-center":"_wrapper__box_top-center_1cst8_223","wrapper__box_top-end":"_wrapper__box_top-end_1cst8_229","wrapper__box_right-start":"_wrapper__box_right-start_1cst8_235","wrapper__box_right-center":"_wrapper__box_right-center_1cst8_241","wrapper__box_right-end":"_wrapper__box_right-end_1cst8_247","wrapper__box_left-start":"_wrapper__box_left-start_1cst8_252","wrapper__box_left-center":"_wrapper__box_left-center_1cst8_257","wrapper__box_left-end":"_wrapper__box_left-end_1cst8_262",wrapper__text:Ot,"wrapper__box-content":"_wrapper__box-content_1cst8_296","bottom-entrance":"_bottom-entrance_1cst8_309","top-entrance":"_top-entrance_1cst8_312","left-entrance":"_left-entrance_1cst8_315","right-entrance":"_right-entrance_1cst8_318","bottom-leave":"_bottom-leave_1cst8_321","top-leave":"_top-leave_1cst8_324","right-leave":"_right-leave_1cst8_327","left-leave":"_left-leave_1cst8_330"},jt=["id"],qt=["innerHTML"],Wt=e.defineComponent({__name:"Tooltip",props:{id:{},text:{},staticPosition:{default:"top center"},dynamicPosition:{type:Boolean},absolutePositionStatus:{type:Boolean,default:!1},offsetX:{default:4},offsetY:{default:4},maxHeight:{default:320},status:{type:Boolean,default:!0},preventXss:{type:Boolean},iconName:{default:void 0},absoluteTriangleAlignment:{default:"center"},absoluteTrianglePosition:{default:"top"},absolutePosition:{type:[Boolean,null,String,Object,Array]}},setup(u){const n=u,a=e.ref(null),o=e.ref("center"),l=e.ref("bottom"),_=e.ref("center"),r=e.ref(!1),t=e.ref(""),s=e.ref(!1),c=e.ref(!1),p=e.ref(""),y=e.ref("d-n"),z=e.ref(null),k=e.ref(null),N=e.ref(null),w=e.computed(()=>n.staticPosition.split(" ")[0]),x=e.computed(()=>n.staticPosition.split(" ")[1]),L=e.computed(()=>n.iconName?"mt-1":"mt-0"),R=e.computed(()=>n.preventXss?Tt(n.text):n.text),V=e.computed(()=>n.absolutePositionStatus?n.absoluteTrianglePosition:n.dynamicPosition&&r.value?l.value==="bottom"?"top":"bottom":w.value==="top"?"bottom":w.value==="bottom"?"top":w.value==="left"?"right":w.value==="right"?"left":"bottom"),F=e.computed(()=>n.absolutePositionStatus?"":s.value&&c.value||p.value==="icon"&&s.value?"opa-1":"opa-0"),O=e.computed(()=>n.absolutePositionStatus?n.absoluteTriangleAlignment:n.dynamicPosition&&r.value?o.value==="center"?"center":o.value==="end"?"end":o.value==="start"?"start":_.value:x.value==="center"?"center":x.value==="left"||x.value==="top"?"start":x.value==="right"||x.value==="bottom"?"end":"center"),G=e.computed(()=>n.absolutePositionStatus?"":n.dynamicPosition&&r.value?E[`wrapper__box_${l.value}-${o.value}`]:E[`wrapper__box_${w.value}-${O.value}`]),j=e.computed(()=>n.offsetX===0&&n.offsetY===0?{}:n.dynamicPosition?{[`margin-${l.value==="bottom"?"top":"bottom"}`]:`${n.offsetY}px`}:V.value==="top"||V.value==="bottom"?{[`margin-${V.value}`]:`${n.offsetY}px`}:{[`margin-${V.value}`]:`${n.offsetX}px`}),d=(i,f,v=!1)=>{if(!i||!k.value)return{left:!1,right:!1,top:!1,bottom:!1,center:!1};const C={left:0,right:0,top:0,bottom:0,width:0,height:0},X=k.value.clientHeight,H=window.innerWidth,le=window.innerHeight,Q=i.clientHeight,W=i.clientWidth||264,g=(f==null?void 0:f.getBoundingClientRect())||C,Z=v?g==null?void 0:g.right:g==null?void 0:g.left,J=v?g==null?void 0:g.top:g==null?void 0:g.bottom,se=Z+g.width+W+n.offsetX<H,ie=Z+g.width/2-(W+n.offsetX)>10,ue=J+Q<le-n.offsetY,_e=J-(Q+X+n.offsetY)>0;let K=!1;return n.iconName&&(K=g.right+W/2<H&&g.left-(W+n.offsetX)/2>=10),{left:ie,right:se,bottom:ue,top:_e,center:K}},m=()=>{e.nextTick(()=>{var H;r.value=!0;const{bottom:i,left:f,right:v,top:C,center:X}=d(N.value,(H=N.value)==null?void 0:H.parentNode);if(X){o.value="center",l.value=i&&!C?"bottom":"top";return}if(i&&f&&v&&C){o.value="center",l.value="top";return}if(C&&!i){if(v&&f){o.value="center",l.value="top";return}if(v&&!f){o.value="start",l.value="top";return}if(!v&&f){o.value="end",l.value="top";return}}if(i&&C){if(!v&&f){o.value="end",l.value="top",_.value="end";return}if(v&&!f){o.value="start",l.value="top",_.value="start";return}}if(i&&!C){if(v&&f){o.value="center",l.value="bottom",_.value="top";return}if(!v&&f){o.value="end",l.value="bottom",_.value="top";return}v&&!f&&(o.value="start",l.value="bottom",_.value="top")}})},h=i=>{if(!(i instanceof HTMLElement))return!1;const f=i.scrollHeight>i.clientHeight,v=window.getComputedStyle(i).overflowY,C=["auto","scroll"].includes(v);return f&&C},I=i=>{const f=(i==null?void 0:i.nodeType)===Node.COMMENT_NODE,v=(i==null?void 0:i.nodeType)===Node.DOCUMENT_NODE;return!i||f||v?document:h(i)?i:I(i.parentNode)},T=()=>{var i;(i=z.value)==null||i.removeEventListener("scroll",m),window==null||window.removeEventListener("resize",m)},q=()=>{e.nextTick(()=>{var i;z.value=I(k.value),(i=z.value)==null||i.addEventListener("scroll",m),window==null||window.addEventListener("resize",m)})},te=()=>{p.value="wrapper",y.value="d-b",s.value=!0},Y=()=>{p.value="icon",y.value="d-b",c.value=!0},oe=()=>{c.value=!1},ne=()=>{p.value="",s.value=!1,c.value=!1},re=()=>{ne(),n.dynamicPosition?l.value==="bottom"?t.value="bottom-leave":l.value==="top"&&(t.value="top-leave"):w.value==="top"?t.value="top-leave":w.value==="bottom"?t.value="bottom-leave":w.value==="left"?t.value="left-leave":w.value==="right"&&(t.value="right-leave"),setTimeout(()=>{t.value="",y.value="d-n"},n.absolutePositionStatus?0:250)},ae=()=>{te(),m(),n.dynamicPosition?l.value==="bottom"?t.value="top-entrance":l.value==="top"&&(t.value="bottom-entrance"):w.value==="top"?t.value="bottom-entrance":w.value==="bottom"?t.value="top-entrance":w.value==="left"?t.value="right-entrance":w.value==="right"&&(t.value="left-entrance"),setTimeout(()=>{t.value=""},250)};return e.onMounted(()=>{n.dynamicPosition&&q()}),e.onBeforeUnmount(()=>{T()}),(i,f)=>(e.openBlock(),e.createElementBlock("div",{id:i.id,ref_key:"tooltipRootRef",ref:k,class:e.normalizeClass(e.unref(E).wrapper),onMouseenter:ae,onMouseleave:re},[i.iconName?(e.openBlock(),e.createBlock(e.unref(M),{key:0,ref_key:"tooltipIconRef",ref:a,class:e.normalizeClass(e.unref(E).wrapper__icon),name:i.iconName,onMouseenter:Y,onMouseleave:oe},null,8,["class","name"])):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(E).wrapper__icon),onMouseenter:Y,onMouseleave:Y},[e.renderSlot(i.$slots,"triggerElement")],34)),i.status?(e.openBlock(),e.createElementBlock("div",{key:2,ref_key:"tooltipPopupRef",ref:N,class:e.normalizeClass([e.unref(E).wrapper__box,G.value,F.value,y.value]),style:e.normalizeStyle(i.absolutePosition)},[e.createVNode(e.unref(ee),{"border-triangle":"","border-triangle-align":O.value,"border-triangle-position":V.value,class:e.normalizeClass([e.unref(E)["wrapper__box-content"],L.value,t.value]),style:e.normalizeStyle(j.value)},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(E).wrapper__text),style:e.normalizeStyle({maxHeight:`${i.maxHeight}px`,overflowY:"auto"})},[e.createElementVNode("div",{innerHTML:R.value},null,8,qt),e.renderSlot(i.$slots,"contentSlot")],6)]),_:3},8,["border-triangle-align","border-triangle-position","class","style"])],6)):e.createCommentVNode("",!0)],42,jt))}}),At="_box_14qkh_169",Rt="_flipBox_14qkh_257",A={box:At,"box_top-start":"_box_top-start_14qkh_173","box_top-center":"_box_top-center_14qkh_173","box_top-end":"_box_top-end_14qkh_173","box_right-start":"_box_right-start_14qkh_173","box_right-center":"_box_right-center_14qkh_173","box_right-end":"_box_right-end_14qkh_173","box_bottom-start":"_box_bottom-start_14qkh_173","box_bottom-center":"_box_bottom-center_14qkh_173","box_bottom-end":"_box_bottom-end_14qkh_173","box_left-start":"_box_left-start_14qkh_173","box_left-center":"_box_left-center_14qkh_173","box_left-end":"_box_left-end_14qkh_173",flipBox:Rt},Ft=e.defineComponent({__name:"DefaultBox",props:{border:{},borderRadius:{default:"bor-r-1"},borderTriangle:{type:Boolean,default:!1},borderTriangleAlign:{default:"center"},borderTrianglePosition:{default:"top"}},emits:["click"],setup(u,{emit:n}){const a=u,o=n,l=e.computed(()=>a.borderTriangle?A[`box_${a.borderTrianglePosition}-${a.borderTriangleAlign}`]:"");function _(){o("click")}return(r,t)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(A).box,l.value,r.border,r.borderRadius]),onClick:_},[e.renderSlot(r.$slots,"default")],2))}}),Gt=e.defineComponent({__name:"FlipBox",props:{boxSpacing:{default:""}},setup(u){return(n,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(A).flipBox,n.boxSpacing])},[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass([e.unref(A).box,n.boxSpacing])},[e.renderSlot(n.$slots,"front")],2),e.createElementVNode("div",{class:e.normalizeClass([n.boxSpacing])},[e.renderSlot(n.$slots,"reverse")],2)])],2))}}),ee=e.defineComponent({__name:"Box",props:{type:{default:"default"},borderTriangle:{type:Boolean,default:!1},borderTriangleAlign:{},borderTrianglePosition:{},boxSpacing:{default:""}},setup(u){const n={default:Ft,flip:Gt};return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[a.type]),{"border-triangle":a.borderTriangle,"border-triangle-align":a.borderTriangleAlign,"border-triangle-position":a.borderTrianglePosition,"box-spacing":a.boxSpacing},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default"),e.renderSlot(a.$slots,"front"),e.renderSlot(a.$slots,"reverse")]),_:3},8,["border-triangle","border-triangle-align","border-triangle-position","box-spacing"]))}});exports.Box=ee;exports.Button=ge;exports.DropdownMenu=Oe;exports.Icon=M;exports.NumberInput=$t;exports.OnPageMessage=Qe;exports.SegmentButton=at;exports.TextInput=ft;exports.Toggle=Mt;exports.Tooltip=Wt;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),pe="_button__size_default_16zzc_1",de="_button__size_small_16zzc_8",me="_button_16zzc_1",fe="_button__label_16zzc_193",be="_button__solid_16zzc_205",ve="_fill_16zzc_1125",M={button__size_default:pe,button__size_small:de,button:me,button__label:fe,"button__solid-primary":"_button__solid-primary_16zzc_205","no-hover-effect":"_no-hover-effect_16zzc_212","button--selected":"_button--selected_16zzc_234","button__solid-subtle-primary":"_button__solid-subtle-primary_16zzc_241","button__solid-secondary":"_button__solid-secondary_16zzc_277","button__solid-danger":"_button__solid-danger_16zzc_313","button__solid-warning":"_button__solid-warning_16zzc_349","button__solid-smart":"_button__solid-smart_16zzc_385","button__ghost-primary":"_button__ghost-primary_16zzc_421","button__ghost-subtle-primary":"_button__ghost-subtle-primary_16zzc_457","button__ghost-secondary":"_button__ghost-secondary_16zzc_493","button__ghost-danger":"_button__ghost-danger_16zzc_529","button__ghost-warning":"_button__ghost-warning_16zzc_565","button__ghost-smart":"_button__ghost-smart_16zzc_601","button__text-primary":"_button__text-primary_16zzc_637","button__text-text":"_button__text-text_16zzc_673","button__text-subtle-primary":"_button__text-subtle-primary_16zzc_709","button__text-secondary":"_button__text-secondary_16zzc_745","button__text-danger":"_button__text-danger_16zzc_781","button__text-warning":"_button__text-warning_16zzc_817","button__text-smart":"_button__text-smart_16zzc_853","button__outline-primary":"_button__outline-primary_16zzc_889","button__outline-subtle-primary":"_button__outline-subtle-primary_16zzc_926","button__outline-secondary":"_button__outline-secondary_16zzc_963","button__outline-danger":"_button__outline-danger_16zzc_1000","button__outline-warning":"_button__outline-warning_16zzc_1037","button__outline-smart":"_button__outline-smart_16zzc_1074",button__solid:be,fill:ve},ge=["disabled"],we=e.defineComponent({__name:"Button",props:{variant:{},color:{},size:{default:"default"},leftIconName:{},rightIconName:{},loadingStatus:{type:Boolean,default:!1},successStatus:{type:Boolean,default:!1},label:{},disabled:{type:Boolean,default:!1},fill:{type:Boolean,default:!1}},emits:["click"],setup(_,{emit:n}){const a=_,o=n,l=r=>{a.disabled||o("click",r)},u=e.computed(()=>a.loadingStatus?"loading-circle":a.successStatus?"line-check-natural":a.leftIconName);return(r,t)=>(e.openBlock(),e.createElementBlock("button",{class:e.normalizeClass([e.unref(M).button,e.unref(M)[`button__${r.variant}`],e.unref(M)[`button__${r.variant}-${r.color}`],e.unref(M)[`button__size_${r.size}`],{[e.unref(M).fill]:r.fill}]),disabled:a.disabled,onClick:l},[u.value?(e.openBlock(),e.createBlock(e.unref(T),{key:0,name:u.value},null,8,["name"])):e.createCommentVNode("",!0),r.label?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(M).button__label)},e.toDisplayString(r.label),3)):e.createCommentVNode("",!0),r.rightIconName?(e.openBlock(),e.createBlock(e.unref(T),{key:2,name:r.rightIconName},null,8,["name"])):e.createCommentVNode("",!0)],10,ge))}}),he={mounted(_,n){_.clickOutsideEvent=a=>{[_,...n.value.exclude||[]].some(l=>l&&(l===a.target||l.contains(a.target)))||n.value.handler()},document.addEventListener("click",_.clickOutsideEvent)},unmounted(_){_.clickOutsideEvent&&document.removeEventListener("click",_.clickOutsideEvent)}},ke=(_,n)=>{var o;let a=0;for(const l of _)if(l.toLowerCase()===((o=n[a])==null?void 0:o.toLowerCase())&&a++,a===n.length)return!0;return!1},ze=(_,n,a)=>{if(!a.trim())return _;const o=a.toLowerCase();return _.filter(l=>{const u=String(l[n]);return ke(u.toLowerCase(),o)}).sort((l,u)=>{const r=String(l[n]).toLowerCase(),t=String(u[n]).toLowerCase();return r===o?-1:t===o?1:r.startsWith(o)&&!t.startsWith(o)?-1:!r.startsWith(o)&&t.startsWith(o)?1:r.length-t.length})},ye="_dropdown_c02u6_1",Ce="_menu_c02u6_1",Be="_dropdown__valueContent_c02u6_183",$e="_dropdown__label_c02u6_194",xe="_dropdown__value_c02u6_183",Se="_dropdown__placeholder_c02u6_202",Ee="_dropdown__arrowIcon_c02u6_210",Ve="_menu__searchContainer_c02u6_225",Ne="_menu__searchInputWrap_c02u6_229",Ie="_menu__searchInput_c02u6_229",Pe="_menu__errorMessage_c02u6_251",Me="_menu__addButton_c02u6_258",Te="_menu__itemContainer_c02u6_266",He="_menu__item_c02u6_266",v={dropdown:ye,menu:Ce,dropdown__valueContent:Be,"dropdown__valueContent--open":"_dropdown__valueContent--open_c02u6_191",dropdown__label:$e,dropdown__value:xe,dropdown__placeholder:Se,dropdown__arrowIcon:Ee,menu__searchContainer:Ve,menu__searchInputWrap:Ne,menu__searchInput:Ie,"menu__searchInput--error":"_menu__searchInput--error_c02u6_248",menu__errorMessage:Pe,menu__addButton:Me,menu__itemContainer:Te,menu__item:He,"menu__item--active":"_menu__item--active_c02u6_304"},De=["for"],Le=["placeholder"],Oe=["onClick"],We=e.defineComponent({__name:"DropdownMenu",props:{id:{},label:{},modelValue:{default:""},menuHeight:{default:154},placeholder:{},addable:{type:Boolean},addButtonText:{},searchable:{type:Boolean},searchPlaceHolder:{},items:{},validateAddItem:{type:Function,default:()=>null}},emits:["update:modelValue","add-error","item-added","select-item"],setup(_,{emit:n}){const a=he,o=_,l=n,u=e.ref(),r=e.ref(),t=e.ref(!1),i=e.ref(null),c=e.ref(""),p=e.ref(null),k=e.ref({x:0,y:0,width:0,shouldOpenUp:!1,height:o.menuHeight}),C=e.reactive([...o.items]),z=e.reactive([...o.items]),I=()=>{if(!u.value)return;const{offsetTop:d,offsetLeft:g,offsetWidth:b}=u.value,H=window.innerHeight,P=d+u.value.offsetHeight,q=P+o.menuHeight>H;k.value={x:g+window.scrollX,y:q?d+window.scrollY:P+window.scrollY,width:b,shouldOpenUp:q,height:o.menuHeight}},h=()=>{I(),t.value=!t.value},x=()=>{p.value=null,c.value="",C.splice(0,C.length,...z)},O=()=>{t.value=!1,x()},F=d=>{i.value=d,l("select-item",d),l("update:modelValue",d.value),O()},V=()=>{const d=c.value.trim(),g=o.validateAddItem(d,z);if(g){p.value=g,l("add-error",g);return}const b={text:d,value:d};z.push(b),x(),l("item-added",b)},G=()=>{const d=ze(z,"text",c.value);C.splice(0,C.length,...d)},W=()=>{p.value=""},Y=e.computed(()=>({top:k.value.shouldOpenUp?`${k.value.y-10}px`:`${k.value.y}px`,left:`${k.value.x}px`,width:`${k.value.width}px`,height:`${o.menuHeight}px`}));e.onMounted(()=>{if(I(),o.modelValue){const d=z.find(g=>g.value===o.modelValue);d&&(i.value=d)}});const j=e.computed(()=>i.value?i.value.text:"");return e.watch(()=>o.items,d=>{z.splice(0,z.length,...d),C.splice(0,C.length,...d)},{deep:!0}),(d,g)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{ref_key:"dropdownRef",ref:u,class:e.normalizeClass(e.unref(v).dropdown)},[d.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(v).dropdown__label),for:d.id},e.toDisplayString(d.label),11,De)):e.createCommentVNode("",!0),e.createElementVNode("button",{class:e.normalizeClass([e.unref(v).dropdown__valueContent,{[e.unref(v)["dropdown__valueContent--open"]]:t.value}]),onClick:h},[e.createElementVNode("span",{class:e.normalizeClass(e.unref(v).dropdown__value)},e.toDisplayString(j.value),3),d.placeholder&&!j.value?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(e.unref(v).dropdown__placeholder)},e.toDisplayString(d.placeholder),3)):e.createCommentVNode("",!0),(e.openBlock(),e.createElementBlock("svg",{fill:"none",height:"17",viewBox:"0 0 16 17",width:"16",xmlns:"http://www.w3.org/2000/svg",class:e.normalizeClass(e.unref(v).dropdown__arrowIcon)},g[2]||(g[2]=[e.createElementVNode("path",{d:"M8 11.2021L4.5359 6.70215L11.4641 6.70215L8 11.2021Z",fill:"#91949F"},null,-1)]),2))],2)],2),t.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"menuRef",ref:r,class:e.normalizeClass(e.unref(v).menu),style:e.normalizeStyle(Y.value),onClick:g[1]||(g[1]=e.withModifiers(()=>{},["prevent"]))},[o.searchable?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(v).menu__searchContainer)},[e.createElementVNode("div",{class:e.normalizeClass(e.unref(v).menu__searchInputWrap)},[e.withDirectives(e.createElementVNode("input",{type:"text",class:e.normalizeClass([e.unref(v).menu__searchInput,{[e.unref(v)["menu__searchInput--error"]]:p.value}]),placeholder:d.searchPlaceHolder,"onUpdate:modelValue":g[0]||(g[0]=b=>c.value=b),onFocus:W,onInput:G},null,42,Le),[[e.vModelText,c.value]]),p.value?(e.openBlock(),e.createElementBlock("p",{key:0,class:e.normalizeClass(e.unref(v).menu__errorMessage)},e.toDisplayString(p.value),3)):e.createCommentVNode("",!0)],2),o.addable?(e.openBlock(),e.createElementBlock("button",{key:0,class:e.normalizeClass(e.unref(v).menu__addButton),onClick:V},e.toDisplayString(d.addButtonText),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0),e.createElementVNode("ul",{class:e.normalizeClass(e.unref(v).menu__itemContainer)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(C,(b,H)=>(e.openBlock(),e.createElementBlock("li",{key:`${b.value}-${H}`,class:e.normalizeClass([e.unref(v).menu__item,{[e.unref(v)["menu__item--active"]]:i.value&&b.value===i.value.value}]),onClick:P=>F(b)},e.toDisplayString(b.text),11,Oe))),128))],2)],6)),[[e.unref(a),{handler:O,exclude:[u.value,r.value]}]]):e.createCommentVNode("",!0)],64))}}),je=["fill","height","width"],qe=["xlink:href"],Ae=e.defineComponent({__name:"Icon",props:{name:{},size:{default:16},color:{}},setup(_){const n=_,a=e.computed(()=>typeof n.size=="number"?`${n.size}px`:n.size);return(o,l)=>(e.openBlock(),e.createElementBlock("svg",{class:"icon",fill:o.color||"currentColor",height:a.value,width:a.value},[e.createElementVNode("use",{"xlink:href":`#${o.name}`},null,8,qe)],8,je))}}),Re=(_,n)=>{const a=_.__vccOpts||_;for(const[o,l]of n)a[o]=l;return a},T=Re(Ae,[["__scopeId","data-v-f04c8857"]]),Fe="_container_pab2j_1",Ge="_container__text_pab2j_185",Ye="_container__default_pab2j_189",Xe="_container__warning_pab2j_197",Ue="_container__alert_pab2j_205",Qe="_container__success_pab2j_213",Q={container:Fe,container__text:Ge,container__default:Ye,container__warning:Xe,container__alert:Ue,container__success:Qe},Ze=e.defineComponent({__name:"OnPageMessage",props:{variant:{default:"default"},text:{}},setup(_){const n=_,a=e.computed(()=>{switch(n.variant){case"alert":return"icon-info-box-error";case"warning":return"line-caution-triangle";case"success":return"line-check-natural";default:return"filled-info-circle"}});return(o,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(Q).container,e.unref(Q)[`container__${o.variant}`]])},[e.createVNode(T,{name:a.value,size:24},null,8,["name"]),e.createElementVNode("span",{class:e.normalizeClass(e.unref(Q).container__text)},e.toDisplayString(o.text),3)],2))}}),Je="_button__size_default_4wo1i_1",Ke="_button__size_small_4wo1i_8",et="_button_4wo1i_1",tt="_button__label_4wo1i_191",ot="_button__solid_4wo1i_330",nt="_segmentGroup_4wo1i_337",rt="_fill_4wo1i_359",B={button__size_default:Je,button__size_small:Ke,button:et,button__label:tt,"button--primary":"_button--primary_4wo1i_208","button--selected":"_button--selected_4wo1i_218","button--secondary":"_button--secondary_4wo1i_231","button--danger":"_button--danger_4wo1i_254","button--warning":"_button--warning_4wo1i_277","button--smart":"_button--smart_4wo1i_300",button__solid:ot,segmentGroup:nt,"segmentGroup--vertical":"_segmentGroup--vertical_4wo1i_340","segmentGroup--horizontal":"_segmentGroup--horizontal_4wo1i_349",fill:rt},at=["disabled","onClick"],lt=e.defineComponent({__name:"SegmentButton",props:{color:{},size:{default:"default"},align:{default:"horizontal"},disabled:{type:Boolean,default:!1},segments:{},fill:{type:Boolean},modelValue:{}},emits:["update:modelValue","click"],setup(_,{emit:n}){const a=_,o=n,l=e.ref(a.modelValue||""),u=t=>{a.disabled||t.disabled||(l.value=t.value,o("update:modelValue",t.value),o("click",t.value))};e.watch(()=>a.modelValue,t=>{l.value!==t&&(l.value=t||"")});const r=e.ref([...a.segments]);return e.watch(()=>a.segments,t=>{r.value=[...t],t.some(i=>i.value===l.value)||(l.value="",o("update:modelValue",""))},{deep:!0}),(t,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(B).segmentGroup,e.unref(B)[`segmentGroup--${t.align}`],{[e.unref(B).fill]:t.fill}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(c,p)=>(e.openBlock(),e.createElementBlock("button",{key:`${c.value}-${p}`,class:e.normalizeClass([e.unref(B).button,e.unref(B)[`button--${t.color}`],e.unref(B)[`button__size_${t.size}`],e.unref(B).fill,{[e.unref(B)["button--selected"]]:c.value===l.value}]),disabled:c.disabled||a.disabled,onClick:k=>u(c)},[c.icon?(e.openBlock(),e.createBlock(e.unref(T),{key:0,name:c.icon},null,8,["name"])):e.createCommentVNode("",!0),c.label?(e.openBlock(),e.createElementBlock("span",{key:1,class:e.normalizeClass(e.unref(B).button__label)},e.toDisplayString(c.label),3)):e.createCommentVNode("",!0)],10,at))),128))],2))}}),st="_wrapper__field_1fjsl_1",it="_wrapper__label_1fjsl_1",_t="_wrapper__errorMessage_1fjsl_1",ut="_wrapper__counter_1fjsl_1",ct="_wrapper_1fjsl_1",pt="_wrapper__bottom_1fjsl_221",$={wrapper__field:st,wrapper__label:it,wrapper__errorMessage:_t,wrapper__counter:ut,wrapper:ct,wrapper__bottom:pt,"wrapper--error":"_wrapper--error_1fjsl_234"},dt=["for"],mt=["id","maxlength","name","placeholder","value"],ft=["id","maxlength","name","placeholder","value"],bt=e.defineComponent({__name:"TextInput",props:{id:{},name:{},modelValue:{default:""},label:{default:""},placeholder:{default:""},maxLength:{default:void 0},maxHeight:{default:void 0},error:{default:""},multiline:{type:Boolean,default:!1},autoGrow:{type:Boolean,default:!1},counter:{type:Boolean}},emits:["update:modelValue","input","change","paste","focus","blur"],setup(_,{emit:n}){const a=_,o=n,l=e.ref(null),u=()=>{if(a.autoGrow&&l.value){l.value.style.height="";const t=Math.min(l.value.scrollHeight,a.maxHeight||l.value.scrollHeight);l.value.style.height=`${t}px`}},r=t=>{const i=t.target;o("input",t),o("update:modelValue",i.value),u()};return e.onMounted(()=>{u()}),(t,i)=>{var c;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref($).wrapper)},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref($).wrapper__label),for:t.id},e.toDisplayString(t.label),11,dt)):e.createCommentVNode("",!0),t.multiline?(e.openBlock(),e.createElementBlock("textarea",{key:1,id:t.id,ref_key:"textareaRef",ref:l,class:e.normalizeClass([e.unref($).wrapper__field,{[e.unref($)["wrapper--error"]]:t.error}]),maxlength:t.maxLength,name:t.name,placeholder:t.placeholder,style:e.normalizeStyle(t.maxHeight?{maxHeight:`${t.maxHeight}px`}:void 0),value:t.modelValue,onBlur:i[0]||(i[0]=p=>o("blur",p)),onChange:i[1]||(i[1]=p=>t.$emit("change",p)),onFocus:i[2]||(i[2]=p=>o("focus",p)),onInput:r,onPaste:i[3]||(i[3]=p=>o("paste",p))},null,46,mt)):(e.openBlock(),e.createElementBlock("input",{key:2,id:t.id,type:"text",class:e.normalizeClass([e.unref($).wrapper__field,{[e.unref($)["wrapper--error"]]:t.error}]),maxlength:t.maxLength,name:t.name,placeholder:t.placeholder,value:t.modelValue,onBlur:i[4]||(i[4]=p=>o("blur",p)),onChange:i[5]||(i[5]=p=>t.$emit("change",p)),onFocus:i[6]||(i[6]=p=>o("focus",p)),onInput:r,onPaste:i[7]||(i[7]=p=>o("paste",p))},null,42,ft)),e.createElementVNode("div",{class:e.normalizeClass(e.unref($).wrapper__bottom)},[t.error?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref($).wrapper__errorMessage)},e.toDisplayString(t.error),3)):e.createCommentVNode("",!0),t.counter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref($).wrapper__counter)},e.toDisplayString(((c=t.modelValue)==null?void 0:c.toString().length)||0),3)):e.createCommentVNode("",!0)],2)],2)}}}),vt="_wrapper__label_3sncs_1",gt="_wrapper__errorMessage_3sncs_1",wt="_wrapper__counter_3sncs_1",ht="_wrapper_3sncs_1",kt="_wrapper__field_3sncs_8",zt="_wrapper__size_default_3sncs_185",yt="_wrapper__size_small_3sncs_188",Ct="_wrapper__bottom_3sncs_225",S={wrapper__label:vt,wrapper__errorMessage:gt,wrapper__counter:wt,wrapper:ht,wrapper__field:kt,wrapper__size_default:zt,wrapper__size_small:yt,wrapper__bottom:Ct,"wrapper--error":"_wrapper--error_3sncs_238"},Bt=["for"],$t=["id","max","maxlength","min","name","placeholder","value"],xt=e.defineComponent({__name:"NumberInput",props:{id:{},name:{},modelValue:{default:void 0},label:{default:""},placeholder:{default:""},maxLength:{default:void 0},error:{default:""},errorStatus:{type:Boolean},counter:{type:Boolean},min:{default:void 0},max:{default:void 0},size:{default:"default"}},emits:["update:modelValue","input","change","paste","focus","blur"],setup(_,{emit:n}){const a=_,o=n,l=r=>{var i,c;if(r==="")return r;const t=Number(r);return typeof a.min=="number"&&t<a.min?(i=a.min)==null?void 0:i.toString():typeof a.max=="number"&&t>a.max?(c=a.max)==null?void 0:c.toString():t.toString()},u=r=>{const t=r.target,i=l(t.value);t.value=i,o("input",r),o("update:modelValue",Number(i))};return(r,t)=>{var i;return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(S).wrapper,e.unref(S)[`wrapper__size_${r.size}`]])},[r.label?(e.openBlock(),e.createElementBlock("label",{key:0,class:e.normalizeClass(e.unref(S).wrapper__label),for:r.id},e.toDisplayString(r.label),11,Bt)):e.createCommentVNode("",!0),e.createElementVNode("input",{id:r.id,type:"number",class:e.normalizeClass([e.unref(S).wrapper__field,{[e.unref(S)["wrapper--error"]]:r.error||r.errorStatus}]),max:r.max,maxlength:r.maxLength,min:r.min,name:r.name,placeholder:r.placeholder,value:r.modelValue,onBlur:t[0]||(t[0]=c=>o("blur",c)),onChange:t[1]||(t[1]=c=>r.$emit("change",c)),onFocus:t[2]||(t[2]=c=>o("focus",c)),onInput:u,onPaste:t[3]||(t[3]=c=>o("paste",c))},null,42,$t),r.counter||r.error?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(S).wrapper__bottom)},[r.error?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(e.unref(S).wrapper__errorMessage)},e.toDisplayString(r.error),3)):e.createCommentVNode("",!0),r.counter?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(S).wrapper__counter)},e.toDisplayString(((i=r.modelValue)==null?void 0:i.toString().length)||0),3)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)],2)}}}),St="_wrapper_d1zlt_169",Et="_wrapper__label_d1zlt_176",Vt="_wrapper__input_d1zlt_200",Nt="_wrapper_checked_d1zlt_210",It="_wrapper_disabled_d1zlt_217",L={wrapper:St,wrapper__label:Et,wrapper__input:Vt,wrapper_checked:Nt,wrapper_disabled:It},Pt=["id","checked","disabled","name"],Mt=["for"],Tt=e.defineComponent({__name:"Toggle",props:{id:{},name:{},checked:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["click"],setup(_,{emit:n}){const a=_,o=n,l=()=>{o("click",!a.checked)};return(u,r)=>(e.openBlock(),e.createElementBlock("fieldset",{class:e.normalizeClass([e.unref(L).wrapper,{[e.unref(L).wrapper_checked]:u.checked,[e.unref(L).wrapper_disabled]:u.disabled}])},[e.createElementVNode("input",{id:u.id,type:"checkbox",checked:u.checked,class:e.normalizeClass(e.unref(L).wrapper__input),disabled:u.disabled,name:u.name,onClick:l},null,10,Pt),e.createElementVNode("label",{class:e.normalizeClass(e.unref(L).wrapper__label),for:u.id},null,10,Mt)],2))}});function Ht(_=""){return typeof _=="string"?_.replace(/<\/style>/gi,"").replace(/<(.*?) on(.*?)=['"](.*?)>/gi,"").replace(/(<meta |<style|<\/*script)(.*?)>/gi,"").replace(/(<([^>]+)>)/ig,"").replace(/<(.*?) (href|src)="j(.*)a(.*)v(.*)a(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t(.*):(.*?)>/gi,""):_}const Dt="_wrapper__box_1avga_1",Lt="_wrapper_1avga_1",Ot="_wrapper__icon_1avga_184",Wt="_wrapper__text_1avga_267",E={wrapper__box:Dt,wrapper:Lt,wrapper__icon:Ot,"wrapper__box_bottom-start":"_wrapper__box_bottom-start_1avga_199","wrapper__box_bottom-center":"_wrapper__box_bottom-center_1avga_205","wrapper__box_bottom-end":"_wrapper__box_bottom-end_1avga_211","wrapper__box_top-start":"_wrapper__box_top-start_1avga_217","wrapper__box_top-center":"_wrapper__box_top-center_1avga_223","wrapper__box_top-end":"_wrapper__box_top-end_1avga_229","wrapper__box_right-start":"_wrapper__box_right-start_1avga_235","wrapper__box_right-center":"_wrapper__box_right-center_1avga_241","wrapper__box_right-end":"_wrapper__box_right-end_1avga_247","wrapper__box_left-start":"_wrapper__box_left-start_1avga_252","wrapper__box_left-center":"_wrapper__box_left-center_1avga_257","wrapper__box_left-end":"_wrapper__box_left-end_1avga_262",wrapper__text:Wt,"wrapper__box-content":"_wrapper__box-content_1avga_296","bottom-entrance":"_bottom-entrance_1avga_309","top-entrance":"_top-entrance_1avga_312","left-entrance":"_left-entrance_1avga_315","right-entrance":"_right-entrance_1avga_318","bottom-leave":"_bottom-leave_1avga_321","top-leave":"_top-leave_1avga_324","right-leave":"_right-leave_1avga_327","left-leave":"_left-leave_1avga_330"},jt=["id"],qt=["innerHTML"],At=e.defineComponent({__name:"Tooltip",props:{id:{},text:{},staticPosition:{default:"top center"},dynamicPosition:{type:Boolean},absolutePositionStatus:{type:Boolean,default:!1},offsetX:{default:4},offsetY:{default:4},maxHeight:{default:320},status:{type:Boolean,default:!0},preventXss:{type:Boolean},iconName:{default:void 0},absoluteTriangleAlignment:{default:"center"},absoluteTrianglePosition:{default:"top"},absolutePosition:{type:[Boolean,null,String,Object,Array]}},setup(_){const n=_,a=e.ref(null),o=e.ref("center"),l=e.ref("bottom"),u=e.ref("center"),r=e.ref(!1),t=e.ref(""),i=e.ref(!1),c=e.ref(!1),p=e.ref(""),k=e.ref("d-n"),C=e.ref(null),z=e.ref(null),I=e.ref(null),h=e.computed(()=>n.staticPosition.split(" ")[0]),x=e.computed(()=>n.staticPosition.split(" ")[1]),O=e.computed(()=>n.iconName?"mt-1":"mt-0"),F=e.computed(()=>n.preventXss?Ht(n.text):n.text),V=e.computed(()=>n.absolutePositionStatus?n.absoluteTrianglePosition:n.dynamicPosition&&r.value?l.value==="bottom"?"top":"bottom":h.value==="top"?"bottom":h.value==="bottom"?"top":h.value==="left"?"right":h.value==="right"?"left":"bottom"),G=e.computed(()=>n.absolutePositionStatus?"":i.value&&c.value||p.value==="icon"&&i.value?"opa-1":"opa-0"),W=e.computed(()=>n.absolutePositionStatus?n.absoluteTriangleAlignment:n.dynamicPosition&&r.value?o.value==="center"?"center":o.value==="end"?"end":o.value==="start"?"start":u.value:x.value==="center"?"center":x.value==="left"||x.value==="top"?"start":x.value==="right"||x.value==="bottom"?"end":"center"),Y=e.computed(()=>n.absolutePositionStatus?"":n.dynamicPosition&&r.value?E[`wrapper__box_${l.value}-${o.value}`]:E[`wrapper__box_${h.value}-${W.value}`]),j=e.computed(()=>n.offsetX===0&&n.offsetY===0?{}:n.dynamicPosition?{[`margin-${l.value==="bottom"?"top":"bottom"}`]:`${n.offsetY}px`}:V.value==="top"||V.value==="bottom"?{[`margin-${V.value}`]:`${n.offsetY}px`}:{[`margin-${V.value}`]:`${n.offsetX}px`}),d=s=>{const{offsetTop:m,offsetLeft:f,offsetWidth:y,offsetHeight:D}=s,N=m+D,U=f+y;return{top:m,left:f,width:y,bottom:N,right:U}},g=(s,m,f=!1)=>{if(!s||!z.value)return{left:!1,right:!1,top:!1,bottom:!1,center:!1};const y={left:0,right:0,top:0,bottom:0,width:0,height:0},D=z.value.offsetHeight,N=window.innerWidth,U=window.innerHeight,Z=s.offsetHeight,A=s.offsetWidth||264,w=m&&d(m)||y,J=f?w==null?void 0:w.right:w==null?void 0:w.left,K=f?w==null?void 0:w.top:w==null?void 0:w.bottom,ie=J+w.width+A+n.offsetX<N,_e=J+w.width/2-(A+n.offsetX)>10,ue=K+Z<U-n.offsetY,ce=K-(Z+D+n.offsetY)>0;let ee=!1;return n.iconName&&(ee=w.right+A/2<N&&w.left-(A+n.offsetX)/2>=10),{left:_e,right:ie,bottom:ue,top:ce,center:ee}},b=()=>{e.nextTick(()=>{var N;r.value=!0;const{bottom:s,left:m,right:f,top:y,center:D}=g(I.value,(N=I.value)==null?void 0:N.parentNode);if(D){o.value="center",l.value=s&&!y?"bottom":"top";return}if(s&&m&&f&&y){o.value="center",l.value="top";return}if(y&&!s){if(f&&m){o.value="center",l.value="top";return}if(f&&!m){o.value="start",l.value="top";return}if(!f&&m){o.value="end",l.value="top";return}}if(s&&y){if(!f&&m){o.value="end",l.value="top",u.value="end";return}if(f&&!m){o.value="start",l.value="top",u.value="start";return}}if(s&&!y){if(f&&m){o.value="center",l.value="bottom",u.value="top";return}if(!f&&m){o.value="end",l.value="bottom",u.value="top";return}f&&!m&&(o.value="start",l.value="bottom",u.value="top")}})},H=s=>{if(!(s instanceof HTMLElement))return!1;const m=s.scrollHeight>s.offsetHeight,f=window.getComputedStyle(s).overflowY,y=["auto","scroll"].includes(f);return m&&y},P=s=>{const m=(s==null?void 0:s.nodeType)===Node.COMMENT_NODE,f=(s==null?void 0:s.nodeType)===Node.DOCUMENT_NODE;return!s||m||f?document:H(s)?s:P(s.parentNode)},q=()=>{var s;(s=C.value)==null||s.removeEventListener("scroll",b),window==null||window.removeEventListener("resize",b)},oe=()=>{e.nextTick(()=>{var s;C.value=P(z.value),(s=C.value)==null||s.addEventListener("scroll",b),window==null||window.addEventListener("resize",b)})},ne=()=>{p.value="wrapper",k.value="d-b",i.value=!0},X=()=>{p.value="icon",k.value="d-b",c.value=!0},re=()=>{c.value=!1},ae=()=>{p.value="",i.value=!1,c.value=!1},le=()=>{ae(),n.dynamicPosition?l.value==="bottom"?t.value="bottom-leave":l.value==="top"&&(t.value="top-leave"):h.value==="top"?t.value="top-leave":h.value==="bottom"?t.value="bottom-leave":h.value==="left"?t.value="left-leave":h.value==="right"&&(t.value="right-leave"),setTimeout(()=>{t.value="",k.value="d-n"},n.absolutePositionStatus?0:250)},se=()=>{ne(),b(),n.dynamicPosition?l.value==="bottom"?t.value="top-entrance":l.value==="top"&&(t.value="bottom-entrance"):h.value==="top"?t.value="bottom-entrance":h.value==="bottom"?t.value="top-entrance":h.value==="left"?t.value="right-entrance":h.value==="right"&&(t.value="left-entrance"),setTimeout(()=>{t.value=""},250)};return e.onMounted(()=>{n.dynamicPosition&&oe()}),e.onBeforeUnmount(()=>{q()}),(s,m)=>(e.openBlock(),e.createElementBlock("div",{id:s.id,ref_key:"tooltipRootRef",ref:z,class:e.normalizeClass(e.unref(E).wrapper),onMouseenter:se,onMouseleave:le},[s.iconName?(e.openBlock(),e.createBlock(e.unref(T),{key:0,ref_key:"tooltipIconRef",ref:a,class:e.normalizeClass(e.unref(E).wrapper__icon),name:s.iconName,onMouseenter:X,onMouseleave:re},null,8,["class","name"])):(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(E).wrapper__icon),onMouseenter:X,onMouseleave:X},[e.renderSlot(s.$slots,"triggerElement")],34)),s.status?(e.openBlock(),e.createElementBlock("div",{key:2,ref_key:"tooltipPopupRef",ref:I,class:e.normalizeClass([e.unref(E).wrapper__box,Y.value,G.value,k.value]),style:e.normalizeStyle(s.absolutePosition)},[e.createVNode(e.unref(te),{"border-triangle":"","border-triangle-align":W.value,"border-triangle-position":V.value,class:e.normalizeClass([e.unref(E)["wrapper__box-content"],O.value,t.value]),style:e.normalizeStyle(j.value)},{default:e.withCtx(()=>[e.createElementVNode("div",{class:e.normalizeClass(e.unref(E).wrapper__text),style:e.normalizeStyle({maxHeight:`${s.maxHeight}px`,overflowY:"auto"})},[e.createElementVNode("div",{innerHTML:F.value},null,8,qt),e.renderSlot(s.$slots,"contentSlot")],6)]),_:3},8,["border-triangle-align","border-triangle-position","class","style"])],6)):e.createCommentVNode("",!0)],42,jt))}}),Rt="_box_14qkh_169",Ft="_flipBox_14qkh_257",R={box:Rt,"box_top-start":"_box_top-start_14qkh_173","box_top-center":"_box_top-center_14qkh_173","box_top-end":"_box_top-end_14qkh_173","box_right-start":"_box_right-start_14qkh_173","box_right-center":"_box_right-center_14qkh_173","box_right-end":"_box_right-end_14qkh_173","box_bottom-start":"_box_bottom-start_14qkh_173","box_bottom-center":"_box_bottom-center_14qkh_173","box_bottom-end":"_box_bottom-end_14qkh_173","box_left-start":"_box_left-start_14qkh_173","box_left-center":"_box_left-center_14qkh_173","box_left-end":"_box_left-end_14qkh_173",flipBox:Ft},Gt=e.defineComponent({__name:"DefaultBox",props:{border:{},borderRadius:{default:"bor-r-1"},borderTriangle:{type:Boolean,default:!1},borderTriangleAlign:{default:"center"},borderTrianglePosition:{default:"top"}},emits:["click"],setup(_,{emit:n}){const a=_,o=n,l=e.computed(()=>a.borderTriangle?R[`box_${a.borderTrianglePosition}-${a.borderTriangleAlign}`]:"");function u(){o("click")}return(r,t)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(R).box,l.value,r.border,r.borderRadius]),onClick:u},[e.renderSlot(r.$slots,"default")],2))}}),Yt=e.defineComponent({__name:"FlipBox",props:{boxSpacing:{default:""}},setup(_){return(n,a)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(R).flipBox,n.boxSpacing])},[e.createElementVNode("div",null,[e.createElementVNode("div",{class:e.normalizeClass([e.unref(R).box,n.boxSpacing])},[e.renderSlot(n.$slots,"front")],2),e.createElementVNode("div",{class:e.normalizeClass([n.boxSpacing])},[e.renderSlot(n.$slots,"reverse")],2)])],2))}}),te=e.defineComponent({__name:"Box",props:{type:{default:"default"},borderTriangle:{type:Boolean,default:!1},borderTriangleAlign:{},borderTrianglePosition:{},boxSpacing:{default:""}},setup(_){const n={default:Gt,flip:Yt};return(a,o)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n[a.type]),{"border-triangle":a.borderTriangle,"border-triangle-align":a.borderTriangleAlign,"border-triangle-position":a.borderTrianglePosition,"box-spacing":a.boxSpacing},{default:e.withCtx(()=>[e.renderSlot(a.$slots,"default"),e.renderSlot(a.$slots,"front"),e.renderSlot(a.$slots,"reverse")]),_:3},8,["border-triangle","border-triangle-align","border-triangle-position","box-spacing"]))}});exports.Box=te;exports.Button=we;exports.DropdownMenu=We;exports.Icon=T;exports.NumberInput=xt;exports.OnPageMessage=Ze;exports.SegmentButton=lt;exports.TextInput=bt;exports.Toggle=Tt;exports.Tooltip=At;
2
2
  //# sourceMappingURL=ab-components.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ab-components.cjs.js","sources":["../src/components/Button/Button.vue","../src/directives/clickOutside.ts","../src/utils/search.ts","../src/components/Dropdown/DropdownMenu.vue","../src/components/Icon/Icon.vue","../src/components/OnPageMessage/OnPageMessage.vue","../src/components/SegmentButton/SegmentButton.vue","../src/components/TextInput/TextInput.vue","../src/components/NumberInput/NumberInput.vue","../src/components/Toggle/Toggle.vue","../src/utils/preventXSS.ts","../src/components/Tooltip/Tooltip.vue","../src/components/Box/DefaultBox.vue","../src/components/Box/Box.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\n\nimport { Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './Button.module.scss';\n\ninterface ButtonProps {\n variant: 'solid' | 'ghost' | 'text' | 'outline';\n color: 'primary' | 'subtle-primary' | 'secondary' | 'danger' | 'warning' | 'smart';\n size?: 'default' | 'small';\n leftIconName?: IconNames;\n rightIconName?: IconNames;\n loadingStatus?: boolean;\n successStatus?: boolean;\n label?: string;\n disabled?: boolean;\n fill?: boolean;\n}\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n loadingStatus: false,\n successStatus: false,\n disabled: false,\n fill: false,\n size: 'default',\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst onClick = (event: MouseEvent) => {\n if (props.disabled) {\n return;\n }\n\n emit('click', event);\n};\n\nconst leftIcon = computed<IconNames | undefined>(() => {\n if (props.loadingStatus) {\n return 'loading-circle';\n } else if (props.successStatus) {\n return 'line-check-natural';\n }\n\n return props.leftIconName;\n});\n</script>\n\n<template>\n <button\n :class=\"[\n styles.button,\n styles[`button__${variant}`],\n styles[`button__${variant}-${color}`],\n styles[`button__size_${size}`],\n { [styles.fill]: fill },\n ]\"\n :disabled=\"props.disabled\"\n @click=\"onClick\">\n <Icon\n v-if=\"leftIcon\"\n :name=\"leftIcon\" />\n <span\n v-if=\"label\"\n :class=\"styles.button__label\">\n {{ label }}\n </span>\n <Icon\n v-if=\"rightIconName\"\n :name=\"rightIconName\" />\n </button>\n</template>\n","import type { DirectiveBinding } from 'vue';\n\ninterface ClickOutsideElement extends HTMLElement {\n clickOutsideEvent?: (event: Event) => void;\n}\n\nexport default {\n mounted(el: ClickOutsideElement, binding: DirectiveBinding<{ handler: () => void; exclude?: HTMLElement[] }>) {\n el.clickOutsideEvent = (event: Event) => {\n const isClickInside = [el, ...(binding.value.exclude || [])].some(element => {\n return element && (element === event.target || element.contains(event.target as Node))\n });\n\n if (!isClickInside) {\n binding.value.handler(); // Close handler\n }\n };\n\n document.addEventListener('click', el.clickOutsideEvent);\n },\n unmounted(el: ClickOutsideElement) {\n if (el.clickOutsideEvent) {\n document.removeEventListener('click', el.clickOutsideEvent);\n }\n },\n};","const isFuzzyMatch = (choiceValue: string, searchTerm: string): boolean => {\n let searchIndex = 0;\n for (const char of choiceValue) {\n if (char.toLowerCase() === searchTerm[searchIndex]?.toLowerCase()) {\n searchIndex++;\n }\n if (searchIndex === searchTerm.length) {\n return true;\n }\n }\n return false;\n};\n\n\nexport const fuzzySearch = <T>(\n choices: T[],\n key: keyof T,\n searchTerm: string,\n): T[] => {\n if (!searchTerm.trim()) {\n return choices;\n }\n\n const normalizedSearchTerm = searchTerm.toLowerCase();\n\n return choices\n .filter(choice => {\n const value = String(choice[key]);\n\n return isFuzzyMatch(value.toLowerCase(), normalizedSearchTerm)\n })\n .sort((a, b) => {\n const aValue = String(a[key]).toLowerCase();\n const bValue = String(b[key]).toLowerCase();\n\n if (aValue === normalizedSearchTerm) return -1;\n if (bValue === normalizedSearchTerm) return 1;\n\n if (aValue.startsWith(normalizedSearchTerm) && !bValue.startsWith(normalizedSearchTerm))\n return -1;\n if (!aValue.startsWith(normalizedSearchTerm) && bValue.startsWith(normalizedSearchTerm))\n return 1;\n\n return aValue.length - bValue.length;\n });\n};\n","<script lang=\"ts\" setup>\nimport { ref, computed, type StyleValue, onMounted, reactive, watch } from 'vue';\nimport clickOutside from '@/directives/clickOutside';\nimport { fuzzySearch } from '@/utils/search';\nimport styles from './Dropdown.module.scss';\n\nconst vClickOutside = clickOutside;\n\ninterface MenuItem {\n text: string;\n value: string;\n}\n\ninterface DropdownProps {\n id: string;\n label?: string;\n modelValue?: string;\n menuHeight?: number;\n placeholder?: string;\n addable?: boolean;\n addButtonText?: string;\n searchable?: boolean;\n searchPlaceHolder?: string;\n items: MenuItem[];\n validateAddItem?: (item: string, items: MenuItem[]) => string | null;\n}\n\ninterface Emits {\n (e: 'update:modelValue', value: string): void;\n (e: 'add-error', error: string): void;\n (e: 'item-added', item: MenuItem): void;\n (e: 'select-item', item: MenuItem): void;\n}\n\nconst props = withDefaults(defineProps<DropdownProps>(), {\n menuHeight: 154,\n searchBar: false,\n addItem: false,\n modelValue: '',\n validateAddItem: () => null,\n});\n\nconst emit = defineEmits<Emits>();\nconst dropdownRef = ref<HTMLDivElement>();\nconst menuRef = ref<HTMLDivElement>();\nconst isOpen = ref(false);\nconst selectedItem = ref<MenuItem | null>(null);\nconst searchQuery = ref('');\nconst errorMessage = ref<string | null>(null);\nconst menuPosition = ref({ x: 0, y: 0, width: 0, shouldOpenUp: false, height: props.menuHeight });\nconst filteredItems = reactive([...props.items]);\nconst allItems = reactive([...props.items]);\n\nconst calculateMenuPosition = () => {\n if (!dropdownRef.value) {\n return;\n }\n\n const { offsetTop: top, offsetLeft: left, offsetWidth: width } = dropdownRef.value;\n const viewportHeight = window.innerHeight;\n const bottom = top + dropdownRef.value.offsetHeight;\n const shouldOpenUp = bottom + props.menuHeight > viewportHeight;\n\n menuPosition.value = {\n x: left + window.scrollX,\n y: shouldOpenUp ? top + window.scrollY : bottom + window.scrollY,\n width,\n shouldOpenUp,\n height: props.menuHeight,\n };\n};\n\nconst toggleMenu = () => {\n calculateMenuPosition();\n isOpen.value = !isOpen.value;\n};\n\nconst resetSettings = () => {\n errorMessage.value = null;\n searchQuery.value = '';\n filteredItems.splice(0, filteredItems.length, ...allItems);\n};\n\nconst closeMenu = () => {\n isOpen.value = false;\n\n resetSettings();\n};\n\nconst selectItem = (item: MenuItem) => {\n selectedItem.value = item;\n\n emit('select-item', item);\n emit('update:modelValue', item.value);\n\n closeMenu();\n};\n\nconst addItem = () => {\n const query = searchQuery.value.trim();\n const error = props.validateAddItem(query, allItems);\n\n if (error) {\n errorMessage.value = error;\n\n emit('add-error', error);\n\n return;\n }\n\n const newItem: MenuItem = {\n text: query,\n value: query,\n };\n\n allItems.push(newItem);\n resetSettings();\n\n emit('item-added', newItem);\n};\n\nconst onSearch = () => {\n const results = fuzzySearch<MenuItem>(allItems, 'text', searchQuery.value);\n\n filteredItems.splice(0, filteredItems.length, ...results);\n};\n\nconst onFocusSearch = () => {\n errorMessage.value = '';\n};\n\nconst menuStyle = computed<Partial<StyleValue>>(() => ({\n top: menuPosition.value.shouldOpenUp ? `${menuPosition.value.y - 10}px` : `${menuPosition.value.y}px`,\n left: `${menuPosition.value.x}px`,\n width: `${menuPosition.value.width}px`,\n height: `${props.menuHeight}px`,\n}));\n\nonMounted(() => {\n calculateMenuPosition();\n\n if (props.modelValue) {\n const defaultItem = allItems.find(item => item.value === props.modelValue);\n\n if (defaultItem) {\n selectedItem.value = defaultItem;\n }\n }\n});\n\nconst selectedValue = computed(() => (selectedItem.value ? selectedItem.value.text : ''));\n\nwatch(\n () => props.items,\n newItems => {\n allItems.splice(0, allItems.length, ...newItems);\n filteredItems.splice(0, filteredItems.length, ...newItems);\n },\n { deep: true }\n);\n</script>\n\n<template>\n <div\n ref=\"dropdownRef\"\n :class=\"styles.dropdown\">\n <label\n v-if=\"label\"\n :class=\"styles.dropdown__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <button\n :class=\"[\n styles.dropdown__valueContent, {\n [styles['dropdown__valueContent--open']]: isOpen,\n },\n ]\"\n @click=\"toggleMenu\">\n <span :class=\"styles.dropdown__value\">\n {{ selectedValue }}\n </span>\n <span\n v-if=\"placeholder && !selectedValue\"\n :class=\"styles.dropdown__placeholder\">\n {{ placeholder }}\n </span>\n <svg\n fill=\"none\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :class=\"styles.dropdown__arrowIcon\">\n <path\n d=\"M8 11.2021L4.5359 6.70215L11.4641 6.70215L8 11.2021Z\"\n fill=\"#91949F\" />\n </svg>\n </button>\n </div>\n\n <div\n v-if=\"isOpen\"\n ref=\"menuRef\"\n :class=\"styles.menu\"\n :style=\"menuStyle\"\n v-click-outside=\"{ handler: closeMenu, exclude: [dropdownRef, menuRef] }\"\n @click.prevent>\n <div\n v-if=\"props.searchable\"\n :class=\"styles.menu__searchContainer\">\n <div :class=\"styles.menu__searchInputWrap\">\n <input\n type=\"text\"\n :class=\"[\n styles.menu__searchInput, {\n [styles['menu__searchInput--error']]: errorMessage,\n },\n ]\"\n :placeholder=\"searchPlaceHolder\"\n v-model=\"searchQuery\"\n @focus=\"onFocusSearch\"\n @input=\"onSearch\">\n <p\n v-if=\"errorMessage\"\n :class=\"styles.menu__errorMessage\">\n {{ errorMessage }}\n </p>\n </div>\n <button\n v-if=\"props.addable\"\n :class=\"styles.menu__addButton\"\n @click=\"addItem\">\n {{ addButtonText }}\n </button>\n </div>\n <ul :class=\"styles.menu__itemContainer\">\n <li\n v-for=\"(item, index) in filteredItems\"\n :key=\"`${item.value}-${index}`\"\n :class=\"[\n styles.menu__item, {\n [styles['menu__item--active']]: selectedItem && item.value === selectedItem.value,\n },\n ]\"\n @click=\"selectItem(item)\">\n {{ item.text }}\n </li>\n </ul>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport type { IconNames } from '@/types/generated/svgIconName';\n\nexport interface IconProps {\n name: IconNames;\n size?: 16 | 24;\n color?: string;\n}\n\nconst props = withDefaults(defineProps<IconProps>(), {\n size: 16,\n});\n\nconst iconSize = computed(() => (typeof props.size === 'number' ? `${props.size}px` : props.size));\n</script>\n\n<template>\n <svg\n class=\"icon\"\n :fill=\"color || 'currentColor'\"\n :height=\"iconSize\"\n :width=\"iconSize\">\n <use :xlink:href=\"`#${name}`\" />\n </svg>\n</template>\n\n<style scoped>\n.icon {\n display: inline-block;\n line-height: 0;\n vertical-align: middle;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport Icon from '@/components/Icon/Icon.vue';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './OnPageMessage.module.scss';\n\ninterface OnPageMessageProps {\n variant?: 'default' | 'warning' | 'alert' | 'success';\n text: string;\n}\n\nconst props = withDefaults(defineProps<OnPageMessageProps>(), {\n variant: 'default',\n});\n\nconst IconName = computed<IconNames>(() => {\n switch (props.variant) {\n case 'alert': return 'filled-error-box';\n case 'warning': return 'line-caution-triangle';\n case 'success': return 'line-check-natural';\n\n default: return 'filled-info-circle';\n }\n});\n</script>\n\n<template>\n <div\n :class=\"[\n styles.container,\n styles[`container__${variant}`],\n ]\">\n <Icon\n :name=\"IconName\"\n :size=\"24\" />\n <span :class=\"styles.container__text\">{{ text }}</span>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { ref, watch } from 'vue';\nimport { Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './SegmentButton.module.scss';\n\nexport interface SegmentType {\n value: string;\n label: string;\n disabled?: boolean;\n icon?: IconNames;\n}\n\nexport interface SegmentButtonProps {\n color: 'primary' | 'secondary' | 'danger' | 'warning' | 'smart';\n size?: 'default' | 'small';\n align?: 'vertical' | 'horizontal';\n disabled?: boolean;\n segments: SegmentType[];\n fill?: boolean;\n modelValue?: string;\n}\n\ninterface SegmentButtonEmits {\n 'update:modelValue': [value: string];\n click: [value: SegmentType['value']];\n}\n\nconst props = withDefaults(defineProps<SegmentButtonProps>(), {\n loadingStatus: false,\n successStatus: false,\n disabled: false,\n size: 'default',\n align: 'horizontal',\n});\n\nconst emit = defineEmits<SegmentButtonEmits>();\nconst selected = ref<string>(props.modelValue || '');\n\nconst setSelect = (segment: SegmentType) => {\n if (props.disabled || segment.disabled) {\n return;\n }\n\n selected.value = segment.value;\n emit('update:modelValue', segment.value);\n emit('click', segment.value);\n};\n\nwatch(() => props.modelValue, newValue => {\n selected.value = newValue || '';\n});\n\nconst filteredSegments = ref<SegmentType[]>([...props.segments]);\n\nwatch(() => props.segments, newSegments => {\n filteredSegments.value = [...newSegments];\n\n if (!newSegments.some(segment => segment.value === selected.value)) {\n selected.value = '';\n emit('update:modelValue', '');\n }\n}, { deep: true });\n</script>\n\n<template>\n <div\n :class=\"[\n styles.segmentGroup,\n styles[`segmentGroup--${align}`],\n { [styles.fill]: fill },\n ]\">\n <button\n v-for=\"(segment, index) in filteredSegments\"\n :key=\"`${segment.value}-${index}`\"\n :class=\"[\n styles.button,\n styles[`button--${color}`],\n styles[`button__size_${size}`],\n styles.fill,\n {\n [styles[`button--selected`]]: segment.value === selected,\n },\n ]\"\n :disabled=\"segment.disabled || props.disabled\"\n @click=\"setSelect(segment)\">\n <Icon\n v-if=\"segment.icon\"\n :name=\"segment.icon\" />\n <span\n v-if=\"segment.label\"\n :class=\"styles.button__label\">\n {{ segment.label }}\n </span>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, ref } from 'vue';\nimport styles from './TextInput.module.scss';\n\nexport interface Props {\n id: string;\n name: string;\n modelValue?: string;\n label?: string;\n placeholder?: string;\n maxLength?: number;\n maxHeight?: number;\n error?: string;\n multiline?: boolean;\n autoGrow?: boolean;\n counter?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n label: '',\n placeholder: '',\n maxLength: undefined,\n maxHeight: undefined,\n error: '',\n multiline: false,\n autoGrow: false,\n modelValue: '',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']];\n input: [event: Event];\n change: [event: Event];\n paste: [event: ClipboardEvent];\n focus: [event: FocusEvent];\n blur: [event: FocusEvent];\n}>();\n\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\n\nconst autoGrow = () => {\n if (props.autoGrow && textareaRef.value) {\n textareaRef.value.style.height = '';\n\n const newHeight = Math.min(textareaRef.value.scrollHeight, props.maxHeight || textareaRef.value.scrollHeight);\n\n textareaRef.value.style.height = `${newHeight}px`;\n }\n};\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n\n emit('input', event);\n emit('update:modelValue', target.value);\n\n autoGrow();\n};\n\nonMounted(() => {\n autoGrow();\n});\n</script>\n\n<template>\n <div :class=\"styles.wrapper\">\n <label\n v-if=\"label\"\n :class=\"styles.wrapper__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <template v-if=\"multiline\">\n <textarea\n :id=\"id\"\n ref=\"textareaRef\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error,\n },\n ]\"\n :maxlength=\"maxLength\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :style=\"maxHeight ? { maxHeight: `${maxHeight}px` } : undefined\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\" />\n </template>\n <template v-else>\n <input\n :id=\"id\"\n type=\"text\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error,\n },\n ]\"\n :maxlength=\"maxLength\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\">\n </template>\n\n <div :class=\"styles.wrapper__bottom\">\n <div\n v-if=\"error\"\n :class=\"styles.wrapper__errorMessage\">\n {{ error }}\n </div>\n <div\n v-if=\"counter\"\n :class=\"styles.wrapper__counter\">\n {{ modelValue?.toString().length || 0 }}\n </div>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport styles from './NumberInput.module.scss';\n\nexport interface Props {\n id: string;\n name: string;\n modelValue?: number;\n label?: string;\n placeholder?: string;\n maxLength?: number;\n error?: string;\n errorStatus?: boolean;\n counter?: boolean;\n min?: number;\n max?: number;\n size?: 'default' | 'small';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n label: '',\n placeholder: '',\n maxLength: undefined,\n min: undefined,\n max: undefined,\n error: '',\n modelValue: undefined,\n size: 'default',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']];\n input: [event: Event];\n change: [event: Event];\n paste: [event: ClipboardEvent];\n focus: [event: FocusEvent];\n blur: [event: FocusEvent];\n}>();\n\nconst applyMinMax = (value: string): string => {\n if (value === '') {\n return value;\n }\n\n const numericValue = Number(value);\n\n if (typeof props.min === 'number' && numericValue < props.min) {\n return props.min?.toString();\n } else if (typeof props.max === 'number' && numericValue > props.max) {\n return props.max?.toString();\n }\n\n return numericValue.toString();\n};\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n const sanitizedValue = applyMinMax(target.value);\n\n target.value = sanitizedValue;\n\n emit('input', event);\n emit('update:modelValue', Number(sanitizedValue));\n};\n</script>\n\n<template>\n <div :class=\"[styles.wrapper, styles[`wrapper__size_${size}`]]\">\n <label\n v-if=\"label\"\n :class=\"styles.wrapper__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <input\n :id=\"id\"\n type=\"number\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error || errorStatus,\n },\n ]\"\n :max=\"max\"\n :maxlength=\"maxLength\"\n :min=\"min\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\">\n\n <div\n v-if=\"counter || error\"\n :class=\"styles.wrapper__bottom\">\n <div\n v-if=\"error\"\n :class=\"styles.wrapper__errorMessage\">\n {{ error }}\n </div>\n <div\n v-if=\"counter\"\n :class=\"styles.wrapper__counter\">\n {{ modelValue?.toString().length || 0 }}\n </div>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport styles from './Toggle.module.scss';\n\ninterface ToggleProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n}\n\nconst props = withDefaults(defineProps<ToggleProps>(), {\n checked: false,\n disabled: false,\n});\n\nconst emit = defineEmits<{\n click: [checked: boolean];\n}>();\n\nconst onClick = () => {\n emit('click', !props.checked);\n};\n</script>\n\n<template>\n <fieldset\n :class=\"[\n styles.wrapper,\n {\n [styles.wrapper_checked]: checked,\n [styles.wrapper_disabled]: disabled,\n },\n ]\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n :checked=\"checked\"\n :class=\"styles.wrapper__input\"\n :disabled=\"disabled\"\n :name=\"name\"\n @click=\"onClick\">\n <label\n :class=\"styles.wrapper__label\"\n :for=\"id\" />\n </fieldset>\n</template>\n","export function preventXSS (html = '') {\n if (typeof(html) === 'string') {\n return html.replace(/<\\/style>/gi, '')\n .replace(/<(.*?) on(.*?)=['\"](.*?)>/gi, '')\n .replace(/(<meta |<style|<\\/*script)(.*?)>/gi, '')\n .replace(/(<([^>]+)>)/ig, '')\n .replace(/<(.*?) (href|src)=\"j(.*)a(.*)v(.*)a(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t(.*):(.*?)>/gi, '');\n }\n return html;\n}\n","<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, type StyleValue } from 'vue';\nimport { Box, Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport { preventXSS } from '@/utils/preventXSS';\nimport styles from './Tooltip.module.scss';\n\ntype TriangleAlignment = 'start' | 'center' | 'end' | 'top';\n\nexport interface TooltipProps {\n id: string;\n text: string;\n staticPosition?: (\n 'top center'\n | 'top left'\n | 'top right'\n | 'bottom center'\n | 'bottom left'\n | 'bottom right'\n | 'right center'\n | 'right top'\n | 'right bottom'\n | 'left center'\n | 'left top'\n | 'left bottom'\n );\n dynamicPosition?: boolean;\n absolutePositionStatus?: boolean;\n offsetX?: number;\n offsetY?: number;\n maxHeight?: number;\n status?: boolean;\n preventXss?: boolean;\n iconName?: IconNames;\n absoluteTriangleAlignment?: TriangleAlignment;\n absoluteTrianglePosition?: 'top' | 'bottom';\n absolutePosition?: StyleValue;\n}\n\nconst props = withDefaults(defineProps<TooltipProps>(), {\n offsetX: 4,\n offsetY: 4,\n staticPosition: 'top center',\n maxHeight: 320,\n status: true,\n iconName: undefined,\n absoluteTriangleAlignment: 'center',\n absoluteTrianglePosition: 'top',\n position: 'bottom',\n align: 'end',\n absolutePositionStatus: false,\n});\n\nconst tooltipIconRef = ref<HTMLElement | null>(null);\nconst dynamicPositionTriangle = ref('center');\nconst dynamicPositionAlignment = ref('bottom');\nconst dynamicPositionTrianglePosition = ref<TriangleAlignment>('center');\nconst dynamicPositionInitialized = ref(false);\nconst animationClass = ref('');\nconst mouseEnterWrapper = ref(false);\nconst mouseEnterIcon = ref(false);\nconst lastEnteredElement = ref('');\nconst displayClass = ref('d-n');\nconst scrollAreaRef = ref<Document | HTMLElement | ParentNode | null>(null);\nconst tooltipRootRef = ref<HTMLElement | null>(null);\nconst tooltipPopupRef = ref<HTMLElement | null>(null);\nconst position = computed(() => props.staticPosition.split(' ')[0]);\nconst alignment = computed(() => props.staticPosition.split(' ')[1]);\nconst topClass = computed(() => (props.iconName ? 'mt-1' : 'mt-0'));\nconst secureText = computed(() => (props.preventXss ? preventXSS(props.text) : props.text));\n\nconst trianglePosition = computed(() => {\n if (props.absolutePositionStatus) {\n return props.absoluteTrianglePosition;\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n return dynamicPositionAlignment.value === 'bottom' ? 'top' : 'bottom';\n }\n\n if (position.value === 'top') {\n return 'bottom';\n }\n\n if (position.value === 'bottom') {\n return 'top';\n }\n\n if (position.value === 'left') {\n return 'right';\n }\n\n if (position.value === 'right') {\n return 'left';\n }\n\n return 'bottom';\n});\n\nconst visibilityClass = computed(() => {\n if (props.absolutePositionStatus) {\n return '';\n }\n\n if (\n (mouseEnterWrapper.value && mouseEnterIcon.value)\n || (lastEnteredElement.value === 'icon' && mouseEnterWrapper.value)\n ) {\n return 'opa-1';\n }\n\n return 'opa-0';\n});\n\nconst triangleAlignment = computed<TriangleAlignment>(() => {\n if (props.absolutePositionStatus) {\n return props.absoluteTriangleAlignment;\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n if (dynamicPositionTriangle.value === 'center') {\n return 'center';\n }\n\n if (dynamicPositionTriangle.value === 'end') {\n return 'end';\n }\n\n if (dynamicPositionTriangle.value === 'start') {\n return 'start';\n }\n\n return dynamicPositionTrianglePosition.value;\n }\n\n if (alignment.value === 'center') {\n return 'center';\n }\n\n if (alignment.value === 'left' || alignment.value === 'top') {\n return 'start';\n }\n\n if (alignment.value === 'right' || alignment.value === 'bottom') {\n return 'end';\n }\n\n return 'center';\n});\n\nconst staticPositionClass = computed(() => {\n if (props.absolutePositionStatus) {\n return '';\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n return styles[`wrapper__box_${dynamicPositionAlignment.value}-${dynamicPositionTriangle.value}`];\n }\n\n return styles[`wrapper__box_${position.value}-${triangleAlignment.value}`];\n});\n\nconst offsetStyle = computed(() => {\n if (props.offsetX === 0 && props.offsetY === 0) {\n return {};\n }\n\n if (props.dynamicPosition) {\n const marginDirection = dynamicPositionAlignment.value === 'bottom' ? 'top' : 'bottom';\n\n return {\n [`margin-${marginDirection}`]: `${props.offsetY}px`,\n };\n }\n\n if (trianglePosition.value === 'top' || trianglePosition.value === 'bottom') {\n return {\n [`margin-${trianglePosition.value}`]: `${props.offsetY}px`,\n };\n }\n\n return { [`margin-${trianglePosition.value}`]: `${props.offsetX}px` };\n});\n\nconst getDynamicPosition = (\n target: HTMLElement | null | undefined,\n parent: HTMLElement | null | undefined,\n nested = false\n) => {\n if (!target || !tooltipRootRef.value) {\n return { left: false, right: false, top: false, bottom: false, center: false };\n }\n\n const customRect = { left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0 };\n const tooltipElementHeight = tooltipRootRef.value.clientHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const targetHeight = target.clientHeight;\n const targetWidth = target.clientWidth || 264;\n const parentRectangle = parent?.getBoundingClientRect() || customRect;\n const parentXOffset = nested ? parentRectangle?.right : parentRectangle?.left;\n const parentYOffset = nested ? parentRectangle?.top : parentRectangle?.bottom;\n const hasSpaceOnRight = (\n (parentXOffset + parentRectangle.width) + targetWidth + props.offsetX\n ) < windowWidth;\n const hasSpaceOnLeft = ((parentXOffset + (parentRectangle.width / 2))\n - (targetWidth + props.offsetX)) > 10;\n const hasSpaceOnBottom = (parentYOffset + targetHeight) < (windowHeight - props.offsetY);\n const hasSpaceOnTop = (parentYOffset - (targetHeight + tooltipElementHeight + props.offsetY)) > 0;\n let hasSpaceOnCenter = false;\n\n if (props.iconName) {\n hasSpaceOnCenter = (parentRectangle.right + (targetWidth / 2) < windowWidth)\n && (parentRectangle.left - ((targetWidth + props.offsetX) / 2) >= 10);\n }\n\n return {\n left: hasSpaceOnLeft,\n right: hasSpaceOnRight,\n bottom: hasSpaceOnBottom,\n top: hasSpaceOnTop,\n center: hasSpaceOnCenter,\n };\n};\n\nconst handleDynamicPosition = () => {\n nextTick(() => {\n dynamicPositionInitialized.value = true;\n\n const { bottom, left, right, top, center } = getDynamicPosition(\n tooltipPopupRef.value,\n tooltipPopupRef.value?.parentNode as HTMLElement\n );\n\n if (center) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = bottom && !top ? 'bottom' : 'top';\n\n return;\n }\n\n // Means that every direction has an available space\n if (bottom && left && right && top) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (top && !bottom) {\n if (right && left) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n }\n\n if (bottom && top) {\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'top';\n dynamicPositionTrianglePosition.value = 'end';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'top';\n dynamicPositionTrianglePosition.value = 'start';\n\n return;\n }\n }\n\n if (bottom && !top) {\n if (right && left) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n\n return;\n }\n\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n }\n }\n });\n};\n\nconst isScrollable = (el: HTMLElement | ParentNode): boolean => {\n if (!(el instanceof HTMLElement)) {\n return false;\n }\n\n const hasScrollableContent = el.scrollHeight > el.clientHeight;\n const overflowYStyle = window.getComputedStyle(el).overflowY;\n const isOverflowScroll = ['auto', 'scroll'].includes(overflowYStyle);\n\n return hasScrollableContent && isOverflowScroll;\n};\n\nconst getScrollableParent = (element: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null => {\n const isComment = element?.nodeType === Node.COMMENT_NODE;\n const isDocument = element?.nodeType === Node.DOCUMENT_NODE;\n\n if (!element || isComment || isDocument) {\n return document;\n }\n\n if (isScrollable(element)) {\n return element;\n }\n\n return getScrollableParent(element.parentNode);\n};\n\nconst killDynamicPositioning = () => {\n scrollAreaRef.value?.removeEventListener('scroll', handleDynamicPosition);\n window?.removeEventListener('resize', handleDynamicPosition);\n};\n\nconst initDynamicPositioning = () => {\n nextTick(() => {\n scrollAreaRef.value = getScrollableParent(tooltipRootRef.value);\n scrollAreaRef.value?.addEventListener('scroll', handleDynamicPosition);\n window?.addEventListener('resize', handleDynamicPosition);\n });\n};\n\nconst onMouseEnterWrapper = () => {\n lastEnteredElement.value = 'wrapper';\n displayClass.value = 'd-b';\n\n mouseEnterWrapper.value = true;\n};\n\nconst onMouseEnterIcon = () => {\n lastEnteredElement.value = 'icon';\n displayClass.value = 'd-b';\n\n mouseEnterIcon.value = true;\n};\n\nconst onMouseLeaveIcon = () => {\n mouseEnterIcon.value = false;\n};\n\nconst onMouseLeaveWrapper = () => {\n lastEnteredElement.value = '';\n mouseEnterWrapper.value = false;\n mouseEnterIcon.value = false;\n};\n\nconst mouseLeave = () => {\n onMouseLeaveWrapper();\n\n if (props.dynamicPosition) {\n if (dynamicPositionAlignment.value === 'bottom') {\n animationClass.value = 'bottom-leave';\n } else if (dynamicPositionAlignment.value === 'top') {\n animationClass.value = 'top-leave';\n }\n } else if (position.value === 'top') {\n animationClass.value = 'top-leave';\n } else if (position.value === 'bottom') {\n animationClass.value = 'bottom-leave';\n } else if (position.value === 'left') {\n animationClass.value = 'left-leave';\n } else if (position.value === 'right') {\n animationClass.value = 'right-leave';\n }\n\n setTimeout(() => {\n animationClass.value = '';\n displayClass.value = 'd-n';\n }, props.absolutePositionStatus ? 0 : 250);\n};\n\nconst addAnimationClass = () => {\n onMouseEnterWrapper();\n handleDynamicPosition();\n\n if (props.dynamicPosition) {\n if (dynamicPositionAlignment.value === 'bottom') {\n animationClass.value = 'top-entrance';\n } else if (dynamicPositionAlignment.value === 'top') {\n animationClass.value = 'bottom-entrance';\n }\n } else if (position.value === 'top') {\n animationClass.value = 'bottom-entrance';\n } else if (position.value === 'bottom') {\n animationClass.value = 'top-entrance';\n } else if (position.value === 'left') {\n animationClass.value = 'right-entrance';\n } else if (position.value === 'right') {\n animationClass.value = 'left-entrance';\n }\n\n setTimeout(() => {\n animationClass.value = '';\n }, 250);\n};\n\nonMounted(() => {\n if (props.dynamicPosition) {\n initDynamicPositioning();\n }\n});\n\nonBeforeUnmount(() => {\n killDynamicPositioning();\n});\n</script>\n\n<template>\n <div\n :id=\"id\"\n ref=\"tooltipRootRef\"\n :class=\"styles.wrapper\"\n @mouseenter=\"addAnimationClass\"\n @mouseleave=\"mouseLeave\">\n <Icon\n v-if=\"iconName\"\n ref=\"tooltipIconRef\"\n :class=\"styles.wrapper__icon\"\n :name=\"iconName\"\n @mouseenter=\"onMouseEnterIcon\"\n @mouseleave=\"onMouseLeaveIcon\" />\n <div\n v-else\n :class=\"styles.wrapper__icon\"\n @mouseenter=\"onMouseEnterIcon\"\n @mouseleave=\"onMouseEnterIcon\">\n <slot name=\"triggerElement\" />\n </div>\n <div\n v-if=\"status\"\n ref=\"tooltipPopupRef\"\n :class=\"[styles.wrapper__box, staticPositionClass, visibilityClass, displayClass]\"\n :style=\"absolutePosition\">\n <Box\n border-triangle\n :border-triangle-align=\"triangleAlignment\"\n :border-triangle-position=\"trianglePosition\"\n :class=\"[styles['wrapper__box-content'], topClass, animationClass]\"\n :style=\"offsetStyle\">\n <div\n :class=\"styles.wrapper__text\"\n :style=\"{ maxHeight: `${maxHeight}px`, overflowY: 'auto' }\">\n <div v-html=\"secureText\" />\n <slot name=\"contentSlot\" />\n </div>\n </Box>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport styles from './Box.module.scss';\n\nexport interface Props {\n border?: string;\n borderRadius?: string;\n borderTriangle?: boolean;\n borderTriangleAlign?: 'start' | 'center' | 'end';\n borderTrianglePosition?: 'top' | 'right' | 'left' | 'bottom';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n borderRadius: 'bor-r-1',\n borderTriangle: false,\n borderTriangleAlign: 'center',\n borderTrianglePosition: 'top',\n});\n\nconst emit = defineEmits<{\n click: [];\n}>();\n\nconst trianglePosition = computed(\n () => (props.borderTriangle ? styles[`box_${props.borderTrianglePosition}-${props.borderTriangleAlign}`] : '')\n);\n\nfunction trigger (): void {\n emit('click');\n}\n</script>\n\n<template>\n <div\n :class=\"[styles.box, trianglePosition, border, borderRadius]\"\n @click=\"trigger\">\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport DefaultBox from './DefaultBox.vue';\nimport FlipBox from './FlipBox.vue';\n\nconst boxes = {\n default: DefaultBox,\n flip: FlipBox,\n} as const;\n\nwithDefaults(defineProps<{\n type?: keyof typeof boxes;\n borderTriangle?: boolean;\n borderTriangleAlign?: 'start' | 'center' | 'end' | 'top';\n borderTrianglePosition?: 'top' | 'right' | 'left' | 'bottom';\n boxSpacing?: string;\n}>(), {\n borderTriangle: false,\n boxSpacing: '',\n type: 'default',\n});\n</script>\n\n<template>\n <component\n :is=\"boxes[type]\"\n :border-triangle=\"borderTriangle\"\n :border-triangle-align=\"borderTriangleAlign\"\n :border-triangle-position=\"borderTrianglePosition\"\n :box-spacing=\"boxSpacing\">\n <slot />\n <slot name=\"front\" />\n <slot name=\"reverse\" />\n </component>\n</template>\n"],"names":["props","__props","emit","__emit","onClick","event","leftIcon","computed","clickOutside","el","binding","element","isFuzzyMatch","choiceValue","searchTerm","searchIndex","char","_a","fuzzySearch","choices","key","normalizedSearchTerm","choice","value","a","b","aValue","bValue","vClickOutside","dropdownRef","ref","menuRef","isOpen","selectedItem","searchQuery","errorMessage","menuPosition","filteredItems","reactive","allItems","calculateMenuPosition","top","left","width","viewportHeight","bottom","shouldOpenUp","toggleMenu","resetSettings","closeMenu","selectItem","item","addItem","query","error","newItem","onSearch","results","onFocusSearch","menuStyle","onMounted","defaultItem","selectedValue","watch","newItems","iconSize","IconName","selected","setSelect","segment","newValue","filteredSegments","newSegments","textareaRef","autoGrow","newHeight","handleInput","target","applyMinMax","numericValue","_b","sanitizedValue","preventXSS","html","tooltipIconRef","dynamicPositionTriangle","dynamicPositionAlignment","dynamicPositionTrianglePosition","dynamicPositionInitialized","animationClass","mouseEnterWrapper","mouseEnterIcon","lastEnteredElement","displayClass","scrollAreaRef","tooltipRootRef","tooltipPopupRef","position","alignment","topClass","secureText","trianglePosition","visibilityClass","triangleAlignment","staticPositionClass","styles","offsetStyle","getDynamicPosition","parent","nested","customRect","tooltipElementHeight","windowWidth","windowHeight","targetHeight","targetWidth","parentRectangle","parentXOffset","parentYOffset","hasSpaceOnRight","hasSpaceOnLeft","hasSpaceOnBottom","hasSpaceOnTop","hasSpaceOnCenter","handleDynamicPosition","nextTick","right","center","isScrollable","hasScrollableContent","overflowYStyle","isOverflowScroll","getScrollableParent","isComment","isDocument","killDynamicPositioning","initDynamicPositioning","onMouseEnterWrapper","onMouseEnterIcon","onMouseLeaveIcon","onMouseLeaveWrapper","mouseLeave","addAnimationClass","onBeforeUnmount","trigger","boxes","DefaultBox","FlipBox"],"mappings":"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"}
1
+ {"version":3,"file":"ab-components.cjs.js","sources":["../src/components/Button/Button.vue","../src/directives/clickOutside.ts","../src/utils/search.ts","../src/components/Dropdown/DropdownMenu.vue","../src/components/Icon/Icon.vue","../src/components/OnPageMessage/OnPageMessage.vue","../src/components/SegmentButton/SegmentButton.vue","../src/components/TextInput/TextInput.vue","../src/components/NumberInput/NumberInput.vue","../src/components/Toggle/Toggle.vue","../src/utils/preventXSS.ts","../src/components/Tooltip/Tooltip.vue","../src/components/Box/DefaultBox.vue","../src/components/Box/Box.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computed } from 'vue';\n\nimport { Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './Button.module.scss';\n\ninterface ButtonProps {\n variant: 'solid' | 'ghost' | 'text' | 'outline';\n color: 'primary' | 'subtle-primary' | 'secondary' | 'danger' | 'warning' | 'smart';\n size?: 'default' | 'small';\n leftIconName?: IconNames;\n rightIconName?: IconNames;\n loadingStatus?: boolean;\n successStatus?: boolean;\n label?: string;\n disabled?: boolean;\n fill?: boolean;\n}\n\nconst props = withDefaults(defineProps<ButtonProps>(), {\n loadingStatus: false,\n successStatus: false,\n disabled: false,\n fill: false,\n size: 'default',\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst onClick = (event: MouseEvent) => {\n if (props.disabled) {\n return;\n }\n\n emit('click', event);\n};\n\nconst leftIcon = computed<IconNames | undefined>(() => {\n if (props.loadingStatus) {\n return 'loading-circle';\n } else if (props.successStatus) {\n return 'line-check-natural';\n }\n\n return props.leftIconName;\n});\n</script>\n\n<template>\n <button\n :class=\"[\n styles.button,\n styles[`button__${variant}`],\n styles[`button__${variant}-${color}`],\n styles[`button__size_${size}`],\n { [styles.fill]: fill },\n ]\"\n :disabled=\"props.disabled\"\n @click=\"onClick\">\n <Icon\n v-if=\"leftIcon\"\n :name=\"leftIcon\" />\n <span\n v-if=\"label\"\n :class=\"styles.button__label\">\n {{ label }}\n </span>\n <Icon\n v-if=\"rightIconName\"\n :name=\"rightIconName\" />\n </button>\n</template>\n","import type { DirectiveBinding } from 'vue';\n\ninterface ClickOutsideElement extends HTMLElement {\n clickOutsideEvent?: (event: Event) => void;\n}\n\nexport default {\n mounted(el: ClickOutsideElement, binding: DirectiveBinding<{ handler: () => void; exclude?: HTMLElement[] }>) {\n el.clickOutsideEvent = (event: Event) => {\n const isClickInside = [el, ...(binding.value.exclude || [])].some(element => {\n return element && (element === event.target || element.contains(event.target as Node))\n });\n\n if (!isClickInside) {\n binding.value.handler(); // Close handler\n }\n };\n\n document.addEventListener('click', el.clickOutsideEvent);\n },\n unmounted(el: ClickOutsideElement) {\n if (el.clickOutsideEvent) {\n document.removeEventListener('click', el.clickOutsideEvent);\n }\n },\n};","const isFuzzyMatch = (choiceValue: string, searchTerm: string): boolean => {\n let searchIndex = 0;\n for (const char of choiceValue) {\n if (char.toLowerCase() === searchTerm[searchIndex]?.toLowerCase()) {\n searchIndex++;\n }\n if (searchIndex === searchTerm.length) {\n return true;\n }\n }\n return false;\n};\n\n\nexport const fuzzySearch = <T>(\n choices: T[],\n key: keyof T,\n searchTerm: string,\n): T[] => {\n if (!searchTerm.trim()) {\n return choices;\n }\n\n const normalizedSearchTerm = searchTerm.toLowerCase();\n\n return choices\n .filter(choice => {\n const value = String(choice[key]);\n\n return isFuzzyMatch(value.toLowerCase(), normalizedSearchTerm)\n })\n .sort((a, b) => {\n const aValue = String(a[key]).toLowerCase();\n const bValue = String(b[key]).toLowerCase();\n\n if (aValue === normalizedSearchTerm) return -1;\n if (bValue === normalizedSearchTerm) return 1;\n\n if (aValue.startsWith(normalizedSearchTerm) && !bValue.startsWith(normalizedSearchTerm))\n return -1;\n if (!aValue.startsWith(normalizedSearchTerm) && bValue.startsWith(normalizedSearchTerm))\n return 1;\n\n return aValue.length - bValue.length;\n });\n};\n","<script lang=\"ts\" setup>\nimport { ref, computed, type StyleValue, onMounted, reactive, watch } from 'vue';\nimport clickOutside from '@/directives/clickOutside';\nimport { fuzzySearch } from '@/utils/search';\nimport styles from './Dropdown.module.scss';\n\nconst vClickOutside = clickOutside;\n\ninterface MenuItem {\n text: string;\n value: string;\n}\n\ninterface DropdownProps {\n id: string;\n label?: string;\n modelValue?: string;\n menuHeight?: number;\n placeholder?: string;\n addable?: boolean;\n addButtonText?: string;\n searchable?: boolean;\n searchPlaceHolder?: string;\n items: MenuItem[];\n validateAddItem?: (item: string, items: MenuItem[]) => string | null;\n}\n\ninterface Emits {\n (e: 'update:modelValue', value: string): void;\n (e: 'add-error', error: string): void;\n (e: 'item-added', item: MenuItem): void;\n (e: 'select-item', item: MenuItem): void;\n}\n\nconst props = withDefaults(defineProps<DropdownProps>(), {\n menuHeight: 154,\n searchBar: false,\n addItem: false,\n modelValue: '',\n validateAddItem: () => null,\n});\n\nconst emit = defineEmits<Emits>();\nconst dropdownRef = ref<HTMLDivElement>();\nconst menuRef = ref<HTMLDivElement>();\nconst isOpen = ref(false);\nconst selectedItem = ref<MenuItem | null>(null);\nconst searchQuery = ref('');\nconst errorMessage = ref<string | null>(null);\nconst menuPosition = ref({ x: 0, y: 0, width: 0, shouldOpenUp: false, height: props.menuHeight });\nconst filteredItems = reactive([...props.items]);\nconst allItems = reactive([...props.items]);\n\nconst calculateMenuPosition = () => {\n if (!dropdownRef.value) {\n return;\n }\n\n const { offsetTop: top, offsetLeft: left, offsetWidth: width } = dropdownRef.value;\n const viewportHeight = window.innerHeight;\n const bottom = top + dropdownRef.value.offsetHeight;\n const shouldOpenUp = bottom + props.menuHeight > viewportHeight;\n\n menuPosition.value = {\n x: left + window.scrollX,\n y: shouldOpenUp ? top + window.scrollY : bottom + window.scrollY,\n width,\n shouldOpenUp,\n height: props.menuHeight,\n };\n};\n\nconst toggleMenu = () => {\n calculateMenuPosition();\n isOpen.value = !isOpen.value;\n};\n\nconst resetSettings = () => {\n errorMessage.value = null;\n searchQuery.value = '';\n filteredItems.splice(0, filteredItems.length, ...allItems);\n};\n\nconst closeMenu = () => {\n isOpen.value = false;\n\n resetSettings();\n};\n\nconst selectItem = (item: MenuItem) => {\n selectedItem.value = item;\n\n emit('select-item', item);\n emit('update:modelValue', item.value);\n\n closeMenu();\n};\n\nconst addItem = () => {\n const query = searchQuery.value.trim();\n const error = props.validateAddItem(query, allItems);\n\n if (error) {\n errorMessage.value = error;\n\n emit('add-error', error);\n\n return;\n }\n\n const newItem: MenuItem = {\n text: query,\n value: query,\n };\n\n allItems.push(newItem);\n resetSettings();\n\n emit('item-added', newItem);\n};\n\nconst onSearch = () => {\n const results = fuzzySearch<MenuItem>(allItems, 'text', searchQuery.value);\n\n filteredItems.splice(0, filteredItems.length, ...results);\n};\n\nconst onFocusSearch = () => {\n errorMessage.value = '';\n};\n\nconst menuStyle = computed<Partial<StyleValue>>(() => ({\n top: menuPosition.value.shouldOpenUp ? `${menuPosition.value.y - 10}px` : `${menuPosition.value.y}px`,\n left: `${menuPosition.value.x}px`,\n width: `${menuPosition.value.width}px`,\n height: `${props.menuHeight}px`,\n}));\n\nonMounted(() => {\n calculateMenuPosition();\n\n if (props.modelValue) {\n const defaultItem = allItems.find(item => item.value === props.modelValue);\n\n if (defaultItem) {\n selectedItem.value = defaultItem;\n }\n }\n});\n\nconst selectedValue = computed(() => (selectedItem.value ? selectedItem.value.text : ''));\n\nwatch(\n () => props.items,\n newItems => {\n allItems.splice(0, allItems.length, ...newItems);\n filteredItems.splice(0, filteredItems.length, ...newItems);\n },\n { deep: true }\n);\n</script>\n\n<template>\n <div\n ref=\"dropdownRef\"\n :class=\"styles.dropdown\">\n <label\n v-if=\"label\"\n :class=\"styles.dropdown__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <button\n :class=\"[\n styles.dropdown__valueContent, {\n [styles['dropdown__valueContent--open']]: isOpen,\n },\n ]\"\n @click=\"toggleMenu\">\n <span :class=\"styles.dropdown__value\">\n {{ selectedValue }}\n </span>\n <span\n v-if=\"placeholder && !selectedValue\"\n :class=\"styles.dropdown__placeholder\">\n {{ placeholder }}\n </span>\n <svg\n fill=\"none\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n :class=\"styles.dropdown__arrowIcon\">\n <path\n d=\"M8 11.2021L4.5359 6.70215L11.4641 6.70215L8 11.2021Z\"\n fill=\"#91949F\" />\n </svg>\n </button>\n </div>\n\n <div\n v-if=\"isOpen\"\n ref=\"menuRef\"\n :class=\"styles.menu\"\n :style=\"menuStyle\"\n v-click-outside=\"{ handler: closeMenu, exclude: [dropdownRef, menuRef] }\"\n @click.prevent>\n <div\n v-if=\"props.searchable\"\n :class=\"styles.menu__searchContainer\">\n <div :class=\"styles.menu__searchInputWrap\">\n <input\n type=\"text\"\n :class=\"[\n styles.menu__searchInput, {\n [styles['menu__searchInput--error']]: errorMessage,\n },\n ]\"\n :placeholder=\"searchPlaceHolder\"\n v-model=\"searchQuery\"\n @focus=\"onFocusSearch\"\n @input=\"onSearch\">\n <p\n v-if=\"errorMessage\"\n :class=\"styles.menu__errorMessage\">\n {{ errorMessage }}\n </p>\n </div>\n <button\n v-if=\"props.addable\"\n :class=\"styles.menu__addButton\"\n @click=\"addItem\">\n {{ addButtonText }}\n </button>\n </div>\n <ul :class=\"styles.menu__itemContainer\">\n <li\n v-for=\"(item, index) in filteredItems\"\n :key=\"`${item.value}-${index}`\"\n :class=\"[\n styles.menu__item, {\n [styles['menu__item--active']]: selectedItem && item.value === selectedItem.value,\n },\n ]\"\n @click=\"selectItem(item)\">\n {{ item.text }}\n </li>\n </ul>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport type { IconNames } from '@/types/generated/svgIconName';\n\nexport interface IconProps {\n name: IconNames;\n size?: 16 | 24;\n color?: string;\n}\n\nconst props = withDefaults(defineProps<IconProps>(), {\n size: 16,\n});\n\nconst iconSize = computed(() => (typeof props.size === 'number' ? `${props.size}px` : props.size));\n</script>\n\n<template>\n <svg\n class=\"icon\"\n :fill=\"color || 'currentColor'\"\n :height=\"iconSize\"\n :width=\"iconSize\">\n <use :xlink:href=\"`#${name}`\" />\n </svg>\n</template>\n\n<style scoped>\n.icon {\n display: inline-block;\n line-height: 0;\n vertical-align: middle;\n}\n</style>\n","<script lang=\"ts\" setup>\nimport { computed } from 'vue';\nimport Icon from '@/components/Icon/Icon.vue';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './OnPageMessage.module.scss';\n\ninterface OnPageMessageProps {\n variant?: 'default' | 'warning' | 'alert' | 'success';\n text: string;\n}\n\nconst props = withDefaults(defineProps<OnPageMessageProps>(), {\n variant: 'default',\n});\n\nconst IconName = computed<IconNames>(() => {\n switch (props.variant) {\n case 'alert': return 'icon-info-box-error';\n case 'warning': return 'line-caution-triangle';\n case 'success': return 'line-check-natural';\n\n default: return 'filled-info-circle';\n }\n});\n</script>\n\n<template>\n <div\n :class=\"[\n styles.container,\n styles[`container__${variant}`],\n ]\">\n <Icon\n :name=\"IconName\"\n :size=\"24\" />\n <span :class=\"styles.container__text\">{{ text }}</span>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport { ref, watch } from 'vue';\nimport { Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport styles from './SegmentButton.module.scss';\n\nexport interface SegmentType {\n value: string;\n label: string;\n disabled?: boolean;\n icon?: IconNames;\n}\n\nexport interface SegmentButtonProps {\n color: 'primary' | 'secondary' | 'danger' | 'warning' | 'smart';\n size?: 'default' | 'small';\n align?: 'vertical' | 'horizontal';\n disabled?: boolean;\n segments: SegmentType[];\n fill?: boolean;\n modelValue?: string;\n}\n\ninterface SegmentButtonEmits {\n 'update:modelValue': [value: string];\n click: [value: SegmentType['value']];\n}\n\nconst props = withDefaults(defineProps<SegmentButtonProps>(), {\n loadingStatus: false,\n successStatus: false,\n disabled: false,\n size: 'default',\n align: 'horizontal',\n});\n\nconst emit = defineEmits<SegmentButtonEmits>();\nconst selected = ref<string>(props.modelValue || '');\n\nconst setSelect = (segment: SegmentType) => {\n if (props.disabled || segment.disabled) {\n return;\n }\n\n selected.value = segment.value;\n emit('update:modelValue', segment.value);\n emit('click', segment.value);\n};\n\nwatch(() => props.modelValue, newValue => {\n if (selected.value !== newValue) {\n selected.value = newValue || '';\n }\n});\n\nconst filteredSegments = ref<SegmentType[]>([...props.segments]);\n\nwatch(() => props.segments, newSegments => {\n filteredSegments.value = [...newSegments];\n\n if (!newSegments.some(segment => segment.value === selected.value)) {\n selected.value = '';\n emit('update:modelValue', '');\n }\n}, { deep: true });\n</script>\n\n<template>\n <div\n :class=\"[\n styles.segmentGroup,\n styles[`segmentGroup--${align}`],\n { [styles.fill]: fill },\n ]\">\n <button\n v-for=\"(segment, index) in filteredSegments\"\n :key=\"`${segment.value}-${index}`\"\n :class=\"[\n styles.button,\n styles[`button--${color}`],\n styles[`button__size_${size}`],\n styles.fill,\n {\n [styles[`button--selected`]]: segment.value === selected,\n },\n ]\"\n :disabled=\"segment.disabled || props.disabled\"\n @click=\"setSelect(segment)\">\n <Icon\n v-if=\"segment.icon\"\n :name=\"segment.icon\" />\n <span\n v-if=\"segment.label\"\n :class=\"styles.button__label\">\n {{ segment.label }}\n </span>\n </button>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { onMounted, ref } from 'vue';\nimport styles from './TextInput.module.scss';\n\nexport interface Props {\n id: string;\n name: string;\n modelValue?: string;\n label?: string;\n placeholder?: string;\n maxLength?: number;\n maxHeight?: number;\n error?: string;\n multiline?: boolean;\n autoGrow?: boolean;\n counter?: boolean;\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n label: '',\n placeholder: '',\n maxLength: undefined,\n maxHeight: undefined,\n error: '',\n multiline: false,\n autoGrow: false,\n modelValue: '',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']];\n input: [event: Event];\n change: [event: Event];\n paste: [event: ClipboardEvent];\n focus: [event: FocusEvent];\n blur: [event: FocusEvent];\n}>();\n\nconst textareaRef = ref<HTMLTextAreaElement | null>(null);\n\nconst autoGrow = () => {\n if (props.autoGrow && textareaRef.value) {\n textareaRef.value.style.height = '';\n\n const newHeight = Math.min(textareaRef.value.scrollHeight, props.maxHeight || textareaRef.value.scrollHeight);\n\n textareaRef.value.style.height = `${newHeight}px`;\n }\n};\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n\n emit('input', event);\n emit('update:modelValue', target.value);\n\n autoGrow();\n};\n\nonMounted(() => {\n autoGrow();\n});\n</script>\n\n<template>\n <div :class=\"styles.wrapper\">\n <label\n v-if=\"label\"\n :class=\"styles.wrapper__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <template v-if=\"multiline\">\n <textarea\n :id=\"id\"\n ref=\"textareaRef\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error,\n },\n ]\"\n :maxlength=\"maxLength\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :style=\"maxHeight ? { maxHeight: `${maxHeight}px` } : undefined\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\" />\n </template>\n <template v-else>\n <input\n :id=\"id\"\n type=\"text\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error,\n },\n ]\"\n :maxlength=\"maxLength\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\">\n </template>\n\n <div :class=\"styles.wrapper__bottom\">\n <div\n v-if=\"error\"\n :class=\"styles.wrapper__errorMessage\">\n {{ error }}\n </div>\n <div\n v-if=\"counter\"\n :class=\"styles.wrapper__counter\">\n {{ modelValue?.toString().length || 0 }}\n </div>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport styles from './NumberInput.module.scss';\n\nexport interface Props {\n id: string;\n name: string;\n modelValue?: number;\n label?: string;\n placeholder?: string;\n maxLength?: number;\n error?: string;\n errorStatus?: boolean;\n counter?: boolean;\n min?: number;\n max?: number;\n size?: 'default' | 'small';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n label: '',\n placeholder: '',\n maxLength: undefined,\n min: undefined,\n max: undefined,\n error: '',\n modelValue: undefined,\n size: 'default',\n});\n\nconst emit = defineEmits<{\n 'update:modelValue': [Props['modelValue']];\n input: [event: Event];\n change: [event: Event];\n paste: [event: ClipboardEvent];\n focus: [event: FocusEvent];\n blur: [event: FocusEvent];\n}>();\n\nconst applyMinMax = (value: string): string => {\n if (value === '') {\n return value;\n }\n\n const numericValue = Number(value);\n\n if (typeof props.min === 'number' && numericValue < props.min) {\n return props.min?.toString();\n } else if (typeof props.max === 'number' && numericValue > props.max) {\n return props.max?.toString();\n }\n\n return numericValue.toString();\n};\n\nconst handleInput = (event: Event) => {\n const target = event.target as HTMLInputElement | HTMLTextAreaElement;\n const sanitizedValue = applyMinMax(target.value);\n\n target.value = sanitizedValue;\n\n emit('input', event);\n emit('update:modelValue', Number(sanitizedValue));\n};\n</script>\n\n<template>\n <div :class=\"[styles.wrapper, styles[`wrapper__size_${size}`]]\">\n <label\n v-if=\"label\"\n :class=\"styles.wrapper__label\"\n :for=\"id\">\n {{ label }}\n </label>\n <input\n :id=\"id\"\n type=\"number\"\n :class=\"[\n styles.wrapper__field, {\n [styles['wrapper--error']]: error || errorStatus,\n },\n ]\"\n :max=\"max\"\n :maxlength=\"maxLength\"\n :min=\"min\"\n :name=\"name\"\n :placeholder=\"placeholder\"\n :value=\"modelValue\"\n @blur=\"emit('blur', $event)\"\n @change=\"$emit('change', $event)\"\n @focus=\"emit('focus', $event)\"\n @input=\"handleInput\"\n @paste=\"emit('paste', $event)\">\n\n <div\n v-if=\"counter || error\"\n :class=\"styles.wrapper__bottom\">\n <div\n v-if=\"error\"\n :class=\"styles.wrapper__errorMessage\">\n {{ error }}\n </div>\n <div\n v-if=\"counter\"\n :class=\"styles.wrapper__counter\">\n {{ modelValue?.toString().length || 0 }}\n </div>\n </div>\n </div>\n</template>\n","<script lang=\"ts\" setup>\nimport styles from './Toggle.module.scss';\n\ninterface ToggleProps {\n id: string;\n name: string;\n checked?: boolean;\n disabled?: boolean;\n}\n\nconst props = withDefaults(defineProps<ToggleProps>(), {\n checked: false,\n disabled: false,\n});\n\nconst emit = defineEmits<{\n click: [checked: boolean];\n}>();\n\nconst onClick = () => {\n emit('click', !props.checked);\n};\n</script>\n\n<template>\n <fieldset\n :class=\"[\n styles.wrapper,\n {\n [styles.wrapper_checked]: checked,\n [styles.wrapper_disabled]: disabled,\n },\n ]\">\n <input\n :id=\"id\"\n type=\"checkbox\"\n :checked=\"checked\"\n :class=\"styles.wrapper__input\"\n :disabled=\"disabled\"\n :name=\"name\"\n @click=\"onClick\">\n <label\n :class=\"styles.wrapper__label\"\n :for=\"id\" />\n </fieldset>\n</template>\n","export function preventXSS (html = '') {\n if (typeof(html) === 'string') {\n return html.replace(/<\\/style>/gi, '')\n .replace(/<(.*?) on(.*?)=['\"](.*?)>/gi, '')\n .replace(/(<meta |<style|<\\/*script)(.*?)>/gi, '')\n .replace(/(<([^>]+)>)/ig, '')\n .replace(/<(.*?) (href|src)=\"j(.*)a(.*)v(.*)a(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t(.*):(.*?)>/gi, '');\n }\n return html;\n}\n","<script setup lang=\"ts\">\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, type StyleValue } from 'vue';\nimport { Box, Icon } from '@/index';\nimport type { IconNames } from '@/types/generated/svgIconName';\nimport { preventXSS } from '@/utils/preventXSS';\nimport styles from './Tooltip.module.scss';\n\ntype TriangleAlignment = 'start' | 'center' | 'end' | 'top';\n\nexport interface TooltipProps {\n id: string;\n text: string;\n staticPosition?: (\n 'top center'\n | 'top left'\n | 'top right'\n | 'bottom center'\n | 'bottom left'\n | 'bottom right'\n | 'right center'\n | 'right top'\n | 'right bottom'\n | 'left center'\n | 'left top'\n | 'left bottom'\n );\n dynamicPosition?: boolean;\n absolutePositionStatus?: boolean;\n offsetX?: number;\n offsetY?: number;\n maxHeight?: number;\n status?: boolean;\n preventXss?: boolean;\n iconName?: IconNames;\n absoluteTriangleAlignment?: TriangleAlignment;\n absoluteTrianglePosition?: 'top' | 'bottom';\n absolutePosition?: StyleValue;\n}\n\nconst props = withDefaults(defineProps<TooltipProps>(), {\n offsetX: 4,\n offsetY: 4,\n staticPosition: 'top center',\n maxHeight: 320,\n status: true,\n iconName: undefined,\n absoluteTriangleAlignment: 'center',\n absoluteTrianglePosition: 'top',\n position: 'bottom',\n align: 'end',\n absolutePositionStatus: false,\n});\n\nconst tooltipIconRef = ref<HTMLElement | null>(null);\nconst dynamicPositionTriangle = ref('center');\nconst dynamicPositionAlignment = ref('bottom');\nconst dynamicPositionTrianglePosition = ref<TriangleAlignment>('center');\nconst dynamicPositionInitialized = ref(false);\nconst animationClass = ref('');\nconst mouseEnterWrapper = ref(false);\nconst mouseEnterIcon = ref(false);\nconst lastEnteredElement = ref('');\nconst displayClass = ref('d-n');\nconst scrollAreaRef = ref<Document | HTMLElement | ParentNode | null>(null);\nconst tooltipRootRef = ref<HTMLElement | null>(null);\nconst tooltipPopupRef = ref<HTMLElement | null>(null);\nconst position = computed(() => props.staticPosition.split(' ')[0]);\nconst alignment = computed(() => props.staticPosition.split(' ')[1]);\nconst topClass = computed(() => (props.iconName ? 'mt-1' : 'mt-0'));\nconst secureText = computed(() => (props.preventXss ? preventXSS(props.text) : props.text));\n\nconst trianglePosition = computed(() => {\n if (props.absolutePositionStatus) {\n return props.absoluteTrianglePosition;\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n return dynamicPositionAlignment.value === 'bottom' ? 'top' : 'bottom';\n }\n\n if (position.value === 'top') {\n return 'bottom';\n }\n\n if (position.value === 'bottom') {\n return 'top';\n }\n\n if (position.value === 'left') {\n return 'right';\n }\n\n if (position.value === 'right') {\n return 'left';\n }\n\n return 'bottom';\n});\n\nconst visibilityClass = computed(() => {\n if (props.absolutePositionStatus) {\n return '';\n }\n\n if (\n (mouseEnterWrapper.value && mouseEnterIcon.value)\n || (lastEnteredElement.value === 'icon' && mouseEnterWrapper.value)\n ) {\n return 'opa-1';\n }\n\n return 'opa-0';\n});\n\nconst triangleAlignment = computed<TriangleAlignment>(() => {\n if (props.absolutePositionStatus) {\n return props.absoluteTriangleAlignment;\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n if (dynamicPositionTriangle.value === 'center') {\n return 'center';\n }\n\n if (dynamicPositionTriangle.value === 'end') {\n return 'end';\n }\n\n if (dynamicPositionTriangle.value === 'start') {\n return 'start';\n }\n\n return dynamicPositionTrianglePosition.value;\n }\n\n if (alignment.value === 'center') {\n return 'center';\n }\n\n if (alignment.value === 'left' || alignment.value === 'top') {\n return 'start';\n }\n\n if (alignment.value === 'right' || alignment.value === 'bottom') {\n return 'end';\n }\n\n return 'center';\n});\n\nconst staticPositionClass = computed(() => {\n if (props.absolutePositionStatus) {\n return '';\n }\n\n if (props.dynamicPosition && dynamicPositionInitialized.value) {\n return styles[`wrapper__box_${dynamicPositionAlignment.value}-${dynamicPositionTriangle.value}`];\n }\n\n return styles[`wrapper__box_${position.value}-${triangleAlignment.value}`];\n});\n\nconst offsetStyle = computed(() => {\n if (props.offsetX === 0 && props.offsetY === 0) {\n return {};\n }\n\n if (props.dynamicPosition) {\n const marginDirection = dynamicPositionAlignment.value === 'bottom' ? 'top' : 'bottom';\n\n return {\n [`margin-${marginDirection}`]: `${props.offsetY}px`,\n };\n }\n\n if (trianglePosition.value === 'top' || trianglePosition.value === 'bottom') {\n return {\n [`margin-${trianglePosition.value}`]: `${props.offsetY}px`,\n };\n }\n\n return { [`margin-${trianglePosition.value}`]: `${props.offsetX}px` };\n});\n\nconst getOffsetRect = (element: HTMLElement) => {\n const { offsetTop: top, offsetLeft: left, offsetWidth: width, offsetHeight: height } = element;\n const bottom = top + height;\n const right = left + width;\n\n return {\n top,\n left,\n width,\n bottom,\n right,\n };\n};\n\nconst getDynamicPosition = (\n target: HTMLElement | null | undefined,\n parent: HTMLElement | null | undefined,\n nested = false\n) => {\n if (!target || !tooltipRootRef.value) {\n return { left: false, right: false, top: false, bottom: false, center: false };\n }\n\n const customRect = { left: 0, right: 0, top: 0, bottom: 0, width: 0, height: 0 };\n const tooltipElementHeight = tooltipRootRef.value.offsetHeight;\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n const targetHeight = target.offsetHeight;\n const targetWidth = target.offsetWidth || 264;\n const parentRectangle = (parent && getOffsetRect(parent)) || customRect;\n const parentXOffset = nested ? parentRectangle?.right : parentRectangle?.left;\n const parentYOffset = nested ? parentRectangle?.top : parentRectangle?.bottom;\n const hasSpaceOnRight = (\n (parentXOffset + parentRectangle.width) + targetWidth + props.offsetX\n ) < windowWidth;\n const hasSpaceOnLeft = ((parentXOffset + (parentRectangle.width / 2))\n - (targetWidth + props.offsetX)) > 10;\n const hasSpaceOnBottom = (parentYOffset + targetHeight) < (windowHeight - props.offsetY);\n const hasSpaceOnTop = (parentYOffset - (targetHeight + tooltipElementHeight + props.offsetY)) > 0;\n let hasSpaceOnCenter = false;\n\n if (props.iconName) {\n hasSpaceOnCenter = (parentRectangle.right + (targetWidth / 2) < windowWidth)\n && (parentRectangle.left - ((targetWidth + props.offsetX) / 2) >= 10);\n }\n\n return {\n left: hasSpaceOnLeft,\n right: hasSpaceOnRight,\n bottom: hasSpaceOnBottom,\n top: hasSpaceOnTop,\n center: hasSpaceOnCenter,\n };\n};\n\nconst handleDynamicPosition = () => {\n nextTick(() => {\n dynamicPositionInitialized.value = true;\n\n const { bottom, left, right, top, center } = getDynamicPosition(\n tooltipPopupRef.value,\n tooltipPopupRef.value?.parentNode as HTMLElement\n );\n\n if (center) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = bottom && !top ? 'bottom' : 'top';\n\n return;\n }\n\n // Means that every direction has an available space\n if (bottom && left && right && top) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (top && !bottom) {\n if (right && left) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'top';\n\n return;\n }\n }\n\n if (bottom && top) {\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'top';\n dynamicPositionTrianglePosition.value = 'end';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'top';\n dynamicPositionTrianglePosition.value = 'start';\n\n return;\n }\n }\n\n if (bottom && !top) {\n if (right && left) {\n dynamicPositionTriangle.value = 'center';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n\n return;\n }\n\n if (!right && left) {\n dynamicPositionTriangle.value = 'end';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n\n return;\n }\n\n if (right && !left) {\n dynamicPositionTriangle.value = 'start';\n dynamicPositionAlignment.value = 'bottom';\n dynamicPositionTrianglePosition.value = 'top';\n }\n }\n });\n};\n\nconst isScrollable = (el: HTMLElement | ParentNode): boolean => {\n if (!(el instanceof HTMLElement)) {\n return false;\n }\n\n const hasScrollableContent = el.scrollHeight > el.offsetHeight;\n const overflowYStyle = window.getComputedStyle(el).overflowY;\n const isOverflowScroll = ['auto', 'scroll'].includes(overflowYStyle);\n\n return hasScrollableContent && isOverflowScroll;\n};\n\nconst getScrollableParent = (element: HTMLElement | ParentNode | null): HTMLElement | ParentNode | null => {\n const isComment = element?.nodeType === Node.COMMENT_NODE;\n const isDocument = element?.nodeType === Node.DOCUMENT_NODE;\n\n if (!element || isComment || isDocument) {\n return document;\n }\n\n if (isScrollable(element)) {\n return element;\n }\n\n return getScrollableParent(element.parentNode);\n};\n\nconst killDynamicPositioning = () => {\n scrollAreaRef.value?.removeEventListener('scroll', handleDynamicPosition);\n window?.removeEventListener('resize', handleDynamicPosition);\n};\n\nconst initDynamicPositioning = () => {\n nextTick(() => {\n scrollAreaRef.value = getScrollableParent(tooltipRootRef.value);\n scrollAreaRef.value?.addEventListener('scroll', handleDynamicPosition);\n window?.addEventListener('resize', handleDynamicPosition);\n });\n};\n\nconst onMouseEnterWrapper = () => {\n lastEnteredElement.value = 'wrapper';\n displayClass.value = 'd-b';\n\n mouseEnterWrapper.value = true;\n};\n\nconst onMouseEnterIcon = () => {\n lastEnteredElement.value = 'icon';\n displayClass.value = 'd-b';\n\n mouseEnterIcon.value = true;\n};\n\nconst onMouseLeaveIcon = () => {\n mouseEnterIcon.value = false;\n};\n\nconst onMouseLeaveWrapper = () => {\n lastEnteredElement.value = '';\n mouseEnterWrapper.value = false;\n mouseEnterIcon.value = false;\n};\n\nconst mouseLeave = () => {\n onMouseLeaveWrapper();\n\n if (props.dynamicPosition) {\n if (dynamicPositionAlignment.value === 'bottom') {\n animationClass.value = 'bottom-leave';\n } else if (dynamicPositionAlignment.value === 'top') {\n animationClass.value = 'top-leave';\n }\n } else if (position.value === 'top') {\n animationClass.value = 'top-leave';\n } else if (position.value === 'bottom') {\n animationClass.value = 'bottom-leave';\n } else if (position.value === 'left') {\n animationClass.value = 'left-leave';\n } else if (position.value === 'right') {\n animationClass.value = 'right-leave';\n }\n\n setTimeout(() => {\n animationClass.value = '';\n displayClass.value = 'd-n';\n }, props.absolutePositionStatus ? 0 : 250);\n};\n\nconst addAnimationClass = () => {\n onMouseEnterWrapper();\n handleDynamicPosition();\n\n if (props.dynamicPosition) {\n if (dynamicPositionAlignment.value === 'bottom') {\n animationClass.value = 'top-entrance';\n } else if (dynamicPositionAlignment.value === 'top') {\n animationClass.value = 'bottom-entrance';\n }\n } else if (position.value === 'top') {\n animationClass.value = 'bottom-entrance';\n } else if (position.value === 'bottom') {\n animationClass.value = 'top-entrance';\n } else if (position.value === 'left') {\n animationClass.value = 'right-entrance';\n } else if (position.value === 'right') {\n animationClass.value = 'left-entrance';\n }\n\n setTimeout(() => {\n animationClass.value = '';\n }, 250);\n};\n\nonMounted(() => {\n if (props.dynamicPosition) {\n initDynamicPositioning();\n }\n});\n\nonBeforeUnmount(() => {\n killDynamicPositioning();\n});\n</script>\n\n<template>\n <div\n :id=\"id\"\n ref=\"tooltipRootRef\"\n :class=\"styles.wrapper\"\n @mouseenter=\"addAnimationClass\"\n @mouseleave=\"mouseLeave\">\n <Icon\n v-if=\"iconName\"\n ref=\"tooltipIconRef\"\n :class=\"styles.wrapper__icon\"\n :name=\"iconName\"\n @mouseenter=\"onMouseEnterIcon\"\n @mouseleave=\"onMouseLeaveIcon\" />\n <div\n v-else\n :class=\"styles.wrapper__icon\"\n @mouseenter=\"onMouseEnterIcon\"\n @mouseleave=\"onMouseEnterIcon\">\n <slot name=\"triggerElement\" />\n </div>\n <div\n v-if=\"status\"\n ref=\"tooltipPopupRef\"\n :class=\"[styles.wrapper__box, staticPositionClass, visibilityClass, displayClass]\"\n :style=\"absolutePosition\">\n <Box\n border-triangle\n :border-triangle-align=\"triangleAlignment\"\n :border-triangle-position=\"trianglePosition\"\n :class=\"[styles['wrapper__box-content'], topClass, animationClass]\"\n :style=\"offsetStyle\">\n <div\n :class=\"styles.wrapper__text\"\n :style=\"{ maxHeight: `${maxHeight}px`, overflowY: 'auto' }\">\n <div v-html=\"secureText\" />\n <slot name=\"contentSlot\" />\n </div>\n </Box>\n </div>\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport styles from './Box.module.scss';\n\nexport interface Props {\n border?: string;\n borderRadius?: string;\n borderTriangle?: boolean;\n borderTriangleAlign?: 'start' | 'center' | 'end';\n borderTrianglePosition?: 'top' | 'right' | 'left' | 'bottom';\n}\n\nconst props = withDefaults(defineProps<Props>(), {\n borderRadius: 'bor-r-1',\n borderTriangle: false,\n borderTriangleAlign: 'center',\n borderTrianglePosition: 'top',\n});\n\nconst emit = defineEmits<{\n click: [];\n}>();\n\nconst trianglePosition = computed(\n () => (props.borderTriangle ? styles[`box_${props.borderTrianglePosition}-${props.borderTriangleAlign}`] : '')\n);\n\nfunction trigger (): void {\n emit('click');\n}\n</script>\n\n<template>\n <div\n :class=\"[styles.box, trianglePosition, border, borderRadius]\"\n @click=\"trigger\">\n <slot />\n </div>\n</template>\n","<script setup lang=\"ts\">\nimport DefaultBox from './DefaultBox.vue';\nimport FlipBox from './FlipBox.vue';\n\nconst boxes = {\n default: DefaultBox,\n flip: FlipBox,\n} as const;\n\nwithDefaults(defineProps<{\n type?: keyof typeof boxes;\n borderTriangle?: boolean;\n borderTriangleAlign?: 'start' | 'center' | 'end' | 'top';\n borderTrianglePosition?: 'top' | 'right' | 'left' | 'bottom';\n boxSpacing?: string;\n}>(), {\n borderTriangle: false,\n boxSpacing: '',\n type: 'default',\n});\n</script>\n\n<template>\n <component\n :is=\"boxes[type]\"\n :border-triangle=\"borderTriangle\"\n :border-triangle-align=\"borderTriangleAlign\"\n :border-triangle-position=\"borderTrianglePosition\"\n :box-spacing=\"boxSpacing\">\n <slot />\n <slot name=\"front\" />\n <slot name=\"reverse\" />\n </component>\n</template>\n"],"names":["props","__props","emit","__emit","onClick","event","leftIcon","computed","clickOutside","el","binding","element","isFuzzyMatch","choiceValue","searchTerm","searchIndex","char","_a","fuzzySearch","choices","key","normalizedSearchTerm","choice","value","a","b","aValue","bValue","vClickOutside","dropdownRef","ref","menuRef","isOpen","selectedItem","searchQuery","errorMessage","menuPosition","filteredItems","reactive","allItems","calculateMenuPosition","top","left","width","viewportHeight","bottom","shouldOpenUp","toggleMenu","resetSettings","closeMenu","selectItem","item","addItem","query","error","newItem","onSearch","results","onFocusSearch","menuStyle","onMounted","defaultItem","selectedValue","watch","newItems","iconSize","IconName","selected","setSelect","segment","newValue","filteredSegments","newSegments","textareaRef","autoGrow","newHeight","handleInput","target","applyMinMax","numericValue","_b","sanitizedValue","preventXSS","html","tooltipIconRef","dynamicPositionTriangle","dynamicPositionAlignment","dynamicPositionTrianglePosition","dynamicPositionInitialized","animationClass","mouseEnterWrapper","mouseEnterIcon","lastEnteredElement","displayClass","scrollAreaRef","tooltipRootRef","tooltipPopupRef","position","alignment","topClass","secureText","trianglePosition","visibilityClass","triangleAlignment","staticPositionClass","styles","offsetStyle","getOffsetRect","height","right","getDynamicPosition","parent","nested","customRect","tooltipElementHeight","windowWidth","windowHeight","targetHeight","targetWidth","parentRectangle","parentXOffset","parentYOffset","hasSpaceOnRight","hasSpaceOnLeft","hasSpaceOnBottom","hasSpaceOnTop","hasSpaceOnCenter","handleDynamicPosition","nextTick","center","isScrollable","hasScrollableContent","overflowYStyle","isOverflowScroll","getScrollableParent","isComment","isDocument","killDynamicPositioning","initDynamicPositioning","onMouseEnterWrapper","onMouseEnterIcon","onMouseLeaveIcon","onMouseLeaveWrapper","mouseLeave","addAnimationClass","onBeforeUnmount","trigger","boxes","DefaultBox","FlipBox"],"mappings":"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"}