(function(f,t){typeof exports=="object"&&typeof module!="undefined"?t(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],t):(f=typeof globalThis!="undefined"?globalThis:f||self,t(f["codex-search"]={},f.Vue))})(this,function(f,t){"use strict";var Qt=Object.defineProperty,Pt=Object.defineProperties;var Wt=Object.getOwnPropertyDescriptors;var J=Object.getOwnPropertySymbols;var me=Object.prototype.hasOwnProperty,he=Object.prototype.propertyIsEnumerable;var ue=(f,t,k)=>t in f?Qt(f,t,{enumerable:!0,configurable:!0,writable:!0,value:k}):f[t]=k,pe=(f,t)=>{for(var k in t||(t={}))me.call(t,k)&&ue(f,k,t[k]);if(J)for(var k of J(t))he.call(t,k)&&ue(f,k,t[k]);return f},fe=(f,t)=>Pt(f,Wt(t));var U=(f,t)=>{var k={};for(var I in f)me.call(f,I)&&t.indexOf(I)<0&&(k[I]=f[I]);if(f!=null&&J)for(var I of J(f))t.indexOf(I)<0&&he.call(f,I)&&(k[I]=f[I]);return k};var ae=(f,t,k)=>new Promise((I,H)=>{var X=E=>{try{R(k.next(E))}catch(A){H(A)}},Y=E=>{try{R(k.throw(E))}catch(A){H(A)}},R=E=>E.done?I(E.value):Promise.resolve(E.value).then(X,Y);R((k=k.apply(f,t)).next())});const k='',I='',H='',X='',Y=k,R=I,E=H,A=X;function ge(e,n,o){if(typeof e=="string"||"path"in e)return e;if("shouldFlip"in e)return e.ltr;if("rtl"in e)return o==="rtl"?e.rtl:e.ltr;const s=n in e.langCodeMap?e.langCodeMap[n]:e.default;return typeof s=="string"||"path"in s?s:s.ltr}function ye(e,n){if(typeof e=="string")return!1;if("langCodeMap"in e){const o=n in e.langCodeMap?e.langCodeMap[n]:e.default;if(typeof o=="string")return!1;e=o}if("shouldFlipExceptions"in e&&Array.isArray(e.shouldFlipExceptions)){const o=e.shouldFlipExceptions.indexOf(n);return o===void 0||o===-1}return"shouldFlip"in e?e.shouldFlip:!1}function be(e){const n=t.ref(null);return t.onMounted(()=>{const o=window.getComputedStyle(e.value).direction;n.value=o==="ltr"||o==="rtl"?o:null}),n}function Ce(e){const n=t.ref("");return t.onMounted(()=>{let o=e.value;for(;o&&o.lang==="";)o=o.parentElement;n.value=o?o.lang:null}),n}function L(e){return n=>typeof n=="string"&&e.indexOf(n)!==-1}const Z="cdx",ke=["default","progressive","destructive"],Se=["normal","primary","quiet"],$e=["medium","large"],we=["x-small","small","medium"],Ie=["text","search","number","email","month","password","tel","url","week","date","datetime-local","time"],se=["default","error"],_e=120,Be=500,K="cdx-menu-footer-item",xe=Symbol("CdxId"),Me=Symbol("CdxDescriptionId"),Ve=Symbol("CdxStatus"),Ee=Symbol("CdxDisabled"),Ne=L(we),Te=t.defineComponent({name:"CdxIcon",props:{icon:{type:[String,Object],required:!0},iconLabel:{type:String,default:""},lang:{type:String,default:null},dir:{type:String,default:null},size:{type:String,default:"medium",validator:Ne}},emits:["click"],setup(e,{emit:n}){const o=t.ref(),s=be(o),i=Ce(o),d=t.computed(()=>e.dir||s.value),l=t.computed(()=>e.lang||i.value),r=t.computed(()=>({"cdx-icon--flipped":d.value==="rtl"&&l.value!==null&&ye(e.icon,l.value),[`cdx-icon--${e.size}`]:!0})),a=t.computed(()=>ge(e.icon,l.value||"",d.value||"ltr")),u=t.computed(()=>typeof a.value=="string"?a.value:""),p=t.computed(()=>typeof a.value!="string"?a.value.path:"");return{rootElement:o,rootClasses:r,iconSvg:u,iconPath:p,onClick:g=>{n("click",g)}}}}),Gt="",M=(e,n)=>{const o=e.__vccOpts||e;for(const[s,i]of n)o[s]=i;return o},ve=["aria-hidden"],Le={key:0},De=["innerHTML"],Ke=["d"];function Re(e,n,o,s,i,d){return t.openBlock(),t.createElementBlock("span",{ref:"rootElement",class:t.normalizeClass(["cdx-icon",e.rootClasses]),onClick:n[0]||(n[0]=(...l)=>e.onClick&&e.onClick(...l))},[(t.openBlock(),t.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",width:"20",height:"20",viewBox:"0 0 20 20","aria-hidden":e.iconLabel?void 0:!0},[e.iconLabel?(t.openBlock(),t.createElementBlock("title",Le,t.toDisplayString(e.iconLabel),1)):t.createCommentVNode("",!0),e.iconSvg?(t.openBlock(),t.createElementBlock("g",{key:1,innerHTML:e.iconSvg},null,8,De)):(t.openBlock(),t.createElementBlock("path",{key:2,d:e.iconPath},null,8,Ke))],8,ve))],2)}const z=M(Te,[["render",Re]]),Ae=t.defineComponent({name:"CdxThumbnail",components:{CdxIcon:z},props:{thumbnail:{type:[Object,null],default:null},placeholderIcon:{type:[String,Object],default:E}},setup:e=>{const n=t.ref(!1),o=t.ref({}),s=i=>{const d=i.replace(/([\\"\n])/g,"\\$1"),l=new Image;l.onload=()=>{o.value={backgroundImage:`url("${d}")`},n.value=!0},l.onerror=()=>{n.value=!1},l.src=d};return t.onMounted(()=>{var i;(i=e.thumbnail)!=null&&i.url&&s(e.thumbnail.url)}),{thumbnailStyle:o,thumbnailLoaded:n}}}),Jt="",ze={class:"cdx-thumbnail"},Fe={key:0,class:"cdx-thumbnail__placeholder"};function Oe(e,n,o,s,i,d){const l=t.resolveComponent("cdx-icon");return t.openBlock(),t.createElementBlock("span",ze,[e.thumbnailLoaded?t.createCommentVNode("",!0):(t.openBlock(),t.createElementBlock("span",Fe,[t.createVNode(l,{icon:e.placeholderIcon,class:"cdx-thumbnail__placeholder__icon--vue"},null,8,["icon"])])),t.createVNode(t.Transition,{name:"cdx-thumbnail__image"},{default:t.withCtx(()=>[e.thumbnailLoaded?(t.openBlock(),t.createElementBlock("span",{key:0,style:t.normalizeStyle(e.thumbnailStyle),class:"cdx-thumbnail__image"},null,4)):t.createCommentVNode("",!0)]),_:1})])}const qe=M(Ae,[["render",Oe]]);function Ue(e){return e.replace(/([\\{}()|.?*+\-^$[\]])/g,"\\$1")}const He="[̀-ͯ҃-҉֑-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛࣓-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣ৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఄా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪾ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿⃐-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯-꙲ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꣿꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯]";function je(e,n){if(!e)return[n,"",""];const o=Ue(e),s=new RegExp(o+He+"*","i").exec(n);if(!s||s.index===void 0)return[n,"",""];const i=s.index,d=i+s[0].length,l=n.slice(i,d),r=n.slice(0,i),a=n.slice(d,n.length);return[r,l,a]}const Qe=t.defineComponent({name:"CdxSearchResultTitle",props:{title:{type:String,required:!0},searchQuery:{type:String,default:""}},setup:e=>({titleChunks:t.computed(()=>je(e.searchQuery,String(e.title)))})}),Xt="",Pe={class:"cdx-search-result-title"},We={class:"cdx-search-result-title__match"};function Ge(e,n,o,s,i,d){return t.openBlock(),t.createElementBlock("span",Pe,[t.createElementVNode("bdi",null,[t.createTextVNode(t.toDisplayString(e.titleChunks[0]),1),t.createElementVNode("span",We,t.toDisplayString(e.titleChunks[1]),1),t.createTextVNode(t.toDisplayString(e.titleChunks[2]),1)])])}const Je=M(Qe,[["render",Ge]]),Xe=t.defineComponent({name:"CdxMenuItem",components:{CdxIcon:z,CdxThumbnail:qe,CdxSearchResultTitle:Je},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:()=>({})}},emits:["change"],setup:(e,{emit:n})=>{const o=()=>{e.highlighted||n("change","highlighted",!0)},s=()=>{n("change","highlighted",!1)},i=p=>{p.button===0&&n("change","active",!0)},d=()=>{n("change","selected",!0)},l=t.computed(()=>e.searchQuery.length>0),r=t.computed(()=>({"cdx-menu-item--selected":e.selected,"cdx-menu-item--active":e.active&&e.highlighted,"cdx-menu-item--highlighted":e.highlighted,"cdx-menu-item--enabled":!e.disabled,"cdx-menu-item--disabled":e.disabled,"cdx-menu-item--highlight-query":l.value,"cdx-menu-item--bold-label":e.boldLabel,"cdx-menu-item--has-description":!!e.description,"cdx-menu-item--hide-description-overflow":e.hideDescriptionOverflow})),a=t.computed(()=>e.url?"a":"span"),u=t.computed(()=>e.label||String(e.value));return{onMouseMove:o,onMouseLeave:s,onMouseDown:i,onClick:d,highlightQuery:l,rootClasses:r,contentTag:a,title:u}}}),Yt="",Ye=["id","aria-disabled","aria-selected"],Ze={class:"cdx-menu-item__text"},et=["lang"],tt=["lang"],nt=["lang"],ot=["lang"];function lt(e,n,o,s,i,d){const l=t.resolveComponent("cdx-thumbnail"),r=t.resolveComponent("cdx-icon"),a=t.resolveComponent("cdx-search-result-title");return t.openBlock(),t.createElementBlock("li",{id:e.id,role:"option",class:t.normalizeClass(["cdx-menu-item",e.rootClasses]),"aria-disabled":e.disabled,"aria-selected":e.selected,onMousemove:n[0]||(n[0]=(...u)=>e.onMouseMove&&e.onMouseMove(...u)),onMouseleave:n[1]||(n[1]=(...u)=>e.onMouseLeave&&e.onMouseLeave(...u)),onMousedown:n[2]||(n[2]=t.withModifiers((...u)=>e.onMouseDown&&e.onMouseDown(...u),["prevent"])),onClick:n[3]||(n[3]=(...u)=>e.onClick&&e.onClick(...u))},[t.renderSlot(e.$slots,"default",{},()=>[(t.openBlock(),t.createBlock(t.resolveDynamicComponent(e.contentTag),{href:e.url?e.url:void 0,class:"cdx-menu-item__content"},{default:t.withCtx(()=>{var u,p,b,g,w,_;return[e.showThumbnail?(t.openBlock(),t.createBlock(l,{key:0,thumbnail:e.thumbnail,class:"cdx-menu-item__thumbnail"},null,8,["thumbnail"])):e.icon?(t.openBlock(),t.createBlock(r,{key:1,icon:e.icon,class:"cdx-menu-item__icon"},null,8,["icon"])):t.createCommentVNode("",!0),t.createElementVNode("span",Ze,[e.highlightQuery?(t.openBlock(),t.createBlock(a,{key:0,title:e.title,"search-query":e.searchQuery,lang:(u=e.language)==null?void 0:u.label},null,8,["title","search-query","lang"])):(t.openBlock(),t.createElementBlock("span",{key:1,class:"cdx-menu-item__text__label",lang:(p=e.language)==null?void 0:p.label},[t.createElementVNode("bdi",null,t.toDisplayString(e.title),1)],8,et)),e.match?(t.openBlock(),t.createElementBlock(t.Fragment,{key:2},[t.createTextVNode(t.toDisplayString(" ")+" "),e.highlightQuery?(t.openBlock(),t.createBlock(a,{key:0,title:e.match,"search-query":e.searchQuery,lang:(b=e.language)==null?void 0:b.match},null,8,["title","search-query","lang"])):(t.openBlock(),t.createElementBlock("span",{key:1,class:"cdx-menu-item__text__match",lang:(g=e.language)==null?void 0:g.match},[t.createElementVNode("bdi",null,t.toDisplayString(e.match),1)],8,tt))],64)):t.createCommentVNode("",!0),e.supportingText?(t.openBlock(),t.createElementBlock(t.Fragment,{key:3},[t.createTextVNode(t.toDisplayString(" ")+" "),t.createElementVNode("span",{class:"cdx-menu-item__text__supporting-text",lang:(w=e.language)==null?void 0:w.supportingText},[t.createElementVNode("bdi",null,t.toDisplayString(e.supportingText),1)],8,nt)],64)):t.createCommentVNode("",!0),e.description?(t.openBlock(),t.createElementBlock("span",{key:4,class:"cdx-menu-item__text__description",lang:(_=e.language)==null?void 0:_.description},[t.createElementVNode("bdi",null,t.toDisplayString(e.description),1)],8,ot)):t.createCommentVNode("",!0)])]}),_:1},8,["href"]))])],42,Ye)}const at=M(Xe,[["render",lt]]),st=t.defineComponent({name:"CdxProgressBar",props:{inline:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(e){return{rootClasses:t.computed(()=>({"cdx-progress-bar--block":!e.inline,"cdx-progress-bar--inline":e.inline,"cdx-progress-bar--enabled":!e.disabled,"cdx-progress-bar--disabled":e.disabled}))}}}),Zt="",it=["aria-disabled"],rt=[t.createElementVNode("div",{class:"cdx-progress-bar__bar"},null,-1)];function dt(e,n,o,s,i,d){return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-progress-bar",e.rootClasses]),role:"progressbar","aria-disabled":e.disabled,"aria-valuemin":"0","aria-valuemax":"100"},rt,10,it)}const ct=M(st,[["render",dt]]);let ee=0;function ie(e){const n=t.getCurrentInstance(),o=(n==null?void 0:n.props.id)||(n==null?void 0:n.attrs.id);return e?`${Z}-${e}-${ee++}`:o?`${Z}-${o}-${ee++}`:`${Z}-${ee++}`}function ut(e,n){const o=t.ref(!1);let s=!1;if(typeof window!="object"||!("IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype))return o;const i=new window.IntersectionObserver(d=>{const l=d[0];l&&(o.value=l.isIntersecting)},n);return t.onMounted(()=>{s=!0,e.value&&i.observe(e.value)}),t.onUnmounted(()=>{s=!1,i.disconnect()}),t.watch(e,d=>{s&&(i.disconnect(),o.value=!1,d&&i.observe(d))}),o}function j(e,n=t.computed(()=>({}))){const o=t.computed(()=>{const d=U(n.value,[]);return e.class&&e.class.split(" ").forEach(r=>{d[r]=!0}),d}),s=t.computed(()=>{if("style"in e)return e.style}),i=t.computed(()=>{const a=e,{class:d,style:l}=a;return U(a,["class","style"])});return{rootClasses:o,rootStyle:s,otherAttrs:i}}const mt=t.defineComponent({name:"CdxMenu",components:{CdxMenuItem:at,CdxProgressBar:ct},inheritAttrs:!1,props:{menuItems:{type:Array,required:!0},footer:{type:Object,default:null},selected:{type:[String,Number,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"],expose:["clearActive","getHighlightedMenuItem","getHighlightedViaKeyboard","delegateKeyNavigation"],setup(e,{emit:n,slots:o,attrs:s}){const i=t.computed(()=>(e.footer&&e.menuItems?[...e.menuItems,e.footer]:e.menuItems).map(h=>fe(pe({},h),{id:ie("menu-item")}))),d=t.computed(()=>o["no-results"]?e.showNoResultsSlot!==null?e.showNoResultsSlot:i.value.length===0:!1),l=t.ref(null),r=t.ref(!1),a=t.ref(null);function u(){return i.value.find(c=>c.value===e.selected)}function p(c,h){var C;if(!(h&&h.disabled))switch(c){case"selected":n("update:selected",(C=h==null?void 0:h.value)!=null?C:null),n("update:expanded",!1),a.value=null;break;case"highlighted":l.value=h||null,r.value=!1;break;case"highlightedViaKeyboard":l.value=h||null,r.value=!0;break;case"active":a.value=h||null;break}}const b=t.computed(()=>{if(l.value!==null)return i.value.findIndex(c=>c.value===l.value.value)});function g(c){c&&(p("highlightedViaKeyboard",c),n("menu-item-keyboard-navigation",c))}function w(c){var S;const h=q=>{for(let m=q-1;m>=0;m--)if(!i.value[m].disabled)return i.value[m]};c=c||i.value.length;const C=(S=h(c))!=null?S:h(i.value.length);g(C)}function _(c){const h=S=>i.value.find((q,m)=>!q.disabled&&m>S);c=c!=null?c:-1;const C=h(c)||h(-1);g(C)}function F(c,h=!0){function C(){n("update:expanded",!0),p("highlighted",u())}function S(){h&&(c.preventDefault(),c.stopPropagation())}switch(c.key){case"Enter":case" ":return S(),e.expanded?(l.value&&r.value&&n("update:selected",l.value.value),n("update:expanded",!1)):C(),!0;case"Tab":return e.expanded&&(l.value&&r.value&&n("update:selected",l.value.value),n("update:expanded",!1)),!0;case"ArrowUp":return S(),e.expanded?(l.value===null&&p("highlightedViaKeyboard",u()),w(b.value)):C(),N(),!0;case"ArrowDown":return S(),e.expanded?(l.value===null&&p("highlightedViaKeyboard",u()),_(b.value)):C(),N(),!0;case"Home":return S(),e.expanded?(l.value===null&&p("highlightedViaKeyboard",u()),_()):C(),N(),!0;case"End":return S(),e.expanded?(l.value===null&&p("highlightedViaKeyboard",u()),w()):C(),N(),!0;case"Escape":return S(),n("update:expanded",!1),!0;default:return!1}}function B(){p("active")}const x=[],O=t.ref(void 0),Q=ut(O,{threshold:.8});t.watch(Q,c=>{c&&n("load-more")});function P(c,h){if(c){x[h]=c.$el;const C=e.visibleItemLimit;if(!C||e.menuItems.lengthe.menuItems.length||b.value===void 0)return;const c=b.value>=0?b.value:0;x[c].scrollIntoView({behavior:"smooth",block:"nearest"})}const y=t.ref(null),D=t.ref(null);function V(){if(D.value=null,!e.visibleItemLimit||x.length<=e.visibleItemLimit){y.value=null;return}const c=x[0],h=x[e.visibleItemLimit];if(y.value=T(c,h),e.footer){const C=x[x.length-1];D.value=C.scrollHeight}}function T(c,h){const C=c.getBoundingClientRect().top;return h.getBoundingClientRect().top-C+2}t.onMounted(()=>{document.addEventListener("mouseup",B)}),t.onUnmounted(()=>{document.removeEventListener("mouseup",B)}),t.watch(t.toRef(e,"expanded"),c=>ae(this,null,function*(){const h=u();!c&&l.value&&h===void 0&&p("highlighted"),c&&h!==void 0&&p("highlighted",h),c&&(yield t.nextTick(),V(),yield t.nextTick(),N())})),t.watch(t.toRef(e,"menuItems"),c=>ae(this,null,function*(){c.length({"max-height":y.value?`${y.value}px`:void 0,"overflow-y":y.value?"scroll":void 0,"margin-bottom":D.value?`${D.value}px`:void 0})),ne=t.computed(()=>({"cdx-menu--has-footer":!!e.footer,"cdx-menu--has-sticky-footer":!!e.footer&&!!y.value})),{rootClasses:oe,rootStyle:le,otherAttrs:G}=j(s,ne);return{listBoxStyle:W,rootClasses:oe,rootStyle:le,otherAttrs:G,assignTemplateRef:P,computedMenuItems:i,computedShowNoResultsSlot:d,highlightedMenuItem:l,highlightedViaKeyboard:r,activeMenuItem:a,handleMenuItemChange:p,handleKeyNavigation:F}},methods:{getHighlightedMenuItem(){return this.highlightedMenuItem},getHighlightedViaKeyboard(){return this.highlightedViaKeyboard},clearActive(){this.handleMenuItemChange("active")},delegateKeyNavigation(e,n=!0){return this.handleKeyNavigation(e,n)}}}),tn="",ht={key:0,class:"cdx-menu__pending cdx-menu-item"},pt={key:1,class:"cdx-menu__no-results cdx-menu-item"};function ft(e,n,o,s,i,d){const l=t.resolveComponent("cdx-menu-item"),r=t.resolveComponent("cdx-progress-bar");return t.withDirectives((t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-menu",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createElementVNode("ul",t.mergeProps({class:"cdx-menu__listbox",role:"listbox","aria-multiselectable":"false",style:e.listBoxStyle},e.otherAttrs),[e.showPending&&e.computedMenuItems.length===0&&e.$slots.pending?(t.openBlock(),t.createElementBlock("li",ht,[t.renderSlot(e.$slots,"pending")])):t.createCommentVNode("",!0),e.computedShowNoResultsSlot?(t.openBlock(),t.createElementBlock("li",pt,[t.renderSlot(e.$slots,"no-results")])):t.createCommentVNode("",!0),(t.openBlock(!0),t.createElementBlock(t.Fragment,null,t.renderList(e.computedMenuItems,(a,u)=>{var p,b;return t.openBlock(),t.createBlock(l,t.mergeProps({key:a.value,ref_for:!0,ref:g=>e.assignTemplateRef(g,u)},a,{selected:a.value===e.selected,active:a.value===((p=e.activeMenuItem)==null?void 0:p.value),highlighted:a.value===((b=e.highlightedMenuItem)==null?void 0:b.value),"show-thumbnail":e.showThumbnail,"bold-label":e.boldLabel,"hide-description-overflow":e.hideDescriptionOverflow,"search-query":e.searchQuery,onChange:(g,w)=>e.handleMenuItemChange(g,w&&a),onClick:g=>e.$emit("menu-item-click",a)}),{default:t.withCtx(()=>{var g,w;return[t.renderSlot(e.$slots,"default",{menuItem:a,active:a.value===((g=e.activeMenuItem)==null?void 0:g.value)&&a.value===((w=e.highlightedMenuItem)==null?void 0:w.value)})]}),_:2},1040,["selected","active","highlighted","show-thumbnail","bold-label","hide-description-overflow","search-query","onChange","onClick"])}),128)),e.showPending?(t.openBlock(),t.createBlock(r,{key:2,class:"cdx-menu__progress-bar",inline:!0})):t.createCommentVNode("",!0)],16)],6)),[[t.vShow,e.expanded]])}const gt=M(mt,[["render",ft]]),yt=L(ke),bt=L(Se),Ct=L($e),kt=e=>{!e["aria-label"]&&!e["aria-hidden"]&&t.warn(`icon-only buttons require one of the following attribute: aria-label or aria-hidden.
See documentation on https://doc.wikimedia.org/codex/latest/components/demos/button.html#icon-only-button-1`)};function te(e){const n=[];for(const o of e)typeof o=="string"&&o.trim()!==""?n.push(o):Array.isArray(o)?n.push(...te(o)):typeof o=="object"&&o&&(typeof o.type=="string"||typeof o.type=="object"?n.push(o):o.type!==t.Comment&&(typeof o.children=="string"&&o.children.trim()!==""?n.push(o.children):Array.isArray(o.children)&&n.push(...te(o.children))));return n}const St=(e,n)=>{if(!e)return!1;const o=te(e);if(o.length!==1)return!1;const s=o[0],i=typeof s=="object"&&typeof s.type=="object"&&"name"in s.type&&s.type.name===z.name,d=typeof s=="object"&&s.type==="svg";return i||d?(kt(n),!0):!1},$t=t.defineComponent({name:"CdxButton",props:{action:{type:String,default:"default",validator:yt},weight:{type:String,default:"normal",validator:bt},size:{type:String,default:"medium",validator:Ct}},emits:["click"],setup(e,{emit:n,slots:o,attrs:s}){const i=t.ref(!1);return{rootClasses:t.computed(()=>{var a;return{[`cdx-button--action-${e.action}`]:!0,[`cdx-button--weight-${e.weight}`]:!0,[`cdx-button--size-${e.size}`]:!0,"cdx-button--framed":e.weight!=="quiet","cdx-button--icon-only":St((a=o.default)==null?void 0:a.call(o),s),"cdx-button--is-active":i.value}}),onClick:a=>{n("click",a)},setActive:a=>{i.value=a}}}}),nn="";function wt(e,n,o,s,i,d){return t.openBlock(),t.createElementBlock("button",{class:t.normalizeClass(["cdx-button",e.rootClasses]),onClick:n[0]||(n[0]=(...l)=>e.onClick&&e.onClick(...l)),onKeydown:n[1]||(n[1]=t.withKeys(l=>e.setActive(!0),["space","enter"])),onKeyup:n[2]||(n[2]=t.withKeys(l=>e.setActive(!1),["space","enter"]))},[t.renderSlot(e.$slots,"default")],34)}const It=M($t,[["render",wt]]);function re(e,n,o){return t.computed({get:()=>e.value,set:s=>n(o||"update:modelValue",s)})}function _t(e){const n=t.inject(Ee,t.ref(!1));return t.computed(()=>n.value||e.value)}function de(e,n,o){const s=_t(e),i=t.inject(Ve,t.ref("default")),d=t.computed(()=>n!=null&&n.value&&n.value!=="default"?n.value:i.value),l=t.inject(xe,void 0),r=t.computed(()=>l||o);return{computedDisabled:s,computedStatus:d,computedInputId:r}}const Bt=L(Ie),xt=L(se),Mt=t.defineComponent({name:"CdxTextInput",components:{CdxIcon:z},inheritAttrs:!1,expose:["focus","blur"],props:{modelValue:{type:[String,Number],default:""},inputType:{type:String,default:"text",validator:Bt},status:{type:String,default:"default",validator:xt},disabled:{type:Boolean,default:!1},startIcon:{type:[String,Object],default:void 0},endIcon:{type:[String,Object],default:void 0},clearable:{type:Boolean,default:!1}},emits:["update:modelValue","keydown","input","change","focus","blur","clear"],setup(e,{emit:n,attrs:o}){const s=o.id,{computedDisabled:i,computedStatus:d,computedInputId:l}=de(t.toRef(e,"disabled"),t.toRef(e,"status"),s),r=t.inject(Me,void 0),a=re(t.toRef(e,"modelValue"),n),u=t.computed(()=>e.clearable&&!!a.value&&!i.value),p=t.computed(()=>({"cdx-text-input--has-start-icon":!!e.startIcon,"cdx-text-input--has-end-icon":!!e.endIcon,"cdx-text-input--clearable":u.value,[`cdx-text-input--status-${d.value}`]:!0})),{rootClasses:b,rootStyle:g,otherAttrs:w}=j(o,p),_=t.computed(()=>{const V=w.value,{id:y}=V;return U(V,["id"])}),F=t.computed(()=>({"cdx-text-input__input--has-value":!!a.value}));return{computedInputId:l,descriptionId:r,wrappedModel:a,isClearable:u,rootClasses:b,rootStyle:g,otherAttrsMinusId:_,inputClasses:F,computedDisabled:i,onClear:y=>{a.value="",n("clear",y)},onInput:y=>{n("input",y)},onChange:y=>{n("change",y)},onKeydown:y=>{(y.key==="Home"||y.key==="End")&&!y.ctrlKey&&!y.metaKey||n("keydown",y)},onFocus:y=>{n("focus",y)},onBlur:y=>{n("blur",y)},cdxIconClear:R}},methods:{focus(){this.$refs.input.focus()},blur(){this.$refs.input.blur()}}}),on="",Vt=["id","type","aria-describedby","disabled"];function Et(e,n,o,s,i,d){const l=t.resolveComponent("cdx-icon");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-text-input",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.withDirectives(t.createElementVNode("input",t.mergeProps({id:e.computedInputId,ref:"input","onUpdate:modelValue":n[0]||(n[0]=r=>e.wrappedModel=r),class:["cdx-text-input__input",e.inputClasses]},e.otherAttrsMinusId,{type:e.inputType,"aria-describedby":e.descriptionId,disabled:e.computedDisabled,onInput:n[1]||(n[1]=(...r)=>e.onInput&&e.onInput(...r)),onChange:n[2]||(n[2]=(...r)=>e.onChange&&e.onChange(...r)),onFocus:n[3]||(n[3]=(...r)=>e.onFocus&&e.onFocus(...r)),onBlur:n[4]||(n[4]=(...r)=>e.onBlur&&e.onBlur(...r)),onKeydown:n[5]||(n[5]=(...r)=>e.onKeydown&&e.onKeydown(...r))}),null,16,Vt),[[t.vModelDynamic,e.wrappedModel]]),e.startIcon?(t.openBlock(),t.createBlock(l,{key:0,icon:e.startIcon,class:"cdx-text-input__icon-vue cdx-text-input__start-icon"},null,8,["icon"])):t.createCommentVNode("",!0),e.endIcon?(t.openBlock(),t.createBlock(l,{key:1,icon:e.endIcon,class:"cdx-text-input__icon-vue cdx-text-input__end-icon"},null,8,["icon"])):t.createCommentVNode("",!0),e.isClearable?(t.openBlock(),t.createBlock(l,{key:2,icon:e.cdxIconClear,class:"cdx-text-input__icon-vue cdx-text-input__clear-icon",onMousedown:n[6]||(n[6]=t.withModifiers(()=>{},["prevent"])),onClick:e.onClear},null,8,["icon","onClick"])):t.createCommentVNode("",!0)],6)}const Nt=M(Mt,[["render",Et]]),Tt=L(se),vt=t.defineComponent({name:"CdxSearchInput",components:{CdxButton:It,CdxTextInput:Nt},inheritAttrs:!1,props:{modelValue:{type:[String,Number],default:""},buttonLabel:{type:String,default:""},disabled:{type:Boolean,default:!1},status:{type:String,default:"default",validator:Tt}},emits:["update:modelValue","submit-click","input","change","focus","blur"],setup(e,{emit:n,attrs:o}){const s=re(t.toRef(e,"modelValue"),n),{computedDisabled:i}=de(t.toRef(e,"disabled")),d=t.computed(()=>({"cdx-search-input--has-end-button":!!e.buttonLabel})),{rootClasses:l,rootStyle:r,otherAttrs:a}=j(o,d);return{wrappedModel:s,computedDisabled:i,rootClasses:l,rootStyle:r,otherAttrs:a,handleSubmit:()=>{n("submit-click",s.value)},searchIcon:A}},methods:{focus(){this.$refs.textInput.focus()}}}),ln="",Lt={class:"cdx-search-input__input-wrapper"};function Dt(e,n,o,s,i,d){const l=t.resolveComponent("cdx-text-input"),r=t.resolveComponent("cdx-button");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-search-input",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createElementVNode("div",Lt,[t.createVNode(l,t.mergeProps({ref:"textInput",modelValue:e.wrappedModel,"onUpdate:modelValue":n[0]||(n[0]=a=>e.wrappedModel=a),class:"cdx-search-input__text-input","input-type":"search","start-icon":e.searchIcon,disabled:e.computedDisabled,status:e.status},e.otherAttrs,{onKeydown:t.withKeys(e.handleSubmit,["enter"]),onInput:n[1]||(n[1]=a=>e.$emit("input",a)),onChange:n[2]||(n[2]=a=>e.$emit("change",a)),onFocus:n[3]||(n[3]=a=>e.$emit("focus",a)),onBlur:n[4]||(n[4]=a=>e.$emit("blur",a))}),null,16,["modelValue","start-icon","disabled","status","onKeydown"]),t.renderSlot(e.$slots,"default")]),e.buttonLabel?(t.openBlock(),t.createBlock(r,{key:0,class:"cdx-search-input__end-button",disabled:e.computedDisabled,onClick:e.handleSubmit},{default:t.withCtx(()=>[t.createTextVNode(t.toDisplayString(e.buttonLabel),1)]),_:1},8,["disabled","onClick"])):t.createCommentVNode("",!0)],6)}const Kt=M(vt,[["render",Dt]]),Rt=t.defineComponent({name:"CdxTypeaheadSearch",components:{CdxIcon:z,CdxMenu:gt,CdxSearchInput:Kt},inheritAttrs:!1,props:{id:{type:String,required:!0},formAction:{type:String,required:!0},searchResultsLabel:{type:String,required:!0},searchResults:{type:Array,required:!0},buttonLabel:{type:String,default:""},initialInputValue:{type:String,default:""},searchFooterUrl:{type:String,default:""},debounceInterval:{type:Number,default:_e},highlightQuery:{type:Boolean,default:!1},showThumbnail:{type:Boolean,default:!1},autoExpandWidth:{type:Boolean,default:!1},visibleItemLimit:{type:Number,default:null}},emits:["input","search-result-click","submit","load-more"],setup(e,{attrs:n,emit:o,slots:s}){const i=t.ref(),d=t.ref(),l=ie("typeahead-search-menu"),r=t.ref(!1),a=t.ref(!1),u=t.ref(!1),p=t.ref(!1),b=t.ref(e.initialInputValue),g=t.ref(""),w=t.computed(()=>{var m,$;return($=(m=d.value)==null?void 0:m.getHighlightedMenuItem())==null?void 0:$.id}),_=t.ref(null),F=t.computed(()=>({"cdx-typeahead-search__menu-message--has-thumbnail":e.showThumbnail})),B=t.computed(()=>e.searchResults.find(m=>m.value===_.value)),x=t.computed(()=>e.searchFooterUrl?{value:K,url:e.searchFooterUrl}:void 0),O=t.computed(()=>({"cdx-typeahead-search--show-thumbnail":e.showThumbnail,"cdx-typeahead-search--expanded":r.value,"cdx-typeahead-search--auto-expand-width":e.showThumbnail&&e.autoExpandWidth})),{rootClasses:Q,rootStyle:P,otherAttrs:N}=j(n,O);function y(m){return m}const D=t.computed(()=>({visibleItemLimit:e.visibleItemLimit,showThumbnail:e.showThumbnail,boldLabel:!0,hideDescriptionOverflow:!0}));let V,T;function W(m,$=!1){B.value&&B.value.label!==m&&B.value.value!==m&&(_.value=null),T!==void 0&&(clearTimeout(T),T=void 0),m===""?r.value=!1:(a.value=!0,s["search-results-pending"]&&(T=setTimeout(()=>{p.value&&(r.value=!0),u.value=!0},Be))),V!==void 0&&(clearTimeout(V),V=void 0);const v=()=>{o("input",m)};$?v():V=setTimeout(()=>{v()},e.debounceInterval)}function ne(m){if(m===K){_.value=null,b.value=g.value;return}_.value=m,m!==null&&(b.value=B.value?B.value.label||String(B.value.value):"")}function oe(){p.value=!0,(g.value||u.value)&&(r.value=!0)}function le(){p.value=!1,r.value=!1}function G(m){const ce=m,{id:$}=ce,v=U(ce,["id"]);if(v.value===K){o("search-result-click",{searchResult:null,index:e.searchResults.length,numberOfResults:e.searchResults.length});return}c(v)}function c(m){const $={searchResult:m,index:e.searchResults.findIndex(v=>v.value===m.value),numberOfResults:e.searchResults.length};o("search-result-click",$)}function h(m){if(m.value===K){b.value=g.value;return}b.value=m.value?m.label||String(m.value):""}function C(m){var $;r.value=!1,($=d.value)==null||$.clearActive(),G(m)}function S(m){if(B.value)c(B.value),m.stopPropagation(),window.location.assign(B.value.url),m.preventDefault();else{const $={searchResult:null,index:-1,numberOfResults:e.searchResults.length};o("submit",$)}}function q(m){if(!d.value||!g.value||m.key===" ")return;const $=d.value.getHighlightedMenuItem(),v=d.value.getHighlightedViaKeyboard();switch(m.key){case"Enter":$&&($.value===K&&v?window.location.assign(e.searchFooterUrl):d.value.delegateKeyNavigation(m,!1)),r.value=!1;break;case"Tab":r.value=!1;break;default:d.value.delegateKeyNavigation(m);break}}return t.onMounted(()=>{e.initialInputValue&&W(e.initialInputValue,!0)}),t.watch(t.toRef(e,"searchResults"),()=>{g.value=b.value.trim(),p.value&&a.value&&g.value.length>0&&(r.value=!0),T!==void 0&&(clearTimeout(T),T=void 0),a.value=!1,u.value=!1}),{form:i,menu:d,menuId:l,highlightedId:w,selection:_,menuMessageClass:F,footer:x,asSearchResult:y,inputValue:b,searchQuery:g,expanded:r,showPending:u,rootClasses:Q,rootStyle:P,otherAttrs:N,menuConfig:D,onUpdateInputValue:W,onUpdateMenuSelection:ne,onFocus:oe,onBlur:le,onSearchResultClick:G,onSearchResultKeyboardNavigation:h,onSearchFooterClick:C,onSubmit:S,onKeydown:q,MenuFooterValue:K,articleIcon:Y}},methods:{focus(){this.$refs.searchInput.focus()}}}),an="",At=["id","action"],zt={class:"cdx-typeahead-search__menu-message__text"},Ft={class:"cdx-typeahead-search__menu-message__text"},Ot=["href","onClickCapture"],qt={class:"cdx-menu-item__text cdx-typeahead-search__search-footer__text"},Ut={class:"cdx-typeahead-search__search-footer__query"};function Ht(e,n,o,s,i,d){const l=t.resolveComponent("cdx-icon"),r=t.resolveComponent("cdx-menu"),a=t.resolveComponent("cdx-search-input");return t.openBlock(),t.createElementBlock("div",{class:t.normalizeClass(["cdx-typeahead-search",e.rootClasses]),style:t.normalizeStyle(e.rootStyle)},[t.createElementVNode("form",{id:e.id,ref:"form",class:"cdx-typeahead-search__form",action:e.formAction,onSubmit:n[4]||(n[4]=(...u)=>e.onSubmit&&e.onSubmit(...u))},[t.createVNode(a,t.mergeProps({ref:"searchInput",modelValue:e.inputValue,"onUpdate:modelValue":n[3]||(n[3]=u=>e.inputValue=u),"button-label":e.buttonLabel},e.otherAttrs,{class:"cdx-typeahead-search__input",name:"search",role:"combobox",autocomplete:"off","aria-autocomplete":"list","aria-owns":e.menuId,"aria-expanded":e.expanded,"aria-activedescendant":e.highlightedId,"onUpdate:modelValue":e.onUpdateInputValue,onFocus:e.onFocus,onBlur:e.onBlur,onKeydown:e.onKeydown}),{default:t.withCtx(()=>[t.createVNode(r,t.mergeProps({id:e.menuId,ref:"menu",expanded:e.expanded,"onUpdate:expanded":n[0]||(n[0]=u=>e.expanded=u),"show-pending":e.showPending,selected:e.selection,"menu-items":e.searchResults,footer:e.footer,"search-query":e.highlightQuery?e.searchQuery:"","show-no-results-slot":e.searchQuery.length>0&&e.searchResults.length===0&&e.$slots["search-no-results-text"]&&e.$slots["search-no-results-text"]().length>0},e.menuConfig,{"aria-label":e.searchResultsLabel,"onUpdate:selected":e.onUpdateMenuSelection,onMenuItemClick:n[1]||(n[1]=u=>e.onSearchResultClick(e.asSearchResult(u))),onMenuItemKeyboardNavigation:e.onSearchResultKeyboardNavigation,onLoadMore:n[2]||(n[2]=u=>e.$emit("load-more"))}),{pending:t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["cdx-menu-item__content cdx-typeahead-search__menu-message",e.menuMessageClass])},[t.createElementVNode("span",zt,[t.renderSlot(e.$slots,"search-results-pending")])],2)]),"no-results":t.withCtx(()=>[t.createElementVNode("div",{class:t.normalizeClass(["cdx-menu-item__content cdx-typeahead-search__menu-message",e.menuMessageClass])},[t.createElementVNode("span",Ft,[t.renderSlot(e.$slots,"search-no-results-text")])],2)]),default:t.withCtx(({menuItem:u,active:p})=>[u.value===e.MenuFooterValue?(t.openBlock(),t.createElementBlock("a",{key:0,class:t.normalizeClass(["cdx-menu-item__content cdx-typeahead-search__search-footer",{"cdx-typeahead-search__search-footer__active":p}]),href:e.asSearchResult(u).url,onClickCapture:t.withModifiers(b=>e.onSearchFooterClick(e.asSearchResult(u)),["stop"])},[t.createVNode(l,{class:"cdx-menu-item__thumbnail cdx-typeahead-search__search-footer__icon",icon:e.articleIcon},null,8,["icon"]),t.createElementVNode("span",qt,[t.renderSlot(e.$slots,"search-footer-text",{searchQuery:e.searchQuery},()=>[t.createElementVNode("strong",Ut,t.toDisplayString(e.searchQuery),1)])])],42,Ot)):t.createCommentVNode("",!0)]),_:3},16,["id","expanded","show-pending","selected","menu-items","footer","search-query","show-no-results-slot","aria-label","onUpdate:selected","onMenuItemKeyboardNavigation"])]),_:3},16,["modelValue","button-label","aria-owns","aria-expanded","aria-activedescendant","onUpdate:modelValue","onFocus","onBlur","onKeydown"]),t.renderSlot(e.$slots,"default")],40,At)],6)}const jt=M(Rt,[["render",Ht]]);f.CdxTypeaheadSearch=jt,Object.defineProperty(f,Symbol.toStringTag,{value:"Module"})});