@volverjs/ui-vue
Version:
@volverjs/ui-vue is a lightweight Vue 3 component library to accompany @volverjs/style.
1 lines • 114 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("vue"),require("@vueuse/core"),require("mitt"),require("@iconify/vue"),require("dot-prop"),require("@floating-ui/vue"),require("vuedraggable"),require("vue-imask")):"function"==typeof define&&define.amd?define(["exports","vue","@vueuse/core","mitt","@iconify/vue","dot-prop","@floating-ui/vue","vuedraggable","vue-imask"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).components={},e.vue,e.core,e.mitt,e.vue$1,e.dotProp,e.vue$2,e.Sortable,e.vueImask)}(this,function(e,t,o,l,a,r,n,i,u){"use strict";const s="eye-on",d="eye-off",c="calendar",v="time",p="color",f="close",m="add",g="trash",b="edit",y="download",h={prefix:"normal"};var k=(e=>(e.local="local",e.session="session",e))(k||{}),S=(e=>(e.absolute="absolute",e.fixed="fixed",e))(S||{}),B=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(B||{}),w=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(w||{}),V=(e=>(e.before="before",e.after="after",e))(V||{}),C=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(C||{}),x=(e=>(e.nuxtLink="nuxt-link",e.routerLink="router-link",e.a="a",e.button="button",e))(x||{}),_=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(_||{}),$=(e=>(e.listbox="listbox",e.menu="menu",e))($||{}),E=(e=>(e.option="option",e.presentation="presentation",e))(E||{}),N=(e=>(e.alert="alert",e.alertdialog="alertdialog",e))(N||{});const P=Symbol.for("volver"),L=Symbol.for("buttonGroup"),A=Symbol.for("radioGroup"),O=Symbol.for("checkGroup"),D=Symbol.for("accordionGroup"),R=Symbol.for("dropdownTrigger"),T=Symbol.for("dropdownItem"),M=Symbol.for("dropdownAction"),I=Symbol.for("alertGroup"),z={to:{type:[String,Object]},href:String,target:String,rel:{type:String,default:"noopener noreferrer"}},H={valid:{type:Boolean,default:!1},validLabel:{type:[String,Array],default:void 0}},F={invalid:{type:Boolean,default:!1},invalidLabel:{type:[String,Array],default:void 0}},j={loading:{type:Boolean,default:!1},loadingLabel:{type:String,default:"Loading..."}},U={disabled:{type:Boolean,default:!1}},q={required:{type:Boolean,default:!1}},G={selected:{type:Boolean,default:!1}},K={active:{type:Boolean,default:!1}},W={current:{type:Boolean,default:!1}},Y={showClearAction:{type:Boolean,default:!1},iconClear:{type:[String,Object],default:f},labelClear:{type:String,default:"Clear"}},J={pressed:{type:Boolean,default:!1}},X={label:{type:[String,Number],default:void 0}},Z={readonly:{type:Boolean,default:!1}},Q={modifiers:{type:[String,Array],default:void 0}},ee={hintLabel:{type:String,default:""}},te={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}},oe={count:{type:[Boolean,String],default:!1,validator:e=>[!0,!1,"limit","countdown"].includes(e)}},le={debounce:{type:[Number,String],default:void 0}},ae={icon:{type:[String,Object],default:void 0},iconPosition:{type:String,default:V.before,validation:e=>Object.values(V).includes(e)}},re={tabindex:{type:[String,Number],default:0}},ne={floating:{type:Boolean,default:!1}},ie={unselectable:{type:Boolean,default:!0}},ue={id:[String,Number]},se={placement:{type:String,default:B.bottom,validator:e=>Object.values(B).includes(e)||Object.values(w).includes(e)},strategy:{type:String,default:void 0,validator:e=>Object.values(S).includes(e)},transitionName:{type:String,default:void 0},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},keepOpen:{type:Boolean,default:!1},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean,default:!1}},de={...ue,name:{type:String,required:!0}},ce={autofocus:{type:Boolean,default:!1}},ve={autocomplete:{type:String,default:"off"}},pe={...de,...ce,...ve,...re,...U,...Z,...H,...F,...ee,...j,...Q,...oe,...le,...ae,...ne,...X,minlength:{type:[String,Number],default:void 0},maxlength:{type:[String,Number],default:void 0},placeholder:{type:String,default:void 0},...q},fe={...de,...re,...H,...F,...ee,...U,...Z,...Q,...X,...j,value:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[Object,Number,Boolean,String],default:void 0}},me={...H,...F,...te,...ee,...U,...Z,...Q,...X,...j,...q,modelValue:{type:[String,Array,Boolean,Number,Symbol],default:void 0},name:{type:String,required:!0},vertical:{type:Boolean,default:!1}},ge={...U,...X,...J,...K,...W,...z,type:{type:String,default:C.button,validator:e=>Object.values(C).includes(e)},ariaLabel:{type:String,default:void 0},defaultTag:{type:String,default:x.button}},be={items:{type:Array,default:()=>[]}},ye={storageType:{type:String,default:k.local,validator:e=>Object.values(k).includes(e)},storageKey:String};function he(e){const o=t.inject(e,void 0),l=t.computed(()=>void 0!==o);return{group:o,isInGroup:l,getGroupOrLocalRef:function(e,l,a){const r=o?.[e];if(r)return t.computed({get:()=>r.value,set(e){r.value=e}});const n=t.toRef(l,e);return t.computed({get:()=>n.value,set(t){a&&a(`update:${e}`,t)}})}}}const ke={...Q,name:String,title:String,content:String,modelValue:{type:Boolean,default:void 0},disabled:Boolean,not:Boolean};function Se(e,o,l){return t.computed(()=>{const a={[e]:!0},r="string"==typeof o?.value?o.value.split(" "):o?.value;return r&&Array.isArray(r)&&r.forEach(t=>{t&&(a[`${e}--${t}`]=!0)}),l&&Object.keys(l.value).forEach(o=>{a[`${e}--${o}`]=t.unref(l.value[o])}),a})}const Be=["id","open"],we=["aria-controls","aria-expanded"],Ve=["aria-hidden"],Ce=t.defineComponent({name:"VvAccordion",props:ke,emits:["update:modelValue"],setup(e,{expose:l,emit:a}){const r=e,n=a,i=t.useAttrs(),u=o.useVModel(r,"modelValue",n),s=t.computed(()=>r.name||i?.id||t.useId()),{title:d,content:c,not:v}=t.toRefs(r),{isInGroup:p,modifiers:f,disabled:m,bus:g}=function(e){const{group:o,isInGroup:l}=he(D),a=t.computed(()=>Boolean(e.disabled||o?.disabled.value)),r=t.computed(()=>{let t=e.modifiers,l=o?.modifiers.value;const a=new Set;return t&&(Array.isArray(t)||(t=t.split(" ")),t.forEach(e=>a.add(e))),l&&(Array.isArray(l)||(l=l.split(" ")),l.forEach(e=>a.add(e))),Array.from(a)});return{isInGroup:l,group:o,modifiers:r,disabled:a,bus:o?.bus}}(r),b=t.ref(!1);function y(){m.value||(p.value?g?.emit("toggle",{name:s.value,value:!b.value}):b.value=!b.value)}function h(){b.value||y()}function k(){b.value&&y()}function S(e){g?g.emit("expand",{name:e}):console.warn(`[VvAccordion]: You are trying to expand accordion group of "${s.value}" but it is not in a group`)}function B(e){g?g?.emit("collapse",{name:e}):console.warn(`[VvAccordion]: You are trying to collapse accordion group of "${s.value}" but it is not in a group`)}t.watch(u,e=>{"boolean"==typeof e&&(b.value=v.value?!e:e)},{immediate:!0}),t.watch(b,e=>{u.value=v.value?!e:e}),g?.on("toggle",({name:e,value:t})=>{e===s.value&&(b.value=t)}),t.watch(s,(e,t)=>{g&&(t&&t!==e&&g.emit("unregister",{name:t}),g.emit("register",{name:e}))},{immediate:!0}),t.onBeforeUnmount(()=>{g&&g.emit("unregister",{name:s.value})}),l({isExpanded:b,expand:h,collapse:k,groupExpand:S,groupCollapse:B});const w=Se("vv-accordion",f,t.computed(()=>({disabled:m.value})));return(e,o)=>(t.openBlock(),t.createElementBlock("details",{id:t.unref(s),class:t.normalizeClass(t.unref(w)),open:t.unref(b)},[t.createElementVNode("summary",{"aria-controls":t.unref(s),"aria-expanded":t.unref(b),class:"vv-accordion__summary",onClick:o[0]||(o[0]=t.withModifiers(e=>y(),["prevent"]))},[t.renderSlot(e.$slots,"summary",t.normalizeProps(t.guardReactiveProps({isExpanded:t.unref(b),expand:h,collapse:k,groupExpand:S,groupCollapse:B})),()=>[t.createTextVNode(t.toDisplayString(t.unref(d)),1)])],8,we),t.createElementVNode("div",{"aria-hidden":!t.unref(b),class:"vv-accordion__content"},[t.renderSlot(e.$slots,"default",t.normalizeProps(t.guardReactiveProps({isExpanded:t.unref(b),expand:h,collapse:k,groupExpand:S,groupCollapse:B})),()=>[t.createTextVNode(t.toDisplayString(t.unref(c)),1)])],8,Ve)],10,Be))}}),xe={...Q,...ye,modelValue:{type:[String,Array],default:void 0},items:{type:Array,default:()=>[]},collapse:Boolean,itemModifiers:{type:[String,Array],default:""},disabled:Boolean,not:Boolean};function _e(e,l=k.local,a){const r=t.ref();let n;return a&&(r.value=a),t.onMounted(()=>{e&&t.watch(e,(e,a)=>{const i=t.unref(l)===k.session?sessionStorage:localStorage;if(a&&a!==e&&i.removeItem(a),e)return n=o.useStorage(e,n?.value??r.value,i),void(n.value&&(r.value=n.value));n=void 0},{immediate:!0}),t.isRef(l)&&t.watch(l,(t,l)=>{if(e?.value){if(t){const l=t===k.session?sessionStorage:localStorage;n=o.useStorage(e.value,n?.value??r.value,l)}if(l&&l!==t){(l===k.session?sessionStorage:localStorage).removeItem(e.value)}}})}),t.watch(r,e=>{n&&(n.value=e)},{deep:!0,immediate:!0}),r}function $e(e,o){t.provide(e,o)}const Ee=t.defineComponent({name:"VvAccordionGroup",props:xe,emits:["update:modelValue"],setup(e,{expose:o,emit:a}){const r=e,n=a,{disabled:i,modifiers:u,itemModifiers:s,items:d,storageKey:c,storageType:v}=t.toRefs(r);t.watchEffect(()=>{"string"==typeof r.modelValue&&r.collapse&&console.warn("[VvAccordionGroup]: modelValue is a string but collapse is true.")});const p=t.reactive(new Set),f=_e(c,v,[]),m=t.computed({get:()=>null!==r.modelValue&&void 0!==r.modelValue?r.modelValue:f.value,set:e=>{n("update:modelValue",e),f.value=e}}),g=t.computed({get:()=>{if(void 0===m.value)return new Set;let e=new Set;return r.not?"string"==typeof m.value?e=new Set([...p].filter(e=>e!==m.value)):Array.isArray(m.value)&&(e=new Set([...p].filter(e=>!m.value.includes(e)))):"string"==typeof m.value?e=new Set([m.value]):Array.isArray(m.value)&&(e=new Set(m.value)),e},set:e=>{r.not?m.value=[...p].filter(t=>!e.has(t)):r.collapse?m.value=[...e]:m.value=e.values().next().value}});t.onMounted(()=>{r.not&&void 0===m.value&&(m.value=r.collapse?[]:[...p.values()].splice(1,p.size)),t.nextTick(()=>{for(const e of p)b.emit("toggle",{name:e,value:g.value.has(e)})})});const b=l();function y(e){if("string"!=typeof e)if(Array.isArray(e))for(const t of e)b.emit("toggle",{name:t,value:!0});else for(const t of p)b.emit("toggle",{name:t,value:!0});else b.emit("toggle",{name:e,value:!0})}function h(e){if("string"!=typeof e)if(Array.isArray(e))for(const t of e)b.emit("toggle",{name:t,value:!1});else for(const t of p)b.emit("toggle",{name:t,value:!1});else b.emit("toggle",{name:e,value:!1})}$e(D,{disabled:i,modifiers:s,bus:b}),b.on("register",({name:e})=>{p.add(e)}),b.on("unregister",({name:e})=>{p.delete(e)}),b.on("toggle",({name:e,value:t})=>{const o=new Set(g.value);if(t){if(!r.collapse){for(const t of o)t!==e&&b.emit("toggle",{name:t,value:!1});o.clear()}return o.add(e),void(g.value=o)}o.delete(e),g.value=o}),b.on("expand",({name:e})=>y(e)),b.on("collapse",({name:e})=>h(e)),o({expandedAccordions:g,expand:y,collapse:h});const k=Se("vv-accordion-group",u,t.computed(()=>({disabled:i.value})));return(e,o)=>(t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(t.unref(k))},[t.renderSlot(e.$slots,"default",t.normalizeProps(t.guardReactiveProps({expandedAccordions:t.unref(g),expand:y,collapse:h})),()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(d),o=>(t.openBlock(),t.createBlock(Ce,t.mergeProps({key:o.title},{ref_for:!0},{name:o.name,title:o.title,content:o.content}),t.createSlots({_:2},[e.$slots[`summary::${o.name}`]?{name:"summary",fn:t.withCtx(l=>[t.renderSlot(e.$slots,`summary::${o.name}`,t.mergeProps({ref_for:!0},l))]),key:"0"}:void 0,e.$slots[`content::${o.name}`]?{name:"default",fn:t.withCtx(l=>[t.renderSlot(e.$slots,`content::${o.name}`,t.mergeProps({ref_for:!0},l))]),key:"1"}:void 0]),1040))),128))])],2))}}),Ne=ge;function Pe(){return t.inject(P,void 0)}const Le=t.defineComponent({name:"VvAction",props:Ne,emits:["click","mouseover","mouseleave"],setup(e,{expose:o,emit:l}){const a=e,r=l,n=t.getCurrentInstance(),i=Pe(),u=t.ref(null);o({$el:u});const{reference:s,bus:d,aria:c,expanded:v}=t.inject(R,{});t.watch(()=>u.value,e=>{s&&(s.value=e)});const p=t.computed(()=>a.pressed||v?.value),{role:f}=t.inject(M,{}),m=t.computed(()=>{switch(!0){case a.disabled:return x.button;case void 0!==a.to:return i?.nuxt?t.resolveComponent(x.nuxtLink):x.routerLink;case void 0!==a.href:return x.a;default:return a.defaultTag}}),g=t.computed(()=>{const e={...c?.value,ariaPressed:!!p.value||void 0,ariaLabel:a.ariaLabel,role:f?.value};switch(m.value){case x.a:return{...e,href:a.href,target:a.target,rel:a.rel};case x.routerLink:case x.nuxtLink:return{...e,to:a.to,target:a.target};case x.button:return{...e,type:a.type,disabled:a.disabled};default:return e}});function b(e){a.disabled?e.preventDefault():n?.vnode.props?.onClick?r("click",e):d?.emit("click",e)}function y(e){n?.vnode.props?.onMouseover?r("mouseover",e):d?.emit("mouseover",e)}function h(e){n?.vnode.props?.onMouseleave?r("mouseleave",e):d?.emit("mouseleave",e)}return(e,o)=>(t.openBlock(),t.createBlock(t.resolveDynamicComponent(t.unref(m)),t.mergeProps(t.unref(g),{ref_key:"element",ref:u,class:{active:e.active,pressed:t.unref(p),disabled:e.disabled,current:e.current},onClickPassive:b,onMouseoverPassive:y,onMouseleavePassive:h}),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.label),1)])]),_:3},16,["class"]))}});function Ae(e){return t.computed(()=>String(e?.value||t.useId()))}function Oe(e,o){const l=t.computed(()=>"string"==typeof e?.value?{name:e?.value}:e?.value),a=t.computed(()=>o?.value===V.before?l.value:void 0),r=t.computed(()=>o?.value===V.after?l.value:void 0),n=t.computed(()=>o?.value===B.left?l.value:void 0),i=t.computed(()=>o?.value===B.right?l.value:void 0),u=t.computed(()=>o?.value===B.top?l.value:void 0),s=t.computed(()=>o?.value===B.bottom?l.value:void 0);return{hasIcon:l,hasIconLeft:n,hasIconRight:i,hasIconTop:u,hasIconBottom:s,hasIconBefore:a,hasIconAfter:r}}const De={...ue,...ae,modifiers:{type:[String,Array],default:void 0},dismissable:{type:Boolean,default:!1},autoClose:{type:Number,default:0},closeLabel:{type:String,default:"Close"},title:{type:String,default:void 0},content:{type:String,default:void 0},footer:{type:String,default:void 0},role:{type:String,default:N.alert}};function Re(e,o){const{bus:l}=t.inject(I,{}),a=Ae(t.computed(()=>e.id)),r=t.computed(()=>`${a.value}-title`);let n;const i=()=>{n&&clearTimeout(n),o("close",a.value),l?.emit("close",a.value)};t.watch(()=>e.autoClose,e=>{e>0?n=setTimeout(i,e):n&&clearTimeout(n)},{immediate:!0});const u=t.ref(!1),s=()=>{u.value=!0,n&&clearTimeout(n)},d=()=>{u.value=!1,e.autoClose>0&&(n=setTimeout(i,e.autoClose))},{hasIcon:c}=Oe(t.computed(()=>e.icon)),v=Se("vv-alert",t.computed(()=>e.modifiers),t.computed(()=>({dismissable:e.autoClose>0||e.dismissable,"auto-close":e.autoClose>0,hover:u.value}))),p=t.computed(()=>({"--alert-duration":`${e.autoClose}ms`}));return{close:i,hasIcon:c,hasTitleId:r,hasProps:t.computed(()=>({onMouseover:s,onMouseleave:d,class:v.value,style:p.value,role:e.role,"aria-labelledby":r.value}))}}const Te=t.defineComponent({name:"VvIcon",props:t.mergeDefaults({name:{},color:{},width:{},height:{},provider:{},prefix:{},src:{},horizontalFlip:{type:Boolean},verticalFlip:{type:Boolean},flip:{},mode:{},inline:{type:Boolean},rotate:{},onLoad:{type:Function},svg:{},modifiers:{}},h),setup(e){const o=e,l=t.computed(()=>"string"==typeof o.rotate?Number.parseFloat(o.rotate):o.rotate),r=t.ref(!0),n=Pe(),{modifiers:i}=t.toRefs(o),u=Se("vv-icon",i),s=t.computed(()=>o.provider||n?.iconsProvider),d=t.computed(()=>{const e=o.name??"",t=`@${s.value}:${o.prefix}:${e}`;if(a.iconLoaded(t))return t;const l=n?.iconsCollections.find(t=>{const o=`@${s.value}:${t.prefix}:${e}`;return a.iconLoaded(o)});return l?`@${s.value}:${l.prefix}:${e}`:e});function c(e){const t=function(e){let t;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),l=t?.innerHTML.trim()||"";t&&l&&a.addIcon(`@${s.value}:${o.prefix}:${o.name}`,{body:l,height:t.viewBox.baseVal.height,width:t.viewBox.baseVal.width})}return n&&o.src&&!a.iconLoaded(`@${s.value}:${o.prefix}:${o.name}`)&&(r.value=!1,n.fetchIcon(o.src).then(e=>{e&&(c(e),r.value=!0)}).catch(e=>{throw new Error(`Error during fetch icon: ${e?.message}`)})),o.svg&&c(o.svg),(o,n)=>t.unref(r)?(t.openBlock(),t.createBlock(t.unref(a.Icon),t.mergeProps({key:0,class:t.unref(u)},{inline:e.inline,width:e.width,height:e.height,horizontalFlip:e.horizontalFlip,verticalFlip:e.verticalFlip,flip:e.flip,rotate:t.unref(l),color:e.color,icon:t.unref(d)},{onLoad:e.onLoad}),null,16,["class","onLoad"])):t.createCommentVNode("v-if",!0)}}),Me={key:0,class:"vv-alert__header"},Ie=["id"],ze=["aria-label"],He={key:1,class:"vv-alert__content"},Fe={key:2,class:"vv-alert__footer"},je=t.defineComponent({name:"VvAlert",props:De,emits:["close"],setup(e,{expose:o,emit:l}){const a=e,r=l,{hasProps:n,hasTitleId:i,hasIcon:u,close:s}=Re(a,r);return o({close:s}),(e,o)=>(t.openBlock(),t.createElementBlock("div",t.normalizeProps(t.guardReactiveProps(t.unref(n))),[e.$slots.header||e.$slots.title||e.$slots.close||e.$slots["title::before"]||e.$slots["title::after"]||e.title||t.unref(u)||e.dismissable||e.autoClose?(t.openBlock(),t.createElementBlock("div",Me,[t.unref(u)?(t.openBlock(),t.createBlock(Te,t.mergeProps({key:0},t.unref(u),{class:"vv-alert__icon"}),null,16)):t.createCommentVNode("v-if",!0),t.renderSlot(e.$slots,"header",{},()=>[t.renderSlot(e.$slots,"title::before"),e.$slots.title||e.title?(t.openBlock(),t.createElementBlock("strong",{key:0,id:t.unref(i),class:"vv-alert__title"},[t.renderSlot(e.$slots,"title",{},()=>[t.createTextVNode(t.toDisplayString(e.title),1)])],8,Ie)):t.createCommentVNode("v-if",!0),t.renderSlot(e.$slots,"title::after")]),t.renderSlot(e.$slots,"close",t.normalizeProps(t.guardReactiveProps({close:t.unref(s)})),()=>[e.dismissable||e.autoClose?(t.openBlock(),t.createElementBlock("button",{key:0,class:"vv-alert__close",type:"button","aria-label":e.closeLabel,onClick:o[0]||(o[0]=t.withModifiers((...e)=>t.unref(s)&&t.unref(s)(...e),["stop"]))},[...o[1]||(o[1]=[t.createElementVNode("div",{class:"vv-alert__close-mask"},null,-1)])],8,ze)):t.createCommentVNode("v-if",!0)])])):t.createCommentVNode("v-if",!0),e.$slots.default||e.content?(t.openBlock(),t.createElementBlock("div",He,[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.content),1)])])):t.createCommentVNode("v-if",!0),e.$slots.footer||e.footer?(t.openBlock(),t.createElementBlock("div",Fe,[t.renderSlot(e.$slots,"footer",{},()=>[t.createTextVNode(t.toDisplayString(e.footer),1)])])):t.createCommentVNode("v-if",!0)],16))}});const Ue={...Q,name:{type:String,required:!0},items:{type:Array,default:()=>[]},stack:{type:Boolean,default:!1},reverse:{type:Boolean,default:!1},inline:{type:String,default:void 0},block:{type:String,default:void 0},position:{type:String,default:void 0},transition:{type:String,default:void 0}};function qe(e,o){const a=function({name:e}){const o=l();return t.provide(I,{name:e,bus:o}),o}({name:t.computed(()=>e.name)});(e.block&&!e.inline||!e.block&&e.inline)&&console.warn("[VvAlertGroup]: block and inline props must coexist at the same time.");const r=t.computed(()=>{const o=[Se("vv-alert-group",t.computed(()=>e.modifiers),t.computed(()=>({stack:e.stack,reverse:e.reverse,absolute:"absolute"===e.position,fixed:"fixed"===e.position}))).value];return e.inline&&e.block&&o.push(`vv-alert-group--${e.block}-${e.inline}`),o}),n=t.computed(()=>e.transition?e.transition:e.position?"start"===e.inline?"vv-alert--fade-inline-start":"end"===e.inline?"vv-alert--fade-inline-end":"top"===e.block?"vv-alert--fade-block-top":"bottom"===e.block?"vv-alert--fade-block-bottom":"vv-alert--fade":"vv-alert--fade");return a.on("close",e=>{o("close",e)}),{hasTransition:n,hasProps:t.computed(()=>({class:r.value}))}}const Ge=t.defineComponent({name:"VvAlertGroup",props:Ue,emits:["close","beforeEnter","afterLeave","enter","afterEnter","enterCancelled","beforeLeave","leave","leaveCancelled"],setup(e,{emit:o}){const l=e,a=o,{hasProps:r,hasTransition:n}=qe(l,a),i={"before-enter":()=>{a("beforeEnter")},"after-leave":()=>{a("afterLeave")},enter:()=>{a("enter")},"after-enter":()=>{a("afterEnter")},"enter-cancelled":()=>{a("enterCancelled")},"before-leave":()=>{a("beforeLeave")},leave:()=>{a("leave")},"leave-cancelled":()=>{a("leaveCancelled")}};return(e,o)=>(t.openBlock(),t.createElementBlock("div",t.normalizeProps(t.guardReactiveProps(t.unref(r))),[t.renderSlot(e.$slots,"before"),t.createVNode(t.TransitionGroup,t.mergeProps({tag:"div",role:"group",name:t.unref(n),class:"vv-alert-group__list"},t.toHandlers(i)),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",{},()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.items,e=>(t.openBlock(),t.createBlock(je,t.mergeProps({ref_for:!0},e,{key:e.id}),null,16))),128))])]),_:3},16,["name"]),t.renderSlot(e.$slots,"after")],16))}}),Ke={...Q,imgSrc:String},We=["role","aria-label"],Ye=["src"],Je=t.defineComponent({name:"VvAvatar",props:Ke,setup(e){const o=e,{modifiers:l}=t.toRefs(o),a=Se("vv-avatar",l);return(e,o)=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(t.unref(a)),role:e.imgSrc?void 0:"img","aria-label":e.imgSrc?void 0:"avatar"},[t.renderSlot(e.$slots,"default",{},()=>[e.imgSrc?(t.openBlock(),t.createElementBlock("img",{key:0,src:e.imgSrc,alt:"avatar"},null,8,Ye)):t.createCommentVNode("v-if",!0)])],10,We))}}),Xe={...Q,items:{type:Array,default:()=>[],required:!0},toShow:{type:Number,default:3},totalItems:{type:Number},avatarModifiers:[String,Array]},Ze={key:0},Qe=t.defineComponent({name:"VvAvatarGroup",props:Xe,setup(e){const o=e,{modifiers:l,items:a,toShow:r,totalItems:n,avatarModifiers:i}=t.toRefs(o),u=Se("vv-avatar-group",l),s=t.computed(()=>i?.value&&Array.isArray(i?.value)?i.value.join(" "):i?.value||""),d=t.computed(()=>a.value.slice(0,r.value).map(e=>{let t=[],o=[];return i?.value&&(t=Array.isArray(i?.value)?i?.value:[i?.value]),e.modifiers&&(o=Array.isArray(e.modifiers)?e.modifiers:[e.modifiers]),{...e,key:e.key||Ae().value,modifiers:[...t,...o]}}));return(e,o)=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(t.unref(u))},[t.renderSlot(e.$slots,"default",{},()=>[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(t.unref(d),e=>(t.openBlock(),t.createBlock(Je,t.mergeProps({key:e.key},{ref_for:!0},{modifiers:e.modifiers,imgSrc:e.imgSrc}),{default:t.withCtx(()=>[e.text?(t.openBlock(),t.createElementBlock("span",Ze,t.toDisplayString(e.text),1)):t.createCommentVNode("v-if",!0)]),_:2},1040))),128)),(t.unref(n)||t.unref(a).length)>t.unref(r)?(t.openBlock(),t.createBlock(Je,{key:0,modifiers:`${t.unref(s)} surface bordered`},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString("+"+((t.unref(n)||t.unref(a).length)-t.unref(r))),1)]),_:1},8,["modifiers"])):t.createCommentVNode("v-if",!0)])],2))}}),et={...Q,value:[String,Number]},tt=t.defineComponent({name:"VvBadge",props:et,setup(e){const o=e,{modifiers:l}=t.toRefs(o),a=Se("vv-badge",l);return(e,o)=>(t.openBlock(),t.createElementBlock("span",{class:t.normalizeClass(t.unref(a))},[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(e.value),1)])],2))}}),ot={...Q,routes:Array},lt={class:"vv-breadcrumb__list"},at=["content"],rt=t.defineComponent({name:"VvBreadcrumb",props:ot,setup(e){const o=e,{modifiers:l}=t.toRefs(o),a=Se("vv-breadcrumb",l),r=t.computed(()=>o.routes?.length??0),n=e=>e===r.value-1;return(e,o)=>(t.openBlock(),t.createElementBlock("nav",{class:t.normalizeClass(t.unref(a)),"aria-label":"breadcrumbs"},[t.createElementVNode("ol",lt,[(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.routes,({label:o,...l},a)=>(t.openBlock(),t.createElementBlock("li",{key:`${o}-${a}`,class:t.normalizeClass(n(a)?"vv-breadcrumb__item-active":"vv-breadcrumb__item"),itemprop:"itemListElement",itemtype:"https://schema.org/ListItem",itemscope:""},[t.createVNode(Le,t.mergeProps({ref_for:!0},l,{class:n(a)?"vv-breadcrumb__label":"vv-breadcrumb__link","aria-current":n(a)?"page":void 0,itemprop:"item","default-tag":"span"}),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"label",t.mergeProps({ref_for:!0},{...l,index:a,label:o,isLast:n(a)}),()=>[t.createTextVNode(t.toDisplayString(o),1)])]),_:2},1040,["class","aria-current"]),t.createElementVNode("meta",{itemprop:"position",content:`${a+1}`},null,8,at)],2))),128))])],2))}}),nt={...ge,...ue,...Q,...ie,...j,...ae,iconPosition:{type:String,default:B.left,validator:e=>Object.values(B).includes(e)},loadingIcon:{type:String,default:"eos-icons:bubble-loading"},toggle:{type:Boolean,default:!1},value:{type:[String,Number,Boolean],default:void 0},uncheckedValue:{type:[String,Number,Boolean],default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0}};function it(e,t,o){return ut(e,t)}function ut(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const o=Array.isArray(e),l=Array.isArray(t);let a,r,n;if(o&&l){if(r=e.length,r!==t.length)return!1;for(a=r;0!==a--;)if(!ut(e[a],t[a]))return!1;return!0}if(o!==l)return!1;const i=e instanceof Date,u=t instanceof Date;if(i!==u)return!1;if(i&&u)return e.getTime()===t.getTime();const s=e instanceof RegExp,d=t instanceof RegExp;if(s!==d)return!1;if(s&&d)return e.toString()===t.toString();const c=Object.keys(e);if(r=c.length,r!==Object.keys(t).length)return!1;for(a=r;0!==a--;)if(!Object.prototype.hasOwnProperty.call(t,c[a]))return!1;for(a=r;0!==a--;)if(n=c[a],!ut(e[n],t[n]))return!1;return!0}return Number.isNaN(e)&&Number.isNaN(t)}function st(e,t){if(null!=e&&t&&t.length)for(const o of t)if(it(e,o))return!0;return!1}function dt(e){return null==(o=t.unref(e))||""===o||Array.isArray(o)&&0===o.length||!(o instanceof Date)&&"object"==typeof o&&0===Object.keys(o).length;var o}const ct={key:1,class:"vv-button__label"},vt={key:1,class:"vv-button__label"},pt=t.defineComponent({name:"VvButton",inheritAttrs:!1,props:nt,emits:["update:modelValue"],setup(e,{expose:o,emit:l}){const a=e,r=l,n=t.useAttrs(),i=t.useSlots(),{id:u,modifiers:s,iconPosition:d,icon:c,label:v,modelValue:p,disabled:f,toggle:m,unselectable:g}=function(e,o){const{group:l,isInGroup:a,getGroupOrLocalRef:r}=he(L),{id:n,iconPosition:i,icon:u,label:s,pressed:d}=t.toRefs(e),c=r("modelValue",e,o),v=r("toggle",e),p=r("unselectable",e),f=t.computed(()=>l?.multiple.value??!1),m=t.computed(()=>{let t=e.modifiers,o=l?.modifiers.value;const a=new Set;return t&&(Array.isArray(t)||(t=t.split(" ")),t.forEach(e=>a.add(e))),o&&(Array.isArray(o)||(o=o.split(" ")),o.forEach(e=>a.add(e))),Array.from(a)}),g=t.computed(()=>Boolean(e.disabled||l?.disabled.value));return{group:l,isInGroup:a,modelValue:c,toggle:v,unselectable:p,multiple:f,modifiers:m,disabled:g,id:n,pressed:d,iconPosition:i,icon:u,label:s}}(a,r),b=Ae(u),y=t.computed(()=>n?.name||b.value),h=t.ref(null);o({$el:t.computed(()=>h.value?.$el)});const k=t.computed(()=>m.value?Array.isArray(p.value)?st(y.value,p.value):it(y.value,p.value):a.pressed),S=Se("vv-button",s,t.computed(()=>({reverse:[B.right,B.bottom].includes(d.value),column:[B.top,B.bottom].includes(d.value),"icon-only":Boolean(c?.value&&!v?.value&&!i.default)}))),{hasIcon:w}=Oe(c),V=t.computed(()=>void 0!==a.value?a.value:y.value),C=t.computed(()=>{if(m.value)return{onClick:x}});function x(){if(m.value){if(Array.isArray(p.value))return st(V.value,p.value)?void(g.value&&(p.value=p.value.filter(e=>e!==V.value))):void p.value.push(V.value);if(V.value===p.value&&g.value)return void(p.value=a.uncheckedValue);p.value=V.value}}return(e,o)=>(t.openBlock(),t.createBlock(Le,t.mergeProps({...t.unref(n),...t.unref(C),disabled:t.unref(f),pressed:t.unref(k),active:e.active,type:e.type,to:e.to,href:e.href,target:e.target,rel:e.rel,ariaLabel:e.ariaLabel},{id:t.unref(b),ref_key:"element",ref:h,class:t.unref(S)}),{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",{},()=>[e.loading?t.renderSlot(e.$slots,"loading",{key:0},()=>[e.loadingIcon?(t.openBlock(),t.createBlock(Te,{key:0,class:"vv-button__loading-icon",name:e.loadingIcon},null,8,["name"])):t.createCommentVNode("v-if",!0),e.loadingLabel?(t.openBlock(),t.createElementBlock("span",ct,t.toDisplayString(e.loadingLabel),1)):t.createCommentVNode("v-if",!0)]):(t.openBlock(),t.createElementBlock(t.Fragment,{key:1},[t.renderSlot(e.$slots,"before"),t.unref(w)?(t.openBlock(),t.createBlock(Te,t.mergeProps({key:0},t.unref(w),{class:"vv-button__icon"}),null,16)):t.createCommentVNode("v-if",!0),t.unref(v)?(t.openBlock(),t.createElementBlock("span",vt,[t.renderSlot(e.$slots,"label",{},()=>[t.createTextVNode(t.toDisplayString(t.unref(v)),1)])])):t.createCommentVNode("v-if",!0),t.renderSlot(e.$slots,"after")],64))])]),_:3},16,["id","class"]))}}),ft={...Q,...U,...ie,legendLabel:{type:String},itemModifiers:{type:[String,Array],default:""},toggle:{type:Boolean,default:!1},multiple:{type:Boolean,default:!1},modelValue:{type:[String,Number,Boolean,Array],default:void 0}},mt={key:0,class:"vv-button-group__legend"},gt=t.defineComponent({name:"VvButtonGroup",props:ft,emits:["update:modelValue"],setup(e,{emit:o}){const l=e,a=o,{disabled:r,toggle:n,modifiers:i,multiple:u,unselectable:s,itemModifiers:d}=t.toRefs(l);t.watchEffect(()=>{"string"==typeof l.modelValue&&u.value&&console.warn("[VvButtonGroup]: modelValue is a string but multiple is true.")});const c=t.computed({get:()=>u.value?l.modelValue:Array.isArray(l.modelValue)?l.modelValue[0]:l.modelValue,set:e=>void 0===e||!Array.isArray(l.modelValue)&&!u.value||Array.isArray(e)?a("update:modelValue",e):a("update:modelValue",[e])});$e(L,{modelValue:c,disabled:r,toggle:n,multiple:u,unselectable:s,modifiers:d});const v=Se("vv-button-group",i);return(e,o)=>(t.openBlock(),t.createElementBlock("fieldset",{class:t.normalizeClass(t.unref(v)),role:"group"},[e.$slots.legend||e.legendLabel?(t.openBlock(),t.createElementBlock("legend",mt,[t.renderSlot(e.$slots,"legend",{},()=>[t.createTextVNode(t.toDisplayString(e.legendLabel),1)])])):t.createCommentVNode("v-if",!0),t.renderSlot(e.$slots,"default")],2))}}),bt={...Q,title:String},yt={key:0,class:"vv-card__header"},ht={key:1,class:"vv-card__content"},kt={key:2,class:"vv-card__footer"},St=t.defineComponent({name:"VvCard",props:bt,setup(e){const o=e,{modifiers:l}=t.toRefs(o),a=Se("vv-card",l);return(e,o)=>(t.openBlock(),t.createElementBlock("article",{class:t.normalizeClass(t.unref(a))},[e.$slots.header||e.title?(t.openBlock(),t.createElementBlock("header",yt,[t.renderSlot(e.$slots,"header",{},()=>[t.createTextVNode(t.toDisplayString(e.title),1)])])):t.createCommentVNode("v-if",!0),t.renderSlot(e.$slots,"default"),e.$slots.content?(t.openBlock(),t.createElementBlock("div",ht,[t.renderSlot(e.$slots,"content")])):t.createCommentVNode("v-if",!0),e.$slots.footer?(t.openBlock(),t.createElementBlock("footer",kt,[t.renderSlot(e.$slots,"footer")])):t.createCommentVNode("v-if",!0)],2))}}),Bt={...fe,...Q,indeterminate:Boolean,uncheckedValue:[String,Number,Boolean],switch:Boolean};function wt(e){return Array.isArray(e)?e.filter(e=>"string"==typeof e).join(" "):e}function Vt(e,o){const l=t.computed(()=>t.isRef(e)?e.value:e),a=t.computed(()=>wt(l.value.invalidLabel)),r=t.computed(()=>wt(l.value.validLabel)),n=t.computed(()=>l.value.loadingLabel),i=t.computed(()=>l.value.hintLabel),u=t.computed(()=>Boolean(l.value.loading&&(o.loading||n.value))),s=t.computed(()=>!u.value&&Boolean(l.value.invalid&&(o.invalid||a.value))),d=t.computed(()=>!u.value&&!s.value&&Boolean(l.value.valid&&(o.valid||r.value))),c=t.computed(()=>!u.value&&!s.value&&!d.value&&Boolean(o.hint||i.value)),v=t.computed(()=>s.value||d.value||u.value||c.value),p=t.computed(()=>({modelValue:l.value.modelValue,valid:l.value.valid,invalid:l.value.invalid,loading:l.value.loading})),f=t.defineComponent({name:"HintSlot",props:{tag:{type:String,default:"small"}},setup:()=>({isVisible:v,invalidLabel:a,validLabel:r,loadingLabel:n,hintLabel:i,hasInvalidLabelOrSlot:s,hasValidLabelOrSlot:d,hasLoadingLabelOrSlot:u,hasHintLabelOrSlot:c}),render(){if(this.isVisible){let e;return this.hasInvalidLabelOrSlot&&(e="alert"),this.hasValidLabelOrSlot&&(e="status"),this.hasLoadingLabelOrSlot?t.h(this.tag,{role:e},this.$slots.loading?.()??this.loadingLabel):this.hasInvalidLabelOrSlot?t.h(this.tag,{role:e},this.$slots.invalid?.()??this.$slots.invalid??this.invalidLabel):this.hasValidLabelOrSlot?t.h(this.tag,{role:e},this.$slots.valid?.()??this.validLabel):t.h(this.tag,{role:e},this.$slots.hint?.()??this.$slots.hint??this.hintLabel)}return null}});return{hasInvalidLabelOrSlot:s,hasHintLabelOrSlot:c,hasValidLabelOrSlot:d,hasLoadingLabelOrSlot:u,hintSlotScope:p,HintSlot:f}}function Ct(e,o,l){const a=Pe(),r=t.computed(()=>{if(a&&a.defaults.value?.[e])return a.defaults.value[e]});return t.computed(()=>{if(void 0===r.value)return l;const e=r.value,t=o,a=l;return Object.keys(t).reduce((o,l)=>{const r=a[l];if(o[l]=r,l in e){if(Array.isArray(t[l])){const a=t[l];if(a.length){a[0]===r&&(o[l]=e[l])}}if("function"==typeof t[l]){(0,t[l])()===r&&(o[l]=e[l])}if("object"==typeof t[l]){let a=t[l].default;"function"==typeof a&&(a=a()),"object"==typeof a?JSON.stringify(a)===JSON.stringify(r)&&(o[l]=e[l]):a===r&&(o[l]=e[l])}}return o},{})})}const xt=["for"],_t=["id","name","disabled","value","tabindex","aria-invalid","aria-describedby","aria-errormessage"],$t=t.defineComponent({name:"VvCheckbox",props:Bt,emits:["click","update:modelValue","change","blur"],setup(e,{emit:o}){const l=e,a=o,r=t.useSlots(),n=Ct("VvCheckbox",Bt,l),{id:i,disabled:u,readonly:s,valid:d,invalid:c,propsSwitch:v,modelValue:p,indeterminate:f,isInGroup:m}=function(e,o){const{group:l,isInGroup:a,getGroupOrLocalRef:r}=he(O),{id:n,switch:i,indeterminate:u}=t.toRefs(e),s=r("modelValue",e,o),d=r("valid",e),c=r("invalid",e),v=t.computed(()=>Boolean(e.readonly||l?.readonly.value)),p=t.computed(()=>Boolean(e.disabled||l?.disabled.value));return{id:n,propsSwitch:i,indeterminate:u,group:l,isInGroup:a,modelValue:s,valid:d,invalid:c,readonly:v,disabled:p}}(l,a),g=Ae(i),b=t.computed(()=>`${g.value}-hint`),y=t.computed(()=>S.value?-1:l.tabindex),h=t.ref(),k=t.computed(()=>void 0!==l.uncheckedValue&&!m.value),S=t.computed(()=>u.value||s.value),B=t.computed(()=>!0===c.value||!0!==d.value&&void 0),w=t.computed(()=>k.value?p.value===l.value:Array.isArray(p.value)?st(l.value,p.value):it(l.value,p.value)),V=t.computed(()=>!!f.value||!(w.value||!k.value||l.uncheckedValue===p.value)),C=t.computed(()=>{if(!k.value)return!["string","number","boolean"].includes(typeof l.value)||l.value}),x=t.computed({get:()=>w.value,set(e){if(k.value)p.value=e?l.value:l.uncheckedValue;else if(Array.isArray(p.value)||m.value){const t=p.value??[],o=new Set(Array.isArray(t)?t:[t]);e?o.add(l.value):o.delete(l.value),p.value=[...o]}else p.value=e?l.value:void 0;a("change",e)}}),{modifiers:_}=t.toRefs(l),$=Se("vv-checkbox",_,t.computed(()=>({switch:v.value,valid:d.value,invalid:c.value,disabled:u.value,readonly:s.value,indeterminate:f.value})));t.watchEffect(()=>{k.value&&Array.isArray(p.value)&&console.warn("[VvCheckbox] The model value is an array but the component is in binary mode.")}),t.watch(()=>V.value,e=>{h.value.indeterminate=!!e}),t.onMounted(()=>{V.value&&(h.value.indeterminate=!0)});const{HintSlot:E,hasHintLabelOrSlot:N,hasInvalidLabelOrSlot:P,hintSlotScope:L}=Vt(n,r);return(e,o)=>(t.openBlock(),t.createElementBlock("label",{class:t.normalizeClass(t.unref($)),for:t.unref(g)},[t.withDirectives(t.createElementVNode("input",{id:t.unref(g),ref_key:"input",ref:h,"onUpdate:modelValue":o[0]||(o[0]=e=>t.isRef(x)?x.value=e:null),type:"checkbox",class:"vv-checkbox__input",name:e.name,disabled:t.unref(S),value:t.unref(C),tabindex:t.unref(y),"aria-invalid":t.unref(B),"aria-describedby":t.unref(N)?t.unref(b):void 0,"aria-errormessage":t.unref(P)?t.unref(b):void 0},null,8,_t),[[t.vModelCheckbox,t.unref(x)]]),t.renderSlot(e.$slots,"default",{value:t.unref(p)},()=>[t.createTextVNode(t.toDisplayString(e.label),1)]),t.createVNode(t.unref(E),{id:t.unref(b),class:"vv-checkbox__hint"},t.createSlots({_:2},[e.$slots.hint?{name:"hint",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"hint",t.normalizeProps(t.guardReactiveProps(t.unref(L))))]),key:"0"}:void 0,e.$slots.loading?{name:"loading",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"loading",t.normalizeProps(t.guardReactiveProps(t.unref(L))))]),key:"1"}:void 0,e.$slots.valid?{name:"valid",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"valid",t.normalizeProps(t.guardReactiveProps(t.unref(L))))]),key:"2"}:void 0,e.$slots.invalid?{name:"invalid",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"invalid",t.normalizeProps(t.guardReactiveProps(t.unref(L))))]),key:"3"}:void 0]),1032,["id"])],10,xt))}}),Et=me;function Nt(e){const{options:o,labelKey:l,valueKey:a,disabledKey:n}=t.toRefs(e);return{options:o,getOptionLabel:e=>"string"==typeof e?e:"function"==typeof l.value?l.value(e):String(l.value?r.getProperty(e,l.value):e),getOptionValue:e=>"string"==typeof e?e:"function"==typeof a.value?a.value(e):a.value?r.getProperty(e,a.value):e,isOptionDisabled:e=>"string"!=typeof e&&("function"==typeof n.value?n.value(e):!!n.value&&Boolean(r.getProperty(e,n.value))),getOptionGrouped:e=>"string"==typeof e?[]:"object"==typeof e&&e&&"options"in e?e.options:[]}}const Pt=["textContent"],Lt={class:"vv-checkbox-group__wrapper"},At=t.defineComponent({name:"VvCheckboxGroup",props:Et,emits:["update:modelValue","change"],setup(e,{emit:l}){const a=e,r=l,n=t.useSlots(),i=Ct("VvCheckboxGroup",Et,a),u=o.useVModel(a,"modelValue",r),{disabled:s,readonly:d,vertical:c,valid:v,invalid:p,modifiers:f}=t.toRefs(a);$e(O,{modelValue:u,disabled:s,readonly:d,valid:v,invalid:p});const{getOptionLabel:m,getOptionValue:g,isOptionDisabled:b}=Nt(a),y=Se("vv-checkbox-group",f,t.computed(()=>({disabled:s.value,readonly:d.value,required:a.required,horizontal:!c.value,valid:v.value,invalid:p.value})));const{HintSlot:h,hintSlotScope:k}=Vt(i,n);return(e,o)=>(t.openBlock(),t.createElementBlock("fieldset",{class:t.normalizeClass(t.unref(y))},[e.label?(t.openBlock(),t.createElementBlock("legend",{key:0,textContent:t.toDisplayString(e.label)},null,8,Pt)):t.createCommentVNode("v-if",!0),t.createElementVNode("div",Lt,[e.options.length>0?(t.openBlock(!0),t.createElementBlock(t.Fragment,{key:0},t.renderList(e.options,(e,o)=>(t.openBlock(),t.createBlock($t,t.mergeProps({key:o},{ref_for:!0},function(e,t){return{id:`${a.name}_opt${t}`,name:a.name,label:m(e),value:g(e),required:a.required,disabled:b(e)}}(e,o)),null,16))),128)):t.renderSlot(e.$slots,"default",{key:1})]),t.createVNode(t.unref(h),{class:"vv-checkbox-group__hint"},t.createSlots({_:2},[e.$slots.hint?{name:"hint",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"hint",t.normalizeProps(t.guardReactiveProps(t.unref(k))))]),key:"0"}:void 0,e.$slots.loading?{name:"loading",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"loading",t.normalizeProps(t.guardReactiveProps(t.unref(k))))]),key:"1"}:void 0,e.$slots.valid?{name:"valid",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"valid",t.normalizeProps(t.guardReactiveProps(t.unref(k))))]),key:"2"}:void 0,e.$slots.invalid?{name:"invalid",fn:t.withCtx(()=>[t.renderSlot(e.$slots,"invalid",t.normalizeProps(t.guardReactiveProps(t.unref(k))))]),key:"3"}:void 0]),1024)],2))}}),Ot={...de,...re,...H,...F,...ee,...j,...U,...Z,...Q,...te,...ae,...ne,...se,...X,...q,...Y,transitionName:{type:String,default:"vv-dropdown--mobile-fade-block"},modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},noResultsLabel:{type:String,default:"No results"},noOptionsLabel:{type:String,default:"No options available"},selectedOptionNotFoundLabel:{type:String,default:"Selected option not found"},selectedHintLabel:{type:String,default:"Selected"},deselectActionLabel:{type:String,default:"Deselect"},selectHintLabel:{type:String,default:"Press enter to select"},deselectHintLabel:{type:String,default:"Press enter to remove"},addOptionHintLabel:{type:String,default:"Press enter to add"},closeLabel:{type:String,default:"Close"},placeholder:String,addable:Boolean,searchable:Boolean,keepSearch:Boolean,searchFunction:{type:Function,default:void 0},searchPlaceholder:{type:String,default:"Search..."},debounceSearch:{type:[Number,String],default:0},multiple:Boolean,minValues:{type:[Number,String],default:0},maxValues:[Number,String],unselectable:{type:Boolean,default:!0},separator:{type:String,default:", "},native:Boolean,badges:Boolean,badgeModifiers:{type:[String,Array],default:"action sm"},triggerWidth:{...se.triggerWidth,default:!0},dropdownModifiers:{type:[String,Array],default:"mobile"},autoOpen:{type:Boolean,default:!1},autoselectFirst:{type:Boolean,default:!1},keepOpen:{type:Boolean,default:!1},focusOnHover:{type:Boolean,default:!0}};function Dt(){return{...Ot,options:{...Ot.options,type:Array},searchFunction:{...Ot.searchFunction,type:Function}}}const Rt=t.defineComponent({components:{VvIcon:Te},props:{inputType:{type:String,default:"input-text"},disabled:{type:Boolean,default:!1},label:{type:String,default:"Clear"},icon:{type:[String,Object],default:"close"}},emits:["clear"],setup(e,{emit:o}){const{hasIcon:l}=Oe(t.computed(()=>e.icon));return{hasIcon:l,onClick:function(t){t?.stopPropagation(),e.disabled||o("clear")}}},render(){const e=this.hasIcon?t.h(Te,{...this.hasIcon,class:`vv-${this.inputType}__icon`}):void 0;return t.h("button",{disabled:this.disabled,class:`vv-${this.inputType}__action`,ariaLabel:this.label,type:"button",onClick:this.onClick},e)}}),Tt={...ue,...se,...Q,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:$.menu,validator:e=>Object.values($).includes(e)}},Mt={focusOnHover:{type:Boolean,default:!1}},It={...U,...G,...ie,...Q,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String},focusOnHover:{type:Boolean,default:!1}};const zt=["id","tabindex","role","aria-labelledby"],Ht=t.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:Tt,emits:["update:modelValue","beforeEnter","afterLeave","beforeExpand","beforeCollapse","afterExpand","afterCollapse","before-enter","after-leave","enter","afterEnter","enterCancelled","beforeLeave","leave","leaveCancelled"],setup(e,{expose:a,emit:r}){const i=e,u=r,{id:s}=t.toRefs(i),d=Ae(s),c=t.useAttrs(),v=t.ref("auto"),p=t.ref("auto"),f=t.ref(),m=t.ref(),g=t.ref(),b=t.ref(),y=t.computed({get:()=>i.reference??f.value,set:e=>{f.value=e}}),h=t.ref(!1);t.onMounted(()=>{o.useMutationObserver(m.value,()=>{h.value="true"===window.getComputedStyle(m.value).getPropertyValue("--dropdown-custom-position")?.trim()},{attributeFilter:["style"],window:window})});const k=t.computed(()=>{const e=[];if(i.autoPlacement?"boolean"==typeof i.autoPlacement?e.push(n.autoPlacement()):e.push(n.autoPlacement(i.autoPlacement)):i.flip&&("boolean"==typeof i.flip?e.push(n.flip({fallbackStrategy:"initialPlacement"})):e.push(n.flip(i.flip))),i.shift&&("boolean"==typeof i.shift?e.push(n.shift()):e.push(n.shift(i.shift))),i.size){const t=({availableWidth:e,availableHeight:t})=>{v.value=`${e}px`,p.value=`${t}px`};"boolean"==typeof i.size?e.push(n.size({apply:t})):e.push(n.size({...i.size,apply:t}))}return i.offset&&(e.push(n.offset(Number(i.offset))),["string","number"].includes(typeof i.offset)?e.push(n.offset(Number(i.offset))):e.push(n.offset(i.offset))),i.arrow&&e.push(n.arrow({element:g})),e}),{x:w,y:V,middlewareData:C,placement:x,strategy:_}=n.useFloating(y,m,{whileElementsMounted:(...e)=>n.autoUpdate(...e,{animationFrame:i.strategy===S.fixed}),placement:t.computed(()=>i.placement),strategy:t.computed(()=>i.strategy),middleware:k}),N=t.computed(()=>{if(h.value)return;const e=i.triggerWidth&&y.value?`${y.value?.offsetWidth}px`:void 0;return{position:_.value,top:`${V.value??0}px`,left:`${w.value??0}px`,maxWidth:e?void 0:v.value,maxHeight:p.value,width:e}}),P=t.computed(()=>x.value.split("-")[0]),L=t.computed(()=>{if(h.value)return;const e={[B.top]:B.bottom,[B.right]:B.left,[B.bottom]:B.top,[B.left]:B.right}[P.value];return{left:void 0!==C.value.arrow?.x?`${C.value.arrow?.x}px`:void 0,top:void 0!==C.value.arrow?.y?`${C.value.arrow?.y}px`:void 0,[e]:-(g.value?.offsetWidth??0)/2+"px"}}),A=o.useVModel(i,"modelValue",u),O=t.ref(!1),D=t.computed({get:()=>A.value??O.value,set:e=>{void 0!==A.value?A.value=e:O.value=e}});function M(){D.value=!0}function I(){D.value=!1}function z(){D.value=!D.value}function H(e){y.value=e}o.onClickOutside(m,()=>{!i.keepOpen&&D.value&&(D.value=!1)},{ignore:[y]});const F=t.computed(()=>y.value?.getAttribute?.("id")??void 0),j=t.computed(()=>({"aria-controls":d.value,"aria-haspopup":!0,"aria-expanded":D.value})),{component:U,bus:q}=function({reference:e,id:o,expanded:a,aria:r}){const n=l(),i=t.defineComponent({name:"VvDropdownTriggerProvider",setup(){t.provide(R,{reference:e,id:o,expanded:a,aria:r,bus:n})},render(){return t.h(t.Fragment,{},this.$slots.default?.())}});return{bus:n,component:i}}({reference:y,id:d,expanded:D,aria:j});q.on("click",z);const{role:G,modifiers:K}=t.toRefs(i),W=Se("vv-dropdown",K,t.computed(()=>({arrow:i.arrow}))),{focused:Y}=o.useFocusWithin(m);function J(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details, [tabindex]:not([tabindex="-1"])')].filter(e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden")):[]}function X(){t.nextTick(()=>{const e=J(m.value);e.length>0&&e[0].focus({preventScroll:!0})})}function Z(){t.nextTick(()=>{if(Y.value){const e=J(m.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus({preventScroll:!0}):e[0].focus({preventScroll:!0})}})}function Q(){t.nextTick(()=>{if(Y.value){const e=J(m.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus({preventScroll:!0}):e[e.length-1].focus({preventScroll:!0})}})}t.watch(D,e=>{e&&i.autofocusFirst&&X()}),a({toggle:z,show:M,hide:I,init:H,focusFirst:X,focusFirstListElement:function(){t.nextTick(()=>{const e=J(b.value);e.length>0&&e[0].focus({preventScroll:!0})})},focusNext:Z,focusPrev:Q,customPosition:h});const ee=o.useElementHover(m),{itemRole:te}=function({role:e,...o}){const l=t.computed(()=>e.value===$.listbox?E.option:E.presentation);return t.provide(T,{role:l,...o}),{itemRole:l}}({role:G,expanded:D,focused:Y,hovered:ee});o.onKeyStroke("Escape",e=>{D.value&&(e.preventDefault(),I())}),o.onKeyStroke("ArrowDown",e=>{D.value&&Y.value&&(e.preventDefault(),Z())}),o.onKeyStroke("ArrowUp",e=>{D.value&&Y.value&&(e.preventDefault(),Q())}),o.onKeyStroke([" ","Enter"],e=>{const t=e.target;D.value&&Y.value&&t&&t?.click()});const oe={"before-enter":()=>{u(D.value?"beforeExpand":"beforeCollapse"),u("beforeEnter")},"after-leave":()=>{u(D.value?"afterExpand":"afterCollapse"),u("afterLeave")},enter:()=>{u("enter")},"after-enter":()=>{u("afterEnter")},"enter-cancelled":()=>{u("enterCancelled")},"before-leave":()=>{u("beforeLeave")},leave:()=>{u("leave")},"leave-cancelled":()=>{u("leaveCancelled")}};return(e,o)=>(t.openBlock(),t.createElementBlock(t.Fragment,null,[t.createVNode(t.unref(U),null,{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default",t.normalizeProps(t.guardReactiveProps({init:H,show:M,hide:I,toggle:z,expanded:t.unref(D),aria:t.unref(j)})))]),_:3}),t.createVNode(t.Transition,t.mergeProps({name:e.transitionName},t.toHandlers(oe),{persisted:""}),{default:t.withCtx(()=>[t.withDirectives(t.createElementVNode("div",{ref_key:"floatingEl",ref:m,style:t.normalizeStyle(t.unref(N)),class:t.normalizeClass(t.unref(W))},[i.arrow?(t.openBlock(),t.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:g,style:t.normalizeStyle(t.unref(L)),class:"vv-dropdown__arrow"},null,4)):t.createCommentVNode("v-if",!0),t.renderSlot(e.$slots,"before",t.normalizeProps(t.guardReactiveProps({expanded:t.unref(D)}))),t.createElementVNode("div",t.mergeProps(t.unref(c),{id:t.unref(d),ref_key:"listEl",ref:b,tabindex:t.unref(D)?void 0:-1,role:t.unref(G),"aria-labelledby":t.unref(F),class:"vv-dropdown__list"}),[t.renderSlot(e.$slots,"items",t.normalizeProps(t.guardReactiveProps({role:t.unref(te)})))],16,zt),t.renderSlot(e.$slots,"after",t.normalizeProps(t.guardReactiveProps({expanded:t.unref(D)})))],6),[[t.vShow,t.unref(D)]])]),_:3},16,["name"])],64))}}),Ft={class:"vv-dropdown-optgroup",role:"presentation",tabindex:"-1"},jt=t.defineComponent({name:"VvDropdownOptgroup",props:{...X},setup(e){const o=e;return(e,l)=>(t.openBlock(),t.createElementBlock("li",Ft,[t.renderSlot(e.$slots,"default",{},()=>[t.createTextVNode(t.toDisplayString(o.label),1)])]))}}),Ut=t.defineComponent({name:"VvDropdownItem",props:Mt,setup(e){const l=e,{role:a,expanded:r}=t.inject(T,{}),n=t.ref(null);!function({expanded:e}){t.provide(M,{role:t.ref(_.menuitem),expanded:e})}({expanded:r});const i=o.useElementHover(n),{focused:u}=o.useFocus(n),{focused:s}=o.useFocusWithin(n);return t.watch(i,e=>{e&&l.focusOnHover&&(u.value=!0)}),(e,o)=>(t.openBlock(),t.createElementBlock("div",t.mergeProps({role:t.unref(a)},{ref_key:"element",ref:n,class:["vv-dropdown__item",{"focus-visible":t.unref(u)||t.unref(s)}]}),[t.renderSlot(e.$slots,"default")],16))}}),qt=["title"],Gt=t.defineComponent({name:"VvDropdownOption",props:It,setup(e){const o=e,{modifiers:l}=t.toRefs(o),a=Se("vv-dropdown-option",l,t.computed(()=>({disabled:o.disabled,selected:o.selected,unselectable:o.unselectable&&o.selected}))),r=t.computed(()=>o.selected?o.unselectable?o.deselectHintLabel:o.selectedHintLabel:o.disabled?"":o.selectHintLabel);return(e,o)=>(t.openBlock(),t.createBlock(Ut,{class:t.normalizeClass(t.unref(a)),tabindex:e.disabled?-1:0,"aria-selected":e.selected,"aria-disabled":e.disabled,"focus-on-hover":e.focusOnHover},{default:t.withCtx(()=>[t.renderSlot(e.$slots,"default"),t.cr