import { createGlobalStyle } from 'antd-style'; import { useProviderContext } from '@agentscope-ai/chat'; import { Popover } from 'antd'; const Style = createGlobalStyle` .${p => p.theme.prefixCls}-markdown-citation { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; padding: 0 4px; height: 16px; margin-inline: 2px; font-size: 10px; color: ${p => p.theme.colorTextSecondary}; text-align: center; vertical-align: top; background: ${p => p.theme.colorFillSecondary}; border-radius: 4px; transition: all 100ms ${p => p.theme.motionEaseOut}; cursor: pointer; line-height: 1; &:hover { color: ${p => p.theme.colorWhite}; background: ${p => p.theme.colorPrimary}; } } `; export interface DefaultRenderProps { text: string; url: string; title: string; content: string; } export interface CitationComponentProps extends DefaultRenderProps { render: (props: DefaultRenderProps) => React.ReactNode; } function DefaultRender(props: DefaultRenderProps) { const { getPrefixCls } = useProviderContext(); const prefixCls = getPrefixCls('markdown-citation'); const text = props['data-text']; const url = props['data-url']; const title = props['data-title']; const content = props['data-content']; const isTooltip = content || title; let node = {text}; if (isTooltip) { node = {url} : content}>{node}; } return <>