@blateral/b.kit 2.7.3 → 2.7.5
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/cjs/Navigation-939e4d0e.js +2 -0
- package/cjs/Navigation-939e4d0e.js.map +1 -0
- package/cjs/{VideoCard-4b737f05.js → VideoCard-f6c436ca.js} +2 -2
- package/cjs/VideoCard-f6c436ca.js.map +1 -0
- package/cjs/headers.js +1 -1
- package/cjs/navigation.js +1 -1
- package/cjs/sections.js +1 -1
- package/cjs/sections.js.map +1 -1
- package/cjs/sections.news.js +1 -1
- package/cjs/sections.news.js.map +1 -1
- package/cjs/sections.pois.js +1 -1
- package/esm/{Navigation-42c123d2.js → Navigation-99f6dc41.js} +2 -2
- package/esm/Navigation-99f6dc41.js.map +1 -0
- package/esm/{VideoCard-1908aa13.js → VideoCard-2c6e26d1.js} +44 -21
- package/esm/VideoCard-2c6e26d1.js.map +1 -0
- package/esm/headers.js +1 -1
- package/esm/navigation.js +2 -2
- package/esm/sections.js +2 -2
- package/esm/sections.js.map +1 -1
- package/esm/sections.news.js +1 -1
- package/esm/sections.news.js.map +1 -1
- package/esm/sections.pois.js +1 -1
- package/package.json +2 -2
- package/types/components/blocks/VideoCard.d.ts +1 -1
- package/types/components/blocks/VideoCard.d.ts.map +1 -1
- package/types/components/sections/Video.d.ts +2 -2
- package/types/components/sections/Video.d.ts.map +1 -1
- package/types/components/sections/news/NewsVideo.d.ts +2 -2
- package/types/components/sections/news/NewsVideo.d.ts.map +1 -1
- package/cjs/Navigation-d205ed34.js +0 -2
- package/cjs/Navigation-d205ed34.js.map +0 -1
- package/cjs/VideoCard-4b737f05.js.map +0 -1
- package/esm/Navigation-42c123d2.js.map +0 -1
- package/esm/VideoCard-1908aa13.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var n=require("./ClockFilled-2483aa4a.js"),e=require("react"),t=require("./LibThemeProvider-4823de57.js"),i=require("./useMediaQuery-3d1054e5.js"),a=require("./navigation-bf154e6e.js"),o=require("./Link-5a6f1633.js"),r=require("styled-components"),l=require("./arrays-c272ed59.js"),s=require("./clamp-bd21d587.js"),u=require("./styles-3a495a2d.js"),d=require("./Copy-ea6ab025.js"),c=require("./Image-c72f7a80.js"),p=require("./LanguageSwitcher-8fdd22ba.js");function m(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var f,g=m(e),v=m(r);!function(n){n[n.UP=0]="UP",n[n.DOWN=1]="DOWN"}(f||(f={}));var h,b,x,w,y,_,k,C,I,N,O,B,E,S,F,M=v.default.nav.withConfig({displayName:"BarBreadCrumbs__View",componentId:"sc-bian0m-0"})(h||(h=n.__makeTemplateObject(["\n min-width: 0;\n"],["\n min-width: 0;\n"]))),T=v.default.ul.withConfig({displayName:"BarBreadCrumbs__List",componentId:"sc-bian0m-1"})(b||(b=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n min-width: inherit;\n\n & > li:first-child {\n flex: 1 0 auto;\n }\n\n @media "," {\n & > li + li {\n margin-left: ","px;\n }\n }\n"],["\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n min-width: inherit;\n\n & > li:first-child {\n flex: 1 0 auto;\n }\n\n @media "," {\n & > li + li {\n margin-left: ","px;\n }\n }\n"])),u.mq.semilarge,u.spacings.nudge),j=v.default.li.withConfig({displayName:"BarBreadCrumbs__ListItem",componentId:"sc-bian0m-2"})(x||(x=n.__makeTemplateObject(["\n display: ",";\n min-width: inherit;\n\n @media "," {\n display: flex;\n\n & > * + * {\n margin-left: ","px;\n }\n }\n"],["\n display: ",";\n min-width: inherit;\n\n @media "," {\n display: flex;\n\n & > * + * {\n margin-left: ","px;\n }\n }\n"])),(function(n){return n.isCurrent?"flex":"none"}),u.mq.semilarge,u.spacings.nudge),z=v.default(o.Link).withConfig({displayName:"BarBreadCrumbs__NavLink",componentId:"sc-bian0m-3"})(w||(w=n.__makeTemplateObject(["\n display: ",";\n align-items: center;\n max-width: ",";\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n ","\n color: ",";\n text-decoration: underline;\n\n & > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ",";\n }\n }\n\n @media "," {\n display: ",";\n }\n"],["\n display: ",";\n align-items: center;\n max-width: ",";\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n ","\n color: ",";\n text-decoration: underline;\n\n & > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ",";\n }\n }\n\n @media "," {\n display: ",";\n }\n"])),(function(n){return n.showOnMobile?"inline-flex":"none"}),(function(n){return n.clamp&&"120px"}),d.copyStyle("copy","small"),(function(n){var e=n.theme;return n.isInverted?u.getColors(e).text.inverted:u.getColors(e).text.default}),u.spacings.nudge,(function(n){var e=n.theme;return n.isInverted?u.getColors(e).text.inverted:u.getColors(e).text.default}),u.mq.semilarge,(function(n){return n.showOnDesktop?"inline-block":"none"})),L=v.default.span.withConfig({displayName:"BarBreadCrumbs__NavLabel",componentId:"sc-bian0m-4"})(y||(y=n.__makeTemplateObject(["\n display: ",";\n align-items: center;\n max-width: ",";\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n ","\n color: ",";\n text-decoration: none;\n\n & > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n\n @media "," {\n display: ",";\n }\n"],["\n display: ",";\n align-items: center;\n max-width: ",";\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n ","\n color: ",";\n text-decoration: none;\n\n & > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n & > * + * {\n margin-left: ","px;\n }\n\n @media "," {\n display: ",";\n }\n"])),(function(n){return n.showOnMobile?"inline-flex":"none"}),(function(n){return n.clamp&&"120px"}),d.copyStyle("copy","small"),(function(n){var e=n.theme;return n.isInverted?u.getColors(e).text.inverted:u.getColors(e).text.default}),u.spacings.nudge,u.mq.semilarge,(function(n){return n.showOnDesktop?"inline-block":"none"})),q=v.default(d.Copy).withConfig({displayName:"BarBreadCrumbs__Seperator",componentId:"sc-bian0m-5"})(_||(_=n.__makeTemplateObject(["\n display: none;\n\n transition: color 0.2s ease-in-out;\n\n @media "," {\n display: inline-block;\n }\n"],["\n display: none;\n\n transition: color 0.2s ease-in-out;\n\n @media "," {\n display: inline-block;\n }\n"])),u.mq.semilarge),H=v.default.span.withConfig({displayName:"BarBreadCrumbs__BackIconContainer",componentId:"sc-bian0m-6"})(k||(k=n.__makeTemplateObject(["\n flex: 0 0 auto;\n"],["\n flex: 0 0 auto;\n"]))),A=function(e){var t=e.isInverted,i=e.label,a=e.link,o=e.showOnMobile,r=e.showOnDesktop,l=e.children;return(null==a?void 0:a.href)?g.default.createElement(z,n.__assign({},a,{isInverted:t,showOnMobile:o,showOnDesktop:r}),l||i):g.default.createElement(L,{isInverted:t,showOnMobile:o,showOnDesktop:r},l||i)},P=v.default.div.withConfig({displayName:"BarColumn__Column",componentId:"sc-1sqtyni-0"})(C||(C=n.__makeTemplateObject(["\n flex: ",";\n\n padding: ","px 0;\n min-width: -webkit-min-content;\n align-self: ",";\n\n text-align: center;\n color: ",";\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n }\n\n &:not(:first-child):not(:last-child) {\n margin: 0 ","px;\n }\n"],["\n flex: ",";\n\n padding: ","px 0;\n min-width: -webkit-min-content;\n align-self: ",";\n\n text-align: center;\n color: ",";\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n }\n\n &:not(:first-child):not(:last-child) {\n margin: 0 ","px;\n }\n"])),(function(n){return n.takeSpace?1:void 0}),u.spacings.nudge,(function(n){switch(n.vAlign){case"center":return"center";case"bottom":return"flex-end";case"top":return"flex-start";default:return}}),(function(n){var e=n.theme;n.isInverted;return u.getColors(e).text.inverted}),2*u.spacings.nudge),V=v.default(o.Link).withConfig({displayName:"BarLogo__View",componentId:"sc-jul8nq-0"})(I||(I=n.__makeTemplateObject(["\n display: block;\n display: flex;\n justify-content: center;\n min-width: 60px;\n max-width: 100%;\n max-height: 100%;\n\n &:focus {\n outline: 2px solid ",";\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n"],["\n display: block;\n display: flex;\n justify-content: center;\n min-width: 60px;\n max-width: 100%;\n max-height: 100%;\n\n &:focus {\n outline: 2px solid ",";\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n"])),(function(n){var e=n.theme;return u.getColors(e).primary.default})),D=v.default(c.Image).withConfig({displayName:"BarLogo__Logo",componentId:"sc-jul8nq-1"})(N||(N=n.__makeTemplateObject(["\n width: auto;\n height: 100%;\n object-fit: contain;\n"],["\n width: auto;\n height: 100%;\n object-fit: contain;\n"]))),W=v.default.button.withConfig({displayName:"BarMenuToggle__Toggle",componentId:"sc-5pjose-0"})(O||(O=n.__makeTemplateObject(["\n background: transparent;\n border: none;\n color: ",";\n\n padding: ","px;\n margin-left: -","px;\n outline: none;\n\n cursor: pointer;\n\n transition: color 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ",";\n }\n }\n\n &:focus > * {\n outline: dotted 2px\n ",";\n outline-offset: 4px;\n\n color: ",";\n }\n\n &:focus:not(:focus-visible) > * {\n outline: none;\n }\n"],["\n background: transparent;\n border: none;\n color: ",";\n\n padding: ","px;\n margin-left: -","px;\n outline: none;\n\n cursor: pointer;\n\n transition: color 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ",";\n }\n }\n\n &:focus > * {\n outline: dotted 2px\n ",";\n outline-offset: 4px;\n\n color: ",";\n }\n\n &:focus:not(:focus-visible) > * {\n outline: none;\n }\n"])),(function(n){var e=n.isInverted,t=n.theme;return e?u.getColors(t).text.inverted:u.getColors(t).text.default}),u.spacings.nudge,u.spacings.nudge,(function(n){var e=n.theme;return n.isInverted?u.getColors(e).primary.invertedHover:u.getColors(e).primary.hover}),(function(n){var e=n.theme;return n.isInverted?u.getColors(e).primary.inverted:u.getColors(e).primary.default}),(function(n){var e=n.theme;return n.isInverted?u.getColors(e).primary.invertedHover:u.getColors(e).primary.hover})),R=function(n){var e=n.isInverted,t=n.isExpanded,i=void 0!==t&&t,a=n.onClick,o=n.children,r=n.className;return g.default.createElement(W,{isInverted:e,"aria-expanded":i,"aria-label":i?"close menu":"open menu","aria-haspopup":"true","aria-controls":"mainMenu",onClick:a,className:r},o)},G=v.default.nav.withConfig({displayName:"BarNavList__View",componentId:"sc-1r50tdm-0"})(B||(B=n.__makeTemplateObject(["\n display: inline-flex;\n align-items: center;\n\n margin: 0 -","px;\n\n & > * + * {\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n height: 1em;\n width: 2px;\n background-color: ",";\n\n transition: background-color 0.2s ease-in-out;\n }\n }\n"],["\n display: inline-flex;\n align-items: center;\n\n margin: 0 -","px;\n\n & > * + * {\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n height: 1em;\n width: 2px;\n background-color: ",";\n\n transition: background-color 0.2s ease-in-out;\n }\n }\n"])),u.spacings.nudge,(function(n){var e=n.isInverted,t=n.theme;return e?u.getColors(t).text.inverted:u.getColors(t).text.default})),U=v.default(o.Link).withConfig({displayName:"BarNavList__NavLink",componentId:"sc-1r50tdm-1"})(E||(E=n.__makeTemplateObject(["\n display: inline-block;\n position: relative;\n padding: 0 ","px;\n\n ","\n font-weight: ",";\n\n color: ",";\n text-decoration: none;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ",";\n text-decoration: underline;\n }\n }\n"],["\n display: inline-block;\n position: relative;\n padding: 0 ","px;\n\n ","\n font-weight: ",";\n\n color: ",";\n text-decoration: none;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ",";\n text-decoration: underline;\n }\n }\n"])),u.spacings.nudge,d.copyStyle("copy","medium"),(function(n){return n.isActive&&"700"}),(function(n){var e=n.isInverted,t=n.theme;return e?u.getColors(t).text.inverted:u.getColors(t).text.default}),(function(n){var e=n.isInverted,t=n.theme;return e?u.getColors(t).text.inverted:u.getColors(t).text.default})),Q=v.default.div.withConfig({displayName:"MenuHeader__Header",componentId:"sc-1tk7hrl-0"})(S||(S=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n\n padding: 0 ","px;\n padding-top: ","px;\n"],["\n display: flex;\n align-items: center;\n\n padding: 0 ","px;\n padding-top: ","px;\n"])),2*u.spacings.nudge,5*u.spacings.nudge),X=v.default.div.withConfig({displayName:"MenuHeader__LanguageCol",componentId:"sc-1tk7hrl-1"})(F||(F=n.__makeTemplateObject(["\n display: block;\n margin-left: ","px;\n margin-top: 2px;\n"],["\n display: block;\n margin-left: ","px;\n margin-top: 2px;\n"])),3*u.spacings.nudge),Y=function(e){var t=e.isInverted,i=e.customToggle,a=e.menuStates,o=e.langs,r=e.action;return g.default.createElement(g.default.Fragment,null,g.default.createElement(Q,null,g.default.createElement(R,{isInverted:t,isExpanded:!0,onClick:null==a?void 0:a.closeMenu},i?i({isInverted:t}):g.default.createElement(n.Cross,{ariaHidden:!0})),l.isValidArray(o,!1)&&g.default.createElement(X,null,g.default.createElement(p.LanguageSwitcher,{isInverted:t,langs:o})),r&&r(n.__assign({isInverted:t},a))))},J=function(e){return r.css(wn||(wn=n.__makeTemplateObject(["\n font-family: ",";\n font-weight: ",";\n font-style: ",";\n ","\n line-height: ",";\n letter-spacing: ",";\n text-transform: ",";\n text-decoration: ",";\n"],["\n font-family: ",";\n font-weight: ",";\n font-style: ",";\n ","\n line-height: ",";\n letter-spacing: ",";\n text-transform: ",";\n text-decoration: ",";\n"])),(function(n){var t=n.theme;return u.getFonts(t).navigation[e].family}),(function(n){var t=n.theme;return u.getFonts(t).navigation[e].weight}),(function(n){var t=n.theme;return u.getFonts(t).navigation[e].style}),(function(n){var t=n.theme;return u.withRange(u.getFonts(t).navigation[e].size,"font-size")}),(function(n){var t=n.theme;return u.getFonts(t).navigation[e].lineHeight}),(function(n){var t=n.theme;return u.getFonts(t).navigation[e].letterSpacing}),(function(n){var t=n.theme;return u.getFonts(t).navigation[e].textTransform}),(function(n){var t=n.theme;return u.getFonts(t).navigation[e].textDecoration}))},K=v.default.div.withConfig({displayName:"MenuFlyout__Backdrop",componentId:"sc-19pnt0u-0"})(yn||(yn=n.__makeTemplateObject(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: ",";\n pointer-events: ",";\n z-index: 101;\n\n transition: opacity 0.3s ease-in-out;\n\n @supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {\n backdrop-filter: ",";\n }\n"],["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: ",";\n pointer-events: ",";\n z-index: 101;\n\n transition: opacity 0.3s ease-in-out;\n\n @supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {\n backdrop-filter: ",";\n }\n"])),(function(n){return n.isOpen?1:0}),(function(n){return n.isOpen?"all":"none"}),(function(n){return n.filter})),Z=v.default.div.withConfig({displayName:"MenuFlyout__Stage",componentId:"sc-19pnt0u-1"})(_n||(_n=n.__makeTemplateObject(["\n position: fixed;\n top: 0;\n left: ",";\n height: 100vh;\n width: 100vw;\n max-width: ","px;\n pointer-events: none;\n\n z-index: 102;\n\n transform: translate(",", 0px);\n\n transition: transform 0.4s ease-in-out, left 0.4s ease-in-out;\n will-change: transform;\n"],["\n position: fixed;\n top: 0;\n left: ",";\n height: 100vh;\n width: 100vw;\n max-width: ","px;\n pointer-events: none;\n\n z-index: 102;\n\n transform: translate(",", 0px);\n\n transition: transform 0.4s ease-in-out, left 0.4s ease-in-out;\n will-change: transform;\n"])),(function(n){return n.isOpen?"50%":"0px"}),(function(n){return"content"===n.clampWidth?u.spacings.wrapper:u.spacings.wrapperLarge}),(function(n){return n.isOpen?"-50%":"-100%"})),$=v.default.div.withConfig({displayName:"MenuFlyout__Flyout",componentId:"sc-19pnt0u-2"})(kn||(kn=n.__makeTemplateObject(["\n display: flex;\n flex-direction: column;\n visibility: visible;\n\n position: relative;\n width: 100%;\n height: 100%;\n background-color: ",";\n\n pointer-events: ",";\n\n /** Animation to disable keyboard tabbing if flyout is closed */\n animation: ",";\n\n @media "," {\n width: 384px;\n }\n\n @media "," {\n width: 460px;\n }\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 2px;\n height: 100%;\n width: 40vw;\n background-color: ",";\n z-index: -1;\n\n transform: translateX(-100%);\n }\n\n @keyframes hideAnim {\n to {\n visibility: hidden;\n }\n }\n"],["\n display: flex;\n flex-direction: column;\n visibility: visible;\n\n position: relative;\n width: 100%;\n height: 100%;\n background-color: ",";\n\n pointer-events: ",";\n\n /** Animation to disable keyboard tabbing if flyout is closed */\n animation: ",";\n\n @media "," {\n width: 384px;\n }\n\n @media "," {\n width: 460px;\n }\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 2px;\n height: 100%;\n width: 40vw;\n background-color: ",";\n z-index: -1;\n\n transform: translateX(-100%);\n }\n\n @keyframes hideAnim {\n to {\n visibility: hidden;\n }\n }\n"])),(function(n){var e=n.theme;return u.getColors(e).elementBg.light}),(function(n){return n.isOpen?"all":"none"}),(function(n){return!n.isOpen&&"hideAnim 0s ease-in 2s forwards"}),u.mq.medium,u.mq.large,(function(n){var e=n.theme;return u.getColors(e).elementBg.light})),nn=function(n,e){var t="large"===e?u.getGlobals(n).navigation.menu.headerHeight.large:u.getGlobals(n).navigation.menu.headerHeight.small;return[s.clampValue(t[0],0),s.clampValue(void 0===(null==t?void 0:t[1])?t[0]:t[1],0)]},en=v.default.div.withConfig({displayName:"MenuFlyout__Header",componentId:"sc-19pnt0u-3"})(Cn||(Cn=n.__makeTemplateObject(["\n flex: 0 0\n ","px;\n height: ","px;\n\n @media "," {\n height: ","px;\n flex: 0 0\n ","px;\n }\n"],["\n flex: 0 0\n ","px;\n height: ","px;\n\n @media "," {\n height: ","px;\n flex: 0 0\n ","px;\n }\n"])),(function(n){var e=n.theme,t=n.navBarSize;return nn(e,t)[0]}),(function(n){var e=n.theme,t=n.navBarSize;return nn(e,t)[0]}),u.mq.semilarge,(function(n){var e=n.theme,t=n.navBarSize;return nn(e,t)[1]}),(function(n){var e=n.theme,t=n.navBarSize;return nn(e,t)[1]})),tn=v.default.div.withConfig({displayName:"MenuFlyout__ScrollContainer",componentId:"sc-19pnt0u-4"})(In||(In=n.__makeTemplateObject(["\n display: block;\n max-height: 100%;\n min-height: 0;\n"],["\n display: block;\n max-height: 100%;\n min-height: 0;\n"]))),an=v.default.div.withConfig({displayName:"MenuFlyout__ScrollArea",componentId:"sc-19pnt0u-5"})(Nn||(Nn=n.__makeTemplateObject(["\n display: block;\n width: 100vw;\n max-height: 100%;\n overflow: auto;\n -ms-overflow-style: none; /* for Internet Explorer, Edge */\n scrollbar-width: none; /* for Firefox */\n overflow-y: scroll;\n\n &::-webkit-scrollbar {\n display: none; /* for Chrome, Safari, and Opera */\n }\n\n & > *:last-child {\n margin-bottom: 120px;\n }\n\n @media "," {\n max-width: 100%;\n }\n"],["\n display: block;\n width: 100vw;\n max-height: 100%;\n overflow: auto;\n -ms-overflow-style: none; /* for Internet Explorer, Edge */\n scrollbar-width: none; /* for Firefox */\n overflow-y: scroll;\n\n &::-webkit-scrollbar {\n display: none; /* for Chrome, Safari, and Opera */\n }\n\n & > *:last-child {\n margin-bottom: 120px;\n }\n\n @media "," {\n max-width: 100%;\n }\n"])),u.mq.medium),on=v.default.nav.withConfig({displayName:"MenuFlyout__NavView",componentId:"sc-19pnt0u-6"})(On||(On=n.__makeTemplateObject([""],[""]))),rn=v.default.ul.withConfig({displayName:"MenuFlyout__NavList",componentId:"sc-19pnt0u-7"})(Bn||(Bn=n.__makeTemplateObject(["\n margin: 0;\n padding: 0;\n list-style: none;\n margin: ","px 0;\n\n border-bottom: ",";\n"],["\n margin: 0;\n padding: 0;\n list-style: none;\n margin: ","px 0;\n\n border-bottom: ",";\n"])),2*u.spacings.nudge,(function(n){var e=n.hasNonFeaturedItems,t=n.theme;return e&&"solid 2px ".concat(u.getColors(t).elementBg.medium)})),ln=v.default.li.withConfig({displayName:"MenuFlyout__NavItemView",componentId:"sc-19pnt0u-8"})(En||(En=n.__makeTemplateObject(["\n flex: 0 0 80px;\n\n height: 100%;\n background-color: ",";\n\n transition: background-color 0.2s ease-in-out;\n\n li + &:not([data-featured='true']) {\n border-top: solid 2px ",";\n }\n\n li[data-featured='true'] + &:not([data-featured='true']) {\n margin-top: ","px;\n }\n\n &:not([data-featured='true']):first-child {\n border-top: solid 2px ",";\n }\n\n @media "," {\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n background-color: ",";\n }\n }\n"],["\n flex: 0 0 80px;\n\n height: 100%;\n background-color: ",";\n\n transition: background-color 0.2s ease-in-out;\n\n li + &:not([data-featured='true']) {\n border-top: solid 2px ",";\n }\n\n li[data-featured='true'] + &:not([data-featured='true']) {\n margin-top: ","px;\n }\n\n &:not([data-featured='true']):first-child {\n border-top: solid 2px ",";\n }\n\n @media "," {\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n background-color: ",";\n }\n }\n"])),(function(n){var e=n.theme;return n.isActive?u.getColors(e).elementBg.medium:u.getColors(e).elementBg.light}),(function(n){var e=n.theme;return u.getColors(e).elementBg.medium}),u.spacings.spacer,(function(n){var e=n.theme;return u.getColors(e).elementBg.medium}),u.mq.semilarge,(function(n){var e=n.theme;return u.getColors(e).elementBg.medium})),sn=v.default.span.withConfig({displayName:"MenuFlyout__NavItemContent",componentId:"sc-19pnt0u-9"})(Sn||(Sn=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n position: relative;\n min-height: 80px;\n\n padding: 0 ","px;\n\n ","\n color: ",";\n text-decoration: ",";\n"],["\n display: flex;\n align-items: center;\n position: relative;\n min-height: 80px;\n\n padding: 0 ","px;\n\n ","\n color: ",";\n text-decoration: ",";\n"])),2*u.spacings.nudge,(function(n){var e=n.isFeatured;return J(e?"featured":"main")}),(function(n){var e=n.theme;return n.isFeatured?u.getFonts(e).navigation.featured.color:u.getFonts(e).navigation.main.color}),(function(n){return n.isCurrent?"underline":"none"})),un=v.default.span.withConfig({displayName:"MenuFlyout__NavItemIcon",componentId:"sc-19pnt0u-10"})(Fn||(Fn=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n width: 48px;\n max-width: 48px;\n\n * {\n width: 100%;\n max-width: 48px;\n max-height: 80px;\n }\n"],["\n display: flex;\n align-items: center;\n width: 48px;\n max-width: 48px;\n\n * {\n width: 100%;\n max-width: 48px;\n max-height: 80px;\n }\n"]))),dn=v.default.span.withConfig({displayName:"MenuFlyout__NavItemLabel",componentId:"sc-19pnt0u-11"})(Mn||(Mn=n.__makeTemplateObject(["\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:not(:first-child) {\n margin-left: ","px;\n }\n"],["\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:not(:first-child) {\n margin-left: ","px;\n }\n"])),2*u.spacings.nudge),cn=v.default.span.withConfig({displayName:"MenuFlyout__NavItemCollapse",componentId:"sc-19pnt0u-12"})(Tn||(Tn=n.__makeTemplateObject(["\n display: block;\n margin-left: auto;\n padding-left: ","px;\n"],["\n display: block;\n margin-left: auto;\n padding-left: ","px;\n"])),3*u.spacings.nudge),pn=v.default(n.AngleRight).withConfig({displayName:"MenuFlyout__NavItemCollapseIcon",componentId:"sc-19pnt0u-13"})(jn||(jn=n.__makeTemplateObject(["\n transform: ",";\n\n transition: transform 0.2s ease-in-out;\n\n @media "," {\n transform: rotate(0deg);\n }\n"],["\n transform: ",";\n\n transition: transform 0.2s ease-in-out;\n\n @media "," {\n transform: rotate(0deg);\n }\n"])),(function(n){return!n.isCollapsed&&"rotate(90deg)"}),u.mq.semilarge),mn=v.default(o.Link).withConfig({displayName:"MenuFlyout__NavItemLink",componentId:"sc-19pnt0u-14"})(zn||(zn=n.__makeTemplateObject(["\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n &:focus {\n outline: solid 2px\n ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n"],["\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n &:focus {\n outline: solid 2px\n ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n"])),(function(n){var e=n.theme;return n.isInverted?u.getColors(e).primary.inverted:u.getColors(e).primary.default})),fn=v.default.button.withConfig({displayName:"MenuFlyout__NavItemButton",componentId:"sc-19pnt0u-15"})(Ln||(Ln=n.__makeTemplateObject(["\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n background: none;\n border: none;\n border-bottom: solid 2px ",";\n width: 100%;\n cursor: pointer;\n outline: none;\n border-radius: 0px;\n\n &:focus {\n outline: solid 2px ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n @media "," {\n border-bottom: none;\n }\n"],["\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n background: none;\n border: none;\n border-bottom: solid 2px ",";\n width: 100%;\n cursor: pointer;\n outline: none;\n border-radius: 0px;\n\n &:focus {\n outline: solid 2px ",";\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n @media "," {\n border-bottom: none;\n }\n"])),(function(n){var e=n.theme;return u.getColors(e).elementBg.light}),(function(n){var e=n.theme;return u.getColors(e).primary.default}),u.mq.semilarge),gn=v.default.ul.withConfig({displayName:"MenuFlyout__SubNavList",componentId:"sc-19pnt0u-16"})(qn||(qn=n.__makeTemplateObject(["\n display: ",";\n position: relative;\n margin: 0;\n padding: 0;\n padding-left: ","px;\n padding-right: ","px;\n list-style: none;\n\n max-height: 100%;\n overflow: auto;\n -ms-overflow-style: none; /* for Internet Explorer, Edge */\n scrollbar-width: none; /* for Firefox */\n overflow-y: scroll;\n\n &::-webkit-scrollbar {\n display: none; /* for Chrome, Safari, and Opera */\n }\n\n background-color: ",";\n\n @media "," {\n position: absolute;\n top: 0;\n left: calc(100% - 1px);\n width: 100vw;\n height: 100%;\n max-width: 384px;\n padding-left: ","px;\n }\n"],["\n display: ",";\n position: relative;\n margin: 0;\n padding: 0;\n padding-left: ","px;\n padding-right: ","px;\n list-style: none;\n\n max-height: 100%;\n overflow: auto;\n -ms-overflow-style: none; /* for Internet Explorer, Edge */\n scrollbar-width: none; /* for Firefox */\n overflow-y: scroll;\n\n &::-webkit-scrollbar {\n display: none; /* for Chrome, Safari, and Opera */\n }\n\n background-color: ",";\n\n @media "," {\n position: absolute;\n top: 0;\n left: calc(100% - 1px);\n width: 100vw;\n height: 100%;\n max-width: 384px;\n padding-left: ","px;\n }\n"])),(function(n){return!n.isActive&&"none"}),(function(n){return n.isIndented?48+4*u.spacings.nudge:2*u.spacings.nudge}),2*u.spacings.nudge,(function(n){var e=n.theme;return u.getColors(e).elementBg.medium}),u.mq.semilarge,3*u.spacings.nudge),vn=e.forwardRef((function(e,t){var i=e.isCurrent,a=e.isActive,o=e.isFeatured,r=e.label,l=e.link,s=e.icon,u=e.subNavTitle,d=e.navBarSize,c=e.onItemClick,p=e.collapseIcon,m=e.canFocus,f=e.children,v=!!f&&g.default.Children.count(f)>0;return g.default.createElement(ln,{ref:t,isActive:a,"data-featured":o},g.default.createElement(sn,{isCurrent:i,isFeatured:o},s&&g.default.createElement(un,null,s),r&&g.default.createElement(dn,null,r),v&&g.default.createElement(cn,null,p?p({isCollapsed:!a}):g.default.createElement(pn,{ariaHidden:!0,isCollapsed:!a})),!v&&(null==l?void 0:l.href)&&g.default.createElement(mn,n.__assign({},l,{ariaLabel:r,tabIndex:m?void 0:-1})),v&&g.default.createElement(g.default.Fragment,null,g.default.createElement(fn,{"aria-label":r,"aria-expanded":a,onClick:c,tabIndex:m?void 0:-1}))),v&&g.default.createElement(gn,{isActive:a,isIndented:!!s},(null==l?void 0:l.href)&&g.default.createElement(Zn.SubItem,{key:"overview",link:l,label:u||"Overview",navBarSize:d,canFocus:m}),f))}));vn.displayName="NavigationItem";var hn=v.default.li.withConfig({displayName:"MenuFlyout__SubNavItem",componentId:"sc-19pnt0u-17"})(Hn||(Hn=n.__makeTemplateObject(["\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n height: 56px;\n\n ","\n color: ",";\n\n @media "," {\n &:first-child {\n margin-top: ","px;\n }\n\n &:last-child {\n margin-bottom: ","px;\n }\n }\n"],["\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n height: 56px;\n\n ","\n color: ",";\n\n @media "," {\n &:first-child {\n margin-top: ","px;\n }\n\n &:last-child {\n margin-bottom: ","px;\n }\n }\n"])),J("main"),(function(n){var e=n.theme;return u.getFonts(e).navigation.sub.color}),u.mq.semilarge,(function(n){var e=n.theme,t=n.navBarSize;return nn(e,t)[1]+2*u.spacings.nudge}),u.spacings.spacer),bn=v.default(o.Link).withConfig({displayName:"MenuFlyout__SubNavLink",componentId:"sc-19pnt0u-18"})(An||(An=n.__makeTemplateObject(["\n /* width: 100%; */\n padding: ","px 0;\n outline-color: ",";\n vertical-align: middle;\n\n ","\n color: ",";\n text-decoration: ",";\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * {\n margin: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus > * {\n outline: dashed 1px\n ",";\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) > * {\n outline: none;\n }\n"],["\n /* width: 100%; */\n padding: ","px 0;\n outline-color: ",";\n vertical-align: middle;\n\n ","\n color: ",";\n text-decoration: ",";\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * {\n margin: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus > * {\n outline: dashed 1px\n ",";\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) > * {\n outline: none;\n }\n"])),u.spacings.nudge,(function(n){var e=n.theme;return u.getColors(e).primary.default}),J("sub"),(function(n){var e=n.theme;return u.getFonts(e).navigation.sub.color}),(function(n){return n.isCurrent?"underline":"none"}),(function(n){var e=n.theme;return n.isInverted?u.getColors(e).primary.inverted:u.getColors(e).primary.default})),xn=e.forwardRef((function(e,t){var i=e.isCurrent,a=e.label,o=e.link,r=e.navBarSize,l=e.canFocus;return g.default.createElement(hn,{ref:t,navBarSize:r},g.default.createElement(bn,n.__assign({tabIndex:l?void 0:-1,isCurrent:i},o),g.default.createElement("span",null,a)))}));xn.displayName="NavigationSubItem";var wn,yn,_n,kn,Cn,In,Nn,On,Bn,En,Sn,Fn,Mn,Tn,jn,zn,Ln,qn,Hn,An,Pn,Vn,Dn,Wn,Rn,Gn,Un,Qn,Xn,Yn,Jn=v.default.ul.withConfig({displayName:"MenuFlyout__SecondaryNavList",componentId:"sc-19pnt0u-19"})(Pn||(Pn=n.__makeTemplateObject(["\n display: block;\n list-style: none;\n padding: 0 ","px;\n margin: ","px 0;\n\n li {\n display: flex;\n margin: 0;\n padding: 0;\n }\n"],["\n display: block;\n list-style: none;\n padding: 0 ","px;\n margin: ","px 0;\n\n li {\n display: flex;\n margin: 0;\n padding: 0;\n }\n"])),2*u.spacings.nudge,u.spacings.spacer),Kn=v.default(o.Link).withConfig({displayName:"MenuFlyout__SecondaryNavLink",componentId:"sc-19pnt0u-20"})(Vn||(Vn=n.__makeTemplateObject(["\n display: inline-block;\n padding: ","px 0;\n outline-color: ",";\n vertical-align: middle;\n\n ","\n color: ",";\n text-decoration: ",";\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:focus {\n outline: dashed 2px\n ",";\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n"],["\n display: inline-block;\n padding: ","px 0;\n outline-color: ",";\n vertical-align: middle;\n\n ","\n color: ",";\n text-decoration: ",";\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:focus {\n outline: dashed 2px\n ",";\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n"])),.5*u.spacings.nudge,(function(n){var e=n.theme;return u.getColors(e).primary.default}),J("secondary"),(function(n){var e=n.theme;return u.getFonts(e).navigation.secondary.color}),(function(n){return n.isCurrent?"underline":"none"}),(function(n){var e=n.theme;return n.isInverted?u.getColors(e).primary.inverted:u.getColors(e).primary.default})),Zn={View:function(n){var e=n.children;return g.default.createElement(on,{"aria-label":"menu"},e)},List:rn,Item:vn,SubItem:xn,SubList:function(n){var e=n.items,t=n.canFocus;return e&&e.length>0?g.default.createElement(Jn,null,null==e?void 0:e.filter((function(n){var e;return null===(e=n.link)||void 0===e?void 0:e.href})).map((function(n,e){var i;return g.default.createElement("li",{key:e},g.default.createElement(Kn,{isCurrent:n.isCurrent,href:null===(i=n.link)||void 0===i?void 0:i.href,tabIndex:t?void 0:-1},n.label))}))):null}},$n=function(n){return!n.hideFromMenu&&n.uid&&n.label},ne=function(i){var o=i.isOpen,r=i.clampWidth,s=i.isIndexPage,u=i.mainNavigation,d=i.subNavigation,c=i.navBarSize,p=i.subNavTitle,m=i.backdropFilter,f=void 0===m?"grayscale(1)":m,v=i.header,h=i.footer,b=i.onClose,x=i.collapseIcon,w=i.navItemsHeader,y=t.useLibTheme().theme,_=e.useRef(null),k=e.useMemo((function(){return function(n){var e=nn(n,"large"),t=nn(n,"small");return e[0]>0||e[1]>0||t[0]>0||t[1]>0}(y)}),[y]),C=e.useMemo((function(){var e=(null==u?void 0:u.filter((function(n){return n.isFeatured})))||[],t=(null==u?void 0:u.filter((function(n){return!n.isFeatured})))||[];return n.__spreadArray(n.__spreadArray([],e,!0),t,!0).filter($n)}),[u]),I=e.useMemo((function(){var n=(null==u?void 0:u.filter((function(n){return!n.isFeatured})))||[];return n&&n.length>0}),[u]),N=e.useMemo((function(){return null==d?void 0:d.filter($n)}),[d]),O=e.useState((function(){var n,e,t=null===(e=null===(n=a.getCurrentNavItem(C,!0))||void 0===n?void 0:n.root)||void 0===e?void 0:e.uid;return t?[t]:[""]})),B=O[0],E=O[1],S=e.useState(null),F=S[0],M=S[1],T=e.useState(null),j=T[0],z=T[1];return e.useEffect((function(){var n=function(n){_.current&&n.target&&(_.current.contains(n.target)||b&&b())};return o?document.addEventListener("focusin",n):document.removeEventListener("focusin",n),function(){document.removeEventListener("focusin",n)}}),[o,b]),e.useEffect((function(){try{null==F||F.scrollIntoView({block:"center",inline:"start"}),null==j||j.scrollIntoView({block:"center",inline:"start"})}catch(n){}}),[F,j]),g.default.createElement(g.default.Fragment,null,g.default.createElement(K,{isOpen:o,filter:f,onClick:b}),g.default.createElement(Z,{isOpen:o,clampWidth:r},g.default.createElement($,{ref:_,isOpen:o},k&&g.default.createElement(en,{navBarSize:c},v?v({isOpen:o,mainNavigation:C,subNavigation:N,isIndexPage:s,navBarSize:c}):g.default.createElement(Y,{menuStates:{isOpen:o,mainNavigation:u,subNavigation:d,isIndexPage:s,navBarSize:c}})),g.default.createElement(tn,null,g.default.createElement(an,null,w&&w({isOpen:o,mainNavigation:C,subNavigation:N,isIndexPage:s,navBarSize:c}),g.default.createElement(Zn.View,null,l.isValidArray(C,!1)&&g.default.createElement(Zn.List,{id:"mainMenu",hasNonFeaturedItems:I},C.map((function(e){var t,i=B.includes(e.uid),a=!!(null==e?void 0:e.subItems)&&e.subItems.findIndex((function(n){return n.isCurrent}))>=0,r=e.isCurrent||a;return g.default.createElement(Zn.Item,n.__assign({key:e.uid},e,{ref:r?M:void 0,isActive:i,isCurrent:r,subNavTitle:p,navBarSize:c,collapseIcon:x,onItemClick:function(){return n=e.uid,void E((function(e){return e.includes(n)?[]:[n]}));var n},canFocus:o}),null===(t=null==e?void 0:e.subItems)||void 0===t?void 0:t.filter($n).map((function(e){return g.default.createElement(Zn.SubItem,n.__assign({key:e.uid,ref:e.isCurrent?z:void 0},e,{navBarSize:c,canFocus:o}))})))}))),l.isValidArray(N,!1)&&g.default.createElement(Zn.SubList,{items:N,canFocus:o})),h?h({isOpen:o,mainNavigation:C,subNavigation:N,isIndexPage:s}):"")))))},ee=function(e){var t=e.isOpen,i=e.clampWidth,a=e.isIndexPage,o=e.mainNavigation,r=e.subNavigation,l=e.navBarSize,s=e.header,u=e.footer,d=e.navItemsHeader,c=e.onClose,p=e.typeSettings;return p||(p={type:"flyout"}),null==p||p.type,g.default.createElement(ne,n.__assign({isOpen:t,clampWidth:i,isIndexPage:a,mainNavigation:o,subNavigation:r,navBarSize:l,header:s,footer:u,onClose:c,navItemsHeader:d},p))},te=function(n,e){var t="large"===e?u.getGlobals(n).navigation.navBar.topHeight.large:u.getGlobals(n).navigation.navBar.topHeight.small;return[s.clampValue(t[0],0),s.clampValue(void 0===(null==t?void 0:t[1])?t[0]:t[1],0)]},ie=function(n){var e=te(n,"large"),t=te(n,"small");return e[0]>0||e[1]>0||t[0]>0||t[1]>0},ae=function(n,e){var t="large"===e?u.getGlobals(n).navigation.navBar.mainHeight.large:u.getGlobals(n).navigation.navBar.mainHeight.small;return[s.clampValue(t[0],0),s.clampValue(void 0===(null==t?void 0:t[1])?t[0]:t[1],0)]},oe=function(n,e){var t="large"===e?u.getGlobals(n).navigation.navBar.bottomHeight.large:u.getGlobals(n).navigation.navBar.bottomHeight.small;return[s.clampValue(t[0],0),s.clampValue(void 0===(null==t?void 0:t[1])?t[0]:t[1],0)]},re=function(n){var e=oe(n,"large"),t=oe(n,"small");return e[0]>0||e[1]>0||t[0]>0||t[1]>0},le=function(n,e,t){var i=!t||-1===t.indexOf("top"),a=!t||-1===t.indexOf("main"),o=!t||-1===t.indexOf("bottom"),r=i?te(n,e):[0,0],l=a?ae(n,e):[0,0],s=o?oe(n,e):[0,0];return[r[0]+l[0]+s[0],r[1]+l[1]+s[1]]},se=v.default.div.withConfig({displayName:"NavBar__View",componentId:"sc-f6gpx5-0"})(Dn||(Dn=n.__makeTemplateObject(["\n position: ",";\n top: 0;\n left: 0;\n right: 0;\n\n transform: ",";\n\n margin: 0 auto;\n /* max-width: ","px; */\n z-index: 100;\n\n ","\n will-change: transform;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: ",";\n margin: 0 auto;\n max-width: ","px;\n z-index: -1;\n }\n\n // print version\n @media print {\n position: relative;\n }\n"],["\n position: ",";\n top: 0;\n left: 0;\n right: 0;\n\n transform: ",";\n\n margin: 0 auto;\n /* max-width: ","px; */\n z-index: 100;\n\n ","\n will-change: transform;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: ",";\n margin: 0 auto;\n max-width: ","px;\n z-index: -1;\n }\n\n // print version\n @media print {\n position: relative;\n }\n"])),(function(n){return n.isSticky?"fixed":"absolute"}),(function(n){return!n.isOpen&&"translate3d(0, -101%, 0)"}),u.spacings.wrapperLarge,(function(n){var e=n.isAnimated;return"transition: ".concat(e?"transform 0.3s ease-in-out, ":"","height 0.3s ease-in-out,\n opacity 0.3s ease-in-out;")}),(function(n){return n.bgGradient||""}),u.spacings.wrapperLarge),ue=v.default.div.withConfig({displayName:"NavBar__Header",componentId:"sc-f6gpx5-1"})(Wn||(Wn=n.__makeTemplateObject(["\n opacity: ",";\n pointer-events: ",";\n overflow: ",";\n\n background-color: ",";\n color: ",";\n\n transition: background-color 0.2s ease-in-out;\n\n @media "," {\n opacity: ",";\n pointer-events: ",";\n overflow: ",";\n }\n"],["\n opacity: ",";\n pointer-events: ",";\n overflow: ",";\n\n background-color: ",";\n color: ",";\n\n transition: background-color 0.2s ease-in-out;\n\n @media "," {\n opacity: ",";\n pointer-events: ",";\n overflow: ",";\n }\n"])),(function(n){var e=n.theme,t=n.size;return te(e,t)[0]>0?1:0}),(function(n){var e=n.theme,t=n.size;return te(e,t)[0]>0?"all":"none"}),(function(n){var e=n.theme,t=n.size;return te(e,t)[0]<=0&&"hidden"}),(function(n){return n.background}),(function(n){var e=n.theme;return n.background?u.getColors(e).text.default:u.getColors(e).text.inverted}),u.mq.semilarge,(function(n){var e=n.theme,t=n.size;return te(e,t)[1]>0?1:0}),(function(n){var e=n.theme,t=n.size;return te(e,t)[1]>0?"all":"none"}),(function(n){var e=n.theme,t=n.size;return te(e,t)[1]<=0&&"hidden"})),de=v.default.div.withConfig({displayName:"NavBar__Main",componentId:"sc-f6gpx5-2"})(Rn||(Rn=n.__makeTemplateObject(["\n background-color: ",";\n color: ",";\n\n transition: background-color 0.2s ease-in-out;\n"],["\n background-color: ",";\n color: ",";\n\n transition: background-color 0.2s ease-in-out;\n"])),(function(n){return n.background}),(function(n){var e=n.theme;return n.background?u.getColors(e).text.default:u.getColors(e).text.inverted})),ce=v.default.div.withConfig({displayName:"NavBar__Footer",componentId:"sc-f6gpx5-3"})(Gn||(Gn=n.__makeTemplateObject(["\n opacity: ",";\n pointer-events: ",";\n overflow: ",";\n\n background-color: ",";\n color: ",";\n\n opacity: ",";\n\n transition: background-color 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media "," {\n opacity: ",";\n pointer-events: ",";\n overflow: ",";\n\n opacity: ",";\n }\n"],["\n opacity: ",";\n pointer-events: ",";\n overflow: ",";\n\n background-color: ",";\n color: ",";\n\n opacity: ",";\n\n transition: background-color 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media "," {\n opacity: ",";\n pointer-events: ",";\n overflow: ",";\n\n opacity: ",";\n }\n"])),(function(n){var e=n.theme,t=n.size;return oe(e,t)[0]>0?1:0}),(function(n){var e=n.theme,t=n.size;return oe(e,t)[0]>0?"all":"none"}),(function(n){var e=n.theme,t=n.size;return oe(e,t)[0]<=0&&"hidden"}),(function(n){return n.background}),(function(n){var e=n.theme;return n.background?u.getColors(e).text.default:u.getColors(e).text.inverted}),(function(n){var e=n.theme,t=n.size;return oe(e,t)[0]>0?1:0}),u.mq.semilarge,(function(n){var e=n.theme,t=n.size;return oe(e,t)[1]>0?1:0}),(function(n){var e=n.theme,t=n.size;return oe(e,t)[1]>0?"all":"none"}),(function(n){var e=n.theme,t=n.size;return oe(e,t)[1]<=0&&"hidden"}),(function(n){var e=n.theme,t=n.size;return oe(e,t)[1]>0?1:0})),pe=v.default.div.withConfig({displayName:"NavBar__TopContent",componentId:"sc-f6gpx5-4"})(Un||(Un=n.__makeTemplateObject(["\n display: flex;\n justify-content: flex-end;\n position: relative;\n max-width: ","px;\n padding: ",";\n margin: 0 auto;\n\n height: ","px;\n\n transition: height 0.2s ease-in-out, padding-top 0.2s ease-in-out,\n padding-bottom 0.2s ease-in-out;\n will-change: height;\n\n @media "," {\n height: ","px;\n padding: ",";\n }\n"],["\n display: flex;\n justify-content: flex-end;\n position: relative;\n max-width: ","px;\n padding: ",";\n margin: 0 auto;\n\n height: ","px;\n\n transition: height 0.2s ease-in-out, padding-top 0.2s ease-in-out,\n padding-bottom 0.2s ease-in-out;\n will-change: height;\n\n @media "," {\n height: ","px;\n padding: ",";\n }\n"])),(function(n){return n.clamp?u.spacings.wrapper:u.spacings.wrapperLarge}),(function(n){var e=n.size,t=n.theme;return te(t,e)[0]>0&&"0 ".concat(2*u.spacings.nudge,"px")}),(function(n){var e=n.theme,t=n.size;return te(e,t)[0]}),u.mq.semilarge,(function(n){var e=n.theme,t=n.size;return te(e,t)[1]}),(function(n){var e=n.size,t=n.theme;return te(t,e)[1]>0&&"0 ".concat(2*u.spacings.nudge,"px")})),me=v.default.div.withConfig({displayName:"NavBar__Content",componentId:"sc-f6gpx5-5"})(Qn||(Qn=n.__makeTemplateObject(["\n display: flex;\n position: relative;\n max-width: ","px;\n padding: 0 ","px;\n margin: 0 auto;\n\n height: ","px;\n\n transition: height 0.2s ease-in-out;\n will-change: height;\n\n @media "," {\n height: ","px;\n }\n"],["\n display: flex;\n position: relative;\n max-width: ","px;\n padding: 0 ","px;\n margin: 0 auto;\n\n height: ","px;\n\n transition: height 0.2s ease-in-out;\n will-change: height;\n\n @media "," {\n height: ","px;\n }\n"])),(function(n){return n.clamp?u.spacings.wrapper:u.spacings.wrapperLarge}),2*u.spacings.nudge,(function(n){var e=n.theme,t=n.size;return ae(e,t)[0]}),u.mq.semilarge,(function(n){var e=n.theme,t=n.size;return ae(e,t)[1]||ae(e,t)[0]})),fe=v.default.div.withConfig({displayName:"NavBar__BottomContent",componentId:"sc-f6gpx5-6"})(Xn||(Xn=n.__makeTemplateObject(["\n display: flex;\n justify-content: flex-start;\n position: relative;\n max-width: ","px;\n padding: 0 ","px;\n margin: 0 auto;\n\n height: ","px;\n transition: 0.2s height ease-in-out;\n\n @media "," {\n height: ","px;\n padding: 0 ","px;\n }\n"],["\n display: flex;\n justify-content: flex-start;\n position: relative;\n max-width: ","px;\n padding: 0 ","px;\n margin: 0 auto;\n\n height: ","px;\n transition: 0.2s height ease-in-out;\n\n @media "," {\n height: ","px;\n padding: 0 ","px;\n }\n"])),(function(n){return n.clamp?u.spacings.wrapper:u.spacings.wrapperLarge}),2*u.spacings.nudge,(function(n){var e=n.theme,t=n.size;return oe(e,t)[0]}),u.mq.semilarge,(function(n){var e=n.theme,t=n.size;return oe(e,t)[1]}),2*u.spacings.nudge),ge=v.default.div.withConfig({displayName:"NavBar__BarSpacer",componentId:"sc-f6gpx5-7"})(Yn||(Yn=n.__makeTemplateObject(["\n height: ","px;\n\n @media "," {\n height: ","px;\n }\n\n // print version\n @media print {\n display: none;\n }\n"],["\n height: ","px;\n\n @media "," {\n height: ","px;\n }\n\n // print version\n @media print {\n display: none;\n }\n"])),(function(n){var e=n.theme,t=n.hasHeader,i=n.hasFooter,a=[];return t||a.push("top"),i||a.push("bottom"),le(e,"large",a)[0]}),u.mq.semilarge,(function(n){var e=n.theme,t=n.hasHeader,i=n.hasFooter,a=[];return t||a.push("top"),i||a.push("bottom"),le(e,"large",a)[1]})),ve=function(n){var i=n.size,a=void 0===i?"large":i,o=n.isOpen,r=void 0!==o&&o,l=n.isSticky,s=void 0!==l&&l,u=n.isAnimated,d=void 0!==u&&u,c=n.clampWidth,p=void 0!==c&&c,m=n.pageFlow,f=void 0===m?"beforeContent":m,v=n.topBg,h=n.mainBg,b=n.bottomBg,x=n.onContentBg,w=n.topBar,y=n.mainBar,_=n.bottomBar,k=n.className,C=t.useLibTheme(),I=C.theme,N=C.colors,O="content"===p,B="overContent"===f,E=e.useMemo((function(){return ie(I)&&null!==w}),[I,w]),S=e.useMemo((function(){return re(I)&&null!==_}),[_,I]),F=e.useMemo((function(){return"small"===a||"large"===a&&!B}),[B,a]),M=v||N.elementBg.light,T=h||N.elementBg.light,j=b||N.elementBg.light,z=x||"linear-gradient(180deg,rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.2) 40%, rgba(0,0,0,0) 100%)",L=e.useMemo((function(){return w&&w({size:a,isOpen:r,isSticky:s,pageFlow:f})}),[r,s,f,a,w]),q=e.useMemo((function(){return y&&y({size:a,isOpen:r,isSticky:s,pageFlow:f})}),[r,s,y,f,a]),H=e.useMemo((function(){return _&&_({size:a,isOpen:r,isSticky:s,pageFlow:f})}),[_,r,s,f,a]);return g.default.createElement(g.default.Fragment,null,"beforeContent"===f&&g.default.createElement(ge,{hasHeader:E,hasFooter:S}),g.default.createElement(se,{isOpen:r,isSticky:s,isAnimated:d,bgGradient:"large"===a&&B?z:void 0,className:k},E&&g.default.createElement(ue,{size:a,background:F?M:void 0},g.default.createElement(pe,{size:a,clamp:O},L||g.default.createElement(P,{isInverted:!0},"Top Nav"))),null!==y&&g.default.createElement(de,{background:F?T:void 0},g.default.createElement(me,{size:a,clamp:O},q||g.default.createElement(g.default.Fragment,null,g.default.createElement(P,{takeSpace:!0,isInverted:"large"===a&&B},"Left"),g.default.createElement(P,{isInverted:"large"===a&&B},"Center"),g.default.createElement(P,{takeSpace:!0,isInverted:"large"===a&&B},"Right")))),S&&g.default.createElement(ce,{size:a,background:F?j:void 0},g.default.createElement(fe,{size:a,clamp:O},H||"bottom bar"))))},he=function(n){var e=n||"",t=void 0;switch(!0){case-1!==e.search("overContent"):t="overContent";break;case-1!==e.search("beforeContent"):t="beforeContent"}return{hasTop:-1!==e.search("top"),hasMain:-1!==e.search("main"),hasBottom:-1!==e.search("bottom"),pageFlow:t,isStickable:-1!==e.search("stickable")}},be=function(n){if(!n)return"";var e=[];return n.hasTop&&e.push("top"),n.hasMain&&e.push("main"),n.hasBottom&&e.push("bottom"),n.isStickable&&e.push("stickable"),n.pageFlow&&e.push(n.pageFlow),e.join("-")};exports.BarBreadcrumbs=function(t){var i=t.isInverted,o=void 0!==i&&i,r=t.rootLink,l=t.rootLabel,s=t.navItems,u=t.seperator,d=t.back,c=t.className,p=e.useMemo((function(){return a.getCurrentNavPath(s,(null==r?void 0:r.href)?[null==r?void 0:r.href]:[])}),[s,null==r?void 0:r.href]),m={uid:"root",label:l||"Home",link:r};return g.default.createElement(M,{"aria-label":"breadcrumbs",className:c},g.default.createElement(T,null,g.default.createElement(j,null,g.default.createElement(A,n.__assign({showOnDesktop:!0,isInverted:o},m))),null==p?void 0:p.map((function(e,t){var i=t===p.length-1,a=t-1>=0?p[t-1]:m;return g.default.createElement(j,{key:t,isCurrent:i},g.default.createElement(q,{size:"small",isInverted:o},u?u({isInverted:o}):"/"),i?g.default.createElement(g.default.Fragment,null,a&&g.default.createElement(A,n.__assign({},a,{showOnMobile:!0,isInverted:o}),g.default.createElement(H,null,d?d({isInverted:o}):g.default.createElement(n.AngleLeft,null)),g.default.createElement("span",null,a.label)),g.default.createElement(A,n.__assign({},e,{link:{},showOnDesktop:!0,isInverted:o}))):g.default.createElement(A,n.__assign({},e,{showOnDesktop:!0,isInverted:o})))}))))},exports.BarLogo=function(e){var t=e.link,i=e.logo,a=e.className;return g.default.createElement(V,n.__assign({},t,{className:a}),(null==i?void 0:i.small)&&g.default.createElement(D,n.__assign({},i,{coverSpace:!1,ratios:void 0,showPlaceholder:!1})))},exports.BarMenuToggle=R,exports.BarNavList=function(e){var t=e.isInverted,i=e.navLinks,a=e.className;return g.default.createElement(G,{isInverted:t,className:a},null==i?void 0:i.map((function(e,i){return g.default.createElement(U,n.__assign({key:i},e.link,{isInverted:t,isActive:e.isCurrent}),e.label)})))},exports.Column=P,exports.MenuHeader=Y,exports.Navigation=function(o){var r=o.clampWidth,l=void 0===r?"content":r,s=o.navBar,u=o.menu,d=(null==s?void 0:s.isStickable)||!1,c=(null==s?void 0:s.isCollapsible)||!1,p=i.useMediaQueries(),m=t.useLibTheme().theme,v=e.useState(!1),h=v[0],b=v[1],x=e.useState(!0),w=x[0],y=x[1],_=function(n){var t,i,o=e.useState(!0),r=o[0],l=o[1],s=e.useState(!0),u=s[0],d=s[1],c=e.useState(!1),p=c[0],m=c[1],g=e.useRef(0),v=e.useRef(0),h=e.useState(f.DOWN),b=h[0],x=h[1],w=(null===(t=null==n?void 0:n.directionOffset)||void 0===t?void 0:t.down)||0,y=(null===(i=null==n?void 0:n.directionOffset)||void 0===i?void 0:i.up)||0,_=a.useScrollThrottle(void 0!==(null==n?void 0:n.resizeThrottleTimeout)?n.resizeThrottleTimeout:200);return e.useEffect((function(){if(_&&"undefined"!=typeof window){var e=_.scrollY,t=e<=0;l(t),(null==n?void 0:n.offset)&&e<=n.offset?d(!0):d((function(e){var t;return e&&(null===(t=null==n?void 0:n.onLeftOffset)||void 0===t||t.call(n,b),m(!0)),!1}));var i=e-g.current,a=Math.abs(v.current);i<0&&v.current>0||i>0&&v.current<0?v.current=0:v.current+=i,a=Math.abs(v.current),t?x(f.DOWN):i<0&&a>=y?x(f.UP):i>0&&a>=w&&x(f.DOWN),g.current=e}}),[w,y,b,_,n]),e.useEffect((function(){r&&m(!1)}),[r]),{isTop:r,scrollDirection:b,isInOffset:u,leftOffsetFromTop:p}}({directionOffset:{up:40,down:40},offset:le(m,"large")[p.semilarge?1:0]}),k=_.isTop,C=_.scrollDirection,I=_.isInOffset,N=_.leftOffsetFromTop,O=e.useMemo((function(){return k||I||!d?"large":"small"}),[k,I,d]);e.useEffect((function(){d&&c&&y(k||I||C===f.UP)}),[C,k,d,I,c]),e.useEffect((function(){d&&(!c||N&&C===f.UP?b(!0):k&&b(!1))}),[c,d,k,N,C]);var B=function(t,i){var a=e.useState(t),o=a[0],r=a[1],l=e.useRef(!1),s=e.useState(null),u=s[0],d=s[1],c=e.useRef(null),p=e.useRef(null),m=n.__assign({openMenuIdent:'button[aria-label="open menu"]',closeMenuIdent:'button[aria-label="close menu"]'},i);return e.useEffect((function(){u&&(c.current||(c.current=u.querySelector(m.openMenuIdent)),p.current||(p.current=u.querySelector(m.closeMenuIdent)))}),[m.closeMenuIdent,m.openMenuIdent,o,u]),e.useEffect((function(){var n,e,t=function(n){"Escape"===n.key&&o&&r(!1)};return o?null===(n=null==p?void 0:p.current)||void 0===n||n.focus():l.current&&(null===(e=null==c?void 0:c.current)||void 0===e||e.focus()),l.current=o,window.addEventListener("keydown",t),function(){window.removeEventListener("keydown",t)}}),[o]),{setRoot:d,isMenuOpen:o,setIsMenuOpen:r}}(!1,{}),E=B.isMenuOpen,S=B.setIsMenuOpen,F=B.setRoot,M=function(){S(!0)},T=function(){S(!1)};e.useEffect((function(){document.body.style.overflow=E?"hidden":"visible"}),[E]);var j=(null==s?void 0:s.topBar)?function(e){return(null==s?void 0:s.topBar)?s.topBar(n.__assign(n.__assign({},e),{isMenuOpen:E,openMenu:M,closeMenu:T,mainNavigation:null==u?void 0:u.mainNavigation,subNavigation:null==u?void 0:u.subNavigation,isOnPageTop:k,isInTopOffset:I})):""}:null==s?void 0:s.topBar,z=(null==s?void 0:s.mainBar)?function(e){return(null==s?void 0:s.mainBar)?s.mainBar(n.__assign(n.__assign({},e),{isMenuOpen:E,openMenu:M,closeMenu:T,mainNavigation:null==u?void 0:u.mainNavigation,subNavigation:null==u?void 0:u.subNavigation,isOnPageTop:k,isInTopOffset:I})):""}:null==s?void 0:s.mainBar,L=(null==s?void 0:s.bottomBar)?function(e){return(null==s?void 0:s.bottomBar)?s.bottomBar(n.__assign(n.__assign({},e),{isMenuOpen:E,openMenu:M,closeMenu:T,mainNavigation:null==u?void 0:u.mainNavigation,subNavigation:null==u?void 0:u.subNavigation,isOnPageTop:k,isInTopOffset:I})):""}:null==s?void 0:s.bottomBar,q=(null==u?void 0:u.header)?function(e){return(null==u?void 0:u.header)?null==u?void 0:u.header(n.__assign(n.__assign({},e),{openMenu:M,closeMenu:T,mainNavigation:null==u?void 0:u.mainNavigation,subNavigation:null==u?void 0:u.subNavigation,navBarSize:O})):""}:void 0,H=(null==u?void 0:u.footer)?function(e){return(null==u?void 0:u.footer)?null==u?void 0:u.footer(n.__assign(n.__assign({},e),{openMenu:M,closeMenu:T,mainNavigation:null==u?void 0:u.mainNavigation,subNavigation:null==u?void 0:u.subNavigation,navBarSize:O})):""}:void 0,A=(null==u?void 0:u.navItemsHeader)?function(e){return(null==u?void 0:u.navItemsHeader)?null==u?void 0:u.navItemsHeader(n.__assign(n.__assign({},e),{openMenu:M,closeMenu:T,mainNavigation:null==u?void 0:u.mainNavigation,subNavigation:null==u?void 0:u.subNavigation,navBarSize:O})):""}:void 0;return g.default.createElement("header",{ref:F,"data-navbar-ident":function(n){return be({hasTop:null!==j&&ie(n),hasMain:null!==z,hasBottom:null!==L&&re(n),isStickable:null==s?void 0:s.isStickable,pageFlow:null==s?void 0:s.pageFlow})}(m)},g.default.createElement(t.LibThemeProvider,{theme:null==s?void 0:s.theme},g.default.createElement(ve,{isOpen:w,isSticky:h,isAnimated:!0,size:O,clampWidth:l,pageFlow:null==s?void 0:s.pageFlow,topBar:j,mainBar:z,bottomBar:L,topBg:null==s?void 0:s.topBg,mainBg:null==s?void 0:s.mainBg,bottomBg:null==s?void 0:s.bottomBg,onContentBg:null==s?void 0:s.onContentBg})),g.default.createElement(t.LibThemeProvider,{theme:null==u?void 0:u.theme},g.default.createElement(ee,{isOpen:E,clampWidth:l,isIndexPage:null==u?void 0:u.isIndexPage,mainNavigation:null==u?void 0:u.mainNavigation,subNavigation:null==u?void 0:u.subNavigation,typeSettings:null==u?void 0:u.typeSettings,navBarSize:O,header:q,footer:H,navItemsHeader:A,onClose:T})))},exports.generateNavbarIdent=be,exports.getFullNavbarHeights=function(n,e){var t=he(e||""),i=t.hasTop,a=t.hasBottom,o=[];return i||o.push("top"),a||o.push("bottom"),{large:le(n,"large",o),small:le(n,"small",o)}},exports.getNavbarState=he;
|
|
2
|
+
//# sourceMappingURL=Navigation-939e4d0e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Navigation-939e4d0e.js","sources":["../src/utils/usePageScroll.ts","../src/components/sections/navigation/skeletons/BarBreadCrumbs.tsx","../src/components/sections/navigation/skeletons/BarColumn.tsx","../src/components/sections/navigation/skeletons/BarLogo.tsx","../src/components/sections/navigation/skeletons/BarMenuToggle.tsx","../src/components/sections/navigation/skeletons/BarNavList.tsx","../src/components/sections/navigation/partials/MenuHeader.tsx","../src/components/sections/navigation/menu/variations/MenuFlyout.tsx","../src/components/sections/navigation/menu/Menu.tsx","../src/components/sections/navigation/NavBar.tsx","../src/components/sections/navigation/Navigation.tsx","../src/utils/menuHooks.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport useScrollThrottle from './useScrollThrottle';\n\nexport enum PageScrollDirection {\n UP,\n DOWN,\n}\n\ninterface ScrollSettings {\n /** Direction state change delay in pixels */\n directionOffset?: {\n up?: number;\n down?: number;\n };\n /** Set top offset area */\n offset?: number;\n /** On leave top offset callback */\n onLeftOffset?: (dir: PageScrollDirection) => void;\n /** Throttle timeout of resize event. Default: 200ms */\n resizeThrottleTimeout?: number;\n}\n\nconst usePageScroll = (settings?: ScrollSettings) => {\n const [isTop, setIsTop] = useState<boolean>(true);\n const [isInOffset, setIsInOffset] = useState<boolean>(true);\n const [leftOffsetFromTop, setLeftOffsetFromTop] = useState<boolean>(false);\n\n const lastScrollPos = useRef<number>(0);\n const pxSinceLastSwitch = useRef<number>(0);\n\n const [scrollDirection, setScrollDirection] = useState<PageScrollDirection>(\n PageScrollDirection.DOWN\n );\n\n const directionDownOffset = settings?.directionOffset?.down || 0;\n const directionUpOffset = settings?.directionOffset?.up || 0;\n\n // Throttle scroll event for perfomance\n const scrollState = useScrollThrottle(\n settings?.resizeThrottleTimeout !== undefined\n ? settings.resizeThrottleTimeout\n : 200\n );\n\n useEffect(() => {\n if (!scrollState) return;\n if (typeof window === 'undefined') return;\n\n const scrollY = scrollState.scrollY;\n const isTop = scrollY <= 0;\n\n // check if page is scroll on top\n setIsTop(isTop);\n\n // check offset\n if (settings?.offset && scrollY <= settings.offset) {\n setIsInOffset(true);\n } else {\n setIsInOffset((prev) => {\n if (prev) {\n settings?.onLeftOffset?.(scrollDirection);\n setLeftOffsetFromTop(true);\n }\n return false;\n });\n }\n\n /**\n * calculate direction changes\n */\n\n // get difference between current and last scrollY position\n const diff = scrollY - lastScrollPos.current;\n // get accumulated pixels since last direction change\n let absAccPx = Math.abs(pxSinceLastSwitch.current);\n\n // check if direction changed. if not iterate accumulated pixels value\n if (diff < 0 && pxSinceLastSwitch.current > 0) {\n pxSinceLastSwitch.current = 0;\n } else if (diff > 0 && pxSinceLastSwitch.current < 0) {\n pxSinceLastSwitch.current = 0;\n } else {\n pxSinceLastSwitch.current += diff;\n }\n\n // set current accumulated value\n absAccPx = Math.abs(pxSinceLastSwitch.current);\n\n // set direction states\n if (isTop) {\n setScrollDirection(PageScrollDirection.DOWN);\n } else if (diff < 0 && absAccPx >= directionUpOffset) {\n setScrollDirection(PageScrollDirection.UP);\n } else if (diff > 0 && absAccPx >= directionDownOffset) {\n setScrollDirection(PageScrollDirection.DOWN);\n }\n\n // save last scroll position\n lastScrollPos.current = scrollY;\n }, [\n directionDownOffset,\n directionUpOffset,\n scrollDirection,\n scrollState,\n settings,\n ]);\n\n useEffect(() => {\n // reset left offset flag on top\n if (isTop) setLeftOffsetFromTop(false);\n }, [isTop]);\n\n return {\n isTop,\n scrollDirection,\n isInOffset,\n leftOffsetFromTop,\n };\n};\n\nexport default usePageScroll;\n","import React, { FC, useMemo } from 'react';\nimport styled from 'styled-components';\n\nimport { NavItem } from '../menu/Menu';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport { spacings, getColors as color, mq } from 'utils/styles';\nimport Copy, { copyStyle } from 'components/typography/Copy';\nimport AngleLeft from 'components/base/icons/AngleLeft';\nimport { getCurrentNavPath } from 'utils/navigation';\n\nconst View = styled.nav`\n min-width: 0;\n`;\n\nconst List = styled.ul`\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n min-width: inherit;\n\n & > li:first-child {\n flex: 1 0 auto;\n }\n\n @media ${mq.semilarge} {\n & > li + li {\n margin-left: ${spacings.nudge}px;\n }\n }\n`;\n\nconst ListItem = styled.li<{ isCurrent?: boolean }>`\n display: ${({ isCurrent }) => (isCurrent ? 'flex' : 'none')};\n min-width: inherit;\n\n @media ${mq.semilarge} {\n display: flex;\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n }\n`;\n\nconst NavLink = styled(Link)<{\n isInverted?: boolean;\n clamp?: boolean;\n showOnMobile?: boolean;\n showOnDesktop?: boolean;\n}>`\n display: ${({ showOnMobile }) => (showOnMobile ? 'inline-flex' : 'none')};\n align-items: center;\n max-width: ${({ clamp }) => clamp && '120px'};\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n ${copyStyle('copy', 'small')}\n color: ${({ theme, isInverted }) =>\n isInverted ? color(theme).text.inverted : color(theme).text.default};\n text-decoration: underline;\n\n & > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).text.inverted\n : color(theme).text.default};\n }\n }\n\n @media ${mq.semilarge} {\n display: ${({ showOnDesktop }) =>\n showOnDesktop ? 'inline-block' : 'none'};\n }\n`;\n\nconst NavLabel = styled.span<{\n isInverted?: boolean;\n clamp?: boolean;\n showOnMobile?: boolean;\n showOnDesktop?: boolean;\n}>`\n display: ${({ showOnMobile }) => (showOnMobile ? 'inline-flex' : 'none')};\n align-items: center;\n max-width: ${({ clamp }) => clamp && '120px'};\n\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n ${copyStyle('copy', 'small')}\n color: ${({ theme, isInverted }) =>\n isInverted ? color(theme).text.inverted : color(theme).text.default};\n text-decoration: none;\n\n & > * {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n & > * + * {\n margin-left: ${spacings.nudge}px;\n }\n\n @media ${mq.semilarge} {\n display: ${({ showOnDesktop }) =>\n showOnDesktop ? 'inline-block' : 'none'};\n }\n`;\n\nconst Seperator = styled(Copy)`\n display: none;\n\n transition: color 0.2s ease-in-out;\n\n @media ${mq.semilarge} {\n display: inline-block;\n }\n`;\n\nconst BackIconContainer = styled.span`\n flex: 0 0 auto;\n`;\n\nconst BreadcrumbItem: FC<\n NavItem & {\n isInverted?: boolean;\n showOnMobile?: boolean;\n showOnDesktop?: boolean;\n children?: React.ReactNode;\n }\n> = ({ isInverted, label, link, showOnMobile, showOnDesktop, children }) => {\n if (link?.href) {\n return (\n <NavLink\n {...link}\n isInverted={isInverted}\n showOnMobile={showOnMobile}\n showOnDesktop={showOnDesktop}\n >\n {children || label}\n </NavLink>\n );\n } else {\n return (\n <NavLabel\n isInverted={isInverted}\n showOnMobile={showOnMobile}\n showOnDesktop={showOnDesktop}\n >\n {children || label}\n </NavLabel>\n );\n }\n};\n\nconst BarBreadcrumbs: FC<{\n isInverted?: boolean;\n rootLink?: LinkProps;\n rootLabel?: string;\n navItems?: Array<NavItem>;\n seperator?: (props: { isInverted?: boolean }) => React.ReactNode;\n back?: (props: { isInverted?: boolean }) => React.ReactNode;\n className?: string;\n}> = ({\n isInverted = false,\n rootLink,\n rootLabel,\n navItems,\n seperator,\n back,\n className,\n}) => {\n const currentNavPath = useMemo(() => {\n return getCurrentNavPath(\n navItems,\n rootLink?.href ? [rootLink?.href] : []\n );\n }, [navItems, rootLink?.href]);\n\n const rootItem: NavItem = {\n uid: 'root',\n label: rootLabel || 'Home',\n link: rootLink,\n };\n\n return (\n <View aria-label=\"breadcrumbs\" className={className}>\n <List>\n <ListItem>\n <BreadcrumbItem\n showOnDesktop\n isInverted={isInverted}\n {...rootItem}\n />\n </ListItem>\n\n {currentNavPath?.map((item, i) => {\n const isCurrent = i === currentNavPath.length - 1;\n const prev = i - 1 >= 0 ? currentNavPath[i - 1] : rootItem;\n\n return (\n <ListItem key={i} isCurrent={isCurrent}>\n <Seperator size=\"small\" isInverted={isInverted}>\n {seperator ? seperator({ isInverted }) : '/'}\n </Seperator>\n {isCurrent ? (\n <>\n {prev && (\n <BreadcrumbItem\n {...prev}\n showOnMobile\n isInverted={isInverted}\n >\n <BackIconContainer>\n {back ? (\n back({ isInverted })\n ) : (\n <AngleLeft />\n )}\n </BackIconContainer>\n <span>{prev.label}</span>\n </BreadcrumbItem>\n )}\n <BreadcrumbItem\n {...item}\n link={{}}\n showOnDesktop\n isInverted={isInverted}\n />\n </>\n ) : (\n <BreadcrumbItem\n {...item}\n showOnDesktop\n isInverted={isInverted}\n />\n )}\n </ListItem>\n );\n })}\n </List>\n </View>\n );\n};\n\nexport default BarBreadcrumbs;\n","import styled from 'styled-components';\nimport { spacings, getColors as color } from 'utils/styles';\n\nconst Column = styled.div<{\n isInverted?: boolean;\n takeSpace?: boolean;\n vAlign?: 'top' | 'center' | 'bottom';\n}>`\n flex: ${({ takeSpace }) => (takeSpace ? 1 : undefined)};\n\n padding: ${spacings.nudge}px 0;\n min-width: -webkit-min-content;\n align-self: ${({ vAlign }) => {\n switch (vAlign) {\n case 'center':\n return 'center';\n\n case 'bottom':\n return 'flex-end';\n\n case 'top':\n return 'flex-start';\n\n default:\n return undefined;\n }\n }};\n\n text-align: center;\n color: ${({ theme, isInverted }) =>\n isInverted ? color(theme).text.inverted : color(theme).text.inverted};\n\n &:first-child {\n text-align: left;\n }\n\n &:last-child {\n text-align: right;\n }\n\n &:not(:first-child):not(:last-child) {\n margin: 0 ${spacings.nudge * 2}px;\n }\n`;\n\nexport default Column;\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\n\nimport Link, { LinkProps } from 'components/typography/Link';\nimport Image, { ImageProps } from 'components/blocks/Image';\nimport { getColors } from 'utils/styles';\n\nconst View = styled(Link)`\n display: block;\n display: flex;\n justify-content: center;\n min-width: 60px;\n max-width: 100%;\n max-height: 100%;\n\n &:focus {\n outline: 2px solid ${({ theme }) => getColors(theme).primary.default};\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n`;\n\nconst Logo = styled(Image)`\n width: auto;\n height: 100%;\n object-fit: contain;\n`;\n\nexport interface Logo {\n src?: string;\n alt?: string;\n}\n\nconst BarLogo: FC<{\n link?: Omit<LinkProps, 'coverSpace' | 'ratios'>;\n logo?: ImageProps;\n className?: string;\n}> = ({ link, logo, className }) => {\n return (\n <View {...link} className={className}>\n {logo?.small && (\n <Logo\n {...logo}\n coverSpace={false}\n ratios={undefined}\n showPlaceholder={false}\n />\n )}\n </View>\n );\n};\n\nexport default BarLogo;\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\n\nimport { getColors as color, spacings } from 'utils/styles';\n\nconst Toggle = styled.button<{ isInverted?: boolean }>`\n background: transparent;\n border: none;\n color: ${({ isInverted, theme }) =>\n isInverted ? color(theme).text.inverted : color(theme).text.default};\n\n padding: ${spacings.nudge}px;\n margin-left: -${spacings.nudge}px;\n outline: none;\n\n cursor: pointer;\n\n transition: color 0.2s ease-in-out;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.invertedHover\n : color(theme).primary.hover};\n }\n }\n\n &:focus > * {\n outline: dotted 2px\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n outline-offset: 4px;\n\n color: ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.invertedHover\n : color(theme).primary.hover};\n }\n\n &:focus:not(:focus-visible) > * {\n outline: none;\n }\n`;\n\nconst BarMenuToggle: FC<{\n isInverted?: boolean;\n isExpanded?: boolean;\n onClick?: (ev?: React.SyntheticEvent<HTMLButtonElement>) => void;\n className?: string;\n children?: React.ReactNode;\n}> = ({ isInverted, isExpanded = false, onClick, children, className }) => {\n return (\n <Toggle\n isInverted={isInverted}\n aria-expanded={isExpanded}\n aria-label={isExpanded ? 'close menu' : 'open menu'}\n aria-haspopup=\"true\"\n aria-controls=\"mainMenu\"\n onClick={onClick}\n className={className}\n >\n {children}\n </Toggle>\n );\n};\n\nexport default BarMenuToggle;\n","import React, { FC } from 'react';\nimport styled from 'styled-components';\n\nimport Link from 'components/typography/Link';\nimport { spacings, getColors as color } from 'utils/styles';\nimport { copyStyle } from 'components/typography/Copy';\nimport { NavItem } from '../menu/Menu';\n\nconst View = styled.nav<{ isInverted?: boolean }>`\n display: inline-flex;\n align-items: center;\n\n margin: 0 -${spacings.nudge}px;\n\n & > * + * {\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 3px;\n left: 0;\n height: 1em;\n width: 2px;\n background-color: ${({ isInverted, theme }) =>\n isInverted\n ? color(theme).text.inverted\n : color(theme).text.default};\n\n transition: background-color 0.2s ease-in-out;\n }\n }\n`;\n\nconst NavLink = styled(Link)<{ isInverted?: boolean; isActive?: boolean }>`\n display: inline-block;\n position: relative;\n padding: 0 ${spacings.nudge}px;\n\n ${copyStyle('copy', 'medium')}\n font-weight: ${({ isActive }) => isActive && '700'};\n\n color: ${({ isInverted, theme }) =>\n isInverted ? color(theme).text.inverted : color(theme).text.default};\n text-decoration: none;\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n color: ${({ isInverted, theme }) =>\n isInverted\n ? color(theme).text.inverted\n : color(theme).text.default};\n text-decoration: underline;\n }\n }\n`;\n\nconst BarNavList: FC<{\n isInverted?: boolean;\n navLinks?: NavItem[];\n className?: string;\n}> = ({ isInverted, navLinks, className }) => {\n return (\n <View isInverted={isInverted} className={className}>\n {navLinks?.map((item, i) => (\n <NavLink\n key={i}\n {...item.link}\n isInverted={isInverted}\n isActive={item.isCurrent}\n >\n {item.label}\n </NavLink>\n ))}\n </View>\n );\n};\n\nexport default BarNavList;\n","import Cross from 'components/base/icons/Cross';\nimport React, { FC } from 'react';\n\nimport styled from 'styled-components';\nimport { spacings } from 'utils/styles';\nimport { NavMenuStates } from '../Navigation';\nimport * as Skeletons from 'components/sections/navigation/skeletons/index';\nimport LanguageSwitcher, { Language } from 'components/blocks/LanguageSwitcher';\nimport { isValidArray } from 'utils/arrays';\n\nconst Header = styled.div`\n display: flex;\n align-items: center;\n\n padding: 0 ${spacings.nudge * 2}px;\n padding-top: ${spacings.nudge * 5}px;\n`;\n\nconst LanguageCol = styled.div`\n display: block;\n margin-left: ${spacings.nudge * 3}px;\n margin-top: 2px;\n`;\n\nconst MenuHeader: FC<{\n isInverted?: boolean;\n menuStates?: NavMenuStates;\n customToggle?: (props: { isInverted?: boolean }) => React.ReactNode;\n langs?: Language[];\n action?: (\n props: { isInverted?: boolean } & NavMenuStates\n ) => React.ReactNode;\n}> = ({ isInverted, customToggle, menuStates, langs, action }) => {\n return (\n <React.Fragment>\n <Header>\n <Skeletons.MenuToggle\n isInverted={isInverted}\n isExpanded={true}\n onClick={menuStates?.closeMenu}\n >\n {customToggle ? (\n customToggle({ isInverted })\n ) : (\n <Cross ariaHidden={true} />\n )}\n </Skeletons.MenuToggle>\n {isValidArray(langs, false) && (\n <LanguageCol>\n <LanguageSwitcher\n isInverted={isInverted}\n langs={langs}\n />\n </LanguageCol>\n )}\n {action && action({ isInverted, ...menuStates })}\n </Header>\n </React.Fragment>\n );\n};\n\nexport default MenuHeader;\n","import AngleRight from 'components/base/icons/AngleRight';\nimport Link, { LinkProps } from 'components/typography/Link';\nimport React, {\n FC,\n useState,\n useMemo,\n useRef,\n useEffect,\n forwardRef,\n} from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\nimport { isValidArray } from 'utils/arrays';\nimport { clampValue } from 'utils/clamp';\nimport { useLibTheme } from 'utils/LibThemeProvider';\nimport { getCurrentNavItem } from 'utils/navigation';\nimport {\n mq,\n spacings,\n getColors as color,\n getFonts as font,\n getGlobals as global,\n withRange,\n Fonts,\n} from 'utils/styles';\nimport { NavBarSize } from '../../NavBar';\nimport MenuHeader from '../../partials/MenuHeader';\nimport { MenuBaseProps, NavItem } from '../Menu';\nimport { css } from 'styled-components';\n\ntype NavigationFontType = keyof Fonts['navigation'];\n\nconst navigationStyle = (type: NavigationFontType) => css`\n font-family: ${({ theme }) => font(theme).navigation[type].family};\n font-weight: ${({ theme }) => font(theme).navigation[type].weight};\n font-style: ${({ theme }) => font(theme).navigation[type].style};\n ${({ theme }) => withRange(font(theme).navigation[type].size, 'font-size')}\n line-height: ${({ theme }) => font(theme).navigation[type].lineHeight};\n letter-spacing: ${({ theme }) =>\n font(theme).navigation[type].letterSpacing};\n text-transform: ${({ theme }) =>\n font(theme).navigation[type].textTransform};\n text-decoration: ${({ theme }) =>\n font(theme).navigation[type].textDecoration};\n`;\n\nconst Backdrop = styled.div<{ isOpen?: boolean; filter?: string }>`\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: rgba(0, 0, 0, 0.5);\n opacity: ${({ isOpen }) => (isOpen ? 1 : 0)};\n pointer-events: ${({ isOpen }) => (isOpen ? 'all' : 'none')};\n z-index: 101;\n\n transition: opacity 0.3s ease-in-out;\n\n @supports ((-webkit-backdrop-filter: none) or (backdrop-filter: none)) {\n backdrop-filter: ${({ filter }) => filter};\n }\n`;\n\nconst Stage = styled.div<{ isOpen?: boolean; clampWidth?: 'content' | 'full' }>`\n position: fixed;\n top: 0;\n left: ${({ isOpen }) => (isOpen ? '50%' : '0px')};\n height: 100vh;\n width: 100vw;\n max-width: ${({ clampWidth }) =>\n clampWidth === 'content' ? spacings.wrapper : spacings.wrapperLarge}px;\n pointer-events: none;\n\n z-index: 102;\n\n transform: translate(${({ isOpen }) => (isOpen ? '-50%' : '-100%')}, 0px);\n\n transition: transform 0.4s ease-in-out, left 0.4s ease-in-out;\n will-change: transform;\n`;\n\nconst Flyout = styled.div<{ isOpen?: boolean }>`\n display: flex;\n flex-direction: column;\n visibility: visible;\n\n position: relative;\n width: 100%;\n height: 100%;\n background-color: ${({ theme }) => color(theme).elementBg.light};\n\n pointer-events: ${({ isOpen }) => (isOpen ? 'all' : 'none')};\n\n /** Animation to disable keyboard tabbing if flyout is closed */\n animation: ${({ isOpen }) => !isOpen && 'hideAnim 0s ease-in 2s forwards'};\n\n @media ${mq.medium} {\n width: 384px;\n }\n\n @media ${mq.large} {\n width: 460px;\n }\n\n &:before {\n content: '';\n position: absolute;\n top: 0;\n left: 2px;\n height: 100%;\n width: 40vw;\n background-color: ${({ theme }) => color(theme).elementBg.light};\n z-index: -1;\n\n transform: translateX(-100%);\n }\n\n @keyframes hideAnim {\n to {\n visibility: hidden;\n }\n }\n`;\n\nexport const getMenuHeaderHeights = (\n theme: DefaultTheme,\n size?: NavBarSize\n): [number, number] => {\n const heights =\n size === 'large'\n ? global(theme).navigation.menu.headerHeight.large\n : global(theme).navigation.menu.headerHeight.small;\n\n // if second value is not defined use first array index value for both\n return [\n clampValue(heights[0], 0),\n clampValue(heights?.[1] === undefined ? heights[0] : heights[1], 0),\n ];\n};\n\nexport const hasMenuHeader = (theme: DefaultTheme) => {\n const largeHeights = getMenuHeaderHeights(theme, 'large');\n const smallHeights = getMenuHeaderHeights(theme, 'small');\n\n return (\n largeHeights[0] > 0 ||\n largeHeights[1] > 0 ||\n smallHeights[0] > 0 ||\n smallHeights[1] > 0\n );\n};\n\nconst Header = styled.div<{ navBarSize?: NavBarSize }>`\n flex: 0 0\n ${({ theme, navBarSize }) =>\n getMenuHeaderHeights(theme, navBarSize)[0]}px;\n height: ${({ theme, navBarSize }) =>\n getMenuHeaderHeights(theme, navBarSize)[0]}px;\n\n @media ${mq.semilarge} {\n height: ${({ theme, navBarSize }) =>\n getMenuHeaderHeights(theme, navBarSize)[1]}px;\n flex: 0 0\n ${({ theme, navBarSize }) =>\n getMenuHeaderHeights(theme, navBarSize)[1]}px;\n }\n`;\n\nconst ScrollContainer = styled.div`\n display: block;\n max-height: 100%;\n min-height: 0;\n`;\n\nconst ScrollArea = styled.div`\n display: block;\n width: 100vw;\n max-height: 100%;\n overflow: auto;\n -ms-overflow-style: none; /* for Internet Explorer, Edge */\n scrollbar-width: none; /* for Firefox */\n overflow-y: scroll;\n\n &::-webkit-scrollbar {\n display: none; /* for Chrome, Safari, and Opera */\n }\n\n & > *:last-child {\n margin-bottom: 120px;\n }\n\n @media ${mq.medium} {\n max-width: 100%;\n }\n`;\n\n//#region NAVIGATION\n//#region NAVIGATION.Containers\nconst NavView = styled.nav``;\n\nconst Navigation: FC<{ children?: React.ReactNode }> = ({ children }) => {\n return <NavView aria-label=\"menu\">{children}</NavView>;\n};\n\nconst NavList = styled.ul<{ hasNonFeaturedItems?: boolean }>`\n margin: 0;\n padding: 0;\n list-style: none;\n margin: ${spacings.nudge * 2}px 0;\n\n border-bottom: ${({ hasNonFeaturedItems, theme }) =>\n hasNonFeaturedItems && `solid 2px ${color(theme).elementBg.medium}`};\n`;\n\n// #endregion\n// #region NAVIGATION.NavItem\nconst NavItemView = styled.li<{ isActive?: boolean }>`\n flex: 0 0 80px;\n\n height: 100%;\n background-color: ${({ theme, isActive }) =>\n isActive\n ? color(theme).elementBg.medium\n : color(theme).elementBg.light};\n\n transition: background-color 0.2s ease-in-out;\n\n li + &:not([data-featured='true']) {\n border-top: solid 2px ${({ theme }) => color(theme).elementBg.medium};\n }\n\n li[data-featured='true'] + &:not([data-featured='true']) {\n margin-top: ${spacings.spacer}px;\n }\n\n &:not([data-featured='true']):first-child {\n border-top: solid 2px ${({ theme }) => color(theme).elementBg.medium};\n }\n\n @media ${mq.semilarge} {\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n }\n\n @media (hover: hover) and (pointer: fine) {\n &:hover {\n background-color: ${({ theme }) => color(theme).elementBg.medium};\n }\n }\n`;\n\nconst NavItemContent = styled.span<{\n isCurrent?: boolean;\n isFeatured?: boolean;\n}>`\n display: flex;\n align-items: center;\n position: relative;\n min-height: 80px;\n\n padding: 0 ${spacings.nudge * 2}px;\n\n ${({ isFeatured }) => navigationStyle(isFeatured ? 'featured' : 'main')}\n color: ${({ theme, isFeatured }) =>\n isFeatured\n ? font(theme).navigation.featured.color\n : font(theme).navigation.main.color};\n text-decoration: ${({ isCurrent }) => (isCurrent ? 'underline' : 'none')};\n`;\n\nconst NavItemIcon = styled.span`\n display: flex;\n align-items: center;\n width: 48px;\n max-width: 48px;\n\n * {\n width: 100%;\n max-width: 48px;\n max-height: 80px;\n }\n`;\n\nconst NavItemLabel = styled.span`\n display: block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:not(:first-child) {\n margin-left: ${spacings.nudge * 2}px;\n }\n`;\n\nconst NavItemCollapse = styled.span`\n display: block;\n margin-left: auto;\n padding-left: ${spacings.nudge * 3}px;\n`;\n\nconst NavItemCollapseIcon = styled(AngleRight)<{ isCollapsed?: boolean }>`\n transform: ${({ isCollapsed }) => !isCollapsed && 'rotate(90deg)'};\n\n transition: transform 0.2s ease-in-out;\n\n @media ${mq.semilarge} {\n transform: rotate(0deg);\n }\n`;\n\nconst NavItemLink = styled(Link)`\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n &:focus {\n outline: solid 2px\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n`;\n\nconst NavItemButton = styled.button`\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n background: none;\n border: none;\n border-bottom: solid 2px ${({ theme }) => color(theme).elementBg.light};\n width: 100%;\n cursor: pointer;\n outline: none;\n border-radius: 0px;\n\n &:focus {\n outline: solid 2px ${({ theme }) => color(theme).primary.default};\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n\n @media ${mq.semilarge} {\n border-bottom: none;\n }\n`;\n\nconst SubNavList = styled.ul<{ isActive?: boolean; isIndented?: boolean }>`\n display: ${({ isActive }) => !isActive && 'none'};\n position: relative;\n margin: 0;\n padding: 0;\n padding-left: ${({ isIndented }) =>\n isIndented ? 48 + spacings.nudge * 4 : spacings.nudge * 2}px;\n padding-right: ${spacings.nudge * 2}px;\n list-style: none;\n\n max-height: 100%;\n overflow: auto;\n -ms-overflow-style: none; /* for Internet Explorer, Edge */\n scrollbar-width: none; /* for Firefox */\n overflow-y: scroll;\n\n &::-webkit-scrollbar {\n display: none; /* for Chrome, Safari, and Opera */\n }\n\n background-color: ${({ theme }) => color(theme).elementBg.medium};\n\n @media ${mq.semilarge} {\n position: absolute;\n top: 0;\n left: calc(100% - 1px);\n width: 100vw;\n height: 100%;\n max-width: 384px;\n padding-left: ${spacings.nudge * 3}px;\n }\n`;\n\nconst NavigationItem = forwardRef<\n HTMLLIElement,\n {\n isCurrent?: boolean;\n isActive?: boolean;\n isFeatured?: boolean;\n label?: string;\n link?: LinkProps;\n icon?: React.ReactNode;\n\n subNavTitle?: string;\n\n navBarSize?: NavBarSize;\n onItemClick?: () => void;\n collapseIcon?: (props: { isCollapsed?: boolean }) => React.ReactNode;\n canFocus?: boolean;\n children?: React.ReactNode;\n }\n>(\n (\n {\n isCurrent,\n isActive,\n isFeatured,\n label,\n link,\n icon,\n subNavTitle,\n navBarSize,\n onItemClick,\n collapseIcon,\n canFocus,\n children,\n },\n ref\n ) => {\n const hasSubItems = !!children && React.Children.count(children) > 0;\n\n return (\n <NavItemView\n ref={ref}\n isActive={isActive}\n data-featured={isFeatured}\n >\n <NavItemContent isCurrent={isCurrent} isFeatured={isFeatured}>\n {icon && <NavItemIcon>{icon}</NavItemIcon>}\n {label && <NavItemLabel>{label}</NavItemLabel>}\n {hasSubItems && (\n <NavItemCollapse>\n {collapseIcon ? (\n collapseIcon({\n isCollapsed: !isActive,\n })\n ) : (\n <NavItemCollapseIcon\n ariaHidden\n isCollapsed={!isActive}\n />\n )}\n </NavItemCollapse>\n )}\n {!hasSubItems && link?.href && (\n <NavItemLink\n {...link}\n ariaLabel={label}\n tabIndex={!canFocus ? -1 : undefined}\n />\n )}\n {hasSubItems && (\n <React.Fragment>\n <NavItemButton\n aria-label={label}\n aria-expanded={isActive}\n onClick={onItemClick}\n tabIndex={!canFocus ? -1 : undefined}\n />\n </React.Fragment>\n )}\n </NavItemContent>\n {hasSubItems && (\n <SubNavList isActive={isActive} isIndented={!!icon}>\n {link?.href && (\n <MenuNav.SubItem\n key=\"overview\"\n link={link}\n label={subNavTitle || 'Overview'}\n navBarSize={navBarSize}\n canFocus={canFocus}\n />\n )}\n {children}\n </SubNavList>\n )}\n </NavItemView>\n );\n }\n);\n\nNavigationItem.displayName = 'NavigationItem';\n\n//#endregion NAVIGATION.NavItem\n//#region NAVIGATION.SubNavItem\nconst SubNavItem = styled.li<{ navBarSize?: NavBarSize }>`\n display: flex;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n height: 56px;\n\n ${navigationStyle('main')}\n color: ${({ theme }) => font(theme).navigation.sub.color};\n\n @media ${mq.semilarge} {\n &:first-child {\n margin-top: ${({ theme, navBarSize }) =>\n getMenuHeaderHeights(theme, navBarSize)[1] +\n spacings.nudge * 2}px;\n }\n\n &:last-child {\n margin-bottom: ${spacings.spacer}px;\n }\n }\n`;\n\nconst SubNavLink = styled(Link)<{ isCurrent?: boolean }>`\n /* width: 100%; */\n padding: ${spacings.nudge}px 0;\n outline-color: ${({ theme }) => color(theme).primary.default};\n vertical-align: middle;\n\n ${navigationStyle('sub')}\n color: ${({ theme }) => font(theme).navigation.sub.color};\n text-decoration: ${({ isCurrent }) => (isCurrent ? 'underline' : 'none')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n & > * {\n margin: 2px;\n }\n\n &:focus {\n outline: none;\n }\n\n &:focus > * {\n outline: dashed 1px\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) > * {\n outline: none;\n }\n`;\n\nconst NavigationSubItem = forwardRef<\n HTMLLIElement,\n {\n isCurrent?: boolean;\n label: string;\n link?: LinkProps;\n navBarSize?: NavBarSize;\n canFocus?: boolean;\n }\n>(({ isCurrent, label, link, navBarSize, canFocus }, ref) => {\n return (\n <SubNavItem ref={ref} navBarSize={navBarSize}>\n <SubNavLink\n tabIndex={!canFocus ? -1 : undefined}\n isCurrent={isCurrent}\n {...link}\n >\n <span>{label}</span>\n </SubNavLink>\n </SubNavItem>\n );\n});\n\nNavigationSubItem.displayName = 'NavigationSubItem';\n//#endregion\n//#region NAVIGATION.SecondaryNavigation\nconst SecondaryNavList = styled.ul`\n display: block;\n list-style: none;\n padding: 0 ${spacings.nudge * 2}px;\n margin: ${spacings.spacer}px 0;\n\n li {\n display: flex;\n margin: 0;\n padding: 0;\n }\n`;\n\nconst SecondaryNavLink = styled(Link)<{ isCurrent?: boolean }>`\n display: inline-block;\n padding: ${spacings.nudge * 0.5}px 0;\n outline-color: ${({ theme }) => color(theme).primary.default};\n vertical-align: middle;\n\n ${navigationStyle('secondary')}\n color: ${({ theme }) => font(theme).navigation.secondary.color};\n text-decoration: ${({ isCurrent }) => (isCurrent ? 'underline' : 'none')};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:focus {\n outline: dashed 2px\n ${({ theme, isInverted }) =>\n isInverted\n ? color(theme).primary.inverted\n : color(theme).primary.default};\n outline-offset: 1px;\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n }\n`;\n\nconst SecondaryNavigation: FC<{\n items?: NavItem[];\n canFocus?: boolean;\n}> = ({ items, canFocus }) => {\n return items && items.length > 0 ? (\n <SecondaryNavList>\n {items\n ?.filter((n) => n.link?.href)\n .map((item, i) => (\n <li key={i}>\n <SecondaryNavLink\n isCurrent={item.isCurrent}\n href={item.link?.href}\n tabIndex={!canFocus ? -1 : undefined}\n >\n {item.label}\n </SecondaryNavLink>\n </li>\n ))}\n </SecondaryNavList>\n ) : null;\n};\n//#endregion\n\nconst MenuNav = {\n View: Navigation,\n List: NavList,\n Item: NavigationItem,\n SubItem: NavigationSubItem,\n SubList: SecondaryNavigation,\n};\n// #endregion\n\nexport interface FlyoutMenuProps {\n type: 'flyout';\n collapseIcon?: (props: { isCollapsed?: boolean }) => React.ReactNode;\n subNavTitle?: string;\n backdropFilter?: string;\n}\n\nconst menuFilter = (item: NavItem) =>\n !item.hideFromMenu && item.uid && item.label;\n\nconst MenuFlyout: FC<MenuBaseProps & FlyoutMenuProps> = ({\n isOpen,\n clampWidth,\n isIndexPage,\n mainNavigation,\n subNavigation,\n navBarSize,\n subNavTitle,\n backdropFilter = 'grayscale(1)',\n header,\n footer,\n onClose,\n collapseIcon,\n navItemsHeader,\n}) => {\n const { theme } = useLibTheme();\n const flyoutRef = useRef<HTMLDivElement>(null);\n const hasHeader = useMemo(() => hasMenuHeader(theme), [theme]);\n\n const mainList = useMemo(() => {\n const featured = mainNavigation?.filter((n) => n.isFeatured) || [];\n const main = mainNavigation?.filter((n) => !n.isFeatured) || [];\n\n return [...featured, ...main].filter(menuFilter);\n }, [mainNavigation]);\n\n const hasNonFeaturedItems = useMemo(() => {\n const main = mainNavigation?.filter((n) => !n.isFeatured) || [];\n return main && main.length > 0;\n }, [mainNavigation]);\n\n const subList = useMemo(() => {\n return subNavigation?.filter(menuFilter);\n }, [subNavigation]);\n\n const [activeItems, setActiveItems] = useState<string[]>(() => {\n const initial = getCurrentNavItem(mainList, true)?.root?.uid;\n return initial ? [initial] : [''];\n });\n const [currentNavEl, setCurrentNavEl] =\n useState<HTMLLIElement | null>(null);\n const [currentSubNavEl, setCurrentSubNavEl] =\n useState<HTMLLIElement | null>(null);\n\n const toggleActiveItem = (uid: string) => {\n setActiveItems((prev) => (prev.includes(uid) ? [] : [uid]));\n\n // if multiple nav items can be selected:\n // setActiveItems((prev) => {\n // const copy = [...prev];\n // const activeIndex = activeItems.indexOf(index);\n // if (activeIndex !== -1) {\n // copy.splice(activeIndex, 1);\n // } else {\n // copy.push(index);\n // }\n // return copy;\n // });\n };\n\n // check if flyout lost focus\n useEffect(() => {\n const handleFocus = (ev: FocusEvent) => {\n if (!flyoutRef.current || !ev.target) return;\n const isFlyoutChild = flyoutRef.current.contains(\n ev.target as Element\n );\n\n if (!isFlyoutChild) onClose && onClose();\n };\n\n if (isOpen) {\n document.addEventListener('focusin', handleFocus);\n } else {\n document.removeEventListener('focusin', handleFocus);\n }\n\n return () => {\n document.removeEventListener('focusin', handleFocus);\n };\n }, [isOpen, onClose]);\n\n // scroll to current nav items\n useEffect(() => {\n try {\n currentNavEl?.scrollIntoView({\n block: 'center',\n inline: 'start',\n });\n currentSubNavEl?.scrollIntoView({\n block: 'center',\n inline: 'start',\n });\n } catch (e) {\n // console.log(e);\n }\n }, [currentNavEl, currentSubNavEl]);\n\n return (\n <React.Fragment>\n <Backdrop\n isOpen={isOpen}\n filter={backdropFilter}\n onClick={onClose}\n />\n <Stage isOpen={isOpen} clampWidth={clampWidth}>\n <Flyout ref={flyoutRef} isOpen={isOpen}>\n {hasHeader && (\n <Header navBarSize={navBarSize}>\n {header ? (\n header({\n isOpen,\n mainNavigation: mainList,\n subNavigation: subList,\n isIndexPage,\n navBarSize,\n })\n ) : (\n <MenuHeader\n menuStates={{\n isOpen,\n mainNavigation,\n subNavigation,\n isIndexPage,\n navBarSize,\n }}\n />\n )}\n </Header>\n )}\n\n <ScrollContainer>\n <ScrollArea>\n {navItemsHeader &&\n navItemsHeader({\n isOpen,\n mainNavigation: mainList,\n subNavigation: subList,\n isIndexPage,\n navBarSize,\n })}\n <MenuNav.View>\n {isValidArray(mainList, false) && (\n <MenuNav.List\n id=\"mainMenu\"\n hasNonFeaturedItems={\n hasNonFeaturedItems\n }\n >\n {mainList.map((item) => {\n const isActive =\n activeItems.includes(item.uid);\n const hasCurrentSubItem =\n item?.subItems\n ? item.subItems.findIndex(\n (n) => n.isCurrent\n ) >= 0\n : false;\n\n const isCurrent =\n item.isCurrent ||\n hasCurrentSubItem;\n\n return (\n <MenuNav.Item\n key={item.uid}\n {...item}\n ref={\n isCurrent\n ? setCurrentNavEl\n : undefined\n }\n isActive={isActive}\n isCurrent={isCurrent}\n subNavTitle={subNavTitle}\n navBarSize={navBarSize}\n collapseIcon={collapseIcon}\n onItemClick={() =>\n toggleActiveItem(\n item.uid\n )\n }\n canFocus={isOpen}\n >\n {item?.subItems\n ?.filter(menuFilter)\n .map((subItem) => (\n <MenuNav.SubItem\n key={\n subItem.uid\n }\n ref={\n subItem.isCurrent\n ? setCurrentSubNavEl\n : undefined\n }\n {...subItem}\n navBarSize={\n navBarSize\n }\n canFocus={\n isOpen\n }\n />\n ))}\n </MenuNav.Item>\n );\n })}\n </MenuNav.List>\n )}\n {isValidArray(subList, false) && (\n <MenuNav.SubList\n items={subList}\n canFocus={isOpen}\n />\n )}\n </MenuNav.View>\n {footer\n ? footer({\n isOpen,\n mainNavigation: mainList,\n subNavigation: subList,\n isIndexPage,\n })\n : ''}\n </ScrollArea>\n </ScrollContainer>\n </Flyout>\n </Stage>\n </React.Fragment>\n );\n};\n\nexport default MenuFlyout;\n","import React, { FC } from 'react';\n\nimport { LinkProps } from 'components/typography/Link';\n\n/** Menu Variations */\nimport MenuFlyout, { FlyoutMenuProps } from './variations/MenuFlyout';\nimport { /* MenuLarge,*/ LargeMenuProps } from './variations/MenuLarge';\nimport { NavBarSize } from '../NavBar';\n\n/** Navigation item types */\n\nexport interface NavItem {\n uid: string;\n label: string;\n link?: LinkProps;\n isCurrent?: boolean;\n subItems?: NavItem[];\n isFeatured?: boolean;\n icon?: React.ReactNode;\n hideFromMenu?: boolean;\n}\n\n/** Menu base type */\nexport interface MenuStates {\n isOpen?: boolean;\n isIndexPage?: boolean;\n mainNavigation?: Array<NavItem>;\n subNavigation?: Array<NavItem>;\n navBarSize?: NavBarSize;\n}\n\nexport interface MenuBaseProps {\n isOpen?: boolean;\n clampWidth?: 'content' | 'full';\n isIndexPage?: boolean;\n mainNavigation?: Array<NavItem>;\n subNavigation?: Array<NavItem>;\n navBarSize?: NavBarSize;\n header?: (props: MenuStates) => React.ReactNode;\n footer?: (props: MenuStates) => React.ReactNode;\n navItemsHeader?: (menuStates: MenuStates) => React.ReactNode;\n onClose?: () => void;\n}\n\nexport type MenuTypeProps = FlyoutMenuProps | LargeMenuProps;\n\nconst Menu: FC<MenuBaseProps & { typeSettings?: MenuTypeProps }> = ({\n isOpen,\n clampWidth,\n isIndexPage,\n mainNavigation,\n subNavigation,\n navBarSize,\n header,\n footer,\n navItemsHeader,\n onClose,\n typeSettings,\n}) => {\n if (!typeSettings) {\n typeSettings = { type: 'flyout' };\n }\n\n switch (typeSettings?.type) {\n // case 'large': {\n // return (\n // <MenuLarge\n // isOpen={isOpen}\n // clampWidth={clampWidth}\n // isIndexPage={isIndexPage}\n // mainNavigation={mainNavigation}\n // subNavigation={subNavigation}\n // navBarSize={navBarSize}\n // header={header}\n // footer={footer}\n // navItemsHeader={navItemsHeader}\n // onClose={onClose}\n // {...(typeSettings as LargeMenuProps)}\n // />\n // );\n // }\n\n default:\n case 'flyout': {\n return (\n <MenuFlyout\n isOpen={isOpen}\n clampWidth={clampWidth}\n isIndexPage={isIndexPage}\n mainNavigation={mainNavigation}\n subNavigation={subNavigation}\n navBarSize={navBarSize}\n header={header}\n footer={footer}\n onClose={onClose}\n navItemsHeader={navItemsHeader}\n {...(typeSettings as FlyoutMenuProps)}\n />\n );\n }\n }\n};\n\nexport default Menu;\n","import React, { FC, useMemo } from 'react';\nimport styled, { DefaultTheme } from 'styled-components';\nimport {\n spacings,\n mq,\n getGlobals as global,\n getColors as color,\n} from 'utils/styles';\nimport { clampValue } from 'utils/clamp';\nimport { useLibTheme } from 'utils/LibThemeProvider';\nimport * as Skeletons from 'components/sections/navigation/skeletons/index';\n\nexport const getTopHeights = (\n theme: DefaultTheme,\n size?: NavBarSize\n): [number, number] => {\n const heights =\n size === 'large'\n ? global(theme).navigation.navBar.topHeight.large\n : global(theme).navigation.navBar.topHeight.small;\n\n // if second value is not defined use first array index value for both\n return [\n clampValue(heights[0], 0),\n clampValue(heights?.[1] === undefined ? heights[0] : heights[1], 0),\n ];\n};\n\nexport const hasTopBar = (theme: DefaultTheme) => {\n const largeHeights = getTopHeights(theme, 'large');\n const smallHeights = getTopHeights(theme, 'small');\n\n return (\n largeHeights[0] > 0 ||\n largeHeights[1] > 0 ||\n smallHeights[0] > 0 ||\n smallHeights[1] > 0\n );\n};\n\nexport const getMainHeights = (\n theme: DefaultTheme,\n size?: NavBarSize\n): [number, number] => {\n const heights =\n size === 'large'\n ? global(theme).navigation.navBar.mainHeight.large\n : global(theme).navigation.navBar.mainHeight.small;\n\n // if second value is not defined use first array index value for both\n return [\n clampValue(heights[0], 0),\n clampValue(heights?.[1] === undefined ? heights[0] : heights[1], 0),\n ];\n};\n\nexport const getBottomHeights = (\n theme: DefaultTheme,\n size?: NavBarSize\n): [number, number] => {\n const heights =\n size === 'large'\n ? global(theme).navigation.navBar.bottomHeight.large\n : global(theme).navigation.navBar.bottomHeight.small;\n\n // if second value is not defined use first array index value for both\n return [\n clampValue(heights[0], 0),\n clampValue(heights?.[1] === undefined ? heights[0] : heights[1], 0),\n ];\n};\n\nexport const hasBottomBar = (theme: DefaultTheme) => {\n const largeHeights = getBottomHeights(theme, 'large');\n const smallHeights = getBottomHeights(theme, 'small');\n\n return (\n largeHeights[0] > 0 ||\n largeHeights[1] > 0 ||\n smallHeights[0] > 0 ||\n smallHeights[1] > 0\n );\n};\n\nexport type ExcludeType = 'top' | 'main' | 'bottom';\n\n/**\n * Get full height of navigation bar\n * @param theme Theme object\n * @param size Navigation bar size\n * @param exclude Exclude parts of the navbar for height calculation\n * @returns [mobile, desktop]\n */\nexport const getFullHeight = (\n theme: DefaultTheme,\n size?: NavBarSize,\n exclude?: ExcludeType[]\n): [number, number] => {\n const includeTop = exclude ? exclude.indexOf('top') === -1 : true;\n const includeMain = exclude ? exclude.indexOf('main') === -1 : true;\n const includeBottom = exclude ? exclude.indexOf('bottom') === -1 : true;\n\n const topHeights = includeTop ? getTopHeights(theme, size) : [0, 0];\n const mainHeights = includeMain ? getMainHeights(theme, size) : [0, 0];\n const bottomHeights = includeBottom\n ? getBottomHeights(theme, size)\n : [0, 0];\n\n // calculate mobile navbar height\n const mobile = topHeights[0] + mainHeights[0] + bottomHeights[0];\n\n // calculate desktop navbar height\n const desktop = topHeights[1] + mainHeights[1] + bottomHeights[1];\n\n return [mobile, desktop];\n};\n\nconst View = styled.div<{\n isOpen?: boolean;\n isSticky?: boolean;\n isAnimated?: boolean;\n bgGradient?: string;\n}>`\n position: ${({ isSticky }) => (isSticky ? 'fixed' : 'absolute')};\n top: 0;\n left: 0;\n right: 0;\n\n transform: ${({ isOpen }) => !isOpen && 'translate3d(0, -101%, 0)'};\n\n margin: 0 auto;\n /* max-width: ${spacings.wrapperLarge}px; */\n z-index: 100;\n\n ${({ isAnimated }) => `transition: ${\n isAnimated ? 'transform 0.3s ease-in-out, ' : ''\n }height 0.3s ease-in-out,\n opacity 0.3s ease-in-out;`}\n will-change: transform;\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: ${({ bgGradient }) => bgGradient || ''};\n margin: 0 auto;\n max-width: ${spacings.wrapperLarge}px;\n z-index: -1;\n }\n\n // print version\n @media print {\n position: relative;\n }\n`;\n\nconst Header = styled.div<{ size?: NavBarSize; background?: string }>`\n opacity: ${({ theme, size }) =>\n getTopHeights(theme, size)[0] > 0 ? 1 : 0};\n pointer-events: ${({ theme, size }) =>\n getTopHeights(theme, size)[0] > 0 ? 'all' : 'none'};\n overflow: ${({ theme, size }) =>\n getTopHeights(theme, size)[0] <= 0 && 'hidden'};\n\n background-color: ${({ background }) => background};\n color: ${({ theme, background }) =>\n background ? color(theme).text.default : color(theme).text.inverted};\n\n transition: background-color 0.2s ease-in-out;\n\n @media ${mq.semilarge} {\n opacity: ${({ theme, size }) =>\n getTopHeights(theme, size)[1] > 0 ? 1 : 0};\n pointer-events: ${({ theme, size }) =>\n getTopHeights(theme, size)[1] > 0 ? 'all' : 'none'};\n overflow: ${({ theme, size }) =>\n getTopHeights(theme, size)[1] <= 0 && 'hidden'};\n }\n`;\n\nconst Main = styled.div<{ background?: string }>`\n background-color: ${({ background }) => background};\n color: ${({ theme, background }) =>\n background ? color(theme).text.default : color(theme).text.inverted};\n\n transition: background-color 0.2s ease-in-out;\n`;\n\nconst Footer = styled.div<{ size?: NavBarSize; background?: string }>`\n opacity: ${({ theme, size }) =>\n getBottomHeights(theme, size)[0] > 0 ? 1 : 0};\n pointer-events: ${({ theme, size }) =>\n getBottomHeights(theme, size)[0] > 0 ? 'all' : 'none'};\n overflow: ${({ theme, size }) =>\n getBottomHeights(theme, size)[0] <= 0 && 'hidden'};\n\n background-color: ${({ background }) => background};\n color: ${({ theme, background }) =>\n background ? color(theme).text.default : color(theme).text.inverted};\n\n opacity: ${({ theme, size }) =>\n getBottomHeights(theme, size)[0] > 0 ? 1 : 0};\n\n transition: background-color 0.2s ease-in-out, opacity 0.2s ease-in-out;\n\n @media ${mq.semilarge} {\n opacity: ${({ theme, size }) =>\n getBottomHeights(theme, size)[1] > 0 ? 1 : 0};\n pointer-events: ${({ theme, size }) =>\n getBottomHeights(theme, size)[1] > 0 ? 'all' : 'none'};\n overflow: ${({ theme, size }) =>\n getBottomHeights(theme, size)[1] <= 0 && 'hidden'};\n\n opacity: ${({ theme, size }) =>\n getBottomHeights(theme, size)[1] > 0 ? 1 : 0};\n }\n`;\n\nconst TopContent = styled.div<{ size?: NavBarSize; clamp?: boolean }>`\n display: flex;\n justify-content: flex-end;\n position: relative;\n max-width: ${({ clamp }) =>\n clamp ? spacings.wrapper : spacings.wrapperLarge}px;\n padding: ${({ size, theme }) =>\n getTopHeights(theme, size)[0] > 0 && `0 ${spacings.nudge * 2}px`};\n margin: 0 auto;\n\n height: ${({ theme, size }) => getTopHeights(theme, size)[0]}px;\n\n transition: height 0.2s ease-in-out, padding-top 0.2s ease-in-out,\n padding-bottom 0.2s ease-in-out;\n will-change: height;\n\n @media ${mq.semilarge} {\n height: ${({ theme, size }) => getTopHeights(theme, size)[1]}px;\n padding: ${({ size, theme }) =>\n getTopHeights(theme, size)[1] > 0 && `0 ${spacings.nudge * 2}px`};\n }\n`;\n\nconst Content = styled.div<{ size?: NavBarSize; clamp?: boolean }>`\n display: flex;\n position: relative;\n max-width: ${({ clamp }) =>\n clamp ? spacings.wrapper : spacings.wrapperLarge}px;\n padding: 0 ${spacings.nudge * 2}px;\n margin: 0 auto;\n\n height: ${({ theme, size }) => getMainHeights(theme, size)[0]}px;\n\n transition: height 0.2s ease-in-out;\n will-change: height;\n\n @media ${mq.semilarge} {\n height: ${({ theme, size }) =>\n getMainHeights(theme, size)[1] || getMainHeights(theme, size)[0]}px;\n }\n`;\n\nconst BottomContent = styled.div<{ size?: NavBarSize; clamp?: boolean }>`\n display: flex;\n justify-content: flex-start;\n position: relative;\n max-width: ${({ clamp }) =>\n clamp ? spacings.wrapper : spacings.wrapperLarge}px;\n padding: 0 ${spacings.nudge * 2}px;\n margin: 0 auto;\n\n height: ${({ theme, size }) => getBottomHeights(theme, size)[0]}px;\n transition: 0.2s height ease-in-out;\n\n @media ${mq.semilarge} {\n height: ${({ theme, size }) => getBottomHeights(theme, size)[1]}px;\n padding: 0 ${spacings.nudge * 2}px;\n }\n`;\n\nconst BarSpacer = styled.div<{ hasHeader?: boolean; hasFooter?: boolean }>`\n height: ${({ theme, hasHeader, hasFooter }) => {\n const excludes: ExcludeType[] = [];\n if (!hasHeader) excludes.push('top');\n if (!hasFooter) excludes.push('bottom');\n\n return getFullHeight(theme, 'large', excludes)[0];\n }}px;\n\n @media ${mq.semilarge} {\n height: ${({ theme, hasHeader, hasFooter }) => {\n const excludes: ExcludeType[] = [];\n if (!hasHeader) excludes.push('top');\n if (!hasFooter) excludes.push('bottom');\n\n return getFullHeight(theme, 'large', excludes)[1];\n }}px;\n }\n\n // print version\n @media print {\n display: none;\n }\n`;\n\nexport type NavBarSize = 'small' | 'large';\n\nexport interface BarStates {\n size: NavBarSize;\n isOpen?: boolean;\n isSticky?: boolean;\n pageFlow?: PageFlow;\n}\n\nexport type PageFlow = 'overContent' | 'beforeContent';\n\nexport interface NavBarProps {\n size?: NavBarSize;\n isOpen?: boolean;\n isSticky?: boolean;\n isAnimated?: boolean;\n clampWidth?: 'content' | 'full';\n pageFlow?: PageFlow;\n\n topBg?: string;\n mainBg?: string;\n bottomBg?: string;\n /** Custom background value for NavBar with pageFlow === overContent and large size */\n onContentBg?: string;\n\n topBar?: ((props: BarStates) => React.ReactNode) | null;\n mainBar?: ((props: BarStates) => React.ReactNode) | null;\n bottomBar?: ((props: BarStates) => React.ReactNode) | null;\n}\n\nconst NavBar: FC<\n NavBarProps & {\n className?: string;\n }\n> = ({\n size = 'large',\n isOpen = false,\n isSticky = false,\n isAnimated = false,\n clampWidth = false,\n pageFlow = 'beforeContent',\n topBg,\n mainBg,\n bottomBg,\n onContentBg,\n topBar,\n mainBar,\n bottomBar,\n className,\n}) => {\n const { theme, colors } = useLibTheme();\n const clampContent = clampWidth === 'content';\n const isOverContent = pageFlow === 'overContent';\n\n const hasHeader = useMemo(\n () => hasTopBar(theme) && topBar !== null,\n [theme, topBar]\n );\n const hasFooter = useMemo(\n () => hasBottomBar(theme) && bottomBar !== null,\n [bottomBar, theme]\n );\n const showBg = useMemo(\n () => size === 'small' || (size === 'large' && !isOverContent),\n [isOverContent, size]\n );\n\n const topBackground = topBg || colors.elementBg.light;\n const mainBackground = mainBg || colors.elementBg.light;\n const bottomBackground = bottomBg || colors.elementBg.light;\n const onContentBackground =\n onContentBg ||\n 'linear-gradient(180deg,rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.2) 40%, rgba(0,0,0,0) 100%)';\n\n const topBarContent = useMemo(\n () =>\n topBar &&\n topBar({\n size,\n isOpen,\n isSticky,\n pageFlow,\n }),\n [isOpen, isSticky, pageFlow, size, topBar]\n );\n\n const mainBarContent = useMemo(\n () =>\n mainBar &&\n mainBar({\n size,\n isOpen,\n isSticky,\n pageFlow,\n }),\n [isOpen, isSticky, mainBar, pageFlow, size]\n );\n\n const bottomBarContent = useMemo(\n () =>\n bottomBar &&\n bottomBar({\n size,\n isOpen,\n isSticky,\n pageFlow,\n }),\n [bottomBar, isOpen, isSticky, pageFlow, size]\n );\n\n return (\n <React.Fragment>\n {pageFlow === 'beforeContent' && (\n <BarSpacer hasHeader={hasHeader} hasFooter={hasFooter} />\n )}\n <View\n isOpen={isOpen}\n isSticky={isSticky}\n isAnimated={isAnimated}\n bgGradient={\n size === 'large' && isOverContent\n ? onContentBackground\n : undefined\n }\n className={className}\n >\n {hasHeader && (\n <Header\n size={size}\n background={showBg ? topBackground : undefined}\n >\n <TopContent size={size} clamp={clampContent}>\n {topBarContent ? (\n topBarContent\n ) : (\n <Skeletons.Column isInverted>\n Top Nav\n </Skeletons.Column>\n )}\n </TopContent>\n </Header>\n )}\n {mainBar !== null && (\n <Main background={showBg ? mainBackground : undefined}>\n <Content size={size} clamp={clampContent}>\n {mainBarContent ? (\n mainBarContent\n ) : (\n <React.Fragment>\n <Skeletons.Column\n takeSpace\n isInverted={\n size === 'large' && isOverContent\n }\n >\n Left\n </Skeletons.Column>\n <Skeletons.Column\n isInverted={\n size === 'large' && isOverContent\n }\n >\n Center\n </Skeletons.Column>\n <Skeletons.Column\n takeSpace\n isInverted={\n size === 'large' && isOverContent\n }\n >\n Right\n </Skeletons.Column>\n </React.Fragment>\n )}\n </Content>\n </Main>\n )}\n {hasFooter && (\n <Footer\n size={size}\n background={showBg ? bottomBackground : undefined}\n >\n <BottomContent size={size} clamp={clampContent}>\n {bottomBarContent ? bottomBarContent : 'bottom bar'}\n </BottomContent>\n </Footer>\n )}\n </View>\n </React.Fragment>\n );\n};\n\nexport default NavBar;\n","import React, { FC, useEffect, useMemo, useState } from 'react';\nimport { DefaultTheme } from 'styled-components';\nimport {\n LibThemeProvider,\n ThemeMods,\n useLibTheme,\n} from 'utils/LibThemeProvider';\nimport { useMediaQueries } from 'utils/useMediaQuery';\nimport { useMenuKeyboard } from 'utils/menuHooks';\nimport usePageScroll, { PageScrollDirection } from 'utils/usePageScroll';\nimport Menu, { MenuStates, MenuTypeProps, NavItem } from './menu/Menu';\n\nimport NavBar, {\n getFullHeight,\n NavBarSize,\n BarStates,\n hasTopBar,\n hasBottomBar,\n ExcludeType,\n PageFlow,\n} from './NavBar';\n\n/**\n * Checks which navbar parts are defined in navigation.\n * With this values you can calculate each height by the Navbar component functions\n * @param ident Identification string from Navigation component\n * @returns\n */\nexport const getNavbarState = (ident: string) => {\n const navbarIdent = ident || '';\n\n let pageFlow: PageFlow | undefined = undefined;\n switch (true) {\n case navbarIdent.search('overContent') !== -1: {\n pageFlow = 'overContent';\n break;\n }\n\n case navbarIdent.search('beforeContent') !== -1: {\n pageFlow = 'beforeContent';\n break;\n }\n }\n\n return {\n hasTop: navbarIdent.search('top') !== -1,\n hasMain: navbarIdent.search('main') !== -1,\n hasBottom: navbarIdent.search('bottom') !== -1,\n pageFlow: pageFlow,\n isStickable: navbarIdent.search('stickable') !== -1,\n };\n};\n\n/** Generate Navbar identifier */\nexport const generateNavbarIdent = (props: {\n hasTop?: boolean;\n hasMain?: boolean;\n hasBottom?: boolean;\n pageFlow?: PageFlow;\n isStickable?: boolean;\n}): string => {\n if (!props) return '';\n const stateArray: string[] = [];\n\n if (props.hasTop) stateArray.push('top');\n if (props.hasMain) stateArray.push('main');\n if (props.hasBottom) stateArray.push('bottom');\n if (props.isStickable) stateArray.push('stickable');\n if (props.pageFlow) stateArray.push(props.pageFlow);\n\n return stateArray.join('-');\n};\n\n/**\n * Get full navbar heights\n * @param theme Theme object\n * @param ident Indentification string from Navigation component\n * @returns\n */\nexport const getFullNavbarHeights = (theme: DefaultTheme, ident: string) => {\n const { hasTop, hasBottom } = getNavbarState(ident || '');\n const excludes: ExcludeType[] = [];\n if (!hasTop) excludes.push('top');\n if (!hasBottom) excludes.push('bottom');\n\n return {\n large: getFullHeight(theme, 'large', excludes),\n small: getFullHeight(theme, 'small', excludes),\n };\n};\n\nexport interface NavBarStates extends BarStates {\n isMenuOpen?: boolean;\n openMenu?: () => void;\n closeMenu?: () => void;\n mainNavigation?: Array<NavItem>;\n subNavigation?: Array<NavItem>;\n isOnPageTop?: boolean;\n isInTopOffset?: boolean;\n}\n\nexport interface NavMenuStates extends MenuStates {\n isMenuOpen?: boolean;\n openMenu?: () => void;\n closeMenu?: () => void;\n navBarSize?: NavBarSize;\n}\n\nexport interface NavBarSettings {\n isStickable?: boolean;\n isCollapsible?: boolean;\n pageFlow?: 'overContent' | 'beforeContent';\n\n topBg?: string;\n mainBg?: string;\n bottomBg?: string;\n /** Custom background value for NavBar with pageFlow === overContent and large size */\n onContentBg?: string;\n\n topBar?: ((props: NavBarStates) => React.ReactNode) | null;\n mainBar?: ((props: NavBarStates) => React.ReactNode) | null;\n bottomBar?: ((props: NavBarStates) => React.ReactNode) | null;\n theme?: ThemeMods;\n}\n\nexport interface MenuSettings {\n isIndexPage?: boolean;\n mainNavigation?: Array<NavItem>;\n subNavigation?: Array<NavItem>;\n header?: (props: NavMenuStates) => React.ReactNode;\n footer?: (props: NavMenuStates) => React.ReactNode;\n navItemsHeader?: (props: NavMenuStates) => React.ReactNode;\n typeSettings: MenuTypeProps;\n\n theme?: ThemeMods;\n}\n\nexport interface NavigationProps {\n navBar?: NavBarSettings;\n menu?: MenuSettings;\n clampWidth?: 'content' | 'full';\n}\n\nconst Navigation: FC<NavigationProps> = ({\n clampWidth = 'content',\n navBar,\n menu,\n}) => {\n const isStickable = navBar?.isStickable || false;\n const isCollapsible = navBar?.isCollapsible || false;\n\n const mediaQueries = useMediaQueries();\n\n const { theme } = useLibTheme();\n\n /** Navigation bar states */\n const [isNavBarSticky, setIsNavBarSticky] = useState<boolean>(false);\n const [isNavBarOpen, setNavBarOpen] = useState<boolean>(true);\n const { isTop, scrollDirection, isInOffset, leftOffsetFromTop } =\n usePageScroll({\n directionOffset: { up: 40, down: 40 },\n offset: getFullHeight(theme, 'large')[\n mediaQueries.semilarge ? 1 : 0\n ],\n });\n\n const navbarSize = useMemo<NavBarSize>(() => {\n return isTop || isInOffset || !isStickable ? 'large' : 'small';\n }, [isTop, isInOffset, isStickable]);\n\n useEffect(() => {\n if (isStickable && isCollapsible) {\n setNavBarOpen(\n isTop ||\n isInOffset ||\n scrollDirection === PageScrollDirection.UP\n );\n }\n }, [scrollDirection, isTop, isStickable, isInOffset, isCollapsible]);\n\n useEffect(() => {\n if (!isStickable) return;\n if (\n !isCollapsible ||\n (leftOffsetFromTop && scrollDirection === PageScrollDirection.UP)\n ) {\n setIsNavBarSticky(true);\n } else if (isTop) {\n setIsNavBarSticky(false);\n }\n }, [isCollapsible, isStickable, isTop, leftOffsetFromTop, scrollDirection]);\n\n /** Menu states */\n const { isMenuOpen, setIsMenuOpen, setRoot } = useMenuKeyboard(false, {});\n\n const openMenu = () => {\n setIsMenuOpen(true);\n };\n\n const closeMenu = () => {\n setIsMenuOpen(false);\n };\n\n useEffect(() => {\n document.body.style.overflow = isMenuOpen ? 'hidden' : 'visible';\n }, [isMenuOpen]);\n\n const topBar = navBar?.topBar\n ? (props: BarStates) => {\n if (!navBar?.topBar) return '';\n return navBar.topBar({\n ...props,\n isMenuOpen,\n openMenu,\n closeMenu,\n mainNavigation: menu?.mainNavigation,\n subNavigation: menu?.subNavigation,\n isOnPageTop: isTop,\n isInTopOffset: isInOffset,\n });\n }\n : navBar?.topBar;\n\n const mainBar = navBar?.mainBar\n ? (props: BarStates) => {\n if (!navBar?.mainBar) return '';\n return navBar.mainBar({\n ...props,\n isMenuOpen,\n openMenu,\n closeMenu,\n mainNavigation: menu?.mainNavigation,\n subNavigation: menu?.subNavigation,\n isOnPageTop: isTop,\n isInTopOffset: isInOffset,\n });\n }\n : navBar?.mainBar;\n\n const bottomBar = navBar?.bottomBar\n ? (props: BarStates) => {\n if (!navBar?.bottomBar) return '';\n return navBar.bottomBar({\n ...props,\n isMenuOpen,\n openMenu,\n closeMenu,\n mainNavigation: menu?.mainNavigation,\n subNavigation: menu?.subNavigation,\n isOnPageTop: isTop,\n isInTopOffset: isInOffset,\n });\n }\n : navBar?.bottomBar;\n\n const menuHeader = menu?.header\n ? (props: MenuStates) => {\n if (!menu?.header) return '';\n return menu?.header({\n ...props,\n openMenu,\n closeMenu,\n mainNavigation: menu?.mainNavigation,\n subNavigation: menu?.subNavigation,\n navBarSize: navbarSize,\n });\n }\n : undefined;\n\n const menuFooter = menu?.footer\n ? (props: MenuStates) => {\n if (!menu?.footer) return '';\n return menu?.footer({\n ...props,\n openMenu,\n closeMenu,\n mainNavigation: menu?.mainNavigation,\n subNavigation: menu?.subNavigation,\n navBarSize: navbarSize,\n });\n }\n : undefined;\n\n const menuNavItemsHeader = menu?.navItemsHeader\n ? (props: MenuStates) => {\n if (!menu?.navItemsHeader) return '';\n return menu?.navItemsHeader({\n ...props,\n openMenu,\n closeMenu,\n mainNavigation: menu?.mainNavigation,\n subNavigation: menu?.subNavigation,\n navBarSize: navbarSize,\n });\n }\n : undefined;\n\n /**\n * Get ident string that shows if each navbar section is defined.\n * @returns Navbar ident string\n */\n const getNavBarIdent = (theme: DefaultTheme) => {\n const ident = generateNavbarIdent({\n hasTop: topBar !== null && hasTopBar(theme),\n hasMain: mainBar !== null,\n hasBottom: bottomBar !== null && hasBottomBar(theme),\n isStickable: navBar?.isStickable,\n pageFlow: navBar?.pageFlow,\n });\n\n return ident;\n };\n\n return (\n <header ref={setRoot} data-navbar-ident={getNavBarIdent(theme)}>\n <LibThemeProvider theme={navBar?.theme}>\n <NavBar\n isOpen={isNavBarOpen}\n isSticky={isNavBarSticky}\n isAnimated\n size={navbarSize}\n clampWidth={clampWidth}\n pageFlow={navBar?.pageFlow}\n topBar={topBar}\n mainBar={mainBar}\n bottomBar={bottomBar}\n topBg={navBar?.topBg}\n mainBg={navBar?.mainBg}\n bottomBg={navBar?.bottomBg}\n onContentBg={navBar?.onContentBg}\n />\n </LibThemeProvider>\n <LibThemeProvider theme={menu?.theme}>\n <Menu\n isOpen={isMenuOpen}\n clampWidth={clampWidth}\n isIndexPage={menu?.isIndexPage}\n mainNavigation={menu?.mainNavigation}\n subNavigation={menu?.subNavigation}\n typeSettings={menu?.typeSettings}\n navBarSize={navbarSize}\n header={menuHeader}\n footer={menuFooter}\n navItemsHeader={menuNavItemsHeader}\n onClose={closeMenu}\n />\n </LibThemeProvider>\n </header>\n );\n};\n\nexport default Navigation;\n","import { useEffect, useRef, useState } from 'react';\n\ninterface Settings {\n openMenuIdent: string;\n closeMenuIdent: string;\n}\n\n/**\n * Hooks in to menu state to control it with keyboard inputs\n * @param initialMenuState\n * @param settings\n * @returns\n */\nexport const useMenuKeyboard = (\n initialMenuState: boolean,\n settings: Partial<Settings>\n) => {\n const [isMenuOpen, setIsMenuOpen] = useState(initialMenuState);\n const prevMenuState = useRef<boolean>(false);\n\n const [root, setRoot] = useState<HTMLElement | null>(null);\n const openBtnRef = useRef<HTMLButtonElement | null>(null);\n const closeBtnRef = useRef<HTMLButtonElement | null>(null);\n\n const defaultSettings: Settings = {\n openMenuIdent: 'button[aria-label=\"open menu\"]',\n closeMenuIdent: 'button[aria-label=\"close menu\"]',\n ...settings,\n };\n\n useEffect(() => {\n if (!root) return;\n\n // setting up menu toggle button refs\n if (!openBtnRef.current) {\n openBtnRef.current = root.querySelector(\n defaultSettings.openMenuIdent\n );\n }\n if (!closeBtnRef.current) {\n closeBtnRef.current = root.querySelector(\n defaultSettings.closeMenuIdent\n );\n }\n }, [\n defaultSettings.closeMenuIdent,\n defaultSettings.openMenuIdent,\n isMenuOpen,\n root,\n ]);\n\n useEffect(() => {\n const handleKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === 'Escape' && isMenuOpen) {\n setIsMenuOpen(false);\n }\n };\n\n // settings focus if menu is open\n if (isMenuOpen) {\n closeBtnRef?.current?.focus();\n } else if (prevMenuState.current) {\n openBtnRef?.current?.focus();\n }\n\n prevMenuState.current = isMenuOpen;\n\n window.addEventListener('keydown', handleKeyDown);\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isMenuOpen]);\n\n return {\n setRoot,\n isMenuOpen,\n setIsMenuOpen,\n };\n};\n"],"names":["PageScrollDirection","View","styled","nav","withConfig","displayName","componentId","templateObject_1","__makeTemplateObject","List","ul","templateObject_2","mq","semilarge","spacings","nudge","ListItem","li","templateObject_3","_a","isCurrent","NavLink","Link","templateObject_4","showOnMobile","clamp","copyStyle","theme","isInverted","color","text","inverted","default","showOnDesktop","NavLabel","span","templateObject_5","Seperator","Copy","templateObject_6","BackIconContainer","templateObject_7","BreadcrumbItem","label","link","children","href","React","__assign","Column","div","takeSpace","undefined","vAlign","getColors","primary","Logo","Image","Toggle","button","invertedHover","hover","BarMenuToggle","_b","isExpanded","onClick","className","createElement","isActive","Header","LanguageCol","MenuHeader","customToggle","menuStates","langs","action","Fragment","Skeletons","closeMenu","Cross","ariaHidden","isValidArray","LanguageSwitcher","navigationStyle","type","css","font","navigation","family","weight","style","withRange","getFonts","size","lineHeight","letterSpacing","textTransform","textDecoration","Backdrop","isOpen","filter","Stage","clampWidth","wrapper","wrapperLarge","Flyout","elementBg","light","medium","large","getMenuHeaderHeights","heights","global","getGlobals","menu","headerHeight","small","clampValue","navBarSize","ScrollContainer","ScrollArea","NavView","templateObject_8","NavList","templateObject_9","hasNonFeaturedItems","concat","NavItemView","templateObject_10","spacer","NavItemContent","templateObject_11","isFeatured","featured","main","NavItemIcon","templateObject_12","NavItemLabel","NavItemCollapse","NavItemCollapseIcon","AngleRight","templateObject_15","isCollapsed","NavItemLink","templateObject_16","NavItemButton","templateObject_17","SubNavList","templateObject_18","isIndented","NavigationItem","forwardRef","ref","icon","subNavTitle","onItemClick","collapseIcon","canFocus","hasSubItems","Children","count","ariaLabel","tabIndex","MenuNav","SubItem","key","SubNavItem","sub","SubNavLink","templateObject_20","NavigationSubItem","SecondaryNavList","templateObject_21","SecondaryNavLink","templateObject_22","secondary","Item","SubList","items","length","n","map","item","i","menuFilter","hideFromMenu","uid","MenuFlyout","isIndexPage","mainNavigation","subNavigation","backdropFilter","header","footer","onClose","navItemsHeader","useLibTheme","flyoutRef","useRef","hasHeader","useMemo","hasMenuHeader","largeHeights","smallHeights","mainList","__spreadArray","subList","_c","useState","initial","getCurrentNavItem","root","activeItems","setActiveItems","_d","currentNavEl","setCurrentNavEl","_e","currentSubNavEl","setCurrentSubNavEl","useEffect","handleFocus","ev","current","target","contains","document","addEventListener","removeEventListener","scrollIntoView","block","inline","e","id","includes","hasCurrentSubItem","subItems","findIndex","prev","subItem","Menu","typeSettings","getTopHeights","navBar","topHeight","hasTopBar","getMainHeights","mainHeight","getBottomHeights","bottomHeight","hasBottomBar","getFullHeight","exclude","includeTop","indexOf","includeMain","includeBottom","topHeights","mainHeights","bottomHeights","isSticky","isAnimated","bgGradient","background","Main","Footer","TopContent","Content","BottomContent","BarSpacer","hasFooter","excludes","push","NavBar","_f","_g","pageFlow","topBg","mainBg","bottomBg","onContentBg","topBar","mainBar","bottomBar","_h","colors","clampContent","isOverContent","showBg","topBackground","mainBackground","bottomBackground","onContentBackground","topBarContent","mainBarContent","bottomBarContent","getNavbarState","ident","navbarIdent","search","hasTop","hasMain","hasBottom","isStickable","generateNavbarIdent","props","stateArray","join","rootLink","rootLabel","navItems","seperator","back","currentNavPath","getCurrentNavPath","rootItem","AngleLeft","logo","coverSpace","ratios","showPlaceholder","navLinks","isCollapsible","mediaQueries","useMediaQueries","isNavBarSticky","setIsNavBarSticky","isNavBarOpen","setNavBarOpen","settings","isTop","setIsTop","isInOffset","setIsInOffset","leftOffsetFromTop","setLeftOffsetFromTop","lastScrollPos","pxSinceLastSwitch","DOWN","scrollDirection","setScrollDirection","directionDownOffset","directionOffset","down","directionUpOffset","up","scrollState","useScrollThrottle","resizeThrottleTimeout","window","scrollY","offset","onLeftOffset","call","diff","absAccPx","Math","abs","UP","usePageScroll","navbarSize","initialMenuState","isMenuOpen","setIsMenuOpen","prevMenuState","setRoot","openBtnRef","closeBtnRef","defaultSettings","openMenuIdent","closeMenuIdent","querySelector","handleKeyDown","focus","useMenuKeyboard","openMenu","body","overflow","isOnPageTop","isInTopOffset","menuHeader","menuFooter","menuNavItemsHeader","getNavBarIdent","LibThemeProvider"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var n=require("./ClockFilled-2483aa4a.js"),e=require("react"),t=require("styled-components"),o=require("./styles-3a495a2d.js"),a=require("./useCookieConsent-aa9f1104.js"),
|
|
2
|
-
//# sourceMappingURL=VideoCard-
|
|
1
|
+
"use strict";var n=require("./ClockFilled-2483aa4a.js"),e=require("react"),t=require("styled-components"),o=require("./styles-3a495a2d.js"),a=require("./useCookieConsent-aa9f1104.js"),r=require("./Copy-ea6ab025.js"),i=require("./ButtonGhost-628bbd60.js"),l=require("./LibThemeProvider-4823de57.js");function c(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var s,u,d,m,g,p,b=c(e),f=c(t),v=f.default.div.withConfig({displayName:"VideoCard__View",componentId:"sc-7e1mvm-0"})(s||(s=n.__makeTemplateObject(["\n text-align: center;\n\n cursor: ",";\n position: relative;\n\n padding-bottom: 56.25%;\n\n background-image: url('","');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: ",";\n overflow: hidden;\n\n @media "," {\n text-align: left;\n\n background-image: ",";\n }\n\n @media "," {\n background-image: ",";\n }\n\n @media "," {\n background-image: ",";\n }\n\n @media "," {\n background-image: ",";\n }\n\n &:before {\n content: ",";\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background-color: ",";\n opacity: ",";\n\n pointer-events: none;\n }\n\n &:after {\n content: ",";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n pointer-events: none;\n\n background: linear-gradient(\n 358.19deg,\n rgba(29, 34, 35, 0.52) 12.37%,\n rgba(29, 34, 35, 0) 59.02%\n );\n }\n"],["\n text-align: center;\n\n cursor: ",";\n position: relative;\n\n padding-bottom: 56.25%;\n\n background-image: url('","');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: ",";\n overflow: hidden;\n\n @media "," {\n text-align: left;\n\n background-image: ",";\n }\n\n @media "," {\n background-image: ",";\n }\n\n @media "," {\n background-image: ",";\n }\n\n @media "," {\n background-image: ",";\n }\n\n &:before {\n content: ",";\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background-color: ",";\n opacity: ",";\n\n pointer-events: none;\n }\n\n &:after {\n content: ",";\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n pointer-events: none;\n\n background: linear-gradient(\n 358.19deg,\n rgba(29, 34, 35, 0.52) 12.37%,\n rgba(29, 34, 35, 0) 59.02%\n );\n }\n"])),(function(n){return n.onClick&&"pointer"}),(function(n){var e=n.bgImage;return e?e.small:""}),(function(n){var e=n.theme;return o.getGlobals(e).sections.edgeRadius}),o.mq.medium,(function(n){var e=n.bgImage;return(null==e?void 0:e.medium)&&'url("'.concat(e.medium,'")')}),o.mq.semilarge,(function(n){var e=n.bgImage;return(null==e?void 0:e.semilarge)&&'url("'.concat(e.semilarge,'")')}),o.mq.large,(function(n){var e=n.bgImage;return(null==e?void 0:e.large)&&'url("'.concat(e.large,'")')}),o.mq.xlarge,(function(n){var e=n.bgImage;return(null==e?void 0:e.xlarge)&&'url("'.concat(e.xlarge,'")')}),(function(n){var e=n.isActive,t=n.bgImage;return!e&&t&&'""'}),(function(n){var e=n.theme;return o.getColors(e).elementBg.medium}),(function(n){return n.bgImage?"0.3":"0"}),(function(n){var e=n.isActive,t=n.bgImage;return!e&&t&&'""'})),h=f.default.button.withConfig({displayName:"VideoCard__VideoControls",componentId:"sc-7e1mvm-1"})(u||(u=n.__makeTemplateObject(["\n display: block;\n border: none;\n background: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: ",";\n z-index: 1;\n padding: 0;\n\n cursor: pointer;\n\n & > * {\n opacity: 0.8;\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n height: 80px;\n width: 80px;\n\n color: ",";\n }\n\n ",":hover > & > * {\n transform: scale(1.05);\n opacity: 1;\n }\n\n ",":active > & > * {\n transform: scale(0.95);\n opacity: 1;\n }\n\n &:focus {\n outline: 2px solid ",";\n border-radius: 50%;\n opacity: 1;\n\n & > * {\n color: ",";\n }\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n }\n"],["\n display: block;\n border: none;\n background: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: ",";\n z-index: 1;\n padding: 0;\n\n cursor: pointer;\n\n & > * {\n opacity: 0.8;\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n height: 80px;\n width: 80px;\n\n color: ",";\n }\n\n ",":hover > & > * {\n transform: scale(1.05);\n opacity: 1;\n }\n\n ",":active > & > * {\n transform: scale(0.95);\n opacity: 1;\n }\n\n &:focus {\n outline: 2px solid ",";\n border-radius: 50%;\n opacity: 1;\n\n & > * {\n color: ",";\n }\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n }\n"])),(function(n){var e=n.theme;return o.getColors(e).elementBg.light}),(function(n){var e=n.theme;return o.getColors(e).elementBg.dark}),v,v,(function(n){var e=n.theme;return o.getColors(e).primary.default}),(function(n){var e=n.theme;return o.getColors(e).primary.default})),k=f.default.div.withConfig({displayName:"VideoCard__ConsentOverlay",componentId:"sc-7e1mvm-2"})(d||(d=n.__makeTemplateObject(["\n display: ",";\n justify-content: center;\n align-items: center;\n\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n background-color: rgba(0, 0, 0, 0.6);\n pointer-events: ",";\n"],["\n display: ",";\n justify-content: center;\n align-items: center;\n\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n background-color: rgba(0, 0, 0, 0.6);\n pointer-events: ",";\n"])),(function(n){return n.isVisible?"flex":"none"}),(function(n){return n.isVisible?"all":"none"})),y=f.default.div.withConfig({displayName:"VideoCard__ConsentContent",componentId:"sc-7e1mvm-3"})(m||(m=n.__makeTemplateObject(["\n max-width: 330px;\n text-align: center;\n\n & > * + * {\n margin-top: ","px;\n }\n"],["\n max-width: 330px;\n text-align: center;\n\n & > * + * {\n margin-top: ","px;\n }\n"])),3*o.spacings.nudge),C=f.default(r.Copy).withConfig({displayName:"VideoCard__ConsentText",componentId:"sc-7e1mvm-4"})(g||(g=n.__makeTemplateObject([""],[""]))),x=f.default.iframe.withConfig({displayName:"VideoCard__Iframe",componentId:"sc-7e1mvm-5"})(p||(p=n.__makeTemplateObject(["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n border: none;\n"],["\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n border: none;\n"])));exports.VideoCard=function(t){var o,r=t.bgImage,c=t.embedId,s=t.playIcon,u=t.consentText,d=void 0===u?"Für die Wiedergabe von Videos muss der Nutzung von Cookies & Daten zugestimmt werden.":u,m=t.consentAction,g=t.onPlayClick,p=t.className,f=l.useLibTheme().globals,_=e.useState(!1),w=_[0],I=_[1],j=e.useState(!1),V=j[0],q=j[1],T=function(){q(!1)};return b.default.createElement(v,{onClick:V?void 0:function(){return n.__awaiter(void 0,void 0,void 0,(function(){var e,t;return n.__generator(this,(function(n){switch(n.label){case 0:return e=!1,g?[4,g()]:[3,2];case 1:return e=n.sent(),[3,3];case 2:t=a.getCookie(f.cookie.name),e=f.cookie.videoCookieTypeRestrictions.reduce((function(n,e){var o,a;return n?!(!t||!(null==t?void 0:t.data.types))&&(n=!!(null===(a=null===(o=null==t?void 0:t.data)||void 0===o?void 0:o.types)||void 0===a?void 0:a[e])):n}),!0),n.label=3;case 3:return e?(I(!0),q(!1)):q(!0),[2]}}))}))},bgImage:w?void 0:r,isActive:w,className:p},!w&&!V&&b.default.createElement(h,null,s||b.default.createElement(n.Play,{iconColor:"#000"})),w&&b.default.createElement(x,{id:"ytplayer",src:"https://www.youtube.com/embed/".concat(c,"?autoplay=1"),allow:"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"}),b.default.createElement(k,{isVisible:V},b.default.createElement(y,null,d&&b.default.createElement(C,{isInverted:!0},d),m?m({handleClick:T,consentProps:(o={},o[a.selectors.buttons.attribute]="",o)}):b.default.createElement(i.ButtonGhost.View,{as:"button",isInverted:!0,onClick:T,className:a.selectors.buttons.class},b.default.createElement(i.ButtonGhost.Label,null,"Zustimmung ändern")))))};
|
|
2
|
+
//# sourceMappingURL=VideoCard-f6c436ca.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VideoCard-f6c436ca.js","sources":["../src/components/blocks/VideoCard.tsx"],"sourcesContent":["import React, { FC, useState } from 'react';\nimport styled from 'styled-components';\n\nimport { ImageProps } from 'components/blocks/Image';\nimport {\n mq,\n getColors as color,\n getGlobals as global,\n spacings,\n} from 'utils/styles';\nimport Play from 'components/base/icons/Play';\nimport {\n CookieConsentData,\n selectors,\n} from 'utils/cookie-consent/useCookieConsent';\nimport { Cookie, getCookie } from 'utils/cookie-consent/cookie';\nimport Copy from 'components/typography/Copy';\nimport ButtonGhost from 'components/buttons/ButtonGhost';\nimport { useLibTheme } from 'utils/LibThemeProvider';\n\nconst View = styled.div<{\n bgImage?: ImageProps;\n isActive?: boolean;\n onClick?: () => void;\n}>`\n text-align: center;\n\n cursor: ${({ onClick }) => onClick && 'pointer'};\n position: relative;\n\n padding-bottom: 56.25%;\n\n background-image: url('${({ bgImage }) => (bgImage ? bgImage.small : '')}');\n background-size: cover;\n background-repeat: no-repeat;\n background-position: center;\n\n border-radius: ${({ theme }) => global(theme).sections.edgeRadius};\n overflow: hidden;\n\n @media ${mq.medium} {\n text-align: left;\n\n background-image: ${({ bgImage }) =>\n bgImage?.medium && `url(\"${bgImage.medium}\")`};\n }\n\n @media ${mq.semilarge} {\n background-image: ${({ bgImage }) =>\n bgImage?.semilarge && `url(\"${bgImage.semilarge}\")`};\n }\n\n @media ${mq.large} {\n background-image: ${({ bgImage }) =>\n bgImage?.large && `url(\"${bgImage.large}\")`};\n }\n\n @media ${mq.xlarge} {\n background-image: ${({ bgImage }) =>\n bgImage?.xlarge && `url(\"${bgImage.xlarge}\")`};\n }\n\n &:before {\n content: ${({ isActive, bgImage }) => !isActive && bgImage && '\"\"'};\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n background-color: ${({ theme }) => color(theme).elementBg.medium};\n opacity: ${({ bgImage }) => (bgImage ? '0.3' : '0')};\n\n pointer-events: none;\n }\n\n &:after {\n content: ${({ isActive, bgImage }) => !isActive && bgImage && '\"\"'};\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n pointer-events: none;\n\n background: linear-gradient(\n 358.19deg,\n rgba(29, 34, 35, 0.52) 12.37%,\n rgba(29, 34, 35, 0) 59.02%\n );\n }\n`;\n\nconst VideoControls = styled.button`\n display: block;\n border: none;\n background: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n color: ${({ theme }) => color(theme).elementBg.light};\n z-index: 1;\n padding: 0;\n\n cursor: pointer;\n\n & > * {\n opacity: 0.8;\n transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out;\n height: 80px;\n width: 80px;\n\n color: ${({ theme }) => color(theme).elementBg.dark};\n }\n\n ${View}:hover > & > * {\n transform: scale(1.05);\n opacity: 1;\n }\n\n ${View}:active > & > * {\n transform: scale(0.95);\n opacity: 1;\n }\n\n &:focus {\n outline: 2px solid ${({ theme }) => color(theme).primary.default};\n border-radius: 50%;\n opacity: 1;\n\n & > * {\n color: ${({ theme }) => color(theme).primary.default};\n }\n }\n\n &:focus:not(:focus-visible) {\n outline: none;\n box-shadow: none;\n }\n`;\n\nconst ConsentOverlay = styled.div<{ isVisible?: boolean }>`\n display: ${({ isVisible }) => (isVisible ? 'flex' : 'none')};\n justify-content: center;\n align-items: center;\n\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 2;\n background-color: rgba(0, 0, 0, 0.6);\n pointer-events: ${({ isVisible }) => (isVisible ? 'all' : 'none')};\n`;\n\nconst ConsentContent = styled.div`\n max-width: 330px;\n text-align: center;\n\n & > * + * {\n margin-top: ${spacings.nudge * 3}px;\n }\n`;\n\nconst ConsentText = styled(Copy)``;\n\nconst Iframe = styled.iframe`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n border: none;\n`;\n\nexport interface VideoCardProps {\n bgImage: ImageProps;\n embedId: string;\n playIcon?: React.ReactNode;\n consentText?: string;\n consentAction?: (props: {\n handleClick?: () => void;\n consentProps: Record<string, string>;\n }) => React.ReactNode;\n /**\n * Custom handler for play button click\n * @returns true if video should be played\n */\n onPlayClick?: () => Promise<boolean>;\n}\n\nconst VideoCard: FC<VideoCardProps & { className?: string }> = ({\n bgImage,\n embedId,\n playIcon,\n consentText = 'Für die Wiedergabe von Videos muss der Nutzung von Cookies & Daten zugestimmt werden.',\n consentAction,\n onPlayClick,\n className,\n}) => {\n const { globals } = useLibTheme();\n const [isActive, setIsActive] = useState(false);\n const [showConsent, setShowConsent] = useState(false);\n\n const handlePlayClick = async () => {\n let isAccepted = false;\n\n if (onPlayClick) {\n isAccepted = await onPlayClick();\n } else {\n const cookie = getCookie(\n globals.cookie.name\n ) as Cookie<CookieConsentData>;\n\n isAccepted =\n globals.cookie.videoCookieTypeRestrictions.reduce<boolean>(\n (acc, current) => {\n if (!acc) return acc;\n if (!cookie || !cookie?.data.types) return false;\n\n // set acc to false if type is not defined or set to false\n acc = !!cookie?.data?.types?.[current];\n return acc;\n },\n true\n );\n }\n\n if (isAccepted) {\n setIsActive(true);\n setShowConsent(false);\n } else {\n setShowConsent(true);\n }\n };\n\n const handleConsentActionClick = () => {\n setShowConsent(false);\n };\n\n return (\n <View\n onClick={!showConsent ? handlePlayClick : undefined}\n bgImage={isActive ? undefined : bgImage}\n isActive={isActive}\n className={className}\n >\n {!isActive && !showConsent && (\n <VideoControls>\n {playIcon || <Play iconColor=\"#000\" />}\n </VideoControls>\n )}\n {isActive && (\n <Iframe\n id=\"ytplayer\"\n src={`https://www.youtube.com/embed/${embedId}?autoplay=1`}\n allow=\"accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\"\n />\n )}\n <ConsentOverlay isVisible={showConsent}>\n <ConsentContent>\n {consentText && (\n <ConsentText isInverted>{consentText}</ConsentText>\n )}\n {consentAction ? (\n consentAction({\n handleClick: handleConsentActionClick,\n consentProps: {\n [selectors.buttons.attribute]: '',\n },\n })\n ) : (\n <ButtonGhost.View\n as=\"button\"\n isInverted\n onClick={handleConsentActionClick}\n className={selectors.buttons.class}\n >\n <ButtonGhost.Label>\n Zustimmung ändern\n </ButtonGhost.Label>\n </ButtonGhost.View>\n )}\n </ConsentContent>\n </ConsentOverlay>\n </View>\n );\n};\n\nexport default VideoCard;\n"],"names":["View","styled","div","withConfig","displayName","componentId","_a","onClick","bgImage","small","theme","global","sections","edgeRadius","mq","medium","concat","semilarge","large","xlarge","isActive","color","elementBg","VideoControls","button","templateObject_2","__makeTemplateObject","light","dark","primary","default","ConsentOverlay","templateObject_3","isVisible","ConsentContent","spacings","nudge","ConsentText","Copy","templateObject_5","Iframe","iframe","templateObject_6","embedId","playIcon","_c","consentText","consentAction","onPlayClick","className","globals","useLibTheme","_d","useState","setIsActive","_e","showConsent","setShowConsent","handleConsentActionClick","React","createElement","undefined","__awaiter","isAccepted","cookie_1","getCookie","cookie","name","videoCookieTypeRestrictions","reduce","acc","current","data","types","_b","Play","iconColor","id","src","allow","isInverted","handleClick","consentProps","selectors","buttons","attribute","ButtonGhost","as","class","Label"],"mappings":"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"}
|