@contentful/f36-navbar 5.0.0-alpha.44 → 5.0.0-alpha.45

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  import { MenuDivider, MenuSectionTitle, Menu } from '@contentful/f36-menu';
2
2
  import { Flex } from '@contentful/f36-core';
3
- import b from 'react';
3
+ import v from 'react';
4
4
  import { cx, css } from 'emotion';
5
5
  import a from '@contentful/f36-tokens';
6
6
  import { generateComponentWithVariants, IconVariant, generateIconComponent } from '@contentful/f36-icon';
@@ -12,7 +12,7 @@ import { SkeletonContainer, SkeletonImage, SkeletonText, SkeletonBodyText } from
12
12
  import { hexToRGBA } from '@contentful/f36-utils';
13
13
  import { Text } from '@contentful/f36-typography';
14
14
 
15
- var Ze=Object.defineProperty,Ye=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var ge=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var ue=(e,o,t)=>o in e?Ze(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,p=(e,o)=>{for(var t in o||(o={}))ge.call(o,t)&&ue(e,t,o[t]);if(j)for(var t of j(o))be.call(o,t)&&ue(e,t,o[t]);return e},d=(e,o)=>Ye(e,Qe(o));var N=(e,o)=>{var t={};for(var r in e)ge.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&j)for(var r of j(e))o.indexOf(r)<0&&be.call(e,r)&&(t[r]=e[r]);return t};var ve=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)"},L=(e=a.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}}),B=(e="44px")=>({overflow:"visible",position:"relative","&:after":{minHeight:e,minWidth:e,position:"absolute",width:"100%",content:'""',left:"50%",top:"50%",transform:"translate(-50%, -50%)"}});var fe=({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 ye=generateComponentWithVariants({variants:{[IconVariant.Active]:generateIconComponent({path:b.createElement(b.Fragment,null,b.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:b.createElement(b.Fragment,null,b.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 Ie=generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:b.createElement(b.Fragment,null,b.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"}),b.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"}),b.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"}),b.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"}),b.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 Se=()=>({menuList:css({minWidth:0,[i.xsmall]:{minWidth:"250px"}})});var O=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:s}=e,l=Se();return b.createElement(Menu,{onOpen:n,onClose:s},b.createElement(Menu.Trigger,null,o),b.createElement(Menu.List,{className:l.menuList,testId:r},t))};function no(e,o){let X=e,{logo:t,promotions:r,switcher:n,mainNavigation:s,secondaryNavigation:l,account:c,mobileNavigation:u,mobileNavigationBp:f="small",className:y,contentMaxWidth:w="100%",testId:g="cf-ui-navbar",variant:S="wide"}=X,C=N(X,["logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationBp","className","contentMaxWidth","testId","variant"]),x=fe({contentMaxWidth:w,variant:S});return b.createElement(Flex,d(p({},C),{ref:o,testId:g,className:cx(x.container,y),as:"header"}),b.createElement(Flex,{as:"nav",className:x.navigation,justifyContent:"space-between",gap:"spacingXs"},b.createElement(Flex,{alignItems:"center",gap:"spacingL"},t||b.createElement(Ie,{className:x.logo}),u&&b.createElement(O,{trigger:b.createElement(Button,{className:x.mobileNavigationButton(f),startIcon:b.createElement(ListIcon,{size:"medium"})},"Menu")},u),s&&b.createElement(Flex,{className:x.mainNavigation(f),"aria-label":"Main Navigation",gap:"spacingXs"},s)),b.createElement(Flex,{alignItems:"center",gap:"spacingXs"},b.createElement(Flex,{alignItems:"center",className:x.promoNavigationWrapper,"aria-label":"Promotions",gap:"spacingXs"},r),b.createElement(Flex,{alignItems:"center"},n),b.createElement(Flex,{alignItems:"center",gap:"spacingXs"},l&&b.createElement(Flex,{className:x.secondaryNavigationWrapper,"aria-label":"Secondary Navigation",gap:"spacingXs"},l),c&&b.createElement(Flex,{className:x.account,"aria-label":"Account Navigation",gap:"spacingXs"},c)))))}var Pe=b.forwardRef(no);var io={warning:a.colorWarning,negative:a.colorNegative,info:a.blue500},we=()=>({navbarAccount:css({cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%",border:"none",padding:0,"&:hover img":{filter:"brightness(0.9)"}},L(),B()),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:a.spacingS,width:a.spacingS,borderRadius:"50%",border:`2px solid ${a.gray100}`,backgroundColor:io[e],transform:"translate(30%, -30%)",zIndex:1})});function co(e,o){let S=e,{children:t,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:s,label:l="Account menu",initials:c,username:u,hasNotification:f,notificationVariant:y="warning"}=S,w=N(S,["children","className","testId","avatar","label","initials","username","hasNotification","notificationVariant"]),g=we();return b.createElement(O,{trigger:b.createElement("div",null,b.createElement(Tooltip,{placement:"bottom",content:l,showDelay:600,usePortal:!0},b.createElement(Flex,d(p({as:"button"},w),{ref:o,className:cx(g.navbarAccount,r),testId:n,alignItems:"center","aria-label":l}),b.createElement(Avatar,{src:s,initials:c,size:"small",variant:"user"}),f?b.createElement("span",{className:g.notificationIcon(y)}):null)))},t)}var oe=b.forwardRef(co);function te({ariaLabel:e}){return b.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:a.gray300,foregroundColor:a.gray200},b.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var G="1px",ke=()=>css({backgroundColor:a.blue100,border:`${G} solid ${a.blue400}`,color:a.blue600,"&:hover":{backgroundColor:a.blue100}}),vo=()=>css({border:"none",opacity:.5,pointerEvents:"none"}),Ee={display:"flex",justifyContent:"center",padding:`calc(${a.spacing2Xs} - ${G}) calc(${a.spacingXs} - ${G})`,alignItems:"center",background:"none",gap:a.spacing2Xs},Te=({hasTitle:e})=>({navbarItem:css(Ee,{appearance:"none",background:"none",border:`${G} solid transparent`,margin:0,outline:"none",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?void 0:`calc(${a.spacing2Xs} - ${G})`,"&:hover":{backgroundColor:hexToRGBA(a.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a.transitionDurationShort} ${a.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a.zIndexDefault}},L(),B()),navbarItemMenuTrigger:css({paddingRight:a.spacingXs}),isActive:ke(),isDisabled:vo(),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"}})}),Le=()=>({itemSkeleton:css(Ee)});var Be=()=>({navbarItemIcon:css({"&:last-child&:not(:only-child)":{marginLeft:a.spacing2Xs},"img&":{borderRadius:a.borderRadiusSmall,maxWidth:a.spacingM,maxHeight:a.spacingM}})});var E=({icon:e,isActive:o,className:t})=>{let c=e.props,{className:r,size:n}=c,s=N(c,["className","size"]),l=Be();return b.cloneElement(e,p({className:cx(r,l.navbarItemIcon,t),size:n||"small",isActive:o},s))};var We="button";function Io(e,o){let de=e,{as:t=We,icon:r,label:n,title:s,children:l,className:c,isActive:u,isDisabled:f,testId:y="cf-ui-navbar-item",onOpen:w,onClose:g}=de,S=N(de,["as","icon","label","title","children","className","isActive","isDisabled","testId","onOpen","onClose"]),C=Te({hasTitle:!!s}),x=So(e),X=s&&x,q=b.createElement(t,p(p(d(p({},S),{ref:o,"data-test-id":y,className:cx(C.navbarItem,c,{[C.navbarItemMenuTrigger]:X,[C.isActive]:u&&!f,[C.isDisabled]:f})}),!s&&{"aria-label":n}),f&&(t===We?{disabled:!0}:{tabIndex:-1,"aria-disabled":!0})),r&&b.createElement(E,{className:C.icon,icon:r,isActive:u}),s&&b.createElement("span",null,s),X&&b.createElement(ye,{size:"tiny",isActive:u}));return s||(q=b.createElement("div",null,b.createElement(Tooltip,{content:n,placement:"bottom",showDelay:600,usePortal:!0},q))),x?b.createElement(O,{trigger:q,testId:y,onOpen:w,onClose:g},l):q}var So=e=>!!e.children,re=b.forwardRef(Io);var ae=({estimatedWidth:e})=>{let o=Le();return b.createElement(SkeletonContainer,{className:o.itemSkeleton,svgWidth:e,svgHeight:28,backgroundColor:a.gray300,foregroundColor:a.gray200},b.createElement(SkeletonText,{lineHeight:18,numberOfLines:1,offsetTop:2,radiusX:a.borderRadiusSmall,radiusY:a.borderRadiusSmall}))};var _e=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Eo="button";function To(e,o){let f=e,{as:t=Eo,icon:r,title:n,className:s}=f,l=N(f,["as","icon","title","className"]),c=_e(),u=Lo(e);return b.createElement(Menu.Item,d(p({},l),{ref:o,as:t,className:cx(c.navbarMenuItem,s)}),r?b.createElement(E,{icon:r}):u&&Fe,b.createElement("span",null,n),r&&u?Fe:null)}var Fe=b.createElement(E,{icon:b.createElement(ArrowSquareOutIcon,null)}),Lo=e=>e.as==="a"&&e.target==="_blank",ne=b.forwardRef(To);var ie=({ariaLabel:e})=>b.createElement(Menu.Item,null,b.createElement(Flex,{alignItems:"center",gap:a.spacingXs},b.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},b.createElement(SkeletonImage,{width:16,height:16})),b.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},b.createElement(SkeletonBodyText,{numberOfLines:1}))));var V=1,$e=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&&$o(e),L(),B()),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 - ${V}px)`,height:o?"26px":"unset",borderTopLeftRadius:`calc(${a.borderRadiusMedium} - ${V}px)`,borderBottomLeftRadius:`calc(${a.borderRadiusMedium} - ${V}px)`},Vo(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"}})}),Ve=e=>{switch(e){case"trial":return a.purple700;case"non-master":return a.orange700;default:return a.green700}},$o=e=>{let o={padding:"0",paddingRight:a.spacingXs};switch(e){case"trial":return d(p({},o),{color:a.purple700,backgroundColor:a.purple100,border:`${V}px solid ${a.purple400}`,"&:hover, &:active":{backgroundColor:a.purple200}});case"non-master":return d(p({},o),{color:a.orange700,backgroundColor:a.orange100,border:`${V}px solid ${a.orange400}`,"&:hover, &:active":{backgroundColor:a.orange200}});default:return d(p({},o),{color:a.green700,backgroundColor:a.green100,border:`${V}px solid ${a.green400}`,"&:hover, &:active":{backgroundColor:a.green200}})}},Vo=e=>{switch(e){case"trial":return {background:a.purple300};case"non-master":return {background:`linear-gradient(
15
+ var Ze=Object.defineProperty,Ye=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var ge=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var be=(e,o,t)=>o in e?Ze(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,p=(e,o)=>{for(var t in o||(o={}))ge.call(o,t)&&be(e,t,o[t]);if(j)for(var t of j(o))ue.call(o,t)&&be(e,t,o[t]);return e},d=(e,o)=>Ye(e,Qe(o));var N=(e,o)=>{var t={};for(var r in e)ge.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&j)for(var r of j(e))o.indexOf(r)<0&&ue.call(e,r)&&(t[r]=e[r]);return t};var ve=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)"},W=(e=a.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}}),B=(e="44px")=>({overflow:"visible",position:"relative","&:after":{minHeight:e,minWidth:e,position:"absolute",width:"100%",content:'""',left:"50%",top:"50%",transform:"translate(-50%, -50%)"}});var fe=({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 ye=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 Ie=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 Se=()=>({menuList:css({minWidth:0,[i.xsmall]:{minWidth:"250px"}})});var _=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:s}=e,l=Se();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 no(e,o){let A=e,{logo:t,promotions:r,switcher:n,mainNavigation:s,secondaryNavigation:l,account:c,mobileNavigation:b,mobileNavigationProps:g={breakpoint:"small",label:"Menu"},className:y,contentMaxWidth:C="100%",testId:u="cf-ui-navbar",variant:P="wide",aria:I={labelMainNavigation:"Main Navigation",labelSecondaryNavigation:"Secondary Navigation",labelPromotions:"Promotions",labelAccount:"Account Navigation"}}=A,q=N(A,["logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","contentMaxWidth","testId","variant","aria"]),x=fe({contentMaxWidth:C,variant:P});return v.createElement(Flex,d(p({},q),{ref:o,testId:u,className:cx(x.container,y),as:"header"}),v.createElement(Flex,{as:"nav",className:x.navigation,justifyContent:"space-between",gap:"spacingXs"},v.createElement(Flex,{alignItems:"center",gap:"spacingL"},t||v.createElement(Ie,{className:x.logo}),b&&v.createElement(_,{trigger:v.createElement(Button,{className:x.mobileNavigationButton(g.breakpoint),startIcon:v.createElement(ListIcon,{size:"medium"})},g.label)},b),s&&v.createElement(Flex,{className:x.mainNavigation(g.breakpoint),"aria-label":I.labelMainNavigation,gap:"spacingXs"},s)),v.createElement(Flex,{alignItems:"center",gap:"spacingXs"},v.createElement(Flex,{alignItems:"center",className:x.promoNavigationWrapper,"aria-label":I.labelPromotions,gap:"spacingXs"},r),v.createElement(Flex,{alignItems:"center"},n),v.createElement(Flex,{alignItems:"center",gap:"spacingXs"},l&&v.createElement(Flex,{className:x.secondaryNavigationWrapper,"aria-label":I.labelSecondaryNavigation,gap:"spacingXs"},l),c&&v.createElement(Flex,{className:x.account,"aria-label":I.labelAccount,gap:"spacingXs"},c)))))}var Pe=v.forwardRef(no);var io={warning:a.colorWarning,negative:a.colorNegative,info:a.blue500},we=()=>({navbarAccount:css({cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%",border:"none",padding:0,"&:hover img":{filter:"brightness(0.9)"}},W(),B()),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:a.spacingS,width:a.spacingS,borderRadius:"50%",border:`2px solid ${a.gray100}`,backgroundColor:io[e],transform:"translate(30%, -30%)",zIndex:1})});function co(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:y="warning"}=P,C=N(P,["children","className","testId","avatar","label","initials","username","hasNotification","notificationVariant"]),u=we();return v.createElement(_,{trigger:v.createElement("div",null,v.createElement(Tooltip,{placement:"bottom",content:l,showDelay:600,usePortal:!0},v.createElement(Flex,d(p({as:"button"},C),{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(y)}):null)))},t)}var oe=v.forwardRef(co);function te({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}))}var G="1px",ke=()=>css({backgroundColor:a.blue100,border:`${G} solid ${a.blue400}`,color:a.blue600,"&:hover":{backgroundColor:a.blue100}}),vo=()=>css({border:"none",opacity:.5,pointerEvents:"none"}),Ee={display:"flex",justifyContent:"center",padding:`calc(${a.spacing2Xs} - ${G}) calc(${a.spacingXs} - ${G})`,alignItems:"center",background:"none",gap:a.spacing2Xs},Te=({hasTitle:e})=>({navbarItem:css(Ee,{appearance:"none",background:"none",border:`${G} solid transparent`,margin:0,outline:"none",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?void 0:`calc(${a.spacing2Xs} - ${G})`,"&:hover":{backgroundColor:hexToRGBA(a.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a.transitionDurationShort} ${a.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a.zIndexDefault}},W(),B()),navbarItemMenuTrigger:css({paddingRight:a.spacingXs}),isActive:ke(),isDisabled:vo(),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"}})}),Le=()=>({itemSkeleton:css(Ee)});var We=()=>({navbarItemIcon:css({"&:last-child&:not(:only-child)":{marginLeft:a.spacing2Xs},"img&":{borderRadius:a.borderRadiusSmall,maxWidth:a.spacingM,maxHeight:a.spacingM}})});var T=({icon:e,isActive:o,className:t})=>{let c=e.props,{className:r,size:n}=c,s=N(c,["className","size"]),l=We();return v.cloneElement(e,p({className:cx(r,l.navbarItemIcon,t),size:n||"small",isActive:o},s))};var Be="button";function Io(e,o){let de=e,{as:t=Be,icon:r,label:n,title:s,children:l,className:c,isActive:b,isDisabled:g,testId:y="cf-ui-navbar-item",onOpen:C,onClose:u}=de,P=N(de,["as","icon","label","title","children","className","isActive","isDisabled","testId","onOpen","onClose"]),I=Te({hasTitle:!!s}),q=So(e),x=s&&q,A=v.createElement(t,p(p(d(p({},P),{ref:o,"data-test-id":y,className:cx(I.navbarItem,c,{[I.navbarItemMenuTrigger]:x,[I.isActive]:b&&!g,[I.isDisabled]:g})}),!s&&{"aria-label":n}),g&&(t===Be?{disabled:!0}:{tabIndex:-1,"aria-disabled":!0})),r&&v.createElement(T,{className:I.icon,icon:r,isActive:b}),s&&v.createElement("span",null,s),x&&v.createElement(ye,{size:"tiny",isActive:b}));return s||(A=v.createElement("div",null,v.createElement(Tooltip,{content:n,placement:"bottom",showDelay:600,usePortal:!0},A))),q?v.createElement(_,{trigger:A,testId:y,onOpen:C,onClose:u},l):A}var So=e=>!!e.children,re=v.forwardRef(Io);var ae=({estimatedWidth:e})=>{let o=Le();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}))};var _e=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Eo="button";function To(e,o){let g=e,{as:t=Eo,icon:r,title:n,className:s}=g,l=N(g,["as","icon","title","className"]),c=_e(),b=Lo(e);return v.createElement(Menu.Item,d(p({},l),{ref:o,as:t,className:cx(c.navbarMenuItem,s)}),r?v.createElement(T,{icon:r}):b&&Fe,v.createElement("span",null,n),r&&b?Fe:null)}var Fe=v.createElement(T,{icon:v.createElement(ArrowSquareOutIcon,null)}),Lo=e=>e.as==="a"&&e.target==="_blank",ne=v.forwardRef(To);var ie=({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 D=1,$e=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&&$o(e),W(),B()),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 - ${D}px)`,height:o?"26px":"unset",borderTopLeftRadius:`calc(${a.borderRadiusMedium} - ${D}px)`,borderBottomLeftRadius:`calc(${a.borderRadiusMedium} - ${D}px)`},Vo(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"}})}),Ve=e=>{switch(e){case"trial":return a.purple700;case"non-master":return a.orange700;default:return a.green700}},$o=e=>{let o={padding:"0",paddingRight:a.spacingXs};switch(e){case"trial":return d(p({},o),{color:a.purple700,backgroundColor:a.purple100,border:`${D}px solid ${a.purple400}`,"&:hover, &:active":{backgroundColor:a.purple200}});case"non-master":return d(p({},o),{color:a.orange700,backgroundColor:a.orange100,border:`${D}px solid ${a.orange400}`,"&:hover, &:active":{backgroundColor:a.orange200}});default:return d(p({},o),{color:a.green700,backgroundColor:a.green100,border:`${D}px solid ${a.green400}`,"&:hover, &:active":{backgroundColor:a.green200}})}},Vo=e=>{switch(e){case"trial":return {background:a.purple300};case"non-master":return {background:`linear-gradient(
16
16
  -45deg,
17
17
  ${a.orange300} 28.57%,
18
18
  transparent 28.57%,
@@ -21,7 +21,7 @@ var Ze=Object.defineProperty,Ye=Object.defineProperties;var Qe=Object.getOwnProp
21
21
  ${a.orange300} 78.57%,
22
22
  transparent 78.57%,
23
23
  transparent 100%
24
- )`,backgroundSize:"9px 9px"};default:return {background:a.green300}}};function De({isAlias:e,envVariant:o,className:t}){if(o==="trial")return b.createElement(FlaskIcon,{color:a.purple700,className:t,size:"medium"});let r=o==="master",n=r?a.green700:a.orange700;return r?b.createElement(RocketLaunchIcon,{color:n,className:t,size:"medium"}):e?b.createElement(EnvironmentAliasIcon,{color:n,className:t,size:"medium"}):b.createElement(EnvironmentIcon,{color:n,className:t,size:"medium"})}var U=({estimatedWidth:e})=>b.createElement(SkeletonContainer,{svgWidth:e,svgHeight:18,backgroundColor:a.gray300,foregroundColor:a.gray200},b.createElement(SkeletonText,{lineHeight:18,numberOfLines:1,radiusX:a.borderRadiusSmall,radiusY:a.borderRadiusSmall}));function Yo(e,o){let S=e,{children:t,className:r,envVariant:n,isAlias:s,testId:l="cf-ui-navbar-switcher",ariaLabel:c="Space and Environment Navigation",space:u,environment:f,isLoading:y}=S,w=N(S,["children","className","envVariant","isAlias","testId","ariaLabel","space","environment","isLoading"]),g=$e(n);return b.createElement(Button,d(p({},w),{"aria-label":c,className:cx(g.navbarSwitcher({showSpaceEnv:!y&&!t}),r),endIcon:n&&b.createElement(De,{envVariant:n,isAlias:s,className:g.switcherEnvIcon}),ref:o,testId:l,variant:"transparent"}),b.createElement(Flex,{className:g.switcherWrapper({showSpaceEnv:!y&&!t})},y?b.createElement(U,{estimatedWidth:148}):b.createElement(b.Fragment,null,t?b.createElement(Text,{className:g.switcherLabel},t):b.createElement(Flex,{className:g.switcherLabelWrapper},b.createElement(Text,{className:g.switcherLabel},u),f&&b.createElement(b.Fragment,null,b.createElement(Flex,{className:g.switcherCaret},b.createElement(CaretRightIcon,{size:"tiny",color:Ve(n)})),b.createElement(Text,{className:g.switcherLabel},f))))))}var le=b.forwardRef(Yo);var Xe=()=>({navbarBadge:css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${a.purple600}`,margin:0,outline:"none",fontSize:a.fontSizeS,lineHeight:a.lineHeightS,fontWeight:a.fontWeightMedium,textAlign:"center",padding:`0 ${a.spacingXs}`,textDecoration:"none",color:`${a.purple600}!important`,borderRadius:"1.75rem",userSelect:"none"})});var Ko="div";function et(e,o){let u=e,{as:t=Ko,children:r,className:n,testId:s="cf-ui-navbar-badge"}=u,l=N(u,["as","children","className","testId"]),c=Xe();return b.createElement(t,d(p({},l),{ref:o,className:cx(c.navbarBadge,n),"data-test-id":s}),r)}var Ge=b.forwardRef(et);var qe=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center",gap:a.spacingXs}),menuList:css({minWidth:0,marginLeft:"-24px",marginTop:"10px",[i.xsmall]:{minWidth:"250px",margin:0}})});var je=e=>{let{title:o,icon:t,children:r,testId:n="cf-ui-navbar-submenu-list",onOpen:s,onClose:l}=e,c=qe();return b.createElement(Menu.Submenu,{onOpen:s,onClose:l},b.createElement(Menu.SubmenuTrigger,null,b.createElement(Flex,{className:c.navbarMenuItem},t&&b.createElement(E,{icon:t}),b.createElement("span",null,o))),b.createElement(Menu.List,{className:c.menuList,testId:n},r))};var h=Pe;h.Item=re;h.ItemSkeleton=ae;h.MenuItem=ne;h.MenuItemSkeleton=ie;h.MenuDivider=MenuDivider;h.MenuSectionTitle=MenuSectionTitle;h.Submenu=je;h.Switcher=le;h.SwitcherSkeleton=U;h.Account=oe;h.AccountSkeleton=te;h.Badge=Ge;
24
+ )`,backgroundSize:"9px 9px"};default:return {background:a.green300}}};function De({isAlias:e,envVariant:o,className:t}){if(o==="trial")return v.createElement(FlaskIcon,{color:a.purple700,className:t,size:"medium"});let r=o==="master",n=r?a.green700:a.orange700;return r?v.createElement(RocketLaunchIcon,{color:n,className:t,size:"medium"}):e?v.createElement(EnvironmentAliasIcon,{color:n,className:t,size:"medium"}):v.createElement(EnvironmentIcon,{color:n,className:t,size:"medium"})}var U=({estimatedWidth:e})=>v.createElement(SkeletonContainer,{svgWidth:e,svgHeight:18,backgroundColor:a.gray300,foregroundColor:a.gray200},v.createElement(SkeletonText,{lineHeight:18,numberOfLines:1,radiusX:a.borderRadiusSmall,radiusY:a.borderRadiusSmall}));function Yo(e,o){let P=e,{children:t,className:r,envVariant:n,isAlias:s,testId:l="cf-ui-navbar-switcher",ariaLabel:c="Space and Environment Navigation",space:b,environment:g,isLoading:y}=P,C=N(P,["children","className","envVariant","isAlias","testId","ariaLabel","space","environment","isLoading"]),u=$e(n);return v.createElement(Button,d(p({},C),{"aria-label":c,className:cx(u.navbarSwitcher({showSpaceEnv:!y&&!t}),r),endIcon:n&&v.createElement(De,{envVariant:n,isAlias:s,className:u.switcherEnvIcon}),ref:o,testId:l,variant:"transparent"}),v.createElement(Flex,{className:u.switcherWrapper({showSpaceEnv:!y&&!t})},y?v.createElement(U,{estimatedWidth:148}):v.createElement(v.Fragment,null,t?v.createElement(Text,{className:u.switcherLabel},t):v.createElement(Flex,{className:u.switcherLabelWrapper},v.createElement(Text,{className:u.switcherLabel},b),g&&v.createElement(v.Fragment,null,v.createElement(Flex,{className:u.switcherCaret},v.createElement(CaretRightIcon,{size:"tiny",color:Ve(n)})),v.createElement(Text,{className:u.switcherLabel},g))))))}var le=v.forwardRef(Yo);var Xe=()=>({navbarBadge:css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${a.purple600}`,margin:0,outline:"none",fontSize:a.fontSizeS,lineHeight:a.lineHeightS,fontWeight:a.fontWeightMedium,textAlign:"center",padding:`0 ${a.spacingXs}`,textDecoration:"none",color:`${a.purple600}!important`,borderRadius:"1.75rem",userSelect:"none"})});var Ko="div";function et(e,o){let b=e,{as:t=Ko,children:r,className:n,testId:s="cf-ui-navbar-badge"}=b,l=N(b,["as","children","className","testId"]),c=Xe();return v.createElement(t,d(p({},l),{ref:o,className:cx(c.navbarBadge,n),"data-test-id":s}),r)}var Ge=v.forwardRef(et);var qe=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center",gap:a.spacingXs}),menuList:css({minWidth:0,marginLeft:"-24px",marginTop:"10px",[i.xsmall]:{minWidth:"250px",margin:0}})});var je=e=>{let{title:o,icon:t,children:r,testId:n="cf-ui-navbar-submenu-list",onOpen:s,onClose:l}=e,c=qe();return v.createElement(Menu.Submenu,{onOpen:s,onClose:l},v.createElement(Menu.SubmenuTrigger,null,v.createElement(Flex,{className:c.navbarMenuItem},t&&v.createElement(T,{icon:t}),v.createElement("span",null,o))),v.createElement(Menu.List,{className:c.menuList,testId:n},r))};var h=Pe;h.Item=re;h.ItemSkeleton=ae;h.MenuItem=ne;h.MenuItemSkeleton=ie;h.MenuDivider=MenuDivider;h.MenuSectionTitle=MenuSectionTitle;h.Submenu=je;h.Switcher=le;h.SwitcherSkeleton=U;h.Account=oe;h.AccountSkeleton=te;h.Badge=Ge;
25
25
 
26
26
  export { ve as NAVBAR_HEIGHT, h as Navbar, ke as getNavbarItemActiveStyles, i as navbarMediaQueries };
27
27
  //# sourceMappingURL=out.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/constants.ts","../../src/CompoundNavbar.ts","../../src/Navbar.tsx","../../src/Navbar.styles.ts","../../src/utils.styles.ts","../../src/icons/CaretIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../src/NavbarMenu/NavbarMenu.tsx","../../src/NavbarMenu/NavbarMenu.styles.ts","../../src/NavbarAccount/NavbarAccount.tsx","../../src/NavbarAccount/NavbarAccount.styles.ts","../../src/NavbarAccount/NavbarAccountSkeleton.tsx","../../src/NavbarItem/NavbarItem.tsx","../../src/NavbarItem/NavbarItem.styles.ts","../../src/NavbarItemIcon/NavbarItemIcon.tsx","../../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../../src/NavbarItem/NavbarItemSkeleton.tsx","../../src/NavbarMenuItem/NavbarMenuItem.tsx","../../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../../src/NavbarSwitcher/NavbarSwitcher.tsx","../../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../../src/NavbarSwitcher/NavbarEnvVariant.tsx","../../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts","../../src/NavbarSubmenu/NavbarSubmenu.tsx","../../src/NavbarSubmenu/NavbarMenu.styles.ts"],"names":["NAVBAR_HEIGHT","MenuDivider","MenuSectionTitle","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","increaseHitArea","minSize","getNavbarStyles","contentMaxWidth","variant","mobileNavigationBp","generateComponentWithVariants","generateIconComponent","IconVariant","CaretIcon","ContentfulLogoIcon","cx","Button","ListIcon","Menu","getNavbarMenuStyles","NavbarMenu","props","trigger","children","testId","onOpen","onClose","styles","_Navbar","ref","_a","logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","className","otherProps","__objRest","__spreadProps","__spreadValues","Navbar","notificationVarianColorMap","getNavbarAccountStyles","Avatar","Tooltip","_NavbarAccount","avatar","label","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","hexToRGBA","borderWidth","getNavbarItemActiveStyles","getNavbarItemDisabledStyles","commonItemStyles","getNavbarItemStyles","hasTitle","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","iconClassName","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","title","isDisabled","isMenuTrigger","isNavbarItemHasMenu","showCaret","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","BORDER_WIDTH","getNavbarSwitcherStyles","showSpaceEnv","getEnvVariantColor","getWrapperBackground","getNavbarIconColor","sharedStyles","EnvironmentAliasIcon","EnvironmentIcon","FlaskIcon","RocketLaunchIcon","NavbarEnvVariant","isAlias","envVariant","isMaster","color","NavbarSwitcherSkeleton","CaretRightIcon","Text","_NavbarSwitcher","space","environment","isLoading","NavbarSwitcher","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge","getNavbarSubmenuStyles","NavbarSubmenu"],"mappings":"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","sourcesContent":["export const NAVBAR_HEIGHT = 60;\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","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';\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 /** breakpoint to determine when to show the mobile navigation */\n mobileNavigationBp?: 'small' | 'medium';\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// 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 mobileNavigationBp = 'small',\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\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(mobileNavigationBp)}\n startIcon={<ListIcon size=\"medium\" />}\n >\n Menu\n </Button>\n }\n >\n {mobileNavigation}\n </NavbarMenu>\n )}\n {mainNavigation && (\n <Flex\n className={styles.mainNavigation(mobileNavigationBp)}\n aria-label=\"Main Navigation\"\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=\"Promotions\"\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=\"Secondary Navigation\"\n gap=\"spacingXs\"\n >\n {secondaryNavigation}\n </Flex>\n )}\n {account && (\n <Flex\n className={styles.account}\n aria-label=\"Account Navigation\"\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';\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 tokens from '@contentful/f36-tokens';\nimport type { CSSObject } from '@emotion/serialize';\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 = (\n shadow: string = tokens.glowPrimary,\n): CSSObject => ({\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'): CSSObject => ({\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 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 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.ReactNode;\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 { css } from 'emotion';\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 { cx } from 'emotion';\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 _NavbarAccount(\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\nexport const NavbarAccount = React.forwardRef(_NavbarAccount);\n","import { css } from 'emotion';\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 { 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","import React from 'react';\nimport { cx } from 'emotion';\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 _NavbarItem(\n props: NavbarItemProps<React.ElementType>,\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.navbarItemMenuTrigger]: showCaret,\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\nexport const NavbarItem: PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\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 '&: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 border: `${borderWidth} solid transparent`,\n margin: 0,\n outline: 'none',\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 ? undefined\n : `calc(${tokens.spacing2Xs} - ${borderWidth})`, // square button for icon-only items\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n\n '&:hover::before': {\n opacity: 1,\n scale: '1',\n },\n\n '&:active::before': {\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\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 navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\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 React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from 'emotion';\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","import { css } from 'emotion';\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 { 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","import React from 'react';\nimport { cx } from 'emotion';\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 _NavbarMenuItem(\n props: NavbarMenuItemProps<React.ElementType>,\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: PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarMenuItem);\n","import { css } from 'emotion';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\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 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';\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 isCircle?: boolean;\n envVariant?: EnvVariant;\n isAlias?: boolean;\n ariaLabel?: string;\n };\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction _NavbarSwitcher(\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\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\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 { cx } from 'emotion';\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 _NavbarBadge(\n props: NavbarBadgeProps<React.ElementType>,\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\nexport const NavbarBadge: PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarBadge);\n","import { css } from 'emotion';\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 { 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.Submenu 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.Submenu>\n );\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\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"]}
1
+ {"version":3,"sources":["../../src/constants.ts","../../src/CompoundNavbar.ts","../../src/Navbar.tsx","../../src/Navbar.styles.ts","../../src/utils.styles.ts","../../src/icons/CaretIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../src/NavbarMenu/NavbarMenu.tsx","../../src/NavbarMenu/NavbarMenu.styles.ts","../../src/NavbarAccount/NavbarAccount.tsx","../../src/NavbarAccount/NavbarAccount.styles.ts","../../src/NavbarAccount/NavbarAccountSkeleton.tsx","../../src/NavbarItem/NavbarItem.tsx","../../src/NavbarItem/NavbarItem.styles.ts","../../src/NavbarItemIcon/NavbarItemIcon.tsx","../../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../../src/NavbarItem/NavbarItemSkeleton.tsx","../../src/NavbarMenuItem/NavbarMenuItem.tsx","../../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../../src/NavbarSwitcher/NavbarSwitcher.tsx","../../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../../src/NavbarSwitcher/NavbarEnvVariant.tsx","../../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts","../../src/NavbarSubmenu/NavbarSubmenu.tsx","../../src/NavbarSubmenu/NavbarMenu.styles.ts"],"names":["NAVBAR_HEIGHT","MenuDivider","MenuSectionTitle","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","increaseHitArea","minSize","getNavbarStyles","contentMaxWidth","variant","mobileNavigationBp","generateComponentWithVariants","generateIconComponent","IconVariant","CaretIcon","ContentfulLogoIcon","cx","Button","ListIcon","Menu","getNavbarMenuStyles","NavbarMenu","props","trigger","children","testId","onOpen","onClose","styles","_Navbar","ref","_a","logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","aria","otherProps","__objRest","__spreadProps","__spreadValues","Navbar","notificationVarianColorMap","getNavbarAccountStyles","Avatar","Tooltip","_NavbarAccount","avatar","label","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","hexToRGBA","borderWidth","getNavbarItemActiveStyles","getNavbarItemDisabledStyles","commonItemStyles","getNavbarItemStyles","hasTitle","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","iconClassName","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","title","isDisabled","isMenuTrigger","isNavbarItemHasMenu","showCaret","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","BORDER_WIDTH","getNavbarSwitcherStyles","showSpaceEnv","getEnvVariantColor","getWrapperBackground","getNavbarIconColor","sharedStyles","EnvironmentAliasIcon","EnvironmentIcon","FlaskIcon","RocketLaunchIcon","NavbarEnvVariant","isAlias","envVariant","isMaster","color","NavbarSwitcherSkeleton","CaretRightIcon","Text","_NavbarSwitcher","space","environment","isLoading","NavbarSwitcher","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge","getNavbarSubmenuStyles","NavbarSubmenu"],"mappings":"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","sourcesContent":["export const NAVBAR_HEIGHT = 60;\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","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';\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';\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 tokens from '@contentful/f36-tokens';\nimport type { CSSObject } from '@emotion/serialize';\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 = (\n shadow: string = tokens.glowPrimary,\n): CSSObject => ({\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'): CSSObject => ({\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 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 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.ReactNode;\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 { css } from 'emotion';\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 { cx } from 'emotion';\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 _NavbarAccount(\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\nexport const NavbarAccount = React.forwardRef(_NavbarAccount);\n","import { css } from 'emotion';\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 { 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","import React from 'react';\nimport { cx } from 'emotion';\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 _NavbarItem(\n props: NavbarItemProps<React.ElementType>,\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.navbarItemMenuTrigger]: showCaret,\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\nexport const NavbarItem: PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\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 '&: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 border: `${borderWidth} solid transparent`,\n margin: 0,\n outline: 'none',\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 ? undefined\n : `calc(${tokens.spacing2Xs} - ${borderWidth})`, // square button for icon-only items\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n\n '&:hover::before': {\n opacity: 1,\n scale: '1',\n },\n\n '&:active::before': {\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\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 navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\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 React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from 'emotion';\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","import { css } from 'emotion';\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 { 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","import React from 'react';\nimport { cx } from 'emotion';\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 _NavbarMenuItem(\n props: NavbarMenuItemProps<React.ElementType>,\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: PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarMenuItem);\n","import { css } from 'emotion';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\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 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';\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 isCircle?: boolean;\n envVariant?: EnvVariant;\n isAlias?: boolean;\n ariaLabel?: string;\n };\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction _NavbarSwitcher(\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\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\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 { cx } from 'emotion';\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 _NavbarBadge(\n props: NavbarBadgeProps<React.ElementType>,\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\nexport const NavbarBadge: PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarBadge);\n","import { css } from 'emotion';\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 { 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.Submenu 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.Submenu>\n );\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\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"]}
package/dist/index.d.mts CHANGED
@@ -23,8 +23,15 @@ declare type NavbarOwnProps = CommonProps & {
23
23
  account?: React.ReactNode;
24
24
  /** Navigation displayed on mobile versions */
25
25
  mobileNavigation?: React.ReactNode;
26
- /** breakpoint to determine when to show the mobile navigation */
27
- mobileNavigationBp?: 'small' | 'medium';
26
+ mobileNavigationProps?: {
27
+ /** breakpoint to determine when to show the mobile navigation */
28
+ breakpoint?: 'small' | 'medium';
29
+ /**
30
+ * label of the mobile navigation trigger button
31
+ * @default 'Menu'
32
+ */
33
+ label?: string;
34
+ };
28
35
  /**
29
36
  * Defines the max-width of the content inside the navbar.
30
37
  * @default '100%'
@@ -35,6 +42,15 @@ declare type NavbarOwnProps = CommonProps & {
35
42
  * Variant wide will set the contentMaxWidth to 1524px
36
43
  */
37
44
  variant?: 'wide' | 'fullscreen';
45
+ /**
46
+ * aria labels for different areas of the navigation bar
47
+ */
48
+ aria?: {
49
+ labelMainNavigation?: string;
50
+ labelSecondaryNavigation?: string;
51
+ labelPromotions?: string;
52
+ labelAccount?: string;
53
+ };
38
54
  };
39
55
  declare type NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;
40
56
  declare type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;
@@ -56,8 +72,15 @@ declare const Navbar$1: React.ForwardRefExoticComponent<NavbarHTMLElementProps &
56
72
  account?: React.ReactNode;
57
73
  /** Navigation displayed on mobile versions */
58
74
  mobileNavigation?: React.ReactNode;
59
- /** breakpoint to determine when to show the mobile navigation */
60
- mobileNavigationBp?: 'small' | 'medium';
75
+ mobileNavigationProps?: {
76
+ /** breakpoint to determine when to show the mobile navigation */
77
+ breakpoint?: 'small' | 'medium';
78
+ /**
79
+ * label of the mobile navigation trigger button
80
+ * @default 'Menu'
81
+ */
82
+ label?: string;
83
+ };
61
84
  /**
62
85
  * Defines the max-width of the content inside the navbar.
63
86
  * @default '100%'
@@ -68,6 +91,15 @@ declare const Navbar$1: React.ForwardRefExoticComponent<NavbarHTMLElementProps &
68
91
  * Variant wide will set the contentMaxWidth to 1524px
69
92
  */
70
93
  variant?: 'wide' | 'fullscreen';
94
+ /**
95
+ * aria labels for different areas of the navigation bar
96
+ */
97
+ aria?: {
98
+ labelMainNavigation?: string;
99
+ labelSecondaryNavigation?: string;
100
+ labelPromotions?: string;
101
+ labelAccount?: string;
102
+ };
71
103
  } & React.RefAttributes<HTMLElement>>;
72
104
 
73
105
  declare const NavbarAccount: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, "label" | "children" | keyof CommonProps | "username" | "avatar" | "initials" | "hasNotification" | "notificationVariant"> & CommonProps & {
package/dist/index.d.ts CHANGED
@@ -23,8 +23,15 @@ declare type NavbarOwnProps = CommonProps & {
23
23
  account?: React.ReactNode;
24
24
  /** Navigation displayed on mobile versions */
25
25
  mobileNavigation?: React.ReactNode;
26
- /** breakpoint to determine when to show the mobile navigation */
27
- mobileNavigationBp?: 'small' | 'medium';
26
+ mobileNavigationProps?: {
27
+ /** breakpoint to determine when to show the mobile navigation */
28
+ breakpoint?: 'small' | 'medium';
29
+ /**
30
+ * label of the mobile navigation trigger button
31
+ * @default 'Menu'
32
+ */
33
+ label?: string;
34
+ };
28
35
  /**
29
36
  * Defines the max-width of the content inside the navbar.
30
37
  * @default '100%'
@@ -35,6 +42,15 @@ declare type NavbarOwnProps = CommonProps & {
35
42
  * Variant wide will set the contentMaxWidth to 1524px
36
43
  */
37
44
  variant?: 'wide' | 'fullscreen';
45
+ /**
46
+ * aria labels for different areas of the navigation bar
47
+ */
48
+ aria?: {
49
+ labelMainNavigation?: string;
50
+ labelSecondaryNavigation?: string;
51
+ labelPromotions?: string;
52
+ labelAccount?: string;
53
+ };
38
54
  };
39
55
  declare type NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;
40
56
  declare type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;
@@ -56,8 +72,15 @@ declare const Navbar$1: React.ForwardRefExoticComponent<NavbarHTMLElementProps &
56
72
  account?: React.ReactNode;
57
73
  /** Navigation displayed on mobile versions */
58
74
  mobileNavigation?: React.ReactNode;
59
- /** breakpoint to determine when to show the mobile navigation */
60
- mobileNavigationBp?: 'small' | 'medium';
75
+ mobileNavigationProps?: {
76
+ /** breakpoint to determine when to show the mobile navigation */
77
+ breakpoint?: 'small' | 'medium';
78
+ /**
79
+ * label of the mobile navigation trigger button
80
+ * @default 'Menu'
81
+ */
82
+ label?: string;
83
+ };
61
84
  /**
62
85
  * Defines the max-width of the content inside the navbar.
63
86
  * @default '100%'
@@ -68,6 +91,15 @@ declare const Navbar$1: React.ForwardRefExoticComponent<NavbarHTMLElementProps &
68
91
  * Variant wide will set the contentMaxWidth to 1524px
69
92
  */
70
93
  variant?: 'wide' | 'fullscreen';
94
+ /**
95
+ * aria labels for different areas of the navigation bar
96
+ */
97
+ aria?: {
98
+ labelMainNavigation?: string;
99
+ labelSecondaryNavigation?: string;
100
+ labelPromotions?: string;
101
+ labelAccount?: string;
102
+ };
71
103
  } & React.RefAttributes<HTMLElement>>;
72
104
 
73
105
  declare const NavbarAccount: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, "label" | "children" | keyof CommonProps | "username" | "avatar" | "initials" | "hasNotification" | "notificationVariant"> & CommonProps & {
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var f36Menu = require('@contentful/f36-menu');
4
4
  var f36Core = require('@contentful/f36-core');
5
- var b = require('react');
5
+ var v = require('react');
6
6
  var emotion = require('emotion');
7
7
  var a = require('@contentful/f36-tokens');
8
8
  var f36Icon = require('@contentful/f36-icon');
@@ -16,10 +16,10 @@ var f36Typography = require('@contentful/f36-typography');
16
16
 
17
17
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
18
18
 
19
- var b__default = /*#__PURE__*/_interopDefault(b);
19
+ var v__default = /*#__PURE__*/_interopDefault(v);
20
20
  var a__default = /*#__PURE__*/_interopDefault(a);
21
21
 
22
- var Ze=Object.defineProperty,Ye=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var ge=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var ue=(e,o,t)=>o in e?Ze(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,p=(e,o)=>{for(var t in o||(o={}))ge.call(o,t)&&ue(e,t,o[t]);if(j)for(var t of j(o))be.call(o,t)&&ue(e,t,o[t]);return e},d=(e,o)=>Ye(e,Qe(o));var N=(e,o)=>{var t={};for(var r in e)ge.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&j)for(var r of j(e))o.indexOf(r)<0&&be.call(e,r)&&(t[r]=e[r]);return t};var ve=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)"},L=(e=a__default.default.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}}),B=(e="44px")=>({overflow:"visible",position:"relative","&:after":{minHeight:e,minWidth:e,position:"absolute",width:"100%",content:'""',left:"50%",top:"50%",transform:"translate(-50%, -50%)"}});var fe=({contentMaxWidth:e,variant:o})=>({container:emotion.css({justifyContent:"center",backgroundColor:a__default.default.gray100,width:"100%"}),logo:emotion.css({display:"none",[i.small]:{display:"block",height:"28px",width:"28px"}}),navigation:emotion.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=>emotion.css({display:"none"},t==="small"?{[i.small]:{display:"flex"}}:{[i.medium]:{display:"flex"}}),mobileNavigationButton:t=>emotion.css({display:"flex",minHeight:"initial",height:"36px",padding:"0 12px",borderRadius:"10px"},t==="small"?{[i.small]:{display:"none"}}:{[i.medium]:{display:"none"}}),mobileNavigationIcon:emotion.css({heigt:"20px",width:"20px"}),secondaryNavigationWrapper:emotion.css({"> *:not(:first-child)":{display:"none",[i.xsmall]:{display:"flex"}}}),promoNavigationWrapper:emotion.css({display:"none",[i.large]:{display:"flex"}}),account:emotion.css({display:"none",[i.xsmall]:{display:"flex"}})});var ye=f36Icon.generateComponentWithVariants({variants:{[f36Icon.IconVariant.Active]:f36Icon.generateIconComponent({path:b__default.default.createElement(b__default.default.Fragment,null,b__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:b__default.default.createElement(b__default.default.Fragment,null,b__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 Ie=f36Icon.generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:b__default.default.createElement(b__default.default.Fragment,null,b__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"}),b__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"}),b__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"}),b__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"}),b__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 Se=()=>({menuList:emotion.css({minWidth:0,[i.xsmall]:{minWidth:"250px"}})});var O=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:s}=e,l=Se();return b__default.default.createElement(f36Menu.Menu,{onOpen:n,onClose:s},b__default.default.createElement(f36Menu.Menu.Trigger,null,o),b__default.default.createElement(f36Menu.Menu.List,{className:l.menuList,testId:r},t))};function no(e,o){let X=e,{logo:t,promotions:r,switcher:n,mainNavigation:s,secondaryNavigation:l,account:c,mobileNavigation:u,mobileNavigationBp:f="small",className:y,contentMaxWidth:w="100%",testId:g="cf-ui-navbar",variant:S="wide"}=X,C=N(X,["logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationBp","className","contentMaxWidth","testId","variant"]),x=fe({contentMaxWidth:w,variant:S});return b__default.default.createElement(f36Core.Flex,d(p({},C),{ref:o,testId:g,className:emotion.cx(x.container,y),as:"header"}),b__default.default.createElement(f36Core.Flex,{as:"nav",className:x.navigation,justifyContent:"space-between",gap:"spacingXs"},b__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingL"},t||b__default.default.createElement(Ie,{className:x.logo}),u&&b__default.default.createElement(O,{trigger:b__default.default.createElement(f36Button.Button,{className:x.mobileNavigationButton(f),startIcon:b__default.default.createElement(f36Icons.ListIcon,{size:"medium"})},"Menu")},u),s&&b__default.default.createElement(f36Core.Flex,{className:x.mainNavigation(f),"aria-label":"Main Navigation",gap:"spacingXs"},s)),b__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},b__default.default.createElement(f36Core.Flex,{alignItems:"center",className:x.promoNavigationWrapper,"aria-label":"Promotions",gap:"spacingXs"},r),b__default.default.createElement(f36Core.Flex,{alignItems:"center"},n),b__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},l&&b__default.default.createElement(f36Core.Flex,{className:x.secondaryNavigationWrapper,"aria-label":"Secondary Navigation",gap:"spacingXs"},l),c&&b__default.default.createElement(f36Core.Flex,{className:x.account,"aria-label":"Account Navigation",gap:"spacingXs"},c)))))}var Pe=b__default.default.forwardRef(no);var io={warning:a__default.default.colorWarning,negative:a__default.default.colorNegative,info:a__default.default.blue500},we=()=>({navbarAccount:emotion.css({cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%",border:"none",padding:0,"&:hover img":{filter:"brightness(0.9)"}},L(),B()),notificationIcon:e=>emotion.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:io[e],transform:"translate(30%, -30%)",zIndex:1})});function co(e,o){let S=e,{children:t,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:s,label:l="Account menu",initials:c,username:u,hasNotification:f,notificationVariant:y="warning"}=S,w=N(S,["children","className","testId","avatar","label","initials","username","hasNotification","notificationVariant"]),g=we();return b__default.default.createElement(O,{trigger:b__default.default.createElement("div",null,b__default.default.createElement(f36Tooltip.Tooltip,{placement:"bottom",content:l,showDelay:600,usePortal:!0},b__default.default.createElement(f36Core.Flex,d(p({as:"button"},w),{ref:o,className:emotion.cx(g.navbarAccount,r),testId:n,alignItems:"center","aria-label":l}),b__default.default.createElement(f36Avatar.Avatar,{src:s,initials:c,size:"small",variant:"user"}),f?b__default.default.createElement("span",{className:g.notificationIcon(y)}):null)))},t)}var oe=b__default.default.forwardRef(co);function te({ariaLabel:e}){return b__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},b__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var G="1px",ke=()=>emotion.css({backgroundColor:a__default.default.blue100,border:`${G} solid ${a__default.default.blue400}`,color:a__default.default.blue600,"&:hover":{backgroundColor:a__default.default.blue100}}),vo=()=>emotion.css({border:"none",opacity:.5,pointerEvents:"none"}),Ee={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},Te=({hasTitle:e})=>({navbarItem:emotion.css(Ee,{appearance:"none",background:"none",border:`${G} solid transparent`,margin:0,outline:"none",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?void 0:`calc(${a__default.default.spacing2Xs} - ${G})`,"&:hover":{backgroundColor:f36Utils.hexToRGBA(a__default.default.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a__default.default.transitionDurationShort} ${a__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a__default.default.zIndexDefault}},L(),B()),navbarItemMenuTrigger:emotion.css({paddingRight:a__default.default.spacingXs}),isActive:ke(),isDisabled:vo(),icon:emotion.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"}})}),Le=()=>({itemSkeleton:emotion.css(Ee)});var Be=()=>({navbarItemIcon:emotion.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 E=({icon:e,isActive:o,className:t})=>{let c=e.props,{className:r,size:n}=c,s=N(c,["className","size"]),l=Be();return b__default.default.cloneElement(e,p({className:emotion.cx(r,l.navbarItemIcon,t),size:n||"small",isActive:o},s))};var We="button";function Io(e,o){let de=e,{as:t=We,icon:r,label:n,title:s,children:l,className:c,isActive:u,isDisabled:f,testId:y="cf-ui-navbar-item",onOpen:w,onClose:g}=de,S=N(de,["as","icon","label","title","children","className","isActive","isDisabled","testId","onOpen","onClose"]),C=Te({hasTitle:!!s}),x=So(e),X=s&&x,q=b__default.default.createElement(t,p(p(d(p({},S),{ref:o,"data-test-id":y,className:emotion.cx(C.navbarItem,c,{[C.navbarItemMenuTrigger]:X,[C.isActive]:u&&!f,[C.isDisabled]:f})}),!s&&{"aria-label":n}),f&&(t===We?{disabled:!0}:{tabIndex:-1,"aria-disabled":!0})),r&&b__default.default.createElement(E,{className:C.icon,icon:r,isActive:u}),s&&b__default.default.createElement("span",null,s),X&&b__default.default.createElement(ye,{size:"tiny",isActive:u}));return s||(q=b__default.default.createElement("div",null,b__default.default.createElement(f36Tooltip.Tooltip,{content:n,placement:"bottom",showDelay:600,usePortal:!0},q))),x?b__default.default.createElement(O,{trigger:q,testId:y,onOpen:w,onClose:g},l):q}var So=e=>!!e.children,re=b__default.default.forwardRef(Io);var ae=({estimatedWidth:e})=>{let o=Le();return b__default.default.createElement(f36Skeleton.SkeletonContainer,{className:o.itemSkeleton,svgWidth:e,svgHeight:28,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},b__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:18,numberOfLines:1,offsetTop:2,radiusX:a__default.default.borderRadiusSmall,radiusY:a__default.default.borderRadiusSmall}))};var _e=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Eo="button";function To(e,o){let f=e,{as:t=Eo,icon:r,title:n,className:s}=f,l=N(f,["as","icon","title","className"]),c=_e(),u=Lo(e);return b__default.default.createElement(f36Menu.Menu.Item,d(p({},l),{ref:o,as:t,className:emotion.cx(c.navbarMenuItem,s)}),r?b__default.default.createElement(E,{icon:r}):u&&Fe,b__default.default.createElement("span",null,n),r&&u?Fe:null)}var Fe=b__default.default.createElement(E,{icon:b__default.default.createElement(f36Icons.ArrowSquareOutIcon,null)}),Lo=e=>e.as==="a"&&e.target==="_blank",ne=b__default.default.forwardRef(To);var ie=({ariaLabel:e})=>b__default.default.createElement(f36Menu.Menu.Item,null,b__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:a__default.default.spacingXs},b__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},b__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),b__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},b__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var V=1,$e=e=>({navbarSwitcher:({showSpaceEnv:o})=>emotion.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&&$o(e),L(),B()),switcherWrapper:({showSpaceEnv:o})=>emotion.css({gap:a__default.default.spacingXs,alignItems:"center",minWidth:0,"&:has(> span:last-child:nth-child(3))":{minWidth:"12ch"},"&:before":emotion.css(d(p({content:'""',position:"absolute",display:"block",width:`calc(8px - ${V}px)`,height:o?"26px":"unset",borderTopLeftRadius:`calc(${a__default.default.borderRadiusMedium} - ${V}px)`,borderBottomLeftRadius:`calc(${a__default.default.borderRadiusMedium} - ${V}px)`},Vo(e)),{backgroundPosition:"bottom"}))}),switcherLabelWrapper:emotion.css({height:"26px",paddingLeft:`calc(${a__default.default.spacingXs} * 2)`,alignItems:"center",gap:a__default.default.spacing2Xs,maxWidth:"100%"}),switcherLabel:emotion.css({color:"currentcolor",fontWeight:"inherit",lineHeight:"unset",display:"inline-block",flexShrink:1,minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),switcherCaret:emotion.css({flexShrink:0,minWidth:0}),switcherEnvIcon:emotion.css({minWidth:"0",[i.small]:{width:"16px",height:"16px"}})}),Ve=e=>{switch(e){case"trial":return a__default.default.purple700;case"non-master":return a__default.default.orange700;default:return a__default.default.green700}},$o=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:`${V}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:`${V}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:`${V}px solid ${a__default.default.green400}`,"&:hover, &:active":{backgroundColor:a__default.default.green200}})}},Vo=e=>{switch(e){case"trial":return {background:a__default.default.purple300};case"non-master":return {background:`linear-gradient(
22
+ var Ze=Object.defineProperty,Ye=Object.defineProperties;var Qe=Object.getOwnPropertyDescriptors;var j=Object.getOwnPropertySymbols;var ge=Object.prototype.hasOwnProperty,ue=Object.prototype.propertyIsEnumerable;var be=(e,o,t)=>o in e?Ze(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,p=(e,o)=>{for(var t in o||(o={}))ge.call(o,t)&&be(e,t,o[t]);if(j)for(var t of j(o))ue.call(o,t)&&be(e,t,o[t]);return e},d=(e,o)=>Ye(e,Qe(o));var N=(e,o)=>{var t={};for(var r in e)ge.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&j)for(var r of j(e))o.indexOf(r)<0&&ue.call(e,r)&&(t[r]=e[r]);return t};var ve=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)"},W=(e=a__default.default.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}}),B=(e="44px")=>({overflow:"visible",position:"relative","&:after":{minHeight:e,minWidth:e,position:"absolute",width:"100%",content:'""',left:"50%",top:"50%",transform:"translate(-50%, -50%)"}});var fe=({contentMaxWidth:e,variant:o})=>({container:emotion.css({justifyContent:"center",backgroundColor:a__default.default.gray100,width:"100%"}),logo:emotion.css({display:"none",[i.small]:{display:"block",height:"28px",width:"28px"}}),navigation:emotion.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=>emotion.css({display:"none"},t==="small"?{[i.small]:{display:"flex"}}:{[i.medium]:{display:"flex"}}),mobileNavigationButton:t=>emotion.css({display:"flex",minHeight:"initial",height:"36px",padding:"0 12px",borderRadius:"10px"},t==="small"?{[i.small]:{display:"none"}}:{[i.medium]:{display:"none"}}),mobileNavigationIcon:emotion.css({heigt:"20px",width:"20px"}),secondaryNavigationWrapper:emotion.css({"> *:not(:first-child)":{display:"none",[i.xsmall]:{display:"flex"}}}),promoNavigationWrapper:emotion.css({display:"none",[i.large]:{display:"flex"}}),account:emotion.css({display:"none",[i.xsmall]:{display:"flex"}})});var ye=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 Ie=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 Se=()=>({menuList:emotion.css({minWidth:0,[i.xsmall]:{minWidth:"250px"}})});var _=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:s}=e,l=Se();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 no(e,o){let A=e,{logo:t,promotions:r,switcher:n,mainNavigation:s,secondaryNavigation:l,account:c,mobileNavigation:b,mobileNavigationProps:g={breakpoint:"small",label:"Menu"},className:y,contentMaxWidth:C="100%",testId:u="cf-ui-navbar",variant:P="wide",aria:I={labelMainNavigation:"Main Navigation",labelSecondaryNavigation:"Secondary Navigation",labelPromotions:"Promotions",labelAccount:"Account Navigation"}}=A,q=N(A,["logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","contentMaxWidth","testId","variant","aria"]),x=fe({contentMaxWidth:C,variant:P});return v__default.default.createElement(f36Core.Flex,d(p({},q),{ref:o,testId:u,className:emotion.cx(x.container,y),as:"header"}),v__default.default.createElement(f36Core.Flex,{as:"nav",className:x.navigation,justifyContent:"space-between",gap:"spacingXs"},v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingL"},t||v__default.default.createElement(Ie,{className:x.logo}),b&&v__default.default.createElement(_,{trigger:v__default.default.createElement(f36Button.Button,{className:x.mobileNavigationButton(g.breakpoint),startIcon:v__default.default.createElement(f36Icons.ListIcon,{size:"medium"})},g.label)},b),s&&v__default.default.createElement(f36Core.Flex,{className:x.mainNavigation(g.breakpoint),"aria-label":I.labelMainNavigation,gap:"spacingXs"},s)),v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},v__default.default.createElement(f36Core.Flex,{alignItems:"center",className:x.promoNavigationWrapper,"aria-label":I.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:x.secondaryNavigationWrapper,"aria-label":I.labelSecondaryNavigation,gap:"spacingXs"},l),c&&v__default.default.createElement(f36Core.Flex,{className:x.account,"aria-label":I.labelAccount,gap:"spacingXs"},c)))))}var Pe=v__default.default.forwardRef(no);var io={warning:a__default.default.colorWarning,negative:a__default.default.colorNegative,info:a__default.default.blue500},we=()=>({navbarAccount:emotion.css({cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%",border:"none",padding:0,"&:hover img":{filter:"brightness(0.9)"}},W(),B()),notificationIcon:e=>emotion.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:io[e],transform:"translate(30%, -30%)",zIndex:1})});function co(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:y="warning"}=P,C=N(P,["children","className","testId","avatar","label","initials","username","hasNotification","notificationVariant"]),u=we();return v__default.default.createElement(_,{trigger:v__default.default.createElement("div",null,v__default.default.createElement(f36Tooltip.Tooltip,{placement:"bottom",content:l,showDelay:600,usePortal:!0},v__default.default.createElement(f36Core.Flex,d(p({as:"button"},C),{ref:o,className:emotion.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(y)}):null)))},t)}var oe=v__default.default.forwardRef(co);function te({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}))}var G="1px",ke=()=>emotion.css({backgroundColor:a__default.default.blue100,border:`${G} solid ${a__default.default.blue400}`,color:a__default.default.blue600,"&:hover":{backgroundColor:a__default.default.blue100}}),vo=()=>emotion.css({border:"none",opacity:.5,pointerEvents:"none"}),Ee={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},Te=({hasTitle:e})=>({navbarItem:emotion.css(Ee,{appearance:"none",background:"none",border:`${G} solid transparent`,margin:0,outline:"none",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?void 0:`calc(${a__default.default.spacing2Xs} - ${G})`,"&:hover":{backgroundColor:f36Utils.hexToRGBA(a__default.default.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a__default.default.transitionDurationShort} ${a__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a__default.default.zIndexDefault}},W(),B()),navbarItemMenuTrigger:emotion.css({paddingRight:a__default.default.spacingXs}),isActive:ke(),isDisabled:vo(),icon:emotion.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"}})}),Le=()=>({itemSkeleton:emotion.css(Ee)});var We=()=>({navbarItemIcon:emotion.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 T=({icon:e,isActive:o,className:t})=>{let c=e.props,{className:r,size:n}=c,s=N(c,["className","size"]),l=We();return v__default.default.cloneElement(e,p({className:emotion.cx(r,l.navbarItemIcon,t),size:n||"small",isActive:o},s))};var Be="button";function Io(e,o){let de=e,{as:t=Be,icon:r,label:n,title:s,children:l,className:c,isActive:b,isDisabled:g,testId:y="cf-ui-navbar-item",onOpen:C,onClose:u}=de,P=N(de,["as","icon","label","title","children","className","isActive","isDisabled","testId","onOpen","onClose"]),I=Te({hasTitle:!!s}),q=So(e),x=s&&q,A=v__default.default.createElement(t,p(p(d(p({},P),{ref:o,"data-test-id":y,className:emotion.cx(I.navbarItem,c,{[I.navbarItemMenuTrigger]:x,[I.isActive]:b&&!g,[I.isDisabled]:g})}),!s&&{"aria-label":n}),g&&(t===Be?{disabled:!0}:{tabIndex:-1,"aria-disabled":!0})),r&&v__default.default.createElement(T,{className:I.icon,icon:r,isActive:b}),s&&v__default.default.createElement("span",null,s),x&&v__default.default.createElement(ye,{size:"tiny",isActive:b}));return s||(A=v__default.default.createElement("div",null,v__default.default.createElement(f36Tooltip.Tooltip,{content:n,placement:"bottom",showDelay:600,usePortal:!0},A))),q?v__default.default.createElement(_,{trigger:A,testId:y,onOpen:C,onClose:u},l):A}var So=e=>!!e.children,re=v__default.default.forwardRef(Io);var ae=({estimatedWidth:e})=>{let o=Le();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}))};var _e=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Eo="button";function To(e,o){let g=e,{as:t=Eo,icon:r,title:n,className:s}=g,l=N(g,["as","icon","title","className"]),c=_e(),b=Lo(e);return v__default.default.createElement(f36Menu.Menu.Item,d(p({},l),{ref:o,as:t,className:emotion.cx(c.navbarMenuItem,s)}),r?v__default.default.createElement(T,{icon:r}):b&&Fe,v__default.default.createElement("span",null,n),r&&b?Fe:null)}var Fe=v__default.default.createElement(T,{icon:v__default.default.createElement(f36Icons.ArrowSquareOutIcon,null)}),Lo=e=>e.as==="a"&&e.target==="_blank",ne=v__default.default.forwardRef(To);var ie=({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 D=1,$e=e=>({navbarSwitcher:({showSpaceEnv:o})=>emotion.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&&$o(e),W(),B()),switcherWrapper:({showSpaceEnv:o})=>emotion.css({gap:a__default.default.spacingXs,alignItems:"center",minWidth:0,"&:has(> span:last-child:nth-child(3))":{minWidth:"12ch"},"&:before":emotion.css(d(p({content:'""',position:"absolute",display:"block",width:`calc(8px - ${D}px)`,height:o?"26px":"unset",borderTopLeftRadius:`calc(${a__default.default.borderRadiusMedium} - ${D}px)`,borderBottomLeftRadius:`calc(${a__default.default.borderRadiusMedium} - ${D}px)`},Vo(e)),{backgroundPosition:"bottom"}))}),switcherLabelWrapper:emotion.css({height:"26px",paddingLeft:`calc(${a__default.default.spacingXs} * 2)`,alignItems:"center",gap:a__default.default.spacing2Xs,maxWidth:"100%"}),switcherLabel:emotion.css({color:"currentcolor",fontWeight:"inherit",lineHeight:"unset",display:"inline-block",flexShrink:1,minWidth:"0",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"}),switcherCaret:emotion.css({flexShrink:0,minWidth:0}),switcherEnvIcon:emotion.css({minWidth:"0",[i.small]:{width:"16px",height:"16px"}})}),Ve=e=>{switch(e){case"trial":return a__default.default.purple700;case"non-master":return a__default.default.orange700;default:return a__default.default.green700}},$o=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:`${D}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:`${D}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:`${D}px solid ${a__default.default.green400}`,"&:hover, &:active":{backgroundColor:a__default.default.green200}})}},Vo=e=>{switch(e){case"trial":return {background:a__default.default.purple300};case"non-master":return {background:`linear-gradient(
23
23
  -45deg,
24
24
  ${a__default.default.orange300} 28.57%,
25
25
  transparent 28.57%,
@@ -28,7 +28,7 @@ var Ze=Object.defineProperty,Ye=Object.defineProperties;var Qe=Object.getOwnProp
28
28
  ${a__default.default.orange300} 78.57%,
29
29
  transparent 78.57%,
30
30
  transparent 100%
31
- )`,backgroundSize:"9px 9px"};default:return {background:a__default.default.green300}}};function De({isAlias:e,envVariant:o,className:t}){if(o==="trial")return b__default.default.createElement(f36Icons.FlaskIcon,{color:a__default.default.purple700,className:t,size:"medium"});let r=o==="master",n=r?a__default.default.green700:a__default.default.orange700;return r?b__default.default.createElement(f36Icons.RocketLaunchIcon,{color:n,className:t,size:"medium"}):e?b__default.default.createElement(f36Icons.EnvironmentAliasIcon,{color:n,className:t,size:"medium"}):b__default.default.createElement(f36Icons.EnvironmentIcon,{color:n,className:t,size:"medium"})}var U=({estimatedWidth:e})=>b__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:e,svgHeight:18,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},b__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:18,numberOfLines:1,radiusX:a__default.default.borderRadiusSmall,radiusY:a__default.default.borderRadiusSmall}));function Yo(e,o){let S=e,{children:t,className:r,envVariant:n,isAlias:s,testId:l="cf-ui-navbar-switcher",ariaLabel:c="Space and Environment Navigation",space:u,environment:f,isLoading:y}=S,w=N(S,["children","className","envVariant","isAlias","testId","ariaLabel","space","environment","isLoading"]),g=$e(n);return b__default.default.createElement(f36Button.Button,d(p({},w),{"aria-label":c,className:emotion.cx(g.navbarSwitcher({showSpaceEnv:!y&&!t}),r),endIcon:n&&b__default.default.createElement(De,{envVariant:n,isAlias:s,className:g.switcherEnvIcon}),ref:o,testId:l,variant:"transparent"}),b__default.default.createElement(f36Core.Flex,{className:g.switcherWrapper({showSpaceEnv:!y&&!t})},y?b__default.default.createElement(U,{estimatedWidth:148}):b__default.default.createElement(b__default.default.Fragment,null,t?b__default.default.createElement(f36Typography.Text,{className:g.switcherLabel},t):b__default.default.createElement(f36Core.Flex,{className:g.switcherLabelWrapper},b__default.default.createElement(f36Typography.Text,{className:g.switcherLabel},u),f&&b__default.default.createElement(b__default.default.Fragment,null,b__default.default.createElement(f36Core.Flex,{className:g.switcherCaret},b__default.default.createElement(f36Icons.CaretRightIcon,{size:"tiny",color:Ve(n)})),b__default.default.createElement(f36Typography.Text,{className:g.switcherLabel},f))))))}var le=b__default.default.forwardRef(Yo);var Xe=()=>({navbarBadge:emotion.css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${a__default.default.purple600}`,margin:0,outline:"none",fontSize:a__default.default.fontSizeS,lineHeight:a__default.default.lineHeightS,fontWeight:a__default.default.fontWeightMedium,textAlign:"center",padding:`0 ${a__default.default.spacingXs}`,textDecoration:"none",color:`${a__default.default.purple600}!important`,borderRadius:"1.75rem",userSelect:"none"})});var Ko="div";function et(e,o){let u=e,{as:t=Ko,children:r,className:n,testId:s="cf-ui-navbar-badge"}=u,l=N(u,["as","children","className","testId"]),c=Xe();return b__default.default.createElement(t,d(p({},l),{ref:o,className:emotion.cx(c.navbarBadge,n),"data-test-id":s}),r)}var Ge=b__default.default.forwardRef(et);var qe=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center",gap:a__default.default.spacingXs}),menuList:emotion.css({minWidth:0,marginLeft:"-24px",marginTop:"10px",[i.xsmall]:{minWidth:"250px",margin:0}})});var je=e=>{let{title:o,icon:t,children:r,testId:n="cf-ui-navbar-submenu-list",onOpen:s,onClose:l}=e,c=qe();return b__default.default.createElement(f36Menu.Menu.Submenu,{onOpen:s,onClose:l},b__default.default.createElement(f36Menu.Menu.SubmenuTrigger,null,b__default.default.createElement(f36Core.Flex,{className:c.navbarMenuItem},t&&b__default.default.createElement(E,{icon:t}),b__default.default.createElement("span",null,o))),b__default.default.createElement(f36Menu.Menu.List,{className:c.menuList,testId:n},r))};var h=Pe;h.Item=re;h.ItemSkeleton=ae;h.MenuItem=ne;h.MenuItemSkeleton=ie;h.MenuDivider=f36Menu.MenuDivider;h.MenuSectionTitle=f36Menu.MenuSectionTitle;h.Submenu=je;h.Switcher=le;h.SwitcherSkeleton=U;h.Account=oe;h.AccountSkeleton=te;h.Badge=Ge;
31
+ )`,backgroundSize:"9px 9px"};default:return {background:a__default.default.green300}}};function De({isAlias:e,envVariant:o,className:t}){if(o==="trial")return v__default.default.createElement(f36Icons.FlaskIcon,{color:a__default.default.purple700,className:t,size:"medium"});let r=o==="master",n=r?a__default.default.green700:a__default.default.orange700;return r?v__default.default.createElement(f36Icons.RocketLaunchIcon,{color:n,className:t,size:"medium"}):e?v__default.default.createElement(f36Icons.EnvironmentAliasIcon,{color:n,className:t,size:"medium"}):v__default.default.createElement(f36Icons.EnvironmentIcon,{color:n,className:t,size:"medium"})}var U=({estimatedWidth:e})=>v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:e,svgHeight:18,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:18,numberOfLines:1,radiusX:a__default.default.borderRadiusSmall,radiusY:a__default.default.borderRadiusSmall}));function Yo(e,o){let P=e,{children:t,className:r,envVariant:n,isAlias:s,testId:l="cf-ui-navbar-switcher",ariaLabel:c="Space and Environment Navigation",space:b,environment:g,isLoading:y}=P,C=N(P,["children","className","envVariant","isAlias","testId","ariaLabel","space","environment","isLoading"]),u=$e(n);return v__default.default.createElement(f36Button.Button,d(p({},C),{"aria-label":c,className:emotion.cx(u.navbarSwitcher({showSpaceEnv:!y&&!t}),r),endIcon:n&&v__default.default.createElement(De,{envVariant:n,isAlias:s,className:u.switcherEnvIcon}),ref:o,testId:l,variant:"transparent"}),v__default.default.createElement(f36Core.Flex,{className:u.switcherWrapper({showSpaceEnv:!y&&!t})},y?v__default.default.createElement(U,{estimatedWidth:148}):v__default.default.createElement(v__default.default.Fragment,null,t?v__default.default.createElement(f36Typography.Text,{className:u.switcherLabel},t):v__default.default.createElement(f36Core.Flex,{className:u.switcherLabelWrapper},v__default.default.createElement(f36Typography.Text,{className:u.switcherLabel},b),g&&v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement(f36Core.Flex,{className:u.switcherCaret},v__default.default.createElement(f36Icons.CaretRightIcon,{size:"tiny",color:Ve(n)})),v__default.default.createElement(f36Typography.Text,{className:u.switcherLabel},g))))))}var le=v__default.default.forwardRef(Yo);var Xe=()=>({navbarBadge:emotion.css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${a__default.default.purple600}`,margin:0,outline:"none",fontSize:a__default.default.fontSizeS,lineHeight:a__default.default.lineHeightS,fontWeight:a__default.default.fontWeightMedium,textAlign:"center",padding:`0 ${a__default.default.spacingXs}`,textDecoration:"none",color:`${a__default.default.purple600}!important`,borderRadius:"1.75rem",userSelect:"none"})});var Ko="div";function et(e,o){let b=e,{as:t=Ko,children:r,className:n,testId:s="cf-ui-navbar-badge"}=b,l=N(b,["as","children","className","testId"]),c=Xe();return v__default.default.createElement(t,d(p({},l),{ref:o,className:emotion.cx(c.navbarBadge,n),"data-test-id":s}),r)}var Ge=v__default.default.forwardRef(et);var qe=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center",gap:a__default.default.spacingXs}),menuList:emotion.css({minWidth:0,marginLeft:"-24px",marginTop:"10px",[i.xsmall]:{minWidth:"250px",margin:0}})});var je=e=>{let{title:o,icon:t,children:r,testId:n="cf-ui-navbar-submenu-list",onOpen:s,onClose:l}=e,c=qe();return v__default.default.createElement(f36Menu.Menu.Submenu,{onOpen:s,onClose:l},v__default.default.createElement(f36Menu.Menu.SubmenuTrigger,null,v__default.default.createElement(f36Core.Flex,{className:c.navbarMenuItem},t&&v__default.default.createElement(T,{icon:t}),v__default.default.createElement("span",null,o))),v__default.default.createElement(f36Menu.Menu.List,{className:c.menuList,testId:n},r))};var h=Pe;h.Item=re;h.ItemSkeleton=ae;h.MenuItem=ne;h.MenuItemSkeleton=ie;h.MenuDivider=f36Menu.MenuDivider;h.MenuSectionTitle=f36Menu.MenuSectionTitle;h.Submenu=je;h.Switcher=le;h.SwitcherSkeleton=U;h.Account=oe;h.AccountSkeleton=te;h.Badge=Ge;
32
32
 
33
33
  exports.NAVBAR_HEIGHT = ve;
34
34
  exports.Navbar = h;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/constants.ts","../src/CompoundNavbar.ts","../src/Navbar.tsx","../src/Navbar.styles.ts","../src/utils.styles.ts","../src/icons/CaretIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../src/NavbarMenu/NavbarMenu.tsx","../src/NavbarMenu/NavbarMenu.styles.ts","../src/NavbarAccount/NavbarAccount.tsx","../src/NavbarAccount/NavbarAccount.styles.ts","../src/NavbarAccount/NavbarAccountSkeleton.tsx","../src/NavbarItem/NavbarItem.tsx","../src/NavbarItem/NavbarItem.styles.ts","../src/NavbarItemIcon/NavbarItemIcon.tsx","../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../src/NavbarItem/NavbarItemSkeleton.tsx","../src/NavbarMenuItem/NavbarMenuItem.tsx","../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../src/NavbarSwitcher/NavbarSwitcher.tsx","../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../src/NavbarSwitcher/NavbarEnvVariant.tsx","../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarBadge/NavbarBadge.styles.ts","../src/NavbarSubmenu/NavbarSubmenu.tsx","../src/NavbarSubmenu/NavbarMenu.styles.ts"],"names":["NAVBAR_HEIGHT","MenuDivider","MenuSectionTitle","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","increaseHitArea","minSize","getNavbarStyles","contentMaxWidth","variant","mobileNavigationBp","generateComponentWithVariants","generateIconComponent","IconVariant","CaretIcon","ContentfulLogoIcon","cx","Button","ListIcon","Menu","getNavbarMenuStyles","NavbarMenu","props","trigger","children","testId","onOpen","onClose","styles","_Navbar","ref","_a","logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","className","otherProps","__objRest","__spreadProps","__spreadValues","Navbar","notificationVarianColorMap","getNavbarAccountStyles","Avatar","Tooltip","_NavbarAccount","avatar","label","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","hexToRGBA","borderWidth","getNavbarItemActiveStyles","getNavbarItemDisabledStyles","commonItemStyles","getNavbarItemStyles","hasTitle","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","iconClassName","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","title","isDisabled","isMenuTrigger","isNavbarItemHasMenu","showCaret","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","BORDER_WIDTH","getNavbarSwitcherStyles","showSpaceEnv","getEnvVariantColor","getWrapperBackground","getNavbarIconColor","sharedStyles","EnvironmentAliasIcon","EnvironmentIcon","FlaskIcon","RocketLaunchIcon","NavbarEnvVariant","isAlias","envVariant","isMaster","color","NavbarSwitcherSkeleton","CaretRightIcon","Text","_NavbarSwitcher","space","environment","isLoading","NavbarSwitcher","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge","getNavbarSubmenuStyles","NavbarSubmenu"],"mappings":"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","sourcesContent":["export const NAVBAR_HEIGHT = 60;\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","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';\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 /** breakpoint to determine when to show the mobile navigation */\n mobileNavigationBp?: 'small' | 'medium';\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// 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 mobileNavigationBp = 'small',\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\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(mobileNavigationBp)}\n startIcon={<ListIcon size=\"medium\" />}\n >\n Menu\n </Button>\n }\n >\n {mobileNavigation}\n </NavbarMenu>\n )}\n {mainNavigation && (\n <Flex\n className={styles.mainNavigation(mobileNavigationBp)}\n aria-label=\"Main Navigation\"\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=\"Promotions\"\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=\"Secondary Navigation\"\n gap=\"spacingXs\"\n >\n {secondaryNavigation}\n </Flex>\n )}\n {account && (\n <Flex\n className={styles.account}\n aria-label=\"Account Navigation\"\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';\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 tokens from '@contentful/f36-tokens';\nimport type { CSSObject } from '@emotion/serialize';\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 = (\n shadow: string = tokens.glowPrimary,\n): CSSObject => ({\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'): CSSObject => ({\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 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 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.ReactNode;\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 { css } from 'emotion';\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 { cx } from 'emotion';\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 _NavbarAccount(\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\nexport const NavbarAccount = React.forwardRef(_NavbarAccount);\n","import { css } from 'emotion';\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 { 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","import React from 'react';\nimport { cx } from 'emotion';\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 _NavbarItem(\n props: NavbarItemProps<React.ElementType>,\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.navbarItemMenuTrigger]: showCaret,\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\nexport const NavbarItem: PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\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 '&: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 border: `${borderWidth} solid transparent`,\n margin: 0,\n outline: 'none',\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 ? undefined\n : `calc(${tokens.spacing2Xs} - ${borderWidth})`, // square button for icon-only items\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n\n '&:hover::before': {\n opacity: 1,\n scale: '1',\n },\n\n '&:active::before': {\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\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 navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\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 React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from 'emotion';\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","import { css } from 'emotion';\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 { 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","import React from 'react';\nimport { cx } from 'emotion';\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 _NavbarMenuItem(\n props: NavbarMenuItemProps<React.ElementType>,\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: PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarMenuItem);\n","import { css } from 'emotion';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\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 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';\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 isCircle?: boolean;\n envVariant?: EnvVariant;\n isAlias?: boolean;\n ariaLabel?: string;\n };\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction _NavbarSwitcher(\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\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\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 { cx } from 'emotion';\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 _NavbarBadge(\n props: NavbarBadgeProps<React.ElementType>,\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\nexport const NavbarBadge: PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarBadge);\n","import { css } from 'emotion';\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 { 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.Submenu 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.Submenu>\n );\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\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"]}
1
+ {"version":3,"sources":["../src/constants.ts","../src/CompoundNavbar.ts","../src/Navbar.tsx","../src/Navbar.styles.ts","../src/utils.styles.ts","../src/icons/CaretIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../src/NavbarMenu/NavbarMenu.tsx","../src/NavbarMenu/NavbarMenu.styles.ts","../src/NavbarAccount/NavbarAccount.tsx","../src/NavbarAccount/NavbarAccount.styles.ts","../src/NavbarAccount/NavbarAccountSkeleton.tsx","../src/NavbarItem/NavbarItem.tsx","../src/NavbarItem/NavbarItem.styles.ts","../src/NavbarItemIcon/NavbarItemIcon.tsx","../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../src/NavbarItem/NavbarItemSkeleton.tsx","../src/NavbarMenuItem/NavbarMenuItem.tsx","../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../src/NavbarSwitcher/NavbarSwitcher.tsx","../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../src/NavbarSwitcher/NavbarEnvVariant.tsx","../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarBadge/NavbarBadge.styles.ts","../src/NavbarSubmenu/NavbarSubmenu.tsx","../src/NavbarSubmenu/NavbarMenu.styles.ts"],"names":["NAVBAR_HEIGHT","MenuDivider","MenuSectionTitle","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","increaseHitArea","minSize","getNavbarStyles","contentMaxWidth","variant","mobileNavigationBp","generateComponentWithVariants","generateIconComponent","IconVariant","CaretIcon","ContentfulLogoIcon","cx","Button","ListIcon","Menu","getNavbarMenuStyles","NavbarMenu","props","trigger","children","testId","onOpen","onClose","styles","_Navbar","ref","_a","logo","promotions","switcher","mainNavigation","secondaryNavigation","account","mobileNavigation","mobileNavigationProps","className","aria","otherProps","__objRest","__spreadProps","__spreadValues","Navbar","notificationVarianColorMap","getNavbarAccountStyles","Avatar","Tooltip","_NavbarAccount","avatar","label","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","hexToRGBA","borderWidth","getNavbarItemActiveStyles","getNavbarItemDisabledStyles","commonItemStyles","getNavbarItemStyles","hasTitle","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","iconClassName","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","title","isDisabled","isMenuTrigger","isNavbarItemHasMenu","showCaret","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","BORDER_WIDTH","getNavbarSwitcherStyles","showSpaceEnv","getEnvVariantColor","getWrapperBackground","getNavbarIconColor","sharedStyles","EnvironmentAliasIcon","EnvironmentIcon","FlaskIcon","RocketLaunchIcon","NavbarEnvVariant","isAlias","envVariant","isMaster","color","NavbarSwitcherSkeleton","CaretRightIcon","Text","_NavbarSwitcher","space","environment","isLoading","NavbarSwitcher","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge","getNavbarSubmenuStyles","NavbarSubmenu"],"mappings":"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","sourcesContent":["export const NAVBAR_HEIGHT = 60;\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","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';\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';\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 tokens from '@contentful/f36-tokens';\nimport type { CSSObject } from '@emotion/serialize';\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 = (\n shadow: string = tokens.glowPrimary,\n): CSSObject => ({\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'): CSSObject => ({\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 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 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.ReactNode;\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 { css } from 'emotion';\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 { cx } from 'emotion';\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 _NavbarAccount(\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\nexport const NavbarAccount = React.forwardRef(_NavbarAccount);\n","import { css } from 'emotion';\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 { 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","import React from 'react';\nimport { cx } from 'emotion';\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 _NavbarItem(\n props: NavbarItemProps<React.ElementType>,\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.navbarItemMenuTrigger]: showCaret,\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\nexport const NavbarItem: PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\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 '&: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 border: `${borderWidth} solid transparent`,\n margin: 0,\n outline: 'none',\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 ? undefined\n : `calc(${tokens.spacing2Xs} - ${borderWidth})`, // square button for icon-only items\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n\n '&:hover::before': {\n opacity: 1,\n scale: '1',\n },\n\n '&:active::before': {\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\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 navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\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 React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from 'emotion';\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","import { css } from 'emotion';\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 { 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","import React from 'react';\nimport { cx } from 'emotion';\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 _NavbarMenuItem(\n props: NavbarMenuItemProps<React.ElementType>,\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: PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarMenuItem);\n","import { css } from 'emotion';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\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 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';\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 isCircle?: boolean;\n envVariant?: EnvVariant;\n isAlias?: boolean;\n ariaLabel?: string;\n };\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction _NavbarSwitcher(\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\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\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 { cx } from 'emotion';\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 _NavbarBadge(\n props: NavbarBadgeProps<React.ElementType>,\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\nexport const NavbarBadge: PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarBadge);\n","import { css } from 'emotion';\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 { 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.Submenu 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.Submenu>\n );\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/f36-navbar",
3
- "version": "5.0.0-alpha.44",
3
+ "version": "5.0.0-alpha.45",
4
4
  "description": "Forma 36: Navbar component",
5
5
  "scripts": {
6
6
  "build": "tsup"