@contentful/f36-navbar 5.0.0-alpha.17 → 5.0.0-alpha.19
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/README.mdx +2 -7
- package/dist/esm/index.js +6 -6
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.mts +6 -9
- package/dist/index.d.ts +6 -9
- package/dist/index.js +7 -7
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/README.mdx
CHANGED
|
@@ -6,7 +6,7 @@ isNew: true
|
|
|
6
6
|
slug: /components/navbar/
|
|
7
7
|
github: 'https://github.com/contentful/forma-36/tree/main/packages/components/navbar'
|
|
8
8
|
storybook: 'https://f36-storybook.contentful.com/?path=/story/components-navbar'
|
|
9
|
-
typescript: ./src/Navbar.tsx,./src/NavbarItem/NavbarItem.tsx,./src/NavbarMenuItem/NavbarMenuItem.tsx,./src/NavbarSwitcher/NavbarSwitcher.tsx,./src/
|
|
9
|
+
typescript: ./src/Navbar.tsx,./src/NavbarItem/NavbarItem.tsx,./src/NavbarMenuItem/NavbarMenuItem.tsx,./src/NavbarSwitcher/NavbarSwitcher.tsx,./src/NavbarSearch/NavbarSearch.tsx,./src/NavbarHelp/NavbarHelp.tsx,./src/NavbarAccount/NavbarAccount.tsx,./src/NavbarBadge/NavbarBadge.tsx,./src/NavbarTopbarItem/NavbarTopbarItem.tsx
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
The Navbar component offers a unified navigation experience across all of Contentful's products.
|
|
@@ -31,8 +31,7 @@ You can use following components to build a menu:
|
|
|
31
31
|
1. `<Navbar.MenuItem>`: Represents a menu item used to create dropdown menus. Use it as a child of the `<Navbar.Item>`, `<Navbar.Account>`, or `<Navbar.Help>` components.
|
|
32
32
|
1. `<Navbar.MenuDivider>`: A visual separator for menu items. Use it before or after a `<Navbar.MenuItem>`.
|
|
33
33
|
1. `<Navbar.MenuSectionTitle>`: A title that can be used in the menu list. Use it before or after a `<Navbar.MenuItem>`.
|
|
34
|
-
1. `<Navbar.Switcher>`: Wrapper component for the
|
|
35
|
-
1. `<Navbar.SwitcherItem>`: Represents an item within the `<Navbar.Switcher>`. Use it to render organization, space, and environment information in different states. Use it as a child of the `<Navbar.Switcher>`.
|
|
34
|
+
1. `<Navbar.Switcher>`: Wrapper component for the space and environment information. Use it as a child of the Navbar `switcher` prop.
|
|
36
35
|
1. `<Navbar.Search>`: Trigger for the global search. Use it as a child of the Navbar `search` prop.
|
|
37
36
|
1. `<Navbar.Help>`: Trigger for the help menu. Use it as a child of the Navbar `help` prop.
|
|
38
37
|
1. `<Navbar.Account>`: Trigger for the account menu. Use it as a child of the Navbar `account` prop.
|
|
@@ -95,10 +94,6 @@ You can use following components to build a menu:
|
|
|
95
94
|
|
|
96
95
|
<PropsTable of="NavbarSwitcher" />
|
|
97
96
|
|
|
98
|
-
### Navbar.SwitcherItem
|
|
99
|
-
|
|
100
|
-
<PropsTable of="NavbarSwitcherItem" />
|
|
101
|
-
|
|
102
97
|
### Navbar.Search
|
|
103
98
|
|
|
104
99
|
<PropsTable of="NavbarSearch" />
|
package/dist/esm/index.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { MenuDivider, MenuSectionTitle, Menu } from '@contentful/f36-menu';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { Flex } from '@contentful/f36-core';
|
|
3
|
+
import g from 'react';
|
|
4
4
|
import { cx, css } from 'emotion';
|
|
5
|
-
import
|
|
6
|
-
import {
|
|
5
|
+
import a from '@contentful/f36-tokens';
|
|
6
|
+
import { generateComponentWithVariants, IconVariant, generateIconComponent } from '@contentful/f36-icon';
|
|
7
7
|
import { hexToRGBA } from '@contentful/f36-utils';
|
|
8
8
|
import { Avatar } from '@contentful/f36-avatar';
|
|
9
9
|
import { SkeletonContainer, SkeletonImage, SkeletonText, SkeletonBodyText, SkeletonDisplayText } from '@contentful/f36-skeleton';
|
|
10
10
|
import { ArrowSquareOutIcon, EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';
|
|
11
11
|
|
|
12
|
-
var De=Object.defineProperty,Ve=Object.defineProperties;var Xe=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var ie=(e,t,o)=>t in e?De(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))se.call(t,o)&&ie(e,o,t[o]);if(H)for(var o of H(t))me.call(t,o)&&ie(e,o,t[o]);return e},p=(e,t)=>Ve(e,Xe(t));var l=(e,t)=>{var o={};for(var r in e)se.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&H)for(var r of H(e))t.indexOf(r)<0&&me.call(e,r)&&(o[r]=e[r]);return o};var h={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},M=(e=s.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var pe=(e,t)=>({containerTop:css({justifyContent:"center",backgroundColor:s.gray100}),containerBottom:css({justifyContent:"center",backgroundColor:s.gray100}),containerTopContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:s.spacingXs,minHeight:s.spacingL,[h.medium]:{padding:`${s.spacingXs} 20px`}}),containerBottomContent:css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:s.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[h.medium]:{padding:`${s.spacing2Xs} ${s.spacingXs}`}}),logo:css({height:"28px",width:"28px"})});var ce=generateIconComponent({name:"CircleIcon",viewBox:"0 0 24 24",path:y.createElement("path",{d:"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z",fill:"currentFill"})});var ge=generateComponentWithVariants({variants:{[IconVariant.Active]:generateIconComponent({path:y.createElement(y.Fragment,null,y.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:s.blue300})),viewBox:"0 0 12 12"}),[IconVariant.Default]:generateIconComponent({path:y.createElement(y.Fragment,null,y.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:s.gray400})),viewBox:"0 0 12 12"})}});var be=generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:y.createElement(y.Fragment,null,y.createElement("path",{fill:"#1773EB",d:"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z"}),y.createElement("path",{fill:"#E44F20",d:"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z"}),y.createElement("path",{fill:"#FFDA00",d:"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z"}),y.createElement("path",{fill:"#1773EB",d:"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z"}),y.createElement("path",{fill:"#E44F20",d:"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z"}))});function Ye(e,t){let S=e,{logo:o,switcher:r,mainNavigation:m,secondaryNavigation:n,account:a,className:g,contentMaxWidth:d="100%",testId:f="cf-ui-navbar",variant:I="wide"}=S,u=l(S,["logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","variant"]),v=pe(d,I);return y.createElement(Box,p(i({},u),{ref:t,testId:f,className:g,as:"header"}),y.createElement(Flex,{className:v.containerTop},y.createElement(Flex,{className:v.containerTopContent,justifyContent:"space-between"},y.createElement(Flex,{alignItems:"center",gap:"spacingL"},o||y.createElement(be,{className:v.logo}),r,y.createElement(Flex,{gap:"spacingXs",as:"nav","aria-label":"Main Navigation"},m)),y.createElement(Flex,{alignItems:"center",gap:"spacingXs"},n,a))))}var ue=y.forwardRef(Ye);var Ke={warning:s.colorWarning,negative:s.colorNegative,info:s.blue500},ve=()=>({navbarAccount:css({margin:0,padding:0,border:0,cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%","&:before":css({content:'""',display:"block",position:"absolute",height:"24px",width:"24px",backgroundColor:"transparent",borderRadius:"50%"}),"&:hover:before":css({backgroundColor:hexToRGBA(s.gray300,.15)})},M()),avatar:css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:s.spacingS,width:s.spacingS,borderRadius:"50%",border:`2px solid ${s.gray100}`,backgroundColor:Ke[e],transform:"translate(30%, -30%)"})});var he=()=>({menuList:css({minWidth:"250px"})});var z=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:m,onClose:n}=e,a=he();return y.createElement(Menu,{onOpen:m,onClose:n},y.createElement(Menu.Trigger,null,t),y.createElement(Menu.List,{className:a.menuList,testId:r},o))};function rt(e,t){let v=e,{children:o,className:r,testId:m="cf-ui-navbar-account-trigger",avatar:n,initials:a,username:g,hasNotification:d,notificationVariant:f="warning"}=v,I=l(v,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),u=ve();return y.createElement(z,{trigger:y.createElement(Flex,p(i({as:"button"},I),{ref:t,className:cx(u.navbarAccount,r),testId:m,alignItems:"center","aria-label":"Account Menu"}),y.createElement(Avatar,{src:n,initials:a,size:"small",variant:"user"}),d?y.createElement("span",{className:u.notificationIcon(f)}):null)},o)}var Z=y.forwardRef(rt);function q({ariaLabel:e}){return y.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:s.gray300,foregroundColor:s.gray200},y.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var Ie=()=>css({backgroundColor:s.blue100,border:`1px solid ${s.blue400}`,color:s.blue600,"&:hover":{backgroundColor:s.blue100}}),xe={display:"flex",justifyContent:"center",padding:`${s.spacing2Xs} ${s.spacingXs}`,alignItems:"center",background:"none",gap:s.spacing2Xs},Pe=()=>({navbarItem:css(xe,{alignItems:"center",background:"none",border:"1px solid transparent",margin:0,outline:"none",fontSize:s.fontSizeM,lineHeight:s.lineHeightS,fontWeight:s.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:s.gray800,boxSizing:"border-box",transition:`color ${s.transitionDurationShort} ${s.transitionEasingCubicBezier}`,borderRadius:s.borderRadiusMedium,"&:hover":{backgroundColor:hexToRGBA(s.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${s.transitionDurationShort} ${s.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:s.zIndexDefault}},M()),navbarItemMenuTrigger:css({paddingRight:s.spacingXs}),isActive:Ie()}),Se=()=>({itemSkeleton:css(xe)});var Me=()=>({navbarItemIcon:css({"&:last-child&:not(:only-child)":{marginLeft:s.spacing2Xs},"img&":{borderRadius:s.borderRadiusSmall,maxWidth:s.spacingM,maxHeight:s.spacingM}})});var O=({icon:e,isActive:t})=>{let a=e.props,{className:o,size:r}=a,m=l(a,["className","size"]),n=Me();return y.cloneElement(e,i({className:cx(o,n.navbarItemIcon),size:r||"small",isActive:t},m))};var lt="button";function dt(e,t){let ae=e,{as:o=lt,icon:r,label:m,title:n,children:a,className:g,isActive:d,testId:f="cf-ui-navbar-item",onOpen:I,onClose:u}=ae,v=l(ae,["as","icon","label","title","children","className","isActive","testId","onOpen","onClose"]),S=Pe(),$=ft(e),ne=y.createElement(o,p(i({},v),{ref:t,"data-test-id":f,className:cx(S.navbarItem,$&&S.navbarItemMenuTrigger,d&&S.isActive,g),"aria-label":n?"":m}),r&&y.createElement(O,{icon:r,isActive:d}),n&&y.createElement("span",null,n),n&&$&&y.createElement(ge,{size:"tiny",isActive:d}));return $?y.createElement(z,{trigger:ne,testId:f,onOpen:I,onClose:u},a):ne}var ft=e=>!!e.children,Y=y.forwardRef(dt);var J=({estimatedWidth:e})=>{let t=Se();return y.createElement(SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:s.gray300,foregroundColor:s.gray200},y.createElement(SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:s.borderRadiusSmall,radiusY:s.borderRadiusSmall}))};var we=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var yt="button";function It(e,t){let f=e,{as:o=yt,icon:r,title:m,className:n}=f,a=l(f,["as","icon","title","className"]),g=we(),d=xt(e);return y.createElement(Menu.Item,p(i({},a),{ref:t,as:o,className:cx(g.navbarMenuItem,n)}),r?y.createElement(O,{icon:r}):d&&Ae,y.createElement("span",null,m),r&&d?Ae:null)}var Ae=y.createElement(O,{icon:y.createElement(ArrowSquareOutIcon,null)}),xt=e=>e.as==="a"&&e.target==="_blank",K=y.forwardRef(It);var Q=({ariaLabel:e})=>y.createElement(Menu.Item,null,y.createElement(Flex,{alignItems:"center",gap:s.spacingXs},y.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},y.createElement(SkeletonImage,{width:16,height:16})),y.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},y.createElement(SkeletonBodyText,{numberOfLines:1}))));var Ee=()=>({navbarSwitcher:css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:s.gray700,cursor:"pointer",fontSize:s.fontSizeS,fontWeight:s.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},M()),switcherMenuIcon:css({height:s.spacingM,width:s.spacingM,fill:s.gray700}),switcherBreadcrumbs:css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function kt(e,t){let g=e,{children:o,className:r,testId:m="cf-ui-navbar-switcher"}=g,n=l(g,["children","className","testId"]),a=Ee();return y.createElement(Flex,p(i({},n),{as:"button",ref:t,className:cx(a.navbarSwitcher,r),testId:m,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),y.createElement(Flex,{as:"ul",alignItems:"center",className:a.switcherBreadcrumbs},o))}var oe=y.forwardRef(kt);var re=({estimatedWidth:e})=>y.createElement(SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:s.gray300,foregroundColor:s.gray200},y.createElement(SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Re={display:"none","&:first-child":{display:"block"},[h.medium]:{display:"block","&:first-child":{display:"none"}}},_e=()=>({breadcrumbsItem:css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${s.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${s.spacingXs}`,height:s.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:s.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[h.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:s.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:s.fontStackMonospace,fontSize:s.fontSizeS,fontWeight:s.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[h.large]:{maxWidth:"100%"}},"> div":{[h.medium]:{gap:s.spacing2Xs}}}}),breadcrumbsItemCircle:css({border:`solid 1px ${s.gray300}`,borderRadius:"50%",color:s.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:s.spacingL,height:s.spacingL}),breadcrumbsItemEnvMaster:css({color:s.green600," svg":p(i({},Re),{fill:s.green600})}),breadcrumbsItemEnvNonMaster:css({color:s.orange500,svg:p(i({},Re),{fill:s.orange500})})});function Oe({isAlias:e}){return y.createElement(y.Fragment,null,y.createElement(ce,{key:"mobile-icon",size:"tiny"}),e?y.createElement(EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):y.createElement(EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function Ot(e,t){let u=e,{children:o,isCircle:r,className:m,envVariant:n,isAlias:a,testId:g="cf-ui-navbar-switcher-item"}=u,d=l(u,["children","isCircle","className","envVariant","isAlias","testId"]),f=_e(),I=cx(f.breadcrumbsItem,m,{[f.breadcrumbsItemCircle]:r,[f.breadcrumbsItemEnvMaster]:n==="master",[f.breadcrumbsItemEnvNonMaster]:n==="non-master"});return y.createElement("li",p(i({},d),{ref:t,className:I,"data-test-id":g}),y.createElement(Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},n&&y.createElement(Oe,{isAlias:a}),y.createElement("span",null,o)))}var We=y.forwardRef(Ot);var Fe=()=>({navbarBadge:css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${s.purple600}`,margin:0,outline:"none",fontSize:s.fontSizeS,lineHeight:s.lineHeightS,fontWeight:s.fontWeightMedium,textAlign:"center",padding:`0 ${s.spacingXs}`,textDecoration:"none",color:`${s.purple600}!important`,borderRadius:"1.75rem"})});var Ht="div";function zt(e,t){let d=e,{as:o=Ht,children:r,className:m,testId:n="cf-ui-navbar-badge"}=d,a=l(d,["as","children","className","testId"]),g=Fe();return y.createElement(o,p(i({},a),{ref:t,className:cx(g.navbarBadge,m),"data-test-id":n}),r)}var ze=y.forwardRef(zt);var b=ue;b.Item=Y;b.ItemSkeleton=J;b.MenuItem=K;b.MenuItemSkeleton=Q;b.MenuDivider=MenuDivider;b.MenuSectionTitle=MenuSectionTitle;b.Switcher=oe;b.SwitcherSkeleton=re;b.SwitcherItem=We;b.Account=Z;b.AccountSkeleton=q;b.Badge=ze;
|
|
12
|
+
var Oe=Object.defineProperty,Re=Object.defineProperties;var Fe=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var re=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var te=(e,o,t)=>o in e?Oe(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,m=(e,o)=>{for(var t in o||(o={}))re.call(o,t)&&te(e,t,o[t]);if(_)for(var t of _(o))ne.call(o,t)&&te(e,t,o[t]);return e},l=(e,o)=>Re(e,Fe(o));var c=(e,o)=>{var t={};for(var r in e)re.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&_)for(var r of _(e))o.indexOf(r)<0&&ne.call(e,r)&&(t[r]=e[r]);return t};var ae={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},S=(e=a.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var ie=(e,o)=>({container:css({justifyContent:"center",backgroundColor:a.gray100,width:"100%"}),logo:css({height:"28px",width:"28px"}),navigation:css({width:"100%",maxWidth:o==="wide"?"1524px":e,padding:a.spacingXs,minHeight:a.spacingL,[ae.medium]:{padding:`${a.spacingXs} 20px`}})});var ce=generateComponentWithVariants({variants:{[IconVariant.Active]:generateIconComponent({path:g.createElement(g.Fragment,null,g.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a.blue300})),viewBox:"0 0 12 12"}),[IconVariant.Default]:generateIconComponent({path:g.createElement(g.Fragment,null,g.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a.gray400})),viewBox:"0 0 12 12"})}});var le=generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:g.createElement(g.Fragment,null,g.createElement("path",{fill:"#1773EB",d:"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z"}),g.createElement("path",{fill:"#E44F20",d:"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z"}),g.createElement("path",{fill:"#FFDA00",d:"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z"}),g.createElement("path",{fill:"#1773EB",d:"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z"}),g.createElement("path",{fill:"#E44F20",d:"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z"}))});function Ge(e,o){let P=e,{logo:t,switcher:r,mainNavigation:i,secondaryNavigation:n,account:s,className:f,contentMaxWidth:p="100%",testId:b="cf-ui-navbar",variant:N="wide"}=P,v=c(P,["logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","variant"]),d=ie(p,N);return g.createElement(Flex,l(m({},v),{ref:o,testId:b,className:cx(d.container,f),as:"header"}),g.createElement(Flex,{as:"nav",className:d.navigation,justifyContent:"space-between"},g.createElement(Flex,{alignItems:"center",gap:"spacingL"},t||g.createElement(le,{className:d.logo}),i&&g.createElement(Flex,{"aria-label":"Main Navigation",gap:"spacingXs"},i)),g.createElement(Flex,{alignItems:"center",gap:"spacingXs"},r,n&&g.createElement(Flex,{"aria-label":"Secondary Navigation"},n),s&&g.createElement(Flex,{"aria-label":"Account Navigation",gap:"spacingXs"},s))))}var ue=g.forwardRef(Ge);var ze={warning:a.colorWarning,negative:a.colorNegative,info:a.blue500},be=()=>({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(a.gray300,.15)})},S()),avatar:css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>css({position:"absolute",top:0,right:0,height:a.spacingS,width:a.spacingS,borderRadius:"50%",border:`2px solid ${a.gray100}`,backgroundColor:ze[e],transform:"translate(30%, -30%)"})});var de=()=>({menuList:css({minWidth:"250px"})});var R=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:i,onClose:n}=e,s=de();return g.createElement(Menu,{onOpen:i,onClose:n},g.createElement(Menu.Trigger,null,o),g.createElement(Menu.List,{className:s.menuList,testId:r},t))};function qe(e,o){let d=e,{children:t,className:r,testId:i="cf-ui-navbar-account-trigger",avatar:n,initials:s,username:f,hasNotification:p,notificationVariant:b="warning"}=d,N=c(d,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),v=be();return g.createElement(R,{trigger:g.createElement(Flex,l(m({as:"button"},N),{ref:o,className:cx(v.navbarAccount,r),testId:i,alignItems:"center","aria-label":"Account Menu"}),g.createElement(Avatar,{src:n,initials:s,size:"small",variant:"user"}),p?g.createElement("span",{className:v.notificationIcon(b)}):null)},t)}var $=g.forwardRef(qe);function U({ariaLabel:e}){return g.createElement(SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:a.gray300,foregroundColor:a.gray200},g.createElement(SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var ge=()=>css({backgroundColor:a.blue100,border:`1px solid ${a.blue400}`,color:a.blue600,"&:hover":{backgroundColor:a.blue100}}),Ne={display:"flex",justifyContent:"center",padding:`${a.spacing2Xs} ${a.spacingXs}`,alignItems:"center",background:"none",gap:a.spacing2Xs},he=()=>({navbarItem:css(Ne,{background:"none",border:"1px solid transparent",margin:0,outline:"none",fontSize:a.fontSizeM,lineHeight:a.lineHeightS,fontWeight:a.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:a.gray800,boxSizing:"border-box",transition:`color ${a.transitionDurationShort} ${a.transitionEasingCubicBezier}`,borderRadius:a.borderRadiusMedium,"&:hover":{backgroundColor:hexToRGBA(a.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a.transitionDurationShort} ${a.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a.zIndexDefault}},S()),navbarItemMenuTrigger:css({paddingRight:a.spacingXs}),isActive:ge()}),ye=()=>({itemSkeleton:css(Ne)});var Ie=()=>({navbarItemIcon:css({"&:last-child&:not(:only-child)":{marginLeft:a.spacing2Xs},"img&":{borderRadius:a.borderRadiusSmall,maxWidth:a.spacingM,maxHeight:a.spacingM}})});var B=({icon:e,isActive:o})=>{let s=e.props,{className:t,size:r}=s,i=c(s,["className","size"]),n=Ie();return g.cloneElement(e,m({className:cx(t,n.navbarItemIcon),size:r||"small",isActive:o},i))};var ro="button";function no(e,o){let oe=e,{as:t=ro,icon:r,label:i,title:n,children:s,className:f,isActive:p,testId:b="cf-ui-navbar-item",onOpen:N,onClose:v}=oe,d=c(oe,["as","icon","label","title","children","className","isActive","testId","onOpen","onClose"]),P=he(),V=ao(e),ee=g.createElement(t,l(m({},d),{ref:o,"data-test-id":b,className:cx(P.navbarItem,V&&P.navbarItemMenuTrigger,p&&P.isActive,f),"aria-label":n?"":i}),r&&g.createElement(B,{icon:r,isActive:p}),n&&g.createElement("span",null,n),n&&V&&g.createElement(ce,{size:"tiny",isActive:p}));return V?g.createElement(R,{trigger:ee,testId:b,onOpen:N,onClose:v},s):ee}var ao=e=>!!e.children,Z=g.forwardRef(no);var j=({estimatedWidth:e})=>{let o=ye();return g.createElement(SkeletonContainer,{className:o.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:a.gray300,foregroundColor:a.gray200},g.createElement(SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:a.borderRadiusSmall,radiusY:a.borderRadiusSmall}))};var Pe=()=>({navbarMenuItem:css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var uo="button";function bo(e,o){let b=e,{as:t=uo,icon:r,title:i,className:n}=b,s=c(b,["as","icon","title","className"]),f=Pe(),p=fo(e);return g.createElement(Menu.Item,l(m({},s),{ref:o,as:t,className:cx(f.navbarMenuItem,n)}),r?g.createElement(B,{icon:r}):p&&Se,g.createElement("span",null,i),r&&p?Se:null)}var Se=g.createElement(B,{icon:g.createElement(ArrowSquareOutIcon,null)}),fo=e=>e.as==="a"&&e.target==="_blank",q=g.forwardRef(bo);var Y=({ariaLabel:e})=>g.createElement(Menu.Item,null,g.createElement(Flex,{alignItems:"center",gap:a.spacingXs},g.createElement(SkeletonContainer,{svgHeight:16,svgWidth:18},g.createElement(SkeletonImage,{width:16,height:16})),g.createElement(SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},g.createElement(SkeletonBodyText,{numberOfLines:1}))));var Ae=()=>({navbarSwitcher:css({alignItems:"center",appearance:"none",background:"none",border:"none",borderRadius:a.borderRadiusMedium,cursor:"pointer",display:"flex",flexShrink:1,lineHeight:a.lineHeightS,margin:0,maxWidth:"100%",outline:"none",padding:`${a.spacing2Xs} ${a.spacingXs}`,userSelect:"none",whiteSpace:"nowrap","&:hover":{backgroundColor:hexToRGBA(a.gray900,.05)}},S()),switcherSpaceName:css({minWidth:"12ch"}),switcherSpaceNameTruncation:css({flexShrink:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})});function Ce({isAlias:e}){return g.createElement(g.Fragment,null,e?g.createElement(EnvironmentAliasIcon,{size:"tiny"}):g.createElement(EnvironmentIcon,{size:"tiny"}))}function So(e,{start:o=5,end:t=6}={}){if(e.length<=o+t)return [e,void 0,void 0];let r=o>0?e.slice(0,o):"",i=t>0?e.slice(-t):"",n=e.slice(o,e.length-t);return [r,n,i]}function Mo(e,o){let d=e,{children:t,className:r,envVariant:i,isAlias:n,testId:s="cf-ui-navbar-switcher"}=d,f=c(d,["children","className","envVariant","isAlias","testId"]),p=Ae(),[b,N,v]=So(t);return g.createElement(Flex,l(m({},f),{alignItems:"center","aria-label":"Space and Environment Navigation",as:"button",className:cx(p.navbarSwitcher,r),fullHeight:!0,gap:"spacing2Xs",ref:o,testId:s}),g.createElement(Flex,{alignItems:"center",className:cx(p.switcherSpaceName),flexDirection:"row"},g.createElement("span",null,b),N&&g.createElement("span",{className:p.switcherSpaceNameTruncation},N),v&&g.createElement("span",null,v)),i&&g.createElement(Ce,{isAlias:n}))}var K=g.forwardRef(Mo);var Q=({estimatedWidth:e})=>g.createElement(SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:a.gray300,foregroundColor:a.gray200},g.createElement(SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Be=()=>({navbarBadge:css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${a.purple600}`,margin:0,outline:"none",fontSize:a.fontSizeS,lineHeight:a.lineHeightS,fontWeight:a.fontWeightMedium,textAlign:"center",padding:`0 ${a.spacingXs}`,textDecoration:"none",color:`${a.purple600}!important`,borderRadius:"1.75rem",userSelect:"none"})});var Eo="div";function To(e,o){let p=e,{as:t=Eo,children:r,className:i,testId:n="cf-ui-navbar-badge"}=p,s=c(p,["as","children","className","testId"]),f=Be();return g.createElement(t,l(m({},s),{ref:o,className:cx(f.navbarBadge,i),"data-test-id":n}),r)}var _e=g.forwardRef(To);var u=ue;u.Item=Z;u.ItemSkeleton=j;u.MenuItem=q;u.MenuItemSkeleton=Y;u.MenuDivider=MenuDivider;u.MenuSectionTitle=MenuSectionTitle;u.Switcher=K;u.SwitcherSkeleton=Q;u.Account=$;u.AccountSkeleton=U;u.Badge=_e;
|
|
13
13
|
|
|
14
|
-
export {
|
|
14
|
+
export { u as Navbar, ge as getNavbarItemActiveStyles };
|
|
15
15
|
//# sourceMappingURL=out.js.map
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/CompoundNavbar.ts","../../src/Navbar.tsx","../../src/Navbar.styles.ts","../../src/utils.styles.ts","../../src/icons/CircleIcon.tsx","../../src/icons/CaretIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../src/NavbarAccount/NavbarAccount.tsx","../../src/NavbarAccount/NavbarAccount.styles.ts","../../src/NavbarMenu/NavbarMenu.tsx","../../src/NavbarMenu/NavbarMenu.styles.ts","../../src/NavbarAccount/NavbarAccountSkeleton.tsx","../../src/NavbarItem/NavbarItem.tsx","../../src/NavbarItem/NavbarItem.styles.ts","../../src/NavbarItemIcon/NavbarItemIcon.tsx","../../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../../src/NavbarItem/NavbarItemSkeleton.tsx","../../src/NavbarMenuItem/NavbarMenuItem.tsx","../../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../../src/NavbarSwitcher/NavbarSwitcher.tsx","../../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","generateIconComponent","CircleIcon","generateComponentWithVariants","IconVariant","CaretIcon","ContentfulLogoIcon","_Navbar","props","ref","_a","logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","children","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","label","title","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","_NavbarSwitcher","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge"],"mappings":"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","sourcesContent":["import { MenuDivider } from '@contentful/f36-menu';\nimport { MenuSectionTitle } from '@contentful/f36-menu';\nimport { Navbar as OriginalNavbar } from './Navbar';\n\nimport { NavbarAccount, NavbarAccountSkeleton } from './NavbarAccount';\nimport { NavbarItem, NavbarItemSkeleton } from './NavbarItem';\nimport { NavbarMenuItem, NavbarMenuItemSkeleton } from './NavbarMenuItem';\nimport { NavbarSwitcher, NavbarSwitcherSkeleton } from './NavbarSwitcher';\n\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\n\ntype CompoundNavbar = typeof OriginalNavbar & {\n Item: typeof NavbarItem;\n ItemSkeleton: typeof NavbarItemSkeleton;\n MenuItem: typeof NavbarMenuItem;\n MenuItemSkeleton: typeof NavbarMenuItemSkeleton;\n MenuDivider: typeof MenuDivider;\n MenuSectionTitle: typeof MenuSectionTitle;\n Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n SwitcherItem: typeof NavbarSwitcherItem;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n};\n\nexport const Navbar = OriginalNavbar as CompoundNavbar;\nNavbar.Item = NavbarItem;\nNavbar.ItemSkeleton = NavbarItemSkeleton;\nNavbar.MenuItem = NavbarMenuItem;\nNavbar.MenuItemSkeleton = NavbarMenuItemSkeleton;\nNavbar.MenuDivider = MenuDivider;\nNavbar.MenuSectionTitle = MenuSectionTitle;\nNavbar.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.SwitcherItem = NavbarSwitcherItem;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n","import {\n Box,\n type CommonProps,\n type ExpandProps,\n Flex,\n} from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\n\ntype NavbarOwnProps = CommonProps & {\n /**\n * Accepts a React Component that will be displayed\n * instead of the Contentful Logo\n */\n logo?: React.ReactNode;\n\n /** Environment Switcher component */\n switcher?: React.ReactNode;\n\n /** Main Navigation Elements */\n mainNavigation?: React.ReactNode;\n\n /** Secondary Navigation Elements, displayed in the right side */\n secondaryNavigation?: React.ReactNode;\n\n /** User Account Component */\n account?: React.ReactNode;\n\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n\n /**\n * Describes the size variation of the Navbar\n * Variant wide will set the contentMaxWidth to 1524px\n */\n variant?: 'wide' | 'fullscreen';\n};\n\n// expose only the HTML props that are needed to not pollute the API\ntype NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;\n\nexport type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;\n\nfunction _Navbar(props: ExpandProps<NavbarProps>, ref: React.Ref<HTMLElement>) {\n const {\n logo,\n switcher,\n mainNavigation,\n secondaryNavigation,\n account,\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\n ...otherProps\n } = props;\n const styles = getNavbarStyles(contentMaxWidth, variant);\n\n return (\n <Box\n {...otherProps}\n ref={ref}\n testId={testId}\n className={className}\n as=\"header\"\n >\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {switcher}\n <Flex gap=\"spacingXs\" as=\"nav\" aria-label=\"Main Navigation\">\n {mainNavigation}\n </Flex>\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation}\n {account}\n </Flex>\n </Flex>\n </Flex>\n </Box>\n );\n}\n\nexport const Navbar = React.forwardRef(_Navbar);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from './utils.styles';\n\nexport const getNavbarStyles = (maxWidth: string, variant: string) => ({\n containerTop: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerBottom: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerTopContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: tokens.spacingXs,\n minHeight: tokens.spacingL,\n [mqs.medium]: {\n padding: `${tokens.spacingXs} 20px`,\n },\n }),\n containerBottomContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: 0,\n paddingTop: tokens.spacing2Xs,\n minHeight: '2.5rem',\n overflow: 'auto',\n [mqs.medium]: {\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n },\n }),\n logo: css({\n height: '28px',\n width: '28px',\n }),\n});\n","import tokens from '@contentful/f36-tokens';\n\ntype screens = 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\nexport const mqs: mediaqueries = {\n medium: '@media (min-width: 480px)',\n large: '@media (min-width: 768px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) => ({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIconComponent({\n name: 'CircleIcon',\n viewBox: '0 0 24 24',\n path: (\n <path\n d=\"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z\"\n fill=\"currentFill\"\n />\n ),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Avatar } from '@contentful/f36-avatar';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\n /**\n * @default 'warning'\n */\n notificationVariant?: 'warning' | 'negative' | 'info';\n};\n\nexport type NavbarAccountProps = PropsWithHTMLElement<\n NavbarAccountOwnProps,\n 'button'\n>;\n\nfunction _NavbarAccount(\n props: ExpandProps<NavbarAccountProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-account-trigger',\n avatar,\n initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\n <Flex\n as=\"button\"\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarAccount, className)}\n testId={testId}\n alignItems=\"center\"\n aria-label=\"Account Menu\"\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n {hasNotification ? (\n <span className={styles.notificationIcon(notificationVariant)} />\n ) : null}\n </Flex>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nexport const NavbarAccount = React.forwardRef(_NavbarAccount);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { NavbarAccountProps } from './NavbarAccount';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nconst notificationVarianColorMap: Record<\n NavbarAccountProps['notificationVariant'],\n string\n> = {\n warning: tokens.colorWarning,\n negative: tokens.colorNegative,\n info: tokens.blue500,\n};\n\nexport const getNavbarAccountStyles = () => ({\n navbarAccount: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n border: 0,\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n '&:before': css({\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n height: '24px',\n width: '24px',\n backgroundColor: 'transparent',\n borderRadius: '50%',\n }),\n '&:hover:before': css({\n backgroundColor: hexToRGBA(tokens.gray300, 0.15),\n }),\n },\n getGlowOnFocusStyles(),\n ),\n avatar: css({\n borderRadius: '50%',\n display: 'block',\n height: '24px',\n width: '24px',\n }),\n notificationIcon: (variant: NavbarAccountProps['notificationVariant']) =>\n css({\n position: 'absolute',\n top: 0,\n right: 0,\n height: tokens.spacingS,\n width: tokens.spacingS,\n borderRadius: '50%',\n border: `2px solid ${tokens.gray100}`,\n backgroundColor: notificationVarianColorMap[variant],\n transform: 'translate(30%, -30%)',\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarMenuStyles } from './NavbarMenu.styles';\n\nexport type NavbarMenuProps = {\n trigger: React.ReactNode;\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarMenu = (props: NavbarMenuProps) => {\n const {\n trigger,\n children,\n testId = 'cf-ui-navbar-menu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarMenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.Trigger>{trigger}</Menu.Trigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: '250px',\n }),\n});\n","import React from 'react';\nimport { SkeletonContainer, SkeletonImage } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport function NavbarAccountSkeleton({ ariaLabel }: { ariaLabel?: string }) {\n return (\n <SkeletonContainer\n svgWidth={24}\n svgHeight={24}\n ariaLabel={ariaLabel}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonImage width={24} height={24} radiusX={12} radiusY={12} />\n </SkeletonContainer>\n );\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarItemStyles } from './NavbarItem.styles';\nimport { NavbarMenu, type NavbarMenuProps } from '../NavbarMenu/NavbarMenu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { CaretIcon } from '../icons';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarItemTriggerProps = CommonProps & {\n label?: string;\n title?: string;\n icon?: NavbarItemIconProps['icon'];\n isActive?: boolean;\n as?: React.ElementType;\n};\n\ntype NavbarItemAsMenuProps = NavbarItemTriggerProps &\n Pick<NavbarMenuProps, 'onOpen' | 'onClose'> & {\n children: React.ReactNode;\n };\ntype NavbarItemAsItemProps = NavbarItemTriggerProps & {\n children?: never;\n onOpen?: never;\n onClose?: never;\n};\ntype NavbarItemOwnProps = NavbarItemAsItemProps | NavbarItemAsMenuProps;\n\nexport type NavbarItemProps<\n E extends React.ElementType = typeof NAVBAR_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarItemOwnProps, E>;\n\nfunction _NavbarItem(\n props: NavbarItemProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_ITEM_DEFAULT_TAG,\n icon,\n label,\n title,\n children,\n className,\n isActive,\n testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles();\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(\n styles.navbarItem,\n isMenuTrigger && styles.navbarItemMenuTrigger,\n isActive && styles.isActive,\n className,\n )}\n aria-label={title ? '' : label}\n >\n {icon && <NavbarItemIcon icon={icon} isActive={isActive} />}\n {title && <span>{title}</span>}\n {title && isMenuTrigger && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\n );\n\n if (isMenuTrigger) {\n return (\n <NavbarMenu\n trigger={item}\n testId={testId}\n onOpen={onOpen}\n onClose={onClose}\n >\n {children}\n </NavbarMenu>\n );\n }\n\n return item;\n}\n\nconst isNavbarItemHasMenu = <E extends React.ElementType>(\n props: NavbarItemProps<E>,\n): props is PolymorphicProps<NavbarItemAsMenuProps, E> =>\n Boolean(props.children);\n\nexport const NavbarItem: PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `1px solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: '1px solid transparent',\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n textAlign: 'left',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n hyphens: 'auto',\n textDecoration: 'none',\n color: tokens.gray800,\n boxSizing: 'border-box',\n transition: `color ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n borderRadius: tokens.borderRadiusMedium,\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n\n '&:hover::before': {\n opacity: 1,\n scale: '1',\n },\n\n '&:active::before': {\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n '&:disabled': {\n cursor: 'auto',\n },\n\n '& svg': {\n transition: `fill ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n },\n '& > svg, & > span': {\n zIndex: tokens.zIndexDefault,\n },\n },\n getGlowOnFocusStyles(),\n ),\n navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\n }),\n isActive: getNavbarItemActiveStyles(),\n});\n\nexport const getNavbarItemSkeletonStyles = () => ({\n itemSkeleton: css(commonItemStyles),\n});\n","import React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from 'emotion';\n\nexport type NavbarItemIconProps = {\n icon: React.ReactElement<IconProps>;\n} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({ icon, isActive }: NavbarItemIconProps) => {\n const { className, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(className, styles.navbarItemIcon),\n size: size || 'small',\n isActive,\n ...rest,\n });\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n '&:last-child&:not(:only-child)': {\n marginLeft: tokens.spacing2Xs,\n },\n 'img&': {\n borderRadius: tokens.borderRadiusSmall,\n maxWidth: tokens.spacingM,\n maxHeight: tokens.spacingM,\n },\n }),\n});\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\nimport { getNavbarItemSkeletonStyles } from './NavbarItem.styles';\n\nexport const NavbarItemSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => {\n const styles = getNavbarItemSkeletonStyles();\n\n return (\n <SkeletonContainer\n className={styles.itemSkeleton}\n svgWidth={estimatedWidth}\n svgHeight={32}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={6}\n numberOfLines={1}\n offsetTop={10}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n );\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarMenuItemStyles } from './NavbarMenuItem.styles';\nimport { Menu, type MenuItemProps } from '@contentful/f36-menu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { ArrowSquareOutIcon } from '@contentful/f36-icons';\nimport type {\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_MENU_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarMenuItemOwnProps = {\n children?: null;\n title: string;\n icon?: NavbarItemIconProps['icon'];\n as?: React.ElementType;\n} & Omit<MenuItemProps, 'children' | 'as'>;\n\nexport type NavbarMenuItemProps<\n E extends React.ElementType = typeof NAVBAR_MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarMenuItemOwnProps, E>;\n\nfunction _NavbarMenuItem(\n props: NavbarMenuItemProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_MENU_ITEM_DEFAULT_TAG,\n icon,\n title,\n className,\n ...otherProps\n } = props;\n const styles = getNavbarMenuItemStyles();\n\n const itemIsExternalLink = isExternalLink(\n props as unknown as NavbarMenuItemProps<'a'>,\n );\n\n return (\n <Menu.Item\n {...otherProps}\n ref={ref}\n as={Comp as MenuItemProps['as']}\n className={cx(styles.navbarMenuItem, className)}\n >\n {icon ? (\n <NavbarItemIcon icon={icon} />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = <NavbarItemIcon icon={<ArrowSquareOutIcon />} />;\n\nconst isExternalLink = (props: NavbarMenuItemProps<'a'>) =>\n props.as === 'a' && props.target === '_blank';\n\nexport const NavbarMenuItem: PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarMenuItem);\n","import { css } from 'emotion';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\n});\n","import React from 'react';\nimport { Menu } from '@contentful/f36-menu';\nimport {\n SkeletonBodyText,\n SkeletonContainer,\n SkeletonImage,\n} from '@contentful/f36-skeleton';\nimport { Flex } from '@contentful/f36-core';\n\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarMenuItemSkeleton = ({\n ariaLabel,\n}: {\n ariaLabel?: string;\n}) => (\n <Menu.Item>\n <Flex alignItems=\"center\" gap={tokens.spacingXs}>\n <SkeletonContainer svgHeight={16} svgWidth={18}>\n <SkeletonImage width={16} height={16} />\n </SkeletonContainer>\n <SkeletonContainer svgHeight={16} svgWidth={190} ariaLabel={ariaLabel}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n </Flex>\n </Menu.Item>\n);\n","import React from 'react';\nimport { getNavbarSwitcherStyles } from './NavbarSwitcher.styles';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n CommonProps,\n 'button'\n> & {\n children?: React.ReactNode;\n};\n\nfunction _NavbarSwitcher(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-switcher',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles();\n\n return (\n <Flex\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarSwitcher, className)}\n testId={testId}\n alignItems=\"center\"\n fullHeight\n gap=\"spacingXs\"\n >\n <Flex as=\"ul\" alignItems=\"center\" className={styles.switcherBreadcrumbs}>\n {children}\n </Flex>\n </Flex>\n );\n}\n\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarSwitcherStyles = () => ({\n navbarSwitcher: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n background: 'none',\n border: 'none',\n height: 'max-content',\n\n color: tokens.gray700,\n cursor: 'pointer',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n outline: 'none',\n borderRadius: '3rem',\n '&:last-child:after': {\n display: 'none',\n },\n '&:hover li': {\n backgroundColor: '#f2f4f6', // Using a calculated hover alpha color because when using a RGBA value layers overlapping occur and show darker areas\n },\n },\n getGlowOnFocusStyles(),\n ),\n switcherMenuIcon: css({\n height: tokens.spacingM,\n width: tokens.spacingM,\n fill: tokens.gray700,\n }),\n switcherBreadcrumbs: css({\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n }),\n});\n","import React from 'react';\nimport {\n SkeletonContainer,\n SkeletonDisplayText,\n} from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarSwitcherSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => (\n <SkeletonContainer\n svgWidth={estimatedWidth}\n svgHeight={24}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonDisplayText\n lineHeight={24}\n numberOfLines={1}\n radiusX={12}\n radiusY={12}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarSwitcherItemStyles } from './NavbarSwitcherItem.styles';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport {\n Flex,\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\n\ntype NavbarSwitcherItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n isCircle?: boolean;\n envVariant?: 'master' | 'non-master';\n isAlias?: boolean;\n};\n\nexport type NavbarSwitcherItemProps = PropsWithHTMLElement<\n NavbarSwitcherItemOwnProps,\n 'li'\n>;\n\nfunction _NavbarSwitcherItem(\n props: ExpandProps<NavbarSwitcherItemProps>,\n ref: React.Ref<HTMLLIElement>,\n) {\n const {\n children,\n isCircle,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher-item',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherItemStyles();\n const classes = cx(styles.breadcrumbsItem, className, {\n [styles.breadcrumbsItemCircle]: isCircle,\n [styles.breadcrumbsItemEnvMaster]: envVariant === 'master',\n [styles.breadcrumbsItemEnvNonMaster]: envVariant === 'non-master',\n });\n\n return (\n <li {...otherProps} ref={ref} className={classes} data-test-id={testId}>\n <Flex fullHeight justifyContent=\"center\" alignItems=\"center\">\n {envVariant && <NavbarEnvVariant isAlias={isAlias} />}\n <span>{children}</span>\n </Flex>\n </li>\n );\n}\n\nexport const NavbarSwitcherItem = React.forwardRef(_NavbarSwitcherItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from '../utils.styles';\n\nconst mobileIcon = {\n display: 'none',\n '&:first-child': {\n display: 'block',\n },\n\n [mqs.medium]: {\n display: 'block',\n '&:first-child': {\n display: 'none',\n },\n },\n};\n\nexport const getNavbarSwitcherItemStyles = () => ({\n breadcrumbsItem: css({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n border: `solid 1px ${tokens.gray300}`,\n borderLeft: 'none',\n display: 'inline-flex',\n margin: 0,\n minWidth: 0,\n padding: `0 ${tokens.spacingXs}`,\n height: tokens.spacingL,\n borderRadius: '3rem',\n zIndex: 2,\n\n whiteSpace: 'nowrap',\n '&:first-child': {\n minWidth: '24px',\n },\n '&:nth-child(2)': {\n zIndex: 1,\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n span: {\n maxWidth: '80px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n },\n '&:nth-child(3)': {\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n fontFamily: tokens.fontStackMonospace,\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n zIndex: 0,\n span: {\n maxWidth: '40px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n '> div': {\n [mqs.medium]: {\n gap: tokens.spacing2Xs,\n },\n },\n },\n }),\n breadcrumbsItemCircle: css({\n border: `solid 1px ${tokens.gray300}`,\n borderRadius: '50%',\n color: tokens.gray400,\n padding: 0,\n display: 'flex',\n justifyContent: 'center',\n fontSize: '11px',\n width: tokens.spacingL,\n height: tokens.spacingL,\n }),\n breadcrumbsItemEnvMaster: css({\n color: tokens.green600,\n ' svg': {\n ...mobileIcon,\n fill: tokens.green600,\n },\n }),\n breadcrumbsItemEnvNonMaster: css({\n color: tokens.orange500,\n svg: {\n ...mobileIcon,\n fill: tokens.orange500,\n },\n }),\n});\n","import React from 'react';\nimport { NavbarSwitcherItemProps } from './NavbarSwitcherItem';\nimport { CircleIcon } from '../icons';\nimport { EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';\n\nexport type NavbarEnvVariantProps = Pick<NavbarSwitcherItemProps, 'isAlias'>;\n\nexport function NavbarEnvVariant({ isAlias }: NavbarEnvVariantProps) {\n return (\n <>\n <CircleIcon key=\"mobile-icon\" size=\"tiny\" />\n {isAlias ? (\n <EnvironmentAliasIcon key=\"full-icon\" size=\"tiny\" />\n ) : (\n <EnvironmentIcon key=\"full-icon\" size=\"tiny\" />\n )}\n </>\n );\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarBadgeStyles } from './NavbarBadge.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'div';\n\ntype NavbarBadgeOwnProps = CommonProps & {\n children?: React.ReactNode;\n as?: React.ElementType;\n};\n\nexport type NavbarBadgeProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarBadgeOwnProps, E>;\n\nfunction _NavbarBadge(\n props: NavbarBadgeProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-badge',\n ...otherProps\n } = props;\n const styles = getNavbarBadgeStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarBadge, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nexport const NavbarBadge: PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarBadge);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarBadgeStyles = () => ({\n navbarBadge: css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'none',\n border: `1px solid ${tokens.purple600}`,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeS,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n textAlign: 'center',\n padding: `0 ${tokens.spacingXs}`,\n textDecoration: 'none',\n color: `${tokens.purple600}!important`,\n borderRadius: '1.75rem',\n }),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/CompoundNavbar.ts","../../src/Navbar.tsx","../../src/Navbar.styles.ts","../../src/utils.styles.ts","../../src/icons/CaretIcon.tsx","../../src/icons/ContentfulLogoIcon.tsx","../../src/NavbarAccount/NavbarAccount.tsx","../../src/NavbarAccount/NavbarAccount.styles.ts","../../src/NavbarMenu/NavbarMenu.tsx","../../src/NavbarMenu/NavbarMenu.styles.ts","../../src/NavbarAccount/NavbarAccountSkeleton.tsx","../../src/NavbarItem/NavbarItem.tsx","../../src/NavbarItem/NavbarItem.styles.ts","../../src/NavbarItemIcon/NavbarItemIcon.tsx","../../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../../src/NavbarItem/NavbarItemSkeleton.tsx","../../src/NavbarMenuItem/NavbarMenuItem.tsx","../../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../../src/NavbarSwitcher/NavbarSwitcher.tsx","../../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../../src/NavbarSwitcher/NavbarEnvVariant.tsx","../../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../../src/NavbarBadge/NavbarBadge.tsx","../../src/NavbarBadge/NavbarBadge.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","generateComponentWithVariants","generateIconComponent","IconVariant","CaretIcon","ContentfulLogoIcon","cx","_Navbar","props","ref","_a","logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","children","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","label","title","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","splitSpaceName","string","startLength","endLength","start","end","remainder","_NavbarSwitcher","envVariant","middle","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge"],"mappings":"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","sourcesContent":["import { MenuDivider } from '@contentful/f36-menu';\nimport { MenuSectionTitle } from '@contentful/f36-menu';\nimport { Navbar as OriginalNavbar } from './Navbar';\n\nimport { NavbarAccount, NavbarAccountSkeleton } from './NavbarAccount';\nimport { NavbarItem, NavbarItemSkeleton } from './NavbarItem';\nimport { NavbarMenuItem, NavbarMenuItemSkeleton } from './NavbarMenuItem';\nimport { NavbarSwitcher, NavbarSwitcherSkeleton } from './NavbarSwitcher';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\n\ntype CompoundNavbar = typeof OriginalNavbar & {\n Item: typeof NavbarItem;\n ItemSkeleton: typeof NavbarItemSkeleton;\n MenuItem: typeof NavbarMenuItem;\n MenuItemSkeleton: typeof NavbarMenuItemSkeleton;\n MenuDivider: typeof MenuDivider;\n MenuSectionTitle: typeof MenuSectionTitle;\n Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n};\n\nexport const Navbar = OriginalNavbar as CompoundNavbar;\nNavbar.Item = NavbarItem;\nNavbar.ItemSkeleton = NavbarItemSkeleton;\nNavbar.MenuItem = NavbarMenuItem;\nNavbar.MenuItemSkeleton = NavbarMenuItemSkeleton;\nNavbar.MenuDivider = MenuDivider;\nNavbar.MenuSectionTitle = MenuSectionTitle;\nNavbar.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n","import { type CommonProps, type ExpandProps, Flex } from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\nimport { cx } from 'emotion';\n\ntype NavbarOwnProps = CommonProps & {\n /**\n * Accepts a React Component that will be displayed\n * instead of the Contentful Logo\n */\n logo?: React.ReactNode;\n\n /** Environment Switcher component */\n switcher?: React.ReactNode;\n\n /** Main Navigation Elements */\n mainNavigation?: React.ReactNode;\n\n /** Secondary Navigation Elements, displayed in the right side */\n secondaryNavigation?: React.ReactNode;\n\n /** User Account Component */\n account?: React.ReactNode;\n\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n\n /**\n * Describes the size variation of the Navbar\n * Variant wide will set the contentMaxWidth to 1524px\n */\n variant?: 'wide' | 'fullscreen';\n};\n\n// expose only the HTML props that are needed to not pollute the API\ntype NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;\n\nexport type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;\n\nfunction _Navbar(props: ExpandProps<NavbarProps>, ref: React.Ref<HTMLElement>) {\n const {\n logo,\n switcher,\n mainNavigation,\n secondaryNavigation,\n account,\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\n ...otherProps\n } = props;\n const styles = getNavbarStyles(contentMaxWidth, variant);\n\n return (\n <Flex\n {...otherProps}\n ref={ref}\n testId={testId}\n className={cx(styles.container, className)}\n as=\"header\"\n >\n <Flex\n as=\"nav\"\n className={styles.navigation}\n justifyContent=\"space-between\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {mainNavigation && (\n <Flex aria-label=\"Main Navigation\" gap=\"spacingXs\">\n {mainNavigation}\n </Flex>\n )}\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {switcher}\n {secondaryNavigation && (\n <Flex aria-label=\"Secondary Navigation\">{secondaryNavigation}</Flex>\n )}\n {account && (\n <Flex aria-label=\"Account Navigation\" gap=\"spacingXs\">\n {account}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n );\n}\n\nexport const Navbar = React.forwardRef(_Navbar);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from './utils.styles';\n\nexport const getNavbarStyles = (maxWidth: string, variant: string) => ({\n container: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n width: '100%',\n }),\n logo: css({\n height: '28px',\n width: '28px',\n }),\n navigation: 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});\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 tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Avatar } from '@contentful/f36-avatar';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\n /**\n * @default 'warning'\n */\n notificationVariant?: 'warning' | 'negative' | 'info';\n};\n\nexport type NavbarAccountProps = PropsWithHTMLElement<\n NavbarAccountOwnProps,\n 'button'\n>;\n\nfunction _NavbarAccount(\n props: ExpandProps<NavbarAccountProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-account-trigger',\n avatar,\n initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\n <Flex\n as=\"button\"\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarAccount, className)}\n testId={testId}\n alignItems=\"center\"\n aria-label=\"Account Menu\"\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n {hasNotification ? (\n <span className={styles.notificationIcon(notificationVariant)} />\n ) : null}\n </Flex>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nexport const NavbarAccount = React.forwardRef(_NavbarAccount);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { NavbarAccountProps } from './NavbarAccount';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nconst notificationVarianColorMap: Record<\n NavbarAccountProps['notificationVariant'],\n string\n> = {\n warning: tokens.colorWarning,\n negative: tokens.colorNegative,\n info: tokens.blue500,\n};\n\nexport const getNavbarAccountStyles = () => ({\n navbarAccount: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n border: 0,\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n '&:before': css({\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n height: '24px',\n width: '24px',\n backgroundColor: 'transparent',\n borderRadius: '50%',\n }),\n '&:hover:before': css({\n backgroundColor: hexToRGBA(tokens.gray300, 0.15),\n }),\n },\n getGlowOnFocusStyles(),\n ),\n avatar: css({\n borderRadius: '50%',\n display: 'block',\n height: '24px',\n width: '24px',\n }),\n notificationIcon: (variant: NavbarAccountProps['notificationVariant']) =>\n css({\n position: 'absolute',\n top: 0,\n right: 0,\n height: tokens.spacingS,\n width: tokens.spacingS,\n borderRadius: '50%',\n border: `2px solid ${tokens.gray100}`,\n backgroundColor: notificationVarianColorMap[variant],\n transform: 'translate(30%, -30%)',\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarMenuStyles } from './NavbarMenu.styles';\n\nexport type NavbarMenuProps = {\n trigger: React.ReactNode;\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarMenu = (props: NavbarMenuProps) => {\n const {\n trigger,\n children,\n testId = 'cf-ui-navbar-menu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarMenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.Trigger>{trigger}</Menu.Trigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: '250px',\n }),\n});\n","import React from 'react';\nimport { SkeletonContainer, SkeletonImage } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport function NavbarAccountSkeleton({ ariaLabel }: { ariaLabel?: string }) {\n return (\n <SkeletonContainer\n svgWidth={24}\n svgHeight={24}\n ariaLabel={ariaLabel}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonImage width={24} height={24} radiusX={12} radiusY={12} />\n </SkeletonContainer>\n );\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarItemStyles } from './NavbarItem.styles';\nimport { NavbarMenu, type NavbarMenuProps } from '../NavbarMenu/NavbarMenu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { CaretIcon } from '../icons';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarItemTriggerProps = CommonProps & {\n label?: string;\n title?: string;\n icon?: NavbarItemIconProps['icon'];\n isActive?: boolean;\n as?: React.ElementType;\n};\n\ntype NavbarItemAsMenuProps = NavbarItemTriggerProps &\n Pick<NavbarMenuProps, 'onOpen' | 'onClose'> & {\n children: React.ReactNode;\n };\ntype NavbarItemAsItemProps = NavbarItemTriggerProps & {\n children?: never;\n onOpen?: never;\n onClose?: never;\n};\ntype NavbarItemOwnProps = NavbarItemAsItemProps | NavbarItemAsMenuProps;\n\nexport type NavbarItemProps<\n E extends React.ElementType = typeof NAVBAR_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarItemOwnProps, E>;\n\nfunction _NavbarItem(\n props: NavbarItemProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_ITEM_DEFAULT_TAG,\n icon,\n label,\n title,\n children,\n className,\n isActive,\n testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles();\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(\n styles.navbarItem,\n isMenuTrigger && styles.navbarItemMenuTrigger,\n isActive && styles.isActive,\n className,\n )}\n aria-label={title ? '' : label}\n >\n {icon && <NavbarItemIcon icon={icon} isActive={isActive} />}\n {title && <span>{title}</span>}\n {title && isMenuTrigger && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\n );\n\n if (isMenuTrigger) {\n return (\n <NavbarMenu\n trigger={item}\n testId={testId}\n onOpen={onOpen}\n onClose={onClose}\n >\n {children}\n </NavbarMenu>\n );\n }\n\n return item;\n}\n\nconst isNavbarItemHasMenu = <E extends React.ElementType>(\n props: NavbarItemProps<E>,\n): props is PolymorphicProps<NavbarItemAsMenuProps, E> =>\n Boolean(props.children);\n\nexport const NavbarItem: PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `1px solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n background: 'none',\n border: '1px solid transparent',\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n textAlign: 'left',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n hyphens: 'auto',\n textDecoration: 'none',\n color: tokens.gray800,\n boxSizing: 'border-box',\n transition: `color ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n borderRadius: tokens.borderRadiusMedium,\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n\n '&:hover::before': {\n opacity: 1,\n scale: '1',\n },\n\n '&:active::before': {\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n '&:disabled': {\n cursor: 'auto',\n },\n\n '& svg': {\n transition: `fill ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n },\n '& > svg, & > span': {\n zIndex: tokens.zIndexDefault,\n },\n },\n getGlowOnFocusStyles(),\n ),\n navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\n }),\n isActive: getNavbarItemActiveStyles(),\n});\n\nexport const getNavbarItemSkeletonStyles = () => ({\n itemSkeleton: css(commonItemStyles),\n});\n","import React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from 'emotion';\n\nexport type NavbarItemIconProps = {\n icon: React.ReactElement<IconProps>;\n} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({ icon, isActive }: NavbarItemIconProps) => {\n const { className, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(className, styles.navbarItemIcon),\n size: size || 'small',\n isActive,\n ...rest,\n });\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n '&:last-child&:not(:only-child)': {\n marginLeft: tokens.spacing2Xs,\n },\n 'img&': {\n borderRadius: tokens.borderRadiusSmall,\n maxWidth: tokens.spacingM,\n maxHeight: tokens.spacingM,\n },\n }),\n});\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\nimport { getNavbarItemSkeletonStyles } from './NavbarItem.styles';\n\nexport const NavbarItemSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => {\n const styles = getNavbarItemSkeletonStyles();\n\n return (\n <SkeletonContainer\n className={styles.itemSkeleton}\n svgWidth={estimatedWidth}\n svgHeight={32}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={6}\n numberOfLines={1}\n offsetTop={10}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n );\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarMenuItemStyles } from './NavbarMenuItem.styles';\nimport { Menu, type MenuItemProps } from '@contentful/f36-menu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { ArrowSquareOutIcon } from '@contentful/f36-icons';\nimport type {\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_MENU_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarMenuItemOwnProps = {\n children?: null;\n title: string;\n icon?: NavbarItemIconProps['icon'];\n as?: React.ElementType;\n} & Omit<MenuItemProps, 'children' | 'as'>;\n\nexport type NavbarMenuItemProps<\n E extends React.ElementType = typeof NAVBAR_MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarMenuItemOwnProps, E>;\n\nfunction _NavbarMenuItem(\n props: NavbarMenuItemProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_MENU_ITEM_DEFAULT_TAG,\n icon,\n title,\n className,\n ...otherProps\n } = props;\n const styles = getNavbarMenuItemStyles();\n\n const itemIsExternalLink = isExternalLink(\n props as unknown as NavbarMenuItemProps<'a'>,\n );\n\n return (\n <Menu.Item\n {...otherProps}\n ref={ref}\n as={Comp as MenuItemProps['as']}\n className={cx(styles.navbarMenuItem, className)}\n >\n {icon ? (\n <NavbarItemIcon icon={icon} />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = <NavbarItemIcon icon={<ArrowSquareOutIcon />} />;\n\nconst isExternalLink = (props: NavbarMenuItemProps<'a'>) =>\n props.as === 'a' && props.target === '_blank';\n\nexport const NavbarMenuItem: PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarMenuItem);\n","import { css } from 'emotion';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\n});\n","import React from 'react';\nimport { Menu } from '@contentful/f36-menu';\nimport {\n SkeletonBodyText,\n SkeletonContainer,\n SkeletonImage,\n} from '@contentful/f36-skeleton';\nimport { Flex } from '@contentful/f36-core';\n\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarMenuItemSkeleton = ({\n ariaLabel,\n}: {\n ariaLabel?: string;\n}) => (\n <Menu.Item>\n <Flex alignItems=\"center\" gap={tokens.spacingXs}>\n <SkeletonContainer svgHeight={16} svgWidth={18}>\n <SkeletonImage width={16} height={16} />\n </SkeletonContainer>\n <SkeletonContainer svgHeight={16} svgWidth={190} ariaLabel={ariaLabel}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n </Flex>\n </Menu.Item>\n);\n","import React from 'react';\nimport { getNavbarSwitcherStyles } from './NavbarSwitcher.styles';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\n\ntype TruncateOptions = {\n /**\n * Number of characters to keep at the start of the string\n * @default 5\n */\n start?: number;\n /**\n * Number of characters to keep at the end of the string\n * @default 6\n */\n end?: number;\n};\n\nfunction splitSpaceName(\n string: string,\n {\n start: startLength = 5,\n end: endLength = 6,\n }: TruncateOptions | undefined = {},\n) {\n if (string.length <= startLength + endLength) {\n return [string, undefined, undefined];\n }\n\n const start = startLength > 0 ? string.slice(0, startLength) : '';\n const end = endLength > 0 ? string.slice(-endLength) : '';\n const remainder = string.slice(startLength, string.length - endLength);\n\n return [start, remainder, end];\n}\n\ntype NavbarSwitcherOwnProps = CommonProps & {\n children: string;\n isCircle?: boolean;\n envVariant?: 'master' | 'non-master';\n isAlias?: boolean;\n};\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction _NavbarSwitcher(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles();\n const [start, middle, end] = splitSpaceName(children);\n\n return (\n <Flex\n {...otherProps}\n alignItems=\"center\"\n aria-label=\"Space and Environment Navigation\"\n as=\"button\"\n className={cx(styles.navbarSwitcher, className)}\n fullHeight\n gap=\"spacing2Xs\"\n ref={ref}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={cx(styles.switcherSpaceName)}\n flexDirection=\"row\"\n >\n <span>{start}</span>\n {middle && (\n <span className={styles.switcherSpaceNameTruncation}>{middle}</span>\n )}\n {end && <span>{end}</span>}\n </Flex>\n\n {envVariant && <NavbarEnvVariant isAlias={isAlias} />}\n </Flex>\n );\n}\n\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarSwitcherStyles = () => ({\n navbarSwitcher: css(\n {\n alignItems: 'center',\n appearance: 'none',\n background: 'none',\n border: 'none',\n borderRadius: tokens.borderRadiusMedium,\n cursor: 'pointer',\n display: 'flex',\n flexShrink: 1,\n lineHeight: tokens.lineHeightS,\n margin: 0,\n maxWidth: '100%',\n outline: 'none',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n userSelect: 'none',\n whiteSpace: 'nowrap',\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n },\n getGlowOnFocusStyles(),\n ),\n\n switcherSpaceName: css({\n minWidth: '12ch',\n }),\n\n switcherSpaceNameTruncation: css({\n flexShrink: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n});\n","import React from 'react';\nimport { NavbarSwitcherProps } from '../NavbarSwitcher/NavbarSwitcher';\nimport { EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';\n\nexport type NavbarEnvVariantProps = Pick<NavbarSwitcherProps, 'isAlias'>;\n\nexport function NavbarEnvVariant({ isAlias }: NavbarEnvVariantProps) {\n return (\n <>\n {isAlias ? (\n <EnvironmentAliasIcon size=\"tiny\" />\n ) : (\n <EnvironmentIcon size=\"tiny\" />\n )}\n </>\n );\n}\n","import React from 'react';\nimport {\n SkeletonContainer,\n SkeletonDisplayText,\n} from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarSwitcherSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => (\n <SkeletonContainer\n svgWidth={estimatedWidth}\n svgHeight={24}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonDisplayText\n lineHeight={24}\n numberOfLines={1}\n radiusX={12}\n radiusY={12}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarBadgeStyles } from './NavbarBadge.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'div';\n\ntype NavbarBadgeOwnProps = CommonProps & {\n children?: React.ReactNode;\n as?: React.ElementType;\n};\n\nexport type NavbarBadgeProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarBadgeOwnProps, E>;\n\nfunction _NavbarBadge(\n props: NavbarBadgeProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-badge',\n ...otherProps\n } = props;\n const styles = getNavbarBadgeStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarBadge, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nexport const NavbarBadge: PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarBadge);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarBadgeStyles = () => ({\n navbarBadge: css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'none',\n border: `1px solid ${tokens.purple600}`,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeS,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n textAlign: 'center',\n padding: `0 ${tokens.spacingXs}`,\n textDecoration: 'none',\n color: `${tokens.purple600}!important`,\n borderRadius: '1.75rem',\n userSelect: 'none',\n }),\n});\n"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -117,19 +117,17 @@ declare const NavbarMenuItemSkeleton: ({ ariaLabel, }: {
|
|
|
117
117
|
ariaLabel?: string;
|
|
118
118
|
}) => JSX.Element;
|
|
119
119
|
|
|
120
|
-
declare const NavbarSwitcher: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, keyof CommonProps> & CommonProps &
|
|
120
|
+
declare const NavbarSwitcher: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, "children" | keyof CommonProps | "isCircle" | "envVariant" | "isAlias"> & CommonProps & {
|
|
121
|
+
children: string;
|
|
122
|
+
isCircle?: boolean;
|
|
123
|
+
envVariant?: 'master' | 'non-master';
|
|
124
|
+
isAlias?: boolean;
|
|
125
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
121
126
|
|
|
122
127
|
declare const NavbarSwitcherSkeleton: ({ estimatedWidth, }: {
|
|
123
128
|
estimatedWidth: number;
|
|
124
129
|
}) => JSX.Element;
|
|
125
130
|
|
|
126
|
-
declare const NavbarSwitcherItem: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "key" | keyof React.LiHTMLAttributes<HTMLLIElement>>, never>, "children" | keyof CommonProps | "isCircle" | "envVariant" | "isAlias"> & CommonProps & {
|
|
127
|
-
children?: React.ReactNode;
|
|
128
|
-
isCircle?: boolean;
|
|
129
|
-
envVariant?: 'master' | 'non-master';
|
|
130
|
-
isAlias?: boolean;
|
|
131
|
-
} & React.RefAttributes<HTMLLIElement>>;
|
|
132
|
-
|
|
133
131
|
declare const NAVBAR_BADGE_DEFAULT_TAG = "div";
|
|
134
132
|
declare type NavbarBadgeOwnProps = CommonProps & {
|
|
135
133
|
children?: React.ReactNode;
|
|
@@ -146,7 +144,6 @@ declare type CompoundNavbar = typeof Navbar$1 & {
|
|
|
146
144
|
MenuSectionTitle: typeof MenuSectionTitle;
|
|
147
145
|
Switcher: typeof NavbarSwitcher;
|
|
148
146
|
SwitcherSkeleton: typeof NavbarSwitcherSkeleton;
|
|
149
|
-
SwitcherItem: typeof NavbarSwitcherItem;
|
|
150
147
|
Account: typeof NavbarAccount;
|
|
151
148
|
AccountSkeleton: typeof NavbarAccountSkeleton;
|
|
152
149
|
Badge: typeof NavbarBadge;
|
package/dist/index.d.ts
CHANGED
|
@@ -117,19 +117,17 @@ declare const NavbarMenuItemSkeleton: ({ ariaLabel, }: {
|
|
|
117
117
|
ariaLabel?: string;
|
|
118
118
|
}) => JSX.Element;
|
|
119
119
|
|
|
120
|
-
declare const NavbarSwitcher: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, keyof CommonProps> & CommonProps &
|
|
120
|
+
declare const NavbarSwitcher: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "key" | keyof React.ButtonHTMLAttributes<HTMLButtonElement>>, never>, "children" | keyof CommonProps | "isCircle" | "envVariant" | "isAlias"> & CommonProps & {
|
|
121
|
+
children: string;
|
|
122
|
+
isCircle?: boolean;
|
|
123
|
+
envVariant?: 'master' | 'non-master';
|
|
124
|
+
isAlias?: boolean;
|
|
125
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
121
126
|
|
|
122
127
|
declare const NavbarSwitcherSkeleton: ({ estimatedWidth, }: {
|
|
123
128
|
estimatedWidth: number;
|
|
124
129
|
}) => JSX.Element;
|
|
125
130
|
|
|
126
|
-
declare const NavbarSwitcherItem: React.ForwardRefExoticComponent<Omit<Omit<Pick<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, "key" | keyof React.LiHTMLAttributes<HTMLLIElement>>, never>, "children" | keyof CommonProps | "isCircle" | "envVariant" | "isAlias"> & CommonProps & {
|
|
127
|
-
children?: React.ReactNode;
|
|
128
|
-
isCircle?: boolean;
|
|
129
|
-
envVariant?: 'master' | 'non-master';
|
|
130
|
-
isAlias?: boolean;
|
|
131
|
-
} & React.RefAttributes<HTMLLIElement>>;
|
|
132
|
-
|
|
133
131
|
declare const NAVBAR_BADGE_DEFAULT_TAG = "div";
|
|
134
132
|
declare type NavbarBadgeOwnProps = CommonProps & {
|
|
135
133
|
children?: React.ReactNode;
|
|
@@ -146,7 +144,6 @@ declare type CompoundNavbar = typeof Navbar$1 & {
|
|
|
146
144
|
MenuSectionTitle: typeof MenuSectionTitle;
|
|
147
145
|
Switcher: typeof NavbarSwitcher;
|
|
148
146
|
SwitcherSkeleton: typeof NavbarSwitcherSkeleton;
|
|
149
|
-
SwitcherItem: typeof NavbarSwitcherItem;
|
|
150
147
|
Account: typeof NavbarAccount;
|
|
151
148
|
AccountSkeleton: typeof NavbarAccountSkeleton;
|
|
152
149
|
Badge: typeof NavbarBadge;
|
package/dist/index.js
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var f36Menu = require('@contentful/f36-menu');
|
|
4
4
|
var f36Core = require('@contentful/f36-core');
|
|
5
|
-
var
|
|
5
|
+
var g = require('react');
|
|
6
6
|
var emotion = require('emotion');
|
|
7
|
-
var
|
|
7
|
+
var a = require('@contentful/f36-tokens');
|
|
8
8
|
var f36Icon = require('@contentful/f36-icon');
|
|
9
9
|
var f36Utils = require('@contentful/f36-utils');
|
|
10
10
|
var f36Avatar = require('@contentful/f36-avatar');
|
|
@@ -13,12 +13,12 @@ var f36Icons = require('@contentful/f36-icons');
|
|
|
13
13
|
|
|
14
14
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
15
15
|
|
|
16
|
-
var
|
|
17
|
-
var
|
|
16
|
+
var g__default = /*#__PURE__*/_interopDefault(g);
|
|
17
|
+
var a__default = /*#__PURE__*/_interopDefault(a);
|
|
18
18
|
|
|
19
|
-
var De=Object.defineProperty,Ve=Object.defineProperties;var Xe=Object.getOwnPropertyDescriptors;var H=Object.getOwnPropertySymbols;var se=Object.prototype.hasOwnProperty,me=Object.prototype.propertyIsEnumerable;var ie=(e,t,o)=>t in e?De(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,i=(e,t)=>{for(var o in t||(t={}))se.call(t,o)&&ie(e,o,t[o]);if(H)for(var o of H(t))me.call(t,o)&&ie(e,o,t[o]);return e},p=(e,t)=>Ve(e,Xe(t));var l=(e,t)=>{var o={};for(var r in e)se.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&H)for(var r of H(e))t.indexOf(r)<0&&me.call(e,r)&&(o[r]=e[r]);return o};var h={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},M=(e=s__default.default.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var pe=(e,t)=>({containerTop:emotion.css({justifyContent:"center",backgroundColor:s__default.default.gray100}),containerBottom:emotion.css({justifyContent:"center",backgroundColor:s__default.default.gray100}),containerTopContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:s__default.default.spacingXs,minHeight:s__default.default.spacingL,[h.medium]:{padding:`${s__default.default.spacingXs} 20px`}}),containerBottomContent:emotion.css({width:"100%",maxWidth:t==="wide"?"1524px":e,padding:0,paddingTop:s__default.default.spacing2Xs,minHeight:"2.5rem",overflow:"auto",[h.medium]:{padding:`${s__default.default.spacing2Xs} ${s__default.default.spacingXs}`}}),logo:emotion.css({height:"28px",width:"28px"})});var ce=f36Icon.generateIconComponent({name:"CircleIcon",viewBox:"0 0 24 24",path:y__default.default.createElement("path",{d:"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z",fill:"currentFill"})});var ge=f36Icon.generateComponentWithVariants({variants:{[f36Icon.IconVariant.Active]:f36Icon.generateIconComponent({path:y__default.default.createElement(y__default.default.Fragment,null,y__default.default.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:s__default.default.blue300})),viewBox:"0 0 12 12"}),[f36Icon.IconVariant.Default]:f36Icon.generateIconComponent({path:y__default.default.createElement(y__default.default.Fragment,null,y__default.default.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:s__default.default.gray400})),viewBox:"0 0 12 12"})}});var be=f36Icon.generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:y__default.default.createElement(y__default.default.Fragment,null,y__default.default.createElement("path",{fill:"#1773EB",d:"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z"}),y__default.default.createElement("path",{fill:"#E44F20",d:"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z"}),y__default.default.createElement("path",{fill:"#FFDA00",d:"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z"}),y__default.default.createElement("path",{fill:"#1773EB",d:"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z"}),y__default.default.createElement("path",{fill:"#E44F20",d:"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z"}))});function Ye(e,t){let S=e,{logo:o,switcher:r,mainNavigation:m,secondaryNavigation:n,account:a,className:g,contentMaxWidth:d="100%",testId:f="cf-ui-navbar",variant:I="wide"}=S,u=l(S,["logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","variant"]),v=pe(d,I);return y__default.default.createElement(f36Core.Box,p(i({},u),{ref:t,testId:f,className:g,as:"header"}),y__default.default.createElement(f36Core.Flex,{className:v.containerTop},y__default.default.createElement(f36Core.Flex,{className:v.containerTopContent,justifyContent:"space-between"},y__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingL"},o||y__default.default.createElement(be,{className:v.logo}),r,y__default.default.createElement(f36Core.Flex,{gap:"spacingXs",as:"nav","aria-label":"Main Navigation"},m)),y__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},n,a))))}var ue=y__default.default.forwardRef(Ye);var Ke={warning:s__default.default.colorWarning,negative:s__default.default.colorNegative,info:s__default.default.blue500},ve=()=>({navbarAccount:emotion.css({margin:0,padding:0,border:0,cursor:"pointer",background:"none",position:"relative",outline:"none",overflow:"visible",borderRadius:"50%","&:before":emotion.css({content:'""',display:"block",position:"absolute",height:"24px",width:"24px",backgroundColor:"transparent",borderRadius:"50%"}),"&:hover:before":emotion.css({backgroundColor:f36Utils.hexToRGBA(s__default.default.gray300,.15)})},M()),avatar:emotion.css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>emotion.css({position:"absolute",top:0,right:0,height:s__default.default.spacingS,width:s__default.default.spacingS,borderRadius:"50%",border:`2px solid ${s__default.default.gray100}`,backgroundColor:Ke[e],transform:"translate(30%, -30%)"})});var he=()=>({menuList:emotion.css({minWidth:"250px"})});var z=e=>{let{trigger:t,children:o,testId:r="cf-ui-navbar-menu-list",onOpen:m,onClose:n}=e,a=he();return y__default.default.createElement(f36Menu.Menu,{onOpen:m,onClose:n},y__default.default.createElement(f36Menu.Menu.Trigger,null,t),y__default.default.createElement(f36Menu.Menu.List,{className:a.menuList,testId:r},o))};function rt(e,t){let v=e,{children:o,className:r,testId:m="cf-ui-navbar-account-trigger",avatar:n,initials:a,username:g,hasNotification:d,notificationVariant:f="warning"}=v,I=l(v,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),u=ve();return y__default.default.createElement(z,{trigger:y__default.default.createElement(f36Core.Flex,p(i({as:"button"},I),{ref:t,className:emotion.cx(u.navbarAccount,r),testId:m,alignItems:"center","aria-label":"Account Menu"}),y__default.default.createElement(f36Avatar.Avatar,{src:n,initials:a,size:"small",variant:"user"}),d?y__default.default.createElement("span",{className:u.notificationIcon(f)}):null)},o)}var Z=y__default.default.forwardRef(rt);function q({ariaLabel:e}){return y__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},y__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var Ie=()=>emotion.css({backgroundColor:s__default.default.blue100,border:`1px solid ${s__default.default.blue400}`,color:s__default.default.blue600,"&:hover":{backgroundColor:s__default.default.blue100}}),xe={display:"flex",justifyContent:"center",padding:`${s__default.default.spacing2Xs} ${s__default.default.spacingXs}`,alignItems:"center",background:"none",gap:s__default.default.spacing2Xs},Pe=()=>({navbarItem:emotion.css(xe,{alignItems:"center",background:"none",border:"1px solid transparent",margin:0,outline:"none",fontSize:s__default.default.fontSizeM,lineHeight:s__default.default.lineHeightS,fontWeight:s__default.default.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:s__default.default.gray800,boxSizing:"border-box",transition:`color ${s__default.default.transitionDurationShort} ${s__default.default.transitionEasingCubicBezier}`,borderRadius:s__default.default.borderRadiusMedium,"&:hover":{backgroundColor:f36Utils.hexToRGBA(s__default.default.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${s__default.default.transitionDurationShort} ${s__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:s__default.default.zIndexDefault}},M()),navbarItemMenuTrigger:emotion.css({paddingRight:s__default.default.spacingXs}),isActive:Ie()}),Se=()=>({itemSkeleton:emotion.css(xe)});var Me=()=>({navbarItemIcon:emotion.css({"&:last-child&:not(:only-child)":{marginLeft:s__default.default.spacing2Xs},"img&":{borderRadius:s__default.default.borderRadiusSmall,maxWidth:s__default.default.spacingM,maxHeight:s__default.default.spacingM}})});var O=({icon:e,isActive:t})=>{let a=e.props,{className:o,size:r}=a,m=l(a,["className","size"]),n=Me();return y__default.default.cloneElement(e,i({className:emotion.cx(o,n.navbarItemIcon),size:r||"small",isActive:t},m))};var lt="button";function dt(e,t){let ae=e,{as:o=lt,icon:r,label:m,title:n,children:a,className:g,isActive:d,testId:f="cf-ui-navbar-item",onOpen:I,onClose:u}=ae,v=l(ae,["as","icon","label","title","children","className","isActive","testId","onOpen","onClose"]),S=Pe(),$=ft(e),ne=y__default.default.createElement(o,p(i({},v),{ref:t,"data-test-id":f,className:emotion.cx(S.navbarItem,$&&S.navbarItemMenuTrigger,d&&S.isActive,g),"aria-label":n?"":m}),r&&y__default.default.createElement(O,{icon:r,isActive:d}),n&&y__default.default.createElement("span",null,n),n&&$&&y__default.default.createElement(ge,{size:"tiny",isActive:d}));return $?y__default.default.createElement(z,{trigger:ne,testId:f,onOpen:I,onClose:u},a):ne}var ft=e=>!!e.children,Y=y__default.default.forwardRef(dt);var J=({estimatedWidth:e})=>{let t=Se();return y__default.default.createElement(f36Skeleton.SkeletonContainer,{className:t.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},y__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:s__default.default.borderRadiusSmall,radiusY:s__default.default.borderRadiusSmall}))};var we=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var yt="button";function It(e,t){let f=e,{as:o=yt,icon:r,title:m,className:n}=f,a=l(f,["as","icon","title","className"]),g=we(),d=xt(e);return y__default.default.createElement(f36Menu.Menu.Item,p(i({},a),{ref:t,as:o,className:emotion.cx(g.navbarMenuItem,n)}),r?y__default.default.createElement(O,{icon:r}):d&&Ae,y__default.default.createElement("span",null,m),r&&d?Ae:null)}var Ae=y__default.default.createElement(O,{icon:y__default.default.createElement(f36Icons.ArrowSquareOutIcon,null)}),xt=e=>e.as==="a"&&e.target==="_blank",K=y__default.default.forwardRef(It);var Q=({ariaLabel:e})=>y__default.default.createElement(f36Menu.Menu.Item,null,y__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:s__default.default.spacingXs},y__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},y__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),y__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},y__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var Ee=()=>({navbarSwitcher:emotion.css({margin:0,padding:0,background:"none",border:"none",height:"max-content",color:s__default.default.gray700,cursor:"pointer",fontSize:s__default.default.fontSizeS,fontWeight:s__default.default.fontWeightMedium,position:"relative",outline:"none",borderRadius:"3rem","&:last-child:after":{display:"none"},"&:hover li":{backgroundColor:"#f2f4f6"}},M()),switcherMenuIcon:emotion.css({height:s__default.default.spacingM,width:s__default.default.spacingM,fill:s__default.default.gray700}),switcherBreadcrumbs:emotion.css({listStyleType:"none",margin:0,padding:0,position:"relative"})});function kt(e,t){let g=e,{children:o,className:r,testId:m="cf-ui-navbar-switcher"}=g,n=l(g,["children","className","testId"]),a=Ee();return y__default.default.createElement(f36Core.Flex,p(i({},n),{as:"button",ref:t,className:emotion.cx(a.navbarSwitcher,r),testId:m,alignItems:"center",fullHeight:!0,gap:"spacingXs"}),y__default.default.createElement(f36Core.Flex,{as:"ul",alignItems:"center",className:a.switcherBreadcrumbs},o))}var oe=y__default.default.forwardRef(kt);var re=({estimatedWidth:e})=>y__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:s__default.default.gray300,foregroundColor:s__default.default.gray200},y__default.default.createElement(f36Skeleton.SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Re={display:"none","&:first-child":{display:"block"},[h.medium]:{display:"block","&:first-child":{display:"none"}}},_e=()=>({breadcrumbsItem:emotion.css({position:"relative",alignItems:"center",justifyContent:"center",border:`solid 1px ${s__default.default.gray300}`,borderLeft:"none",display:"inline-flex",margin:0,minWidth:0,padding:`0 ${s__default.default.spacingXs}`,height:s__default.default.spacingL,borderRadius:"3rem",zIndex:2,whiteSpace:"nowrap","&:first-child":{minWidth:"24px"},"&:nth-child(2)":{zIndex:1,marginLeft:"-10px",paddingLeft:s__default.default.spacingM,borderRadius:"0 3rem 3rem 0",span:{maxWidth:"80px",textOverflow:"ellipsis",overflow:"hidden",[h.large]:{maxWidth:"100%"}}},"&:nth-child(3)":{marginLeft:"-10px",paddingLeft:s__default.default.spacingM,borderRadius:"0 3rem 3rem 0",fontFamily:s__default.default.fontStackMonospace,fontSize:s__default.default.fontSizeS,fontWeight:s__default.default.fontWeightMedium,zIndex:0,span:{maxWidth:"40px",textOverflow:"ellipsis",overflow:"hidden",[h.large]:{maxWidth:"100%"}},"> div":{[h.medium]:{gap:s__default.default.spacing2Xs}}}}),breadcrumbsItemCircle:emotion.css({border:`solid 1px ${s__default.default.gray300}`,borderRadius:"50%",color:s__default.default.gray400,padding:0,display:"flex",justifyContent:"center",fontSize:"11px",width:s__default.default.spacingL,height:s__default.default.spacingL}),breadcrumbsItemEnvMaster:emotion.css({color:s__default.default.green600," svg":p(i({},Re),{fill:s__default.default.green600})}),breadcrumbsItemEnvNonMaster:emotion.css({color:s__default.default.orange500,svg:p(i({},Re),{fill:s__default.default.orange500})})});function Oe({isAlias:e}){return y__default.default.createElement(y__default.default.Fragment,null,y__default.default.createElement(ce,{key:"mobile-icon",size:"tiny"}),e?y__default.default.createElement(f36Icons.EnvironmentAliasIcon,{key:"full-icon",size:"tiny"}):y__default.default.createElement(f36Icons.EnvironmentIcon,{key:"full-icon",size:"tiny"}))}function Ot(e,t){let u=e,{children:o,isCircle:r,className:m,envVariant:n,isAlias:a,testId:g="cf-ui-navbar-switcher-item"}=u,d=l(u,["children","isCircle","className","envVariant","isAlias","testId"]),f=_e(),I=emotion.cx(f.breadcrumbsItem,m,{[f.breadcrumbsItemCircle]:r,[f.breadcrumbsItemEnvMaster]:n==="master",[f.breadcrumbsItemEnvNonMaster]:n==="non-master"});return y__default.default.createElement("li",p(i({},d),{ref:t,className:I,"data-test-id":g}),y__default.default.createElement(f36Core.Flex,{fullHeight:!0,justifyContent:"center",alignItems:"center"},n&&y__default.default.createElement(Oe,{isAlias:a}),y__default.default.createElement("span",null,o)))}var We=y__default.default.forwardRef(Ot);var Fe=()=>({navbarBadge:emotion.css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${s__default.default.purple600}`,margin:0,outline:"none",fontSize:s__default.default.fontSizeS,lineHeight:s__default.default.lineHeightS,fontWeight:s__default.default.fontWeightMedium,textAlign:"center",padding:`0 ${s__default.default.spacingXs}`,textDecoration:"none",color:`${s__default.default.purple600}!important`,borderRadius:"1.75rem"})});var Ht="div";function zt(e,t){let d=e,{as:o=Ht,children:r,className:m,testId:n="cf-ui-navbar-badge"}=d,a=l(d,["as","children","className","testId"]),g=Fe();return y__default.default.createElement(o,p(i({},a),{ref:t,className:emotion.cx(g.navbarBadge,m),"data-test-id":n}),r)}var ze=y__default.default.forwardRef(zt);var b=ue;b.Item=Y;b.ItemSkeleton=J;b.MenuItem=K;b.MenuItemSkeleton=Q;b.MenuDivider=f36Menu.MenuDivider;b.MenuSectionTitle=f36Menu.MenuSectionTitle;b.Switcher=oe;b.SwitcherSkeleton=re;b.SwitcherItem=We;b.Account=Z;b.AccountSkeleton=q;b.Badge=ze;
|
|
19
|
+
var Oe=Object.defineProperty,Re=Object.defineProperties;var Fe=Object.getOwnPropertyDescriptors;var _=Object.getOwnPropertySymbols;var re=Object.prototype.hasOwnProperty,ne=Object.prototype.propertyIsEnumerable;var te=(e,o,t)=>o in e?Oe(e,o,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[o]=t,m=(e,o)=>{for(var t in o||(o={}))re.call(o,t)&&te(e,t,o[t]);if(_)for(var t of _(o))ne.call(o,t)&&te(e,t,o[t]);return e},l=(e,o)=>Re(e,Fe(o));var c=(e,o)=>{var t={};for(var r in e)re.call(e,r)&&o.indexOf(r)<0&&(t[r]=e[r]);if(e!=null&&_)for(var r of _(e))o.indexOf(r)<0&&ne.call(e,r)&&(t[r]=e[r]);return t};var ae={medium:"@media (min-width: 480px)",large:"@media (min-width: 768px)",xlarge:"@media (min-width: 1920px)"},S=(e=a__default.default.glowPrimary)=>({"&:focus":{boxShadow:e},"&:focus:not(:focus-visible)":{boxShadow:"unset"},"&:focus-visible":{boxShadow:e}});var ie=(e,o)=>({container:emotion.css({justifyContent:"center",backgroundColor:a__default.default.gray100,width:"100%"}),logo:emotion.css({height:"28px",width:"28px"}),navigation:emotion.css({width:"100%",maxWidth:o==="wide"?"1524px":e,padding:a__default.default.spacingXs,minHeight:a__default.default.spacingL,[ae.medium]:{padding:`${a__default.default.spacingXs} 20px`}})});var ce=f36Icon.generateComponentWithVariants({variants:{[f36Icon.IconVariant.Active]:f36Icon.generateIconComponent({path:g__default.default.createElement(g__default.default.Fragment,null,g__default.default.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a__default.default.blue300})),viewBox:"0 0 12 12"}),[f36Icon.IconVariant.Default]:f36Icon.generateIconComponent({path:g__default.default.createElement(g__default.default.Fragment,null,g__default.default.createElement("path",{d:"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z",fill:a__default.default.gray400})),viewBox:"0 0 12 12"})}});var le=f36Icon.generateIconComponent({name:"ContentfulLogoIcon",viewBox:"0 0 28 28",path:g__default.default.createElement(g__default.default.Fragment,null,g__default.default.createElement("path",{fill:"#1773EB",d:"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z"}),g__default.default.createElement("path",{fill:"#E44F20",d:"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z"}),g__default.default.createElement("path",{fill:"#FFDA00",d:"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z"}),g__default.default.createElement("path",{fill:"#1773EB",d:"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z"}),g__default.default.createElement("path",{fill:"#E44F20",d:"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z"}))});function Ge(e,o){let P=e,{logo:t,switcher:r,mainNavigation:i,secondaryNavigation:n,account:s,className:f,contentMaxWidth:p="100%",testId:b="cf-ui-navbar",variant:N="wide"}=P,v=c(P,["logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","variant"]),d=ie(p,N);return g__default.default.createElement(f36Core.Flex,l(m({},v),{ref:o,testId:b,className:emotion.cx(d.container,f),as:"header"}),g__default.default.createElement(f36Core.Flex,{as:"nav",className:d.navigation,justifyContent:"space-between"},g__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingL"},t||g__default.default.createElement(le,{className:d.logo}),i&&g__default.default.createElement(f36Core.Flex,{"aria-label":"Main Navigation",gap:"spacingXs"},i)),g__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:"spacingXs"},r,n&&g__default.default.createElement(f36Core.Flex,{"aria-label":"Secondary Navigation"},n),s&&g__default.default.createElement(f36Core.Flex,{"aria-label":"Account Navigation",gap:"spacingXs"},s))))}var ue=g__default.default.forwardRef(Ge);var ze={warning:a__default.default.colorWarning,negative:a__default.default.colorNegative,info:a__default.default.blue500},be=()=>({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(a__default.default.gray300,.15)})},S()),avatar:emotion.css({borderRadius:"50%",display:"block",height:"24px",width:"24px"}),notificationIcon:e=>emotion.css({position:"absolute",top:0,right:0,height:a__default.default.spacingS,width:a__default.default.spacingS,borderRadius:"50%",border:`2px solid ${a__default.default.gray100}`,backgroundColor:ze[e],transform:"translate(30%, -30%)"})});var de=()=>({menuList:emotion.css({minWidth:"250px"})});var R=e=>{let{trigger:o,children:t,testId:r="cf-ui-navbar-menu-list",onOpen:i,onClose:n}=e,s=de();return g__default.default.createElement(f36Menu.Menu,{onOpen:i,onClose:n},g__default.default.createElement(f36Menu.Menu.Trigger,null,o),g__default.default.createElement(f36Menu.Menu.List,{className:s.menuList,testId:r},t))};function qe(e,o){let d=e,{children:t,className:r,testId:i="cf-ui-navbar-account-trigger",avatar:n,initials:s,username:f,hasNotification:p,notificationVariant:b="warning"}=d,N=c(d,["children","className","testId","avatar","initials","username","hasNotification","notificationVariant"]),v=be();return g__default.default.createElement(R,{trigger:g__default.default.createElement(f36Core.Flex,l(m({as:"button"},N),{ref:o,className:emotion.cx(v.navbarAccount,r),testId:i,alignItems:"center","aria-label":"Account Menu"}),g__default.default.createElement(f36Avatar.Avatar,{src:n,initials:s,size:"small",variant:"user"}),p?g__default.default.createElement("span",{className:v.notificationIcon(b)}):null)},t)}var $=g__default.default.forwardRef(qe);function U({ariaLabel:e}){return g__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:24,svgHeight:24,ariaLabel:e,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},g__default.default.createElement(f36Skeleton.SkeletonImage,{width:24,height:24,radiusX:12,radiusY:12}))}var ge=()=>emotion.css({backgroundColor:a__default.default.blue100,border:`1px solid ${a__default.default.blue400}`,color:a__default.default.blue600,"&:hover":{backgroundColor:a__default.default.blue100}}),Ne={display:"flex",justifyContent:"center",padding:`${a__default.default.spacing2Xs} ${a__default.default.spacingXs}`,alignItems:"center",background:"none",gap:a__default.default.spacing2Xs},he=()=>({navbarItem:emotion.css(Ne,{background:"none",border:"1px solid transparent",margin:0,outline:"none",fontSize:a__default.default.fontSizeM,lineHeight:a__default.default.lineHeightS,fontWeight:a__default.default.fontWeightMedium,position:"relative",textAlign:"left",whiteSpace:"nowrap",cursor:"pointer",hyphens:"auto",textDecoration:"none",color:a__default.default.gray800,boxSizing:"border-box",transition:`color ${a__default.default.transitionDurationShort} ${a__default.default.transitionEasingCubicBezier}`,borderRadius:a__default.default.borderRadiusMedium,"&:hover":{backgroundColor:f36Utils.hexToRGBA(a__default.default.gray900,.05)},"&:hover::before":{opacity:1,scale:"1"},"&:active::before":{backgroundColor:"rgba(255, 255, 255, 0.1)"},"&:disabled":{cursor:"auto"},"& svg":{transition:`fill ${a__default.default.transitionDurationShort} ${a__default.default.transitionEasingCubicBezier}`},"& > svg, & > span":{zIndex:a__default.default.zIndexDefault}},S()),navbarItemMenuTrigger:emotion.css({paddingRight:a__default.default.spacingXs}),isActive:ge()}),ye=()=>({itemSkeleton:emotion.css(Ne)});var Ie=()=>({navbarItemIcon:emotion.css({"&:last-child&:not(:only-child)":{marginLeft:a__default.default.spacing2Xs},"img&":{borderRadius:a__default.default.borderRadiusSmall,maxWidth:a__default.default.spacingM,maxHeight:a__default.default.spacingM}})});var B=({icon:e,isActive:o})=>{let s=e.props,{className:t,size:r}=s,i=c(s,["className","size"]),n=Ie();return g__default.default.cloneElement(e,m({className:emotion.cx(t,n.navbarItemIcon),size:r||"small",isActive:o},i))};var ro="button";function no(e,o){let oe=e,{as:t=ro,icon:r,label:i,title:n,children:s,className:f,isActive:p,testId:b="cf-ui-navbar-item",onOpen:N,onClose:v}=oe,d=c(oe,["as","icon","label","title","children","className","isActive","testId","onOpen","onClose"]),P=he(),V=ao(e),ee=g__default.default.createElement(t,l(m({},d),{ref:o,"data-test-id":b,className:emotion.cx(P.navbarItem,V&&P.navbarItemMenuTrigger,p&&P.isActive,f),"aria-label":n?"":i}),r&&g__default.default.createElement(B,{icon:r,isActive:p}),n&&g__default.default.createElement("span",null,n),n&&V&&g__default.default.createElement(ce,{size:"tiny",isActive:p}));return V?g__default.default.createElement(R,{trigger:ee,testId:b,onOpen:N,onClose:v},s):ee}var ao=e=>!!e.children,Z=g__default.default.forwardRef(no);var j=({estimatedWidth:e})=>{let o=ye();return g__default.default.createElement(f36Skeleton.SkeletonContainer,{className:o.itemSkeleton,svgWidth:e,svgHeight:32,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},g__default.default.createElement(f36Skeleton.SkeletonText,{lineHeight:6,numberOfLines:1,offsetTop:10,radiusX:a__default.default.borderRadiusSmall,radiusY:a__default.default.borderRadiusSmall}))};var Pe=()=>({navbarMenuItem:emotion.css({display:"flex",justifyContent:"flex-start",alignItems:"center"})});var uo="button";function bo(e,o){let b=e,{as:t=uo,icon:r,title:i,className:n}=b,s=c(b,["as","icon","title","className"]),f=Pe(),p=fo(e);return g__default.default.createElement(f36Menu.Menu.Item,l(m({},s),{ref:o,as:t,className:emotion.cx(f.navbarMenuItem,n)}),r?g__default.default.createElement(B,{icon:r}):p&&Se,g__default.default.createElement("span",null,i),r&&p?Se:null)}var Se=g__default.default.createElement(B,{icon:g__default.default.createElement(f36Icons.ArrowSquareOutIcon,null)}),fo=e=>e.as==="a"&&e.target==="_blank",q=g__default.default.forwardRef(bo);var Y=({ariaLabel:e})=>g__default.default.createElement(f36Menu.Menu.Item,null,g__default.default.createElement(f36Core.Flex,{alignItems:"center",gap:a__default.default.spacingXs},g__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:18},g__default.default.createElement(f36Skeleton.SkeletonImage,{width:16,height:16})),g__default.default.createElement(f36Skeleton.SkeletonContainer,{svgHeight:16,svgWidth:190,ariaLabel:e},g__default.default.createElement(f36Skeleton.SkeletonBodyText,{numberOfLines:1}))));var Ae=()=>({navbarSwitcher:emotion.css({alignItems:"center",appearance:"none",background:"none",border:"none",borderRadius:a__default.default.borderRadiusMedium,cursor:"pointer",display:"flex",flexShrink:1,lineHeight:a__default.default.lineHeightS,margin:0,maxWidth:"100%",outline:"none",padding:`${a__default.default.spacing2Xs} ${a__default.default.spacingXs}`,userSelect:"none",whiteSpace:"nowrap","&:hover":{backgroundColor:f36Utils.hexToRGBA(a__default.default.gray900,.05)}},S()),switcherSpaceName:emotion.css({minWidth:"12ch"}),switcherSpaceNameTruncation:emotion.css({flexShrink:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"})});function Ce({isAlias:e}){return g__default.default.createElement(g__default.default.Fragment,null,e?g__default.default.createElement(f36Icons.EnvironmentAliasIcon,{size:"tiny"}):g__default.default.createElement(f36Icons.EnvironmentIcon,{size:"tiny"}))}function So(e,{start:o=5,end:t=6}={}){if(e.length<=o+t)return [e,void 0,void 0];let r=o>0?e.slice(0,o):"",i=t>0?e.slice(-t):"",n=e.slice(o,e.length-t);return [r,n,i]}function Mo(e,o){let d=e,{children:t,className:r,envVariant:i,isAlias:n,testId:s="cf-ui-navbar-switcher"}=d,f=c(d,["children","className","envVariant","isAlias","testId"]),p=Ae(),[b,N,v]=So(t);return g__default.default.createElement(f36Core.Flex,l(m({},f),{alignItems:"center","aria-label":"Space and Environment Navigation",as:"button",className:emotion.cx(p.navbarSwitcher,r),fullHeight:!0,gap:"spacing2Xs",ref:o,testId:s}),g__default.default.createElement(f36Core.Flex,{alignItems:"center",className:emotion.cx(p.switcherSpaceName),flexDirection:"row"},g__default.default.createElement("span",null,b),N&&g__default.default.createElement("span",{className:p.switcherSpaceNameTruncation},N),v&&g__default.default.createElement("span",null,v)),i&&g__default.default.createElement(Ce,{isAlias:n}))}var K=g__default.default.forwardRef(Mo);var Q=({estimatedWidth:e})=>g__default.default.createElement(f36Skeleton.SkeletonContainer,{svgWidth:e,svgHeight:24,backgroundColor:a__default.default.gray300,foregroundColor:a__default.default.gray200},g__default.default.createElement(f36Skeleton.SkeletonDisplayText,{lineHeight:24,numberOfLines:1,radiusX:12,radiusY:12}));var Be=()=>({navbarBadge:emotion.css({display:"flex",justifyContent:"center",alignItems:"center",background:"none",border:`1px solid ${a__default.default.purple600}`,margin:0,outline:"none",fontSize:a__default.default.fontSizeS,lineHeight:a__default.default.lineHeightS,fontWeight:a__default.default.fontWeightMedium,textAlign:"center",padding:`0 ${a__default.default.spacingXs}`,textDecoration:"none",color:`${a__default.default.purple600}!important`,borderRadius:"1.75rem",userSelect:"none"})});var Eo="div";function To(e,o){let p=e,{as:t=Eo,children:r,className:i,testId:n="cf-ui-navbar-badge"}=p,s=c(p,["as","children","className","testId"]),f=Be();return g__default.default.createElement(t,l(m({},s),{ref:o,className:emotion.cx(f.navbarBadge,i),"data-test-id":n}),r)}var _e=g__default.default.forwardRef(To);var u=ue;u.Item=Z;u.ItemSkeleton=j;u.MenuItem=q;u.MenuItemSkeleton=Y;u.MenuDivider=f36Menu.MenuDivider;u.MenuSectionTitle=f36Menu.MenuSectionTitle;u.Switcher=K;u.SwitcherSkeleton=Q;u.Account=$;u.AccountSkeleton=U;u.Badge=_e;
|
|
20
20
|
|
|
21
|
-
exports.Navbar =
|
|
22
|
-
exports.getNavbarItemActiveStyles =
|
|
21
|
+
exports.Navbar = u;
|
|
22
|
+
exports.getNavbarItemActiveStyles = ge;
|
|
23
23
|
//# sourceMappingURL=out.js.map
|
|
24
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/CompoundNavbar.ts","../src/Navbar.tsx","../src/Navbar.styles.ts","../src/utils.styles.ts","../src/icons/CircleIcon.tsx","../src/icons/CaretIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../src/NavbarAccount/NavbarAccount.tsx","../src/NavbarAccount/NavbarAccount.styles.ts","../src/NavbarMenu/NavbarMenu.tsx","../src/NavbarMenu/NavbarMenu.styles.ts","../src/NavbarAccount/NavbarAccountSkeleton.tsx","../src/NavbarItem/NavbarItem.tsx","../src/NavbarItem/NavbarItem.styles.ts","../src/NavbarItemIcon/NavbarItemIcon.tsx","../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../src/NavbarItem/NavbarItemSkeleton.tsx","../src/NavbarMenuItem/NavbarMenuItem.tsx","../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../src/NavbarSwitcher/NavbarSwitcher.tsx","../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../src/NavbarSwitcherItem/NavbarSwitcherItem.tsx","../src/NavbarSwitcherItem/NavbarSwitcherItem.styles.ts","../src/NavbarSwitcherItem/NavbarEnvVariant.tsx","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarBadge/NavbarBadge.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Box","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","generateIconComponent","CircleIcon","generateComponentWithVariants","IconVariant","CaretIcon","ContentfulLogoIcon","_Navbar","props","ref","_a","logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","cx","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","children","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","label","title","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","_NavbarSwitcher","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","mobileIcon","getNavbarSwitcherItemStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","_NavbarSwitcherItem","isCircle","envVariant","classes","NavbarSwitcherItem","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge"],"mappings":"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","sourcesContent":["import { MenuDivider } from '@contentful/f36-menu';\nimport { MenuSectionTitle } from '@contentful/f36-menu';\nimport { Navbar as OriginalNavbar } from './Navbar';\n\nimport { NavbarAccount, NavbarAccountSkeleton } from './NavbarAccount';\nimport { NavbarItem, NavbarItemSkeleton } from './NavbarItem';\nimport { NavbarMenuItem, NavbarMenuItemSkeleton } from './NavbarMenuItem';\nimport { NavbarSwitcher, NavbarSwitcherSkeleton } from './NavbarSwitcher';\n\nimport { NavbarSwitcherItem } from './NavbarSwitcherItem/NavbarSwitcherItem';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\n\ntype CompoundNavbar = typeof OriginalNavbar & {\n Item: typeof NavbarItem;\n ItemSkeleton: typeof NavbarItemSkeleton;\n MenuItem: typeof NavbarMenuItem;\n MenuItemSkeleton: typeof NavbarMenuItemSkeleton;\n MenuDivider: typeof MenuDivider;\n MenuSectionTitle: typeof MenuSectionTitle;\n Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n SwitcherItem: typeof NavbarSwitcherItem;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n};\n\nexport const Navbar = OriginalNavbar as CompoundNavbar;\nNavbar.Item = NavbarItem;\nNavbar.ItemSkeleton = NavbarItemSkeleton;\nNavbar.MenuItem = NavbarMenuItem;\nNavbar.MenuItemSkeleton = NavbarMenuItemSkeleton;\nNavbar.MenuDivider = MenuDivider;\nNavbar.MenuSectionTitle = MenuSectionTitle;\nNavbar.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.SwitcherItem = NavbarSwitcherItem;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n","import {\n Box,\n type CommonProps,\n type ExpandProps,\n Flex,\n} from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\n\ntype NavbarOwnProps = CommonProps & {\n /**\n * Accepts a React Component that will be displayed\n * instead of the Contentful Logo\n */\n logo?: React.ReactNode;\n\n /** Environment Switcher component */\n switcher?: React.ReactNode;\n\n /** Main Navigation Elements */\n mainNavigation?: React.ReactNode;\n\n /** Secondary Navigation Elements, displayed in the right side */\n secondaryNavigation?: React.ReactNode;\n\n /** User Account Component */\n account?: React.ReactNode;\n\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n\n /**\n * Describes the size variation of the Navbar\n * Variant wide will set the contentMaxWidth to 1524px\n */\n variant?: 'wide' | 'fullscreen';\n};\n\n// expose only the HTML props that are needed to not pollute the API\ntype NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;\n\nexport type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;\n\nfunction _Navbar(props: ExpandProps<NavbarProps>, ref: React.Ref<HTMLElement>) {\n const {\n logo,\n switcher,\n mainNavigation,\n secondaryNavigation,\n account,\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\n ...otherProps\n } = props;\n const styles = getNavbarStyles(contentMaxWidth, variant);\n\n return (\n <Box\n {...otherProps}\n ref={ref}\n testId={testId}\n className={className}\n as=\"header\"\n >\n <Flex className={styles.containerTop}>\n <Flex\n className={styles.containerTopContent}\n justifyContent=\"space-between\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {switcher}\n <Flex gap=\"spacingXs\" as=\"nav\" aria-label=\"Main Navigation\">\n {mainNavigation}\n </Flex>\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {secondaryNavigation}\n {account}\n </Flex>\n </Flex>\n </Flex>\n </Box>\n );\n}\n\nexport const Navbar = React.forwardRef(_Navbar);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from './utils.styles';\n\nexport const getNavbarStyles = (maxWidth: string, variant: string) => ({\n containerTop: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerBottom: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n }),\n containerTopContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: tokens.spacingXs,\n minHeight: tokens.spacingL,\n [mqs.medium]: {\n padding: `${tokens.spacingXs} 20px`,\n },\n }),\n containerBottomContent: css({\n width: '100%',\n maxWidth: variant === 'wide' ? '1524px' : maxWidth,\n padding: 0,\n paddingTop: tokens.spacing2Xs,\n minHeight: '2.5rem',\n overflow: 'auto',\n [mqs.medium]: {\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n },\n }),\n logo: css({\n height: '28px',\n width: '28px',\n }),\n});\n","import tokens from '@contentful/f36-tokens';\n\ntype screens = 'medium' | 'large' | 'xlarge';\ntype mediaqueries = Record<screens, string>;\nexport const mqs: mediaqueries = {\n medium: '@media (min-width: 480px)',\n large: '@media (min-width: 768px)',\n xlarge: '@media (min-width: 1920px)',\n};\n\nexport const getGlowOnFocusStyles = (shadow: string = tokens.glowPrimary) => ({\n '&:focus': {\n boxShadow: shadow,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n },\n '&:focus-visible': {\n boxShadow: shadow,\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const CircleIcon = /*#__PURE__*/ generateIconComponent({\n name: 'CircleIcon',\n viewBox: '0 0 24 24',\n path: (\n <path\n d=\"M11.994 6.526A5.47 5.47 0 0 0 6.526 12a5.47 5.47 0 0 0 5.468 5.473A5.476 5.476 0 0 0 17.473 12a5.477 5.477 0 0 0-5.479-5.474ZM12 15.447a3.448 3.448 0 1 1 0-6.896 3.448 3.448 0 0 1 0 6.896Z\"\n fill=\"currentFill\"\n />\n ),\n});\n","import React from 'react';\nimport tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Avatar } from '@contentful/f36-avatar';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\n /**\n * @default 'warning'\n */\n notificationVariant?: 'warning' | 'negative' | 'info';\n};\n\nexport type NavbarAccountProps = PropsWithHTMLElement<\n NavbarAccountOwnProps,\n 'button'\n>;\n\nfunction _NavbarAccount(\n props: ExpandProps<NavbarAccountProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-account-trigger',\n avatar,\n initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\n <Flex\n as=\"button\"\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarAccount, className)}\n testId={testId}\n alignItems=\"center\"\n aria-label=\"Account Menu\"\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n {hasNotification ? (\n <span className={styles.notificationIcon(notificationVariant)} />\n ) : null}\n </Flex>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nexport const NavbarAccount = React.forwardRef(_NavbarAccount);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { NavbarAccountProps } from './NavbarAccount';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nconst notificationVarianColorMap: Record<\n NavbarAccountProps['notificationVariant'],\n string\n> = {\n warning: tokens.colorWarning,\n negative: tokens.colorNegative,\n info: tokens.blue500,\n};\n\nexport const getNavbarAccountStyles = () => ({\n navbarAccount: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n border: 0,\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n '&:before': css({\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n height: '24px',\n width: '24px',\n backgroundColor: 'transparent',\n borderRadius: '50%',\n }),\n '&:hover:before': css({\n backgroundColor: hexToRGBA(tokens.gray300, 0.15),\n }),\n },\n getGlowOnFocusStyles(),\n ),\n avatar: css({\n borderRadius: '50%',\n display: 'block',\n height: '24px',\n width: '24px',\n }),\n notificationIcon: (variant: NavbarAccountProps['notificationVariant']) =>\n css({\n position: 'absolute',\n top: 0,\n right: 0,\n height: tokens.spacingS,\n width: tokens.spacingS,\n borderRadius: '50%',\n border: `2px solid ${tokens.gray100}`,\n backgroundColor: notificationVarianColorMap[variant],\n transform: 'translate(30%, -30%)',\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarMenuStyles } from './NavbarMenu.styles';\n\nexport type NavbarMenuProps = {\n trigger: React.ReactNode;\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarMenu = (props: NavbarMenuProps) => {\n const {\n trigger,\n children,\n testId = 'cf-ui-navbar-menu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarMenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.Trigger>{trigger}</Menu.Trigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: '250px',\n }),\n});\n","import React from 'react';\nimport { SkeletonContainer, SkeletonImage } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport function NavbarAccountSkeleton({ ariaLabel }: { ariaLabel?: string }) {\n return (\n <SkeletonContainer\n svgWidth={24}\n svgHeight={24}\n ariaLabel={ariaLabel}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonImage width={24} height={24} radiusX={12} radiusY={12} />\n </SkeletonContainer>\n );\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarItemStyles } from './NavbarItem.styles';\nimport { NavbarMenu, type NavbarMenuProps } from '../NavbarMenu/NavbarMenu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { CaretIcon } from '../icons';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarItemTriggerProps = CommonProps & {\n label?: string;\n title?: string;\n icon?: NavbarItemIconProps['icon'];\n isActive?: boolean;\n as?: React.ElementType;\n};\n\ntype NavbarItemAsMenuProps = NavbarItemTriggerProps &\n Pick<NavbarMenuProps, 'onOpen' | 'onClose'> & {\n children: React.ReactNode;\n };\ntype NavbarItemAsItemProps = NavbarItemTriggerProps & {\n children?: never;\n onOpen?: never;\n onClose?: never;\n};\ntype NavbarItemOwnProps = NavbarItemAsItemProps | NavbarItemAsMenuProps;\n\nexport type NavbarItemProps<\n E extends React.ElementType = typeof NAVBAR_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarItemOwnProps, E>;\n\nfunction _NavbarItem(\n props: NavbarItemProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_ITEM_DEFAULT_TAG,\n icon,\n label,\n title,\n children,\n className,\n isActive,\n testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles();\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(\n styles.navbarItem,\n isMenuTrigger && styles.navbarItemMenuTrigger,\n isActive && styles.isActive,\n className,\n )}\n aria-label={title ? '' : label}\n >\n {icon && <NavbarItemIcon icon={icon} isActive={isActive} />}\n {title && <span>{title}</span>}\n {title && isMenuTrigger && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\n );\n\n if (isMenuTrigger) {\n return (\n <NavbarMenu\n trigger={item}\n testId={testId}\n onOpen={onOpen}\n onClose={onClose}\n >\n {children}\n </NavbarMenu>\n );\n }\n\n return item;\n}\n\nconst isNavbarItemHasMenu = <E extends React.ElementType>(\n props: NavbarItemProps<E>,\n): props is PolymorphicProps<NavbarItemAsMenuProps, E> =>\n Boolean(props.children);\n\nexport const NavbarItem: PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `1px solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n alignItems: 'center',\n background: 'none',\n border: '1px solid transparent',\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n textAlign: 'left',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n hyphens: 'auto',\n textDecoration: 'none',\n color: tokens.gray800,\n boxSizing: 'border-box',\n transition: `color ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n borderRadius: tokens.borderRadiusMedium,\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n\n '&:hover::before': {\n opacity: 1,\n scale: '1',\n },\n\n '&:active::before': {\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n '&:disabled': {\n cursor: 'auto',\n },\n\n '& svg': {\n transition: `fill ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n },\n '& > svg, & > span': {\n zIndex: tokens.zIndexDefault,\n },\n },\n getGlowOnFocusStyles(),\n ),\n navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\n }),\n isActive: getNavbarItemActiveStyles(),\n});\n\nexport const getNavbarItemSkeletonStyles = () => ({\n itemSkeleton: css(commonItemStyles),\n});\n","import React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from 'emotion';\n\nexport type NavbarItemIconProps = {\n icon: React.ReactElement<IconProps>;\n} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({ icon, isActive }: NavbarItemIconProps) => {\n const { className, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(className, styles.navbarItemIcon),\n size: size || 'small',\n isActive,\n ...rest,\n });\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n '&:last-child&:not(:only-child)': {\n marginLeft: tokens.spacing2Xs,\n },\n 'img&': {\n borderRadius: tokens.borderRadiusSmall,\n maxWidth: tokens.spacingM,\n maxHeight: tokens.spacingM,\n },\n }),\n});\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\nimport { getNavbarItemSkeletonStyles } from './NavbarItem.styles';\n\nexport const NavbarItemSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => {\n const styles = getNavbarItemSkeletonStyles();\n\n return (\n <SkeletonContainer\n className={styles.itemSkeleton}\n svgWidth={estimatedWidth}\n svgHeight={32}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={6}\n numberOfLines={1}\n offsetTop={10}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n );\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarMenuItemStyles } from './NavbarMenuItem.styles';\nimport { Menu, type MenuItemProps } from '@contentful/f36-menu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { ArrowSquareOutIcon } from '@contentful/f36-icons';\nimport type {\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_MENU_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarMenuItemOwnProps = {\n children?: null;\n title: string;\n icon?: NavbarItemIconProps['icon'];\n as?: React.ElementType;\n} & Omit<MenuItemProps, 'children' | 'as'>;\n\nexport type NavbarMenuItemProps<\n E extends React.ElementType = typeof NAVBAR_MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarMenuItemOwnProps, E>;\n\nfunction _NavbarMenuItem(\n props: NavbarMenuItemProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_MENU_ITEM_DEFAULT_TAG,\n icon,\n title,\n className,\n ...otherProps\n } = props;\n const styles = getNavbarMenuItemStyles();\n\n const itemIsExternalLink = isExternalLink(\n props as unknown as NavbarMenuItemProps<'a'>,\n );\n\n return (\n <Menu.Item\n {...otherProps}\n ref={ref}\n as={Comp as MenuItemProps['as']}\n className={cx(styles.navbarMenuItem, className)}\n >\n {icon ? (\n <NavbarItemIcon icon={icon} />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = <NavbarItemIcon icon={<ArrowSquareOutIcon />} />;\n\nconst isExternalLink = (props: NavbarMenuItemProps<'a'>) =>\n props.as === 'a' && props.target === '_blank';\n\nexport const NavbarMenuItem: PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarMenuItem);\n","import { css } from 'emotion';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\n});\n","import React from 'react';\nimport { Menu } from '@contentful/f36-menu';\nimport {\n SkeletonBodyText,\n SkeletonContainer,\n SkeletonImage,\n} from '@contentful/f36-skeleton';\nimport { Flex } from '@contentful/f36-core';\n\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarMenuItemSkeleton = ({\n ariaLabel,\n}: {\n ariaLabel?: string;\n}) => (\n <Menu.Item>\n <Flex alignItems=\"center\" gap={tokens.spacingXs}>\n <SkeletonContainer svgHeight={16} svgWidth={18}>\n <SkeletonImage width={16} height={16} />\n </SkeletonContainer>\n <SkeletonContainer svgHeight={16} svgWidth={190} ariaLabel={ariaLabel}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n </Flex>\n </Menu.Item>\n);\n","import React from 'react';\nimport { getNavbarSwitcherStyles } from './NavbarSwitcher.styles';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n CommonProps,\n 'button'\n> & {\n children?: React.ReactNode;\n};\n\nfunction _NavbarSwitcher(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-switcher',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles();\n\n return (\n <Flex\n {...otherProps}\n as=\"button\"\n ref={ref}\n className={cx(styles.navbarSwitcher, className)}\n testId={testId}\n alignItems=\"center\"\n fullHeight\n gap=\"spacingXs\"\n >\n <Flex as=\"ul\" alignItems=\"center\" className={styles.switcherBreadcrumbs}>\n {children}\n </Flex>\n </Flex>\n );\n}\n\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarSwitcherStyles = () => ({\n navbarSwitcher: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n background: 'none',\n border: 'none',\n height: 'max-content',\n\n color: tokens.gray700,\n cursor: 'pointer',\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n outline: 'none',\n borderRadius: '3rem',\n '&:last-child:after': {\n display: 'none',\n },\n '&:hover li': {\n backgroundColor: '#f2f4f6', // Using a calculated hover alpha color because when using a RGBA value layers overlapping occur and show darker areas\n },\n },\n getGlowOnFocusStyles(),\n ),\n switcherMenuIcon: css({\n height: tokens.spacingM,\n width: tokens.spacingM,\n fill: tokens.gray700,\n }),\n switcherBreadcrumbs: css({\n listStyleType: 'none',\n margin: 0,\n padding: 0,\n position: 'relative',\n }),\n});\n","import React from 'react';\nimport {\n SkeletonContainer,\n SkeletonDisplayText,\n} from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarSwitcherSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => (\n <SkeletonContainer\n svgWidth={estimatedWidth}\n svgHeight={24}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonDisplayText\n lineHeight={24}\n numberOfLines={1}\n radiusX={12}\n radiusY={12}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarSwitcherItemStyles } from './NavbarSwitcherItem.styles';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\nimport {\n Flex,\n type CommonProps,\n type ExpandProps,\n type PropsWithHTMLElement,\n} from '@contentful/f36-core';\n\ntype NavbarSwitcherItemOwnProps = CommonProps & {\n children?: React.ReactNode;\n isCircle?: boolean;\n envVariant?: 'master' | 'non-master';\n isAlias?: boolean;\n};\n\nexport type NavbarSwitcherItemProps = PropsWithHTMLElement<\n NavbarSwitcherItemOwnProps,\n 'li'\n>;\n\nfunction _NavbarSwitcherItem(\n props: ExpandProps<NavbarSwitcherItemProps>,\n ref: React.Ref<HTMLLIElement>,\n) {\n const {\n children,\n isCircle,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher-item',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherItemStyles();\n const classes = cx(styles.breadcrumbsItem, className, {\n [styles.breadcrumbsItemCircle]: isCircle,\n [styles.breadcrumbsItemEnvMaster]: envVariant === 'master',\n [styles.breadcrumbsItemEnvNonMaster]: envVariant === 'non-master',\n });\n\n return (\n <li {...otherProps} ref={ref} className={classes} data-test-id={testId}>\n <Flex fullHeight justifyContent=\"center\" alignItems=\"center\">\n {envVariant && <NavbarEnvVariant isAlias={isAlias} />}\n <span>{children}</span>\n </Flex>\n </li>\n );\n}\n\nexport const NavbarSwitcherItem = React.forwardRef(_NavbarSwitcherItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from '../utils.styles';\n\nconst mobileIcon = {\n display: 'none',\n '&:first-child': {\n display: 'block',\n },\n\n [mqs.medium]: {\n display: 'block',\n '&:first-child': {\n display: 'none',\n },\n },\n};\n\nexport const getNavbarSwitcherItemStyles = () => ({\n breadcrumbsItem: css({\n position: 'relative',\n alignItems: 'center',\n justifyContent: 'center',\n border: `solid 1px ${tokens.gray300}`,\n borderLeft: 'none',\n display: 'inline-flex',\n margin: 0,\n minWidth: 0,\n padding: `0 ${tokens.spacingXs}`,\n height: tokens.spacingL,\n borderRadius: '3rem',\n zIndex: 2,\n\n whiteSpace: 'nowrap',\n '&:first-child': {\n minWidth: '24px',\n },\n '&:nth-child(2)': {\n zIndex: 1,\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n span: {\n maxWidth: '80px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n },\n '&:nth-child(3)': {\n marginLeft: '-10px',\n paddingLeft: tokens.spacingM,\n borderRadius: `0 3rem 3rem 0`,\n fontFamily: tokens.fontStackMonospace,\n fontSize: tokens.fontSizeS,\n fontWeight: tokens.fontWeightMedium,\n zIndex: 0,\n span: {\n maxWidth: '40px',\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n [mqs.large]: {\n maxWidth: '100%',\n },\n },\n '> div': {\n [mqs.medium]: {\n gap: tokens.spacing2Xs,\n },\n },\n },\n }),\n breadcrumbsItemCircle: css({\n border: `solid 1px ${tokens.gray300}`,\n borderRadius: '50%',\n color: tokens.gray400,\n padding: 0,\n display: 'flex',\n justifyContent: 'center',\n fontSize: '11px',\n width: tokens.spacingL,\n height: tokens.spacingL,\n }),\n breadcrumbsItemEnvMaster: css({\n color: tokens.green600,\n ' svg': {\n ...mobileIcon,\n fill: tokens.green600,\n },\n }),\n breadcrumbsItemEnvNonMaster: css({\n color: tokens.orange500,\n svg: {\n ...mobileIcon,\n fill: tokens.orange500,\n },\n }),\n});\n","import React from 'react';\nimport { NavbarSwitcherItemProps } from './NavbarSwitcherItem';\nimport { CircleIcon } from '../icons';\nimport { EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';\n\nexport type NavbarEnvVariantProps = Pick<NavbarSwitcherItemProps, 'isAlias'>;\n\nexport function NavbarEnvVariant({ isAlias }: NavbarEnvVariantProps) {\n return (\n <>\n <CircleIcon key=\"mobile-icon\" size=\"tiny\" />\n {isAlias ? (\n <EnvironmentAliasIcon key=\"full-icon\" size=\"tiny\" />\n ) : (\n <EnvironmentIcon key=\"full-icon\" size=\"tiny\" />\n )}\n </>\n );\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarBadgeStyles } from './NavbarBadge.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'div';\n\ntype NavbarBadgeOwnProps = CommonProps & {\n children?: React.ReactNode;\n as?: React.ElementType;\n};\n\nexport type NavbarBadgeProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarBadgeOwnProps, E>;\n\nfunction _NavbarBadge(\n props: NavbarBadgeProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-badge',\n ...otherProps\n } = props;\n const styles = getNavbarBadgeStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarBadge, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nexport const NavbarBadge: PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarBadge);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarBadgeStyles = () => ({\n navbarBadge: css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'none',\n border: `1px solid ${tokens.purple600}`,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeS,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n textAlign: 'center',\n padding: `0 ${tokens.spacingXs}`,\n textDecoration: 'none',\n color: `${tokens.purple600}!important`,\n borderRadius: '1.75rem',\n }),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/CompoundNavbar.ts","../src/Navbar.tsx","../src/Navbar.styles.ts","../src/utils.styles.ts","../src/icons/CaretIcon.tsx","../src/icons/ContentfulLogoIcon.tsx","../src/NavbarAccount/NavbarAccount.tsx","../src/NavbarAccount/NavbarAccount.styles.ts","../src/NavbarMenu/NavbarMenu.tsx","../src/NavbarMenu/NavbarMenu.styles.ts","../src/NavbarAccount/NavbarAccountSkeleton.tsx","../src/NavbarItem/NavbarItem.tsx","../src/NavbarItem/NavbarItem.styles.ts","../src/NavbarItemIcon/NavbarItemIcon.tsx","../src/NavbarItemIcon/NavbarItemIcon.styles.ts","../src/NavbarItem/NavbarItemSkeleton.tsx","../src/NavbarMenuItem/NavbarMenuItem.tsx","../src/NavbarMenuItem/NavbarMenuItem.styles.ts","../src/NavbarMenuItem/NavbarMenuItemSkeleton.tsx","../src/NavbarSwitcher/NavbarSwitcher.tsx","../src/NavbarSwitcher/NavbarSwitcher.styles.ts","../src/NavbarSwitcher/NavbarEnvVariant.tsx","../src/NavbarSwitcher/NavbarSwitcherSkeleton.tsx","../src/NavbarBadge/NavbarBadge.tsx","../src/NavbarBadge/NavbarBadge.styles.ts"],"names":["MenuDivider","MenuSectionTitle","Flex","React","css","tokens","mqs","getGlowOnFocusStyles","shadow","getNavbarStyles","maxWidth","variant","generateComponentWithVariants","generateIconComponent","IconVariant","CaretIcon","ContentfulLogoIcon","cx","_Navbar","props","ref","_a","logo","switcher","mainNavigation","secondaryNavigation","account","className","contentMaxWidth","testId","otherProps","__objRest","styles","__spreadProps","__spreadValues","Navbar","hexToRGBA","notificationVarianColorMap","getNavbarAccountStyles","Menu","getNavbarMenuStyles","NavbarMenu","trigger","children","onOpen","onClose","Avatar","_NavbarAccount","avatar","initials","username","hasNotification","notificationVariant","NavbarAccount","SkeletonContainer","SkeletonImage","NavbarAccountSkeleton","ariaLabel","getNavbarItemActiveStyles","commonItemStyles","getNavbarItemStyles","getNavbarItemSkeletonStyles","getNavbarItemIconStyles","NavbarItemIcon","icon","isActive","size","rest","NAVBAR_ITEM_DEFAULT_TAG","_NavbarItem","Comp","label","title","isMenuTrigger","isNavbarItemHasMenu","item","NavbarItem","SkeletonText","NavbarItemSkeleton","estimatedWidth","getNavbarMenuItemStyles","ArrowSquareOutIcon","NAVBAR_MENU_ITEM_DEFAULT_TAG","_NavbarMenuItem","itemIsExternalLink","isExternalLink","externalIcon","NavbarMenuItem","SkeletonBodyText","NavbarMenuItemSkeleton","getNavbarSwitcherStyles","EnvironmentAliasIcon","EnvironmentIcon","NavbarEnvVariant","isAlias","splitSpaceName","string","startLength","endLength","start","end","remainder","_NavbarSwitcher","envVariant","middle","NavbarSwitcher","SkeletonDisplayText","NavbarSwitcherSkeleton","getNavbarBadgeStyles","NAVBAR_BADGE_DEFAULT_TAG","_NavbarBadge","NavbarBadge"],"mappings":"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","sourcesContent":["import { MenuDivider } from '@contentful/f36-menu';\nimport { MenuSectionTitle } from '@contentful/f36-menu';\nimport { Navbar as OriginalNavbar } from './Navbar';\n\nimport { NavbarAccount, NavbarAccountSkeleton } from './NavbarAccount';\nimport { NavbarItem, NavbarItemSkeleton } from './NavbarItem';\nimport { NavbarMenuItem, NavbarMenuItemSkeleton } from './NavbarMenuItem';\nimport { NavbarSwitcher, NavbarSwitcherSkeleton } from './NavbarSwitcher';\nimport { NavbarBadge } from './NavbarBadge/NavbarBadge';\n\ntype CompoundNavbar = typeof OriginalNavbar & {\n Item: typeof NavbarItem;\n ItemSkeleton: typeof NavbarItemSkeleton;\n MenuItem: typeof NavbarMenuItem;\n MenuItemSkeleton: typeof NavbarMenuItemSkeleton;\n MenuDivider: typeof MenuDivider;\n MenuSectionTitle: typeof MenuSectionTitle;\n Switcher: typeof NavbarSwitcher;\n SwitcherSkeleton: typeof NavbarSwitcherSkeleton;\n Account: typeof NavbarAccount;\n AccountSkeleton: typeof NavbarAccountSkeleton;\n Badge: typeof NavbarBadge;\n};\n\nexport const Navbar = OriginalNavbar as CompoundNavbar;\nNavbar.Item = NavbarItem;\nNavbar.ItemSkeleton = NavbarItemSkeleton;\nNavbar.MenuItem = NavbarMenuItem;\nNavbar.MenuItemSkeleton = NavbarMenuItemSkeleton;\nNavbar.MenuDivider = MenuDivider;\nNavbar.MenuSectionTitle = MenuSectionTitle;\nNavbar.Switcher = NavbarSwitcher;\nNavbar.SwitcherSkeleton = NavbarSwitcherSkeleton;\nNavbar.Account = NavbarAccount;\nNavbar.AccountSkeleton = NavbarAccountSkeleton;\nNavbar.Badge = NavbarBadge;\n","import { type CommonProps, type ExpandProps, Flex } from '@contentful/f36-core';\nimport React from 'react';\nimport { getNavbarStyles } from './Navbar.styles';\nimport { ContentfulLogoIcon } from './icons';\nimport { cx } from 'emotion';\n\ntype NavbarOwnProps = CommonProps & {\n /**\n * Accepts a React Component that will be displayed\n * instead of the Contentful Logo\n */\n logo?: React.ReactNode;\n\n /** Environment Switcher component */\n switcher?: React.ReactNode;\n\n /** Main Navigation Elements */\n mainNavigation?: React.ReactNode;\n\n /** Secondary Navigation Elements, displayed in the right side */\n secondaryNavigation?: React.ReactNode;\n\n /** User Account Component */\n account?: React.ReactNode;\n\n /**\n * Defines the max-width of the content inside the navbar.\n * @default '100%'\n */\n contentMaxWidth?: string;\n\n /**\n * Describes the size variation of the Navbar\n * Variant wide will set the contentMaxWidth to 1524px\n */\n variant?: 'wide' | 'fullscreen';\n};\n\n// expose only the HTML props that are needed to not pollute the API\ntype NavbarHTMLElementProps = Pick<React.ComponentPropsWithoutRef<'div'>, 'id'>;\n\nexport type NavbarProps = NavbarHTMLElementProps & NavbarOwnProps;\n\nfunction _Navbar(props: ExpandProps<NavbarProps>, ref: React.Ref<HTMLElement>) {\n const {\n logo,\n switcher,\n mainNavigation,\n secondaryNavigation,\n account,\n className,\n contentMaxWidth = '100%',\n testId = 'cf-ui-navbar',\n variant = 'wide',\n ...otherProps\n } = props;\n const styles = getNavbarStyles(contentMaxWidth, variant);\n\n return (\n <Flex\n {...otherProps}\n ref={ref}\n testId={testId}\n className={cx(styles.container, className)}\n as=\"header\"\n >\n <Flex\n as=\"nav\"\n className={styles.navigation}\n justifyContent=\"space-between\"\n >\n <Flex alignItems=\"center\" gap=\"spacingL\">\n {logo || <ContentfulLogoIcon className={styles.logo} />}\n {mainNavigation && (\n <Flex aria-label=\"Main Navigation\" gap=\"spacingXs\">\n {mainNavigation}\n </Flex>\n )}\n </Flex>\n <Flex alignItems=\"center\" gap=\"spacingXs\">\n {switcher}\n {secondaryNavigation && (\n <Flex aria-label=\"Secondary Navigation\">{secondaryNavigation}</Flex>\n )}\n {account && (\n <Flex aria-label=\"Account Navigation\" gap=\"spacingXs\">\n {account}\n </Flex>\n )}\n </Flex>\n </Flex>\n </Flex>\n );\n}\n\nexport const Navbar = React.forwardRef(_Navbar);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { mqs } from './utils.styles';\n\nexport const getNavbarStyles = (maxWidth: string, variant: string) => ({\n container: css({\n justifyContent: 'center',\n backgroundColor: tokens.gray100,\n width: '100%',\n }),\n logo: css({\n height: '28px',\n width: '28px',\n }),\n navigation: 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});\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 tokens from '@contentful/f36-tokens';\nimport {\n generateComponentWithVariants,\n generateIconComponent,\n IconVariant,\n} from '@contentful/f36-icon';\n\nexport const CaretIcon = generateComponentWithVariants({\n variants: {\n [IconVariant.Active]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.blue300}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n [IconVariant.Default]: generateIconComponent({\n path: (\n <>\n <path\n d=\"M10.0153 4.76531L6.2653 8.51531C6.23048 8.55018 6.18912 8.57784 6.14359 8.59671C6.09807 8.61558 6.04927 8.62529 5.99999 8.62529C5.95071 8.62529 5.90191 8.61558 5.85639 8.59671C5.81086 8.57784 5.76951 8.55018 5.73468 8.51531L1.98468 4.76531C1.93217 4.71287 1.89641 4.64602 1.88192 4.57324C1.86742 4.50046 1.87485 4.42501 1.90326 4.35645C1.93166 4.28789 1.97977 4.22931 2.0415 4.1881C2.10322 4.1469 2.17578 4.12494 2.24999 4.125H9.74999C9.8242 4.12494 9.89676 4.1469 9.95848 4.1881C10.0202 4.22931 10.0683 4.28789 10.0967 4.35645C10.1251 4.42501 10.1326 4.50046 10.1181 4.57324C10.1036 4.64602 10.0678 4.71287 10.0153 4.76531Z\"\n fill={tokens.gray400}\n />\n </>\n ),\n viewBox: '0 0 12 12',\n }),\n },\n});\n","import React from 'react';\nimport { generateIconComponent } from '@contentful/f36-icon';\n\nexport const ContentfulLogoIcon = /*#__PURE__*/ generateIconComponent({\n name: 'ContentfulLogoIcon',\n viewBox: '0 0 28 28',\n path: (\n <>\n <path\n fill=\"#1773EB\"\n d=\"M10.713 5.001c.845.843 1.167 2.079.845 3.228A6.663 6.663 0 0 1 15 7.276h.026a6.7 6.7 0 0 1 4.743 1.988 2.64 2.64 0 1 0 3.746-3.715A11.96 11.96 0 0 0 15.042 2h-.046a11.933 11.933 0 0 0-6.691 2.036h.074a3.287 3.287 0 0 1 2.334.967V5Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M21.594 17.999a2.64 2.64 0 0 0-1.858.766 6.703 6.703 0 0 1-4.732 1.951h-.025a6.65 6.65 0 0 1-3.447-.968A3.3 3.3 0 0 1 8.35 23.93h-.086A11.926 11.926 0 0 0 14.96 26h.046a11.94 11.94 0 0 0 8.449-3.484 2.64 2.64 0 0 0-1.859-4.514V18h-.002Z\"\n />\n <path\n fill=\"#FFDA00\"\n d=\"M6.013 18.295a3.27 3.27 0 0 1 2.334-.967c.302 0 .603.04.894.122a6.7 6.7 0 0 1 .013-6.928A3.3 3.3 0 0 1 5.08 7.335v-.09a11.999 11.999 0 0 0-.032 13.453v-.07a3.27 3.27 0 0 1 .966-2.333Z\"\n />\n <path\n fill=\"#1773EB\"\n d=\"M8.379 4.62c-.75 0-1.276.312-1.913.949-.607.605-.798 1.135-.8 1.766A2.712 2.712 0 1 0 8.38 4.62Z\"\n />\n <path\n fill=\"#E44F20\"\n d=\"M5.628 20.631c0 .75.31 1.276.946 1.912.607.606 1.136.799 1.766.8a2.703 2.703 0 1 0-.017-5.407 2.703 2.703 0 0 0-2.695 2.704v-.009Z\"\n />\n </>\n ),\n});\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarAccountStyles } from './NavbarAccount.styles';\nimport {\n type PropsWithHTMLElement,\n type CommonProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { NavbarMenu } from '../NavbarMenu/NavbarMenu';\nimport { Avatar } from '@contentful/f36-avatar';\nimport { Flex } from '@contentful/f36-core';\n\ntype NavbarAccountOwnProps = CommonProps & {\n children: React.ReactNode;\n username: string;\n avatar?: string;\n initials?: string;\n hasNotification?: boolean;\n /**\n * @default 'warning'\n */\n notificationVariant?: 'warning' | 'negative' | 'info';\n};\n\nexport type NavbarAccountProps = PropsWithHTMLElement<\n NavbarAccountOwnProps,\n 'button'\n>;\n\nfunction _NavbarAccount(\n props: ExpandProps<NavbarAccountProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n testId = 'cf-ui-navbar-account-trigger',\n avatar,\n initials,\n username,\n hasNotification,\n notificationVariant = 'warning',\n ...otherProps\n } = props;\n const styles = getNavbarAccountStyles();\n\n return (\n <NavbarMenu\n trigger={\n <Flex\n as=\"button\"\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarAccount, className)}\n testId={testId}\n alignItems=\"center\"\n aria-label=\"Account Menu\"\n >\n <Avatar\n src={avatar}\n initials={initials}\n size=\"small\"\n variant=\"user\"\n />\n {hasNotification ? (\n <span className={styles.notificationIcon(notificationVariant)} />\n ) : null}\n </Flex>\n }\n >\n {children}\n </NavbarMenu>\n );\n}\n\nexport const NavbarAccount = React.forwardRef(_NavbarAccount);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { NavbarAccountProps } from './NavbarAccount';\nimport { getGlowOnFocusStyles } from '../utils.styles';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nconst notificationVarianColorMap: Record<\n NavbarAccountProps['notificationVariant'],\n string\n> = {\n warning: tokens.colorWarning,\n negative: tokens.colorNegative,\n info: tokens.blue500,\n};\n\nexport const getNavbarAccountStyles = () => ({\n navbarAccount: css(\n {\n // default button reset styles\n margin: 0,\n padding: 0,\n border: 0,\n cursor: 'pointer',\n background: 'none',\n position: 'relative',\n outline: 'none',\n overflow: 'visible',\n borderRadius: '50%',\n '&:before': css({\n content: '\"\"',\n display: 'block',\n position: 'absolute',\n height: '24px',\n width: '24px',\n backgroundColor: 'transparent',\n borderRadius: '50%',\n }),\n '&:hover:before': css({\n backgroundColor: hexToRGBA(tokens.gray300, 0.15),\n }),\n },\n getGlowOnFocusStyles(),\n ),\n avatar: css({\n borderRadius: '50%',\n display: 'block',\n height: '24px',\n width: '24px',\n }),\n notificationIcon: (variant: NavbarAccountProps['notificationVariant']) =>\n css({\n position: 'absolute',\n top: 0,\n right: 0,\n height: tokens.spacingS,\n width: tokens.spacingS,\n borderRadius: '50%',\n border: `2px solid ${tokens.gray100}`,\n backgroundColor: notificationVarianColorMap[variant],\n transform: 'translate(30%, -30%)',\n }),\n});\n","import React from 'react';\nimport { Menu, type MenuListProps, type MenuProps } from '@contentful/f36-menu';\nimport { getNavbarMenuStyles } from './NavbarMenu.styles';\n\nexport type NavbarMenuProps = {\n trigger: React.ReactNode;\n children?: React.ReactNode;\n} & Pick<MenuListProps, 'testId'> &\n Pick<MenuProps, 'onOpen' | 'onClose'>;\n\nexport const NavbarMenu = (props: NavbarMenuProps) => {\n const {\n trigger,\n children,\n testId = 'cf-ui-navbar-menu-list',\n onOpen,\n onClose,\n } = props;\n const styles = getNavbarMenuStyles();\n\n return (\n <Menu onOpen={onOpen} onClose={onClose}>\n <Menu.Trigger>{trigger}</Menu.Trigger>\n <Menu.List className={styles.menuList} testId={testId}>\n {children}\n </Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\n\nexport const getNavbarMenuStyles = () => ({\n menuList: css({\n minWidth: '250px',\n }),\n});\n","import React from 'react';\nimport { SkeletonContainer, SkeletonImage } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport function NavbarAccountSkeleton({ ariaLabel }: { ariaLabel?: string }) {\n return (\n <SkeletonContainer\n svgWidth={24}\n svgHeight={24}\n ariaLabel={ariaLabel}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonImage width={24} height={24} radiusX={12} radiusY={12} />\n </SkeletonContainer>\n );\n}\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarItemStyles } from './NavbarItem.styles';\nimport { NavbarMenu, type NavbarMenuProps } from '../NavbarMenu/NavbarMenu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { CaretIcon } from '../icons';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarItemTriggerProps = CommonProps & {\n label?: string;\n title?: string;\n icon?: NavbarItemIconProps['icon'];\n isActive?: boolean;\n as?: React.ElementType;\n};\n\ntype NavbarItemAsMenuProps = NavbarItemTriggerProps &\n Pick<NavbarMenuProps, 'onOpen' | 'onClose'> & {\n children: React.ReactNode;\n };\ntype NavbarItemAsItemProps = NavbarItemTriggerProps & {\n children?: never;\n onOpen?: never;\n onClose?: never;\n};\ntype NavbarItemOwnProps = NavbarItemAsItemProps | NavbarItemAsMenuProps;\n\nexport type NavbarItemProps<\n E extends React.ElementType = typeof NAVBAR_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarItemOwnProps, E>;\n\nfunction _NavbarItem(\n props: NavbarItemProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_ITEM_DEFAULT_TAG,\n icon,\n label,\n title,\n children,\n className,\n isActive,\n testId = 'cf-ui-navbar-item',\n onOpen,\n onClose,\n ...otherProps\n } = props;\n const styles = getNavbarItemStyles();\n const isMenuTrigger = isNavbarItemHasMenu(props);\n const item = (\n <Comp\n {...otherProps}\n ref={ref}\n data-test-id={testId}\n className={cx(\n styles.navbarItem,\n isMenuTrigger && styles.navbarItemMenuTrigger,\n isActive && styles.isActive,\n className,\n )}\n aria-label={title ? '' : label}\n >\n {icon && <NavbarItemIcon icon={icon} isActive={isActive} />}\n {title && <span>{title}</span>}\n {title && isMenuTrigger && <CaretIcon size=\"tiny\" isActive={isActive} />}\n </Comp>\n );\n\n if (isMenuTrigger) {\n return (\n <NavbarMenu\n trigger={item}\n testId={testId}\n onOpen={onOpen}\n onClose={onClose}\n >\n {children}\n </NavbarMenu>\n );\n }\n\n return item;\n}\n\nconst isNavbarItemHasMenu = <E extends React.ElementType>(\n props: NavbarItemProps<E>,\n): props is PolymorphicProps<NavbarItemAsMenuProps, E> =>\n Boolean(props.children);\n\nexport const NavbarItem: PolymorphicComponent<\n ExpandProps<NavbarItemOwnProps>,\n typeof NAVBAR_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarItemActiveStyles = () =>\n css({\n backgroundColor: tokens.blue100,\n border: `1px solid ${tokens.blue400}`,\n color: tokens.blue600,\n '&:hover': {\n backgroundColor: tokens.blue100,\n },\n });\n\nconst commonItemStyles = {\n display: 'flex',\n justifyContent: 'center',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n alignItems: 'center',\n background: 'none',\n gap: tokens.spacing2Xs,\n};\n\nexport const getNavbarItemStyles = () => ({\n navbarItem: css(\n commonItemStyles,\n {\n background: 'none',\n border: '1px solid transparent',\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n position: 'relative',\n textAlign: 'left',\n whiteSpace: 'nowrap',\n cursor: 'pointer',\n hyphens: 'auto',\n textDecoration: 'none',\n color: tokens.gray800,\n boxSizing: 'border-box',\n transition: `color ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n borderRadius: tokens.borderRadiusMedium,\n\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n\n '&:hover::before': {\n opacity: 1,\n scale: '1',\n },\n\n '&:active::before': {\n backgroundColor: `rgba(255, 255, 255, 0.1)`,\n },\n '&:disabled': {\n cursor: 'auto',\n },\n\n '& svg': {\n transition: `fill ${tokens.transitionDurationShort} ${tokens.transitionEasingCubicBezier}`,\n },\n '& > svg, & > span': {\n zIndex: tokens.zIndexDefault,\n },\n },\n getGlowOnFocusStyles(),\n ),\n navbarItemMenuTrigger: css({\n paddingRight: tokens.spacingXs,\n }),\n isActive: getNavbarItemActiveStyles(),\n});\n\nexport const getNavbarItemSkeletonStyles = () => ({\n itemSkeleton: css(commonItemStyles),\n});\n","import React from 'react';\nimport type { IconProps } from '@contentful/f36-icons';\nimport { getNavbarItemIconStyles } from './NavbarItemIcon.styles';\nimport { cx } from 'emotion';\n\nexport type NavbarItemIconProps = {\n icon: React.ReactElement<IconProps>;\n} & Partial<Pick<IconProps, 'isActive'>>;\n\nexport const NavbarItemIcon = ({ icon, isActive }: NavbarItemIconProps) => {\n const { className, size, ...rest } = icon.props;\n const styles = getNavbarItemIconStyles();\n\n return React.cloneElement(icon, {\n className: cx(className, styles.navbarItemIcon),\n size: size || 'small',\n isActive,\n ...rest,\n });\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarItemIconStyles = () => ({\n navbarItemIcon: css({\n '&:last-child&:not(:only-child)': {\n marginLeft: tokens.spacing2Xs,\n },\n 'img&': {\n borderRadius: tokens.borderRadiusSmall,\n maxWidth: tokens.spacingM,\n maxHeight: tokens.spacingM,\n },\n }),\n});\n","import React from 'react';\nimport { SkeletonContainer, SkeletonText } from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\nimport { getNavbarItemSkeletonStyles } from './NavbarItem.styles';\n\nexport const NavbarItemSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => {\n const styles = getNavbarItemSkeletonStyles();\n\n return (\n <SkeletonContainer\n className={styles.itemSkeleton}\n svgWidth={estimatedWidth}\n svgHeight={32}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonText\n lineHeight={6}\n numberOfLines={1}\n offsetTop={10}\n radiusX={tokens.borderRadiusSmall}\n radiusY={tokens.borderRadiusSmall}\n />\n </SkeletonContainer>\n );\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarMenuItemStyles } from './NavbarMenuItem.styles';\nimport { Menu, type MenuItemProps } from '@contentful/f36-menu';\nimport {\n NavbarItemIcon,\n type NavbarItemIconProps,\n} from '../NavbarItemIcon/NavbarItemIcon';\nimport { ArrowSquareOutIcon } from '@contentful/f36-icons';\nimport type {\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_MENU_ITEM_DEFAULT_TAG = 'button';\n\ntype NavbarMenuItemOwnProps = {\n children?: null;\n title: string;\n icon?: NavbarItemIconProps['icon'];\n as?: React.ElementType;\n} & Omit<MenuItemProps, 'children' | 'as'>;\n\nexport type NavbarMenuItemProps<\n E extends React.ElementType = typeof NAVBAR_MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<NavbarMenuItemOwnProps, E>;\n\nfunction _NavbarMenuItem(\n props: NavbarMenuItemProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_MENU_ITEM_DEFAULT_TAG,\n icon,\n title,\n className,\n ...otherProps\n } = props;\n const styles = getNavbarMenuItemStyles();\n\n const itemIsExternalLink = isExternalLink(\n props as unknown as NavbarMenuItemProps<'a'>,\n );\n\n return (\n <Menu.Item\n {...otherProps}\n ref={ref}\n as={Comp as MenuItemProps['as']}\n className={cx(styles.navbarMenuItem, className)}\n >\n {icon ? (\n <NavbarItemIcon icon={icon} />\n ) : (\n itemIsExternalLink && externalIcon\n )}\n <span>{title}</span>\n {icon && itemIsExternalLink ? externalIcon : null}\n </Menu.Item>\n );\n}\n\nconst externalIcon = <NavbarItemIcon icon={<ArrowSquareOutIcon />} />;\n\nconst isExternalLink = (props: NavbarMenuItemProps<'a'>) =>\n props.as === 'a' && props.target === '_blank';\n\nexport const NavbarMenuItem: PolymorphicComponent<\n ExpandProps<NavbarMenuItemOwnProps>,\n typeof NAVBAR_MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_NavbarMenuItem);\n","import { css } from 'emotion';\nexport const getNavbarMenuItemStyles = () => ({\n navbarMenuItem: css({\n display: 'flex',\n justifyContent: 'flex-start',\n alignItems: 'center',\n }),\n});\n","import React from 'react';\nimport { Menu } from '@contentful/f36-menu';\nimport {\n SkeletonBodyText,\n SkeletonContainer,\n SkeletonImage,\n} from '@contentful/f36-skeleton';\nimport { Flex } from '@contentful/f36-core';\n\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarMenuItemSkeleton = ({\n ariaLabel,\n}: {\n ariaLabel?: string;\n}) => (\n <Menu.Item>\n <Flex alignItems=\"center\" gap={tokens.spacingXs}>\n <SkeletonContainer svgHeight={16} svgWidth={18}>\n <SkeletonImage width={16} height={16} />\n </SkeletonContainer>\n <SkeletonContainer svgHeight={16} svgWidth={190} ariaLabel={ariaLabel}>\n <SkeletonBodyText numberOfLines={1} />\n </SkeletonContainer>\n </Flex>\n </Menu.Item>\n);\n","import React from 'react';\nimport { getNavbarSwitcherStyles } from './NavbarSwitcher.styles';\nimport {\n Flex,\n type CommonProps,\n type PropsWithHTMLElement,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { NavbarEnvVariant } from './NavbarEnvVariant';\n\ntype TruncateOptions = {\n /**\n * Number of characters to keep at the start of the string\n * @default 5\n */\n start?: number;\n /**\n * Number of characters to keep at the end of the string\n * @default 6\n */\n end?: number;\n};\n\nfunction splitSpaceName(\n string: string,\n {\n start: startLength = 5,\n end: endLength = 6,\n }: TruncateOptions | undefined = {},\n) {\n if (string.length <= startLength + endLength) {\n return [string, undefined, undefined];\n }\n\n const start = startLength > 0 ? string.slice(0, startLength) : '';\n const end = endLength > 0 ? string.slice(-endLength) : '';\n const remainder = string.slice(startLength, string.length - endLength);\n\n return [start, remainder, end];\n}\n\ntype NavbarSwitcherOwnProps = CommonProps & {\n children: string;\n isCircle?: boolean;\n envVariant?: 'master' | 'non-master';\n isAlias?: boolean;\n};\n\nexport type NavbarSwitcherProps = PropsWithHTMLElement<\n NavbarSwitcherOwnProps,\n 'button'\n>;\n\nfunction _NavbarSwitcher(\n props: ExpandProps<NavbarSwitcherProps>,\n ref: React.Ref<HTMLButtonElement>,\n) {\n const {\n children,\n className,\n envVariant,\n isAlias,\n testId = 'cf-ui-navbar-switcher',\n ...otherProps\n } = props;\n const styles = getNavbarSwitcherStyles();\n const [start, middle, end] = splitSpaceName(children);\n\n return (\n <Flex\n {...otherProps}\n alignItems=\"center\"\n aria-label=\"Space and Environment Navigation\"\n as=\"button\"\n className={cx(styles.navbarSwitcher, className)}\n fullHeight\n gap=\"spacing2Xs\"\n ref={ref}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={cx(styles.switcherSpaceName)}\n flexDirection=\"row\"\n >\n <span>{start}</span>\n {middle && (\n <span className={styles.switcherSpaceNameTruncation}>{middle}</span>\n )}\n {end && <span>{end}</span>}\n </Flex>\n\n {envVariant && <NavbarEnvVariant isAlias={isAlias} />}\n </Flex>\n );\n}\n\nexport const NavbarSwitcher = React.forwardRef(_NavbarSwitcher);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { hexToRGBA } from '@contentful/f36-utils';\n\nimport { getGlowOnFocusStyles } from '../utils.styles';\n\nexport const getNavbarSwitcherStyles = () => ({\n navbarSwitcher: css(\n {\n alignItems: 'center',\n appearance: 'none',\n background: 'none',\n border: 'none',\n borderRadius: tokens.borderRadiusMedium,\n cursor: 'pointer',\n display: 'flex',\n flexShrink: 1,\n lineHeight: tokens.lineHeightS,\n margin: 0,\n maxWidth: '100%',\n outline: 'none',\n padding: `${tokens.spacing2Xs} ${tokens.spacingXs}`,\n userSelect: 'none',\n whiteSpace: 'nowrap',\n '&:hover': {\n backgroundColor: hexToRGBA(tokens.gray900, 0.05),\n },\n },\n getGlowOnFocusStyles(),\n ),\n\n switcherSpaceName: css({\n minWidth: '12ch',\n }),\n\n switcherSpaceNameTruncation: css({\n flexShrink: 1,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n});\n","import React from 'react';\nimport { NavbarSwitcherProps } from '../NavbarSwitcher/NavbarSwitcher';\nimport { EnvironmentAliasIcon, EnvironmentIcon } from '@contentful/f36-icons';\n\nexport type NavbarEnvVariantProps = Pick<NavbarSwitcherProps, 'isAlias'>;\n\nexport function NavbarEnvVariant({ isAlias }: NavbarEnvVariantProps) {\n return (\n <>\n {isAlias ? (\n <EnvironmentAliasIcon size=\"tiny\" />\n ) : (\n <EnvironmentIcon size=\"tiny\" />\n )}\n </>\n );\n}\n","import React from 'react';\nimport {\n SkeletonContainer,\n SkeletonDisplayText,\n} from '@contentful/f36-skeleton';\nimport tokens from '@contentful/f36-tokens';\n\nexport const NavbarSwitcherSkeleton = ({\n estimatedWidth,\n}: {\n estimatedWidth: number;\n}) => (\n <SkeletonContainer\n svgWidth={estimatedWidth}\n svgHeight={24}\n backgroundColor={tokens.gray300}\n foregroundColor={tokens.gray200}\n >\n <SkeletonDisplayText\n lineHeight={24}\n numberOfLines={1}\n radiusX={12}\n radiusY={12}\n />\n </SkeletonContainer>\n);\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getNavbarBadgeStyles } from './NavbarBadge.styles';\nimport type {\n CommonProps,\n ExpandProps,\n PolymorphicComponent,\n PolymorphicProps,\n} from '@contentful/f36-core';\n\nconst NAVBAR_BADGE_DEFAULT_TAG = 'div';\n\ntype NavbarBadgeOwnProps = CommonProps & {\n children?: React.ReactNode;\n as?: React.ElementType;\n};\n\nexport type NavbarBadgeProps<\n E extends React.ElementType = typeof NAVBAR_BADGE_DEFAULT_TAG,\n> = PolymorphicProps<NavbarBadgeOwnProps, E>;\n\nfunction _NavbarBadge(\n props: NavbarBadgeProps<React.ElementType>,\n ref: React.Ref<any>,\n) {\n const {\n as: Comp = NAVBAR_BADGE_DEFAULT_TAG,\n children,\n className,\n testId = 'cf-ui-navbar-badge',\n ...otherProps\n } = props;\n const styles = getNavbarBadgeStyles();\n\n return (\n <Comp\n {...otherProps}\n ref={ref}\n className={cx(styles.navbarBadge, className)}\n data-test-id={testId}\n >\n {children}\n </Comp>\n );\n}\n\nexport const NavbarBadge: PolymorphicComponent<\n ExpandProps<NavbarBadgeOwnProps>,\n typeof NAVBAR_BADGE_DEFAULT_TAG\n> = React.forwardRef(_NavbarBadge);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getNavbarBadgeStyles = () => ({\n navbarBadge: css({\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: 'none',\n border: `1px solid ${tokens.purple600}`,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeS,\n lineHeight: tokens.lineHeightS,\n fontWeight: tokens.fontWeightMedium,\n textAlign: 'center',\n padding: `0 ${tokens.spacingXs}`,\n textDecoration: 'none',\n color: `${tokens.purple600}!important`,\n borderRadius: '1.75rem',\n userSelect: 'none',\n }),\n});\n"]}
|
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.19",
|
|
4
4
|
"description": "Forma 36: Navbar component",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsup"
|
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
"@contentful/f36-avatar": "4.67.0",
|
|
10
10
|
"@contentful/f36-core": "^4.67.0",
|
|
11
11
|
"@contentful/f36-menu": "^4.67.0",
|
|
12
|
-
"@contentful/f36-icon": "5.0.0-alpha.
|
|
13
|
-
"@contentful/f36-icons": "5.0.0-alpha.
|
|
12
|
+
"@contentful/f36-icon": "5.0.0-alpha.20",
|
|
13
|
+
"@contentful/f36-icons": "5.0.0-alpha.25",
|
|
14
14
|
"@contentful/f36-tokens": "^4.0.1",
|
|
15
15
|
"@contentful/f36-utils": "^4.23.2",
|
|
16
16
|
"@contentful/f36-skeleton": "^4.67.0",
|