@bothub-chat/ui
Version:
Bothub UI Components
2 lines (1 loc) • 2.61 kB
JavaScript
import{jsx as t,jsxs as o,Fragment as e}from"react/jsx-runtime";import{forwardRef as s,useMemo as r}from"react";import i from"react-markdown";import{useMessage as n}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 m}from"../components/paragraph/index.js";import"../components/bold/styled.js";import"../components/italic/styled.js";import"../components/strike/styled.js";import"../components/blockquote/styled.js";import"../components/hr/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"../components/document-copy/styled.js";import"unified";import"remark-parse";import"remark-gfm";import"mdast-util-to-markdown";import"../../../utils/colors/calculateGrayScale.js";import"../../../utils/colors/calculateAccentColors.js";import"../components/cite/styled.js";import{MessageMarkdownStyled as p,MessageMarkdownLine as l}from"./styled.js";import{markdownComponents as c}from"./markdown-components.js";import{normalizeMessageMarkdown as d}from"./utils.js";import{useMarkdownPlugins as a}from"./useMarkdownPlugins.js";const j=s(({children:s,components:j={},componentsOverride:y={},disableTyping:u=!1,forceMarkdown:g=!1},f)=>{const{typing:k,variant:h,color:b}=n(),x=!g&&"user"===h,w=r(()=>"string"!=typeof s||x?s:d(s),[s,x]),{remarkPlugins:P,rehypePlugins:M}=a(),v=r(()=>"string"!=typeof w?null:t(p,{ref:f,children:t(l,{$typing:!u&&k,$color:b,children:t(i,{remarkPlugins:P,rehypePlugins:M,components:c(j,y,P,M),children:w})})}),[k,u,b,w,P,M,f,j,y]);return o(e,{children:[x&&"string"==typeof s&&t(m,{wrap:!0,disableMargin:!0,children:w}),!x&&"string"==typeof s&&v]})});export{j as MessageMarkdown};