import { default as React } from 'react'; import { BaseEditor } from 'slate'; import { RenderElementProps, RenderLeafProps, ReactEditor } from 'slate-react'; export declare enum DataType { SLATE = "slate", MARKDOWN = "markdown", HTML = "html", TEXT = "text" } export interface DataSource { type: DataType; content: any; } export interface UnifiedRichTextProps { /** 数据源 */ dataSource: { type: DataType; content?: any; }; /** 是否处于编辑模式 */ isEditing?: boolean; /** 占位符文本 */ placeholder?: string; /** 组件尺寸 */ size?: 'sm' | 'md'; /** 基础路径,用于处理相对路径的图片 */ basePath?: string; /** 主题样式 */ theme?: { primaryColor?: string; secondaryColor?: string; backgroundColor?: string; textColor?: string; borderColor?: string; disabledBackground?: string; hoverBackground?: string; borderRadius?: string; padding?: string; margin?: string; minHeight?: string; /** 基础字体大小(px),控制除自定义元素外的文字字号,默认12 */ baseFontSize?: number; }; /** 内容变化回调 */ onChange?: (content: any, type: DataType) => void; /** 聚焦回调 */ onFocus?: () => void; /** 失焦回调 */ onBlur?: () => void; /** 自定义渲染元素 */ renderElement?: (props: RenderElementProps) => JSX.Element; /** 自定义渲染叶子节点 */ renderLeaf?: (props: RenderLeafProps) => JSX.Element; /** retrive-tag 点击回调 */ onRetriveTagClick?: (leaf: any, attributes: any) => void; /** 事件发射器 */ eventsEmit?: (event: string, data: any) => void; /** 编辑器就绪回调 */ onEditorReady?: (editor: BaseEditor & ReactEditor) => void; /** 额外的 props,会传递给 renderElement */ extraProps?: Record; /** 自定义样式 */ className?: string; /** 自定义样式对象 */ style?: React.CSSProperties; /** 样式配置 */ styles?: { /** 字间距 */ letterSpacing?: string; /** 行间距 */ lineHeight?: string; /** 蓝框背景样式 */ templateField?: { backgroundColor?: string; borderColor?: string; borderRadius?: string; padding?: string; margin?: string; fontSize?: string; fontWeight?: string; minWidth?: string; maxWidth?: string; /** 文字颜色 */ textColor?: string; }; /** 文本样式 */ text?: { fontSize?: string; lineHeight?: string; color?: string; }; }; /** 是否启用在输入/粘贴时将 识别为模板元素 */ enableTemplateInput?: boolean; /** 禁用特定标签的核心转译能力(例如 'template' | 'think' | 'reference') */ disabledTags?: Array<'template' | 'think' | 'reference'>; /** 是否启用 PrismJS 语法高亮(默认 false,使用普通代码块样式) */ enablePrism?: boolean; /** 是否启用 "; export default UnifiedRichText; export { UnifiedRichText };