@ant-design/agentic-ui 2.29.15 → 2.29.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +93 -205
  2. package/dist/Bubble/List/PureBubbleList.js +2 -4
  3. package/dist/Components/LayoutHeader/index.js +1 -1
  4. package/dist/Hooks/useLanguage.d.ts +2 -0
  5. package/dist/I18n/locales.d.ts +2 -0
  6. package/dist/I18n/locales.js +4 -0
  7. package/dist/MarkdownEditor/editor/parser/parse/parseHtml.js +11 -3
  8. package/dist/MarkdownEditor/editor/parser/parserMarkdownToSlateNode.d.ts +8 -0
  9. package/dist/MarkdownEditor/editor/parser/parserMarkdownToSlateNode.js +206 -144
  10. package/dist/MarkdownEditor/editor/plugins/elements.js +8 -2
  11. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/match.d.ts +1 -1
  12. package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/match.js +4 -3
  13. package/dist/MarkdownEditor/editor/plugins/useKeyboard.js +1 -2
  14. package/dist/MarkdownInputField/MarkdownInputField.js +4 -2
  15. package/dist/MarkdownInputField/SendActions/index.d.ts +2 -0
  16. package/dist/MarkdownInputField/SendActions/index.js +5 -3
  17. package/dist/MarkdownInputField/SendButton/index.d.ts +4 -0
  18. package/dist/MarkdownInputField/SendButton/index.js +3 -3
  19. package/dist/MarkdownInputField/hooks/useMarkdownInputFieldHandlers.d.ts +1 -1
  20. package/dist/MarkdownInputField/hooks/useMarkdownInputFieldHandlers.js +23 -10
  21. package/dist/MarkdownInputField/types/MarkdownInputFieldProps.d.ts +3 -3
  22. package/dist/MarkdownInputField/utils/renderHelpers.d.ts +1 -1
  23. package/dist/MarkdownInputField/utils/renderHelpers.js +3 -1
  24. package/dist/Workspace/Browser/index.d.ts +4 -0
  25. package/dist/Workspace/Browser/index.js +25 -7
  26. package/dist/Workspace/File/style.js +4 -1
  27. package/guidelines/Guidelines.md +31 -0
  28. package/guidelines/components/bubble.md +41 -0
  29. package/guidelines/components/chat-layout.md +45 -0
  30. package/guidelines/components/input.md +52 -0
  31. package/guidelines/components/loading.md +33 -0
  32. package/guidelines/components/markdown-editor.md +30 -0
  33. package/guidelines/components/robot.md +26 -0
  34. package/guidelines/components/task-list.md +22 -0
  35. package/guidelines/components/thought-chain.md +30 -0
  36. package/guidelines/components/tool-use-bar.md +22 -0
  37. package/guidelines/components/welcome-message.md +27 -0
  38. package/guidelines/components/workspace.md +63 -0
  39. package/guidelines/design-tokens/colors.md +51 -0
  40. package/guidelines/design-tokens/spacing.md +29 -0
  41. package/guidelines/design-tokens/typography.md +46 -0
  42. package/guidelines/overview-components.md +30 -0
  43. package/guidelines/overview-icons.md +15 -0
  44. package/package.json +5 -2
package/README.md CHANGED
@@ -1,251 +1,139 @@
1
- # Agentic UI - 面向智能体的 UI 组件库
1
+ # Agentic UI
2
+
3
+ <div align="center">
2
4
 
3
5
  [![NPM version](https://img.shields.io/npm/v/@ant-design/agentic-ui.svg?style=flat)](https://npmjs.org/package/@ant-design/agentic-ui)
4
6
  [![NPM downloads](http://img.shields.io/npm/dm/@ant-design/agentic-ui.svg?style=flat)](https://npmjs.org/package/@ant-design/agentic-ui)
7
+ [![License](https://img.shields.io/npm/l/@ant-design/agentic-ui.svg)](https://npmjs.org/package/@ant-design/agentic-ui)
5
8
 
6
- > 从"回答一句话"到"完成一件事"——让智能体真正成为你的协作伙伴
7
-
8
- ## ✨ 什么是 Agentic UI
9
+ <p>面向智能体的 UI 组件库,提供多步推理可视化、工具调用展示、任务执行协同等 Agentic UI 能力。</p>
10
+ <p>从“回答一句话”到“完成一件事”——让智能体真正成为你的协作伙伴。</p>
9
11
 
10
- **Agentic UI** 是一种面向"**思考—行动—观察**"闭环的智能体交互组件库,强调**任务执行全过程的协同**。
12
+ </div>
11
13
 
12
- ### 核心特性
14
+ ## ✨ 特性
13
15
 
14
- - 🤖 **多步推理可视化** - 展示智能体的思考、行动、观察过程
15
- - 🔧 **工具调用展示** - 可视化工具编排与执行状态
16
- - 👤 **人在回路** - 支持人工审批、干预或纠偏
17
- - 📊 **过程透明化** - 让 AI 决策过程可见、可控、可复盘
16
+ - **🤖 多步推理可视化** - 清晰展示智能体的“思考—行动—观察”完整链路
17
+ - **🔧 工具调用展示** - 可视化 API 调用、参数传递与执行结果
18
+ - **🧠 智能体协同** - 支持任务分解、进度跟踪与人在回路(Human-in-the-loop)交互
19
+ - **📝 流式 Markdown** - 支持打字机效果、数学公式、代码高亮与多模态输入
20
+ - **🎨 开箱即用** - 基于 Ant Design 体系,提供完整的 TypeScript 类型定义
21
+ - **🔌 插件化架构** - 灵活扩展图表、公式、代码格式化等能力
18
22
 
19
- ### 与传统 Chat UI 的区别
23
+ ## 📦 安装
20
24
 
21
- | 维度 | Chat UI | Agentic UI |
22
- | ---------- | ---------- | -------------- |
23
- | 核心目标 | 回答一句话 | 完成一件事 |
24
- | 交互深度 | 单轮问答 | 端到端任务协同 |
25
- | 过程可见性 | 黑盒 | 透明化 |
26
- | 人机关系 | 被动响应 | 主动协作 |
25
+ 推荐使用 `npm` `pnpm` 进行安装:
27
26
 
28
- ---
27
+ ```bash
28
+ npm install @ant-design/agentic-ui
29
+ # 或
30
+ pnpm add @ant-design/agentic-ui
31
+ # 或
32
+ yarn add @ant-design/agentic-ui
33
+ ```
29
34
 
30
- ## 🔄 交互范式演进
35
+ ## 🚀 快速开始
31
36
 
32
- ### GUI vs LUI
37
+ ### 基础示例:AI 对话气泡
33
38
 
34
- **GUI**:用可视化控件逐步完成操作
35
- **LUI**:用自然语言表达意图,系统解析并执行(常见为对话/命令式语言界面)
39
+ 展示一个包含思维链(Thought Chain)的 AI 回复气泡:
36
40
 
37
- | 对比维度 | GUI(传统界面) | LUI(语言界面) |
38
- | ------------------ | ---------------------------------------- | ---------------------------------------------------------------- |
39
- | **怎么操作** | 点按钮、选菜单、填表单 | 像聊天一样用自然语言说出你的需求 |
40
- | **交互方式** | 一步步点,系统照做 | 告诉目标,系统理解并帮你完成 |
41
- | **上手难度** | 看得见的功能容易学,但界面复杂时难掌握 | 说话就行,但要说得清楚(比如"帮我订明天的会议室"比"订个会"更好) |
42
- | **功能好不好找** | 功能都摆在界面上,一目了然 | 功能藏在对话里,需要提示或例子才知道能做什么 |
43
- | **结果准不准** | 点哪打哪,结果确定 | 有时理解有偏差,可能需要你再解释一下 |
44
- | **适合什么任务** | 简单、明确的操作(如上传文件、开关设置) | 复杂或多条件的任务(如"找上周类似但更便宜的方案") |
45
- | **出错了怎么办** | 可撤销、重试,操作步骤清晰 | 系统会问你确认,或让你修改说法 |
46
- | **能不能自动干活** | 得自己一步步点 | 一句话就能触发一连串自动操作(比如查数据+发邮件) |
41
+ ```tsx
42
+ import { Bubble } from '@ant-design/agentic-ui';
47
43
 
48
- > **关键洞察**:GUI 的操作"翻译"为自然语言,仍是"人主导、系统执行一步"。
44
+ export default () => (
45
+ <Bubble.AIBubble
46
+ content="我已经完成了数据分析,这是结果:"
47
+ thoughtChain={[
48
+ { type: 'thought', content: '首先需要查询数据库' },
49
+ { type: 'action', content: '执行 SQL 查询' },
50
+ { type: 'observation', content: '获取到 1000 条记录' },
51
+ ]}
52
+ />
53
+ );
54
+ ```
49
55
 
50
- ### LUI vs Agentic UI
56
+ ## 🧩 组件概览
51
57
 
52
- **LUI** 侧重"用自然语言操控界面"
53
- **Agentic UI** 侧重"给目标,由智能体规划并执行,过程可见可控"
58
+ ### 🤖 核心智能体组件
54
59
 
55
- | 维度 | LUI(语言用户界面) | Agentic UI(智能体用户界面) |
56
- | -------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
57
- | **核心理念** | "你说话,我照做"——把你的指令用自然语言说出来,系统帮你完成一步操作 | "你定目标,我来搞定"——你告诉它要达成什么目标,它自己想办法、分步骤完成,还能随时让你知道进展 |
58
- | **谁在干活?** | 主要是你在操作,系统只是帮你"翻译"语言成点击或填写。比如你说"发邮件",它弹出草稿,但还得你点"发送" | 主要是智能体(AI助手)在干活,它会自己查资料、填表格、发消息、调工具……但关键步骤会问你:"这样行吗?" |
59
- | **适合做什么?** | 简单、一次性的任务:比如"总结这篇文章""把这段话改得更正式""查一下明天天气" | 复杂、多步骤的任务:比如"帮我策划一场线上活动,包括写文案、找场地、发邀请、跟踪报名情况" |
60
- | **怎么用工具?** | 一次用一个工具,比如你说"翻译",它就调翻译功能;你说"查数据",它就查。不会自己组合多个工具 | 能自己决定用哪些工具、什么时候用、怎么组合。比如先查日历空闲时间,再写邮件,再发日程邀请,一气呵成 |
61
- | **你能看到过程吗?** | 通常只看到结果:"好了,这是你要的摘要。"中间怎么做的?不太清楚 | 你能看到它"怎么想的""做了什么""卡在哪了"。比如:"第一步我查了客户名单,第二步准备发邮件,但需要你确认模板" |
60
+ | 组件 | 描述 |
61
+ | --- | --- |
62
+ | `Bubble` | 对话气泡,支持 AI(带思维链)和用户模式 |
63
+ | `ThoughtChainList` | 独立展示智能体的“思考—行动—观察”推理过程 |
64
+ | `TaskList` | 任务列表,展示多步骤任务的状态(进行中、完成、等待) |
65
+ | `ToolUseBar` | 工具调用状态栏,展示 API 调用详情 |
66
+ | `AgenticLayout` | 智能体应用的标准布局框架 |
67
+ | `Workspace` | 包含文件管理、浏览器预览的智能体工作台 |
62
68
 
63
- > **核心升级**:从"语言控制界面"升级为"目标驱动的智能体协作者"。
69
+ ### ✍️ 编辑与输入
64
70
 
65
- ---
71
+ | 组件 | 描述 |
72
+ | --- | --- |
73
+ | `MarkdownEditor` | 支持流式输出、插件扩展的 Markdown 编辑器 |
74
+ | `MarkdownInputField` | 支持多模态(语音、文件)的输入框 |
75
+ | `SchemaForm` | 基于 Schema 自动生成的表单组件 |
66
76
 
67
- ## 🚀 快速开始
77
+ ### 🎯 交互与反馈
68
78
 
69
- ### 安装
79
+ | 组件 | 描述 |
80
+ | --- | --- |
81
+ | `SuggestionList` | 下一步操作或问题的建议列表 |
82
+ | `WelcomeMessage` | 应用启动时的欢迎语引导 |
83
+ | `History` | 会话历史记录管理 |
84
+ | `AnswerAlert` | 用于展示结果状态的提示组件 |
70
85
 
71
- ```bash
72
- npm install @ant-design/agentic-ui
73
- # 或
74
- pnpm add @ant-design/agentic-ui
75
- ```
86
+ ## 💡 设计理念
76
87
 
77
- ### 基础示例:AI 对话气泡
88
+ **Agentic UI** 旨在解决传统 Chat UI 在处理复杂任务时的局限性。
78
89
 
79
- ```tsx
80
- import { Bubble } from '@ant-design/agentic-ui';
90
+ | 维度 | Chat UI (LUI) | Agentic UI |
91
+ | --- | --- | --- |
92
+ | **核心目标** | 回答一句话 | 完成一件事 |
93
+ | **交互深度** | 单轮问答 | 端到端任务协同 |
94
+ | **过程可见性** | 黑盒(只看结果) | 透明化(可见思考与工具调用) |
95
+ | **人机关系** | 被动响应 | 主动协作 |
81
96
 
82
- <Bubble.AIBubble
83
- content="我已经完成了数据分析,这是结果:"
84
- thoughtChain={[
85
- { type: 'thought', content: '首先需要查询数据库' },
86
- { type: 'action', content: '执行 SQL 查询' },
87
- { type: 'observation', content: '获取到 1000 条记录' },
88
- ]}
89
- />;
90
- ```
97
+ 我们不仅提供界面控件,更提供一种**面向过程**的交互范式,让用户理解 AI 的决策逻辑,从而建立信任并进行有效协作。
91
98
 
92
- ### 任务列表组件
99
+ ## ⌨️ 本地开发
93
100
 
94
- ```tsx | pure
95
- import { TaskList } from '@ant-design/agentic-ui';
101
+ 克隆仓库并安装依赖:
96
102
 
97
- <TaskList
98
- tasks={[
99
- { id: 1, title: '数据查询', status: 'completed' },
100
- { id: 2, title: '数据分析', status: 'in_progress' },
101
- { id: 3, title: '生成报告', status: 'pending' },
102
- ]}
103
- />;
103
+ ```bash
104
+ git clone git@github.com:ant-design/agentic-ui.git
105
+ cd agentic-ui
106
+ pnpm install
104
107
  ```
105
108
 
106
- ### 工具调用展示
109
+ 启动文档站点进行预览:
107
110
 
108
- ```tsx | pure
109
- import { ToolUseBar } from '@ant-design/agentic-ui';
110
-
111
- <ToolUseBar
112
- toolName="database_query"
113
- status="running"
114
- params={{ table: 'users', limit: 100 }}
115
- result={{ count: 1000, data: [...] }}
116
- />
111
+ ```bash
112
+ pnpm start
113
+ # 访问 http://localhost:8000
117
114
  ```
118
115
 
119
- ### Markdown 编辑器(支持流式输出)
116
+ 运行测试:
120
117
 
121
- ```tsx | pure
122
- import { MarkdownEditor } from '@ant-design/agentic-ui';
123
-
124
- <MarkdownEditor
125
- initValue="# AI 生成内容"
126
- typewriter={true} // 打字机效果
127
- readonly={false}
128
- />;
118
+ ```bash
119
+ pnpm test
129
120
  ```
130
121
 
131
- ---
132
-
133
- ## 🧩 完整组件列表
134
-
135
- ### 🤖 核心智能体组件
122
+ 构建产物:
136
123
 
137
- | 组件 | 描述 | 主要功能 |
138
- | ------------------ | ------------------ | -------------------------------------------- |
139
- | `AgenticLayout` | 智能体布局容器 | 提供统一的智能体应用布局结构 |
140
- | `AgentRunBar` | 智能体运行状态栏 | 显示运行、暂停、停止等状态控制 |
141
- | `Bubble` | AI/用户对话气泡 | 展示对话内容,支持 AI 和用户消息的差异化展示 |
142
- | `ThoughtChainList` | 思维链可视化 | 展示"思考—行动—观察"的完整推理过程 |
143
- | `TaskList` | 任务列表与进度跟踪 | 多步骤任务的状态管理与展示 |
144
- | `ToolUseBar` | 工具调用展示 | 可视化 API 调用、参数、状态与结果 |
145
- | `Workspace` | 智能体工作空间 | 文件管理、浏览器、实时跟踪等功能 |
146
-
147
- ### ✍️ 编辑与输入组件
148
-
149
- | 组件 | 描述 | 主要功能 |
150
- | -------------------- | ---------------------- | -------------------------------------------- |
151
- | `MarkdownEditor` | 富文本 Markdown 编辑器 | 支持流式输出、打字机效果、完整 Markdown 语法 |
152
- | `MarkdownInputField` | Markdown 输入框 | 支持多模态输入、文件上传、语音输入 |
153
-
154
- ### 📋 布局与容器组件
155
-
156
- | 组件 | 描述 | 主要功能 |
157
- | ---------------- | ------------ | ------------------------------------ |
158
- | `ChatLayout` | 聊天布局容器 | 标准聊天界面布局,支持左右栏、全屏等 |
159
- | `History` | 历史记录组件 | 会话历史管理,支持搜索、筛选、导出 |
160
- | `WelcomeMessage` | 欢迎语组件 | 应用启动欢迎语,展示功能介绍 |
161
- | `Quote` | 引用组件 | 引用消息或内容 |
162
-
163
- ### 🎯 交互与反馈组件
164
-
165
- | 组件 | 描述 | 主要功能 |
166
- | ---------------- | ------------- | -------------------------------- |
167
- | `AnswerAlert` | 答案提醒组件 | 显示成功、错误、警告、加载等状态 |
168
- | `BackTo` | 返回顶部/底部 | 快速滚动到页面顶部或底部 |
169
- | `Loading` | 加载动画 | 多种样式的加载状态展示 |
170
- | `SuggestionList` | 建议列表 | 智能推荐问题或操作 |
171
- | `ActionIconBox` | 操作图标容器 | 统一的操作按钮样式 |
172
-
173
- ### 🧠 智能体专属组件
174
-
175
- | 组件 | 描述 | 主要功能 |
176
- | ---------------- | -------------- | ---------------------------- |
177
- | `ChatBootPage` | 对话启动页组件 | 快速回复、案例推荐等引导功能 |
178
- | `SchemaEditor` | Schema 编辑器 | 结构化数据编辑 |
179
- | `SchemaForm` | Schema 表单 | 基于 Schema 自动生成表单 |
180
- | `SchemaRenderer` | Schema 渲染器 | 渲染结构化数据 |
181
-
182
- ### 🔌 插件组件
183
-
184
- | 插件类型 | 描述 | 支持功能 |
185
- | ----------- | -------------- | ------------------------------- |
186
- | `code` | 代码高亮插件 | 支持 100+ 编程语言语法高亮 |
187
- | `katex` | 数学公式插件 | 支持 LaTeX 数学公式渲染 |
188
- | `mermaid` | 图表插件 | 支持流程图、时序图、甘特图等 |
189
- | `chart` | 数据图表插件 | 支持 ECharts 各类数据可视化图表 |
190
- | `formatter` | 代码格式化插件 | 自动格式化代码 |
191
-
192
- ### 🛠️ 工具函数与 Hooks
193
-
194
- | 名称 | 类型 | 描述 |
195
- | -------------------- | ---- | ---------------------- |
196
- | `useAutoScroll` | Hook | 自动滚动到底部 |
197
- | `useCopied` | Hook | 复制到剪贴板 |
198
- | `useLanguage` | Hook | 国际化语言切换 |
199
- | `useSpeechSynthesis` | Hook | 语音合成(文字转语音) |
200
- | `useClickAway` | Hook | 点击外部区域 |
201
- | `useDebounceFn` | Hook | 防抖函数 |
202
- | `useThrottleFn` | Hook | 节流函数 |
203
-
204
- ---
205
-
206
- ## 📦 特性
207
-
208
- - ✅ **开箱即用** - 预设样式与交互,快速集成
209
- - ✅ **TypeScript** - 完整的类型定义
210
- - ✅ **主题定制** - 基于 Ant Design 主题系统
211
- - ✅ **响应式** - 适配桌面端与移动端
212
- - ✅ **流式输出** - 支持打字机效果
213
- - ✅ **多模态** - 支持文本、图像、语音
214
- - ✅ **插件化** - 可扩展的插件系统
215
- - ✅ **国际化** - 内置多语言支持
216
-
217
- ---
218
-
219
- ## 📖 文档与示例
220
-
221
- - [在线演示](https://ant-design.github.io/agentic-ui/)
222
- - [完整文档](./docs/)
223
- - [组件 API](./docs/components/)
224
- - [设计规范](./docs/design-system/)
225
-
226
- ---
227
-
228
- ## 🌟 推荐使用场景
229
-
230
- - 🤖 **企业 Copilot** - 智能办公助手
231
- - 💬 **智能客服** - 知识检索与自动问答
232
- - 📊 **数据分析与 BI** - 智能分析助理
233
- - 🔄 **流程自动化(RPA)** - 协同智能体
234
-
235
- ---
124
+ ```bash
125
+ pnpm build
126
+ ```
236
127
 
237
128
  ## 🤝 贡献
238
129
 
239
- 欢迎贡献代码、报告问题或提出建议!
130
+ 欢迎参与共建!请查阅 [贡献指南](./CONTRIBUTING.md) 了解如何提交 Pull Request 和报告 Issue。
240
131
 
241
- 查看 [贡献指南](./CONTRIBUTING.md) 了解详情。
132
+ ## 🔗 相关资源
242
133
 
243
- ---
134
+ - [在线文档](https://ant-design.github.io/agentic-ui/)
135
+ - [Ant Design](https://ant.design/)
244
136
 
245
137
  ## 📄 许可证
246
138
 
247
- [MIT License](./LICENSE)
248
-
249
- ---
250
-
251
- **让 AI 的思考过程透明化,让智能体真正成为你的协作伙伴 🤖**
139
+ [MIT](./LICENSE)
@@ -119,11 +119,9 @@ export var PureBubbleList = function(props) {
119
119
  }),
120
120
  readonly: props.readonly,
121
121
  onReply: onReply,
122
- onDisLike: onDisLike,
123
- onDislike: onDislike,
122
+ onDislike: onDislike || onDisLike,
124
123
  onLike: onLike,
125
- onCancelLike: onCancelLike,
126
- onLikeCancel: onLikeCancel,
124
+ onLikeCancel: onLikeCancel || onCancelLike,
127
125
  onAvatarClick: onAvatarClick,
128
126
  onDoubleClick: onDoubleClick,
129
127
  customConfig: bubbleRenderConfig === null || bubbleRenderConfig === void 0 ? void 0 : bubbleRenderConfig.customConfig,
@@ -102,7 +102,7 @@ import { useLayoutHeaderStyle } from "./style";
102
102
  *
103
103
  * @returns {React.ReactElement} 渲染的头部组件
104
104
  */ var LayoutHeader = function(param) {
105
- var _param_title = param.title, title = _param_title === void 0 ? 'AI 助手' : _param_title, _param_showShare = param.showShare, showShare = _param_showShare === void 0 ? true : _param_showShare, _param_leftCollapsible = param.leftCollapsible, leftCollapsible = _param_leftCollapsible === void 0 ? true : _param_leftCollapsible, _param_rightCollapsible = param.rightCollapsible, rightCollapsible = _param_rightCollapsible === void 0 ? false : _param_rightCollapsible, controlledLeftCollapsed = param.leftCollapsed, controlledRightCollapsed = param.rightCollapsed, _param_leftDefaultCollapsed = param.leftDefaultCollapsed, leftDefaultCollapsed = _param_leftDefaultCollapsed === void 0 ? false : _param_leftDefaultCollapsed, _param_rightDefaultCollapsed = param.rightDefaultCollapsed, rightDefaultCollapsed = _param_rightDefaultCollapsed === void 0 ? false : _param_rightDefaultCollapsed, onLeftCollapse = param.onLeftCollapse, onRightCollapse = param.onRightCollapse, onShare = param.onShare, leftExtra = param.leftExtra, rightExtra = param.rightExtra, className = param.className;
105
+ var _param_title = param.title, title = _param_title === void 0 ? 'AI 助手' : _param_title, _param_showShare = param.showShare, showShare = _param_showShare === void 0 ? false : _param_showShare, _param_leftCollapsible = param.leftCollapsible, leftCollapsible = _param_leftCollapsible === void 0 ? false : _param_leftCollapsible, _param_rightCollapsible = param.rightCollapsible, rightCollapsible = _param_rightCollapsible === void 0 ? false : _param_rightCollapsible, controlledLeftCollapsed = param.leftCollapsed, controlledRightCollapsed = param.rightCollapsed, _param_leftDefaultCollapsed = param.leftDefaultCollapsed, leftDefaultCollapsed = _param_leftDefaultCollapsed === void 0 ? false : _param_leftDefaultCollapsed, _param_rightDefaultCollapsed = param.rightDefaultCollapsed, rightDefaultCollapsed = _param_rightDefaultCollapsed === void 0 ? false : _param_rightDefaultCollapsed, onLeftCollapse = param.onLeftCollapse, onRightCollapse = param.onRightCollapse, onShare = param.onShare, leftExtra = param.leftExtra, rightExtra = param.rightExtra, className = param.className;
106
106
  var locale = useContext(I18nContext).locale;
107
107
  var getPrefixCls = useContext(ConfigProvider.ConfigContext).getPrefixCls;
108
108
  var prefixCls = getPrefixCls('layout-header');
@@ -356,6 +356,8 @@ export declare function useLanguage(): {
356
356
  'input.supportedFormatMessage': string;
357
357
  'input.sendButtonTooltip.send': string;
358
358
  'input.sendButtonTooltip.newline': string;
359
+ 'input.sendButtonTooltip.send.mod': string;
360
+ 'input.sendButtonTooltip.newline.mod': string;
359
361
  'common.name': string;
360
362
  'common.updateTime': string;
361
363
  'common.type': string;
@@ -320,6 +320,8 @@ export declare const cnLabels: {
320
320
  'input.supportedFormatMessage': string;
321
321
  'input.sendButtonTooltip.send': string;
322
322
  'input.sendButtonTooltip.newline': string;
323
+ 'input.sendButtonTooltip.send.mod': string;
324
+ 'input.sendButtonTooltip.newline.mod': string;
323
325
  'common.name': string;
324
326
  'common.updateTime': string;
325
327
  'common.type': string;
@@ -340,6 +340,8 @@
340
340
  'input.supportedFormatMessage': '支持上传文件,每个文件不超过 ${maxSize},支持 ${extensions}等格式。',
341
341
  'input.sendButtonTooltip.send': '按 Enter 键发送',
342
342
  'input.sendButtonTooltip.newline': '按 Shift+Enter 键换行',
343
+ 'input.sendButtonTooltip.send.mod': '按 Cmd/Ctrl+Enter 键发送',
344
+ 'input.sendButtonTooltip.newline.mod': '按 Enter 键换行',
343
345
  // Other translations
344
346
  'common.name': '名称',
345
347
  'common.updateTime': '更新时间',
@@ -715,6 +717,8 @@
715
717
  'input.supportedFormatMessage': 'Supports file upload, each file not exceeding ${maxSize}, formats such as ${extensions}.',
716
718
  'input.sendButtonTooltip.send': 'Press Enter to send',
717
719
  'input.sendButtonTooltip.newline': 'Press Shift+Enter for new line',
720
+ 'input.sendButtonTooltip.send.mod': 'Press Cmd/Ctrl+Enter to send',
721
+ 'input.sendButtonTooltip.newline.mod': 'Press Enter for new line',
718
722
  // Other translations
719
723
  'common.name': 'Name',
720
724
  'common.updateTime': 'Update Time',
@@ -412,14 +412,22 @@ import partialJsonParse from "../json-parse";
412
412
  if (!isComment) {
413
413
  return {};
414
414
  }
415
+ var trimmedValue = value.trim();
416
+ if (!trimmedValue) {
417
+ return {};
418
+ }
419
+ var looksLikeJson = trimmedValue.startsWith('{') || trimmedValue.startsWith('[');
420
+ if (!looksLikeJson) {
421
+ return {};
422
+ }
415
423
  try {
416
- return json5.parse(value);
424
+ return json5.parse(trimmedValue);
417
425
  } catch (e) {
418
426
  try {
419
- return partialJsonParse(value);
427
+ return partialJsonParse(trimmedValue);
420
428
  } catch (parseError) {
421
429
  console.warn('Failed to parse HTML comment as JSON or partial JSON:', {
422
- value: value,
430
+ value: trimmedValue,
423
431
  error: parseError
424
432
  });
425
433
  }
@@ -30,6 +30,14 @@ export declare class MarkdownToSlateParser {
30
30
  private config;
31
31
  private readonly plugins;
32
32
  constructor(config?: ParserMarkdownToSlateNodeConfig, plugins?: MarkdownEditorPlugin[]);
33
+ private preprocessMarkdown;
34
+ private buildMarkdownRoot;
35
+ private filterTopLevelSchema;
36
+ private createEmptyParagraph;
37
+ private createParseContext;
38
+ private parseHtmlCommentProps;
39
+ private resolveConfig;
40
+ private parseWithPlugins;
33
41
  /**
34
42
  * 解析 Markdown 字符串并返回解析后的结构和链接信息
35
43
  *