import type { Components } from "react-markdown"; import Divider from "@moduletrace/twui/layout/Divider"; import H3 from "@moduletrace/twui/layout/H3"; import H4 from "@moduletrace/twui/layout/H4"; import H5 from "@moduletrace/twui/layout/H5"; import P from "@moduletrace/twui/layout/P"; import Span from "@moduletrace/twui/layout/Span"; import Stack from "@moduletrace/twui/layout/Stack"; import MarkdownCodeBlock from "../(partials)/markdown-code-block"; import MarkdownLink from "../(partials)/markdown-link"; import MarkdownList from "../(partials)/markdown-list"; const HeadingClassName = "my-0! text-[15px]! leading-6! tracking-normal! font-bold text-ink"; /** * How a bot message's markdown renders: chat-sized twui elements (headings * no bigger than the bot's name), lists through twui's `List`, code on the * sunken surface, and links that open in a new tab or switch computers. * Tables (GFM) have no children-based twui equivalent, so they're styled * elements. */ export const MessageMarkdownComponents: Components = { p: ({ children }) => (
{children}
), h1: ({ children }) =>