import type { Components } from 'react-markdown' import ReactMarkdown from 'react-markdown' import remarkGfm from 'remark-gfm' import remarkMath from 'remark-math' import rehypeKatex from 'rehype-katex' import { cn } from '@/lib/utils' import { Scrollbar } from '../basic/scrollbar' export interface MarkdownBodyProps { children: string className?: string } const markdownComponents: Components = { p: ({ children }) => (

{children}

), h1: ({ children }) => (

{children}

), h2: ({ children }) => (

{children}

), h3: ({ children }) => (

{children}

), h4: ({ children }) => (

{children}

), h5: ({ children }) => (
{children}
), h6: ({ children }) => (
{children}
), blockquote: ({ children }) => (
{children}
), ul: ({ className, children }) => ( ), ol: ({ children }) => (
    {children}
), li: ({ className, children }) => (
  • input]:mt-0.5 [&>input]:shrink-0' )} > {children}
  • ), pre: ({ children }) => (
            {children}
          
    ), code: ({ className, children, ...props }) => { const isBlock = typeof className === 'string' && className.startsWith('language-') if (!isBlock) { return ( {children} ) } return ( {children} ) }, table: ({ children }) => ( {children}
    ), thead: ({ children }) => ( {children} ), tbody: ({ children }) => ( {children} ), tr: ({ children }) => {children}, th: ({ children }) => ( {children} ), td: ({ children }) => {children}, a: ({ href, children }) => ( {children} ), hr: () =>
    , strong: ({ children }) => {children}, em: ({ children }) => {children}, } export function MarkdownBody({ children, className }: MarkdownBodyProps) { return (
    {children}
    ) } MarkdownBody.displayName = 'MarkdownBody'