@ant-design/agentic-ui 2.30.13 → 2.30.15

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 (41) hide show
  1. package/dist/Bubble/AIBubble.js +32 -18
  2. package/dist/Bubble/ContentFilemapView.d.ts +14 -0
  3. package/dist/Bubble/ContentFilemapView.js +95 -0
  4. package/dist/Bubble/UserBubble.js +48 -6
  5. package/dist/Bubble/extractFilemapBlocks.d.ts +17 -0
  6. package/dist/Bubble/extractFilemapBlocks.js +23 -0
  7. package/dist/Bubble/type.d.ts +3 -0
  8. package/dist/Hooks/useLanguage.d.ts +2 -0
  9. package/dist/I18n/locales.d.ts +2 -0
  10. package/dist/I18n/locales.js +7 -3
  11. package/dist/MarkdownEditor/editor/elements/Code/ReadonlyCode.js +1 -1
  12. package/dist/MarkdownEditor/editor/elements/Code/index.js +23 -15
  13. package/dist/MarkdownEditor/editor/parser/constants.d.ts +10 -0
  14. package/dist/MarkdownEditor/editor/parser/constants.js +46 -0
  15. package/dist/MarkdownEditor/editor/parser/parserMarkdownToSlateNode.js +3 -1
  16. package/dist/MarkdownEditor/editor/parser/parserSlateNodeToMarkdown.js +11 -0
  17. package/dist/MarkdownEditor/editor/utils/markdownToHtml.js +6 -4
  18. package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.d.ts +1 -6
  19. package/dist/MarkdownInputField/AttachmentButton/AttachmentButtonPopover.js +2 -13
  20. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileIcon.js +3 -1
  21. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileListItem.js +2 -1
  22. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/index.js +6 -1
  23. package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/style.js +8 -0
  24. package/dist/MarkdownInputField/AttachmentButton/index.d.ts +30 -0
  25. package/dist/MarkdownInputField/AttachmentButton/index.js +22 -6
  26. package/dist/MarkdownInputField/AttachmentButton/utils.d.ts +3 -6
  27. package/dist/MarkdownInputField/FileMapView/FileMapViewItem.js +20 -1
  28. package/dist/MarkdownInputField/FileMapView/index.js +35 -12
  29. package/dist/MarkdownInputField/FileMapView/style.js +6 -0
  30. package/dist/MarkdownInputField/FileUploadManager/index.js +36 -21
  31. package/dist/MarkdownInputField/MarkdownInputField.js +2 -1
  32. package/dist/MarkdownInputField/hooks/useMarkdownInputFieldHandlers.d.ts +1 -0
  33. package/dist/MarkdownInputField/hooks/useMarkdownInputFieldHandlers.js +20 -0
  34. package/dist/MarkdownInputField/style.js +8 -0
  35. package/dist/MarkdownInputField/types/MarkdownInputFieldProps.d.ts +1 -1
  36. package/dist/MarkdownRenderer/streaming/useStreamingMarkdownReact.js +2 -2
  37. package/dist/MarkdownRenderer/useMarkdownToReact.js +2 -2
  38. package/dist/Plugins/chart/DonutChart/index.js +21 -7
  39. package/dist/Plugins/chart/components/ChartContainer/ChartErrorBoundary.d.ts +4 -0
  40. package/dist/Workspace/Browser/index.js +3 -1
  41. package/package.json +1 -1
@@ -179,7 +179,9 @@ function _ts_generator(thisArg, body) {
179
179
  }
180
180
  }
181
181
  import { Editor, Transforms } from "slate";
182
+ import { ReactEditor } from "slate-react";
182
183
  import { useRefFunction } from "../../Hooks/useRefFunction";
184
+ import { EditorUtils } from "../../MarkdownEditor/editor/utils/editorUtils";
183
185
  import { upLoadFileToServer } from "../AttachmentButton";
184
186
  import { isMobileDevice } from "../AttachmentButton/utils";
185
187
  import { getFileListFromDataTransferItems } from "../FilePaste";
@@ -384,6 +386,23 @@ import { getFileListFromDataTransferItems } from "../FilePaste";
384
386
  // 这里不需要显式 return,函数结束自然会继续执行(但这里是 void,所以 return 也无妨)
385
387
  // 注意:上面的 return 是阻止了默认行为并发送,这里的 implicit return 是允许默认行为(换行)
386
388
  });
389
+ var handleContainerClick = useRefFunction(function(e) {
390
+ var _markdownEditorRef_current_markdownEditorRef, _markdownEditorRef_current;
391
+ if (props.disabled) return;
392
+ var editor = markdownEditorRef === null || markdownEditorRef === void 0 ? void 0 : (_markdownEditorRef_current = markdownEditorRef.current) === null || _markdownEditorRef_current === void 0 ? void 0 : (_markdownEditorRef_current_markdownEditorRef = _markdownEditorRef_current.markdownEditorRef) === null || _markdownEditorRef_current_markdownEditorRef === void 0 ? void 0 : _markdownEditorRef_current_markdownEditorRef.current;
393
+ if (!editor) return;
394
+ try {
395
+ if (ReactEditor.isFocused(editor)) return;
396
+ } catch (unused) {
397
+ // ignore
398
+ }
399
+ var target = e.target;
400
+ var isInteractive = target.closest('button') || target.closest('a') || target.closest('input') || target.closest('[contenteditable="true"]');
401
+ if (isInteractive) return;
402
+ EditorUtils.focus(editor);
403
+ var end = Editor.end(editor, []);
404
+ Transforms.select(editor, end);
405
+ });
387
406
  var activeInput = useRefFunction(function(active) {
388
407
  if (inputRef.current) {
389
408
  if (active) {
@@ -402,6 +421,7 @@ import { getFileListFromDataTransferItems } from "../FilePaste";
402
421
  sendMessage: sendMessage,
403
422
  handlePaste: handlePaste,
404
423
  handleKeyDown: handleKeyDown,
424
+ handleContainerClick: handleContainerClick,
405
425
  activeInput: activeInput
406
426
  };
407
427
  };
@@ -94,6 +94,8 @@ var INPUT_FIELD_PADDING = {
94
94
  NONE: '0px',
95
95
  SMALL: "".concat(GLOW_BORDER_OFFSET, "px")
96
96
  };
97
+ // MarkdownInputField 中 code block 的默认高度,避免初始占位过高
98
+ var DEFAULT_INPUT_CODE_BLOCK_HEIGHT = 120;
97
99
  // 定义旋转动画
98
100
  var stopIconRotate = new Keyframes('stopIconRotate', {
99
101
  '0%': {
@@ -172,6 +174,7 @@ var genStyle = function genStyle(token) {
172
174
  maxHeight: 400,
173
175
  height: '100%',
174
176
  overflowY: 'visible',
177
+ cursor: 'text',
175
178
  scrollbarColor: 'var(--color-gray-text-tertiary, #505c716b) transparent',
176
179
  scrollbarWidth: 'thin',
177
180
  '&&-disabled': {
@@ -183,6 +186,11 @@ var genStyle = function genStyle(token) {
183
186
  padding: '0 !important'
184
187
  }
185
188
  },
189
+ // 仅覆盖 MarkdownInputField 内的代码块默认高度
190
+ '& [data-language][data-is-unclosed="true"]': {
191
+ height: "".concat(DEFAULT_INPUT_CODE_BLOCK_HEIGHT, "px !important"),
192
+ minHeight: "".concat(DEFAULT_INPUT_CODE_BLOCK_HEIGHT, "px !important")
193
+ },
186
194
  '&-editor-content': _define_property({
187
195
  display: 'flex',
188
196
  flexDirection: 'column',
@@ -112,7 +112,7 @@ export type MarkdownInputFieldProps = {
112
112
  * attachment={{
113
113
  * enable: true,
114
114
  * accept: '.pdf,.doc,.docx',
115
- * maxSize: 10 * 1024 * 1024, // 10MB
115
+ * maxFileSize: 10 * 1024 * 1024, // 10MB(字节)
116
116
  * onUpload: async (file) => {
117
117
  * const url = await uploadFile(file);
118
118
  * return { url };
@@ -1,4 +1,4 @@
1
- import { JINJA_DOLLAR_PLACEHOLDER } from "../../MarkdownEditor/editor/parser/constants";
1
+ import { JINJA_DOLLAR_PLACEHOLDER, preprocessNormalizeLeafToContainerDirective } from "../../MarkdownEditor/editor/parser/constants";
2
2
  import React, { useMemo, useRef } from "react";
3
3
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
4
4
  import { buildEditorAlignedComponents, createHastProcessor, splitMarkdownBlocks } from "../markdownReactShared";
@@ -38,7 +38,7 @@ import { shouldResetRevisionProgress } from "./revisionPolicy";
38
38
  }
39
39
  prevRevisionRef.current = revisionSource;
40
40
  try {
41
- var preprocessed = content.replace(new RegExp(JINJA_DOLLAR_PLACEHOLDER, 'g'), '$');
41
+ var preprocessed = preprocessNormalizeLeafToContainerDirective(content.replace(new RegExp(JINJA_DOLLAR_PLACEHOLDER, 'g'), '$'));
42
42
  var blocks = splitMarkdownBlocks(preprocessed);
43
43
  if (blocks.length === 0) return null;
44
44
  var gen = revisionGenerationRef.current;
@@ -1,6 +1,6 @@
1
1
  import { toJsxRuntime } from "hast-util-to-jsx-runtime";
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
- import { JINJA_DOLLAR_PLACEHOLDER } from "../MarkdownEditor/editor/parser/constants";
3
+ import { JINJA_DOLLAR_PLACEHOLDER, preprocessNormalizeLeafToContainerDirective } from "../MarkdownEditor/editor/parser/constants";
4
4
  import { buildEditorAlignedComponents, createHastProcessor } from "./markdownReactShared";
5
5
  import { useStreamingMarkdownReact } from "./streaming/useStreamingMarkdownReact";
6
6
  export var useMarkdownToReact = useStreamingMarkdownReact;
@@ -10,7 +10,7 @@ export var useMarkdownToReact = useStreamingMarkdownReact;
10
10
  if (!content) return null;
11
11
  try {
12
12
  var processor = createHastProcessor(remarkPlugins, htmlConfig);
13
- var preprocessed = content.replace(new RegExp(JINJA_DOLLAR_PLACEHOLDER, 'g'), '$');
13
+ var preprocessed = preprocessNormalizeLeafToContainerDirective(content.replace(new RegExp(JINJA_DOLLAR_PLACEHOLDER, 'g'), '$'));
14
14
  var mdast = processor.parse(preprocessed);
15
15
  var hast = processor.runSync(mdast);
16
16
  var userComps = components || {};
@@ -476,8 +476,22 @@ import { useStyle } from "./style";
476
476
  ];
477
477
  }
478
478
  var hiddenSetForChart = hiddenDataIndicesByChart[idx] || new Set();
479
- var visibleData = chartData.filter(function(_, index) {
480
- return !hiddenSetForChart.has(index);
479
+ var visibleDataWithIndex = chartData.map(function(d, index) {
480
+ return {
481
+ d: d,
482
+ originalIndex: index
483
+ };
484
+ }).filter(function(param) {
485
+ var originalIndex = param.originalIndex;
486
+ return !hiddenSetForChart.has(originalIndex);
487
+ });
488
+ var visibleData = visibleDataWithIndex.map(function(param) {
489
+ var d = param.d;
490
+ return d;
491
+ });
492
+ var visibleOriginalIndices = visibleDataWithIndex.map(function(param) {
493
+ var originalIndex = param.originalIndex;
494
+ return originalIndex;
481
495
  });
482
496
  var toNum = function toNum(v) {
483
497
  return typeof v === 'number' ? v : Number(v);
@@ -498,9 +512,9 @@ import { useStyle } from "./style";
498
512
  return sum + (Number.isFinite(v) ? v : 0);
499
513
  }, 0);
500
514
  var backgroundColors = cfg.backgroundColor || defaultColorList;
501
- // 解析 CSS 变量为实际颜色值(Canvas 需要实际颜色值)
502
- var resolvedBackgroundColors = backgroundColors.map(function(color) {
503
- return resolveCssVariable(color);
515
+ // 解析 CSS 变量为实际颜色值(Canvas 需要实际颜色值),按原始索引取色保证与图例颜色一致
516
+ var resolvedVisibleBackgroundColors = visibleOriginalIndices.map(function(originalIndex) {
517
+ return resolveCssVariable(backgroundColors[originalIndex % backgroundColors.length]);
504
518
  });
505
519
  var mainColor = (_ref = (_cfg_backgroundColor = cfg.backgroundColor) === null || _cfg_backgroundColor === void 0 ? void 0 : _cfg_backgroundColor[0]) !== null && _ref !== void 0 ? _ref : defaultColorList[idx % defaultColorList.length];
506
520
  var resolvedMainColor = resolveCssVariable(mainColor);
@@ -557,12 +571,12 @@ import { useStyle } from "./style";
557
571
  backgroundColor: isSingleValueMode ? [
558
572
  resolvedMainColor,
559
573
  'transparent'
560
- ] : resolvedBackgroundColors.slice(0, values.length),
574
+ ] : resolvedVisibleBackgroundColors.slice(0, values.length),
561
575
  borderColor: chartBorderColor,
562
576
  hoverBackgroundColor: isSingleValueMode ? [
563
577
  resolvedMainColor,
564
578
  'transparent'
565
- ] : resolvedBackgroundColors.slice(0, values.length),
579
+ ] : resolvedVisibleBackgroundColors.slice(0, values.length),
566
580
  hoverBorderColor: chartHoverBorderColor,
567
581
  borderWidth: cfg.chartStyle === 'pie' ? 0 : isMobile ? 1 : 1,
568
582
  spacing: isSingleValueMode ? 0 : cfg.chartStyle === 'pie' ? 0 : isDarkTheme ? isMobile ? 4 : 8 : isMobile ? 3 : 6,
@@ -351,6 +351,8 @@ declare class ChartErrorBoundary extends React.Component<ChartErrorBoundaryProps
351
351
  'suggestion.select': string;
352
352
  'suggestion.followUp': string;
353
353
  'input.fileUpload': string;
354
+ 'input.attachmentListTitle': string;
355
+ 'chat.fileMapTitle': string;
354
356
  'input.voiceInput': string;
355
357
  'input.voiceInputting': string;
356
358
  'input.placeholder': string;
@@ -745,6 +747,8 @@ declare class ChartErrorBoundary extends React.Component<ChartErrorBoundaryProps
745
747
  'suggestion.select': string;
746
748
  'suggestion.followUp': string;
747
749
  'input.fileUpload': string;
750
+ 'input.attachmentListTitle': string;
751
+ 'chat.fileMapTitle': string;
748
752
  'input.voiceInput': string;
749
753
  'input.voiceInputting': string;
750
754
  'input.placeholder': string;
@@ -151,14 +151,16 @@ export var BrowserItemComponent = function BrowserItemComponent(param) {
151
151
  var _useBrowserContext = useBrowserContext(), prefixCls = _useBrowserContext.prefixCls, wrapSSR = _useBrowserContext.wrapSSR, hashId = _useBrowserContext.hashId;
152
152
  var locale = useContext(I18nContext).locale;
153
153
  var handleOpen = function handleOpen(e) {
154
+ e.preventDefault();
155
+ e.stopPropagation();
154
156
  if (onOpen) {
155
- e.preventDefault();
156
157
  onOpen(item);
157
158
  return;
158
159
  }
159
160
  window.open(item.url, '_blank', 'noopener,noreferrer');
160
161
  };
161
162
  var handleLocate = function handleLocate(e) {
163
+ e.preventDefault();
162
164
  e.stopPropagation();
163
165
  onLocate === null || onLocate === void 0 ? void 0 : onLocate(item);
164
166
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ant-design/agentic-ui",
3
- "version": "2.30.13",
3
+ "version": "2.30.15",
4
4
  "description": "面向智能体的 UI 组件库,提供多步推理可视化、工具调用展示、任务执行协同等 Agentic UI 能力",
5
5
  "repository": "git@github.com:ant-design/agentic-ui.git",
6
6
  "license": "MIT",