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