UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

1 lines 3.53 kB
{"version":3,"file":"index.mjs","names":["LogoFlat","LogoMono","LogoText","Flexbox"],"sources":["../../../src/brand/LobeChat/index.tsx"],"sourcesContent":["'use client';\n\nimport { cssVar } from 'antd-style';\nimport { memo, type ReactNode } from 'react';\n\nimport Divider from '@/brand/components/Divider';\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 { Flexbox } from '@/Flex';\nimport { type 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 horizontal align={'center'} className={className} flex={'none'} 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 horizontal\n align={'center'}\n className={className}\n flex={'none'}\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,IAAI;AAEJ,SAAQ,MAAR;EACE,KAAK;AACH,mBAAgB,oBAAC,QAAD;IAAQ,KAAK;IAAkB;IAAM,GAAI;IAAQ,CAAA;AACjE;EAEF,KAAK;AACH,mBAAgB,oBAACA,kBAAD;IAAgB;IAAa;IAAS,CAAA;AACtD;EAEF,KAAK;AACH,mBAAgB,oBAACC,eAAD;IAAgB;IAAa;IAAS,CAAA;AACtD;EAEF,KAAK;AACH,mBACE,oBAACC,cAAD;IAAqB;IAAiB;IAAa;IAAO,GAAK;IAAgB,CAAA;AAEjF;EAEF,KAAK;AACH,mBACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,QAAD;IAAQ,KAAI;IAAiB;IAAQ,CAAA,EACrC,oBAACA,cAAD;IAAgB;IAAM,OAAO,EAAE,YAAY,KAAK,MAAM,OAAO,EAAE,EAAE;IAAI,CAAA,CACpE,EAAA,CAAA;AAGL,OAAI,CAAC,MACH,iBACE,oBAACC,mBAAD;IAAS,YAAA;IAAW,OAAO;IAAqB;IAAW,MAAM;IAAe;cAC7E;IACO,CAAA;AAGd;;AAIJ,KAAI,CAAC,MAAO,QAAO;CAEnB,MAAM,YAAY,KAAK,MAAO,OAAO,IAAK,IAAI;AAE9C,QACE,qBAACA,mBAAD;EACE,YAAA;EACA,OAAO;EACI;EACX,MAAM;EACC;EACP,GAAI;YANN;GAQG;GACD,oBAAC,SAAD;IAAS,MAAM;IAAW,OAAO,EAAE,OAAO,OAAO,WAAW;IAAI,CAAA;GAChE,oBAAC,OAAD;IAAK,WAAW,OAAO;IAAY,OAAO,EAAE,UAAU,WAAW;cAC9D;IACG,CAAA;GACE;;EAGf;AAED,SAAS,cAAc"}