@ant-design/agentic-ui 2.14.1 → 2.16.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 (103) hide show
  1. package/dist/Bubble/BubbleBeforeNode.js +9 -9
  2. package/dist/Bubble/List/PureBubbleList.js +1 -1
  3. package/dist/Bubble/MessagesContent/EXCEPTION.js +1 -1
  4. package/dist/ChatLayout/style.js +16 -17
  5. package/dist/Constants/mobile.d.ts +3 -0
  6. package/dist/Constants/mobile.js +7 -0
  7. package/dist/Hooks/useLanguage.d.ts +2 -0
  8. package/dist/I18n/locales.d.ts +2 -0
  9. package/dist/I18n/locales.js +4 -0
  10. package/dist/MarkdownEditor/BaseMarkdownEditor.js +1 -1
  11. package/dist/MarkdownEditor/editor/Editor.js +16 -8
  12. package/dist/MarkdownEditor/editor/code.css +2 -2
  13. package/dist/MarkdownEditor/editor/elements/Code.js +11 -6
  14. package/dist/MarkdownEditor/editor/elements/FootnoteDefinition.js +2 -1
  15. package/dist/MarkdownEditor/editor/elements/FootnoteReference.js +2 -1
  16. package/dist/MarkdownEditor/editor/elements/Head.d.ts +1 -0
  17. package/dist/MarkdownEditor/editor/elements/Head.js +1 -1
  18. package/dist/MarkdownEditor/editor/elements/Image/index.js +19 -7
  19. package/dist/MarkdownEditor/editor/elements/LinkCard/index.js +2 -1
  20. package/dist/MarkdownEditor/editor/elements/LinkCard/style.js +1 -1
  21. package/dist/MarkdownEditor/editor/elements/List/ListItem.js +1 -0
  22. package/dist/MarkdownEditor/editor/elements/List/style.js +2 -2
  23. package/dist/MarkdownEditor/editor/elements/Media.js +22 -10
  24. package/dist/MarkdownEditor/editor/elements/Paragraph.js +2 -1
  25. package/dist/MarkdownEditor/editor/elements/Schema.js +1 -1
  26. package/dist/MarkdownEditor/editor/elements/Table/ReadonlyTableComponent.js +16 -4
  27. package/dist/MarkdownEditor/editor/elements/Table/SimpleTable.js +17 -2
  28. package/dist/MarkdownEditor/editor/elements/Table/Table.js +155 -20
  29. package/dist/MarkdownEditor/editor/elements/Table/Td/style.js +5 -2
  30. package/dist/MarkdownEditor/editor/elements/Table/index.js +0 -2
  31. package/dist/MarkdownEditor/editor/elements/Table/style.js +7 -8
  32. package/dist/MarkdownEditor/editor/elements/TagPopup/index.js +5 -3
  33. package/dist/MarkdownEditor/editor/elements/TagPopup/style.js +2 -2
  34. package/dist/MarkdownEditor/editor/parser/parserMarkdownToSlateNode.d.ts +100 -1
  35. package/dist/MarkdownEditor/editor/parser/parserMarkdownToSlateNode.js +781 -240
  36. package/dist/MarkdownEditor/editor/plugins/useKeyboard.js +8 -19
  37. package/dist/MarkdownEditor/editor/store.js +3 -3
  38. package/dist/MarkdownEditor/editor/style.js +41 -6
  39. package/dist/MarkdownEditor/editor/tools/DragHandle.js +3 -3
  40. package/dist/MarkdownEditor/editor/types/Table.d.ts +1 -0
  41. package/dist/MarkdownEditor/editor/utils/findMatchingClose.d.ts +36 -0
  42. package/dist/MarkdownEditor/editor/utils/findMatchingClose.js +158 -0
  43. package/dist/MarkdownEditor/editor/utils/markdownToHtml.d.ts +41 -2
  44. package/dist/MarkdownEditor/editor/utils/markdownToHtml.js +159 -7
  45. package/dist/MarkdownEditor/style.js +8 -2
  46. package/dist/MarkdownEditor/types.d.ts +1 -1
  47. package/dist/MarkdownEditor/utils/exportHtml.js +1 -1
  48. package/dist/MarkdownInputField/MarkdownInputField.d.ts +7 -7
  49. package/dist/MarkdownInputField/MarkdownInputField.js +11 -35
  50. package/dist/MarkdownInputField/SendButton/index.js +17 -3
  51. package/dist/MarkdownInputField/style.js +23 -2
  52. package/dist/Plugins/chart/AreaChart/index.d.ts +12 -0
  53. package/dist/Plugins/chart/AreaChart/index.js +14 -188
  54. package/dist/Plugins/chart/BarChart/index.d.ts +2 -0
  55. package/dist/Plugins/chart/BarChart/index.js +3 -12
  56. package/dist/Plugins/chart/ChartMark/Container.js +5 -2
  57. package/dist/Plugins/chart/ChartRender.d.ts +1 -0
  58. package/dist/Plugins/chart/ChartRender.js +104 -43
  59. package/dist/Plugins/chart/DonutChart/index.js +4 -2
  60. package/dist/Plugins/chart/DonutChart/types.d.ts +2 -0
  61. package/dist/Plugins/chart/FunnelChart/index.d.ts +2 -0
  62. package/dist/Plugins/chart/FunnelChart/index.js +4 -2
  63. package/dist/Plugins/chart/LineChart/index.d.ts +2 -0
  64. package/dist/Plugins/chart/LineChart/index.js +17 -162
  65. package/dist/Plugins/chart/RadarChart/index.d.ts +2 -0
  66. package/dist/Plugins/chart/RadarChart/index.js +8 -4
  67. package/dist/Plugins/chart/ScatterChart/index.d.ts +2 -0
  68. package/dist/Plugins/chart/ScatterChart/index.js +8 -4
  69. package/dist/Plugins/chart/components/ChartContainer/ChartContainer.d.ts +1 -0
  70. package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundaryExample.js +1 -1
  71. package/dist/Plugins/chart/components/ChartFilter/ChartFilter.d.ts +1 -1
  72. package/dist/Plugins/chart/components/ChartFilter/ChartFilter.js +210 -16
  73. package/dist/Plugins/chart/components/ChartToolBar/ChartToolBar.d.ts +2 -0
  74. package/dist/Plugins/chart/components/ChartToolBar/ChartToolBar.js +9 -2
  75. package/dist/Plugins/chart/components/ChartToolBar/style.js +3 -1
  76. package/dist/Plugins/chart/hooks/index.d.ts +10 -0
  77. package/dist/Plugins/chart/hooks/index.js +8 -0
  78. package/dist/Plugins/chart/hooks/useChartDataFilter.d.ts +46 -0
  79. package/dist/Plugins/chart/hooks/useChartDataFilter.js +182 -0
  80. package/dist/Plugins/chart/hooks/useChartStatistics.d.ts +17 -0
  81. package/dist/Plugins/chart/hooks/useChartStatistics.js +25 -0
  82. package/dist/Plugins/chart/hooks/useChartTheme.d.ts +20 -0
  83. package/dist/Plugins/chart/hooks/useChartTheme.js +30 -0
  84. package/dist/Plugins/chart/hooks/useResponsiveSize.d.ts +23 -0
  85. package/dist/Plugins/chart/hooks/useResponsiveSize.js +94 -0
  86. package/dist/Plugins/chart/index.js +94 -10
  87. package/dist/Plugins/chart/utils/registerChart.d.ts +35 -0
  88. package/dist/Plugins/chart/utils/registerChart.js +54 -0
  89. package/dist/Plugins/chart/utils.d.ts +19 -0
  90. package/dist/Plugins/chart/utils.js +27 -0
  91. package/dist/Plugins/code/components/CodeContainer.js +2 -3
  92. package/dist/Plugins/code/components/CodeRenderer.js +53 -2
  93. package/dist/Plugins/code/components/CodeToolbar.js +22 -3
  94. package/dist/Plugins/katex/InlineKatex.js +1 -1
  95. package/dist/Plugins/katex/Katex.js +1 -1
  96. package/dist/Plugins/mermaid/Mermaid.js +66 -66
  97. package/dist/Plugins/mermaid/index.js +1 -1
  98. package/dist/ThoughtChainList/index.js +21 -2
  99. package/dist/ThoughtChainList/style.js +1 -0
  100. package/dist/Utils/loadCSS.js +6 -6
  101. package/dist/WelcomeMessage/index.js +21 -2
  102. package/dist/Workspace/Task/index.js +1 -1
  103. package/package.json +2 -2
@@ -171,6 +171,7 @@ function _ts_generator(thisArg, body) {
171
171
  import React, { lazy, Suspense, useEffect, useMemo, useRef } from "react";
172
172
  import { useGetSetState } from "react-use";
173
173
  import { useIntersectionOnce } from "../../Hooks/useIntersectionOnce";
174
+ import { isCodeBlockLikelyComplete } from "../../MarkdownEditor/editor/utils/findMatchingClose";
174
175
  var mermaidLoader = null;
175
176
  /**
176
177
  * 加载 Mermaid 库
@@ -214,27 +215,7 @@ var mermaidLoader = null;
214
215
  * 检查 Mermaid 代码是否可能完整
215
216
  * 用于流式输入时判断是否应该尝试渲染
216
217
  */ var isCodeLikelyComplete = function(code) {
217
- var trimmed = code.trim();
218
- if (!trimmed) return false;
219
- // 检查是否包含基本的 Mermaid 图表类型关键字
220
- var hasChartType = trimmed.includes('graph') || trimmed.includes('sequenceDiagram') || trimmed.includes('gantt') || trimmed.includes('pie') || trimmed.includes('classDiagram') || trimmed.includes('stateDiagram') || trimmed.includes('erDiagram') || trimmed.includes('journey') || trimmed.includes('gitgraph') || trimmed.includes('flowchart');
221
- if (!hasChartType) return false;
222
- // 检查基本结构完整性(简单启发式检查)
223
- // 如果代码很短,可能是正在输入中
224
- if (trimmed.length < 10) return false;
225
- // 检查是否以常见的不完整模式结尾
226
- var incompletePatterns = [
227
- /graph\s*$/i,
228
- /-->?\s*$/,
229
- /\[.*$/,
230
- /\(.*$/,
231
- /{.*$/
232
- ];
233
- // 如果匹配不完整模式,可能还在输入中
234
- var endsWithIncomplete = incompletePatterns.some(function(pattern) {
235
- return pattern.test(trimmed);
236
- });
237
- return !endsWithIncomplete;
218
+ return isCodeBlockLikelyComplete(code, 'mermaid');
238
219
  };
239
220
  var MermaidRendererImpl = function(props) {
240
221
  var _props_element;
@@ -307,9 +288,9 @@ var MermaidRendererImpl = function(props) {
307
288
  // 检查代码是否可能完整
308
289
  var likelyComplete = isCodeLikelyComplete(nextCode);
309
290
  // 防抖延迟:根据代码变化频率动态调整
310
- // 如果代码变化频繁(流式输入),使用更长的延迟
311
- var baseDelay = 300;
312
- var typingDelay = changeCountRef.current > 3 ? 1000 : 800; // 频繁变化时延长到 1 秒
291
+ // 如果代码变化频繁(流式输入),使用更长的延迟以减少抖动
292
+ var baseDelay = 500; // 增加基础延迟
293
+ var typingDelay = changeCountRef.current > 3 ? 1500 : 1200; // 频繁变化时延长到 1.5
313
294
  var delay = currentState.code ? likelyComplete ? baseDelay : typingDelay : 0;
314
295
  // 第一层防抖:检测代码变化
315
296
  timer.current = window.setTimeout(function() {
@@ -321,10 +302,10 @@ var MermaidRendererImpl = function(props) {
321
302
  return;
322
303
  }
323
304
  // 第二层防抖:实际渲染
324
- // 如果代码可能不完整,再等待一段时间
325
- var finalDelay = likelyComplete ? 0 : 500;
305
+ // 如果代码可能不完整,再等待一段时间,增加延迟以减少抖动
306
+ var finalDelay = likelyComplete ? 200 : 800; // 增加延迟时间
326
307
  renderTimer.current = window.setTimeout(/*#__PURE__*/ _async_to_generator(function() {
327
- var _mermaidRef_current, api, _tmp, trimmedCode, svg, wrapper, parser, svgDoc, svgElement, existingStyle, newStyle, allElements, tempDiv, extractedSvg, error, api1, finalCode, parseError, tempElement;
308
+ var _mermaidRef_current, api, _tmp, trimmedCode, svg, container, error, api1, finalCode, parseError, tempElement;
328
309
  return _ts_generator(this, function(_state) {
329
310
  switch(_state.label){
330
311
  case 0:
@@ -376,46 +357,62 @@ var MermaidRendererImpl = function(props) {
376
357
  case 4:
377
358
  svg = _state.sent().svg;
378
359
  if (divRef.current) {
379
- // 清理旧内容
380
- divRef.current.innerHTML = '';
381
- // 创建隔离的容器包装 SVG
382
- wrapper = document.createElement('div');
383
- wrapper.style.cssText = "\n position: relative;\n width: 100%;\n max-width: 100%;\n overflow: hidden;\n isolation: isolate;\n contain: layout style paint;\n display: flex;\n justify-content: center;\n align-items: center;\n ";
384
- // 解析 SVG 并添加隔离属性
385
- parser = new DOMParser();
386
- svgDoc = parser.parseFromString(svg, 'image/svg+xml');
387
- svgElement = svgDoc.querySelector('svg');
388
- if (svgElement) {
389
- // 确保 SVG 不会溢出
390
- existingStyle = svgElement.getAttribute('style') || '';
391
- newStyle = "".concat(existingStyle, "; max-width: 100%; height: auto; overflow: hidden;").trim();
392
- svgElement.setAttribute('style', newStyle);
393
- // 添加隔离属性和类名
394
- svgElement.setAttribute('data-mermaid-svg', 'true');
395
- svgElement.setAttribute('class', (svgElement.getAttribute('class') || '') + ' mermaid-isolated');
396
- // 限制 SVG 内部元素的样式影响范围
397
- allElements = svgElement.querySelectorAll('*');
398
- allElements.forEach(function(el) {
399
- // 确保内部元素不会影响外部
400
- if (el instanceof SVGElement) {
401
- el.setAttribute('data-mermaid-internal', 'true');
402
- }
403
- });
404
- wrapper.appendChild(svgElement);
405
- } else {
406
- // 如果解析失败,直接使用原始 SVG,但添加包装
407
- tempDiv = document.createElement('div');
408
- tempDiv.innerHTML = svg;
409
- extractedSvg = tempDiv.querySelector('svg');
410
- if (extractedSvg) {
411
- extractedSvg.setAttribute('style', 'max-width: 100%; height: auto; overflow: hidden;');
412
- extractedSvg.setAttribute('data-mermaid-svg', 'true');
413
- wrapper.appendChild(extractedSvg);
360
+ // 使用更平滑的更新方式,避免抖动
361
+ // 先设置透明度,然后更新内容,最后恢复透明度
362
+ container = divRef.current;
363
+ // 如果已有内容,先淡出
364
+ if (container.children.length > 0) {
365
+ container.style.opacity = '0';
366
+ container.style.transition = 'opacity 0.2s ease-in-out';
367
+ }
368
+ // 使用 requestAnimationFrame 确保平滑更新
369
+ requestAnimationFrame(function() {
370
+ // 清理旧内容
371
+ container.innerHTML = '';
372
+ // 创建隔离的容器包装 SVG
373
+ var wrapper = document.createElement('div');
374
+ wrapper.style.cssText = "\n position: relative;\n width: 100%;\n max-width: 100%;\n overflow: hidden;\n isolation: isolate;\n contain: layout style paint;\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 200px; /* 保持最小高度,避免尺寸抖动 */\n ";
375
+ // 解析 SVG 并添加隔离属性
376
+ var parser = new DOMParser();
377
+ var svgDoc = parser.parseFromString(svg, 'image/svg+xml');
378
+ var svgElement = svgDoc.querySelector('svg');
379
+ if (svgElement) {
380
+ // 确保 SVG 不会溢出
381
+ var existingStyle = svgElement.getAttribute('style') || '';
382
+ var newStyle = "".concat(existingStyle, "; max-width: 100%; height: auto; overflow: hidden;").trim();
383
+ svgElement.setAttribute('style', newStyle);
384
+ // 添加隔离属性和类名
385
+ svgElement.setAttribute('data-mermaid-svg', 'true');
386
+ svgElement.setAttribute('class', (svgElement.getAttribute('class') || '') + ' mermaid-isolated');
387
+ // 限制 SVG 内部元素的样式影响范围
388
+ var allElements = svgElement.querySelectorAll('*');
389
+ allElements.forEach(function(el) {
390
+ // 确保内部元素不会影响外部
391
+ if (el instanceof SVGElement) {
392
+ el.setAttribute('data-mermaid-internal', 'true');
393
+ }
394
+ });
395
+ wrapper.appendChild(svgElement);
414
396
  } else {
415
- wrapper.innerHTML = svg;
397
+ // 如果解析失败,直接使用原始 SVG,但添加包装
398
+ var tempDiv = document.createElement('div');
399
+ tempDiv.innerHTML = svg;
400
+ var extractedSvg = tempDiv.querySelector('svg');
401
+ if (extractedSvg) {
402
+ extractedSvg.setAttribute('style', 'max-width: 100%; height: auto; overflow: hidden;');
403
+ extractedSvg.setAttribute('data-mermaid-svg', 'true');
404
+ wrapper.appendChild(extractedSvg);
405
+ } else {
406
+ wrapper.innerHTML = svg;
407
+ }
416
408
  }
417
- }
418
- divRef.current.appendChild(wrapper);
409
+ container.appendChild(wrapper);
410
+ // 恢复透明度,实现淡入效果
411
+ requestAnimationFrame(function() {
412
+ container.style.opacity = '1';
413
+ container.style.transition = 'opacity 0.3s ease-in-out';
414
+ });
415
+ });
419
416
  }
420
417
  // 渲染成功,重置状态
421
418
  setState({
@@ -566,6 +563,7 @@ var MermaidRendererImpl = function(props) {
566
563
  style: {
567
564
  width: '100%',
568
565
  maxWidth: '100%',
566
+ minHeight: '200px',
569
567
  display: 'flex',
570
568
  justifyContent: 'center',
571
569
  visibility: snapshot.code && !snapshot.error ? 'visible' : 'hidden',
@@ -575,7 +573,9 @@ var MermaidRendererImpl = function(props) {
575
573
  contain: 'layout style paint',
576
574
  overflow: 'hidden',
577
575
  // 防止 SVG 样式影响外部
578
- pointerEvents: snapshot.code && !snapshot.error ? 'auto' : 'none'
576
+ pointerEvents: snapshot.code && !snapshot.error ? 'auto' : 'none',
577
+ // 添加过渡效果,使更新更平滑
578
+ transition: 'opacity 0.3s ease-in-out, min-height 0.2s ease-in-out'
579
579
  },
580
580
  // 使用 data 属性标记,方便样式隔离
581
581
  "data-mermaid-container": "true"
@@ -253,7 +253,7 @@ import { Mermaid } from "./Mermaid";
253
253
  } catch (error) {}
254
254
  }
255
255
  }, /*#__PURE__*/ React.createElement(Copy, null)))), /*#__PURE__*/ React.createElement("div", {
256
- className: 'ant-agentic-md-editor-hidden'
256
+ "data-hidden": true
257
257
  }, props.children)), /*#__PURE__*/ React.createElement(Mermaid, {
258
258
  element: props.element
259
259
  }));
@@ -19,6 +19,20 @@ function _define_property(obj, key, value) {
19
19
  }
20
20
  return obj;
21
21
  }
22
+ function _extends() {
23
+ _extends = Object.assign || function(target) {
24
+ for(var i = 1; i < arguments.length; i++){
25
+ var source = arguments[i];
26
+ for(var key in source){
27
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
28
+ target[key] = source[key];
29
+ }
30
+ }
31
+ }
32
+ return target;
33
+ };
34
+ return _extends.apply(this, arguments);
35
+ }
22
36
  function _iterable_to_array_limit(arr, i) {
23
37
  var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
24
38
  if (_i == null) return;
@@ -46,6 +60,10 @@ function _iterable_to_array_limit(arr, i) {
46
60
  function _non_iterable_rest() {
47
61
  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
62
  }
63
+ function _object_destructuring_empty(o) {
64
+ if (o === null || o === void 0) throw new TypeError("Cannot destructure " + o);
65
+ return o;
66
+ }
49
67
  function _object_spread(target) {
50
68
  for(var i = 1; i < arguments.length; i++){
51
69
  var source = arguments[i] != null ? arguments[i] : {};
@@ -375,11 +393,12 @@ var ThoughtChainContent = /*#__PURE__*/ React.memo(function(_param) {
375
393
  var _thoughtChainList_at, _thoughtChainList_at1;
376
394
  var locale = useContext(I18nContext).locale;
377
395
  var thoughtChainList = props.thoughtChainList, loading = props.loading, _props_bubble = props.//@ts-ignore
378
- bubble, bubble = _props_bubble === void 0 ? props.chatItem : _props_bubble, style = props.style, compact = props.compact, markdownRenderProps = props.markdownRenderProps, _props_finishAutoCollapse = props.finishAutoCollapse, finishAutoCollapse = _props_finishAutoCollapse === void 0 ? true : _props_finishAutoCollapse, onDocMetaClick = props.onDocMetaClick;
396
+ bubble, bubble = _props_bubble === void 0 ? props.chatItem : _props_bubble, customStyle = props.style, compact = props.compact, markdownRenderProps = props.markdownRenderProps, _props_finishAutoCollapse = props.finishAutoCollapse, finishAutoCollapse = _props_finishAutoCollapse === void 0 ? true : _props_finishAutoCollapse, onDocMetaClick = props.onDocMetaClick;
379
397
  var context = useContext(ConfigProvider.ConfigContext);
380
398
  var _React_useState = _sliced_to_array(React.useState(false), 2), collapse = _React_useState[0], setCollapse = _React_useState[1];
381
399
  var prefixCls = context === null || context === void 0 ? void 0 : context.getPrefixCls('thought-chain-list');
382
400
  var _useStyle = useStyle(prefixCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
401
+ var restStyle = _extends({}, _object_destructuring_empty(customStyle || {}));
383
402
  var _React_useState1 = _sliced_to_array(React.useState(null), 2), docMeta = _React_useState1[0], setDocMeta = _React_useState1[1];
384
403
  // 为组件实例生成唯一ID,避免多个实例间的key冲突
385
404
  var instanceId = 'ThoughtChainList';
@@ -458,7 +477,7 @@ var ThoughtChainContent = /*#__PURE__*/ React.memo(function(_param) {
458
477
  locale: locale
459
478
  }), /*#__PURE__*/ React.createElement("div", {
460
479
  className: classNames("".concat(prefixCls), hashId),
461
- style: style
480
+ style: restStyle
462
481
  }, /*#__PURE__*/ React.createElement(motion.div, {
463
482
  transition: {
464
483
  duration: 0.3
@@ -53,6 +53,7 @@ function _object_spread_props(target, source) {
53
53
  import { resetComponent, useEditorStyleRegister } from "../Hooks/useStyle";
54
54
  var genStyle = function(token) {
55
55
  return _define_property({}, token.componentCls, {
56
+ padding: '12px',
56
57
  '*': {
57
58
  boxSizing: 'border-box'
58
59
  },
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * @fileoverview CSS 异步加载工具
3
- *
3
+ *
4
4
  * 提供动态加载 CSS 文件的功能,支持按需加载和缓存
5
5
  */ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
6
6
  try {
@@ -129,18 +129,18 @@ function _ts_generator(thisArg, body) {
129
129
  var loadedCSS = new Set();
130
130
  /**
131
131
  * 异步加载 CSS 文件
132
- *
132
+ *
133
133
  * 对于 webpack 处理的 CSS 文件,应该使用动态 import 函数形式
134
134
  * webpack 会自动处理 CSS 的提取和加载
135
- *
135
+ *
136
136
  * @param cssPath - CSS 文件路径(推荐使用函数形式的动态 import)
137
137
  * @returns Promise<void> 加载完成的 Promise
138
- *
138
+ *
139
139
  * @example
140
140
  * ```typescript
141
141
  * // 推荐:使用动态 import 加载 CSS 模块(webpack 会自动处理)
142
142
  * await loadCSS(() => import('./katex.min.css'));
143
- *
143
+ *
144
144
  * // 不推荐:直接使用字符串路径(仅适用于外部 URL)
145
145
  * await loadCSS('https://example.com/style.css');
146
146
  * ```
@@ -247,7 +247,7 @@ var loadedCSS = new Set();
247
247
  /**
248
248
  * 预加载 CSS 文件
249
249
  * 使用低优先级加载,不阻塞当前执行
250
- *
250
+ *
251
251
  * @param cssPath - CSS 文件路径
252
252
  */ export var preloadCSS = function(cssPath) {
253
253
  if (typeof window === 'undefined') {
@@ -11,6 +11,24 @@ function _define_property(obj, key, value) {
11
11
  }
12
12
  return obj;
13
13
  }
14
+ function _extends() {
15
+ _extends = Object.assign || function(target) {
16
+ for(var i = 1; i < arguments.length; i++){
17
+ var source = arguments[i];
18
+ for(var key in source){
19
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
20
+ target[key] = source[key];
21
+ }
22
+ }
23
+ }
24
+ return target;
25
+ };
26
+ return _extends.apply(this, arguments);
27
+ }
28
+ function _object_destructuring_empty(o) {
29
+ if (o === null || o === void 0) throw new TypeError("Cannot destructure " + o);
30
+ return o;
31
+ }
14
32
  function _object_spread(target) {
15
33
  for(var i = 1; i < arguments.length; i++){
16
34
  var source = arguments[i] != null ? arguments[i] : {};
@@ -96,13 +114,14 @@ import { useStyle } from "./style";
96
114
  * - 集成 Ant Design 主题系统
97
115
  * - 响应式布局适配
98
116
  */ export var WelcomeMessage = function(param) {
99
- var title = param.title, description = param.description, classNames = param.classNames, titleAnimateProps = param.titleAnimateProps, descriptionAnimateProps = param.descriptionAnimateProps, style = param.style, rootClassName = param.rootClassName;
117
+ var title = param.title, description = param.description, classNames = param.classNames, titleAnimateProps = param.titleAnimateProps, descriptionAnimateProps = param.descriptionAnimateProps, customStyle = param.style, rootClassName = param.rootClassName;
100
118
  var getPrefixCls = useContext(ConfigProvider.ConfigContext).getPrefixCls;
101
119
  var prefixCls = getPrefixCls('agentic-welcome');
102
120
  var _useStyle = useStyle(prefixCls), wrapSSR = _useStyle.wrapSSR, hashId = _useStyle.hashId;
121
+ var restStyle = _extends({}, _object_destructuring_empty(customStyle || {}));
103
122
  return wrapSSR(/*#__PURE__*/ React.createElement("div", {
104
123
  className: classnames(prefixCls, hashId, rootClassName),
105
- style: style
124
+ style: restStyle
106
125
  }, title && /*#__PURE__*/ React.createElement(TypingAnimation, _object_spread_props(_object_spread({
107
126
  as: "div"
108
127
  }, titleAnimateProps), {
@@ -1,8 +1,8 @@
1
- import { Loading } from "../../Components/Loading";
2
1
  import { Check, CircleDashed, OctagonX } from "@sofa-design/icons";
3
2
  import { ConfigProvider } from "antd";
4
3
  import classNames from "classnames";
5
4
  import React, { useContext } from "react";
5
+ import { Loading } from "../../Components/Loading";
6
6
  import { useTaskStyle } from "./style";
7
7
  var StatusIcon = function(param) {
8
8
  var status = param.status;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ant-design/agentic-ui",
3
- "version": "2.14.1",
3
+ "version": "2.16.1",
4
4
  "description": "面向智能体的 UI 组件库,提供多步推理可视化、工具调用展示、任务执行协同等 Agentic UI 能力",
5
5
  "repository": "git@github.com:ant-design/agentic-ui.git",
6
6
  "license": "MIT",
@@ -165,4 +165,4 @@
165
165
  "authors": [
166
166
  "qixian.cs@outlook.com"
167
167
  ]
168
- }
168
+ }