@wikimedia/codex
Version:
Codex Design System for Wikimedia
2 lines (1 loc) • 23.7 kB
JavaScript
var Ze=Object.defineProperty,et=Object.defineProperties;var tt=Object.getOwnPropertyDescriptors;var we=Object.getOwnPropertySymbols;var nt=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable;var Me=(e,n,l)=>n in e?Ze(e,n,{enumerable:!0,configurable:!0,writable:!0,value:l}):e[n]=l,W=(e,n)=>{for(var l in n||(n={}))nt.call(n,l)&&Me(e,l,n[l]);if(we)for(var l of we(n))at.call(n,l)&&Me(e,l,n[l]);return e},se=(e,n)=>et(e,tt(n));import{d as te,bi as lt,C as he,r as S,H as ge,B as N,t as ue,bj as it,_ as ne,a as Q,b as M,o as h,g as T,j as $e,w as re,n as ee,G as Re,T as st,c as m,L as P,bk as ot,bl as ut,bm as rt,bn as U,e as B,q as de,s as R,bo as dt,h as Y,k as Le,f as L,F as Z,E as G,i as ct,bp as ft,I as Ne,v as ht,K as xe,z as gt,N as ke,a7 as vt,ac as mt,p as Ce,Q as bt,bq as Se}from"./DemoBaseLayout.vue_vue_type_style_index_0_lang-CZ7OyK4g.js";/* empty css */import{i as pt,g as yt,c as _t,d as wt,a as Mt,o as $t,s as xt,f as kt,h as Be}from"./floating-ui.dom-CMj0Z5yx.js";const Ct=te({name:"CdxThumbnail",components:{CdxIcon:he},props:{thumbnail:{type:[Object,null],default:null},placeholderIcon:{type:[String,Object],default:lt}},setup:e=>{const n=S(!1),l=S({}),g=o=>{const d=o.replace(/([\\"\n])/g,"\\$1"),u=new Image;u.onload=()=>{l.value={backgroundImage:'url("'.concat(d,'")')},n.value=!0},u.onerror=()=>{n.value=!1},u.src=d};return ge(()=>{var o;(o=e.thumbnail)!=null&&o.url&&g(e.thumbnail.url)}),N(ue(e,"thumbnail"),(o,d)=>{if(!(o!=null&&o.url)){n.value=!1,l.value={};return}(d==null?void 0:d.url)!==o.url&&(n.value=!1,g(o.url))},{deep:!0}),{thumbnailStyle:l,thumbnailLoaded:n,NoInvertClass:it}}}),St={class:"cdx-thumbnail"},Bt={key:0,class:"cdx-thumbnail__placeholder"};function Tt(e,n,l,g,o,d){const u=Q("cdx-icon");return h(),M("span",St,[e.thumbnailLoaded?T("v-if",!0):(h(),M("span",Bt,[$e(u,{icon:e.placeholderIcon,class:"cdx-thumbnail__placeholder__icon--vue"},null,8,["icon"])])),$e(st,{name:"cdx-thumbnail__image"},{default:re(()=>[e.thumbnailLoaded?(h(),M("span",{key:0,style:Re(e.thumbnailStyle),class:ee([e.NoInvertClass,"cdx-thumbnail__image"])},null,6)):T("v-if",!0)]),_:1})])}const It=ne(Ct,[["render",Tt]]);function Rt(e){return e!=null&&typeof e=="object"&&"$el"in e}function fe(e){if(Rt(e)){const n=e.$el;return pt(n)&&yt(n)==="#comment"?null:n}return e}function pn(e){return{name:"arrow",options:e,fn(n){const l=fe(P(e.element));return l==null?{}:wt({element:l,padding:e.padding}).fn(n)}}}function De(e){return typeof window=="undefined"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Te(e,n){const l=De(e);return Math.round(n*l)/l}function Lt(e,n,l){l===void 0&&(l={});const g=l.whileElementsMounted,o=m(()=>{var y;return(y=P(l.open))!=null?y:!0}),d=m(()=>P(l.middleware)),u=m(()=>{var y;return(y=P(l.placement))!=null?y:"bottom"}),_=m(()=>{var y;return(y=P(l.strategy))!=null?y:"absolute"}),x=m(()=>{var y;return(y=P(l.transform))!=null?y:!0}),i=m(()=>fe(e.value)),r=m(()=>fe(n.value)),p=S(0),v=S(0),c=S(_.value),b=S(u.value),w=ot({}),D=S(!1),q=m(()=>{const y={position:c.value,left:"0",top:"0"};if(!r.value)return y;const E=Te(r.value,p.value),V=Te(r.value,v.value);return x.value?W(se(W({},y),{transform:"translate("+E+"px, "+V+"px)"}),De(r.value)>=1.5&&{willChange:"transform"}):{position:c.value,left:E+"px",top:V+"px"}});let O;function H(){i.value==null||r.value==null||_t(i.value,r.value,{middleware:d.value,placement:u.value,strategy:_.value}).then(y=>{p.value=y.x,v.value=y.y,c.value=y.strategy,b.value=y.placement,w.value=y.middlewareData,D.value=!0})}function k(){typeof O=="function"&&(O(),O=void 0)}function K(){if(k(),g===void 0){H();return}if(i.value!=null&&r.value!=null){O=g(i.value,r.value,H);return}}function J(){o.value||(D.value=!1)}return N([d,u,_],H,{flush:"sync"}),N([i,r],K,{flush:"sync"}),N(o,J,{flush:"sync"}),ut()&&rt(k),{x:U(p),y:U(v),strategy:U(c),placement:U(b),middlewareData:U(w),isPositioned:U(D),floatingStyles:q,update:H}}function Nt(e){return e.replace(/([\\{}()|.?*+\-^$[\]])/g,"\\$1")}const Dt="[̀-ͯ҃-҉֑-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣ৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఄా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪾ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿⃐-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯-꙲ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꣿꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯]";function Ot(e,n){if(!e)return[n,"",""];const l=Nt(e),g=new RegExp(l+Dt+"*","i").exec(n);if(!g||g.index===void 0)return[n,"",""];const o=g.index,d=o+g[0].length,u=n.slice(o,d),_=n.slice(0,o),x=n.slice(d,n.length);return[_,u,x]}const Ht=te({name:"CdxSearchResultTitle",props:{title:{type:String,required:!0},searchQuery:{type:String,default:""}},setup:e=>({titleChunks:m(()=>Ot(e.searchQuery,String(e.title)))})}),At={class:"cdx-search-result-title"},Kt={class:"cdx-search-result-title__match"};function Et(e,n,l,g,o,d){return h(),M("span",At,[B("bdi",null,[de(R(e.titleChunks[0]),1),B("span",Kt,R(e.titleChunks[1]),1),de(R(e.titleChunks[2]),1)])])}const Vt=ne(Ht,[["render",Et]]),jt=te({name:"CdxMenuItem",components:{CdxIcon:he,CdxThumbnail:It,CdxSearchResultTitle:Vt},props:{id:{type:String,required:!0},value:{type:[String,Number],required:!0},disabled:{type:Boolean,default:!1},selected:{type:Boolean,default:!1},active:{type:Boolean,default:!1},highlighted:{type:Boolean,default:!1},label:{type:String,default:""},match:{type:String,default:""},supportingText:{type:String,default:""},url:{type:String,default:""},urlNewTab:{type:Boolean,default:!1},icon:{type:[String,Object],default:""},showThumbnail:{type:Boolean,default:!1},thumbnail:{type:[Object,null],default:null},description:{type:[String,null],default:""},searchQuery:{type:String,default:""},boldLabel:{type:Boolean,default:!1},hideDescriptionOverflow:{type:Boolean,default:!1},language:{type:Object,default:()=>({})},action:{type:String,default:"default"},multiselect:{type:Boolean,default:!1}},emits:["change"],setup:(e,{emit:n})=>{const l=()=>{e.highlighted||n("change","highlighted",!0)},g=()=>{n("change","highlighted",!1)},o=p=>{p.button===0&&n("change","active",!0)},d=()=>{n("change","selected",!0)},u=m(()=>e.searchQuery.length>0),_=m(()=>({"cdx-menu-item--selected":e.selected,"cdx-menu-item--active":e.active&&e.highlighted,"cdx-menu-item--highlighted":e.highlighted,"cdx-menu-item--destructive":e.action&&e.action==="destructive","cdx-menu-item--enabled":!e.disabled,"cdx-menu-item--disabled":e.disabled,"cdx-menu-item--highlight-query":u.value,"cdx-menu-item--bold-label":e.boldLabel,"cdx-menu-item--has-description":!!e.description,"cdx-menu-item--hide-description-overflow":e.hideDescriptionOverflow})),x=m(()=>e.url?"a":"span"),i=m(()=>e.url&&e.urlNewTab?{target:"_blank",rel:"noopener noreferrer"}:{}),r=m(()=>e.label||String(e.value));return{onMouseMove:l,onMouseLeave:g,onMouseDown:o,onClick:d,highlightQuery:u,rootClasses:_,contentTag:x,linkAttrs:i,title:r,cdxIconCheck:dt}}}),Pt=["id","aria-disabled","aria-selected","aria-checked"],Qt={class:"cdx-menu-item__text"},qt=["lang"],Ft=["lang"],zt=["lang"],Wt=["lang"];function Ut(e,n,l,g,o,d){const u=Q("cdx-thumbnail"),_=Q("cdx-icon"),x=Q("cdx-search-result-title");return h(),M("li",{id:e.id,role:"option",class:ee(["cdx-menu-item",e.rootClasses]),"aria-disabled":e.disabled,"aria-selected":e.selected&&!e.multiselect?!0:void 0,"aria-checked":e.selected&&e.multiselect?!0:void 0,onMousemove:n[0]||(n[0]=(...i)=>e.onMouseMove&&e.onMouseMove(...i)),onMouseleave:n[1]||(n[1]=(...i)=>e.onMouseLeave&&e.onMouseLeave(...i)),onMousedown:n[2]||(n[2]=Le((...i)=>e.onMouseDown&&e.onMouseDown(...i),["prevent"])),onClick:n[3]||(n[3]=(...i)=>e.onClick&&e.onClick(...i))},[Y(e.$slots,"default",{},()=>[(h(),L(ct(e.contentTag),G({href:e.url?e.url:void 0},e.url?e.linkAttrs:{},{class:"cdx-menu-item__content"}),{default:re(()=>{var i,r,p,v,c,b;return[e.showThumbnail?(h(),L(u,{key:0,thumbnail:e.thumbnail,class:"cdx-menu-item__thumbnail"},null,8,["thumbnail"])):e.icon?(h(),L(_,{key:1,icon:e.icon,class:"cdx-menu-item__icon"},null,8,["icon"])):T("v-if",!0),B("span",Qt,[e.highlightQuery?(h(),L(x,{key:0,title:e.title,"search-query":e.searchQuery,lang:(i=e.language)==null?void 0:i.label},null,8,["title","search-query","lang"])):(h(),M("span",{key:1,class:"cdx-menu-item__text__label",lang:(r=e.language)==null?void 0:r.label},[B("bdi",null,R(e.title),1)],8,qt)),e.match?(h(),M(Z,{key:2},[n[4]||(n[4]=de(R(" ")+" ")),e.highlightQuery?(h(),L(x,{key:0,title:e.match,"search-query":e.searchQuery,lang:(p=e.language)==null?void 0:p.match},null,8,["title","search-query","lang"])):(h(),M("span",{key:1,class:"cdx-menu-item__text__match",lang:(v=e.language)==null?void 0:v.match},[B("bdi",null,R(e.match),1)],8,Ft))],64)):T("v-if",!0),e.supportingText?(h(),M(Z,{key:3},[n[5]||(n[5]=de(R(" ")+" ")),B("span",{class:"cdx-menu-item__text__supporting-text",lang:(c=e.language)==null?void 0:c.supportingText},[B("bdi",null,R(e.supportingText),1)],8,zt)],64)):T("v-if",!0),e.description?(h(),M("span",{key:4,class:"cdx-menu-item__text__description",lang:(b=e.language)==null?void 0:b.description},[B("bdi",null,R(e.description),1)],8,Wt)):T("v-if",!0)]),e.multiselect&&e.selected?(h(),L(_,{key:2,icon:e.cdxIconCheck,size:"small",class:"cdx-menu-item__selected-icon"},null,8,["icon"])):T("v-if",!0)]}),_:1},16,["href"]))])],42,Pt)}const Gt=ne(jt,[["render",Ut]]),Jt=te({name:"CdxProgressBar",props:{inline:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e,{attrs:n}){ft(()=>!e.inline&&!n["aria-label"]&&!n["aria-hidden"]);const l=m(()=>({"cdx-progress-bar--block":!e.inline,"cdx-progress-bar--inline":e.inline,"cdx-progress-bar--enabled":!e.disabled,"cdx-progress-bar--disabled":e.disabled})),g=m(()=>e.inline?"true":void 0);return{rootClasses:l,computedAriaHidden:g}}}),Xt=["aria-hidden","aria-disabled"];function Yt(e,n,l,g,o,d){return h(),M("div",{class:ee(["cdx-progress-bar",e.rootClasses]),role:"progressbar","aria-hidden":e.computedAriaHidden,"aria-disabled":e.disabled},n[0]||(n[0]=[B("div",{class:"cdx-progress-bar__bar"},null,-1)]),10,Xt)}const Zt=ne(Jt,[["render",Yt]]);function en(e,n){const l=S(!1);let g=!1;if(typeof window!="object"||!("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype))return l;const o=new window.IntersectionObserver(d=>{const u=d[0];u&&(l.value=u.isIntersecting)},n);return ge(()=>{g=!0,e.value&&o.observe(e.value)}),Ne(()=>{g=!1,o.disconnect()}),N(e,d=>{g&&(o.disconnect(),l.value=!1,d&&o.observe(d))}),l}function oe(e){return e!==null&&Array.isArray(e)}function X(e){return"items"in e}const tn=te({name:"CdxMenu",components:{CdxMenuItem:Gt,CdxIcon:he,CdxProgressBar:Zt},inheritAttrs:!1,props:{menuItems:{type:Array,required:!0},footer:{type:Object,default:null},selected:{type:[String,Number,Array,null],required:!0},expanded:{type:Boolean,required:!0},showPending:{type:Boolean,default:!1},visibleItemLimit:{type:Number,default:null},showThumbnail:{type:Boolean,default:!1},boldLabel:{type:Boolean,default:!1},hideDescriptionOverflow:{type:Boolean,default:!1},searchQuery:{type:String,default:""},showNoResultsSlot:{type:Boolean,default:null},renderInPlace:{type:Boolean,default:!1}},emits:["update:selected","update:expanded","menu-item-click","menu-item-keyboard-navigation","load-more"],setup(e,{emit:n,slots:l,attrs:g}){const o=ht();let d=0;const u=new Map;function _(){return d+=1,"".concat(o,"-").concat(d)}function x(t){t.forEach(a=>{if(X(a)){const s="group-".concat(a.label);u.has(s)||u.set(s,_()),a.items.forEach(f=>{u.has(f.value)||u.set(f.value,_())})}else u.has(a.value)||u.set(a.value,_())})}N(ue(e,"menuItems"),t=>{function a(f){const C=new Set;return f.forEach($=>{X($)?(C.add("group-".concat($.label)),$.items.forEach(z=>C.add(z.value))):C.add($.value)}),C}const s=a(t);u.forEach((f,C)=>{s.has(C)||u.delete(C)})},{deep:!0});const i=m(()=>{x(e.menuItems),e.footer&&x([e.footer]);const t=e.footer&&e.menuItems?[...e.menuItems,e.footer]:e.menuItems;function a(s){const f=u.get(s.value);if(!f)throw new Error("No ID found for menu item with value ".concat(s.value));return se(W({},s),{id:f})}return t.map(s=>{if(X(s)){const f=u.get("group-".concat(s.label));if(!f)throw new Error("No ID found for menu item with value group-".concat(s.label));return se(W({},s),{id:f,items:s.items.map(C=>a(C))})}else return a(s)})}),r=m(()=>{const t=[];return i.value.forEach(a=>{X(a)?t.push(...a.items):t.push(a)}),t}),p=m(()=>l["no-results"]?e.showNoResultsSlot!==null?e.showNoResultsSlot:r.value.length===0:!1),v=S(null),c=S(!1),b=S(null),w=xe("CdxTeleportMenus",!1),D=m(()=>!P(w)||e.renderInPlace),q=xe("CdxTeleportTarget",void 0),O=m(()=>{var t;return(t=P(q))!=null?t:"body"}),H="additions removals";let k="",K=null;function J(){k="",K!==null&&(clearTimeout(K),K=null)}function y(){K!==null&&clearTimeout(K),K=setTimeout(J,1500)}function E(){var t;return(t=r.value.find(a=>oe(e.selected)?e.selected.includes(a.value):a.value===e.selected))!=null?t:null}const V=m(()=>oe(e.selected));function Oe(t){return oe(e.selected)?e.selected.includes(t):t===e.selected}function ce(t){if(oe(e.selected)){const a=e.selected.includes(t)?e.selected.filter(s=>s!==t):e.selected.concat(t);n("update:selected",a)}else n("update:selected",t)}function I(t,a){if(!(a!=null&&a.disabled))switch(t){case"selected":a&&ce(a.value),V.value||n("update:expanded",!1),b.value=null;break;case"highlighted":v.value=a!=null?a:null,c.value=!1;break;case"highlightedViaKeyboard":v.value=a!=null?a:null,c.value=!0;break;case"active":b.value=a!=null?a:null;break}}const j=m(()=>{if(v.value!==null)return r.value.findIndex(t=>t.value===v.value.value)});function ve(t){t&&(I("highlightedViaKeyboard",t),n("menu-item-keyboard-navigation",t))}function me(t){var f;const a=C=>{for(let $=C-1;$>=0;$--)if(!r.value[$].disabled)return r.value[$]};t=t!=null?t:r.value.length;const s=(f=a(t))!=null?f:a(r.value.length);ve(s)}function be(t){var f;const a=C=>r.value.find(($,z)=>!$.disabled&&z>C);t=t!=null?t:-1;const s=(f=a(t))!=null?f:a(-1);ve(s)}function He(t){if(t.key==="Clear")return J(),!0;if(t.key==="Backspace")return k=k.slice(0,-1),y(),!0;if(t.key.length===1&&!t.metaKey&&!t.ctrlKey&&!t.altKey){if(e.expanded||n("update:expanded",!0),t.key===" "&&k.length<1)return!1;k+=t.key.toLowerCase();const a=k.length>1&&k.split("").every($=>$===k[0]);let s=r.value,f=k;a&&j.value!==void 0&&(s=s.slice(j.value+1).concat(s.slice(0,j.value)),f=k[0]);const C=s.find($=>{var z;return!$.disabled&&String((z=$.label)!=null?z:$.value).toLowerCase().startsWith(f)});return C&&(I("highlightedViaKeyboard",C),F()),y(),!0}return!1}function Ae(t,{prevent:a=!0,characterNavigation:s=!1}={}){if(s){if(He(t))return t.preventDefault(),!0;J()}function f(){a&&(t.preventDefault(),t.stopPropagation())}switch(t.key){case"Enter":case" ":return f(),e.expanded?(v.value&&c.value&&ce(v.value.value),V.value||n("update:expanded",!1)):n("update:expanded",!0),!0;case"Tab":return e.expanded&&v.value&&c.value&&!V.value&&(ce(v.value.value),n("update:expanded",!1)),!0;case"ArrowUp":return f(),e.expanded?(v.value===null&&I("highlightedViaKeyboard",E()),me(j.value)):n("update:expanded",!0),F(),!0;case"ArrowDown":return f(),e.expanded?(v.value===null&&I("highlightedViaKeyboard",E()),be(j.value)):n("update:expanded",!0),F(),!0;case"Home":return f(),e.expanded?(v.value===null&&I("highlightedViaKeyboard",E()),be()):n("update:expanded",!0),F(),!0;case"End":return f(),e.expanded?(v.value===null&&I("highlightedViaKeyboard",E()),me()):n("update:expanded",!0),F(),!0;case"Escape":return f(),n("update:expanded",!1),!0;default:return!1}}function pe(){I("active",null)}const A=[],ye=S(void 0),Ke=en(ye,{threshold:.8});N(Ke,t=>{t&&n("load-more")});function Ee(t,a){if(t){A[a]=t.$el;const s=e.visibleItemLimit;if(!s||e.menuItems.length<s)return;const f=Math.min(s,Math.max(2,Math.floor(.2*e.menuItems.length)));a===e.menuItems.length-f&&(ye.value=t.$el)}}const Ve=S(),ae=S();function F(){const t=ae.value&&ae.value.scrollHeight>ae.value.clientHeight;if(j.value===void 0||!t)return;const a=j.value>=0?j.value:0;requestAnimationFrame(()=>{A[a].scrollIntoView({behavior:"smooth",block:"nearest"})})}const le=S(null),ie=S(null);async function _e(){await ke(),je(),Pe(),await ke(),F()}function je(){if(e.footer){const t=A[A.length-1];ie.value=t.scrollHeight}else ie.value=null}function Pe(){if(!e.visibleItemLimit||A.length<=e.visibleItemLimit){le.value=null;return}const t=A[0].getBoundingClientRect().top,a=A[e.visibleItemLimit].getBoundingClientRect().top;le.value=a-t+2}function Qe(t){return{"cdx-menu__group-wrapper--hide-label":!!t.hideLabel}}function qe(t){return r.value.indexOf(t)}function Fe(t){var a,s;return W({selected:Oe(t.value),active:t.value===((a=b.value)==null?void 0:a.value),highlighted:t.value===((s=v.value)==null?void 0:s.value),showThumbnail:e.showThumbnail,boldLabel:e.boldLabel,hideDescriptionOverflow:e.hideDescriptionOverflow,searchQuery:e.searchQuery,multiselect:V.value},t)}function ze(t){return{change:(a,s)=>I(a,s?t:null),click:()=>n("menu-item-click",t)}}function We(t){var a,s;return{menuItem:t,active:t.value===((a=b.value)==null?void 0:a.value)&&t.value===((s=v.value)==null?void 0:s.value)}}ge(()=>{document.addEventListener("mouseup",pe)}),Ne(()=>{document.removeEventListener("mouseup",pe)}),N(ue(e,"expanded"),async t=>{if(t){const a=E();a&&!v.value&&I("highlighted",a),await _e()}else I("highlighted",null)}),N(ue(e,"menuItems"),async t=>{t.length<A.length&&(A.length=t.length),e.expanded&&await _e()},{deep:!0});const Ue=m(()=>({"max-height":le.value?"".concat(le.value,"px"):void 0,"margin-bottom":ie.value?"".concat(ie.value,"px"):void 0})),Ge=m(()=>({"cdx-menu--has-footer":!!e.footer})),{rootClasses:Je,rootStyle:Xe,otherAttrs:Ye}=gt(g,Ge);return{listBoxStyle:Ue,rootClasses:Je,rootStyle:Xe,otherAttrs:Ye,assignTemplateRef:Ee,computedMenuEntries:i,computedMenuItems:r,computedShowNoResultsSlot:p,highlightedMenuItem:v,highlightedViaKeyboard:c,teleportDisabled:D,computedTarget:O,handleMenuItemChange:I,handleKeyNavigation:Ae,ariaRelevant:H,isMultiselect:V,rootElement:Ve,menuListbox:ae,getGroupWrapperClasses:Qe,getMenuItemIndex:qe,getMenuItemBindings:Fe,getMenuItemHandlers:ze,getSlotBindings:We,isMenuGroupData:X}},methods:{isExpanded(){return this.expanded},getRootElement(){return this.rootElement},getHighlightedMenuItem(){return this.expanded?this.highlightedMenuItem:null},getHighlightedViaKeyboard(){return this.highlightedViaKeyboard},getComputedMenuItems(){return this.computedMenuItems},clearActive(){this.handleMenuItemChange("active",null)},delegateKeyNavigation(e,{prevent:n=!0,characterNavigation:l=!1}={}){return this.handleKeyNavigation(e,{prevent:n,characterNavigation:l})}}}),nn=["aria-live","aria-relevant","aria-multiselectable"],an={key:0,class:"cdx-menu__pending cdx-menu-item"},ln={key:1,class:"cdx-menu__no-results cdx-menu-item",role:"option"},sn=["aria-labelledby","aria-describedby"],on={class:"cdx-menu__group__meta"},un={class:"cdx-menu__group__meta__text"},rn=["id"],dn=["id"];function cn(e,n,l,g,o,d){const u=Q("cdx-icon"),_=Q("cdx-menu-item"),x=Q("cdx-progress-bar");return h(),L(bt,{to:e.computedTarget,disabled:e.teleportDisabled},[vt(B("div",{ref:"rootElement",class:ee(["cdx-menu",e.rootClasses]),style:Re(e.rootStyle)},[B("ul",G({ref:"menuListbox",class:"cdx-menu__listbox",role:"listbox",tabindex:"-1",style:e.listBoxStyle,"aria-live":e.showPending?"polite":void 0,"aria-relevant":e.showPending?e.ariaRelevant:void 0,"aria-multiselectable":e.isMultiselect?!0:void 0},e.otherAttrs,{onMousedown:n[0]||(n[0]=Le(()=>{},["prevent"]))}),[e.showPending&&e.computedMenuItems.length===0&&e.$slots.pending?(h(),M("li",an,[Y(e.$slots,"pending")])):T("v-if",!0),e.computedShowNoResultsSlot?(h(),M("li",ln,[Y(e.$slots,"no-results")])):T("v-if",!0),(h(!0),M(Z,null,Ce(e.computedMenuEntries,(i,r)=>(h(),M(Z,{key:r},[e.isMenuGroupData(i)?(h(),M("li",{key:0,class:ee(["cdx-menu__group-wrapper",e.getGroupWrapperClasses(i)])},[B("ul",{class:"cdx-menu__group",role:"group","aria-labelledby":i.id+"-label","aria-describedby":i.id+"-description"},[B("span",on,[i.icon?(h(),L(u,{key:0,class:"cdx-menu__group__icon",icon:i.icon},null,8,["icon"])):T("v-if",!0),B("span",un,[B("span",{id:i.id+"-label",class:"cdx-menu__group__label"},R(i.label),9,rn),i.description?(h(),M("span",{key:0,id:i.id+"-description",class:"cdx-menu__group__description"},R(i.description),9,dn)):T("v-if",!0)])]),(h(!0),M(Z,null,Ce(i.items,p=>(h(),L(_,G({key:p.value,ref_for:!0,ref:v=>e.assignTemplateRef(v,e.getMenuItemIndex(p)),class:"cdx-menu__group__item"},{ref_for:!0},e.getMenuItemBindings(p),Se(e.getMenuItemHandlers(p))),{default:re(()=>[Y(e.$slots,"default",G({ref_for:!0},e.getSlotBindings(p)))]),_:2},1040))),128))],8,sn)],2)):(h(),L(_,G({key:1,ref_for:!0,ref:p=>e.assignTemplateRef(p,e.getMenuItemIndex(i))},{ref_for:!0},e.getMenuItemBindings(i),Se(e.getMenuItemHandlers(i))),{default:re(()=>[Y(e.$slots,"default",G({ref_for:!0},e.getSlotBindings(i)))]),_:2},1040))],64))),128)),e.showPending?(h(),L(x,{key:2,class:"cdx-menu__progress-bar",inline:!0})):T("v-if",!0)],16,nn)],6),[[mt,e.expanded]])],8,["to","disabled"])}const yn=ne(tn,[["render",cn]]);function fn(e){return e&&"$el"in e?e.$el:e}const Ie=16,hn=128;function _n(e,n,l){var v;const g=()=>{var c;return(c=n.value)==null?void 0:c.isExpanded()},o=m(()=>{var c;return(c=n.value)==null?void 0:c.getRootElement()}),d=[$t(l==null?void 0:l.offset),xt({padding:Ie,apply({rects:c,elements:b,availableHeight:w,availableWidth:D}){Object.assign(b.floating.style,{width:"".concat(l!=null&&l.useAvailableWidth?D:c.reference.width,"px"),maxHeight:"".concat(Math.max(hn,w),"px")})}}),kt({padding:Ie-1}),Be({strategy:"escaped"}),Be()],{floatingStyles:u,placement:_,middlewareData:x,update:i}=Lt(e,o,{middleware:d,placement:(v=l==null?void 0:l.placement)!=null?v:"bottom"}),r=m(()=>{var b,w;return!g()||!!((b=x.value.hide)!=null&&b.escaped)||((w=x.value.hide)==null?void 0:w.referenceHidden)?"hidden":"visible"});N([u,r,_],([c,b,w])=>{var D,q,O,H,k;Object.assign((q=(D=o.value)==null?void 0:D.style)!=null?q:{},{visibility:b,position:c.position,top:"".concat(c.top,"px"),right:"unset",left:"".concat(c.left,"px"),transform:(O=c.transform)!=null?O:"none",borderTopLeftRadius:w==="bottom"&&b==="visible"?"0":"",borderTopRightRadius:w==="bottom"&&b==="visible"?"0":"",borderBottomLeftRadius:w==="top"&&b==="visible"?"0":"",borderBottomRightRadius:w==="top"&&b==="visible"?"0":""}),Object.assign((k=(H=fn(e.value))==null?void 0:H.style)!=null?k:{},{borderTopLeftRadius:w==="top"&&b==="visible"?"0":"",borderTopRightRadius:w==="top"&&b==="visible"?"0":"",borderBottomLeftRadius:w==="bottom"&&b==="visible"?"0":"",borderBottomRightRadius:w==="bottom"&&b==="visible"?"0":""})});let p=null;N(g,c=>{if(c){if(!e.value||!o.value)return;p=Mt("$el"in e.value?e.value.$el:e.value,o.value,i)}else p&&(p(),p=null)})}export{yn as C,pn as a,Lt as b,fn as c,en as d,Gt as e,Zt as f,It as g,_n as u};