@ant-design/agentic-ui 2.29.59 → 2.30.1

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 (99) hide show
  1. package/dist/Bubble/List/index.d.ts +11 -0
  2. package/dist/Bubble/List/index.js +13 -1
  3. package/dist/Bubble/MessagesContent/EXCEPTION.js +11 -2
  4. package/dist/Bubble/MessagesContent/MarkdownPreview.js +34 -4
  5. package/dist/Bubble/MessagesContent/index.js +39 -10
  6. package/dist/Bubble/MessagesContent/style.js +55 -22
  7. package/dist/Bubble/UserBubble.js +3 -1
  8. package/dist/Bubble/type.d.ts +11 -0
  9. package/dist/Hooks/useLanguage.d.ts +1 -0
  10. package/dist/I18n/locales.d.ts +1 -0
  11. package/dist/I18n/locales.js +5 -3
  12. package/dist/MarkdownEditor/BaseMarkdownEditor.js +37 -5
  13. package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiTaskBlock.d.ts +4 -0
  14. package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiTaskBlock.js +74 -0
  15. package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiToolUseBarBlock.d.ts +4 -0
  16. package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiToolUseBarBlock.js +114 -0
  17. package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/agenticUiEmbedUtils.d.ts +20 -0
  18. package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/agenticUiEmbedUtils.js +169 -0
  19. package/dist/MarkdownEditor/editor/elements/Table/EditableTable.d.ts +11 -0
  20. package/dist/MarkdownEditor/editor/elements/Table/EditableTable.js +207 -0
  21. package/dist/MarkdownEditor/editor/elements/Table/Table.js +10 -276
  22. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndex/index.js +7 -227
  23. package/dist/MarkdownEditor/editor/elements/Table/TableCellIndexSpacer/index.js +20 -229
  24. package/dist/MarkdownEditor/editor/elements/Table/commands/tableCommands.d.ts +9 -0
  25. package/dist/MarkdownEditor/editor/elements/Table/commands/tableCommands.js +242 -0
  26. package/dist/MarkdownEditor/editor/elements/Table/utils/editableTableWidth.d.ts +20 -0
  27. package/dist/MarkdownEditor/editor/elements/Table/utils/editableTableWidth.js +60 -0
  28. package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableColWidths.d.ts +6 -0
  29. package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableColWidths.js +20 -0
  30. package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableContentWidth.d.ts +10 -0
  31. package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableContentWidth.js +103 -0
  32. package/dist/MarkdownEditor/editor/elements/index.js +7 -0
  33. package/dist/MarkdownEditor/editor/parser/parse/parseCode.js +33 -2
  34. package/dist/MarkdownEditor/editor/parser/parserSlateNodeToMarkdown.js +3 -0
  35. package/dist/MarkdownEditor/editor/plugins/handlePaste.js +4 -1
  36. package/dist/MarkdownEditor/plugin.d.ts +15 -0
  37. package/dist/MarkdownEditor/style.js +258 -326
  38. package/dist/MarkdownEditor/types.d.ts +14 -0
  39. package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.js +1 -1
  40. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileIcon.js +2 -2
  41. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileListItem.js +11 -8
  42. package/dist/MarkdownInputField/AttachmentButton/index.js +7 -2
  43. package/dist/MarkdownInputField/AttachmentButton/types.d.ts +5 -1
  44. package/dist/MarkdownInputField/AttachmentButton/utils.d.ts +7 -0
  45. package/dist/MarkdownInputField/AttachmentButton/utils.js +9 -1
  46. package/dist/MarkdownInputField/FileMapView/FileMapViewItem.js +10 -5
  47. package/dist/MarkdownInputField/FileUploadManager/index.d.ts +9 -0
  48. package/dist/MarkdownInputField/FileUploadManager/index.js +20 -4
  49. package/dist/MarkdownInputField/MarkdownInputField.js +5 -3
  50. package/dist/MarkdownInputField/SendActions/index.d.ts +9 -0
  51. package/dist/MarkdownInputField/SendActions/index.js +3 -2
  52. package/dist/MarkdownInputField/hooks/useMarkdownInputFieldRefs.js +10 -3
  53. package/dist/MarkdownInputField/utils/renderHelpers.d.ts +8 -1
  54. package/dist/MarkdownInputField/utils/renderHelpers.js +5 -1
  55. package/dist/MarkdownRenderer/AnimationText.d.ts +19 -0
  56. package/dist/MarkdownRenderer/AnimationText.js +226 -0
  57. package/dist/MarkdownRenderer/CharacterQueue.d.ts +36 -0
  58. package/dist/MarkdownRenderer/CharacterQueue.js +188 -0
  59. package/dist/MarkdownRenderer/MarkdownRenderer.d.ts +13 -0
  60. package/dist/MarkdownRenderer/MarkdownRenderer.js +362 -0
  61. package/dist/MarkdownRenderer/index.d.ts +11 -0
  62. package/dist/MarkdownRenderer/index.js +9 -0
  63. package/dist/MarkdownRenderer/renderers/AgenticUiTaskBlockRenderer.d.ts +6 -0
  64. package/dist/MarkdownRenderer/renderers/AgenticUiTaskBlockRenderer.js +66 -0
  65. package/dist/MarkdownRenderer/renderers/AgenticUiToolUseBarBlockRenderer.d.ts +6 -0
  66. package/dist/MarkdownRenderer/renderers/AgenticUiToolUseBarBlockRenderer.js +134 -0
  67. package/dist/MarkdownRenderer/renderers/ChartRenderer.d.ts +12 -0
  68. package/dist/MarkdownRenderer/renderers/ChartRenderer.js +395 -0
  69. package/dist/MarkdownRenderer/renderers/CodeRenderer.d.ts +7 -0
  70. package/dist/MarkdownRenderer/renderers/CodeRenderer.js +218 -0
  71. package/dist/MarkdownRenderer/renderers/MermaidRenderer.d.ts +7 -0
  72. package/dist/MarkdownRenderer/renderers/MermaidRenderer.js +43 -0
  73. package/dist/MarkdownRenderer/renderers/SchemaRenderer.d.ts +15 -0
  74. package/dist/MarkdownRenderer/renderers/SchemaRenderer.js +115 -0
  75. package/dist/MarkdownRenderer/renderers/index.d.ts +4 -0
  76. package/dist/MarkdownRenderer/renderers/index.js +4 -0
  77. package/dist/MarkdownRenderer/style.d.ts +16 -0
  78. package/dist/MarkdownRenderer/style.js +47 -0
  79. package/dist/MarkdownRenderer/types.d.ts +74 -0
  80. package/dist/MarkdownRenderer/types.js +1 -0
  81. package/dist/MarkdownRenderer/useMarkdownToReact.d.ts +23 -0
  82. package/dist/MarkdownRenderer/useMarkdownToReact.js +1241 -0
  83. package/dist/MarkdownRenderer/useStreaming.d.ts +29 -0
  84. package/dist/MarkdownRenderer/useStreaming.js +399 -0
  85. package/dist/Plugins/chart/AreaChart/index.js +4 -2
  86. package/dist/Plugins/chart/ChartRender.js +1 -0
  87. package/dist/Plugins/chart/LineChart/index.js +4 -2
  88. package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundary.d.ts +8 -0
  89. package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundary.js +31 -6
  90. package/dist/Plugins/chart/index.js +3 -1
  91. package/dist/Plugins/mermaid/style.js +0 -3
  92. package/dist/TaskList/TaskList.js +3 -12
  93. package/dist/TaskList/components/TaskListItem.js +3 -12
  94. package/dist/ThoughtChainList/ThoughtChainListItem.js +2 -4
  95. package/dist/ThoughtChainList/index.js +4 -21
  96. package/dist/ToolUseBarThink/index.js +20 -59
  97. package/dist/index.d.ts +1 -0
  98. package/dist/index.js +2 -0
  99. package/package.json +2 -1
@@ -0,0 +1,362 @@
1
+ function _array_like_to_array(arr, len) {
2
+ if (len == null || len > arr.length) len = arr.length;
3
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
4
+ return arr2;
5
+ }
6
+ function _array_with_holes(arr) {
7
+ if (Array.isArray(arr)) return arr;
8
+ }
9
+ function _define_property(obj, key, value) {
10
+ if (key in obj) {
11
+ Object.defineProperty(obj, key, {
12
+ value: value,
13
+ enumerable: true,
14
+ configurable: true,
15
+ writable: true
16
+ });
17
+ } else {
18
+ obj[key] = value;
19
+ }
20
+ return obj;
21
+ }
22
+ function _iterable_to_array_limit(arr, i) {
23
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
24
+ if (_i == null) return;
25
+ var _arr = [];
26
+ var _n = true;
27
+ var _d = false;
28
+ var _s, _e;
29
+ try {
30
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
31
+ _arr.push(_s.value);
32
+ if (i && _arr.length === i) break;
33
+ }
34
+ } catch (err) {
35
+ _d = true;
36
+ _e = err;
37
+ } finally{
38
+ try {
39
+ if (!_n && _i["return"] != null) _i["return"]();
40
+ } finally{
41
+ if (_d) throw _e;
42
+ }
43
+ }
44
+ return _arr;
45
+ }
46
+ function _non_iterable_rest() {
47
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
48
+ }
49
+ function _object_spread(target) {
50
+ for(var i = 1; i < arguments.length; i++){
51
+ var source = arguments[i] != null ? arguments[i] : {};
52
+ var ownKeys = Object.keys(source);
53
+ if (typeof Object.getOwnPropertySymbols === "function") {
54
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
55
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
56
+ }));
57
+ }
58
+ ownKeys.forEach(function(key) {
59
+ _define_property(target, key, source[key]);
60
+ });
61
+ }
62
+ return target;
63
+ }
64
+ function ownKeys(object, enumerableOnly) {
65
+ var keys = Object.keys(object);
66
+ if (Object.getOwnPropertySymbols) {
67
+ var symbols = Object.getOwnPropertySymbols(object);
68
+ if (enumerableOnly) {
69
+ symbols = symbols.filter(function(sym) {
70
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
71
+ });
72
+ }
73
+ keys.push.apply(keys, symbols);
74
+ }
75
+ return keys;
76
+ }
77
+ function _object_spread_props(target, source) {
78
+ source = source != null ? source : {};
79
+ if (Object.getOwnPropertyDescriptors) {
80
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
81
+ } else {
82
+ ownKeys(Object(source)).forEach(function(key) {
83
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
84
+ });
85
+ }
86
+ return target;
87
+ }
88
+ function _object_without_properties(source, excluded) {
89
+ if (source == null) return {};
90
+ var target = {}, sourceKeys, key, i;
91
+ if (typeof Reflect !== "undefined" && Reflect.ownKeys) {
92
+ sourceKeys = Reflect.ownKeys(source);
93
+ for(i = 0; i < sourceKeys.length; i++){
94
+ key = sourceKeys[i];
95
+ if (excluded.indexOf(key) >= 0) continue;
96
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
97
+ target[key] = source[key];
98
+ }
99
+ return target;
100
+ }
101
+ target = _object_without_properties_loose(source, excluded);
102
+ if (Object.getOwnPropertySymbols) {
103
+ sourceKeys = Object.getOwnPropertySymbols(source);
104
+ for(i = 0; i < sourceKeys.length; i++){
105
+ key = sourceKeys[i];
106
+ if (excluded.indexOf(key) >= 0) continue;
107
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
108
+ target[key] = source[key];
109
+ }
110
+ }
111
+ return target;
112
+ }
113
+ function _object_without_properties_loose(source, excluded) {
114
+ if (source == null) return {};
115
+ var target = {}, sourceKeys = Object.getOwnPropertyNames(source), key, i;
116
+ for(i = 0; i < sourceKeys.length; i++){
117
+ key = sourceKeys[i];
118
+ if (excluded.indexOf(key) >= 0) continue;
119
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
120
+ target[key] = source[key];
121
+ }
122
+ return target;
123
+ }
124
+ function _sliced_to_array(arr, i) {
125
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
126
+ }
127
+ function _unsupported_iterable_to_array(o, minLen) {
128
+ if (!o) return;
129
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
130
+ var n = Object.prototype.toString.call(o).slice(8, -1);
131
+ if (n === "Object" && o.constructor) n = o.constructor.name;
132
+ if (n === "Map" || n === "Set") return Array.from(n);
133
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
134
+ }
135
+ import { ConfigProvider } from "antd";
136
+ import clsx from "clsx";
137
+ import React, { forwardRef, useContext, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
138
+ import { useStyle as useContentStyle } from "../MarkdownEditor/editor/style";
139
+ import { useStyle as useEditorStyle } from "../MarkdownEditor/style";
140
+ import { CharacterQueue } from "./CharacterQueue";
141
+ import { AgenticUiTaskBlockRenderer } from "./renderers/AgenticUiTaskBlockRenderer";
142
+ import { AgenticUiToolUseBarBlockRenderer } from "./renderers/AgenticUiToolUseBarBlockRenderer";
143
+ import { ChartBlockRenderer } from "./renderers/ChartRenderer";
144
+ import { CodeBlockRenderer } from "./renderers/CodeRenderer";
145
+ import { MermaidBlockRenderer } from "./renderers/MermaidRenderer";
146
+ import { SchemaBlockRenderer } from "./renderers/SchemaRenderer";
147
+ import { useRendererVarStyle } from "./style";
148
+ import { useMarkdownToReact } from "./useMarkdownToReact";
149
+ import { useStreaming } from "./useStreaming";
150
+ var SCHEMA_LANGUAGES = new Set([
151
+ 'schema',
152
+ 'apaasify',
153
+ 'apassify',
154
+ 'agentar-card'
155
+ ]);
156
+ /**
157
+ * 从插件列表中收集 rendererComponents
158
+ */ var collectRendererComponents = function collectRendererComponents(plugins) {
159
+ var components = {};
160
+ if (!plugins) return components;
161
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
162
+ try {
163
+ for(var _iterator = plugins[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
164
+ var plugin = _step.value;
165
+ var renderer = plugin.renderer;
166
+ if (renderer === null || renderer === void 0 ? void 0 : renderer.rendererComponents) {
167
+ Object.assign(components, renderer.rendererComponents);
168
+ }
169
+ }
170
+ } catch (err) {
171
+ _didIteratorError = true;
172
+ _iteratorError = err;
173
+ } finally{
174
+ try {
175
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
176
+ _iterator.return();
177
+ }
178
+ } finally{
179
+ if (_didIteratorError) {
180
+ throw _iteratorError;
181
+ }
182
+ }
183
+ }
184
+ return components;
185
+ };
186
+ /**
187
+ * 默认的代码块路由——根据语言分发到对应渲染器
188
+ */ var DefaultCodeRouter = function DefaultCodeRouter(props) {
189
+ var language = props.language, pluginComponents = props.pluginComponents, apaasifyRender = props.apaasifyRender, rest = _object_without_properties(props, [
190
+ "language",
191
+ "pluginComponents",
192
+ "apaasifyRender"
193
+ ]);
194
+ if (language === 'mermaid') {
195
+ var MermaidComp = pluginComponents.mermaid || MermaidBlockRenderer;
196
+ return /*#__PURE__*/ React.createElement(MermaidComp, _object_spread_props(_object_spread({}, rest), {
197
+ language: language
198
+ }));
199
+ }
200
+ if (language === 'chart' || language === 'json-chart') {
201
+ var ChartComp = pluginComponents.chart || ChartBlockRenderer;
202
+ return /*#__PURE__*/ React.createElement(ChartComp, _object_spread_props(_object_spread({}, rest), {
203
+ language: language
204
+ }));
205
+ }
206
+ if (language === 'agentic-ui-task') {
207
+ var TaskComp = pluginComponents['agentic-ui-task'] || AgenticUiTaskBlockRenderer;
208
+ return /*#__PURE__*/ React.createElement(TaskComp, _object_spread_props(_object_spread({}, rest), {
209
+ language: language
210
+ }));
211
+ }
212
+ if (language === 'agentic-ui-toolusebar' || language === 'agentic-ui-usertoolbar') {
213
+ var ToolbarComp = pluginComponents['agentic-ui-toolusebar'] || pluginComponents['agentic-ui-usertoolbar'] || AgenticUiToolUseBarBlockRenderer;
214
+ return /*#__PURE__*/ React.createElement(ToolbarComp, _object_spread_props(_object_spread({}, rest), {
215
+ language: language
216
+ }));
217
+ }
218
+ if (SCHEMA_LANGUAGES.has(language)) {
219
+ var SchemaComp = pluginComponents.schema || SchemaBlockRenderer;
220
+ return /*#__PURE__*/ React.createElement(SchemaComp, _object_spread_props(_object_spread({}, rest), {
221
+ language: language,
222
+ apaasifyRender: apaasifyRender
223
+ }));
224
+ }
225
+ var CodeComp = pluginComponents.code || CodeBlockRenderer;
226
+ return /*#__PURE__*/ React.createElement(CodeComp, _object_spread_props(_object_spread({}, rest), {
227
+ language: language
228
+ }));
229
+ };
230
+ /**
231
+ * MarkdownRenderer —— 流式/只读场景下的轻量 Markdown 渲染器。
232
+ *
233
+ * 核心优势:
234
+ * - 不创建 Slate 实例,无编辑态开销
235
+ * - 字符队列驱动流式逐字输出动画
236
+ * - Markdown → hast → React 元素树(hast-util-to-jsx-runtime)
237
+ * - 特殊块(code / mermaid / chart / katex)通过组件映射拦截渲染
238
+ */ var InternalMarkdownRenderer = /*#__PURE__*/ forwardRef(function(props, ref) {
239
+ var content = props.content, _props_streaming = props.streaming, streaming = _props_streaming === void 0 ? false : _props_streaming, isFinished = props.isFinished, queueOptions = props.queueOptions, plugins = props.plugins, remarkPlugins = props.remarkPlugins, htmlConfig = props.htmlConfig, className = props.className, style = props.style, customPrefixCls = props.prefixCls, linkConfig = props.linkConfig, apaasify = props.apaasify;
240
+ var getPrefixCls = useContext(ConfigProvider.ConfigContext).getPrefixCls;
241
+ // 复用 MarkdownEditor 的 CSS 前缀和样式,保持渲染一致性
242
+ var prefixCls = getPrefixCls('agentic-md-editor', customPrefixCls);
243
+ var _useEditorStyle = useEditorStyle(prefixCls), wrapSSR = _useEditorStyle.wrapSSR, hashId = _useEditorStyle.hashId;
244
+ // 注册 content 层的样式(段落间距、链接、blockquote 等)
245
+ var contentCls = "".concat(prefixCls, "-content");
246
+ var _useContentStyle = useContentStyle(contentCls, {}), wrapContentSSR = _useContentStyle.wrapSSR;
247
+ // 注册间距 CSS 变量回退值(:where 低优先级,不覆盖宿主定义)
248
+ var _useRendererVarStyle = useRendererVarStyle(prefixCls), wrapVarSSR = _useRendererVarStyle.wrapSSR;
249
+ var containerRef = useRef(null);
250
+ var _useState = _sliced_to_array(useState(content || ''), 2), displayedContent = _useState[0], setDisplayedContent = _useState[1];
251
+ var queueRef = useRef(null);
252
+ useImperativeHandle(ref, function() {
253
+ return {
254
+ nativeElement: containerRef.current,
255
+ getDisplayedContent: function getDisplayedContent() {
256
+ return displayedContent;
257
+ }
258
+ };
259
+ });
260
+ // 收集插件的 rendererComponents
261
+ var pluginComponents = useMemo(function() {
262
+ return collectRendererComponents(plugins);
263
+ }, [
264
+ plugins
265
+ ]);
266
+ // 字符队列管理
267
+ useEffect(function() {
268
+ if (!streaming) {
269
+ // 非流式:直接展示全部内容
270
+ setDisplayedContent(content || '');
271
+ return;
272
+ }
273
+ if (!queueRef.current) {
274
+ queueRef.current = new CharacterQueue(function(displayed) {
275
+ return setDisplayedContent(displayed);
276
+ }, queueOptions);
277
+ }
278
+ queueRef.current.push(content || '');
279
+ return undefined;
280
+ }, [
281
+ content,
282
+ streaming,
283
+ queueOptions
284
+ ]);
285
+ // 流式完成时 flush 所有剩余内容
286
+ useEffect(function() {
287
+ if (isFinished && queueRef.current) {
288
+ queueRef.current.complete();
289
+ }
290
+ }, [
291
+ isFinished
292
+ ]);
293
+ // 清理
294
+ useEffect(function() {
295
+ return function() {
296
+ var _queueRef_current;
297
+ (_queueRef_current = queueRef.current) === null || _queueRef_current === void 0 ? void 0 : _queueRef_current.dispose();
298
+ queueRef.current = null;
299
+ };
300
+ }, []);
301
+ // 非流式内容变化时同步
302
+ useEffect(function() {
303
+ if (!streaming) {
304
+ setDisplayedContent(content || '');
305
+ }
306
+ }, [
307
+ content,
308
+ streaming
309
+ ]);
310
+ // 构建组件映射
311
+ // code 渲染器通过 pre override 在 useMarkdownToReact 中路由,
312
+ // 不直接映射到 <code> 标签(否则会影响行内代码 `code`)
313
+ var apaasifyRender = useMemo(function() {
314
+ if ((apaasify === null || apaasify === void 0 ? void 0 : apaasify.enable) && apaasify.render) return apaasify.render;
315
+ return undefined;
316
+ }, [
317
+ apaasify
318
+ ]);
319
+ var components = useMemo(function() {
320
+ var codeRouter = function codeRouter(codeProps) {
321
+ return /*#__PURE__*/ React.createElement(DefaultCodeRouter, _object_spread_props(_object_spread({}, codeProps), {
322
+ pluginComponents: pluginComponents,
323
+ apaasifyRender: apaasifyRender
324
+ }));
325
+ };
326
+ codeRouter.displayName = 'CodeRouter';
327
+ return _object_spread({
328
+ __codeBlock: codeRouter
329
+ }, pluginComponents);
330
+ }, [
331
+ pluginComponents,
332
+ apaasifyRender
333
+ ]);
334
+ // 流式缓存:将不完整的 Markdown token 暂缓,避免 parser 错误解析
335
+ var safeContent = useStreaming(displayedContent, streaming);
336
+ var reactContent = useMarkdownToReact(safeContent, {
337
+ remarkPlugins: remarkPlugins,
338
+ htmlConfig: htmlConfig,
339
+ components: components,
340
+ prefixCls: prefixCls,
341
+ linkConfig: linkConfig,
342
+ streaming: streaming
343
+ });
344
+ return wrapVarSSR(wrapSSR(wrapContentSSR(/*#__PURE__*/ React.createElement("div", {
345
+ ref: containerRef,
346
+ className: clsx(prefixCls, "".concat(prefixCls, "-readonly"), hashId, className),
347
+ style: style
348
+ }, /*#__PURE__*/ React.createElement("div", {
349
+ className: clsx("".concat(prefixCls, "-container"), hashId),
350
+ style: {
351
+ display: 'block'
352
+ }
353
+ }, /*#__PURE__*/ React.createElement("div", {
354
+ className: clsx(contentCls, hashId),
355
+ style: {
356
+ whiteSpace: 'normal',
357
+ wordWrap: 'normal'
358
+ }
359
+ }, reactContent))))));
360
+ });
361
+ InternalMarkdownRenderer.displayName = 'MarkdownRenderer';
362
+ export default InternalMarkdownRenderer;
@@ -0,0 +1,11 @@
1
+ export { default as AnimationText } from './AnimationText';
2
+ export type { AnimationConfig, AnimationTextProps } from './AnimationText';
3
+ export { CharacterQueue } from './CharacterQueue';
4
+ export { default as MarkdownRenderer } from './MarkdownRenderer';
5
+ export { ChartBlockRenderer } from './renderers/ChartRenderer';
6
+ export { CodeBlockRenderer } from './renderers/CodeRenderer';
7
+ export { MermaidBlockRenderer } from './renderers/MermaidRenderer';
8
+ export { SchemaBlockRenderer } from './renderers/SchemaRenderer';
9
+ export type { CharacterQueueOptions, MarkdownRendererProps, MarkdownRendererRef, RenderMode, RendererBlockProps, } from './types';
10
+ export { markdownToReactSync, useMarkdownToReact } from './useMarkdownToReact';
11
+ export { useStreaming } from './useStreaming';
@@ -0,0 +1,9 @@
1
+ export { default as AnimationText } from "./AnimationText";
2
+ export { CharacterQueue } from "./CharacterQueue";
3
+ export { default as MarkdownRenderer } from "./MarkdownRenderer";
4
+ export { ChartBlockRenderer } from "./renderers/ChartRenderer";
5
+ export { CodeBlockRenderer } from "./renderers/CodeRenderer";
6
+ export { MermaidBlockRenderer } from "./renderers/MermaidRenderer";
7
+ export { SchemaBlockRenderer } from "./renderers/SchemaRenderer";
8
+ export { markdownToReactSync, useMarkdownToReact } from "./useMarkdownToReact";
9
+ export { useStreaming } from "./useStreaming";
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { RendererBlockProps } from '../types';
3
+ /**
4
+ * ```agentic-ui-task``` 代码块 → TaskList(与 MarkdownEditor parseCode 对齐)
5
+ */
6
+ export declare const AgenticUiTaskBlockRenderer: React.FC<RendererBlockProps>;
@@ -0,0 +1,66 @@
1
+ import json5 from "json5";
2
+ import React, { useMemo } from "react";
3
+ import { normalizeTaskListPropsFromJson } from "../../MarkdownEditor/editor/elements/AgenticUiBlocks/agenticUiEmbedUtils";
4
+ import partialParse from "../../MarkdownEditor/editor/parser/json-parse";
5
+ import { TaskList } from "../../TaskList";
6
+ var extractTextContent = function extractTextContent1(children) {
7
+ var _children_props;
8
+ if (typeof children === 'string') return children;
9
+ if (typeof children === 'number') return String(children);
10
+ if (Array.isArray(children)) return children.map(extractTextContent).join('');
11
+ if (/*#__PURE__*/ React.isValidElement(children) && ((_children_props = children.props) === null || _children_props === void 0 ? void 0 : _children_props.children)) {
12
+ return extractTextContent(children.props.children);
13
+ }
14
+ return '';
15
+ };
16
+ var parseJsonBody = function parseJsonBody(code) {
17
+ try {
18
+ return json5.parse(code || '{}');
19
+ } catch (unused) {
20
+ try {
21
+ return partialParse(code || '{}');
22
+ } catch (unused) {
23
+ return null;
24
+ }
25
+ }
26
+ };
27
+ /**
28
+ * ```agentic-ui-task``` 代码块 → TaskList(与 MarkdownEditor parseCode 对齐)
29
+ */ export var AgenticUiTaskBlockRenderer = function AgenticUiTaskBlockRenderer(props) {
30
+ var code = useMemo(function() {
31
+ return extractTextContent(props.children);
32
+ }, [
33
+ props.children
34
+ ]);
35
+ var parsed = useMemo(function() {
36
+ return parseJsonBody(code);
37
+ }, [
38
+ code
39
+ ]);
40
+ var listProps = useMemo(function() {
41
+ return normalizeTaskListPropsFromJson(parsed);
42
+ }, [
43
+ parsed
44
+ ]);
45
+ if (parsed === null) {
46
+ return /*#__PURE__*/ React.createElement("pre", {
47
+ "data-testid": "agentic-ui-task-fallback",
48
+ style: {
49
+ background: 'rgb(242, 241, 241)',
50
+ padding: '1em',
51
+ borderRadius: '0.5em',
52
+ margin: '0.75em 0',
53
+ fontSize: '0.8em',
54
+ whiteSpace: 'pre-wrap',
55
+ wordBreak: 'break-all'
56
+ }
57
+ }, /*#__PURE__*/ React.createElement("code", null, code));
58
+ }
59
+ return /*#__PURE__*/ React.createElement("div", {
60
+ "data-testid": "agentic-ui-task-block",
61
+ style: {
62
+ margin: '0.75em 0'
63
+ }
64
+ }, /*#__PURE__*/ React.createElement(TaskList, listProps));
65
+ };
66
+ AgenticUiTaskBlockRenderer.displayName = 'AgenticUiTaskBlockRenderer';
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import type { RendererBlockProps } from '../types';
3
+ /**
4
+ * ```agentic-ui-toolusebar``` 代码块 → ToolUseBar
5
+ */
6
+ export declare const AgenticUiToolUseBarBlockRenderer: React.FC<RendererBlockProps>;
@@ -0,0 +1,134 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
14
+ function _object_spread(target) {
15
+ for(var i = 1; i < arguments.length; i++){
16
+ var source = arguments[i] != null ? arguments[i] : {};
17
+ var ownKeys = Object.keys(source);
18
+ if (typeof Object.getOwnPropertySymbols === "function") {
19
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
20
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
21
+ }));
22
+ }
23
+ ownKeys.forEach(function(key) {
24
+ _define_property(target, key, source[key]);
25
+ });
26
+ }
27
+ return target;
28
+ }
29
+ function _object_without_properties(source, excluded) {
30
+ if (source == null) return {};
31
+ var target = {}, sourceKeys, key, i;
32
+ if (typeof Reflect !== "undefined" && Reflect.ownKeys) {
33
+ sourceKeys = Reflect.ownKeys(source);
34
+ for(i = 0; i < sourceKeys.length; i++){
35
+ key = sourceKeys[i];
36
+ if (excluded.indexOf(key) >= 0) continue;
37
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
38
+ target[key] = source[key];
39
+ }
40
+ return target;
41
+ }
42
+ target = _object_without_properties_loose(source, excluded);
43
+ if (Object.getOwnPropertySymbols) {
44
+ sourceKeys = Object.getOwnPropertySymbols(source);
45
+ for(i = 0; i < sourceKeys.length; i++){
46
+ key = sourceKeys[i];
47
+ if (excluded.indexOf(key) >= 0) continue;
48
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
49
+ target[key] = source[key];
50
+ }
51
+ }
52
+ return target;
53
+ }
54
+ function _object_without_properties_loose(source, excluded) {
55
+ if (source == null) return {};
56
+ var target = {}, sourceKeys = Object.getOwnPropertyNames(source), key, i;
57
+ for(i = 0; i < sourceKeys.length; i++){
58
+ key = sourceKeys[i];
59
+ if (excluded.indexOf(key) >= 0) continue;
60
+ if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
61
+ target[key] = source[key];
62
+ }
63
+ return target;
64
+ }
65
+ import json5 from "json5";
66
+ import React, { useMemo } from "react";
67
+ import { normalizeToolUseBarPropsFromJson } from "../../MarkdownEditor/editor/elements/AgenticUiBlocks/agenticUiEmbedUtils";
68
+ import partialParse from "../../MarkdownEditor/editor/parser/json-parse";
69
+ import { ToolUseBar } from "../../ToolUseBar";
70
+ var extractTextContent = function extractTextContent1(children) {
71
+ var _children_props;
72
+ if (typeof children === 'string') return children;
73
+ if (typeof children === 'number') return String(children);
74
+ if (Array.isArray(children)) return children.map(extractTextContent).join('');
75
+ if (/*#__PURE__*/ React.isValidElement(children) && ((_children_props = children.props) === null || _children_props === void 0 ? void 0 : _children_props.children)) {
76
+ return extractTextContent(children.props.children);
77
+ }
78
+ return '';
79
+ };
80
+ var parseJsonBody = function parseJsonBody(code) {
81
+ try {
82
+ return json5.parse(code || '{}');
83
+ } catch (unused) {
84
+ try {
85
+ return partialParse(code || '{}');
86
+ } catch (unused) {
87
+ return null;
88
+ }
89
+ }
90
+ };
91
+ /**
92
+ * ```agentic-ui-toolusebar``` 代码块 → ToolUseBar
93
+ */ export var AgenticUiToolUseBarBlockRenderer = function AgenticUiToolUseBarBlockRenderer(props) {
94
+ var code = useMemo(function() {
95
+ return extractTextContent(props.children);
96
+ }, [
97
+ props.children
98
+ ]);
99
+ var parsed = useMemo(function() {
100
+ return parseJsonBody(code);
101
+ }, [
102
+ code
103
+ ]);
104
+ var _useMemo = useMemo(function() {
105
+ return normalizeToolUseBarPropsFromJson(parsed);
106
+ }, [
107
+ parsed
108
+ ]), tools = _useMemo.tools, restBar = _object_without_properties(_useMemo, [
109
+ "tools"
110
+ ]);
111
+ if (parsed === null) {
112
+ return /*#__PURE__*/ React.createElement("pre", {
113
+ "data-testid": "agentic-ui-toolusebar-fallback",
114
+ style: {
115
+ background: 'rgb(242, 241, 241)',
116
+ padding: '1em',
117
+ borderRadius: '0.5em',
118
+ margin: '0.75em 0',
119
+ fontSize: '0.8em',
120
+ whiteSpace: 'pre-wrap',
121
+ wordBreak: 'break-all'
122
+ }
123
+ }, /*#__PURE__*/ React.createElement("code", null, code));
124
+ }
125
+ return /*#__PURE__*/ React.createElement("div", {
126
+ "data-testid": "agentic-ui-toolusebar-block",
127
+ style: {
128
+ margin: '0.75em 0'
129
+ }
130
+ }, /*#__PURE__*/ React.createElement(ToolUseBar, _object_spread({
131
+ tools: tools
132
+ }, restBar)));
133
+ };
134
+ AgenticUiToolUseBarBlockRenderer.displayName = 'AgenticUiToolUseBarBlockRenderer';
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ import type { RendererBlockProps } from '../types';
3
+ /**
4
+ * 图表渲染器——复用 MarkdownEditor 的 ChartRender 组件。
5
+ *
6
+ * 在 MarkdownEditor 中,图表由 HTML 注释(配置)+ 表格(数据)组合而成,
7
+ * Slate 解析器将其合并为 chart 节点(otherProps.config / dataSource / columns)。
8
+ *
9
+ * 在 MarkdownRenderer 中,chart 代码块的内容是序列化后的 JSON,
10
+ * 包含 config、dataSource、columns 等字段。
11
+ */
12
+ export declare const ChartBlockRenderer: React.FC<RendererBlockProps>;