{"version":3,"file":"CodeBlock.mjs","names":[],"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,MAAM,KAAK;CAC/B,OAAO,UAAU,QAAQ,SAAS;AACpC;AAEA,MAAM,WAAW,QAAa;CAC5B,IAAI,CAAC,KAAK;CAEV,MAAM,EAAE,WAAW,IAAI,cAAc,KAAK,SAAS,EAAE,UAAU,GAAG;CAElE,IAAI,CAAC,UAAU;CAEf,MAAM,UAAU,MAAM,QAAQ,QAAQ,IAAK,SAAS,KAAgB;CAEpE,MAAM,OAAO,WAAW,QAAQ,aAAa,EAAE,KAAA;CAI/C,OAAO;EACL;EACA,cAJmB,WAAW,OAAO,KAAK,KAAK,QAAQ,UAAU;EAKjE;CACF;AACF;AASA,MAAM,aAAiC,EAAE,UAAU,cAAc,eAAe,cAAc;CAC5F,MAAM,OAAO,QAAQ,QAAQ;CAE7B,IAAI,CAAC,MAAM;CAEX,IAAI,iBAAiB,KAAK,SAAS,WACjC,OACE,oBAAC,YAAD;EAA0B;EAAc,GAAI;YACzC,KAAK;CACI,CAAA;CAGhB,IAAI,KAAK,cAAc,OAAO,oBAAC,eAAD;EAAe,UAAU,KAAK;YAAO,KAAK;CAAuB,CAAA;CAE/F,OACE,oBAAC,KAAD;EAAK,qBAAqB;EAAqB;EAAc,UAAU,KAAK;YACzE,KAAK;CACH,CAAA;AAET;AAEA,UAAU,cAAc"}