@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 3.44 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","names":["logoComponent: ReactNode","Logo3d","LogoFlat","LogoMono","LogoText","Flexbox","Divider"],"sources":["../../../src/brand/LobeChat/index.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar } from 'antd-style';\nimport { type ReactNode, memo } from 'react';\n\nimport { Flexbox } from '@/Flex';\nimport LogoText from '@/brand/LobeChatText';\nimport { styles } from '@/brand/LobeHub/style';\nimport Logo3d from '@/brand/Logo3d';\nimport LogoFlat from '@/brand/LogoFlat';\nimport LogoMono from '@/brand/LogoMono';\nimport Divider from '@/brand/components/Divider';\nimport { DivProps } from '@/types';\n\nexport interface LobeChatProps extends DivProps {\n extra?: ReactNode;\n size?: number;\n type?: '3d' | 'flat' | 'mono' | 'text' | 'combine';\n}\n\nconst LobeChat = memo<LobeChatProps>(\n ({ type = '3d', size = 32, style, extra, className, ...rest }) => {\n let logoComponent: ReactNode;\n\n switch (type) {\n case '3d': {\n logoComponent = <Logo3d alt={'LobeChat'} size={size} {...rest} />;\n break;\n }\n case 'flat': {\n logoComponent = <LogoFlat size={size} style={style} />;\n break;\n }\n case 'mono': {\n logoComponent = <LogoMono size={size} style={style} />;\n break;\n }\n case 'text': {\n logoComponent = (\n <LogoText className={className} size={size} style={style} {...(rest as any)} />\n );\n break;\n }\n case 'combine': {\n logoComponent = (\n <>\n <Logo3d alt=\"LobeChat\" size={size} />\n <LogoText size={size} style={{ marginLeft: Math.round(size / 4) }} />\n </>\n );\n\n if (!extra)\n logoComponent = (\n <Flexbox align={'center'} className={className} flex={'none'} horizontal style={style}>\n {logoComponent}\n </Flexbox>\n );\n\n break;\n }\n }\n\n if (!extra) return logoComponent;\n\n const extraSize = Math.round((size / 3) * 1.9);\n\n return (\n <Flexbox\n align={'center'}\n className={className}\n flex={'none'}\n horizontal\n style={style}\n {...rest}\n >\n {logoComponent}\n <Divider size={extraSize} style={{ color: cssVar.colorFill }} />\n <div className={styles.extraTitle} style={{ fontSize: extraSize }}>\n {extra}\n </div>\n </Flexbox>\n );\n },\n);\n\nLobeChat.displayName = 'LobeChatBrand';\n\nexport default LobeChat;\n"],"mappings":";;;;;;;;;;;;;;AAoBA,MAAM,WAAW,MACd,EAAE,OAAO,MAAM,OAAO,IAAI,OAAO,OAAO,WAAW,GAAG,WAAW;CAChE,IAAIA;AAEJ,SAAQ,MAAR;EACE,KAAK;AACH,mBAAgB,oBAACC;IAAO,KAAK;IAAkB;IAAM,GAAI;KAAQ;AACjE;EAEF,KAAK;AACH,mBAAgB,oBAACC;IAAe;IAAa;KAAS;AACtD;EAEF,KAAK;AACH,mBAAgB,oBAACC;IAAe;IAAa;KAAS;AACtD;EAEF,KAAK;AACH,mBACE,oBAACC;IAAoB;IAAiB;IAAa;IAAO,GAAK;KAAgB;AAEjF;EAEF,KAAK;AACH,mBACE,8CACE,oBAACH;IAAO,KAAI;IAAiB;KAAQ,EACrC,oBAACG;IAAe;IAAM,OAAO,EAAE,YAAY,KAAK,MAAM,OAAO,EAAE,EAAE;KAAI,IACpE;AAGL,OAAI,CAAC,MACH,iBACE,oBAACC;IAAQ,OAAO;IAAqB;IAAW,MAAM;IAAQ;IAAkB;cAC7E;KACO;AAGd;;AAIJ,KAAI,CAAC,MAAO,QAAO;CAEnB,MAAM,YAAY,KAAK,MAAO,OAAO,IAAK,IAAI;AAE9C,QACE,qBAACA;EACC,OAAO;EACI;EACX,MAAM;EACN;EACO;EACP,GAAI;;GAEH;GACD,oBAACC;IAAQ,MAAM;IAAW,OAAO,EAAE,OAAO,OAAO,WAAW;KAAI;GAChE,oBAAC;IAAI,WAAW,OAAO;IAAY,OAAO,EAAE,UAAU,WAAW;cAC9D;KACG;;GACE;EAGf;AAED,SAAS,cAAc;AAEvB,uBAAe"}