UNPKG

@undp/design-system-react

Version:

React based design system for UNDP

1 lines 6.88 kB
{"version":3,"file":"header-BWD1jAkz.cjs","names":["createLucideIcon"],"sources":["../node_modules/lucide-react/dist/esm/icons/menu.js","../src/components/ui/header.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.542.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M4 12h16\", key: \"1lakjw\" }],\n [\"path\", { d: \"M4 18h16\", key: \"19g7jn\" }],\n [\"path\", { d: \"M4 6h16\", key: \"1o0s65\" }]\n];\nconst Menu = createLucideIcon(\"menu\", __iconNode);\n\nexport { __iconNode, Menu as default };\n//# sourceMappingURL=menu.js.map\n","import { Menu, X } from 'lucide-react';\nimport React from 'react';\n\nimport { cn } from '@/lib/utils';\n\nfunction Header({ className, children, ...props }: React.HTMLAttributes<HTMLElement>) {\n return (\n <header\n {...props}\n className={cn(\n 'relative top-0 left-0 z-10 box-border flex h-18.75 w-full max-w-full items-center justify-between gap-4 bg-surface-2xs px-6 py-0 shadow-header md:h-header',\n className,\n )}\n >\n {children}\n </header>\n );\n}\n\nfunction HeaderLogoUnit({\n className,\n siteName,\n siteSubName,\n hyperlink,\n logoLocale,\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & {\n siteName: string;\n siteSubName?: string;\n hyperlink?: string;\n logoLocale?: 'en' | 'fr' | 'es';\n}) {\n return (\n <div {...props} className={cn('flex items-center', className)}>\n <a\n href={hyperlink || './'}\n style={{ textDecoration: 'none' }}\n className='logo-sub-head flex items-center gap-6'\n >\n <img\n src={`https://cdn.jsdelivr.net/npm/@undp/design-system-assets/images/${logoLocale === 'es' || logoLocale === 'fr' ? 'pnud' : 'undp'}-logo-blue.svg`}\n alt='UNDP Logo'\n className='z-100 h-20.5 w-10 md:h-30.5 md:w-15'\n />\n <div>\n {siteSubName ? (\n <div className='mx-0 mt-0 mb-[4.8px] inline-block border-b border-b-primary-gray-500 pb-px font-semibold text-primary-gray-600 text-xs uppercase leading-base no-underline'>\n {siteSubName}\n </div>\n ) : null}\n <div className='m-0 p-0 font-semibold text-base text-content-primary leading-base no-underline lg:text-xl'>\n {siteName}\n </div>\n </div>\n </a>\n </div>\n );\n}\n\nfunction HeaderMainNavUnit({\n className,\n children,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n const [showMenu, setShowMenu] = React.useState(false);\n return (\n <>\n <div\n {...props}\n className={cn('hidden grow justify-between gap-8 text-sm uppercase md:flex', className)}\n >\n {children}\n </div>\n <div {...props} className={cn('flex grow justify-end gap-8 md:hidden', className)}>\n <button\n type='button'\n onClick={() => {\n setShowMenu(!showMenu);\n }}\n >\n {showMenu ? (\n <X className='h-6 w-6 stroke-secondary' />\n ) : (\n <Menu className='h-6 w-6 stroke-secondary' />\n )}\n </button>\n {showMenu ? (\n // biome-ignore lint/a11y/noStaticElementInteractions: this is see if what is clicked is a link or not\n <div\n onClick={(e) => {\n const target = e.target as HTMLElement;\n\n if (target.closest('a')) {\n setShowMenu(false);\n }\n }}\n onKeyDown={() => {}}\n className='absolute top-full left-0 m-0 box-border h-[calc(100vh-75px)] w-full overflow-y-auto bg-surface/80 p-[5.625rem_1.5rem_3.75rem] backdrop-blur-frosted'\n >\n {children}\n </div>\n ) : null}\n </div>\n </>\n );\n}\n\nfunction HeaderMenuUnit({\n className,\n children,\n align = 'center',\n ...props\n}: React.HTMLAttributes<HTMLDivElement> & {\n align?: 'center' | 'end';\n}) {\n return (\n <div\n {...props}\n className={cn(\n 'grid grow items-center gap-4 font-medium text-content-primary tracking-[0.42px] md:flex md:gap-8 [&>a:hover]:text-secondary [&>a]:font-bold [&>a]:text-base [&>a]:text-content-primary [&>a]:uppercase [&>a]:no-underline md:[&>a]:font-medium md:[&>a]:text-sm',\n align === 'end' ? 'md:justify-end' : 'md:justify-center',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nfunction HeaderActions({ className, children, ...props }: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n {...props}\n className={cn('mt-6 flex items-center gap-8 md:mt-0 md:justify-center', className)}\n >\n {children}\n </div>\n );\n}\n\nexport { Header, HeaderActions, HeaderLogoUnit, HeaderMainNavUnit, HeaderMenuUnit };\n"],"x_google_ignoreList":[0],"mappings":"qOAcA,IAAM,EAAOA,EAAAA,EAAiB,OAAQ,CAJpC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,UAAW,IAAK,QAAS,CAAC,CAEJ,CAAU,ECThD,SAAS,EAAO,CAAE,YAAW,WAAU,GAAG,GAA4C,CACpF,OACE,EAAA,EAAA,IAAA,CAAC,SAAD,CACE,GAAI,EACJ,UAAW,EAAA,EACT,6JACA,CACF,EAEC,UACK,CAAA,CAEZ,CAEA,SAAS,EAAe,CACtB,YACA,WACA,cACA,YACA,aACA,GAAG,GAMF,CACD,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,GAAI,EAAO,UAAW,EAAA,EAAG,oBAAqB,CAAS,YAC1D,EAAA,EAAA,KAAA,CAAC,IAAD,CACE,KAAM,GAAa,KACnB,MAAO,CAAE,eAAgB,MAAO,EAChC,UAAU,iDAHZ,EAKE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,IAAK,kEAAkE,IAAe,MAAQ,IAAe,KAAO,OAAS,OAAO,gBACpI,IAAI,YACJ,UAAU,qCACX,CAAA,GACD,EAAA,EAAA,KAAA,CAAC,MAAD,CAAA,SAAA,CACG,GACC,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,sKACZ,CACE,CAAA,EACH,MACJ,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,qGACZ,CACE,CAAA,CACF,CAAA,CAAA,CACJ,GACA,CAAA,CAET,CAEA,SAAS,EAAkB,CACzB,YACA,WACA,GAAG,GACoC,CACvC,GAAM,CAAC,EAAU,GAAe,EAAA,QAAM,SAAS,EAAK,EACpD,OACE,EAAA,EAAA,KAAA,CAAA,EAAA,SAAA,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,GAAI,EACJ,UAAW,EAAA,EAAG,8DAA+D,CAAS,EAErF,UACE,CAAA,GACL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,GAAI,EAAO,UAAW,EAAA,EAAG,wCAAyC,CAAS,WAAhF,EACE,EAAA,EAAA,IAAA,CAAC,SAAD,CACE,KAAK,SACL,YAAe,CACb,EAAY,CAAC,CAAQ,CACvB,WAEC,GACC,EAAA,EAAA,IAAA,CAAC,EAAA,EAAD,CAAG,UAAU,0BAA4B,CAAA,GAEzC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,UAAU,0BAA4B,CAAA,CAExC,CAAA,EACP,GAEC,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,QAAU,GAAM,CACC,EAAE,OAEN,QAAQ,GAAG,GACpB,EAAY,EAAK,CAErB,EACA,cAAiB,CAAC,EAClB,UAAU,sJAET,UACE,CAAA,EACH,IACD,GACL,CAAA,CAAA,CAEN,CAEA,SAAS,EAAe,CACtB,YACA,WACA,QAAQ,SACR,GAAG,GAGF,CACD,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,GAAI,EACJ,UAAW,EAAA,EACT,kQACA,IAAU,MAAQ,iBAAmB,oBACrC,CACF,EAEC,UACE,CAAA,CAET,CAEA,SAAS,EAAc,CAAE,YAAW,WAAU,GAAG,GAA+C,CAC9F,OACE,EAAA,EAAA,IAAA,CAAC,MAAD,CACE,GAAI,EACJ,UAAW,EAAA,EAAG,yDAA0D,CAAS,EAEhF,UACE,CAAA,CAET"}