@contentful/f36-navbar 5.0.0-alpha.5 → 5.0.0-alpha.6
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 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/esm/index.js
CHANGED
|
@@ -4,12 +4,13 @@ import v from 'react';
|
|
|
4
4
|
import { cx, css } from 'emotion';
|
|
5
5
|
import f from '@contentful/f36-tokens';
|
|
6
6
|
import { hexToRGBA } from '@contentful/f36-utils';
|
|
7
|
+
import { Avatar } from '@contentful/f36-avatar';
|
|
7
8
|
import { SkeletonContainer, SkeletonImage, SkeletonText, SkeletonBodyText, SkeletonDisplayText } from '@contentful/f36-skeleton';
|
|
8
9
|
import { generateIcon } from '@contentful/f36-icon';
|
|
9
10
|
import { ExternalLinkIcon, MenuIcon, EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';
|
|
10
11
|
import { IconButton, Button } from '@contentful/f36-button';
|
|
11
12
|
|
|
12
|
-
var Je=Object.defineProperty,Ke=Object.defineProperties;var et=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var le=(e,t,o)=>t in e?Je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))fe.call(t,o)&&le(e,o,t[o]);if($)for(var o of $(t))de.call(t,o)&&le(e,o,t[o]);return e},s=(e,t)=>Ke(e,et(t));var l=(e,t)=>{var o={};for(var r in e)fe.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&$)for(var r of $(e))t.indexOf(r)<0&&de.call(e,r)&&(o[r]=e[r]);return o};var I={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},u=(e=f.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var be=(e,t)=>({containerTop:css({justifyContent:"center",backgroundColor:f.gray100}),containerBottom:css({justifyContent:"center",backgroundColor:f.gray100}),containerTopContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:f.spacingXs,minHeight:f.spacingL,[I.medium]:{padding:`${f.spacingXs} 20px`}}),containerBottomContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:f.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[I.medium]:{padding:`${f.spacing2Xs} ${f.spacingXs}`}})});function rt(e,t){let ce=e,{children:o,account:r,search:n,switcher:a,help:p,badge:c,bottomRightItems:m,topRightItems:g,contentMaxWidth:N="100%",testId:y="cf-ui-navbar",className:R,variant:F="wide"}=ce,X=l(ce,["children","account","search","switcher","help","badge","bottomRightItems","topRightItems","contentMaxWidth","testId","className","variant"]),M=be(N,F);return v.createElement(Box,s(i({},X),{ref:t,testId:y,className:R}),v.createElement(Flex,{className:M.containerTop},v.createElement(Flex,{className:M.containerTopContent,justifyContent:"space-between"},v.createElement(Flex,null,a),v.createElement(Flex,{alignItems:"center",gap:"spacingXs"},g,c,n,p,r))),v.createElement(Flex,{className:M.containerBottom},v.createElement(Flex,{className:M.containerBottomContent,justifyContent:"space-between"},v.createElement(Flex,{as:"nav","aria-label":"Main Navigation"},o),m&&v.createElement(Flex,null,m))))}var ge=v.forwardRef(rt);var nt={warning:f.colorWarning,negative:f.colorNegative,info:f.blue500},ue=()=>({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(f.gray300,.15)})},u()),avatar:css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:f.spacingS,width:f.spacingS,borderRadius:"50%",border:`2px solid ${f.gray100}`,backgroundColor:nt[e],transform:"translate(30%, -30%)"})});var ve=()=>({menuList:css({minWidth:"250px"})});var T=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:a}=e,p=ve();return v.createElement(Menu,{onOpen:n,onClose:a},v.createElement(Menu.Trigger,null,t),v.createElement(Menu.List,{className:p.menuList,testId:r},o))};function mt(e,t){let y=e,{children:o,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:a,username:p,hasNotification:c,notificationVariant:m="warning"}=y,g=l(y,["children","className","testId","avatar","username","hasNotification","notificationVariant"]),N=ue();return v.createElement(T,{trigger:v.createElement(Flex,s(i({as:"button"},g),{ref:t,className:cx(N.navbarAccount,r),testId:n,alignItems:"center"}),v.createElement("img",{src:a,alt:`Avatar for user ${p}`,className:N.avatar}),c?v.createElement("span",{className:N.notificationIcon(m)}):null)},o)}var ee=v.forwardRef(mt);function te({ariaLabel:e}){return v.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:f.gray300,foregroundColor:f.gray200},v.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var ye=()=>css({"&::after":{content:'""',position:"absolute",width:`calc(100% - ${f.spacingM})`,height:"2px",bottom:`-${f.spacing2Xs}`,left:0,right:0,margin:"auto",backgroundColor:f.blue600,zIndex:0}}),Ie={display:"flex",justifyContent:"center",padding:`${f.spacing2Xs} ${f.spacingS}`,alignItems:"center",background:"none"},xe=()=>({navbarItem:css(Ie,{alignItems:"center",background:"none",border:0,margin:0,outline:"none",fontSize:f.fontSizeM,lineHeight:f.lineHeightS,fontWeight:f.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:f.gray700,boxSizing:"border-box",transition:`color ${f.transitionDurationShort} ${f.transitionEasingCubicBezier}`,borderRadius:f.borderRadiusMedium,"&:hover":{backgroundColor:hexToRGBA(f.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${f.transitionDurationShort} ${f.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:f.zIndexDefault}},u(`inset ${f.glowPrimary}`)),navbarItemMenuTrigger:css({paddingRight:f.spacingXs}),isActive:ye()}),Pe=()=>({itemSkeleton:css(Ie)});var Se=()=>({navbarItemIcon:css({fill:f.gray700,"&:first-child":{marginRight:f.spacing2Xs},"&:last-child":{marginLeft:f.spacing2Xs},"img&":{borderRadius:f.borderRadiusSmall,maxWidth:f.spacingM,maxHeight:f.spacingM}})});var z=e=>{var n,a;let{icon:t,variant:o}=e,r=Se();return v.cloneElement(t,{className:cx(t.props.className,r.navbarItemIcon),size:(n=t.props.size)!=null?n:"tiny",variant:(a=t.props.variant)!=null?a:o})};var Me=generateIcon({name:"CircleIcon",viewBox:"0 0 24 24",path:v.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 we=generateIcon({name:"ArrowDownIcon",viewBox:"0 0 12 20",path:v.createElement("path",{d:"M3.03076 8C2.20109 8 1.73228 8.95209 2.23814 9.60971L5.20727 13.4696C5.60757 13.99 6.39223 13.99 6.79252 13.4696L9.76166 9.60971C10.2675 8.95209 9.79871 8 8.96904 8L3.03076 8Z",fill:"#9FA8B2"})});var Ae=generateIcon({name:"HelpIcon",viewBox:"0 0 24 24",path:v.createElement(v.Fragment,null,v.createElement("g",{clipPath:"url(#HelpIcon_svg__a)"},v.createElement("path",{d:"M12 2.25A9.75 9.75 0 1 0 21.75 12 9.769 9.769 0 0 0 12 2.25ZM12 18a1.125 1.125 0 1 1 0-2.25A1.125 1.125 0 0 1 12 18Zm.75-4.584v.084a.75.75 0 1 1-1.5 0v-.75A.75.75 0 0 1 12 12a1.875 1.875 0 1 0-1.875-1.875.75.75 0 1 1-1.5 0 3.375 3.375 0 1 1 4.125 3.29Z",fill:"currentFill"})),v.createElement("defs",null,v.createElement("clipPath",{id:"HelpIcon_svg__a"},v.createElement("path",{fill:"currentFill",d:"M0 0h24v24H0z"}))))});var Ee=generateIcon({name:"SearchIcon",viewBox:"0 0 24 24",path:v.createElement(v.Fragment,null,v.createElement("g",{clipPath:"url(#SearchIcon_svg__a)"},v.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6 11.125a5.125 5.125 0 1 1 10.25 0 5.125 5.125 0 0 1-10.25 0ZM11.125 4a7.125 7.125 0 1 0 4.282 12.82l2.886 2.887a1 1 0 0 0 1.414-1.414l-2.886-2.887A7.125 7.125 0 0 0 11.125 4Z",fill:"currentFill"})),v.createElement("defs",null,v.createElement("clipPath",{id:"SearchIcon_svg__a"},v.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"}))))});var Te=generateIcon({name:"ContentfulLogoIcon",viewBox:"0 0 24 24",path:v.createElement(v.Fragment,null,v.createElement("g",{clipPath:"url(#a)"},v.createElement("path",{d:"M8.71 3.007c.844.843 1.17 2.078.844 3.228a6.683 6.683 0 0 1 3.444-.953h.025a6.701 6.701 0 0 1 4.743 1.988 2.637 2.637 0 0 0 3.73.093 2.637 2.637 0 0 0 .094-3.731c-.025-.027-.052-.052-.08-.08A11.95 11.95 0 0 0 13.036.006h-.046a11.92 11.92 0 0 0-6.691 2.038h.074c.876 0 1.715.346 2.335.966l.002-.002Z",fill:"#1773EB"}),v.createElement("path",{d:"M19.593 16.006c-.696 0-1.365.276-1.86.765a6.706 6.706 0 0 1-4.732 1.953h-.025a6.617 6.617 0 0 1-3.446-.97c.079.287.117.584.117.882a3.3 3.3 0 0 1-3.299 3.3h-.087a11.929 11.929 0 0 0 6.696 2.07h.046a11.934 11.934 0 0 0 8.45-3.486 2.64 2.64 0 0 0-1.857-4.514h-.003Z",fill:"#E44F20"}),v.createElement("path",{d:"M4.013 16.301a3.283 3.283 0 0 1 2.335-.967c.303 0 .604.041.893.123a6.696 6.696 0 0 1 .014-6.928 3.302 3.302 0 0 1-4.176-3.187v-.09a12 12 0 0 0-.033 13.452v-.068c0-.877.344-1.715.967-2.335Z",fill:"#FFDA00"}),v.createElement("path",{d:"M6.378 2.627c-.751 0-1.275.311-1.912.948-.606.606-.797 1.136-.8 1.767a2.712 2.712 0 1 0 5.427-.003A2.713 2.713 0 0 0 6.38 2.627h-.003Z",fill:"#1773EB"}),v.createElement("path",{d:"M3.628 18.639c0 .748.311 1.275.948 1.912.606.606 1.136.8 1.767.8a2.703 2.703 0 1 0-.017-5.408 2.703 2.703 0 0 0-2.695 2.704v-.008h-.003Z",fill:"#E44F20"})),v.createElement("defs",null,v.createElement("clipPath",{id:"a"},v.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"}))))});var St="button";function Mt(e,t){let M=e,{as:o=St,icon:r,title:n,children:a,className:p,isActive:c,testId:m="cf-ui-navbar-item",onOpen:g,onClose:N}=M,y=l(M,["as","icon","title","children","className","isActive","testId","onOpen","onClose"]),R=xe(),F=wt(e),X=v.createElement(o,s(i({},y),{ref:t,"data-test-id":m,className:cx(R.navbarItem,F&&R.navbarItemMenuTrigger,c&&R.isActive,p)}),r&&v.createElement(z,{icon:r,variant:"secondary"}),v.createElement("span",null,n),F&&v.createElement(we,null));return F?v.createElement(T,{trigger:X,testId:m,onOpen:g,onClose:N},a):X}var wt=e=>!!e.children,oe=v.forwardRef(Mt);var re=({estimatedWidth:e})=>{let t=Pe();return v.createElement(SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:f.gray300,foregroundColor:f.gray200},v.createElement(SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:f.borderRadiusSmall,radiusY:f.borderRadiusSmall}))};var ke=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var _t="button";function Ht(e,t){let g=e,{as:o=_t,icon:r,title:n,className:a}=g,p=l(g,["as","icon","title","className"]),c=ke(),m=Lt(e);return v.createElement(Menu.Item,s(i({},p),{ref:t,as:o,className:cx(c.navbarMenuItem,a)}),r?v.createElement(z,{icon:r,variant:"secondary"}):m&&Be,v.createElement("span",null,n),r&&m?Be:null)}var Be=v.createElement(z,{icon:v.createElement(ExternalLinkIcon,null),variant:"muted"}),Lt=e=>e.as==="a"&&e.target==="_blank",ae=v.forwardRef(Ht);var ne=({ariaLabel:e})=>v.createElement(Menu.Item,null,v.createElement(Flex,{alignItems:"center",gap:f.spacingXs},v.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},v.createElement(SkeletonImage,{width:16,height:16})),v.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},v.createElement(SkeletonBodyText,{numberOfLines:1}))));var He=()=>({navbarSwitcher:css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:f.gray700,cursor:"pointer",fontSize:f.fontSizeS,fontWeight:f.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:after":{content:'""',border:"1px solid #353A41",boxSizing:"border-box",height:"16px",right:"-1px",position:"absolute",width:0},"&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},u()),switcherMenuIcon:css({height:f.spacingM,width:f.spacingM,fill:f.gray700}),switcherBreadcrumbs:css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function Vt(e,t){let m=e,{children:o,className:r,logo:n,testId:a="cf-ui-navbar-switcher"}=m,p=l(m,["children","className","logo","testId"]),c=He();return v.createElement(Flex,s(i({},p),{as:"button",ref:t,className:cx(c.navbarSwitcher,r),testId:a,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),n||v.createElement(Te,null),v.createElement(MenuIcon,{size:"small",className:c.switcherMenuIcon}),v.createElement(Flex,{as:"ul",alignItems:"center",className:c.switcherBreadcrumbs},o))}var se=v.forwardRef(Vt);var pe=({estimatedWidth:e})=>v.createElement(SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:f.gray300,foregroundColor:f.gray200},v.createElement(SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Oe=()=>({navbarSearch:css({minWidth:"24px",width:"24px",minHeight:"24px",height:"24px",svg:{fill:f.gray700}},u())});function Yt(e,t){let p=e,{className:o,testId:r="cf-ui-navbar-search"}=p,n=l(p,["className","testId"]),a=Oe();return v.createElement(IconButton,s(i({"aria-label":"Quick Search"},n),{variant:"transparent",ref:t,size:"small",className:cx(a.navbarSearch,o),testId:r,icon:v.createElement(Ee,{size:"medium"})}))}var We=v.forwardRef(Yt);var ze={display:"none","&:first-child":{display:"block"},[I.medium]:{display:"block","&:first-child":{display:"none"}}},De=()=>({breadcrumbsItem:css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${f.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${f.spacingXs}`,height:f.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:f.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[I.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:f.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:f.fontStackMonospace,fontSize:f.fontSizeS,fontWeight:f.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[I.large]:{maxWidth:"100%"}},"> div":{[I.medium]:{gap:f.spacing2Xs}}}}),breadcrumbsItemCircle:css({border:`solid 1px ${f.gray300}`,borderRadius:"50%",color:f.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:f.spacingL,height:f.spacingL}),breadcrumbsItemEnvMaster:css({color:f.green600," svg":s(i({},ze),{fill:f.green600})}),breadcrumbsItemEnvNonMaster:css({color:f.orange500,svg:s(i({},ze),{fill:f.orange500})})});function Ge({isAlias:e}){return v.createElement(v.Fragment,null,v.createElement(Me,{key:"mobile-icon",size:"tiny"}),e?v.createElement(EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):v.createElement(EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function to(e,t){let y=e,{children:o,isCircle:r,className:n,envVariant:a,isAlias:p,testId:c="cf-ui-navbar-switcher-item"}=y,m=l(y,["children","isCircle","className","envVariant","isAlias","testId"]),g=De(),N=cx(g.breadcrumbsItem,n,{[g.breadcrumbsItemCircle]:r,[g.breadcrumbsItemEnvMaster]:a==="master",[g.breadcrumbsItemEnvNonMaster]:a==="non-master"});return v.createElement("li",s(i({},m),{ref:t,className:N,"data-test-id":c}),v.createElement(Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},a&&v.createElement(Ge,{isAlias:p}),v.createElement("span",null,o)))}var Ve=v.forwardRef(to);var Xe=()=>({navbarHelp:css({fontSize:f.fontSizeS,padding:`0 ${f.spacing2Xs}`,width:"max-content",minHeight:"24px",height:"24px",color:f.gray700,svg:{fill:f.gray700}},u())});function no(e,t){let c=e,{children:o,className:r,testId:n="cf-ui-navbar-help-trigger"}=c,a=l(c,["children","className","testId"]),p=Xe();return v.createElement(T,{testId:"cf-ui-navbar-help-menu",trigger:v.createElement(Button,s(i({"aria-label":"Help Menu"},a),{as:"button",ref:t,className:cx(p.navbarHelp,r),testId:n,variant:"transparent",size:"small",startIcon:v.createElement(Ae,{size:"medium"})}),"Help")},o)}var $e=v.forwardRef(no);var Ue=()=>({navbarBadge:css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${f.purple600}`,margin:0,outline:"none",fontSize:f.fontSizeS,lineHeight:f.lineHeightS,fontWeight:f.fontWeightMedium,textAlign:"center",padding:`0 ${f.spacingXs}`,textDecoration:"none",color:`${f.purple600}!important`,borderRadius:"1.75rem"})});var po="div";function mo(e,t){let m=e,{as:o=po,children:r,className:n,testId:a="cf-ui-navbar-badge"}=m,p=l(m,["as","children","className","testId"]),c=Ue();return v.createElement(o,s(i({},p),{ref:t,className:cx(c.navbarBadge,n),"data-test-id":a}),r)}var je=v.forwardRef(mo);var qe=()=>({navbarTopItem:css({margin:0,background:"none",border:"1px solid",borderColor:"transparent",cursor:"pointer",display:"flex",gap:f.spacing2Xs,alignItems:"center",lineHeight:f.lineHeightDefault,color:f.gray700,padding:`0 ${f.spacing2Xs}`,minHeight:"24px",fontSize:f.fontSizeS,fontWeight:f.fontWeightMedium,outline:"none",borderRadius:f.borderRadiusMedium,"&:hover":{backgroundColor:hexToRGBA(f.gray900,.05)},svg:{fill:"currentColor"}},u())});var bo="button";function go(e,t){let m=e,{as:o=bo,children:r,className:n,testId:a="cf-ui-navbar-topbar-item"}=m,p=l(m,["as","children","className","testId"]),c=qe();return v.createElement(o,s(i({},p),{ref:t,className:cx(c.navbarTopItem,n),"data-test-id":a}),r)}var Qe=v.forwardRef(go);var b=ge;b.Item=oe;b.ItemSkeleton=re;b.MenuItem=ae;b.MenuItemSkeleton=ne;b.MenuDivider=MenuDivider;b.MenuSectionTitle=MenuSectionTitle;b.Switcher=se;b.SwitcherSkeleton=pe;b.SwitcherItem=Ve;b.Search=We;b.Help=$e;b.Account=ee;b.AccountSkeleton=te;b.Badge=je;b.TopbarItem=Qe;
|
|
13
|
+
var Je=Object.defineProperty,Ke=Object.defineProperties;var et=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var le=(e,t,o)=>t in e?Je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))fe.call(t,o)&&le(e,o,t[o]);if($)for(var o of $(t))de.call(t,o)&&le(e,o,t[o]);return e},s=(e,t)=>Ke(e,et(t));var c=(e,t)=>{var o={};for(var r in e)fe.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&$)for(var r of $(e))t.indexOf(r)<0&&de.call(e,r)&&(o[r]=e[r]);return o};var I={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},u=(e=f.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var be=(e,t)=>({containerTop:css({justifyContent:"center",backgroundColor:f.gray100}),containerBottom:css({justifyContent:"center",backgroundColor:f.gray100}),containerTopContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:f.spacingXs,minHeight:f.spacingL,[I.medium]:{padding:`${f.spacingXs} 20px`}}),containerBottomContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:f.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[I.medium]:{padding:`${f.spacing2Xs} ${f.spacingXs}`}})});function rt(e,t){let ce=e,{children:o,account:r,search:n,switcher:a,help:p,badge:l,bottomRightItems:m,topRightItems:g,contentMaxWidth:M="100%",testId:N="cf-ui-navbar",className:y,variant:F="wide"}=ce,X=c(ce,["children","account","search","switcher","help","badge","bottomRightItems","topRightItems","contentMaxWidth","testId","className","variant"]),w=be(M,F);return v.createElement(Box,s(i({},X),{ref:t,testId:N,className:y}),v.createElement(Flex,{className:w.containerTop},v.createElement(Flex,{className:w.containerTopContent,justifyContent:"space-between"},v.createElement(Flex,null,a),v.createElement(Flex,{alignItems:"center",gap:"spacingXs"},g,l,n,p,r))),v.createElement(Flex,{className:w.containerBottom},v.createElement(Flex,{className:w.containerBottomContent,justifyContent:"space-between"},v.createElement(Flex,{as:"nav","aria-label":"Main Navigation"},o),m&&v.createElement(Flex,null,m))))}var ge=v.forwardRef(rt);var nt={warning:f.colorWarning,negative:f.colorNegative,info:f.blue500},ue=()=>({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(f.gray300,.15)})},u()),avatar:css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:f.spacingS,width:f.spacingS,borderRadius:"50%",border:`2px solid ${f.gray100}`,backgroundColor:nt[e],transform:"translate(30%, -30%)"})});var ve=()=>({menuList:css({minWidth:"250px"})});var C=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:a}=e,p=ve();return v.createElement(Menu,{onOpen:n,onClose:a},v.createElement(Menu.Trigger,null,t),v.createElement(Menu.List,{className:p.menuList,testId:r},o))};function ct(e,t){let y=e,{children:o,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:a,initials:p,username:l,hasNotification:m,notificationVariant:g="warning"}=y,M=c(y,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),N=ue();return v.createElement(C,{trigger:v.createElement(Flex,s(i({as:"button"},M),{ref:t,className:cx(N.navbarAccount,r),testId:n,alignItems:"center"}),v.createElement(Avatar,{src:a,initials:p,size:"small",variant:"user"}),m?v.createElement("span",{className:N.notificationIcon(g)}):null)},o)}var ee=v.forwardRef(ct);function te({ariaLabel:e}){return v.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:f.gray300,foregroundColor:f.gray200},v.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var ye=()=>css({"&::after":{content:'""',position:"absolute",width:`calc(100% - ${f.spacingM})`,height:"2px",bottom:`-${f.spacing2Xs}`,left:0,right:0,margin:"auto",backgroundColor:f.blue600,zIndex:0}}),Ie={display:"flex",justifyContent:"center",padding:`${f.spacing2Xs} ${f.spacingS}`,alignItems:"center",background:"none"},xe=()=>({navbarItem:css(Ie,{alignItems:"center",background:"none",border:0,margin:0,outline:"none",fontSize:f.fontSizeM,lineHeight:f.lineHeightS,fontWeight:f.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:f.gray700,boxSizing:"border-box",transition:`color ${f.transitionDurationShort} ${f.transitionEasingCubicBezier}`,borderRadius:f.borderRadiusMedium,"&:hover":{backgroundColor:hexToRGBA(f.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${f.transitionDurationShort} ${f.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:f.zIndexDefault}},u(`inset ${f.glowPrimary}`)),navbarItemMenuTrigger:css({paddingRight:f.spacingXs}),isActive:ye()}),Pe=()=>({itemSkeleton:css(Ie)});var Se=()=>({navbarItemIcon:css({fill:f.gray700,"&:first-child":{marginRight:f.spacing2Xs},"&:last-child":{marginLeft:f.spacing2Xs},"img&":{borderRadius:f.borderRadiusSmall,maxWidth:f.spacingM,maxHeight:f.spacingM}})});var z=e=>{var n,a;let{icon:t,variant:o}=e,r=Se();return v.cloneElement(t,{className:cx(t.props.className,r.navbarItemIcon),size:(n=t.props.size)!=null?n:"tiny",variant:(a=t.props.variant)!=null?a:o})};var Me=generateIcon({name:"CircleIcon",viewBox:"0 0 24 24",path:v.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 we=generateIcon({name:"ArrowDownIcon",viewBox:"0 0 12 20",path:v.createElement("path",{d:"M3.03076 8C2.20109 8 1.73228 8.95209 2.23814 9.60971L5.20727 13.4696C5.60757 13.99 6.39223 13.99 6.79252 13.4696L9.76166 9.60971C10.2675 8.95209 9.79871 8 8.96904 8L3.03076 8Z",fill:"#9FA8B2"})});var Ae=generateIcon({name:"HelpIcon",viewBox:"0 0 24 24",path:v.createElement(v.Fragment,null,v.createElement("g",{clipPath:"url(#HelpIcon_svg__a)"},v.createElement("path",{d:"M12 2.25A9.75 9.75 0 1 0 21.75 12 9.769 9.769 0 0 0 12 2.25ZM12 18a1.125 1.125 0 1 1 0-2.25A1.125 1.125 0 0 1 12 18Zm.75-4.584v.084a.75.75 0 1 1-1.5 0v-.75A.75.75 0 0 1 12 12a1.875 1.875 0 1 0-1.875-1.875.75.75 0 1 1-1.5 0 3.375 3.375 0 1 1 4.125 3.29Z",fill:"currentFill"})),v.createElement("defs",null,v.createElement("clipPath",{id:"HelpIcon_svg__a"},v.createElement("path",{fill:"currentFill",d:"M0 0h24v24H0z"}))))});var Ee=generateIcon({name:"SearchIcon",viewBox:"0 0 24 24",path:v.createElement(v.Fragment,null,v.createElement("g",{clipPath:"url(#SearchIcon_svg__a)"},v.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6 11.125a5.125 5.125 0 1 1 10.25 0 5.125 5.125 0 0 1-10.25 0ZM11.125 4a7.125 7.125 0 1 0 4.282 12.82l2.886 2.887a1 1 0 0 0 1.414-1.414l-2.886-2.887A7.125 7.125 0 0 0 11.125 4Z",fill:"currentFill"})),v.createElement("defs",null,v.createElement("clipPath",{id:"SearchIcon_svg__a"},v.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"}))))});var Te=generateIcon({name:"ContentfulLogoIcon",viewBox:"0 0 24 24",path:v.createElement(v.Fragment,null,v.createElement("g",{clipPath:"url(#a)"},v.createElement("path",{d:"M8.71 3.007c.844.843 1.17 2.078.844 3.228a6.683 6.683 0 0 1 3.444-.953h.025a6.701 6.701 0 0 1 4.743 1.988 2.637 2.637 0 0 0 3.73.093 2.637 2.637 0 0 0 .094-3.731c-.025-.027-.052-.052-.08-.08A11.95 11.95 0 0 0 13.036.006h-.046a11.92 11.92 0 0 0-6.691 2.038h.074c.876 0 1.715.346 2.335.966l.002-.002Z",fill:"#1773EB"}),v.createElement("path",{d:"M19.593 16.006c-.696 0-1.365.276-1.86.765a6.706 6.706 0 0 1-4.732 1.953h-.025a6.617 6.617 0 0 1-3.446-.97c.079.287.117.584.117.882a3.3 3.3 0 0 1-3.299 3.3h-.087a11.929 11.929 0 0 0 6.696 2.07h.046a11.934 11.934 0 0 0 8.45-3.486 2.64 2.64 0 0 0-1.857-4.514h-.003Z",fill:"#E44F20"}),v.createElement("path",{d:"M4.013 16.301a3.283 3.283 0 0 1 2.335-.967c.303 0 .604.041.893.123a6.696 6.696 0 0 1 .014-6.928 3.302 3.302 0 0 1-4.176-3.187v-.09a12 12 0 0 0-.033 13.452v-.068c0-.877.344-1.715.967-2.335Z",fill:"#FFDA00"}),v.createElement("path",{d:"M6.378 2.627c-.751 0-1.275.311-1.912.948-.606.606-.797 1.136-.8 1.767a2.712 2.712 0 1 0 5.427-.003A2.713 2.713 0 0 0 6.38 2.627h-.003Z",fill:"#1773EB"}),v.createElement("path",{d:"M3.628 18.639c0 .748.311 1.275.948 1.912.606.606 1.136.8 1.767.8a2.703 2.703 0 1 0-.017-5.408 2.703 2.703 0 0 0-2.695 2.704v-.008h-.003Z",fill:"#E44F20"})),v.createElement("defs",null,v.createElement("clipPath",{id:"a"},v.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"}))))});var Mt="button";function wt(e,t){let w=e,{as:o=Mt,icon:r,title:n,children:a,className:p,isActive:l,testId:m="cf-ui-navbar-item",onOpen:g,onClose:M}=w,N=c(w,["as","icon","title","children","className","isActive","testId","onOpen","onClose"]),y=xe(),F=At(e),X=v.createElement(o,s(i({},N),{ref:t,"data-test-id":m,className:cx(y.navbarItem,F&&y.navbarItemMenuTrigger,l&&y.isActive,p)}),r&&v.createElement(z,{icon:r,variant:"secondary"}),v.createElement("span",null,n),F&&v.createElement(we,null));return F?v.createElement(C,{trigger:X,testId:m,onOpen:g,onClose:M},a):X}var At=e=>!!e.children,oe=v.forwardRef(wt);var re=({estimatedWidth:e})=>{let t=Pe();return v.createElement(SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:f.gray300,foregroundColor:f.gray200},v.createElement(SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:f.borderRadiusSmall,radiusY:f.borderRadiusSmall}))};var ke=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Ht="button";function Lt(e,t){let g=e,{as:o=Ht,icon:r,title:n,className:a}=g,p=c(g,["as","icon","title","className"]),l=ke(),m=Rt(e);return v.createElement(Menu.Item,s(i({},p),{ref:t,as:o,className:cx(l.navbarMenuItem,a)}),r?v.createElement(z,{icon:r,variant:"secondary"}):m&&Be,v.createElement("span",null,n),r&&m?Be:null)}var Be=v.createElement(z,{icon:v.createElement(ExternalLinkIcon,null),variant:"muted"}),Rt=e=>e.as==="a"&&e.target==="_blank",ae=v.forwardRef(Lt);var ne=({ariaLabel:e})=>v.createElement(Menu.Item,null,v.createElement(Flex,{alignItems:"center",gap:f.spacingXs},v.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},v.createElement(SkeletonImage,{width:16,height:16})),v.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},v.createElement(SkeletonBodyText,{numberOfLines:1}))));var He=()=>({navbarSwitcher:css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:f.gray700,cursor:"pointer",fontSize:f.fontSizeS,fontWeight:f.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:after":{content:'""',border:"1px solid #353A41",boxSizing:"border-box",height:"16px",right:"-1px",position:"absolute",width:0},"&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},u()),switcherMenuIcon:css({height:f.spacingM,width:f.spacingM,fill:f.gray700}),switcherBreadcrumbs:css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function Xt(e,t){let m=e,{children:o,className:r,logo:n,testId:a="cf-ui-navbar-switcher"}=m,p=c(m,["children","className","logo","testId"]),l=He();return v.createElement(Flex,s(i({},p),{as:"button",ref:t,className:cx(l.navbarSwitcher,r),testId:a,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),n||v.createElement(Te,null),v.createElement(MenuIcon,{size:"small",className:l.switcherMenuIcon}),v.createElement(Flex,{as:"ul",alignItems:"center",className:l.switcherBreadcrumbs},o))}var se=v.forwardRef(Xt);var pe=({estimatedWidth:e})=>v.createElement(SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:f.gray300,foregroundColor:f.gray200},v.createElement(SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Oe=()=>({navbarSearch:css({minWidth:"24px",width:"24px",minHeight:"24px",height:"24px",svg:{fill:f.gray700}},u())});function Qt(e,t){let p=e,{className:o,testId:r="cf-ui-navbar-search"}=p,n=c(p,["className","testId"]),a=Oe();return v.createElement(IconButton,s(i({"aria-label":"Quick Search"},n),{variant:"transparent",ref:t,size:"small",className:cx(a.navbarSearch,o),testId:r,icon:v.createElement(Ee,{size:"medium"})}))}var We=v.forwardRef(Qt);var ze={display:"none","&:first-child":{display:"block"},[I.medium]:{display:"block","&:first-child":{display:"none"}}},De=()=>({breadcrumbsItem:css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${f.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${f.spacingXs}`,height:f.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:f.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[I.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:f.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:f.fontStackMonospace,fontSize:f.fontSizeS,fontWeight:f.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[I.large]:{maxWidth:"100%"}},"> div":{[I.medium]:{gap:f.spacing2Xs}}}}),breadcrumbsItemCircle:css({border:`solid 1px ${f.gray300}`,borderRadius:"50%",color:f.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:f.spacingL,height:f.spacingL}),breadcrumbsItemEnvMaster:css({color:f.green600," svg":s(i({},ze),{fill:f.green600})}),breadcrumbsItemEnvNonMaster:css({color:f.orange500,svg:s(i({},ze),{fill:f.orange500})})});function Ge({isAlias:e}){return v.createElement(v.Fragment,null,v.createElement(Me,{key:"mobile-icon",size:"tiny"}),e?v.createElement(EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):v.createElement(EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function oo(e,t){let N=e,{children:o,isCircle:r,className:n,envVariant:a,isAlias:p,testId:l="cf-ui-navbar-switcher-item"}=N,m=c(N,["children","isCircle","className","envVariant","isAlias","testId"]),g=De(),M=cx(g.breadcrumbsItem,n,{[g.breadcrumbsItemCircle]:r,[g.breadcrumbsItemEnvMaster]:a==="master",[g.breadcrumbsItemEnvNonMaster]:a==="non-master"});return v.createElement("li",s(i({},m),{ref:t,className:M,"data-test-id":l}),v.createElement(Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},a&&v.createElement(Ge,{isAlias:p}),v.createElement("span",null,o)))}var Ve=v.forwardRef(oo);var Xe=()=>({navbarHelp:css({fontSize:f.fontSizeS,padding:`0 ${f.spacing2Xs}`,width:"max-content",minHeight:"24px",height:"24px",color:f.gray700,svg:{fill:f.gray700}},u())});function io(e,t){let l=e,{children:o,className:r,testId:n="cf-ui-navbar-help-trigger"}=l,a=c(l,["children","className","testId"]),p=Xe();return v.createElement(C,{testId:"cf-ui-navbar-help-menu",trigger:v.createElement(Button,s(i({"aria-label":"Help Menu"},a),{as:"button",ref:t,className:cx(p.navbarHelp,r),testId:n,variant:"transparent",size:"small",startIcon:v.createElement(Ae,{size:"medium"})}),"Help")},o)}var $e=v.forwardRef(io);var Ue=()=>({navbarBadge:css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${f.purple600}`,margin:0,outline:"none",fontSize:f.fontSizeS,lineHeight:f.lineHeightS,fontWeight:f.fontWeightMedium,textAlign:"center",padding:`0 ${f.spacingXs}`,textDecoration:"none",color:`${f.purple600}!important`,borderRadius:"1.75rem"})});var mo="div";function co(e,t){let m=e,{as:o=mo,children:r,className:n,testId:a="cf-ui-navbar-badge"}=m,p=c(m,["as","children","className","testId"]),l=Ue();return v.createElement(o,s(i({},p),{ref:t,className:cx(l.navbarBadge,n),"data-test-id":a}),r)}var je=v.forwardRef(co);var qe=()=>({navbarTopItem:css({margin:0,background:"none",border:"1px solid",borderColor:"transparent",cursor:"pointer",display:"flex",gap:f.spacing2Xs,alignItems:"center",lineHeight:f.lineHeightDefault,color:f.gray700,padding:`0 ${f.spacing2Xs}`,minHeight:"24px",fontSize:f.fontSizeS,fontWeight:f.fontWeightMedium,outline:"none",borderRadius:f.borderRadiusMedium,"&:hover":{backgroundColor:hexToRGBA(f.gray900,.05)},svg:{fill:"currentColor"}},u())});var go="button";function uo(e,t){let m=e,{as:o=go,children:r,className:n,testId:a="cf-ui-navbar-topbar-item"}=m,p=c(m,["as","children","className","testId"]),l=qe();return v.createElement(o,s(i({},p),{ref:t,className:cx(l.navbarTopItem,n),"data-test-id":a}),r)}var Qe=v.forwardRef(uo);var b=ge;b.Item=oe;b.ItemSkeleton=re;b.MenuItem=ae;b.MenuItemSkeleton=ne;b.MenuDivider=MenuDivider;b.MenuSectionTitle=MenuSectionTitle;b.Switcher=se;b.SwitcherSkeleton=pe;b.SwitcherItem=Ve;b.Search=We;b.Help=$e;b.Account=ee;b.AccountSkeleton=te;b.Badge=je;b.TopbarItem=Qe;
|
|
13
14
|
|
|
14
15
|
export { b as Navbar, ye as getNavbarItemActiveStyles };
|
|
15
16
|
//# 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/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/icons/CircleIcon.tsx","../../src/icons/ArrowDownIcon.tsx","../../src/icons/HelpIcon.tsx","../../src/icons/SearchIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../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/NavbarSearch/NavbarSearch.tsx","../../src/NavbarSearch/NavbarSearch.styles.ts","../../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../../src/NavbarHelp/NavbarHelp.tsx","../../src/NavbarHelp/NavbarHelp.styles.ts","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts","../../src/NavbarTopbarItem/NavbarTopbarItem.tsx","../../src/NavbarTopbarItem/NavbarTopbarItem.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","_Navbar","props","ref","_a","children","account","search","switcher","help","badge","bottomRightItems","topRightItems","contentMaxWidth","testId","className","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","onOpen","onClose","_NavbarAccount","avatar","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","_b","icon","generateIcon","CircleIcon","ArrowDownIcon","HelpIcon","SearchIcon","ContentfulLogoIcon","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","title","isActive","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ExternalLinkIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","MenuIcon","_NavbarSwitcher","logo","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","IconButton","getNavbarSearchStyles","_NavbarSearch","NavbarSearch","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","Button","getNavbarHelpStyles","_NavbarHelp","NavbarHelp","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge","getNavbarTopbarItemStyles","_NavbarTopbarItem","NavbarTopbarItem"],"mappings":"8lBAAA,OAAS,eAAAA,OAAmB,uBAC5B,OAAS,oBAAAC,OAAwB,uBCDjC,OACE,OAAAC,GAGA,QAAAC,MACK,uBACP,OAAOC,MAAW,QCNlB,OAAS,OAAAC,MAAW,UACpB,OAAOC,MAAY,yBCDnB,OAAOA,OAAY,yBAIZ,IAAMC,EAAoB,CAC/B,OAAQ,4BACR,MAAO,4BACP,OAAQ,4BACV,EAEaC,EAAuB,CAACC,EAAiBH,GAAO,eAAiB,CAC5E,UAAW,CACT,UAAWG,CACb,EACA,8BAA+B,CAC7B,UAAW,OACb,EACA,kBAAmB,CACjB,UAAWA,CACb,CACF,GDhBO,IAAMC,GAAkB,CAACC,EAAkBC,KAAqB,CACrE,aAAcP,EAAI,CAChB,eAAgB,SAChB,gBAAiBC,EAAO,OAC1B,CAAC,EACD,gBAAiBD,EAAI,CACnB,eAAgB,SAChB,gBAAiBC,EAAO,OAC1B,CAAC,EACD,oBAAqBD,EAAI,CACvB,MAAO,OACP,SAAUO,IAAY,OAAS,SAAWD,EAC1C,QAASL,EAAO,UAChB,UAAWA,EAAO,SAClB,CAACC,EAAI,MAAM,EAAG,CACZ,QAAS,GAAGD,EAAO,SAAS,OAC9B,CACF,CAAC,EACD,uBAAwBD,EAAI,CAC1B,MAAO,OACP,SAAUO,IAAY,OAAS,SAAWD,EAC1C,QAAS,EACT,WAAYL,EAAO,WACnB,UAAW,SACX,SAAU,OACV,CAACC,EAAI,MAAM,EAAG,CACZ,QAAS,GAAGD,EAAO,UAAU,IAAIA,EAAO,SAAS,EACnD,CACF,CAAC,CACH,GDQA,SAASO,GAAQC,EAAiCC,EAA6B,CAC7E,IAcIC,GAAAF,EAbF,UAAAG,EACA,QAAAC,EACA,OAAAC,EACA,SAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,gBAAAC,EAAkB,OAClB,OAAAC,EAAS,eACT,UAAAC,EACA,QAAAf,EAAU,MAtDd,EAwDMI,GADCY,EAAAC,EACDb,GADC,CAZH,WACA,UACA,SACA,WACA,OACA,QACA,mBACA,gBACA,kBACA,SACA,YACA,YAGIc,EAASpB,GAAgBe,EAAiBb,CAAO,EAEvD,OACER,EAAA,cAACF,GAAA6B,EAAAC,EAAA,GAAQJ,GAAR,CAAoB,IAAKb,EAAK,OAAQW,EAAQ,UAAWC,IACxDvB,EAAA,cAACD,EAAA,CAAK,UAAW2B,EAAO,cACtB1B,EAAA,cAACD,EAAA,CACC,UAAW2B,EAAO,oBAClB,eAAe,iBAEf1B,EAAA,cAACD,EAAA,KAAMiB,CAAS,EAChBhB,EAAA,cAACD,EAAA,CAAK,WAAW,SAAS,IAAI,aAC3BqB,EACAF,EACAH,EACAE,EACAH,CACH,CACF,CACF,EAEAd,EAAA,cAACD,EAAA,CAAK,UAAW2B,EAAO,iBACtB1B,EAAA,cAACD,EAAA,CACC,UAAW2B,EAAO,uBAClB,eAAe,iBAEf1B,EAAA,cAACD,EAAA,CAAK,GAAG,MAAM,aAAW,mBACvBc,CACH,EACCM,GAAoBnB,EAAA,cAACD,EAAA,KAAMoB,CAAiB,CAC/C,CACF,CACF,CAEJ,CAEO,IAAMU,GAAS7B,EAAM,WAAWS,EAAO,EG5F9C,OAAOT,MAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,MAAW,UACpB,OAAOC,MAAY,yBAGnB,OAAS,aAAA6B,OAAiB,wBAE1B,IAAMC,GAGF,CACF,QAAS9B,EAAO,aAChB,SAAUA,EAAO,cACjB,KAAMA,EAAO,OACf,EAEa+B,GAAyB,KAAO,CAC3C,cAAehC,EACb,CAEE,OAAQ,EACR,QAAS,EACT,OAAQ,EACR,OAAQ,UACR,WAAY,OACZ,SAAU,WACV,QAAS,OACT,SAAU,UACV,aAAc,MACd,WAAYA,EAAI,CACd,QAAS,KACT,QAAS,QACT,SAAU,WACV,OAAQ,OACR,MAAO,OACP,gBAAiB,cACjB,aAAc,KAChB,CAAC,EACD,iBAAkBA,EAAI,CACpB,gBAAiB8B,GAAU7B,EAAO,QAAS,GAAI,CACjD,CAAC,CACH,EACAE,EAAqB,CACvB,EACA,OAAQH,EAAI,CACV,aAAc,MACd,QAAS,QACT,OAAQ,OACR,MAAO,MACT,CAAC,EACD,iBAAmBO,GACjBP,EAAI,CACF,SAAU,WACV,IAAK,EACL,MAAO,EACP,OAAQC,EAAO,SACf,MAAOA,EAAO,SACd,aAAc,MACd,OAAQ,aAAaA,EAAO,OAAO,GACnC,gBAAiB8B,GAA2BxB,CAAO,EACnD,UAAW,sBACb,CAAC,CACL,GC7DA,OAAOR,MAAW,QAClB,OAAS,QAAAkC,MAAgD,uBCDzD,OAAS,OAAAjC,OAAW,UAEb,IAAMkC,GAAsB,KAAO,CACxC,SAAUlC,GAAI,CACZ,SAAU,OACZ,CAAC,CACH,GDIO,IAAMmC,EAAc1B,GAA2B,CACpD,GAAM,CACJ,QAAA2B,EACA,SAAAxB,EACA,OAAAS,EAAS,yBACT,OAAAgB,EACA,QAAAC,CACF,EAAI7B,EACEgB,EAASS,GAAoB,EAEnC,OACEnC,EAAA,cAACkC,EAAA,CAAK,OAAQI,EAAQ,QAASC,GAC7BvC,EAAA,cAACkC,EAAK,QAAL,KAAcG,CAAQ,EACvBrC,EAAA,cAACkC,EAAK,KAAL,CAAU,UAAWR,EAAO,SAAU,OAAQJ,GAC5CT,CACH,CACF,CAEJ,EFnBA,OAAS,QAAAd,OAAY,uBAkBrB,SAASyC,GACP9B,EACAC,EACA,CACA,IASIC,EAAAF,EARF,UAAAG,EACA,UAAAU,EACA,OAAAD,EAAS,+BACT,OAAAmB,EACA,SAAAC,EACA,gBAAAC,EACA,oBAAAC,EAAsB,SAtC1B,EAwCMhC,EADCY,EAAAC,EACDb,EADC,CAPH,WACA,YACA,SACA,SACA,WACA,kBACA,wBAGIc,EAASO,GAAuB,EAEtC,OACEjC,EAAA,cAACoC,EAAA,CACC,QACEpC,EAAA,cAACD,GAAA4B,EAAAC,EAAA,CACC,GAAG,UACCJ,GAFL,CAGC,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,cAAeH,CAAS,EAC7C,OAAQD,EACR,WAAW,WAEXtB,EAAA,cAAC,OACC,IAAKyC,EACL,IAAK,mBAAmBC,CAAQ,GAChC,UAAWhB,EAAO,OACpB,EACCiB,EACC3C,EAAA,cAAC,QAAK,UAAW0B,EAAO,iBAAiBkB,CAAmB,EAAG,EAC7D,IACN,GAGD/B,CACH,CAEJ,CAEO,IAAMgC,GAAgB7C,EAAM,WAAWwC,EAAc,EItE5D,OAAOxC,OAAW,QAClB,OAAS,qBAAA8C,GAAmB,iBAAAC,OAAqB,2BACjD,OAAO7C,OAAY,yBAEZ,SAAS8C,GAAsB,CAAE,UAAAC,CAAU,EAA2B,CAC3E,OACEjD,GAAA,cAAC8C,GAAA,CACC,SAAU,GACV,UAAW,GACX,UAAWG,EACX,gBAAiB/C,GAAO,QACxB,gBAAiBA,GAAO,SAExBF,GAAA,cAAC+C,GAAA,CAAc,MAAO,GAAI,OAAQ,GAAI,QAAS,GAAI,QAAS,GAAI,CAClE,CAEJ,CChBA,OAAO/C,MAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,MAAW,UACpB,OAAOC,MAAY,yBACnB,OAAS,aAAA6B,OAAiB,wBAGnB,IAAMmB,GAA4B,IACvCjD,EAAI,CACF,WAAY,CACV,QAAS,KACT,SAAU,WACV,MAAO,eAAeC,EAAO,QAAQ,IACrC,OAAQ,MACR,OAAQ,IAAIA,EAAO,UAAU,GAC7B,KAAM,EACN,MAAO,EACP,OAAQ,OACR,gBAAiBA,EAAO,QACxB,OAAQ,CACV,CACF,CAAC,EAEGiD,GAAmB,CACvB,QAAS,OACT,eAAgB,SAChB,QAAS,GAAGjD,EAAO,UAAU,IAAIA,EAAO,QAAQ,GAChD,WAAY,SACZ,WAAY,MACd,EAEakD,GAAsB,KAAO,CACxC,WAAYnD,EACVkD,GACA,CACE,WAAY,SACZ,WAAY,OACZ,OAAQ,EACR,OAAQ,EACR,QAAS,OACT,SAAUjD,EAAO,UACjB,WAAYA,EAAO,YACnB,WAAYA,EAAO,iBACnB,SAAU,WACV,UAAW,OACX,WAAY,SACZ,OAAQ,UACR,QAAS,OACT,eAAgB,OAChB,MAAOA,EAAO,QACd,UAAW,aACX,WAAY,SAASA,EAAO,uBAAuB,IAAIA,EAAO,2BAA2B,GACzF,aAAcA,EAAO,mBAErB,UAAW,CACT,gBAAiB6B,GAAU7B,EAAO,QAAS,GAAI,CACjD,EAEA,kBAAmB,CACjB,QAAS,EACT,MAAO,GACT,EAEA,mBAAoB,CAClB,gBAAiB,0BACnB,EACA,aAAc,CACZ,OAAQ,MACV,EAEA,QAAS,CACP,WAAY,QAAQA,EAAO,uBAAuB,IAAIA,EAAO,2BAA2B,EAC1F,EACA,oBAAqB,CACnB,OAAQA,EAAO,aACjB,CACF,EACAE,EAAqB,SAASF,EAAO,WAAW,EAAE,CACpD,EACA,sBAAuBD,EAAI,CACzB,aAAcC,EAAO,SACvB,CAAC,EACD,SAAUgD,GAA0B,CACtC,GAEaG,GAA8B,KAAO,CAChD,aAAcpD,EAAIkD,EAAgB,CACpC,GCrFA,OAAOnD,OAAW,QCAlB,OAAS,OAAAC,OAAW,UACpB,OAAOC,MAAY,yBAEZ,IAAMoD,GAA0B,KAAO,CAC5C,eAAgBrD,GAAI,CAClB,KAAMC,EAAO,QACb,gBAAiB,CACf,YAAaA,EAAO,UACtB,EACA,eAAgB,CACd,WAAYA,EAAO,UACrB,EACA,OAAQ,CACN,aAAcA,EAAO,kBACrB,SAAUA,EAAO,SACjB,UAAWA,EAAO,QACpB,CACF,CAAC,CACH,GDfA,OAAS,MAAA4B,OAAU,UAMZ,IAAMyB,EAAkB7C,GAA+B,CAT9D,IAAAE,EAAA4C,EAUE,GAAM,CAAE,KAAAC,EAAM,QAAAjD,CAAQ,EAAIE,EACpBgB,EAAS4B,GAAwB,EAEvC,OAAOtD,GAAM,aAAayD,EAAM,CAC9B,UAAW3B,GAAG2B,EAAK,MAAM,UAAW/B,EAAO,cAAc,EACzD,MAAMd,EAAA6C,EAAK,MAAM,OAAX,KAAA7C,EAAmB,OACzB,SAAS4C,EAAAC,EAAK,MAAM,UAAX,KAAAD,EAAsBhD,CACjC,CAAC,CACH,EElBA,OAAOR,OAAW,QAClB,OAAS,gBAAA0D,OAAoB,uBAEtB,IAAMC,GAA2BD,GAAa,CACnD,KAAM,aACN,QAAS,YACT,KACE1D,GAAA,cAAC,QACC,EAAE,+LACF,KAAK,cACP,CAEJ,CAAC,ECZD,OAAOA,OAAW,QAClB,OAAS,gBAAA0D,OAAoB,uBAEtB,IAAME,GAA8BF,GAAa,CACtD,KAAM,gBACN,QAAS,YACT,KACE1D,GAAA,cAAC,QACC,EAAE,kLACF,KAAK,UACP,CAEJ,CAAC,ECZD,OAAOA,MAAW,QAClB,OAAS,gBAAA0D,OAAoB,uBAEtB,IAAMG,GAAyBH,GAAa,CACjD,KAAM,WACN,QAAS,YACT,KACE1D,EAAA,cAAAA,EAAA,cACEA,EAAA,cAAC,KAAE,SAAS,yBACVA,EAAA,cAAC,QACC,EAAE,+PACF,KAAK,cACP,CACF,EACAA,EAAA,cAAC,YACCA,EAAA,cAAC,YAAS,GAAG,mBACXA,EAAA,cAAC,QAAK,KAAK,cAAc,EAAE,gBAAgB,CAC7C,CACF,CACF,CAEJ,CAAC,ECrBD,OAAOA,MAAW,QAClB,OAAS,gBAAA0D,OAAoB,uBAEtB,IAAMI,GAA2BJ,GAAa,CACnD,KAAM,aACN,QAAS,YACT,KACE1D,EAAA,cAAAA,EAAA,cACEA,EAAA,cAAC,KAAE,SAAS,2BACVA,EAAA,cAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,mLACF,KAAK,cACP,CACF,EACAA,EAAA,cAAC,YACCA,EAAA,cAAC,YAAS,GAAG,qBACXA,EAAA,cAAC,QAAK,KAAK,OAAO,EAAE,gBAAgB,CACtC,CACF,CACF,CAEJ,CAAC,ECvBD,OAAOA,MAAW,QAClB,OAAS,gBAAA0D,OAAoB,uBAEtB,IAAMK,GAAmCL,GAAa,CAC3D,KAAM,qBACN,QAAS,YACT,KACE1D,EAAA,cAAAA,EAAA,cACEA,EAAA,cAAC,KAAE,SAAS,WACVA,EAAA,cAAC,QACC,EAAE,6SACF,KAAK,UACP,EACAA,EAAA,cAAC,QACC,EAAE,yQACF,KAAK,UACP,EACAA,EAAA,cAAC,QACC,EAAE,+LACF,KAAK,UACP,EACAA,EAAA,cAAC,QACC,EAAE,yIACF,KAAK,UACP,EACAA,EAAA,cAAC,QACC,EAAE,2IACF,KAAK,UACP,CACF,EACAA,EAAA,cAAC,YACCA,EAAA,cAAC,YAAS,GAAG,KACXA,EAAA,cAAC,QAAK,KAAK,OAAO,EAAE,gBAAgB,CACtC,CACF,CACF,CAEJ,CAAC,ERrBD,IAAMgE,GAA0B,SAwBhC,SAASC,GACPvD,EACAC,EACA,CACA,IAWIC,EAAAF,EAVF,IAAIwD,EAAOF,GACX,KAAAP,EACA,MAAAU,EACA,SAAAtD,EACA,UAAAU,EACA,SAAA6C,EACA,OAAA9C,EAAS,oBACT,OAAAgB,EACA,QAAAC,CArDJ,EAuDM3B,EADCY,EAAAC,EACDb,EADC,CATH,KACA,OACA,QACA,WACA,YACA,WACA,SACA,SACA,YAGIc,EAAS0B,GAAoB,EAC7BiB,EAAgBC,GAAoB5D,CAAK,EACzC6D,EACJvE,EAAA,cAACkE,EAAAvC,EAAAC,EAAA,GACKJ,GADL,CAEC,IAAKb,EACL,eAAcW,EACd,UAAWQ,GACTJ,EAAO,WACP2C,GAAiB3C,EAAO,sBACxB0C,GAAY1C,EAAO,SACnBH,CACF,IAECkC,GAAQzD,EAAA,cAACuD,EAAA,CAAe,KAAME,EAAM,QAAQ,YAAY,EACzDzD,EAAA,cAAC,YAAMmE,CAAM,EACZE,GAAiBrE,EAAA,cAAC4D,GAAA,IAAc,CACnC,EAGF,OAAIS,EAEArE,EAAA,cAACoC,EAAA,CACC,QAASmC,EACT,OAAQjD,EACR,OAAQgB,EACR,QAASC,GAER1B,CACH,EAIG0D,CACT,CAEA,IAAMD,GACJ5D,GAEA,EAAQA,EAAM,SAEH8D,GAGTxE,EAAM,WAAWiE,EAAW,ESpGhC,OAAOjE,OAAW,QAClB,OAAS,qBAAA8C,GAAmB,gBAAA2B,OAAoB,2BAChD,OAAOvE,MAAY,yBAGZ,IAAMwE,GAAqB,CAAC,CACjC,eAAAC,CACF,IAEM,CACJ,IAAMjD,EAAS2B,GAA4B,EAE3C,OACErD,GAAA,cAAC8C,GAAA,CACC,UAAWpB,EAAO,aAClB,SAAUiD,EACV,UAAW,GACX,gBAAiBzE,EAAO,QACxB,gBAAiBA,EAAO,SAExBF,GAAA,cAACyE,GAAA,CACC,WAAY,EACZ,cAAe,EACf,UAAW,GACX,QAASvE,EAAO,kBAChB,QAASA,EAAO,kBAClB,CACF,CAEJ,EC7BA,OAAOF,MAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,OAAW,UACb,IAAM2E,GAA0B,KAAO,CAC5C,eAAgB3E,GAAI,CAClB,QAAS,OACT,eAAgB,aAChB,WAAY,QACd,CAAC,CACH,GDJA,OAAS,QAAAiC,OAAgC,uBAKzC,OAAS,oBAAA2C,OAAwB,wBAOjC,IAAMC,GAA+B,SAarC,SAASC,GACPrE,EACAC,EACA,CACA,IAMIC,EAAAF,EALF,IAAIwD,EAAOY,GACX,KAAArB,EACA,MAAAU,EACA,UAAA5C,CApCJ,EAsCMX,EADCY,EAAAC,EACDb,EADC,CAJH,KACA,OACA,QACA,cAGIc,EAASkD,GAAwB,EAEjCI,EAAqBC,GACzBvE,CACF,EAEA,OACEV,EAAA,cAACkC,GAAK,KAALP,EAAAC,EAAA,GACKJ,GADL,CAEC,IAAKb,EACL,GAAIuD,EACJ,UAAWpC,GAAGJ,EAAO,eAAgBH,CAAS,IAE7CkC,EACCzD,EAAA,cAACuD,EAAA,CAAe,KAAME,EAAM,QAAQ,YAAY,EAEhDuB,GAAsBE,GAExBlF,EAAA,cAAC,YAAMmE,CAAM,EACZV,GAAQuB,EAAqBE,GAAe,IAC/C,CAEJ,CAEA,IAAMA,GACJlF,EAAA,cAACuD,EAAA,CAAe,KAAMvD,EAAA,cAAC6E,GAAA,IAAiB,EAAI,QAAQ,QAAQ,EAGxDI,GAAkBvE,GACtBA,EAAM,KAAO,KAAOA,EAAM,SAAW,SAE1ByE,GAGTnF,EAAM,WAAW+E,EAAe,EEzEpC,OAAO/E,MAAW,QAClB,OAAS,QAAAkC,OAAY,uBACrB,OACE,oBAAAkD,GACA,qBAAAtC,GACA,iBAAAC,OACK,2BACP,OAAS,QAAAhD,OAAY,uBAErB,OAAOG,OAAY,yBAEZ,IAAMmF,GAAyB,CAAC,CACrC,UAAApC,CACF,IAGEjD,EAAA,cAACkC,GAAK,KAAL,KACClC,EAAA,cAACD,GAAA,CAAK,WAAW,SAAS,IAAKG,GAAO,WACpCF,EAAA,cAAC8C,GAAA,CAAkB,UAAW,GAAI,SAAU,IAC1C9C,EAAA,cAAC+C,GAAA,CAAc,MAAO,GAAI,OAAQ,GAAI,CACxC,EACA/C,EAAA,cAAC8C,GAAA,CAAkB,UAAW,GAAI,SAAU,IAAK,UAAWG,GAC1DjD,EAAA,cAACoF,GAAA,CAAiB,cAAe,EAAG,CACtC,CACF,CACF,ECzBF,OAAOpF,MAAW,QCAlB,OAAS,OAAAC,OAAW,UACpB,OAAOC,MAAY,yBAGZ,IAAMoF,GAA0B,KAAO,CAC5C,eAAgBrF,GACd,CAEE,OAAQ,EACR,QAAS,EACT,WAAY,OACZ,OAAQ,OACR,OAAQ,cAER,MAAOC,EAAO,QACd,OAAQ,UACR,SAAUA,EAAO,UACjB,WAAYA,EAAO,iBACnB,SAAU,WACV,QAAS,OACT,aAAc,OAEd,UAAW,CACT,QAAS,KACT,OAAQ,oBACR,UAAW,aACX,OAAQ,OACR,MAAO,OACP,SAAU,WACV,MAAO,CACT,EACA,qBAAsB,CACpB,QAAS,MACX,EACA,aAAc,CACZ,gBAAiB,SACnB,CACF,EACAE,EAAqB,CACvB,EACA,iBAAkBH,GAAI,CACpB,OAAQC,EAAO,SACf,MAAOA,EAAO,SACd,KAAMA,EAAO,OACf,CAAC,EACD,oBAAqBD,GAAI,CACvB,cAAe,OACf,OAAQ,EACR,QAAS,EACT,SAAU,UACZ,CAAC,CACH,GDjDA,OACE,QAAAF,OAIK,uBACP,OAAS,YAAAwF,OAAgB,wBACzB,OAAS,MAAAzD,OAAU,UAgBnB,SAAS0D,GACP9E,EACAC,EACA,CACA,IAMIC,EAAAF,EALF,UAAAG,EACA,UAAAU,EACA,KAAAkE,EACA,OAAAnE,EAAS,uBAjCb,EAmCMV,EADCY,EAAAC,EACDb,EADC,CAJH,WACA,YACA,OACA,WAGIc,EAAS4D,GAAwB,EAEvC,OACEtF,EAAA,cAACD,GAAA4B,EAAAC,EAAA,GACKJ,GADL,CAEC,GAAG,SACH,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,eAAgBH,CAAS,EAC9C,OAAQD,EACR,WAAW,SACX,WAAU,GACV,IAAI,cAEHmE,GAAQzF,EAAA,cAAC+D,GAAA,IAAmB,EAC7B/D,EAAA,cAACuF,GAAA,CAAS,KAAK,QAAQ,UAAW7D,EAAO,iBAAkB,EAE3D1B,EAAA,cAACD,GAAA,CAAK,GAAG,KAAK,WAAW,SAAS,UAAW2B,EAAO,qBACjDb,CACH,CACF,CAEJ,CAEO,IAAM6E,GAAiB1F,EAAM,WAAWwF,EAAe,EE3D9D,OAAOxF,OAAW,QAClB,OACE,qBAAA8C,GACA,uBAAA6C,OACK,2BACP,OAAOzF,OAAY,yBAEZ,IAAM0F,GAAyB,CAAC,CACrC,eAAAjB,CACF,IAGE3E,GAAA,cAAC8C,GAAA,CACC,SAAU6B,EACV,UAAW,GACX,gBAAiBzE,GAAO,QACxB,gBAAiBA,GAAO,SAExBF,GAAA,cAAC2F,GAAA,CACC,WAAY,GACZ,cAAe,EACf,QAAS,GACT,QAAS,GACX,CACF,ECxBF,OAAS,MAAA7D,OAAU,UACnB,OAAO9B,OAAW,QAOlB,OAAS,cAAA6F,OAAkB,yBCR3B,OAAS,OAAA5F,OAAW,UAEpB,OAAOC,OAAY,yBAEZ,IAAM4F,GAAwB,KAAO,CAC1C,aAAc7F,GACZ,CAEE,SAAU,OACV,MAAO,OACP,UAAW,OACX,OAAQ,OACR,IAAK,CACH,KAAMC,GAAO,OACf,CACF,EACAE,EAAqB,CACvB,CACF,GDDA,SAAS2F,GACPrF,EACAC,EACA,CACA,IAAqEC,EAAAF,EAA7D,WAAAa,EAAW,OAAAD,EAAS,qBArB9B,EAqBuEV,EAAfY,EAAAC,EAAeb,EAAf,CAA9C,YAAW,WACbc,EAASoE,GAAsB,EACrC,OACE9F,GAAA,cAAC6F,GAAAlE,EAAAC,EAAA,CACC,aAAW,gBACPJ,GAFL,CAGC,QAAQ,cACR,IAAKb,EACL,KAAK,QACL,UAAWmB,GAAGJ,EAAO,aAAcH,CAAS,EAC5C,OAAQD,EACR,KAAMtB,GAAA,cAAC8D,GAAA,CAAW,KAAK,SAAS,GAClC,CAEJ,CAEO,IAAMkC,GAAehG,GAAM,WAAW+F,EAAa,EErC1D,OAAO/F,MAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,MAAW,UACpB,OAAOC,MAAY,yBAGnB,IAAM+F,GAAa,CACjB,QAAS,OACT,gBAAiB,CACf,QAAS,OACX,EAEA,CAAC9F,EAAI,MAAM,EAAG,CACZ,QAAS,QACT,gBAAiB,CACf,QAAS,MACX,CACF,CACF,EAEa+F,GAA8B,KAAO,CAChD,gBAAiBjG,EAAI,CACnB,SAAU,WACV,WAAY,SACZ,eAAgB,SAChB,OAAQ,aAAaC,EAAO,OAAO,GACnC,WAAY,OACZ,QAAS,cACT,OAAQ,EACR,SAAU,EACV,QAAS,KAAKA,EAAO,SAAS,GAC9B,OAAQA,EAAO,SACf,aAAc,OACd,OAAQ,EAER,WAAY,SACZ,gBAAiB,CACf,SAAU,MACZ,EACA,iBAAkB,CAChB,OAAQ,EACR,WAAY,QACZ,YAAaA,EAAO,SACpB,aAAc,gBACd,KAAM,CACJ,SAAU,OACV,aAAc,WACd,SAAU,SACV,CAACC,EAAI,KAAK,EAAG,CACX,SAAU,MACZ,CACF,CACF,EACA,iBAAkB,CAChB,WAAY,QACZ,YAAaD,EAAO,SACpB,aAAc,gBACd,WAAYA,EAAO,mBACnB,SAAUA,EAAO,UACjB,WAAYA,EAAO,iBACnB,OAAQ,EACR,KAAM,CACJ,SAAU,OACV,aAAc,WACd,SAAU,SACV,CAACC,EAAI,KAAK,EAAG,CACX,SAAU,MACZ,CACF,EACA,QAAS,CACP,CAACA,EAAI,MAAM,EAAG,CACZ,IAAKD,EAAO,UACd,CACF,CACF,CACF,CAAC,EACD,sBAAuBD,EAAI,CACzB,OAAQ,aAAaC,EAAO,OAAO,GACnC,aAAc,MACd,MAAOA,EAAO,QACd,QAAS,EACT,QAAS,OACT,eAAgB,SAChB,SAAU,OACV,MAAOA,EAAO,SACd,OAAQA,EAAO,QACjB,CAAC,EACD,yBAA0BD,EAAI,CAC5B,MAAOC,EAAO,SACd,OAAQyB,EAAAC,EAAA,GACHqE,IADG,CAEN,KAAM/F,EAAO,QACf,EACF,CAAC,EACD,4BAA6BD,EAAI,CAC/B,MAAOC,EAAO,UACd,IAAKyB,EAAAC,EAAA,GACAqE,IADA,CAEH,KAAM/F,EAAO,SACf,EACF,CAAC,CACH,GCnGA,OAAOF,MAAW,QAGlB,OAAS,wBAAAmG,GAAsB,mBAAAC,OAAuB,wBAI/C,SAASC,GAAiB,CAAE,QAAAC,CAAQ,EAA0B,CACnE,OACEtG,EAAA,cAAAA,EAAA,cACEA,EAAA,cAAC2D,GAAA,CAAW,IAAI,cAAc,KAAK,OAAO,EACzC2C,EACCtG,EAAA,cAACmG,GAAA,CAAqB,IAAI,YAAY,KAAK,OAAO,EAElDnG,EAAA,cAACoG,GAAA,CAAgB,IAAI,YAAY,KAAK,OAAO,CAEjD,CAEJ,CFdA,OACE,QAAArG,OAIK,uBAcP,SAASwG,GACP7F,EACAC,EACA,CACA,IAQIC,EAAAF,EAPF,UAAAG,EACA,SAAA2F,EACA,UAAAjF,EACA,WAAAkF,EACA,QAAAH,EACA,OAAAhF,EAAS,4BAjCb,EAmCMV,EADCY,EAAAC,EACDb,EADC,CANH,WACA,WACA,YACA,aACA,UACA,WAGIc,EAASwE,GAA4B,EACrCQ,EAAU5E,GAAGJ,EAAO,gBAAiBH,EAAW,CACpD,CAACG,EAAO,qBAAqB,EAAG8E,EAChC,CAAC9E,EAAO,wBAAwB,EAAG+E,IAAe,SAClD,CAAC/E,EAAO,2BAA2B,EAAG+E,IAAe,YACvD,CAAC,EAED,OACEzG,EAAA,cAAC,KAAA2B,EAAAC,EAAA,GAAOJ,GAAP,CAAmB,IAAKb,EAAK,UAAW+F,EAAS,eAAcpF,IAC9DtB,EAAA,cAACD,GAAA,CAAK,WAAU,GAAC,eAAe,SAAS,WAAW,UACjD0G,GAAczG,EAAA,cAACqG,GAAA,CAAiB,QAASC,EAAS,EACnDtG,EAAA,cAAC,YAAMa,CAAS,CAClB,CACF,CAEJ,CAEO,IAAM8F,GAAqB3G,EAAM,WAAWuG,EAAmB,EGrDtE,OAAOvG,MAAW,QAClB,OAAS,MAAA8B,OAAU,UAOnB,OAAS,UAAA8E,OAAc,yBCRvB,OAAS,OAAA3G,OAAW,UAEpB,OAAOC,MAAY,yBAEZ,IAAM2G,GAAsB,KAAO,CACxC,WAAY5G,GACV,CAEE,SAAUC,EAAO,UACjB,QAAS,KAAKA,EAAO,UAAU,GAC/B,MAAO,cACP,UAAW,OACX,OAAQ,OACR,MAAOA,EAAO,QACd,IAAK,CACH,KAAMA,EAAO,OACf,CACF,EACAE,EAAqB,CACvB,CACF,GDCA,SAAS0G,GACPpG,EACAC,EACA,CACA,IAKIC,EAAAF,EAJF,UAAAG,EACA,UAAAU,EACA,OAAAD,EAAS,2BA5Bb,EA8BMV,EADCY,EAAAC,EACDb,EADC,CAHH,WACA,YACA,WAIIc,EAASmF,GAAoB,EAEnC,OACE7G,EAAA,cAACoC,EAAA,CACC,OAAO,yBACP,QACEpC,EAAA,cAAC4G,GAAAjF,EAAAC,EAAA,CACC,aAAW,aACPJ,GAFL,CAGC,GAAG,SACH,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,WAAYH,CAAS,EAC1C,OAAQD,EACR,QAAQ,cACR,KAAK,QACL,UAAWtB,EAAA,cAAC6D,GAAA,CAAS,KAAK,SAAS,IACpC,MAED,GAGDhD,CACH,CAEJ,CAEO,IAAMkG,GAAa/G,EAAM,WAAW8G,EAAW,EE1DtD,OAAO9G,OAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,OAAW,UACpB,OAAOC,MAAY,yBAEZ,IAAM8G,GAAuB,KAAO,CACzC,YAAa/G,GAAI,CACf,QAAS,OACT,eAAgB,SAChB,WAAY,SACZ,WAAY,OACZ,OAAQ,aAAaC,EAAO,SAAS,GACrC,OAAQ,EACR,QAAS,OACT,SAAUA,EAAO,UACjB,WAAYA,EAAO,YACnB,WAAYA,EAAO,iBACnB,UAAW,SACX,QAAS,KAAKA,EAAO,SAAS,GAC9B,eAAgB,OAChB,MAAO,GAAGA,EAAO,SAAS,aAC1B,aAAc,SAChB,CAAC,CACH,GDXA,IAAM+G,GAA2B,MAWjC,SAASC,GACPxG,EACAC,EACA,CACA,IAMIC,EAAAF,EALF,IAAIwD,EAAO+C,GACX,SAAApG,EACA,UAAAU,EACA,OAAAD,EAAS,oBA7Bb,EA+BMV,EADCY,EAAAC,EACDb,EADC,CAJH,KACA,WACA,YACA,WAGIc,EAASsF,GAAqB,EAEpC,OACEhH,GAAA,cAACkE,EAAAvC,EAAAC,EAAA,GACKJ,GADL,CAEC,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,YAAaH,CAAS,EAC3C,eAAcD,IAEbT,CACH,CAEJ,CAEO,IAAMsG,GAGTnH,GAAM,WAAWkH,EAAY,EEjDjC,OAAOlH,OAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,OAAW,UACpB,OAAOC,MAAY,yBAEnB,OAAS,aAAA6B,OAAiB,wBACnB,IAAMqF,GAA4B,KAAO,CAC9C,cAAenH,GACb,CAEE,OAAQ,EACR,WAAY,OACZ,OAAQ,YACR,YAAa,cACb,OAAQ,UACR,QAAS,OACT,IAAKC,EAAO,WACZ,WAAY,SACZ,WAAYA,EAAO,kBACnB,MAAOA,EAAO,QACd,QAAS,KAAKA,EAAO,UAAU,GAC/B,UAAW,OACX,SAAUA,EAAO,UACjB,WAAYA,EAAO,iBACnB,QAAS,OACT,aAAcA,EAAO,mBAErB,UAAW,CACT,gBAAiB6B,GAAU7B,EAAO,QAAS,GAAI,CACjD,EACA,IAAK,CACH,KAAM,cACR,CACF,EACAE,EAAqB,CACvB,CACF,GDxBA,IAAM6G,GAA2B,SAUjC,SAASI,GAEP3G,EAAiCC,EAAqB,CACtD,IAMIC,EAAAF,EALF,IAAIwD,EAAO+C,GACX,SAAApG,EACA,UAAAU,EACA,OAAAD,EAAS,0BA3Bb,EA6BMV,EADCY,EAAAC,EACDb,EADC,CAJH,KACA,WACA,YACA,WAGIc,EAAS0F,GAA0B,EAEzC,OACEpH,GAAA,cAACkE,EAAAvC,EAAAC,EAAA,GACKJ,GADL,CAEC,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,cAAeH,CAAS,EAC7C,eAAcD,IAEbT,CACH,CAEJ,CAEO,IAAMyG,GAGTtH,GAAM,WAAWqH,EAAiB,ElCd/B,IAAMxF,EAASA,GACtBA,EAAO,KAAO2C,GACd3C,EAAO,aAAe6C,GACtB7C,EAAO,SAAWsD,GAClBtD,EAAO,iBAAmBwD,GAC1BxD,EAAO,YAAcjC,GACrBiC,EAAO,iBAAmBhC,GAC1BgC,EAAO,SAAW6D,GAClB7D,EAAO,iBAAmB+D,GAC1B/D,EAAO,aAAe8E,GACtB9E,EAAO,OAASmE,GAChBnE,EAAO,KAAOkF,GACdlF,EAAO,QAAUgB,GACjBhB,EAAO,gBAAkBmB,GACzBnB,EAAO,MAAQsF,GACftF,EAAO,WAAayF","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 { NavbarSearch } from './NavbarSearch/NavbarSearch';\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarHelp } from './NavbarHelp/NavbarHelp';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\nimport { NavbarTopbarItem } from './NavbarTopbarItem/NavbarTopbarItem';\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 Search: typeof NavbarSearch;\n Help: typeof NavbarHelp;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n TopbarItem: typeof NavbarTopbarItem;\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.Search = NavbarSearch;\nNavbar.Help = NavbarHelp;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\nNavbar.TopbarItem = NavbarTopbarItem;\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';\ntype NavbarOwnProps = CommonProps & {\n children?: React.ReactNode;\n account?: React.ReactNode;\n search?: React.ReactNode;\n switcher?: React.ReactNode;\n help?: React.ReactNode;\n badge?: React.ReactNode;\n /**\n * Items that will be rendered on the bottom-right of the navbar.\n * Useful for separating other navigation items from main ones, (e.g. separating \"Settings\" from all other navigation items).\n */\n bottomRightItems?: React.ReactNode;\n /**\n * Items that will be rendered on the top-right of the navbar.\n * Useful for providing additional context or actions to the user (e.g. a Feedback form link).\n */\n topRightItems?: React.ReactNode;\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n /**\n * Describes the size variation of the navbar\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 children,\n account,\n search,\n switcher,\n help,\n badge,\n bottomRightItems,\n topRightItems,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n className,\n variant = 'wide',\n ...otherProps\n } = props;\n const styles = getNavbarStyles(contentMaxWidth, variant);\n\n return (\n <Box {...otherProps} ref={ref} testId={testId} className={className}>\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex>{switcher}</Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {topRightItems}\n {badge}\n {search}\n {help}\n {account}\n </Flex>\n </Flex>\n </Flex>\n\n <Flex className={styles.containerBottom}>\n <Flex\n className={styles.containerBottomContent}\n justifyContent=\"space-between\"\n >\n <Flex as=\"nav\" aria-label=\"Main Navigation\">\n {children}\n </Flex>\n {bottomRightItems && <Flex>{bottomRightItems}</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});\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 { cx } from 'emotion';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar: 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 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 >\n <img\n src={avatar}\n alt={`Avatar for user ${username}`}\n className={styles.avatar}\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 { ArrowDownIcon } 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 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 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 >\n {icon && <NavbarItemIcon icon={icon} variant=\"secondary\" />}\n <span>{title}</span>\n {isMenuTrigger && <ArrowDownIcon />}\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 '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: `calc(100% - ${tokens.spacingM})`,\n height: '2px',\n bottom: `-${tokens.spacing2Xs}`,\n left: 0,\n right: 0,\n margin: 'auto',\n backgroundColor: tokens.blue600,\n zIndex: 0,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingS}`,\n alignItems: 'center',\n background: 'none',\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: 0,\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.gray700,\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(`inset ${tokens.glowPrimary}`),\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, 'variant'>;\n\nexport const NavbarItemIcon = (props: NavbarItemIconProps) => {\n const { icon, variant } = props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(icon.props.className, styles.navbarItemIcon),\n size: icon.props.size ?? 'tiny',\n variant: icon.props.variant ?? variant,\n });\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n fill: tokens.gray700,\n '&:first-child': {\n marginRight: tokens.spacing2Xs,\n },\n '&:last-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 { generateIcon } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIcon({\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 { generateIcon } from '@contentful/f36-icon';\n\nexport const ArrowDownIcon = /*#__PURE__*/ generateIcon({\n name: 'ArrowDownIcon',\n viewBox: '0 0 12 20',\n path: (\n <path\n d=\"M3.03076 8C2.20109 8 1.73228 8.95209 2.23814 9.60971L5.20727 13.4696C5.60757 13.99 6.39223 13.99 6.79252 13.4696L9.76166 9.60971C10.2675 8.95209 9.79871 8 8.96904 8L3.03076 8Z\"\n fill=\"#9FA8B2\"\n />\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const HelpIcon = /*#__PURE__*/ generateIcon({\n name: 'HelpIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#HelpIcon_svg__a)\">\n <path\n d=\"M12 2.25A9.75 9.75 0 1 0 21.75 12 9.769 9.769 0 0 0 12 2.25ZM12 18a1.125 1.125 0 1 1 0-2.25A1.125 1.125 0 0 1 12 18Zm.75-4.584v.084a.75.75 0 1 1-1.5 0v-.75A.75.75 0 0 1 12 12a1.875 1.875 0 1 0-1.875-1.875.75.75 0 1 1-1.5 0 3.375 3.375 0 1 1 4.125 3.29Z\"\n fill=\"currentFill\"\n />\n </g>\n <defs>\n <clipPath id=\"HelpIcon_svg__a\">\n <path fill=\"currentFill\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </>\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const SearchIcon = /*#__PURE__*/ generateIcon({\n name: 'SearchIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#SearchIcon_svg__a)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 11.125a5.125 5.125 0 1 1 10.25 0 5.125 5.125 0 0 1-10.25 0ZM11.125 4a7.125 7.125 0 1 0 4.282 12.82l2.886 2.887a1 1 0 0 0 1.414-1.414l-2.886-2.887A7.125 7.125 0 0 0 11.125 4Z\"\n fill=\"currentFill\"\n />\n </g>\n <defs>\n <clipPath id=\"SearchIcon_svg__a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </>\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIcon({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#a)\">\n <path\n d=\"M8.71 3.007c.844.843 1.17 2.078.844 3.228a6.683 6.683 0 0 1 3.444-.953h.025a6.701 6.701 0 0 1 4.743 1.988 2.637 2.637 0 0 0 3.73.093 2.637 2.637 0 0 0 .094-3.731c-.025-.027-.052-.052-.08-.08A11.95 11.95 0 0 0 13.036.006h-.046a11.92 11.92 0 0 0-6.691 2.038h.074c.876 0 1.715.346 2.335.966l.002-.002Z\"\n fill=\"#1773EB\"\n />\n <path\n d=\"M19.593 16.006c-.696 0-1.365.276-1.86.765a6.706 6.706 0 0 1-4.732 1.953h-.025a6.617 6.617 0 0 1-3.446-.97c.079.287.117.584.117.882a3.3 3.3 0 0 1-3.299 3.3h-.087a11.929 11.929 0 0 0 6.696 2.07h.046a11.934 11.934 0 0 0 8.45-3.486 2.64 2.64 0 0 0-1.857-4.514h-.003Z\"\n fill=\"#E44F20\"\n />\n <path\n d=\"M4.013 16.301a3.283 3.283 0 0 1 2.335-.967c.303 0 .604.041.893.123a6.696 6.696 0 0 1 .014-6.928 3.302 3.302 0 0 1-4.176-3.187v-.09a12 12 0 0 0-.033 13.452v-.068c0-.877.344-1.715.967-2.335Z\"\n fill=\"#FFDA00\"\n />\n <path\n d=\"M6.378 2.627c-.751 0-1.275.311-1.912.948-.606.606-.797 1.136-.8 1.767a2.712 2.712 0 1 0 5.427-.003A2.713 2.713 0 0 0 6.38 2.627h-.003Z\"\n fill=\"#1773EB\"\n />\n <path\n d=\"M3.628 18.639c0 .748.311 1.275.948 1.912.606.606 1.136.8 1.767.8a2.703 2.703 0 1 0-.017-5.408 2.703 2.703 0 0 0-2.695 2.704v-.008h-.003Z\"\n fill=\"#E44F20\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\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 { ExternalLinkIcon } 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} variant=\"secondary\" />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = (\n <NavbarItemIcon icon={<ExternalLinkIcon />} variant=\"muted\" />\n);\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 { MenuIcon } from '@contentful/f36-icons';\nimport { cx } from 'emotion';\nimport { ContentfulLogoIcon } from '../icons';\n\ntype NavbarSwitcherOwnProps = CommonProps & {\n children?: React.ReactNode;\n /**\n * Will be displayed instead of the default Contentful logo\n */\n logo?: 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 logo,\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 {logo || <ContentfulLogoIcon />}\n <MenuIcon size=\"small\" className={styles.switcherMenuIcon} />\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\n '&:after': {\n content: '\"\"',\n border: '1px solid #353A41',\n boxSizing: 'border-box',\n height: '16px',\n right: '-1px',\n position: 'absolute',\n width: 0,\n },\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 { cx } from 'emotion';\nimport React from 'react';\nimport { SearchIcon } from '../icons';\nimport {\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\nimport { IconButton } from '@contentful/f36-button';\nimport { getNavbarSearchStyles } from './NavbarSearch.styles';\ntype NavbarSearchOwnProps = CommonProps;\n\nexport type NavbarSearchProps = PropsWithHTMLElement<\n NavbarSearchOwnProps,\n 'button'\n>;\n\nfunction _NavbarSearch(\n props: ExpandProps<NavbarSearchProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const { className, testId = 'cf-ui-navbar-search', ...otherProps } = props;\n const styles = getNavbarSearchStyles();\n return (\n <IconButton\n aria-label=\"Quick Search\"\n {...otherProps}\n variant=\"transparent\"\n ref={ref}\n size=\"small\"\n className={cx(styles.navbarSearch, className)}\n testId={testId}\n icon={<SearchIcon size=\"medium\" />}\n />\n );\n}\n\nexport const NavbarSearch = React.forwardRef(_NavbarSearch);\n","import { css } from 'emotion';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarSearchStyles = () => ({\n navbarSearch: css(\n {\n // default button reset styles\n minWidth: '24px',\n width: '24px',\n minHeight: '24px',\n height: '24px',\n svg: {\n fill: tokens.gray700,\n },\n },\n getGlowOnFocusStyles(),\n ),\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 { HelpIcon } from '../icons';\nimport {\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { getNavbarHelpStyles } from './NavbarHelp.styles';\n\ntype NavbarHelpOwnProps = CommonProps & {\n children: React.ReactNode;\n};\n\nexport type NavbarHelpProps = PropsWithHTMLElement<\n NavbarHelpOwnProps,\n 'button'\n>;\n\nfunction _NavbarHelp(\n props: ExpandProps<NavbarHelpProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-help-trigger',\n ...otherProps\n } = props;\n\n const styles = getNavbarHelpStyles();\n\n return (\n <NavbarMenu\n testId=\"cf-ui-navbar-help-menu\"\n trigger={\n <Button\n aria-label=\"Help Menu\"\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarHelp, className)}\n testId={testId}\n variant=\"transparent\"\n size=\"small\"\n startIcon={<HelpIcon size=\"medium\" />}\n >\n Help\n </Button>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nexport const NavbarHelp = React.forwardRef(_NavbarHelp);\n","import { css } from 'emotion';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarHelpStyles = () => ({\n navbarHelp: css(\n {\n // default button reset styles\n fontSize: tokens.fontSizeS,\n padding: `0 ${tokens.spacing2Xs}`,\n width: 'max-content',\n minHeight: '24px',\n height: '24px',\n color: tokens.gray700,\n svg: {\n fill: tokens.gray700,\n },\n },\n getGlowOnFocusStyles(),\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","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarTopbarItemStyles } from './NavbarTopbarItem.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'button';\n\ntype NavbarTopbarItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n};\n\nexport type NavbarTopbarItemProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarTopbarItemOwnProps, E>;\n\nfunction _NavbarTopbarItem<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n>(props: NavbarTopbarItemProps<E>, ref: React.Ref<any>) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-topbar-item',\n ...otherProps\n } = props;\n const styles = getNavbarTopbarItemStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarTopItem, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nexport const NavbarTopbarItem: PolymorphicComponent<\n ExpandProps<NavbarTopbarItemOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarTopbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\nexport const getNavbarTopbarItemStyles = () => ({\n navbarTopItem: css(\n {\n // default button reset styles\n margin: 0,\n background: 'none',\n border: '1px solid',\n borderColor: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n gap: tokens.spacing2Xs,\n alignItems: 'center',\n lineHeight: tokens.lineHeightDefault,\n color: tokens.gray700,\n padding: `0 ${tokens.spacing2Xs}`,\n minHeight: '24px',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n outline: 'none',\n borderRadius: tokens.borderRadiusMedium,\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n svg: {\n fill: 'currentColor',\n },\n },\n getGlowOnFocusStyles(),\n ),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/CompoundNavbar.ts","../../src/Navbar.tsx","../../src/Navbar.styles.ts","../../src/utils.styles.ts","../../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/icons/CircleIcon.tsx","../../src/icons/ArrowDownIcon.tsx","../../src/icons/HelpIcon.tsx","../../src/icons/SearchIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../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/NavbarSearch/NavbarSearch.tsx","../../src/NavbarSearch/NavbarSearch.styles.ts","../../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../../src/NavbarHelp/NavbarHelp.tsx","../../src/NavbarHelp/NavbarHelp.styles.ts","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts","../../src/NavbarTopbarItem/NavbarTopbarItem.tsx","../../src/NavbarTopbarItem/NavbarTopbarItem.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","_Navbar","props","ref","_a","children","account","search","switcher","help","badge","bottomRightItems","topRightItems","contentMaxWidth","testId","className","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","_b","icon","generateIcon","CircleIcon","ArrowDownIcon","HelpIcon","SearchIcon","ContentfulLogoIcon","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","title","isActive","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ExternalLinkIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","MenuIcon","_NavbarSwitcher","logo","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","IconButton","getNavbarSearchStyles","_NavbarSearch","NavbarSearch","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","Button","getNavbarHelpStyles","_NavbarHelp","NavbarHelp","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge","getNavbarTopbarItemStyles","_NavbarTopbarItem","NavbarTopbarItem"],"mappings":"8lBAAA,OAAS,eAAAA,OAAmB,uBAC5B,OAAS,oBAAAC,OAAwB,uBCDjC,OACE,OAAAC,GAGA,QAAAC,MACK,uBACP,OAAOC,MAAW,QCNlB,OAAS,OAAAC,MAAW,UACpB,OAAOC,MAAY,yBCDnB,OAAOA,OAAY,yBAIZ,IAAMC,EAAoB,CAC/B,OAAQ,4BACR,MAAO,4BACP,OAAQ,4BACV,EAEaC,EAAuB,CAACC,EAAiBH,GAAO,eAAiB,CAC5E,UAAW,CACT,UAAWG,CACb,EACA,8BAA+B,CAC7B,UAAW,OACb,EACA,kBAAmB,CACjB,UAAWA,CACb,CACF,GDhBO,IAAMC,GAAkB,CAACC,EAAkBC,KAAqB,CACrE,aAAcP,EAAI,CAChB,eAAgB,SAChB,gBAAiBC,EAAO,OAC1B,CAAC,EACD,gBAAiBD,EAAI,CACnB,eAAgB,SAChB,gBAAiBC,EAAO,OAC1B,CAAC,EACD,oBAAqBD,EAAI,CACvB,MAAO,OACP,SAAUO,IAAY,OAAS,SAAWD,EAC1C,QAASL,EAAO,UAChB,UAAWA,EAAO,SAClB,CAACC,EAAI,MAAM,EAAG,CACZ,QAAS,GAAGD,EAAO,SAAS,OAC9B,CACF,CAAC,EACD,uBAAwBD,EAAI,CAC1B,MAAO,OACP,SAAUO,IAAY,OAAS,SAAWD,EAC1C,QAAS,EACT,WAAYL,EAAO,WACnB,UAAW,SACX,SAAU,OACV,CAACC,EAAI,MAAM,EAAG,CACZ,QAAS,GAAGD,EAAO,UAAU,IAAIA,EAAO,SAAS,EACnD,CACF,CAAC,CACH,GDQA,SAASO,GAAQC,EAAiCC,EAA6B,CAC7E,IAcIC,GAAAF,EAbF,UAAAG,EACA,QAAAC,EACA,OAAAC,EACA,SAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,gBAAAC,EAAkB,OAClB,OAAAC,EAAS,eACT,UAAAC,EACA,QAAAf,EAAU,MAtDd,EAwDMI,GADCY,EAAAC,EACDb,GADC,CAZH,WACA,UACA,SACA,WACA,OACA,QACA,mBACA,gBACA,kBACA,SACA,YACA,YAGIc,EAASpB,GAAgBe,EAAiBb,CAAO,EAEvD,OACER,EAAA,cAACF,GAAA6B,EAAAC,EAAA,GAAQJ,GAAR,CAAoB,IAAKb,EAAK,OAAQW,EAAQ,UAAWC,IACxDvB,EAAA,cAACD,EAAA,CAAK,UAAW2B,EAAO,cACtB1B,EAAA,cAACD,EAAA,CACC,UAAW2B,EAAO,oBAClB,eAAe,iBAEf1B,EAAA,cAACD,EAAA,KAAMiB,CAAS,EAChBhB,EAAA,cAACD,EAAA,CAAK,WAAW,SAAS,IAAI,aAC3BqB,EACAF,EACAH,EACAE,EACAH,CACH,CACF,CACF,EAEAd,EAAA,cAACD,EAAA,CAAK,UAAW2B,EAAO,iBACtB1B,EAAA,cAACD,EAAA,CACC,UAAW2B,EAAO,uBAClB,eAAe,iBAEf1B,EAAA,cAACD,EAAA,CAAK,GAAG,MAAM,aAAW,mBACvBc,CACH,EACCM,GAAoBnB,EAAA,cAACD,EAAA,KAAMoB,CAAiB,CAC/C,CACF,CACF,CAEJ,CAEO,IAAMU,GAAS7B,EAAM,WAAWS,EAAO,EG5F9C,OAAOT,MAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,MAAW,UACpB,OAAOC,MAAY,yBAGnB,OAAS,aAAA6B,OAAiB,wBAE1B,IAAMC,GAGF,CACF,QAAS9B,EAAO,aAChB,SAAUA,EAAO,cACjB,KAAMA,EAAO,OACf,EAEa+B,GAAyB,KAAO,CAC3C,cAAehC,EACb,CAEE,OAAQ,EACR,QAAS,EACT,OAAQ,EACR,OAAQ,UACR,WAAY,OACZ,SAAU,WACV,QAAS,OACT,SAAU,UACV,aAAc,MACd,WAAYA,EAAI,CACd,QAAS,KACT,QAAS,QACT,SAAU,WACV,OAAQ,OACR,MAAO,OACP,gBAAiB,cACjB,aAAc,KAChB,CAAC,EACD,iBAAkBA,EAAI,CACpB,gBAAiB8B,GAAU7B,EAAO,QAAS,GAAI,CACjD,CAAC,CACH,EACAE,EAAqB,CACvB,EACA,OAAQH,EAAI,CACV,aAAc,MACd,QAAS,QACT,OAAQ,OACR,MAAO,MACT,CAAC,EACD,iBAAmBO,GACjBP,EAAI,CACF,SAAU,WACV,IAAK,EACL,MAAO,EACP,OAAQC,EAAO,SACf,MAAOA,EAAO,SACd,aAAc,MACd,OAAQ,aAAaA,EAAO,OAAO,GACnC,gBAAiB8B,GAA2BxB,CAAO,EACnD,UAAW,sBACb,CAAC,CACL,GC7DA,OAAOR,MAAW,QAClB,OAAS,QAAAkC,MAAgD,uBCDzD,OAAS,OAAAjC,OAAW,UAEb,IAAMkC,GAAsB,KAAO,CACxC,SAAUlC,GAAI,CACZ,SAAU,OACZ,CAAC,CACH,GDIO,IAAMmC,EAAc1B,GAA2B,CACpD,GAAM,CACJ,QAAA2B,EACA,SAAAxB,EACA,OAAAS,EAAS,yBACT,OAAAgB,EACA,QAAAC,CACF,EAAI7B,EACEgB,EAASS,GAAoB,EAEnC,OACEnC,EAAA,cAACkC,EAAA,CAAK,OAAQI,EAAQ,QAASC,GAC7BvC,EAAA,cAACkC,EAAK,QAAL,KAAcG,CAAQ,EACvBrC,EAAA,cAACkC,EAAK,KAAL,CAAU,UAAWR,EAAO,SAAU,OAAQJ,GAC5CT,CACH,CACF,CAEJ,EFnBA,OAAS,UAAA2B,OAAc,yBACvB,OAAS,QAAAzC,OAAY,uBAmBrB,SAAS0C,GACP/B,EACAC,EACA,CACA,IAUIC,EAAAF,EATF,UAAAG,EACA,UAAAU,EACA,OAAAD,EAAS,+BACT,OAAAoB,EACA,SAAAC,EACA,SAAAC,EACA,gBAAAC,EACA,oBAAAC,EAAsB,SAzC1B,EA2CMlC,EADCY,EAAAC,EACDb,EADC,CARH,WACA,YACA,SACA,SACA,WACA,WACA,kBACA,wBAGIc,EAASO,GAAuB,EAEtC,OACEjC,EAAA,cAACoC,EAAA,CACC,QACEpC,EAAA,cAACD,GAAA4B,EAAAC,EAAA,CACC,GAAG,UACCJ,GAFL,CAGC,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,cAAeH,CAAS,EAC7C,OAAQD,EACR,WAAW,WAEXtB,EAAA,cAACwC,GAAA,CACC,IAAKE,EACL,SAAUC,EACV,KAAK,QACL,QAAQ,OACV,EACCE,EACC7C,EAAA,cAAC,QAAK,UAAW0B,EAAO,iBAAiBoB,CAAmB,EAAG,EAC7D,IACN,GAGDjC,CACH,CAEJ,CAEO,IAAMkC,GAAgB/C,EAAM,WAAWyC,EAAc,EI1E5D,OAAOzC,OAAW,QAClB,OAAS,qBAAAgD,GAAmB,iBAAAC,OAAqB,2BACjD,OAAO/C,OAAY,yBAEZ,SAASgD,GAAsB,CAAE,UAAAC,CAAU,EAA2B,CAC3E,OACEnD,GAAA,cAACgD,GAAA,CACC,SAAU,GACV,UAAW,GACX,UAAWG,EACX,gBAAiBjD,GAAO,QACxB,gBAAiBA,GAAO,SAExBF,GAAA,cAACiD,GAAA,CAAc,MAAO,GAAI,OAAQ,GAAI,QAAS,GAAI,QAAS,GAAI,CAClE,CAEJ,CChBA,OAAOjD,MAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,MAAW,UACpB,OAAOC,MAAY,yBACnB,OAAS,aAAA6B,OAAiB,wBAGnB,IAAMqB,GAA4B,IACvCnD,EAAI,CACF,WAAY,CACV,QAAS,KACT,SAAU,WACV,MAAO,eAAeC,EAAO,QAAQ,IACrC,OAAQ,MACR,OAAQ,IAAIA,EAAO,UAAU,GAC7B,KAAM,EACN,MAAO,EACP,OAAQ,OACR,gBAAiBA,EAAO,QACxB,OAAQ,CACV,CACF,CAAC,EAEGmD,GAAmB,CACvB,QAAS,OACT,eAAgB,SAChB,QAAS,GAAGnD,EAAO,UAAU,IAAIA,EAAO,QAAQ,GAChD,WAAY,SACZ,WAAY,MACd,EAEaoD,GAAsB,KAAO,CACxC,WAAYrD,EACVoD,GACA,CACE,WAAY,SACZ,WAAY,OACZ,OAAQ,EACR,OAAQ,EACR,QAAS,OACT,SAAUnD,EAAO,UACjB,WAAYA,EAAO,YACnB,WAAYA,EAAO,iBACnB,SAAU,WACV,UAAW,OACX,WAAY,SACZ,OAAQ,UACR,QAAS,OACT,eAAgB,OAChB,MAAOA,EAAO,QACd,UAAW,aACX,WAAY,SAASA,EAAO,uBAAuB,IAAIA,EAAO,2BAA2B,GACzF,aAAcA,EAAO,mBAErB,UAAW,CACT,gBAAiB6B,GAAU7B,EAAO,QAAS,GAAI,CACjD,EAEA,kBAAmB,CACjB,QAAS,EACT,MAAO,GACT,EAEA,mBAAoB,CAClB,gBAAiB,0BACnB,EACA,aAAc,CACZ,OAAQ,MACV,EAEA,QAAS,CACP,WAAY,QAAQA,EAAO,uBAAuB,IAAIA,EAAO,2BAA2B,EAC1F,EACA,oBAAqB,CACnB,OAAQA,EAAO,aACjB,CACF,EACAE,EAAqB,SAASF,EAAO,WAAW,EAAE,CACpD,EACA,sBAAuBD,EAAI,CACzB,aAAcC,EAAO,SACvB,CAAC,EACD,SAAUkD,GAA0B,CACtC,GAEaG,GAA8B,KAAO,CAChD,aAActD,EAAIoD,EAAgB,CACpC,GCrFA,OAAOrD,OAAW,QCAlB,OAAS,OAAAC,OAAW,UACpB,OAAOC,MAAY,yBAEZ,IAAMsD,GAA0B,KAAO,CAC5C,eAAgBvD,GAAI,CAClB,KAAMC,EAAO,QACb,gBAAiB,CACf,YAAaA,EAAO,UACtB,EACA,eAAgB,CACd,WAAYA,EAAO,UACrB,EACA,OAAQ,CACN,aAAcA,EAAO,kBACrB,SAAUA,EAAO,SACjB,UAAWA,EAAO,QACpB,CACF,CAAC,CACH,GDfA,OAAS,MAAA4B,OAAU,UAMZ,IAAM2B,EAAkB/C,GAA+B,CAT9D,IAAAE,EAAA8C,EAUE,GAAM,CAAE,KAAAC,EAAM,QAAAnD,CAAQ,EAAIE,EACpBgB,EAAS8B,GAAwB,EAEvC,OAAOxD,GAAM,aAAa2D,EAAM,CAC9B,UAAW7B,GAAG6B,EAAK,MAAM,UAAWjC,EAAO,cAAc,EACzD,MAAMd,EAAA+C,EAAK,MAAM,OAAX,KAAA/C,EAAmB,OACzB,SAAS8C,EAAAC,EAAK,MAAM,UAAX,KAAAD,EAAsBlD,CACjC,CAAC,CACH,EElBA,OAAOR,OAAW,QAClB,OAAS,gBAAA4D,OAAoB,uBAEtB,IAAMC,GAA2BD,GAAa,CACnD,KAAM,aACN,QAAS,YACT,KACE5D,GAAA,cAAC,QACC,EAAE,+LACF,KAAK,cACP,CAEJ,CAAC,ECZD,OAAOA,OAAW,QAClB,OAAS,gBAAA4D,OAAoB,uBAEtB,IAAME,GAA8BF,GAAa,CACtD,KAAM,gBACN,QAAS,YACT,KACE5D,GAAA,cAAC,QACC,EAAE,kLACF,KAAK,UACP,CAEJ,CAAC,ECZD,OAAOA,MAAW,QAClB,OAAS,gBAAA4D,OAAoB,uBAEtB,IAAMG,GAAyBH,GAAa,CACjD,KAAM,WACN,QAAS,YACT,KACE5D,EAAA,cAAAA,EAAA,cACEA,EAAA,cAAC,KAAE,SAAS,yBACVA,EAAA,cAAC,QACC,EAAE,+PACF,KAAK,cACP,CACF,EACAA,EAAA,cAAC,YACCA,EAAA,cAAC,YAAS,GAAG,mBACXA,EAAA,cAAC,QAAK,KAAK,cAAc,EAAE,gBAAgB,CAC7C,CACF,CACF,CAEJ,CAAC,ECrBD,OAAOA,MAAW,QAClB,OAAS,gBAAA4D,OAAoB,uBAEtB,IAAMI,GAA2BJ,GAAa,CACnD,KAAM,aACN,QAAS,YACT,KACE5D,EAAA,cAAAA,EAAA,cACEA,EAAA,cAAC,KAAE,SAAS,2BACVA,EAAA,cAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,mLACF,KAAK,cACP,CACF,EACAA,EAAA,cAAC,YACCA,EAAA,cAAC,YAAS,GAAG,qBACXA,EAAA,cAAC,QAAK,KAAK,OAAO,EAAE,gBAAgB,CACtC,CACF,CACF,CAEJ,CAAC,ECvBD,OAAOA,MAAW,QAClB,OAAS,gBAAA4D,OAAoB,uBAEtB,IAAMK,GAAmCL,GAAa,CAC3D,KAAM,qBACN,QAAS,YACT,KACE5D,EAAA,cAAAA,EAAA,cACEA,EAAA,cAAC,KAAE,SAAS,WACVA,EAAA,cAAC,QACC,EAAE,6SACF,KAAK,UACP,EACAA,EAAA,cAAC,QACC,EAAE,yQACF,KAAK,UACP,EACAA,EAAA,cAAC,QACC,EAAE,+LACF,KAAK,UACP,EACAA,EAAA,cAAC,QACC,EAAE,yIACF,KAAK,UACP,EACAA,EAAA,cAAC,QACC,EAAE,2IACF,KAAK,UACP,CACF,EACAA,EAAA,cAAC,YACCA,EAAA,cAAC,YAAS,GAAG,KACXA,EAAA,cAAC,QAAK,KAAK,OAAO,EAAE,gBAAgB,CACtC,CACF,CACF,CAEJ,CAAC,ERrBD,IAAMkE,GAA0B,SAwBhC,SAASC,GACPzD,EACAC,EACA,CACA,IAWIC,EAAAF,EAVF,IAAI0D,EAAOF,GACX,KAAAP,EACA,MAAAU,EACA,SAAAxD,EACA,UAAAU,EACA,SAAA+C,EACA,OAAAhD,EAAS,oBACT,OAAAgB,EACA,QAAAC,CArDJ,EAuDM3B,EADCY,EAAAC,EACDb,EADC,CATH,KACA,OACA,QACA,WACA,YACA,WACA,SACA,SACA,YAGIc,EAAS4B,GAAoB,EAC7BiB,EAAgBC,GAAoB9D,CAAK,EACzC+D,EACJzE,EAAA,cAACoE,EAAAzC,EAAAC,EAAA,GACKJ,GADL,CAEC,IAAKb,EACL,eAAcW,EACd,UAAWQ,GACTJ,EAAO,WACP6C,GAAiB7C,EAAO,sBACxB4C,GAAY5C,EAAO,SACnBH,CACF,IAECoC,GAAQ3D,EAAA,cAACyD,EAAA,CAAe,KAAME,EAAM,QAAQ,YAAY,EACzD3D,EAAA,cAAC,YAAMqE,CAAM,EACZE,GAAiBvE,EAAA,cAAC8D,GAAA,IAAc,CACnC,EAGF,OAAIS,EAEAvE,EAAA,cAACoC,EAAA,CACC,QAASqC,EACT,OAAQnD,EACR,OAAQgB,EACR,QAASC,GAER1B,CACH,EAIG4D,CACT,CAEA,IAAMD,GACJ9D,GAEA,EAAQA,EAAM,SAEHgE,GAGT1E,EAAM,WAAWmE,EAAW,ESpGhC,OAAOnE,OAAW,QAClB,OAAS,qBAAAgD,GAAmB,gBAAA2B,OAAoB,2BAChD,OAAOzE,MAAY,yBAGZ,IAAM0E,GAAqB,CAAC,CACjC,eAAAC,CACF,IAEM,CACJ,IAAMnD,EAAS6B,GAA4B,EAE3C,OACEvD,GAAA,cAACgD,GAAA,CACC,UAAWtB,EAAO,aAClB,SAAUmD,EACV,UAAW,GACX,gBAAiB3E,EAAO,QACxB,gBAAiBA,EAAO,SAExBF,GAAA,cAAC2E,GAAA,CACC,WAAY,EACZ,cAAe,EACf,UAAW,GACX,QAASzE,EAAO,kBAChB,QAASA,EAAO,kBAClB,CACF,CAEJ,EC7BA,OAAOF,MAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,OAAW,UACb,IAAM6E,GAA0B,KAAO,CAC5C,eAAgB7E,GAAI,CAClB,QAAS,OACT,eAAgB,aAChB,WAAY,QACd,CAAC,CACH,GDJA,OAAS,QAAAiC,OAAgC,uBAKzC,OAAS,oBAAA6C,OAAwB,wBAOjC,IAAMC,GAA+B,SAarC,SAASC,GACPvE,EACAC,EACA,CACA,IAMIC,EAAAF,EALF,IAAI0D,EAAOY,GACX,KAAArB,EACA,MAAAU,EACA,UAAA9C,CApCJ,EAsCMX,EADCY,EAAAC,EACDb,EADC,CAJH,KACA,OACA,QACA,cAGIc,EAASoD,GAAwB,EAEjCI,EAAqBC,GACzBzE,CACF,EAEA,OACEV,EAAA,cAACkC,GAAK,KAALP,EAAAC,EAAA,GACKJ,GADL,CAEC,IAAKb,EACL,GAAIyD,EACJ,UAAWtC,GAAGJ,EAAO,eAAgBH,CAAS,IAE7CoC,EACC3D,EAAA,cAACyD,EAAA,CAAe,KAAME,EAAM,QAAQ,YAAY,EAEhDuB,GAAsBE,GAExBpF,EAAA,cAAC,YAAMqE,CAAM,EACZV,GAAQuB,EAAqBE,GAAe,IAC/C,CAEJ,CAEA,IAAMA,GACJpF,EAAA,cAACyD,EAAA,CAAe,KAAMzD,EAAA,cAAC+E,GAAA,IAAiB,EAAI,QAAQ,QAAQ,EAGxDI,GAAkBzE,GACtBA,EAAM,KAAO,KAAOA,EAAM,SAAW,SAE1B2E,GAGTrF,EAAM,WAAWiF,EAAe,EEzEpC,OAAOjF,MAAW,QAClB,OAAS,QAAAkC,OAAY,uBACrB,OACE,oBAAAoD,GACA,qBAAAtC,GACA,iBAAAC,OACK,2BACP,OAAS,QAAAlD,OAAY,uBAErB,OAAOG,OAAY,yBAEZ,IAAMqF,GAAyB,CAAC,CACrC,UAAApC,CACF,IAGEnD,EAAA,cAACkC,GAAK,KAAL,KACClC,EAAA,cAACD,GAAA,CAAK,WAAW,SAAS,IAAKG,GAAO,WACpCF,EAAA,cAACgD,GAAA,CAAkB,UAAW,GAAI,SAAU,IAC1ChD,EAAA,cAACiD,GAAA,CAAc,MAAO,GAAI,OAAQ,GAAI,CACxC,EACAjD,EAAA,cAACgD,GAAA,CAAkB,UAAW,GAAI,SAAU,IAAK,UAAWG,GAC1DnD,EAAA,cAACsF,GAAA,CAAiB,cAAe,EAAG,CACtC,CACF,CACF,ECzBF,OAAOtF,MAAW,QCAlB,OAAS,OAAAC,OAAW,UACpB,OAAOC,MAAY,yBAGZ,IAAMsF,GAA0B,KAAO,CAC5C,eAAgBvF,GACd,CAEE,OAAQ,EACR,QAAS,EACT,WAAY,OACZ,OAAQ,OACR,OAAQ,cAER,MAAOC,EAAO,QACd,OAAQ,UACR,SAAUA,EAAO,UACjB,WAAYA,EAAO,iBACnB,SAAU,WACV,QAAS,OACT,aAAc,OAEd,UAAW,CACT,QAAS,KACT,OAAQ,oBACR,UAAW,aACX,OAAQ,OACR,MAAO,OACP,SAAU,WACV,MAAO,CACT,EACA,qBAAsB,CACpB,QAAS,MACX,EACA,aAAc,CACZ,gBAAiB,SACnB,CACF,EACAE,EAAqB,CACvB,EACA,iBAAkBH,GAAI,CACpB,OAAQC,EAAO,SACf,MAAOA,EAAO,SACd,KAAMA,EAAO,OACf,CAAC,EACD,oBAAqBD,GAAI,CACvB,cAAe,OACf,OAAQ,EACR,QAAS,EACT,SAAU,UACZ,CAAC,CACH,GDjDA,OACE,QAAAF,OAIK,uBACP,OAAS,YAAA0F,OAAgB,wBACzB,OAAS,MAAA3D,OAAU,UAgBnB,SAAS4D,GACPhF,EACAC,EACA,CACA,IAMIC,EAAAF,EALF,UAAAG,EACA,UAAAU,EACA,KAAAoE,EACA,OAAArE,EAAS,uBAjCb,EAmCMV,EADCY,EAAAC,EACDb,EADC,CAJH,WACA,YACA,OACA,WAGIc,EAAS8D,GAAwB,EAEvC,OACExF,EAAA,cAACD,GAAA4B,EAAAC,EAAA,GACKJ,GADL,CAEC,GAAG,SACH,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,eAAgBH,CAAS,EAC9C,OAAQD,EACR,WAAW,SACX,WAAU,GACV,IAAI,cAEHqE,GAAQ3F,EAAA,cAACiE,GAAA,IAAmB,EAC7BjE,EAAA,cAACyF,GAAA,CAAS,KAAK,QAAQ,UAAW/D,EAAO,iBAAkB,EAE3D1B,EAAA,cAACD,GAAA,CAAK,GAAG,KAAK,WAAW,SAAS,UAAW2B,EAAO,qBACjDb,CACH,CACF,CAEJ,CAEO,IAAM+E,GAAiB5F,EAAM,WAAW0F,EAAe,EE3D9D,OAAO1F,OAAW,QAClB,OACE,qBAAAgD,GACA,uBAAA6C,OACK,2BACP,OAAO3F,OAAY,yBAEZ,IAAM4F,GAAyB,CAAC,CACrC,eAAAjB,CACF,IAGE7E,GAAA,cAACgD,GAAA,CACC,SAAU6B,EACV,UAAW,GACX,gBAAiB3E,GAAO,QACxB,gBAAiBA,GAAO,SAExBF,GAAA,cAAC6F,GAAA,CACC,WAAY,GACZ,cAAe,EACf,QAAS,GACT,QAAS,GACX,CACF,ECxBF,OAAS,MAAA/D,OAAU,UACnB,OAAO9B,OAAW,QAOlB,OAAS,cAAA+F,OAAkB,yBCR3B,OAAS,OAAA9F,OAAW,UAEpB,OAAOC,OAAY,yBAEZ,IAAM8F,GAAwB,KAAO,CAC1C,aAAc/F,GACZ,CAEE,SAAU,OACV,MAAO,OACP,UAAW,OACX,OAAQ,OACR,IAAK,CACH,KAAMC,GAAO,OACf,CACF,EACAE,EAAqB,CACvB,CACF,GDDA,SAAS6F,GACPvF,EACAC,EACA,CACA,IAAqEC,EAAAF,EAA7D,WAAAa,EAAW,OAAAD,EAAS,qBArB9B,EAqBuEV,EAAfY,EAAAC,EAAeb,EAAf,CAA9C,YAAW,WACbc,EAASsE,GAAsB,EACrC,OACEhG,GAAA,cAAC+F,GAAApE,EAAAC,EAAA,CACC,aAAW,gBACPJ,GAFL,CAGC,QAAQ,cACR,IAAKb,EACL,KAAK,QACL,UAAWmB,GAAGJ,EAAO,aAAcH,CAAS,EAC5C,OAAQD,EACR,KAAMtB,GAAA,cAACgE,GAAA,CAAW,KAAK,SAAS,GAClC,CAEJ,CAEO,IAAMkC,GAAelG,GAAM,WAAWiG,EAAa,EErC1D,OAAOjG,MAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,MAAW,UACpB,OAAOC,MAAY,yBAGnB,IAAMiG,GAAa,CACjB,QAAS,OACT,gBAAiB,CACf,QAAS,OACX,EAEA,CAAChG,EAAI,MAAM,EAAG,CACZ,QAAS,QACT,gBAAiB,CACf,QAAS,MACX,CACF,CACF,EAEaiG,GAA8B,KAAO,CAChD,gBAAiBnG,EAAI,CACnB,SAAU,WACV,WAAY,SACZ,eAAgB,SAChB,OAAQ,aAAaC,EAAO,OAAO,GACnC,WAAY,OACZ,QAAS,cACT,OAAQ,EACR,SAAU,EACV,QAAS,KAAKA,EAAO,SAAS,GAC9B,OAAQA,EAAO,SACf,aAAc,OACd,OAAQ,EAER,WAAY,SACZ,gBAAiB,CACf,SAAU,MACZ,EACA,iBAAkB,CAChB,OAAQ,EACR,WAAY,QACZ,YAAaA,EAAO,SACpB,aAAc,gBACd,KAAM,CACJ,SAAU,OACV,aAAc,WACd,SAAU,SACV,CAACC,EAAI,KAAK,EAAG,CACX,SAAU,MACZ,CACF,CACF,EACA,iBAAkB,CAChB,WAAY,QACZ,YAAaD,EAAO,SACpB,aAAc,gBACd,WAAYA,EAAO,mBACnB,SAAUA,EAAO,UACjB,WAAYA,EAAO,iBACnB,OAAQ,EACR,KAAM,CACJ,SAAU,OACV,aAAc,WACd,SAAU,SACV,CAACC,EAAI,KAAK,EAAG,CACX,SAAU,MACZ,CACF,EACA,QAAS,CACP,CAACA,EAAI,MAAM,EAAG,CACZ,IAAKD,EAAO,UACd,CACF,CACF,CACF,CAAC,EACD,sBAAuBD,EAAI,CACzB,OAAQ,aAAaC,EAAO,OAAO,GACnC,aAAc,MACd,MAAOA,EAAO,QACd,QAAS,EACT,QAAS,OACT,eAAgB,SAChB,SAAU,OACV,MAAOA,EAAO,SACd,OAAQA,EAAO,QACjB,CAAC,EACD,yBAA0BD,EAAI,CAC5B,MAAOC,EAAO,SACd,OAAQyB,EAAAC,EAAA,GACHuE,IADG,CAEN,KAAMjG,EAAO,QACf,EACF,CAAC,EACD,4BAA6BD,EAAI,CAC/B,MAAOC,EAAO,UACd,IAAKyB,EAAAC,EAAA,GACAuE,IADA,CAEH,KAAMjG,EAAO,SACf,EACF,CAAC,CACH,GCnGA,OAAOF,MAAW,QAGlB,OAAS,wBAAAqG,GAAsB,mBAAAC,OAAuB,wBAI/C,SAASC,GAAiB,CAAE,QAAAC,CAAQ,EAA0B,CACnE,OACExG,EAAA,cAAAA,EAAA,cACEA,EAAA,cAAC6D,GAAA,CAAW,IAAI,cAAc,KAAK,OAAO,EACzC2C,EACCxG,EAAA,cAACqG,GAAA,CAAqB,IAAI,YAAY,KAAK,OAAO,EAElDrG,EAAA,cAACsG,GAAA,CAAgB,IAAI,YAAY,KAAK,OAAO,CAEjD,CAEJ,CFdA,OACE,QAAAvG,OAIK,uBAcP,SAAS0G,GACP/F,EACAC,EACA,CACA,IAQIC,EAAAF,EAPF,UAAAG,EACA,SAAA6F,EACA,UAAAnF,EACA,WAAAoF,EACA,QAAAH,EACA,OAAAlF,EAAS,4BAjCb,EAmCMV,EADCY,EAAAC,EACDb,EADC,CANH,WACA,WACA,YACA,aACA,UACA,WAGIc,EAAS0E,GAA4B,EACrCQ,EAAU9E,GAAGJ,EAAO,gBAAiBH,EAAW,CACpD,CAACG,EAAO,qBAAqB,EAAGgF,EAChC,CAAChF,EAAO,wBAAwB,EAAGiF,IAAe,SAClD,CAACjF,EAAO,2BAA2B,EAAGiF,IAAe,YACvD,CAAC,EAED,OACE3G,EAAA,cAAC,KAAA2B,EAAAC,EAAA,GAAOJ,GAAP,CAAmB,IAAKb,EAAK,UAAWiG,EAAS,eAActF,IAC9DtB,EAAA,cAACD,GAAA,CAAK,WAAU,GAAC,eAAe,SAAS,WAAW,UACjD4G,GAAc3G,EAAA,cAACuG,GAAA,CAAiB,QAASC,EAAS,EACnDxG,EAAA,cAAC,YAAMa,CAAS,CAClB,CACF,CAEJ,CAEO,IAAMgG,GAAqB7G,EAAM,WAAWyG,EAAmB,EGrDtE,OAAOzG,MAAW,QAClB,OAAS,MAAA8B,OAAU,UAOnB,OAAS,UAAAgF,OAAc,yBCRvB,OAAS,OAAA7G,OAAW,UAEpB,OAAOC,MAAY,yBAEZ,IAAM6G,GAAsB,KAAO,CACxC,WAAY9G,GACV,CAEE,SAAUC,EAAO,UACjB,QAAS,KAAKA,EAAO,UAAU,GAC/B,MAAO,cACP,UAAW,OACX,OAAQ,OACR,MAAOA,EAAO,QACd,IAAK,CACH,KAAMA,EAAO,OACf,CACF,EACAE,EAAqB,CACvB,CACF,GDCA,SAAS4G,GACPtG,EACAC,EACA,CACA,IAKIC,EAAAF,EAJF,UAAAG,EACA,UAAAU,EACA,OAAAD,EAAS,2BA5Bb,EA8BMV,EADCY,EAAAC,EACDb,EADC,CAHH,WACA,YACA,WAIIc,EAASqF,GAAoB,EAEnC,OACE/G,EAAA,cAACoC,EAAA,CACC,OAAO,yBACP,QACEpC,EAAA,cAAC8G,GAAAnF,EAAAC,EAAA,CACC,aAAW,aACPJ,GAFL,CAGC,GAAG,SACH,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,WAAYH,CAAS,EAC1C,OAAQD,EACR,QAAQ,cACR,KAAK,QACL,UAAWtB,EAAA,cAAC+D,GAAA,CAAS,KAAK,SAAS,IACpC,MAED,GAGDlD,CACH,CAEJ,CAEO,IAAMoG,GAAajH,EAAM,WAAWgH,EAAW,EE1DtD,OAAOhH,OAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,OAAW,UACpB,OAAOC,MAAY,yBAEZ,IAAMgH,GAAuB,KAAO,CACzC,YAAajH,GAAI,CACf,QAAS,OACT,eAAgB,SAChB,WAAY,SACZ,WAAY,OACZ,OAAQ,aAAaC,EAAO,SAAS,GACrC,OAAQ,EACR,QAAS,OACT,SAAUA,EAAO,UACjB,WAAYA,EAAO,YACnB,WAAYA,EAAO,iBACnB,UAAW,SACX,QAAS,KAAKA,EAAO,SAAS,GAC9B,eAAgB,OAChB,MAAO,GAAGA,EAAO,SAAS,aAC1B,aAAc,SAChB,CAAC,CACH,GDXA,IAAMiH,GAA2B,MAWjC,SAASC,GACP1G,EACAC,EACA,CACA,IAMIC,EAAAF,EALF,IAAI0D,EAAO+C,GACX,SAAAtG,EACA,UAAAU,EACA,OAAAD,EAAS,oBA7Bb,EA+BMV,EADCY,EAAAC,EACDb,EADC,CAJH,KACA,WACA,YACA,WAGIc,EAASwF,GAAqB,EAEpC,OACElH,GAAA,cAACoE,EAAAzC,EAAAC,EAAA,GACKJ,GADL,CAEC,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,YAAaH,CAAS,EAC3C,eAAcD,IAEbT,CACH,CAEJ,CAEO,IAAMwG,GAGTrH,GAAM,WAAWoH,EAAY,EEjDjC,OAAOpH,OAAW,QAClB,OAAS,MAAA8B,OAAU,UCDnB,OAAS,OAAA7B,OAAW,UACpB,OAAOC,MAAY,yBAEnB,OAAS,aAAA6B,OAAiB,wBACnB,IAAMuF,GAA4B,KAAO,CAC9C,cAAerH,GACb,CAEE,OAAQ,EACR,WAAY,OACZ,OAAQ,YACR,YAAa,cACb,OAAQ,UACR,QAAS,OACT,IAAKC,EAAO,WACZ,WAAY,SACZ,WAAYA,EAAO,kBACnB,MAAOA,EAAO,QACd,QAAS,KAAKA,EAAO,UAAU,GAC/B,UAAW,OACX,SAAUA,EAAO,UACjB,WAAYA,EAAO,iBACnB,QAAS,OACT,aAAcA,EAAO,mBAErB,UAAW,CACT,gBAAiB6B,GAAU7B,EAAO,QAAS,GAAI,CACjD,EACA,IAAK,CACH,KAAM,cACR,CACF,EACAE,EAAqB,CACvB,CACF,GDxBA,IAAM+G,GAA2B,SAUjC,SAASI,GAEP7G,EAAiCC,EAAqB,CACtD,IAMIC,EAAAF,EALF,IAAI0D,EAAO+C,GACX,SAAAtG,EACA,UAAAU,EACA,OAAAD,EAAS,0BA3Bb,EA6BMV,EADCY,EAAAC,EACDb,EADC,CAJH,KACA,WACA,YACA,WAGIc,EAAS4F,GAA0B,EAEzC,OACEtH,GAAA,cAACoE,EAAAzC,EAAAC,EAAA,GACKJ,GADL,CAEC,IAAKb,EACL,UAAWmB,GAAGJ,EAAO,cAAeH,CAAS,EAC7C,eAAcD,IAEbT,CACH,CAEJ,CAEO,IAAM2G,GAGTxH,GAAM,WAAWuH,EAAiB,ElCd/B,IAAM1F,EAASA,GACtBA,EAAO,KAAO6C,GACd7C,EAAO,aAAe+C,GACtB/C,EAAO,SAAWwD,GAClBxD,EAAO,iBAAmB0D,GAC1B1D,EAAO,YAAcjC,GACrBiC,EAAO,iBAAmBhC,GAC1BgC,EAAO,SAAW+D,GAClB/D,EAAO,iBAAmBiE,GAC1BjE,EAAO,aAAegF,GACtBhF,EAAO,OAASqE,GAChBrE,EAAO,KAAOoF,GACdpF,EAAO,QAAUkB,GACjBlB,EAAO,gBAAkBqB,GACzBrB,EAAO,MAAQwF,GACfxF,EAAO,WAAa2F","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 { NavbarSearch } from './NavbarSearch/NavbarSearch';\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarHelp } from './NavbarHelp/NavbarHelp';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\nimport { NavbarTopbarItem } from './NavbarTopbarItem/NavbarTopbarItem';\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 Search: typeof NavbarSearch;\n Help: typeof NavbarHelp;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n TopbarItem: typeof NavbarTopbarItem;\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.Search = NavbarSearch;\nNavbar.Help = NavbarHelp;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\nNavbar.TopbarItem = NavbarTopbarItem;\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';\ntype NavbarOwnProps = CommonProps & {\n children?: React.ReactNode;\n account?: React.ReactNode;\n search?: React.ReactNode;\n switcher?: React.ReactNode;\n help?: React.ReactNode;\n badge?: React.ReactNode;\n /**\n * Items that will be rendered on the bottom-right of the navbar.\n * Useful for separating other navigation items from main ones, (e.g. separating \"Settings\" from all other navigation items).\n */\n bottomRightItems?: React.ReactNode;\n /**\n * Items that will be rendered on the top-right of the navbar.\n * Useful for providing additional context or actions to the user (e.g. a Feedback form link).\n */\n topRightItems?: React.ReactNode;\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n /**\n * Describes the size variation of the navbar\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 children,\n account,\n search,\n switcher,\n help,\n badge,\n bottomRightItems,\n topRightItems,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n className,\n variant = 'wide',\n ...otherProps\n } = props;\n const styles = getNavbarStyles(contentMaxWidth, variant);\n\n return (\n <Box {...otherProps} ref={ref} testId={testId} className={className}>\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex>{switcher}</Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {topRightItems}\n {badge}\n {search}\n {help}\n {account}\n </Flex>\n </Flex>\n </Flex>\n\n <Flex className={styles.containerBottom}>\n <Flex\n className={styles.containerBottomContent}\n justifyContent=\"space-between\"\n >\n <Flex as=\"nav\" aria-label=\"Main Navigation\">\n {children}\n </Flex>\n {bottomRightItems && <Flex>{bottomRightItems}</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});\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 { 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 >\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 { ArrowDownIcon } 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 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 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 >\n {icon && <NavbarItemIcon icon={icon} variant=\"secondary\" />}\n <span>{title}</span>\n {isMenuTrigger && <ArrowDownIcon />}\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 '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: `calc(100% - ${tokens.spacingM})`,\n height: '2px',\n bottom: `-${tokens.spacing2Xs}`,\n left: 0,\n right: 0,\n margin: 'auto',\n backgroundColor: tokens.blue600,\n zIndex: 0,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingS}`,\n alignItems: 'center',\n background: 'none',\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: 0,\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.gray700,\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(`inset ${tokens.glowPrimary}`),\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, 'variant'>;\n\nexport const NavbarItemIcon = (props: NavbarItemIconProps) => {\n const { icon, variant } = props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(icon.props.className, styles.navbarItemIcon),\n size: icon.props.size ?? 'tiny',\n variant: icon.props.variant ?? variant,\n });\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n fill: tokens.gray700,\n '&:first-child': {\n marginRight: tokens.spacing2Xs,\n },\n '&:last-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 { generateIcon } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIcon({\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 { generateIcon } from '@contentful/f36-icon';\n\nexport const ArrowDownIcon = /*#__PURE__*/ generateIcon({\n name: 'ArrowDownIcon',\n viewBox: '0 0 12 20',\n path: (\n <path\n d=\"M3.03076 8C2.20109 8 1.73228 8.95209 2.23814 9.60971L5.20727 13.4696C5.60757 13.99 6.39223 13.99 6.79252 13.4696L9.76166 9.60971C10.2675 8.95209 9.79871 8 8.96904 8L3.03076 8Z\"\n fill=\"#9FA8B2\"\n />\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const HelpIcon = /*#__PURE__*/ generateIcon({\n name: 'HelpIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#HelpIcon_svg__a)\">\n <path\n d=\"M12 2.25A9.75 9.75 0 1 0 21.75 12 9.769 9.769 0 0 0 12 2.25ZM12 18a1.125 1.125 0 1 1 0-2.25A1.125 1.125 0 0 1 12 18Zm.75-4.584v.084a.75.75 0 1 1-1.5 0v-.75A.75.75 0 0 1 12 12a1.875 1.875 0 1 0-1.875-1.875.75.75 0 1 1-1.5 0 3.375 3.375 0 1 1 4.125 3.29Z\"\n fill=\"currentFill\"\n />\n </g>\n <defs>\n <clipPath id=\"HelpIcon_svg__a\">\n <path fill=\"currentFill\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </>\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const SearchIcon = /*#__PURE__*/ generateIcon({\n name: 'SearchIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#SearchIcon_svg__a)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 11.125a5.125 5.125 0 1 1 10.25 0 5.125 5.125 0 0 1-10.25 0ZM11.125 4a7.125 7.125 0 1 0 4.282 12.82l2.886 2.887a1 1 0 0 0 1.414-1.414l-2.886-2.887A7.125 7.125 0 0 0 11.125 4Z\"\n fill=\"currentFill\"\n />\n </g>\n <defs>\n <clipPath id=\"SearchIcon_svg__a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </>\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIcon({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#a)\">\n <path\n d=\"M8.71 3.007c.844.843 1.17 2.078.844 3.228a6.683 6.683 0 0 1 3.444-.953h.025a6.701 6.701 0 0 1 4.743 1.988 2.637 2.637 0 0 0 3.73.093 2.637 2.637 0 0 0 .094-3.731c-.025-.027-.052-.052-.08-.08A11.95 11.95 0 0 0 13.036.006h-.046a11.92 11.92 0 0 0-6.691 2.038h.074c.876 0 1.715.346 2.335.966l.002-.002Z\"\n fill=\"#1773EB\"\n />\n <path\n d=\"M19.593 16.006c-.696 0-1.365.276-1.86.765a6.706 6.706 0 0 1-4.732 1.953h-.025a6.617 6.617 0 0 1-3.446-.97c.079.287.117.584.117.882a3.3 3.3 0 0 1-3.299 3.3h-.087a11.929 11.929 0 0 0 6.696 2.07h.046a11.934 11.934 0 0 0 8.45-3.486 2.64 2.64 0 0 0-1.857-4.514h-.003Z\"\n fill=\"#E44F20\"\n />\n <path\n d=\"M4.013 16.301a3.283 3.283 0 0 1 2.335-.967c.303 0 .604.041.893.123a6.696 6.696 0 0 1 .014-6.928 3.302 3.302 0 0 1-4.176-3.187v-.09a12 12 0 0 0-.033 13.452v-.068c0-.877.344-1.715.967-2.335Z\"\n fill=\"#FFDA00\"\n />\n <path\n d=\"M6.378 2.627c-.751 0-1.275.311-1.912.948-.606.606-.797 1.136-.8 1.767a2.712 2.712 0 1 0 5.427-.003A2.713 2.713 0 0 0 6.38 2.627h-.003Z\"\n fill=\"#1773EB\"\n />\n <path\n d=\"M3.628 18.639c0 .748.311 1.275.948 1.912.606.606 1.136.8 1.767.8a2.703 2.703 0 1 0-.017-5.408 2.703 2.703 0 0 0-2.695 2.704v-.008h-.003Z\"\n fill=\"#E44F20\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\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 { ExternalLinkIcon } 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} variant=\"secondary\" />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = (\n <NavbarItemIcon icon={<ExternalLinkIcon />} variant=\"muted\" />\n);\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 { MenuIcon } from '@contentful/f36-icons';\nimport { cx } from 'emotion';\nimport { ContentfulLogoIcon } from '../icons';\n\ntype NavbarSwitcherOwnProps = CommonProps & {\n children?: React.ReactNode;\n /**\n * Will be displayed instead of the default Contentful logo\n */\n logo?: 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 logo,\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 {logo || <ContentfulLogoIcon />}\n <MenuIcon size=\"small\" className={styles.switcherMenuIcon} />\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\n '&:after': {\n content: '\"\"',\n border: '1px solid #353A41',\n boxSizing: 'border-box',\n height: '16px',\n right: '-1px',\n position: 'absolute',\n width: 0,\n },\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 { cx } from 'emotion';\nimport React from 'react';\nimport { SearchIcon } from '../icons';\nimport {\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\nimport { IconButton } from '@contentful/f36-button';\nimport { getNavbarSearchStyles } from './NavbarSearch.styles';\ntype NavbarSearchOwnProps = CommonProps;\n\nexport type NavbarSearchProps = PropsWithHTMLElement<\n NavbarSearchOwnProps,\n 'button'\n>;\n\nfunction _NavbarSearch(\n props: ExpandProps<NavbarSearchProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const { className, testId = 'cf-ui-navbar-search', ...otherProps } = props;\n const styles = getNavbarSearchStyles();\n return (\n <IconButton\n aria-label=\"Quick Search\"\n {...otherProps}\n variant=\"transparent\"\n ref={ref}\n size=\"small\"\n className={cx(styles.navbarSearch, className)}\n testId={testId}\n icon={<SearchIcon size=\"medium\" />}\n />\n );\n}\n\nexport const NavbarSearch = React.forwardRef(_NavbarSearch);\n","import { css } from 'emotion';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarSearchStyles = () => ({\n navbarSearch: css(\n {\n // default button reset styles\n minWidth: '24px',\n width: '24px',\n minHeight: '24px',\n height: '24px',\n svg: {\n fill: tokens.gray700,\n },\n },\n getGlowOnFocusStyles(),\n ),\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 { HelpIcon } from '../icons';\nimport {\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { getNavbarHelpStyles } from './NavbarHelp.styles';\n\ntype NavbarHelpOwnProps = CommonProps & {\n children: React.ReactNode;\n};\n\nexport type NavbarHelpProps = PropsWithHTMLElement<\n NavbarHelpOwnProps,\n 'button'\n>;\n\nfunction _NavbarHelp(\n props: ExpandProps<NavbarHelpProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-help-trigger',\n ...otherProps\n } = props;\n\n const styles = getNavbarHelpStyles();\n\n return (\n <NavbarMenu\n testId=\"cf-ui-navbar-help-menu\"\n trigger={\n <Button\n aria-label=\"Help Menu\"\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarHelp, className)}\n testId={testId}\n variant=\"transparent\"\n size=\"small\"\n startIcon={<HelpIcon size=\"medium\" />}\n >\n Help\n </Button>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nexport const NavbarHelp = React.forwardRef(_NavbarHelp);\n","import { css } from 'emotion';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarHelpStyles = () => ({\n navbarHelp: css(\n {\n // default button reset styles\n fontSize: tokens.fontSizeS,\n padding: `0 ${tokens.spacing2Xs}`,\n width: 'max-content',\n minHeight: '24px',\n height: '24px',\n color: tokens.gray700,\n svg: {\n fill: tokens.gray700,\n },\n },\n getGlowOnFocusStyles(),\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","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarTopbarItemStyles } from './NavbarTopbarItem.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'button';\n\ntype NavbarTopbarItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n};\n\nexport type NavbarTopbarItemProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarTopbarItemOwnProps, E>;\n\nfunction _NavbarTopbarItem<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n>(props: NavbarTopbarItemProps<E>, ref: React.Ref<any>) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-topbar-item',\n ...otherProps\n } = props;\n const styles = getNavbarTopbarItemStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarTopItem, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nexport const NavbarTopbarItem: PolymorphicComponent<\n ExpandProps<NavbarTopbarItemOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarTopbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\nexport const getNavbarTopbarItemStyles = () => ({\n navbarTopItem: css(\n {\n // default button reset styles\n margin: 0,\n background: 'none',\n border: '1px solid',\n borderColor: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n gap: tokens.spacing2Xs,\n alignItems: 'center',\n lineHeight: tokens.lineHeightDefault,\n color: tokens.gray700,\n padding: `0 ${tokens.spacing2Xs}`,\n minHeight: '24px',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n outline: 'none',\n borderRadius: tokens.borderRadiusMedium,\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n svg: {\n fill: 'currentColor',\n },\n },\n getGlowOnFocusStyles(),\n ),\n});\n"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -60,10 +60,11 @@ declare const Navbar$1: React.ForwardRefExoticComponent<NavbarHTMLElementProps &
|
|
|
60
60
|
variant?: 'wide' | 'fullscreen';
|
|
61
61
|
} & React.RefAttributes<HTMLElement>>;
|
|
62
62
|
|
|
63
|
-
declare const NavbarAccount: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, "children" | keyof CommonProps | "username" | "avatar" | "hasNotification" | "notificationVariant"> & CommonProps & {
|
|
63
|
+
declare const NavbarAccount: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, "children" | keyof CommonProps | "username" | "avatar" | "initials" | "hasNotification" | "notificationVariant"> & CommonProps & {
|
|
64
64
|
children: React.ReactNode;
|
|
65
65
|
username: string;
|
|
66
|
-
avatar
|
|
66
|
+
avatar?: string;
|
|
67
|
+
initials?: string;
|
|
67
68
|
hasNotification?: boolean;
|
|
68
69
|
/**
|
|
69
70
|
* @default 'warning'
|
package/dist/index.d.ts
CHANGED
|
@@ -60,10 +60,11 @@ declare const Navbar$1: React.ForwardRefExoticComponent<NavbarHTMLElementProps &
|
|
|
60
60
|
variant?: 'wide' | 'fullscreen';
|
|
61
61
|
} & React.RefAttributes<HTMLElement>>;
|
|
62
62
|
|
|
63
|
-
declare const NavbarAccount: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, "children" | keyof CommonProps | "username" | "avatar" | "hasNotification" | "notificationVariant"> & CommonProps & {
|
|
63
|
+
declare const NavbarAccount: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, "children" | keyof CommonProps | "username" | "avatar" | "initials" | "hasNotification" | "notificationVariant"> & CommonProps & {
|
|
64
64
|
children: React.ReactNode;
|
|
65
65
|
username: string;
|
|
66
|
-
avatar
|
|
66
|
+
avatar?: string;
|
|
67
|
+
initials?: string;
|
|
67
68
|
hasNotification?: boolean;
|
|
68
69
|
/**
|
|
69
70
|
* @default 'warning'
|
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var v = require('react');
|
|
|
6
6
|
var emotion = require('emotion');
|
|
7
7
|
var f = require('@contentful/f36-tokens');
|
|
8
8
|
var f36Utils = require('@contentful/f36-utils');
|
|
9
|
+
var f36Avatar = require('@contentful/f36-avatar');
|
|
9
10
|
var f36Skeleton = require('@contentful/f36-skeleton');
|
|
10
11
|
var f36Icon = require('@contentful/f36-icon');
|
|
11
12
|
var f36Icons = require('@contentful/f36-icons');
|
|
@@ -16,7 +17,7 @@ function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
|
16
17
|
var v__default = /*#__PURE__*/_interopDefault(v);
|
|
17
18
|
var f__default = /*#__PURE__*/_interopDefault(f);
|
|
18
19
|
|
|
19
|
-
var Je=Object.defineProperty,Ke=Object.defineProperties;var et=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var le=(e,t,o)=>t in e?Je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))fe.call(t,o)&&le(e,o,t[o]);if($)for(var o of $(t))de.call(t,o)&&le(e,o,t[o]);return e},s=(e,t)=>Ke(e,et(t));var l=(e,t)=>{var o={};for(var r in e)fe.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&$)for(var r of $(e))t.indexOf(r)<0&&de.call(e,r)&&(o[r]=e[r]);return o};var I={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},u=(e=f__default.default.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var be=(e,t)=>({containerTop:emotion.css({justifyContent:"center",backgroundColor:f__default.default.gray100}),containerBottom:emotion.css({justifyContent:"center",backgroundColor:f__default.default.gray100}),containerTopContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:f__default.default.spacingXs,minHeight:f__default.default.spacingL,[I.medium]:{padding:`${f__default.default.spacingXs} 20px`}}),containerBottomContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:f__default.default.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[I.medium]:{padding:`${f__default.default.spacing2Xs} ${f__default.default.spacingXs}`}})});function rt(e,t){let ce=e,{children:o,account:r,search:n,switcher:a,help:p,badge:c,bottomRightItems:m,topRightItems:g,contentMaxWidth:N="100%",testId:y="cf-ui-navbar",className:R,variant:F="wide"}=ce,X=l(ce,["children","account","search","switcher","help","badge","bottomRightItems","topRightItems","contentMaxWidth","testId","className","variant"]),M=be(N,F);return v__default.default.createElement(f36Core.Box,s(i({},X),{ref:t,testId:y,className:R}),v__default.default.createElement(f36Core.Flex,{className:M.containerTop},v__default.default.createElement(f36Core.Flex,{className:M.containerTopContent,justifyContent:"space-between"},v__default.default.createElement(f36Core.Flex,null,a),v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},g,c,n,p,r))),v__default.default.createElement(f36Core.Flex,{className:M.containerBottom},v__default.default.createElement(f36Core.Flex,{className:M.containerBottomContent,justifyContent:"space-between"},v__default.default.createElement(f36Core.Flex,{as:"nav","aria-label":"Main Navigation"},o),m&&v__default.default.createElement(f36Core.Flex,null,m))))}var ge=v__default.default.forwardRef(rt);var nt={warning:f__default.default.colorWarning,negative:f__default.default.colorNegative,info:f__default.default.blue500},ue=()=>({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(f__default.default.gray300,.15)})},u()),avatar:emotion.css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>emotion.css({position:"absolute",top:0,right:0,height:f__default.default.spacingS,width:f__default.default.spacingS,borderRadius:"50%",border:`2px solid ${f__default.default.gray100}`,backgroundColor:nt[e],transform:"translate(30%, -30%)"})});var ve=()=>({menuList:emotion.css({minWidth:"250px"})});var T=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:a}=e,p=ve();return v__default.default.createElement(f36Menu.Menu,{onOpen:n,onClose:a},v__default.default.createElement(f36Menu.Menu.Trigger,null,t),v__default.default.createElement(f36Menu.Menu.List,{className:p.menuList,testId:r},o))};function mt(e,t){let y=e,{children:o,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:a,username:p,hasNotification:c,notificationVariant:m="warning"}=y,g=l(y,["children","className","testId","avatar","username","hasNotification","notificationVariant"]),N=ue();return v__default.default.createElement(T,{trigger:v__default.default.createElement(f36Core.Flex,s(i({as:"button"},g),{ref:t,className:emotion.cx(N.navbarAccount,r),testId:n,alignItems:"center"}),v__default.default.createElement("img",{src:a,alt:`Avatar for user ${p}`,className:N.avatar}),c?v__default.default.createElement("span",{className:N.notificationIcon(m)}):null)},o)}var ee=v__default.default.forwardRef(mt);function te({ariaLabel:e}){return v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:f__default.default.gray300,foregroundColor:f__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var ye=()=>emotion.css({"&::after":{content:'""',position:"absolute",width:`calc(100% - ${f__default.default.spacingM})`,height:"2px",bottom:`-${f__default.default.spacing2Xs}`,left:0,right:0,margin:"auto",backgroundColor:f__default.default.blue600,zIndex:0}}),Ie={display:"flex",justifyContent:"center",padding:`${f__default.default.spacing2Xs} ${f__default.default.spacingS}`,alignItems:"center",background:"none"},xe=()=>({navbarItem:emotion.css(Ie,{alignItems:"center",background:"none",border:0,margin:0,outline:"none",fontSize:f__default.default.fontSizeM,lineHeight:f__default.default.lineHeightS,fontWeight:f__default.default.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:f__default.default.gray700,boxSizing:"border-box",transition:`color ${f__default.default.transitionDurationShort} ${f__default.default.transitionEasingCubicBezier}`,borderRadius:f__default.default.borderRadiusMedium,"&:hover":{backgroundColor:f36Utils.hexToRGBA(f__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 ${f__default.default.transitionDurationShort} ${f__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:f__default.default.zIndexDefault}},u(`inset ${f__default.default.glowPrimary}`)),navbarItemMenuTrigger:emotion.css({paddingRight:f__default.default.spacingXs}),isActive:ye()}),Pe=()=>({itemSkeleton:emotion.css(Ie)});var Se=()=>({navbarItemIcon:emotion.css({fill:f__default.default.gray700,"&:first-child":{marginRight:f__default.default.spacing2Xs},"&:last-child":{marginLeft:f__default.default.spacing2Xs},"img&":{borderRadius:f__default.default.borderRadiusSmall,maxWidth:f__default.default.spacingM,maxHeight:f__default.default.spacingM}})});var z=e=>{var n,a;let{icon:t,variant:o}=e,r=Se();return v__default.default.cloneElement(t,{className:emotion.cx(t.props.className,r.navbarItemIcon),size:(n=t.props.size)!=null?n:"tiny",variant:(a=t.props.variant)!=null?a:o})};var Me=f36Icon.generateIcon({name:"CircleIcon",viewBox:"0 0 24 24",path:v__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 we=f36Icon.generateIcon({name:"ArrowDownIcon",viewBox:"0 0 12 20",path:v__default.default.createElement("path",{d:"M3.03076 8C2.20109 8 1.73228 8.95209 2.23814 9.60971L5.20727 13.4696C5.60757 13.99 6.39223 13.99 6.79252 13.4696L9.76166 9.60971C10.2675 8.95209 9.79871 8 8.96904 8L3.03076 8Z",fill:"#9FA8B2"})});var Ae=f36Icon.generateIcon({name:"HelpIcon",viewBox:"0 0 24 24",path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("g",{clipPath:"url(#HelpIcon_svg__a)"},v__default.default.createElement("path",{d:"M12 2.25A9.75 9.75 0 1 0 21.75 12 9.769 9.769 0 0 0 12 2.25ZM12 18a1.125 1.125 0 1 1 0-2.25A1.125 1.125 0 0 1 12 18Zm.75-4.584v.084a.75.75 0 1 1-1.5 0v-.75A.75.75 0 0 1 12 12a1.875 1.875 0 1 0-1.875-1.875.75.75 0 1 1-1.5 0 3.375 3.375 0 1 1 4.125 3.29Z",fill:"currentFill"})),v__default.default.createElement("defs",null,v__default.default.createElement("clipPath",{id:"HelpIcon_svg__a"},v__default.default.createElement("path",{fill:"currentFill",d:"M0 0h24v24H0z"}))))});var Ee=f36Icon.generateIcon({name:"SearchIcon",viewBox:"0 0 24 24",path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("g",{clipPath:"url(#SearchIcon_svg__a)"},v__default.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6 11.125a5.125 5.125 0 1 1 10.25 0 5.125 5.125 0 0 1-10.25 0ZM11.125 4a7.125 7.125 0 1 0 4.282 12.82l2.886 2.887a1 1 0 0 0 1.414-1.414l-2.886-2.887A7.125 7.125 0 0 0 11.125 4Z",fill:"currentFill"})),v__default.default.createElement("defs",null,v__default.default.createElement("clipPath",{id:"SearchIcon_svg__a"},v__default.default.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"}))))});var Te=f36Icon.generateIcon({name:"ContentfulLogoIcon",viewBox:"0 0 24 24",path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("g",{clipPath:"url(#a)"},v__default.default.createElement("path",{d:"M8.71 3.007c.844.843 1.17 2.078.844 3.228a6.683 6.683 0 0 1 3.444-.953h.025a6.701 6.701 0 0 1 4.743 1.988 2.637 2.637 0 0 0 3.73.093 2.637 2.637 0 0 0 .094-3.731c-.025-.027-.052-.052-.08-.08A11.95 11.95 0 0 0 13.036.006h-.046a11.92 11.92 0 0 0-6.691 2.038h.074c.876 0 1.715.346 2.335.966l.002-.002Z",fill:"#1773EB"}),v__default.default.createElement("path",{d:"M19.593 16.006c-.696 0-1.365.276-1.86.765a6.706 6.706 0 0 1-4.732 1.953h-.025a6.617 6.617 0 0 1-3.446-.97c.079.287.117.584.117.882a3.3 3.3 0 0 1-3.299 3.3h-.087a11.929 11.929 0 0 0 6.696 2.07h.046a11.934 11.934 0 0 0 8.45-3.486 2.64 2.64 0 0 0-1.857-4.514h-.003Z",fill:"#E44F20"}),v__default.default.createElement("path",{d:"M4.013 16.301a3.283 3.283 0 0 1 2.335-.967c.303 0 .604.041.893.123a6.696 6.696 0 0 1 .014-6.928 3.302 3.302 0 0 1-4.176-3.187v-.09a12 12 0 0 0-.033 13.452v-.068c0-.877.344-1.715.967-2.335Z",fill:"#FFDA00"}),v__default.default.createElement("path",{d:"M6.378 2.627c-.751 0-1.275.311-1.912.948-.606.606-.797 1.136-.8 1.767a2.712 2.712 0 1 0 5.427-.003A2.713 2.713 0 0 0 6.38 2.627h-.003Z",fill:"#1773EB"}),v__default.default.createElement("path",{d:"M3.628 18.639c0 .748.311 1.275.948 1.912.606.606 1.136.8 1.767.8a2.703 2.703 0 1 0-.017-5.408 2.703 2.703 0 0 0-2.695 2.704v-.008h-.003Z",fill:"#E44F20"})),v__default.default.createElement("defs",null,v__default.default.createElement("clipPath",{id:"a"},v__default.default.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"}))))});var St="button";function Mt(e,t){let M=e,{as:o=St,icon:r,title:n,children:a,className:p,isActive:c,testId:m="cf-ui-navbar-item",onOpen:g,onClose:N}=M,y=l(M,["as","icon","title","children","className","isActive","testId","onOpen","onClose"]),R=xe(),F=wt(e),X=v__default.default.createElement(o,s(i({},y),{ref:t,"data-test-id":m,className:emotion.cx(R.navbarItem,F&&R.navbarItemMenuTrigger,c&&R.isActive,p)}),r&&v__default.default.createElement(z,{icon:r,variant:"secondary"}),v__default.default.createElement("span",null,n),F&&v__default.default.createElement(we,null));return F?v__default.default.createElement(T,{trigger:X,testId:m,onOpen:g,onClose:N},a):X}var wt=e=>!!e.children,oe=v__default.default.forwardRef(Mt);var re=({estimatedWidth:e})=>{let t=Pe();return v__default.default.createElement(f36Skeleton.SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:f__default.default.gray300,foregroundColor:f__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:f__default.default.borderRadiusSmall,radiusY:f__default.default.borderRadiusSmall}))};var ke=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var _t="button";function Ht(e,t){let g=e,{as:o=_t,icon:r,title:n,className:a}=g,p=l(g,["as","icon","title","className"]),c=ke(),m=Lt(e);return v__default.default.createElement(f36Menu.Menu.Item,s(i({},p),{ref:t,as:o,className:emotion.cx(c.navbarMenuItem,a)}),r?v__default.default.createElement(z,{icon:r,variant:"secondary"}):m&&Be,v__default.default.createElement("span",null,n),r&&m?Be:null)}var Be=v__default.default.createElement(z,{icon:v__default.default.createElement(f36Icons.ExternalLinkIcon,null),variant:"muted"}),Lt=e=>e.as==="a"&&e.target==="_blank",ae=v__default.default.forwardRef(Ht);var ne=({ariaLabel:e})=>v__default.default.createElement(f36Menu.Menu.Item,null,v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:f__default.default.spacingXs},v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},v__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},v__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var He=()=>({navbarSwitcher:emotion.css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:f__default.default.gray700,cursor:"pointer",fontSize:f__default.default.fontSizeS,fontWeight:f__default.default.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:after":{content:'""',border:"1px solid #353A41",boxSizing:"border-box",height:"16px",right:"-1px",position:"absolute",width:0},"&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},u()),switcherMenuIcon:emotion.css({height:f__default.default.spacingM,width:f__default.default.spacingM,fill:f__default.default.gray700}),switcherBreadcrumbs:emotion.css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function Vt(e,t){let m=e,{children:o,className:r,logo:n,testId:a="cf-ui-navbar-switcher"}=m,p=l(m,["children","className","logo","testId"]),c=He();return v__default.default.createElement(f36Core.Flex,s(i({},p),{as:"button",ref:t,className:emotion.cx(c.navbarSwitcher,r),testId:a,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),n||v__default.default.createElement(Te,null),v__default.default.createElement(f36Icons.MenuIcon,{size:"small",className:c.switcherMenuIcon}),v__default.default.createElement(f36Core.Flex,{as:"ul",alignItems:"center",className:c.switcherBreadcrumbs},o))}var se=v__default.default.forwardRef(Vt);var pe=({estimatedWidth:e})=>v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:f__default.default.gray300,foregroundColor:f__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Oe=()=>({navbarSearch:emotion.css({minWidth:"24px",width:"24px",minHeight:"24px",height:"24px",svg:{fill:f__default.default.gray700}},u())});function Yt(e,t){let p=e,{className:o,testId:r="cf-ui-navbar-search"}=p,n=l(p,["className","testId"]),a=Oe();return v__default.default.createElement(f36Button.IconButton,s(i({"aria-label":"Quick Search"},n),{variant:"transparent",ref:t,size:"small",className:emotion.cx(a.navbarSearch,o),testId:r,icon:v__default.default.createElement(Ee,{size:"medium"})}))}var We=v__default.default.forwardRef(Yt);var ze={display:"none","&:first-child":{display:"block"},[I.medium]:{display:"block","&:first-child":{display:"none"}}},De=()=>({breadcrumbsItem:emotion.css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${f__default.default.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${f__default.default.spacingXs}`,height:f__default.default.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:f__default.default.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[I.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:f__default.default.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:f__default.default.fontStackMonospace,fontSize:f__default.default.fontSizeS,fontWeight:f__default.default.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[I.large]:{maxWidth:"100%"}},"> div":{[I.medium]:{gap:f__default.default.spacing2Xs}}}}),breadcrumbsItemCircle:emotion.css({border:`solid 1px ${f__default.default.gray300}`,borderRadius:"50%",color:f__default.default.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:f__default.default.spacingL,height:f__default.default.spacingL}),breadcrumbsItemEnvMaster:emotion.css({color:f__default.default.green600," svg":s(i({},ze),{fill:f__default.default.green600})}),breadcrumbsItemEnvNonMaster:emotion.css({color:f__default.default.orange500,svg:s(i({},ze),{fill:f__default.default.orange500})})});function Ge({isAlias:e}){return v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement(Me,{key:"mobile-icon",size:"tiny"}),e?v__default.default.createElement(f36Icons.EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):v__default.default.createElement(f36Icons.EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function to(e,t){let y=e,{children:o,isCircle:r,className:n,envVariant:a,isAlias:p,testId:c="cf-ui-navbar-switcher-item"}=y,m=l(y,["children","isCircle","className","envVariant","isAlias","testId"]),g=De(),N=emotion.cx(g.breadcrumbsItem,n,{[g.breadcrumbsItemCircle]:r,[g.breadcrumbsItemEnvMaster]:a==="master",[g.breadcrumbsItemEnvNonMaster]:a==="non-master"});return v__default.default.createElement("li",s(i({},m),{ref:t,className:N,"data-test-id":c}),v__default.default.createElement(f36Core.Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},a&&v__default.default.createElement(Ge,{isAlias:p}),v__default.default.createElement("span",null,o)))}var Ve=v__default.default.forwardRef(to);var Xe=()=>({navbarHelp:emotion.css({fontSize:f__default.default.fontSizeS,padding:`0 ${f__default.default.spacing2Xs}`,width:"max-content",minHeight:"24px",height:"24px",color:f__default.default.gray700,svg:{fill:f__default.default.gray700}},u())});function no(e,t){let c=e,{children:o,className:r,testId:n="cf-ui-navbar-help-trigger"}=c,a=l(c,["children","className","testId"]),p=Xe();return v__default.default.createElement(T,{testId:"cf-ui-navbar-help-menu",trigger:v__default.default.createElement(f36Button.Button,s(i({"aria-label":"Help Menu"},a),{as:"button",ref:t,className:emotion.cx(p.navbarHelp,r),testId:n,variant:"transparent",size:"small",startIcon:v__default.default.createElement(Ae,{size:"medium"})}),"Help")},o)}var $e=v__default.default.forwardRef(no);var Ue=()=>({navbarBadge:emotion.css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${f__default.default.purple600}`,margin:0,outline:"none",fontSize:f__default.default.fontSizeS,lineHeight:f__default.default.lineHeightS,fontWeight:f__default.default.fontWeightMedium,textAlign:"center",padding:`0 ${f__default.default.spacingXs}`,textDecoration:"none",color:`${f__default.default.purple600}!important`,borderRadius:"1.75rem"})});var po="div";function mo(e,t){let m=e,{as:o=po,children:r,className:n,testId:a="cf-ui-navbar-badge"}=m,p=l(m,["as","children","className","testId"]),c=Ue();return v__default.default.createElement(o,s(i({},p),{ref:t,className:emotion.cx(c.navbarBadge,n),"data-test-id":a}),r)}var je=v__default.default.forwardRef(mo);var qe=()=>({navbarTopItem:emotion.css({margin:0,background:"none",border:"1px solid",borderColor:"transparent",cursor:"pointer",display:"flex",gap:f__default.default.spacing2Xs,alignItems:"center",lineHeight:f__default.default.lineHeightDefault,color:f__default.default.gray700,padding:`0 ${f__default.default.spacing2Xs}`,minHeight:"24px",fontSize:f__default.default.fontSizeS,fontWeight:f__default.default.fontWeightMedium,outline:"none",borderRadius:f__default.default.borderRadiusMedium,"&:hover":{backgroundColor:f36Utils.hexToRGBA(f__default.default.gray900,.05)},svg:{fill:"currentColor"}},u())});var bo="button";function go(e,t){let m=e,{as:o=bo,children:r,className:n,testId:a="cf-ui-navbar-topbar-item"}=m,p=l(m,["as","children","className","testId"]),c=qe();return v__default.default.createElement(o,s(i({},p),{ref:t,className:emotion.cx(c.navbarTopItem,n),"data-test-id":a}),r)}var Qe=v__default.default.forwardRef(go);var b=ge;b.Item=oe;b.ItemSkeleton=re;b.MenuItem=ae;b.MenuItemSkeleton=ne;b.MenuDivider=f36Menu.MenuDivider;b.MenuSectionTitle=f36Menu.MenuSectionTitle;b.Switcher=se;b.SwitcherSkeleton=pe;b.SwitcherItem=Ve;b.Search=We;b.Help=$e;b.Account=ee;b.AccountSkeleton=te;b.Badge=je;b.TopbarItem=Qe;
|
|
20
|
+
var Je=Object.defineProperty,Ke=Object.defineProperties;var et=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var fe=Object.prototype.hasOwnProperty,de=Object.prototype.propertyIsEnumerable;var le=(e,t,o)=>t in e?Je(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))fe.call(t,o)&&le(e,o,t[o]);if($)for(var o of $(t))de.call(t,o)&&le(e,o,t[o]);return e},s=(e,t)=>Ke(e,et(t));var c=(e,t)=>{var o={};for(var r in e)fe.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&$)for(var r of $(e))t.indexOf(r)<0&&de.call(e,r)&&(o[r]=e[r]);return o};var I={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},u=(e=f__default.default.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var be=(e,t)=>({containerTop:emotion.css({justifyContent:"center",backgroundColor:f__default.default.gray100}),containerBottom:emotion.css({justifyContent:"center",backgroundColor:f__default.default.gray100}),containerTopContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:f__default.default.spacingXs,minHeight:f__default.default.spacingL,[I.medium]:{padding:`${f__default.default.spacingXs} 20px`}}),containerBottomContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:f__default.default.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[I.medium]:{padding:`${f__default.default.spacing2Xs} ${f__default.default.spacingXs}`}})});function rt(e,t){let ce=e,{children:o,account:r,search:n,switcher:a,help:p,badge:l,bottomRightItems:m,topRightItems:g,contentMaxWidth:M="100%",testId:N="cf-ui-navbar",className:y,variant:F="wide"}=ce,X=c(ce,["children","account","search","switcher","help","badge","bottomRightItems","topRightItems","contentMaxWidth","testId","className","variant"]),w=be(M,F);return v__default.default.createElement(f36Core.Box,s(i({},X),{ref:t,testId:N,className:y}),v__default.default.createElement(f36Core.Flex,{className:w.containerTop},v__default.default.createElement(f36Core.Flex,{className:w.containerTopContent,justifyContent:"space-between"},v__default.default.createElement(f36Core.Flex,null,a),v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},g,l,n,p,r))),v__default.default.createElement(f36Core.Flex,{className:w.containerBottom},v__default.default.createElement(f36Core.Flex,{className:w.containerBottomContent,justifyContent:"space-between"},v__default.default.createElement(f36Core.Flex,{as:"nav","aria-label":"Main Navigation"},o),m&&v__default.default.createElement(f36Core.Flex,null,m))))}var ge=v__default.default.forwardRef(rt);var nt={warning:f__default.default.colorWarning,negative:f__default.default.colorNegative,info:f__default.default.blue500},ue=()=>({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(f__default.default.gray300,.15)})},u()),avatar:emotion.css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>emotion.css({position:"absolute",top:0,right:0,height:f__default.default.spacingS,width:f__default.default.spacingS,borderRadius:"50%",border:`2px solid ${f__default.default.gray100}`,backgroundColor:nt[e],transform:"translate(30%, -30%)"})});var ve=()=>({menuList:emotion.css({minWidth:"250px"})});var C=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:n,onClose:a}=e,p=ve();return v__default.default.createElement(f36Menu.Menu,{onOpen:n,onClose:a},v__default.default.createElement(f36Menu.Menu.Trigger,null,t),v__default.default.createElement(f36Menu.Menu.List,{className:p.menuList,testId:r},o))};function ct(e,t){let y=e,{children:o,className:r,testId:n="cf-ui-navbar-account-trigger",avatar:a,initials:p,username:l,hasNotification:m,notificationVariant:g="warning"}=y,M=c(y,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),N=ue();return v__default.default.createElement(C,{trigger:v__default.default.createElement(f36Core.Flex,s(i({as:"button"},M),{ref:t,className:emotion.cx(N.navbarAccount,r),testId:n,alignItems:"center"}),v__default.default.createElement(f36Avatar.Avatar,{src:a,initials:p,size:"small",variant:"user"}),m?v__default.default.createElement("span",{className:N.notificationIcon(g)}):null)},o)}var ee=v__default.default.forwardRef(ct);function te({ariaLabel:e}){return v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:f__default.default.gray300,foregroundColor:f__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var ye=()=>emotion.css({"&::after":{content:'""',position:"absolute",width:`calc(100% - ${f__default.default.spacingM})`,height:"2px",bottom:`-${f__default.default.spacing2Xs}`,left:0,right:0,margin:"auto",backgroundColor:f__default.default.blue600,zIndex:0}}),Ie={display:"flex",justifyContent:"center",padding:`${f__default.default.spacing2Xs} ${f__default.default.spacingS}`,alignItems:"center",background:"none"},xe=()=>({navbarItem:emotion.css(Ie,{alignItems:"center",background:"none",border:0,margin:0,outline:"none",fontSize:f__default.default.fontSizeM,lineHeight:f__default.default.lineHeightS,fontWeight:f__default.default.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:f__default.default.gray700,boxSizing:"border-box",transition:`color ${f__default.default.transitionDurationShort} ${f__default.default.transitionEasingCubicBezier}`,borderRadius:f__default.default.borderRadiusMedium,"&:hover":{backgroundColor:f36Utils.hexToRGBA(f__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 ${f__default.default.transitionDurationShort} ${f__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:f__default.default.zIndexDefault}},u(`inset ${f__default.default.glowPrimary}`)),navbarItemMenuTrigger:emotion.css({paddingRight:f__default.default.spacingXs}),isActive:ye()}),Pe=()=>({itemSkeleton:emotion.css(Ie)});var Se=()=>({navbarItemIcon:emotion.css({fill:f__default.default.gray700,"&:first-child":{marginRight:f__default.default.spacing2Xs},"&:last-child":{marginLeft:f__default.default.spacing2Xs},"img&":{borderRadius:f__default.default.borderRadiusSmall,maxWidth:f__default.default.spacingM,maxHeight:f__default.default.spacingM}})});var z=e=>{var n,a;let{icon:t,variant:o}=e,r=Se();return v__default.default.cloneElement(t,{className:emotion.cx(t.props.className,r.navbarItemIcon),size:(n=t.props.size)!=null?n:"tiny",variant:(a=t.props.variant)!=null?a:o})};var Me=f36Icon.generateIcon({name:"CircleIcon",viewBox:"0 0 24 24",path:v__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 we=f36Icon.generateIcon({name:"ArrowDownIcon",viewBox:"0 0 12 20",path:v__default.default.createElement("path",{d:"M3.03076 8C2.20109 8 1.73228 8.95209 2.23814 9.60971L5.20727 13.4696C5.60757 13.99 6.39223 13.99 6.79252 13.4696L9.76166 9.60971C10.2675 8.95209 9.79871 8 8.96904 8L3.03076 8Z",fill:"#9FA8B2"})});var Ae=f36Icon.generateIcon({name:"HelpIcon",viewBox:"0 0 24 24",path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("g",{clipPath:"url(#HelpIcon_svg__a)"},v__default.default.createElement("path",{d:"M12 2.25A9.75 9.75 0 1 0 21.75 12 9.769 9.769 0 0 0 12 2.25ZM12 18a1.125 1.125 0 1 1 0-2.25A1.125 1.125 0 0 1 12 18Zm.75-4.584v.084a.75.75 0 1 1-1.5 0v-.75A.75.75 0 0 1 12 12a1.875 1.875 0 1 0-1.875-1.875.75.75 0 1 1-1.5 0 3.375 3.375 0 1 1 4.125 3.29Z",fill:"currentFill"})),v__default.default.createElement("defs",null,v__default.default.createElement("clipPath",{id:"HelpIcon_svg__a"},v__default.default.createElement("path",{fill:"currentFill",d:"M0 0h24v24H0z"}))))});var Ee=f36Icon.generateIcon({name:"SearchIcon",viewBox:"0 0 24 24",path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("g",{clipPath:"url(#SearchIcon_svg__a)"},v__default.default.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M6 11.125a5.125 5.125 0 1 1 10.25 0 5.125 5.125 0 0 1-10.25 0ZM11.125 4a7.125 7.125 0 1 0 4.282 12.82l2.886 2.887a1 1 0 0 0 1.414-1.414l-2.886-2.887A7.125 7.125 0 0 0 11.125 4Z",fill:"currentFill"})),v__default.default.createElement("defs",null,v__default.default.createElement("clipPath",{id:"SearchIcon_svg__a"},v__default.default.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"}))))});var Te=f36Icon.generateIcon({name:"ContentfulLogoIcon",viewBox:"0 0 24 24",path:v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement("g",{clipPath:"url(#a)"},v__default.default.createElement("path",{d:"M8.71 3.007c.844.843 1.17 2.078.844 3.228a6.683 6.683 0 0 1 3.444-.953h.025a6.701 6.701 0 0 1 4.743 1.988 2.637 2.637 0 0 0 3.73.093 2.637 2.637 0 0 0 .094-3.731c-.025-.027-.052-.052-.08-.08A11.95 11.95 0 0 0 13.036.006h-.046a11.92 11.92 0 0 0-6.691 2.038h.074c.876 0 1.715.346 2.335.966l.002-.002Z",fill:"#1773EB"}),v__default.default.createElement("path",{d:"M19.593 16.006c-.696 0-1.365.276-1.86.765a6.706 6.706 0 0 1-4.732 1.953h-.025a6.617 6.617 0 0 1-3.446-.97c.079.287.117.584.117.882a3.3 3.3 0 0 1-3.299 3.3h-.087a11.929 11.929 0 0 0 6.696 2.07h.046a11.934 11.934 0 0 0 8.45-3.486 2.64 2.64 0 0 0-1.857-4.514h-.003Z",fill:"#E44F20"}),v__default.default.createElement("path",{d:"M4.013 16.301a3.283 3.283 0 0 1 2.335-.967c.303 0 .604.041.893.123a6.696 6.696 0 0 1 .014-6.928 3.302 3.302 0 0 1-4.176-3.187v-.09a12 12 0 0 0-.033 13.452v-.068c0-.877.344-1.715.967-2.335Z",fill:"#FFDA00"}),v__default.default.createElement("path",{d:"M6.378 2.627c-.751 0-1.275.311-1.912.948-.606.606-.797 1.136-.8 1.767a2.712 2.712 0 1 0 5.427-.003A2.713 2.713 0 0 0 6.38 2.627h-.003Z",fill:"#1773EB"}),v__default.default.createElement("path",{d:"M3.628 18.639c0 .748.311 1.275.948 1.912.606.606 1.136.8 1.767.8a2.703 2.703 0 1 0-.017-5.408 2.703 2.703 0 0 0-2.695 2.704v-.008h-.003Z",fill:"#E44F20"})),v__default.default.createElement("defs",null,v__default.default.createElement("clipPath",{id:"a"},v__default.default.createElement("path",{fill:"#fff",d:"M0 0h24v24H0z"}))))});var Mt="button";function wt(e,t){let w=e,{as:o=Mt,icon:r,title:n,children:a,className:p,isActive:l,testId:m="cf-ui-navbar-item",onOpen:g,onClose:M}=w,N=c(w,["as","icon","title","children","className","isActive","testId","onOpen","onClose"]),y=xe(),F=At(e),X=v__default.default.createElement(o,s(i({},N),{ref:t,"data-test-id":m,className:emotion.cx(y.navbarItem,F&&y.navbarItemMenuTrigger,l&&y.isActive,p)}),r&&v__default.default.createElement(z,{icon:r,variant:"secondary"}),v__default.default.createElement("span",null,n),F&&v__default.default.createElement(we,null));return F?v__default.default.createElement(C,{trigger:X,testId:m,onOpen:g,onClose:M},a):X}var At=e=>!!e.children,oe=v__default.default.forwardRef(wt);var re=({estimatedWidth:e})=>{let t=Pe();return v__default.default.createElement(f36Skeleton.SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:f__default.default.gray300,foregroundColor:f__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:f__default.default.borderRadiusSmall,radiusY:f__default.default.borderRadiusSmall}))};var ke=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var Ht="button";function Lt(e,t){let g=e,{as:o=Ht,icon:r,title:n,className:a}=g,p=c(g,["as","icon","title","className"]),l=ke(),m=Rt(e);return v__default.default.createElement(f36Menu.Menu.Item,s(i({},p),{ref:t,as:o,className:emotion.cx(l.navbarMenuItem,a)}),r?v__default.default.createElement(z,{icon:r,variant:"secondary"}):m&&Be,v__default.default.createElement("span",null,n),r&&m?Be:null)}var Be=v__default.default.createElement(z,{icon:v__default.default.createElement(f36Icons.ExternalLinkIcon,null),variant:"muted"}),Rt=e=>e.as==="a"&&e.target==="_blank",ae=v__default.default.forwardRef(Lt);var ne=({ariaLabel:e})=>v__default.default.createElement(f36Menu.Menu.Item,null,v__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:f__default.default.spacingXs},v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},v__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},v__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var He=()=>({navbarSwitcher:emotion.css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:f__default.default.gray700,cursor:"pointer",fontSize:f__default.default.fontSizeS,fontWeight:f__default.default.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:after":{content:'""',border:"1px solid #353A41",boxSizing:"border-box",height:"16px",right:"-1px",position:"absolute",width:0},"&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},u()),switcherMenuIcon:emotion.css({height:f__default.default.spacingM,width:f__default.default.spacingM,fill:f__default.default.gray700}),switcherBreadcrumbs:emotion.css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function Xt(e,t){let m=e,{children:o,className:r,logo:n,testId:a="cf-ui-navbar-switcher"}=m,p=c(m,["children","className","logo","testId"]),l=He();return v__default.default.createElement(f36Core.Flex,s(i({},p),{as:"button",ref:t,className:emotion.cx(l.navbarSwitcher,r),testId:a,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),n||v__default.default.createElement(Te,null),v__default.default.createElement(f36Icons.MenuIcon,{size:"small",className:l.switcherMenuIcon}),v__default.default.createElement(f36Core.Flex,{as:"ul",alignItems:"center",className:l.switcherBreadcrumbs},o))}var se=v__default.default.forwardRef(Xt);var pe=({estimatedWidth:e})=>v__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:f__default.default.gray300,foregroundColor:f__default.default.gray200},v__default.default.createElement(f36Skeleton.SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Oe=()=>({navbarSearch:emotion.css({minWidth:"24px",width:"24px",minHeight:"24px",height:"24px",svg:{fill:f__default.default.gray700}},u())});function Qt(e,t){let p=e,{className:o,testId:r="cf-ui-navbar-search"}=p,n=c(p,["className","testId"]),a=Oe();return v__default.default.createElement(f36Button.IconButton,s(i({"aria-label":"Quick Search"},n),{variant:"transparent",ref:t,size:"small",className:emotion.cx(a.navbarSearch,o),testId:r,icon:v__default.default.createElement(Ee,{size:"medium"})}))}var We=v__default.default.forwardRef(Qt);var ze={display:"none","&:first-child":{display:"block"},[I.medium]:{display:"block","&:first-child":{display:"none"}}},De=()=>({breadcrumbsItem:emotion.css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${f__default.default.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${f__default.default.spacingXs}`,height:f__default.default.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:f__default.default.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[I.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:f__default.default.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:f__default.default.fontStackMonospace,fontSize:f__default.default.fontSizeS,fontWeight:f__default.default.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[I.large]:{maxWidth:"100%"}},"> div":{[I.medium]:{gap:f__default.default.spacing2Xs}}}}),breadcrumbsItemCircle:emotion.css({border:`solid 1px ${f__default.default.gray300}`,borderRadius:"50%",color:f__default.default.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:f__default.default.spacingL,height:f__default.default.spacingL}),breadcrumbsItemEnvMaster:emotion.css({color:f__default.default.green600," svg":s(i({},ze),{fill:f__default.default.green600})}),breadcrumbsItemEnvNonMaster:emotion.css({color:f__default.default.orange500,svg:s(i({},ze),{fill:f__default.default.orange500})})});function Ge({isAlias:e}){return v__default.default.createElement(v__default.default.Fragment,null,v__default.default.createElement(Me,{key:"mobile-icon",size:"tiny"}),e?v__default.default.createElement(f36Icons.EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):v__default.default.createElement(f36Icons.EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function oo(e,t){let N=e,{children:o,isCircle:r,className:n,envVariant:a,isAlias:p,testId:l="cf-ui-navbar-switcher-item"}=N,m=c(N,["children","isCircle","className","envVariant","isAlias","testId"]),g=De(),M=emotion.cx(g.breadcrumbsItem,n,{[g.breadcrumbsItemCircle]:r,[g.breadcrumbsItemEnvMaster]:a==="master",[g.breadcrumbsItemEnvNonMaster]:a==="non-master"});return v__default.default.createElement("li",s(i({},m),{ref:t,className:M,"data-test-id":l}),v__default.default.createElement(f36Core.Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},a&&v__default.default.createElement(Ge,{isAlias:p}),v__default.default.createElement("span",null,o)))}var Ve=v__default.default.forwardRef(oo);var Xe=()=>({navbarHelp:emotion.css({fontSize:f__default.default.fontSizeS,padding:`0 ${f__default.default.spacing2Xs}`,width:"max-content",minHeight:"24px",height:"24px",color:f__default.default.gray700,svg:{fill:f__default.default.gray700}},u())});function io(e,t){let l=e,{children:o,className:r,testId:n="cf-ui-navbar-help-trigger"}=l,a=c(l,["children","className","testId"]),p=Xe();return v__default.default.createElement(C,{testId:"cf-ui-navbar-help-menu",trigger:v__default.default.createElement(f36Button.Button,s(i({"aria-label":"Help Menu"},a),{as:"button",ref:t,className:emotion.cx(p.navbarHelp,r),testId:n,variant:"transparent",size:"small",startIcon:v__default.default.createElement(Ae,{size:"medium"})}),"Help")},o)}var $e=v__default.default.forwardRef(io);var Ue=()=>({navbarBadge:emotion.css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${f__default.default.purple600}`,margin:0,outline:"none",fontSize:f__default.default.fontSizeS,lineHeight:f__default.default.lineHeightS,fontWeight:f__default.default.fontWeightMedium,textAlign:"center",padding:`0 ${f__default.default.spacingXs}`,textDecoration:"none",color:`${f__default.default.purple600}!important`,borderRadius:"1.75rem"})});var mo="div";function co(e,t){let m=e,{as:o=mo,children:r,className:n,testId:a="cf-ui-navbar-badge"}=m,p=c(m,["as","children","className","testId"]),l=Ue();return v__default.default.createElement(o,s(i({},p),{ref:t,className:emotion.cx(l.navbarBadge,n),"data-test-id":a}),r)}var je=v__default.default.forwardRef(co);var qe=()=>({navbarTopItem:emotion.css({margin:0,background:"none",border:"1px solid",borderColor:"transparent",cursor:"pointer",display:"flex",gap:f__default.default.spacing2Xs,alignItems:"center",lineHeight:f__default.default.lineHeightDefault,color:f__default.default.gray700,padding:`0 ${f__default.default.spacing2Xs}`,minHeight:"24px",fontSize:f__default.default.fontSizeS,fontWeight:f__default.default.fontWeightMedium,outline:"none",borderRadius:f__default.default.borderRadiusMedium,"&:hover":{backgroundColor:f36Utils.hexToRGBA(f__default.default.gray900,.05)},svg:{fill:"currentColor"}},u())});var go="button";function uo(e,t){let m=e,{as:o=go,children:r,className:n,testId:a="cf-ui-navbar-topbar-item"}=m,p=c(m,["as","children","className","testId"]),l=qe();return v__default.default.createElement(o,s(i({},p),{ref:t,className:emotion.cx(l.navbarTopItem,n),"data-test-id":a}),r)}var Qe=v__default.default.forwardRef(uo);var b=ge;b.Item=oe;b.ItemSkeleton=re;b.MenuItem=ae;b.MenuItemSkeleton=ne;b.MenuDivider=f36Menu.MenuDivider;b.MenuSectionTitle=f36Menu.MenuSectionTitle;b.Switcher=se;b.SwitcherSkeleton=pe;b.SwitcherItem=Ve;b.Search=We;b.Help=$e;b.Account=ee;b.AccountSkeleton=te;b.Badge=je;b.TopbarItem=Qe;
|
|
20
21
|
|
|
21
22
|
exports.Navbar = b;
|
|
22
23
|
exports.getNavbarItemActiveStyles = ye;
|
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/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/icons/CircleIcon.tsx","../src/icons/ArrowDownIcon.tsx","../src/icons/HelpIcon.tsx","../src/icons/SearchIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../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/NavbarSearch/NavbarSearch.tsx","../src/NavbarSearch/NavbarSearch.styles.ts","../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../src/NavbarHelp/NavbarHelp.tsx","../src/NavbarHelp/NavbarHelp.styles.ts","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarBadge/NavbarBadge.styles.ts","../src/NavbarTopbarItem/NavbarTopbarItem.tsx","../src/NavbarTopbarItem/NavbarTopbarItem.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","_Navbar","props","ref","_a","children","account","search","switcher","help","badge","bottomRightItems","topRightItems","contentMaxWidth","testId","className","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","onOpen","onClose","_NavbarAccount","avatar","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","_b","icon","generateIcon","CircleIcon","ArrowDownIcon","HelpIcon","SearchIcon","ContentfulLogoIcon","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","title","isActive","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ExternalLinkIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","MenuIcon","_NavbarSwitcher","logo","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","IconButton","getNavbarSearchStyles","_NavbarSearch","NavbarSearch","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","Button","getNavbarHelpStyles","_NavbarHelp","NavbarHelp","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge","getNavbarTopbarItemStyles","_NavbarTopbarItem","NavbarTopbarItem"],"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 { NavbarSearch } from './NavbarSearch/NavbarSearch';\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarHelp } from './NavbarHelp/NavbarHelp';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\nimport { NavbarTopbarItem } from './NavbarTopbarItem/NavbarTopbarItem';\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 Search: typeof NavbarSearch;\n Help: typeof NavbarHelp;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n TopbarItem: typeof NavbarTopbarItem;\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.Search = NavbarSearch;\nNavbar.Help = NavbarHelp;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\nNavbar.TopbarItem = NavbarTopbarItem;\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';\ntype NavbarOwnProps = CommonProps & {\n children?: React.ReactNode;\n account?: React.ReactNode;\n search?: React.ReactNode;\n switcher?: React.ReactNode;\n help?: React.ReactNode;\n badge?: React.ReactNode;\n /**\n * Items that will be rendered on the bottom-right of the navbar.\n * Useful for separating other navigation items from main ones, (e.g. separating \"Settings\" from all other navigation items).\n */\n bottomRightItems?: React.ReactNode;\n /**\n * Items that will be rendered on the top-right of the navbar.\n * Useful for providing additional context or actions to the user (e.g. a Feedback form link).\n */\n topRightItems?: React.ReactNode;\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n /**\n * Describes the size variation of the navbar\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 children,\n account,\n search,\n switcher,\n help,\n badge,\n bottomRightItems,\n topRightItems,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n className,\n variant = 'wide',\n ...otherProps\n } = props;\n const styles = getNavbarStyles(contentMaxWidth, variant);\n\n return (\n <Box {...otherProps} ref={ref} testId={testId} className={className}>\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex>{switcher}</Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {topRightItems}\n {badge}\n {search}\n {help}\n {account}\n </Flex>\n </Flex>\n </Flex>\n\n <Flex className={styles.containerBottom}>\n <Flex\n className={styles.containerBottomContent}\n justifyContent=\"space-between\"\n >\n <Flex as=\"nav\" aria-label=\"Main Navigation\">\n {children}\n </Flex>\n {bottomRightItems && <Flex>{bottomRightItems}</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});\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 { cx } from 'emotion';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar: 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 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 >\n <img\n src={avatar}\n alt={`Avatar for user ${username}`}\n className={styles.avatar}\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 { ArrowDownIcon } 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 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 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 >\n {icon && <NavbarItemIcon icon={icon} variant=\"secondary\" />}\n <span>{title}</span>\n {isMenuTrigger && <ArrowDownIcon />}\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 '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: `calc(100% - ${tokens.spacingM})`,\n height: '2px',\n bottom: `-${tokens.spacing2Xs}`,\n left: 0,\n right: 0,\n margin: 'auto',\n backgroundColor: tokens.blue600,\n zIndex: 0,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingS}`,\n alignItems: 'center',\n background: 'none',\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: 0,\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.gray700,\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(`inset ${tokens.glowPrimary}`),\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, 'variant'>;\n\nexport const NavbarItemIcon = (props: NavbarItemIconProps) => {\n const { icon, variant } = props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(icon.props.className, styles.navbarItemIcon),\n size: icon.props.size ?? 'tiny',\n variant: icon.props.variant ?? variant,\n });\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n fill: tokens.gray700,\n '&:first-child': {\n marginRight: tokens.spacing2Xs,\n },\n '&:last-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 { generateIcon } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIcon({\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 { generateIcon } from '@contentful/f36-icon';\n\nexport const ArrowDownIcon = /*#__PURE__*/ generateIcon({\n name: 'ArrowDownIcon',\n viewBox: '0 0 12 20',\n path: (\n <path\n d=\"M3.03076 8C2.20109 8 1.73228 8.95209 2.23814 9.60971L5.20727 13.4696C5.60757 13.99 6.39223 13.99 6.79252 13.4696L9.76166 9.60971C10.2675 8.95209 9.79871 8 8.96904 8L3.03076 8Z\"\n fill=\"#9FA8B2\"\n />\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const HelpIcon = /*#__PURE__*/ generateIcon({\n name: 'HelpIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#HelpIcon_svg__a)\">\n <path\n d=\"M12 2.25A9.75 9.75 0 1 0 21.75 12 9.769 9.769 0 0 0 12 2.25ZM12 18a1.125 1.125 0 1 1 0-2.25A1.125 1.125 0 0 1 12 18Zm.75-4.584v.084a.75.75 0 1 1-1.5 0v-.75A.75.75 0 0 1 12 12a1.875 1.875 0 1 0-1.875-1.875.75.75 0 1 1-1.5 0 3.375 3.375 0 1 1 4.125 3.29Z\"\n fill=\"currentFill\"\n />\n </g>\n <defs>\n <clipPath id=\"HelpIcon_svg__a\">\n <path fill=\"currentFill\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </>\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const SearchIcon = /*#__PURE__*/ generateIcon({\n name: 'SearchIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#SearchIcon_svg__a)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 11.125a5.125 5.125 0 1 1 10.25 0 5.125 5.125 0 0 1-10.25 0ZM11.125 4a7.125 7.125 0 1 0 4.282 12.82l2.886 2.887a1 1 0 0 0 1.414-1.414l-2.886-2.887A7.125 7.125 0 0 0 11.125 4Z\"\n fill=\"currentFill\"\n />\n </g>\n <defs>\n <clipPath id=\"SearchIcon_svg__a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </>\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIcon({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#a)\">\n <path\n d=\"M8.71 3.007c.844.843 1.17 2.078.844 3.228a6.683 6.683 0 0 1 3.444-.953h.025a6.701 6.701 0 0 1 4.743 1.988 2.637 2.637 0 0 0 3.73.093 2.637 2.637 0 0 0 .094-3.731c-.025-.027-.052-.052-.08-.08A11.95 11.95 0 0 0 13.036.006h-.046a11.92 11.92 0 0 0-6.691 2.038h.074c.876 0 1.715.346 2.335.966l.002-.002Z\"\n fill=\"#1773EB\"\n />\n <path\n d=\"M19.593 16.006c-.696 0-1.365.276-1.86.765a6.706 6.706 0 0 1-4.732 1.953h-.025a6.617 6.617 0 0 1-3.446-.97c.079.287.117.584.117.882a3.3 3.3 0 0 1-3.299 3.3h-.087a11.929 11.929 0 0 0 6.696 2.07h.046a11.934 11.934 0 0 0 8.45-3.486 2.64 2.64 0 0 0-1.857-4.514h-.003Z\"\n fill=\"#E44F20\"\n />\n <path\n d=\"M4.013 16.301a3.283 3.283 0 0 1 2.335-.967c.303 0 .604.041.893.123a6.696 6.696 0 0 1 .014-6.928 3.302 3.302 0 0 1-4.176-3.187v-.09a12 12 0 0 0-.033 13.452v-.068c0-.877.344-1.715.967-2.335Z\"\n fill=\"#FFDA00\"\n />\n <path\n d=\"M6.378 2.627c-.751 0-1.275.311-1.912.948-.606.606-.797 1.136-.8 1.767a2.712 2.712 0 1 0 5.427-.003A2.713 2.713 0 0 0 6.38 2.627h-.003Z\"\n fill=\"#1773EB\"\n />\n <path\n d=\"M3.628 18.639c0 .748.311 1.275.948 1.912.606.606 1.136.8 1.767.8a2.703 2.703 0 1 0-.017-5.408 2.703 2.703 0 0 0-2.695 2.704v-.008h-.003Z\"\n fill=\"#E44F20\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\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 { ExternalLinkIcon } 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} variant=\"secondary\" />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = (\n <NavbarItemIcon icon={<ExternalLinkIcon />} variant=\"muted\" />\n);\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 { MenuIcon } from '@contentful/f36-icons';\nimport { cx } from 'emotion';\nimport { ContentfulLogoIcon } from '../icons';\n\ntype NavbarSwitcherOwnProps = CommonProps & {\n children?: React.ReactNode;\n /**\n * Will be displayed instead of the default Contentful logo\n */\n logo?: 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 logo,\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 {logo || <ContentfulLogoIcon />}\n <MenuIcon size=\"small\" className={styles.switcherMenuIcon} />\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\n '&:after': {\n content: '\"\"',\n border: '1px solid #353A41',\n boxSizing: 'border-box',\n height: '16px',\n right: '-1px',\n position: 'absolute',\n width: 0,\n },\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 { cx } from 'emotion';\nimport React from 'react';\nimport { SearchIcon } from '../icons';\nimport {\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\nimport { IconButton } from '@contentful/f36-button';\nimport { getNavbarSearchStyles } from './NavbarSearch.styles';\ntype NavbarSearchOwnProps = CommonProps;\n\nexport type NavbarSearchProps = PropsWithHTMLElement<\n NavbarSearchOwnProps,\n 'button'\n>;\n\nfunction _NavbarSearch(\n props: ExpandProps<NavbarSearchProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const { className, testId = 'cf-ui-navbar-search', ...otherProps } = props;\n const styles = getNavbarSearchStyles();\n return (\n <IconButton\n aria-label=\"Quick Search\"\n {...otherProps}\n variant=\"transparent\"\n ref={ref}\n size=\"small\"\n className={cx(styles.navbarSearch, className)}\n testId={testId}\n icon={<SearchIcon size=\"medium\" />}\n />\n );\n}\n\nexport const NavbarSearch = React.forwardRef(_NavbarSearch);\n","import { css } from 'emotion';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarSearchStyles = () => ({\n navbarSearch: css(\n {\n // default button reset styles\n minWidth: '24px',\n width: '24px',\n minHeight: '24px',\n height: '24px',\n svg: {\n fill: tokens.gray700,\n },\n },\n getGlowOnFocusStyles(),\n ),\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 { HelpIcon } from '../icons';\nimport {\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { getNavbarHelpStyles } from './NavbarHelp.styles';\n\ntype NavbarHelpOwnProps = CommonProps & {\n children: React.ReactNode;\n};\n\nexport type NavbarHelpProps = PropsWithHTMLElement<\n NavbarHelpOwnProps,\n 'button'\n>;\n\nfunction _NavbarHelp(\n props: ExpandProps<NavbarHelpProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-help-trigger',\n ...otherProps\n } = props;\n\n const styles = getNavbarHelpStyles();\n\n return (\n <NavbarMenu\n testId=\"cf-ui-navbar-help-menu\"\n trigger={\n <Button\n aria-label=\"Help Menu\"\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarHelp, className)}\n testId={testId}\n variant=\"transparent\"\n size=\"small\"\n startIcon={<HelpIcon size=\"medium\" />}\n >\n Help\n </Button>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nexport const NavbarHelp = React.forwardRef(_NavbarHelp);\n","import { css } from 'emotion';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarHelpStyles = () => ({\n navbarHelp: css(\n {\n // default button reset styles\n fontSize: tokens.fontSizeS,\n padding: `0 ${tokens.spacing2Xs}`,\n width: 'max-content',\n minHeight: '24px',\n height: '24px',\n color: tokens.gray700,\n svg: {\n fill: tokens.gray700,\n },\n },\n getGlowOnFocusStyles(),\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","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarTopbarItemStyles } from './NavbarTopbarItem.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'button';\n\ntype NavbarTopbarItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n};\n\nexport type NavbarTopbarItemProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarTopbarItemOwnProps, E>;\n\nfunction _NavbarTopbarItem<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n>(props: NavbarTopbarItemProps<E>, ref: React.Ref<any>) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-topbar-item',\n ...otherProps\n } = props;\n const styles = getNavbarTopbarItemStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarTopItem, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nexport const NavbarTopbarItem: PolymorphicComponent<\n ExpandProps<NavbarTopbarItemOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarTopbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\nexport const getNavbarTopbarItemStyles = () => ({\n navbarTopItem: css(\n {\n // default button reset styles\n margin: 0,\n background: 'none',\n border: '1px solid',\n borderColor: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n gap: tokens.spacing2Xs,\n alignItems: 'center',\n lineHeight: tokens.lineHeightDefault,\n color: tokens.gray700,\n padding: `0 ${tokens.spacing2Xs}`,\n minHeight: '24px',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n outline: 'none',\n borderRadius: tokens.borderRadiusMedium,\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n svg: {\n fill: 'currentColor',\n },\n },\n getGlowOnFocusStyles(),\n ),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/CompoundNavbar.ts","../src/Navbar.tsx","../src/Navbar.styles.ts","../src/utils.styles.ts","../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/icons/CircleIcon.tsx","../src/icons/ArrowDownIcon.tsx","../src/icons/HelpIcon.tsx","../src/icons/SearchIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../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/NavbarSearch/NavbarSearch.tsx","../src/NavbarSearch/NavbarSearch.styles.ts","../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../src/NavbarHelp/NavbarHelp.tsx","../src/NavbarHelp/NavbarHelp.styles.ts","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarBadge/NavbarBadge.styles.ts","../src/NavbarTopbarItem/NavbarTopbarItem.tsx","../src/NavbarTopbarItem/NavbarTopbarItem.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","_Navbar","props","ref","_a","children","account","search","switcher","help","badge","bottomRightItems","topRightItems","contentMaxWidth","testId","className","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","_b","icon","generateIcon","CircleIcon","ArrowDownIcon","HelpIcon","SearchIcon","ContentfulLogoIcon","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","title","isActive","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ExternalLinkIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","MenuIcon","_NavbarSwitcher","logo","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","IconButton","getNavbarSearchStyles","_NavbarSearch","NavbarSearch","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","Button","getNavbarHelpStyles","_NavbarHelp","NavbarHelp","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge","getNavbarTopbarItemStyles","_NavbarTopbarItem","NavbarTopbarItem"],"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 { NavbarSearch } from './NavbarSearch/NavbarSearch';\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarHelp } from './NavbarHelp/NavbarHelp';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\nimport { NavbarTopbarItem } from './NavbarTopbarItem/NavbarTopbarItem';\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 Search: typeof NavbarSearch;\n Help: typeof NavbarHelp;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n TopbarItem: typeof NavbarTopbarItem;\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.Search = NavbarSearch;\nNavbar.Help = NavbarHelp;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\nNavbar.TopbarItem = NavbarTopbarItem;\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';\ntype NavbarOwnProps = CommonProps & {\n children?: React.ReactNode;\n account?: React.ReactNode;\n search?: React.ReactNode;\n switcher?: React.ReactNode;\n help?: React.ReactNode;\n badge?: React.ReactNode;\n /**\n * Items that will be rendered on the bottom-right of the navbar.\n * Useful for separating other navigation items from main ones, (e.g. separating \"Settings\" from all other navigation items).\n */\n bottomRightItems?: React.ReactNode;\n /**\n * Items that will be rendered on the top-right of the navbar.\n * Useful for providing additional context or actions to the user (e.g. a Feedback form link).\n */\n topRightItems?: React.ReactNode;\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n /**\n * Describes the size variation of the navbar\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 children,\n account,\n search,\n switcher,\n help,\n badge,\n bottomRightItems,\n topRightItems,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n className,\n variant = 'wide',\n ...otherProps\n } = props;\n const styles = getNavbarStyles(contentMaxWidth, variant);\n\n return (\n <Box {...otherProps} ref={ref} testId={testId} className={className}>\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex>{switcher}</Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {topRightItems}\n {badge}\n {search}\n {help}\n {account}\n </Flex>\n </Flex>\n </Flex>\n\n <Flex className={styles.containerBottom}>\n <Flex\n className={styles.containerBottomContent}\n justifyContent=\"space-between\"\n >\n <Flex as=\"nav\" aria-label=\"Main Navigation\">\n {children}\n </Flex>\n {bottomRightItems && <Flex>{bottomRightItems}</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});\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 { 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 >\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 { ArrowDownIcon } 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 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 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 >\n {icon && <NavbarItemIcon icon={icon} variant=\"secondary\" />}\n <span>{title}</span>\n {isMenuTrigger && <ArrowDownIcon />}\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 '&::after': {\n content: '\"\"',\n position: 'absolute',\n width: `calc(100% - ${tokens.spacingM})`,\n height: '2px',\n bottom: `-${tokens.spacing2Xs}`,\n left: 0,\n right: 0,\n margin: 'auto',\n backgroundColor: tokens.blue600,\n zIndex: 0,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingS}`,\n alignItems: 'center',\n background: 'none',\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: 0,\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.gray700,\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(`inset ${tokens.glowPrimary}`),\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, 'variant'>;\n\nexport const NavbarItemIcon = (props: NavbarItemIconProps) => {\n const { icon, variant } = props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(icon.props.className, styles.navbarItemIcon),\n size: icon.props.size ?? 'tiny',\n variant: icon.props.variant ?? variant,\n });\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n fill: tokens.gray700,\n '&:first-child': {\n marginRight: tokens.spacing2Xs,\n },\n '&:last-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 { generateIcon } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIcon({\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 { generateIcon } from '@contentful/f36-icon';\n\nexport const ArrowDownIcon = /*#__PURE__*/ generateIcon({\n name: 'ArrowDownIcon',\n viewBox: '0 0 12 20',\n path: (\n <path\n d=\"M3.03076 8C2.20109 8 1.73228 8.95209 2.23814 9.60971L5.20727 13.4696C5.60757 13.99 6.39223 13.99 6.79252 13.4696L9.76166 9.60971C10.2675 8.95209 9.79871 8 8.96904 8L3.03076 8Z\"\n fill=\"#9FA8B2\"\n />\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const HelpIcon = /*#__PURE__*/ generateIcon({\n name: 'HelpIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#HelpIcon_svg__a)\">\n <path\n d=\"M12 2.25A9.75 9.75 0 1 0 21.75 12 9.769 9.769 0 0 0 12 2.25ZM12 18a1.125 1.125 0 1 1 0-2.25A1.125 1.125 0 0 1 12 18Zm.75-4.584v.084a.75.75 0 1 1-1.5 0v-.75A.75.75 0 0 1 12 12a1.875 1.875 0 1 0-1.875-1.875.75.75 0 1 1-1.5 0 3.375 3.375 0 1 1 4.125 3.29Z\"\n fill=\"currentFill\"\n />\n </g>\n <defs>\n <clipPath id=\"HelpIcon_svg__a\">\n <path fill=\"currentFill\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </>\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const SearchIcon = /*#__PURE__*/ generateIcon({\n name: 'SearchIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#SearchIcon_svg__a)\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6 11.125a5.125 5.125 0 1 1 10.25 0 5.125 5.125 0 0 1-10.25 0ZM11.125 4a7.125 7.125 0 1 0 4.282 12.82l2.886 2.887a1 1 0 0 0 1.414-1.414l-2.886-2.887A7.125 7.125 0 0 0 11.125 4Z\"\n fill=\"currentFill\"\n />\n </g>\n <defs>\n <clipPath id=\"SearchIcon_svg__a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\n </>\n ),\n});\n","import React from 'react';\nimport { generateIcon } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIcon({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 24 24',\n path: (\n <>\n <g clipPath=\"url(#a)\">\n <path\n d=\"M8.71 3.007c.844.843 1.17 2.078.844 3.228a6.683 6.683 0 0 1 3.444-.953h.025a6.701 6.701 0 0 1 4.743 1.988 2.637 2.637 0 0 0 3.73.093 2.637 2.637 0 0 0 .094-3.731c-.025-.027-.052-.052-.08-.08A11.95 11.95 0 0 0 13.036.006h-.046a11.92 11.92 0 0 0-6.691 2.038h.074c.876 0 1.715.346 2.335.966l.002-.002Z\"\n fill=\"#1773EB\"\n />\n <path\n d=\"M19.593 16.006c-.696 0-1.365.276-1.86.765a6.706 6.706 0 0 1-4.732 1.953h-.025a6.617 6.617 0 0 1-3.446-.97c.079.287.117.584.117.882a3.3 3.3 0 0 1-3.299 3.3h-.087a11.929 11.929 0 0 0 6.696 2.07h.046a11.934 11.934 0 0 0 8.45-3.486 2.64 2.64 0 0 0-1.857-4.514h-.003Z\"\n fill=\"#E44F20\"\n />\n <path\n d=\"M4.013 16.301a3.283 3.283 0 0 1 2.335-.967c.303 0 .604.041.893.123a6.696 6.696 0 0 1 .014-6.928 3.302 3.302 0 0 1-4.176-3.187v-.09a12 12 0 0 0-.033 13.452v-.068c0-.877.344-1.715.967-2.335Z\"\n fill=\"#FFDA00\"\n />\n <path\n d=\"M6.378 2.627c-.751 0-1.275.311-1.912.948-.606.606-.797 1.136-.8 1.767a2.712 2.712 0 1 0 5.427-.003A2.713 2.713 0 0 0 6.38 2.627h-.003Z\"\n fill=\"#1773EB\"\n />\n <path\n d=\"M3.628 18.639c0 .748.311 1.275.948 1.912.606.606 1.136.8 1.767.8a2.703 2.703 0 1 0-.017-5.408 2.703 2.703 0 0 0-2.695 2.704v-.008h-.003Z\"\n fill=\"#E44F20\"\n />\n </g>\n <defs>\n <clipPath id=\"a\">\n <path fill=\"#fff\" d=\"M0 0h24v24H0z\" />\n </clipPath>\n </defs>\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 { ExternalLinkIcon } 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} variant=\"secondary\" />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = (\n <NavbarItemIcon icon={<ExternalLinkIcon />} variant=\"muted\" />\n);\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 { MenuIcon } from '@contentful/f36-icons';\nimport { cx } from 'emotion';\nimport { ContentfulLogoIcon } from '../icons';\n\ntype NavbarSwitcherOwnProps = CommonProps & {\n children?: React.ReactNode;\n /**\n * Will be displayed instead of the default Contentful logo\n */\n logo?: 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 logo,\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 {logo || <ContentfulLogoIcon />}\n <MenuIcon size=\"small\" className={styles.switcherMenuIcon} />\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\n '&:after': {\n content: '\"\"',\n border: '1px solid #353A41',\n boxSizing: 'border-box',\n height: '16px',\n right: '-1px',\n position: 'absolute',\n width: 0,\n },\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 { cx } from 'emotion';\nimport React from 'react';\nimport { SearchIcon } from '../icons';\nimport {\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\nimport { IconButton } from '@contentful/f36-button';\nimport { getNavbarSearchStyles } from './NavbarSearch.styles';\ntype NavbarSearchOwnProps = CommonProps;\n\nexport type NavbarSearchProps = PropsWithHTMLElement<\n NavbarSearchOwnProps,\n 'button'\n>;\n\nfunction _NavbarSearch(\n props: ExpandProps<NavbarSearchProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const { className, testId = 'cf-ui-navbar-search', ...otherProps } = props;\n const styles = getNavbarSearchStyles();\n return (\n <IconButton\n aria-label=\"Quick Search\"\n {...otherProps}\n variant=\"transparent\"\n ref={ref}\n size=\"small\"\n className={cx(styles.navbarSearch, className)}\n testId={testId}\n icon={<SearchIcon size=\"medium\" />}\n />\n );\n}\n\nexport const NavbarSearch = React.forwardRef(_NavbarSearch);\n","import { css } from 'emotion';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarSearchStyles = () => ({\n navbarSearch: css(\n {\n // default button reset styles\n minWidth: '24px',\n width: '24px',\n minHeight: '24px',\n height: '24px',\n svg: {\n fill: tokens.gray700,\n },\n },\n getGlowOnFocusStyles(),\n ),\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 { HelpIcon } from '../icons';\nimport {\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Button } from '@contentful/f36-button';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { getNavbarHelpStyles } from './NavbarHelp.styles';\n\ntype NavbarHelpOwnProps = CommonProps & {\n children: React.ReactNode;\n};\n\nexport type NavbarHelpProps = PropsWithHTMLElement<\n NavbarHelpOwnProps,\n 'button'\n>;\n\nfunction _NavbarHelp(\n props: ExpandProps<NavbarHelpProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-help-trigger',\n ...otherProps\n } = props;\n\n const styles = getNavbarHelpStyles();\n\n return (\n <NavbarMenu\n testId=\"cf-ui-navbar-help-menu\"\n trigger={\n <Button\n aria-label=\"Help Menu\"\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarHelp, className)}\n testId={testId}\n variant=\"transparent\"\n size=\"small\"\n startIcon={<HelpIcon size=\"medium\" />}\n >\n Help\n </Button>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nexport const NavbarHelp = React.forwardRef(_NavbarHelp);\n","import { css } from 'emotion';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarHelpStyles = () => ({\n navbarHelp: css(\n {\n // default button reset styles\n fontSize: tokens.fontSizeS,\n padding: `0 ${tokens.spacing2Xs}`,\n width: 'max-content',\n minHeight: '24px',\n height: '24px',\n color: tokens.gray700,\n svg: {\n fill: tokens.gray700,\n },\n },\n getGlowOnFocusStyles(),\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","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarTopbarItemStyles } from './NavbarTopbarItem.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'button';\n\ntype NavbarTopbarItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n};\n\nexport type NavbarTopbarItemProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarTopbarItemOwnProps, E>;\n\nfunction _NavbarTopbarItem<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n>(props: NavbarTopbarItemProps<E>, ref: React.Ref<any>) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-topbar-item',\n ...otherProps\n } = props;\n const styles = getNavbarTopbarItemStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarTopItem, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nexport const NavbarTopbarItem: PolymorphicComponent<\n ExpandProps<NavbarTopbarItemOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarTopbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\nexport const getNavbarTopbarItemStyles = () => ({\n navbarTopItem: css(\n {\n // default button reset styles\n margin: 0,\n background: 'none',\n border: '1px solid',\n borderColor: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n gap: tokens.spacing2Xs,\n alignItems: 'center',\n lineHeight: tokens.lineHeightDefault,\n color: tokens.gray700,\n padding: `0 ${tokens.spacing2Xs}`,\n minHeight: '24px',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n outline: 'none',\n borderRadius: tokens.borderRadiusMedium,\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n svg: {\n fill: 'currentColor',\n },\n },\n getGlowOnFocusStyles(),\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.6",
|
|
4
4
|
"description": "Forma 36: Navbar component",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsup"
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"@contentful/f36-button": "^4.65.0",
|
|
10
10
|
"@contentful/f36-core": "^4.65.6",
|
|
11
|
+
"@contentful/f36-avatar": "^4.65.6",
|
|
11
12
|
"@contentful/f36-menu": "^4.65.6",
|
|
12
13
|
"@contentful/f36-tokens": "^4.0.1",
|
|
13
14
|
"@contentful/f36-utils": "^4.23.2",
|