UNPKG

@lobehub/ui

Version:

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

1 lines 2.49 kB
{"version":3,"file":"CodeBlock.mjs","names":["CodeBlock: FC<CodeBlockProps>"],"sources":["../../../src/mdx/mdxComponents/CodeBlock.tsx"],"sourcesContent":["'use client';\n\nimport type { FC } from 'react';\n\nimport { FALLBACK_LANG } from '@/Highlighter/const';\nimport type { MermaidProps } from '@/Mermaid';\n\nimport { Pre, PreMermaid, PreSingleLine } from '../mdxComponents/Pre';\n\nconst countLines = (str: string): number => {\n const regex = /\\n/g;\n const matches = str.match(regex);\n return matches ? matches.length : 1;\n};\n\nconst useCode = (raw: any) => {\n if (!raw) return;\n\n const { children = '', className } = raw?.props || { children: '' };\n\n if (!children) return;\n\n const content = Array.isArray(children) ? (children[0] as string) : children;\n\n const lang = className?.replace('language-', '') || FALLBACK_LANG;\n\n const isSingleLine = countLines(content) <= 1 && content.length <= 32;\n\n return {\n content,\n isSingleLine,\n lang,\n };\n};\n\ninterface CodeBlockProps {\n children: any;\n enableMermaid?: boolean;\n fullFeatured?: boolean;\n mermaid?: MermaidProps;\n}\n\nconst CodeBlock: FC<CodeBlockProps> = ({ children, fullFeatured, enableMermaid, mermaid }) => {\n const code = useCode(children);\n\n if (!code) return;\n\n if (enableMermaid && code.lang === 'mermaid')\n return (\n <PreMermaid fullFeatured={fullFeatured} {...mermaid}>\n {code.content}\n </PreMermaid>\n );\n\n if (code.isSingleLine) return <PreSingleLine language={code.lang}>{code.content}</PreSingleLine>;\n\n return (\n <Pre allowChangeLanguage={false} fullFeatured={fullFeatured} language={code.lang}>\n {code.content}\n </Pre>\n );\n};\n\nCodeBlock.displayName = 'MdxCodeBlock';\n\nexport default CodeBlock;\n"],"mappings":";;;;;;;AASA,MAAM,cAAc,QAAwB;CAE1C,MAAM,UAAU,IAAI,MADN,MACkB;AAChC,QAAO,UAAU,QAAQ,SAAS;;AAGpC,MAAM,WAAW,QAAa;AAC5B,KAAI,CAAC,IAAK;CAEV,MAAM,EAAE,WAAW,IAAI,cAAc,KAAK,SAAS,EAAE,UAAU,IAAI;AAEnE,KAAI,CAAC,SAAU;CAEf,MAAM,UAAU,MAAM,QAAQ,SAAS,GAAI,SAAS,KAAgB;CAEpE,MAAM,OAAO,WAAW,QAAQ,aAAa,GAAG,IAAI;AAIpD,QAAO;EACL;EACA,cAJmB,WAAW,QAAQ,IAAI,KAAK,QAAQ,UAAU;EAKjE;EACD;;AAUH,MAAMA,aAAiC,EAAE,UAAU,cAAc,eAAe,cAAc;CAC5F,MAAM,OAAO,QAAQ,SAAS;AAE9B,KAAI,CAAC,KAAM;AAEX,KAAI,iBAAiB,KAAK,SAAS,UACjC,QACE,oBAAC;EAAyB;EAAc,GAAI;YACzC,KAAK;GACK;AAGjB,KAAI,KAAK,aAAc,QAAO,oBAAC;EAAc,UAAU,KAAK;YAAO,KAAK;GAAwB;AAEhG,QACE,oBAAC;EAAI,qBAAqB;EAAqB;EAAc,UAAU,KAAK;YACzE,KAAK;GACF;;AAIV,UAAU,cAAc;AAExB,wBAAe"}