/** * @fileoverview 代码编辑器工具栏组件 * 提供代码块的各种操作功能,包括语言切换、复制、运行等 * @author Code Plugin Team */ import React from 'react'; import { CodeNode } from '../../../MarkdownEditor/el'; import { LanguageSelectorProps } from './LanguageSelector'; /** * 代码工具栏组件的属性接口 */ export interface CodeToolbarProps { theme: string; setTheme: (theme: string) => void; isExpanded: boolean; /** 代码块元素数据 */ element: CodeNode; /** 是否为只读模式 */ readonly: boolean; /** 关闭按钮点击回调(用于公式和 mermaid) */ onCloseClick: () => void; /** 语言选择器的属性 */ languageSelectorProps: LanguageSelectorProps; /** 代码块是否被选中 */ isSelected?: boolean; /** 代码块选中状态变化回调 */ onSelectionChange?: (selected: boolean) => void; /** 视图模式切换回调(用于HTML和Markdown) */ onViewModeToggle?: (value: 'preview' | 'code') => void; /** 当前视图模式('preview' | 'code') */ viewMode?: 'preview' | 'code'; /** 展开/收起回调 */ onExpandToggle?: () => void; } /** * 代码编辑器工具栏组件 * * 功能: * - 语言选择器(非只读模式) * - 只读模式下的语言显示 * - 复制代码功能 * - 全屏切换功能 * - HTML 代码运行功能(仅限 HTML 语言) * - 关闭功能(仅限公式和 mermaid) * * 布局: * - 左侧:语言选择器或语言显示 * - 右侧:操作按钮组(关闭、运行、复制、全屏) * * @param props - 组件属性 * @returns React 工具栏元素 * * @example * ```tsx * setHidden(true)} * languageSelectorProps={langProps} * /> * ``` */ export declare const CodeToolbar: (props: CodeToolbarProps) => React.JSX.Element;