@ecopages/radiant-ui 0.1.0-rc.13 → 0.1.0-rc.14
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/dist/components/ui/navigation-menu/index.d.ts +1 -1
- package/dist/components/ui/navigation-menu/index.js +1 -1
- package/dist/components/ui/navigation-menu/index.js.map +4 -4
- package/dist/components/ui/navigation-menu/navigation-menu.css +32 -34
- package/dist/components/ui/navigation-menu/navigation-menu.d.ts +33 -4
- package/dist/components/ui/navigation-menu/navigation-menu.script.d.ts +71 -9
- package/dist/components/ui/table/index.js +1 -1
- package/dist/components/ui/table/index.js.map +2 -2
- package/dist/components/ui/table/table.d.ts +4 -2
- package/dist/components/ui/table/table.script.d.ts +18 -4
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/dist/styles/style-dependencies.json +3 -1
- package/dist/styles/styles.css +26 -28
- package/package.json +7 -7
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { RuiNavigationMenu, RuiNavigationMenuBar, RuiNavigationMenuPanels, RuiNavigationMenuTrigger, RuiNavigationMenuLink, RuiNavigationMenuPanel, type RuiNavigationMenuTriggerProps, type RuiNavigationMenuLinkProps, type RuiNavigationMenuPanelProps, } from './navigation-menu';
|
|
2
|
-
export { RuiNavigationMenu as RuiNavigationMenuElement, type RuiNavigationMenuProps } from './navigation-menu.script';
|
|
2
|
+
export { NAVIGATION_MENU_DEFAULT_CLOSE_DELAY, NAVIGATION_MENU_DEFAULT_HOVER_DELAY, RuiNavigationMenu as RuiNavigationMenuElement, type RuiNavigationMenuProps, } from './navigation-menu.script';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as I}from"@ecopages/jsx/jsx-runtime";function D(...n){return n.filter(Boolean).join(" ")}import{RadiantElement as gt,customElement as Rt,onEvent as q,prop as Mt}from"@ecopages/radiant";var bt="a[href], button, input, select, textarea, [tabindex]";function ut(n){return Array.from(n.querySelectorAll(bt)).filter(t=>!t.hasAttribute("disabled"))}function Y(n,t){n.forEach((e,r)=>{let u=r===t?0:-1;e.tabIndex!==u&&(e.tabIndex=u)})}function yt(n,t){if(!n.length)return null;let e=Math.max(0,Math.min(n.length-1,t));return Y(n,e),n[e]?.focus(),n[e]??null}function xt(n,t){return n==="Home"?"first":n==="End"?"last":t==="horizontal"?n==="ArrowRight"?"next":n==="ArrowLeft"?"prev":null:n==="ArrowDown"?"next":n==="ArrowUp"?"prev":null}function Z(n){let{items:t,current:e,key:r,orientation:u="horizontal",wrap:h=!0}=n;if(!t.length||!e)return{handled:!1};let s=t.indexOf(e);if(s<0)return{handled:!1};let a=xt(r,u);if(!a)return{handled:!1};let d=s;a==="first"?d=0:a==="last"?d=t.length-1:a==="next"?d=h?(s+1)%t.length:Math.min(t.length-1,s+1):d=h?(s-1+t.length)%t.length:Math.max(0,s-1);let E=yt(t,d);return E?{handled:!0,index:d,item:E}:{handled:!1}}var st,lt,ct,ft;function wt(n,t,e,r,u,h){var s,a,d,E,x,S,M,K=Symbol.metadata||Symbol.for("Symbol.metadata"),k=Object.defineProperty,T=Object.create,B=[T(null),T(null)],N=t.length;function _(i,p,v){return function(o,l){p&&(l=o,o=n);for(var y=0;y<i.length;y++)l=i[y].apply(o,v?[l]:[]);return v?l:o}}function b(i,p,v,o){if(typeof i!="function"&&(o||i!==void 0))throw new TypeError(p+" must "+(v||"be")+" a function"+(o?"":" or undefined"));return i}function z(i,p,v,o,l,y,P,m,w,A,H){function W(f){if(!H(f))throw new TypeError("Attempted to access private element on non-instance")}var G=[].concat(p[0]),tt=p[3],J=!P,C=l===1,et=l===3,nt=l===4,$=l===2;function L(f,V,at){return function(U,ot){return V&&(ot=U,U=i),at&&at(U),c[f].call(U,ot)}}if(!J){var c={},Q=[],R=et?"get":nt||C?"set":"value";if(w?(A||C?c={get:dt(function(){return tt(this)},o,"get"),set:function(f){p[4](this,f)}}:c[R]=tt,A||dt(c[R],o,$?"":R)):A||(c=Object.getOwnPropertyDescriptor(i,o)),!A&&!w){if((a=B[+m][o])&&(a^l)!==7)throw Error("Decorating two elements with the same name ("+c[R].name+") is not supported yet");B[+m][o]=l<3?1:l}}for(var g=i,F=G.length-1;F>=0;F-=v?2:1){var rt=b(G[F],"A decorator","be",!0),it=v?G[F-1]:void 0,X={},j={kind:["field","accessor","method","getter","setter","class"][l],name:o,metadata:s,addInitializer:function(f,V){if(f.v)throw new TypeError("attempted to call addInitializer after decoration was finished");b(V,"An initializer","be",!0),y.push(V)}.bind(null,X)};if(J)a=rt.call(it,g,j),X.v=1,b(a,"class decorators","return")&&(g=a);else if(j.static=m,j.private=w,a=j.access={has:w?H.bind():function(f){return o in f}},nt||(a.get=w?$?function(f){return W(f),c.value}:L("get",0,W):function(f){return f[o]}),$||et||(a.set=w?L("set",0,W):function(f,V){f[o]=V}),g=rt.call(it,C?{get:c.get,set:c.set}:c[R],j),X.v=1,C){if(typeof g=="object"&&g)(a=b(g.get,"accessor.get"))&&(c.get=a),(a=b(g.set,"accessor.set"))&&(c.set=a),(a=b(g.init,"accessor.init"))&&Q.unshift(a);else if(g!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else b(g,(A?"field":"method")+" decorators","return")&&(A?Q.unshift(g):c[R]=g)}return l<2&&P.push(_(Q,m,1),_(y,m,0)),A||J||(w?C?P.splice(-1,0,L("get",m),L("set",m)):P.push($?c[R]:b.call.bind(c[R])):k(i,o,c)),g}function O(i){return k(i,K,{configurable:!0,enumerable:!0,value:s})}return h!==void 0&&(s=h[K]),s=T(s??null),x=[],S=function(i){i&&x.push(_(i))},M=function(i,p){for(var v=0;v<e.length;v++){var o=e[v],l=o[1],y=7&l;if((8&l)==i&&!y==p){var P=o[2],m=!!o[3],w=16&l;z(i?n:n.prototype,o,w,m?"#"+P:At(P),y,y<2?[]:i?E=E||[]:d=d||[],x,!!i,m,p,i&&m?function(A){return Tt(A)===n}:u)}}},M(8,0),M(0,0),M(8,1),M(0,1),S(d),S(E),a=x,N||O(n),{e:a,get c(){var i=[];return N&&[O(n=z(n,[t],r,n.name,5,i)),_(i,1)]}}}function At(n){var t=Et(n,"string");return typeof t=="symbol"?t:t+""}function Et(n,t){if(typeof n!="object"||!n)return n;var e=n[Symbol.toPrimitive];if(e!==void 0){var r=e.call(n,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(n)}function dt(n,t,e){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(n,"name",{configurable:!0,value:e?e+" "+t:t})}catch{}return n}function Tt(n){if(Object(n)!==n)throw TypeError("right-hand side of 'in' should be an object, got "+(n!==null?typeof n:"null"));return n}var pt,ht=class extends gt{static{({e:[ct,ft,st],c:[pt,lt]}=wt(this,[Rt("rui-navigation-menu")],[[Mt({type:String,defaultValue:""}),0,"label"],[q({document:!0,type:"click"}),2,"onDocumentClick"],[q({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[q({ref:"root",type:"keydown"}),2,"onRootKeydown"],[q({selector:"[data-navigation-trigger]",type:"click"}),2,"onTriggerClick"],[q({selector:"[data-navigation-item]",type:"keydown"}),2,"onBarItemKeydown"],[q({selector:"[data-navigation-panel]",type:"keydown"}),2,"onPanelKeydown"]],0,void 0,gt))}label=(st(this),ct(this));openValue=(ft(this),null);onConnected(){this.syncPanels(),this.syncBarRovingTabindex()}getBarItems(){return Array.from(this.querySelectorAll("[data-navigation-item]"))}syncBarRovingTabindex(){let t=this.getBarItems(),e=Math.max(0,t.findIndex(r=>r.tabIndex===0||r===document.activeElement));Y(t,e)}isBarTrigger(t){return t.hasAttribute("data-navigation-trigger")}getTriggers(){return Array.from(this.querySelectorAll("[data-navigation-trigger]"))}getPanel(t){return this.querySelector(`[data-navigation-panel][data-value="${t}"]`)}getTrigger(t){return this.querySelector(`[data-navigation-trigger][data-value="${t}"]`)}getPanels(){return Array.from(this.querySelectorAll("[data-navigation-panel]"))}getPanelFocusables(t){return ut(t)}focusPanelEntry(t){let e=this.getPanel(t);if(!e){this.getTrigger(t)?.focus();return}let r=this.getPanelFocusables(e);if(r.length>0){r[0].focus();return}e.hasAttribute("tabindex")||(e.tabIndex=-1),e.focus()}syncPanels(){for(let t of this.getPanels()){let e=t.getAttribute("data-value")??"",r=this.openValue===e;t.toggleAttribute("hidden",!r),t.dataset.state=r?"open":"closed",t.setAttribute("aria-hidden",String(!r));let u=this.getTrigger(e);u&&(u.setAttribute("aria-expanded",String(r)),t.setAttribute("role","region"),t.setAttribute("aria-labelledby",u.id||`${e}-trigger`),u.id||(u.id=`${e}-trigger`))}for(let t of this.getTriggers()){let e=t.getAttribute("data-value")??"",r=this.openValue===e;t.setAttribute("aria-expanded",String(r)),this.getPanel(e)?t.setAttribute("aria-haspopup","true"):t.removeAttribute("aria-haspopup")}}closeMenu(t=!1){let e=this.openValue;e&&(this.openValue=null,this.syncPanels(),t&&this.getTrigger(e)?.focus())}openPanel(t,e=!0){if(this.openValue===t){this.closeMenu(!0);return}this.openValue=t,this.syncPanels(),queueMicrotask(()=>{e?this.focusPanelEntry(t):this.getTrigger(t)?.focus()})}getEventElement(t){let e=t.target;return e instanceof Element?e:e instanceof Text?e.parentElement:null}isWithinOpenPanel(t){if(!this.openValue)return!1;let e=this.getPanel(this.openValue);return e?t.composedPath().some(r=>r instanceof Node&&e.contains(r)):!1}onDocumentClick(t){if(!this.openValue||this.isWithinOpenPanel(t))return;let e=this.getEventElement(t);e&&this.contains(e)||this.closeMenu()}onDocumentKeydown(t){if(t.key!=="Escape"||!this.openValue)return;let e=document.activeElement;e&&!this.contains(e)||(t.preventDefault(),this.closeMenu(!0))}onRootKeydown(t){t.key==="Escape"&&this.openValue&&(t.preventDefault(),this.closeMenu(!0))}onTriggerClick(t){let e=t.target.closest("[data-navigation-trigger]"),r=e?.getAttribute("data-value");!e||!r||(t.preventDefault(),this.openPanel(r))}onBarItemKeydown(t){let e=t.target.closest("[data-navigation-item]");if(!e||this.handleBarTriggerKeydown(t,e))return;let r=Z({items:this.getBarItems(),current:e,key:t.key,orientation:"horizontal",wrap:!1});r.handled&&(t.preventDefault(),this.syncMenuToBarItem(r.item))}handleBarTriggerKeydown(t,e){if(t.key==="Escape")return this.openValue&&(t.preventDefault(),this.closeMenu(!0)),!0;let r=e.getAttribute("data-value");return!this.isBarTrigger(e)||!r?!1:t.key==="Enter"||t.key===" "?(t.preventDefault(),this.openPanel(r),!0):t.key!=="ArrowDown"?!1:(t.preventDefault(),this.openValue===r?this.focusPanelEntry(r):this.openPanel(r),!0)}syncMenuToBarItem(t){if(!this.openValue)return;let e=t.getAttribute("data-value");this.isBarTrigger(t)&&e?this.openPanel(e):this.closeMenu(!1)}onPanelKeydown(t){let e=t.target;if(!(e instanceof Element))return;let r=e.closest("[data-navigation-panel]");if(!r||r.hidden)return;let u=r.getAttribute("data-value");if(!u||this.openValue!==u)return;let h=document.activeElement instanceof HTMLElement?document.activeElement:null;if(!h||!r.contains(h))return;if(t.key==="Escape"){t.preventDefault(),this.closeMenu(!0);return}let s=this.getPanelFocusables(r);if(t.key==="ArrowUp"&&h===s[0]){t.preventDefault(),this.getTrigger(u)?.focus();return}!s.length||!Z({items:s,current:h,key:t.key,orientation:"vertical",wrap:!1}).handled||t.preventDefault()}static{lt()}};import{jsx as vt}from"@ecopages/jsx/jsx-runtime";function kt(n,t,e){if(n!==void 0)return n;if(t)return e}function Pt(n,t){if(typeof n=="function"){n(t);return}n!=null&&typeof n=="object"&&"handleEvent"in n&&n.handleEvent(t)}function mt(n){if(n.href!==void 0){let{href:k,target:T,rel:B,download:N,children:_,class:b,variant:z,size:O,square:i,...p}=n;return vt("a",{...p,href:k,target:T,rel:B,download:N,class:D("rui-button",`rui-button--${z??"filled"}`,`rui-button--${O??"md"}`,i&&"rui-button--square",b),children:_})}let{variant:t,size:e,square:r,class:u,children:h,type:s="button",disabled:a,pressed:d,defaultPressed:E=!1,toggle:x=!1,"on:click":S,...M}=n,K=k=>{if(x&&d===void 0){let T=k.currentTarget,B=T.getAttribute("aria-pressed")!=="true";T.setAttribute("aria-pressed",String(B))}Pt(S,k)};return vt("button",{...M,type:s,class:D("rui-button",`rui-button--${t??"filled"}`,`rui-button--${e??"md"}`,r&&"rui-button--square",u),disabled:a,"aria-pressed":kt(d,x,E),"data-toggle":x&&d===void 0?"":void 0,"on:click":x||S?K:void 0,children:h})}function Dt({children:n,class:t,...e}){return I("div",{...e,"data-ref":"bar",class:D("rui-navigation-menu__bar",t),children:n})}function It({children:n,class:t,...e}){return I("div",{...e,"data-ref":"panels",class:D("rui-navigation-menu__panels",t),children:n})}function St({children:n,label:t,...e}){return I("rui-navigation-menu",{...e,label:t,children:I("nav",{class:"rui-navigation-menu","data-ref":"root","aria-label":t||void 0,children:n})})}function Bt({children:n,value:t,variant:e="ghost",class:r,...u}){return I(mt,{...u,variant:e,class:r,"data-navigation-item":!0,"data-navigation-trigger":!0,"data-value":t,children:n})}function _t({children:n,href:t,class:e,...r}){return I("a",{...r,href:t,"data-navigation-item":!0,class:D("rui-button","rui-button--ghost","rui-button--md",e),children:n})}function Vt({children:n,value:t,class:e,...r}){return I("div",{...r,class:e,"data-navigation-panel":!0,"data-value":t,children:n})}export{St as RuiNavigationMenu,Dt as RuiNavigationMenuBar,pt as RuiNavigationMenuElement,_t as RuiNavigationMenuLink,Vt as RuiNavigationMenuPanel,It as RuiNavigationMenuPanels,Bt as RuiNavigationMenuTrigger};
|
|
1
|
+
import{jsx as V}from"@ecopages/jsx/jsx-runtime";function I(...t){return t.filter(Boolean).join(" ")}import{RadiantElement as Ie,customElement as et,onEvent as x,prop as G}from"@ecopages/radiant";var ke="a[href], button, input, select, textarea, [tabindex]";function ce(t){return Array.from(t.querySelectorAll(ke)).filter(e=>!e.hasAttribute("disabled"))}function Q(t,e){t.forEach((n,r)=>{let i=r===e?0:-1;n.tabIndex!==i&&(n.tabIndex=i)})}function Be(t,e){if(!t.length)return null;let n=Math.max(0,Math.min(t.length-1,e));return Q(t,n),t[n]?.focus(),t[n]??null}function Ne(t,e){return t==="Home"?"first":t==="End"?"last":e==="horizontal"?t==="ArrowRight"?"next":t==="ArrowLeft"?"prev":null:t==="ArrowDown"?"next":t==="ArrowUp"?"prev":null}function ee(t){let{items:e,current:n,key:r,orientation:i="horizontal",wrap:a=!0}=t;if(!e.length||!n)return{handled:!1};let o=e.indexOf(n);if(o<0)return{handled:!1};let s=Ne(r,i);if(!s)return{handled:!1};let l=o;s==="first"?l=0:s==="last"?l=e.length-1:s==="next"?l=a?(o+1)%e.length:Math.min(e.length-1,o+1):l=a?(o-1+e.length)%e.length:Math.max(0,o-1);let p=Be(e,l);return p?{handled:!0,index:l,item:p}:{handled:!1}}var Le=/^[A-Za-z][A-Za-z0-9_-]*$/;function fe(t){return Le.test(t)}function qe(t){let e=t.trim();if(fe(e))return e;let n=`rui-${e}`;return e&&fe(n)?n:"rui"}function te(t){let e=typeof crypto.randomUUID=="function"?crypto.randomUUID().replace(/-/g,""):Array.from(crypto.getRandomValues(new Uint8Array(16)),n=>n.toString(16).padStart(2,"0")).join("");return`${qe(t)}-${e}`}var Ue={top:"bottom",bottom:"top",left:"right",right:"left"},je=8;function $e(t){let e=t.indexOf("-");if(e===-1)return{side:t,align:"center"};let n=t.slice(0,e),r=t.slice(e+1);return{side:n,align:r==="start"||r==="end"?r:"center"}}function ge(t){return t==="top"||t==="bottom"?"y":"x"}function de(t,e,n,r,i){let{width:a,height:o}=e,s=0,l=0;switch(n){case"top":l=t.top-o-i;break;case"bottom":l=t.bottom+i;break;case"left":s=t.left-a-i;break;case"right":s=t.right+i;break}return ge(n)==="y"?r==="start"?s=t.left:r==="end"?s=t.right-a:s=t.left+(t.width-a)/2:r==="start"?l=t.top:r==="end"?l=t.bottom-o:l=t.top+(t.height-o)/2,{x:s,y:l}}function Ke(t,e,n,r){let{padding:i,width:a,height:o}=r;return n==="top"?Math.max(0,i-t.y):n==="bottom"?Math.max(0,t.y+e.height-(o-i)):n==="left"?Math.max(0,i-t.x):Math.max(0,t.x+e.width-(a-i))}function he(t,e,n,r){let{padding:i,width:a,height:o}=r;return n==="top"?t.top-i-e.height:n==="bottom"?o-i-e.height-t.bottom:n==="left"?t.left-i-e.width:a-i-e.width-t.right}function We(t,e){return e==="center"?t:`${t}-${e}`}function Ge(t,e,n,r){let{padding:i,width:a,height:o}=r;if(ge(n)==="y"){let l=Math.max(i,a-i-e.width);return{x:Math.min(Math.max(t.x,i),l),y:t.y}}let s=Math.max(i,o-i-e.height);return{x:t.x,y:Math.min(Math.max(t.y,i),s)}}function Ye(t,e,n,r,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:je}){let{side:a,align:o}=$e(n),s=de(t,e,a,o,r),l=Ke(s,e,a,i),p=a,m=s;if(l>0){let w=Ue[a],A=de(t,e,w,o,r),F=he(t,e,a,i);he(t,e,w,i)>F&&(p=w,m=A)}return{coords:Ge(m,e,p,i),placement:We(p,o)}}function ze(t,e,n,r,i={}){let{coords:a,placement:o}=Ye(t.getBoundingClientRect(),{width:e.offsetWidth,height:e.offsetHeight},n,r);return Object.assign(e.style,{position:"fixed",left:`${a.x}px`,top:`${a.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),i.matchAnchorWidth&&(e.style.width=`${t.offsetWidth}px`),e.setAttribute("data-placement",o),o}function pe({anchor:t,floating:e,getPlacement:n,gap:r,matchAnchorWidth:i}){let a=()=>{e.hidden||ze(t,e,n(),r,{matchAnchorWidth:i})};a(),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0);let o=new ResizeObserver(a);return o.observe(t),o.observe(e),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0),o.disconnect()}}function me(t,e=document.body){let n=t.parentNode;if(!n)return{unmount:()=>{}};let r=document.createComment("rui-portal");return n.insertBefore(r,t),e.appendChild(t),{unmount:()=>{let i=r.parentNode;i&&(i.insertBefore(t,r),r.remove())}}}function ve(t,e,n){return n?!!(t?.contains(n)||e?.contains(n)):!1}function ye(t,e,n){return!ve(t,e,n)}var W=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(e){this.config=e}updateConfig(e){this.config={...this.config,...e}}sync(){let e=this.resolveFloating();if(!e)return;if(!this.config.getOpen()){this.teardown(),e.toggleAttribute("hidden",!0);return}let r=this.config.getAnchor();if(!r)return;e.toggleAttribute("hidden",!1),this.config.portal!==!1?this.portalHandle||(this.portalHandle=me(e,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=pe({anchor:r,floating:e,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(e){return ve(this.config.getAnchor(),this.resolveFloating(),e)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let e=this.config.getFloating();return e&&(this.floatingElement=e),e??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};var be,xe,we,Te,Pe,Ae,Ee,Oe,_e,Me;function Ze(t,e,n,r,i,a){var o,s,l,p,m,w,A,F=Symbol.metadata||Symbol.for("Symbol.metadata"),_=Object.defineProperty,M=Object.create,H=[M(null),M(null)],N=e.length;function R(u,v,y){return function(c,f){v&&(f=c,c=t);for(var P=0;P<u.length;P++)f=u[P].apply(c,y?[f]:[]);return y?f:c}}function T(u,v,y,c){if(typeof u!="function"&&(c||u!==void 0))throw new TypeError(v+" must "+(y||"be")+" a function"+(c?"":" or undefined"));return u}function L(u,v,y,c,f,P,C,b,E,O,ne){function Y(h){if(!ne(h))throw new TypeError("Attempted to access private element on non-instance")}var z=[].concat(v[0]),re=v[3],Z=!C,k=f===1,ie=f===3,oe=f===4,U=f===2;function j(h,S,ue){return function(K,le){return S&&(le=K,K=u),ue&&ue(K),d[h].call(K,le)}}if(!Z){var d={},X=[],D=ie?"get":oe||k?"set":"value";if(E?(O||k?d={get:De(function(){return re(this)},c,"get"),set:function(h){v[4](this,h)}}:d[D]=re,O||De(d[D],c,U?"":D)):O||(d=Object.getOwnPropertyDescriptor(u,c)),!O&&!E){if((s=H[+b][c])&&(s^f)!==7)throw Error("Decorating two elements with the same name ("+d[D].name+") is not supported yet");H[+b][c]=f<3?1:f}}for(var g=u,$=z.length-1;$>=0;$-=y?2:1){var ae=T(z[$],"A decorator","be",!0),se=y?z[$-1]:void 0,J={},B={kind:["field","accessor","method","getter","setter","class"][f],name:c,metadata:o,addInitializer:function(h,S){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");T(S,"An initializer","be",!0),P.push(S)}.bind(null,J)};if(Z)s=ae.call(se,g,B),J.v=1,T(s,"class decorators","return")&&(g=s);else if(B.static=b,B.private=E,s=B.access={has:E?ne.bind():function(h){return c in h}},oe||(s.get=E?U?function(h){return Y(h),d.value}:j("get",0,Y):function(h){return h[c]}),U||ie||(s.set=E?j("set",0,Y):function(h,S){h[c]=S}),g=ae.call(se,k?{get:d.get,set:d.set}:d[D],B),J.v=1,k){if(typeof g=="object"&&g)(s=T(g.get,"accessor.get"))&&(d.get=s),(s=T(g.set,"accessor.set"))&&(d.set=s),(s=T(g.init,"accessor.init"))&&X.unshift(s);else if(g!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else T(g,(O?"field":"method")+" decorators","return")&&(O?X.unshift(g):d[D]=g)}return f<2&&C.push(R(X,b,1),R(P,b,0)),O||Z||(E?k?C.splice(-1,0,j("get",b),j("set",b)):C.push(U?d[D]:T.call.bind(d[D])):_(u,c,d)),g}function q(u){return _(u,F,{configurable:!0,enumerable:!0,value:o})}return a!==void 0&&(o=a[F]),o=M(o??null),m=[],w=function(u){u&&m.push(R(u))},A=function(u,v){for(var y=0;y<n.length;y++){var c=n[y],f=c[1],P=7&f;if((8&f)==u&&!P==v){var C=c[2],b=!!c[3],E=16&f;L(u?t:t.prototype,c,E,b?"#"+C:Xe(C),P,P<2?[]:u?p=p||[]:l=l||[],m,!!u,b,v,u&&b?function(O){return Qe(O)===t}:i)}}},A(8,0),A(0,0),A(8,1),A(0,1),w(l),w(p),s=m,N||q(t),{e:s,get c(){var u=[];return N&&[q(t=L(t,[e],r,t.name,5,u)),R(u,1)]}}}function Xe(t){var e=Je(t,"string");return typeof e=="symbol"?e:e+""}function Je(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function De(t,e,n){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch{}return t}function Qe(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var Ve=200,Fe=150,tt=8,He,Ce=class extends Ie{static{({e:[we,Te,Pe,Ae,Ee,Oe,_e,Me,be],c:[He,xe]}=Ze(this,[et("rui-navigation-menu")],[[G({type:String,defaultValue:""}),0,"label"],[G({type:Boolean,reflect:!0,attribute:"open-on-hover",defaultValue:!1}),0,"openOnHover"],[G({type:Number,attribute:"hover-delay",defaultValue:Ve}),0,"hoverDelay"],[G({type:Number,attribute:"close-delay",defaultValue:Fe}),0,"closeDelay"],[x({document:!0,type:"pointerdown"}),2,"onDocumentPointerDown"],[x({document:!0,type:"keydown"}),2,"onDocumentKeydown"],[x({ref:"root",type:"keydown"}),2,"onRootKeydown"],[x({selector:"[data-navigation-trigger]",type:"click"}),2,"onTriggerClick"],[x({selector:"[data-navigation-trigger]",type:"pointerover"}),2,"onTriggerPointerOver"],[x({selector:"[data-navigation-trigger]",type:"pointerout"}),2,"onTriggerPointerOut"],[x({selector:"[data-navigation-panel]",type:"pointerover"}),2,"onPanelPointerOver"],[x({selector:"[data-navigation-panel]",type:"pointerout"}),2,"onPanelPointerOut"],[x({selector:"[data-navigation-item]",type:"pointerover"}),2,"onBarItemPointerOver"],[x({selector:"[data-navigation-item]",type:"keydown"}),2,"onBarItemKeydown"],[x({selector:"[data-navigation-panel]",type:"keydown"}),2,"onPanelKeydown"]],0,void 0,Ie))}label=(be(this),we(this));openOnHover=(Te(this),Pe(this));hoverDelay=(Ae(this),Ee(this));closeDelay=(Oe(this),_e(this));openValue=(Me(this),null);popoverController=null;openTimer=null;closeTimer=null;onConnected(){this.syncPanels(),this.syncBarRovingTabindex(),this.syncPopover()}disconnectedCallback(){this.clearHoverTimers(),this.popoverController?.destroy(),this.popoverController=null,super.disconnectedCallback()}clearHoverTimers(){this.openTimer&&clearTimeout(this.openTimer),this.closeTimer&&clearTimeout(this.closeTimer),this.openTimer=null,this.closeTimer=null}getBarItems(){return Array.from(this.querySelectorAll("[data-navigation-item]"))}syncBarRovingTabindex(){let e=this.getBarItems(),n=Math.max(0,e.findIndex(r=>r.tabIndex===0||r===document.activeElement));Q(e,n)}isBarTrigger(e){return e.hasAttribute("data-navigation-trigger")}getTriggers(){return Array.from(this.querySelectorAll("[data-navigation-trigger]"))}getPanel(e){return this.querySelector(`[data-navigation-panel][data-value="${e}"]`)}getTrigger(e){return this.querySelector(`[data-navigation-trigger][data-value="${e}"]`)}getPanels(){return Array.from(this.querySelectorAll("[data-navigation-panel]"))}getPanelFocusables(e){return ce(e)}getOpenTrigger(){return this.openValue?this.getTrigger(this.openValue):null}getOpenPanel(){return this.openValue?this.getPanel(this.openValue):null}focusPanelEntry(e){let n=this.getPanel(e);if(!n){this.getTrigger(e)?.focus();return}let r=this.getPanelFocusables(n);if(r.length>0){r[0].focus();return}n.hasAttribute("tabindex")||(n.tabIndex=-1),n.focus()}ensurePairIds(e,n){e.id||(e.id=te("rui-navigation-trigger")),n.id||(n.id=te("rui-navigation-panel"))}syncPanels(){for(let e of this.getPanels()){let n=e.getAttribute("data-value")??"",r=this.openValue===n;e.toggleAttribute("hidden",!r),e.dataset.state=r?"open":"closed",e.setAttribute("aria-hidden",String(!r)),e.setAttribute("role","region");let i=this.getTrigger(n);i&&(this.ensurePairIds(i,e),i.setAttribute("aria-expanded",String(r)),i.setAttribute("aria-controls",e.id),e.setAttribute("aria-labelledby",i.id))}for(let e of this.getTriggers()){let n=e.getAttribute("data-value")??"",r=this.openValue===n;e.setAttribute("aria-expanded",String(r)),this.getPanel(n)?e.setAttribute("aria-haspopup","true"):e.removeAttribute("aria-haspopup")}}ensurePopoverController(){return this.popoverController||(this.popoverController=new W({getAnchor:()=>this.getOpenTrigger(),getFloating:()=>this.getOpenPanel(),getOpen:()=>!!this.openValue,getPlacement:()=>"bottom-start",gap:tt,portal:!1})),this.popoverController}syncPopover(){let e=this.ensurePopoverController();e.updateConfig({getAnchor:()=>this.getOpenTrigger(),getFloating:()=>this.getOpenPanel(),getOpen:()=>!!this.openValue}),e.sync()}closeMenu(e=!1){let n=this.openValue;n&&(this.clearHoverTimers(),this.openValue=null,this.syncPanels(),this.syncPopover(),e&&this.getTrigger(n)?.focus())}openPanel(e,n={}){let{focusPanel:r=!0,toggle:i=!0}=n;if(this.openValue===e){i&&this.closeMenu(!0);return}this.clearHoverTimers();let a=this.getOpenPanel(),o=!!(a&&document.activeElement instanceof Node&&a.contains(document.activeElement));this.openValue=e,this.syncPanels(),this.syncPopover(),queueMicrotask(()=>{if(r){this.focusPanelEntry(e);return}o&&this.getTrigger(e)?.focus()})}isTouchPointer(e){return e.pointerType==="touch"}pointerIsInOpenMenu(e){return e instanceof Node?!ye(this.getOpenTrigger(),this.getOpenPanel(),e):!1}triggerValueFromEvent(e){let n=e.target;return n instanceof Element?n.closest("[data-navigation-trigger]")?.getAttribute("data-value")??null:null}scheduleHoverOpen(e){if(!this.openOnHover||!this.getPanel(e)||(this.clearHoverTimers(),this.openValue===e))return;let n=this.openValue?0:Math.max(0,this.hoverDelay);if(n<=0){this.openPanel(e,{focusPanel:!1,toggle:!1});return}this.openTimer=setTimeout(()=>{this.openTimer=null,this.openPanel(e,{focusPanel:!1,toggle:!1})},n)}scheduleHoverClose(){if(!this.openOnHover||!this.openValue){this.clearHoverTimers();return}this.clearHoverTimers();let e=Math.max(0,this.closeDelay);if(e<=0){this.closeMenu();return}this.closeTimer=setTimeout(()=>{this.closeTimer=null,this.closeMenu()},e)}onDocumentPointerDown(e){this.openValue&&(this.pointerIsInOpenMenu(e.target)||this.closeMenu())}onDocumentKeydown(e){if(e.key!=="Escape"||!this.openValue)return;let n=document.activeElement,r=this.getOpenPanel();n&&!this.contains(n)&&!(r&&r.contains(n))||(e.preventDefault(),this.closeMenu(!0))}onRootKeydown(e){e.key==="Escape"&&this.openValue&&(e.preventDefault(),this.closeMenu(!0))}onTriggerClick(e){let n=e.target.closest("[data-navigation-trigger]"),r=n?.getAttribute("data-value");!n||!r||(e.preventDefault(),this.openPanel(r))}onTriggerPointerOver(e){if(!this.openOnHover||this.isTouchPointer(e))return;let n=this.triggerValueFromEvent(e);n&&this.scheduleHoverOpen(n)}onTriggerPointerOut(e){if(!this.openOnHover||this.isTouchPointer(e)||this.pointerIsInOpenMenu(e.relatedTarget))return;let n=e.relatedTarget;n instanceof Element&&n.closest("[data-navigation-trigger]")&&this.contains(n)||this.scheduleHoverClose()}onPanelPointerOver(e){if(!this.openOnHover||this.isTouchPointer(e)||!this.openValue)return;let n=e.target.closest("[data-navigation-panel]");!n||n.getAttribute("data-value")!==this.openValue||this.clearHoverTimers()}onPanelPointerOut(e){!this.openOnHover||this.isTouchPointer(e)||this.pointerIsInOpenMenu(e.relatedTarget)||this.scheduleHoverClose()}onBarItemPointerOver(e){if(!this.openOnHover||this.isTouchPointer(e)||!this.openValue)return;let n=e.target.closest("[data-navigation-item]");!n||this.isBarTrigger(n)||this.scheduleHoverClose()}onBarItemKeydown(e){let n=e.target.closest("[data-navigation-item]");if(!n||this.handleBarTriggerKeydown(e,n))return;let r=ee({items:this.getBarItems(),current:n,key:e.key,orientation:"horizontal",wrap:!1});r.handled&&(e.preventDefault(),this.syncMenuToBarItem(r.item))}handleBarTriggerKeydown(e,n){if(e.key==="Escape")return this.openValue&&(e.preventDefault(),this.closeMenu(!0)),!0;let r=n.getAttribute("data-value");return!this.isBarTrigger(n)||!r?!1:e.key==="Enter"||e.key===" "?(e.preventDefault(),this.openPanel(r),!0):e.key!=="ArrowDown"?!1:(e.preventDefault(),this.openValue===r?this.focusPanelEntry(r):this.openPanel(r),!0)}syncMenuToBarItem(e){if(!this.openValue)return;let n=e.getAttribute("data-value");this.isBarTrigger(e)&&n?this.openPanel(n):this.closeMenu(!1)}onPanelKeydown(e){let n=e.target;if(!(n instanceof Element))return;let r=n.closest("[data-navigation-panel]");if(!r||r.hidden)return;let i=r.getAttribute("data-value");if(!i||this.openValue!==i)return;let a=document.activeElement instanceof HTMLElement?document.activeElement:null;if(!a||!r.contains(a))return;if(e.key==="Escape"){e.preventDefault(),this.closeMenu(!0);return}let o=this.getPanelFocusables(r);if(e.key==="ArrowUp"&&a===o[0]){e.preventDefault(),this.getTrigger(i)?.focus();return}!o.length||!ee({items:o,current:a,key:e.key,orientation:"vertical",wrap:!1}).handled||e.preventDefault()}static{xe()}};import{jsx as Re}from"@ecopages/jsx/jsx-runtime";function nt(t,e,n){if(t!==void 0)return t;if(e)return n}function rt(t,e){if(typeof t=="function"){t(e);return}t!=null&&typeof t=="object"&&"handleEvent"in t&&t.handleEvent(e)}function Se(t){if(t.href!==void 0){let{href:_,target:M,rel:H,download:N,children:R,class:T,variant:L,size:q,square:u,...v}=t;return Re("a",{...v,href:_,target:M,rel:H,download:N,class:I("rui-button",`rui-button--${L??"filled"}`,`rui-button--${q??"md"}`,u&&"rui-button--square",T),children:R})}let{variant:e,size:n,square:r,class:i,children:a,type:o="button",disabled:s,pressed:l,defaultPressed:p=!1,toggle:m=!1,"on:click":w,...A}=t,F=_=>{if(m&&l===void 0){let M=_.currentTarget,H=M.getAttribute("aria-pressed")!=="true";M.setAttribute("aria-pressed",String(H))}rt(w,_)};return Re("button",{...A,type:o,class:I("rui-button",`rui-button--${e??"filled"}`,`rui-button--${n??"md"}`,r&&"rui-button--square",i),disabled:s,"aria-pressed":nt(l,m,p),"data-toggle":m&&l===void 0?"":void 0,"on:click":m||w?F:void 0,children:a})}function it({children:t,class:e,...n}){return V("div",{...n,"data-ref":"bar",class:I("rui-navigation-menu__bar",e),children:t})}function ot({children:t,class:e,...n}){return V("div",{...n,"data-ref":"panels",class:I("rui-navigation-menu__panels",e),children:t})}function at({children:t,label:e,...n}){return V("rui-navigation-menu",{...n,label:e,children:V("nav",{class:"rui-navigation-menu","data-ref":"root","aria-label":e||void 0,children:t})})}function st({children:t,value:e,variant:n="ghost",class:r,...i}){return V(Se,{...i,variant:n,class:r,"data-navigation-item":!0,"data-navigation-trigger":!0,"data-value":e,children:t})}function ut({children:t,href:e,class:n,...r}){return V("a",{...r,href:e,"data-navigation-item":!0,class:I("rui-button","rui-button--ghost","rui-button--md",n),children:t})}function lt({children:t,value:e,class:n,...r}){return V("div",{...r,class:I("rui-navigation-menu__panel","rui-popover","rui-floating",n),"data-navigation-panel":!0,"data-value":e,children:t})}export{Fe as NAVIGATION_MENU_DEFAULT_CLOSE_DELAY,Ve as NAVIGATION_MENU_DEFAULT_HOVER_DELAY,at as RuiNavigationMenu,it as RuiNavigationMenuBar,He as RuiNavigationMenuElement,ut as RuiNavigationMenuLink,lt as RuiNavigationMenuPanel,ot as RuiNavigationMenuPanels,st as RuiNavigationMenuTrigger};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/ui/navigation-menu/navigation-menu.tsx", "../../../../src/lib/cx.ts", "../../../../src/components/ui/navigation-menu/navigation-menu.script.tsx", "../../../../src/lib/focusable-elements.ts", "../../../../src/lib/roving-tabindex.ts", "../../../../src/components/ui/button/button.tsx"],
|
|
4
|
-
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./navigation-menu.script\";\nimport { RuiButton } from \"../button/button\";\nexport function RuiNavigationMenuBar({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-ref\": \"bar\",\n class: cx(\"rui-navigation-menu__bar\", className),\n children\n });\n}\nexport function RuiNavigationMenuPanels({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-ref\": \"panels\",\n class: cx(\"rui-navigation-menu__panels\", className),\n children\n });\n}\nexport function RuiNavigationMenu({\n children,\n label,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-navigation-menu\", {\n ...props,\n label,\n children: /* @__PURE__ */jsx(\"nav\", {\n class: \"rui-navigation-menu\",\n \"data-ref\": \"root\",\n \"aria-label\": label || void 0,\n children\n })\n });\n}\nexport function RuiNavigationMenuTrigger({\n children,\n value,\n variant = \"ghost\",\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(RuiButton, {\n ...props,\n variant,\n class: className,\n \"data-navigation-item\": true,\n \"data-navigation-trigger\": true,\n \"data-value\": value,\n children\n });\n}\nexport function RuiNavigationMenuLink({\n children,\n href,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"a\", {\n ...props,\n href,\n \"data-navigation-item\": true,\n class: cx(\"rui-button\", \"rui-button--ghost\", \"rui-button--md\", className),\n children\n });\n}\nexport function RuiNavigationMenuPanel({\n children,\n value,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: className,\n \"data-navigation-panel\": true,\n \"data-value\": value,\n children\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "let _initProto, _initClass, _init_label, _init_extra_label;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, onEvent, prop } from \"@ecopages/radiant\";\nimport { queryRovingTabindexItems } from \"@/lib/focusable-elements\";\nimport { applyRovingTabindex, navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nlet _RuiNavigationMenu;\nclass RuiNavigationMenu extends RadiantElement {\n static {\n ({\n e: [_init_label, _init_extra_label, _initProto],\n c: [_RuiNavigationMenu, _initClass]\n } = _applyDecs(this, [customElement(\"rui-navigation-menu\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [onEvent({\n document: true,\n type: \"click\"\n }), 2, \"onDocumentClick\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n ref: \"root\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"], [onEvent({\n selector: \"[data-navigation-trigger]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-navigation-item]\",\n type: \"keydown\"\n }), 2, \"onBarItemKeydown\"], [onEvent({\n selector: \"[data-navigation-panel]\",\n type: \"keydown\"\n }), 2, \"onPanelKeydown\"]], 0, void 0, RadiantElement));\n }\n label = (_initProto(this), _init_label(this));\n openValue = (_init_extra_label(this), null);\n onConnected() {\n this.syncPanels();\n this.syncBarRovingTabindex();\n }\n getBarItems() {\n return Array.from(this.querySelectorAll(\"[data-navigation-item]\"));\n }\n syncBarRovingTabindex() {\n const items = this.getBarItems();\n const activeIndex = Math.max(0, items.findIndex(item => item.tabIndex === 0 || item === document.activeElement));\n applyRovingTabindex(items, activeIndex);\n }\n isBarTrigger(item) {\n return item.hasAttribute(\"data-navigation-trigger\");\n }\n getTriggers() {\n return Array.from(this.querySelectorAll(\"[data-navigation-trigger]\"));\n }\n getPanel(value) {\n return this.querySelector(`[data-navigation-panel][data-value=\"${value}\"]`);\n }\n getTrigger(value) {\n return this.querySelector(`[data-navigation-trigger][data-value=\"${value}\"]`);\n }\n getPanels() {\n return Array.from(this.querySelectorAll(\"[data-navigation-panel]\"));\n }\n getPanelFocusables(panel) {\n return queryRovingTabindexItems(panel);\n }\n focusPanelEntry(value) {\n const panel = this.getPanel(value);\n if (!panel) {\n this.getTrigger(value)?.focus();\n return;\n }\n const focusables = this.getPanelFocusables(panel);\n if (focusables.length > 0) {\n focusables[0].focus();\n return;\n }\n if (!panel.hasAttribute(\"tabindex\")) {\n panel.tabIndex = -1;\n }\n panel.focus();\n }\n syncPanels() {\n for (const panel of this.getPanels()) {\n const value = panel.getAttribute(\"data-value\") ?? \"\";\n const open = this.openValue === value;\n panel.toggleAttribute(\"hidden\", !open);\n panel.dataset.state = open ? \"open\" : \"closed\";\n panel.setAttribute(\"aria-hidden\", String(!open));\n const trigger = this.getTrigger(value);\n if (trigger) {\n trigger.setAttribute(\"aria-expanded\", String(open));\n panel.setAttribute(\"role\", \"region\");\n panel.setAttribute(\"aria-labelledby\", trigger.id || `${value}-trigger`);\n if (!trigger.id) {\n trigger.id = `${value}-trigger`;\n }\n }\n }\n for (const trigger of this.getTriggers()) {\n const value = trigger.getAttribute(\"data-value\") ?? \"\";\n const open = this.openValue === value;\n trigger.setAttribute(\"aria-expanded\", String(open));\n if (this.getPanel(value)) {\n trigger.setAttribute(\"aria-haspopup\", \"true\");\n } else {\n trigger.removeAttribute(\"aria-haspopup\");\n }\n }\n }\n closeMenu(returnFocus = false) {\n const previous = this.openValue;\n if (!previous) {\n return;\n }\n this.openValue = null;\n this.syncPanels();\n if (returnFocus) {\n this.getTrigger(previous)?.focus();\n }\n }\n openPanel(value, focusPanel = true) {\n if (this.openValue === value) {\n this.closeMenu(true);\n return;\n }\n this.openValue = value;\n this.syncPanels();\n queueMicrotask(() => {\n if (focusPanel) {\n this.focusPanelEntry(value);\n } else {\n this.getTrigger(value)?.focus();\n }\n });\n }\n getEventElement(event) {\n const target = event.target;\n if (target instanceof Element) {\n return target;\n }\n if (target instanceof Text) {\n return target.parentElement;\n }\n return null;\n }\n isWithinOpenPanel(event) {\n if (!this.openValue) {\n return false;\n }\n const openPanel = this.getPanel(this.openValue);\n if (!openPanel) {\n return false;\n }\n return event.composedPath().some(node => node instanceof Node && openPanel.contains(node));\n }\n onDocumentClick(event) {\n if (!this.openValue) {\n return;\n }\n if (this.isWithinOpenPanel(event)) {\n return;\n }\n const element = this.getEventElement(event);\n if (element && this.contains(element)) {\n return;\n }\n this.closeMenu();\n }\n onDocumentKeydown(event) {\n if (event.key !== \"Escape\" || !this.openValue) {\n return;\n }\n const active = document.activeElement;\n if (active && !this.contains(active)) {\n return;\n }\n event.preventDefault();\n this.closeMenu(true);\n }\n onRootKeydown(event) {\n if (event.key === \"Escape\" && this.openValue) {\n event.preventDefault();\n this.closeMenu(true);\n }\n }\n onTriggerClick(event) {\n const trigger = event.target.closest(\"[data-navigation-trigger]\");\n const value = trigger?.getAttribute(\"data-value\");\n if (!trigger || !value) {\n return;\n }\n event.preventDefault();\n this.openPanel(value);\n }\n onBarItemKeydown(event) {\n const item = event.target.closest(\"[data-navigation-item]\");\n if (!item || this.handleBarTriggerKeydown(event, item)) return;\n const result = navigateRovingTabindex({\n items: this.getBarItems(),\n current: item,\n key: event.key,\n orientation: \"horizontal\",\n wrap: false\n });\n if (!result.handled) return;\n event.preventDefault();\n this.syncMenuToBarItem(result.item);\n }\n handleBarTriggerKeydown(event, item) {\n if (event.key === \"Escape\") {\n if (this.openValue) {\n event.preventDefault();\n this.closeMenu(true);\n }\n return true;\n }\n const value = item.getAttribute(\"data-value\");\n if (!this.isBarTrigger(item) || !value) return false;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n this.openPanel(value);\n return true;\n }\n if (event.key !== \"ArrowDown\") return false;\n event.preventDefault();\n if (this.openValue === value) this.focusPanelEntry(value);else this.openPanel(value);\n return true;\n }\n syncMenuToBarItem(item) {\n if (!this.openValue) return;\n const value = item.getAttribute(\"data-value\");\n if (this.isBarTrigger(item) && value) this.openPanel(value);else this.closeMenu(false);\n }\n onPanelKeydown(event) {\n const target = event.target;\n if (!(target instanceof Element)) {\n return;\n }\n const panel = target.closest(\"[data-navigation-panel]\");\n if (!panel || panel.hidden) {\n return;\n }\n const value = panel.getAttribute(\"data-value\");\n if (!value || this.openValue !== value) {\n return;\n }\n const active = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n if (!active || !panel.contains(active)) {\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n this.closeMenu(true);\n return;\n }\n const focusables = this.getPanelFocusables(panel);\n if (event.key === \"ArrowUp\" && active === focusables[0]) {\n event.preventDefault();\n this.getTrigger(value)?.focus();\n return;\n }\n if (!focusables.length) {\n return;\n }\n const result = navigateRovingTabindex({\n items: focusables,\n current: active,\n key: event.key,\n orientation: \"vertical\",\n wrap: false\n });\n if (!result.handled) {\n return;\n }\n event.preventDefault();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiNavigationMenu as RuiNavigationMenu };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n const next = index === activeIndex ? 0 : -1;\n if (item.tabIndex !== next) {\n item.tabIndex = next;\n }\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nfunction resolveAriaPressed(pressed, toggle, defaultPressed) {\n if (pressed !== void 0) {\n return pressed;\n }\n if (toggle) {\n return defaultPressed;\n }\n return void 0;\n}\nfunction invokeClickListener(listener, event) {\n if (typeof listener === \"function\") {\n listener(event);\n return;\n }\n if (listener != null && typeof listener === \"object\" && \"handleEvent\" in listener) {\n listener.handleEvent(event);\n }\n}\nexport function RuiButton(props) {\n if (props.href !== void 0) {\n const {\n href,\n target,\n rel,\n download,\n children: children2,\n class: className2,\n variant: variant2,\n size: size2,\n square: square2,\n ...host2\n } = props;\n return /* @__PURE__ */jsx(\"a\", {\n ...host2,\n href,\n target,\n rel,\n download,\n class: cx(\"rui-button\", `rui-button--${variant2 ?? \"filled\"}`, `rui-button--${size2 ?? \"md\"}`, square2 && \"rui-button--square\", className2),\n children: children2\n });\n }\n const {\n variant,\n size,\n square,\n class: className,\n children,\n type = \"button\",\n disabled,\n pressed,\n defaultPressed = false,\n toggle = false,\n \"on:click\": onClick,\n ...host\n } = props;\n const handleClick = event => {\n if (toggle && pressed === void 0) {\n const button = event.currentTarget;\n const next = button.getAttribute(\"aria-pressed\") !== \"true\";\n button.setAttribute(\"aria-pressed\", String(next));\n }\n invokeClickListener(onClick, event);\n };\n return /* @__PURE__ */jsx(\"button\", {\n ...host,\n type,\n class: cx(\"rui-button\", `rui-button--${variant ?? \"filled\"}`, `rui-button--${size ?? \"md\"}`, square && \"rui-button--square\", className),\n disabled,\n \"aria-pressed\": resolveAriaPressed(pressed, toggle, defaultPressed),\n \"data-toggle\": toggle && pressed === void 0 ? \"\" : void 0,\n \"on:click\": toggle || onClick ? handleClick : void 0,\n children\n });\n}"],
|
|
5
|
-
"mappings": "AAAA,OAAS,OAAAA,MAAW,4BCAb,SAASC,KAAMC,EAAO,CAC3B,OAAOA,EAAM,OAAO,OAAO,EAAE,KAAK,GAAG,CACvC,CCIA,OAAS,kBAAAC,GAAgB,iBAAAC,GAAe,WAAAC,EAAS,QAAAC,OAAY,oBCN7D,IAAMC,GAA+B,uDAO9B,SAASC,GAAyBC,EAAM,CAC7C,OAAO,MAAM,KAAKA,EAAK,iBAAiBC,EAA4B,CAAC,EAAE,OAAOC,GAAW,CAACA,EAAQ,aAAa,UAAU,CAAC,CAC5H,CCTO,SAASC,EAAoBC,EAAOC,EAAa,CACtDD,EAAM,QAAQ,CAACE,EAAMC,IAAU,CAC7B,IAAMC,EAAOD,IAAUF,EAAc,EAAI,GACrCC,EAAK,WAAaE,IACpBF,EAAK,SAAWE,EAEpB,CAAC,CACH,CACO,SAASC,GAAgBL,EAAOG,EAAO,CAC5C,GAAI,CAACH,EAAM,OAAQ,OAAO,KAC1B,IAAMI,EAAO,KAAK,IAAI,EAAG,KAAK,IAAIJ,EAAM,OAAS,EAAGG,CAAK,CAAC,EAC1D,OAAAJ,EAAoBC,EAAOI,CAAI,EAC/BJ,EAAMI,CAAI,GAAG,MAAM,EACZJ,EAAMI,CAAI,GAAK,IACxB,CACA,SAASE,GAAYC,EAAKC,EAAa,CACrC,OAAID,IAAQ,OAAe,QACvBA,IAAQ,MAAc,OACtBC,IAAgB,aACdD,IAAQ,aAAqB,OAC7BA,IAAQ,YAAoB,OACzB,KAELA,IAAQ,YAAoB,OAC5BA,IAAQ,UAAkB,OACvB,IACT,CACO,SAASE,EAAuBC,EAAS,CAC9C,GAAM,CACJ,MAAAV,EACA,QAAAW,EACA,IAAAJ,EACA,YAAAC,EAAc,aACd,KAAAI,EAAO,EACT,EAAIF,EACJ,GAAI,CAACV,EAAM,QAAU,CAACW,EAAS,MAAO,CACpC,QAAS,EACX,EACA,IAAMR,EAAQH,EAAM,QAAQW,CAAO,EACnC,GAAIR,EAAQ,EAAG,MAAO,CACpB,QAAS,EACX,EACA,IAAMU,EAAQP,GAAYC,EAAKC,CAAW,EAC1C,GAAI,CAACK,EAAO,MAAO,CACjB,QAAS,EACX,EACA,IAAIT,EAAOD,EACPU,IAAU,QAAST,EAAO,EAAWS,IAAU,OAAQT,EAAOJ,EAAM,OAAS,EAAWa,IAAU,OAAQT,EAAOQ,GAAQT,EAAQ,GAAKH,EAAM,OAAS,KAAK,IAAIA,EAAM,OAAS,EAAGG,EAAQ,CAAC,EAAOC,EAAOQ,GAAQT,EAAQ,EAAIH,EAAM,QAAUA,EAAM,OAAS,KAAK,IAAI,EAAGG,EAAQ,CAAC,EACnR,IAAMD,EAAOG,GAAgBL,EAAOI,CAAI,EACxC,OAAKF,EAGE,CACL,QAAS,GACT,MAAOE,EACP,KAAAF,CACF,EAPkB,CAChB,QAAS,EACX,CAMF,CFzDA,IAAIY,GAAYC,GAAYC,GAAaC,GACzC,SAASC,GAAWC,EAAG,EAAGC,EAAG,EAAGC,EAAGC,EAAG,CAAE,IAAIC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAI,OAAO,UAAY,OAAO,IAAI,iBAAiB,EAAGC,EAAI,OAAO,eAAgBC,EAAI,OAAO,OAAQC,EAAI,CAACD,EAAE,IAAI,EAAGA,EAAE,IAAI,CAAC,EAAGE,EAAI,EAAE,OAAQ,SAASC,EAAEC,EAAGhB,EAAGiB,EAAG,CAAE,OAAO,SAAU,EAAGf,EAAG,CAAEF,IAAME,EAAI,EAAG,EAAIH,GAAI,QAASI,EAAI,EAAGA,EAAIa,EAAE,OAAQb,IAAKD,EAAIc,EAAEb,CAAC,EAAE,MAAM,EAAGc,EAAI,CAACf,CAAC,EAAI,CAAC,CAAC,EAAG,OAAOe,EAAIf,EAAI,CAAG,CAAG,CAAE,SAAS,EAAEH,EAAGiB,EAAGhB,EAAGiB,EAAG,CAAE,GAAkB,OAAOlB,GAArB,aAA2BkB,GAAgBlB,IAAX,QAAe,MAAM,IAAI,UAAUiB,EAAI,UAAYhB,GAAK,MAAQ,eAAiBiB,EAAI,GAAK,gBAAgB,EAAG,OAAOlB,CAAG,CAAE,SAASmB,EAASnB,EAAGiB,EAAGhB,EAAGiB,EAAGhB,EAAGC,EAAGG,EAAGC,EAAGC,EAAGC,EAAGC,EAAG,CAAE,SAASC,EAAEX,EAAG,CAAE,GAAI,CAACU,EAAEV,CAAC,EAAG,MAAM,IAAI,UAAU,qDAAqD,CAAG,CAAE,IAAIa,EAAI,CAAC,EAAE,OAAOI,EAAE,CAAC,CAAC,EAAGF,GAAIE,EAAE,CAAC,EAAGG,EAAI,CAACd,EAAGe,EAAUnB,IAAN,EAASoB,GAAUpB,IAAN,EAASqB,GAAUrB,IAAN,EAASsB,EAAUtB,IAAN,EAAS,SAASuB,EAAER,EAAGhB,EAAGiB,GAAG,CAAE,OAAO,SAAUhB,EAAGC,GAAG,CAAE,OAAOF,IAAME,GAAID,EAAGA,EAAIF,GAAIkB,IAAKA,GAAEhB,CAAC,EAAGwB,EAAET,CAAC,EAAE,KAAKf,EAAGC,EAAC,CAAG,CAAG,CAAE,GAAI,CAACiB,EAAG,CAAE,IAAIM,EAAI,CAAC,EAAGC,EAAI,CAAC,EAAGC,EAAIN,GAAI,MAAQC,IAAKF,EAAI,MAAQ,QAAS,GAAIb,GAAKC,GAAKY,EAAIK,EAAI,CAAE,IAAKG,GAAiB,UAAY,CAAE,OAAOd,GAAE,IAAI,CAAG,EAAGG,EAAG,KAAK,EAAG,IAAK,SAAUlB,EAAG,CAAEiB,EAAE,CAAC,EAAE,KAAMjB,CAAC,CAAG,CAAE,EAAI0B,EAAEE,CAAC,EAAIb,GAAGN,GAAKoB,GAAiBH,EAAEE,CAAC,EAAGV,EAAGM,EAAI,GAAKI,CAAC,GAAKnB,IAAMiB,EAAI,OAAO,yBAAyB1B,EAAGkB,CAAC,GAAI,CAACT,GAAK,CAACD,EAAG,CAAE,IAAKH,EAAIS,EAAE,CAACP,CAAC,EAAEW,CAAC,KAAab,EAAIH,KAAX,EAAe,MAAM,MAAM,+CAAiDwB,EAAEE,CAAC,EAAE,KAAO,wBAAwB,EAAGd,EAAE,CAACP,CAAC,EAAEW,CAAC,EAAIhB,EAAI,EAAI,EAAIA,CAAG,CAAE,CAAE,QAAS4B,EAAI9B,EAAG+B,EAAIlB,EAAE,OAAS,EAAGkB,GAAK,EAAGA,GAAK9B,EAAI,EAAI,EAAG,CAAE,IAAI+B,GAAI,EAAEnB,EAAEkB,CAAC,EAAG,cAAe,KAAM,EAAE,EAAGE,GAAIhC,EAAIY,EAAEkB,EAAI,CAAC,EAAI,OAAQG,EAAI,CAAC,EAAGC,EAAI,CAAE,KAAM,CAAC,QAAS,WAAY,SAAU,SAAU,SAAU,OAAO,EAAEjC,CAAC,EAAG,KAAMgB,EAAG,SAAUd,EAAG,eAAgB,SAAUJ,EAAGiB,EAAG,CAAE,GAAIjB,EAAE,EAAG,MAAM,IAAI,UAAU,gEAAgE,EAAG,EAAEiB,EAAG,iBAAkB,KAAM,EAAE,EAAGd,EAAE,KAAKc,CAAC,CAAG,EAAE,KAAK,KAAMiB,CAAC,CAAE,EAAG,GAAId,EAAGf,EAAI2B,GAAE,KAAKC,GAAGH,EAAGK,CAAC,EAAGD,EAAE,EAAI,EAAG,EAAE7B,EAAG,mBAAoB,QAAQ,IAAMyB,EAAIzB,WAAY8B,EAAE,OAAS5B,EAAG4B,EAAE,QAAU3B,EAAGH,EAAI8B,EAAE,OAAS,CAAE,IAAK3B,EAAIE,EAAE,KAAK,EAAI,SAAUV,EAAG,CAAE,OAAOkB,KAAKlB,CAAG,CAAE,EAAGuB,KAAMlB,EAAE,IAAMG,EAAIgB,EAAI,SAAUxB,EAAG,CAAE,OAAOW,EAAEX,CAAC,EAAG0B,EAAE,KAAO,EAAID,EAAE,MAAO,EAAGd,CAAC,EAAI,SAAUX,EAAG,CAAE,OAAOA,EAAEkB,CAAC,CAAG,GAAIM,GAAKF,KAAMjB,EAAE,IAAMG,EAAIiB,EAAE,MAAO,EAAGd,CAAC,EAAI,SAAUX,EAAGiB,EAAG,CAAEjB,EAAEkB,CAAC,EAAID,CAAG,GAAIa,EAAIE,GAAE,KAAKC,GAAGZ,EAAI,CAAE,IAAKK,EAAE,IAAK,IAAKA,EAAE,GAAI,EAAIA,EAAEE,CAAC,EAAGO,CAAC,EAAGD,EAAE,EAAI,EAAGb,GAAK,GAAgB,OAAOS,GAAnB,UAAwBA,GAAIzB,EAAI,EAAEyB,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMrB,IAAKA,EAAI,EAAEyB,EAAE,IAAK,cAAc,KAAOJ,EAAE,IAAMrB,IAAKA,EAAI,EAAEyB,EAAE,KAAM,eAAe,IAAMH,EAAE,QAAQtB,CAAC,UAAsByB,IAAX,OAAc,MAAM,IAAI,UAAU,0FAA0F,OAAU,EAAEA,GAAIrB,EAAI,QAAU,UAAY,cAAe,QAAQ,IAAMA,EAAIkB,EAAE,QAAQG,CAAC,EAAIJ,EAAEE,CAAC,EAAIE,EAAI,CAAE,OAAO5B,EAAI,GAAKI,EAAE,KAAKU,EAAEW,EAAGpB,EAAG,CAAC,EAAGS,EAAEb,EAAGI,EAAG,CAAC,CAAC,EAAGE,GAAKW,IAAMZ,EAAIa,EAAIf,EAAE,OAAO,GAAI,EAAGmB,EAAE,MAAOlB,CAAC,EAAGkB,EAAE,MAAOlB,CAAC,CAAC,EAAID,EAAE,KAAKkB,EAAIE,EAAEE,CAAC,EAAI,EAAE,KAAK,KAAKF,EAAEE,CAAC,CAAC,CAAC,EAAIhB,EAAEZ,EAAGkB,EAAGQ,CAAC,GAAII,CAAG,CAAE,SAASV,EAAEpB,EAAG,CAAE,OAAOY,EAAEZ,EAAGW,EAAG,CAAE,aAAc,GAAI,WAAY,GAAI,MAAOP,CAAE,CAAC,CAAG,CAAE,OAAkBD,IAAX,SAAiBC,EAAID,EAAEQ,CAAC,GAAIP,EAAIS,EAAUT,GAAI,IAAQ,EAAGI,EAAI,CAAC,EAAGC,EAAI,SAAUT,EAAG,CAAEA,GAAKQ,EAAE,KAAKQ,EAAEhB,CAAC,CAAC,CAAG,EAAGU,EAAI,SAAUO,EAAGC,EAAG,CAAE,QAASf,EAAI,EAAGA,EAAIF,EAAE,OAAQE,IAAK,CAAE,IAAIC,EAAIH,EAAEE,CAAC,EAAGE,EAAID,EAAE,CAAC,EAAGK,EAAI,EAAIJ,EAAG,IAAK,EAAIA,IAAMY,GAAK,CAACR,GAAKS,EAAG,CAAE,IAAIR,EAAIN,EAAE,CAAC,EAAGO,EAAI,CAAC,CAACP,EAAE,CAAC,EAAGQ,EAAI,GAAKP,EAAGc,EAASF,EAAIjB,EAAIA,EAAE,UAAWI,EAAGQ,EAAGD,EAAI,IAAMD,EAAI0B,GAAe1B,CAAC,EAAGD,EAAGA,EAAI,EAAI,CAAC,EAAIQ,EAAIV,EAAIA,GAAK,CAAC,EAAID,EAAIA,GAAK,CAAC,EAAGE,EAAG,CAAC,CAACS,EAAGN,EAAGO,EAAGD,GAAKN,EAAI,SAAUM,EAAG,CAAE,OAAOoB,GAAYpB,CAAC,IAAMjB,CAAG,EAAIE,CAAC,CAAG,CAAE,CAAE,EAAGQ,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGA,EAAE,EAAG,CAAC,EAAGD,EAAEH,CAAC,EAAGG,EAAEF,CAAC,EAAGF,EAAIG,EAAGO,GAAKK,EAAEpB,CAAC,EAAG,CAAE,EAAGK,EAAG,IAAI,GAAI,CAAE,IAAIJ,EAAI,CAAC,EAAG,OAAOc,GAAK,CAACK,EAAEpB,EAAImB,EAASnB,EAAG,CAAC,CAAC,EAAG,EAAGA,EAAE,KAAM,EAAGC,CAAC,CAAC,EAAGe,EAAEf,EAAG,CAAC,CAAC,CAAG,CAAE,CAAG,CACn/G,SAASmC,GAAenB,EAAG,CAAE,IAAId,EAAImC,GAAarB,EAAG,QAAQ,EAAG,OAAmB,OAAOd,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASmC,GAAarB,EAAGC,EAAG,CAAE,GAAgB,OAAOD,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAI,EAAIA,EAAE,OAAO,WAAW,EAAG,GAAe,IAAX,OAAc,CAAE,IAAId,EAAI,EAAE,KAAKc,EAAGC,GAAK,SAAS,EAAG,GAAgB,OAAOf,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBe,IAAb,SAAiB,OAAS,QAAQD,CAAC,CAAG,CACvT,SAASY,GAAiB7B,EAAG,EAAGC,EAAG,CAAc,OAAO,GAAnB,WAAyB,GAAK,EAAI,EAAE,aAAe,IAAM,EAAI,IAAM,IAAK,GAAI,CAAE,OAAO,eAAeD,EAAG,OAAQ,CAAE,aAAc,GAAI,MAAOC,EAAIA,EAAI,IAAM,EAAI,CAAE,CAAC,CAAG,MAAY,CAAC,CAAE,OAAOD,CAAG,CAChO,SAASqC,GAAYrC,EAAG,CAAE,GAAI,OAAOA,CAAC,IAAMA,EAAG,MAAM,UAAU,qDAAgEA,IAAT,KAAa,OAAOA,EAAI,OAAO,EAAG,OAAOA,CAAG,CAIlK,IAAIuC,GACEC,GAAN,cAAgCC,EAAe,CAC7C,MAAO,EACJ,CACC,EAAG,CAAC5C,GAAaC,GAAmBH,EAAU,EAC9C,EAAG,CAAC4C,GAAoB3C,EAAU,CACpC,EAAIG,GAAW,KAAM,CAAC2C,GAAc,qBAAqB,CAAC,EAAG,CAAC,CAACC,GAAK,CAClE,KAAM,OACN,aAAc,EAChB,CAAC,EAAG,EAAG,OAAO,EAAG,CAACC,EAAQ,CACxB,SAAU,GACV,KAAM,OACR,CAAC,EAAG,EAAG,iBAAiB,EAAG,CAACA,EAAQ,CAClC,SAAU,GACV,KAAM,SACR,CAAC,EAAG,EAAG,mBAAmB,EAAG,CAACA,EAAQ,CACpC,IAAK,OACL,KAAM,SACR,CAAC,EAAG,EAAG,eAAe,EAAG,CAACA,EAAQ,CAChC,SAAU,4BACV,KAAM,OACR,CAAC,EAAG,EAAG,gBAAgB,EAAG,CAACA,EAAQ,CACjC,SAAU,yBACV,KAAM,SACR,CAAC,EAAG,EAAG,kBAAkB,EAAG,CAACA,EAAQ,CACnC,SAAU,0BACV,KAAM,SACR,CAAC,EAAG,EAAG,gBAAgB,CAAC,EAAG,EAAG,OAAQH,EAAc,EACtD,CACA,OAAS9C,GAAW,IAAI,EAAGE,GAAY,IAAI,GAC3C,WAAaC,GAAkB,IAAI,EAAG,MACtC,aAAc,CACZ,KAAK,WAAW,EAChB,KAAK,sBAAsB,CAC7B,CACA,aAAc,CACZ,OAAO,MAAM,KAAK,KAAK,iBAAiB,wBAAwB,CAAC,CACnE,CACA,uBAAwB,CACtB,IAAM+C,EAAQ,KAAK,YAAY,EACzBC,EAAc,KAAK,IAAI,EAAGD,EAAM,UAAUE,GAAQA,EAAK,WAAa,GAAKA,IAAS,SAAS,aAAa,CAAC,EAC/GC,EAAoBH,EAAOC,CAAW,CACxC,CACA,aAAaC,EAAM,CACjB,OAAOA,EAAK,aAAa,yBAAyB,CACpD,CACA,aAAc,CACZ,OAAO,MAAM,KAAK,KAAK,iBAAiB,2BAA2B,CAAC,CACtE,CACA,SAASE,EAAO,CACd,OAAO,KAAK,cAAc,uCAAuCA,CAAK,IAAI,CAC5E,CACA,WAAWA,EAAO,CAChB,OAAO,KAAK,cAAc,yCAAyCA,CAAK,IAAI,CAC9E,CACA,WAAY,CACV,OAAO,MAAM,KAAK,KAAK,iBAAiB,yBAAyB,CAAC,CACpE,CACA,mBAAmBC,EAAO,CACxB,OAAOC,GAAyBD,CAAK,CACvC,CACA,gBAAgBD,EAAO,CACrB,IAAMC,EAAQ,KAAK,SAASD,CAAK,EACjC,GAAI,CAACC,EAAO,CACV,KAAK,WAAWD,CAAK,GAAG,MAAM,EAC9B,MACF,CACA,IAAMG,EAAa,KAAK,mBAAmBF,CAAK,EAChD,GAAIE,EAAW,OAAS,EAAG,CACzBA,EAAW,CAAC,EAAE,MAAM,EACpB,MACF,CACKF,EAAM,aAAa,UAAU,IAChCA,EAAM,SAAW,IAEnBA,EAAM,MAAM,CACd,CACA,YAAa,CACX,QAAWA,KAAS,KAAK,UAAU,EAAG,CACpC,IAAMD,EAAQC,EAAM,aAAa,YAAY,GAAK,GAC5CG,EAAO,KAAK,YAAcJ,EAChCC,EAAM,gBAAgB,SAAU,CAACG,CAAI,EACrCH,EAAM,QAAQ,MAAQG,EAAO,OAAS,SACtCH,EAAM,aAAa,cAAe,OAAO,CAACG,CAAI,CAAC,EAC/C,IAAMC,EAAU,KAAK,WAAWL,CAAK,EACjCK,IACFA,EAAQ,aAAa,gBAAiB,OAAOD,CAAI,CAAC,EAClDH,EAAM,aAAa,OAAQ,QAAQ,EACnCA,EAAM,aAAa,kBAAmBI,EAAQ,IAAM,GAAGL,CAAK,UAAU,EACjEK,EAAQ,KACXA,EAAQ,GAAK,GAAGL,CAAK,YAG3B,CACA,QAAWK,KAAW,KAAK,YAAY,EAAG,CACxC,IAAML,EAAQK,EAAQ,aAAa,YAAY,GAAK,GAC9CD,EAAO,KAAK,YAAcJ,EAChCK,EAAQ,aAAa,gBAAiB,OAAOD,CAAI,CAAC,EAC9C,KAAK,SAASJ,CAAK,EACrBK,EAAQ,aAAa,gBAAiB,MAAM,EAE5CA,EAAQ,gBAAgB,eAAe,CAE3C,CACF,CACA,UAAUC,EAAc,GAAO,CAC7B,IAAMC,EAAW,KAAK,UACjBA,IAGL,KAAK,UAAY,KACjB,KAAK,WAAW,EACZD,GACF,KAAK,WAAWC,CAAQ,GAAG,MAAM,EAErC,CACA,UAAUP,EAAOQ,EAAa,GAAM,CAClC,GAAI,KAAK,YAAcR,EAAO,CAC5B,KAAK,UAAU,EAAI,EACnB,MACF,CACA,KAAK,UAAYA,EACjB,KAAK,WAAW,EAChB,eAAe,IAAM,CACfQ,EACF,KAAK,gBAAgBR,CAAK,EAE1B,KAAK,WAAWA,CAAK,GAAG,MAAM,CAElC,CAAC,CACH,CACA,gBAAgBS,EAAO,CACrB,IAAMC,EAASD,EAAM,OACrB,OAAIC,aAAkB,QACbA,EAELA,aAAkB,KACbA,EAAO,cAET,IACT,CACA,kBAAkBD,EAAO,CACvB,GAAI,CAAC,KAAK,UACR,MAAO,GAET,IAAME,EAAY,KAAK,SAAS,KAAK,SAAS,EAC9C,OAAKA,EAGEF,EAAM,aAAa,EAAE,KAAKG,GAAQA,aAAgB,MAAQD,EAAU,SAASC,CAAI,CAAC,EAFhF,EAGX,CACA,gBAAgBH,EAAO,CAIrB,GAHI,CAAC,KAAK,WAGN,KAAK,kBAAkBA,CAAK,EAC9B,OAEF,IAAMI,EAAU,KAAK,gBAAgBJ,CAAK,EACtCI,GAAW,KAAK,SAASA,CAAO,GAGpC,KAAK,UAAU,CACjB,CACA,kBAAkBJ,EAAO,CACvB,GAAIA,EAAM,MAAQ,UAAY,CAAC,KAAK,UAClC,OAEF,IAAMK,EAAS,SAAS,cACpBA,GAAU,CAAC,KAAK,SAASA,CAAM,IAGnCL,EAAM,eAAe,EACrB,KAAK,UAAU,EAAI,EACrB,CACA,cAAcA,EAAO,CACfA,EAAM,MAAQ,UAAY,KAAK,YACjCA,EAAM,eAAe,EACrB,KAAK,UAAU,EAAI,EAEvB,CACA,eAAeA,EAAO,CACpB,IAAMJ,EAAUI,EAAM,OAAO,QAAQ,2BAA2B,EAC1DT,EAAQK,GAAS,aAAa,YAAY,EAC5C,CAACA,GAAW,CAACL,IAGjBS,EAAM,eAAe,EACrB,KAAK,UAAUT,CAAK,EACtB,CACA,iBAAiBS,EAAO,CACtB,IAAMX,EAAOW,EAAM,OAAO,QAAQ,wBAAwB,EAC1D,GAAI,CAACX,GAAQ,KAAK,wBAAwBW,EAAOX,CAAI,EAAG,OACxD,IAAMiB,EAASC,EAAuB,CACpC,MAAO,KAAK,YAAY,EACxB,QAASlB,EACT,IAAKW,EAAM,IACX,YAAa,aACb,KAAM,EACR,CAAC,EACIM,EAAO,UACZN,EAAM,eAAe,EACrB,KAAK,kBAAkBM,EAAO,IAAI,EACpC,CACA,wBAAwBN,EAAOX,EAAM,CACnC,GAAIW,EAAM,MAAQ,SAChB,OAAI,KAAK,YACPA,EAAM,eAAe,EACrB,KAAK,UAAU,EAAI,GAEd,GAET,IAAMT,EAAQF,EAAK,aAAa,YAAY,EAC5C,MAAI,CAAC,KAAK,aAAaA,CAAI,GAAK,CAACE,EAAc,GAC3CS,EAAM,MAAQ,SAAWA,EAAM,MAAQ,KACzCA,EAAM,eAAe,EACrB,KAAK,UAAUT,CAAK,EACb,IAELS,EAAM,MAAQ,YAAoB,IACtCA,EAAM,eAAe,EACjB,KAAK,YAAcT,EAAO,KAAK,gBAAgBA,CAAK,EAAO,KAAK,UAAUA,CAAK,EAC5E,GACT,CACA,kBAAkBF,EAAM,CACtB,GAAI,CAAC,KAAK,UAAW,OACrB,IAAME,EAAQF,EAAK,aAAa,YAAY,EACxC,KAAK,aAAaA,CAAI,GAAKE,EAAO,KAAK,UAAUA,CAAK,EAAO,KAAK,UAAU,EAAK,CACvF,CACA,eAAeS,EAAO,CACpB,IAAMC,EAASD,EAAM,OACrB,GAAI,EAAEC,aAAkB,SACtB,OAEF,IAAMT,EAAQS,EAAO,QAAQ,yBAAyB,EACtD,GAAI,CAACT,GAASA,EAAM,OAClB,OAEF,IAAMD,EAAQC,EAAM,aAAa,YAAY,EAC7C,GAAI,CAACD,GAAS,KAAK,YAAcA,EAC/B,OAEF,IAAMc,EAAS,SAAS,yBAAyB,YAAc,SAAS,cAAgB,KACxF,GAAI,CAACA,GAAU,CAACb,EAAM,SAASa,CAAM,EACnC,OAEF,GAAIL,EAAM,MAAQ,SAAU,CAC1BA,EAAM,eAAe,EACrB,KAAK,UAAU,EAAI,EACnB,MACF,CACA,IAAMN,EAAa,KAAK,mBAAmBF,CAAK,EAChD,GAAIQ,EAAM,MAAQ,WAAaK,IAAWX,EAAW,CAAC,EAAG,CACvDM,EAAM,eAAe,EACrB,KAAK,WAAWT,CAAK,GAAG,MAAM,EAC9B,MACF,CACI,CAACG,EAAW,QAUZ,CAPWa,EAAuB,CACpC,MAAOb,EACP,QAASW,EACT,IAAKL,EAAM,IACX,YAAa,WACb,KAAM,EACR,CAAC,EACW,SAGZA,EAAM,eAAe,CACvB,CACA,MAAO,CACL9D,GAAW,CACb,CACF,EG5RA,OAAS,OAAAsE,OAAW,4BAEpB,SAASC,GAAmBC,EAASC,EAAQC,EAAgB,CAC3D,GAAIF,IAAY,OACd,OAAOA,EAET,GAAIC,EACF,OAAOC,CAGX,CACA,SAASC,GAAoBC,EAAUC,EAAO,CAC5C,GAAI,OAAOD,GAAa,WAAY,CAClCA,EAASC,CAAK,EACd,MACF,CACID,GAAY,MAAQ,OAAOA,GAAa,UAAY,gBAAiBA,GACvEA,EAAS,YAAYC,CAAK,CAE9B,CACO,SAASC,GAAUC,EAAO,CAC/B,GAAIA,EAAM,OAAS,OAAQ,CACzB,GAAM,CACJ,KAAAC,EACA,OAAAC,EACA,IAAAC,EACA,SAAAC,EACA,SAAUC,EACV,MAAOC,EACP,QAASC,EACT,KAAMC,EACN,OAAQC,EACR,GAAGC,CACL,EAAIV,EACJ,OAAsBW,GAAI,IAAK,CAC7B,GAAGD,EACH,KAAAT,EACA,OAAAC,EACA,IAAAC,EACA,SAAAC,EACA,MAAOQ,EAAG,aAAc,eAAeL,GAAY,QAAQ,GAAI,eAAeC,GAAS,IAAI,GAAIC,GAAW,qBAAsBH,CAAU,EAC1I,SAAUD,CACZ,CAAC,CACH,CACA,GAAM,CACJ,QAAAQ,EACA,KAAAC,EACA,OAAAC,EACA,MAAOC,EACP,SAAAC,EACA,KAAAC,EAAO,SACP,SAAAC,EACA,QAAA1B,EACA,eAAAE,EAAiB,GACjB,OAAAD,EAAS,GACT,WAAY0B,EACZ,GAAGC,CACL,EAAIrB,EACEsB,EAAcxB,GAAS,CAC3B,GAAIJ,GAAUD,IAAY,OAAQ,CAChC,IAAM8B,EAASzB,EAAM,cACf0B,EAAOD,EAAO,aAAa,cAAc,IAAM,OACrDA,EAAO,aAAa,eAAgB,OAAOC,CAAI,CAAC,CAClD,CACA5B,GAAoBwB,EAAStB,CAAK,CACpC,EACA,OAAsBa,GAAI,SAAU,CAClC,GAAGU,EACH,KAAAH,EACA,MAAON,EAAG,aAAc,eAAeC,GAAW,QAAQ,GAAI,eAAeC,GAAQ,IAAI,GAAIC,GAAU,qBAAsBC,CAAS,EACtI,SAAAG,EACA,eAAgB3B,GAAmBC,EAASC,EAAQC,CAAc,EAClE,cAAeD,GAAUD,IAAY,OAAS,GAAK,OACnD,WAAYC,GAAU0B,EAAUE,EAAc,OAC9C,SAAAL,CACF,CAAC,CACH,CLxEO,SAASQ,GAAqB,CACnC,SAAAC,EACA,MAAOC,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,MAAO,CAC/B,GAAGD,EACH,WAAY,MACZ,MAAOE,EAAG,2BAA4BH,CAAS,EAC/C,SAAAD,CACF,CAAC,CACH,CACO,SAASK,GAAwB,CACtC,SAAAL,EACA,MAAOC,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,MAAO,CAC/B,GAAGD,EACH,WAAY,SACZ,MAAOE,EAAG,8BAA+BH,CAAS,EAClD,SAAAD,CACF,CAAC,CACH,CACO,SAASM,GAAkB,CAChC,SAAAN,EACA,MAAAO,EACA,GAAGL,CACL,EAAG,CACD,OAAsBC,EAAI,sBAAuB,CAC/C,GAAGD,EACH,MAAAK,EACA,SAAyBJ,EAAI,MAAO,CAClC,MAAO,sBACP,WAAY,OACZ,aAAcI,GAAS,OACvB,SAAAP,CACF,CAAC,CACH,CAAC,CACH,CACO,SAASQ,GAAyB,CACvC,SAAAR,EACA,MAAAS,EACA,QAAAC,EAAU,QACV,MAAOT,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAIQ,GAAW,CACnC,GAAGT,EACH,QAAAQ,EACA,MAAOT,EACP,uBAAwB,GACxB,0BAA2B,GAC3B,aAAcQ,EACd,SAAAT,CACF,CAAC,CACH,CACO,SAASY,GAAsB,CACpC,SAAAZ,EACA,KAAAa,EACA,MAAOZ,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,IAAK,CAC7B,GAAGD,EACH,KAAAW,EACA,uBAAwB,GACxB,MAAOT,EAAG,aAAc,oBAAqB,iBAAkBH,CAAS,EACxE,SAAAD,CACF,CAAC,CACH,CACO,SAASc,GAAuB,CACrC,SAAAd,EACA,MAAAS,EACA,MAAOR,EACP,GAAGC,CACL,EAAG,CACD,OAAsBC,EAAI,MAAO,CAC/B,GAAGD,EACH,MAAOD,EACP,wBAAyB,GACzB,aAAcQ,EACd,SAAAT,CACF,CAAC,CACH",
|
|
6
|
-
"names": ["jsx", "cx", "parts", "RadiantElement", "customElement", "onEvent", "prop", "FOCUSABLE_CANDIDATE_SELECTOR", "queryRovingTabindexItems", "root", "FOCUSABLE_CANDIDATE_SELECTOR", "element", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "focusRovingItem", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "_initProto", "_initClass", "_init_label", "_init_extra_label", "_applyDecs", "e", "
|
|
3
|
+
"sources": ["../../../../src/components/ui/navigation-menu/navigation-menu.tsx", "../../../../src/lib/cx.ts", "../../../../src/components/ui/navigation-menu/navigation-menu.script.tsx", "../../../../src/lib/focusable-elements.ts", "../../../../src/lib/roving-tabindex.ts", "../../../../src/lib/unique-id.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/button/button.tsx"],
|
|
4
|
+
"sourcesContent": ["import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nimport \"./navigation-menu.script\";\nimport { RuiButton } from \"../button/button\";\nexport function RuiNavigationMenuBar({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-ref\": \"bar\",\n class: cx(\"rui-navigation-menu__bar\", className),\n children\n });\n}\nexport function RuiNavigationMenuPanels({\n children,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n \"data-ref\": \"panels\",\n class: cx(\"rui-navigation-menu__panels\", className),\n children\n });\n}\nexport function RuiNavigationMenu({\n children,\n label,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-navigation-menu\", {\n ...props,\n label,\n children: /* @__PURE__ */jsx(\"nav\", {\n class: \"rui-navigation-menu\",\n \"data-ref\": \"root\",\n \"aria-label\": label || void 0,\n children\n })\n });\n}\nexport function RuiNavigationMenuTrigger({\n children,\n value,\n variant = \"ghost\",\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(RuiButton, {\n ...props,\n variant,\n class: className,\n \"data-navigation-item\": true,\n \"data-navigation-trigger\": true,\n \"data-value\": value,\n children\n });\n}\nexport function RuiNavigationMenuLink({\n children,\n href,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"a\", {\n ...props,\n href,\n \"data-navigation-item\": true,\n class: cx(\"rui-button\", \"rui-button--ghost\", \"rui-button--md\", className),\n children\n });\n}\nexport function RuiNavigationMenuPanel({\n children,\n value,\n class: className,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"div\", {\n ...props,\n class: cx(\"rui-navigation-menu__panel\", \"rui-popover\", \"rui-floating\", className),\n \"data-navigation-panel\": true,\n \"data-value\": value,\n children\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "let _initProto, _initClass, _init_label, _init_extra_label, _init_openOnHover, _init_extra_openOnHover, _init_hoverDelay, _init_extra_hoverDelay, _init_closeDelay, _init_extra_closeDelay;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { RadiantElement, customElement, onEvent, prop } from \"@ecopages/radiant\";\nimport { queryRovingTabindexItems } from \"@/lib/focusable-elements\";\nimport { applyRovingTabindex, navigateRovingTabindex } from \"@/lib/roving-tabindex\";\nimport { uniqueId } from \"@/lib/unique-id\";\nimport { PopoverController, shouldDismissPopoverPointer } from \"../shared/popover-controller\";\nexport const NAVIGATION_MENU_DEFAULT_HOVER_DELAY = 200;\nexport const NAVIGATION_MENU_DEFAULT_CLOSE_DELAY = 150;\nconst NAVIGATION_MENU_GAP = 8;\nlet _RuiNavigationMenu;\nclass RuiNavigationMenu extends RadiantElement {\n static {\n ({\n e: [_init_label, _init_extra_label, _init_openOnHover, _init_extra_openOnHover, _init_hoverDelay, _init_extra_hoverDelay, _init_closeDelay, _init_extra_closeDelay, _initProto],\n c: [_RuiNavigationMenu, _initClass]\n } = _applyDecs(this, [customElement(\"rui-navigation-menu\")], [[prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"label\"], [prop({\n type: Boolean,\n reflect: true,\n attribute: \"open-on-hover\",\n defaultValue: false\n }), 0, \"openOnHover\"], [prop({\n type: Number,\n attribute: \"hover-delay\",\n defaultValue: NAVIGATION_MENU_DEFAULT_HOVER_DELAY\n }), 0, \"hoverDelay\"], [prop({\n type: Number,\n attribute: \"close-delay\",\n defaultValue: NAVIGATION_MENU_DEFAULT_CLOSE_DELAY\n }), 0, \"closeDelay\"], [onEvent({\n document: true,\n type: \"pointerdown\"\n }), 2, \"onDocumentPointerDown\"], [onEvent({\n document: true,\n type: \"keydown\"\n }), 2, \"onDocumentKeydown\"], [onEvent({\n ref: \"root\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"], [onEvent({\n selector: \"[data-navigation-trigger]\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-navigation-trigger]\",\n type: \"pointerover\"\n }), 2, \"onTriggerPointerOver\"], [onEvent({\n selector: \"[data-navigation-trigger]\",\n type: \"pointerout\"\n }), 2, \"onTriggerPointerOut\"], [onEvent({\n selector: \"[data-navigation-panel]\",\n type: \"pointerover\"\n }), 2, \"onPanelPointerOver\"], [onEvent({\n selector: \"[data-navigation-panel]\",\n type: \"pointerout\"\n }), 2, \"onPanelPointerOut\"], [onEvent({\n selector: \"[data-navigation-item]\",\n type: \"pointerover\"\n }), 2, \"onBarItemPointerOver\"], [onEvent({\n selector: \"[data-navigation-item]\",\n type: \"keydown\"\n }), 2, \"onBarItemKeydown\"], [onEvent({\n selector: \"[data-navigation-panel]\",\n type: \"keydown\"\n }), 2, \"onPanelKeydown\"]], 0, void 0, RadiantElement));\n }\n label = (_initProto(this), _init_label(this));\n openOnHover = (_init_extra_label(this), _init_openOnHover(this));\n hoverDelay = (_init_extra_openOnHover(this), _init_hoverDelay(this));\n closeDelay = (_init_extra_hoverDelay(this), _init_closeDelay(this));\n openValue = (_init_extra_closeDelay(this), null);\n popoverController = null;\n openTimer = null;\n closeTimer = null;\n onConnected() {\n this.syncPanels();\n this.syncBarRovingTabindex();\n this.syncPopover();\n }\n disconnectedCallback() {\n this.clearHoverTimers();\n this.popoverController?.destroy();\n this.popoverController = null;\n super.disconnectedCallback();\n }\n clearHoverTimers() {\n if (this.openTimer) clearTimeout(this.openTimer);\n if (this.closeTimer) clearTimeout(this.closeTimer);\n this.openTimer = null;\n this.closeTimer = null;\n }\n getBarItems() {\n return Array.from(this.querySelectorAll(\"[data-navigation-item]\"));\n }\n syncBarRovingTabindex() {\n const items = this.getBarItems();\n const activeIndex = Math.max(0, items.findIndex(item => item.tabIndex === 0 || item === document.activeElement));\n applyRovingTabindex(items, activeIndex);\n }\n isBarTrigger(item) {\n return item.hasAttribute(\"data-navigation-trigger\");\n }\n getTriggers() {\n return Array.from(this.querySelectorAll(\"[data-navigation-trigger]\"));\n }\n getPanel(value) {\n return this.querySelector(`[data-navigation-panel][data-value=\"${value}\"]`);\n }\n getTrigger(value) {\n return this.querySelector(`[data-navigation-trigger][data-value=\"${value}\"]`);\n }\n getPanels() {\n return Array.from(this.querySelectorAll(\"[data-navigation-panel]\"));\n }\n getPanelFocusables(panel) {\n return queryRovingTabindexItems(panel);\n }\n getOpenTrigger() {\n return this.openValue ? this.getTrigger(this.openValue) : null;\n }\n getOpenPanel() {\n return this.openValue ? this.getPanel(this.openValue) : null;\n }\n focusPanelEntry(value) {\n const panel = this.getPanel(value);\n if (!panel) {\n this.getTrigger(value)?.focus();\n return;\n }\n const focusables = this.getPanelFocusables(panel);\n if (focusables.length > 0) {\n focusables[0].focus();\n return;\n }\n if (!panel.hasAttribute(\"tabindex\")) {\n panel.tabIndex = -1;\n }\n panel.focus();\n }\n ensurePairIds(trigger, panel) {\n if (!trigger.id) {\n trigger.id = uniqueId(\"rui-navigation-trigger\");\n }\n if (!panel.id) {\n panel.id = uniqueId(\"rui-navigation-panel\");\n }\n }\n syncPanels() {\n for (const panel of this.getPanels()) {\n const value = panel.getAttribute(\"data-value\") ?? \"\";\n const open = this.openValue === value;\n panel.toggleAttribute(\"hidden\", !open);\n panel.dataset.state = open ? \"open\" : \"closed\";\n panel.setAttribute(\"aria-hidden\", String(!open));\n panel.setAttribute(\"role\", \"region\");\n const trigger = this.getTrigger(value);\n if (trigger) {\n this.ensurePairIds(trigger, panel);\n trigger.setAttribute(\"aria-expanded\", String(open));\n trigger.setAttribute(\"aria-controls\", panel.id);\n panel.setAttribute(\"aria-labelledby\", trigger.id);\n }\n }\n for (const trigger of this.getTriggers()) {\n const value = trigger.getAttribute(\"data-value\") ?? \"\";\n const open = this.openValue === value;\n trigger.setAttribute(\"aria-expanded\", String(open));\n if (this.getPanel(value)) {\n trigger.setAttribute(\"aria-haspopup\", \"true\");\n } else {\n trigger.removeAttribute(\"aria-haspopup\");\n }\n }\n }\n ensurePopoverController() {\n if (!this.popoverController) {\n this.popoverController = new PopoverController({\n getAnchor: () => this.getOpenTrigger(),\n getFloating: () => this.getOpenPanel(),\n getOpen: () => Boolean(this.openValue),\n getPlacement: () => \"bottom-start\",\n gap: NAVIGATION_MENU_GAP,\n portal: false\n });\n }\n return this.popoverController;\n }\n syncPopover() {\n const controller = this.ensurePopoverController();\n controller.updateConfig({\n getAnchor: () => this.getOpenTrigger(),\n getFloating: () => this.getOpenPanel(),\n getOpen: () => Boolean(this.openValue)\n });\n controller.sync();\n }\n closeMenu(returnFocus = false) {\n const previous = this.openValue;\n if (!previous) {\n return;\n }\n this.clearHoverTimers();\n this.openValue = null;\n this.syncPanels();\n this.syncPopover();\n if (returnFocus) {\n this.getTrigger(previous)?.focus();\n }\n }\n openPanel(value, options = {}) {\n const {\n focusPanel = true,\n toggle = true\n } = options;\n if (this.openValue === value) {\n if (toggle) {\n this.closeMenu(true);\n }\n return;\n }\n this.clearHoverTimers();\n const previousPanel = this.getOpenPanel();\n const previousHadFocus = Boolean(previousPanel && document.activeElement instanceof Node && previousPanel.contains(document.activeElement));\n this.openValue = value;\n this.syncPanels();\n this.syncPopover();\n queueMicrotask(() => {\n if (focusPanel) {\n this.focusPanelEntry(value);\n return;\n }\n if (previousHadFocus) {\n this.getTrigger(value)?.focus();\n }\n });\n }\n isTouchPointer(event) {\n return event.pointerType === \"touch\";\n }\n pointerIsInOpenMenu(node) {\n if (!(node instanceof Node)) {\n return false;\n }\n return !shouldDismissPopoverPointer(this.getOpenTrigger(), this.getOpenPanel(), node);\n }\n triggerValueFromEvent(event) {\n const target = event.target;\n if (!(target instanceof Element)) {\n return null;\n }\n const trigger = target.closest(\"[data-navigation-trigger]\");\n return trigger?.getAttribute(\"data-value\") ?? null;\n }\n scheduleHoverOpen(value) {\n if (!this.openOnHover || !this.getPanel(value)) {\n return;\n }\n this.clearHoverTimers();\n if (this.openValue === value) {\n return;\n }\n const delay = this.openValue ? 0 : Math.max(0, this.hoverDelay);\n if (delay <= 0) {\n this.openPanel(value, {\n focusPanel: false,\n toggle: false\n });\n return;\n }\n this.openTimer = setTimeout(() => {\n this.openTimer = null;\n this.openPanel(value, {\n focusPanel: false,\n toggle: false\n });\n }, delay);\n }\n scheduleHoverClose() {\n if (!this.openOnHover || !this.openValue) {\n this.clearHoverTimers();\n return;\n }\n this.clearHoverTimers();\n const delay = Math.max(0, this.closeDelay);\n if (delay <= 0) {\n this.closeMenu();\n return;\n }\n this.closeTimer = setTimeout(() => {\n this.closeTimer = null;\n this.closeMenu();\n }, delay);\n }\n onDocumentPointerDown(event) {\n if (!this.openValue) {\n return;\n }\n if (this.pointerIsInOpenMenu(event.target)) {\n return;\n }\n this.closeMenu();\n }\n onDocumentKeydown(event) {\n if (event.key !== \"Escape\" || !this.openValue) {\n return;\n }\n const active = document.activeElement;\n const panel = this.getOpenPanel();\n if (active && !this.contains(active) && !(panel && panel.contains(active))) {\n return;\n }\n event.preventDefault();\n this.closeMenu(true);\n }\n onRootKeydown(event) {\n if (event.key === \"Escape\" && this.openValue) {\n event.preventDefault();\n this.closeMenu(true);\n }\n }\n onTriggerClick(event) {\n const trigger = event.target.closest(\"[data-navigation-trigger]\");\n const value = trigger?.getAttribute(\"data-value\");\n if (!trigger || !value) {\n return;\n }\n event.preventDefault();\n this.openPanel(value);\n }\n onTriggerPointerOver(event) {\n if (!this.openOnHover || this.isTouchPointer(event)) {\n return;\n }\n const value = this.triggerValueFromEvent(event);\n if (!value) {\n return;\n }\n this.scheduleHoverOpen(value);\n }\n onTriggerPointerOut(event) {\n if (!this.openOnHover || this.isTouchPointer(event)) {\n return;\n }\n if (this.pointerIsInOpenMenu(event.relatedTarget)) {\n return;\n }\n const related = event.relatedTarget;\n if (related instanceof Element && related.closest(\"[data-navigation-trigger]\") && this.contains(related)) {\n return;\n }\n this.scheduleHoverClose();\n }\n onPanelPointerOver(event) {\n if (!this.openOnHover || this.isTouchPointer(event) || !this.openValue) {\n return;\n }\n const panel = event.target.closest(\"[data-navigation-panel]\");\n if (!panel || panel.getAttribute(\"data-value\") !== this.openValue) {\n return;\n }\n this.clearHoverTimers();\n }\n onPanelPointerOut(event) {\n if (!this.openOnHover || this.isTouchPointer(event)) {\n return;\n }\n if (this.pointerIsInOpenMenu(event.relatedTarget)) {\n return;\n }\n this.scheduleHoverClose();\n }\n onBarItemPointerOver(event) {\n if (!this.openOnHover || this.isTouchPointer(event) || !this.openValue) {\n return;\n }\n const item = event.target.closest(\"[data-navigation-item]\");\n if (!item || this.isBarTrigger(item)) {\n return;\n }\n this.scheduleHoverClose();\n }\n onBarItemKeydown(event) {\n const item = event.target.closest(\"[data-navigation-item]\");\n if (!item || this.handleBarTriggerKeydown(event, item)) return;\n const result = navigateRovingTabindex({\n items: this.getBarItems(),\n current: item,\n key: event.key,\n orientation: \"horizontal\",\n wrap: false\n });\n if (!result.handled) return;\n event.preventDefault();\n this.syncMenuToBarItem(result.item);\n }\n handleBarTriggerKeydown(event, item) {\n if (event.key === \"Escape\") {\n if (this.openValue) {\n event.preventDefault();\n this.closeMenu(true);\n }\n return true;\n }\n const value = item.getAttribute(\"data-value\");\n if (!this.isBarTrigger(item) || !value) return false;\n if (event.key === \"Enter\" || event.key === \" \") {\n event.preventDefault();\n this.openPanel(value);\n return true;\n }\n if (event.key !== \"ArrowDown\") return false;\n event.preventDefault();\n if (this.openValue === value) this.focusPanelEntry(value);else this.openPanel(value);\n return true;\n }\n syncMenuToBarItem(item) {\n if (!this.openValue) return;\n const value = item.getAttribute(\"data-value\");\n if (this.isBarTrigger(item) && value) this.openPanel(value);else this.closeMenu(false);\n }\n onPanelKeydown(event) {\n const target = event.target;\n if (!(target instanceof Element)) {\n return;\n }\n const panel = target.closest(\"[data-navigation-panel]\");\n if (!panel || panel.hidden) {\n return;\n }\n const value = panel.getAttribute(\"data-value\");\n if (!value || this.openValue !== value) {\n return;\n }\n const active = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n if (!active || !panel.contains(active)) {\n return;\n }\n if (event.key === \"Escape\") {\n event.preventDefault();\n this.closeMenu(true);\n return;\n }\n const focusables = this.getPanelFocusables(panel);\n if (event.key === \"ArrowUp\" && active === focusables[0]) {\n event.preventDefault();\n this.getTrigger(value)?.focus();\n return;\n }\n if (!focusables.length) {\n return;\n }\n const result = navigateRovingTabindex({\n items: focusables,\n current: active,\n key: event.key,\n orientation: \"vertical\",\n wrap: false\n });\n if (!result.handled) {\n return;\n }\n event.preventDefault();\n }\n static {\n _initClass();\n }\n}\nexport { _RuiNavigationMenu as RuiNavigationMenu };", "const FOCUSABLE_CANDIDATE_SELECTOR = \"a[href], button, input, select, textarea, [tabindex]\";\nfunction isFocusableCandidate(element) {\n return !element.hasAttribute(\"disabled\") && element.getAttribute(\"tabindex\") !== \"-1\";\n}\nexport function queryFocusableCandidates(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(isFocusableCandidate);\n}\nexport function queryRovingTabindexItems(root) {\n return Array.from(root.querySelectorAll(FOCUSABLE_CANDIDATE_SELECTOR)).filter(element => !element.hasAttribute(\"disabled\"));\n}\nexport function findFirstFocusableCandidate(root) {\n return queryFocusableCandidates(root)[0];\n}\nfunction isVisible(element) {\n return element.getClientRects().length > 0 && !element.closest(\"[hidden]\");\n}\nexport function getFocusableElements(root) {\n return queryFocusableCandidates(root).filter(isVisible);\n}", "export function applyRovingTabindex(items, activeIndex) {\n items.forEach((item, index) => {\n const next = index === activeIndex ? 0 : -1;\n if (item.tabIndex !== next) {\n item.tabIndex = next;\n }\n });\n}\nexport function focusRovingItem(items, index) {\n if (!items.length) return null;\n const next = Math.max(0, Math.min(items.length - 1, index));\n applyRovingTabindex(items, next);\n items[next]?.focus();\n return items[next] ?? null;\n}\nfunction deltaForKey(key, orientation) {\n if (key === \"Home\") return \"first\";\n if (key === \"End\") return \"last\";\n if (orientation === \"horizontal\") {\n if (key === \"ArrowRight\") return \"next\";\n if (key === \"ArrowLeft\") return \"prev\";\n return null;\n }\n if (key === \"ArrowDown\") return \"next\";\n if (key === \"ArrowUp\") return \"prev\";\n return null;\n}\nexport function navigateRovingTabindex(options) {\n const {\n items,\n current,\n key,\n orientation = \"horizontal\",\n wrap = true\n } = options;\n if (!items.length || !current) return {\n handled: false\n };\n const index = items.indexOf(current);\n if (index < 0) return {\n handled: false\n };\n const delta = deltaForKey(key, orientation);\n if (!delta) return {\n handled: false\n };\n let next = index;\n if (delta === \"first\") next = 0;else if (delta === \"last\") next = items.length - 1;else if (delta === \"next\") next = wrap ? (index + 1) % items.length : Math.min(items.length - 1, index + 1);else next = wrap ? (index - 1 + items.length) % items.length : Math.max(0, index - 1);\n const item = focusRovingItem(items, next);\n if (!item) return {\n handled: false\n };\n return {\n handled: true,\n index: next,\n item\n };\n}", "const CSS_SAFE_ID = /^[A-Za-z][A-Za-z0-9_-]*$/;\nexport function isCssSafeId(value) {\n return CSS_SAFE_ID.test(value);\n}\nfunction cssSafePrefix(prefix) {\n const trimmed = prefix.trim();\n if (isCssSafeId(trimmed)) {\n return trimmed;\n }\n const prefixed = `rui-${trimmed}`;\n if (trimmed && isCssSafeId(prefixed)) {\n return prefixed;\n }\n return \"rui\";\n}\nexport function uniqueId(prefix) {\n const token = typeof crypto.randomUUID === \"function\" ? crypto.randomUUID().replace(/-/g, \"\") : Array.from(crypto.getRandomValues(new Uint8Array(16)), byte => byte.toString(16).padStart(2, \"0\")).join(\"\");\n return `${cssSafePrefix(prefix)}-${token}`;\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.toggleAttribute(\"hidden\", true);\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.toggleAttribute(\"hidden\", false);\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nfunction resolveAriaPressed(pressed, toggle, defaultPressed) {\n if (pressed !== void 0) {\n return pressed;\n }\n if (toggle) {\n return defaultPressed;\n }\n return void 0;\n}\nfunction invokeClickListener(listener, event) {\n if (typeof listener === \"function\") {\n listener(event);\n return;\n }\n if (listener != null && typeof listener === \"object\" && \"handleEvent\" in listener) {\n listener.handleEvent(event);\n }\n}\nexport function RuiButton(props) {\n if (props.href !== void 0) {\n const {\n href,\n target,\n rel,\n download,\n children: children2,\n class: className2,\n variant: variant2,\n size: size2,\n square: square2,\n ...host2\n } = props;\n return /* @__PURE__ */jsx(\"a\", {\n ...host2,\n href,\n target,\n rel,\n download,\n class: cx(\"rui-button\", `rui-button--${variant2 ?? \"filled\"}`, `rui-button--${size2 ?? \"md\"}`, square2 && \"rui-button--square\", className2),\n children: children2\n });\n }\n const {\n variant,\n size,\n square,\n class: className,\n children,\n type = \"button\",\n disabled,\n pressed,\n defaultPressed = false,\n toggle = false,\n \"on:click\": onClick,\n ...host\n } = props;\n const handleClick = event => {\n if (toggle && pressed === void 0) {\n const button = event.currentTarget;\n const next = button.getAttribute(\"aria-pressed\") !== \"true\";\n button.setAttribute(\"aria-pressed\", String(next));\n }\n invokeClickListener(onClick, event);\n };\n return /* @__PURE__ */jsx(\"button\", {\n ...host,\n type,\n class: cx(\"rui-button\", `rui-button--${variant ?? \"filled\"}`, `rui-button--${size ?? \"md\"}`, square && \"rui-button--square\", className),\n disabled,\n \"aria-pressed\": resolveAriaPressed(pressed, toggle, defaultPressed),\n \"data-toggle\": toggle && pressed === void 0 ? \"\" : void 0,\n \"on:click\": toggle || onClick ? handleClick : void 0,\n children\n });\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "cx", "parts", "RadiantElement", "customElement", "onEvent", "prop", "FOCUSABLE_CANDIDATE_SELECTOR", "queryRovingTabindexItems", "root", "FOCUSABLE_CANDIDATE_SELECTOR", "element", "applyRovingTabindex", "items", "activeIndex", "item", "index", "next", "focusRovingItem", "deltaForKey", "key", "orientation", "navigateRovingTabindex", "options", "current", "wrap", "delta", "CSS_SAFE_ID", "isCssSafeId", "value", "cssSafePrefix", "prefix", "trimmed", "prefixed", "uniqueId", "token", "byte", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverPointer", "anchor", "floating", "target", "popoverContains", "PopoverController", "config", "patch", "mountPortal", "attachFloating", "node", "configuredFloating", "_initProto", "_initClass", "_init_label", "_init_extra_label", "_init_openOnHover", "_init_extra_openOnHover", "_init_hoverDelay", "_init_extra_hoverDelay", "_init_closeDelay", "_init_extra_closeDelay", "_applyDecs", "e", "t", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "NAVIGATION_MENU_DEFAULT_HOVER_DELAY", "NAVIGATION_MENU_DEFAULT_CLOSE_DELAY", "NAVIGATION_MENU_GAP", "_RuiNavigationMenu", "RuiNavigationMenu", "RadiantElement", "customElement", "prop", "onEvent", "items", "activeIndex", "item", "applyRovingTabindex", "value", "panel", "queryRovingTabindexItems", "focusables", "trigger", "uniqueId", "open", "PopoverController", "controller", "returnFocus", "previous", "options", "focusPanel", "toggle", "previousPanel", "previousHadFocus", "event", "node", "shouldDismissPopoverPointer", "target", "delay", "active", "related", "result", "navigateRovingTabindex", "jsx", "resolveAriaPressed", "pressed", "toggle", "defaultPressed", "invokeClickListener", "listener", "event", "RuiButton", "props", "href", "target", "rel", "download", "children2", "className2", "variant2", "size2", "square2", "host2", "jsx", "cx", "variant", "size", "square", "className", "children", "type", "disabled", "onClick", "host", "handleClick", "button", "next", "RuiNavigationMenuBar", "children", "className", "props", "jsx", "cx", "RuiNavigationMenuPanels", "RuiNavigationMenu", "label", "RuiNavigationMenuTrigger", "value", "variant", "RuiButton", "RuiNavigationMenuLink", "href", "RuiNavigationMenuPanel"]
|
|
7
7
|
}
|
|
@@ -1,42 +1,41 @@
|
|
|
1
1
|
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
2
2
|
@layer properties;
|
|
3
3
|
rui-navigation-menu {
|
|
4
|
+
--rui-navigation-menu-panel-min-width: 12rem;
|
|
5
|
+
--rui-navigation-menu-panel-padding: var(--space-inset);
|
|
6
|
+
--rui-navigation-menu-bar-surface: transparent;
|
|
7
|
+
--rui-navigation-menu-bar-border-color: transparent;
|
|
8
|
+
--rui-navigation-menu-bar-shadow: none;
|
|
9
|
+
--rui-navigation-menu-bar-radius: var(--radius-container);
|
|
10
|
+
--rui-navigation-menu-bar-padding-x: 0px;
|
|
11
|
+
--rui-navigation-menu-bar-padding-y: 0px;
|
|
12
|
+
position: relative;
|
|
4
13
|
display: block;
|
|
5
14
|
width: 100%;
|
|
6
15
|
}
|
|
7
16
|
@layer components {
|
|
8
17
|
.rui-navigation-menu {
|
|
18
|
+
position: relative;
|
|
9
19
|
display: flex;
|
|
10
20
|
flex-direction: column;
|
|
11
|
-
overflow: hidden;
|
|
12
|
-
border-radius: var(--radius-container, var(--radius-container));
|
|
13
|
-
border-style: var(--tw-border-style);
|
|
14
|
-
border-width: 1px;
|
|
15
|
-
border-color: var(--color-border, var(--border));
|
|
16
|
-
background-color: var(--color-surface, var(--surface));
|
|
17
|
-
--tw-shadow: var(--shadow-control);
|
|
18
|
-
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
19
21
|
}
|
|
20
22
|
.rui-navigation-menu__bar {
|
|
21
23
|
display: flex;
|
|
22
24
|
flex-wrap: wrap;
|
|
23
25
|
align-items: center;
|
|
24
26
|
gap: var(--spacing-1, var(--space-1));
|
|
25
|
-
|
|
26
|
-
border
|
|
27
|
-
border-
|
|
28
|
-
|
|
29
|
-
padding-inline: var(--
|
|
30
|
-
padding-block: var(--
|
|
27
|
+
background-color: var(--rui-navigation-menu-bar-surface);
|
|
28
|
+
border: 1px solid var(--rui-navigation-menu-bar-border-color);
|
|
29
|
+
border-radius: var(--rui-navigation-menu-bar-radius);
|
|
30
|
+
box-shadow: var(--rui-navigation-menu-bar-shadow);
|
|
31
|
+
padding-inline: var(--rui-navigation-menu-bar-padding-x);
|
|
32
|
+
padding-block: var(--rui-navigation-menu-bar-padding-y);
|
|
31
33
|
}
|
|
32
34
|
.rui-navigation-menu__bar .rui-button,
|
|
33
35
|
.rui-navigation-menu__bar a.rui-button {
|
|
34
36
|
border-radius: var(--radius-container, var(--radius-container));
|
|
35
37
|
text-decoration-line: none;
|
|
36
38
|
}
|
|
37
|
-
.rui-navigation-menu [data-navigation-trigger] {
|
|
38
|
-
position: relative;
|
|
39
|
-
}
|
|
40
39
|
.rui-navigation-menu [data-navigation-trigger][aria-expanded='true'] {
|
|
41
40
|
background-color: var(--color-primary-container, var(--primary-container));
|
|
42
41
|
--tw-font-weight: var(--font-weight-medium, var(--weight-medium));
|
|
@@ -52,29 +51,28 @@ rui-navigation-menu {
|
|
|
52
51
|
--tw-ring-inset: inset;
|
|
53
52
|
}
|
|
54
53
|
.rui-navigation-menu__panels {
|
|
55
|
-
|
|
54
|
+
display: contents;
|
|
56
55
|
}
|
|
57
|
-
.rui-navigation-
|
|
58
|
-
display: block;
|
|
59
|
-
padding-inline: var(--spacing-5, var(--space-5));
|
|
60
|
-
padding-block: var(--spacing-5, var(--space-5));
|
|
56
|
+
.rui-navigation-menu__panel {
|
|
61
57
|
font-size: var(--text-sm, var(--text-sm));
|
|
62
58
|
line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
|
|
63
59
|
color: var(--color-on-background, var(--on-background));
|
|
60
|
+
min-inline-size: var(--rui-navigation-menu-panel-min-width);
|
|
61
|
+
padding: var(--rui-navigation-menu-panel-padding);
|
|
64
62
|
}
|
|
65
|
-
.rui-navigation-
|
|
63
|
+
.rui-navigation-menu__panel[hidden] {
|
|
66
64
|
display: none;
|
|
67
65
|
}
|
|
68
|
-
.rui-navigation-
|
|
66
|
+
.rui-navigation-menu__panel > p {
|
|
69
67
|
margin: 0px;
|
|
70
68
|
--tw-leading: var(--leading-relaxed, 1.625);
|
|
71
69
|
line-height: var(--leading-relaxed, 1.625);
|
|
72
70
|
color: var(--color-on-surface, var(--on-surface));
|
|
73
71
|
}
|
|
74
|
-
.rui-navigation-
|
|
72
|
+
.rui-navigation-menu__panel rui-grid {
|
|
75
73
|
max-width: var(--container-3xl, 48rem);
|
|
76
74
|
}
|
|
77
|
-
.rui-navigation-
|
|
75
|
+
.rui-navigation-menu__panel rui-disclosure {
|
|
78
76
|
margin-top: var(--spacing-4, var(--space-4));
|
|
79
77
|
display: block;
|
|
80
78
|
border-top-style: var(--tw-border-style);
|
|
@@ -82,14 +80,14 @@ rui-navigation-menu {
|
|
|
82
80
|
border-color: var(--color-border, var(--border));
|
|
83
81
|
padding-top: var(--spacing-3, var(--space-3));
|
|
84
82
|
}
|
|
85
|
-
.rui-navigation-
|
|
83
|
+
.rui-navigation-menu__panel rui-disclosure + rui-disclosure {
|
|
86
84
|
margin-top: var(--spacing-1, var(--space-1));
|
|
87
85
|
border-top-style: var(--tw-border-style);
|
|
88
86
|
border-top-width: 1px;
|
|
89
87
|
border-color: var(--color-border, var(--border));
|
|
90
88
|
padding-top: var(--spacing-1, var(--space-1));
|
|
91
89
|
}
|
|
92
|
-
.rui-navigation-
|
|
90
|
+
.rui-navigation-menu__panel .rui-disclosure__panel:not([hidden]) {
|
|
93
91
|
display: block;
|
|
94
92
|
}
|
|
95
93
|
.rui-navigation-menu__megamenu {
|
|
@@ -167,10 +165,9 @@ rui-navigation-menu {
|
|
|
167
165
|
color: var(--color-on-surface, var(--on-surface));
|
|
168
166
|
}
|
|
169
167
|
}
|
|
170
|
-
@property --tw-
|
|
168
|
+
@property --tw-font-weight {
|
|
171
169
|
syntax: "*";
|
|
172
170
|
inherits: false;
|
|
173
|
-
initial-value: solid;
|
|
174
171
|
}
|
|
175
172
|
@property --tw-shadow {
|
|
176
173
|
syntax: "*";
|
|
@@ -237,13 +234,14 @@ rui-navigation-menu {
|
|
|
237
234
|
inherits: false;
|
|
238
235
|
initial-value: 0 0 #0000;
|
|
239
236
|
}
|
|
240
|
-
@property --tw-
|
|
237
|
+
@property --tw-leading {
|
|
241
238
|
syntax: "*";
|
|
242
239
|
inherits: false;
|
|
243
240
|
}
|
|
244
|
-
@property --tw-
|
|
241
|
+
@property --tw-border-style {
|
|
245
242
|
syntax: "*";
|
|
246
243
|
inherits: false;
|
|
244
|
+
initial-value: solid;
|
|
247
245
|
}
|
|
248
246
|
@property --tw-tracking {
|
|
249
247
|
syntax: "*";
|
|
@@ -261,7 +259,7 @@ rui-navigation-menu {
|
|
|
261
259
|
@layer properties {
|
|
262
260
|
@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
|
|
263
261
|
*, ::before, ::after, ::backdrop {
|
|
264
|
-
--tw-
|
|
262
|
+
--tw-font-weight: initial;
|
|
265
263
|
--tw-shadow: 0 0 #0000;
|
|
266
264
|
--tw-shadow-color: initial;
|
|
267
265
|
--tw-shadow-alpha: 100%;
|
|
@@ -276,8 +274,8 @@ rui-navigation-menu {
|
|
|
276
274
|
--tw-ring-offset-width: 0px;
|
|
277
275
|
--tw-ring-offset-color: #fff;
|
|
278
276
|
--tw-ring-offset-shadow: 0 0 #0000;
|
|
279
|
-
--tw-font-weight: initial;
|
|
280
277
|
--tw-leading: initial;
|
|
278
|
+
--tw-border-style: solid;
|
|
281
279
|
--tw-tracking: initial;
|
|
282
280
|
--tw-space-y-reverse: 0;
|
|
283
281
|
--tw-duration: initial;
|
|
@@ -3,16 +3,38 @@ import type { RuiNavigationMenu as RuiNavigationMenuElement, RuiNavigationMenuPr
|
|
|
3
3
|
import './navigation-menu.script';
|
|
4
4
|
import { type RuiButtonControlProps } from '../button/button';
|
|
5
5
|
export type RuiNavigationMenuBarProps = JsxElementProps<HTMLDivElement>;
|
|
6
|
-
/**
|
|
6
|
+
/**
|
|
7
|
+
* Top-level trigger and link row inside `RuiNavigationMenu`. Stamps `[data-ref="bar"]`.
|
|
8
|
+
*
|
|
9
|
+
* @cssclass rui-navigation-menu__bar - Presentation class; not a query target.
|
|
10
|
+
*
|
|
11
|
+
* @remarks Bar chrome (fill, border, shadow, padding) defaults to transparent.
|
|
12
|
+
* Override `--rui-navigation-menu-bar-*` on `rui-navigation-menu` to paint a box.
|
|
13
|
+
*/
|
|
7
14
|
export declare function RuiNavigationMenuBar({ children, class: className, ...props }: RuiNavigationMenuBarProps): import("@ecopages/jsx").JsxRenderable;
|
|
8
15
|
export type RuiNavigationMenuPanelsProps = JsxElementProps<HTMLDivElement>;
|
|
9
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Grouping wrapper for flyout panels. Stamps `[data-ref="panels"]`.
|
|
18
|
+
*
|
|
19
|
+
* @cssclass rui-navigation-menu__panels - Presentation class; not a query target.
|
|
20
|
+
*
|
|
21
|
+
* @remarks Does not create a layout box (`display: contents`). Panels are
|
|
22
|
+
* positioned as popovers against their matching trigger.
|
|
23
|
+
*/
|
|
10
24
|
export declare function RuiNavigationMenuPanels({ children, class: className, ...props }: RuiNavigationMenuPanelsProps): import("@ecopages/jsx").JsxRenderable;
|
|
25
|
+
/**
|
|
26
|
+
* Navigation menu view. Compose `RuiNavigationMenuBar`, triggers, links, and
|
|
27
|
+
* panels as children. Children are wrapped in `nav[data-ref="root"]`.
|
|
28
|
+
*
|
|
29
|
+
* @cssclass rui-navigation-menu - Root `nav` surface (`[data-ref="root"]`).
|
|
30
|
+
*/
|
|
11
31
|
export declare function RuiNavigationMenu({ children, label, ...props }: JsxCustomElementAttributes<RuiNavigationMenuElement, RuiNavigationMenuProps>): import("@ecopages/jsx").JsxRenderable;
|
|
12
32
|
export type RuiNavigationMenuTriggerProps = RuiButtonControlProps & {
|
|
13
33
|
value: string;
|
|
14
34
|
};
|
|
15
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Top-level megamenu trigger. Stamps `[data-navigation-item]`, `[data-navigation-trigger]`, and `data-value`.
|
|
37
|
+
*/
|
|
16
38
|
export declare function RuiNavigationMenuTrigger({ children, value, variant, class: className, ...props }: RuiNavigationMenuTriggerProps): import("@ecopages/jsx").JsxRenderable;
|
|
17
39
|
export type RuiNavigationMenuLinkProps = JsxElementProps<HTMLAnchorElement> & {
|
|
18
40
|
href: string;
|
|
@@ -22,5 +44,12 @@ export declare function RuiNavigationMenuLink({ children, href, class: className
|
|
|
22
44
|
export type RuiNavigationMenuPanelProps = JsxElementProps<HTMLDivElement> & {
|
|
23
45
|
value: string;
|
|
24
46
|
};
|
|
25
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Flyout panel paired with a trigger by `value`. Stamps `[data-navigation-panel]` and `data-value`.
|
|
49
|
+
*
|
|
50
|
+
* @cssclass rui-navigation-menu__panel - Panel layout on top of `rui-popover`.
|
|
51
|
+
*
|
|
52
|
+
* @remarks Always includes `rui-popover` and `rui-floating` chrome. The host
|
|
53
|
+
* positions the open panel relative to its trigger.
|
|
54
|
+
*/
|
|
26
55
|
export declare function RuiNavigationMenuPanel({ children, value, class: className, ...props }: RuiNavigationMenuPanelProps): import("@ecopages/jsx").JsxRenderable;
|