@bothub-chat/ui
Version:
Bothub UI Components
2 lines (1 loc) • 2.48 kB
JavaScript
import{jsx as t,jsxs as o,Fragment as e}from"react/jsx-runtime";import{forwardRef as n,useMemo as s}from"react";import{useMessage as r}from"../context.js";import"tslib";import"styled-components";import"../components/code/inline/styled.js";import"../components/code/multiline/styled.js";import"@react-spring/web";import"react-dom";import"../../portal/styled.js";import"../../tooltip/styled.js";import"../../tooltip/arrow/styled.js";import"../../../theme/index.js";import"../../tooltip/context.js";import"../components/code/multiline/copy/styled.js";import"../../../icons/check-small/index.js";import"../../../icons/copy/index.js";import"../components/code/multiline/content/styled.js";import{MessageParagraph as i}from"../components/paragraph/index.js";import"../components/bold/styled.js";import"../components/italic/styled.js";import"../components/pre/styled.js";import"../components/table/styled.js";import"../components/table/cell/styled.js";import"../components/list/styled.js";import"../components/list/context.js";import"../components/list/item/styled.js";import"../components/title/styled.js";import"../components/link/styled.js";import"../components/image/styled.js";import"../components/image/context.js";import"../components/image/grid/styled.js";import"../components/image/button/styled.js";import"../components/image/button/list/styled.js";import{MessageMarkdownStyled as p,MessageMarkdownLine as m}from"./styled.js";import{markdownComponents as l}from"./markdown-components.js";import{useMarkdownPlugins as c}from"./useMarkdownPlugins.js";const d=n((({children:n,components:d={},componentsOverride:a={},disableTyping:j=!1,forceMarkdown:y=!1},g)=>{const{typing:h,variant:$,color:u}=r(),f=!y&&"user"===$,x=s((()=>"string"!=typeof n||f?n:n.replace(/\\\[((.|[\r\n])*?)\\\]/g,((t,o)=>`$$${o}$$`)).replace(/\\\(((.|[\r\n])*?)\\\)/g,((t,o)=>`$$${o}$$`)).replace(/<!--.*-->/g,"")),[n,f]),{remarkPlugins:b,rehypePlugins:k,singleDollarTextMath:w}=c({children:x}),M=s((()=>{const o=x.split("\n\n"),e=[];let n=!1;for(const t of o)n?e[e.length-1]+=`${t}\n\n`:t.match(/\n*\s*```/g)?(n=!n,n&&e.push(`${t}\n\n`)):e.push(t);return t(p,{ref:g,children:e.map(((o,e)=>t(m,{$typing:!j&&h,$color:u,$singleDollarTextMath:w,remarkPlugins:b,rehypePlugins:k,components:l(d,a),children:o},`${k.length}-${b.length}-${e}`)))})}),[h,x,w,b,k,g]);return o(e,{children:[f&&"string"==typeof n&&t(i,{wrap:!0,disableMargin:!0,children:x}),!f&&"string"==typeof n&&M]})}));export{d as MessageMarkdown};