@contentful/f36-navbar 6.0.0-alpha.1 → 6.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {MenuDivider,MenuSectionTitle,Menu}from'@contentful/f36-menu';import {Flex}from'@contentful/f36-core';import v from'react';import {css,cx}from'@emotion/css';import a from'@contentful/f36-tokens';import {generateComponentWithVariants,generateIconComponent,IconVariant}from'@contentful/f36-icon';import {Button}from'@contentful/f36-button';import {ArrowSquareOutIcon,ListIcon,CaretRightIcon,FlaskIcon,RocketLaunchIcon,EnvironmentAliasIcon,EnvironmentIcon}from'@contentful/f36-icons';import {Avatar}from'@contentful/f36-avatar';import {Tooltip}from'@contentful/f36-tooltip';import {SkeletonContainer,SkeletonText,SkeletonImage,SkeletonBodyText}from'@contentful/f36-skeleton';import {hexToRGBA}from'@contentful/f36-utils';import {Text}from'@contentful/f36-typography';var eo=Object.defineProperty,oo=Object.defineProperties;var to=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var ue=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var ge=(e,o,t)=>o in e?eo(e,o,{enumerable:true,configurable:true,writable:true,value:t}):e[o]=t,p=(e,o)=>{for(var t in o||(o={}))ue.call(o,t)&&ge(e,t,o[t]);if(Z)for(var t of Z(o))ve.call(o,t)&&ge(e,t,o[t]);return e},d=(e,o)=>oo(e,to(o));var N=(e,o)=>{var t={};for(var r in e)ue.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Z)for(var r of Z(e))o.indexOf(r)<0&&ve.call(e,r)&&(t[r]=e[r]);return t};var fe=60;var i={xsmall:"@media (min-width: 576px)",small:"@media (min-width: 867px)",medium:"@media (min-width: 1024px)",large:"@media (min-width: 1200px)",xlarge:"@media (min-width: 1920px)"},B=(e=a.glowPrimary)=>css({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}}),W=(e="44px")=>css({overflow:"visible",position:"relative","&:after":{minHeight:e,minWidth:e,position:"absolute",width:"100%",content:'""',left:"50%",top:"50%",transform:"translate(-50%, -50%)"}});var he=({contentMaxWidth:e,variant:o})=>({container:css({justifyContent:"center",backgroundColor:a.gray100,width:"100%"}),logo:css({display:"none",[i.small]:{display:"block",height:"28px",width:"28px"}}),navigation:css({width:"100%",maxWidth:o==="wide"?"1920px":e,padding:`${a.spacingS} ${a.spacingM}`,height:`${60}px`,[i.small]:{padding:`${a.spacingM} ${a.spacingL}`}}),mainNavigation:t=>css({display:"none"},t==="small"?{[i.small]:{display:"flex"}}:{[i.medium]:{display:"flex"}}),mobileNavigationButton:t=>css({display:"flex",minHeight:"initial",height:"36px",padding:"0 12px",borderRadius:"10px"},t==="small"?{[i.small]:{display:"none"}}:{[i.medium]:{display:"none"}}),mobileNavigationIcon:css({heigt:"20px",width:"20px"}),secondaryNavigationWrapper:css({"> *:not(:first-child)":{display:"none",[i.xsmall]:{display:"flex"}}}),promoNavigationWrapper:css({display:"none",[i.large]:{display:"flex"}}),account:css({display:"none",[i.xsmall]:{display:"flex"}})});var Pe=generateComponentWithVariants({variants:{[IconVariant.Active]:generateIconComponent({path:v.createElement(v.Fragment,null,v.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a.blue300})),viewBox:"0 0 12 12"}),[IconVariant.Default]:generateIconComponent({path:v.createElement(v.Fragment,null,v.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a.gray400})),viewBox:"0 0 12 12"})}});var Se=generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:v.createElement(v.Fragment,null,v.createElement("path",{fill:"#1773EB",d:"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z"}),v.createElement("path",{fill:"#E44F20",d:"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z"}),v.createElement("path",{fill:"#FFDA00",d:"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z"}),v.createElement("path",{fill:"#1773EB",d:"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z"}),v.createElement("path",{fill:"#E44F20",d:"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z"}))});var Me=()=>({menuList:css({minWidth:0,[i.xsmall]:{minWidth:"250px"}})});var F=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:s}=e,l=Me();return v.createElement(Menu,{onOpen:n,onClose:s},v.createElement(Menu.Trigger,null,o),v.createElement(Menu.List,{className:l.menuList,testId:r},t))};function lo(e,o){let C=e,{logo:t,promotions:r,switcher:n,mainNavigation:s,secondaryNavigation:l,account:c,mobileNavigation:b,mobileNavigationProps:g={breakpoint:"small",label:"Menu"},className:x,contentMaxWidth:A="100%",testId:u="cf-ui-navbar",variant:P="wide",aria:S={labelMainNavigation:"Main Navigation",labelSecondaryNavigation:"Secondary Navigation",labelPromotions:"Promotions",labelAccount:"Account Navigation"}}=C,q=N(C,["logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","contentMaxWidth","testId","variant","aria"]),y=he({contentMaxWidth:A,variant:P});return v.createElement(Flex,d(p({},q),{ref:o,testId:u,className:cx(y.container,x),as:"header"}),v.createElement(Flex,{as:"nav",className:y.navigation,justifyContent:"space-between",gap:"spacingXs"},v.createElement(Flex,{alignItems:"center",gap:"spacingL"},t||v.createElement(Se,{className:y.logo}),b&&v.createElement(F,{trigger:v.createElement(Button,{className:y.mobileNavigationButton(g.breakpoint),startIcon:v.createElement(ListIcon,{size:"medium"})},g.label)},b),s&&v.createElement(Flex,{className:y.mainNavigation(g.breakpoint),"aria-label":S.labelMainNavigation,gap:"spacingXs"},s)),v.createElement(Flex,{alignItems:"center",gap:"spacingXs"},v.createElement(Flex,{alignItems:"center",className:y.promoNavigationWrapper,"aria-label":S.labelPromotions,gap:"spacingXs"},r),v.createElement(Flex,{alignItems:"center"},n),v.createElement(Flex,{alignItems:"center",gap:"spacingXs"},l&&v.createElement(Flex,{className:y.secondaryNavigationWrapper,"aria-label":S.labelSecondaryNavigation,gap:"spacingXs"},l),c&&v.createElement(Flex,{className:y.account,"aria-label":S.labelAccount,gap:"spacingXs"},c)))))}var we=v.forwardRef(lo);var co={warning:a.colorWarning,negative:a.colorNegative,info:a.blue500},Ae=()=>({navbarAccount:css({cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%",border:"none",padding:0,"&:hover img":{filter:"brightness(0.9)"}},B(),W()),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:a.spacingS,width:a.spacingS,borderRadius:"50%",border:`2px solid ${a.gray100}`,backgroundColor:co[e],transform:"translate(30%, -30%)",zIndex:1})});function Ce(e,o){let P=e,{children:t,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:s,label:l="Account menu",initials:c,username:b,hasNotification:g,notificationVariant:x="warning"}=P,A=N(P,["children","className","testId","avatar","label","initials","username","hasNotification","notificationVariant"]),u=Ae();return v.createElement(F,{trigger:v.createElement("div",null,v.createElement(Tooltip,{placement:"bottom",content:l,showDelay:600,usePortal:true},v.createElement(Flex,d(p({as:"button"},A),{ref:o,className:cx(u.navbarAccount,r),testId:n,alignItems:"center","aria-label":l}),v.createElement(Avatar,{src:s,initials:c,size:"small",variant:"user"}),g?v.createElement("span",{className:u.notificationIcon(x)}):null)))},t)}Ce.displayName="NavbarAccount";var re=v.forwardRef(Ce);function j({ariaLabel:e}){return v.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:a.gray300,foregroundColor:a.gray200},v.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}j.displayName="NavbarAccountSkeletton";var G="1px",ae=()=>css({backgroundColor:a.blue100,border:`${G} solid ${a.blue400}`,color:a.blue600,"&:focus,&:hover":{backgroundColor:a.blue100}}),ho=()=>css({border:"none",opacity:.5,pointerEvents:"none"}),Le={display:"flex",justifyContent:"center",padding:`calc(${a.spacing2Xs} - ${G}) calc(${a.spacingXs} - ${G})`,alignItems:"center",background:"none",gap:a.spacing2Xs},Be=({hasTitle:e})=>({navbarItem:css(Le,{appearance:"none",background:"none",outline:"none",border:`${G} solid transparent`,margin:0,fontSize:a.fontSizeM,lineHeight:a.lineHeightM,fontWeight:a.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:a.gray800,boxSizing:"border-box",transition:`color ${a.transitionDurationShort} ${a.transitionEasingCubicBezier}`,borderRadius:a.borderRadiusMedium,height:"30px",padding:e?`${a.spacing2Xs} ${a.spacingXs}`:`calc(${a.spacing2Xs} - ${G})`,"&:focus, &:hover":{backgroundColor:a.gray200},"&:active":ae(),"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a.transitionDurationShort} ${a.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a.zIndexDefault}},B(),W()),isActive:ae(),isDisabled:ho(),icon:css({height:"20px",width:"20px",boxSizing:"content-box",display:e?"none":"block",[i.small]:{height:"16px",width:"16px",padding:e?"2px 0":"2px"},[i.large]:{display:"block"}})}),We=()=>({itemSkeleton:css(Le)});var $e=()=>({navbarItemIcon:css({"&:last-child&:not(:only-child)":{marginLeft:a.spacing2Xs},"img&":{borderRadius:a.borderRadiusSmall,maxWidth:a.spacingM,maxHeight:a.spacingM}})});var w=({icon:e,isActive:o,className:t})=>{let c=e.props,{className:r,size:n}=c,s=N(c,["className","size"]),l=$e();return v.cloneElement(e,p({className:cx(r,l.navbarItemIcon,t),size:n||"small",isActive:o},s))};w.displayName="NavbarItemIcon";var Fe="button";function He(e,o){let be=e,{as:t=Fe,icon:r,label:n,title:s,children:l,className:c,isActive:b,isDisabled:g,testId:x="cf-ui-navbar-item",onOpen:A,onClose:u}=be,P=N(be,["as","icon","label","title","children","className","isActive","isDisabled","testId","onOpen","onClose"]),S=Be({hasTitle:!!s}),q=Mo(e),y=s&&q,C=v.createElement(t,p(p(d(p({},P),{ref:o,"data-test-id":x,className:cx(S.navbarItem,c,{[S.isActive]:b&&!g,[S.isDisabled]:g})}),!s&&{"aria-label":n}),g&&(t===Fe?{disabled:true}:{tabIndex:-1,"aria-disabled":true})),r&&v.createElement(w,{className:S.icon,icon:r,isActive:b}),s&&v.createElement("span",null,s),y&&v.createElement(Pe,{size:"tiny",isActive:b}));return s||(C=v.createElement("div",null,v.createElement(Tooltip,{content:n,placement:"bottom",showDelay:600,usePortal:true},C))),q?v.createElement(F,{trigger:C,testId:x,onOpen:A,onClose:u},l):C}var Mo=e=>!!e.children;He.displayName="NavbarItemBase";var ne=v.forwardRef(He);var J=({estimatedWidth:e})=>{let o=We();return v.createElement(SkeletonContainer,{className:o.itemSkeleton,svgWidth:e,svgHeight:28,backgroundColor:a.gray300,foregroundColor:a.gray200},v.createElement(SkeletonText,{lineHeight:18,numberOfLines:1,offsetTop:2,radiusX:a.borderRadiusSmall,radiusY:a.borderRadiusSmall}))};J.displayName="NavbarItemSkeleton";var Ve=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Lo="button";function Bo(e,o){let g=e,{as:t=Lo,icon:r,title:n,className:s}=g,l=N(g,["as","icon","title","className"]),c=Ve(),b=Wo(e);return v.createElement(Menu.Item,d(p({},l),{ref:o,as:t,className:cx(c.navbarMenuItem,s)}),r?v.createElement(w,{icon:r}):b&&_e,v.createElement("span",null,n),r&&b?_e:null)}var _e=v.createElement(w,{icon:v.createElement(ArrowSquareOutIcon,null)}),Wo=e=>e.as==="a"&&e.target==="_blank",ie=v.forwardRef(Bo);var se=({ariaLabel:e})=>v.createElement(Menu.Item,null,v.createElement(Flex,{alignItems:"center",gap:a.spacingXs},v.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},v.createElement(SkeletonImage,{width:16,height:16})),v.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},v.createElement(SkeletonBodyText,{numberOfLines:1}))));var _=1,Re=e=>({navbarSwitcher:({showSpaceEnv:o})=>css({color:a.gray600,flexShrink:1,fontWeight:a.fontWeightMedium,maxWidth:"50vw",minHeight:"unset",padding:`${a.spacing2Xs} ${a.spacingXs}`,"&:hover":{backgroundColor:hexToRGBA(a.gray900,.05)},[i.xsmall]:{maxWidth:"45vw"},[i.medium]:{maxWidth:"35vw"},[i.large]:{maxWidth:"25vw"},[i.xlarge]:{maxWidth:"600px"}},o&&Do(e),B(),W()),switcherWrapper:({showSpaceEnv:o})=>css({gap:a.spacingXs,alignItems:"center",minWidth:0,"&:has(> span:last-child:nth-child(3))":{minWidth:"12ch"},"&:before":css(d(p({content:'""',position:"absolute",display:"block",width:`calc(8px - ${_}px)`,height:o?"26px":"unset",borderTopLeftRadius:`calc(${a.borderRadiusMedium} - ${_}px)`,borderBottomLeftRadius:`calc(${a.borderRadiusMedium} - ${_}px)`},Ro(e)),{backgroundPosition:"bottom"}))}),switcherLabelWrapper:css({height:"26px",paddingLeft:`calc(${a.spacingXs} * 2)`,alignItems:"center",gap:a.spacing2Xs,maxWidth:"100%"}),switcherLabel:css({color:"currentcolor",fontWeight:"inherit",lineHeight:"unset",display:"inline-block",flexShrink:1,minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),switcherCaret:css({flexShrink:0,minWidth:0}),switcherEnvIcon:css({minWidth:"0",[i.small]:{width:"16px",height:"16px"}})}),Xe=e=>{switch(e){case "trial":return a.purple700;case "non-master":return a.orange700;default:return a.green700}},Do=e=>{let o={padding:"0",paddingRight:a.spacingXs};switch(e){case "trial":return d(p({},o),{color:a.purple700,backgroundColor:a.purple100,border:`${_}px solid ${a.purple400}`,"&:hover, &:active":{backgroundColor:a.purple200}});case "non-master":return d(p({},o),{color:a.orange700,backgroundColor:a.orange100,border:`${_}px solid ${a.orange400}`,"&:hover, &:active":{backgroundColor:a.orange200}});default:return d(p({},o),{color:a.green700,backgroundColor:a.green100,border:`${_}px solid ${a.green400}`,"&:hover, &:active":{backgroundColor:a.green200}})}},Ro=e=>{switch(e){case "trial":return {background:a.purple300};case "non-master":return {background:`linear-gradient(
|
|
1
|
+
import {MenuDivider,MenuSectionTitle,Menu}from'@contentful/f36-menu';import {Flex}from'@contentful/f36-core';import v from'react';import {css,cx}from'@emotion/css';import a from'@contentful/f36-tokens';import {generateComponentWithVariants,generateIconComponent,IconVariant}from'@contentful/f36-icon';import {Button}from'@contentful/f36-button';import {ArrowSquareOutIcon,ListIcon,CaretRightIcon,FlaskIcon,RocketLaunchIcon,EnvironmentAliasIcon,EnvironmentIcon}from'@contentful/f36-icons';import {Avatar}from'@contentful/f36-avatar';import {Tooltip}from'@contentful/f36-tooltip';import {SkeletonContainer,SkeletonText,SkeletonImage,SkeletonBodyText}from'@contentful/f36-skeleton';import {hexToRGBA}from'@contentful/f36-utils';import {Text}from'@contentful/f36-typography';var eo=Object.defineProperty,oo=Object.defineProperties;var to=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var ue=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var ge=(e,o,t)=>o in e?eo(e,o,{enumerable:true,configurable:true,writable:true,value:t}):e[o]=t,p=(e,o)=>{for(var t in o||(o={}))ue.call(o,t)&&ge(e,t,o[t]);if(Z)for(var t of Z(o))ve.call(o,t)&&ge(e,t,o[t]);return e},d=(e,o)=>oo(e,to(o));var N=(e,o)=>{var t={};for(var r in e)ue.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Z)for(var r of Z(e))o.indexOf(r)<0&&ve.call(e,r)&&(t[r]=e[r]);return t};var fe=60;var i={xsmall:"@media (min-width: 576px)",small:"@media (min-width: 867px)",medium:"@media (min-width: 1024px)",large:"@media (min-width: 1200px)",xlarge:"@media (min-width: 1920px)"},B=(e=a.glowPrimary)=>css({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}}),W=(e="44px")=>css({overflow:"visible",position:"relative","&:after":{minHeight:e,minWidth:e,position:"absolute",width:"100%",content:'""',left:"50%",top:"50%",transform:"translate(-50%, -50%)"}});var he=({contentMaxWidth:e,variant:o})=>({container:css({justifyContent:"center",backgroundColor:a.gray100,width:"100%"}),logo:css({display:"none",[i.small]:{display:"block",height:"28px",width:"28px"}}),navigation:css({width:"100%",maxWidth:o==="wide"?"1920px":e,padding:`${a.spacingS} ${a.spacingM}`,height:`${60}px`,[i.small]:{padding:`${a.spacingM} ${a.spacingL}`}}),mainNavigation:t=>css({display:"none"},t==="small"?{[i.small]:{display:"flex"}}:{[i.medium]:{display:"flex"}}),mobileNavigationButton:t=>css({display:"flex",minHeight:"initial",height:"36px",padding:"0 12px",borderRadius:"10px"},t==="small"?{[i.small]:{display:"none"}}:{[i.medium]:{display:"none"}}),mobileNavigationIcon:css({heigt:"20px",width:"20px"}),secondaryNavigationWrapper:css({"> *:not(:first-child)":{display:"none",[i.xsmall]:{display:"flex"}}}),promoNavigationWrapper:css({display:"none",[i.large]:{display:"flex"}}),account:css({display:"none",[i.xsmall]:{display:"flex"}})});var Pe=generateComponentWithVariants({variants:{[IconVariant.Active]:generateIconComponent({path:v.createElement(v.Fragment,null,v.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a.blue300})),viewBox:"0 0 12 12"}),[IconVariant.Default]:generateIconComponent({path:v.createElement(v.Fragment,null,v.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a.gray400})),viewBox:"0 0 12 12"})}});var Se=generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:v.createElement(v.Fragment,null,v.createElement("path",{fill:"#1773EB",d:"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z"}),v.createElement("path",{fill:"#E44F20",d:"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z"}),v.createElement("path",{fill:"#FFDA00",d:"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z"}),v.createElement("path",{fill:"#1773EB",d:"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z"}),v.createElement("path",{fill:"#E44F20",d:"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z"}))});var Me=()=>({menuList:css({minWidth:0,[i.xsmall]:{minWidth:"250px"}})});var H=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:s}=e,l=Me();return v.createElement(Menu,{onOpen:n,onClose:s},v.createElement(Menu.Trigger,null,o),v.createElement(Menu.List,{className:l.menuList,testId:r},t))};function lo(e,o){let C=e,{logo:t,promotions:r,switcher:n,mainNavigation:s,secondaryNavigation:l,account:c,mobileNavigation:b,mobileNavigationProps:g={breakpoint:"small",label:"Menu"},className:x,contentMaxWidth:A="100%",testId:u="cf-ui-navbar",variant:P="wide",aria:S={labelMainNavigation:"Main Navigation",labelSecondaryNavigation:"Secondary Navigation",labelPromotions:"Promotions",labelAccount:"Account Navigation"}}=C,q=N(C,["logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","contentMaxWidth","testId","variant","aria"]),y=he({contentMaxWidth:A,variant:P});return v.createElement(Flex,d(p({},q),{ref:o,testId:u,className:cx(y.container,x),as:"header"}),v.createElement(Flex,{as:"nav",className:y.navigation,justifyContent:"space-between",gap:"spacingXs"},v.createElement(Flex,{alignItems:"center",gap:"spacingL"},t||v.createElement(Se,{className:y.logo}),b&&v.createElement(H,{trigger:v.createElement(Button,{className:y.mobileNavigationButton(g.breakpoint),startIcon:v.createElement(ListIcon,{size:"medium"})},g.label)},b),s&&v.createElement(Flex,{className:y.mainNavigation(g.breakpoint),"aria-label":S.labelMainNavigation,gap:"spacingXs"},s)),v.createElement(Flex,{alignItems:"center",gap:"spacingXs"},v.createElement(Flex,{alignItems:"center",className:y.promoNavigationWrapper,"aria-label":S.labelPromotions,gap:"spacingXs"},r),v.createElement(Flex,{alignItems:"center"},n),v.createElement(Flex,{alignItems:"center",gap:"spacingXs"},l&&v.createElement(Flex,{className:y.secondaryNavigationWrapper,"aria-label":S.labelSecondaryNavigation,gap:"spacingXs"},l),c&&v.createElement(Flex,{className:y.account,"aria-label":S.labelAccount,gap:"spacingXs"},c)))))}var we=v.forwardRef(lo);var co={warning:a.colorWarning,negative:a.colorNegative,info:a.blue500},Ae=()=>({navbarAccount:css({cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%",border:"none",padding:0,"&:hover img":{filter:"brightness(0.9)"}},B(),W()),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:a.spacingS,width:a.spacingS,borderRadius:"50%",border:`2px solid ${a.gray100}`,backgroundColor:co[e],transform:"translate(30%, -30%)",zIndex:1})});function Ce(e,o){let P=e,{children:t,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:s,label:l="Account menu",initials:c,username:b,hasNotification:g,notificationVariant:x="warning"}=P,A=N(P,["children","className","testId","avatar","label","initials","username","hasNotification","notificationVariant"]),u=Ae();return v.createElement(H,{trigger:v.createElement("div",null,v.createElement(Tooltip,{placement:"bottom",content:l,showDelay:600,usePortal:true},v.createElement(Flex,d(p({as:"button"},A),{ref:o,className:cx(u.navbarAccount,r),testId:n,alignItems:"center","aria-label":l}),v.createElement(Avatar,{src:s,initials:c,size:"small",variant:"user"}),g?v.createElement("span",{className:u.notificationIcon(x)}):null)))},t)}Ce.displayName="NavbarAccount";var re=v.forwardRef(Ce);function j({ariaLabel:e}){return v.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:a.gray300,foregroundColor:a.gray200},v.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}j.displayName="NavbarAccountSkeletton";var G="1px",ae=()=>css({backgroundColor:a.blue100,border:`${G} solid ${a.blue400}`,color:a.blue600,"&:focus,&:hover":{backgroundColor:a.blue100}}),ho=()=>css({border:"none",opacity:.5,pointerEvents:"none"}),Le={display:"flex",justifyContent:"center",padding:`calc(${a.spacing2Xs} - ${G}) calc(${a.spacingXs} - ${G})`,alignItems:"center",background:"none",gap:a.spacing2Xs},Be=({hasTitle:e})=>({navbarItem:css(Le,{appearance:"none",background:"none",outline:"none",border:`${G} solid transparent`,margin:0,fontSize:a.fontSizeM,lineHeight:a.lineHeightM,fontWeight:a.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:a.gray800,boxSizing:"border-box",transition:`color ${a.transitionDurationShort} ${a.transitionEasingCubicBezier}`,borderRadius:a.borderRadiusMedium,height:"30px",padding:e?`${a.spacing2Xs} ${a.spacingXs}`:`calc(${a.spacing2Xs} - ${G})`,"&:focus, &:hover":{backgroundColor:a.gray200},"&:active":ae(),"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a.transitionDurationShort} ${a.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a.zIndexDefault}},B(),W()),isActive:ae(),isDisabled:ho(),icon:css({height:"20px",width:"20px",boxSizing:"content-box",display:e?"none":"block",[i.small]:{height:"16px",width:"16px",padding:e?"2px 0":"2px"},[i.large]:{display:"block"}})}),We=()=>({itemSkeleton:css(Le)});var $e=()=>({navbarItemIcon:css({"&:last-child&:not(:only-child)":{marginLeft:a.spacing2Xs},"img&":{borderRadius:a.borderRadiusSmall,maxWidth:a.spacingM,maxHeight:a.spacingM}})});var w=({icon:e,isActive:o,className:t})=>{let c=e.props,{className:r,size:n}=c,s=N(c,["className","size"]),l=$e();return v.cloneElement(e,p({className:cx(r,l.navbarItemIcon,t),size:n||"small",isActive:o},s))};w.displayName="NavbarItemIcon";var He="button";function Fe(e,o){let be=e,{as:t=He,icon:r,label:n,title:s,children:l,className:c,isActive:b,isDisabled:g,testId:x="cf-ui-navbar-item",onOpen:A,onClose:u}=be,P=N(be,["as","icon","label","title","children","className","isActive","isDisabled","testId","onOpen","onClose"]),S=Be({hasTitle:!!s}),q=Mo(e),y=s&&q,C=v.createElement(t,p(p(d(p({},P),{ref:o,"data-test-id":x,className:cx(S.navbarItem,c,{[S.isActive]:b&&!g,[S.isDisabled]:g})}),!s&&{"aria-label":n}),g&&(t===He?{disabled:true}:{tabIndex:-1,"aria-disabled":true})),r&&v.createElement(w,{className:S.icon,icon:r,isActive:b}),s&&v.createElement("span",null,s),y&&v.createElement(Pe,{size:"tiny",isActive:b}));return s||(C=v.createElement("div",null,v.createElement(Tooltip,{content:n,placement:"bottom",showDelay:600,usePortal:true},C))),q?v.createElement(H,{trigger:C,testId:x,onOpen:A,onClose:u},l):C}var Mo=e=>!!e.children;Fe.displayName="NavbarItem";var ne=v.forwardRef(Fe);var J=({estimatedWidth:e})=>{let o=We();return v.createElement(SkeletonContainer,{className:o.itemSkeleton,svgWidth:e,svgHeight:28,backgroundColor:a.gray300,foregroundColor:a.gray200},v.createElement(SkeletonText,{lineHeight:18,numberOfLines:1,offsetTop:2,radiusX:a.borderRadiusSmall,radiusY:a.borderRadiusSmall}))};J.displayName="NavbarItemSkeleton";var Ve=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Lo="button";function Bo(e,o){let g=e,{as:t=Lo,icon:r,title:n,className:s}=g,l=N(g,["as","icon","title","className"]),c=Ve(),b=Wo(e);return v.createElement(Menu.Item,d(p({},l),{ref:o,as:t,className:cx(c.navbarMenuItem,s)}),r?v.createElement(w,{icon:r}):b&&_e,v.createElement("span",null,n),r&&b?_e:null)}var _e=v.createElement(w,{icon:v.createElement(ArrowSquareOutIcon,null)}),Wo=e=>e.as==="a"&&e.target==="_blank",ie=v.forwardRef(Bo);var se=({ariaLabel:e})=>v.createElement(Menu.Item,null,v.createElement(Flex,{alignItems:"center",gap:a.spacingXs},v.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},v.createElement(SkeletonImage,{width:16,height:16})),v.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},v.createElement(SkeletonBodyText,{numberOfLines:1}))));var _=1,Re=e=>({navbarSwitcher:({showSpaceEnv:o})=>css({color:a.gray600,flexShrink:1,fontWeight:a.fontWeightMedium,maxWidth:"50vw",minHeight:"unset",padding:`${a.spacing2Xs} ${a.spacingXs}`,"&:hover":{backgroundColor:hexToRGBA(a.gray900,.05)},[i.xsmall]:{maxWidth:"45vw"},[i.medium]:{maxWidth:"35vw"},[i.large]:{maxWidth:"25vw"},[i.xlarge]:{maxWidth:"600px"}},o&&Do(e),B(),W()),switcherWrapper:({showSpaceEnv:o})=>css({gap:a.spacingXs,alignItems:"center",minWidth:0,"&:has(> span:last-child:nth-child(3))":{minWidth:"12ch"},"&:before":css(d(p({content:'""',position:"absolute",display:"block",width:`calc(8px - ${_}px)`,height:o?"26px":"unset",borderTopLeftRadius:`calc(${a.borderRadiusMedium} - ${_}px)`,borderBottomLeftRadius:`calc(${a.borderRadiusMedium} - ${_}px)`},Ro(e)),{backgroundPosition:"bottom"}))}),switcherLabelWrapper:css({height:"26px",paddingLeft:`calc(${a.spacingXs} * 2)`,alignItems:"center",gap:a.spacing2Xs,maxWidth:"100%"}),switcherLabel:css({color:"currentcolor",fontWeight:"inherit",lineHeight:"unset",display:"inline-block",flexShrink:1,minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),switcherCaret:css({flexShrink:0,minWidth:0}),switcherEnvIcon:css({minWidth:"0",[i.small]:{width:"16px",height:"16px"}})}),Xe=e=>{switch(e){case "trial":return a.purple700;case "non-master":return a.orange700;default:return a.green700}},Do=e=>{let o={padding:"0",paddingRight:a.spacingXs};switch(e){case "trial":return d(p({},o),{color:a.purple700,backgroundColor:a.purple100,border:`${_}px solid ${a.purple400}`,"&:hover, &:active":{backgroundColor:a.purple200}});case "non-master":return d(p({},o),{color:a.orange700,backgroundColor:a.orange100,border:`${_}px solid ${a.orange400}`,"&:hover, &:active":{backgroundColor:a.orange200}});default:return d(p({},o),{color:a.green700,backgroundColor:a.green100,border:`${_}px solid ${a.green400}`,"&:hover, &:active":{backgroundColor:a.green200}})}},Ro=e=>{switch(e){case "trial":return {background:a.purple300};case "non-master":return {background:`linear-gradient(
|
|
2
2
|
-45deg,
|
|
3
3
|
${a.orange300} 28.57%,
|
|
4
4
|
transparent 28.57%,
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/constants.ts","../../src/utils.styles.ts","../../src/Navbar.styles.ts","../../src/icons/CaretIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../src/NavbarMenu/NavbarMenu.styles.ts","../../src/NavbarMenu/NavbarMenu.tsx","../../src/Navbar.tsx","../../src/NavbarAccount/NavbarAccount.styles.ts","../../src/NavbarAccount/NavbarAccount.tsx","../../src/NavbarAccount/NavbarAccountSkeleton.tsx","../../src/NavbarItem/NavbarItem.styles.ts","../../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../../src/NavbarItemIcon/NavbarItemIcon.tsx","../../src/NavbarItem/NavbarItem.tsx","../../src/NavbarItem/NavbarItemSkeleton.tsx","../../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../../src/NavbarMenuItem/NavbarMenuItem.tsx","../../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../../src/NavbarSwitcher/NavbarEnvVariant.tsx","../../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../../src/NavbarSwitcher/NavbarSwitcher.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarSubmenu/NavbarMenu.styles.ts","../../src/NavbarSubmenu/NavbarSubmenu.tsx","../../src/CompoundNavbar.ts"],"names":["NAVBAR_HEIGHT","mqs","getGlowOnFocusStyles","shadow","tokens","css","increaseHitArea","minSize","getNavbarStyles","contentMaxWidth","variant","mobileNavigationBp","CaretIcon","generateComponentWithVariants","IconVariant","generateIconComponent","React","ContentfulLogoIcon","getNavbarMenuStyles","NavbarMenu","props","trigger","children","testId","onOpen","onClose","styles","Menu","_Navbar","ref","_a","logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","aria","otherProps","__objRest","Flex","__spreadProps","__spreadValues","cx","Button","ListIcon","Navbar","notificationVarianColorMap","getNavbarAccountStyles","NavbarAccountBase","avatar","label","initials","username","hasNotification","notificationVariant","Tooltip","Avatar","NavbarAccount","NavbarAccountSkeleton","ariaLabel","SkeletonContainer","SkeletonImage","borderWidth","getNavbarItemActiveStyles","getNavbarItemDisabledStyles","commonItemStyles","getNavbarItemStyles","hasTitle","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","iconClassName","size","rest","NAVBAR_ITEM_DEFAULT_TAG","NavbarItemBase","Comp","title","isDisabled","isMenuTrigger","isNavbarItemHasMenu","showCaret","item","NavbarItem","NavbarItemSkeleton","estimatedWidth","SkeletonText","getNavbarMenuItemStyles","NAVBAR_MENU_ITEM_DEFAULT_TAG","NavbarMenuItemBase","itemIsExternalLink","isExternalLink","externalIcon","ArrowSquareOutIcon","NavbarMenuItem","NavbarMenuItemSkeleton","SkeletonBodyText","BORDER_WIDTH","getNavbarSwitcherStyles","showSpaceEnv","hexToRGBA","getEnvVariantColor","getWrapperBackground","getNavbarIconColor","sharedStyles","NavbarEnvVariant","isAlias","envVariant","FlaskIcon","isMaster","color","RocketLaunchIcon","EnvironmentAliasIcon","EnvironmentIcon","NavbarSwitcherSkeleton","NavbarSwitcherBase","space","environment","isLoading","Text","CaretRightIcon","NavbarSwitcher","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","NavbarBadgeBase","NavbarBadge","getNavbarSubmenuStyles","NavbarSubmenu","MenuDivider","MenuSectionTitle"],"mappings":"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","file":"index.js","sourcesContent":["export const NAVBAR_HEIGHT = 60;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\ntype screens = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\n\nexport const mqs: mediaqueries = {\n xsmall: '@media (min-width: 576px)',\n small: '@media (min-width: 867px)',\n medium: '@media (min-width: 1024px)',\n large: '@media (min-width: 1200px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) =>\n css({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n });\n\nexport const increaseHitArea = (minSize = '44px') =>\n css({\n overflow: 'visible',\n position: 'relative',\n '&:after': {\n minHeight: minSize,\n minWidth: minSize,\n position: 'absolute',\n width: '100%',\n content: '\"\"',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n });\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from './utils.styles';\nimport { NavbarProps } from './Navbar';\nimport { NAVBAR_HEIGHT } from './constants';\n\nexport const getNavbarStyles = ({\n contentMaxWidth,\n variant,\n}: Pick<NavbarProps, 'contentMaxWidth' | 'variant'>) => ({\n container: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n width: '100%',\n }),\n logo: css({\n display: 'none',\n [mqs.small]: {\n display: 'block',\n height: '28px',\n width: '28px',\n },\n }),\n\n navigation: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1920px' : contentMaxWidth,\n padding: `${tokens.spacingS} ${tokens.spacingM}`,\n height: `${NAVBAR_HEIGHT}px`,\n [mqs.small]: {\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n },\n }),\n\n mainNavigation: (mobileNavigationBp: 'small' | 'medium') =>\n css(\n {\n display: 'none',\n },\n mobileNavigationBp === 'small'\n ? {\n [mqs.small]: {\n display: 'flex',\n },\n }\n : {\n [mqs.medium]: {\n display: 'flex',\n },\n },\n ),\n\n mobileNavigationButton: (mobileNavigationBp: 'small' | 'medium') =>\n css(\n {\n display: 'flex',\n minHeight: 'initial', // unset default 40px height\n height: '36px',\n padding: '0 12px',\n borderRadius: '10px',\n },\n mobileNavigationBp === 'small'\n ? {\n [mqs.small]: {\n display: 'none',\n },\n }\n : {\n [mqs.medium]: {\n display: 'none',\n },\n },\n ),\n mobileNavigationIcon: css({\n heigt: '20px',\n width: '20px',\n }),\n\n secondaryNavigationWrapper: css({\n '> *:not(:first-child)': {\n display: 'none',\n [mqs.xsmall]: {\n display: 'flex',\n },\n },\n }),\n promoNavigationWrapper: css({\n display: 'none',\n [mqs.large]: {\n display: 'flex',\n },\n }),\n account: css({\n display: 'none',\n [mqs.xsmall]: {\n display: 'flex',\n },\n }),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import { css } from '@emotion/css';\nimport { mqs } from '../utils.styles';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: 0,\n [mqs.xsmall]: {\n minWidth: '250px',\n },\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarMenuStyles } from './NavbarMenu.styles';\n\nexport type NavbarMenuProps = {\n trigger: React.ReactElement<Record<string, unknown>, React.ElementType>;\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarMenu = (props: NavbarMenuProps) => {\n const {\n trigger,\n children,\n testId = 'cf-ui-navbar-menu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarMenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.Trigger>{trigger}</Menu.Trigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { type CommonProps, type ExpandProps, Flex } from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\nimport { cx } from '@emotion/css';\nimport { Button } from '@contentful/f36-button';\nimport { ListIcon } from '@contentful/f36-icons';\nimport { NavbarMenu } from './NavbarMenu/NavbarMenu';\n\ntype NavbarOwnProps = CommonProps & {\n /**\n * Accepts a React Component that will be displayed\n * instead of the Contentful Logo\n */\n logo?: React.ReactNode;\n\n /** Promotions component, displayed on most left side */\n promotions?: React.ReactNode;\n\n /** Environment Switcher component */\n switcher?: React.ReactNode;\n\n /** Main Navigation Elements */\n mainNavigation?: React.ReactNode;\n\n /** Secondary Navigation Elements, displayed in the right side */\n secondaryNavigation?: React.ReactNode;\n\n /** User Account Component */\n account?: React.ReactNode;\n\n /** Navigation displayed on mobile versions */\n mobileNavigation?: React.ReactNode;\n\n mobileNavigationProps?: {\n /** breakpoint to determine when to show the mobile navigation */\n breakpoint?: 'small' | 'medium';\n\n /**\n * label of the mobile navigation trigger button\n * @default 'Menu'\n */\n label?: string;\n };\n\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n\n /**\n * Describes the size variation of the Navbar\n * Variant wide will set the contentMaxWidth to 1524px\n */\n variant?: 'wide' | 'fullscreen';\n\n /**\n * aria labels for different areas of the navigation bar\n */\n aria?: {\n labelMainNavigation?: string;\n labelSecondaryNavigation?: string;\n labelPromotions?: string;\n labelAccount?: string;\n };\n};\n\n// expose only the HTML props that are needed to not pollute the API\ntype NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;\n\nexport type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;\n\nfunction _Navbar(props: ExpandProps<NavbarProps>, ref: React.Ref<HTMLElement>) {\n const {\n logo,\n promotions,\n switcher,\n mainNavigation,\n secondaryNavigation,\n account,\n mobileNavigation,\n mobileNavigationProps = { breakpoint: 'small', label: 'Menu' },\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\n aria = {\n labelMainNavigation: 'Main Navigation',\n labelSecondaryNavigation: 'Secondary Navigation',\n labelPromotions: 'Promotions',\n labelAccount: 'Account Navigation',\n },\n ...otherProps\n } = props;\n const styles = getNavbarStyles({ contentMaxWidth, variant });\n\n return (\n <Flex\n {...otherProps}\n ref={ref}\n testId={testId}\n className={cx(styles.container, className)}\n as=\"header\"\n >\n <Flex\n as=\"nav\"\n className={styles.navigation}\n justifyContent=\"space-between\"\n gap=\"spacingXs\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {mobileNavigation && (\n <NavbarMenu\n trigger={\n <Button\n className={styles.mobileNavigationButton(\n mobileNavigationProps.breakpoint,\n )}\n startIcon={<ListIcon size=\"medium\" />}\n >\n {mobileNavigationProps.label}\n </Button>\n }\n >\n {mobileNavigation}\n </NavbarMenu>\n )}\n {mainNavigation && (\n <Flex\n className={styles.mainNavigation(\n mobileNavigationProps.breakpoint,\n )}\n aria-label={aria.labelMainNavigation}\n gap=\"spacingXs\"\n >\n {mainNavigation}\n </Flex>\n )}\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n <Flex\n alignItems=\"center\"\n className={styles.promoNavigationWrapper}\n aria-label={aria.labelPromotions}\n gap=\"spacingXs\"\n >\n {promotions}\n </Flex>\n <Flex alignItems=\"center\">{switcher}</Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation && (\n <Flex\n className={styles.secondaryNavigationWrapper}\n aria-label={aria.labelSecondaryNavigation}\n gap=\"spacingXs\"\n >\n {secondaryNavigation}\n </Flex>\n )}\n {account && (\n <Flex\n className={styles.account}\n aria-label={aria.labelAccount}\n gap=\"spacingXs\"\n >\n {account}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n );\n}\n\nexport const Navbar = React.forwardRef(_Navbar);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { NavbarAccountProps } from './NavbarAccount';\nimport { getGlowOnFocusStyles, increaseHitArea } from '../utils.styles';\n\nconst notificationVarianColorMap: Record<\n NavbarAccountProps['notificationVariant'],\n string\n> = {\n warning: tokens.colorWarning,\n negative: tokens.colorNegative,\n info: tokens.blue500,\n};\n\nexport const getNavbarAccountStyles = () => ({\n navbarAccount: css(\n {\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n border: 'none',\n padding: 0,\n '&:hover img': {\n filter: 'brightness(0.9)',\n },\n },\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n notificationIcon: (variant: NavbarAccountProps['notificationVariant']) =>\n css({\n position: 'absolute',\n top: 0,\n right: 0,\n height: tokens.spacingS,\n width: tokens.spacingS,\n borderRadius: '50%',\n border: `2px solid ${tokens.gray100}`,\n backgroundColor: notificationVarianColorMap[variant],\n transform: 'translate(30%, -30%)',\n zIndex: 1, // move above the avatar\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Flex } from '@contentful/f36-core';\nimport { Avatar } from '@contentful/f36-avatar';\nimport { Tooltip } from '@contentful/f36-tooltip';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\n label?: string;\n /**\n * @default 'warning'\n */\n notificationVariant?: 'warning' | 'negative' | 'info';\n};\n\nexport type NavbarAccountProps = PropsWithHTMLElement<\n NavbarAccountOwnProps,\n 'button'\n>;\n\nfunction NavbarAccountBase(\n props: ExpandProps<NavbarAccountProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-account-trigger',\n avatar,\n label = 'Account menu',\n initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\n <div>\n <Tooltip placement=\"bottom\" content={label} showDelay={600} usePortal>\n <Flex\n as=\"button\"\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarAccount, className)}\n testId={testId}\n alignItems=\"center\"\n aria-label={label}\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n\n {hasNotification ? (\n <span\n className={styles.notificationIcon(notificationVariant)}\n />\n ) : null}\n </Flex>\n </Tooltip>\n </div>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nNavbarAccountBase.displayName = 'NavbarAccount';\nexport const NavbarAccount = React.forwardRef(NavbarAccountBase);\n","import React from 'react';\nimport { SkeletonContainer, SkeletonImage } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport function NavbarAccountSkeleton({ ariaLabel }: { ariaLabel?: string }) {\n return (\n <SkeletonContainer\n svgWidth={24}\n svgHeight={24}\n ariaLabel={ariaLabel}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonImage width={24} height={24} radiusX={12} radiusY={12} />\n </SkeletonContainer>\n );\n}\n\nNavbarAccountSkeleton.displayName = 'NavbarAccountSkeletton';\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles, increaseHitArea, mqs } from '../utils.styles';\n\nconst borderWidth = '1px';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `${borderWidth} solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:focus,&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nexport const getNavbarItemDisabledStyles = () =>\n css({\n border: 'none',\n opacity: 0.5,\n pointerEvents: 'none',\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `calc(${tokens.spacing2Xs} - ${borderWidth}) calc(${tokens.spacingXs} - ${borderWidth})`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = ({ hasTitle }: { hasTitle: boolean }) => ({\n navbarItem: css(\n commonItemStyles,\n {\n appearance: 'none',\n background: 'none',\n outline: 'none',\n border: `${borderWidth} solid transparent`,\n margin: 0,\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightM,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n textAlign: 'left',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n hyphens: 'auto',\n textDecoration: 'none',\n color: tokens.gray800,\n boxSizing: 'border-box',\n transition: `color ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n borderRadius: tokens.borderRadiusMedium,\n height: '30px',\n\n padding: hasTitle\n ? `${tokens.spacing2Xs} ${tokens.spacingXs}`\n : `calc(${tokens.spacing2Xs} - ${borderWidth})`, // square button for icon-only items\n\n '&:focus, &:hover': {\n backgroundColor: tokens.gray200,\n },\n\n '&:active': getNavbarItemActiveStyles(),\n\n '&:disabled': {\n cursor: 'auto',\n },\n\n '& svg': {\n transition: `fill ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n },\n '& > svg, & > span': {\n zIndex: tokens.zIndexDefault,\n },\n },\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n isActive: getNavbarItemActiveStyles(),\n isDisabled: getNavbarItemDisabledStyles(),\n icon: css({\n height: '20px',\n width: '20px',\n boxSizing: 'content-box',\n display: hasTitle ? 'none' : 'block',\n [mqs.small]: {\n height: '16px',\n width: '16px',\n padding: hasTitle ? '2px 0' : '2px', // square for icon-only items\n },\n [mqs.large]: {\n display: 'block',\n },\n }),\n});\n\nexport const getNavbarItemSkeletonStyles = () => ({\n itemSkeleton: css(commonItemStyles),\n});\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n '&:last-child&:not(:only-child)': {\n marginLeft: tokens.spacing2Xs,\n },\n 'img&': {\n borderRadius: tokens.borderRadiusSmall,\n maxWidth: tokens.spacingM,\n maxHeight: tokens.spacingM,\n },\n }),\n});\n","import React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from '@emotion/css';\n\nexport type NavbarItemIconProps = {\n icon: React.ReactElement<IconProps>;\n className?: string;\n} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({\n icon,\n isActive,\n className,\n}: NavbarItemIconProps) => {\n const { className: iconClassName, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(iconClassName, styles.navbarItemIcon, className),\n size: size || 'small',\n isActive,\n ...rest,\n });\n};\n\nNavbarItemIcon.displayName = 'NavbarItemIcon';\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarItemStyles } from './NavbarItem.styles';\nimport { NavbarMenu, type NavbarMenuProps } from '../NavbarMenu/NavbarMenu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { CaretIcon } from '../icons';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\nimport { Tooltip } from '@contentful/f36-tooltip';\n\nconst NAVBAR_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarItemTriggerProps = CommonProps & {\n label?: string;\n title?: string;\n icon?: NavbarItemIconProps['icon'];\n isActive?: boolean;\n as?: React.ElementType;\n isDisabled?: boolean;\n};\n\ntype NavbarItemAsMenuProps = NavbarItemTriggerProps &\n Pick<NavbarMenuProps, 'onOpen' | 'onClose'> & {\n children: React.ReactNode;\n };\ntype NavbarItemAsItemProps = NavbarItemTriggerProps & {\n children?: never;\n onOpen?: never;\n onClose?: never;\n};\ntype NavbarItemOwnProps = NavbarItemAsItemProps | NavbarItemAsMenuProps;\n\nexport type NavbarItemProps<\n E extends React.ElementType = typeof NAVBAR_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarItemOwnProps, E>;\n\nfunction NavbarItemBase(\n props: NavbarItemProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_ITEM_DEFAULT_TAG,\n icon,\n label,\n title,\n children,\n className,\n isActive,\n isDisabled,\n testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles({ hasTitle: !!title });\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const showCaret = title && isMenuTrigger;\n let item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(styles.navbarItem, className, {\n [styles.isActive]: isActive && !isDisabled,\n [styles.isDisabled]: isDisabled,\n })}\n {...(!title && { 'aria-label': label })}\n {...(isDisabled &&\n (Comp === NAVBAR_ITEM_DEFAULT_TAG\n ? { disabled: true }\n : { tabIndex: -1, 'aria-disabled': true }))}\n >\n {icon && (\n <NavbarItemIcon\n className={styles.icon}\n icon={icon}\n isActive={isActive}\n />\n )}\n {title && <span>{title}</span>}\n {showCaret && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\n );\n\n if (!title) {\n item = (\n <div>\n <Tooltip content={label} placement=\"bottom\" showDelay={600} usePortal>\n {item}\n </Tooltip>\n </div>\n );\n }\n\n if (isMenuTrigger) {\n return (\n <NavbarMenu\n trigger={item}\n testId={testId}\n onOpen={onOpen}\n onClose={onClose}\n >\n {children}\n </NavbarMenu>\n );\n }\n\n return item;\n}\n\nconst isNavbarItemHasMenu = <E extends React.ElementType>(\n props: NavbarItemProps<E>,\n): props is PolymorphicProps<NavbarItemAsMenuProps, E> =>\n Boolean(props.children);\n\nNavbarItemBase.displayName = 'NavbarItemBase';\nexport const NavbarItem = React.forwardRef(\n NavbarItemBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n>;\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\nimport { getNavbarItemSkeletonStyles } from './NavbarItem.styles';\n\nexport const NavbarItemSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => {\n const styles = getNavbarItemSkeletonStyles();\n\n return (\n <SkeletonContainer\n className={styles.itemSkeleton}\n svgWidth={estimatedWidth}\n svgHeight={28}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={18}\n numberOfLines={1}\n offsetTop={2}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n );\n};\n\nNavbarItemSkeleton.displayName = 'NavbarItemSkeleton';\n","import { css } from '@emotion/css';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarMenuItemStyles } from './NavbarMenuItem.styles';\nimport { Menu, type MenuItemProps } from '@contentful/f36-menu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { ArrowSquareOutIcon } from '@contentful/f36-icons';\nimport type {\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_MENU_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarMenuItemOwnProps = {\n children?: null;\n title: string;\n icon?: NavbarItemIconProps['icon'];\n as?: React.ElementType;\n} & Omit<MenuItemProps, 'children' | 'as'>;\n\nexport type NavbarMenuItemProps<\n E extends React.ElementType = typeof NAVBAR_MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarMenuItemOwnProps, E>;\n\nfunction NavbarMenuItemBase(\n props: NavbarMenuItemProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_MENU_ITEM_DEFAULT_TAG,\n icon,\n title,\n className,\n ...otherProps\n } = props;\n const styles = getNavbarMenuItemStyles();\n\n const itemIsExternalLink = isExternalLink(\n props as unknown as NavbarMenuItemProps<'a'>,\n );\n\n return (\n <Menu.Item\n {...otherProps}\n ref={ref}\n as={Comp as MenuItemProps['as']}\n className={cx(styles.navbarMenuItem, className)}\n >\n {icon ? (\n <NavbarItemIcon icon={icon} />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = <NavbarItemIcon icon={<ArrowSquareOutIcon />} />;\n\nconst isExternalLink = (props: NavbarMenuItemProps<'a'>) =>\n props.as === 'a' && props.target === '_blank';\n\nexport const NavbarMenuItem = React.forwardRef(\n NavbarMenuItemBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n>;\n","import React from 'react';\nimport { Menu } from '@contentful/f36-menu';\nimport {\n SkeletonBodyText,\n SkeletonContainer,\n SkeletonImage,\n} from '@contentful/f36-skeleton';\nimport { Flex } from '@contentful/f36-core';\n\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarMenuItemSkeleton = ({\n ariaLabel,\n}: {\n ariaLabel?: string;\n}) => (\n <Menu.Item>\n <Flex alignItems=\"center\" gap={tokens.spacingXs}>\n <SkeletonContainer svgHeight={16} svgWidth={18}>\n <SkeletonImage width={16} height={16} />\n </SkeletonContainer>\n <SkeletonContainer svgHeight={16} svgWidth={190} ariaLabel={ariaLabel}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n </Flex>\n </Menu.Item>\n);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nimport { getGlowOnFocusStyles, increaseHitArea, mqs } from '../utils.styles';\nimport { EnvVariant } from './NavbarSwitcher';\n\nconst BORDER_WIDTH = 1;\n\nexport const getNavbarSwitcherStyles = (variant: EnvVariant) => ({\n navbarSwitcher: ({ showSpaceEnv }: { showSpaceEnv: boolean }) =>\n css(\n {\n color: tokens.gray600,\n flexShrink: 1,\n fontWeight: tokens.fontWeightMedium,\n\n maxWidth: '50vw',\n minHeight: 'unset',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n [mqs.xsmall]: {\n maxWidth: '45vw',\n },\n [mqs.medium]: {\n maxWidth: '35vw',\n },\n [mqs.large]: {\n maxWidth: '25vw',\n },\n [mqs.xlarge]: {\n maxWidth: '600px',\n },\n },\n showSpaceEnv && getEnvVariantColor(variant),\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n switcherWrapper: ({ showSpaceEnv }: { showSpaceEnv: boolean }) =>\n css({\n // Set min-width only when there are three span children\n gap: tokens.spacingXs,\n alignItems: 'center',\n minWidth: 0,\n '&:has(> span:last-child:nth-child(3))': {\n minWidth: '12ch',\n },\n '&:before': css({\n content: '\"\"',\n position: 'absolute',\n display: 'block',\n width: `calc(8px - ${BORDER_WIDTH}px)`,\n height: showSpaceEnv ? '26px' : 'unset',\n borderTopLeftRadius: `calc(${tokens.borderRadiusMedium} - ${BORDER_WIDTH}px)`,\n borderBottomLeftRadius: `calc(${tokens.borderRadiusMedium} - ${BORDER_WIDTH}px)`,\n ...getWrapperBackground(variant),\n backgroundPosition: 'bottom',\n }),\n }),\n\n switcherLabelWrapper: css({\n height: '26px',\n paddingLeft: `calc(${tokens.spacingXs} * 2)`,\n alignItems: 'center',\n gap: tokens.spacing2Xs,\n maxWidth: '100%',\n }),\n\n switcherLabel: css({\n color: 'currentcolor',\n fontWeight: 'inherit',\n lineHeight: 'unset',\n display: 'inline-block',\n flexShrink: 1,\n minWidth: '0',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n\n switcherCaret: css({\n flexShrink: 0,\n minWidth: 0,\n }),\n\n switcherEnvIcon: css({\n minWidth: '0',\n [mqs.small]: {\n width: '16px',\n height: '16px',\n },\n }),\n});\n\nexport const getNavbarIconColor = (variant: EnvVariant) => {\n switch (variant) {\n case 'trial':\n return tokens.purple700;\n case 'non-master':\n return tokens.orange700;\n default:\n // Default to master variant\n return tokens.green700;\n }\n};\n\nconst getEnvVariantColor = (variant: EnvVariant) => {\n const sharedStyles = {\n padding: '0',\n paddingRight: tokens.spacingXs,\n };\n\n switch (variant) {\n case 'trial':\n return {\n ...sharedStyles,\n color: tokens.purple700,\n backgroundColor: tokens.purple100,\n border: `${BORDER_WIDTH}px solid ${tokens.purple400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.purple200,\n },\n };\n case 'non-master':\n return {\n ...sharedStyles,\n color: tokens.orange700,\n backgroundColor: tokens.orange100,\n border: `${BORDER_WIDTH}px solid ${tokens.orange400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.orange200,\n },\n };\n default:\n // Default to master variant\n return {\n ...sharedStyles,\n color: tokens.green700,\n backgroundColor: tokens.green100,\n border: `${BORDER_WIDTH}px solid ${tokens.green400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.green200,\n },\n };\n }\n};\n\nconst getWrapperBackground = (variant: EnvVariant) => {\n switch (variant) {\n case 'trial':\n return {\n background: tokens.purple300,\n };\n case 'non-master':\n return {\n background: `linear-gradient(\n -45deg,\n ${tokens.orange300} 28.57%,\n transparent 28.57%,\n transparent 50%,\n ${tokens.orange300} 50%,\n ${tokens.orange300} 78.57%,\n transparent 78.57%,\n transparent 100%\n )`,\n backgroundSize: '9px 9px',\n };\n default:\n // Default to master variant\n return {\n background: tokens.green300,\n };\n }\n};\n","import React from 'react';\nimport { NavbarSwitcherProps } from '../NavbarSwitcher/NavbarSwitcher';\nimport {\n EnvironmentAliasIcon,\n EnvironmentIcon,\n FlaskIcon,\n RocketLaunchIcon,\n} from '@contentful/f36-icons';\nimport tokens from '@contentful/f36-tokens';\n\nexport type NavbarEnvVariantProps = Pick<\n NavbarSwitcherProps,\n 'isAlias' | 'envVariant'\n> & {\n className?: string;\n};\n\nexport function NavbarEnvVariant({\n isAlias,\n envVariant,\n className,\n}: NavbarEnvVariantProps) {\n if (envVariant === 'trial') {\n return (\n <FlaskIcon color={tokens.purple700} className={className} size=\"medium\" />\n );\n }\n\n const isMaster = envVariant === 'master';\n const color = isMaster ? tokens.green700 : tokens.orange700;\n\n if (isMaster) {\n return (\n <RocketLaunchIcon color={color} className={className} size=\"medium\" />\n );\n } else if (isAlias) {\n return (\n <EnvironmentAliasIcon color={color} className={className} size=\"medium\" />\n );\n }\n\n return <EnvironmentIcon color={color} className={className} size=\"medium\" />;\n}\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarSwitcherSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => (\n <SkeletonContainer\n svgWidth={estimatedWidth}\n svgHeight={18}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={18}\n numberOfLines={1}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport {\n getNavbarIconColor,\n getNavbarSwitcherStyles,\n} from './NavbarSwitcher.styles';\nimport { Button } from '@contentful/f36-button';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from '@emotion/css';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport { NavbarSwitcherSkeleton } from './NavbarSwitcherSkeleton';\nimport { CaretRightIcon } from '@contentful/f36-icons';\nimport { Text } from '@contentful/f36-typography';\n\nexport type EnvVariant = 'master' | 'non-master' | 'trial';\n\ntype NavbarLoadingProps =\n | {\n isLoading?: true;\n children?: React.ReactNode;\n environment?: never;\n space?: never;\n }\n | {\n isLoading?: false;\n children?: never;\n environment?: string;\n space?: string;\n };\n\ntype NavbarSwitcherOwnProps = CommonProps &\n NavbarLoadingProps & {\n envVariant?: EnvVariant;\n isAlias?: boolean;\n ariaLabel?: string;\n };\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction NavbarSwitcherBase(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher',\n ariaLabel = 'Space and Environment Navigation',\n space,\n environment,\n isLoading,\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles(envVariant);\n\n return (\n <Button\n {...otherProps}\n aria-label={ariaLabel}\n className={cx(\n styles.navbarSwitcher({ showSpaceEnv: !isLoading && !children }),\n className,\n )}\n endIcon={\n envVariant && (\n <NavbarEnvVariant\n envVariant={envVariant}\n isAlias={isAlias}\n className={styles.switcherEnvIcon}\n />\n )\n }\n ref={ref}\n testId={testId}\n variant=\"transparent\"\n >\n <Flex\n className={styles.switcherWrapper({\n showSpaceEnv: !isLoading && !children,\n })}\n >\n {isLoading ? (\n <NavbarSwitcherSkeleton estimatedWidth={148} />\n ) : (\n <>\n {children ? (\n <Text className={styles.switcherLabel}>{children}</Text>\n ) : (\n <Flex className={styles.switcherLabelWrapper}>\n <Text className={styles.switcherLabel}>{space}</Text>\n {environment && (\n <>\n <Flex className={styles.switcherCaret}>\n <CaretRightIcon\n size=\"tiny\"\n color={getNavbarIconColor(envVariant)}\n />\n </Flex>\n <Text className={styles.switcherLabel}>{environment}</Text>\n </>\n )}\n </Flex>\n )}\n </>\n )}\n </Flex>\n </Button>\n );\n}\n\nNavbarSwitcherBase.displayName = 'NavbarSwitcher';\nexport const NavbarSwitcher = React.forwardRef(NavbarSwitcherBase);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarBadgeStyles = () => ({\n navbarBadge: css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'none',\n border: `1px solid ${tokens.purple600}`,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeS,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n textAlign: 'center',\n padding: `0 ${tokens.spacingXs}`,\n textDecoration: 'none',\n color: `${tokens.purple600}!important`,\n borderRadius: '1.75rem',\n userSelect: 'none',\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarBadgeStyles } from './NavbarBadge.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'div';\n\ntype NavbarBadgeOwnProps = CommonProps & {\n children?: React.ReactNode;\n as?: React.ElementType;\n};\n\nexport type NavbarBadgeProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarBadgeOwnProps, E>;\n\nfunction NavbarBadgeBase(\n props: NavbarBadgeProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-badge',\n ...otherProps\n } = props;\n const styles = getNavbarBadgeStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarBadge, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nNavbarBadgeBase.displayName = 'NavbarBadge';\nexport const NavbarBadge = React.forwardRef(\n NavbarBadgeBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n>;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\nimport { mqs } from '../utils.styles';\n\nexport const getNavbarSubmenuStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n gap: tokens.spacingXs,\n }),\n menuList: css({\n minWidth: 0,\n marginLeft: '-24px',\n marginTop: '10px',\n [mqs.xsmall]: {\n minWidth: '250px',\n margin: 0,\n },\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarSubmenuStyles } from './NavbarMenu.styles';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { Flex } from '@contentful/f36-core';\n\nexport type NavbarSubmenuProps = {\n title: string;\n icon?: NavbarItemIconProps['icon'];\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarSubmenu = (props: NavbarSubmenuProps) => {\n const {\n title,\n icon,\n children,\n testId = 'cf-ui-navbar-submenu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarSubmenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.SubmenuTrigger>\n <Flex className={styles.navbarMenuItem}>\n {icon && <NavbarItemIcon icon={icon} />}\n <span>{title}</span>\n </Flex>\n </Menu.SubmenuTrigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { MenuDivider } from '@contentful/f36-menu';\nimport { MenuSectionTitle } from '@contentful/f36-menu';\nimport { Navbar as OriginalNavbar } from './Navbar';\n\nimport { NavbarAccount, NavbarAccountSkeleton } from './NavbarAccount';\nimport { NavbarItem, NavbarItemSkeleton } from './NavbarItem';\nimport { NavbarMenuItem, NavbarMenuItemSkeleton } from './NavbarMenuItem';\nimport { NavbarSwitcher, NavbarSwitcherSkeleton } from './NavbarSwitcher';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\nimport { NavbarSubmenu } from './NavbarSubmenu/NavbarSubmenu';\n\ntype CompoundNavbar = typeof OriginalNavbar & {\n Item: typeof NavbarItem;\n ItemSkeleton: typeof NavbarItemSkeleton;\n MenuItem: typeof NavbarMenuItem;\n MenuItemSkeleton: typeof NavbarMenuItemSkeleton;\n MenuDivider: typeof MenuDivider;\n MenuSectionTitle: typeof MenuSectionTitle;\n Submenu: typeof NavbarSubmenu;\n Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n};\n\nexport const Navbar = OriginalNavbar as CompoundNavbar;\nNavbar.Item = NavbarItem;\nNavbar.ItemSkeleton = NavbarItemSkeleton;\nNavbar.MenuItem = NavbarMenuItem;\nNavbar.MenuItemSkeleton = NavbarMenuItemSkeleton;\nNavbar.MenuDivider = MenuDivider;\nNavbar.MenuSectionTitle = MenuSectionTitle;\nNavbar.Submenu = NavbarSubmenu;\nNavbar.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/constants.ts","../../src/utils.styles.ts","../../src/Navbar.styles.ts","../../src/icons/CaretIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../src/NavbarMenu/NavbarMenu.styles.ts","../../src/NavbarMenu/NavbarMenu.tsx","../../src/Navbar.tsx","../../src/NavbarAccount/NavbarAccount.styles.ts","../../src/NavbarAccount/NavbarAccount.tsx","../../src/NavbarAccount/NavbarAccountSkeleton.tsx","../../src/NavbarItem/NavbarItem.styles.ts","../../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../../src/NavbarItemIcon/NavbarItemIcon.tsx","../../src/NavbarItem/NavbarItem.tsx","../../src/NavbarItem/NavbarItemSkeleton.tsx","../../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../../src/NavbarMenuItem/NavbarMenuItem.tsx","../../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../../src/NavbarSwitcher/NavbarEnvVariant.tsx","../../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../../src/NavbarSwitcher/NavbarSwitcher.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarSubmenu/NavbarMenu.styles.ts","../../src/NavbarSubmenu/NavbarSubmenu.tsx","../../src/CompoundNavbar.ts"],"names":["NAVBAR_HEIGHT","mqs","getGlowOnFocusStyles","shadow","tokens","css","increaseHitArea","minSize","getNavbarStyles","contentMaxWidth","variant","mobileNavigationBp","CaretIcon","generateComponentWithVariants","IconVariant","generateIconComponent","React","ContentfulLogoIcon","getNavbarMenuStyles","NavbarMenu","props","trigger","children","testId","onOpen","onClose","styles","Menu","_Navbar","ref","_a","logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","aria","otherProps","__objRest","Flex","__spreadProps","__spreadValues","cx","Button","ListIcon","Navbar","notificationVarianColorMap","getNavbarAccountStyles","NavbarAccountBase","avatar","label","initials","username","hasNotification","notificationVariant","Tooltip","Avatar","NavbarAccount","NavbarAccountSkeleton","ariaLabel","SkeletonContainer","SkeletonImage","borderWidth","getNavbarItemActiveStyles","getNavbarItemDisabledStyles","commonItemStyles","getNavbarItemStyles","hasTitle","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","iconClassName","size","rest","NAVBAR_ITEM_DEFAULT_TAG","NavbarItemBase","Comp","title","isDisabled","isMenuTrigger","isNavbarItemHasMenu","showCaret","item","NavbarItem","NavbarItemSkeleton","estimatedWidth","SkeletonText","getNavbarMenuItemStyles","NAVBAR_MENU_ITEM_DEFAULT_TAG","NavbarMenuItemBase","itemIsExternalLink","isExternalLink","externalIcon","ArrowSquareOutIcon","NavbarMenuItem","NavbarMenuItemSkeleton","SkeletonBodyText","BORDER_WIDTH","getNavbarSwitcherStyles","showSpaceEnv","hexToRGBA","getEnvVariantColor","getWrapperBackground","getNavbarIconColor","sharedStyles","NavbarEnvVariant","isAlias","envVariant","FlaskIcon","isMaster","color","RocketLaunchIcon","EnvironmentAliasIcon","EnvironmentIcon","NavbarSwitcherSkeleton","NavbarSwitcherBase","space","environment","isLoading","Text","CaretRightIcon","NavbarSwitcher","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","NavbarBadgeBase","NavbarBadge","getNavbarSubmenuStyles","NavbarSubmenu","MenuDivider","MenuSectionTitle"],"mappings":"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","file":"index.js","sourcesContent":["export const NAVBAR_HEIGHT = 60;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\ntype screens = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\n\nexport const mqs: mediaqueries = {\n xsmall: '@media (min-width: 576px)',\n small: '@media (min-width: 867px)',\n medium: '@media (min-width: 1024px)',\n large: '@media (min-width: 1200px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) =>\n css({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n });\n\nexport const increaseHitArea = (minSize = '44px') =>\n css({\n overflow: 'visible',\n position: 'relative',\n '&:after': {\n minHeight: minSize,\n minWidth: minSize,\n position: 'absolute',\n width: '100%',\n content: '\"\"',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n });\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from './utils.styles';\nimport { NavbarProps } from './Navbar';\nimport { NAVBAR_HEIGHT } from './constants';\n\nexport const getNavbarStyles = ({\n contentMaxWidth,\n variant,\n}: Pick<NavbarProps, 'contentMaxWidth' | 'variant'>) => ({\n container: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n width: '100%',\n }),\n logo: css({\n display: 'none',\n [mqs.small]: {\n display: 'block',\n height: '28px',\n width: '28px',\n },\n }),\n\n navigation: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1920px' : contentMaxWidth,\n padding: `${tokens.spacingS} ${tokens.spacingM}`,\n height: `${NAVBAR_HEIGHT}px`,\n [mqs.small]: {\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n },\n }),\n\n mainNavigation: (mobileNavigationBp: 'small' | 'medium') =>\n css(\n {\n display: 'none',\n },\n mobileNavigationBp === 'small'\n ? {\n [mqs.small]: {\n display: 'flex',\n },\n }\n : {\n [mqs.medium]: {\n display: 'flex',\n },\n },\n ),\n\n mobileNavigationButton: (mobileNavigationBp: 'small' | 'medium') =>\n css(\n {\n display: 'flex',\n minHeight: 'initial', // unset default 40px height\n height: '36px',\n padding: '0 12px',\n borderRadius: '10px',\n },\n mobileNavigationBp === 'small'\n ? {\n [mqs.small]: {\n display: 'none',\n },\n }\n : {\n [mqs.medium]: {\n display: 'none',\n },\n },\n ),\n mobileNavigationIcon: css({\n heigt: '20px',\n width: '20px',\n }),\n\n secondaryNavigationWrapper: css({\n '> *:not(:first-child)': {\n display: 'none',\n [mqs.xsmall]: {\n display: 'flex',\n },\n },\n }),\n promoNavigationWrapper: css({\n display: 'none',\n [mqs.large]: {\n display: 'flex',\n },\n }),\n account: css({\n display: 'none',\n [mqs.xsmall]: {\n display: 'flex',\n },\n }),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import { css } from '@emotion/css';\nimport { mqs } from '../utils.styles';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: 0,\n [mqs.xsmall]: {\n minWidth: '250px',\n },\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarMenuStyles } from './NavbarMenu.styles';\n\nexport type NavbarMenuProps = {\n trigger: React.ReactElement<Record<string, unknown>, React.ElementType>;\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarMenu = (props: NavbarMenuProps) => {\n const {\n trigger,\n children,\n testId = 'cf-ui-navbar-menu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarMenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.Trigger>{trigger}</Menu.Trigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { type CommonProps, type ExpandProps, Flex } from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\nimport { cx } from '@emotion/css';\nimport { Button } from '@contentful/f36-button';\nimport { ListIcon } from '@contentful/f36-icons';\nimport { NavbarMenu } from './NavbarMenu/NavbarMenu';\n\ntype NavbarOwnProps = CommonProps & {\n /**\n * Accepts a React Component that will be displayed\n * instead of the Contentful Logo\n */\n logo?: React.ReactNode;\n\n /** Promotions component, displayed on most left side */\n promotions?: React.ReactNode;\n\n /** Environment Switcher component */\n switcher?: React.ReactNode;\n\n /** Main Navigation Elements */\n mainNavigation?: React.ReactNode;\n\n /** Secondary Navigation Elements, displayed in the right side */\n secondaryNavigation?: React.ReactNode;\n\n /** User Account Component */\n account?: React.ReactNode;\n\n /** Navigation displayed on mobile versions */\n mobileNavigation?: React.ReactNode;\n\n mobileNavigationProps?: {\n /** breakpoint to determine when to show the mobile navigation */\n breakpoint?: 'small' | 'medium';\n\n /**\n * label of the mobile navigation trigger button\n * @default 'Menu'\n */\n label?: string;\n };\n\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n\n /**\n * Describes the size variation of the Navbar\n * Variant wide will set the contentMaxWidth to 1524px\n */\n variant?: 'wide' | 'fullscreen';\n\n /**\n * aria labels for different areas of the navigation bar\n */\n aria?: {\n labelMainNavigation?: string;\n labelSecondaryNavigation?: string;\n labelPromotions?: string;\n labelAccount?: string;\n };\n};\n\n// expose only the HTML props that are needed to not pollute the API\ntype NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;\n\nexport type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;\n\nfunction _Navbar(props: ExpandProps<NavbarProps>, ref: React.Ref<HTMLElement>) {\n const {\n logo,\n promotions,\n switcher,\n mainNavigation,\n secondaryNavigation,\n account,\n mobileNavigation,\n mobileNavigationProps = { breakpoint: 'small', label: 'Menu' },\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\n aria = {\n labelMainNavigation: 'Main Navigation',\n labelSecondaryNavigation: 'Secondary Navigation',\n labelPromotions: 'Promotions',\n labelAccount: 'Account Navigation',\n },\n ...otherProps\n } = props;\n const styles = getNavbarStyles({ contentMaxWidth, variant });\n\n return (\n <Flex\n {...otherProps}\n ref={ref}\n testId={testId}\n className={cx(styles.container, className)}\n as=\"header\"\n >\n <Flex\n as=\"nav\"\n className={styles.navigation}\n justifyContent=\"space-between\"\n gap=\"spacingXs\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {mobileNavigation && (\n <NavbarMenu\n trigger={\n <Button\n className={styles.mobileNavigationButton(\n mobileNavigationProps.breakpoint,\n )}\n startIcon={<ListIcon size=\"medium\" />}\n >\n {mobileNavigationProps.label}\n </Button>\n }\n >\n {mobileNavigation}\n </NavbarMenu>\n )}\n {mainNavigation && (\n <Flex\n className={styles.mainNavigation(\n mobileNavigationProps.breakpoint,\n )}\n aria-label={aria.labelMainNavigation}\n gap=\"spacingXs\"\n >\n {mainNavigation}\n </Flex>\n )}\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n <Flex\n alignItems=\"center\"\n className={styles.promoNavigationWrapper}\n aria-label={aria.labelPromotions}\n gap=\"spacingXs\"\n >\n {promotions}\n </Flex>\n <Flex alignItems=\"center\">{switcher}</Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation && (\n <Flex\n className={styles.secondaryNavigationWrapper}\n aria-label={aria.labelSecondaryNavigation}\n gap=\"spacingXs\"\n >\n {secondaryNavigation}\n </Flex>\n )}\n {account && (\n <Flex\n className={styles.account}\n aria-label={aria.labelAccount}\n gap=\"spacingXs\"\n >\n {account}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n );\n}\n\nexport const Navbar = React.forwardRef(_Navbar);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { NavbarAccountProps } from './NavbarAccount';\nimport { getGlowOnFocusStyles, increaseHitArea } from '../utils.styles';\n\nconst notificationVarianColorMap: Record<\n NavbarAccountProps['notificationVariant'],\n string\n> = {\n warning: tokens.colorWarning,\n negative: tokens.colorNegative,\n info: tokens.blue500,\n};\n\nexport const getNavbarAccountStyles = () => ({\n navbarAccount: css(\n {\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n border: 'none',\n padding: 0,\n '&:hover img': {\n filter: 'brightness(0.9)',\n },\n },\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n notificationIcon: (variant: NavbarAccountProps['notificationVariant']) =>\n css({\n position: 'absolute',\n top: 0,\n right: 0,\n height: tokens.spacingS,\n width: tokens.spacingS,\n borderRadius: '50%',\n border: `2px solid ${tokens.gray100}`,\n backgroundColor: notificationVarianColorMap[variant],\n transform: 'translate(30%, -30%)',\n zIndex: 1, // move above the avatar\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Flex } from '@contentful/f36-core';\nimport { Avatar } from '@contentful/f36-avatar';\nimport { Tooltip } from '@contentful/f36-tooltip';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\n label?: string;\n /**\n * @default 'warning'\n */\n notificationVariant?: 'warning' | 'negative' | 'info';\n};\n\nexport type NavbarAccountProps = PropsWithHTMLElement<\n NavbarAccountOwnProps,\n 'button'\n>;\n\nfunction NavbarAccountBase(\n props: ExpandProps<NavbarAccountProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-account-trigger',\n avatar,\n label = 'Account menu',\n initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\n <div>\n <Tooltip placement=\"bottom\" content={label} showDelay={600} usePortal>\n <Flex\n as=\"button\"\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarAccount, className)}\n testId={testId}\n alignItems=\"center\"\n aria-label={label}\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n\n {hasNotification ? (\n <span\n className={styles.notificationIcon(notificationVariant)}\n />\n ) : null}\n </Flex>\n </Tooltip>\n </div>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nNavbarAccountBase.displayName = 'NavbarAccount';\nexport const NavbarAccount = React.forwardRef(NavbarAccountBase);\n","import React from 'react';\nimport { SkeletonContainer, SkeletonImage } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport function NavbarAccountSkeleton({ ariaLabel }: { ariaLabel?: string }) {\n return (\n <SkeletonContainer\n svgWidth={24}\n svgHeight={24}\n ariaLabel={ariaLabel}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonImage width={24} height={24} radiusX={12} radiusY={12} />\n </SkeletonContainer>\n );\n}\n\nNavbarAccountSkeleton.displayName = 'NavbarAccountSkeletton';\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles, increaseHitArea, mqs } from '../utils.styles';\n\nconst borderWidth = '1px';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `${borderWidth} solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:focus,&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nexport const getNavbarItemDisabledStyles = () =>\n css({\n border: 'none',\n opacity: 0.5,\n pointerEvents: 'none',\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `calc(${tokens.spacing2Xs} - ${borderWidth}) calc(${tokens.spacingXs} - ${borderWidth})`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = ({ hasTitle }: { hasTitle: boolean }) => ({\n navbarItem: css(\n commonItemStyles,\n {\n appearance: 'none',\n background: 'none',\n outline: 'none',\n border: `${borderWidth} solid transparent`,\n margin: 0,\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightM,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n textAlign: 'left',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n hyphens: 'auto',\n textDecoration: 'none',\n color: tokens.gray800,\n boxSizing: 'border-box',\n transition: `color ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n borderRadius: tokens.borderRadiusMedium,\n height: '30px',\n\n padding: hasTitle\n ? `${tokens.spacing2Xs} ${tokens.spacingXs}`\n : `calc(${tokens.spacing2Xs} - ${borderWidth})`, // square button for icon-only items\n\n '&:focus, &:hover': {\n backgroundColor: tokens.gray200,\n },\n\n '&:active': getNavbarItemActiveStyles(),\n\n '&:disabled': {\n cursor: 'auto',\n },\n\n '& svg': {\n transition: `fill ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n },\n '& > svg, & > span': {\n zIndex: tokens.zIndexDefault,\n },\n },\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n isActive: getNavbarItemActiveStyles(),\n isDisabled: getNavbarItemDisabledStyles(),\n icon: css({\n height: '20px',\n width: '20px',\n boxSizing: 'content-box',\n display: hasTitle ? 'none' : 'block',\n [mqs.small]: {\n height: '16px',\n width: '16px',\n padding: hasTitle ? '2px 0' : '2px', // square for icon-only items\n },\n [mqs.large]: {\n display: 'block',\n },\n }),\n});\n\nexport const getNavbarItemSkeletonStyles = () => ({\n itemSkeleton: css(commonItemStyles),\n});\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n '&:last-child&:not(:only-child)': {\n marginLeft: tokens.spacing2Xs,\n },\n 'img&': {\n borderRadius: tokens.borderRadiusSmall,\n maxWidth: tokens.spacingM,\n maxHeight: tokens.spacingM,\n },\n }),\n});\n","import React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from '@emotion/css';\n\nexport type NavbarItemIconProps = {\n icon: React.ReactElement<IconProps>;\n className?: string;\n} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({\n icon,\n isActive,\n className,\n}: NavbarItemIconProps) => {\n const { className: iconClassName, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(iconClassName, styles.navbarItemIcon, className),\n size: size || 'small',\n isActive,\n ...rest,\n });\n};\n\nNavbarItemIcon.displayName = 'NavbarItemIcon';\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarItemStyles } from './NavbarItem.styles';\nimport { NavbarMenu, type NavbarMenuProps } from '../NavbarMenu/NavbarMenu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { CaretIcon } from '../icons';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\nimport { Tooltip } from '@contentful/f36-tooltip';\n\nconst NAVBAR_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarItemTriggerProps = CommonProps & {\n label?: string;\n title?: string;\n icon?: NavbarItemIconProps['icon'];\n isActive?: boolean;\n as?: React.ElementType;\n isDisabled?: boolean;\n};\n\ntype NavbarItemAsMenuProps = NavbarItemTriggerProps &\n Pick<NavbarMenuProps, 'onOpen' | 'onClose'> & {\n children: React.ReactNode;\n };\ntype NavbarItemAsItemProps = NavbarItemTriggerProps & {\n children?: never;\n onOpen?: never;\n onClose?: never;\n};\ntype NavbarItemOwnProps = NavbarItemAsItemProps | NavbarItemAsMenuProps;\n\nexport type NavbarItemProps<\n E extends React.ElementType = typeof NAVBAR_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarItemOwnProps, E>;\n\nfunction NavbarItemBase(\n props: NavbarItemProps<React.ElementType>,\n ref: React.Ref<HTMLElement>,\n) {\n const {\n as: Comp = NAVBAR_ITEM_DEFAULT_TAG,\n icon,\n label,\n title,\n children,\n className,\n isActive,\n isDisabled,\n testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles({ hasTitle: !!title });\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const showCaret = title && isMenuTrigger;\n let item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(styles.navbarItem, className, {\n [styles.isActive]: isActive && !isDisabled,\n [styles.isDisabled]: isDisabled,\n })}\n {...(!title && { 'aria-label': label })}\n {...(isDisabled &&\n (Comp === NAVBAR_ITEM_DEFAULT_TAG\n ? { disabled: true }\n : { tabIndex: -1, 'aria-disabled': true }))}\n >\n {icon && (\n <NavbarItemIcon\n className={styles.icon}\n icon={icon}\n isActive={isActive}\n />\n )}\n {title && <span>{title}</span>}\n {showCaret && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\n );\n\n if (!title) {\n item = (\n <div>\n <Tooltip content={label} placement=\"bottom\" showDelay={600} usePortal>\n {item}\n </Tooltip>\n </div>\n );\n }\n\n if (isMenuTrigger) {\n return (\n <NavbarMenu\n trigger={item}\n testId={testId}\n onOpen={onOpen}\n onClose={onClose}\n >\n {children}\n </NavbarMenu>\n );\n }\n\n return item;\n}\n\nconst isNavbarItemHasMenu = <E extends React.ElementType>(\n props: NavbarItemProps<E>,\n): props is PolymorphicProps<NavbarItemAsMenuProps, E> =>\n Boolean(props.children);\n\nNavbarItemBase.displayName = 'NavbarItem';\nexport const NavbarItem = React.forwardRef(\n NavbarItemBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n>;\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\nimport { getNavbarItemSkeletonStyles } from './NavbarItem.styles';\n\nexport const NavbarItemSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => {\n const styles = getNavbarItemSkeletonStyles();\n\n return (\n <SkeletonContainer\n className={styles.itemSkeleton}\n svgWidth={estimatedWidth}\n svgHeight={28}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={18}\n numberOfLines={1}\n offsetTop={2}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n );\n};\n\nNavbarItemSkeleton.displayName = 'NavbarItemSkeleton';\n","import { css } from '@emotion/css';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarMenuItemStyles } from './NavbarMenuItem.styles';\nimport { Menu, type MenuItemProps } from '@contentful/f36-menu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { ArrowSquareOutIcon } from '@contentful/f36-icons';\nimport type {\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_MENU_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarMenuItemOwnProps = {\n children?: null;\n title: string;\n icon?: NavbarItemIconProps['icon'];\n as?: React.ElementType;\n} & Omit<MenuItemProps, 'children' | 'as'>;\n\nexport type NavbarMenuItemProps<\n E extends React.ElementType = typeof NAVBAR_MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarMenuItemOwnProps, E>;\n\nfunction NavbarMenuItemBase(\n props: NavbarMenuItemProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_MENU_ITEM_DEFAULT_TAG,\n icon,\n title,\n className,\n ...otherProps\n } = props;\n const styles = getNavbarMenuItemStyles();\n\n const itemIsExternalLink = isExternalLink(\n props as unknown as NavbarMenuItemProps<'a'>,\n );\n\n return (\n <Menu.Item\n {...otherProps}\n ref={ref}\n as={Comp as MenuItemProps['as']}\n className={cx(styles.navbarMenuItem, className)}\n >\n {icon ? (\n <NavbarItemIcon icon={icon} />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = <NavbarItemIcon icon={<ArrowSquareOutIcon />} />;\n\nconst isExternalLink = (props: NavbarMenuItemProps<'a'>) =>\n props.as === 'a' && props.target === '_blank';\n\nexport const NavbarMenuItem = React.forwardRef(\n NavbarMenuItemBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n>;\n","import React from 'react';\nimport { Menu } from '@contentful/f36-menu';\nimport {\n SkeletonBodyText,\n SkeletonContainer,\n SkeletonImage,\n} from '@contentful/f36-skeleton';\nimport { Flex } from '@contentful/f36-core';\n\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarMenuItemSkeleton = ({\n ariaLabel,\n}: {\n ariaLabel?: string;\n}) => (\n <Menu.Item>\n <Flex alignItems=\"center\" gap={tokens.spacingXs}>\n <SkeletonContainer svgHeight={16} svgWidth={18}>\n <SkeletonImage width={16} height={16} />\n </SkeletonContainer>\n <SkeletonContainer svgHeight={16} svgWidth={190} ariaLabel={ariaLabel}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n </Flex>\n </Menu.Item>\n);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nimport { getGlowOnFocusStyles, increaseHitArea, mqs } from '../utils.styles';\nimport { EnvVariant } from './NavbarSwitcher';\n\nconst BORDER_WIDTH = 1;\n\nexport const getNavbarSwitcherStyles = (variant: EnvVariant) => ({\n navbarSwitcher: ({ showSpaceEnv }: { showSpaceEnv: boolean }) =>\n css(\n {\n color: tokens.gray600,\n flexShrink: 1,\n fontWeight: tokens.fontWeightMedium,\n\n maxWidth: '50vw',\n minHeight: 'unset',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n [mqs.xsmall]: {\n maxWidth: '45vw',\n },\n [mqs.medium]: {\n maxWidth: '35vw',\n },\n [mqs.large]: {\n maxWidth: '25vw',\n },\n [mqs.xlarge]: {\n maxWidth: '600px',\n },\n },\n showSpaceEnv && getEnvVariantColor(variant),\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n switcherWrapper: ({ showSpaceEnv }: { showSpaceEnv: boolean }) =>\n css({\n // Set min-width only when there are three span children\n gap: tokens.spacingXs,\n alignItems: 'center',\n minWidth: 0,\n '&:has(> span:last-child:nth-child(3))': {\n minWidth: '12ch',\n },\n '&:before': css({\n content: '\"\"',\n position: 'absolute',\n display: 'block',\n width: `calc(8px - ${BORDER_WIDTH}px)`,\n height: showSpaceEnv ? '26px' : 'unset',\n borderTopLeftRadius: `calc(${tokens.borderRadiusMedium} - ${BORDER_WIDTH}px)`,\n borderBottomLeftRadius: `calc(${tokens.borderRadiusMedium} - ${BORDER_WIDTH}px)`,\n ...getWrapperBackground(variant),\n backgroundPosition: 'bottom',\n }),\n }),\n\n switcherLabelWrapper: css({\n height: '26px',\n paddingLeft: `calc(${tokens.spacingXs} * 2)`,\n alignItems: 'center',\n gap: tokens.spacing2Xs,\n maxWidth: '100%',\n }),\n\n switcherLabel: css({\n color: 'currentcolor',\n fontWeight: 'inherit',\n lineHeight: 'unset',\n display: 'inline-block',\n flexShrink: 1,\n minWidth: '0',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n\n switcherCaret: css({\n flexShrink: 0,\n minWidth: 0,\n }),\n\n switcherEnvIcon: css({\n minWidth: '0',\n [mqs.small]: {\n width: '16px',\n height: '16px',\n },\n }),\n});\n\nexport const getNavbarIconColor = (variant: EnvVariant) => {\n switch (variant) {\n case 'trial':\n return tokens.purple700;\n case 'non-master':\n return tokens.orange700;\n default:\n // Default to master variant\n return tokens.green700;\n }\n};\n\nconst getEnvVariantColor = (variant: EnvVariant) => {\n const sharedStyles = {\n padding: '0',\n paddingRight: tokens.spacingXs,\n };\n\n switch (variant) {\n case 'trial':\n return {\n ...sharedStyles,\n color: tokens.purple700,\n backgroundColor: tokens.purple100,\n border: `${BORDER_WIDTH}px solid ${tokens.purple400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.purple200,\n },\n };\n case 'non-master':\n return {\n ...sharedStyles,\n color: tokens.orange700,\n backgroundColor: tokens.orange100,\n border: `${BORDER_WIDTH}px solid ${tokens.orange400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.orange200,\n },\n };\n default:\n // Default to master variant\n return {\n ...sharedStyles,\n color: tokens.green700,\n backgroundColor: tokens.green100,\n border: `${BORDER_WIDTH}px solid ${tokens.green400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.green200,\n },\n };\n }\n};\n\nconst getWrapperBackground = (variant: EnvVariant) => {\n switch (variant) {\n case 'trial':\n return {\n background: tokens.purple300,\n };\n case 'non-master':\n return {\n background: `linear-gradient(\n -45deg,\n ${tokens.orange300} 28.57%,\n transparent 28.57%,\n transparent 50%,\n ${tokens.orange300} 50%,\n ${tokens.orange300} 78.57%,\n transparent 78.57%,\n transparent 100%\n )`,\n backgroundSize: '9px 9px',\n };\n default:\n // Default to master variant\n return {\n background: tokens.green300,\n };\n }\n};\n","import React from 'react';\nimport { NavbarSwitcherProps } from '../NavbarSwitcher/NavbarSwitcher';\nimport {\n EnvironmentAliasIcon,\n EnvironmentIcon,\n FlaskIcon,\n RocketLaunchIcon,\n} from '@contentful/f36-icons';\nimport tokens from '@contentful/f36-tokens';\n\nexport type NavbarEnvVariantProps = Pick<\n NavbarSwitcherProps,\n 'isAlias' | 'envVariant'\n> & {\n className?: string;\n};\n\nexport function NavbarEnvVariant({\n isAlias,\n envVariant,\n className,\n}: NavbarEnvVariantProps) {\n if (envVariant === 'trial') {\n return (\n <FlaskIcon color={tokens.purple700} className={className} size=\"medium\" />\n );\n }\n\n const isMaster = envVariant === 'master';\n const color = isMaster ? tokens.green700 : tokens.orange700;\n\n if (isMaster) {\n return (\n <RocketLaunchIcon color={color} className={className} size=\"medium\" />\n );\n } else if (isAlias) {\n return (\n <EnvironmentAliasIcon color={color} className={className} size=\"medium\" />\n );\n }\n\n return <EnvironmentIcon color={color} className={className} size=\"medium\" />;\n}\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarSwitcherSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => (\n <SkeletonContainer\n svgWidth={estimatedWidth}\n svgHeight={18}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={18}\n numberOfLines={1}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport {\n getNavbarIconColor,\n getNavbarSwitcherStyles,\n} from './NavbarSwitcher.styles';\nimport { Button } from '@contentful/f36-button';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from '@emotion/css';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport { NavbarSwitcherSkeleton } from './NavbarSwitcherSkeleton';\nimport { CaretRightIcon } from '@contentful/f36-icons';\nimport { Text } from '@contentful/f36-typography';\n\nexport type EnvVariant = 'master' | 'non-master' | 'trial';\n\ntype NavbarLoadingProps =\n | {\n isLoading?: true;\n children?: React.ReactNode;\n environment?: never;\n space?: never;\n }\n | {\n isLoading?: false;\n children?: never;\n environment?: string;\n space?: string;\n };\n\ntype NavbarSwitcherOwnProps = CommonProps &\n NavbarLoadingProps & {\n envVariant?: EnvVariant;\n isAlias?: boolean;\n ariaLabel?: string;\n };\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction NavbarSwitcherBase(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher',\n ariaLabel = 'Space and Environment Navigation',\n space,\n environment,\n isLoading,\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles(envVariant);\n\n return (\n <Button\n {...otherProps}\n aria-label={ariaLabel}\n className={cx(\n styles.navbarSwitcher({ showSpaceEnv: !isLoading && !children }),\n className,\n )}\n endIcon={\n envVariant && (\n <NavbarEnvVariant\n envVariant={envVariant}\n isAlias={isAlias}\n className={styles.switcherEnvIcon}\n />\n )\n }\n ref={ref}\n testId={testId}\n variant=\"transparent\"\n >\n <Flex\n className={styles.switcherWrapper({\n showSpaceEnv: !isLoading && !children,\n })}\n >\n {isLoading ? (\n <NavbarSwitcherSkeleton estimatedWidth={148} />\n ) : (\n <>\n {children ? (\n <Text className={styles.switcherLabel}>{children}</Text>\n ) : (\n <Flex className={styles.switcherLabelWrapper}>\n <Text className={styles.switcherLabel}>{space}</Text>\n {environment && (\n <>\n <Flex className={styles.switcherCaret}>\n <CaretRightIcon\n size=\"tiny\"\n color={getNavbarIconColor(envVariant)}\n />\n </Flex>\n <Text className={styles.switcherLabel}>{environment}</Text>\n </>\n )}\n </Flex>\n )}\n </>\n )}\n </Flex>\n </Button>\n );\n}\n\nNavbarSwitcherBase.displayName = 'NavbarSwitcher';\nexport const NavbarSwitcher = React.forwardRef(NavbarSwitcherBase);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarBadgeStyles = () => ({\n navbarBadge: css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'none',\n border: `1px solid ${tokens.purple600}`,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeS,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n textAlign: 'center',\n padding: `0 ${tokens.spacingXs}`,\n textDecoration: 'none',\n color: `${tokens.purple600}!important`,\n borderRadius: '1.75rem',\n userSelect: 'none',\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarBadgeStyles } from './NavbarBadge.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'div';\n\ntype NavbarBadgeOwnProps = CommonProps & {\n children?: React.ReactNode;\n as?: React.ElementType;\n};\n\nexport type NavbarBadgeProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarBadgeOwnProps, E>;\n\nfunction NavbarBadgeBase(\n props: NavbarBadgeProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-badge',\n ...otherProps\n } = props;\n const styles = getNavbarBadgeStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarBadge, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nNavbarBadgeBase.displayName = 'NavbarBadge';\nexport const NavbarBadge = React.forwardRef(\n NavbarBadgeBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n>;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\nimport { mqs } from '../utils.styles';\n\nexport const getNavbarSubmenuStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n gap: tokens.spacingXs,\n }),\n menuList: css({\n minWidth: 0,\n marginLeft: '-24px',\n marginTop: '10px',\n [mqs.xsmall]: {\n minWidth: '250px',\n margin: 0,\n },\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarSubmenuStyles } from './NavbarMenu.styles';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { Flex } from '@contentful/f36-core';\n\nexport type NavbarSubmenuProps = {\n title: string;\n icon?: NavbarItemIconProps['icon'];\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarSubmenu = (props: NavbarSubmenuProps) => {\n const {\n title,\n icon,\n children,\n testId = 'cf-ui-navbar-submenu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarSubmenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.SubmenuTrigger>\n <Flex className={styles.navbarMenuItem}>\n {icon && <NavbarItemIcon icon={icon} />}\n <span>{title}</span>\n </Flex>\n </Menu.SubmenuTrigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { MenuDivider } from '@contentful/f36-menu';\nimport { MenuSectionTitle } from '@contentful/f36-menu';\nimport { Navbar as OriginalNavbar } from './Navbar';\n\nimport { NavbarAccount, NavbarAccountSkeleton } from './NavbarAccount';\nimport { NavbarItem, NavbarItemSkeleton } from './NavbarItem';\nimport { NavbarMenuItem, NavbarMenuItemSkeleton } from './NavbarMenuItem';\nimport { NavbarSwitcher, NavbarSwitcherSkeleton } from './NavbarSwitcher';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\nimport { NavbarSubmenu } from './NavbarSubmenu/NavbarSubmenu';\n\ntype CompoundNavbar = typeof OriginalNavbar & {\n Item: typeof NavbarItem;\n ItemSkeleton: typeof NavbarItemSkeleton;\n MenuItem: typeof NavbarMenuItem;\n MenuItemSkeleton: typeof NavbarMenuItemSkeleton;\n MenuDivider: typeof MenuDivider;\n MenuSectionTitle: typeof MenuSectionTitle;\n Submenu: typeof NavbarSubmenu;\n Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n};\n\nexport const Navbar = OriginalNavbar as CompoundNavbar;\nNavbar.Item = NavbarItem;\nNavbar.ItemSkeleton = NavbarItemSkeleton;\nNavbar.MenuItem = NavbarMenuItem;\nNavbar.MenuItemSkeleton = NavbarMenuItemSkeleton;\nNavbar.MenuDivider = MenuDivider;\nNavbar.MenuSectionTitle = MenuSectionTitle;\nNavbar.Submenu = NavbarSubmenu;\nNavbar.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n"]}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var f36Menu=require('@contentful/f36-menu'),f36Core=require('@contentful/f36-core'),v=require('react'),css=require('@emotion/css'),a=require('@contentful/f36-tokens'),f36Icon=require('@contentful/f36-icon'),f36Button=require('@contentful/f36-button'),f36Icons=require('@contentful/f36-icons'),f36Avatar=require('@contentful/f36-avatar'),f36Tooltip=require('@contentful/f36-tooltip'),f36Skeleton=require('@contentful/f36-skeleton'),f36Utils=require('@contentful/f36-utils'),f36Typography=require('@contentful/f36-typography');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var v__default=/*#__PURE__*/_interopDefault(v);var a__default=/*#__PURE__*/_interopDefault(a);var eo=Object.defineProperty,oo=Object.defineProperties;var to=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var ue=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var ge=(e,o,t)=>o in e?eo(e,o,{enumerable:true,configurable:true,writable:true,value:t}):e[o]=t,p=(e,o)=>{for(var t in o||(o={}))ue.call(o,t)&&ge(e,t,o[t]);if(Z)for(var t of Z(o))ve.call(o,t)&&ge(e,t,o[t]);return e},d=(e,o)=>oo(e,to(o));var N=(e,o)=>{var t={};for(var r in e)ue.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Z)for(var r of Z(e))o.indexOf(r)<0&&ve.call(e,r)&&(t[r]=e[r]);return t};var fe=60;var i={xsmall:"@media (min-width: 576px)",small:"@media (min-width: 867px)",medium:"@media (min-width: 1024px)",large:"@media (min-width: 1200px)",xlarge:"@media (min-width: 1920px)"},B=(e=a__default.default.glowPrimary)=>css.css({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}}),W=(e="44px")=>css.css({overflow:"visible",position:"relative","&:after":{minHeight:e,minWidth:e,position:"absolute",width:"100%",content:'""',left:"50%",top:"50%",transform:"translate(-50%, -50%)"}});var he=({contentMaxWidth:e,variant:o})=>({container:css.css({justifyContent:"center",backgroundColor:a__default.default.gray100,width:"100%"}),logo:css.css({display:"none",[i.small]:{display:"block",height:"28px",width:"28px"}}),navigation:css.css({width:"100%",maxWidth:o==="wide"?"1920px":e,padding:`${a__default.default.spacingS} ${a__default.default.spacingM}`,height:`${60}px`,[i.small]:{padding:`${a__default.default.spacingM} ${a__default.default.spacingL}`}}),mainNavigation:t=>css.css({display:"none"},t==="small"?{[i.small]:{display:"flex"}}:{[i.medium]:{display:"flex"}}),mobileNavigationButton:t=>css.css({display:"flex",minHeight:"initial",height:"36px",padding:"0 12px",borderRadius:"10px"},t==="small"?{[i.small]:{display:"none"}}:{[i.medium]:{display:"none"}}),mobileNavigationIcon:css.css({heigt:"20px",width:"20px"}),secondaryNavigationWrapper:css.css({"> *:not(:first-child)":{display:"none",[i.xsmall]:{display:"flex"}}}),promoNavigationWrapper:css.css({display:"none",[i.large]:{display:"flex"}}),account:css.css({display:"none",[i.xsmall]:{display:"flex"}})});var Pe=f36Icon.generateComponentWithVariants({variants:{[f36Icon.IconVariant.Active]:f36Icon.generateIconComponent({path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a__default.default.blue300})),viewBox:"0 0 12 12"}),[f36Icon.IconVariant.Default]:f36Icon.generateIconComponent({path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a__default.default.gray400})),viewBox:"0 0 12 12"})}});var Se=f36Icon.generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("path",{fill:"#1773EB",d:"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z"}),v__default.default.createElement("path",{fill:"#E44F20",d:"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z"}),v__default.default.createElement("path",{fill:"#FFDA00",d:"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z"}),v__default.default.createElement("path",{fill:"#1773EB",d:"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z"}),v__default.default.createElement("path",{fill:"#E44F20",d:"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z"}))});var Me=()=>({menuList:css.css({minWidth:0,[i.xsmall]:{minWidth:"250px"}})});var F=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:s}=e,l=Me();return v__default.default.createElement(f36Menu.Menu,{onOpen:n,onClose:s},v__default.default.createElement(f36Menu.Menu.Trigger,null,o),v__default.default.createElement(f36Menu.Menu.List,{className:l.menuList,testId:r},t))};function lo(e,o){let C=e,{logo:t,promotions:r,switcher:n,mainNavigation:s,secondaryNavigation:l,account:c,mobileNavigation:b,mobileNavigationProps:g={breakpoint:"small",label:"Menu"},className:x,contentMaxWidth:A="100%",testId:u="cf-ui-navbar",variant:P="wide",aria:S={labelMainNavigation:"Main Navigation",labelSecondaryNavigation:"Secondary Navigation",labelPromotions:"Promotions",labelAccount:"Account Navigation"}}=C,q=N(C,["logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","contentMaxWidth","testId","variant","aria"]),y=he({contentMaxWidth:A,variant:P});return v__default.default.createElement(f36Core.Flex,d(p({},q),{ref:o,testId:u,className:css.cx(y.container,x),as:"header"}),v__default.default.createElement(f36Core.Flex,{as:"nav",className:y.navigation,justifyContent:"space-between",gap:"spacingXs"},v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingL"},t||v__default.default.createElement(Se,{className:y.logo}),b&&v__default.default.createElement(F,{trigger:v__default.default.createElement(f36Button.Button,{className:y.mobileNavigationButton(g.breakpoint),startIcon:v__default.default.createElement(f36Icons.ListIcon,{size:"medium"})},g.label)},b),s&&v__default.default.createElement(f36Core.Flex,{className:y.mainNavigation(g.breakpoint),"aria-label":S.labelMainNavigation,gap:"spacingXs"},s)),v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},v__default.default.createElement(f36Core.Flex,{alignItems:"center",className:y.promoNavigationWrapper,"aria-label":S.labelPromotions,gap:"spacingXs"},r),v__default.default.createElement(f36Core.Flex,{alignItems:"center"},n),v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},l&&v__default.default.createElement(f36Core.Flex,{className:y.secondaryNavigationWrapper,"aria-label":S.labelSecondaryNavigation,gap:"spacingXs"},l),c&&v__default.default.createElement(f36Core.Flex,{className:y.account,"aria-label":S.labelAccount,gap:"spacingXs"},c)))))}var we=v__default.default.forwardRef(lo);var co={warning:a__default.default.colorWarning,negative:a__default.default.colorNegative,info:a__default.default.blue500},Ae=()=>({navbarAccount:css.css({cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%",border:"none",padding:0,"&:hover img":{filter:"brightness(0.9)"}},B(),W()),notificationIcon:e=>css.css({position:"absolute",top:0,right:0,height:a__default.default.spacingS,width:a__default.default.spacingS,borderRadius:"50%",border:`2px solid ${a__default.default.gray100}`,backgroundColor:co[e],transform:"translate(30%, -30%)",zIndex:1})});function Ce(e,o){let P=e,{children:t,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:s,label:l="Account menu",initials:c,username:b,hasNotification:g,notificationVariant:x="warning"}=P,A=N(P,["children","className","testId","avatar","label","initials","username","hasNotification","notificationVariant"]),u=Ae();return v__default.default.createElement(F,{trigger:v__default.default.createElement("div",null,v__default.default.createElement(f36Tooltip.Tooltip,{placement:"bottom",content:l,showDelay:600,usePortal:true},v__default.default.createElement(f36Core.Flex,d(p({as:"button"},A),{ref:o,className:css.cx(u.navbarAccount,r),testId:n,alignItems:"center","aria-label":l}),v__default.default.createElement(f36Avatar.Avatar,{src:s,initials:c,size:"small",variant:"user"}),g?v__default.default.createElement("span",{className:u.notificationIcon(x)}):null)))},t)}Ce.displayName="NavbarAccount";var re=v__default.default.forwardRef(Ce);function j({ariaLabel:e}){return v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}j.displayName="NavbarAccountSkeletton";var G="1px",ae=()=>css.css({backgroundColor:a__default.default.blue100,border:`${G} solid ${a__default.default.blue400}`,color:a__default.default.blue600,"&:focus,&:hover":{backgroundColor:a__default.default.blue100}}),ho=()=>css.css({border:"none",opacity:.5,pointerEvents:"none"}),Le={display:"flex",justifyContent:"center",padding:`calc(${a__default.default.spacing2Xs} - ${G}) calc(${a__default.default.spacingXs} - ${G})`,alignItems:"center",background:"none",gap:a__default.default.spacing2Xs},Be=({hasTitle:e})=>({navbarItem:css.css(Le,{appearance:"none",background:"none",outline:"none",border:`${G} solid transparent`,margin:0,fontSize:a__default.default.fontSizeM,lineHeight:a__default.default.lineHeightM,fontWeight:a__default.default.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:a__default.default.gray800,boxSizing:"border-box",transition:`color ${a__default.default.transitionDurationShort} ${a__default.default.transitionEasingCubicBezier}`,borderRadius:a__default.default.borderRadiusMedium,height:"30px",padding:e?`${a__default.default.spacing2Xs} ${a__default.default.spacingXs}`:`calc(${a__default.default.spacing2Xs} - ${G})`,"&:focus, &:hover":{backgroundColor:a__default.default.gray200},"&:active":ae(),"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a__default.default.transitionDurationShort} ${a__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a__default.default.zIndexDefault}},B(),W()),isActive:ae(),isDisabled:ho(),icon:css.css({height:"20px",width:"20px",boxSizing:"content-box",display:e?"none":"block",[i.small]:{height:"16px",width:"16px",padding:e?"2px 0":"2px"},[i.large]:{display:"block"}})}),We=()=>({itemSkeleton:css.css(Le)});var $e=()=>({navbarItemIcon:css.css({"&:last-child&:not(:only-child)":{marginLeft:a__default.default.spacing2Xs},"img&":{borderRadius:a__default.default.borderRadiusSmall,maxWidth:a__default.default.spacingM,maxHeight:a__default.default.spacingM}})});var w=({icon:e,isActive:o,className:t})=>{let c=e.props,{className:r,size:n}=c,s=N(c,["className","size"]),l=$e();return v__default.default.cloneElement(e,p({className:css.cx(r,l.navbarItemIcon,t),size:n||"small",isActive:o},s))};w.displayName="NavbarItemIcon";var Fe="button";function He(e,o){let be=e,{as:t=Fe,icon:r,label:n,title:s,children:l,className:c,isActive:b,isDisabled:g,testId:x="cf-ui-navbar-item",onOpen:A,onClose:u}=be,P=N(be,["as","icon","label","title","children","className","isActive","isDisabled","testId","onOpen","onClose"]),S=Be({hasTitle:!!s}),q=Mo(e),y=s&&q,C=v__default.default.createElement(t,p(p(d(p({},P),{ref:o,"data-test-id":x,className:css.cx(S.navbarItem,c,{[S.isActive]:b&&!g,[S.isDisabled]:g})}),!s&&{"aria-label":n}),g&&(t===Fe?{disabled:true}:{tabIndex:-1,"aria-disabled":true})),r&&v__default.default.createElement(w,{className:S.icon,icon:r,isActive:b}),s&&v__default.default.createElement("span",null,s),y&&v__default.default.createElement(Pe,{size:"tiny",isActive:b}));return s||(C=v__default.default.createElement("div",null,v__default.default.createElement(f36Tooltip.Tooltip,{content:n,placement:"bottom",showDelay:600,usePortal:true},C))),q?v__default.default.createElement(F,{trigger:C,testId:x,onOpen:A,onClose:u},l):C}var Mo=e=>!!e.children;He.displayName="NavbarItemBase";var ne=v__default.default.forwardRef(He);var J=({estimatedWidth:e})=>{let o=We();return v__default.default.createElement(f36Skeleton.SkeletonContainer,{className:o.itemSkeleton,svgWidth:e,svgHeight:28,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:18,numberOfLines:1,offsetTop:2,radiusX:a__default.default.borderRadiusSmall,radiusY:a__default.default.borderRadiusSmall}))};J.displayName="NavbarItemSkeleton";var Ve=()=>({navbarMenuItem:css.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Lo="button";function Bo(e,o){let g=e,{as:t=Lo,icon:r,title:n,className:s}=g,l=N(g,["as","icon","title","className"]),c=Ve(),b=Wo(e);return v__default.default.createElement(f36Menu.Menu.Item,d(p({},l),{ref:o,as:t,className:css.cx(c.navbarMenuItem,s)}),r?v__default.default.createElement(w,{icon:r}):b&&_e,v__default.default.createElement("span",null,n),r&&b?_e:null)}var _e=v__default.default.createElement(w,{icon:v__default.default.createElement(f36Icons.ArrowSquareOutIcon,null)}),Wo=e=>e.as==="a"&&e.target==="_blank",ie=v__default.default.forwardRef(Bo);var se=({ariaLabel:e})=>v__default.default.createElement(f36Menu.Menu.Item,null,v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:a__default.default.spacingXs},v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},v__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},v__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var _=1,Re=e=>({navbarSwitcher:({showSpaceEnv:o})=>css.css({color:a__default.default.gray600,flexShrink:1,fontWeight:a__default.default.fontWeightMedium,maxWidth:"50vw",minHeight:"unset",padding:`${a__default.default.spacing2Xs} ${a__default.default.spacingXs}`,"&:hover":{backgroundColor:f36Utils.hexToRGBA(a__default.default.gray900,.05)},[i.xsmall]:{maxWidth:"45vw"},[i.medium]:{maxWidth:"35vw"},[i.large]:{maxWidth:"25vw"},[i.xlarge]:{maxWidth:"600px"}},o&&Do(e),B(),W()),switcherWrapper:({showSpaceEnv:o})=>css.css({gap:a__default.default.spacingXs,alignItems:"center",minWidth:0,"&:has(> span:last-child:nth-child(3))":{minWidth:"12ch"},"&:before":css.css(d(p({content:'""',position:"absolute",display:"block",width:`calc(8px - ${_}px)`,height:o?"26px":"unset",borderTopLeftRadius:`calc(${a__default.default.borderRadiusMedium} - ${_}px)`,borderBottomLeftRadius:`calc(${a__default.default.borderRadiusMedium} - ${_}px)`},Ro(e)),{backgroundPosition:"bottom"}))}),switcherLabelWrapper:css.css({height:"26px",paddingLeft:`calc(${a__default.default.spacingXs} * 2)`,alignItems:"center",gap:a__default.default.spacing2Xs,maxWidth:"100%"}),switcherLabel:css.css({color:"currentcolor",fontWeight:"inherit",lineHeight:"unset",display:"inline-block",flexShrink:1,minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),switcherCaret:css.css({flexShrink:0,minWidth:0}),switcherEnvIcon:css.css({minWidth:"0",[i.small]:{width:"16px",height:"16px"}})}),Xe=e=>{switch(e){case "trial":return a__default.default.purple700;case "non-master":return a__default.default.orange700;default:return a__default.default.green700}},Do=e=>{let o={padding:"0",paddingRight:a__default.default.spacingXs};switch(e){case "trial":return d(p({},o),{color:a__default.default.purple700,backgroundColor:a__default.default.purple100,border:`${_}px solid ${a__default.default.purple400}`,"&:hover, &:active":{backgroundColor:a__default.default.purple200}});case "non-master":return d(p({},o),{color:a__default.default.orange700,backgroundColor:a__default.default.orange100,border:`${_}px solid ${a__default.default.orange400}`,"&:hover, &:active":{backgroundColor:a__default.default.orange200}});default:return d(p({},o),{color:a__default.default.green700,backgroundColor:a__default.default.green100,border:`${_}px solid ${a__default.default.green400}`,"&:hover, &:active":{backgroundColor:a__default.default.green200}})}},Ro=e=>{switch(e){case "trial":return {background:a__default.default.purple300};case "non-master":return {background:`linear-gradient(
|
|
1
|
+
'use strict';var f36Menu=require('@contentful/f36-menu'),f36Core=require('@contentful/f36-core'),v=require('react'),css=require('@emotion/css'),a=require('@contentful/f36-tokens'),f36Icon=require('@contentful/f36-icon'),f36Button=require('@contentful/f36-button'),f36Icons=require('@contentful/f36-icons'),f36Avatar=require('@contentful/f36-avatar'),f36Tooltip=require('@contentful/f36-tooltip'),f36Skeleton=require('@contentful/f36-skeleton'),f36Utils=require('@contentful/f36-utils'),f36Typography=require('@contentful/f36-typography');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var v__default=/*#__PURE__*/_interopDefault(v);var a__default=/*#__PURE__*/_interopDefault(a);var eo=Object.defineProperty,oo=Object.defineProperties;var to=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var ue=Object.prototype.hasOwnProperty,ve=Object.prototype.propertyIsEnumerable;var ge=(e,o,t)=>o in e?eo(e,o,{enumerable:true,configurable:true,writable:true,value:t}):e[o]=t,p=(e,o)=>{for(var t in o||(o={}))ue.call(o,t)&&ge(e,t,o[t]);if(Z)for(var t of Z(o))ve.call(o,t)&&ge(e,t,o[t]);return e},d=(e,o)=>oo(e,to(o));var N=(e,o)=>{var t={};for(var r in e)ue.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&Z)for(var r of Z(e))o.indexOf(r)<0&&ve.call(e,r)&&(t[r]=e[r]);return t};var fe=60;var i={xsmall:"@media (min-width: 576px)",small:"@media (min-width: 867px)",medium:"@media (min-width: 1024px)",large:"@media (min-width: 1200px)",xlarge:"@media (min-width: 1920px)"},B=(e=a__default.default.glowPrimary)=>css.css({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}}),W=(e="44px")=>css.css({overflow:"visible",position:"relative","&:after":{minHeight:e,minWidth:e,position:"absolute",width:"100%",content:'""',left:"50%",top:"50%",transform:"translate(-50%, -50%)"}});var he=({contentMaxWidth:e,variant:o})=>({container:css.css({justifyContent:"center",backgroundColor:a__default.default.gray100,width:"100%"}),logo:css.css({display:"none",[i.small]:{display:"block",height:"28px",width:"28px"}}),navigation:css.css({width:"100%",maxWidth:o==="wide"?"1920px":e,padding:`${a__default.default.spacingS} ${a__default.default.spacingM}`,height:`${60}px`,[i.small]:{padding:`${a__default.default.spacingM} ${a__default.default.spacingL}`}}),mainNavigation:t=>css.css({display:"none"},t==="small"?{[i.small]:{display:"flex"}}:{[i.medium]:{display:"flex"}}),mobileNavigationButton:t=>css.css({display:"flex",minHeight:"initial",height:"36px",padding:"0 12px",borderRadius:"10px"},t==="small"?{[i.small]:{display:"none"}}:{[i.medium]:{display:"none"}}),mobileNavigationIcon:css.css({heigt:"20px",width:"20px"}),secondaryNavigationWrapper:css.css({"> *:not(:first-child)":{display:"none",[i.xsmall]:{display:"flex"}}}),promoNavigationWrapper:css.css({display:"none",[i.large]:{display:"flex"}}),account:css.css({display:"none",[i.xsmall]:{display:"flex"}})});var Pe=f36Icon.generateComponentWithVariants({variants:{[f36Icon.IconVariant.Active]:f36Icon.generateIconComponent({path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a__default.default.blue300})),viewBox:"0 0 12 12"}),[f36Icon.IconVariant.Default]:f36Icon.generateIconComponent({path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a__default.default.gray400})),viewBox:"0 0 12 12"})}});var Se=f36Icon.generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("path",{fill:"#1773EB",d:"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z"}),v__default.default.createElement("path",{fill:"#E44F20",d:"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z"}),v__default.default.createElement("path",{fill:"#FFDA00",d:"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z"}),v__default.default.createElement("path",{fill:"#1773EB",d:"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z"}),v__default.default.createElement("path",{fill:"#E44F20",d:"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z"}))});var Me=()=>({menuList:css.css({minWidth:0,[i.xsmall]:{minWidth:"250px"}})});var H=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:s}=e,l=Me();return v__default.default.createElement(f36Menu.Menu,{onOpen:n,onClose:s},v__default.default.createElement(f36Menu.Menu.Trigger,null,o),v__default.default.createElement(f36Menu.Menu.List,{className:l.menuList,testId:r},t))};function lo(e,o){let C=e,{logo:t,promotions:r,switcher:n,mainNavigation:s,secondaryNavigation:l,account:c,mobileNavigation:b,mobileNavigationProps:g={breakpoint:"small",label:"Menu"},className:x,contentMaxWidth:A="100%",testId:u="cf-ui-navbar",variant:P="wide",aria:S={labelMainNavigation:"Main Navigation",labelSecondaryNavigation:"Secondary Navigation",labelPromotions:"Promotions",labelAccount:"Account Navigation"}}=C,q=N(C,["logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","contentMaxWidth","testId","variant","aria"]),y=he({contentMaxWidth:A,variant:P});return v__default.default.createElement(f36Core.Flex,d(p({},q),{ref:o,testId:u,className:css.cx(y.container,x),as:"header"}),v__default.default.createElement(f36Core.Flex,{as:"nav",className:y.navigation,justifyContent:"space-between",gap:"spacingXs"},v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingL"},t||v__default.default.createElement(Se,{className:y.logo}),b&&v__default.default.createElement(H,{trigger:v__default.default.createElement(f36Button.Button,{className:y.mobileNavigationButton(g.breakpoint),startIcon:v__default.default.createElement(f36Icons.ListIcon,{size:"medium"})},g.label)},b),s&&v__default.default.createElement(f36Core.Flex,{className:y.mainNavigation(g.breakpoint),"aria-label":S.labelMainNavigation,gap:"spacingXs"},s)),v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},v__default.default.createElement(f36Core.Flex,{alignItems:"center",className:y.promoNavigationWrapper,"aria-label":S.labelPromotions,gap:"spacingXs"},r),v__default.default.createElement(f36Core.Flex,{alignItems:"center"},n),v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},l&&v__default.default.createElement(f36Core.Flex,{className:y.secondaryNavigationWrapper,"aria-label":S.labelSecondaryNavigation,gap:"spacingXs"},l),c&&v__default.default.createElement(f36Core.Flex,{className:y.account,"aria-label":S.labelAccount,gap:"spacingXs"},c)))))}var we=v__default.default.forwardRef(lo);var co={warning:a__default.default.colorWarning,negative:a__default.default.colorNegative,info:a__default.default.blue500},Ae=()=>({navbarAccount:css.css({cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%",border:"none",padding:0,"&:hover img":{filter:"brightness(0.9)"}},B(),W()),notificationIcon:e=>css.css({position:"absolute",top:0,right:0,height:a__default.default.spacingS,width:a__default.default.spacingS,borderRadius:"50%",border:`2px solid ${a__default.default.gray100}`,backgroundColor:co[e],transform:"translate(30%, -30%)",zIndex:1})});function Ce(e,o){let P=e,{children:t,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:s,label:l="Account menu",initials:c,username:b,hasNotification:g,notificationVariant:x="warning"}=P,A=N(P,["children","className","testId","avatar","label","initials","username","hasNotification","notificationVariant"]),u=Ae();return v__default.default.createElement(H,{trigger:v__default.default.createElement("div",null,v__default.default.createElement(f36Tooltip.Tooltip,{placement:"bottom",content:l,showDelay:600,usePortal:true},v__default.default.createElement(f36Core.Flex,d(p({as:"button"},A),{ref:o,className:css.cx(u.navbarAccount,r),testId:n,alignItems:"center","aria-label":l}),v__default.default.createElement(f36Avatar.Avatar,{src:s,initials:c,size:"small",variant:"user"}),g?v__default.default.createElement("span",{className:u.notificationIcon(x)}):null)))},t)}Ce.displayName="NavbarAccount";var re=v__default.default.forwardRef(Ce);function j({ariaLabel:e}){return v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}j.displayName="NavbarAccountSkeletton";var G="1px",ae=()=>css.css({backgroundColor:a__default.default.blue100,border:`${G} solid ${a__default.default.blue400}`,color:a__default.default.blue600,"&:focus,&:hover":{backgroundColor:a__default.default.blue100}}),ho=()=>css.css({border:"none",opacity:.5,pointerEvents:"none"}),Le={display:"flex",justifyContent:"center",padding:`calc(${a__default.default.spacing2Xs} - ${G}) calc(${a__default.default.spacingXs} - ${G})`,alignItems:"center",background:"none",gap:a__default.default.spacing2Xs},Be=({hasTitle:e})=>({navbarItem:css.css(Le,{appearance:"none",background:"none",outline:"none",border:`${G} solid transparent`,margin:0,fontSize:a__default.default.fontSizeM,lineHeight:a__default.default.lineHeightM,fontWeight:a__default.default.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:a__default.default.gray800,boxSizing:"border-box",transition:`color ${a__default.default.transitionDurationShort} ${a__default.default.transitionEasingCubicBezier}`,borderRadius:a__default.default.borderRadiusMedium,height:"30px",padding:e?`${a__default.default.spacing2Xs} ${a__default.default.spacingXs}`:`calc(${a__default.default.spacing2Xs} - ${G})`,"&:focus, &:hover":{backgroundColor:a__default.default.gray200},"&:active":ae(),"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a__default.default.transitionDurationShort} ${a__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a__default.default.zIndexDefault}},B(),W()),isActive:ae(),isDisabled:ho(),icon:css.css({height:"20px",width:"20px",boxSizing:"content-box",display:e?"none":"block",[i.small]:{height:"16px",width:"16px",padding:e?"2px 0":"2px"},[i.large]:{display:"block"}})}),We=()=>({itemSkeleton:css.css(Le)});var $e=()=>({navbarItemIcon:css.css({"&:last-child&:not(:only-child)":{marginLeft:a__default.default.spacing2Xs},"img&":{borderRadius:a__default.default.borderRadiusSmall,maxWidth:a__default.default.spacingM,maxHeight:a__default.default.spacingM}})});var w=({icon:e,isActive:o,className:t})=>{let c=e.props,{className:r,size:n}=c,s=N(c,["className","size"]),l=$e();return v__default.default.cloneElement(e,p({className:css.cx(r,l.navbarItemIcon,t),size:n||"small",isActive:o},s))};w.displayName="NavbarItemIcon";var He="button";function Fe(e,o){let be=e,{as:t=He,icon:r,label:n,title:s,children:l,className:c,isActive:b,isDisabled:g,testId:x="cf-ui-navbar-item",onOpen:A,onClose:u}=be,P=N(be,["as","icon","label","title","children","className","isActive","isDisabled","testId","onOpen","onClose"]),S=Be({hasTitle:!!s}),q=Mo(e),y=s&&q,C=v__default.default.createElement(t,p(p(d(p({},P),{ref:o,"data-test-id":x,className:css.cx(S.navbarItem,c,{[S.isActive]:b&&!g,[S.isDisabled]:g})}),!s&&{"aria-label":n}),g&&(t===He?{disabled:true}:{tabIndex:-1,"aria-disabled":true})),r&&v__default.default.createElement(w,{className:S.icon,icon:r,isActive:b}),s&&v__default.default.createElement("span",null,s),y&&v__default.default.createElement(Pe,{size:"tiny",isActive:b}));return s||(C=v__default.default.createElement("div",null,v__default.default.createElement(f36Tooltip.Tooltip,{content:n,placement:"bottom",showDelay:600,usePortal:true},C))),q?v__default.default.createElement(H,{trigger:C,testId:x,onOpen:A,onClose:u},l):C}var Mo=e=>!!e.children;Fe.displayName="NavbarItem";var ne=v__default.default.forwardRef(Fe);var J=({estimatedWidth:e})=>{let o=We();return v__default.default.createElement(f36Skeleton.SkeletonContainer,{className:o.itemSkeleton,svgWidth:e,svgHeight:28,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:18,numberOfLines:1,offsetTop:2,radiusX:a__default.default.borderRadiusSmall,radiusY:a__default.default.borderRadiusSmall}))};J.displayName="NavbarItemSkeleton";var Ve=()=>({navbarMenuItem:css.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Lo="button";function Bo(e,o){let g=e,{as:t=Lo,icon:r,title:n,className:s}=g,l=N(g,["as","icon","title","className"]),c=Ve(),b=Wo(e);return v__default.default.createElement(f36Menu.Menu.Item,d(p({},l),{ref:o,as:t,className:css.cx(c.navbarMenuItem,s)}),r?v__default.default.createElement(w,{icon:r}):b&&_e,v__default.default.createElement("span",null,n),r&&b?_e:null)}var _e=v__default.default.createElement(w,{icon:v__default.default.createElement(f36Icons.ArrowSquareOutIcon,null)}),Wo=e=>e.as==="a"&&e.target==="_blank",ie=v__default.default.forwardRef(Bo);var se=({ariaLabel:e})=>v__default.default.createElement(f36Menu.Menu.Item,null,v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:a__default.default.spacingXs},v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},v__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},v__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var _=1,Re=e=>({navbarSwitcher:({showSpaceEnv:o})=>css.css({color:a__default.default.gray600,flexShrink:1,fontWeight:a__default.default.fontWeightMedium,maxWidth:"50vw",minHeight:"unset",padding:`${a__default.default.spacing2Xs} ${a__default.default.spacingXs}`,"&:hover":{backgroundColor:f36Utils.hexToRGBA(a__default.default.gray900,.05)},[i.xsmall]:{maxWidth:"45vw"},[i.medium]:{maxWidth:"35vw"},[i.large]:{maxWidth:"25vw"},[i.xlarge]:{maxWidth:"600px"}},o&&Do(e),B(),W()),switcherWrapper:({showSpaceEnv:o})=>css.css({gap:a__default.default.spacingXs,alignItems:"center",minWidth:0,"&:has(> span:last-child:nth-child(3))":{minWidth:"12ch"},"&:before":css.css(d(p({content:'""',position:"absolute",display:"block",width:`calc(8px - ${_}px)`,height:o?"26px":"unset",borderTopLeftRadius:`calc(${a__default.default.borderRadiusMedium} - ${_}px)`,borderBottomLeftRadius:`calc(${a__default.default.borderRadiusMedium} - ${_}px)`},Ro(e)),{backgroundPosition:"bottom"}))}),switcherLabelWrapper:css.css({height:"26px",paddingLeft:`calc(${a__default.default.spacingXs} * 2)`,alignItems:"center",gap:a__default.default.spacing2Xs,maxWidth:"100%"}),switcherLabel:css.css({color:"currentcolor",fontWeight:"inherit",lineHeight:"unset",display:"inline-block",flexShrink:1,minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),switcherCaret:css.css({flexShrink:0,minWidth:0}),switcherEnvIcon:css.css({minWidth:"0",[i.small]:{width:"16px",height:"16px"}})}),Xe=e=>{switch(e){case "trial":return a__default.default.purple700;case "non-master":return a__default.default.orange700;default:return a__default.default.green700}},Do=e=>{let o={padding:"0",paddingRight:a__default.default.spacingXs};switch(e){case "trial":return d(p({},o),{color:a__default.default.purple700,backgroundColor:a__default.default.purple100,border:`${_}px solid ${a__default.default.purple400}`,"&:hover, &:active":{backgroundColor:a__default.default.purple200}});case "non-master":return d(p({},o),{color:a__default.default.orange700,backgroundColor:a__default.default.orange100,border:`${_}px solid ${a__default.default.orange400}`,"&:hover, &:active":{backgroundColor:a__default.default.orange200}});default:return d(p({},o),{color:a__default.default.green700,backgroundColor:a__default.default.green100,border:`${_}px solid ${a__default.default.green400}`,"&:hover, &:active":{backgroundColor:a__default.default.green200}})}},Ro=e=>{switch(e){case "trial":return {background:a__default.default.purple300};case "non-master":return {background:`linear-gradient(
|
|
2
2
|
-45deg,
|
|
3
3
|
${a__default.default.orange300} 28.57%,
|
|
4
4
|
transparent 28.57%,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts","../src/utils.styles.ts","../src/Navbar.styles.ts","../src/icons/CaretIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../src/NavbarMenu/NavbarMenu.styles.ts","../src/NavbarMenu/NavbarMenu.tsx","../src/Navbar.tsx","../src/NavbarAccount/NavbarAccount.styles.ts","../src/NavbarAccount/NavbarAccount.tsx","../src/NavbarAccount/NavbarAccountSkeleton.tsx","../src/NavbarItem/NavbarItem.styles.ts","../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../src/NavbarItemIcon/NavbarItemIcon.tsx","../src/NavbarItem/NavbarItem.tsx","../src/NavbarItem/NavbarItemSkeleton.tsx","../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../src/NavbarMenuItem/NavbarMenuItem.tsx","../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../src/NavbarSwitcher/NavbarEnvVariant.tsx","../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../src/NavbarSwitcher/NavbarSwitcher.tsx","../src/NavbarBadge/NavbarBadge.styles.ts","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarSubmenu/NavbarMenu.styles.ts","../src/NavbarSubmenu/NavbarSubmenu.tsx","../src/CompoundNavbar.ts"],"names":["NAVBAR_HEIGHT","mqs","getGlowOnFocusStyles","shadow","tokens","css","increaseHitArea","minSize","getNavbarStyles","contentMaxWidth","variant","mobileNavigationBp","CaretIcon","generateComponentWithVariants","IconVariant","generateIconComponent","React","ContentfulLogoIcon","getNavbarMenuStyles","NavbarMenu","props","trigger","children","testId","onOpen","onClose","styles","Menu","_Navbar","ref","_a","logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","aria","otherProps","__objRest","Flex","__spreadProps","__spreadValues","cx","Button","ListIcon","Navbar","notificationVarianColorMap","getNavbarAccountStyles","NavbarAccountBase","avatar","label","initials","username","hasNotification","notificationVariant","Tooltip","Avatar","NavbarAccount","NavbarAccountSkeleton","ariaLabel","SkeletonContainer","SkeletonImage","borderWidth","getNavbarItemActiveStyles","getNavbarItemDisabledStyles","commonItemStyles","getNavbarItemStyles","hasTitle","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","iconClassName","size","rest","NAVBAR_ITEM_DEFAULT_TAG","NavbarItemBase","Comp","title","isDisabled","isMenuTrigger","isNavbarItemHasMenu","showCaret","item","NavbarItem","NavbarItemSkeleton","estimatedWidth","SkeletonText","getNavbarMenuItemStyles","NAVBAR_MENU_ITEM_DEFAULT_TAG","NavbarMenuItemBase","itemIsExternalLink","isExternalLink","externalIcon","ArrowSquareOutIcon","NavbarMenuItem","NavbarMenuItemSkeleton","SkeletonBodyText","BORDER_WIDTH","getNavbarSwitcherStyles","showSpaceEnv","hexToRGBA","getEnvVariantColor","getWrapperBackground","getNavbarIconColor","sharedStyles","NavbarEnvVariant","isAlias","envVariant","FlaskIcon","isMaster","color","RocketLaunchIcon","EnvironmentAliasIcon","EnvironmentIcon","NavbarSwitcherSkeleton","NavbarSwitcherBase","space","environment","isLoading","Text","CaretRightIcon","NavbarSwitcher","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","NavbarBadgeBase","NavbarBadge","getNavbarSubmenuStyles","NavbarSubmenu","MenuDivider","MenuSectionTitle"],"mappings":"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","file":"index.js","sourcesContent":["export const NAVBAR_HEIGHT = 60;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\ntype screens = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\n\nexport const mqs: mediaqueries = {\n xsmall: '@media (min-width: 576px)',\n small: '@media (min-width: 867px)',\n medium: '@media (min-width: 1024px)',\n large: '@media (min-width: 1200px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) =>\n css({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n });\n\nexport const increaseHitArea = (minSize = '44px') =>\n css({\n overflow: 'visible',\n position: 'relative',\n '&:after': {\n minHeight: minSize,\n minWidth: minSize,\n position: 'absolute',\n width: '100%',\n content: '\"\"',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n });\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from './utils.styles';\nimport { NavbarProps } from './Navbar';\nimport { NAVBAR_HEIGHT } from './constants';\n\nexport const getNavbarStyles = ({\n contentMaxWidth,\n variant,\n}: Pick<NavbarProps, 'contentMaxWidth' | 'variant'>) => ({\n container: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n width: '100%',\n }),\n logo: css({\n display: 'none',\n [mqs.small]: {\n display: 'block',\n height: '28px',\n width: '28px',\n },\n }),\n\n navigation: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1920px' : contentMaxWidth,\n padding: `${tokens.spacingS} ${tokens.spacingM}`,\n height: `${NAVBAR_HEIGHT}px`,\n [mqs.small]: {\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n },\n }),\n\n mainNavigation: (mobileNavigationBp: 'small' | 'medium') =>\n css(\n {\n display: 'none',\n },\n mobileNavigationBp === 'small'\n ? {\n [mqs.small]: {\n display: 'flex',\n },\n }\n : {\n [mqs.medium]: {\n display: 'flex',\n },\n },\n ),\n\n mobileNavigationButton: (mobileNavigationBp: 'small' | 'medium') =>\n css(\n {\n display: 'flex',\n minHeight: 'initial', // unset default 40px height\n height: '36px',\n padding: '0 12px',\n borderRadius: '10px',\n },\n mobileNavigationBp === 'small'\n ? {\n [mqs.small]: {\n display: 'none',\n },\n }\n : {\n [mqs.medium]: {\n display: 'none',\n },\n },\n ),\n mobileNavigationIcon: css({\n heigt: '20px',\n width: '20px',\n }),\n\n secondaryNavigationWrapper: css({\n '> *:not(:first-child)': {\n display: 'none',\n [mqs.xsmall]: {\n display: 'flex',\n },\n },\n }),\n promoNavigationWrapper: css({\n display: 'none',\n [mqs.large]: {\n display: 'flex',\n },\n }),\n account: css({\n display: 'none',\n [mqs.xsmall]: {\n display: 'flex',\n },\n }),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import { css } from '@emotion/css';\nimport { mqs } from '../utils.styles';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: 0,\n [mqs.xsmall]: {\n minWidth: '250px',\n },\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarMenuStyles } from './NavbarMenu.styles';\n\nexport type NavbarMenuProps = {\n trigger: React.ReactElement<Record<string, unknown>, React.ElementType>;\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarMenu = (props: NavbarMenuProps) => {\n const {\n trigger,\n children,\n testId = 'cf-ui-navbar-menu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarMenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.Trigger>{trigger}</Menu.Trigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { type CommonProps, type ExpandProps, Flex } from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\nimport { cx } from '@emotion/css';\nimport { Button } from '@contentful/f36-button';\nimport { ListIcon } from '@contentful/f36-icons';\nimport { NavbarMenu } from './NavbarMenu/NavbarMenu';\n\ntype NavbarOwnProps = CommonProps & {\n /**\n * Accepts a React Component that will be displayed\n * instead of the Contentful Logo\n */\n logo?: React.ReactNode;\n\n /** Promotions component, displayed on most left side */\n promotions?: React.ReactNode;\n\n /** Environment Switcher component */\n switcher?: React.ReactNode;\n\n /** Main Navigation Elements */\n mainNavigation?: React.ReactNode;\n\n /** Secondary Navigation Elements, displayed in the right side */\n secondaryNavigation?: React.ReactNode;\n\n /** User Account Component */\n account?: React.ReactNode;\n\n /** Navigation displayed on mobile versions */\n mobileNavigation?: React.ReactNode;\n\n mobileNavigationProps?: {\n /** breakpoint to determine when to show the mobile navigation */\n breakpoint?: 'small' | 'medium';\n\n /**\n * label of the mobile navigation trigger button\n * @default 'Menu'\n */\n label?: string;\n };\n\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n\n /**\n * Describes the size variation of the Navbar\n * Variant wide will set the contentMaxWidth to 1524px\n */\n variant?: 'wide' | 'fullscreen';\n\n /**\n * aria labels for different areas of the navigation bar\n */\n aria?: {\n labelMainNavigation?: string;\n labelSecondaryNavigation?: string;\n labelPromotions?: string;\n labelAccount?: string;\n };\n};\n\n// expose only the HTML props that are needed to not pollute the API\ntype NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;\n\nexport type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;\n\nfunction _Navbar(props: ExpandProps<NavbarProps>, ref: React.Ref<HTMLElement>) {\n const {\n logo,\n promotions,\n switcher,\n mainNavigation,\n secondaryNavigation,\n account,\n mobileNavigation,\n mobileNavigationProps = { breakpoint: 'small', label: 'Menu' },\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\n aria = {\n labelMainNavigation: 'Main Navigation',\n labelSecondaryNavigation: 'Secondary Navigation',\n labelPromotions: 'Promotions',\n labelAccount: 'Account Navigation',\n },\n ...otherProps\n } = props;\n const styles = getNavbarStyles({ contentMaxWidth, variant });\n\n return (\n <Flex\n {...otherProps}\n ref={ref}\n testId={testId}\n className={cx(styles.container, className)}\n as=\"header\"\n >\n <Flex\n as=\"nav\"\n className={styles.navigation}\n justifyContent=\"space-between\"\n gap=\"spacingXs\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {mobileNavigation && (\n <NavbarMenu\n trigger={\n <Button\n className={styles.mobileNavigationButton(\n mobileNavigationProps.breakpoint,\n )}\n startIcon={<ListIcon size=\"medium\" />}\n >\n {mobileNavigationProps.label}\n </Button>\n }\n >\n {mobileNavigation}\n </NavbarMenu>\n )}\n {mainNavigation && (\n <Flex\n className={styles.mainNavigation(\n mobileNavigationProps.breakpoint,\n )}\n aria-label={aria.labelMainNavigation}\n gap=\"spacingXs\"\n >\n {mainNavigation}\n </Flex>\n )}\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n <Flex\n alignItems=\"center\"\n className={styles.promoNavigationWrapper}\n aria-label={aria.labelPromotions}\n gap=\"spacingXs\"\n >\n {promotions}\n </Flex>\n <Flex alignItems=\"center\">{switcher}</Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation && (\n <Flex\n className={styles.secondaryNavigationWrapper}\n aria-label={aria.labelSecondaryNavigation}\n gap=\"spacingXs\"\n >\n {secondaryNavigation}\n </Flex>\n )}\n {account && (\n <Flex\n className={styles.account}\n aria-label={aria.labelAccount}\n gap=\"spacingXs\"\n >\n {account}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n );\n}\n\nexport const Navbar = React.forwardRef(_Navbar);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { NavbarAccountProps } from './NavbarAccount';\nimport { getGlowOnFocusStyles, increaseHitArea } from '../utils.styles';\n\nconst notificationVarianColorMap: Record<\n NavbarAccountProps['notificationVariant'],\n string\n> = {\n warning: tokens.colorWarning,\n negative: tokens.colorNegative,\n info: tokens.blue500,\n};\n\nexport const getNavbarAccountStyles = () => ({\n navbarAccount: css(\n {\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n border: 'none',\n padding: 0,\n '&:hover img': {\n filter: 'brightness(0.9)',\n },\n },\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n notificationIcon: (variant: NavbarAccountProps['notificationVariant']) =>\n css({\n position: 'absolute',\n top: 0,\n right: 0,\n height: tokens.spacingS,\n width: tokens.spacingS,\n borderRadius: '50%',\n border: `2px solid ${tokens.gray100}`,\n backgroundColor: notificationVarianColorMap[variant],\n transform: 'translate(30%, -30%)',\n zIndex: 1, // move above the avatar\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Flex } from '@contentful/f36-core';\nimport { Avatar } from '@contentful/f36-avatar';\nimport { Tooltip } from '@contentful/f36-tooltip';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\n label?: string;\n /**\n * @default 'warning'\n */\n notificationVariant?: 'warning' | 'negative' | 'info';\n};\n\nexport type NavbarAccountProps = PropsWithHTMLElement<\n NavbarAccountOwnProps,\n 'button'\n>;\n\nfunction NavbarAccountBase(\n props: ExpandProps<NavbarAccountProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-account-trigger',\n avatar,\n label = 'Account menu',\n initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\n <div>\n <Tooltip placement=\"bottom\" content={label} showDelay={600} usePortal>\n <Flex\n as=\"button\"\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarAccount, className)}\n testId={testId}\n alignItems=\"center\"\n aria-label={label}\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n\n {hasNotification ? (\n <span\n className={styles.notificationIcon(notificationVariant)}\n />\n ) : null}\n </Flex>\n </Tooltip>\n </div>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nNavbarAccountBase.displayName = 'NavbarAccount';\nexport const NavbarAccount = React.forwardRef(NavbarAccountBase);\n","import React from 'react';\nimport { SkeletonContainer, SkeletonImage } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport function NavbarAccountSkeleton({ ariaLabel }: { ariaLabel?: string }) {\n return (\n <SkeletonContainer\n svgWidth={24}\n svgHeight={24}\n ariaLabel={ariaLabel}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonImage width={24} height={24} radiusX={12} radiusY={12} />\n </SkeletonContainer>\n );\n}\n\nNavbarAccountSkeleton.displayName = 'NavbarAccountSkeletton';\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles, increaseHitArea, mqs } from '../utils.styles';\n\nconst borderWidth = '1px';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `${borderWidth} solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:focus,&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nexport const getNavbarItemDisabledStyles = () =>\n css({\n border: 'none',\n opacity: 0.5,\n pointerEvents: 'none',\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `calc(${tokens.spacing2Xs} - ${borderWidth}) calc(${tokens.spacingXs} - ${borderWidth})`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = ({ hasTitle }: { hasTitle: boolean }) => ({\n navbarItem: css(\n commonItemStyles,\n {\n appearance: 'none',\n background: 'none',\n outline: 'none',\n border: `${borderWidth} solid transparent`,\n margin: 0,\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightM,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n textAlign: 'left',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n hyphens: 'auto',\n textDecoration: 'none',\n color: tokens.gray800,\n boxSizing: 'border-box',\n transition: `color ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n borderRadius: tokens.borderRadiusMedium,\n height: '30px',\n\n padding: hasTitle\n ? `${tokens.spacing2Xs} ${tokens.spacingXs}`\n : `calc(${tokens.spacing2Xs} - ${borderWidth})`, // square button for icon-only items\n\n '&:focus, &:hover': {\n backgroundColor: tokens.gray200,\n },\n\n '&:active': getNavbarItemActiveStyles(),\n\n '&:disabled': {\n cursor: 'auto',\n },\n\n '& svg': {\n transition: `fill ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n },\n '& > svg, & > span': {\n zIndex: tokens.zIndexDefault,\n },\n },\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n isActive: getNavbarItemActiveStyles(),\n isDisabled: getNavbarItemDisabledStyles(),\n icon: css({\n height: '20px',\n width: '20px',\n boxSizing: 'content-box',\n display: hasTitle ? 'none' : 'block',\n [mqs.small]: {\n height: '16px',\n width: '16px',\n padding: hasTitle ? '2px 0' : '2px', // square for icon-only items\n },\n [mqs.large]: {\n display: 'block',\n },\n }),\n});\n\nexport const getNavbarItemSkeletonStyles = () => ({\n itemSkeleton: css(commonItemStyles),\n});\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n '&:last-child&:not(:only-child)': {\n marginLeft: tokens.spacing2Xs,\n },\n 'img&': {\n borderRadius: tokens.borderRadiusSmall,\n maxWidth: tokens.spacingM,\n maxHeight: tokens.spacingM,\n },\n }),\n});\n","import React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from '@emotion/css';\n\nexport type NavbarItemIconProps = {\n icon: React.ReactElement<IconProps>;\n className?: string;\n} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({\n icon,\n isActive,\n className,\n}: NavbarItemIconProps) => {\n const { className: iconClassName, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(iconClassName, styles.navbarItemIcon, className),\n size: size || 'small',\n isActive,\n ...rest,\n });\n};\n\nNavbarItemIcon.displayName = 'NavbarItemIcon';\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarItemStyles } from './NavbarItem.styles';\nimport { NavbarMenu, type NavbarMenuProps } from '../NavbarMenu/NavbarMenu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { CaretIcon } from '../icons';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\nimport { Tooltip } from '@contentful/f36-tooltip';\n\nconst NAVBAR_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarItemTriggerProps = CommonProps & {\n label?: string;\n title?: string;\n icon?: NavbarItemIconProps['icon'];\n isActive?: boolean;\n as?: React.ElementType;\n isDisabled?: boolean;\n};\n\ntype NavbarItemAsMenuProps = NavbarItemTriggerProps &\n Pick<NavbarMenuProps, 'onOpen' | 'onClose'> & {\n children: React.ReactNode;\n };\ntype NavbarItemAsItemProps = NavbarItemTriggerProps & {\n children?: never;\n onOpen?: never;\n onClose?: never;\n};\ntype NavbarItemOwnProps = NavbarItemAsItemProps | NavbarItemAsMenuProps;\n\nexport type NavbarItemProps<\n E extends React.ElementType = typeof NAVBAR_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarItemOwnProps, E>;\n\nfunction NavbarItemBase(\n props: NavbarItemProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_ITEM_DEFAULT_TAG,\n icon,\n label,\n title,\n children,\n className,\n isActive,\n isDisabled,\n testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles({ hasTitle: !!title });\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const showCaret = title && isMenuTrigger;\n let item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(styles.navbarItem, className, {\n [styles.isActive]: isActive && !isDisabled,\n [styles.isDisabled]: isDisabled,\n })}\n {...(!title && { 'aria-label': label })}\n {...(isDisabled &&\n (Comp === NAVBAR_ITEM_DEFAULT_TAG\n ? { disabled: true }\n : { tabIndex: -1, 'aria-disabled': true }))}\n >\n {icon && (\n <NavbarItemIcon\n className={styles.icon}\n icon={icon}\n isActive={isActive}\n />\n )}\n {title && <span>{title}</span>}\n {showCaret && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\n );\n\n if (!title) {\n item = (\n <div>\n <Tooltip content={label} placement=\"bottom\" showDelay={600} usePortal>\n {item}\n </Tooltip>\n </div>\n );\n }\n\n if (isMenuTrigger) {\n return (\n <NavbarMenu\n trigger={item}\n testId={testId}\n onOpen={onOpen}\n onClose={onClose}\n >\n {children}\n </NavbarMenu>\n );\n }\n\n return item;\n}\n\nconst isNavbarItemHasMenu = <E extends React.ElementType>(\n props: NavbarItemProps<E>,\n): props is PolymorphicProps<NavbarItemAsMenuProps, E> =>\n Boolean(props.children);\n\nNavbarItemBase.displayName = 'NavbarItemBase';\nexport const NavbarItem = React.forwardRef(\n NavbarItemBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n>;\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\nimport { getNavbarItemSkeletonStyles } from './NavbarItem.styles';\n\nexport const NavbarItemSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => {\n const styles = getNavbarItemSkeletonStyles();\n\n return (\n <SkeletonContainer\n className={styles.itemSkeleton}\n svgWidth={estimatedWidth}\n svgHeight={28}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={18}\n numberOfLines={1}\n offsetTop={2}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n );\n};\n\nNavbarItemSkeleton.displayName = 'NavbarItemSkeleton';\n","import { css } from '@emotion/css';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarMenuItemStyles } from './NavbarMenuItem.styles';\nimport { Menu, type MenuItemProps } from '@contentful/f36-menu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { ArrowSquareOutIcon } from '@contentful/f36-icons';\nimport type {\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_MENU_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarMenuItemOwnProps = {\n children?: null;\n title: string;\n icon?: NavbarItemIconProps['icon'];\n as?: React.ElementType;\n} & Omit<MenuItemProps, 'children' | 'as'>;\n\nexport type NavbarMenuItemProps<\n E extends React.ElementType = typeof NAVBAR_MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarMenuItemOwnProps, E>;\n\nfunction NavbarMenuItemBase(\n props: NavbarMenuItemProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_MENU_ITEM_DEFAULT_TAG,\n icon,\n title,\n className,\n ...otherProps\n } = props;\n const styles = getNavbarMenuItemStyles();\n\n const itemIsExternalLink = isExternalLink(\n props as unknown as NavbarMenuItemProps<'a'>,\n );\n\n return (\n <Menu.Item\n {...otherProps}\n ref={ref}\n as={Comp as MenuItemProps['as']}\n className={cx(styles.navbarMenuItem, className)}\n >\n {icon ? (\n <NavbarItemIcon icon={icon} />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = <NavbarItemIcon icon={<ArrowSquareOutIcon />} />;\n\nconst isExternalLink = (props: NavbarMenuItemProps<'a'>) =>\n props.as === 'a' && props.target === '_blank';\n\nexport const NavbarMenuItem = React.forwardRef(\n NavbarMenuItemBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n>;\n","import React from 'react';\nimport { Menu } from '@contentful/f36-menu';\nimport {\n SkeletonBodyText,\n SkeletonContainer,\n SkeletonImage,\n} from '@contentful/f36-skeleton';\nimport { Flex } from '@contentful/f36-core';\n\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarMenuItemSkeleton = ({\n ariaLabel,\n}: {\n ariaLabel?: string;\n}) => (\n <Menu.Item>\n <Flex alignItems=\"center\" gap={tokens.spacingXs}>\n <SkeletonContainer svgHeight={16} svgWidth={18}>\n <SkeletonImage width={16} height={16} />\n </SkeletonContainer>\n <SkeletonContainer svgHeight={16} svgWidth={190} ariaLabel={ariaLabel}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n </Flex>\n </Menu.Item>\n);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nimport { getGlowOnFocusStyles, increaseHitArea, mqs } from '../utils.styles';\nimport { EnvVariant } from './NavbarSwitcher';\n\nconst BORDER_WIDTH = 1;\n\nexport const getNavbarSwitcherStyles = (variant: EnvVariant) => ({\n navbarSwitcher: ({ showSpaceEnv }: { showSpaceEnv: boolean }) =>\n css(\n {\n color: tokens.gray600,\n flexShrink: 1,\n fontWeight: tokens.fontWeightMedium,\n\n maxWidth: '50vw',\n minHeight: 'unset',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n [mqs.xsmall]: {\n maxWidth: '45vw',\n },\n [mqs.medium]: {\n maxWidth: '35vw',\n },\n [mqs.large]: {\n maxWidth: '25vw',\n },\n [mqs.xlarge]: {\n maxWidth: '600px',\n },\n },\n showSpaceEnv && getEnvVariantColor(variant),\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n switcherWrapper: ({ showSpaceEnv }: { showSpaceEnv: boolean }) =>\n css({\n // Set min-width only when there are three span children\n gap: tokens.spacingXs,\n alignItems: 'center',\n minWidth: 0,\n '&:has(> span:last-child:nth-child(3))': {\n minWidth: '12ch',\n },\n '&:before': css({\n content: '\"\"',\n position: 'absolute',\n display: 'block',\n width: `calc(8px - ${BORDER_WIDTH}px)`,\n height: showSpaceEnv ? '26px' : 'unset',\n borderTopLeftRadius: `calc(${tokens.borderRadiusMedium} - ${BORDER_WIDTH}px)`,\n borderBottomLeftRadius: `calc(${tokens.borderRadiusMedium} - ${BORDER_WIDTH}px)`,\n ...getWrapperBackground(variant),\n backgroundPosition: 'bottom',\n }),\n }),\n\n switcherLabelWrapper: css({\n height: '26px',\n paddingLeft: `calc(${tokens.spacingXs} * 2)`,\n alignItems: 'center',\n gap: tokens.spacing2Xs,\n maxWidth: '100%',\n }),\n\n switcherLabel: css({\n color: 'currentcolor',\n fontWeight: 'inherit',\n lineHeight: 'unset',\n display: 'inline-block',\n flexShrink: 1,\n minWidth: '0',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n\n switcherCaret: css({\n flexShrink: 0,\n minWidth: 0,\n }),\n\n switcherEnvIcon: css({\n minWidth: '0',\n [mqs.small]: {\n width: '16px',\n height: '16px',\n },\n }),\n});\n\nexport const getNavbarIconColor = (variant: EnvVariant) => {\n switch (variant) {\n case 'trial':\n return tokens.purple700;\n case 'non-master':\n return tokens.orange700;\n default:\n // Default to master variant\n return tokens.green700;\n }\n};\n\nconst getEnvVariantColor = (variant: EnvVariant) => {\n const sharedStyles = {\n padding: '0',\n paddingRight: tokens.spacingXs,\n };\n\n switch (variant) {\n case 'trial':\n return {\n ...sharedStyles,\n color: tokens.purple700,\n backgroundColor: tokens.purple100,\n border: `${BORDER_WIDTH}px solid ${tokens.purple400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.purple200,\n },\n };\n case 'non-master':\n return {\n ...sharedStyles,\n color: tokens.orange700,\n backgroundColor: tokens.orange100,\n border: `${BORDER_WIDTH}px solid ${tokens.orange400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.orange200,\n },\n };\n default:\n // Default to master variant\n return {\n ...sharedStyles,\n color: tokens.green700,\n backgroundColor: tokens.green100,\n border: `${BORDER_WIDTH}px solid ${tokens.green400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.green200,\n },\n };\n }\n};\n\nconst getWrapperBackground = (variant: EnvVariant) => {\n switch (variant) {\n case 'trial':\n return {\n background: tokens.purple300,\n };\n case 'non-master':\n return {\n background: `linear-gradient(\n -45deg,\n ${tokens.orange300} 28.57%,\n transparent 28.57%,\n transparent 50%,\n ${tokens.orange300} 50%,\n ${tokens.orange300} 78.57%,\n transparent 78.57%,\n transparent 100%\n )`,\n backgroundSize: '9px 9px',\n };\n default:\n // Default to master variant\n return {\n background: tokens.green300,\n };\n }\n};\n","import React from 'react';\nimport { NavbarSwitcherProps } from '../NavbarSwitcher/NavbarSwitcher';\nimport {\n EnvironmentAliasIcon,\n EnvironmentIcon,\n FlaskIcon,\n RocketLaunchIcon,\n} from '@contentful/f36-icons';\nimport tokens from '@contentful/f36-tokens';\n\nexport type NavbarEnvVariantProps = Pick<\n NavbarSwitcherProps,\n 'isAlias' | 'envVariant'\n> & {\n className?: string;\n};\n\nexport function NavbarEnvVariant({\n isAlias,\n envVariant,\n className,\n}: NavbarEnvVariantProps) {\n if (envVariant === 'trial') {\n return (\n <FlaskIcon color={tokens.purple700} className={className} size=\"medium\" />\n );\n }\n\n const isMaster = envVariant === 'master';\n const color = isMaster ? tokens.green700 : tokens.orange700;\n\n if (isMaster) {\n return (\n <RocketLaunchIcon color={color} className={className} size=\"medium\" />\n );\n } else if (isAlias) {\n return (\n <EnvironmentAliasIcon color={color} className={className} size=\"medium\" />\n );\n }\n\n return <EnvironmentIcon color={color} className={className} size=\"medium\" />;\n}\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarSwitcherSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => (\n <SkeletonContainer\n svgWidth={estimatedWidth}\n svgHeight={18}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={18}\n numberOfLines={1}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport {\n getNavbarIconColor,\n getNavbarSwitcherStyles,\n} from './NavbarSwitcher.styles';\nimport { Button } from '@contentful/f36-button';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from '@emotion/css';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport { NavbarSwitcherSkeleton } from './NavbarSwitcherSkeleton';\nimport { CaretRightIcon } from '@contentful/f36-icons';\nimport { Text } from '@contentful/f36-typography';\n\nexport type EnvVariant = 'master' | 'non-master' | 'trial';\n\ntype NavbarLoadingProps =\n | {\n isLoading?: true;\n children?: React.ReactNode;\n environment?: never;\n space?: never;\n }\n | {\n isLoading?: false;\n children?: never;\n environment?: string;\n space?: string;\n };\n\ntype NavbarSwitcherOwnProps = CommonProps &\n NavbarLoadingProps & {\n envVariant?: EnvVariant;\n isAlias?: boolean;\n ariaLabel?: string;\n };\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction NavbarSwitcherBase(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher',\n ariaLabel = 'Space and Environment Navigation',\n space,\n environment,\n isLoading,\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles(envVariant);\n\n return (\n <Button\n {...otherProps}\n aria-label={ariaLabel}\n className={cx(\n styles.navbarSwitcher({ showSpaceEnv: !isLoading && !children }),\n className,\n )}\n endIcon={\n envVariant && (\n <NavbarEnvVariant\n envVariant={envVariant}\n isAlias={isAlias}\n className={styles.switcherEnvIcon}\n />\n )\n }\n ref={ref}\n testId={testId}\n variant=\"transparent\"\n >\n <Flex\n className={styles.switcherWrapper({\n showSpaceEnv: !isLoading && !children,\n })}\n >\n {isLoading ? (\n <NavbarSwitcherSkeleton estimatedWidth={148} />\n ) : (\n <>\n {children ? (\n <Text className={styles.switcherLabel}>{children}</Text>\n ) : (\n <Flex className={styles.switcherLabelWrapper}>\n <Text className={styles.switcherLabel}>{space}</Text>\n {environment && (\n <>\n <Flex className={styles.switcherCaret}>\n <CaretRightIcon\n size=\"tiny\"\n color={getNavbarIconColor(envVariant)}\n />\n </Flex>\n <Text className={styles.switcherLabel}>{environment}</Text>\n </>\n )}\n </Flex>\n )}\n </>\n )}\n </Flex>\n </Button>\n );\n}\n\nNavbarSwitcherBase.displayName = 'NavbarSwitcher';\nexport const NavbarSwitcher = React.forwardRef(NavbarSwitcherBase);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarBadgeStyles = () => ({\n navbarBadge: css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'none',\n border: `1px solid ${tokens.purple600}`,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeS,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n textAlign: 'center',\n padding: `0 ${tokens.spacingXs}`,\n textDecoration: 'none',\n color: `${tokens.purple600}!important`,\n borderRadius: '1.75rem',\n userSelect: 'none',\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarBadgeStyles } from './NavbarBadge.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'div';\n\ntype NavbarBadgeOwnProps = CommonProps & {\n children?: React.ReactNode;\n as?: React.ElementType;\n};\n\nexport type NavbarBadgeProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarBadgeOwnProps, E>;\n\nfunction NavbarBadgeBase(\n props: NavbarBadgeProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-badge',\n ...otherProps\n } = props;\n const styles = getNavbarBadgeStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarBadge, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nNavbarBadgeBase.displayName = 'NavbarBadge';\nexport const NavbarBadge = React.forwardRef(\n NavbarBadgeBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n>;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\nimport { mqs } from '../utils.styles';\n\nexport const getNavbarSubmenuStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n gap: tokens.spacingXs,\n }),\n menuList: css({\n minWidth: 0,\n marginLeft: '-24px',\n marginTop: '10px',\n [mqs.xsmall]: {\n minWidth: '250px',\n margin: 0,\n },\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarSubmenuStyles } from './NavbarMenu.styles';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { Flex } from '@contentful/f36-core';\n\nexport type NavbarSubmenuProps = {\n title: string;\n icon?: NavbarItemIconProps['icon'];\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarSubmenu = (props: NavbarSubmenuProps) => {\n const {\n title,\n icon,\n children,\n testId = 'cf-ui-navbar-submenu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarSubmenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.SubmenuTrigger>\n <Flex className={styles.navbarMenuItem}>\n {icon && <NavbarItemIcon icon={icon} />}\n <span>{title}</span>\n </Flex>\n </Menu.SubmenuTrigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { MenuDivider } from '@contentful/f36-menu';\nimport { MenuSectionTitle } from '@contentful/f36-menu';\nimport { Navbar as OriginalNavbar } from './Navbar';\n\nimport { NavbarAccount, NavbarAccountSkeleton } from './NavbarAccount';\nimport { NavbarItem, NavbarItemSkeleton } from './NavbarItem';\nimport { NavbarMenuItem, NavbarMenuItemSkeleton } from './NavbarMenuItem';\nimport { NavbarSwitcher, NavbarSwitcherSkeleton } from './NavbarSwitcher';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\nimport { NavbarSubmenu } from './NavbarSubmenu/NavbarSubmenu';\n\ntype CompoundNavbar = typeof OriginalNavbar & {\n Item: typeof NavbarItem;\n ItemSkeleton: typeof NavbarItemSkeleton;\n MenuItem: typeof NavbarMenuItem;\n MenuItemSkeleton: typeof NavbarMenuItemSkeleton;\n MenuDivider: typeof MenuDivider;\n MenuSectionTitle: typeof MenuSectionTitle;\n Submenu: typeof NavbarSubmenu;\n Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n};\n\nexport const Navbar = OriginalNavbar as CompoundNavbar;\nNavbar.Item = NavbarItem;\nNavbar.ItemSkeleton = NavbarItemSkeleton;\nNavbar.MenuItem = NavbarMenuItem;\nNavbar.MenuItemSkeleton = NavbarMenuItemSkeleton;\nNavbar.MenuDivider = MenuDivider;\nNavbar.MenuSectionTitle = MenuSectionTitle;\nNavbar.Submenu = NavbarSubmenu;\nNavbar.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/constants.ts","../src/utils.styles.ts","../src/Navbar.styles.ts","../src/icons/CaretIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../src/NavbarMenu/NavbarMenu.styles.ts","../src/NavbarMenu/NavbarMenu.tsx","../src/Navbar.tsx","../src/NavbarAccount/NavbarAccount.styles.ts","../src/NavbarAccount/NavbarAccount.tsx","../src/NavbarAccount/NavbarAccountSkeleton.tsx","../src/NavbarItem/NavbarItem.styles.ts","../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../src/NavbarItemIcon/NavbarItemIcon.tsx","../src/NavbarItem/NavbarItem.tsx","../src/NavbarItem/NavbarItemSkeleton.tsx","../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../src/NavbarMenuItem/NavbarMenuItem.tsx","../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../src/NavbarSwitcher/NavbarEnvVariant.tsx","../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../src/NavbarSwitcher/NavbarSwitcher.tsx","../src/NavbarBadge/NavbarBadge.styles.ts","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarSubmenu/NavbarMenu.styles.ts","../src/NavbarSubmenu/NavbarSubmenu.tsx","../src/CompoundNavbar.ts"],"names":["NAVBAR_HEIGHT","mqs","getGlowOnFocusStyles","shadow","tokens","css","increaseHitArea","minSize","getNavbarStyles","contentMaxWidth","variant","mobileNavigationBp","CaretIcon","generateComponentWithVariants","IconVariant","generateIconComponent","React","ContentfulLogoIcon","getNavbarMenuStyles","NavbarMenu","props","trigger","children","testId","onOpen","onClose","styles","Menu","_Navbar","ref","_a","logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","aria","otherProps","__objRest","Flex","__spreadProps","__spreadValues","cx","Button","ListIcon","Navbar","notificationVarianColorMap","getNavbarAccountStyles","NavbarAccountBase","avatar","label","initials","username","hasNotification","notificationVariant","Tooltip","Avatar","NavbarAccount","NavbarAccountSkeleton","ariaLabel","SkeletonContainer","SkeletonImage","borderWidth","getNavbarItemActiveStyles","getNavbarItemDisabledStyles","commonItemStyles","getNavbarItemStyles","hasTitle","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","iconClassName","size","rest","NAVBAR_ITEM_DEFAULT_TAG","NavbarItemBase","Comp","title","isDisabled","isMenuTrigger","isNavbarItemHasMenu","showCaret","item","NavbarItem","NavbarItemSkeleton","estimatedWidth","SkeletonText","getNavbarMenuItemStyles","NAVBAR_MENU_ITEM_DEFAULT_TAG","NavbarMenuItemBase","itemIsExternalLink","isExternalLink","externalIcon","ArrowSquareOutIcon","NavbarMenuItem","NavbarMenuItemSkeleton","SkeletonBodyText","BORDER_WIDTH","getNavbarSwitcherStyles","showSpaceEnv","hexToRGBA","getEnvVariantColor","getWrapperBackground","getNavbarIconColor","sharedStyles","NavbarEnvVariant","isAlias","envVariant","FlaskIcon","isMaster","color","RocketLaunchIcon","EnvironmentAliasIcon","EnvironmentIcon","NavbarSwitcherSkeleton","NavbarSwitcherBase","space","environment","isLoading","Text","CaretRightIcon","NavbarSwitcher","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","NavbarBadgeBase","NavbarBadge","getNavbarSubmenuStyles","NavbarSubmenu","MenuDivider","MenuSectionTitle"],"mappings":"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","file":"index.js","sourcesContent":["export const NAVBAR_HEIGHT = 60;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\ntype screens = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\n\nexport const mqs: mediaqueries = {\n xsmall: '@media (min-width: 576px)',\n small: '@media (min-width: 867px)',\n medium: '@media (min-width: 1024px)',\n large: '@media (min-width: 1200px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) =>\n css({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n });\n\nexport const increaseHitArea = (minSize = '44px') =>\n css({\n overflow: 'visible',\n position: 'relative',\n '&:after': {\n minHeight: minSize,\n minWidth: minSize,\n position: 'absolute',\n width: '100%',\n content: '\"\"',\n left: '50%',\n top: '50%',\n transform: 'translate(-50%, -50%)',\n },\n });\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from './utils.styles';\nimport { NavbarProps } from './Navbar';\nimport { NAVBAR_HEIGHT } from './constants';\n\nexport const getNavbarStyles = ({\n contentMaxWidth,\n variant,\n}: Pick<NavbarProps, 'contentMaxWidth' | 'variant'>) => ({\n container: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n width: '100%',\n }),\n logo: css({\n display: 'none',\n [mqs.small]: {\n display: 'block',\n height: '28px',\n width: '28px',\n },\n }),\n\n navigation: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1920px' : contentMaxWidth,\n padding: `${tokens.spacingS} ${tokens.spacingM}`,\n height: `${NAVBAR_HEIGHT}px`,\n [mqs.small]: {\n padding: `${tokens.spacingM} ${tokens.spacingL}`,\n },\n }),\n\n mainNavigation: (mobileNavigationBp: 'small' | 'medium') =>\n css(\n {\n display: 'none',\n },\n mobileNavigationBp === 'small'\n ? {\n [mqs.small]: {\n display: 'flex',\n },\n }\n : {\n [mqs.medium]: {\n display: 'flex',\n },\n },\n ),\n\n mobileNavigationButton: (mobileNavigationBp: 'small' | 'medium') =>\n css(\n {\n display: 'flex',\n minHeight: 'initial', // unset default 40px height\n height: '36px',\n padding: '0 12px',\n borderRadius: '10px',\n },\n mobileNavigationBp === 'small'\n ? {\n [mqs.small]: {\n display: 'none',\n },\n }\n : {\n [mqs.medium]: {\n display: 'none',\n },\n },\n ),\n mobileNavigationIcon: css({\n heigt: '20px',\n width: '20px',\n }),\n\n secondaryNavigationWrapper: css({\n '> *:not(:first-child)': {\n display: 'none',\n [mqs.xsmall]: {\n display: 'flex',\n },\n },\n }),\n promoNavigationWrapper: css({\n display: 'none',\n [mqs.large]: {\n display: 'flex',\n },\n }),\n account: css({\n display: 'none',\n [mqs.xsmall]: {\n display: 'flex',\n },\n }),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import { css } from '@emotion/css';\nimport { mqs } from '../utils.styles';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: 0,\n [mqs.xsmall]: {\n minWidth: '250px',\n },\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarMenuStyles } from './NavbarMenu.styles';\n\nexport type NavbarMenuProps = {\n trigger: React.ReactElement<Record<string, unknown>, React.ElementType>;\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarMenu = (props: NavbarMenuProps) => {\n const {\n trigger,\n children,\n testId = 'cf-ui-navbar-menu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarMenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.Trigger>{trigger}</Menu.Trigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { type CommonProps, type ExpandProps, Flex } from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\nimport { cx } from '@emotion/css';\nimport { Button } from '@contentful/f36-button';\nimport { ListIcon } from '@contentful/f36-icons';\nimport { NavbarMenu } from './NavbarMenu/NavbarMenu';\n\ntype NavbarOwnProps = CommonProps & {\n /**\n * Accepts a React Component that will be displayed\n * instead of the Contentful Logo\n */\n logo?: React.ReactNode;\n\n /** Promotions component, displayed on most left side */\n promotions?: React.ReactNode;\n\n /** Environment Switcher component */\n switcher?: React.ReactNode;\n\n /** Main Navigation Elements */\n mainNavigation?: React.ReactNode;\n\n /** Secondary Navigation Elements, displayed in the right side */\n secondaryNavigation?: React.ReactNode;\n\n /** User Account Component */\n account?: React.ReactNode;\n\n /** Navigation displayed on mobile versions */\n mobileNavigation?: React.ReactNode;\n\n mobileNavigationProps?: {\n /** breakpoint to determine when to show the mobile navigation */\n breakpoint?: 'small' | 'medium';\n\n /**\n * label of the mobile navigation trigger button\n * @default 'Menu'\n */\n label?: string;\n };\n\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n\n /**\n * Describes the size variation of the Navbar\n * Variant wide will set the contentMaxWidth to 1524px\n */\n variant?: 'wide' | 'fullscreen';\n\n /**\n * aria labels for different areas of the navigation bar\n */\n aria?: {\n labelMainNavigation?: string;\n labelSecondaryNavigation?: string;\n labelPromotions?: string;\n labelAccount?: string;\n };\n};\n\n// expose only the HTML props that are needed to not pollute the API\ntype NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;\n\nexport type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;\n\nfunction _Navbar(props: ExpandProps<NavbarProps>, ref: React.Ref<HTMLElement>) {\n const {\n logo,\n promotions,\n switcher,\n mainNavigation,\n secondaryNavigation,\n account,\n mobileNavigation,\n mobileNavigationProps = { breakpoint: 'small', label: 'Menu' },\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\n aria = {\n labelMainNavigation: 'Main Navigation',\n labelSecondaryNavigation: 'Secondary Navigation',\n labelPromotions: 'Promotions',\n labelAccount: 'Account Navigation',\n },\n ...otherProps\n } = props;\n const styles = getNavbarStyles({ contentMaxWidth, variant });\n\n return (\n <Flex\n {...otherProps}\n ref={ref}\n testId={testId}\n className={cx(styles.container, className)}\n as=\"header\"\n >\n <Flex\n as=\"nav\"\n className={styles.navigation}\n justifyContent=\"space-between\"\n gap=\"spacingXs\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {mobileNavigation && (\n <NavbarMenu\n trigger={\n <Button\n className={styles.mobileNavigationButton(\n mobileNavigationProps.breakpoint,\n )}\n startIcon={<ListIcon size=\"medium\" />}\n >\n {mobileNavigationProps.label}\n </Button>\n }\n >\n {mobileNavigation}\n </NavbarMenu>\n )}\n {mainNavigation && (\n <Flex\n className={styles.mainNavigation(\n mobileNavigationProps.breakpoint,\n )}\n aria-label={aria.labelMainNavigation}\n gap=\"spacingXs\"\n >\n {mainNavigation}\n </Flex>\n )}\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n <Flex\n alignItems=\"center\"\n className={styles.promoNavigationWrapper}\n aria-label={aria.labelPromotions}\n gap=\"spacingXs\"\n >\n {promotions}\n </Flex>\n <Flex alignItems=\"center\">{switcher}</Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation && (\n <Flex\n className={styles.secondaryNavigationWrapper}\n aria-label={aria.labelSecondaryNavigation}\n gap=\"spacingXs\"\n >\n {secondaryNavigation}\n </Flex>\n )}\n {account && (\n <Flex\n className={styles.account}\n aria-label={aria.labelAccount}\n gap=\"spacingXs\"\n >\n {account}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Flex>\n );\n}\n\nexport const Navbar = React.forwardRef(_Navbar);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { NavbarAccountProps } from './NavbarAccount';\nimport { getGlowOnFocusStyles, increaseHitArea } from '../utils.styles';\n\nconst notificationVarianColorMap: Record<\n NavbarAccountProps['notificationVariant'],\n string\n> = {\n warning: tokens.colorWarning,\n negative: tokens.colorNegative,\n info: tokens.blue500,\n};\n\nexport const getNavbarAccountStyles = () => ({\n navbarAccount: css(\n {\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n border: 'none',\n padding: 0,\n '&:hover img': {\n filter: 'brightness(0.9)',\n },\n },\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n notificationIcon: (variant: NavbarAccountProps['notificationVariant']) =>\n css({\n position: 'absolute',\n top: 0,\n right: 0,\n height: tokens.spacingS,\n width: tokens.spacingS,\n borderRadius: '50%',\n border: `2px solid ${tokens.gray100}`,\n backgroundColor: notificationVarianColorMap[variant],\n transform: 'translate(30%, -30%)',\n zIndex: 1, // move above the avatar\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Flex } from '@contentful/f36-core';\nimport { Avatar } from '@contentful/f36-avatar';\nimport { Tooltip } from '@contentful/f36-tooltip';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\n label?: string;\n /**\n * @default 'warning'\n */\n notificationVariant?: 'warning' | 'negative' | 'info';\n};\n\nexport type NavbarAccountProps = PropsWithHTMLElement<\n NavbarAccountOwnProps,\n 'button'\n>;\n\nfunction NavbarAccountBase(\n props: ExpandProps<NavbarAccountProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-account-trigger',\n avatar,\n label = 'Account menu',\n initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\n <div>\n <Tooltip placement=\"bottom\" content={label} showDelay={600} usePortal>\n <Flex\n as=\"button\"\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarAccount, className)}\n testId={testId}\n alignItems=\"center\"\n aria-label={label}\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n\n {hasNotification ? (\n <span\n className={styles.notificationIcon(notificationVariant)}\n />\n ) : null}\n </Flex>\n </Tooltip>\n </div>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nNavbarAccountBase.displayName = 'NavbarAccount';\nexport const NavbarAccount = React.forwardRef(NavbarAccountBase);\n","import React from 'react';\nimport { SkeletonContainer, SkeletonImage } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport function NavbarAccountSkeleton({ ariaLabel }: { ariaLabel?: string }) {\n return (\n <SkeletonContainer\n svgWidth={24}\n svgHeight={24}\n ariaLabel={ariaLabel}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonImage width={24} height={24} radiusX={12} radiusY={12} />\n </SkeletonContainer>\n );\n}\n\nNavbarAccountSkeleton.displayName = 'NavbarAccountSkeletton';\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles, increaseHitArea, mqs } from '../utils.styles';\n\nconst borderWidth = '1px';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `${borderWidth} solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:focus,&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nexport const getNavbarItemDisabledStyles = () =>\n css({\n border: 'none',\n opacity: 0.5,\n pointerEvents: 'none',\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `calc(${tokens.spacing2Xs} - ${borderWidth}) calc(${tokens.spacingXs} - ${borderWidth})`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = ({ hasTitle }: { hasTitle: boolean }) => ({\n navbarItem: css(\n commonItemStyles,\n {\n appearance: 'none',\n background: 'none',\n outline: 'none',\n border: `${borderWidth} solid transparent`,\n margin: 0,\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightM,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n textAlign: 'left',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n hyphens: 'auto',\n textDecoration: 'none',\n color: tokens.gray800,\n boxSizing: 'border-box',\n transition: `color ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n borderRadius: tokens.borderRadiusMedium,\n height: '30px',\n\n padding: hasTitle\n ? `${tokens.spacing2Xs} ${tokens.spacingXs}`\n : `calc(${tokens.spacing2Xs} - ${borderWidth})`, // square button for icon-only items\n\n '&:focus, &:hover': {\n backgroundColor: tokens.gray200,\n },\n\n '&:active': getNavbarItemActiveStyles(),\n\n '&:disabled': {\n cursor: 'auto',\n },\n\n '& svg': {\n transition: `fill ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n },\n '& > svg, & > span': {\n zIndex: tokens.zIndexDefault,\n },\n },\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n isActive: getNavbarItemActiveStyles(),\n isDisabled: getNavbarItemDisabledStyles(),\n icon: css({\n height: '20px',\n width: '20px',\n boxSizing: 'content-box',\n display: hasTitle ? 'none' : 'block',\n [mqs.small]: {\n height: '16px',\n width: '16px',\n padding: hasTitle ? '2px 0' : '2px', // square for icon-only items\n },\n [mqs.large]: {\n display: 'block',\n },\n }),\n});\n\nexport const getNavbarItemSkeletonStyles = () => ({\n itemSkeleton: css(commonItemStyles),\n});\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n '&:last-child&:not(:only-child)': {\n marginLeft: tokens.spacing2Xs,\n },\n 'img&': {\n borderRadius: tokens.borderRadiusSmall,\n maxWidth: tokens.spacingM,\n maxHeight: tokens.spacingM,\n },\n }),\n});\n","import React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from '@emotion/css';\n\nexport type NavbarItemIconProps = {\n icon: React.ReactElement<IconProps>;\n className?: string;\n} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({\n icon,\n isActive,\n className,\n}: NavbarItemIconProps) => {\n const { className: iconClassName, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(iconClassName, styles.navbarItemIcon, className),\n size: size || 'small',\n isActive,\n ...rest,\n });\n};\n\nNavbarItemIcon.displayName = 'NavbarItemIcon';\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarItemStyles } from './NavbarItem.styles';\nimport { NavbarMenu, type NavbarMenuProps } from '../NavbarMenu/NavbarMenu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { CaretIcon } from '../icons';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\nimport { Tooltip } from '@contentful/f36-tooltip';\n\nconst NAVBAR_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarItemTriggerProps = CommonProps & {\n label?: string;\n title?: string;\n icon?: NavbarItemIconProps['icon'];\n isActive?: boolean;\n as?: React.ElementType;\n isDisabled?: boolean;\n};\n\ntype NavbarItemAsMenuProps = NavbarItemTriggerProps &\n Pick<NavbarMenuProps, 'onOpen' | 'onClose'> & {\n children: React.ReactNode;\n };\ntype NavbarItemAsItemProps = NavbarItemTriggerProps & {\n children?: never;\n onOpen?: never;\n onClose?: never;\n};\ntype NavbarItemOwnProps = NavbarItemAsItemProps | NavbarItemAsMenuProps;\n\nexport type NavbarItemProps<\n E extends React.ElementType = typeof NAVBAR_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarItemOwnProps, E>;\n\nfunction NavbarItemBase(\n props: NavbarItemProps<React.ElementType>,\n ref: React.Ref<HTMLElement>,\n) {\n const {\n as: Comp = NAVBAR_ITEM_DEFAULT_TAG,\n icon,\n label,\n title,\n children,\n className,\n isActive,\n isDisabled,\n testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles({ hasTitle: !!title });\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const showCaret = title && isMenuTrigger;\n let item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(styles.navbarItem, className, {\n [styles.isActive]: isActive && !isDisabled,\n [styles.isDisabled]: isDisabled,\n })}\n {...(!title && { 'aria-label': label })}\n {...(isDisabled &&\n (Comp === NAVBAR_ITEM_DEFAULT_TAG\n ? { disabled: true }\n : { tabIndex: -1, 'aria-disabled': true }))}\n >\n {icon && (\n <NavbarItemIcon\n className={styles.icon}\n icon={icon}\n isActive={isActive}\n />\n )}\n {title && <span>{title}</span>}\n {showCaret && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\n );\n\n if (!title) {\n item = (\n <div>\n <Tooltip content={label} placement=\"bottom\" showDelay={600} usePortal>\n {item}\n </Tooltip>\n </div>\n );\n }\n\n if (isMenuTrigger) {\n return (\n <NavbarMenu\n trigger={item}\n testId={testId}\n onOpen={onOpen}\n onClose={onClose}\n >\n {children}\n </NavbarMenu>\n );\n }\n\n return item;\n}\n\nconst isNavbarItemHasMenu = <E extends React.ElementType>(\n props: NavbarItemProps<E>,\n): props is PolymorphicProps<NavbarItemAsMenuProps, E> =>\n Boolean(props.children);\n\nNavbarItemBase.displayName = 'NavbarItem';\nexport const NavbarItem = React.forwardRef(\n NavbarItemBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n>;\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\nimport { getNavbarItemSkeletonStyles } from './NavbarItem.styles';\n\nexport const NavbarItemSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => {\n const styles = getNavbarItemSkeletonStyles();\n\n return (\n <SkeletonContainer\n className={styles.itemSkeleton}\n svgWidth={estimatedWidth}\n svgHeight={28}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={18}\n numberOfLines={1}\n offsetTop={2}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n );\n};\n\nNavbarItemSkeleton.displayName = 'NavbarItemSkeleton';\n","import { css } from '@emotion/css';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarMenuItemStyles } from './NavbarMenuItem.styles';\nimport { Menu, type MenuItemProps } from '@contentful/f36-menu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { ArrowSquareOutIcon } from '@contentful/f36-icons';\nimport type {\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_MENU_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarMenuItemOwnProps = {\n children?: null;\n title: string;\n icon?: NavbarItemIconProps['icon'];\n as?: React.ElementType;\n} & Omit<MenuItemProps, 'children' | 'as'>;\n\nexport type NavbarMenuItemProps<\n E extends React.ElementType = typeof NAVBAR_MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarMenuItemOwnProps, E>;\n\nfunction NavbarMenuItemBase(\n props: NavbarMenuItemProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_MENU_ITEM_DEFAULT_TAG,\n icon,\n title,\n className,\n ...otherProps\n } = props;\n const styles = getNavbarMenuItemStyles();\n\n const itemIsExternalLink = isExternalLink(\n props as unknown as NavbarMenuItemProps<'a'>,\n );\n\n return (\n <Menu.Item\n {...otherProps}\n ref={ref}\n as={Comp as MenuItemProps['as']}\n className={cx(styles.navbarMenuItem, className)}\n >\n {icon ? (\n <NavbarItemIcon icon={icon} />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = <NavbarItemIcon icon={<ArrowSquareOutIcon />} />;\n\nconst isExternalLink = (props: NavbarMenuItemProps<'a'>) =>\n props.as === 'a' && props.target === '_blank';\n\nexport const NavbarMenuItem = React.forwardRef(\n NavbarMenuItemBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n>;\n","import React from 'react';\nimport { Menu } from '@contentful/f36-menu';\nimport {\n SkeletonBodyText,\n SkeletonContainer,\n SkeletonImage,\n} from '@contentful/f36-skeleton';\nimport { Flex } from '@contentful/f36-core';\n\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarMenuItemSkeleton = ({\n ariaLabel,\n}: {\n ariaLabel?: string;\n}) => (\n <Menu.Item>\n <Flex alignItems=\"center\" gap={tokens.spacingXs}>\n <SkeletonContainer svgHeight={16} svgWidth={18}>\n <SkeletonImage width={16} height={16} />\n </SkeletonContainer>\n <SkeletonContainer svgHeight={16} svgWidth={190} ariaLabel={ariaLabel}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n </Flex>\n </Menu.Item>\n);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nimport { getGlowOnFocusStyles, increaseHitArea, mqs } from '../utils.styles';\nimport { EnvVariant } from './NavbarSwitcher';\n\nconst BORDER_WIDTH = 1;\n\nexport const getNavbarSwitcherStyles = (variant: EnvVariant) => ({\n navbarSwitcher: ({ showSpaceEnv }: { showSpaceEnv: boolean }) =>\n css(\n {\n color: tokens.gray600,\n flexShrink: 1,\n fontWeight: tokens.fontWeightMedium,\n\n maxWidth: '50vw',\n minHeight: 'unset',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n [mqs.xsmall]: {\n maxWidth: '45vw',\n },\n [mqs.medium]: {\n maxWidth: '35vw',\n },\n [mqs.large]: {\n maxWidth: '25vw',\n },\n [mqs.xlarge]: {\n maxWidth: '600px',\n },\n },\n showSpaceEnv && getEnvVariantColor(variant),\n getGlowOnFocusStyles(),\n increaseHitArea(),\n ),\n switcherWrapper: ({ showSpaceEnv }: { showSpaceEnv: boolean }) =>\n css({\n // Set min-width only when there are three span children\n gap: tokens.spacingXs,\n alignItems: 'center',\n minWidth: 0,\n '&:has(> span:last-child:nth-child(3))': {\n minWidth: '12ch',\n },\n '&:before': css({\n content: '\"\"',\n position: 'absolute',\n display: 'block',\n width: `calc(8px - ${BORDER_WIDTH}px)`,\n height: showSpaceEnv ? '26px' : 'unset',\n borderTopLeftRadius: `calc(${tokens.borderRadiusMedium} - ${BORDER_WIDTH}px)`,\n borderBottomLeftRadius: `calc(${tokens.borderRadiusMedium} - ${BORDER_WIDTH}px)`,\n ...getWrapperBackground(variant),\n backgroundPosition: 'bottom',\n }),\n }),\n\n switcherLabelWrapper: css({\n height: '26px',\n paddingLeft: `calc(${tokens.spacingXs} * 2)`,\n alignItems: 'center',\n gap: tokens.spacing2Xs,\n maxWidth: '100%',\n }),\n\n switcherLabel: css({\n color: 'currentcolor',\n fontWeight: 'inherit',\n lineHeight: 'unset',\n display: 'inline-block',\n flexShrink: 1,\n minWidth: '0',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n\n switcherCaret: css({\n flexShrink: 0,\n minWidth: 0,\n }),\n\n switcherEnvIcon: css({\n minWidth: '0',\n [mqs.small]: {\n width: '16px',\n height: '16px',\n },\n }),\n});\n\nexport const getNavbarIconColor = (variant: EnvVariant) => {\n switch (variant) {\n case 'trial':\n return tokens.purple700;\n case 'non-master':\n return tokens.orange700;\n default:\n // Default to master variant\n return tokens.green700;\n }\n};\n\nconst getEnvVariantColor = (variant: EnvVariant) => {\n const sharedStyles = {\n padding: '0',\n paddingRight: tokens.spacingXs,\n };\n\n switch (variant) {\n case 'trial':\n return {\n ...sharedStyles,\n color: tokens.purple700,\n backgroundColor: tokens.purple100,\n border: `${BORDER_WIDTH}px solid ${tokens.purple400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.purple200,\n },\n };\n case 'non-master':\n return {\n ...sharedStyles,\n color: tokens.orange700,\n backgroundColor: tokens.orange100,\n border: `${BORDER_WIDTH}px solid ${tokens.orange400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.orange200,\n },\n };\n default:\n // Default to master variant\n return {\n ...sharedStyles,\n color: tokens.green700,\n backgroundColor: tokens.green100,\n border: `${BORDER_WIDTH}px solid ${tokens.green400}`,\n '&:hover, &:active': {\n backgroundColor: tokens.green200,\n },\n };\n }\n};\n\nconst getWrapperBackground = (variant: EnvVariant) => {\n switch (variant) {\n case 'trial':\n return {\n background: tokens.purple300,\n };\n case 'non-master':\n return {\n background: `linear-gradient(\n -45deg,\n ${tokens.orange300} 28.57%,\n transparent 28.57%,\n transparent 50%,\n ${tokens.orange300} 50%,\n ${tokens.orange300} 78.57%,\n transparent 78.57%,\n transparent 100%\n )`,\n backgroundSize: '9px 9px',\n };\n default:\n // Default to master variant\n return {\n background: tokens.green300,\n };\n }\n};\n","import React from 'react';\nimport { NavbarSwitcherProps } from '../NavbarSwitcher/NavbarSwitcher';\nimport {\n EnvironmentAliasIcon,\n EnvironmentIcon,\n FlaskIcon,\n RocketLaunchIcon,\n} from '@contentful/f36-icons';\nimport tokens from '@contentful/f36-tokens';\n\nexport type NavbarEnvVariantProps = Pick<\n NavbarSwitcherProps,\n 'isAlias' | 'envVariant'\n> & {\n className?: string;\n};\n\nexport function NavbarEnvVariant({\n isAlias,\n envVariant,\n className,\n}: NavbarEnvVariantProps) {\n if (envVariant === 'trial') {\n return (\n <FlaskIcon color={tokens.purple700} className={className} size=\"medium\" />\n );\n }\n\n const isMaster = envVariant === 'master';\n const color = isMaster ? tokens.green700 : tokens.orange700;\n\n if (isMaster) {\n return (\n <RocketLaunchIcon color={color} className={className} size=\"medium\" />\n );\n } else if (isAlias) {\n return (\n <EnvironmentAliasIcon color={color} className={className} size=\"medium\" />\n );\n }\n\n return <EnvironmentIcon color={color} className={className} size=\"medium\" />;\n}\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarSwitcherSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => (\n <SkeletonContainer\n svgWidth={estimatedWidth}\n svgHeight={18}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={18}\n numberOfLines={1}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport {\n getNavbarIconColor,\n getNavbarSwitcherStyles,\n} from './NavbarSwitcher.styles';\nimport { Button } from '@contentful/f36-button';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from '@emotion/css';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport { NavbarSwitcherSkeleton } from './NavbarSwitcherSkeleton';\nimport { CaretRightIcon } from '@contentful/f36-icons';\nimport { Text } from '@contentful/f36-typography';\n\nexport type EnvVariant = 'master' | 'non-master' | 'trial';\n\ntype NavbarLoadingProps =\n | {\n isLoading?: true;\n children?: React.ReactNode;\n environment?: never;\n space?: never;\n }\n | {\n isLoading?: false;\n children?: never;\n environment?: string;\n space?: string;\n };\n\ntype NavbarSwitcherOwnProps = CommonProps &\n NavbarLoadingProps & {\n envVariant?: EnvVariant;\n isAlias?: boolean;\n ariaLabel?: string;\n };\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction NavbarSwitcherBase(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher',\n ariaLabel = 'Space and Environment Navigation',\n space,\n environment,\n isLoading,\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles(envVariant);\n\n return (\n <Button\n {...otherProps}\n aria-label={ariaLabel}\n className={cx(\n styles.navbarSwitcher({ showSpaceEnv: !isLoading && !children }),\n className,\n )}\n endIcon={\n envVariant && (\n <NavbarEnvVariant\n envVariant={envVariant}\n isAlias={isAlias}\n className={styles.switcherEnvIcon}\n />\n )\n }\n ref={ref}\n testId={testId}\n variant=\"transparent\"\n >\n <Flex\n className={styles.switcherWrapper({\n showSpaceEnv: !isLoading && !children,\n })}\n >\n {isLoading ? (\n <NavbarSwitcherSkeleton estimatedWidth={148} />\n ) : (\n <>\n {children ? (\n <Text className={styles.switcherLabel}>{children}</Text>\n ) : (\n <Flex className={styles.switcherLabelWrapper}>\n <Text className={styles.switcherLabel}>{space}</Text>\n {environment && (\n <>\n <Flex className={styles.switcherCaret}>\n <CaretRightIcon\n size=\"tiny\"\n color={getNavbarIconColor(envVariant)}\n />\n </Flex>\n <Text className={styles.switcherLabel}>{environment}</Text>\n </>\n )}\n </Flex>\n )}\n </>\n )}\n </Flex>\n </Button>\n );\n}\n\nNavbarSwitcherBase.displayName = 'NavbarSwitcher';\nexport const NavbarSwitcher = React.forwardRef(NavbarSwitcherBase);\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarBadgeStyles = () => ({\n navbarBadge: css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'none',\n border: `1px solid ${tokens.purple600}`,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeS,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n textAlign: 'center',\n padding: `0 ${tokens.spacingXs}`,\n textDecoration: 'none',\n color: `${tokens.purple600}!important`,\n borderRadius: '1.75rem',\n userSelect: 'none',\n }),\n});\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { getNavbarBadgeStyles } from './NavbarBadge.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'div';\n\ntype NavbarBadgeOwnProps = CommonProps & {\n children?: React.ReactNode;\n as?: React.ElementType;\n};\n\nexport type NavbarBadgeProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarBadgeOwnProps, E>;\n\nfunction NavbarBadgeBase(\n props: NavbarBadgeProps<React.ElementType>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-badge',\n ...otherProps\n } = props;\n const styles = getNavbarBadgeStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarBadge, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nNavbarBadgeBase.displayName = 'NavbarBadge';\nexport const NavbarBadge = React.forwardRef(\n NavbarBadgeBase,\n) as PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n>;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\nimport { mqs } from '../utils.styles';\n\nexport const getNavbarSubmenuStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n gap: tokens.spacingXs,\n }),\n menuList: css({\n minWidth: 0,\n marginLeft: '-24px',\n marginTop: '10px',\n [mqs.xsmall]: {\n minWidth: '250px',\n margin: 0,\n },\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarSubmenuStyles } from './NavbarMenu.styles';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { Flex } from '@contentful/f36-core';\n\nexport type NavbarSubmenuProps = {\n title: string;\n icon?: NavbarItemIconProps['icon'];\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarSubmenu = (props: NavbarSubmenuProps) => {\n const {\n title,\n icon,\n children,\n testId = 'cf-ui-navbar-submenu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarSubmenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.SubmenuTrigger>\n <Flex className={styles.navbarMenuItem}>\n {icon && <NavbarItemIcon icon={icon} />}\n <span>{title}</span>\n </Flex>\n </Menu.SubmenuTrigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { MenuDivider } from '@contentful/f36-menu';\nimport { MenuSectionTitle } from '@contentful/f36-menu';\nimport { Navbar as OriginalNavbar } from './Navbar';\n\nimport { NavbarAccount, NavbarAccountSkeleton } from './NavbarAccount';\nimport { NavbarItem, NavbarItemSkeleton } from './NavbarItem';\nimport { NavbarMenuItem, NavbarMenuItemSkeleton } from './NavbarMenuItem';\nimport { NavbarSwitcher, NavbarSwitcherSkeleton } from './NavbarSwitcher';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\nimport { NavbarSubmenu } from './NavbarSubmenu/NavbarSubmenu';\n\ntype CompoundNavbar = typeof OriginalNavbar & {\n Item: typeof NavbarItem;\n ItemSkeleton: typeof NavbarItemSkeleton;\n MenuItem: typeof NavbarMenuItem;\n MenuItemSkeleton: typeof NavbarMenuItemSkeleton;\n MenuDivider: typeof MenuDivider;\n MenuSectionTitle: typeof MenuSectionTitle;\n Submenu: typeof NavbarSubmenu;\n Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n};\n\nexport const Navbar = OriginalNavbar as CompoundNavbar;\nNavbar.Item = NavbarItem;\nNavbar.ItemSkeleton = NavbarItemSkeleton;\nNavbar.MenuItem = NavbarMenuItem;\nNavbar.MenuItemSkeleton = NavbarMenuItemSkeleton;\nNavbar.MenuDivider = MenuDivider;\nNavbar.MenuSectionTitle = MenuSectionTitle;\nNavbar.Submenu = NavbarSubmenu;\nNavbar.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n"]}
|