import{m as M,V as E,a as b}from"./Dn3gpaoG.js";import{f as R}from"./D3j0TLhE.js";import{a4 as L,aC as S,a6 as O,ar as U,aD as K,aE as H,m as V,r as B,H as F,T as N,B as j,aF as z,O as G,aG as J,D as $,U as k,a7 as q,e as A,ak as Q,P as W,aH as P,aI as X,aJ as g}from"./CFkWy_uK.js";import{u as Y}from"./CRUXv2im.js";import{V as Z}from"./D7MhHtmx.js";const _=L({id:String,submenu:Boolean,...S(M({closeDelay:250,closeOnContentClick:!0,locationStrategy:"connected",location:void 0,openDelay:300,scrim:!1,scrollStrategy:"reposition",transition:{component:Z}}),["absolute"])},"VMenu"),le=O()({name:"VMenu",props:_(),emits:{"update:modelValue":a=>!0},setup(a,p){let{slots:c}=p;const l=U(a,"modelValue"),{scopeId:D}=Y(),{isRtl:f}=K(),d=H(),m=V(()=>a.id||`v-menu-${d}`),o=B(),n=F(E,null),v=N(new Set);j(E,{register(){v.value.add(d)},unregister(){v.value.delete(d)},closeParents(e){setTimeout(()=>{var t;!v.value.size&&!a.persistent&&(e==null||(t=o.value)!=null&&t.contentEl&&!z(e,o.value.contentEl))&&(l.value=!1,n==null||n.closeParents())},40)}}),G(()=>n==null?void 0:n.unregister()),J(()=>l.value=!1);async function y(e){var r,u,i;const t=e.relatedTarget,s=e.target;await W(),l.value&&t!==s&&((r=o.value)!=null&&r.contentEl)&&((u=o.value)!=null&&u.globalTop)&&![document,o.value.contentEl].includes(s)&&!o.value.contentEl.contains(s)&&((i=P(o.value.contentEl)[0])==null||i.focus())}$(l,e=>{e?(n==null||n.register(),document.addEventListener("focusin",y,{once:!0})):(n==null||n.unregister(),document.removeEventListener("focusin",y))});function h(e){n==null||n.closeParents(e)}function C(e){var t,s,r,u,i;if(!a.disabled)if(e.key==="Tab"||e.key==="Enter"&&!a.closeOnContentClick){if(e.key==="Enter"&&(e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLInputElement&&e.target.closest("form")))return;e.key==="Enter"&&e.preventDefault(),X(P((t=o.value)==null?void 0:t.contentEl,!1),e.shiftKey?"prev":"next",I=>I.tabIndex>=0)||(l.value=!1,(r=(s=o.value)==null?void 0:s.activatorEl)==null||r.focus())}else a.submenu&&e.key===(f.value?"ArrowRight":"ArrowLeft")&&(l.value=!1,(i=(u=o.value)==null?void 0:u.activatorEl)==null||i.focus())}function w(e){var s;if(a.disabled)return;const t=(s=o.value)==null?void 0:s.contentEl;t&&l.value?e.key==="ArrowDown"?(e.preventDefault(),e.stopImmediatePropagation(),g(t,"next")):e.key==="ArrowUp"?(e.preventDefault(),e.stopImmediatePropagation(),g(t,"prev")):a.submenu&&(e.key===(f.value?"ArrowRight":"ArrowLeft")?l.value=!1:e.key===(f.value?"ArrowLeft":"ArrowRight")&&(e.preventDefault(),g(t,"first"))):(a.submenu?e.key===(f.value?"ArrowLeft":"ArrowRight"):["ArrowDown","ArrowUp"].includes(e.key))&&(l.value=!0,e.preventDefault(),setTimeout(()=>setTimeout(()=>w(e))))}const T=V(()=>k({"aria-haspopup":"menu","aria-expanded":String(l.value),"aria-owns":m.value,onKeydown:w},a.activatorProps));return q(()=>{const e=b.filterProps(a);return A(b,k({ref:o,id:m.value,class:["v-menu",a.class],style:a.style},e,{modelValue:l.value,"onUpdate:modelValue":t=>l.value=t,absolute:!0,activatorProps:T.value,location:a.location??(a.submenu?"end":"bottom"),"onClick:outside":h,onKeydown:C},D),{activator:c.activator,default:function(){for(var t=arguments.length,s=new Array(t),r=0;r<t;r++)s[r]=arguments[r];return A(Q,{root:"VMenu"},{default:()=>{var u;return[(u=c.default)==null?void 0:u.call(c,...s)]}})}})}),R({id:m,ΨopenChildren:v},o)}});export{le as V};
