@contentful/f36-navbar 5.0.0-alpha.16 → 5.0.0-alpha.18
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 +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/esm/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MenuDivider, MenuSectionTitle, Menu } from '@contentful/f36-menu';
|
|
2
2
|
import { Box, Flex } from '@contentful/f36-core';
|
|
3
|
-
import
|
|
3
|
+
import u from 'react';
|
|
4
4
|
import { cx, css } from 'emotion';
|
|
5
5
|
import s from '@contentful/f36-tokens';
|
|
6
6
|
import { generateIconComponent, generateComponentWithVariants, IconVariant } from '@contentful/f36-icon';
|
|
@@ -9,7 +9,7 @@ import { Avatar } from '@contentful/f36-avatar';
|
|
|
9
9
|
import { SkeletonContainer, SkeletonImage, SkeletonText, SkeletonBodyText, SkeletonDisplayText } from '@contentful/f36-skeleton';
|
|
10
10
|
import { ArrowSquareOutIcon, EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';
|
|
11
11
|
|
|
12
|
-
var De=Object.defineProperty,Ve=Object.defineProperties;var Xe=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var ie=(e,t,o)=>t in e?De(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))se.call(t,o)&&ie(e,o,t[o]);if(H)for(var o of H(t))me.call(t,o)&&ie(e,o,t[o]);return e},p=(e,t)=>Ve(e,Xe(t));var l=(e,t)=>{var o={};for(var r in e)se.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&H)for(var r of H(e))t.indexOf(r)<0&&me.call(e,r)&&(o[r]=e[r]);return o};var h={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},M=(e=s.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var pe=(e,t)=>({containerTop:css({justifyContent:"center",backgroundColor:s.gray100}),containerBottom:css({justifyContent:"center",backgroundColor:s.gray100}),containerTopContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:s.spacingXs,minHeight:s.spacingL,[h.medium]:{padding:`${s.spacingXs} 20px`}}),containerBottomContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:s.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[h.medium]:{padding:`${s.spacing2Xs} ${s.spacingXs}`}}),logo:css({height:"28px",width:"28px"})});var ce=generateIconComponent({name:"CircleIcon",viewBox:"0 0 24 24",path:y.createElement("path",{d:"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z",fill:"currentFill"})});var ge=generateComponentWithVariants({variants:{[IconVariant.Active]:generateIconComponent({path:y.createElement(y.Fragment,null,y.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:s.blue300})),viewBox:"0 0 12 12"}),[IconVariant.Default]:generateIconComponent({path:y.createElement(y.Fragment,null,y.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:s.gray400})),viewBox:"0 0 12 12"})}});var be=generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:y.createElement(y.Fragment,null,y.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"}),y.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"}),y.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"}),y.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"}),y.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"}))});function Ye(e,t){let S=e,{logo:o,switcher:r,mainNavigation:m,secondaryNavigation:n,account:a,className:g,contentMaxWidth:d="100%",testId:f="cf-ui-navbar",variant:I="wide"}=S,u=l(S,["logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","variant"]),v=pe(d,I);return y.createElement(Box,p(i({},u),{ref:t,testId:f,className:g,as:"header"}),y.createElement(Flex,{className:v.containerTop},y.createElement(Flex,{className:v.containerTopContent,justifyContent:"space-between"},y.createElement(Flex,{alignItems:"center",gap:"spacingL"},o||y.createElement(be,{className:v.logo}),r,y.createElement(Flex,{gap:"spacingXs",as:"nav","aria-label":"Main Navigation"},m)),y.createElement(Flex,{alignItems:"center",gap:"spacingXs"},n,a))))}var ue=y.forwardRef(Ye);var Ke={warning:s.colorWarning,negative:s.colorNegative,info:s.blue500},ve=()=>({navbarAccount:css({margin:0,padding:0,border:0,cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%","&:before":css({content:'""',display:"block",position:"absolute",height:"24px",width:"24px",backgroundColor:"transparent",borderRadius:"50%"}),"&:hover:before":css({backgroundColor:hexToRGBA(s.gray300,.15)})},M()),avatar:css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:s.spacingS,width:s.spacingS,borderRadius:"50%",border:`2px solid ${s.gray100}`,backgroundColor:Ke[e],transform:"translate(30%, -30%)"})});var he=()=>({menuList:css({minWidth:"250px"})});var z=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:m,onClose:n}=e,a=he();return y.createElement(Menu,{onOpen:m,onClose:n},y.createElement(Menu.Trigger,null,t),y.createElement(Menu.List,{className:a.menuList,testId:r},o))};function rt(e,t){let v=e,{children:o,className:r,testId:m="cf-ui-navbar-account-trigger",avatar:n,initials:a,username:g,hasNotification:d,notificationVariant:f="warning"}=v,I=l(v,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),u=ve();return y.createElement(z,{trigger:y.createElement(Flex,p(i({as:"button"},I),{ref:t,className:cx(u.navbarAccount,r),testId:m,alignItems:"center","aria-label":"Account Menu"}),y.createElement(Avatar,{src:n,initials:a,size:"small",variant:"user"}),d?y.createElement("span",{className:u.notificationIcon(f)}):null)},o)}var Z=y.forwardRef(rt);function q({ariaLabel:e}){return y.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:s.gray300,foregroundColor:s.gray200},y.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var Ie=()=>css({backgroundColor:s.blue100,border:`1px solid ${s.blue400}`,color:s.blue600,"&:hover":{backgroundColor:s.blue100}}),xe={display:"flex",justifyContent:"center",padding:`${s.spacing2Xs} ${s.spacingXs}`,alignItems:"center",background:"none",gap:s.spacing2Xs},Pe=()=>({navbarItem:css(xe,{alignItems:"center",background:"none",border:"1px solid transparent",margin:0,outline:"none",fontSize:s.fontSizeM,lineHeight:s.lineHeightS,fontWeight:s.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:s.gray800,boxSizing:"border-box",transition:`color ${s.transitionDurationShort} ${s.transitionEasingCubicBezier}`,borderRadius:s.borderRadiusMedium,"&:hover":{backgroundColor:hexToRGBA(s.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${s.transitionDurationShort} ${s.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:s.zIndexDefault}},M()),navbarItemMenuTrigger:css({paddingRight:s.spacingXs}),isActive:Ie()}),Se=()=>({itemSkeleton:css(xe)});var Me=()=>({navbarItemIcon:css({"&:last-child&:not(:only-child)":{marginLeft:s.spacing2Xs},"img&":{borderRadius:s.borderRadiusSmall,maxWidth:s.spacingM,maxHeight:s.spacingM}})});var O=({icon:e,isActive:t})=>{let a=e.props,{className:o,size:r}=a,m=l(a,["className","size"]),n=Me();return y.cloneElement(e,i({className:cx(o,n.navbarItemIcon),size:r||"small",isActive:t},m))};var lt="button";function dt(e,t){let ae=e,{as:o=lt,icon:r,label:m,title:n,children:a,className:g,isActive:d,testId:f="cf-ui-navbar-item",onOpen:I,onClose:u}=ae,v=l(ae,["as","icon","label","title","children","className","isActive","testId","onOpen","onClose"]),S=Pe(),$=ft(e),ne=y.createElement(o,p(i({},v),{ref:t,"data-test-id":f,className:cx(S.navbarItem,$&&S.navbarItemMenuTrigger,d&&S.isActive,g),"aria-label":n?"":m}),r&&y.createElement(O,{icon:r,isActive:d}),n&&y.createElement("span",null,n),n&&$&&y.createElement(ge,{size:"tiny",isActive:d}));return $?y.createElement(z,{trigger:ne,testId:f,onOpen:I,onClose:u},a):ne}var ft=e=>!!e.children,Y=y.forwardRef(dt);var J=({estimatedWidth:e})=>{let t=Se();return y.createElement(SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:s.gray300,foregroundColor:s.gray200},y.createElement(SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:s.borderRadiusSmall,radiusY:s.borderRadiusSmall}))};var we=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var yt="button";function It(e,t){let f=e,{as:o=yt,icon:r,title:m,className:n}=f,a=l(f,["as","icon","title","className"]),g=we(),d=xt(e);return y.createElement(Menu.Item,p(i({},a),{ref:t,as:o,className:cx(g.navbarMenuItem,n)}),r?y.createElement(O,{icon:r}):d&&Ae,y.createElement("span",null,m),r&&d?Ae:null)}var Ae=y.createElement(O,{icon:y.createElement(ArrowSquareOutIcon,null)}),xt=e=>e.as==="a"&&e.target==="_blank",K=y.forwardRef(It);var Q=({ariaLabel:e})=>y.createElement(Menu.Item,null,y.createElement(Flex,{alignItems:"center",gap:s.spacingXs},y.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},y.createElement(SkeletonImage,{width:16,height:16})),y.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},y.createElement(SkeletonBodyText,{numberOfLines:1}))));var Ee=()=>({navbarSwitcher:css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:s.gray700,cursor:"pointer",fontSize:s.fontSizeS,fontWeight:s.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},M()),switcherMenuIcon:css({height:s.spacingM,width:s.spacingM,fill:s.gray700}),switcherBreadcrumbs:css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function kt(e,t){let g=e,{children:o,className:r,testId:m="cf-ui-navbar-switcher"}=g,n=l(g,["children","className","testId"]),a=Ee();return y.createElement(Flex,p(i({},n),{as:"button",ref:t,className:cx(a.navbarSwitcher,r),testId:m,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),y.createElement(Flex,{as:"ul",alignItems:"center",className:a.switcherBreadcrumbs},o))}var oe=y.forwardRef(kt);var re=({estimatedWidth:e})=>y.createElement(SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:s.gray300,foregroundColor:s.gray200},y.createElement(SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Re={display:"none","&:first-child":{display:"block"},[h.medium]:{display:"block","&:first-child":{display:"none"}}},_e=()=>({breadcrumbsItem:css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${s.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${s.spacingXs}`,height:s.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:s.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[h.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:s.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:s.fontStackMonospace,fontSize:s.fontSizeS,fontWeight:s.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[h.large]:{maxWidth:"100%"}},"> div":{[h.medium]:{gap:s.spacing2Xs}}}}),breadcrumbsItemCircle:css({border:`solid 1px ${s.gray300}`,borderRadius:"50%",color:s.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:s.spacingL,height:s.spacingL}),breadcrumbsItemEnvMaster:css({color:s.green600," svg":p(i({},Re),{fill:s.green600})}),breadcrumbsItemEnvNonMaster:css({color:s.orange500,svg:p(i({},Re),{fill:s.orange500})})});function Oe({isAlias:e}){return y.createElement(y.Fragment,null,y.createElement(ce,{key:"mobile-icon",size:"tiny"}),e?y.createElement(EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):y.createElement(EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function Ot(e,t){let u=e,{children:o,isCircle:r,className:m,envVariant:n,isAlias:a,testId:g="cf-ui-navbar-switcher-item"}=u,d=l(u,["children","isCircle","className","envVariant","isAlias","testId"]),f=_e(),I=cx(f.breadcrumbsItem,m,{[f.breadcrumbsItemCircle]:r,[f.breadcrumbsItemEnvMaster]:n==="master",[f.breadcrumbsItemEnvNonMaster]:n==="non-master"});return y.createElement("li",p(i({},d),{ref:t,className:I,"data-test-id":g}),y.createElement(Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},n&&y.createElement(Oe,{isAlias:a}),y.createElement("span",null,o)))}var We=y.forwardRef(Ot);var Fe=()=>({navbarBadge:css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${s.purple600}`,margin:0,outline:"none",fontSize:s.fontSizeS,lineHeight:s.lineHeightS,fontWeight:s.fontWeightMedium,textAlign:"center",padding:`0 ${s.spacingXs}`,textDecoration:"none",color:`${s.purple600}!important`,borderRadius:"1.75rem"})});var Ht="div";function zt(e,t){let d=e,{as:o=Ht,children:r,className:m,testId:n="cf-ui-navbar-badge"}=d,a=l(d,["as","children","className","testId"]),g=Fe();return y.createElement(o,p(i({},a),{ref:t,className:cx(g.navbarBadge,m),"data-test-id":n}),r)}var ze=y.forwardRef(zt);var b=ue;b.Item=Y;b.ItemSkeleton=J;b.MenuItem=K;b.MenuItemSkeleton=Q;b.MenuDivider=MenuDivider;b.MenuSectionTitle=MenuSectionTitle;b.Switcher=oe;b.SwitcherSkeleton=re;b.SwitcherItem=We;b.Account=Z;b.AccountSkeleton=q;b.Badge=ze;
|
|
12
|
+
var De=Object.defineProperty,Ve=Object.defineProperties;var Xe=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var ie=(e,t,o)=>t in e?De(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))se.call(t,o)&&ie(e,o,t[o]);if(H)for(var o of H(t))me.call(t,o)&&ie(e,o,t[o]);return e},p=(e,t)=>Ve(e,Xe(t));var l=(e,t)=>{var o={};for(var r in e)se.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&H)for(var r of H(e))t.indexOf(r)<0&&me.call(e,r)&&(o[r]=e[r]);return o};var N={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},C=(e=s.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var pe=(e,t)=>({containerTop:css({justifyContent:"center",backgroundColor:s.gray100}),containerBottom:css({justifyContent:"center",backgroundColor:s.gray100}),containerTopContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:s.spacingXs,minHeight:s.spacingL,[N.medium]:{padding:`${s.spacingXs} 20px`}}),containerBottomContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:s.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[N.medium]:{padding:`${s.spacing2Xs} ${s.spacingXs}`}}),logo:css({height:"28px",width:"28px"})});var ce=generateIconComponent({name:"CircleIcon",viewBox:"0 0 24 24",path:u.createElement("path",{d:"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z",fill:"currentFill"})});var ge=generateComponentWithVariants({variants:{[IconVariant.Active]:generateIconComponent({path:u.createElement(u.Fragment,null,u.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:s.blue300})),viewBox:"0 0 12 12"}),[IconVariant.Default]:generateIconComponent({path:u.createElement(u.Fragment,null,u.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:s.gray400})),viewBox:"0 0 12 12"})}});var be=generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:u.createElement(u.Fragment,null,u.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"}),u.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"}),u.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"}),u.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"}),u.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"}))});function Ye(e,t){let M=e,{logo:o,switcher:r,mainNavigation:m,secondaryNavigation:n,account:a,className:g,contentMaxWidth:d="100%",testId:f="cf-ui-navbar",variant:x="wide"}=M,v=l(M,["logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","variant"]),h=pe(d,x);return u.createElement(Box,p(i({},v),{ref:t,testId:f,className:g,as:"header"}),u.createElement(Flex,{className:h.containerTop},u.createElement(Flex,{className:h.containerTopContent,justifyContent:"space-between"},u.createElement(Flex,{alignItems:"center",gap:"spacingL"},o||u.createElement(be,{className:h.logo}),r&&u.createElement(Flex,{as:"nav","aria-label":"Space and Environment Navigation"},r),m&&u.createElement(Flex,{gap:"spacingXs",as:"nav","aria-label":"Main Navigation"},m)),u.createElement(Flex,{alignItems:"center",gap:"spacingXs"},n&&u.createElement(Flex,{as:"nav","aria-label":"Secondary Navigation"},n),a&&u.createElement(Flex,{as:"nav","aria-label":"Account Navigation"},a)))))}var ue=u.forwardRef(Ye);var Ke={warning:s.colorWarning,negative:s.colorNegative,info:s.blue500},ve=()=>({navbarAccount:css({margin:0,padding:0,border:0,cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%","&:before":css({content:'""',display:"block",position:"absolute",height:"24px",width:"24px",backgroundColor:"transparent",borderRadius:"50%"}),"&:hover:before":css({backgroundColor:hexToRGBA(s.gray300,.15)})},C()),avatar:css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:s.spacingS,width:s.spacingS,borderRadius:"50%",border:`2px solid ${s.gray100}`,backgroundColor:Ke[e],transform:"translate(30%, -30%)"})});var he=()=>({menuList:css({minWidth:"250px"})});var z=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:m,onClose:n}=e,a=he();return u.createElement(Menu,{onOpen:m,onClose:n},u.createElement(Menu.Trigger,null,t),u.createElement(Menu.List,{className:a.menuList,testId:r},o))};function rt(e,t){let h=e,{children:o,className:r,testId:m="cf-ui-navbar-account-trigger",avatar:n,initials:a,username:g,hasNotification:d,notificationVariant:f="warning"}=h,x=l(h,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),v=ve();return u.createElement(z,{trigger:u.createElement(Flex,p(i({as:"button"},x),{ref:t,className:cx(v.navbarAccount,r),testId:m,alignItems:"center","aria-label":"Account Menu"}),u.createElement(Avatar,{src:n,initials:a,size:"small",variant:"user"}),d?u.createElement("span",{className:v.notificationIcon(f)}):null)},o)}var Z=u.forwardRef(rt);function q({ariaLabel:e}){return u.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:s.gray300,foregroundColor:s.gray200},u.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var Ie=()=>css({backgroundColor:s.blue100,border:`1px solid ${s.blue400}`,color:s.blue600,"&:hover":{backgroundColor:s.blue100}}),xe={display:"flex",justifyContent:"center",padding:`${s.spacing2Xs} ${s.spacingXs}`,alignItems:"center",background:"none",gap:s.spacing2Xs},Pe=()=>({navbarItem:css(xe,{alignItems:"center",background:"none",border:"1px solid transparent",margin:0,outline:"none",fontSize:s.fontSizeM,lineHeight:s.lineHeightS,fontWeight:s.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:s.gray800,boxSizing:"border-box",transition:`color ${s.transitionDurationShort} ${s.transitionEasingCubicBezier}`,borderRadius:s.borderRadiusMedium,"&:hover":{backgroundColor:hexToRGBA(s.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${s.transitionDurationShort} ${s.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:s.zIndexDefault}},C()),navbarItemMenuTrigger:css({paddingRight:s.spacingXs}),isActive:Ie()}),Se=()=>({itemSkeleton:css(xe)});var Me=()=>({navbarItemIcon:css({"&:last-child&:not(:only-child)":{marginLeft:s.spacing2Xs},"img&":{borderRadius:s.borderRadiusSmall,maxWidth:s.spacingM,maxHeight:s.spacingM}})});var F=({icon:e,isActive:t})=>{let a=e.props,{className:o,size:r}=a,m=l(a,["className","size"]),n=Me();return u.cloneElement(e,i({className:cx(o,n.navbarItemIcon),size:r||"small",isActive:t},m))};var lt="button";function dt(e,t){let ae=e,{as:o=lt,icon:r,label:m,title:n,children:a,className:g,isActive:d,testId:f="cf-ui-navbar-item",onOpen:x,onClose:v}=ae,h=l(ae,["as","icon","label","title","children","className","isActive","testId","onOpen","onClose"]),M=Pe(),$=ft(e),ne=u.createElement(o,p(i({},h),{ref:t,"data-test-id":f,className:cx(M.navbarItem,$&&M.navbarItemMenuTrigger,d&&M.isActive,g),"aria-label":n?"":m}),r&&u.createElement(F,{icon:r,isActive:d}),n&&u.createElement("span",null,n),n&&$&&u.createElement(ge,{size:"tiny",isActive:d}));return $?u.createElement(z,{trigger:ne,testId:f,onOpen:x,onClose:v},a):ne}var ft=e=>!!e.children,Y=u.forwardRef(dt);var J=({estimatedWidth:e})=>{let t=Se();return u.createElement(SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:s.gray300,foregroundColor:s.gray200},u.createElement(SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:s.borderRadiusSmall,radiusY:s.borderRadiusSmall}))};var we=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var yt="button";function It(e,t){let f=e,{as:o=yt,icon:r,title:m,className:n}=f,a=l(f,["as","icon","title","className"]),g=we(),d=xt(e);return u.createElement(Menu.Item,p(i({},a),{ref:t,as:o,className:cx(g.navbarMenuItem,n)}),r?u.createElement(F,{icon:r}):d&&Ae,u.createElement("span",null,m),r&&d?Ae:null)}var Ae=u.createElement(F,{icon:u.createElement(ArrowSquareOutIcon,null)}),xt=e=>e.as==="a"&&e.target==="_blank",K=u.forwardRef(It);var Q=({ariaLabel:e})=>u.createElement(Menu.Item,null,u.createElement(Flex,{alignItems:"center",gap:s.spacingXs},u.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},u.createElement(SkeletonImage,{width:16,height:16})),u.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},u.createElement(SkeletonBodyText,{numberOfLines:1}))));var Ee=()=>({navbarSwitcher:css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:s.gray700,cursor:"pointer",fontSize:s.fontSizeS,fontWeight:s.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},C()),switcherMenuIcon:css({height:s.spacingM,width:s.spacingM,fill:s.gray700}),switcherBreadcrumbs:css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function kt(e,t){let g=e,{children:o,className:r,testId:m="cf-ui-navbar-switcher"}=g,n=l(g,["children","className","testId"]),a=Ee();return u.createElement(Flex,p(i({},n),{as:"button",ref:t,className:cx(a.navbarSwitcher,r),testId:m,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),u.createElement(Flex,{as:"ul",alignItems:"center",className:a.switcherBreadcrumbs},o))}var oe=u.forwardRef(kt);var re=({estimatedWidth:e})=>u.createElement(SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:s.gray300,foregroundColor:s.gray200},u.createElement(SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Re={display:"none","&:first-child":{display:"block"},[N.medium]:{display:"block","&:first-child":{display:"none"}}},_e=()=>({breadcrumbsItem:css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${s.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${s.spacingXs}`,height:s.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:s.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[N.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:s.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:s.fontStackMonospace,fontSize:s.fontSizeS,fontWeight:s.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[N.large]:{maxWidth:"100%"}},"> div":{[N.medium]:{gap:s.spacing2Xs}}}}),breadcrumbsItemCircle:css({border:`solid 1px ${s.gray300}`,borderRadius:"50%",color:s.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:s.spacingL,height:s.spacingL}),breadcrumbsItemEnvMaster:css({color:s.green600," svg":p(i({},Re),{fill:s.green600})}),breadcrumbsItemEnvNonMaster:css({color:s.orange500,svg:p(i({},Re),{fill:s.orange500})})});function Fe({isAlias:e}){return u.createElement(u.Fragment,null,u.createElement(ce,{key:"mobile-icon",size:"tiny"}),e?u.createElement(EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):u.createElement(EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function Ft(e,t){let v=e,{children:o,isCircle:r,className:m,envVariant:n,isAlias:a,testId:g="cf-ui-navbar-switcher-item"}=v,d=l(v,["children","isCircle","className","envVariant","isAlias","testId"]),f=_e(),x=cx(f.breadcrumbsItem,m,{[f.breadcrumbsItemCircle]:r,[f.breadcrumbsItemEnvMaster]:n==="master",[f.breadcrumbsItemEnvNonMaster]:n==="non-master"});return u.createElement("li",p(i({},d),{ref:t,className:x,"data-test-id":g}),u.createElement(Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},n&&u.createElement(Fe,{isAlias:a}),u.createElement("span",null,o)))}var Oe=u.forwardRef(Ft);var We=()=>({navbarBadge:css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${s.purple600}`,margin:0,outline:"none",fontSize:s.fontSizeS,lineHeight:s.lineHeightS,fontWeight:s.fontWeightMedium,textAlign:"center",padding:`0 ${s.spacingXs}`,textDecoration:"none",color:`${s.purple600}!important`,borderRadius:"1.75rem"})});var Ht="div";function zt(e,t){let d=e,{as:o=Ht,children:r,className:m,testId:n="cf-ui-navbar-badge"}=d,a=l(d,["as","children","className","testId"]),g=We();return u.createElement(o,p(i({},a),{ref:t,className:cx(g.navbarBadge,m),"data-test-id":n}),r)}var ze=u.forwardRef(zt);var b=ue;b.Item=Y;b.ItemSkeleton=J;b.MenuItem=K;b.MenuItemSkeleton=Q;b.MenuDivider=MenuDivider;b.MenuSectionTitle=MenuSectionTitle;b.Switcher=oe;b.SwitcherSkeleton=re;b.SwitcherItem=Oe;b.Account=Z;b.AccountSkeleton=q;b.Badge=ze;
|
|
13
13
|
|
|
14
14
|
export { b as Navbar, Ie as getNavbarItemActiveStyles };
|
|
15
15
|
//# sourceMappingURL=out.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/CompoundNavbar.ts","../../src/Navbar.tsx","../../src/Navbar.styles.ts","../../src/utils.styles.ts","../../src/icons/CircleIcon.tsx","../../src/icons/CaretIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../src/NavbarAccount/NavbarAccount.tsx","../../src/NavbarAccount/NavbarAccount.styles.ts","../../src/NavbarMenu/NavbarMenu.tsx","../../src/NavbarMenu/NavbarMenu.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/NavbarSwitcherSkeleton.tsx","../../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","generateIconComponent","CircleIcon","generateComponentWithVariants","IconVariant","CaretIcon","ContentfulLogoIcon","_Navbar","props","ref","_a","logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","children","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","label","title","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","_NavbarSwitcher","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge"],"mappings":"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","sourcesContent":["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';\n\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\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 Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n SwitcherItem: typeof NavbarSwitcherItem;\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.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.SwitcherItem = NavbarSwitcherItem;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n","import {\n Box,\n type CommonProps,\n type ExpandProps,\n Flex,\n} from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\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 /** 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 /**\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 switcher,\n mainNavigation,\n secondaryNavigation,\n account,\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 <Box\n {...otherProps}\n ref={ref}\n testId={testId}\n className={className}\n as=\"header\"\n >\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {switcher}\n <Flex gap=\"spacingXs\" as=\"nav\" aria-label=\"Main Navigation\">\n {mainNavigation}\n </Flex>\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation}\n {account}\n </Flex>\n </Flex>\n </Flex>\n </Box>\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';\n\nexport const getNavbarStyles = (maxWidth: string, variant: string) => ({\n containerTop: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerBottom: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerTopContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: tokens.spacingXs,\n minHeight: tokens.spacingL,\n [mqs.medium]: {\n padding: `${tokens.spacingXs} 20px`,\n },\n }),\n containerBottomContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: 0,\n paddingTop: tokens.spacing2Xs,\n minHeight: '2.5rem',\n overflow: 'auto',\n [mqs.medium]: {\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n },\n }),\n logo: css({\n height: '28px',\n width: '28px',\n }),\n});\n","import tokens from '@contentful/f36-tokens';\n\ntype screens = 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\nexport const mqs: mediaqueries = {\n medium: '@media (min-width: 480px)',\n large: '@media (min-width: 768px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) => ({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIconComponent({\n name: 'CircleIcon',\n viewBox: '0 0 24 24',\n path: (\n <path\n d=\"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z\"\n fill=\"currentFill\"\n />\n ),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import 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 { Avatar } from '@contentful/f36-avatar';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\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 initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\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=\"Account Menu\"\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n {hasNotification ? (\n <span className={styles.notificationIcon(notificationVariant)} />\n ) : null}\n </Flex>\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 } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\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 // default button reset styles\n margin: 0,\n padding: 0,\n border: 0,\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n '&:before': css({\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n height: '24px',\n width: '24px',\n backgroundColor: 'transparent',\n borderRadius: '50%',\n }),\n '&:hover:before': css({\n backgroundColor: hexToRGBA(tokens.gray300, 0.15),\n }),\n },\n getGlowOnFocusStyles(),\n ),\n avatar: css({\n borderRadius: '50%',\n display: 'block',\n height: '24px',\n width: '24px',\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 }),\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';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: '250px',\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';\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};\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 testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles();\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(\n styles.navbarItem,\n isMenuTrigger && styles.navbarItemMenuTrigger,\n isActive && styles.isActive,\n className,\n )}\n aria-label={title ? '' : label}\n >\n {icon && <NavbarItemIcon icon={icon} isActive={isActive} />}\n {title && <span>{title}</span>}\n {title && isMenuTrigger && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\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 } from '../utils.styles';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `1px solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: '1px solid transparent',\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightS,\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\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 ),\n navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\n }),\n isActive: getNavbarItemActiveStyles(),\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} & Pick<IconProps, 'isActive'>;\n\nexport const NavbarItemIcon = ({ icon, isActive }: NavbarItemIconProps) => {\n const { className, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(className, styles.navbarItemIcon),\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={32}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={6}\n numberOfLines={1}\n offsetTop={10}\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 { getNavbarSwitcherStyles } from './NavbarSwitcher.styles';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\n\ntype NavbarSwitcherOwnProps = CommonProps & {\n children?: React.ReactNode;\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 testId = 'cf-ui-navbar-switcher',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles();\n\n return (\n <Flex\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarSwitcher, className)}\n testId={testId}\n alignItems=\"center\"\n fullHeight\n gap=\"spacingXs\"\n >\n <Flex as=\"ul\" alignItems=\"center\" className={styles.switcherBreadcrumbs}>\n {children}\n </Flex>\n </Flex>\n );\n}\n\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarSwitcherStyles = () => ({\n navbarSwitcher: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n background: 'none',\n border: 'none',\n height: 'max-content',\n\n color: tokens.gray700,\n cursor: 'pointer',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n outline: 'none',\n borderRadius: '3rem',\n '&:last-child:after': {\n display: 'none',\n },\n '&:hover li': {\n backgroundColor: '#f2f4f6', // Using a calculated hover alpha color because when using a RGBA value layers overlapping occur and show darker areas\n },\n },\n getGlowOnFocusStyles(),\n ),\n switcherMenuIcon: css({\n height: tokens.spacingM,\n width: tokens.spacingM,\n fill: tokens.gray700,\n }),\n switcherBreadcrumbs: css({\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n }),\n});\n","import React from 'react';\nimport {\n SkeletonContainer,\n SkeletonDisplayText,\n} 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={24}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonDisplayText\n lineHeight={24}\n numberOfLines={1}\n radiusX={12}\n radiusY={12}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarSwitcherItemStyles } from './NavbarSwitcherItem.styles';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport {\n Flex,\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\n\ntype NavbarSwitcherItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n isCircle?: boolean;\n envVariant?: 'master' | 'non-master';\n isAlias?: boolean;\n};\n\nexport type NavbarSwitcherItemProps = PropsWithHTMLElement<\n NavbarSwitcherItemOwnProps,\n 'li'\n>;\n\nfunction _NavbarSwitcherItem(\n props: ExpandProps<NavbarSwitcherItemProps>,\n ref: React.Ref<HTMLLIElement>,\n) {\n const {\n children,\n isCircle,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher-item',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherItemStyles();\n const classes = cx(styles.breadcrumbsItem, className, {\n [styles.breadcrumbsItemCircle]: isCircle,\n [styles.breadcrumbsItemEnvMaster]: envVariant === 'master',\n [styles.breadcrumbsItemEnvNonMaster]: envVariant === 'non-master',\n });\n\n return (\n <li {...otherProps} ref={ref} className={classes} data-test-id={testId}>\n <Flex fullHeight justifyContent=\"center\" alignItems=\"center\">\n {envVariant && <NavbarEnvVariant isAlias={isAlias} />}\n <span>{children}</span>\n </Flex>\n </li>\n );\n}\n\nexport const NavbarSwitcherItem = React.forwardRef(_NavbarSwitcherItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from '../utils.styles';\n\nconst mobileIcon = {\n display: 'none',\n '&:first-child': {\n display: 'block',\n },\n\n [mqs.medium]: {\n display: 'block',\n '&:first-child': {\n display: 'none',\n },\n },\n};\n\nexport const getNavbarSwitcherItemStyles = () => ({\n breadcrumbsItem: css({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n border: `solid 1px ${tokens.gray300}`,\n borderLeft: 'none',\n display: 'inline-flex',\n margin: 0,\n minWidth: 0,\n padding: `0 ${tokens.spacingXs}`,\n height: tokens.spacingL,\n borderRadius: '3rem',\n zIndex: 2,\n\n whiteSpace: 'nowrap',\n '&:first-child': {\n minWidth: '24px',\n },\n '&:nth-child(2)': {\n zIndex: 1,\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n span: {\n maxWidth: '80px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n },\n '&:nth-child(3)': {\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n fontFamily: tokens.fontStackMonospace,\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n zIndex: 0,\n span: {\n maxWidth: '40px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n '> div': {\n [mqs.medium]: {\n gap: tokens.spacing2Xs,\n },\n },\n },\n }),\n breadcrumbsItemCircle: css({\n border: `solid 1px ${tokens.gray300}`,\n borderRadius: '50%',\n color: tokens.gray400,\n padding: 0,\n display: 'flex',\n justifyContent: 'center',\n fontSize: '11px',\n width: tokens.spacingL,\n height: tokens.spacingL,\n }),\n breadcrumbsItemEnvMaster: css({\n color: tokens.green600,\n ' svg': {\n ...mobileIcon,\n fill: tokens.green600,\n },\n }),\n breadcrumbsItemEnvNonMaster: css({\n color: tokens.orange500,\n svg: {\n ...mobileIcon,\n fill: tokens.orange500,\n },\n }),\n});\n","import React from 'react';\nimport { NavbarSwitcherItemProps } from './NavbarSwitcherItem';\nimport { CircleIcon } from '../icons';\nimport { EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';\n\nexport type NavbarEnvVariantProps = Pick<NavbarSwitcherItemProps, 'isAlias'>;\n\nexport function NavbarEnvVariant({ isAlias }: NavbarEnvVariantProps) {\n return (\n <>\n <CircleIcon key=\"mobile-icon\" size=\"tiny\" />\n {isAlias ? (\n <EnvironmentAliasIcon key=\"full-icon\" size=\"tiny\" />\n ) : (\n <EnvironmentIcon key=\"full-icon\" size=\"tiny\" />\n )}\n </>\n );\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 }),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/CompoundNavbar.ts","../../src/Navbar.tsx","../../src/Navbar.styles.ts","../../src/utils.styles.ts","../../src/icons/CircleIcon.tsx","../../src/icons/CaretIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../src/NavbarAccount/NavbarAccount.tsx","../../src/NavbarAccount/NavbarAccount.styles.ts","../../src/NavbarMenu/NavbarMenu.tsx","../../src/NavbarMenu/NavbarMenu.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/NavbarSwitcherSkeleton.tsx","../../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","generateIconComponent","CircleIcon","generateComponentWithVariants","IconVariant","CaretIcon","ContentfulLogoIcon","_Navbar","props","ref","_a","logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","children","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","label","title","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","_NavbarSwitcher","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge"],"mappings":"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","sourcesContent":["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';\n\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\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 Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n SwitcherItem: typeof NavbarSwitcherItem;\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.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.SwitcherItem = NavbarSwitcherItem;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n","import {\n Box,\n type CommonProps,\n type ExpandProps,\n Flex,\n} from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\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 /** 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 /**\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 switcher,\n mainNavigation,\n secondaryNavigation,\n account,\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 <Box\n {...otherProps}\n ref={ref}\n testId={testId}\n className={className}\n as=\"header\"\n >\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {switcher && (\n <Flex as=\"nav\" aria-label=\"Space and Environment Navigation\">\n {switcher}\n </Flex>\n )}\n {mainNavigation && (\n <Flex gap=\"spacingXs\" as=\"nav\" aria-label=\"Main Navigation\">\n {mainNavigation}\n </Flex>\n )}\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation && (\n <Flex as=\"nav\" aria-label=\"Secondary Navigation\">\n {secondaryNavigation}\n </Flex>\n )}\n {account && (\n <Flex as=\"nav\" aria-label=\"Account Navigation\">\n {account}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Box>\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';\n\nexport const getNavbarStyles = (maxWidth: string, variant: string) => ({\n containerTop: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerBottom: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerTopContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: tokens.spacingXs,\n minHeight: tokens.spacingL,\n [mqs.medium]: {\n padding: `${tokens.spacingXs} 20px`,\n },\n }),\n containerBottomContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: 0,\n paddingTop: tokens.spacing2Xs,\n minHeight: '2.5rem',\n overflow: 'auto',\n [mqs.medium]: {\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n },\n }),\n logo: css({\n height: '28px',\n width: '28px',\n }),\n});\n","import tokens from '@contentful/f36-tokens';\n\ntype screens = 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\nexport const mqs: mediaqueries = {\n medium: '@media (min-width: 480px)',\n large: '@media (min-width: 768px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) => ({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIconComponent({\n name: 'CircleIcon',\n viewBox: '0 0 24 24',\n path: (\n <path\n d=\"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z\"\n fill=\"currentFill\"\n />\n ),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import 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 { Avatar } from '@contentful/f36-avatar';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\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 initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\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=\"Account Menu\"\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n {hasNotification ? (\n <span className={styles.notificationIcon(notificationVariant)} />\n ) : null}\n </Flex>\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 } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\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 // default button reset styles\n margin: 0,\n padding: 0,\n border: 0,\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n '&:before': css({\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n height: '24px',\n width: '24px',\n backgroundColor: 'transparent',\n borderRadius: '50%',\n }),\n '&:hover:before': css({\n backgroundColor: hexToRGBA(tokens.gray300, 0.15),\n }),\n },\n getGlowOnFocusStyles(),\n ),\n avatar: css({\n borderRadius: '50%',\n display: 'block',\n height: '24px',\n width: '24px',\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 }),\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';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: '250px',\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';\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};\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 testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles();\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(\n styles.navbarItem,\n isMenuTrigger && styles.navbarItemMenuTrigger,\n isActive && styles.isActive,\n className,\n )}\n aria-label={title ? '' : label}\n >\n {icon && <NavbarItemIcon icon={icon} isActive={isActive} />}\n {title && <span>{title}</span>}\n {title && isMenuTrigger && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\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 } from '../utils.styles';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `1px solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: '1px solid transparent',\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightS,\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\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 ),\n navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\n }),\n isActive: getNavbarItemActiveStyles(),\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} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({ icon, isActive }: NavbarItemIconProps) => {\n const { className, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(className, styles.navbarItemIcon),\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={32}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={6}\n numberOfLines={1}\n offsetTop={10}\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 { getNavbarSwitcherStyles } from './NavbarSwitcher.styles';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n CommonProps,\n 'button'\n> & {\n children?: React.ReactNode;\n};\n\nfunction _NavbarSwitcher(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-switcher',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles();\n\n return (\n <Flex\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarSwitcher, className)}\n testId={testId}\n alignItems=\"center\"\n fullHeight\n gap=\"spacingXs\"\n >\n <Flex as=\"ul\" alignItems=\"center\" className={styles.switcherBreadcrumbs}>\n {children}\n </Flex>\n </Flex>\n );\n}\n\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarSwitcherStyles = () => ({\n navbarSwitcher: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n background: 'none',\n border: 'none',\n height: 'max-content',\n\n color: tokens.gray700,\n cursor: 'pointer',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n outline: 'none',\n borderRadius: '3rem',\n '&:last-child:after': {\n display: 'none',\n },\n '&:hover li': {\n backgroundColor: '#f2f4f6', // Using a calculated hover alpha color because when using a RGBA value layers overlapping occur and show darker areas\n },\n },\n getGlowOnFocusStyles(),\n ),\n switcherMenuIcon: css({\n height: tokens.spacingM,\n width: tokens.spacingM,\n fill: tokens.gray700,\n }),\n switcherBreadcrumbs: css({\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n }),\n});\n","import React from 'react';\nimport {\n SkeletonContainer,\n SkeletonDisplayText,\n} 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={24}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonDisplayText\n lineHeight={24}\n numberOfLines={1}\n radiusX={12}\n radiusY={12}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarSwitcherItemStyles } from './NavbarSwitcherItem.styles';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport {\n Flex,\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\n\ntype NavbarSwitcherItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n isCircle?: boolean;\n envVariant?: 'master' | 'non-master';\n isAlias?: boolean;\n};\n\nexport type NavbarSwitcherItemProps = PropsWithHTMLElement<\n NavbarSwitcherItemOwnProps,\n 'li'\n>;\n\nfunction _NavbarSwitcherItem(\n props: ExpandProps<NavbarSwitcherItemProps>,\n ref: React.Ref<HTMLLIElement>,\n) {\n const {\n children,\n isCircle,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher-item',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherItemStyles();\n const classes = cx(styles.breadcrumbsItem, className, {\n [styles.breadcrumbsItemCircle]: isCircle,\n [styles.breadcrumbsItemEnvMaster]: envVariant === 'master',\n [styles.breadcrumbsItemEnvNonMaster]: envVariant === 'non-master',\n });\n\n return (\n <li {...otherProps} ref={ref} className={classes} data-test-id={testId}>\n <Flex fullHeight justifyContent=\"center\" alignItems=\"center\">\n {envVariant && <NavbarEnvVariant isAlias={isAlias} />}\n <span>{children}</span>\n </Flex>\n </li>\n );\n}\n\nexport const NavbarSwitcherItem = React.forwardRef(_NavbarSwitcherItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from '../utils.styles';\n\nconst mobileIcon = {\n display: 'none',\n '&:first-child': {\n display: 'block',\n },\n\n [mqs.medium]: {\n display: 'block',\n '&:first-child': {\n display: 'none',\n },\n },\n};\n\nexport const getNavbarSwitcherItemStyles = () => ({\n breadcrumbsItem: css({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n border: `solid 1px ${tokens.gray300}`,\n borderLeft: 'none',\n display: 'inline-flex',\n margin: 0,\n minWidth: 0,\n padding: `0 ${tokens.spacingXs}`,\n height: tokens.spacingL,\n borderRadius: '3rem',\n zIndex: 2,\n\n whiteSpace: 'nowrap',\n '&:first-child': {\n minWidth: '24px',\n },\n '&:nth-child(2)': {\n zIndex: 1,\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n span: {\n maxWidth: '80px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n },\n '&:nth-child(3)': {\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n fontFamily: tokens.fontStackMonospace,\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n zIndex: 0,\n span: {\n maxWidth: '40px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n '> div': {\n [mqs.medium]: {\n gap: tokens.spacing2Xs,\n },\n },\n },\n }),\n breadcrumbsItemCircle: css({\n border: `solid 1px ${tokens.gray300}`,\n borderRadius: '50%',\n color: tokens.gray400,\n padding: 0,\n display: 'flex',\n justifyContent: 'center',\n fontSize: '11px',\n width: tokens.spacingL,\n height: tokens.spacingL,\n }),\n breadcrumbsItemEnvMaster: css({\n color: tokens.green600,\n ' svg': {\n ...mobileIcon,\n fill: tokens.green600,\n },\n }),\n breadcrumbsItemEnvNonMaster: css({\n color: tokens.orange500,\n svg: {\n ...mobileIcon,\n fill: tokens.orange500,\n },\n }),\n});\n","import React from 'react';\nimport { NavbarSwitcherItemProps } from './NavbarSwitcherItem';\nimport { CircleIcon } from '../icons';\nimport { EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';\n\nexport type NavbarEnvVariantProps = Pick<NavbarSwitcherItemProps, 'isAlias'>;\n\nexport function NavbarEnvVariant({ isAlias }: NavbarEnvVariantProps) {\n return (\n <>\n <CircleIcon key=\"mobile-icon\" size=\"tiny\" />\n {isAlias ? (\n <EnvironmentAliasIcon key=\"full-icon\" size=\"tiny\" />\n ) : (\n <EnvironmentIcon key=\"full-icon\" size=\"tiny\" />\n )}\n </>\n );\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 }),\n});\n"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -79,7 +79,7 @@ declare type NavbarMenuProps = {
|
|
|
79
79
|
|
|
80
80
|
declare type NavbarItemIconProps = {
|
|
81
81
|
icon: React.ReactElement<IconProps>;
|
|
82
|
-
} & Pick<IconProps, 'isActive'
|
|
82
|
+
} & Partial<Pick<IconProps, 'isActive'>>;
|
|
83
83
|
|
|
84
84
|
declare const NAVBAR_ITEM_DEFAULT_TAG = "button";
|
|
85
85
|
declare type NavbarItemTriggerProps = CommonProps & {
|
|
@@ -117,7 +117,7 @@ declare const NavbarMenuItemSkeleton: ({ ariaLabel, }: {
|
|
|
117
117
|
ariaLabel?: string;
|
|
118
118
|
}) => JSX.Element;
|
|
119
119
|
|
|
120
|
-
declare const NavbarSwitcher: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>,
|
|
120
|
+
declare const NavbarSwitcher: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, keyof CommonProps> & CommonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
121
121
|
|
|
122
122
|
declare const NavbarSwitcherSkeleton: ({ estimatedWidth, }: {
|
|
123
123
|
estimatedWidth: number;
|
package/dist/index.d.ts
CHANGED
|
@@ -79,7 +79,7 @@ declare type NavbarMenuProps = {
|
|
|
79
79
|
|
|
80
80
|
declare type NavbarItemIconProps = {
|
|
81
81
|
icon: React.ReactElement<IconProps>;
|
|
82
|
-
} & Pick<IconProps, 'isActive'
|
|
82
|
+
} & Partial<Pick<IconProps, 'isActive'>>;
|
|
83
83
|
|
|
84
84
|
declare const NAVBAR_ITEM_DEFAULT_TAG = "button";
|
|
85
85
|
declare type NavbarItemTriggerProps = CommonProps & {
|
|
@@ -117,7 +117,7 @@ declare const NavbarMenuItemSkeleton: ({ ariaLabel, }: {
|
|
|
117
117
|
ariaLabel?: string;
|
|
118
118
|
}) => JSX.Element;
|
|
119
119
|
|
|
120
|
-
declare const NavbarSwitcher: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>,
|
|
120
|
+
declare const NavbarSwitcher: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, keyof CommonProps> & CommonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
121
121
|
|
|
122
122
|
declare const NavbarSwitcherSkeleton: ({ estimatedWidth, }: {
|
|
123
123
|
estimatedWidth: number;
|
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
|
|
5
|
+
var u = require('react');
|
|
6
6
|
var emotion = require('emotion');
|
|
7
7
|
var s = require('@contentful/f36-tokens');
|
|
8
8
|
var f36Icon = require('@contentful/f36-icon');
|
|
@@ -13,10 +13,10 @@ var f36Icons = require('@contentful/f36-icons');
|
|
|
13
13
|
|
|
14
14
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var u__default = /*#__PURE__*/_interopDefault(u);
|
|
17
17
|
var s__default = /*#__PURE__*/_interopDefault(s);
|
|
18
18
|
|
|
19
|
-
var De=Object.defineProperty,Ve=Object.defineProperties;var Xe=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var ie=(e,t,o)=>t in e?De(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))se.call(t,o)&&ie(e,o,t[o]);if(H)for(var o of H(t))me.call(t,o)&&ie(e,o,t[o]);return e},p=(e,t)=>Ve(e,Xe(t));var l=(e,t)=>{var o={};for(var r in e)se.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&H)for(var r of H(e))t.indexOf(r)<0&&me.call(e,r)&&(o[r]=e[r]);return o};var h={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},M=(e=s__default.default.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var pe=(e,t)=>({containerTop:emotion.css({justifyContent:"center",backgroundColor:s__default.default.gray100}),containerBottom:emotion.css({justifyContent:"center",backgroundColor:s__default.default.gray100}),containerTopContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:s__default.default.spacingXs,minHeight:s__default.default.spacingL,[h.medium]:{padding:`${s__default.default.spacingXs} 20px`}}),containerBottomContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:s__default.default.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[h.medium]:{padding:`${s__default.default.spacing2Xs} ${s__default.default.spacingXs}`}}),logo:emotion.css({height:"28px",width:"28px"})});var ce=f36Icon.generateIconComponent({name:"CircleIcon",viewBox:"0 0 24 24",path:y__default.default.createElement("path",{d:"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z",fill:"currentFill"})});var ge=f36Icon.generateComponentWithVariants({variants:{[f36Icon.IconVariant.Active]:f36Icon.generateIconComponent({path:y__default.default.createElement(y__default.default.Fragment,null,y__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:s__default.default.blue300})),viewBox:"0 0 12 12"}),[f36Icon.IconVariant.Default]:f36Icon.generateIconComponent({path:y__default.default.createElement(y__default.default.Fragment,null,y__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:s__default.default.gray400})),viewBox:"0 0 12 12"})}});var be=f36Icon.generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:y__default.default.createElement(y__default.default.Fragment,null,y__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"}),y__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"}),y__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"}),y__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"}),y__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"}))});function Ye(e,t){let S=e,{logo:o,switcher:r,mainNavigation:m,secondaryNavigation:n,account:a,className:g,contentMaxWidth:d="100%",testId:f="cf-ui-navbar",variant:I="wide"}=S,u=l(S,["logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","variant"]),v=pe(d,I);return y__default.default.createElement(f36Core.Box,p(i({},u),{ref:t,testId:f,className:g,as:"header"}),y__default.default.createElement(f36Core.Flex,{className:v.containerTop},y__default.default.createElement(f36Core.Flex,{className:v.containerTopContent,justifyContent:"space-between"},y__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingL"},o||y__default.default.createElement(be,{className:v.logo}),r,y__default.default.createElement(f36Core.Flex,{gap:"spacingXs",as:"nav","aria-label":"Main Navigation"},m)),y__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},n,a))))}var ue=y__default.default.forwardRef(Ye);var Ke={warning:s__default.default.colorWarning,negative:s__default.default.colorNegative,info:s__default.default.blue500},ve=()=>({navbarAccount:emotion.css({margin:0,padding:0,border:0,cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%","&:before":emotion.css({content:'""',display:"block",position:"absolute",height:"24px",width:"24px",backgroundColor:"transparent",borderRadius:"50%"}),"&:hover:before":emotion.css({backgroundColor:f36Utils.hexToRGBA(s__default.default.gray300,.15)})},M()),avatar:emotion.css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>emotion.css({position:"absolute",top:0,right:0,height:s__default.default.spacingS,width:s__default.default.spacingS,borderRadius:"50%",border:`2px solid ${s__default.default.gray100}`,backgroundColor:Ke[e],transform:"translate(30%, -30%)"})});var he=()=>({menuList:emotion.css({minWidth:"250px"})});var z=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:m,onClose:n}=e,a=he();return y__default.default.createElement(f36Menu.Menu,{onOpen:m,onClose:n},y__default.default.createElement(f36Menu.Menu.Trigger,null,t),y__default.default.createElement(f36Menu.Menu.List,{className:a.menuList,testId:r},o))};function rt(e,t){let v=e,{children:o,className:r,testId:m="cf-ui-navbar-account-trigger",avatar:n,initials:a,username:g,hasNotification:d,notificationVariant:f="warning"}=v,I=l(v,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),u=ve();return y__default.default.createElement(z,{trigger:y__default.default.createElement(f36Core.Flex,p(i({as:"button"},I),{ref:t,className:emotion.cx(u.navbarAccount,r),testId:m,alignItems:"center","aria-label":"Account Menu"}),y__default.default.createElement(f36Avatar.Avatar,{src:n,initials:a,size:"small",variant:"user"}),d?y__default.default.createElement("span",{className:u.notificationIcon(f)}):null)},o)}var Z=y__default.default.forwardRef(rt);function q({ariaLabel:e}){return y__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},y__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var Ie=()=>emotion.css({backgroundColor:s__default.default.blue100,border:`1px solid ${s__default.default.blue400}`,color:s__default.default.blue600,"&:hover":{backgroundColor:s__default.default.blue100}}),xe={display:"flex",justifyContent:"center",padding:`${s__default.default.spacing2Xs} ${s__default.default.spacingXs}`,alignItems:"center",background:"none",gap:s__default.default.spacing2Xs},Pe=()=>({navbarItem:emotion.css(xe,{alignItems:"center",background:"none",border:"1px solid transparent",margin:0,outline:"none",fontSize:s__default.default.fontSizeM,lineHeight:s__default.default.lineHeightS,fontWeight:s__default.default.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:s__default.default.gray800,boxSizing:"border-box",transition:`color ${s__default.default.transitionDurationShort} ${s__default.default.transitionEasingCubicBezier}`,borderRadius:s__default.default.borderRadiusMedium,"&:hover":{backgroundColor:f36Utils.hexToRGBA(s__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 ${s__default.default.transitionDurationShort} ${s__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:s__default.default.zIndexDefault}},M()),navbarItemMenuTrigger:emotion.css({paddingRight:s__default.default.spacingXs}),isActive:Ie()}),Se=()=>({itemSkeleton:emotion.css(xe)});var Me=()=>({navbarItemIcon:emotion.css({"&:last-child&:not(:only-child)":{marginLeft:s__default.default.spacing2Xs},"img&":{borderRadius:s__default.default.borderRadiusSmall,maxWidth:s__default.default.spacingM,maxHeight:s__default.default.spacingM}})});var O=({icon:e,isActive:t})=>{let a=e.props,{className:o,size:r}=a,m=l(a,["className","size"]),n=Me();return y__default.default.cloneElement(e,i({className:emotion.cx(o,n.navbarItemIcon),size:r||"small",isActive:t},m))};var lt="button";function dt(e,t){let ae=e,{as:o=lt,icon:r,label:m,title:n,children:a,className:g,isActive:d,testId:f="cf-ui-navbar-item",onOpen:I,onClose:u}=ae,v=l(ae,["as","icon","label","title","children","className","isActive","testId","onOpen","onClose"]),S=Pe(),$=ft(e),ne=y__default.default.createElement(o,p(i({},v),{ref:t,"data-test-id":f,className:emotion.cx(S.navbarItem,$&&S.navbarItemMenuTrigger,d&&S.isActive,g),"aria-label":n?"":m}),r&&y__default.default.createElement(O,{icon:r,isActive:d}),n&&y__default.default.createElement("span",null,n),n&&$&&y__default.default.createElement(ge,{size:"tiny",isActive:d}));return $?y__default.default.createElement(z,{trigger:ne,testId:f,onOpen:I,onClose:u},a):ne}var ft=e=>!!e.children,Y=y__default.default.forwardRef(dt);var J=({estimatedWidth:e})=>{let t=Se();return y__default.default.createElement(f36Skeleton.SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},y__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:s__default.default.borderRadiusSmall,radiusY:s__default.default.borderRadiusSmall}))};var we=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var yt="button";function It(e,t){let f=e,{as:o=yt,icon:r,title:m,className:n}=f,a=l(f,["as","icon","title","className"]),g=we(),d=xt(e);return y__default.default.createElement(f36Menu.Menu.Item,p(i({},a),{ref:t,as:o,className:emotion.cx(g.navbarMenuItem,n)}),r?y__default.default.createElement(O,{icon:r}):d&&Ae,y__default.default.createElement("span",null,m),r&&d?Ae:null)}var Ae=y__default.default.createElement(O,{icon:y__default.default.createElement(f36Icons.ArrowSquareOutIcon,null)}),xt=e=>e.as==="a"&&e.target==="_blank",K=y__default.default.forwardRef(It);var Q=({ariaLabel:e})=>y__default.default.createElement(f36Menu.Menu.Item,null,y__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:s__default.default.spacingXs},y__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},y__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),y__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},y__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var Ee=()=>({navbarSwitcher:emotion.css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:s__default.default.gray700,cursor:"pointer",fontSize:s__default.default.fontSizeS,fontWeight:s__default.default.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},M()),switcherMenuIcon:emotion.css({height:s__default.default.spacingM,width:s__default.default.spacingM,fill:s__default.default.gray700}),switcherBreadcrumbs:emotion.css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function kt(e,t){let g=e,{children:o,className:r,testId:m="cf-ui-navbar-switcher"}=g,n=l(g,["children","className","testId"]),a=Ee();return y__default.default.createElement(f36Core.Flex,p(i({},n),{as:"button",ref:t,className:emotion.cx(a.navbarSwitcher,r),testId:m,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),y__default.default.createElement(f36Core.Flex,{as:"ul",alignItems:"center",className:a.switcherBreadcrumbs},o))}var oe=y__default.default.forwardRef(kt);var re=({estimatedWidth:e})=>y__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},y__default.default.createElement(f36Skeleton.SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Re={display:"none","&:first-child":{display:"block"},[h.medium]:{display:"block","&:first-child":{display:"none"}}},_e=()=>({breadcrumbsItem:emotion.css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${s__default.default.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${s__default.default.spacingXs}`,height:s__default.default.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:s__default.default.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[h.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:s__default.default.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:s__default.default.fontStackMonospace,fontSize:s__default.default.fontSizeS,fontWeight:s__default.default.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[h.large]:{maxWidth:"100%"}},"> div":{[h.medium]:{gap:s__default.default.spacing2Xs}}}}),breadcrumbsItemCircle:emotion.css({border:`solid 1px ${s__default.default.gray300}`,borderRadius:"50%",color:s__default.default.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:s__default.default.spacingL,height:s__default.default.spacingL}),breadcrumbsItemEnvMaster:emotion.css({color:s__default.default.green600," svg":p(i({},Re),{fill:s__default.default.green600})}),breadcrumbsItemEnvNonMaster:emotion.css({color:s__default.default.orange500,svg:p(i({},Re),{fill:s__default.default.orange500})})});function Oe({isAlias:e}){return y__default.default.createElement(y__default.default.Fragment,null,y__default.default.createElement(ce,{key:"mobile-icon",size:"tiny"}),e?y__default.default.createElement(f36Icons.EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):y__default.default.createElement(f36Icons.EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function Ot(e,t){let u=e,{children:o,isCircle:r,className:m,envVariant:n,isAlias:a,testId:g="cf-ui-navbar-switcher-item"}=u,d=l(u,["children","isCircle","className","envVariant","isAlias","testId"]),f=_e(),I=emotion.cx(f.breadcrumbsItem,m,{[f.breadcrumbsItemCircle]:r,[f.breadcrumbsItemEnvMaster]:n==="master",[f.breadcrumbsItemEnvNonMaster]:n==="non-master"});return y__default.default.createElement("li",p(i({},d),{ref:t,className:I,"data-test-id":g}),y__default.default.createElement(f36Core.Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},n&&y__default.default.createElement(Oe,{isAlias:a}),y__default.default.createElement("span",null,o)))}var We=y__default.default.forwardRef(Ot);var Fe=()=>({navbarBadge:emotion.css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${s__default.default.purple600}`,margin:0,outline:"none",fontSize:s__default.default.fontSizeS,lineHeight:s__default.default.lineHeightS,fontWeight:s__default.default.fontWeightMedium,textAlign:"center",padding:`0 ${s__default.default.spacingXs}`,textDecoration:"none",color:`${s__default.default.purple600}!important`,borderRadius:"1.75rem"})});var Ht="div";function zt(e,t){let d=e,{as:o=Ht,children:r,className:m,testId:n="cf-ui-navbar-badge"}=d,a=l(d,["as","children","className","testId"]),g=Fe();return y__default.default.createElement(o,p(i({},a),{ref:t,className:emotion.cx(g.navbarBadge,m),"data-test-id":n}),r)}var ze=y__default.default.forwardRef(zt);var b=ue;b.Item=Y;b.ItemSkeleton=J;b.MenuItem=K;b.MenuItemSkeleton=Q;b.MenuDivider=f36Menu.MenuDivider;b.MenuSectionTitle=f36Menu.MenuSectionTitle;b.Switcher=oe;b.SwitcherSkeleton=re;b.SwitcherItem=We;b.Account=Z;b.AccountSkeleton=q;b.Badge=ze;
|
|
19
|
+
var De=Object.defineProperty,Ve=Object.defineProperties;var Xe=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var ie=(e,t,o)=>t in e?De(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))se.call(t,o)&&ie(e,o,t[o]);if(H)for(var o of H(t))me.call(t,o)&&ie(e,o,t[o]);return e},p=(e,t)=>Ve(e,Xe(t));var l=(e,t)=>{var o={};for(var r in e)se.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&H)for(var r of H(e))t.indexOf(r)<0&&me.call(e,r)&&(o[r]=e[r]);return o};var N={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},C=(e=s__default.default.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var pe=(e,t)=>({containerTop:emotion.css({justifyContent:"center",backgroundColor:s__default.default.gray100}),containerBottom:emotion.css({justifyContent:"center",backgroundColor:s__default.default.gray100}),containerTopContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:s__default.default.spacingXs,minHeight:s__default.default.spacingL,[N.medium]:{padding:`${s__default.default.spacingXs} 20px`}}),containerBottomContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:s__default.default.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[N.medium]:{padding:`${s__default.default.spacing2Xs} ${s__default.default.spacingXs}`}}),logo:emotion.css({height:"28px",width:"28px"})});var ce=f36Icon.generateIconComponent({name:"CircleIcon",viewBox:"0 0 24 24",path:u__default.default.createElement("path",{d:"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z",fill:"currentFill"})});var ge=f36Icon.generateComponentWithVariants({variants:{[f36Icon.IconVariant.Active]:f36Icon.generateIconComponent({path:u__default.default.createElement(u__default.default.Fragment,null,u__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:s__default.default.blue300})),viewBox:"0 0 12 12"}),[f36Icon.IconVariant.Default]:f36Icon.generateIconComponent({path:u__default.default.createElement(u__default.default.Fragment,null,u__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:s__default.default.gray400})),viewBox:"0 0 12 12"})}});var be=f36Icon.generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:u__default.default.createElement(u__default.default.Fragment,null,u__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"}),u__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"}),u__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"}),u__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"}),u__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"}))});function Ye(e,t){let M=e,{logo:o,switcher:r,mainNavigation:m,secondaryNavigation:n,account:a,className:g,contentMaxWidth:d="100%",testId:f="cf-ui-navbar",variant:x="wide"}=M,v=l(M,["logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","variant"]),h=pe(d,x);return u__default.default.createElement(f36Core.Box,p(i({},v),{ref:t,testId:f,className:g,as:"header"}),u__default.default.createElement(f36Core.Flex,{className:h.containerTop},u__default.default.createElement(f36Core.Flex,{className:h.containerTopContent,justifyContent:"space-between"},u__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingL"},o||u__default.default.createElement(be,{className:h.logo}),r&&u__default.default.createElement(f36Core.Flex,{as:"nav","aria-label":"Space and Environment Navigation"},r),m&&u__default.default.createElement(f36Core.Flex,{gap:"spacingXs",as:"nav","aria-label":"Main Navigation"},m)),u__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},n&&u__default.default.createElement(f36Core.Flex,{as:"nav","aria-label":"Secondary Navigation"},n),a&&u__default.default.createElement(f36Core.Flex,{as:"nav","aria-label":"Account Navigation"},a)))))}var ue=u__default.default.forwardRef(Ye);var Ke={warning:s__default.default.colorWarning,negative:s__default.default.colorNegative,info:s__default.default.blue500},ve=()=>({navbarAccount:emotion.css({margin:0,padding:0,border:0,cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%","&:before":emotion.css({content:'""',display:"block",position:"absolute",height:"24px",width:"24px",backgroundColor:"transparent",borderRadius:"50%"}),"&:hover:before":emotion.css({backgroundColor:f36Utils.hexToRGBA(s__default.default.gray300,.15)})},C()),avatar:emotion.css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>emotion.css({position:"absolute",top:0,right:0,height:s__default.default.spacingS,width:s__default.default.spacingS,borderRadius:"50%",border:`2px solid ${s__default.default.gray100}`,backgroundColor:Ke[e],transform:"translate(30%, -30%)"})});var he=()=>({menuList:emotion.css({minWidth:"250px"})});var z=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:m,onClose:n}=e,a=he();return u__default.default.createElement(f36Menu.Menu,{onOpen:m,onClose:n},u__default.default.createElement(f36Menu.Menu.Trigger,null,t),u__default.default.createElement(f36Menu.Menu.List,{className:a.menuList,testId:r},o))};function rt(e,t){let h=e,{children:o,className:r,testId:m="cf-ui-navbar-account-trigger",avatar:n,initials:a,username:g,hasNotification:d,notificationVariant:f="warning"}=h,x=l(h,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),v=ve();return u__default.default.createElement(z,{trigger:u__default.default.createElement(f36Core.Flex,p(i({as:"button"},x),{ref:t,className:emotion.cx(v.navbarAccount,r),testId:m,alignItems:"center","aria-label":"Account Menu"}),u__default.default.createElement(f36Avatar.Avatar,{src:n,initials:a,size:"small",variant:"user"}),d?u__default.default.createElement("span",{className:v.notificationIcon(f)}):null)},o)}var Z=u__default.default.forwardRef(rt);function q({ariaLabel:e}){return u__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},u__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var Ie=()=>emotion.css({backgroundColor:s__default.default.blue100,border:`1px solid ${s__default.default.blue400}`,color:s__default.default.blue600,"&:hover":{backgroundColor:s__default.default.blue100}}),xe={display:"flex",justifyContent:"center",padding:`${s__default.default.spacing2Xs} ${s__default.default.spacingXs}`,alignItems:"center",background:"none",gap:s__default.default.spacing2Xs},Pe=()=>({navbarItem:emotion.css(xe,{alignItems:"center",background:"none",border:"1px solid transparent",margin:0,outline:"none",fontSize:s__default.default.fontSizeM,lineHeight:s__default.default.lineHeightS,fontWeight:s__default.default.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:s__default.default.gray800,boxSizing:"border-box",transition:`color ${s__default.default.transitionDurationShort} ${s__default.default.transitionEasingCubicBezier}`,borderRadius:s__default.default.borderRadiusMedium,"&:hover":{backgroundColor:f36Utils.hexToRGBA(s__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 ${s__default.default.transitionDurationShort} ${s__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:s__default.default.zIndexDefault}},C()),navbarItemMenuTrigger:emotion.css({paddingRight:s__default.default.spacingXs}),isActive:Ie()}),Se=()=>({itemSkeleton:emotion.css(xe)});var Me=()=>({navbarItemIcon:emotion.css({"&:last-child&:not(:only-child)":{marginLeft:s__default.default.spacing2Xs},"img&":{borderRadius:s__default.default.borderRadiusSmall,maxWidth:s__default.default.spacingM,maxHeight:s__default.default.spacingM}})});var F=({icon:e,isActive:t})=>{let a=e.props,{className:o,size:r}=a,m=l(a,["className","size"]),n=Me();return u__default.default.cloneElement(e,i({className:emotion.cx(o,n.navbarItemIcon),size:r||"small",isActive:t},m))};var lt="button";function dt(e,t){let ae=e,{as:o=lt,icon:r,label:m,title:n,children:a,className:g,isActive:d,testId:f="cf-ui-navbar-item",onOpen:x,onClose:v}=ae,h=l(ae,["as","icon","label","title","children","className","isActive","testId","onOpen","onClose"]),M=Pe(),$=ft(e),ne=u__default.default.createElement(o,p(i({},h),{ref:t,"data-test-id":f,className:emotion.cx(M.navbarItem,$&&M.navbarItemMenuTrigger,d&&M.isActive,g),"aria-label":n?"":m}),r&&u__default.default.createElement(F,{icon:r,isActive:d}),n&&u__default.default.createElement("span",null,n),n&&$&&u__default.default.createElement(ge,{size:"tiny",isActive:d}));return $?u__default.default.createElement(z,{trigger:ne,testId:f,onOpen:x,onClose:v},a):ne}var ft=e=>!!e.children,Y=u__default.default.forwardRef(dt);var J=({estimatedWidth:e})=>{let t=Se();return u__default.default.createElement(f36Skeleton.SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},u__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:s__default.default.borderRadiusSmall,radiusY:s__default.default.borderRadiusSmall}))};var we=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var yt="button";function It(e,t){let f=e,{as:o=yt,icon:r,title:m,className:n}=f,a=l(f,["as","icon","title","className"]),g=we(),d=xt(e);return u__default.default.createElement(f36Menu.Menu.Item,p(i({},a),{ref:t,as:o,className:emotion.cx(g.navbarMenuItem,n)}),r?u__default.default.createElement(F,{icon:r}):d&&Ae,u__default.default.createElement("span",null,m),r&&d?Ae:null)}var Ae=u__default.default.createElement(F,{icon:u__default.default.createElement(f36Icons.ArrowSquareOutIcon,null)}),xt=e=>e.as==="a"&&e.target==="_blank",K=u__default.default.forwardRef(It);var Q=({ariaLabel:e})=>u__default.default.createElement(f36Menu.Menu.Item,null,u__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:s__default.default.spacingXs},u__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},u__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),u__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},u__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var Ee=()=>({navbarSwitcher:emotion.css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:s__default.default.gray700,cursor:"pointer",fontSize:s__default.default.fontSizeS,fontWeight:s__default.default.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},C()),switcherMenuIcon:emotion.css({height:s__default.default.spacingM,width:s__default.default.spacingM,fill:s__default.default.gray700}),switcherBreadcrumbs:emotion.css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function kt(e,t){let g=e,{children:o,className:r,testId:m="cf-ui-navbar-switcher"}=g,n=l(g,["children","className","testId"]),a=Ee();return u__default.default.createElement(f36Core.Flex,p(i({},n),{as:"button",ref:t,className:emotion.cx(a.navbarSwitcher,r),testId:m,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),u__default.default.createElement(f36Core.Flex,{as:"ul",alignItems:"center",className:a.switcherBreadcrumbs},o))}var oe=u__default.default.forwardRef(kt);var re=({estimatedWidth:e})=>u__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},u__default.default.createElement(f36Skeleton.SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Re={display:"none","&:first-child":{display:"block"},[N.medium]:{display:"block","&:first-child":{display:"none"}}},_e=()=>({breadcrumbsItem:emotion.css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${s__default.default.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${s__default.default.spacingXs}`,height:s__default.default.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:s__default.default.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[N.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:s__default.default.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:s__default.default.fontStackMonospace,fontSize:s__default.default.fontSizeS,fontWeight:s__default.default.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[N.large]:{maxWidth:"100%"}},"> div":{[N.medium]:{gap:s__default.default.spacing2Xs}}}}),breadcrumbsItemCircle:emotion.css({border:`solid 1px ${s__default.default.gray300}`,borderRadius:"50%",color:s__default.default.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:s__default.default.spacingL,height:s__default.default.spacingL}),breadcrumbsItemEnvMaster:emotion.css({color:s__default.default.green600," svg":p(i({},Re),{fill:s__default.default.green600})}),breadcrumbsItemEnvNonMaster:emotion.css({color:s__default.default.orange500,svg:p(i({},Re),{fill:s__default.default.orange500})})});function Fe({isAlias:e}){return u__default.default.createElement(u__default.default.Fragment,null,u__default.default.createElement(ce,{key:"mobile-icon",size:"tiny"}),e?u__default.default.createElement(f36Icons.EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):u__default.default.createElement(f36Icons.EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function Ft(e,t){let v=e,{children:o,isCircle:r,className:m,envVariant:n,isAlias:a,testId:g="cf-ui-navbar-switcher-item"}=v,d=l(v,["children","isCircle","className","envVariant","isAlias","testId"]),f=_e(),x=emotion.cx(f.breadcrumbsItem,m,{[f.breadcrumbsItemCircle]:r,[f.breadcrumbsItemEnvMaster]:n==="master",[f.breadcrumbsItemEnvNonMaster]:n==="non-master"});return u__default.default.createElement("li",p(i({},d),{ref:t,className:x,"data-test-id":g}),u__default.default.createElement(f36Core.Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},n&&u__default.default.createElement(Fe,{isAlias:a}),u__default.default.createElement("span",null,o)))}var Oe=u__default.default.forwardRef(Ft);var We=()=>({navbarBadge:emotion.css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${s__default.default.purple600}`,margin:0,outline:"none",fontSize:s__default.default.fontSizeS,lineHeight:s__default.default.lineHeightS,fontWeight:s__default.default.fontWeightMedium,textAlign:"center",padding:`0 ${s__default.default.spacingXs}`,textDecoration:"none",color:`${s__default.default.purple600}!important`,borderRadius:"1.75rem"})});var Ht="div";function zt(e,t){let d=e,{as:o=Ht,children:r,className:m,testId:n="cf-ui-navbar-badge"}=d,a=l(d,["as","children","className","testId"]),g=We();return u__default.default.createElement(o,p(i({},a),{ref:t,className:emotion.cx(g.navbarBadge,m),"data-test-id":n}),r)}var ze=u__default.default.forwardRef(zt);var b=ue;b.Item=Y;b.ItemSkeleton=J;b.MenuItem=K;b.MenuItemSkeleton=Q;b.MenuDivider=f36Menu.MenuDivider;b.MenuSectionTitle=f36Menu.MenuSectionTitle;b.Switcher=oe;b.SwitcherSkeleton=re;b.SwitcherItem=Oe;b.Account=Z;b.AccountSkeleton=q;b.Badge=ze;
|
|
20
20
|
|
|
21
21
|
exports.Navbar = b;
|
|
22
22
|
exports.getNavbarItemActiveStyles = Ie;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/CompoundNavbar.ts","../src/Navbar.tsx","../src/Navbar.styles.ts","../src/utils.styles.ts","../src/icons/CircleIcon.tsx","../src/icons/CaretIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../src/NavbarAccount/NavbarAccount.tsx","../src/NavbarAccount/NavbarAccount.styles.ts","../src/NavbarMenu/NavbarMenu.tsx","../src/NavbarMenu/NavbarMenu.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/NavbarSwitcherSkeleton.tsx","../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarBadge/NavbarBadge.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","generateIconComponent","CircleIcon","generateComponentWithVariants","IconVariant","CaretIcon","ContentfulLogoIcon","_Navbar","props","ref","_a","logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","children","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","label","title","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","_NavbarSwitcher","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge"],"mappings":"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","sourcesContent":["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';\n\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\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 Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n SwitcherItem: typeof NavbarSwitcherItem;\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.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.SwitcherItem = NavbarSwitcherItem;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n","import {\n Box,\n type CommonProps,\n type ExpandProps,\n Flex,\n} from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\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 /** 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 /**\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 switcher,\n mainNavigation,\n secondaryNavigation,\n account,\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 <Box\n {...otherProps}\n ref={ref}\n testId={testId}\n className={className}\n as=\"header\"\n >\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {switcher}\n <Flex gap=\"spacingXs\" as=\"nav\" aria-label=\"Main Navigation\">\n {mainNavigation}\n </Flex>\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation}\n {account}\n </Flex>\n </Flex>\n </Flex>\n </Box>\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';\n\nexport const getNavbarStyles = (maxWidth: string, variant: string) => ({\n containerTop: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerBottom: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerTopContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: tokens.spacingXs,\n minHeight: tokens.spacingL,\n [mqs.medium]: {\n padding: `${tokens.spacingXs} 20px`,\n },\n }),\n containerBottomContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: 0,\n paddingTop: tokens.spacing2Xs,\n minHeight: '2.5rem',\n overflow: 'auto',\n [mqs.medium]: {\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n },\n }),\n logo: css({\n height: '28px',\n width: '28px',\n }),\n});\n","import tokens from '@contentful/f36-tokens';\n\ntype screens = 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\nexport const mqs: mediaqueries = {\n medium: '@media (min-width: 480px)',\n large: '@media (min-width: 768px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) => ({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIconComponent({\n name: 'CircleIcon',\n viewBox: '0 0 24 24',\n path: (\n <path\n d=\"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z\"\n fill=\"currentFill\"\n />\n ),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import 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 { Avatar } from '@contentful/f36-avatar';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\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 initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\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=\"Account Menu\"\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n {hasNotification ? (\n <span className={styles.notificationIcon(notificationVariant)} />\n ) : null}\n </Flex>\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 } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\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 // default button reset styles\n margin: 0,\n padding: 0,\n border: 0,\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n '&:before': css({\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n height: '24px',\n width: '24px',\n backgroundColor: 'transparent',\n borderRadius: '50%',\n }),\n '&:hover:before': css({\n backgroundColor: hexToRGBA(tokens.gray300, 0.15),\n }),\n },\n getGlowOnFocusStyles(),\n ),\n avatar: css({\n borderRadius: '50%',\n display: 'block',\n height: '24px',\n width: '24px',\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 }),\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';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: '250px',\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';\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};\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 testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles();\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(\n styles.navbarItem,\n isMenuTrigger && styles.navbarItemMenuTrigger,\n isActive && styles.isActive,\n className,\n )}\n aria-label={title ? '' : label}\n >\n {icon && <NavbarItemIcon icon={icon} isActive={isActive} />}\n {title && <span>{title}</span>}\n {title && isMenuTrigger && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\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 } from '../utils.styles';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `1px solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: '1px solid transparent',\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightS,\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\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 ),\n navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\n }),\n isActive: getNavbarItemActiveStyles(),\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} & Pick<IconProps, 'isActive'>;\n\nexport const NavbarItemIcon = ({ icon, isActive }: NavbarItemIconProps) => {\n const { className, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(className, styles.navbarItemIcon),\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={32}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={6}\n numberOfLines={1}\n offsetTop={10}\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 { getNavbarSwitcherStyles } from './NavbarSwitcher.styles';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\n\ntype NavbarSwitcherOwnProps = CommonProps & {\n children?: React.ReactNode;\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 testId = 'cf-ui-navbar-switcher',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles();\n\n return (\n <Flex\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarSwitcher, className)}\n testId={testId}\n alignItems=\"center\"\n fullHeight\n gap=\"spacingXs\"\n >\n <Flex as=\"ul\" alignItems=\"center\" className={styles.switcherBreadcrumbs}>\n {children}\n </Flex>\n </Flex>\n );\n}\n\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarSwitcherStyles = () => ({\n navbarSwitcher: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n background: 'none',\n border: 'none',\n height: 'max-content',\n\n color: tokens.gray700,\n cursor: 'pointer',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n outline: 'none',\n borderRadius: '3rem',\n '&:last-child:after': {\n display: 'none',\n },\n '&:hover li': {\n backgroundColor: '#f2f4f6', // Using a calculated hover alpha color because when using a RGBA value layers overlapping occur and show darker areas\n },\n },\n getGlowOnFocusStyles(),\n ),\n switcherMenuIcon: css({\n height: tokens.spacingM,\n width: tokens.spacingM,\n fill: tokens.gray700,\n }),\n switcherBreadcrumbs: css({\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n }),\n});\n","import React from 'react';\nimport {\n SkeletonContainer,\n SkeletonDisplayText,\n} 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={24}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonDisplayText\n lineHeight={24}\n numberOfLines={1}\n radiusX={12}\n radiusY={12}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarSwitcherItemStyles } from './NavbarSwitcherItem.styles';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport {\n Flex,\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\n\ntype NavbarSwitcherItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n isCircle?: boolean;\n envVariant?: 'master' | 'non-master';\n isAlias?: boolean;\n};\n\nexport type NavbarSwitcherItemProps = PropsWithHTMLElement<\n NavbarSwitcherItemOwnProps,\n 'li'\n>;\n\nfunction _NavbarSwitcherItem(\n props: ExpandProps<NavbarSwitcherItemProps>,\n ref: React.Ref<HTMLLIElement>,\n) {\n const {\n children,\n isCircle,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher-item',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherItemStyles();\n const classes = cx(styles.breadcrumbsItem, className, {\n [styles.breadcrumbsItemCircle]: isCircle,\n [styles.breadcrumbsItemEnvMaster]: envVariant === 'master',\n [styles.breadcrumbsItemEnvNonMaster]: envVariant === 'non-master',\n });\n\n return (\n <li {...otherProps} ref={ref} className={classes} data-test-id={testId}>\n <Flex fullHeight justifyContent=\"center\" alignItems=\"center\">\n {envVariant && <NavbarEnvVariant isAlias={isAlias} />}\n <span>{children}</span>\n </Flex>\n </li>\n );\n}\n\nexport const NavbarSwitcherItem = React.forwardRef(_NavbarSwitcherItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from '../utils.styles';\n\nconst mobileIcon = {\n display: 'none',\n '&:first-child': {\n display: 'block',\n },\n\n [mqs.medium]: {\n display: 'block',\n '&:first-child': {\n display: 'none',\n },\n },\n};\n\nexport const getNavbarSwitcherItemStyles = () => ({\n breadcrumbsItem: css({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n border: `solid 1px ${tokens.gray300}`,\n borderLeft: 'none',\n display: 'inline-flex',\n margin: 0,\n minWidth: 0,\n padding: `0 ${tokens.spacingXs}`,\n height: tokens.spacingL,\n borderRadius: '3rem',\n zIndex: 2,\n\n whiteSpace: 'nowrap',\n '&:first-child': {\n minWidth: '24px',\n },\n '&:nth-child(2)': {\n zIndex: 1,\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n span: {\n maxWidth: '80px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n },\n '&:nth-child(3)': {\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n fontFamily: tokens.fontStackMonospace,\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n zIndex: 0,\n span: {\n maxWidth: '40px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n '> div': {\n [mqs.medium]: {\n gap: tokens.spacing2Xs,\n },\n },\n },\n }),\n breadcrumbsItemCircle: css({\n border: `solid 1px ${tokens.gray300}`,\n borderRadius: '50%',\n color: tokens.gray400,\n padding: 0,\n display: 'flex',\n justifyContent: 'center',\n fontSize: '11px',\n width: tokens.spacingL,\n height: tokens.spacingL,\n }),\n breadcrumbsItemEnvMaster: css({\n color: tokens.green600,\n ' svg': {\n ...mobileIcon,\n fill: tokens.green600,\n },\n }),\n breadcrumbsItemEnvNonMaster: css({\n color: tokens.orange500,\n svg: {\n ...mobileIcon,\n fill: tokens.orange500,\n },\n }),\n});\n","import React from 'react';\nimport { NavbarSwitcherItemProps } from './NavbarSwitcherItem';\nimport { CircleIcon } from '../icons';\nimport { EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';\n\nexport type NavbarEnvVariantProps = Pick<NavbarSwitcherItemProps, 'isAlias'>;\n\nexport function NavbarEnvVariant({ isAlias }: NavbarEnvVariantProps) {\n return (\n <>\n <CircleIcon key=\"mobile-icon\" size=\"tiny\" />\n {isAlias ? (\n <EnvironmentAliasIcon key=\"full-icon\" size=\"tiny\" />\n ) : (\n <EnvironmentIcon key=\"full-icon\" size=\"tiny\" />\n )}\n </>\n );\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 }),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/CompoundNavbar.ts","../src/Navbar.tsx","../src/Navbar.styles.ts","../src/utils.styles.ts","../src/icons/CircleIcon.tsx","../src/icons/CaretIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../src/NavbarAccount/NavbarAccount.tsx","../src/NavbarAccount/NavbarAccount.styles.ts","../src/NavbarMenu/NavbarMenu.tsx","../src/NavbarMenu/NavbarMenu.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/NavbarSwitcherSkeleton.tsx","../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarBadge/NavbarBadge.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","generateIconComponent","CircleIcon","generateComponentWithVariants","IconVariant","CaretIcon","ContentfulLogoIcon","_Navbar","props","ref","_a","logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","children","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","label","title","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","_NavbarSwitcher","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge"],"mappings":"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","sourcesContent":["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';\n\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\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 Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n SwitcherItem: typeof NavbarSwitcherItem;\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.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.SwitcherItem = NavbarSwitcherItem;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n","import {\n Box,\n type CommonProps,\n type ExpandProps,\n Flex,\n} from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\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 /** 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 /**\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 switcher,\n mainNavigation,\n secondaryNavigation,\n account,\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 <Box\n {...otherProps}\n ref={ref}\n testId={testId}\n className={className}\n as=\"header\"\n >\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {switcher && (\n <Flex as=\"nav\" aria-label=\"Space and Environment Navigation\">\n {switcher}\n </Flex>\n )}\n {mainNavigation && (\n <Flex gap=\"spacingXs\" as=\"nav\" aria-label=\"Main Navigation\">\n {mainNavigation}\n </Flex>\n )}\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation && (\n <Flex as=\"nav\" aria-label=\"Secondary Navigation\">\n {secondaryNavigation}\n </Flex>\n )}\n {account && (\n <Flex as=\"nav\" aria-label=\"Account Navigation\">\n {account}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n </Box>\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';\n\nexport const getNavbarStyles = (maxWidth: string, variant: string) => ({\n containerTop: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerBottom: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerTopContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: tokens.spacingXs,\n minHeight: tokens.spacingL,\n [mqs.medium]: {\n padding: `${tokens.spacingXs} 20px`,\n },\n }),\n containerBottomContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: 0,\n paddingTop: tokens.spacing2Xs,\n minHeight: '2.5rem',\n overflow: 'auto',\n [mqs.medium]: {\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n },\n }),\n logo: css({\n height: '28px',\n width: '28px',\n }),\n});\n","import tokens from '@contentful/f36-tokens';\n\ntype screens = 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\nexport const mqs: mediaqueries = {\n medium: '@media (min-width: 480px)',\n large: '@media (min-width: 768px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) => ({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIconComponent({\n name: 'CircleIcon',\n viewBox: '0 0 24 24',\n path: (\n <path\n d=\"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z\"\n fill=\"currentFill\"\n />\n ),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import 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 { Avatar } from '@contentful/f36-avatar';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\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 initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\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=\"Account Menu\"\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n {hasNotification ? (\n <span className={styles.notificationIcon(notificationVariant)} />\n ) : null}\n </Flex>\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 } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\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 // default button reset styles\n margin: 0,\n padding: 0,\n border: 0,\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n '&:before': css({\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n height: '24px',\n width: '24px',\n backgroundColor: 'transparent',\n borderRadius: '50%',\n }),\n '&:hover:before': css({\n backgroundColor: hexToRGBA(tokens.gray300, 0.15),\n }),\n },\n getGlowOnFocusStyles(),\n ),\n avatar: css({\n borderRadius: '50%',\n display: 'block',\n height: '24px',\n width: '24px',\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 }),\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';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: '250px',\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';\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};\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 testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles();\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(\n styles.navbarItem,\n isMenuTrigger && styles.navbarItemMenuTrigger,\n isActive && styles.isActive,\n className,\n )}\n aria-label={title ? '' : label}\n >\n {icon && <NavbarItemIcon icon={icon} isActive={isActive} />}\n {title && <span>{title}</span>}\n {title && isMenuTrigger && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\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 } from '../utils.styles';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `1px solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: '1px solid transparent',\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightS,\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\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 ),\n navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\n }),\n isActive: getNavbarItemActiveStyles(),\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} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({ icon, isActive }: NavbarItemIconProps) => {\n const { className, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(className, styles.navbarItemIcon),\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={32}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={6}\n numberOfLines={1}\n offsetTop={10}\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 { getNavbarSwitcherStyles } from './NavbarSwitcher.styles';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n CommonProps,\n 'button'\n> & {\n children?: React.ReactNode;\n};\n\nfunction _NavbarSwitcher(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-switcher',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles();\n\n return (\n <Flex\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarSwitcher, className)}\n testId={testId}\n alignItems=\"center\"\n fullHeight\n gap=\"spacingXs\"\n >\n <Flex as=\"ul\" alignItems=\"center\" className={styles.switcherBreadcrumbs}>\n {children}\n </Flex>\n </Flex>\n );\n}\n\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarSwitcherStyles = () => ({\n navbarSwitcher: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n background: 'none',\n border: 'none',\n height: 'max-content',\n\n color: tokens.gray700,\n cursor: 'pointer',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n outline: 'none',\n borderRadius: '3rem',\n '&:last-child:after': {\n display: 'none',\n },\n '&:hover li': {\n backgroundColor: '#f2f4f6', // Using a calculated hover alpha color because when using a RGBA value layers overlapping occur and show darker areas\n },\n },\n getGlowOnFocusStyles(),\n ),\n switcherMenuIcon: css({\n height: tokens.spacingM,\n width: tokens.spacingM,\n fill: tokens.gray700,\n }),\n switcherBreadcrumbs: css({\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n }),\n});\n","import React from 'react';\nimport {\n SkeletonContainer,\n SkeletonDisplayText,\n} 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={24}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonDisplayText\n lineHeight={24}\n numberOfLines={1}\n radiusX={12}\n radiusY={12}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarSwitcherItemStyles } from './NavbarSwitcherItem.styles';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport {\n Flex,\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\n\ntype NavbarSwitcherItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n isCircle?: boolean;\n envVariant?: 'master' | 'non-master';\n isAlias?: boolean;\n};\n\nexport type NavbarSwitcherItemProps = PropsWithHTMLElement<\n NavbarSwitcherItemOwnProps,\n 'li'\n>;\n\nfunction _NavbarSwitcherItem(\n props: ExpandProps<NavbarSwitcherItemProps>,\n ref: React.Ref<HTMLLIElement>,\n) {\n const {\n children,\n isCircle,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher-item',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherItemStyles();\n const classes = cx(styles.breadcrumbsItem, className, {\n [styles.breadcrumbsItemCircle]: isCircle,\n [styles.breadcrumbsItemEnvMaster]: envVariant === 'master',\n [styles.breadcrumbsItemEnvNonMaster]: envVariant === 'non-master',\n });\n\n return (\n <li {...otherProps} ref={ref} className={classes} data-test-id={testId}>\n <Flex fullHeight justifyContent=\"center\" alignItems=\"center\">\n {envVariant && <NavbarEnvVariant isAlias={isAlias} />}\n <span>{children}</span>\n </Flex>\n </li>\n );\n}\n\nexport const NavbarSwitcherItem = React.forwardRef(_NavbarSwitcherItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from '../utils.styles';\n\nconst mobileIcon = {\n display: 'none',\n '&:first-child': {\n display: 'block',\n },\n\n [mqs.medium]: {\n display: 'block',\n '&:first-child': {\n display: 'none',\n },\n },\n};\n\nexport const getNavbarSwitcherItemStyles = () => ({\n breadcrumbsItem: css({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n border: `solid 1px ${tokens.gray300}`,\n borderLeft: 'none',\n display: 'inline-flex',\n margin: 0,\n minWidth: 0,\n padding: `0 ${tokens.spacingXs}`,\n height: tokens.spacingL,\n borderRadius: '3rem',\n zIndex: 2,\n\n whiteSpace: 'nowrap',\n '&:first-child': {\n minWidth: '24px',\n },\n '&:nth-child(2)': {\n zIndex: 1,\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n span: {\n maxWidth: '80px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n },\n '&:nth-child(3)': {\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n fontFamily: tokens.fontStackMonospace,\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n zIndex: 0,\n span: {\n maxWidth: '40px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n '> div': {\n [mqs.medium]: {\n gap: tokens.spacing2Xs,\n },\n },\n },\n }),\n breadcrumbsItemCircle: css({\n border: `solid 1px ${tokens.gray300}`,\n borderRadius: '50%',\n color: tokens.gray400,\n padding: 0,\n display: 'flex',\n justifyContent: 'center',\n fontSize: '11px',\n width: tokens.spacingL,\n height: tokens.spacingL,\n }),\n breadcrumbsItemEnvMaster: css({\n color: tokens.green600,\n ' svg': {\n ...mobileIcon,\n fill: tokens.green600,\n },\n }),\n breadcrumbsItemEnvNonMaster: css({\n color: tokens.orange500,\n svg: {\n ...mobileIcon,\n fill: tokens.orange500,\n },\n }),\n});\n","import React from 'react';\nimport { NavbarSwitcherItemProps } from './NavbarSwitcherItem';\nimport { CircleIcon } from '../icons';\nimport { EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';\n\nexport type NavbarEnvVariantProps = Pick<NavbarSwitcherItemProps, 'isAlias'>;\n\nexport function NavbarEnvVariant({ isAlias }: NavbarEnvVariantProps) {\n return (\n <>\n <CircleIcon key=\"mobile-icon\" size=\"tiny\" />\n {isAlias ? (\n <EnvironmentAliasIcon key=\"full-icon\" size=\"tiny\" />\n ) : (\n <EnvironmentIcon key=\"full-icon\" size=\"tiny\" />\n )}\n </>\n );\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 }),\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contentful/f36-navbar",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.18",
|
|
4
4
|
"description": "Forma 36: Navbar component",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsup"
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"@contentful/f36-avatar": "4.67.0",
|
|
10
10
|
"@contentful/f36-core": "^4.67.0",
|
|
11
11
|
"@contentful/f36-menu": "^4.67.0",
|
|
12
|
-
"@contentful/f36-icon": "5.0.0-alpha.
|
|
13
|
-
"@contentful/f36-icons": "5.0.0-alpha.
|
|
12
|
+
"@contentful/f36-icon": "5.0.0-alpha.20",
|
|
13
|
+
"@contentful/f36-icons": "5.0.0-alpha.25",
|
|
14
14
|
"@contentful/f36-tokens": "^4.0.1",
|
|
15
15
|
"@contentful/f36-utils": "^4.23.2",
|
|
16
16
|
"@contentful/f36-skeleton": "^4.67.0",
|