@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 4.04 kB
Source Map (JSON)
{"version":3,"file":"Hero.mjs","names":["A","Flexbox","GradientButton","Button","AuroraBackground","Center"],"sources":["../../../src/awesome/Hero/Hero.tsx"],"sourcesContent":["'use client';\n\nimport { ConfigProvider } from 'antd';\nimport { useResponsive } from 'antd-style';\nimport { Github } from 'lucide-react';\nimport { memo, useCallback } from 'react';\n\nimport A from '@/A';\nimport Button from '@/Button';\nimport { Center, Flexbox } from '@/Flex';\nimport AuroraBackground from '@/awesome/AuroraBackground';\nimport GradientButton from '@/awesome/GradientButton';\n\nimport { styles } from './style';\nimport type { HeroProps } from './type';\n\nconst Hero = memo<HeroProps>(({ title, description, actions, Link }) => {\n const { mobile } = useResponsive();\n\n const LinkRender = Link || A;\n\n const ButtonGroups = useCallback(\n () =>\n Boolean(actions?.length) && (\n <Flexbox className={styles.actions} gap={16} horizontal justify={'center'}>\n {actions!.map(({ text, link, openExternal, github, type }, index) => {\n const content =\n type === 'primary' ? (\n <GradientButton\n block={mobile}\n icon={github ? Github : undefined}\n key={index}\n size=\"large\"\n >\n {text}\n </GradientButton>\n ) : (\n <Button\n block={mobile}\n icon={github ? Github : undefined}\n key={index}\n size=\"large\"\n type=\"primary\"\n >\n {text}\n </Button>\n );\n\n return openExternal ? (\n <A href={link} key={text} target={openExternal ? '_blank' : undefined}>\n {content}\n </A>\n ) : (\n <LinkRender key={text} to={link}>\n {content}\n </LinkRender>\n );\n })}\n </Flexbox>\n ),\n [actions],\n );\n\n return (\n <>\n <AuroraBackground />\n <ConfigProvider theme={{ token: { fontSize: 16 } }}>\n <Flexbox align={'center'} style={{ zIndex: 1 }}>\n <Flexbox className={styles.container} distribution={'center'} horizontal>\n <Center>\n {title && (\n <Center\n as={'h1'}\n className={styles.title}\n dangerouslySetInnerHTML={{ __html: title }}\n gap={'0.25em'}\n horizontal\n wrap={'wrap'}\n />\n )}\n {description && (\n <p className={styles.desc} dangerouslySetInnerHTML={{ __html: description }} />\n )}\n <ButtonGroups />\n </Center>\n </Flexbox>\n </Flexbox>\n </ConfigProvider>\n </>\n );\n});\n\nHero.displayName = 'Hero';\n\nexport default Hero;\n"],"mappings":";;;;;;;;;;;;;;;;AAgBA,MAAM,OAAO,MAAiB,EAAE,OAAO,aAAa,SAAS,WAAW;CACtE,MAAM,EAAE,WAAW,eAAe;CAElC,MAAM,aAAa,QAAQA;CAE3B,MAAM,eAAe,kBAEjB,QAAQ,SAAS,OAAO,IACtB,oBAACC;EAAQ,WAAW,OAAO;EAAS,KAAK;EAAI;EAAW,SAAS;YAC9D,QAAS,KAAK,EAAE,MAAM,MAAM,cAAc,QAAQ,QAAQ,UAAU;GACnE,MAAM,UACJ,SAAS,YACP,oBAACC;IACC,OAAO;IACP,MAAM,SAAS,SAAS;IAExB,MAAK;cAEJ;MAHI,MAIU,GAEjB,oBAACC;IACC,OAAO;IACP,MAAM,SAAS,SAAS;IAExB,MAAK;IACL,MAAK;cAEJ;MAJI,MAKE;AAGb,UAAO,eACL,oBAACH;IAAE,MAAM;IAAiB,QAAQ,eAAe,WAAW;cACzD;MADiB,KAEhB,GAEJ,oBAAC;IAAsB,IAAI;cACxB;MADc,KAEJ;IAEf;GACM,EAEd,CAAC,QAAQ,CACV;AAED,QACE,8CACE,oBAACI,6BAAmB,EACpB,oBAAC;EAAe,OAAO,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;YAChD,oBAACH;GAAQ,OAAO;GAAU,OAAO,EAAE,QAAQ,GAAG;aAC5C,oBAACA;IAAQ,WAAW,OAAO;IAAW,cAAc;IAAU;cAC5D,qBAACI;KACE,SACC,oBAACA;MACC,IAAI;MACJ,WAAW,OAAO;MAClB,yBAAyB,EAAE,QAAQ,OAAO;MAC1C,KAAK;MACL;MACA,MAAM;OACN;KAEH,eACC,oBAAC;MAAE,WAAW,OAAO;MAAM,yBAAyB,EAAE,QAAQ,aAAa;OAAI;KAEjF,oBAAC,iBAAe;QACT;KACD;IACF;GACK,IAChB;EAEL;AAEF,KAAK,cAAc;AAEnB,mBAAe"}