UNPKG

@lobehub/ui

Version:

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

73 lines (70 loc) 2.87 kB
'use client'; import PreviewGroup_default from "../Image/PreviewGroup.mjs"; import { MarkdownProvider } from "./components/MarkdownProvider.mjs"; import MarkdownRender_default from "./SyntaxMarkdown/MarkdownRender.mjs"; import StreamdownRender_default from "./SyntaxMarkdown/StreamdownRender.mjs"; import Typography_default from "./Typography.mjs"; import { useDelayedAnimated } from "./components/useDelayedAnimated.mjs"; import { variants } from "./style.mjs"; import { memo, useCallback } from "react"; import { jsx } from "react/jsx-runtime"; import { cx } from "antd-style"; //#region src/Markdown/Markdown.tsx const Markdown = memo((props) => { const { ref, children = "", className, style, fullFeaturedCodeBlock, onDoubleClick, animated, enableLatex = true, enableMermaid = true, enableImageGallery, enableCustomFootnotes, enableGithubAlert, enableStream = true, componentProps, rehypePluginsAhead, allowHtml, borderRadius, fontSize = props.variant === "chat" ? 14 : void 0, headerMultiple = props.variant === "chat" ? .25 : void 0, marginMultiple = props.variant === "chat" ? 1 : void 0, variant = "default", reactMarkdownProps, lineHeight = props.variant === "chat" ? 1.6 : void 0, rehypePlugins, remarkPlugins, remarkPluginsAhead, components = {}, customRender, showFootnotes = true, citations, ...rest } = props; const delayedAnimated = useDelayedAnimated(animated); const Render = useCallback(({ enableStream: enableStream$1, children: children$1, reactMarkdownProps: reactMarkdownProps$1 }) => { const defaultDOM = /* @__PURE__ */ jsx(enableStream$1 ? StreamdownRender_default : MarkdownRender_default, { ...reactMarkdownProps$1, children: children$1 }); return customRender ? customRender(defaultDOM, { text: children$1 }) : defaultDOM; }, [customRender]); return /* @__PURE__ */ jsx(PreviewGroup_default, { enable: enableImageGallery, children: /* @__PURE__ */ jsx(Typography_default, { borderRadius, className: cx(variants({ enableLatex, variant }), className), "data-code-type": "markdown", fontSize, headerMultiple, lineHeight, marginMultiple, onDoubleClick, ref, style, ...rest, children: /* @__PURE__ */ jsx(MarkdownProvider, { allowHtml, animated: delayedAnimated, citations, componentProps, components, enableCustomFootnotes, enableGithubAlert, enableLatex, enableMermaid, fullFeaturedCodeBlock, rehypePlugins, rehypePluginsAhead, remarkPlugins, remarkPluginsAhead, showFootnotes, variant, children: /* @__PURE__ */ jsx(Render, { enableStream: enableStream && delayedAnimated, reactMarkdownProps, children }) }) }) }); }); Markdown.displayName = "Markdown"; var Markdown_default = Markdown; //#endregion export { Markdown_default as default }; //# sourceMappingURL=Markdown.mjs.map