@ant-design/agentic-ui 2.30.0 → 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.
- package/dist/Bubble/List/index.d.ts +4 -0
- package/dist/Bubble/List/index.js +8 -5
- package/dist/Bubble/MessagesContent/EXCEPTION.js +11 -2
- package/dist/Bubble/MessagesContent/MarkdownPreview.js +13 -7
- package/dist/Bubble/MessagesContent/index.js +39 -10
- package/dist/Bubble/MessagesContent/style.js +55 -22
- package/dist/Bubble/type.d.ts +4 -0
- package/dist/I18n/locales.js +2 -2
- package/dist/MarkdownEditor/BaseMarkdownEditor.js +37 -5
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiTaskBlock.d.ts +4 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiTaskBlock.js +74 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiToolUseBarBlock.d.ts +4 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/AgenticUiToolUseBarBlock.js +114 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/agenticUiEmbedUtils.d.ts +20 -0
- package/dist/MarkdownEditor/editor/elements/AgenticUiBlocks/agenticUiEmbedUtils.js +169 -0
- package/dist/MarkdownEditor/editor/elements/Table/EditableTable.d.ts +11 -0
- package/dist/MarkdownEditor/editor/elements/Table/EditableTable.js +207 -0
- package/dist/MarkdownEditor/editor/elements/Table/Table.js +10 -276
- package/dist/MarkdownEditor/editor/elements/Table/TableCellIndex/index.js +7 -227
- package/dist/MarkdownEditor/editor/elements/Table/TableCellIndexSpacer/index.js +20 -229
- package/dist/MarkdownEditor/editor/elements/Table/commands/tableCommands.d.ts +9 -0
- package/dist/MarkdownEditor/editor/elements/Table/commands/tableCommands.js +242 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/editableTableWidth.d.ts +20 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/editableTableWidth.js +60 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableColWidths.d.ts +6 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableColWidths.js +20 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableContentWidth.d.ts +10 -0
- package/dist/MarkdownEditor/editor/elements/Table/utils/useEditableTableContentWidth.js +103 -0
- package/dist/MarkdownEditor/editor/elements/index.js +7 -0
- package/dist/MarkdownEditor/editor/parser/parse/parseCode.js +33 -2
- package/dist/MarkdownEditor/editor/parser/parserSlateNodeToMarkdown.js +3 -0
- package/dist/MarkdownEditor/editor/plugins/handlePaste.js +4 -1
- package/dist/MarkdownEditor/style.js +109 -7
- package/dist/MarkdownEditor/types.d.ts +5 -0
- package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileIcon.js +2 -2
- package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/AttachmentFileListItem.js +11 -8
- package/dist/MarkdownInputField/AttachmentButton/index.js +7 -2
- package/dist/MarkdownInputField/AttachmentButton/types.d.ts +5 -1
- package/dist/MarkdownInputField/AttachmentButton/utils.d.ts +7 -0
- package/dist/MarkdownInputField/AttachmentButton/utils.js +9 -1
- package/dist/MarkdownInputField/FileMapView/FileMapViewItem.js +10 -5
- package/dist/MarkdownInputField/FileUploadManager/index.d.ts +9 -0
- package/dist/MarkdownInputField/FileUploadManager/index.js +20 -4
- package/dist/MarkdownInputField/MarkdownInputField.js +5 -3
- package/dist/MarkdownInputField/SendActions/index.d.ts +9 -0
- package/dist/MarkdownInputField/SendActions/index.js +3 -2
- package/dist/MarkdownInputField/utils/renderHelpers.d.ts +8 -1
- package/dist/MarkdownInputField/utils/renderHelpers.js +5 -1
- package/dist/MarkdownRenderer/AnimationText.d.ts +4 -7
- package/dist/MarkdownRenderer/AnimationText.js +117 -15
- package/dist/MarkdownRenderer/MarkdownRenderer.js +15 -1
- package/dist/MarkdownRenderer/index.d.ts +2 -2
- package/dist/MarkdownRenderer/index.js +1 -1
- package/dist/MarkdownRenderer/renderers/AgenticUiTaskBlockRenderer.d.ts +6 -0
- package/dist/MarkdownRenderer/renderers/AgenticUiTaskBlockRenderer.js +66 -0
- package/dist/MarkdownRenderer/renderers/AgenticUiToolUseBarBlockRenderer.d.ts +6 -0
- package/dist/MarkdownRenderer/renderers/AgenticUiToolUseBarBlockRenderer.js +134 -0
- package/dist/MarkdownRenderer/style.js +7 -6
- package/dist/MarkdownRenderer/useMarkdownToReact.js +5 -4
- package/dist/MarkdownRenderer/useStreaming.js +8 -1
- package/dist/Plugins/chart/ChartRender.js +1 -0
- package/dist/Plugins/chart/index.js +3 -1
- package/package.json +2 -1
|
@@ -176,6 +176,10 @@ export type BubbleListProps = {
|
|
|
176
176
|
* 等效于 markdownRenderConfig={{ renderMode }}
|
|
177
177
|
*/
|
|
178
178
|
renderMode?: 'slate' | 'markdown';
|
|
179
|
+
/**
|
|
180
|
+
* 与 `renderMode` 等价,兼容协议字段 `renderType=markdown`
|
|
181
|
+
*/
|
|
182
|
+
renderType?: 'slate' | 'markdown';
|
|
179
183
|
docListProps?: BubbleProps['docListProps'];
|
|
180
184
|
/**
|
|
181
185
|
* 动态控制复制按钮的显隐
|
|
@@ -121,15 +121,18 @@ import { useStyle } from "./style";
|
|
|
121
121
|
* - 支持滚动和触摸事件
|
|
122
122
|
* - 提供消息复制功能
|
|
123
123
|
*/ export var BubbleList = function BubbleList(props) {
|
|
124
|
-
var bubbleListRef = props.bubbleListRef, bubbleRenderConfig = props.bubbleRenderConfig, className = props.className, legacyLoading = props.loading, isLoading = props.isLoading, styles = props.styles, classNames = props.classNames, markdownRenderConfigProp = props.markdownRenderConfig, renderMode = props.renderMode, userMeta = props.userMeta, assistantMeta = props.assistantMeta, _props_bubbleList = props.bubbleList, bubbleList = _props_bubbleList === void 0 ? [] : _props_bubbleList, style = props.style, onScroll = props.onScroll, onWheel = props.onWheel, onTouchMove = props.onTouchMove;
|
|
125
|
-
// 合并 renderMode 快捷属性到 markdownRenderConfig
|
|
124
|
+
var bubbleListRef = props.bubbleListRef, bubbleRenderConfig = props.bubbleRenderConfig, className = props.className, legacyLoading = props.loading, isLoading = props.isLoading, styles = props.styles, classNames = props.classNames, markdownRenderConfigProp = props.markdownRenderConfig, renderMode = props.renderMode, renderType = props.renderType, userMeta = props.userMeta, assistantMeta = props.assistantMeta, _props_bubbleList = props.bubbleList, bubbleList = _props_bubbleList === void 0 ? [] : _props_bubbleList, style = props.style, onScroll = props.onScroll, onWheel = props.onWheel, onTouchMove = props.onTouchMove;
|
|
125
|
+
// 合并 renderMode / renderType 快捷属性到 markdownRenderConfig
|
|
126
126
|
var markdownRenderConfig = useMemo(function() {
|
|
127
|
-
|
|
128
|
-
|
|
127
|
+
var _ref, _ref1;
|
|
128
|
+
var mode = (_ref = (_ref1 = renderMode !== null && renderMode !== void 0 ? renderMode : renderType) !== null && _ref1 !== void 0 ? _ref1 : markdownRenderConfigProp === null || markdownRenderConfigProp === void 0 ? void 0 : markdownRenderConfigProp.renderMode) !== null && _ref !== void 0 ? _ref : markdownRenderConfigProp === null || markdownRenderConfigProp === void 0 ? void 0 : markdownRenderConfigProp.renderType;
|
|
129
|
+
return mode ? _object_spread_props(_object_spread({}, markdownRenderConfigProp), {
|
|
130
|
+
renderMode: mode
|
|
129
131
|
}) : markdownRenderConfigProp;
|
|
130
132
|
}, [
|
|
131
133
|
markdownRenderConfigProp,
|
|
132
|
-
renderMode
|
|
134
|
+
renderMode,
|
|
135
|
+
renderType
|
|
133
136
|
]);
|
|
134
137
|
// 兼容旧属性
|
|
135
138
|
var loading = isLoading !== null && isLoading !== void 0 ? isLoading : legacyLoading;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { theme } from "antd";
|
|
2
2
|
import React from "react";
|
|
3
|
+
import { AnswerAlert } from "../../AnswerAlert";
|
|
4
|
+
import { useLocale } from "../../I18n";
|
|
3
5
|
/**
|
|
4
6
|
* EXCEPTION 组件 - 异常消息组件
|
|
5
7
|
*
|
|
@@ -33,7 +35,9 @@ import React from "react";
|
|
|
33
35
|
*/ export var EXCEPTION = function EXCEPTION(param) {
|
|
34
36
|
var extra = param.extra, content = param.content;
|
|
35
37
|
var token = theme.useToken().token;
|
|
36
|
-
|
|
38
|
+
var locale = useLocale();
|
|
39
|
+
var messageText = String(content !== null && content !== void 0 ? content : '').trim();
|
|
40
|
+
return /*#__PURE__*/ React.createElement(React.Fragment, null, messageText ? /*#__PURE__*/ React.createElement("div", {
|
|
37
41
|
style: {
|
|
38
42
|
color: token.colorError,
|
|
39
43
|
lineHeight: '24px',
|
|
@@ -41,5 +45,10 @@ import React from "react";
|
|
|
41
45
|
wordBreak: 'break-all',
|
|
42
46
|
textWrap: 'wrap'
|
|
43
47
|
}
|
|
44
|
-
}, content),
|
|
48
|
+
}, content) : /*#__PURE__*/ React.createElement(AnswerAlert, {
|
|
49
|
+
message: (locale === null || locale === void 0 ? void 0 : locale['chat.message.generateFailed']) || '生成回答失败,请重试',
|
|
50
|
+
type: "error",
|
|
51
|
+
showIcon: true,
|
|
52
|
+
closable: true
|
|
53
|
+
}), extra);
|
|
45
54
|
};
|
|
@@ -94,8 +94,8 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
94
94
|
* />
|
|
95
95
|
* ```
|
|
96
96
|
*/ export var MarkdownPreview = function MarkdownPreview(props) {
|
|
97
|
-
var _ref;
|
|
98
|
-
var _props_markdownRenderConfig, _props_originData;
|
|
97
|
+
var _ref, _ref1;
|
|
98
|
+
var _props_markdownRenderConfig, _props_markdownRenderConfig1, _props_originData, _props_originData1;
|
|
99
99
|
var content = props.content, extra = props.extra, typing = props.typing, htmlRef = props.htmlRef, fncProps = props.fncProps, docListNode = props.docListNode, beforeContent = props.beforeContent, afterContent = props.afterContent;
|
|
100
100
|
var MarkdownEditorRef = React.useRef(undefined);
|
|
101
101
|
var hidePadding = (useContext(MessagesContext) || {}).hidePadding;
|
|
@@ -104,7 +104,7 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
104
104
|
var standalone = config === null || config === void 0 ? void 0 : config.standalone;
|
|
105
105
|
var extraShowOnHover = config === null || config === void 0 ? void 0 : config.extraShowOnHover;
|
|
106
106
|
var token = theme.useToken().token;
|
|
107
|
-
var renderMode = (_ref = (_props_markdownRenderConfig = props.markdownRenderConfig) === null || _props_markdownRenderConfig === void 0 ? void 0 : _props_markdownRenderConfig.renderMode) !== null && _ref !== void 0 ? _ref : 'slate';
|
|
107
|
+
var renderMode = (_ref = (_ref1 = (_props_markdownRenderConfig = props.markdownRenderConfig) === null || _props_markdownRenderConfig === void 0 ? void 0 : _props_markdownRenderConfig.renderMode) !== null && _ref1 !== void 0 ? _ref1 : (_props_markdownRenderConfig1 = props.markdownRenderConfig) === null || _props_markdownRenderConfig1 === void 0 ? void 0 : _props_markdownRenderConfig1.renderType) !== null && _ref !== void 0 ? _ref : 'slate';
|
|
108
108
|
var isPaddingHidden = useMemo(function() {
|
|
109
109
|
return !!extra;
|
|
110
110
|
}, [
|
|
@@ -125,7 +125,7 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
125
125
|
var _content_includes, _htmlRef_current, _htmlRef_current1, _props_markdownRenderConfig, _props_originData, _props_originData1, _props_originData2, _props_markdownRenderConfig1, _props_markdownRenderConfig2, _props_markdownRenderConfig3;
|
|
126
126
|
// MarkdownRenderer 渲染路径——轻量,不创建 Slate 实例
|
|
127
127
|
if (renderMode === 'markdown') {
|
|
128
|
-
var _props_originData3, _props_markdownRenderConfig4, _props_markdownRenderConfig5, _props_markdownRenderConfig6;
|
|
128
|
+
var _props_originData3, _props_markdownRenderConfig4, _props_markdownRenderConfig5, _props_markdownRenderConfig6, _props_markdownRenderConfig7;
|
|
129
129
|
return /*#__PURE__*/ React.createElement(MarkdownRenderer, {
|
|
130
130
|
content: content,
|
|
131
131
|
streaming: typing,
|
|
@@ -137,7 +137,8 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
137
137
|
padding: isPaddingHidden ? 0 : undefined,
|
|
138
138
|
margin: isPaddingHidden ? 0 : undefined
|
|
139
139
|
}, ((_props_markdownRenderConfig5 = props.markdownRenderConfig) === null || _props_markdownRenderConfig5 === void 0 ? void 0 : _props_markdownRenderConfig5.style) || {}),
|
|
140
|
-
codeProps: (_props_markdownRenderConfig6 = props.markdownRenderConfig) === null || _props_markdownRenderConfig6 === void 0 ? void 0 : _props_markdownRenderConfig6.codeProps
|
|
140
|
+
codeProps: (_props_markdownRenderConfig6 = props.markdownRenderConfig) === null || _props_markdownRenderConfig6 === void 0 ? void 0 : _props_markdownRenderConfig6.codeProps,
|
|
141
|
+
apaasify: (_props_markdownRenderConfig7 = props.markdownRenderConfig) === null || _props_markdownRenderConfig7 === void 0 ? void 0 : _props_markdownRenderConfig7.apaasify
|
|
141
142
|
});
|
|
142
143
|
}
|
|
143
144
|
// Slate 渲染路径——保持向后兼容
|
|
@@ -177,9 +178,13 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
177
178
|
hidePadding,
|
|
178
179
|
typing,
|
|
179
180
|
(_props_originData = props.originData) === null || _props_originData === void 0 ? void 0 : _props_originData.isLast,
|
|
181
|
+
(_props_originData1 = props.originData) === null || _props_originData1 === void 0 ? void 0 : _props_originData1.isFinished,
|
|
180
182
|
isPaddingHidden,
|
|
181
183
|
content,
|
|
182
|
-
renderMode
|
|
184
|
+
renderMode,
|
|
185
|
+
props.markdownRenderConfig,
|
|
186
|
+
fncProps,
|
|
187
|
+
standalone
|
|
183
188
|
]);
|
|
184
189
|
var errorDom = /*#__PURE__*/ React.createElement("div", {
|
|
185
190
|
style: {
|
|
@@ -206,7 +211,8 @@ import { MessagesContext } from "./BubbleContext";
|
|
|
206
211
|
}, beforeContent, markdown, docListNode, afterContent), extra);
|
|
207
212
|
}
|
|
208
213
|
// extraShowOnHover 开启时,无 extra 直接返回内容,避免 hover 出现空浮层
|
|
209
|
-
|
|
214
|
+
// 生成中(typing)时不使用 Popover,避免 hover 展示 extra
|
|
215
|
+
if (!extra || typing) {
|
|
210
216
|
return /*#__PURE__*/ React.createElement("div", {
|
|
211
217
|
style: {
|
|
212
218
|
display: 'flex',
|
|
@@ -274,6 +274,12 @@ import { EXCEPTION } from "./EXCEPTION";
|
|
|
274
274
|
import { MarkdownPreview } from "./MarkdownPreview";
|
|
275
275
|
import { useMessagesContentStyle } from "./style";
|
|
276
276
|
export var LOADING_FLAT = '...';
|
|
277
|
+
var THINKING_FALLBACK_TEXT = '思考中...';
|
|
278
|
+
var THINKING_DOT_INDICES = [
|
|
279
|
+
0,
|
|
280
|
+
1,
|
|
281
|
+
2
|
|
282
|
+
];
|
|
277
283
|
/**
|
|
278
284
|
* BubbleMessageDisplay 组件 - 聊天气泡消息显示组件
|
|
279
285
|
*
|
|
@@ -364,14 +370,30 @@ export var LOADING_FLAT = '...';
|
|
|
364
370
|
contentAfterDom
|
|
365
371
|
]);
|
|
366
372
|
var messageContent = useMemo(function() {
|
|
367
|
-
var _props_originData, _props_bubbleRenderConfig, _props_bubbleRenderConfig1, _props_bubbleRenderConfig2, _props_bubbleRenderConfig3, _props_bubbleRenderConfig_extraRender, _props_bubbleRenderConfig4, _props_originData_extra_tags_includes, _props_originData_extra_tags, _props_originData_extra, _props_originData1, _props_originData2, _props_originData_extra1, _props_originData3, _props_originData_extra2, _props_originData4, _props_originData5, _props_originData_extra3, _props_originData6, _props_docListProps, _props_originData7, _props_markdownRenderConfig, _props_originData8, _props_originData9, _props_originData10;
|
|
373
|
+
var _props_originData, _props_bubbleRenderConfig, _props_bubbleRenderConfig1, _props_bubbleRenderConfig2, _props_bubbleRenderConfig3, _props_bubbleRenderConfig_extraRender, _props_bubbleRenderConfig4, _props_originData_extra_tags_includes, _props_originData_extra_tags, _props_originData_extra, _props_originData1, _props_originData2, _props_originData_extra1, _props_originData3, _props_originData_extra2, _props_originData4, _props_originData5, _props_originData_extra3, _props_originData6, _props_docListProps, _props_originData7, _props_markdownRenderConfig, _props_originData8, _props_originData_extra4, _props_originData9, _props_originData10, _props_originData11;
|
|
368
374
|
if (content === LOADING_FLAT || !((_props_originData = props.originData) === null || _props_originData === void 0 ? void 0 : _props_originData.isFinished) && !content) {
|
|
369
375
|
var _context_thoughtChain;
|
|
370
376
|
if ((context === null || context === void 0 ? void 0 : (_context_thoughtChain = context.thoughtChain) === null || _context_thoughtChain === void 0 ? void 0 : _context_thoughtChain.alwaysRender) !== true) {
|
|
377
|
+
var _props_classNames, _props_styles;
|
|
371
378
|
return wrapSSR(/*#__PURE__*/ React.createElement("div", {
|
|
372
379
|
className: classNames('agent-item-default-content', "".concat(baseChatCls, "-messages-content-loading"), (context === null || context === void 0 ? void 0 : context.compact) ? "".concat(baseChatCls, "-messages-content-loading-compact") : "".concat(baseChatCls, "-messages-content-loading-default"), hashId),
|
|
373
|
-
"data-testid": "message-content"
|
|
374
|
-
|
|
380
|
+
"data-testid": "message-content",
|
|
381
|
+
role: "status",
|
|
382
|
+
"aria-live": "polite",
|
|
383
|
+
"aria-atomic": "true",
|
|
384
|
+
"aria-label": (locale === null || locale === void 0 ? void 0 : locale['chat.message.thinking']) || THINKING_FALLBACK_TEXT
|
|
385
|
+
}, /*#__PURE__*/ React.createElement("span", {
|
|
386
|
+
className: classNames("".concat(baseChatCls, "-messages-content-loading-dots"), (_props_classNames = props.classNames) === null || _props_classNames === void 0 ? void 0 : _props_classNames.bubbleLoadingIconClassName),
|
|
387
|
+
style: (_props_styles = props.styles) === null || _props_styles === void 0 ? void 0 : _props_styles.bubbleLoadingIconStyle,
|
|
388
|
+
"data-testid": "message-thinking-dots",
|
|
389
|
+
"aria-hidden": "true"
|
|
390
|
+
}, THINKING_DOT_INDICES.map(function(dotIndex) {
|
|
391
|
+
return /*#__PURE__*/ React.createElement("span", {
|
|
392
|
+
key: dotIndex,
|
|
393
|
+
className: "".concat(baseChatCls, "-messages-content-loading-dot"),
|
|
394
|
+
"data-testid": "message-thinking-dot"
|
|
395
|
+
});
|
|
396
|
+
}))));
|
|
375
397
|
}
|
|
376
398
|
return null;
|
|
377
399
|
}
|
|
@@ -509,8 +531,15 @@ export var LOADING_FLAT = '...';
|
|
|
509
531
|
} : undefined
|
|
510
532
|
});
|
|
511
533
|
var extra = (props === null || props === void 0 ? void 0 : (_props_bubbleRenderConfig2 = props.bubbleRenderConfig) === null || _props_bubbleRenderConfig2 === void 0 ? void 0 : _props_bubbleRenderConfig2.extraRender) !== false && (props === null || props === void 0 ? void 0 : (_props_bubbleRenderConfig3 = props.bubbleRenderConfig) === null || _props_bubbleRenderConfig3 === void 0 ? void 0 : _props_bubbleRenderConfig3.extraRender) ? props === null || props === void 0 ? void 0 : (_props_bubbleRenderConfig4 = props.bubbleRenderConfig) === null || _props_bubbleRenderConfig4 === void 0 ? void 0 : (_props_bubbleRenderConfig_extraRender = _props_bubbleRenderConfig4.extraRender) === null || _props_bubbleRenderConfig_extraRender === void 0 ? void 0 : _props_bubbleRenderConfig_extraRender.call(_props_bubbleRenderConfig4, props, defaultExtra) : defaultExtra;
|
|
512
|
-
if (
|
|
513
|
-
|
|
534
|
+
if (/*#__PURE__*/ React.isValidElement(content)) {
|
|
535
|
+
return wrapSSR(/*#__PURE__*/ React.createElement("div", {
|
|
536
|
+
className: classNames('agent-item-default-content', "".concat(baseChatCls, "-messages-content-message"), hashId),
|
|
537
|
+
"data-testid": "message-box-content",
|
|
538
|
+
onDoubleClick: props.onDoubleClick
|
|
539
|
+
}, beforeContent, content, afterContent, extra));
|
|
540
|
+
}
|
|
541
|
+
if (content === '...' || props.placement !== 'left' || (props === null || props === void 0 ? void 0 : (_props_originData1 = props.originData) === null || _props_originData1 === void 0 ? void 0 : (_props_originData_extra = _props_originData1.extra) === null || _props_originData_extra === void 0 ? void 0 : (_props_originData_extra_tags = _props_originData_extra.tags) === null || _props_originData_extra_tags === void 0 ? void 0 : (_props_originData_extra_tags_includes = _props_originData_extra_tags.includes) === null || _props_originData_extra_tags_includes === void 0 ? void 0 : _props_originData_extra_tags_includes.call(_props_originData_extra_tags, 'REJECT_TO_ANSWER')) || ((_props_originData2 = props.originData) === null || _props_originData2 === void 0 ? void 0 : _props_originData2.role) === 'bot') {
|
|
542
|
+
var _props_originData12, _props_originData13;
|
|
514
543
|
return wrapSSR(/*#__PURE__*/ React.createElement("div", {
|
|
515
544
|
className: classNames('agent-item-default-content', "".concat(baseChatCls, "-messages-content-message"), hashId),
|
|
516
545
|
"data-testid": "message-box-content",
|
|
@@ -521,14 +550,14 @@ export var LOADING_FLAT = '...';
|
|
|
521
550
|
placement: props.placement,
|
|
522
551
|
markdownRenderConfig: props.markdownRenderConfig,
|
|
523
552
|
isFinished: true,
|
|
524
|
-
style: ((
|
|
553
|
+
style: ((_props_originData12 = props.originData) === null || _props_originData12 === void 0 ? void 0 : _props_originData12.role) === 'bot' ? {} : {
|
|
525
554
|
color: '#343A45'
|
|
526
555
|
} // 使用类名方式需要传递className,这里保留style以兼容现有API
|
|
527
556
|
,
|
|
528
557
|
extra: extra,
|
|
529
558
|
typing: false,
|
|
530
559
|
originData: props.originData,
|
|
531
|
-
content: (
|
|
560
|
+
content: (_props_originData13 = props.originData) === null || _props_originData13 === void 0 ? void 0 : _props_originData13.content
|
|
532
561
|
})));
|
|
533
562
|
}
|
|
534
563
|
// answerStatus= 'EXCEPTION'时 一定是异常情况
|
|
@@ -547,7 +576,7 @@ export var LOADING_FLAT = '...';
|
|
|
547
576
|
var _item_output_chunks, _item_output;
|
|
548
577
|
return ((item === null || item === void 0 ? void 0 : (_item_output = item.output) === null || _item_output === void 0 ? void 0 : (_item_output_chunks = _item_output.chunks) === null || _item_output_chunks === void 0 ? void 0 : _item_output_chunks.length) || 0) > 0;
|
|
549
578
|
})) && ((_props_docListProps = props.docListProps) === null || _props_docListProps === void 0 ? void 0 : _props_docListProps.enable) !== false) {
|
|
550
|
-
var _props_docListProps1,
|
|
579
|
+
var _props_docListProps1, _props_originData_extra5, _props_originData14;
|
|
551
580
|
docInfoDom = /*#__PURE__*/ React.createElement(DocInfoList, _object_spread_props(_object_spread({
|
|
552
581
|
options: docInfoList.map(function(item) {
|
|
553
582
|
var _item_output;
|
|
@@ -556,7 +585,7 @@ export var LOADING_FLAT = '...';
|
|
|
556
585
|
return item;
|
|
557
586
|
})
|
|
558
587
|
}, props.docListProps), {
|
|
559
|
-
reference_url_info_list: ((_props_docListProps1 = props.docListProps) === null || _props_docListProps1 === void 0 ? void 0 : _props_docListProps1.reference_url_info_list) || ((
|
|
588
|
+
reference_url_info_list: ((_props_docListProps1 = props.docListProps) === null || _props_docListProps1 === void 0 ? void 0 : _props_docListProps1.reference_url_info_list) || ((_props_originData14 = props.originData) === null || _props_originData14 === void 0 ? void 0 : (_props_originData_extra5 = _props_originData14.extra) === null || _props_originData_extra5 === void 0 ? void 0 : _props_originData_extra5.reference_url_info_list) || []
|
|
560
589
|
}));
|
|
561
590
|
}
|
|
562
591
|
return wrapSSR(/*#__PURE__*/ React.createElement(MarkdownPreview, {
|
|
@@ -635,7 +664,7 @@ export var LOADING_FLAT = '...';
|
|
|
635
664
|
docListNode: docInfoDom,
|
|
636
665
|
extra: isExtraNull ? null : extra,
|
|
637
666
|
htmlRef: props.bubbleListRef,
|
|
638
|
-
content: ((_props_originData8 = props.originData) === null || _props_originData8 === void 0 ? void 0 : _props_originData8.isFinished) ? (
|
|
667
|
+
content: ((_props_originData8 = props.originData) === null || _props_originData8 === void 0 ? void 0 : _props_originData8.isFinished) && (props === null || props === void 0 ? void 0 : (_props_originData9 = props.originData) === null || _props_originData9 === void 0 ? void 0 : (_props_originData_extra4 = _props_originData9.extra) === null || _props_originData_extra4 === void 0 ? void 0 : _props_originData_extra4.answerStatus) === 'EXCEPTION' ? ((_props_originData10 = props.originData) === null || _props_originData10 === void 0 ? void 0 : _props_originData10.content) || (locale === null || locale === void 0 ? void 0 : locale['chat.message.generateFailed']) || '生成回答失败,请重试' : ((_props_originData11 = props.originData) === null || _props_originData11 === void 0 ? void 0 : _props_originData11.content) || '',
|
|
639
668
|
originData: props.originData
|
|
640
669
|
}));
|
|
641
670
|
}, [
|
|
@@ -51,35 +51,59 @@ function _object_spread_props(target, source) {
|
|
|
51
51
|
return target;
|
|
52
52
|
}
|
|
53
53
|
import { useEditorStyleRegister } from "../../Hooks/useStyle";
|
|
54
|
+
var THINKING_DOT_SIZE = 4;
|
|
55
|
+
var THINKING_DOT_GAP = 4;
|
|
56
|
+
var THINKING_DOT_ANIMATION = 'agenticBubbleThinkingDotPulse';
|
|
57
|
+
var THINKING_DOT_ANIMATION_DURATION = '1.2s';
|
|
58
|
+
var THINKING_LOADING_PADDING = {
|
|
59
|
+
paddingLeft: 'var(--padding-5x)',
|
|
60
|
+
paddingRight: 'var(--padding-5x)',
|
|
61
|
+
paddingTop: 'var(--padding-1x)',
|
|
62
|
+
paddingBottom: 'var(--padding-2x)'
|
|
63
|
+
};
|
|
54
64
|
var genStyle = function genStyle(token) {
|
|
55
|
-
var _obj;
|
|
56
|
-
return
|
|
57
|
-
_define_property(
|
|
65
|
+
var _obj, _obj1;
|
|
66
|
+
return _obj1 = {}, // 加载状态容器(compact模式)
|
|
67
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-loading"), _object_spread_props(_object_spread({
|
|
58
68
|
lineHeight: '24px',
|
|
59
69
|
display: 'flex',
|
|
60
70
|
alignItems: 'center',
|
|
61
|
-
gap: 'var(--padding-2x)'
|
|
62
|
-
|
|
63
|
-
'
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
'
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}),
|
|
70
|
-
|
|
71
|
+
gap: 'var(--padding-2x)'
|
|
72
|
+
}, THINKING_LOADING_PADDING), (_obj = {
|
|
73
|
+
color: 'rgb(102, 111, 141)'
|
|
74
|
+
}, _define_property(_obj, "&-dots", {
|
|
75
|
+
display: 'inline-flex',
|
|
76
|
+
alignItems: 'center',
|
|
77
|
+
gap: THINKING_DOT_GAP,
|
|
78
|
+
lineHeight: 1
|
|
79
|
+
}), _define_property(_obj, "&-dot", {
|
|
80
|
+
width: THINKING_DOT_SIZE,
|
|
81
|
+
height: THINKING_DOT_SIZE,
|
|
82
|
+
borderRadius: '50%',
|
|
83
|
+
backgroundColor: 'currentColor',
|
|
84
|
+
opacity: 0.35,
|
|
85
|
+
animationName: THINKING_DOT_ANIMATION,
|
|
86
|
+
animationDuration: THINKING_DOT_ANIMATION_DURATION,
|
|
87
|
+
animationTimingFunction: 'ease-in-out',
|
|
88
|
+
animationIterationCount: 'infinite'
|
|
89
|
+
}), _define_property(_obj, "&-dot:nth-of-type(2)", {
|
|
90
|
+
animationDelay: '0.2s'
|
|
91
|
+
}), _define_property(_obj, "&-dot:nth-of-type(3)", {
|
|
92
|
+
animationDelay: '0.4s'
|
|
93
|
+
}), _define_property(_obj, '&-compact', _object_spread({}, THINKING_LOADING_PADDING)), _define_property(_obj, '&-default', _object_spread({}, THINKING_LOADING_PADDING)), _obj))), // 消息内容容器
|
|
94
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-message"), {
|
|
71
95
|
lineHeight: '24px'
|
|
72
96
|
}), // 用户消息文本颜色
|
|
73
|
-
_define_property(
|
|
97
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-user-text"), {
|
|
74
98
|
color: '#343A45'
|
|
75
99
|
}), // Popover 标题容器
|
|
76
|
-
_define_property(
|
|
100
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-popover-title"), {
|
|
77
101
|
display: 'flex',
|
|
78
102
|
justifyContent: 'space-between',
|
|
79
103
|
alignItems: 'center',
|
|
80
104
|
fontSize: '1em'
|
|
81
105
|
}), // Popover 内容容器
|
|
82
|
-
_define_property(
|
|
106
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-popover-content"), {
|
|
83
107
|
width: 400,
|
|
84
108
|
display: 'flex',
|
|
85
109
|
maxHeight: 400,
|
|
@@ -87,17 +111,17 @@ var genStyle = function genStyle(token) {
|
|
|
87
111
|
flexDirection: 'column',
|
|
88
112
|
gap: 'var(--padding-3x)'
|
|
89
113
|
}), // MarkdownEditor 容器样式
|
|
90
|
-
_define_property(
|
|
114
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-markdown-editor"), {
|
|
91
115
|
padding: 0,
|
|
92
116
|
width: '100%'
|
|
93
117
|
}), // 重新生成按钮容器
|
|
94
|
-
_define_property(
|
|
118
|
+
_define_property(_obj1, "div[data-messages-content-retry]", {
|
|
95
119
|
gap: 4,
|
|
96
120
|
display: 'flex',
|
|
97
121
|
cursor: 'pointer',
|
|
98
122
|
alignItems: 'center'
|
|
99
123
|
}), // 文档标签容器
|
|
100
|
-
_define_property(
|
|
124
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-doc-tag"), {
|
|
101
125
|
borderRadius: 'var(--padding-5x)',
|
|
102
126
|
opacity: 1,
|
|
103
127
|
display: 'flex',
|
|
@@ -110,16 +134,25 @@ var genStyle = function genStyle(token) {
|
|
|
110
134
|
cursor: 'pointer',
|
|
111
135
|
zIndex: 1
|
|
112
136
|
}), // 文档标签图标
|
|
113
|
-
_define_property(
|
|
137
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-doc-tag-icon"), {
|
|
114
138
|
width: 24
|
|
115
139
|
}), // 文档名称文本
|
|
116
|
-
_define_property(
|
|
140
|
+
_define_property(_obj1, "".concat(token.componentCls, "-messages-content-doc-name"), {
|
|
117
141
|
overflow: 'hidden',
|
|
118
142
|
textOverflow: 'ellipsis',
|
|
119
143
|
WebkitBoxOrient: 'vertical',
|
|
120
144
|
WebkitLineClamp: 2,
|
|
121
145
|
display: '-webkit-box'
|
|
122
|
-
}),
|
|
146
|
+
}), _define_property(_obj1, "@keyframes ".concat(THINKING_DOT_ANIMATION), {
|
|
147
|
+
'0%, 80%, 100%': {
|
|
148
|
+
transform: 'scale(0.6)',
|
|
149
|
+
opacity: 0.35
|
|
150
|
+
},
|
|
151
|
+
'40%': {
|
|
152
|
+
transform: 'scale(1)',
|
|
153
|
+
opacity: 1
|
|
154
|
+
}
|
|
155
|
+
}), _obj1;
|
|
123
156
|
};
|
|
124
157
|
export function useMessagesContentStyle(componentCls) {
|
|
125
158
|
return useEditorStyleRegister('BubbleMessageDisplay', function(token) {
|
package/dist/Bubble/type.d.ts
CHANGED
|
@@ -304,6 +304,10 @@ export interface BubbleProps<T = Record<string, any>> extends BubbleItemStylePro
|
|
|
304
304
|
* 等效于 markdownRenderConfig={{ renderMode }}
|
|
305
305
|
*/
|
|
306
306
|
renderMode?: 'slate' | 'markdown';
|
|
307
|
+
/**
|
|
308
|
+
* 与 `renderMode` 等价,兼容部分协议字段(如 `renderType=markdown`)
|
|
309
|
+
*/
|
|
310
|
+
renderType?: 'slate' | 'markdown';
|
|
307
311
|
/**
|
|
308
312
|
* 自定义配置
|
|
309
313
|
*/
|
package/dist/I18n/locales.js
CHANGED
|
@@ -212,7 +212,7 @@
|
|
|
212
212
|
'workspace.file.linkCopied': '已复制链接',
|
|
213
213
|
'workspace.file.copyFailed': '复制失败',
|
|
214
214
|
// MarkdownInputField 组件相关
|
|
215
|
-
'markdownInput.fileSizeExceeded': '
|
|
215
|
+
'markdownInput.fileSizeExceeded': '超过 ${maxSize} KB',
|
|
216
216
|
'markdownInput.maxFileCountExceeded': '最多只能上传 ${maxFileCount} 个文件',
|
|
217
217
|
'markdownInput.minFileCountRequired': '至少需要上传 ${minFileCount} 个文件',
|
|
218
218
|
// 文档信息相关
|
|
@@ -634,7 +634,7 @@
|
|
|
634
634
|
'workspace.file.linkCopied': 'Link copied',
|
|
635
635
|
'workspace.file.copyFailed': 'Copy failed',
|
|
636
636
|
// MarkdownInputField component related
|
|
637
|
-
'markdownInput.fileSizeExceeded': '
|
|
637
|
+
'markdownInput.fileSizeExceeded': 'Exceeds ${maxSize} KB',
|
|
638
638
|
'markdownInput.maxFileCountExceeded': 'Maximum ${maxFileCount} files allowed',
|
|
639
639
|
'markdownInput.minFileCountRequired': 'At least ${minFileCount} files required',
|
|
640
640
|
// Document info related
|
|
@@ -156,6 +156,7 @@ import { createEditor } from "slate";
|
|
|
156
156
|
import { withHistory } from "slate-history";
|
|
157
157
|
import { withReact } from "slate-react";
|
|
158
158
|
import { I18nContext, I18nProvide } from "../I18n";
|
|
159
|
+
import { MarkdownRenderer } from "../MarkdownRenderer";
|
|
159
160
|
import { CommentList } from "./editor/components/CommentList";
|
|
160
161
|
import { SlateMarkdownEditor } from "./editor/Editor";
|
|
161
162
|
import { parserMdToSchema } from "./editor/parser/parserMdToSchema";
|
|
@@ -248,11 +249,11 @@ var I18nBoundary = function I18nBoundary(param) {
|
|
|
248
249
|
* - 支持键盘事件处理
|
|
249
250
|
* - 提供Markdown解析和渲染
|
|
250
251
|
*/ export var BaseMarkdownEditor = function BaseMarkdownEditor(props) {
|
|
251
|
-
var _props_typewriter, _props_readonly;
|
|
252
|
+
var _ref, _props_typewriter, _props_readonly;
|
|
252
253
|
var _props_jinja, _effectiveJinja_templatePanel, _props_floatBar, _props_floatBar1, _props_textAreaProps;
|
|
253
254
|
var initValue = props.initValue, width = props.width, _props_toolBar = props.toolBar, toolBar = _props_toolBar === void 0 ? {} : _props_toolBar, editorRef = props.editorRef, _props_toc = props.toc, toc = _props_toc === void 0 ? false : _props_toc, readonly = props.readonly, lazy = props.lazy, style = props.style, _props_contentStyle = props.contentStyle, contentStyle = _props_contentStyle === void 0 ? {
|
|
254
255
|
height: '100%'
|
|
255
|
-
} : _props_contentStyle, editorStyle = props.editorStyle, height = props.height, children = props.children, rest = _object_without_properties(props, [
|
|
256
|
+
} : _props_contentStyle, editorStyle = props.editorStyle, height = props.height, children = props.children, renderMode = props.renderMode, renderType = props.renderType, rest = _object_without_properties(props, [
|
|
256
257
|
"initValue",
|
|
257
258
|
"width",
|
|
258
259
|
"toolBar",
|
|
@@ -264,8 +265,11 @@ var I18nBoundary = function I18nBoundary(param) {
|
|
|
264
265
|
"contentStyle",
|
|
265
266
|
"editorStyle",
|
|
266
267
|
"height",
|
|
267
|
-
"children"
|
|
268
|
+
"children",
|
|
269
|
+
"renderMode",
|
|
270
|
+
"renderType"
|
|
268
271
|
]);
|
|
272
|
+
var effectiveRenderMode = (_ref = renderMode !== null && renderMode !== void 0 ? renderMode : renderType) !== null && _ref !== void 0 ? _ref : 'slate';
|
|
269
273
|
// 是否挂载
|
|
270
274
|
var _useState = _sliced_to_array(useState(false), 2), editorMountStatus = _useState[0], setMountedStatus = _useState[1];
|
|
271
275
|
var _useState1 = _sliced_to_array(useState(false), 2), isEditorFocused = _useState1[0], setIsEditorFocused = _useState1[1];
|
|
@@ -412,7 +416,35 @@ var I18nBoundary = function I18nBoundary(param) {
|
|
|
412
416
|
var jinjaTemplatePanelEnabled = jinjaEnabled && effectiveJinja !== undefined && effectiveJinja !== null && effectiveJinja.templatePanel !== false && (_type_of(effectiveJinja.templatePanel) !== 'object' || ((_effectiveJinja_templatePanel = effectiveJinja.templatePanel) === null || _effectiveJinja_templatePanel === void 0 ? void 0 : _effectiveJinja_templatePanel.enable) !== false);
|
|
413
417
|
var _useState7 = _sliced_to_array(useState(false), 2), openJinjaTemplate = _useState7[0], setOpenJinjaTemplate = _useState7[1];
|
|
414
418
|
var _useState8 = _sliced_to_array(useState(null), 2), jinjaAnchorPath = _useState8[0], setJinjaAnchorPath = _useState8[1];
|
|
415
|
-
|
|
419
|
+
if (readonly && effectiveRenderMode === 'markdown') {
|
|
420
|
+
var _props_typewriter1;
|
|
421
|
+
var _obj;
|
|
422
|
+
return wrapSSR(/*#__PURE__*/ React.createElement(I18nBoundary, null, /*#__PURE__*/ React.createElement(PluginContext.Provider, {
|
|
423
|
+
value: props.plugins || []
|
|
424
|
+
}, /*#__PURE__*/ React.createElement("div", {
|
|
425
|
+
id: props.id ? String(props.id) || undefined : undefined,
|
|
426
|
+
className: classNames(baseClassName, 'markdown-editor', hashId, props.className, (_obj = {}, _define_property(_obj, "".concat(baseClassName, "-readonly"), true), _define_property(_obj, "".concat(baseClassName, "-report"), props.reportMode), _define_property(_obj, "".concat(baseClassName, "-slide"), props.slideMode), _obj)),
|
|
427
|
+
style: _object_spread({
|
|
428
|
+
width: width || '100%',
|
|
429
|
+
height: height || 'auto'
|
|
430
|
+
}, style),
|
|
431
|
+
ref: markdownContainerRef
|
|
432
|
+
}, /*#__PURE__*/ React.createElement(MarkdownRenderer, {
|
|
433
|
+
content: initValue || '',
|
|
434
|
+
streaming: (_props_typewriter1 = props.typewriter) !== null && _props_typewriter1 !== void 0 ? _props_typewriter1 : false,
|
|
435
|
+
plugins: props.plugins,
|
|
436
|
+
remarkPlugins: props.markdownToHtmlOptions,
|
|
437
|
+
codeProps: props.codeProps,
|
|
438
|
+
apaasify: props.apaasify,
|
|
439
|
+
style: _object_spread({
|
|
440
|
+
height: '100%'
|
|
441
|
+
}, contentStyle),
|
|
442
|
+
prefixCls: baseClassName,
|
|
443
|
+
fncProps: props.fncProps,
|
|
444
|
+
linkConfig: props.linkConfig
|
|
445
|
+
}), children))));
|
|
446
|
+
}
|
|
447
|
+
var _obj1;
|
|
416
448
|
return wrapSSR(/*#__PURE__*/ React.createElement(I18nBoundary, null, /*#__PURE__*/ React.createElement(PluginContext.Provider, {
|
|
417
449
|
value: props.plugins || []
|
|
418
450
|
}, /*#__PURE__*/ React.createElement(EditorStoreContext.Provider, {
|
|
@@ -445,7 +477,7 @@ var I18nBoundary = function I18nBoundary(param) {
|
|
|
445
477
|
}
|
|
446
478
|
}, /*#__PURE__*/ React.createElement("div", {
|
|
447
479
|
id: props.id ? String(props.id) || undefined : undefined,
|
|
448
|
-
className: classNames(baseClassName, 'markdown-editor', hashId, props.className, (
|
|
480
|
+
className: classNames(baseClassName, 'markdown-editor', hashId, props.className, (_obj1 = {}, _define_property(_obj1, "".concat(baseClassName, "-readonly"), readonly), _define_property(_obj1, "".concat(baseClassName, "-edit"), !readonly), _define_property(_obj1, "".concat(baseClassName, "-report"), props.reportMode), _define_property(_obj1, "".concat(baseClassName, "-slide"), props.slideMode), _obj1)),
|
|
449
481
|
style: _object_spread({
|
|
450
482
|
width: width || '100%',
|
|
451
483
|
height: height || 'auto'
|
|
@@ -0,0 +1,74 @@
|
|
|
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 ownKeys(object, enumerableOnly) {
|
|
30
|
+
var keys = Object.keys(object);
|
|
31
|
+
if (Object.getOwnPropertySymbols) {
|
|
32
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
33
|
+
if (enumerableOnly) {
|
|
34
|
+
symbols = symbols.filter(function(sym) {
|
|
35
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
keys.push.apply(keys, symbols);
|
|
39
|
+
}
|
|
40
|
+
return keys;
|
|
41
|
+
}
|
|
42
|
+
function _object_spread_props(target, source) {
|
|
43
|
+
source = source != null ? source : {};
|
|
44
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
45
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
46
|
+
} else {
|
|
47
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
48
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return target;
|
|
52
|
+
}
|
|
53
|
+
import React from "react";
|
|
54
|
+
import { TaskList } from "../../../../TaskList";
|
|
55
|
+
import { normalizeTaskListPropsFromJson } from "./agenticUiEmbedUtils";
|
|
56
|
+
export var AgenticUiTaskBlock = function AgenticUiTaskBlock(param) {
|
|
57
|
+
var attributes = param.attributes, children = param.children, element = param.element;
|
|
58
|
+
var listProps = normalizeTaskListPropsFromJson(element.value);
|
|
59
|
+
return /*#__PURE__*/ React.createElement("div", _object_spread_props(_object_spread({}, attributes), {
|
|
60
|
+
contentEditable: false,
|
|
61
|
+
"data-testid": "agentic-ui-task-block",
|
|
62
|
+
style: {
|
|
63
|
+
margin: '0.75em 0'
|
|
64
|
+
}
|
|
65
|
+
}), /*#__PURE__*/ React.createElement(TaskList, listProps), /*#__PURE__*/ React.createElement("span", {
|
|
66
|
+
"data-testid": "agentic-ui-task-hidden-children",
|
|
67
|
+
style: {
|
|
68
|
+
display: 'none'
|
|
69
|
+
}
|
|
70
|
+
}, children));
|
|
71
|
+
};
|
|
72
|
+
AgenticUiTaskBlock.displayName = 'AgenticUiTaskBlock';
|
|
73
|
+
export var ReadonlyAgenticUiTaskBlock = /*#__PURE__*/ React.memo(AgenticUiTaskBlock);
|
|
74
|
+
ReadonlyAgenticUiTaskBlock.displayName = 'ReadonlyAgenticUiTaskBlock';
|