@data-slot/navigation-menu 0.2.111 → 0.2.113
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -5
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -71,7 +71,7 @@ const menu = createNavigationMenu(element, {
|
|
|
71
71
|
|--------|------|---------|-------------|
|
|
72
72
|
| `delayOpen` | `number` | `0` | Delay before opening on hover (ms) |
|
|
73
73
|
| `delayClose` | `number` | `0` | Delay before closing on mouse leave (ms) |
|
|
74
|
-
| `openOnFocus` | `boolean` | `
|
|
74
|
+
| `openOnFocus` | `boolean` | `false` | Whether focusing a trigger opens its content |
|
|
75
75
|
| `side` | `"top" \| "right" \| "bottom" \| "left"` | `"bottom"` | Viewport side relative to trigger |
|
|
76
76
|
| `align` | `"start" \| "center" \| "end"` | `"start"` | Viewport alignment on cross-axis |
|
|
77
77
|
| `sideOffset` | `number` | `0` | Distance from trigger to viewport (px) |
|
|
@@ -88,7 +88,7 @@ Options can also be set via data attributes on the root element. JS options take
|
|
|
88
88
|
|-----------|------|---------|-------------|
|
|
89
89
|
| `data-delay-open` | number | `0` | Delay before opening on hover (ms) |
|
|
90
90
|
| `data-delay-close` | number | `0` | Delay before closing on mouse leave (ms) |
|
|
91
|
-
| `data-open-on-focus` | boolean | `
|
|
91
|
+
| `data-open-on-focus` | boolean | `false` | Whether focusing a trigger opens its content |
|
|
92
92
|
| `data-side` | string | `"bottom"` | Side: `"top"`, `"right"`, `"bottom"`, `"left"` |
|
|
93
93
|
| `data-align` | string | `"start"` | Viewport alignment: `"start"`, `"center"`, or `"end"` |
|
|
94
94
|
| `data-side-offset` | number | `0` | Distance from trigger to viewport (px) |
|
|
@@ -113,8 +113,8 @@ Can be set on:
|
|
|
113
113
|
Their `data-side` / `data-align` are mirrored output values and are not used as placement inputs.
|
|
114
114
|
|
|
115
115
|
```html
|
|
116
|
-
<!-- Faster hover response
|
|
117
|
-
<nav data-slot="navigation-menu" data-delay-open="100" data-open-on-focus="
|
|
116
|
+
<!-- Faster hover response with focus auto-open opt-in -->
|
|
117
|
+
<nav data-slot="navigation-menu" data-delay-open="100" data-open-on-focus="true">
|
|
118
118
|
...
|
|
119
119
|
</nav>
|
|
120
120
|
|
|
@@ -288,24 +288,31 @@ For exit animations, avoid CSS that force-hides content immediately by `data-sta
|
|
|
288
288
|
|-----|--------|
|
|
289
289
|
| `ArrowLeft` | Move focus to previous top-level item (submenu trigger or plain link) |
|
|
290
290
|
| `ArrowRight` | Move focus to next top-level item (submenu trigger or plain link) |
|
|
291
|
+
| `Tab` | Move focus to next top-level item in DOM order |
|
|
292
|
+
| `Shift+Tab` | Move focus to previous top-level item in reverse DOM order |
|
|
291
293
|
| `ArrowDown` | Move focus into content panel (only when focused item has submenu content) |
|
|
292
294
|
| `Home` | Move focus to first top-level item |
|
|
293
295
|
| `End` | Move focus to last top-level item |
|
|
294
296
|
| `Escape` | Close menu |
|
|
295
297
|
|
|
298
|
+
Top-level submenu triggers and plain links remain in the natural tab order.
|
|
299
|
+
|
|
296
300
|
### Within Content Panel
|
|
297
301
|
|
|
298
302
|
| Key | Action |
|
|
299
303
|
|-----|--------|
|
|
300
304
|
| `ArrowDown` / `ArrowRight` | Move to next focusable element |
|
|
301
305
|
| `ArrowUp` / `ArrowLeft` | Move to previous element (returns to trigger at start) |
|
|
306
|
+
| `Tab` | From last content item, move focus to next top-level nav item; if none, move to next focusable after nav root |
|
|
307
|
+
| `Shift+Tab` | From first content item, move focus back to owning trigger |
|
|
302
308
|
| `Escape` | Close menu and return focus to trigger |
|
|
303
309
|
|
|
304
310
|
## Behavior
|
|
305
311
|
|
|
306
312
|
- **Hover**: Opens after `delayOpen` ms, closes after `delayClose` ms
|
|
307
313
|
- **Click**: Locks menu open until explicit action (click same trigger, click another trigger, click outside, or `Escape`); hover does not switch/close while locked
|
|
308
|
-
- **Focus**:
|
|
314
|
+
- **Focus**: Does not auto-open by default; set `openOnFocus` / `data-open-on-focus="true"` to opt in
|
|
315
|
+
- **Trigger open focus**: Opening via trigger activation moves focus into menu content (first focusable item, or content panel fallback)
|
|
309
316
|
- **Switching**: Instant transition between items (no delay)
|
|
310
317
|
|
|
311
318
|
## Events
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=[`start`,`center`,`end`],n=[`top`,`right`,`bottom`,`left`],r=(e,t)=>t===`start`?{x:e.left,y:e.top}:t===`end`?{x:e.right,y:e.bottom}:{x:e.left+e.width/2,y:e.top+e.height/2},i=(e,t,n)=>{let i=r(n,t);return e===`top`?{x:i.x,y:n.top}:e===`bottom`?{x:i.x,y:n.bottom}:e===`left`?{x:n.left,y:i.y}:{x:n.right,y:i.y}};function a(r,a={}){let o=a.delayOpen??(0,e.getDataNumber)(r,`delayOpen`)??0,s=a.delayClose??(0,e.getDataNumber)(r,`delayClose`)??0,c=a.openOnFocus??(0,e.getDataBool)(r,`openOnFocus`)??!0,l=a.side??(0,e.getDataEnum)(r,`side`,n)??`bottom`,u=a.align??(0,e.getDataEnum)(r,`align`,t)??`start`,d=a.sideOffset??(0,e.getDataNumber)(r,`sideOffset`)??0,ee=a.alignOffset??(0,e.getDataNumber)(r,`alignOffset`)??0,f=a.safeTriangle??(0,e.getDataBool)(r,`safeTriangle`)??!1,p=a.debugSafeTriangle??(0,e.getDataBool)(r,`debugSafeTriangle`)??!1,te=f||p,m=a.onValueChange,h=e=>e.replace(/[^a-z0-9\-_:.]/gi,`-`),g=(e,t)=>{`inert`in e&&(e.inert=t)},_=(0,e.getPart)(r,`navigation-menu-list`),ne=(0,e.getParts)(r,`navigation-menu-item`),v=(0,e.getPart)(r,`navigation-menu-viewport`),y=(0,e.getPart)(r,`navigation-menu-indicator`),b=(e,t)=>{let n=e.parentElement;for(;n&&n!==r;){if(n.getAttribute(`data-slot`)===t)return n;n=n.parentElement}return null};if(!_||ne.length===0)throw Error(`NavigationMenu requires navigation-menu-list and at least one navigation-menu-item`);let x=null,S=null,C=-1,w=null,T=null,E=null,D=!1,O=null,k=!1,A=!1,j=null,M=null,N=0,P=0,F=[],I=new Map,L=new Map,R=v?b(v,`navigation-menu-viewport-positioner`):null,z=v?b(v,`navigation-menu-positioner`):null,B=R??z,re=B?b(B,`navigation-menu-portal`):null,V=v?(0,e.createPortalLifecycle)({content:v,root:r,enabled:!0,wrapperSlot:B?void 0:`navigation-menu-viewport-positioner`,container:B??void 0,mountTarget:B?re??B:void 0}):null,H=()=>{let e=V?.container;e instanceof HTMLElement&&(e.style.position=``,e.style.top=``,e.style.left=``,e.style.width=``,e.style.height=``,e.style.margin=``,e.style.willChange=``,e.style.pointerEvents=``,e.style.transform=``,e.style.removeProperty(`--transform-origin`),e.removeAttribute(`data-instant`))},U=()=>{v?.removeAttribute(`data-instant`);let e=V?.container;e instanceof HTMLElement&&e.removeAttribute(`data-instant`)},W=v?(0,e.createPresenceLifecycle)({element:v,onExitComplete:()=>{A||(U(),H(),N=0,P=0,V?.restore(),v.hidden=!0,v.style.pointerEvents=`none`)}}):null,ie=e=>{if(!v)return;let t=L.get(e)??{originalParent:null,originalNextSibling:null,mountedInViewport:!1};t.mountedInViewport||(t.originalParent=e.parentNode,t.originalNextSibling=e.nextSibling,t.mountedInViewport=!0,L.set(e,t)),e.parentNode!==v&&v.appendChild(e)},ae=e=>{let t=L.get(e);if(!t||!t.mountedInViewport)return;let n=t.originalParent,r=t.originalNextSibling;n&&n.isConnected?r&&r.parentNode===n?n.insertBefore(e,r):n.appendChild(e):e.remove(),t.mountedInViewport=!1,t.originalParent=null,t.originalNextSibling=null},oe=()=>{if(!v||!V)return;let e=V.container,t=r.ownerDocument.defaultView??window,n=r.getBoundingClientRect(),i=n.top+t.scrollY+P,a=n.left+t.scrollX+N;e.style.position=`absolute`,e.style.top=`${i}px`,e.style.left=`${a}px`,e.style.width=`${n.width}px`,e.style.height=`${n.height}px`,e.style.margin=`0`,e.style.willChange=`top,left`,e.style.pointerEvents=`none`},G=null,se=e=>{G?.disconnect(),G=null,!(!v||!e)&&(G=new ResizeObserver(()=>{let t=ce(e.item,e.content);Le(e.content,e.trigger,t)}),G.observe(e.content))};F.push(()=>G?.disconnect()),F.push(()=>{U(),I.forEach(e=>e.cleanup()),I.clear(),L.forEach((e,t)=>{ae(t),t.hidden=!0,t.style.pointerEvents=`none`}),L.clear(),H(),N=0,P=0,W?.cleanup(),V?.cleanup()});let K=new Map,ce=(r,i)=>({side:a.side??(0,e.getDataEnum)(i,`side`,n)??(0,e.getDataEnum)(r,`side`,n)??l,align:a.align??(0,e.getDataEnum)(i,`align`,t)??(0,e.getDataEnum)(r,`align`,t)??u,sideOffset:a.sideOffset??(0,e.getDataNumber)(i,`sideOffset`)??(0,e.getDataNumber)(r,`sideOffset`)??d,alignOffset:a.alignOffset??(0,e.getDataNumber)(i,`alignOffset`)??(0,e.getDataNumber)(r,`alignOffset`)??ee}),le=0;ne.forEach(t=>{let n=t.dataset.value;if(!n)return;let r=(0,e.getPart)(t,`navigation-menu-trigger`),i=(0,e.getPart)(t,`navigation-menu-content`);if(r&&i){K.set(n,{value:n,item:t,trigger:r,content:i,index:le++}),I.set(i,(0,e.createPresenceLifecycle)({element:i,onExitComplete:()=>{A||(ae(i),i.hidden=!0,i.style.pointerEvents=`none`)}}));let a=h(n),o=(0,e.ensureId)(r,`nav-menu-trigger-${a}`),s=(0,e.ensureId)(i,`nav-menu-content-${a}`);r.setAttribute(`aria-haspopup`,`true`),r.setAttribute(`aria-controls`,s),i.setAttribute(`aria-labelledby`,o)}});let ue=Array.from(K.values()).map(e=>e.trigger),de=`a[href], button:not([disabled]), [role="link"], [role="button"], [tabindex]:not([tabindex="-1"])`,fe=e=>{let t=e?.closest(`[data-slot="navigation-menu-item"]`);if(!t)return null;let n=t.dataset.value;if(!n)return null;let r=K.get(n);return!r||r.item!==t?null:r},pe=e=>{if(e.matches(de))return e;let t=e.querySelectorAll(de);for(let n of t)if(e.contains(n)&&!n.closest(`[data-slot="navigation-menu-content"]`)&&!(n.hidden||n.closest(`[hidden]`)))return n;return null},q=[],me=new Map;ne.forEach(e=>{let t=fe(e);if(t){let e={kind:`submenu`,element:t.trigger,value:t.value,trigger:t.trigger};q.push(e),me.set(e.element,e);return}let n=pe(e);if(!n)return;let r={kind:`plain`,element:n};q.push(r),me.set(r.element,r)});let he=e=>{let t=e instanceof HTMLElement?e:null;if(!t)return null;let n=t;for(;n&&n!==_;){let e=me.get(n);if(e)return e;n=n.parentElement}return null},ge=e=>{if(!(e instanceof Node)||!_.contains(e))return!1;let t=e instanceof HTMLElement?e:e.parentElement;return!t||t.closest(`[data-slot="navigation-menu-indicator"]`)||fe(t)?!1:t.closest(`[data-slot="navigation-menu-item"]`)?!0:!!t.closest(`a[href], button, [role='link'], [role='button']`)},_e=e=>Array.from(e.querySelectorAll(`a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.hidden&&!e.closest(`[hidden]`)),J=()=>{w&&=(clearTimeout(w),null),T&&=(clearTimeout(T),null)},ve=()=>{M!==null&&(cancelAnimationFrame(M),M=null)},Y=null,ye=()=>{if(!v)return null;let e=V?.container;return e instanceof HTMLElement?e:v.parentElement instanceof HTMLElement?v.parentElement:v},be=()=>{let t=ye();return Y||(Y=document.createElement(`div`),Y.setAttribute(`data-slot`,`navigation-menu-bridge`),Y.style.cssText=`position: absolute; pointer-events: auto; z-index: 0; display: none;`,F.push((0,e.on)(Y,`pointerenter`,()=>{J()}),(0,e.on)(Y,`pointerleave`,t=>{if(D||x===null)return;let n=t.relatedTarget;Ie(n)||n&&(0,e.containsWithPortals)(r,n)||(Q(null),Z(null))}))),t&&Y.parentElement!==t&&t.insertBefore(Y,t.firstChild),Y},xe=()=>{Y&&(Y.style.height=`0`,Y.style.width=`0`,Y.style.top=`0px`,Y.style.left=`0px`,Y.style.right=`0px`,Y.style.bottom=`auto`,Y.style.transform=`none`,Y.style.clipPath=`none`,Y.style.display=`none`)},Se=()=>{if(!p)return null;let e=r.ownerDocument.body;return e?(j||(j=r.ownerDocument.createElement(`div`),j.setAttribute(`data-slot`,`navigation-menu-safe-triangle`),j.style.cssText=[`position: fixed`,`pointer-events: none`,`display: none`,`z-index: 2147483647`,`background: rgba(255, 0, 0, 0.18)`,`border: 1px solid rgba(255, 0, 0, 0.45)`].join(`; `)),j.parentElement!==e&&e.appendChild(j),j):null},Ce=()=>{j&&(j.style.width=`0`,j.style.height=`0`,j.style.clipPath=`none`,j.style.display=`none`)},X=()=>{p||Ce()},we=e=>{let t=Se();if(!t)return;let n=e.apex.x,r=e.apex.y,i=e.edgeA.x,a=e.edgeA.y,o=e.edgeB.x,s=e.edgeB.y,c=Math.min(n,i,o),l=Math.min(r,a,s),u=Math.max(n,i,o),d=Math.max(r,a,s),ee=Math.max(1,u-c),f=Math.max(1,d-l),p=(e,t)=>`${(e-c)/ee*100}% ${(t-l)/f*100}%`;t.style.display=`block`,t.style.left=`${c}px`,t.style.top=`${l}px`,t.style.width=`${ee}px`,t.style.height=`${f}px`,t.style.clipPath=`polygon(${p(n,r)}, ${p(i,a)}, ${p(o,s)})`},Te=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),Ee=(e,t,n,r)=>{let i=Te(e,t,n),a=Te(e,n,r),o=Te(e,r,t);return!((i<0||a<0||o<0)&&(i>0||a>0||o>0))},De=(e,t,n)=>{let r=.5;if(n.top>=t.bottom-r)return[{x:n.left,y:n.top},{x:n.right,y:n.top}];if(n.bottom<=t.top+r)return[{x:n.left,y:n.bottom},{x:n.right,y:n.bottom}];if(n.left>=t.right-r)return[{x:n.left,y:n.top},{x:n.left,y:n.bottom}];if(n.right<=t.left+r)return[{x:n.right,y:n.top},{x:n.right,y:n.bottom}];let i=[[{x:n.left,y:n.top},{x:n.right,y:n.top}],[{x:n.right,y:n.top},{x:n.right,y:n.bottom}],[{x:n.left,y:n.bottom},{x:n.right,y:n.bottom}],[{x:n.left,y:n.top},{x:n.left,y:n.bottom}]],a=([t,n])=>t.y===n.y?Math.abs(e.y-t.y):Math.abs(e.x-t.x),o=i[0],s=a(o);for(let e=1;e<i.length;e++){let t=i[e],n=a(t);n<s&&(o=t,s=n)}return o},Oe=()=>x?K.get(x)??null:null,ke=(e,t,n)=>{if(n.width<=0||n.height<=0)return null;let r={x:e.left+e.width/2,y:e.top+e.height*.62},[i,a]=De(r,t,n);if(i.x===a.x){let e=Math.min(i.y,a.y),t=Math.max(i.y,a.y),n=t-e,r=n<=28?0:Math.min(10,(n-28)/2);i={x:i.x,y:e+r},a={x:a.x,y:t-r}}else{let e=Math.min(i.x,a.x),t=Math.max(i.x,a.x),n=t-e,r=n<=28?0:Math.min(10,(n-28)/2);i={x:e+r,y:i.y},a={x:t-r,y:a.y}}return{apex:r,edgeA:i,edgeB:a}},Ae=()=>{if(!te||!v||x===null)return null;let e=Oe();if(!e)return null;let t=r.getBoundingClientRect(),n=e.trigger.getBoundingClientRect(),i=v.getBoundingClientRect(),a=e.content.getBoundingClientRect();return ke(n,t,i.width>0&&i.height>0?i:a)},je=e=>{let t=Ae();return t?Ee({x:e.clientX,y:e.clientY},t.apex,t.edgeA,t.edgeB):!1},Me=(e,t)=>({x:e.x-t.left,y:e.y-t.top}),Ne=e=>{if(e.length<=1)return e.slice();let t=e=>`${e.x.toFixed(3)}:${e.y.toFixed(3)}`,n=new Map;for(let r of e)n.set(t(r),r);let r=Array.from(n.values()).sort((e,t)=>e.x===t.x?e.y-t.y:e.x-t.x);if(r.length<=2)return r;let i=(e,t,n)=>(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),a=[];for(let e of r){for(;a.length>=2&&i(a[a.length-2],a[a.length-1],e)<=0;)a.pop();a.push(e)}let o=[];for(let e=r.length-1;e>=0;e--){let t=r[e];for(;o.length>=2&&i(o[o.length-2],o[o.length-1],t)<=0;)o.pop();o.push(t)}return a.pop(),o.pop(),a.concat(o)},Pe=e=>{if(e.length<3){xe();return}let t=be(),n=t.parentElement,r=Ne(n&&n===V?.container?e.map(e=>({x:e.x-N,y:e.y-P})):e);if(r.length<3){xe();return}let i=Math.min(...r.map(e=>e.x)),a=Math.min(...r.map(e=>e.y)),o=Math.max(...r.map(e=>e.x)),s=Math.max(...r.map(e=>e.y)),c=Math.max(1,o-i),l=Math.max(1,s-a),u=e=>`${(e.x-i)/c*100}% ${(e.y-a)/l*100}%`;t.style.display=`block`,t.style.transform=`none`,t.style.bottom=`auto`,t.style.right=`auto`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.width=`${c}px`,t.style.height=`${l}px`,t.style.clipPath=`polygon(${r.map(u).join(`, `)})`},Fe=()=>{if(!p)return;let e=Ae();if(!e){Ce();return}we(e)},Ie=e=>{if(!e)return!1;if(Oe()?.content.contains(e)||v?.contains(e)||Y?.contains(e))return!0;let t=V?.container;return!!(t instanceof HTMLElement&&t.contains(e))};F.push(X),F.push(ve),F.push(xe),F.push(()=>{Ce(),j?.parentElement&&j.parentElement.removeChild(j),j=null});let Le=(t,a,o)=>{v&&requestAnimationFrame(()=>{let s=t.firstElementChild,c=t.lastElementChild,l=s?getComputedStyle(s):null,u=c?getComputedStyle(c):null,d=l&&parseFloat(l.marginTop)||0,ee=u&&parseFloat(u.marginBottom)||0,f=(...e)=>{let t=0;for(let n of e)Number.isFinite(n)&&(t=Math.max(t,n));return t},p=t.getBoundingClientRect(),m=f(p.width,t.scrollWidth,t.offsetWidth,t.clientWidth),h=f(p.height,t.scrollHeight,t.offsetHeight,t.clientHeight)+d+ee,g={top:p.top,left:p.left,width:m,height:h,right:p.left+m,bottom:p.top+h},_=getComputedStyle(v),ne=parseFloat(_.marginTop)||0;v.style.setProperty(`--viewport-width`,`${m}px`),v.style.setProperty(`--viewport-height`,`${h}px`);let y=r.getBoundingClientRect(),b=a.getBoundingClientRect(),x=(0,e.computeFloatingPosition)({anchorRect:b,contentRect:g,side:o.side,align:o.align,sideOffset:o.sideOffset,alignOffset:o.alignOffset,avoidCollisions:!1,collisionPadding:0,allowedSides:n}),S=x.x-y.left,C=x.y-y.top;N=S,P=C;let w=i(x.side,x.align,b),T=w.x-(y.left+S),E=w.y-(y.top+C),D=w.x-y.left,O=w.y-y.top,k=`${T}px ${E}px`,A=`${D}px ${O}px`;v.style.top=`0px`,v.style.left=`0px`,v.style.willChange=`transform,width,height`,v.style.setProperty(`--transform-origin`,k),t.style.top=`0px`,t.style.left=`0px`,t.style.setProperty(`--transform-origin`,k),v.setAttribute(`data-side`,x.side),v.setAttribute(`data-align`,x.align),t.setAttribute(`data-side`,x.side),t.setAttribute(`data-align`,x.align);let j=V?.container;j&&j!==v&&(j.setAttribute(`data-side`,x.side),j.setAttribute(`data-align`,x.align),j.style.setProperty(`--transform-origin`,A)),oe();let M=v.getBoundingClientRect(),F=[],I=Math.max(0,M.top-y.bottom),L=Math.max(0,y.top-M.bottom),R=Math.max(0,M.left-y.right),z=Math.max(0,y.left-M.right),B=Math.max(0,d+ne),re=Math.max(I,L,B),H=Math.max(R,z),U=te?ke(b,y,M):null,W=(e,t,n,r)=>{n<=0||r<=0||F.push({x:e,y:t},{x:e+n,y:t},{x:e+n,y:t+r},{x:e,y:t+r})};if(re>=H&&re>0){let e=Math.max(I,L,B),t=S,n=L>I&&L>=B?C+h:C-e,r=m;if(U){let e=Math.min(U.edgeA.x,U.edgeB.x)-y.left,n=Math.max(U.edgeA.x,U.edgeB.x)-y.left;t=e-8,r=n-e+16}W(t,n,r,e)}else if(H>0){let e=Math.max(R,z),t=C,n=z>R?S+m:S-e,r=h;if(U){let e=Math.min(U.edgeA.y,U.edgeB.y)-y.top,n=Math.max(U.edgeA.y,U.edgeB.y)-y.top;t=e-8,r=n-e+16}W(n,t,e,r)}if(U){let e=Me(U.apex,y),t=Me(U.edgeA,y),n=Me(U.edgeB,y);F.push(e,t,n)}Pe(F),Fe()})},Re=e=>C===-1||e>C?`right`:`left`,Z=e=>{if(!y)return;if(E=e,!e){ve(),y.removeAttribute(`data-instant`),y.setAttribute(`data-state`,`hidden`);return}y.getAttribute(`data-state`)!==`visible`&&(ve(),y.setAttribute(`data-instant`,``),M=requestAnimationFrame(()=>{M=requestAnimationFrame(()=>{y.removeAttribute(`data-instant`),M=null})}));let t=_.getBoundingClientRect(),n=e.getBoundingClientRect();y.style.setProperty(`--indicator-left`,`${n.left-t.left}px`),y.style.setProperty(`--indicator-width`,`${n.width}px`),y.style.setProperty(`--indicator-top`,`${n.top-t.top}px`);let r=(v&&parseFloat(getComputedStyle(v).marginTop)||0)<1?1:0;y.style.setProperty(`--indicator-height`,`${n.height-r}px`),y.setAttribute(`data-state`,`visible`)},Q=(t,n=!1)=>{if(X(),t===x){J();return}if(t!==null&&t===S){J();return}J(),S=t===null?null:t;let i=()=>{let n=x,i=t?K.get(t):null,a=n!==null&&t!==null&&n!==t,o=a&&i?Re(i.index):null,s=document.activeElement;if(t===null&&s&&(0,e.containsWithPortals)(r,s)){let e=n?K.get(n)?.trigger:null;e&&e.focus()}if(K.forEach(({trigger:r,content:i,item:a},s)=>{let c=s===t,l=s===n;if((0,e.setAria)(r,`expanded`,c),r.setAttribute(`data-state`,c?`open`:`closed`),c||l&&t===null?r.tabIndex=0:r.tabIndex=-1,a.setAttribute(`data-state`,c?`open`:`closed`),!c){let e=I.get(i);if(i.setAttribute(`data-state`,`inactive`),i.setAttribute(`aria-hidden`,`true`),g(i,!0),i.style.pointerEvents=`none`,l&&o){let e=o===`right`?`to-left`:`to-right`;i.setAttribute(`data-motion`,e)}else l&&i.removeAttribute(`data-motion`);l?e?.exit():e?.isExiting||(i.removeAttribute(`data-motion`),ae(i),i.hidden=!0)}}),i){if(V?.mount(),v&&(v.hidden=!1),n===null&&W?.enter(),ie(i.content),I.get(i.content)?.enter(),o){let e=o===`right`?`from-right`:`from-left`;i.content.setAttribute(`data-motion`,e)}else i.content.removeAttribute(`data-motion`);i.content.setAttribute(`data-state`,`active`),i.content.removeAttribute(`aria-hidden`),g(i.content,!1),i.content.hidden=!1,i.content.style.pointerEvents=`auto`,C=i.index;let e=ce(i.item,i.content);Le(i.content,i.trigger,e),se(i),Z(i.trigger)}else xe(),X(),W?.exit(),se(null);let c=t!==null;if(r.setAttribute(`data-state`,c?`open`:`closed`),o?r.setAttribute(`data-motion`,o===`right`?`from-right`:`from-left`):r.removeAttribute(`data-motion`),v){v.setAttribute(`data-state`,c?`open`:`closed`),v.style.pointerEvents=c?`auto`:`none`;let e=V?.container;c&&!a?(v.setAttribute(`data-instant`,``),e?.setAttribute(`data-instant`,``)):a?U():c||U(),o&&v.style.setProperty(`--motion-direction`,o===`right`?`1`:`-1`)}x=t,S=null,t===null&&Z(null),Fe(),(0,e.emit)(r,`navigation-menu:change`,{value:t}),m?.(t)};n?i():t!==null&&x===null?w=setTimeout(i,o):t!==null&&x!==null?i():T=setTimeout(i,s)};r.setAttribute(`data-state`,`closed`),v&&(v.setAttribute(`data-state`,`closed`),v.hidden=!0,v.style.pointerEvents=`none`),y&&y.setAttribute(`data-state`,`hidden`),K.forEach(({trigger:t,content:n,item:r})=>{t.tagName===`BUTTON`&&!t.hasAttribute(`type`)&&(t.type=`button`),(0,e.setAria)(t,`expanded`,!1),t.setAttribute(`data-state`,`closed`),t.tabIndex=t===ue[0]?0:-1,r.setAttribute(`data-state`,`closed`),n.setAttribute(`data-state`,`inactive`),n.setAttribute(`aria-hidden`,`true`),n.tabIndex=-1,g(n,!0),n.hidden=!0,n.style.pointerEvents=`none`}),K.forEach(({item:t,trigger:n},i)=>{F.push((0,e.on)(n,`pointerenter`,e=>{if(!D){if(x!==i&&je(e))return;Z(n)}})),F.push((0,e.on)(t,`pointerenter`,e=>{if(!D){if(x!==i&&je(e))return;Q(i)}})),F.push((0,e.on)(t,`pointerleave`,t=>{if(S===i&&x===null&&(J(),S=null),x===i&&!D){let n=t.relatedTarget;if(Ie(n))return;(!n||!(0,e.containsWithPortals)(r,n))&&(Q(null),Z(null))}})),F.push((0,e.on)(n,`focus`,()=>{if(O===n){O=null;return}c&&Q(i,!0),Z(n)})),F.push((0,e.on)(n,`pointerdown`,()=>{O=n})),F.push((0,e.on)(n,`click`,()=>{O=null,J(),x===i&&D?(D=!1,Q(null,!0),Z(null)):x===i&&!D?(D=!0,Z(n)):(D=!0,Q(i,!0),Z(n))}))}),F.push((0,e.on)(_,`pointerover`,e=>{if(x===null||D)return;let t=e;t.pointerType!==`touch`&&ge(t.target)&&$()}),(0,e.on)(_,`click`,e=>{x!==null&&ge(e.target)&&$()})),F.push((0,e.on)(r,`pointerenter`,()=>{k=!0}),(0,e.on)(r,`pointerleave`,e=>{let t=e.relatedTarget;if(!Ie(t)&&(k=!1,!D)){if(je(e)){J();return}Q(null),Z(null)}}),(0,e.on)(r,`pointerdown`,()=>{X(),J()})),v&&F.push((0,e.on)(v,`pointerenter`,()=>{X(),J()}),(0,e.on)(v,`transitionend`,e=>{if(e.target!==v)return;let t=x?K.get(x):null;if(t){let e=ce(t.item,t.content);Le(t.content,t.trigger,e)}})),K.forEach(({content:t})=>{F.push((0,e.on)(t,`pointerenter`,()=>{X(),J()}),(0,e.on)(t,`pointerleave`,t=>{if(D)return;let n=t.relatedTarget;Ie(n)||(0,e.containsWithPortals)(r,n)||(Q(null),Z(null))}))}),F.push((0,e.on)(_,`keydown`,e=>{let t=he(e.target);if(!t)return;let n=q.indexOf(t);if(n===-1)return;let r=n;switch(e.key){case`ArrowLeft`:r=n-1,r<0&&(r=q.length-1);break;case`ArrowRight`:r=n+1,r>=q.length&&(r=0);break;case`ArrowDown`:if(t.kind===`submenu`){e.preventDefault();let n=t.value;D=!0,Q(n,!0),requestAnimationFrame(()=>{let e=K.get(n);if(!e)return;let t=_e(e.content)[0];t?t.focus():e.content.focus()})}return;case`Home`:r=0;break;case`End`:r=q.length-1;break;case`Escape`:D=!1,Q(null,!0),Z(null);return;default:return}e.preventDefault();let i=q[r];if(i){if(i.kind===`submenu`){let e=i.trigger;ue.forEach(t=>t.tabIndex=t===e?0:-1),e.focus(),Z(e);return}x===null?Z(null):$(),i.element.focus()}})),F.push((0,e.on)(_,`focusin`,e=>{if(x===null)return;let t=he(e.target);!t||t.kind===`submenu`||$()})),K.forEach(({content:t,trigger:n})=>{F.push((0,e.on)(t,`keydown`,e=>{let r=e.target,i=_e(t),a=i.indexOf(r);if(a!==-1)switch(e.key){case`ArrowDown`:case`ArrowRight`:{e.preventDefault();let t=a+1;t<i.length&&i[t]?.focus();break}case`ArrowUp`:case`ArrowLeft`:e.preventDefault(),a===0?n.focus():i[a-1]?.focus();break;case`Escape`:e.preventDefault(),D=!1,Q(null,!0),Z(null),n.focus();break}}))});let ze=()=>(0,e.containsWithPortals)(r,document.activeElement)||k||D,$=()=>{X(),D=!1,Q(null,!0),Z(null),Fe()};return F.push((0,e.on)(document,`focusin`,t=>{x!==null&&((0,e.containsWithPortals)(r,t.target)||$())})),F.push((0,e.createDismissLayer)({root:r,isOpen:()=>x!==null&&ze(),onDismiss:$,closeOnClickOutside:!0,closeOnEscape:!0,preventEscapeDefault:!1,isInside:t=>!!t&&(0,e.containsWithPortals)(r,t)})),F.push((0,e.on)(window,`resize`,()=>{x&&requestAnimationFrame(()=>oe()),E&&requestAnimationFrame(()=>Z(E))}),(0,e.on)(_,`scroll`,()=>{E&&requestAnimationFrame(()=>Z(E))})),F.push((0,e.on)(r,`navigation-menu:set`,e=>{let t=e.detail;if(t?.value!==void 0){if(t.value===null)$();else if(K.has(t.value)){D=!0,Q(t.value,!0);let e=K.get(t.value);e&&Z(e.trigger)}}})),{get value(){return x},open:e=>Q(e,!0),close:()=>Q(null,!0),destroy:()=>{A=!0,J(),F.forEach(e=>e()),F.length=0}}}const o=new WeakSet;function s(t=document){let n=[];for(let r of(0,e.getRoots)(t,`navigation-menu`))o.has(r)||(o.add(r),n.push(a(r)));return n}exports.create=s,exports.createNavigationMenu=a;
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require(`@data-slot/core`);const t=[`start`,`center`,`end`],n=[`top`,`right`,`bottom`,`left`],r=(e,t)=>t===`start`?{x:e.left,y:e.top}:t===`end`?{x:e.right,y:e.bottom}:{x:e.left+e.width/2,y:e.top+e.height/2},i=(e,t,n)=>{let i=r(n,t);return e===`top`?{x:i.x,y:n.top}:e===`bottom`?{x:i.x,y:n.bottom}:e===`left`?{x:n.left,y:i.y}:{x:n.right,y:i.y}};function a(r,a={}){let o=a.delayOpen??(0,e.getDataNumber)(r,`delayOpen`)??0,s=a.delayClose??(0,e.getDataNumber)(r,`delayClose`)??0,c=a.openOnFocus??(0,e.getDataBool)(r,`openOnFocus`)??!1,l=a.side??(0,e.getDataEnum)(r,`side`,n)??`bottom`,u=a.align??(0,e.getDataEnum)(r,`align`,t)??`start`,d=a.sideOffset??(0,e.getDataNumber)(r,`sideOffset`)??0,ee=a.alignOffset??(0,e.getDataNumber)(r,`alignOffset`)??0,f=a.safeTriangle??(0,e.getDataBool)(r,`safeTriangle`)??!1,p=a.debugSafeTriangle??(0,e.getDataBool)(r,`debugSafeTriangle`)??!1,te=f||p,m=a.onValueChange,h=e=>e.replace(/[^a-z0-9\-_:.]/gi,`-`),g=(e,t)=>{`inert`in e&&(e.inert=t)},_=(0,e.getPart)(r,`navigation-menu-list`),v=(0,e.getParts)(r,`navigation-menu-item`),y=(0,e.getPart)(r,`navigation-menu-viewport`),b=(0,e.getPart)(r,`navigation-menu-indicator`),x=(e,t)=>{let n=e.parentElement;for(;n&&n!==r;){if(n.getAttribute(`data-slot`)===t)return n;n=n.parentElement}return null};if(!_||v.length===0)throw Error(`NavigationMenu requires navigation-menu-list and at least one navigation-menu-item`);let S=null,C=null,w=-1,T=null,ne=null,E=null,D=!1,O=null,k=!1,A=!1,j=null,M=null,N=0,P=0,F=[],I=new Map,L=new Map,R=y?x(y,`navigation-menu-viewport-positioner`):null,z=y?x(y,`navigation-menu-positioner`):null,B=R??z,re=B?x(B,`navigation-menu-portal`):null,V=y?(0,e.createPortalLifecycle)({content:y,root:r,enabled:!0,wrapperSlot:B?void 0:`navigation-menu-viewport-positioner`,container:B??void 0,mountTarget:B?re??B:void 0}):null,ie=()=>{let e=V?.container;e instanceof HTMLElement&&(e.style.position=``,e.style.top=``,e.style.left=``,e.style.width=``,e.style.height=``,e.style.margin=``,e.style.willChange=``,e.style.pointerEvents=``,e.style.transform=``,e.style.removeProperty(`--transform-origin`),e.removeAttribute(`data-instant`))},H=()=>{y?.removeAttribute(`data-instant`);let e=V?.container;e instanceof HTMLElement&&e.removeAttribute(`data-instant`)},U=y?(0,e.createPresenceLifecycle)({element:y,onExitComplete:()=>{A||(H(),ie(),N=0,P=0,V?.restore(),y.hidden=!0,y.style.pointerEvents=`none`)}}):null,ae=e=>{if(!y)return;let t=L.get(e)??{originalParent:null,originalNextSibling:null,mountedInViewport:!1};t.mountedInViewport||(t.originalParent=e.parentNode,t.originalNextSibling=e.nextSibling,t.mountedInViewport=!0,L.set(e,t)),e.parentNode!==y&&y.appendChild(e)},oe=e=>{let t=L.get(e);if(!t||!t.mountedInViewport)return;let n=t.originalParent,r=t.originalNextSibling;n&&n.isConnected?r&&r.parentNode===n?n.insertBefore(e,r):n.appendChild(e):e.remove(),t.mountedInViewport=!1,t.originalParent=null,t.originalNextSibling=null},se=()=>{if(!y||!V)return;let e=V.container,t=r.ownerDocument.defaultView??window,n=r.getBoundingClientRect(),i=n.top+t.scrollY+P,a=n.left+t.scrollX+N;e.style.position=`absolute`,e.style.top=`${i}px`,e.style.left=`${a}px`,e.style.width=`${n.width}px`,e.style.height=`${n.height}px`,e.style.margin=`0`,e.style.willChange=`top,left`,e.style.pointerEvents=`none`},W=null,ce=e=>{W?.disconnect(),W=null,!(!y||!e)&&(W=new ResizeObserver(()=>{let t=le(e.item,e.content);Ge(e.content,e.trigger,t)}),W.observe(e.content))};F.push(()=>W?.disconnect()),F.push(()=>{H(),I.forEach(e=>e.cleanup()),I.clear(),L.forEach((e,t)=>{oe(t),t.hidden=!0,t.style.pointerEvents=`none`}),L.clear(),ie(),N=0,P=0,U?.cleanup(),V?.cleanup()});let G=new Map,le=(r,i)=>({side:a.side??(0,e.getDataEnum)(i,`side`,n)??(0,e.getDataEnum)(r,`side`,n)??l,align:a.align??(0,e.getDataEnum)(i,`align`,t)??(0,e.getDataEnum)(r,`align`,t)??u,sideOffset:a.sideOffset??(0,e.getDataNumber)(i,`sideOffset`)??(0,e.getDataNumber)(r,`sideOffset`)??d,alignOffset:a.alignOffset??(0,e.getDataNumber)(i,`alignOffset`)??(0,e.getDataNumber)(r,`alignOffset`)??ee}),ue=0;v.forEach(t=>{let n=t.dataset.value;if(!n)return;let r=(0,e.getPart)(t,`navigation-menu-trigger`),i=(0,e.getPart)(t,`navigation-menu-content`);if(r&&i){G.set(n,{value:n,item:t,trigger:r,content:i,index:ue++}),I.set(i,(0,e.createPresenceLifecycle)({element:i,onExitComplete:()=>{A||(oe(i),i.hidden=!0,i.style.pointerEvents=`none`)}}));let a=h(n),o=(0,e.ensureId)(r,`nav-menu-trigger-${a}`),s=(0,e.ensureId)(i,`nav-menu-content-${a}`);r.setAttribute(`aria-haspopup`,`true`),r.setAttribute(`aria-controls`,s),i.setAttribute(`aria-labelledby`,o)}}),Array.from(G.values()).map(e=>e.trigger);let de=`a[href], button:not([disabled]), [role="link"], [role="button"], [tabindex]:not([tabindex="-1"])`,fe=e=>{let t=e?.closest(`[data-slot="navigation-menu-item"]`);if(!t)return null;let n=t.dataset.value;if(!n)return null;let r=G.get(n);return!r||r.item!==t?null:r},pe=e=>{if(e.matches(de))return e;let t=e.querySelectorAll(de);for(let n of t)if(e.contains(n)&&!n.closest(`[data-slot="navigation-menu-content"]`)&&!(n.hidden||n.closest(`[hidden]`)))return n;return null},K=[],me=new Map;v.forEach(e=>{let t=fe(e);if(t){let e={kind:`submenu`,element:t.trigger,value:t.value,trigger:t.trigger};K.push(e),me.set(e.element,e);return}let n=pe(e);if(!n)return;let r={kind:`plain`,element:n};K.push(r),me.set(r.element,r)});let he=e=>{let t=e instanceof HTMLElement?e:null;if(!t)return null;let n=t;for(;n&&n!==_;){let e=me.get(n);if(e)return e;n=n.parentElement}return null},ge=e=>{let t=r.ownerDocument;return e.kind===`submenu`?(e.trigger.focus(),t.activeElement===e.trigger?(Je(e.trigger),!0):!1):(S===null?Z(null):$(),e.element.focus(),t.activeElement===e.element)},_e=(e,t)=>{for(let n=e+t;n>=0&&n<K.length;n+=t){let e=K[n];if(e&&ge(e))return!0}return!1},ve=(e,t)=>{let n=K.indexOf(e);return n===-1?!1:_e(n,t)},ye=(e,t)=>{let n=K.findIndex(t=>t.kind===`submenu`&&t.trigger===e);return n===-1?!1:_e(n,t)},be=e=>{if(!(e instanceof Node)||!_.contains(e))return!1;let t=e instanceof HTMLElement?e:e.parentElement;return!t||t.closest(`[data-slot="navigation-menu-indicator"]`)||fe(t)?!1:t.closest(`[data-slot="navigation-menu-item"]`)?!0:!!t.closest(`a[href], button, [role='link'], [role='button']`)},xe=`a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])`,Se=e=>Array.from(e.querySelectorAll(xe)).filter(e=>!e.hidden&&!e.closest(`[hidden]`)),Ce=e=>!e.isConnected||e.hidden||e.closest(`[hidden]`)||`disabled`in e&&e.disabled||e.getAttribute(`aria-hidden`)===`true`||e.getAttribute(`tabindex`)===`-1`?!1:e.matches(xe)?!0:e.tabIndex>=0,we=e=>{if(r.contains(e)||y?.contains(e))return!0;let t=V?.container;if(t instanceof HTMLElement&&t.contains(e))return!0;for(let{content:t}of G.values())if(t.contains(e))return!0;return!1},Te=()=>{let e=r.ownerDocument,t=Array.from(e.querySelectorAll(`*`));for(let n of t)if(Ce(n)&&!we(n)&&(r.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)!==0&&(n.focus(),e.activeElement===n))return!0;return!1},Ee=e=>{requestAnimationFrame(()=>{if(S!==e)return;let t=G.get(e);if(!t)return;let n=Se(t.content)[0];n?n.focus():t.content.focus()})},q=()=>{T&&=(clearTimeout(T),null),ne&&=(clearTimeout(ne),null)},De=()=>{M!==null&&(cancelAnimationFrame(M),M=null)},J=null,Oe=()=>{if(!y)return null;let e=V?.container;return e instanceof HTMLElement?e:y.parentElement instanceof HTMLElement?y.parentElement:y},ke=()=>{let t=Oe();return J||(J=document.createElement(`div`),J.setAttribute(`data-slot`,`navigation-menu-bridge`),J.style.cssText=`position: absolute; pointer-events: auto; z-index: 0; display: none;`,F.push((0,e.on)(J,`pointerenter`,()=>{q()}),(0,e.on)(J,`pointerleave`,t=>{if(D||S===null)return;let n=t.relatedTarget;X(n)||n&&(0,e.containsWithPortals)(r,n)||(Q(null),Z(null))}))),t&&J.parentElement!==t&&t.insertBefore(J,t.firstChild),J},Ae=()=>{J&&(J.style.height=`0`,J.style.width=`0`,J.style.top=`0px`,J.style.left=`0px`,J.style.right=`0px`,J.style.bottom=`auto`,J.style.transform=`none`,J.style.clipPath=`none`,J.style.display=`none`)},je=()=>{if(!p)return null;let e=r.ownerDocument.body;return e?(j||(j=r.ownerDocument.createElement(`div`),j.setAttribute(`data-slot`,`navigation-menu-safe-triangle`),j.style.cssText=[`position: fixed`,`pointer-events: none`,`display: none`,`z-index: 2147483647`,`background: rgba(255, 0, 0, 0.18)`,`border: 1px solid rgba(255, 0, 0, 0.45)`].join(`; `)),j.parentElement!==e&&e.appendChild(j),j):null},Me=()=>{j&&(j.style.width=`0`,j.style.height=`0`,j.style.clipPath=`none`,j.style.display=`none`)},Y=()=>{p||Me()},Ne=e=>{let t=je();if(!t)return;let n=e.apex.x,r=e.apex.y,i=e.edgeA.x,a=e.edgeA.y,o=e.edgeB.x,s=e.edgeB.y,c=Math.min(n,i,o),l=Math.min(r,a,s),u=Math.max(n,i,o),d=Math.max(r,a,s),ee=Math.max(1,u-c),f=Math.max(1,d-l),p=(e,t)=>`${(e-c)/ee*100}% ${(t-l)/f*100}%`;t.style.display=`block`,t.style.left=`${c}px`,t.style.top=`${l}px`,t.style.width=`${ee}px`,t.style.height=`${f}px`,t.style.clipPath=`polygon(${p(n,r)}, ${p(i,a)}, ${p(o,s)})`},Pe=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),Fe=(e,t,n,r)=>{let i=Pe(e,t,n),a=Pe(e,n,r),o=Pe(e,r,t);return!((i<0||a<0||o<0)&&(i>0||a>0||o>0))},Ie=(e,t,n)=>{let r=.5;if(n.top>=t.bottom-r)return[{x:n.left,y:n.top},{x:n.right,y:n.top}];if(n.bottom<=t.top+r)return[{x:n.left,y:n.bottom},{x:n.right,y:n.bottom}];if(n.left>=t.right-r)return[{x:n.left,y:n.top},{x:n.left,y:n.bottom}];if(n.right<=t.left+r)return[{x:n.right,y:n.top},{x:n.right,y:n.bottom}];let i=[[{x:n.left,y:n.top},{x:n.right,y:n.top}],[{x:n.right,y:n.top},{x:n.right,y:n.bottom}],[{x:n.left,y:n.bottom},{x:n.right,y:n.bottom}],[{x:n.left,y:n.top},{x:n.left,y:n.bottom}]],a=([t,n])=>t.y===n.y?Math.abs(e.y-t.y):Math.abs(e.x-t.x),o=i[0],s=a(o);for(let e=1;e<i.length;e++){let t=i[e],n=a(t);n<s&&(o=t,s=n)}return o},Le=()=>S?G.get(S)??null:null,Re=(e,t,n)=>{if(n.width<=0||n.height<=0)return null;let r={x:e.left+e.width/2,y:e.top+e.height*.62},[i,a]=Ie(r,t,n);if(i.x===a.x){let e=Math.min(i.y,a.y),t=Math.max(i.y,a.y),n=t-e,r=n<=28?0:Math.min(10,(n-28)/2);i={x:i.x,y:e+r},a={x:a.x,y:t-r}}else{let e=Math.min(i.x,a.x),t=Math.max(i.x,a.x),n=t-e,r=n<=28?0:Math.min(10,(n-28)/2);i={x:e+r,y:i.y},a={x:t-r,y:a.y}}return{apex:r,edgeA:i,edgeB:a}},ze=()=>{if(!te||!y||S===null)return null;let e=Le();if(!e)return null;let t=r.getBoundingClientRect(),n=e.trigger.getBoundingClientRect(),i=y.getBoundingClientRect(),a=e.content.getBoundingClientRect();return Re(n,t,i.width>0&&i.height>0?i:a)},Be=e=>{let t=ze();return t?Fe({x:e.clientX,y:e.clientY},t.apex,t.edgeA,t.edgeB):!1},Ve=(e,t)=>({x:e.x-t.left,y:e.y-t.top}),He=e=>{if(e.length<=1)return e.slice();let t=e=>`${e.x.toFixed(3)}:${e.y.toFixed(3)}`,n=new Map;for(let r of e)n.set(t(r),r);let r=Array.from(n.values()).sort((e,t)=>e.x===t.x?e.y-t.y:e.x-t.x);if(r.length<=2)return r;let i=(e,t,n)=>(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),a=[];for(let e of r){for(;a.length>=2&&i(a[a.length-2],a[a.length-1],e)<=0;)a.pop();a.push(e)}let o=[];for(let e=r.length-1;e>=0;e--){let t=r[e];for(;o.length>=2&&i(o[o.length-2],o[o.length-1],t)<=0;)o.pop();o.push(t)}return a.pop(),o.pop(),a.concat(o)},Ue=e=>{if(e.length<3){Ae();return}let t=ke(),n=t.parentElement,r=He(n&&n===V?.container?e.map(e=>({x:e.x-N,y:e.y-P})):e);if(r.length<3){Ae();return}let i=Math.min(...r.map(e=>e.x)),a=Math.min(...r.map(e=>e.y)),o=Math.max(...r.map(e=>e.x)),s=Math.max(...r.map(e=>e.y)),c=Math.max(1,o-i),l=Math.max(1,s-a),u=e=>`${(e.x-i)/c*100}% ${(e.y-a)/l*100}%`;t.style.display=`block`,t.style.transform=`none`,t.style.bottom=`auto`,t.style.right=`auto`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.width=`${c}px`,t.style.height=`${l}px`,t.style.clipPath=`polygon(${r.map(u).join(`, `)})`},We=()=>{if(!p)return;let e=ze();if(!e){Me();return}Ne(e)},X=e=>{if(!e)return!1;if(Le()?.content.contains(e)||y?.contains(e)||J?.contains(e))return!0;let t=V?.container;return!!(t instanceof HTMLElement&&t.contains(e))};F.push(Y),F.push(De),F.push(Ae),F.push(()=>{Me(),j?.parentElement&&j.parentElement.removeChild(j),j=null});let Ge=(t,a,o)=>{y&&requestAnimationFrame(()=>{let s=t.firstElementChild,c=t.lastElementChild,l=s?getComputedStyle(s):null,u=c?getComputedStyle(c):null,d=l&&parseFloat(l.marginTop)||0,ee=u&&parseFloat(u.marginBottom)||0,f=(...e)=>{let t=0;for(let n of e)Number.isFinite(n)&&(t=Math.max(t,n));return t},p=t.getBoundingClientRect(),m=f(p.width,t.scrollWidth,t.offsetWidth,t.clientWidth),h=f(p.height,t.scrollHeight,t.offsetHeight,t.clientHeight)+d+ee,g={top:p.top,left:p.left,width:m,height:h,right:p.left+m,bottom:p.top+h},_=getComputedStyle(y),v=parseFloat(_.marginTop)||0;y.style.setProperty(`--viewport-width`,`${m}px`),y.style.setProperty(`--viewport-height`,`${h}px`);let b=r.getBoundingClientRect(),x=a.getBoundingClientRect(),S=(0,e.computeFloatingPosition)({anchorRect:x,contentRect:g,side:o.side,align:o.align,sideOffset:o.sideOffset,alignOffset:o.alignOffset,avoidCollisions:!1,collisionPadding:0,allowedSides:n}),C=S.x-b.left,w=S.y-b.top;N=C,P=w;let T=i(S.side,S.align,x),ne=T.x-(b.left+C),E=T.y-(b.top+w),D=T.x-b.left,O=T.y-b.top,k=`${ne}px ${E}px`,A=`${D}px ${O}px`;y.style.top=`0px`,y.style.left=`0px`,y.style.willChange=`transform,width,height`,y.style.setProperty(`--transform-origin`,k),t.style.top=`0px`,t.style.left=`0px`,t.style.setProperty(`--transform-origin`,k),y.setAttribute(`data-side`,S.side),y.setAttribute(`data-align`,S.align),t.setAttribute(`data-side`,S.side),t.setAttribute(`data-align`,S.align);let j=V?.container;j&&j!==y&&(j.setAttribute(`data-side`,S.side),j.setAttribute(`data-align`,S.align),j.style.setProperty(`--transform-origin`,A)),se();let M=y.getBoundingClientRect(),F=[],I=Math.max(0,M.top-b.bottom),L=Math.max(0,b.top-M.bottom),R=Math.max(0,M.left-b.right),z=Math.max(0,b.left-M.right),B=Math.max(0,d+v),re=Math.max(I,L,B),ie=Math.max(R,z),H=te?Re(x,b,M):null,U=(e,t,n,r)=>{n<=0||r<=0||F.push({x:e,y:t},{x:e+n,y:t},{x:e+n,y:t+r},{x:e,y:t+r})};if(re>=ie&&re>0){let e=Math.max(I,L,B),t=C,n=L>I&&L>=B?w+h:w-e,r=m;if(H){let e=Math.min(H.edgeA.x,H.edgeB.x)-b.left,n=Math.max(H.edgeA.x,H.edgeB.x)-b.left;t=e-8,r=n-e+16}U(t,n,r,e)}else if(ie>0){let e=Math.max(R,z),t=w,n=z>R?C+m:C-e,r=h;if(H){let e=Math.min(H.edgeA.y,H.edgeB.y)-b.top,n=Math.max(H.edgeA.y,H.edgeB.y)-b.top;t=e-8,r=n-e+16}U(n,t,e,r)}if(H){let e=Ve(H.apex,b),t=Ve(H.edgeA,b),n=Ve(H.edgeB,b);F.push(e,t,n)}Ue(F),We()})},Ke=e=>w===-1||e>w?`right`:`left`,Z=e=>{if(!b)return;if(E=e,!e){De(),b.removeAttribute(`data-instant`),b.setAttribute(`data-state`,`hidden`);return}b.getAttribute(`data-state`)!==`visible`&&(De(),b.setAttribute(`data-instant`,``),M=requestAnimationFrame(()=>{M=requestAnimationFrame(()=>{b.removeAttribute(`data-instant`),M=null})}));let t=_.getBoundingClientRect(),n=e.getBoundingClientRect();b.style.setProperty(`--indicator-left`,`${n.left-t.left}px`),b.style.setProperty(`--indicator-width`,`${n.width}px`),b.style.setProperty(`--indicator-top`,`${n.top-t.top}px`);let r=(y&&parseFloat(getComputedStyle(y).marginTop)||0)<1?1:0;b.style.setProperty(`--indicator-height`,`${n.height-r}px`),b.setAttribute(`data-state`,`visible`)},qe=()=>S?G.get(S)?.trigger??null:null,Je=(e=null)=>{let t=qe();if(t){Z(t);return}Z(e)},Q=(t,n=!1)=>{if(Y(),t===S){q();return}if(t!==null&&t===C){q();return}q(),C=t===null?null:t;let i=()=>{let n=S,i=t?G.get(t):null,a=n!==null&&t!==null&&n!==t,o=a&&i?Ke(i.index):null,s=document.activeElement;if(t===null&&s&&n){let t=G.get(n);t&&(0,e.containsWithPortals)(t.content,s)&&t.trigger.focus()}if(G.forEach(({trigger:r,content:i,item:a},s)=>{let c=s===t,l=s===n;if((0,e.setAria)(r,`expanded`,c),r.setAttribute(`data-state`,c?`open`:`closed`),a.setAttribute(`data-state`,c?`open`:`closed`),!c){let e=I.get(i);if(i.setAttribute(`data-state`,`inactive`),i.setAttribute(`aria-hidden`,`true`),g(i,!0),i.style.pointerEvents=`none`,l&&o){let e=o===`right`?`to-left`:`to-right`;i.setAttribute(`data-motion`,e)}else l&&i.removeAttribute(`data-motion`);l?e?.exit():e?.isExiting||(i.removeAttribute(`data-motion`),oe(i),i.hidden=!0)}}),i){if(V?.mount(),y&&(y.hidden=!1),n===null&&U?.enter(),ae(i.content),I.get(i.content)?.enter(),o){let e=o===`right`?`from-right`:`from-left`;i.content.setAttribute(`data-motion`,e)}else i.content.removeAttribute(`data-motion`);i.content.setAttribute(`data-state`,`active`),i.content.removeAttribute(`aria-hidden`),g(i.content,!1),i.content.hidden=!1,i.content.style.pointerEvents=`auto`,w=i.index;let e=le(i.item,i.content);Ge(i.content,i.trigger,e),ce(i),Z(i.trigger)}else Ae(),Y(),U?.exit(),ce(null);let c=t!==null;if(r.setAttribute(`data-state`,c?`open`:`closed`),o?r.setAttribute(`data-motion`,o===`right`?`from-right`:`from-left`):r.removeAttribute(`data-motion`),y){y.setAttribute(`data-state`,c?`open`:`closed`),y.style.pointerEvents=c?`auto`:`none`;let e=V?.container;c&&!a?(y.setAttribute(`data-instant`,``),e?.setAttribute(`data-instant`,``)):a?H():c||H(),o&&y.style.setProperty(`--motion-direction`,o===`right`?`1`:`-1`)}S=t,C=null,t===null&&Z(null),We(),(0,e.emit)(r,`navigation-menu:change`,{value:t}),m?.(t)};n?i():t!==null&&S===null?T=setTimeout(i,o):t!==null&&S!==null?i():ne=setTimeout(i,s)};r.setAttribute(`data-state`,`closed`),y&&(y.setAttribute(`data-state`,`closed`),y.hidden=!0,y.style.pointerEvents=`none`),b&&b.setAttribute(`data-state`,`hidden`),G.forEach(({trigger:t,content:n,item:r})=>{t.tagName===`BUTTON`&&!t.hasAttribute(`type`)&&(t.type=`button`),(0,e.setAria)(t,`expanded`,!1),t.setAttribute(`data-state`,`closed`),t.tabIndex=0,r.setAttribute(`data-state`,`closed`),n.setAttribute(`data-state`,`inactive`),n.setAttribute(`aria-hidden`,`true`),n.tabIndex=-1,g(n,!0),n.hidden=!0,n.style.pointerEvents=`none`}),G.forEach(({item:t,trigger:n},i)=>{F.push((0,e.on)(n,`pointerenter`,e=>{if(!D){if(S!==i&&Be(e))return;Z(n)}})),F.push((0,e.on)(t,`pointerenter`,e=>{if(!D){if(S!==i&&Be(e))return;Q(i)}})),F.push((0,e.on)(t,`pointerleave`,t=>{if(C===i&&S===null&&(q(),C=null),S===i&&!D){let n=t.relatedTarget;if(X(n))return;(!n||!(0,e.containsWithPortals)(r,n))&&(Q(null),Z(null))}})),F.push((0,e.on)(n,`focus`,()=>{if(O===n){O=null;return}c&&Q(i,!0),Je(n)})),F.push((0,e.on)(n,`pointerdown`,()=>{O=n})),F.push((0,e.on)(n,`click`,()=>{O=null,q(),S===i&&D?(D=!1,Q(null,!0),Z(null)):S===i&&!D?(D=!0,Z(n),Ee(i)):(D=!0,Q(i,!0),Z(n),Ee(i))}))}),F.push((0,e.on)(_,`pointerover`,e=>{if(S===null||D)return;let t=e;t.pointerType!==`touch`&&be(t.target)&&$()}),(0,e.on)(_,`click`,e=>{S!==null&&be(e.target)&&$()})),F.push((0,e.on)(r,`pointerenter`,()=>{k=!0}),(0,e.on)(r,`pointerleave`,e=>{let t=e.relatedTarget;if(!X(t)&&(k=!1,!D)){if(Be(e)){q();return}Q(null),Z(null)}}),(0,e.on)(r,`pointerdown`,()=>{Y(),q()})),y&&F.push((0,e.on)(y,`pointerenter`,()=>{Y(),q()}),(0,e.on)(y,`transitionend`,e=>{if(e.target!==y)return;let t=S?G.get(S):null;if(t){let e=le(t.item,t.content);Ge(t.content,t.trigger,e)}})),G.forEach(({content:t})=>{F.push((0,e.on)(t,`pointerenter`,()=>{Y(),q()}),(0,e.on)(t,`pointerleave`,t=>{if(D)return;let n=t.relatedTarget;X(n)||(0,e.containsWithPortals)(r,n)||(Q(null),Z(null))}))}),F.push((0,e.on)(_,`keydown`,e=>{let t=he(e.target);if(!t)return;let n=K.indexOf(t);if(n===-1)return;let r=n;switch(e.key){case`Tab`:if(e.shiftKey||S===null)return;(ve(t,1)||Te())&&e.preventDefault();return;case`ArrowLeft`:r=n-1,r<0&&(r=K.length-1);break;case`ArrowRight`:r=n+1,r>=K.length&&(r=0);break;case`ArrowDown`:if(t.kind===`submenu`){e.preventDefault();let n=t.value;D=!0,Q(n,!0),Ee(n)}return;case`Home`:r=0;break;case`End`:r=K.length-1;break;case`Escape`:D=!1,Q(null,!0),Z(null);return;default:return}e.preventDefault();let i=K[r];i&&ge(i)})),F.push((0,e.on)(_,`focusin`,e=>{if(S===null)return;let t=he(e.target);!t||t.kind===`submenu`||$()})),G.forEach(({content:t,trigger:n})=>{F.push((0,e.on)(t,`keydown`,e=>{let r=e.target,i=Se(t),a=i.indexOf(r);if(a!==-1)switch(e.key){case`Tab`:if(!e.shiftKey&&a===i.length-1){(ye(n,1)||Te())&&e.preventDefault();return}if(e.shiftKey&&a===0){e.preventDefault(),n.focus();return}return;case`ArrowDown`:case`ArrowRight`:{e.preventDefault();let t=a+1;t<i.length&&i[t]?.focus();break}case`ArrowUp`:case`ArrowLeft`:e.preventDefault(),a===0?n.focus():i[a-1]?.focus();break;case`Escape`:e.preventDefault(),D=!1,Q(null,!0),Z(null),n.focus();break}}))});let Ye=()=>(0,e.containsWithPortals)(r,document.activeElement)||k||D,$=()=>{Y(),D=!1,Q(null,!0),Z(null),We()};return F.push((0,e.on)(document,`focusin`,t=>{let n=t.target;if(!(0,e.containsWithPortals)(r,n)){if(S!==null){$();return}Z(null)}})),F.push((0,e.createDismissLayer)({root:r,isOpen:()=>S!==null&&Ye(),onDismiss:$,closeOnClickOutside:!0,closeOnEscape:!0,preventEscapeDefault:!1,isInside:t=>!!t&&(0,e.containsWithPortals)(r,t)})),F.push((0,e.on)(window,`resize`,()=>{S&&requestAnimationFrame(()=>se()),(S||E)&&requestAnimationFrame(()=>Je(E))}),(0,e.on)(_,`scroll`,()=>{(S||E)&&requestAnimationFrame(()=>Je(E))})),F.push((0,e.on)(r,`navigation-menu:set`,e=>{let t=e.detail;if(t?.value!==void 0){if(t.value===null)$();else if(G.has(t.value)){D=!0,Q(t.value,!0);let e=G.get(t.value);e&&Z(e.trigger)}}})),{get value(){return S},open:e=>Q(e,!0),close:()=>Q(null,!0),destroy:()=>{A=!0,q(),F.forEach(e=>e()),F.length=0}}}const o=new WeakSet;function s(t=document){let n=[];for(let r of(0,e.getRoots)(t,`navigation-menu`))o.has(r)||(o.add(r),n.push(a(r)));return n}exports.create=s,exports.createNavigationMenu=a;
|
package/dist/index.d.cts
CHANGED
|
@@ -8,7 +8,7 @@ interface NavigationMenuOptions {
|
|
|
8
8
|
delayOpen?: number;
|
|
9
9
|
/** Delay before closing on mouse leave (ms) */
|
|
10
10
|
delayClose?: number;
|
|
11
|
-
/** Whether focusing a trigger opens its content (default:
|
|
11
|
+
/** Whether focusing a trigger opens its content (default: false) */
|
|
12
12
|
openOnFocus?: boolean;
|
|
13
13
|
/** Preferred side of viewport relative to trigger */
|
|
14
14
|
side?: Side;
|
package/dist/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ interface NavigationMenuOptions {
|
|
|
8
8
|
delayOpen?: number;
|
|
9
9
|
/** Delay before closing on mouse leave (ms) */
|
|
10
10
|
delayClose?: number;
|
|
11
|
-
/** Whether focusing a trigger opens its content (default:
|
|
11
|
+
/** Whether focusing a trigger opens its content (default: false) */
|
|
12
12
|
openOnFocus?: boolean;
|
|
13
13
|
/** Preferred side of viewport relative to trigger */
|
|
14
14
|
side?: Side;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{computeFloatingPosition as e,containsWithPortals as t,createDismissLayer as n,createPortalLifecycle as r,createPresenceLifecycle as i,emit as a,ensureId as o,getDataBool as s,getDataEnum as c,getDataNumber as l,getPart as u,getParts as d,getRoots as f,on as p,setAria as m}from"@data-slot/core";const ee=[`start`,`center`,`end`],te=[`top`,`right`,`bottom`,`left`],h=(e,t)=>t===`start`?{x:e.left,y:e.top}:t===`end`?{x:e.right,y:e.bottom}:{x:e.left+e.width/2,y:e.top+e.height/2},ne=(e,t,n)=>{let r=h(n,t);return e===`top`?{x:r.x,y:n.top}:e===`bottom`?{x:r.x,y:n.bottom}:e===`left`?{x:n.left,y:r.y}:{x:n.right,y:r.y}};function re(f,h={}){let re=h.delayOpen??l(f,`delayOpen`)??0,g=h.delayClose??l(f,`delayClose`)??0,ie=h.openOnFocus??s(f,`openOnFocus`)??!0,_=h.side??c(f,`side`,te)??`bottom`,v=h.align??c(f,`align`,ee)??`start`,y=h.sideOffset??l(f,`sideOffset`)??0,b=h.alignOffset??l(f,`alignOffset`)??0,ae=h.safeTriangle??s(f,`safeTriangle`)??!1,x=h.debugSafeTriangle??s(f,`debugSafeTriangle`)??!1,oe=ae||x,se=h.onValueChange,ce=e=>e.replace(/[^a-z0-9\-_:.]/gi,`-`),S=(e,t)=>{`inert`in e&&(e.inert=t)},C=u(f,`navigation-menu-list`),w=d(f,`navigation-menu-item`),T=u(f,`navigation-menu-viewport`),E=u(f,`navigation-menu-indicator`),D=(e,t)=>{let n=e.parentElement;for(;n&&n!==f;){if(n.getAttribute(`data-slot`)===t)return n;n=n.parentElement}return null};if(!C||w.length===0)throw Error(`NavigationMenu requires navigation-menu-list and at least one navigation-menu-item`);let O=null,k=null,A=-1,j=null,M=null,N=null,P=!1,F=null,le=!1,ue=!1,I=null,L=null,R=0,z=0,B=[],V=new Map,H=new Map,de=T?D(T,`navigation-menu-viewport-positioner`):null,fe=T?D(T,`navigation-menu-positioner`):null,U=de??fe,pe=U?D(U,`navigation-menu-portal`):null,W=T?r({content:T,root:f,enabled:!0,wrapperSlot:U?void 0:`navigation-menu-viewport-positioner`,container:U??void 0,mountTarget:U?pe??U:void 0}):null,me=()=>{let e=W?.container;e instanceof HTMLElement&&(e.style.position=``,e.style.top=``,e.style.left=``,e.style.width=``,e.style.height=``,e.style.margin=``,e.style.willChange=``,e.style.pointerEvents=``,e.style.transform=``,e.style.removeProperty(`--transform-origin`),e.removeAttribute(`data-instant`))},he=()=>{T?.removeAttribute(`data-instant`);let e=W?.container;e instanceof HTMLElement&&e.removeAttribute(`data-instant`)},ge=T?i({element:T,onExitComplete:()=>{ue||(he(),me(),R=0,z=0,W?.restore(),T.hidden=!0,T.style.pointerEvents=`none`)}}):null,_e=e=>{if(!T)return;let t=H.get(e)??{originalParent:null,originalNextSibling:null,mountedInViewport:!1};t.mountedInViewport||(t.originalParent=e.parentNode,t.originalNextSibling=e.nextSibling,t.mountedInViewport=!0,H.set(e,t)),e.parentNode!==T&&T.appendChild(e)},ve=e=>{let t=H.get(e);if(!t||!t.mountedInViewport)return;let n=t.originalParent,r=t.originalNextSibling;n&&n.isConnected?r&&r.parentNode===n?n.insertBefore(e,r):n.appendChild(e):e.remove(),t.mountedInViewport=!1,t.originalParent=null,t.originalNextSibling=null},ye=()=>{if(!T||!W)return;let e=W.container,t=f.ownerDocument.defaultView??window,n=f.getBoundingClientRect(),r=n.top+t.scrollY+z,i=n.left+t.scrollX+R;e.style.position=`absolute`,e.style.top=`${r}px`,e.style.left=`${i}px`,e.style.width=`${n.width}px`,e.style.height=`${n.height}px`,e.style.margin=`0`,e.style.willChange=`top,left`,e.style.pointerEvents=`none`},G=null,be=e=>{G?.disconnect(),G=null,!(!T||!e)&&(G=new ResizeObserver(()=>{let t=xe(e.item,e.content);Xe(e.content,e.trigger,t)}),G.observe(e.content))};B.push(()=>G?.disconnect()),B.push(()=>{he(),V.forEach(e=>e.cleanup()),V.clear(),H.forEach((e,t)=>{ve(t),t.hidden=!0,t.style.pointerEvents=`none`}),H.clear(),me(),R=0,z=0,ge?.cleanup(),W?.cleanup()});let K=new Map,xe=(e,t)=>({side:h.side??c(t,`side`,te)??c(e,`side`,te)??_,align:h.align??c(t,`align`,ee)??c(e,`align`,ee)??v,sideOffset:h.sideOffset??l(t,`sideOffset`)??l(e,`sideOffset`)??y,alignOffset:h.alignOffset??l(t,`alignOffset`)??l(e,`alignOffset`)??b}),Se=0;w.forEach(e=>{let t=e.dataset.value;if(!t)return;let n=u(e,`navigation-menu-trigger`),r=u(e,`navigation-menu-content`);if(n&&r){K.set(t,{value:t,item:e,trigger:n,content:r,index:Se++}),V.set(r,i({element:r,onExitComplete:()=>{ue||(ve(r),r.hidden=!0,r.style.pointerEvents=`none`)}}));let a=ce(t),s=o(n,`nav-menu-trigger-${a}`),c=o(r,`nav-menu-content-${a}`);n.setAttribute(`aria-haspopup`,`true`),n.setAttribute(`aria-controls`,c),r.setAttribute(`aria-labelledby`,s)}});let Ce=Array.from(K.values()).map(e=>e.trigger),we=`a[href], button:not([disabled]), [role="link"], [role="button"], [tabindex]:not([tabindex="-1"])`,Te=e=>{let t=e?.closest(`[data-slot="navigation-menu-item"]`);if(!t)return null;let n=t.dataset.value;if(!n)return null;let r=K.get(n);return!r||r.item!==t?null:r},Ee=e=>{if(e.matches(we))return e;let t=e.querySelectorAll(we);for(let n of t)if(e.contains(n)&&!n.closest(`[data-slot="navigation-menu-content"]`)&&!(n.hidden||n.closest(`[hidden]`)))return n;return null},q=[],De=new Map;w.forEach(e=>{let t=Te(e);if(t){let e={kind:`submenu`,element:t.trigger,value:t.value,trigger:t.trigger};q.push(e),De.set(e.element,e);return}let n=Ee(e);if(!n)return;let r={kind:`plain`,element:n};q.push(r),De.set(r.element,r)});let Oe=e=>{let t=e instanceof HTMLElement?e:null;if(!t)return null;let n=t;for(;n&&n!==C;){let e=De.get(n);if(e)return e;n=n.parentElement}return null},ke=e=>{if(!(e instanceof Node)||!C.contains(e))return!1;let t=e instanceof HTMLElement?e:e.parentElement;return!t||t.closest(`[data-slot="navigation-menu-indicator"]`)||Te(t)?!1:t.closest(`[data-slot="navigation-menu-item"]`)?!0:!!t.closest(`a[href], button, [role='link'], [role='button']`)},Ae=e=>Array.from(e.querySelectorAll(`a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])`)).filter(e=>!e.hidden&&!e.closest(`[hidden]`)),J=()=>{j&&=(clearTimeout(j),null),M&&=(clearTimeout(M),null)},je=()=>{L!==null&&(cancelAnimationFrame(L),L=null)},Y=null,Me=()=>{if(!T)return null;let e=W?.container;return e instanceof HTMLElement?e:T.parentElement instanceof HTMLElement?T.parentElement:T},Ne=()=>{let e=Me();return Y||(Y=document.createElement(`div`),Y.setAttribute(`data-slot`,`navigation-menu-bridge`),Y.style.cssText=`position: absolute; pointer-events: auto; z-index: 0; display: none;`,B.push(p(Y,`pointerenter`,()=>{J()}),p(Y,`pointerleave`,e=>{if(P||O===null)return;let n=e.relatedTarget;Ye(n)||n&&t(f,n)||(Q(null),Z(null))}))),e&&Y.parentElement!==e&&e.insertBefore(Y,e.firstChild),Y},Pe=()=>{Y&&(Y.style.height=`0`,Y.style.width=`0`,Y.style.top=`0px`,Y.style.left=`0px`,Y.style.right=`0px`,Y.style.bottom=`auto`,Y.style.transform=`none`,Y.style.clipPath=`none`,Y.style.display=`none`)},Fe=()=>{if(!x)return null;let e=f.ownerDocument.body;return e?(I||(I=f.ownerDocument.createElement(`div`),I.setAttribute(`data-slot`,`navigation-menu-safe-triangle`),I.style.cssText=[`position: fixed`,`pointer-events: none`,`display: none`,`z-index: 2147483647`,`background: rgba(255, 0, 0, 0.18)`,`border: 1px solid rgba(255, 0, 0, 0.45)`].join(`; `)),I.parentElement!==e&&e.appendChild(I),I):null},Ie=()=>{I&&(I.style.width=`0`,I.style.height=`0`,I.style.clipPath=`none`,I.style.display=`none`)},X=()=>{x||Ie()},Le=e=>{let t=Fe();if(!t)return;let n=e.apex.x,r=e.apex.y,i=e.edgeA.x,a=e.edgeA.y,o=e.edgeB.x,s=e.edgeB.y,c=Math.min(n,i,o),l=Math.min(r,a,s),u=Math.max(n,i,o),d=Math.max(r,a,s),f=Math.max(1,u-c),p=Math.max(1,d-l),m=(e,t)=>`${(e-c)/f*100}% ${(t-l)/p*100}%`;t.style.display=`block`,t.style.left=`${c}px`,t.style.top=`${l}px`,t.style.width=`${f}px`,t.style.height=`${p}px`,t.style.clipPath=`polygon(${m(n,r)}, ${m(i,a)}, ${m(o,s)})`},Re=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),ze=(e,t,n,r)=>{let i=Re(e,t,n),a=Re(e,n,r),o=Re(e,r,t);return!((i<0||a<0||o<0)&&(i>0||a>0||o>0))},Be=(e,t,n)=>{let r=.5;if(n.top>=t.bottom-r)return[{x:n.left,y:n.top},{x:n.right,y:n.top}];if(n.bottom<=t.top+r)return[{x:n.left,y:n.bottom},{x:n.right,y:n.bottom}];if(n.left>=t.right-r)return[{x:n.left,y:n.top},{x:n.left,y:n.bottom}];if(n.right<=t.left+r)return[{x:n.right,y:n.top},{x:n.right,y:n.bottom}];let i=[[{x:n.left,y:n.top},{x:n.right,y:n.top}],[{x:n.right,y:n.top},{x:n.right,y:n.bottom}],[{x:n.left,y:n.bottom},{x:n.right,y:n.bottom}],[{x:n.left,y:n.top},{x:n.left,y:n.bottom}]],a=([t,n])=>t.y===n.y?Math.abs(e.y-t.y):Math.abs(e.x-t.x),o=i[0],s=a(o);for(let e=1;e<i.length;e++){let t=i[e],n=a(t);n<s&&(o=t,s=n)}return o},Ve=()=>O?K.get(O)??null:null,He=(e,t,n)=>{if(n.width<=0||n.height<=0)return null;let r={x:e.left+e.width/2,y:e.top+e.height*.62},[i,a]=Be(r,t,n);if(i.x===a.x){let e=Math.min(i.y,a.y),t=Math.max(i.y,a.y),n=t-e,r=n<=28?0:Math.min(10,(n-28)/2);i={x:i.x,y:e+r},a={x:a.x,y:t-r}}else{let e=Math.min(i.x,a.x),t=Math.max(i.x,a.x),n=t-e,r=n<=28?0:Math.min(10,(n-28)/2);i={x:e+r,y:i.y},a={x:t-r,y:a.y}}return{apex:r,edgeA:i,edgeB:a}},Ue=()=>{if(!oe||!T||O===null)return null;let e=Ve();if(!e)return null;let t=f.getBoundingClientRect(),n=e.trigger.getBoundingClientRect(),r=T.getBoundingClientRect(),i=e.content.getBoundingClientRect();return He(n,t,r.width>0&&r.height>0?r:i)},We=e=>{let t=Ue();return t?ze({x:e.clientX,y:e.clientY},t.apex,t.edgeA,t.edgeB):!1},Ge=(e,t)=>({x:e.x-t.left,y:e.y-t.top}),Ke=e=>{if(e.length<=1)return e.slice();let t=e=>`${e.x.toFixed(3)}:${e.y.toFixed(3)}`,n=new Map;for(let r of e)n.set(t(r),r);let r=Array.from(n.values()).sort((e,t)=>e.x===t.x?e.y-t.y:e.x-t.x);if(r.length<=2)return r;let i=(e,t,n)=>(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),a=[];for(let e of r){for(;a.length>=2&&i(a[a.length-2],a[a.length-1],e)<=0;)a.pop();a.push(e)}let o=[];for(let e=r.length-1;e>=0;e--){let t=r[e];for(;o.length>=2&&i(o[o.length-2],o[o.length-1],t)<=0;)o.pop();o.push(t)}return a.pop(),o.pop(),a.concat(o)},qe=e=>{if(e.length<3){Pe();return}let t=Ne(),n=t.parentElement,r=Ke(n&&n===W?.container?e.map(e=>({x:e.x-R,y:e.y-z})):e);if(r.length<3){Pe();return}let i=Math.min(...r.map(e=>e.x)),a=Math.min(...r.map(e=>e.y)),o=Math.max(...r.map(e=>e.x)),s=Math.max(...r.map(e=>e.y)),c=Math.max(1,o-i),l=Math.max(1,s-a),u=e=>`${(e.x-i)/c*100}% ${(e.y-a)/l*100}%`;t.style.display=`block`,t.style.transform=`none`,t.style.bottom=`auto`,t.style.right=`auto`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.width=`${c}px`,t.style.height=`${l}px`,t.style.clipPath=`polygon(${r.map(u).join(`, `)})`},Je=()=>{if(!x)return;let e=Ue();if(!e){Ie();return}Le(e)},Ye=e=>{if(!e)return!1;if(Ve()?.content.contains(e)||T?.contains(e)||Y?.contains(e))return!0;let t=W?.container;return!!(t instanceof HTMLElement&&t.contains(e))};B.push(X),B.push(je),B.push(Pe),B.push(()=>{Ie(),I?.parentElement&&I.parentElement.removeChild(I),I=null});let Xe=(t,n,r)=>{T&&requestAnimationFrame(()=>{let i=t.firstElementChild,a=t.lastElementChild,o=i?getComputedStyle(i):null,s=a?getComputedStyle(a):null,c=o&&parseFloat(o.marginTop)||0,l=s&&parseFloat(s.marginBottom)||0,u=(...e)=>{let t=0;for(let n of e)Number.isFinite(n)&&(t=Math.max(t,n));return t},d=t.getBoundingClientRect(),p=u(d.width,t.scrollWidth,t.offsetWidth,t.clientWidth),m=u(d.height,t.scrollHeight,t.offsetHeight,t.clientHeight)+c+l,ee={top:d.top,left:d.left,width:p,height:m,right:d.left+p,bottom:d.top+m},h=getComputedStyle(T),re=parseFloat(h.marginTop)||0;T.style.setProperty(`--viewport-width`,`${p}px`),T.style.setProperty(`--viewport-height`,`${m}px`);let g=f.getBoundingClientRect(),ie=n.getBoundingClientRect(),_=e({anchorRect:ie,contentRect:ee,side:r.side,align:r.align,sideOffset:r.sideOffset,alignOffset:r.alignOffset,avoidCollisions:!1,collisionPadding:0,allowedSides:te}),v=_.x-g.left,y=_.y-g.top;R=v,z=y;let b=ne(_.side,_.align,ie),ae=b.x-(g.left+v),x=b.y-(g.top+y),se=b.x-g.left,ce=b.y-g.top,S=`${ae}px ${x}px`,C=`${se}px ${ce}px`;T.style.top=`0px`,T.style.left=`0px`,T.style.willChange=`transform,width,height`,T.style.setProperty(`--transform-origin`,S),t.style.top=`0px`,t.style.left=`0px`,t.style.setProperty(`--transform-origin`,S),T.setAttribute(`data-side`,_.side),T.setAttribute(`data-align`,_.align),t.setAttribute(`data-side`,_.side),t.setAttribute(`data-align`,_.align);let w=W?.container;w&&w!==T&&(w.setAttribute(`data-side`,_.side),w.setAttribute(`data-align`,_.align),w.style.setProperty(`--transform-origin`,C)),ye();let E=T.getBoundingClientRect(),D=[],O=Math.max(0,E.top-g.bottom),k=Math.max(0,g.top-E.bottom),A=Math.max(0,E.left-g.right),j=Math.max(0,g.left-E.right),M=Math.max(0,c+re),N=Math.max(O,k,M),P=Math.max(A,j),F=oe?He(ie,g,E):null,le=(e,t,n,r)=>{n<=0||r<=0||D.push({x:e,y:t},{x:e+n,y:t},{x:e+n,y:t+r},{x:e,y:t+r})};if(N>=P&&N>0){let e=Math.max(O,k,M),t=v,n=k>O&&k>=M?y+m:y-e,r=p;if(F){let e=Math.min(F.edgeA.x,F.edgeB.x)-g.left,n=Math.max(F.edgeA.x,F.edgeB.x)-g.left;t=e-8,r=n-e+16}le(t,n,r,e)}else if(P>0){let e=Math.max(A,j),t=y,n=j>A?v+p:v-e,r=m;if(F){let e=Math.min(F.edgeA.y,F.edgeB.y)-g.top,n=Math.max(F.edgeA.y,F.edgeB.y)-g.top;t=e-8,r=n-e+16}le(n,t,e,r)}if(F){let e=Ge(F.apex,g),t=Ge(F.edgeA,g),n=Ge(F.edgeB,g);D.push(e,t,n)}qe(D),Je()})},Ze=e=>A===-1||e>A?`right`:`left`,Z=e=>{if(!E)return;if(N=e,!e){je(),E.removeAttribute(`data-instant`),E.setAttribute(`data-state`,`hidden`);return}E.getAttribute(`data-state`)!==`visible`&&(je(),E.setAttribute(`data-instant`,``),L=requestAnimationFrame(()=>{L=requestAnimationFrame(()=>{E.removeAttribute(`data-instant`),L=null})}));let t=C.getBoundingClientRect(),n=e.getBoundingClientRect();E.style.setProperty(`--indicator-left`,`${n.left-t.left}px`),E.style.setProperty(`--indicator-width`,`${n.width}px`),E.style.setProperty(`--indicator-top`,`${n.top-t.top}px`);let r=(T&&parseFloat(getComputedStyle(T).marginTop)||0)<1?1:0;E.style.setProperty(`--indicator-height`,`${n.height-r}px`),E.setAttribute(`data-state`,`visible`)},Q=(e,n=!1)=>{if(X(),e===O){J();return}if(e!==null&&e===k){J();return}J(),k=e===null?null:e;let r=()=>{let n=O,r=e?K.get(e):null,i=n!==null&&e!==null&&n!==e,o=i&&r?Ze(r.index):null,s=document.activeElement;if(e===null&&s&&t(f,s)){let e=n?K.get(n)?.trigger:null;e&&e.focus()}if(K.forEach(({trigger:t,content:r,item:i},a)=>{let s=a===e,c=a===n;if(m(t,`expanded`,s),t.setAttribute(`data-state`,s?`open`:`closed`),s||c&&e===null?t.tabIndex=0:t.tabIndex=-1,i.setAttribute(`data-state`,s?`open`:`closed`),!s){let e=V.get(r);if(r.setAttribute(`data-state`,`inactive`),r.setAttribute(`aria-hidden`,`true`),S(r,!0),r.style.pointerEvents=`none`,c&&o){let e=o===`right`?`to-left`:`to-right`;r.setAttribute(`data-motion`,e)}else c&&r.removeAttribute(`data-motion`);c?e?.exit():e?.isExiting||(r.removeAttribute(`data-motion`),ve(r),r.hidden=!0)}}),r){if(W?.mount(),T&&(T.hidden=!1),n===null&&ge?.enter(),_e(r.content),V.get(r.content)?.enter(),o){let e=o===`right`?`from-right`:`from-left`;r.content.setAttribute(`data-motion`,e)}else r.content.removeAttribute(`data-motion`);r.content.setAttribute(`data-state`,`active`),r.content.removeAttribute(`aria-hidden`),S(r.content,!1),r.content.hidden=!1,r.content.style.pointerEvents=`auto`,A=r.index;let e=xe(r.item,r.content);Xe(r.content,r.trigger,e),be(r),Z(r.trigger)}else Pe(),X(),ge?.exit(),be(null);let c=e!==null;if(f.setAttribute(`data-state`,c?`open`:`closed`),o?f.setAttribute(`data-motion`,o===`right`?`from-right`:`from-left`):f.removeAttribute(`data-motion`),T){T.setAttribute(`data-state`,c?`open`:`closed`),T.style.pointerEvents=c?`auto`:`none`;let e=W?.container;c&&!i?(T.setAttribute(`data-instant`,``),e?.setAttribute(`data-instant`,``)):i?he():c||he(),o&&T.style.setProperty(`--motion-direction`,o===`right`?`1`:`-1`)}O=e,k=null,e===null&&Z(null),Je(),a(f,`navigation-menu:change`,{value:e}),se?.(e)};n?r():e!==null&&O===null?j=setTimeout(r,re):e!==null&&O!==null?r():M=setTimeout(r,g)};f.setAttribute(`data-state`,`closed`),T&&(T.setAttribute(`data-state`,`closed`),T.hidden=!0,T.style.pointerEvents=`none`),E&&E.setAttribute(`data-state`,`hidden`),K.forEach(({trigger:e,content:t,item:n})=>{e.tagName===`BUTTON`&&!e.hasAttribute(`type`)&&(e.type=`button`),m(e,`expanded`,!1),e.setAttribute(`data-state`,`closed`),e.tabIndex=e===Ce[0]?0:-1,n.setAttribute(`data-state`,`closed`),t.setAttribute(`data-state`,`inactive`),t.setAttribute(`aria-hidden`,`true`),t.tabIndex=-1,S(t,!0),t.hidden=!0,t.style.pointerEvents=`none`}),K.forEach(({item:e,trigger:n},r)=>{B.push(p(n,`pointerenter`,e=>{if(!P){if(O!==r&&We(e))return;Z(n)}})),B.push(p(e,`pointerenter`,e=>{if(!P){if(O!==r&&We(e))return;Q(r)}})),B.push(p(e,`pointerleave`,e=>{if(k===r&&O===null&&(J(),k=null),O===r&&!P){let n=e.relatedTarget;if(Ye(n))return;(!n||!t(f,n))&&(Q(null),Z(null))}})),B.push(p(n,`focus`,()=>{if(F===n){F=null;return}ie&&Q(r,!0),Z(n)})),B.push(p(n,`pointerdown`,()=>{F=n})),B.push(p(n,`click`,()=>{F=null,J(),O===r&&P?(P=!1,Q(null,!0),Z(null)):O===r&&!P?(P=!0,Z(n)):(P=!0,Q(r,!0),Z(n))}))}),B.push(p(C,`pointerover`,e=>{if(O===null||P)return;let t=e;t.pointerType!==`touch`&&ke(t.target)&&$()}),p(C,`click`,e=>{O!==null&&ke(e.target)&&$()})),B.push(p(f,`pointerenter`,()=>{le=!0}),p(f,`pointerleave`,e=>{let t=e.relatedTarget;if(!Ye(t)&&(le=!1,!P)){if(We(e)){J();return}Q(null),Z(null)}}),p(f,`pointerdown`,()=>{X(),J()})),T&&B.push(p(T,`pointerenter`,()=>{X(),J()}),p(T,`transitionend`,e=>{if(e.target!==T)return;let t=O?K.get(O):null;if(t){let e=xe(t.item,t.content);Xe(t.content,t.trigger,e)}})),K.forEach(({content:e})=>{B.push(p(e,`pointerenter`,()=>{X(),J()}),p(e,`pointerleave`,e=>{if(P)return;let n=e.relatedTarget;Ye(n)||t(f,n)||(Q(null),Z(null))}))}),B.push(p(C,`keydown`,e=>{let t=Oe(e.target);if(!t)return;let n=q.indexOf(t);if(n===-1)return;let r=n;switch(e.key){case`ArrowLeft`:r=n-1,r<0&&(r=q.length-1);break;case`ArrowRight`:r=n+1,r>=q.length&&(r=0);break;case`ArrowDown`:if(t.kind===`submenu`){e.preventDefault();let n=t.value;P=!0,Q(n,!0),requestAnimationFrame(()=>{let e=K.get(n);if(!e)return;let t=Ae(e.content)[0];t?t.focus():e.content.focus()})}return;case`Home`:r=0;break;case`End`:r=q.length-1;break;case`Escape`:P=!1,Q(null,!0),Z(null);return;default:return}e.preventDefault();let i=q[r];if(i){if(i.kind===`submenu`){let e=i.trigger;Ce.forEach(t=>t.tabIndex=t===e?0:-1),e.focus(),Z(e);return}O===null?Z(null):$(),i.element.focus()}})),B.push(p(C,`focusin`,e=>{if(O===null)return;let t=Oe(e.target);!t||t.kind===`submenu`||$()})),K.forEach(({content:e,trigger:t})=>{B.push(p(e,`keydown`,n=>{let r=n.target,i=Ae(e),a=i.indexOf(r);if(a!==-1)switch(n.key){case`ArrowDown`:case`ArrowRight`:{n.preventDefault();let e=a+1;e<i.length&&i[e]?.focus();break}case`ArrowUp`:case`ArrowLeft`:n.preventDefault(),a===0?t.focus():i[a-1]?.focus();break;case`Escape`:n.preventDefault(),P=!1,Q(null,!0),Z(null),t.focus();break}}))});let Qe=()=>t(f,document.activeElement)||le||P,$=()=>{X(),P=!1,Q(null,!0),Z(null),Je()};return B.push(p(document,`focusin`,e=>{O!==null&&(t(f,e.target)||$())})),B.push(n({root:f,isOpen:()=>O!==null&&Qe(),onDismiss:$,closeOnClickOutside:!0,closeOnEscape:!0,preventEscapeDefault:!1,isInside:e=>!!e&&t(f,e)})),B.push(p(window,`resize`,()=>{O&&requestAnimationFrame(()=>ye()),N&&requestAnimationFrame(()=>Z(N))}),p(C,`scroll`,()=>{N&&requestAnimationFrame(()=>Z(N))})),B.push(p(f,`navigation-menu:set`,e=>{let t=e.detail;if(t?.value!==void 0){if(t.value===null)$();else if(K.has(t.value)){P=!0,Q(t.value,!0);let e=K.get(t.value);e&&Z(e.trigger)}}})),{get value(){return O},open:e=>Q(e,!0),close:()=>Q(null,!0),destroy:()=>{ue=!0,J(),B.forEach(e=>e()),B.length=0}}}const g=new WeakSet;function ie(e=document){let t=[];for(let n of f(e,`navigation-menu`))g.has(n)||(g.add(n),t.push(re(n)));return t}export{ie as create,re as createNavigationMenu};
|
|
1
|
+
import{computeFloatingPosition as e,containsWithPortals as t,createDismissLayer as n,createPortalLifecycle as r,createPresenceLifecycle as i,emit as a,ensureId as o,getDataBool as s,getDataEnum as c,getDataNumber as l,getPart as u,getParts as d,getRoots as f,on as p,setAria as m}from"@data-slot/core";const ee=[`start`,`center`,`end`],te=[`top`,`right`,`bottom`,`left`],h=(e,t)=>t===`start`?{x:e.left,y:e.top}:t===`end`?{x:e.right,y:e.bottom}:{x:e.left+e.width/2,y:e.top+e.height/2},ne=(e,t,n)=>{let r=h(n,t);return e===`top`?{x:r.x,y:n.top}:e===`bottom`?{x:r.x,y:n.bottom}:e===`left`?{x:n.left,y:r.y}:{x:n.right,y:r.y}};function re(f,h={}){let re=h.delayOpen??l(f,`delayOpen`)??0,g=h.delayClose??l(f,`delayClose`)??0,_=h.openOnFocus??s(f,`openOnFocus`)??!1,v=h.side??c(f,`side`,te)??`bottom`,y=h.align??c(f,`align`,ee)??`start`,b=h.sideOffset??l(f,`sideOffset`)??0,ie=h.alignOffset??l(f,`alignOffset`)??0,ae=h.safeTriangle??s(f,`safeTriangle`)??!1,x=h.debugSafeTriangle??s(f,`debugSafeTriangle`)??!1,oe=ae||x,se=h.onValueChange,ce=e=>e.replace(/[^a-z0-9\-_:.]/gi,`-`),S=(e,t)=>{`inert`in e&&(e.inert=t)},C=u(f,`navigation-menu-list`),w=d(f,`navigation-menu-item`),T=u(f,`navigation-menu-viewport`),E=u(f,`navigation-menu-indicator`),D=(e,t)=>{let n=e.parentElement;for(;n&&n!==f;){if(n.getAttribute(`data-slot`)===t)return n;n=n.parentElement}return null};if(!C||w.length===0)throw Error(`NavigationMenu requires navigation-menu-list and at least one navigation-menu-item`);let O=null,k=null,A=-1,j=null,M=null,N=null,P=!1,F=null,I=!1,le=!1,L=null,R=null,z=0,B=0,V=[],H=new Map,U=new Map,ue=T?D(T,`navigation-menu-viewport-positioner`):null,de=T?D(T,`navigation-menu-positioner`):null,W=ue??de,fe=W?D(W,`navigation-menu-portal`):null,G=T?r({content:T,root:f,enabled:!0,wrapperSlot:W?void 0:`navigation-menu-viewport-positioner`,container:W??void 0,mountTarget:W?fe??W:void 0}):null,pe=()=>{let e=G?.container;e instanceof HTMLElement&&(e.style.position=``,e.style.top=``,e.style.left=``,e.style.width=``,e.style.height=``,e.style.margin=``,e.style.willChange=``,e.style.pointerEvents=``,e.style.transform=``,e.style.removeProperty(`--transform-origin`),e.removeAttribute(`data-instant`))},me=()=>{T?.removeAttribute(`data-instant`);let e=G?.container;e instanceof HTMLElement&&e.removeAttribute(`data-instant`)},he=T?i({element:T,onExitComplete:()=>{le||(me(),pe(),z=0,B=0,G?.restore(),T.hidden=!0,T.style.pointerEvents=`none`)}}):null,ge=e=>{if(!T)return;let t=U.get(e)??{originalParent:null,originalNextSibling:null,mountedInViewport:!1};t.mountedInViewport||(t.originalParent=e.parentNode,t.originalNextSibling=e.nextSibling,t.mountedInViewport=!0,U.set(e,t)),e.parentNode!==T&&T.appendChild(e)},_e=e=>{let t=U.get(e);if(!t||!t.mountedInViewport)return;let n=t.originalParent,r=t.originalNextSibling;n&&n.isConnected?r&&r.parentNode===n?n.insertBefore(e,r):n.appendChild(e):e.remove(),t.mountedInViewport=!1,t.originalParent=null,t.originalNextSibling=null},ve=()=>{if(!T||!G)return;let e=G.container,t=f.ownerDocument.defaultView??window,n=f.getBoundingClientRect(),r=n.top+t.scrollY+B,i=n.left+t.scrollX+z;e.style.position=`absolute`,e.style.top=`${r}px`,e.style.left=`${i}px`,e.style.width=`${n.width}px`,e.style.height=`${n.height}px`,e.style.margin=`0`,e.style.willChange=`top,left`,e.style.pointerEvents=`none`},ye=null,be=e=>{ye?.disconnect(),ye=null,!(!T||!e)&&(ye=new ResizeObserver(()=>{let t=xe(e.item,e.content);it(e.content,e.trigger,t)}),ye.observe(e.content))};V.push(()=>ye?.disconnect()),V.push(()=>{me(),H.forEach(e=>e.cleanup()),H.clear(),U.forEach((e,t)=>{_e(t),t.hidden=!0,t.style.pointerEvents=`none`}),U.clear(),pe(),z=0,B=0,he?.cleanup(),G?.cleanup()});let K=new Map,xe=(e,t)=>({side:h.side??c(t,`side`,te)??c(e,`side`,te)??v,align:h.align??c(t,`align`,ee)??c(e,`align`,ee)??y,sideOffset:h.sideOffset??l(t,`sideOffset`)??l(e,`sideOffset`)??b,alignOffset:h.alignOffset??l(t,`alignOffset`)??l(e,`alignOffset`)??ie}),Se=0;w.forEach(e=>{let t=e.dataset.value;if(!t)return;let n=u(e,`navigation-menu-trigger`),r=u(e,`navigation-menu-content`);if(n&&r){K.set(t,{value:t,item:e,trigger:n,content:r,index:Se++}),H.set(r,i({element:r,onExitComplete:()=>{le||(_e(r),r.hidden=!0,r.style.pointerEvents=`none`)}}));let a=ce(t),s=o(n,`nav-menu-trigger-${a}`),c=o(r,`nav-menu-content-${a}`);n.setAttribute(`aria-haspopup`,`true`),n.setAttribute(`aria-controls`,c),r.setAttribute(`aria-labelledby`,s)}}),Array.from(K.values()).map(e=>e.trigger);let Ce=`a[href], button:not([disabled]), [role="link"], [role="button"], [tabindex]:not([tabindex="-1"])`,we=e=>{let t=e?.closest(`[data-slot="navigation-menu-item"]`);if(!t)return null;let n=t.dataset.value;if(!n)return null;let r=K.get(n);return!r||r.item!==t?null:r},Te=e=>{if(e.matches(Ce))return e;let t=e.querySelectorAll(Ce);for(let n of t)if(e.contains(n)&&!n.closest(`[data-slot="navigation-menu-content"]`)&&!(n.hidden||n.closest(`[hidden]`)))return n;return null},q=[],Ee=new Map;w.forEach(e=>{let t=we(e);if(t){let e={kind:`submenu`,element:t.trigger,value:t.value,trigger:t.trigger};q.push(e),Ee.set(e.element,e);return}let n=Te(e);if(!n)return;let r={kind:`plain`,element:n};q.push(r),Ee.set(r.element,r)});let De=e=>{let t=e instanceof HTMLElement?e:null;if(!t)return null;let n=t;for(;n&&n!==C;){let e=Ee.get(n);if(e)return e;n=n.parentElement}return null},Oe=e=>{let t=f.ownerDocument;return e.kind===`submenu`?(e.trigger.focus(),t.activeElement===e.trigger?(st(e.trigger),!0):!1):(O===null?Z(null):$(),e.element.focus(),t.activeElement===e.element)},ke=(e,t)=>{for(let n=e+t;n>=0&&n<q.length;n+=t){let e=q[n];if(e&&Oe(e))return!0}return!1},Ae=(e,t)=>{let n=q.indexOf(e);return n===-1?!1:ke(n,t)},je=(e,t)=>{let n=q.findIndex(t=>t.kind===`submenu`&&t.trigger===e);return n===-1?!1:ke(n,t)},Me=e=>{if(!(e instanceof Node)||!C.contains(e))return!1;let t=e instanceof HTMLElement?e:e.parentElement;return!t||t.closest(`[data-slot="navigation-menu-indicator"]`)||we(t)?!1:t.closest(`[data-slot="navigation-menu-item"]`)?!0:!!t.closest(`a[href], button, [role='link'], [role='button']`)},Ne=`a, button, input, select, textarea, [tabindex]:not([tabindex="-1"])`,Pe=e=>Array.from(e.querySelectorAll(Ne)).filter(e=>!e.hidden&&!e.closest(`[hidden]`)),Fe=e=>!e.isConnected||e.hidden||e.closest(`[hidden]`)||`disabled`in e&&e.disabled||e.getAttribute(`aria-hidden`)===`true`||e.getAttribute(`tabindex`)===`-1`?!1:e.matches(Ne)?!0:e.tabIndex>=0,Ie=e=>{if(f.contains(e)||T?.contains(e))return!0;let t=G?.container;if(t instanceof HTMLElement&&t.contains(e))return!0;for(let{content:t}of K.values())if(t.contains(e))return!0;return!1},Le=()=>{let e=f.ownerDocument,t=Array.from(e.querySelectorAll(`*`));for(let n of t)if(Fe(n)&&!Ie(n)&&(f.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)!==0&&(n.focus(),e.activeElement===n))return!0;return!1},Re=e=>{requestAnimationFrame(()=>{if(O!==e)return;let t=K.get(e);if(!t)return;let n=Pe(t.content)[0];n?n.focus():t.content.focus()})},J=()=>{j&&=(clearTimeout(j),null),M&&=(clearTimeout(M),null)},ze=()=>{R!==null&&(cancelAnimationFrame(R),R=null)},Y=null,Be=()=>{if(!T)return null;let e=G?.container;return e instanceof HTMLElement?e:T.parentElement instanceof HTMLElement?T.parentElement:T},Ve=()=>{let e=Be();return Y||(Y=document.createElement(`div`),Y.setAttribute(`data-slot`,`navigation-menu-bridge`),Y.style.cssText=`position: absolute; pointer-events: auto; z-index: 0; display: none;`,V.push(p(Y,`pointerenter`,()=>{J()}),p(Y,`pointerleave`,e=>{if(P||O===null)return;let n=e.relatedTarget;rt(n)||n&&t(f,n)||(Q(null),Z(null))}))),e&&Y.parentElement!==e&&e.insertBefore(Y,e.firstChild),Y},He=()=>{Y&&(Y.style.height=`0`,Y.style.width=`0`,Y.style.top=`0px`,Y.style.left=`0px`,Y.style.right=`0px`,Y.style.bottom=`auto`,Y.style.transform=`none`,Y.style.clipPath=`none`,Y.style.display=`none`)},Ue=()=>{if(!x)return null;let e=f.ownerDocument.body;return e?(L||(L=f.ownerDocument.createElement(`div`),L.setAttribute(`data-slot`,`navigation-menu-safe-triangle`),L.style.cssText=[`position: fixed`,`pointer-events: none`,`display: none`,`z-index: 2147483647`,`background: rgba(255, 0, 0, 0.18)`,`border: 1px solid rgba(255, 0, 0, 0.45)`].join(`; `)),L.parentElement!==e&&e.appendChild(L),L):null},We=()=>{L&&(L.style.width=`0`,L.style.height=`0`,L.style.clipPath=`none`,L.style.display=`none`)},X=()=>{x||We()},Ge=e=>{let t=Ue();if(!t)return;let n=e.apex.x,r=e.apex.y,i=e.edgeA.x,a=e.edgeA.y,o=e.edgeB.x,s=e.edgeB.y,c=Math.min(n,i,o),l=Math.min(r,a,s),u=Math.max(n,i,o),d=Math.max(r,a,s),f=Math.max(1,u-c),p=Math.max(1,d-l),m=(e,t)=>`${(e-c)/f*100}% ${(t-l)/p*100}%`;t.style.display=`block`,t.style.left=`${c}px`,t.style.top=`${l}px`,t.style.width=`${f}px`,t.style.height=`${p}px`,t.style.clipPath=`polygon(${m(n,r)}, ${m(i,a)}, ${m(o,s)})`},Ke=(e,t,n)=>(e.x-n.x)*(t.y-n.y)-(t.x-n.x)*(e.y-n.y),qe=(e,t,n,r)=>{let i=Ke(e,t,n),a=Ke(e,n,r),o=Ke(e,r,t);return!((i<0||a<0||o<0)&&(i>0||a>0||o>0))},Je=(e,t,n)=>{let r=.5;if(n.top>=t.bottom-r)return[{x:n.left,y:n.top},{x:n.right,y:n.top}];if(n.bottom<=t.top+r)return[{x:n.left,y:n.bottom},{x:n.right,y:n.bottom}];if(n.left>=t.right-r)return[{x:n.left,y:n.top},{x:n.left,y:n.bottom}];if(n.right<=t.left+r)return[{x:n.right,y:n.top},{x:n.right,y:n.bottom}];let i=[[{x:n.left,y:n.top},{x:n.right,y:n.top}],[{x:n.right,y:n.top},{x:n.right,y:n.bottom}],[{x:n.left,y:n.bottom},{x:n.right,y:n.bottom}],[{x:n.left,y:n.top},{x:n.left,y:n.bottom}]],a=([t,n])=>t.y===n.y?Math.abs(e.y-t.y):Math.abs(e.x-t.x),o=i[0],s=a(o);for(let e=1;e<i.length;e++){let t=i[e],n=a(t);n<s&&(o=t,s=n)}return o},Ye=()=>O?K.get(O)??null:null,Xe=(e,t,n)=>{if(n.width<=0||n.height<=0)return null;let r={x:e.left+e.width/2,y:e.top+e.height*.62},[i,a]=Je(r,t,n);if(i.x===a.x){let e=Math.min(i.y,a.y),t=Math.max(i.y,a.y),n=t-e,r=n<=28?0:Math.min(10,(n-28)/2);i={x:i.x,y:e+r},a={x:a.x,y:t-r}}else{let e=Math.min(i.x,a.x),t=Math.max(i.x,a.x),n=t-e,r=n<=28?0:Math.min(10,(n-28)/2);i={x:e+r,y:i.y},a={x:t-r,y:a.y}}return{apex:r,edgeA:i,edgeB:a}},Ze=()=>{if(!oe||!T||O===null)return null;let e=Ye();if(!e)return null;let t=f.getBoundingClientRect(),n=e.trigger.getBoundingClientRect(),r=T.getBoundingClientRect(),i=e.content.getBoundingClientRect();return Xe(n,t,r.width>0&&r.height>0?r:i)},Qe=e=>{let t=Ze();return t?qe({x:e.clientX,y:e.clientY},t.apex,t.edgeA,t.edgeB):!1},$e=(e,t)=>({x:e.x-t.left,y:e.y-t.top}),et=e=>{if(e.length<=1)return e.slice();let t=e=>`${e.x.toFixed(3)}:${e.y.toFixed(3)}`,n=new Map;for(let r of e)n.set(t(r),r);let r=Array.from(n.values()).sort((e,t)=>e.x===t.x?e.y-t.y:e.x-t.x);if(r.length<=2)return r;let i=(e,t,n)=>(t.x-e.x)*(n.y-e.y)-(t.y-e.y)*(n.x-e.x),a=[];for(let e of r){for(;a.length>=2&&i(a[a.length-2],a[a.length-1],e)<=0;)a.pop();a.push(e)}let o=[];for(let e=r.length-1;e>=0;e--){let t=r[e];for(;o.length>=2&&i(o[o.length-2],o[o.length-1],t)<=0;)o.pop();o.push(t)}return a.pop(),o.pop(),a.concat(o)},tt=e=>{if(e.length<3){He();return}let t=Ve(),n=t.parentElement,r=et(n&&n===G?.container?e.map(e=>({x:e.x-z,y:e.y-B})):e);if(r.length<3){He();return}let i=Math.min(...r.map(e=>e.x)),a=Math.min(...r.map(e=>e.y)),o=Math.max(...r.map(e=>e.x)),s=Math.max(...r.map(e=>e.y)),c=Math.max(1,o-i),l=Math.max(1,s-a),u=e=>`${(e.x-i)/c*100}% ${(e.y-a)/l*100}%`;t.style.display=`block`,t.style.transform=`none`,t.style.bottom=`auto`,t.style.right=`auto`,t.style.left=`${i}px`,t.style.top=`${a}px`,t.style.width=`${c}px`,t.style.height=`${l}px`,t.style.clipPath=`polygon(${r.map(u).join(`, `)})`},nt=()=>{if(!x)return;let e=Ze();if(!e){We();return}Ge(e)},rt=e=>{if(!e)return!1;if(Ye()?.content.contains(e)||T?.contains(e)||Y?.contains(e))return!0;let t=G?.container;return!!(t instanceof HTMLElement&&t.contains(e))};V.push(X),V.push(ze),V.push(He),V.push(()=>{We(),L?.parentElement&&L.parentElement.removeChild(L),L=null});let it=(t,n,r)=>{T&&requestAnimationFrame(()=>{let i=t.firstElementChild,a=t.lastElementChild,o=i?getComputedStyle(i):null,s=a?getComputedStyle(a):null,c=o&&parseFloat(o.marginTop)||0,l=s&&parseFloat(s.marginBottom)||0,u=(...e)=>{let t=0;for(let n of e)Number.isFinite(n)&&(t=Math.max(t,n));return t},d=t.getBoundingClientRect(),p=u(d.width,t.scrollWidth,t.offsetWidth,t.clientWidth),m=u(d.height,t.scrollHeight,t.offsetHeight,t.clientHeight)+c+l,ee={top:d.top,left:d.left,width:p,height:m,right:d.left+p,bottom:d.top+m},h=getComputedStyle(T),re=parseFloat(h.marginTop)||0;T.style.setProperty(`--viewport-width`,`${p}px`),T.style.setProperty(`--viewport-height`,`${m}px`);let g=f.getBoundingClientRect(),_=n.getBoundingClientRect(),v=e({anchorRect:_,contentRect:ee,side:r.side,align:r.align,sideOffset:r.sideOffset,alignOffset:r.alignOffset,avoidCollisions:!1,collisionPadding:0,allowedSides:te}),y=v.x-g.left,b=v.y-g.top;z=y,B=b;let ie=ne(v.side,v.align,_),ae=ie.x-(g.left+y),x=ie.y-(g.top+b),se=ie.x-g.left,ce=ie.y-g.top,S=`${ae}px ${x}px`,C=`${se}px ${ce}px`;T.style.top=`0px`,T.style.left=`0px`,T.style.willChange=`transform,width,height`,T.style.setProperty(`--transform-origin`,S),t.style.top=`0px`,t.style.left=`0px`,t.style.setProperty(`--transform-origin`,S),T.setAttribute(`data-side`,v.side),T.setAttribute(`data-align`,v.align),t.setAttribute(`data-side`,v.side),t.setAttribute(`data-align`,v.align);let w=G?.container;w&&w!==T&&(w.setAttribute(`data-side`,v.side),w.setAttribute(`data-align`,v.align),w.style.setProperty(`--transform-origin`,C)),ve();let E=T.getBoundingClientRect(),D=[],O=Math.max(0,E.top-g.bottom),k=Math.max(0,g.top-E.bottom),A=Math.max(0,E.left-g.right),j=Math.max(0,g.left-E.right),M=Math.max(0,c+re),N=Math.max(O,k,M),P=Math.max(A,j),F=oe?Xe(_,g,E):null,I=(e,t,n,r)=>{n<=0||r<=0||D.push({x:e,y:t},{x:e+n,y:t},{x:e+n,y:t+r},{x:e,y:t+r})};if(N>=P&&N>0){let e=Math.max(O,k,M),t=y,n=k>O&&k>=M?b+m:b-e,r=p;if(F){let e=Math.min(F.edgeA.x,F.edgeB.x)-g.left,n=Math.max(F.edgeA.x,F.edgeB.x)-g.left;t=e-8,r=n-e+16}I(t,n,r,e)}else if(P>0){let e=Math.max(A,j),t=b,n=j>A?y+p:y-e,r=m;if(F){let e=Math.min(F.edgeA.y,F.edgeB.y)-g.top,n=Math.max(F.edgeA.y,F.edgeB.y)-g.top;t=e-8,r=n-e+16}I(n,t,e,r)}if(F){let e=$e(F.apex,g),t=$e(F.edgeA,g),n=$e(F.edgeB,g);D.push(e,t,n)}tt(D),nt()})},at=e=>A===-1||e>A?`right`:`left`,Z=e=>{if(!E)return;if(N=e,!e){ze(),E.removeAttribute(`data-instant`),E.setAttribute(`data-state`,`hidden`);return}E.getAttribute(`data-state`)!==`visible`&&(ze(),E.setAttribute(`data-instant`,``),R=requestAnimationFrame(()=>{R=requestAnimationFrame(()=>{E.removeAttribute(`data-instant`),R=null})}));let t=C.getBoundingClientRect(),n=e.getBoundingClientRect();E.style.setProperty(`--indicator-left`,`${n.left-t.left}px`),E.style.setProperty(`--indicator-width`,`${n.width}px`),E.style.setProperty(`--indicator-top`,`${n.top-t.top}px`);let r=(T&&parseFloat(getComputedStyle(T).marginTop)||0)<1?1:0;E.style.setProperty(`--indicator-height`,`${n.height-r}px`),E.setAttribute(`data-state`,`visible`)},ot=()=>O?K.get(O)?.trigger??null:null,st=(e=null)=>{let t=ot();if(t){Z(t);return}Z(e)},Q=(e,n=!1)=>{if(X(),e===O){J();return}if(e!==null&&e===k){J();return}J(),k=e===null?null:e;let r=()=>{let n=O,r=e?K.get(e):null,i=n!==null&&e!==null&&n!==e,o=i&&r?at(r.index):null,s=document.activeElement;if(e===null&&s&&n){let e=K.get(n);e&&t(e.content,s)&&e.trigger.focus()}if(K.forEach(({trigger:t,content:r,item:i},a)=>{let s=a===e,c=a===n;if(m(t,`expanded`,s),t.setAttribute(`data-state`,s?`open`:`closed`),i.setAttribute(`data-state`,s?`open`:`closed`),!s){let e=H.get(r);if(r.setAttribute(`data-state`,`inactive`),r.setAttribute(`aria-hidden`,`true`),S(r,!0),r.style.pointerEvents=`none`,c&&o){let e=o===`right`?`to-left`:`to-right`;r.setAttribute(`data-motion`,e)}else c&&r.removeAttribute(`data-motion`);c?e?.exit():e?.isExiting||(r.removeAttribute(`data-motion`),_e(r),r.hidden=!0)}}),r){if(G?.mount(),T&&(T.hidden=!1),n===null&&he?.enter(),ge(r.content),H.get(r.content)?.enter(),o){let e=o===`right`?`from-right`:`from-left`;r.content.setAttribute(`data-motion`,e)}else r.content.removeAttribute(`data-motion`);r.content.setAttribute(`data-state`,`active`),r.content.removeAttribute(`aria-hidden`),S(r.content,!1),r.content.hidden=!1,r.content.style.pointerEvents=`auto`,A=r.index;let e=xe(r.item,r.content);it(r.content,r.trigger,e),be(r),Z(r.trigger)}else He(),X(),he?.exit(),be(null);let c=e!==null;if(f.setAttribute(`data-state`,c?`open`:`closed`),o?f.setAttribute(`data-motion`,o===`right`?`from-right`:`from-left`):f.removeAttribute(`data-motion`),T){T.setAttribute(`data-state`,c?`open`:`closed`),T.style.pointerEvents=c?`auto`:`none`;let e=G?.container;c&&!i?(T.setAttribute(`data-instant`,``),e?.setAttribute(`data-instant`,``)):i?me():c||me(),o&&T.style.setProperty(`--motion-direction`,o===`right`?`1`:`-1`)}O=e,k=null,e===null&&Z(null),nt(),a(f,`navigation-menu:change`,{value:e}),se?.(e)};n?r():e!==null&&O===null?j=setTimeout(r,re):e!==null&&O!==null?r():M=setTimeout(r,g)};f.setAttribute(`data-state`,`closed`),T&&(T.setAttribute(`data-state`,`closed`),T.hidden=!0,T.style.pointerEvents=`none`),E&&E.setAttribute(`data-state`,`hidden`),K.forEach(({trigger:e,content:t,item:n})=>{e.tagName===`BUTTON`&&!e.hasAttribute(`type`)&&(e.type=`button`),m(e,`expanded`,!1),e.setAttribute(`data-state`,`closed`),e.tabIndex=0,n.setAttribute(`data-state`,`closed`),t.setAttribute(`data-state`,`inactive`),t.setAttribute(`aria-hidden`,`true`),t.tabIndex=-1,S(t,!0),t.hidden=!0,t.style.pointerEvents=`none`}),K.forEach(({item:e,trigger:n},r)=>{V.push(p(n,`pointerenter`,e=>{if(!P){if(O!==r&&Qe(e))return;Z(n)}})),V.push(p(e,`pointerenter`,e=>{if(!P){if(O!==r&&Qe(e))return;Q(r)}})),V.push(p(e,`pointerleave`,e=>{if(k===r&&O===null&&(J(),k=null),O===r&&!P){let n=e.relatedTarget;if(rt(n))return;(!n||!t(f,n))&&(Q(null),Z(null))}})),V.push(p(n,`focus`,()=>{if(F===n){F=null;return}_&&Q(r,!0),st(n)})),V.push(p(n,`pointerdown`,()=>{F=n})),V.push(p(n,`click`,()=>{F=null,J(),O===r&&P?(P=!1,Q(null,!0),Z(null)):O===r&&!P?(P=!0,Z(n),Re(r)):(P=!0,Q(r,!0),Z(n),Re(r))}))}),V.push(p(C,`pointerover`,e=>{if(O===null||P)return;let t=e;t.pointerType!==`touch`&&Me(t.target)&&$()}),p(C,`click`,e=>{O!==null&&Me(e.target)&&$()})),V.push(p(f,`pointerenter`,()=>{I=!0}),p(f,`pointerleave`,e=>{let t=e.relatedTarget;if(!rt(t)&&(I=!1,!P)){if(Qe(e)){J();return}Q(null),Z(null)}}),p(f,`pointerdown`,()=>{X(),J()})),T&&V.push(p(T,`pointerenter`,()=>{X(),J()}),p(T,`transitionend`,e=>{if(e.target!==T)return;let t=O?K.get(O):null;if(t){let e=xe(t.item,t.content);it(t.content,t.trigger,e)}})),K.forEach(({content:e})=>{V.push(p(e,`pointerenter`,()=>{X(),J()}),p(e,`pointerleave`,e=>{if(P)return;let n=e.relatedTarget;rt(n)||t(f,n)||(Q(null),Z(null))}))}),V.push(p(C,`keydown`,e=>{let t=De(e.target);if(!t)return;let n=q.indexOf(t);if(n===-1)return;let r=n;switch(e.key){case`Tab`:if(e.shiftKey||O===null)return;(Ae(t,1)||Le())&&e.preventDefault();return;case`ArrowLeft`:r=n-1,r<0&&(r=q.length-1);break;case`ArrowRight`:r=n+1,r>=q.length&&(r=0);break;case`ArrowDown`:if(t.kind===`submenu`){e.preventDefault();let n=t.value;P=!0,Q(n,!0),Re(n)}return;case`Home`:r=0;break;case`End`:r=q.length-1;break;case`Escape`:P=!1,Q(null,!0),Z(null);return;default:return}e.preventDefault();let i=q[r];i&&Oe(i)})),V.push(p(C,`focusin`,e=>{if(O===null)return;let t=De(e.target);!t||t.kind===`submenu`||$()})),K.forEach(({content:e,trigger:t})=>{V.push(p(e,`keydown`,n=>{let r=n.target,i=Pe(e),a=i.indexOf(r);if(a!==-1)switch(n.key){case`Tab`:if(!n.shiftKey&&a===i.length-1){(je(t,1)||Le())&&n.preventDefault();return}if(n.shiftKey&&a===0){n.preventDefault(),t.focus();return}return;case`ArrowDown`:case`ArrowRight`:{n.preventDefault();let e=a+1;e<i.length&&i[e]?.focus();break}case`ArrowUp`:case`ArrowLeft`:n.preventDefault(),a===0?t.focus():i[a-1]?.focus();break;case`Escape`:n.preventDefault(),P=!1,Q(null,!0),Z(null),t.focus();break}}))});let ct=()=>t(f,document.activeElement)||I||P,$=()=>{X(),P=!1,Q(null,!0),Z(null),nt()};return V.push(p(document,`focusin`,e=>{let n=e.target;if(!t(f,n)){if(O!==null){$();return}Z(null)}})),V.push(n({root:f,isOpen:()=>O!==null&&ct(),onDismiss:$,closeOnClickOutside:!0,closeOnEscape:!0,preventEscapeDefault:!1,isInside:e=>!!e&&t(f,e)})),V.push(p(window,`resize`,()=>{O&&requestAnimationFrame(()=>ve()),(O||N)&&requestAnimationFrame(()=>st(N))}),p(C,`scroll`,()=>{(O||N)&&requestAnimationFrame(()=>st(N))})),V.push(p(f,`navigation-menu:set`,e=>{let t=e.detail;if(t?.value!==void 0){if(t.value===null)$();else if(K.has(t.value)){P=!0,Q(t.value,!0);let e=K.get(t.value);e&&Z(e.trigger)}}})),{get value(){return O},open:e=>Q(e,!0),close:()=>Q(null,!0),destroy:()=>{le=!0,J(),V.forEach(e=>e()),V.length=0}}}const g=new WeakSet;function _(e=document){let t=[];for(let n of f(e,`navigation-menu`))g.has(n)||(g.add(n),t.push(re(n)));return t}export{_ as create,re as createNavigationMenu};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@data-slot/navigation-menu",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.113",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -35,6 +35,6 @@
|
|
|
35
35
|
],
|
|
36
36
|
"license": "MIT",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"@data-slot/core": "0.2.
|
|
38
|
+
"@data-slot/core": "0.2.113"
|
|
39
39
|
}
|
|
40
40
|
}
|