hanav
Version:
A React Navigation Menu Component Library.
3 lines (2 loc) • 26 kB
JavaScript
;var e=require("react");function n(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function t(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?n(Object(r),!0).forEach((function(n){u(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))}))}return e}function r(e){var n=function(e,n){if("object"!=typeof e||!e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var r=t.call(e,n||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===n?String:Number)(e)}(e,"string");return"symbol"==typeof n?n:n+""}function u(e,n,t){return(n=r(n))in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(){return o=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},o.apply(this,arguments)}function c(e,n){if(null==e)return{};var t,r,u=function(e,n){if(null==e)return{};var t={};for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){if(n.indexOf(r)>=0)continue;t[r]=e[r]}return t}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)t=o[r],n.indexOf(t)>=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(u[t]=e[t])}return u}function a(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,u,o,c,a=[],i=!0,l=!1;try{if(o=(t=t.call(e)).next,0===n){if(Object(t)!==t)return;i=!1}else for(;!(i=(r=o.call(t)).done)&&(a.push(r.value),a.length!==n);i=!0);}catch(e){l=!0,u=e}finally{try{if(!i&&null!=t.return&&(c=t.return(),Object(c)!==c))return}finally{if(l)throw u}}return a}}(e,n)||l(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function i(e){return function(e){if(Array.isArray(e))return s(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||l(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,n){if(e){if("string"==typeof e)return s(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?s(e,n):void 0}}function s(e,n){(null==n||n>e.length)&&(n=e.length);for(var t=0,r=new Array(n);t<n;t++)r[t]=e[t];return r}var f=e.createContext({}),d=e.createContext({}),v=e.createContext(),p=e.createContext(),y=e.createContext(),m=["children","dur","gap","dynamicWidth","onlyKeyFocus","close"];function h(n){var t=n.children,r=n.transRunning,u=e.useContext(f),o=u.openedMenuIdx,c=u.dur,i=u.prevMenuIdxRef,l=u.panelsRef,s=e.useRef([]),d=a(e.useState(),2),v=d[0],p=d[1],y=a(e.useState(!1),2),m=y[0],h=y[1];return e.useLayoutEffect((function(){s.current=l.current.map((function(e){return(null==e?void 0:e.offsetLeft)||0}))}),[]),e.useLayoutEffect((function(){p({})}),[]),e.useEffect((function(){null!=v&&requestAnimationFrame((function(){return h(!0)}))}),[v]),e.Children.map(t,(function(n,t){return e.cloneElement(n,{type:"C",orderI:t,contentItemStyle:{transform:x(),transition:m?"transform ".concat(c,"s"):null,flexShrink:0,width:"100%"},transRunning:r})}));function x(){var e=i.current,n=o<0?e:o;return n<1||null==s.current[n]?null:"translateX(-".concat(s.current[n],"px)")}}function x(n){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return e.Children.map(n,(function(n){var r=(n.type||{}).displayName;return"Item"===r?(++t,e.cloneElement(n,{type:"T",orderI:t})):"Group"===r?e.cloneElement(n,{children:x(n.props.children,t)}):n}))}function I(n,t,r,u,o,c,a,i){e.useEffect((function(){n<0&&r.current>-1&&(t&&u.current||!t)&&o.current[r.current].focus()}),[n,t]),e.useEffect((function(){if(n>-1&&i&&(t&&u.current||!t)){var e=a.current[n];e?e.focus({preventScroll:!0}):c.current[n].focus({preventScroll:!0})}}),[n,t,i])}var C=["children","outer","style","style2","innerStyle2","tp","onExpanding","onExpanded","onCollapsing","onCollapsed"],b=["style"];function E(n){var r=n.children,u=n.outer,i=void 0===u?{}:u,l=n.style,s=n.style2,d=n.innerStyle2,v=n.tp,p=n.onExpanding,y=void 0===p?function(){}:p,m=n.onExpanded,h=void 0===m?function(){}:m,x=n.onCollapsing,E=void 0===x?function(){}:x,g=n.onCollapsed,R=void 0===g?function(){}:g,M=c(n,C),k=e.useContext(f),w=k.openedMenuIdx,T=k.overMenuPanel,O=k.leaveMenuPanel,F=k.dur,S=k.contentWrapperRef,A=k.onlyKeyFocus,P=k.prevMenuIdxRef,j=k.isKeyActive,D=k.btnsRef,K=k.panelsRef,W=k.headFocusItemInContent,B=k.close,N=k.gap,H=k.dynamicWidth,L=a(e.useState(!1),2),Y=L[0],q=L[1],G=a(e.useState(!1),2),X=G[0],z=G[1],U=w>-1||w<0&&X,$=e.useRef([]),J=e.useRef([]),Q=e.useRef([]),V=e.useRef(!1);e.useLayoutEffect((function(){w>-1&&!1===Y&&(q(!0),$.current=K.current.map((function(e){return(null==e?void 0:e.clientWidth)||0})),J.current=K.current.map((function(e){return(null==e?void 0:e.clientHeight)||0})),Q.current=K.current.map((function(e){return(null==e?void 0:e.clientWidth)||0})))}),[w,Y]),e.useEffect((function(){Y&&(V.current=!0,z(!0))}),[Y]),e.useEffect((function(){X&&-1===P.current?y():X&&w<0&&E()}),[X,w]),I(w,A,P,j,D,K,W,X);var Z=e.useCallback((function(e){var n=S.current;v===e.propertyName&&(e.target!==n&&e.target!==n.parentNode||(V.current=!1,w<0?(z(!1),q(!1),P.current=-1,R()):h()))}),[w,h]);if(U){var _=w<0&&P.current>-1,ee=!X||_,ne=function(e,n,t,r,u,o,c){if(n){var a=e&&t<0?r.current:t;return function(e,n,t,r){var u=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,o=r.current[n],c=t.current[n],a=null==o||null==c?0:c.offsetLeft+c.clientWidth/2-o/2;return"translate(".concat(a+u,"px, ").concat(e,"px)")}(c,a,u,o,!0===n?0:Array.isArray(n)?n[a]||0:n)}return"translateY(".concat(c,"px)")}(ee,B,w,P,D,$,N),te=i.style,re=c(i,b),ue=H?-1===w?Q.current[P.current]||0:Q.current[w]||0:"100%",oe="function"==typeof d?d(ee,N,F):d,ce="function"==typeof s?s(N):s;return e.createElement("div",o({style:t(t({},ce),{},{position:"absolute",left:0,width:ue,height:_?J.current[P.current]:J.current[w],transition:X?"transform ".concat(F,"s, height ").concat(F,"s, width ").concat(F,"s"):null,transform:ne},te)},re),e.createElement("div",o({ref:S,onMouseOver:T,onMouseLeave:O,style:t(t({},oe),{},{width:"100%",height:"100%",overflow:"hidden"},l),onTransitionEnd:Z},M),r(V)))}return null}var g=["children"];function R(n){var t=n.children,r=c(n,g);return e.createElement(E,o({style2:function(e){return{clipPath:"inset(-".concat(e,"px -100vw -100vw -100vw)")}},innerStyle2:function(e,n,t){return{display:"flex",alignItems:"flex-start",transform:e?"translateY(calc(-100% - ".concat(n,"px))"):"translateY(0)",transition:"transform ".concat(t,"s")}},tp:"transform"},r),t)}var M=["children","xTrans","yTrans","trans"];function k(n){var t=n.children,r=n.type,u=n.orderI,o=n.contentItemStyle,c=n.transRunning,i="T"===r,l="C"===r,s=e.useContext(d),f=e.useId(),v=e.useRef(),y=e.useRef(),m=s.triggerAriaIds,h=s.contentAriaIds,x=s.prevMenuIdxRef,I=s.openedMenuIdx,C=s.isKeyActive,b=s.setActivePanel,E=a(e.useState(),2),g=E[0],R=E[1];if(e.useEffect((function(){I>-1&&x.current<0?R(h.current[u]):I<0&&R(null)}),[I,u,g]),i){var M=s.btnsRef,k=s.overMenu,w=s.leaveMenu,T=I===u;m.current[u]=f;var O={ref:function(e){return M.current[u]=e},onClick:function(e){var n=e.target,t=M.current.findIndex((function(e){return e===n}));t<0&&(t=M.current.findIndex((function(e){return e.contains(n)}))),t>-1&&(C.current=0===e.nativeEvent.offsetX&&0===e.nativeEvent.offsetY,b(t===I?-1:t))},onMouseOver:k,onMouseLeave:w,id:f,"aria-expanded":T,"aria-controls":g};return"function"==typeof t?t(O,T):e.cloneElement(t,O)}if(l){var F=s.panelsRef,S=s.headFocusItemInContent,A=s.tailFocusItemInContent,P=s.checkedFocusOwnerContent,j=s.prevMenuIdxRef,D=s.onlyKeyFocus,K=s.contentWrapperRef,W=I===u;h.current[u]=f;var B={onKeyDown:function(e){if("Escape"===e.key||"Esc"===e.key||27===e.keyCode)return C.current=!0,void b(-1);if("Tab"===e.key||9===e.keyCode){if(null!=c&&c.current)return void e.preventDefault();if(!P.current&&j.current>-1&&D&&!C.current){var n,t=document.activeElement;if(null!==(n=K.current)&&void 0!==n&&n.contains(t)){var r=F.current[I];if(!r.contains(t))return P.current=!0,r.focus({preventScroll:!0}),void e.preventDefault()}}}var o=S.current[u],a=A.current[u];(e.target===F.current[u]&&("Tab"!==e.key&&9!==e.keyCode||(e.shiftKey?a?(a.focus(),e.preventDefault()):(y.current=!0,v.current.focus()):o&&(o.focus(),e.preventDefault()))),e.target!==o||"Tab"!==e.key&&9!==e.keyCode||!e.shiftKey)||((a||F.current[u]).focus(),e.preventDefault());e.target!==a||"Tab"!==e.key&&9!==e.keyCode||e.shiftKey||((o||F.current[u]).focus(),e.preventDefault())},ref:function(e){return F.current[u]=e},style:o,id:f,"aria-labelledby":m.current[u],"aria-hidden":!W,tabIndex:-1};return e.createElement(p.Provider,{value:u},null==S.current[u]&&e.createElement("button",{role:"presentation",style:{position:"absolute",opacity:0},onFocus:function(e){(A.current[u]||F.current[u]).focus(),e.preventDefault()}}),"function"==typeof t?t(B,(function(e){return S.current[u]=e}),(function(e){return A.current[u]=e})):e.cloneElement(t,B),null==A.current[u]&&e.createElement("button",{ref:v,role:"presentation",style:{position:"absolute",opacity:0},onFocus:function(e){y.current?y.current=!1:((S.current[u]||F.current[u]).focus(),e.preventDefault())}}))}return t}k.displayName="Item";var w=["children"];function T(n){var t=n.children,r=c(n,w),u=e.useContext(v),a=u.wrapperRef,i=u.openedMenuIdx,l=u.headFocusItemInContent,s=u.panelsRef,f=x(t);return e.createElement("div",o({},r,{ref:a,onKeyDown:function(e){if(i>-1&&("Tab"===e.key||9===e.keyCode)){var n=l.current[i];e.preventDefault(),n?n.focus({preventScroll:!0}):s.current[i].focus({preventScroll:!0})}}}),f)}T.displayName="Trigger";var O=["transition"];function F(n){var r=n.children,o=n.trans,l=n.transRunning,s=e.useContext(f),d=s.openedMenuIdx,v=s.dur,p=s.prevMenuIdxRef,y=s.collapsePrevMenuIdx2Ref,m=a(e.useState(),2),h=m[0],x=m[1],I=e.useRef(!1);e.useEffect((function(){d>-1&&(p.current>-1||y.current>-1)&&requestAnimationFrame((function(){x({}),I.current=!0}))}),[d]);var C=e.useMemo((function(){return Array.from({length:e.Children.count(r)},(function(e,n){return n})).map(b)}),[d,h]);return e.Children.map(r,(function(n,t){return e.cloneElement(n,{type:"C",orderI:t,contentItemStyle:C[t],transRunning:l})}));function b(e){var n={},r=d===e,a=o.transition,l=c(o,O),s=!1!==a;for(var f in s&&(n.transition=function(e,n,t){var r=e||t.map((function(e){return"".concat(e," ").concat(v,"s")})).join(),u=p.current===n;if(u)return r;var o=d===n;if(o)return I.current?r:null;return r}(a,e,Object.keys(l||{}).filter((function(e){return Array.isArray(l[e])})))),l){var y=o[f],m=[].concat(y),h=[m[0],m[1],m[2]].filter((function(e){return null!=e}));n=t(t({},n),{},u({},f,h[2]?g.apply(void 0,i(h).concat([e])):h[1]?E.apply(void 0,i(h).concat([e])):h[0]))}return n.position="absolute",n.zIndex=r?1:null,r&&I.current&&(I.current=!1),n}function E(e,n,t){if(t===p.current&&d<0)return n;if(p.current===t)return e;if(d===t){if(p.current<0)return n;if(I.current)return n}return e}function g(e,n,t,r){var u=d===r,o=d,c=p.current,a=y.current;if(o>-1&&c<0&&a<0||o<0)return e;var i=a>0?o<a:o<c;return u?I.current?e:i?n:t:i?t:n}}var S=["children","trans","xTrans","yTrans"];var A=["children","trans","className"],P=["className","transition"];function j(n){var r=n.children,i=n.trans,l=void 0===i?{}:i,s=n.className,f=void 0===s?"":s,d=c(n,A),v=l.className,p=void 0===v?"":v,y=l.transition,m=c(l,P),h=f.concat(" ",p);return e.createElement(E,o({innerStyle2:function(e,n,r){var o=a(Object.keys(m).reduce((function(e,n){return"string"==typeof l[n]?[e[0],e[1],t(t({},e[2]),{},u({},n,m[n]))]:[t(t({},e[0]),{},u({},n,l[n][0])),t(t({},e[1]),{},u({},n,l[n][1])),e[2]]}),[{},{},{}]),3),c=o[0],i=o[1],s=o[2],f=!1!==y;return t(t(t({},e?c:i),s),{},{transition:f?null==y?Object.keys(m||{}).filter((function(e){return Array.isArray(m[e])})).map((function(e){return"".concat(e," ").concat(r,"s")})).join():y:null,display:"flex",alignItems:"flex-start"})},className:h,tp:Object.keys(m).find((function(e){return Array.isArray(m[e])}))},d),r)}var D=["children","yTrans","trans","xTrans"];var K=["children","yTrans","xTrans","trans"];var W=["children","outer","xTrans","yTrans","trans","style"],B=["style"];var N=["children"];function H(n){var t=n.children,r=c(n,N);return e.createElement("div",r,t)}H.displayName="Group";var L=["children"],Y=["onKeyDown"],q=e.forwardRef((function(n,r){var u=n.children,o=c(n,L),l=o.onKeyDown,s=c(o,Y),f=e.useRef([]),d=e.useRef();e.useEffect((function(){var e=f.current.map((function(e){var n=e.getBoundingClientRect(),t=n.x,r=n.y,u=n.width/2,o=n.height/2;return[t+u,r+o,u,o,e]}));d.current=function(e){var n=i(e);n.sort((function(e,n){return e[0]-n[0]}));var t=i(e);t.sort((function(e,n){return e[1]-n[1]}));var r=new Map;return e.forEach((function(e,u){var o=a(e,5),c=o[0],i=o[1],l=o[2],s=o[3],f=o[4],d=t.findIndex((function(n){return n===e})),v=n.findIndex((function(n){return n===e})),p=1/0,y=null;t.slice(d+1).forEach((function(e){var n=a(e,5),t=n[0],r=n[1],u=n[2],o=n[3],f=n[4],d=1/0;i+s<=r-o&&(t-u>=c+l?t-u-c-l<r-o-i-s&&(d=G(c+l,i+s,t-u,r-o)):t+u<=c-l?c-l-t-u<r-o-i-s&&(d=G(c+l,i+s,t+u,r-o)):d=Math.pow(r-o-i-s,2)),d<p&&(y=f,p=d)}));var m=1/0,h=null;t.slice(0,d).forEach((function(e){var n=a(e,5),t=n[0],r=n[1],u=n[2],o=n[3],f=n[4],d=1/0;i-s>=r+o&&(t-u>=c+l?t-u-c-l<i-s-r-o&&(d=G(c+l,i-s,t-u,r+o)):t+u<=c-l?c-l-t-u<i-s-r-o&&(d=G(c-l,i-s,t+u,r+o)):d=Math.pow(i-s-r-o,2)),d<m&&(h=f,m=d)}));var x=1/0,I=null;n.slice(0,v).forEach((function(e){var n=a(e,5),t=n[0],r=n[1],u=n[2],o=n[3],f=n[4],d=1/0;c-l>=t+u&&(r+o<=i-s?i-s-r-o<c-l-t-u&&(d=G(c-l,i-s,t+u,r+o)):r-o>=i+s?r-o-i-s<c-l-t-u&&(d=G(c-l,i+s,t+u,r-o)):d=Math.pow(c-l-t-u,2)),d<x&&(I=f,x=d)}));var C=1/0,b=null;n.slice(v+1).forEach((function(e){var n=a(e,5),t=n[0],r=n[1],u=n[2],o=n[3],f=n[4],d=1/0;t-u>=c+l&&(r+o<=i-s?i-s-r-o<t-u-c-l&&(d=G(c+l,i-s,t-u,r+o)):r-o>=i+s?r-o-i-s<t-u-c-l&&(d=G(c+l,i+s,t-u,r-o)):d=Math.pow(t-u-c-l,2)),d<C&&(b=f,C=d)})),r.set(f,{up:h,down:y,left:I,right:b})})),r}(e)}),[]);return e.createElement(y.Provider,{value:f},e.cloneElement(u,t({onKeyDown:function(e){l(e);var n=document.activeElement,t=f.current[0],r=d.current.get(n)||{left:t,right:t,up:t,down:t};function u(n){n&&(n.focus(),e.preventDefault())}"ArrowRight"===e.key||39===e.keyCode?u(r.right):"ArrowLeft"===e.key||37===e.keyCode?u(r.left):"ArrowUp"===e.key||38===e.keyCode?u(r.up):"ArrowDown"!==e.key&&40!==e.keyCode||u(r.down)},ref:r},s)))}));function G(e,n,t,r){var u=t-e,o=r-n;return u*u+o*o}var X=e.createContext({}),z=e.createContext({}),U=e.createContext({}),$=e.createContext({}),J=e.createContext(),Q=e.createContext(),V=["children"],Z=["style"];var _=["children"],ee=["style"];var ne=["children"],te=["style"];var re=["children"],ue=["style"];function oe(n){var t=n.children,r=n.type,u=n.orderI,o="T"===r,c="C"===r,i=e.useContext(z),l=a(e.useState(),2)[1],s=i.openedMenuIdx,f=i.triggerIdsRef,d=i.contentIdsRef,v=s===u,p=e.useId();if(e.useEffect((function(){s>-1&&o&&l({})}),[s]),o){var y=i.openOrCloseContentById,m=i.btnsRef;f.current[u]=p;var h={id:p,"aria-controls":s>-1?d.current[u]:null,"aria-expanded":v,onClick:function(){y(v?-1:u)},ref:function(e){return m.current[u]=e}};return"function"==typeof t?t(h):e.cloneElement(t,h)}if(c){if(!v)return null;var x=i.headFocusItemInContent,I=i.tailFocusItemInContent,C=i.mockTail,b=i.mockHead,E=i.mockTailFocusByWrap,g=i.mockHeadFocusByWrap,R=i.menuRef;d.current[u]=p;var M={id:p,"aria-labelledby":f.current[u]};return e.createElement(Q.Provider,{value:u},null==x.current[u]&&e.createElement("button",{ref:b,role:"presentation",style:{position:"absolute",opacity:0},onFocus:function(e){g.current?g.current=!1:((I.current[u]||R.current).focus(),e.preventDefault())}}),"function"==typeof t?t(M,(function(e){return x.current[u]=e}),(function(e){return I.current[u]=e})):e.cloneElement(t,M),null==I.current[u]&&e.createElement("button",{ref:C,role:"presentation",style:{position:"absolute",opacity:0},onFocus:function(e){E.current?E.current=!1:((x.current[u]||R.current).focus(),e.preventDefault())}}))}return e.createElement(e.Fragment,null,t)}oe.displayName="Item";var ce=["children"];var ae=["children"],ie=e.forwardRef((function(n,t){var r=n.children,u=c(n,ae),a=e.useContext(J);return e.createElement("button",o({"aria-label":"Main menu",onClick:function(){return a(-1)}},u,{ref:t}),r||"Back")}));exports.ArrowFItem=function(n){var t=n.children,r=e.useContext(y),u=e.useRef();return e.cloneElement(t,{ref:function(e){e?(u.current=e,r.current.includes(e)||r.current.push(e)):r.current=r.current.filter((function(e){return e!==u.current}))}})},exports.ArrowFocus=q,exports.Content=function(n){var t=n.children;n.xTrans,n.yTrans,n.trans;var r=c(n,M);return e.createElement(R,r,(function(n){return e.createElement(h,{transRunning:n},t)}))},exports.CustomMotionContent=function(n){var t=n.children,r=n.yTrans,u=n.xTrans;n.trans;var a=c(n,K);return e.createElement(j,o({trans:r},a),(function(n){return e.createElement(F,{trans:u,transRunning:n},t)}))},exports.CustomXMotionContent=function(n){var t=n.children,r=n.trans,u=n.xTrans;n.yTrans;var o=c(n,S);return e.createElement(R,o,(function(n){return e.createElement(F,{trans:u||r,transRunning:n},t)}))},exports.CustomYMotionContent=function(n){var t=n.children,r=n.yTrans,u=n.trans;n.xTrans;var a=c(n,D);return e.createElement(j,o({trans:r||u},a),(function(n){return e.createElement(h,{transRunning:n},t)}))},exports.Group=H,exports.Head=function(n){var t=n.children,r=e.useContext(d).headFocusItemInContent,u=e.useContext(p);return null==r?t:e.cloneElement(t,{ref:function(e){return r.current[u]=e}})},exports.Item=k,exports.MiniBack=ie,exports.MiniContent=function(n){var r=n.children,u=c(n,re),a=e.useContext(X).openedMenuIdx,i=e.Children.map(r,(function(n,t){return e.cloneElement(n,{type:"C",orderI:t})})),l=u.style,s=c(u,ue);return a<0?null:e.createElement("div",o({style:t({position:"absolute",width:"100%",height:"100%",top:0},l)},s),i)},exports.MiniHead=function(n){var t=n.children,r=e.useContext(z).headFocusItemInContent,u=e.useContext(Q);return null==r?t:e.cloneElement(t,{ref:function(e){return r.current[u]=e}})},exports.MiniItem=oe,exports.MiniMenu=function(n){var r=n.children,u=c(n,_),i=a(e.useState(0),2),l=i[0],s=i[1],f=e.useContext(U),d=f.navRef,v=f.expanded,p=f.setE,y=f.btnsRef,m=f.openedMenuIdx,h=f.tailFocusItemInContent,x=f.headFocusItemInContent,I=f.menuId,C=f.menuRef,b=f.mockTailFocusByWrap,E=f.mockTail,g=f.mockHeadFocusByWrap,R=f.mockHead,M=a(e.useState(!1),2),k=M[0],w=M[1];e.useEffect((function(){s(d.current.clientHeight),w(function(){var e=document.createElement("div");e.style.height="1dvh",document.body.appendChild(e);var n=e.clientHeight>0;return document.body.removeChild(e),n}())}),[]);var T=u.style,O=c(u,ee);return v?e.createElement("div",o({id:I,role:"dialog","aria-modal":!0,"aria-label":"Menu",tabIndex:-1,ref:C,style:t({height:"calc(100".concat(k?"d":"","vh - ").concat(l,"px)"),position:"absolute",left:0,top:"100%",width:"100%"},T),onKeyDown:function(e){if("Escape"===e.key||27===e.keyCode)p(!1);else if("Tab"===e.key||9===e.keyCode){var n=y.current.length;if(e.shiftKey&&e.target===C.current)if(m<0)y.current.slice(-1)[0].focus(),e.preventDefault();else{var t=h.current[m];t?(t.focus(),e.preventDefault()):(b.current=!0,E.current.focus())}else if(e.shiftKey||e.target!==C.current)if(e.shiftKey&&m>-1&&e.target===x.current[m]){(h.current[m]||C.current).focus(),e.preventDefault()}else if(!e.shiftKey&&m>-1&&e.target===h.current[m]){(x.current[m]||C.current).focus(),e.preventDefault()}else e.shiftKey&&m<0&&e.target===y.current[0]?(y.current[n-1].focus(),e.preventDefault()):!e.shiftKey&&m<0&&e.target===y.current[n-1]&&(y.current[0].focus(),e.preventDefault());else if(m>-1){var r=x.current[m];r?(r.focus(),e.preventDefault()):(g.current=!0,R.current.focus())}}}},O),r):null},exports.MiniNavBar=function(n){var r=n.children,u=c(n,V),i=e.useRef(null),l=a(e.useState(),2),s=l[0],f=l[1],d=a(e.useState(-1),2),v=d[0],p=d[1],y=e.useRef(-1),m=e.useRef([]),h=e.useRef([]),x=e.useRef([]),I=e.useId(),C=e.useRef([]),b=e.useRef([]),E=e.useRef(),g=e.useRef(),R=e.useRef(),M=e.useRef(),k=e.useRef();e.useEffect((function(){s&&(v<0?m.current[y.current].focus():(h.current[v]||E.current).focus())}),[v]);var w=u.style,T=c(u,Z),O=e.useMemo((function(){return{navRef:i,expanded:s,setE:f,btnsRef:m,openedMenuIdx:v,tailFocusItemInContent:x,headFocusItemInContent:h,menuId:I,menuRef:E,mockTail:g,mockHead:R,mockTailFocusByWrap:M,mockHeadFocusByWrap:k}}),[s,v]),F=e.useMemo((function(){return{openedMenuIdx:v,openOrCloseContentById:P,btnsRef:m,headFocusItemInContent:h,tailFocusItemInContent:x,triggerIdsRef:C,contentIdsRef:b,menuRef:E,mockTail:g,mockTailFocusByWrap:M,mockHead:R,mockHeadFocusByWrap:k}}),[v]),S=e.useMemo((function(){return{openedMenuIdx:v}}),[v]),A=e.useMemo((function(){return{setE:f,expanded:s,openOrCloseContentById:P,btnsRef:m,menuId:I}}),[s]);return e.createElement(U.Provider,{value:O},e.createElement(z.Provider,{value:F},e.createElement(X.Provider,{value:S},e.createElement($.Provider,{value:A},e.createElement(J.Provider,{value:P},e.createElement("nav",o({"aria-label":"Main",tabIndex:-1,ref:i,style:t({position:"fixed",top:0,left:0,width:"100%",zIndex:2},w)},T),r))))));function P(e){p((function(n){return y.current=n,e}))}},exports.MiniTail=function(n){var t=n.children,r=e.useContext(z).tailFocusItemInContent,u=e.useContext(Q);return null==r?t:e.cloneElement(t,{ref:function(e){return r.current[u]=e}})},exports.MiniToggle=function(n){var t=n.children,r=c(n,ce),u=e.useContext($),a=u.setE,i=u.expanded,l=u.openOrCloseContentById,s=u.btnsRef,f=u.menuId,d=e.useRef();return e.useEffect((function(){null!=i&&(i?s.current[0].focus():d.current.focus())}),[i]),e.createElement("button",o({"aria-label":i?"Close":"Menu","aria-controls":f,onClick:function(){a(!i),l(-1)},ref:d},r),null==t?i?"Expanded":"Collapsed":"function"==typeof t?t(i):t)},exports.MiniTrigger=function(n){var r=n.children,u=c(n,ne),a=x(r),i=u.style,l=c(u,te);return e.createElement("div",o({style:t({display:"flex",flexDirection:"column"},i)},l),a)},exports.NavBar=function(n){var t=n.children,r=n.dur,u=void 0===r?.5:r,i=n.gap,l=void 0===i?0:i,s=n.dynamicWidth,p=void 0!==s&&s,y=n.onlyKeyFocus,h=void 0===y||y,x=n.close,I=void 0!==x&&x,C=c(n,m),b=a(e.useState(-1),2),E=b[0],g=b[1],R=e.useRef(-1),M=e.useRef(-1),k=e.useRef([]),w=e.useRef([]),T=e.useRef(),O=e.useRef(!1),F=e.useRef(!1),S=e.useRef([]),A=e.useRef([]),P=e.useRef(null),j=e.useRef([]),D=e.useRef([]),K=e.useCallback((function(e){F.current=!1,M.current=-1,g((function(n){return e!==n&&(n<0&&R.current>-1&&e>-1&&e!==R.current&&(M.current=R.current),R.current=n),e}))}),[]),W=e.useCallback((function(){T.current&&(clearTimeout(T.current),T.current=null)}),[]),B=e.useCallback((function(e){W();var n=e.target,t=k.current.findIndex((function(e){return e===n}));t>-1&&t!==E&&(O.current=!1,K(t))}),[E]),N=e.useCallback((function(){T.current&&(clearTimeout(T.current),T.current=null),T.current=setTimeout((function(){O.current=!1,K(-1),T.current=null}),600)}),[]),H=N,L=e.useMemo((function(){return{openedMenuIdx:E,headFocusItemInContent:S,panelsRef:w}}),[E]),Y=e.useMemo((function(){return{openedMenuIdx:E,overMenuPanel:W,leaveMenuPanel:H,dur:u,close:I,gap:l,dynamicWidth:p,onlyKeyFocus:h,contentWrapperRef:P,prevMenuIdxRef:R,collapsePrevMenuIdx2Ref:M,isKeyActive:O,btnsRef:k,panelsRef:w,headFocusItemInContent:S}}),[E,l,u,h,I,p]),q=e.useMemo((function(){return{openedMenuIdx:E,overMenu:B,leaveMenu:N,dur:u,onlyKeyFocus:h,setActivePanel:K,checkedFocusOwnerContent:F,isKeyActive:O,headFocusItemInContent:S,tailFocusItemInContent:A,prevMenuIdxRef:R,contentWrapperRef:P,panelsRef:w,btnsRef:k,triggerAriaIds:j,contentAriaIds:D}}),[E,u,h]);return e.createElement(d.Provider,{value:q},e.createElement(f.Provider,{value:Y},e.createElement(v.Provider,{value:L},e.createElement("nav",o({"aria-label":"Main",tabIndex:-1},C),t))))},exports.ReducedMotionContent=function(n){var r=n.children,u=n.outer,i=void 0===u?{}:u;n.xTrans,n.yTrans,n.trans;var l=n.style,s=c(n,W),d=e.useContext(f),v=d.leaveMenuPanel,p=d.overMenuPanel,y=d.gap,m=d.contentWrapperRef,h=d.openedMenuIdx,x=d.dynamicWidth,C=d.panelsRef,b=d.close,E=d.btnsRef,g=d.onlyKeyFocus,R=d.prevMenuIdxRef,M=d.isKeyActive,k=d.headFocusItemInContent,w=i.style,T=c(i,B),O=e.Children.map(r,(function(n,t){return e.cloneElement(n,{type:"C",orderI:t})})),F=a(e.useState(0),2),S=F[0],A=F[1],P=a(e.useState(0),2),j=P[0],D=P[1];return e.useLayoutEffect((function(){if(x&&h>-1){var e=C.current[h];A((null==e?void 0:e.clientWidth)||0)}if(h>-1&&b){var n=C.current[h],t=E.current[h],r=null!=t?t.offsetLeft+t.clientWidth/2-n.clientWidth/2:0;D(r)}}),[h,b,x]),I(h,g,R,M,E,C,k,!0),h<0?null:e.createElement("div",o({ref:m,style:t({position:"absolute",left:0,width:x?S:"100%",visibility:x?0===S?"hidden":"visible":null,transform:b?"translate(".concat(j,"px,").concat(y,"px)"):"translateY(".concat(y,"px)")},w)},T),e.createElement("div",o({onMouseOver:p,onMouseLeave:v,style:t({width:x?S:null},l)},s),O[h]))},exports.Tail=function(n){var t=n.children,r=e.useContext(d).tailFocusItemInContent,u=e.useContext(p);return null==r?t:e.cloneElement(t,{ref:function(e){return r.current[u]=e}})},exports.Trigger=T;
//# sourceMappingURL=index.js.map