@ant-design/agentic-ui 2.31.3 → 2.31.4
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/AILabel/style.js +3 -3
- package/dist/AgenticLayout/style.js +1 -1
- package/dist/AnswerAlert/style.js +2 -2
- package/dist/Bubble/MessagesContent/VoiceButton/style.js +1 -1
- package/dist/Bubble/MessagesContent/style.js +2 -2
- package/dist/Components/ActionIconBox/style.js +3 -3
- package/dist/Components/ActionItemBox/style.js +16 -16
- package/dist/Components/Button/IconButton/style.js +33 -33
- package/dist/Components/Button/ToggleButton/style.js +33 -33
- package/dist/Components/Loading/style.js +5 -5
- package/dist/Components/VisualList/style.js +5 -5
- package/dist/Components/lotties/TextLoading/style.js +2 -2
- package/dist/MarkdownEditor/editor/components/CommentList/style.js +3 -3
- package/dist/MarkdownEditor/editor/parser/parse/parseTable.js +2 -1
- package/dist/MarkdownEditor/editor/style.js +4 -4
- package/dist/MarkdownEditor/editor/utils/markdownToHtml.js +2 -1
- package/dist/MarkdownEditor/style.js +26 -26
- package/dist/MarkdownInputField/AttachmentButton/AttachmentFileList/style.js +1 -1
- package/dist/MarkdownInputField/AttachmentButton/style.js +5 -5
- package/dist/MarkdownInputField/FileMapView/style.js +2 -2
- package/dist/MarkdownInputField/style.js +6 -6
- package/dist/MarkdownInputField/types/MarkdownInputFieldProps.d.ts +10 -0
- package/dist/MarkdownRenderer/markdownReactShared.js +2 -1
- package/dist/MarkdownRenderer/renderers/CodeRenderer.js +8 -14
- package/dist/Plugins/chart/ChartStatistic/style.js +9 -9
- package/dist/Plugins/chart/DonutChart/style.js +3 -3
- package/dist/Plugins/chart/components/ChartContainer/style.js +3 -3
- package/dist/Plugins/chart/components/ChartFilter/style.js +22 -22
- package/dist/Plugins/chart/components/ChartToolBar/style.js +4 -4
- package/dist/Plugins/code/components/CodeRenderer.js +6 -5
- package/dist/Plugins/code/components/CodeToolbar.d.ts +0 -1
- package/dist/Plugins/code/components/CodeToolbar.js +6 -12
- package/dist/Schema/SchemaEditor/style.js +26 -26
- package/dist/ThoughtChainList/style.js +5 -5
- package/dist/ToolUseBar/style.js +8 -8
- package/dist/ToolUseBarThink/style.js +1 -1
- package/dist/Utils/rehypeSanitizeUserHtml.d.ts +11 -0
- package/dist/Utils/rehypeSanitizeUserHtml.js +182 -0
- package/dist/Workspace/RealtimeFollow/style.js +11 -11
- package/package.json +1 -1
|
@@ -0,0 +1,182 @@
|
|
|
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_without_holes(arr) {
|
|
7
|
+
if (Array.isArray(arr)) return _array_like_to_array(arr);
|
|
8
|
+
}
|
|
9
|
+
function _iterable_to_array(iter) {
|
|
10
|
+
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
|
|
11
|
+
}
|
|
12
|
+
function _non_iterable_spread() {
|
|
13
|
+
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
14
|
+
}
|
|
15
|
+
function _to_consumable_array(arr) {
|
|
16
|
+
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
|
|
17
|
+
}
|
|
18
|
+
function _unsupported_iterable_to_array(o, minLen) {
|
|
19
|
+
if (!o) return;
|
|
20
|
+
if (typeof o === "string") return _array_like_to_array(o, minLen);
|
|
21
|
+
var n = Object.prototype.toString.call(o).slice(8, -1);
|
|
22
|
+
if (n === "Object" && o.constructor) n = o.constructor.name;
|
|
23
|
+
if (n === "Map" || n === "Set") return Array.from(n);
|
|
24
|
+
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* rehype 插件:清理用户输入中的危险 HTML,防止页面布局错乱和 XSS 攻击。
|
|
28
|
+
*
|
|
29
|
+
* 在 rehypeRaw 之后使用,对 hast 树执行:
|
|
30
|
+
* 1. 移除 doctype 声明
|
|
31
|
+
* 2. 完全移除危险元素(script、style 等)及其子节点
|
|
32
|
+
* 3. 解包结构性元素(html、head、body 等),保留子节点
|
|
33
|
+
* 4. 保留 GFM 任务列表的 input[type=checkbox],移除其他 input
|
|
34
|
+
* 5. 清理所有元素的危险属性(on* 事件、javascript: URL)
|
|
35
|
+
*/ /** 应完全移除(含子节点)的危险 HTML 标签 */ var STRIP_ELEMENTS = new Set([
|
|
36
|
+
'script',
|
|
37
|
+
'noscript',
|
|
38
|
+
'style',
|
|
39
|
+
'meta',
|
|
40
|
+
'title',
|
|
41
|
+
'link',
|
|
42
|
+
'base',
|
|
43
|
+
'object',
|
|
44
|
+
'embed',
|
|
45
|
+
'applet',
|
|
46
|
+
'frame',
|
|
47
|
+
'frameset'
|
|
48
|
+
]);
|
|
49
|
+
/** 应解包(移除标签但保留子节点)的结构性/表单 HTML 标签 */ var UNWRAP_ELEMENTS = new Set([
|
|
50
|
+
'html',
|
|
51
|
+
'head',
|
|
52
|
+
'body',
|
|
53
|
+
'form',
|
|
54
|
+
'button',
|
|
55
|
+
'select',
|
|
56
|
+
'textarea',
|
|
57
|
+
'option',
|
|
58
|
+
'optgroup',
|
|
59
|
+
'fieldset',
|
|
60
|
+
'legend'
|
|
61
|
+
]);
|
|
62
|
+
var DANGEROUS_URL_SCHEMES = [
|
|
63
|
+
'javascript:',
|
|
64
|
+
'vbscript:'
|
|
65
|
+
];
|
|
66
|
+
var sanitizeElementProperties = function sanitizeElementProperties(properties) {
|
|
67
|
+
if (!properties) return;
|
|
68
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
69
|
+
try {
|
|
70
|
+
var _loop = function() {
|
|
71
|
+
var key = _step.value;
|
|
72
|
+
if (key.startsWith('on')) {
|
|
73
|
+
delete properties[key];
|
|
74
|
+
return "continue";
|
|
75
|
+
}
|
|
76
|
+
var value = properties[key];
|
|
77
|
+
if (typeof value === 'string') {
|
|
78
|
+
var lower = value.toLowerCase().trimStart();
|
|
79
|
+
if (DANGEROUS_URL_SCHEMES.some(function(s) {
|
|
80
|
+
return lower.startsWith(s);
|
|
81
|
+
})) {
|
|
82
|
+
delete properties[key];
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
for(var _iterator = Object.keys(properties)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
|
|
87
|
+
} catch (err) {
|
|
88
|
+
_didIteratorError = true;
|
|
89
|
+
_iteratorError = err;
|
|
90
|
+
} finally{
|
|
91
|
+
try {
|
|
92
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
93
|
+
_iterator.return();
|
|
94
|
+
}
|
|
95
|
+
} finally{
|
|
96
|
+
if (_didIteratorError) {
|
|
97
|
+
throw _iteratorError;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
/** 判断 input 元素是否为 GFM 任务列表 checkbox,应予保留 */ var isTaskListCheckbox = function isTaskListCheckbox(node) {
|
|
103
|
+
var _node_properties;
|
|
104
|
+
return ((_node_properties = node.properties) === null || _node_properties === void 0 ? void 0 : _node_properties.type) === 'checkbox';
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* 递归清理 hast 节点。
|
|
108
|
+
* @returns null = 移除节点 | 数组 = 解包子节点 | 节点对象 = 保留
|
|
109
|
+
*/ var sanitizeHastNode = function sanitizeHastNode1(node) {
|
|
110
|
+
if (node.type === 'doctype') return null;
|
|
111
|
+
if (node.type === 'element') {
|
|
112
|
+
if (STRIP_ELEMENTS.has(node.tagName)) return null;
|
|
113
|
+
// input: 保留 GFM 任务列表 checkbox,移除其他 input
|
|
114
|
+
if (node.tagName === 'input' && !isTaskListCheckbox(node)) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
sanitizeElementProperties(node.properties);
|
|
118
|
+
if (UNWRAP_ELEMENTS.has(node.tagName)) {
|
|
119
|
+
var kept = [];
|
|
120
|
+
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
|
|
121
|
+
try {
|
|
122
|
+
for(var _iterator = (node.children || [])[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
|
|
123
|
+
var child = _step.value;
|
|
124
|
+
var _kept;
|
|
125
|
+
var result = sanitizeHastNode(child);
|
|
126
|
+
if (result === null) continue;
|
|
127
|
+
if (Array.isArray(result)) (_kept = kept).push.apply(_kept, _to_consumable_array(result));
|
|
128
|
+
else kept.push(result);
|
|
129
|
+
}
|
|
130
|
+
} catch (err) {
|
|
131
|
+
_didIteratorError = true;
|
|
132
|
+
_iteratorError = err;
|
|
133
|
+
} finally{
|
|
134
|
+
try {
|
|
135
|
+
if (!_iteratorNormalCompletion && _iterator.return != null) {
|
|
136
|
+
_iterator.return();
|
|
137
|
+
}
|
|
138
|
+
} finally{
|
|
139
|
+
if (_didIteratorError) {
|
|
140
|
+
throw _iteratorError;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return kept.length > 0 ? kept : null;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (node.children) {
|
|
148
|
+
var newChildren = [];
|
|
149
|
+
var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
|
|
150
|
+
try {
|
|
151
|
+
for(var _iterator1 = node.children[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
|
|
152
|
+
var child1 = _step1.value;
|
|
153
|
+
var _newChildren;
|
|
154
|
+
var result1 = sanitizeHastNode(child1);
|
|
155
|
+
if (result1 === null) continue;
|
|
156
|
+
if (Array.isArray(result1)) (_newChildren = newChildren).push.apply(_newChildren, _to_consumable_array(result1));
|
|
157
|
+
else newChildren.push(result1);
|
|
158
|
+
}
|
|
159
|
+
} catch (err) {
|
|
160
|
+
_didIteratorError1 = true;
|
|
161
|
+
_iteratorError1 = err;
|
|
162
|
+
} finally{
|
|
163
|
+
try {
|
|
164
|
+
if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
|
|
165
|
+
_iterator1.return();
|
|
166
|
+
}
|
|
167
|
+
} finally{
|
|
168
|
+
if (_didIteratorError1) {
|
|
169
|
+
throw _iteratorError1;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
node.children = newChildren;
|
|
174
|
+
}
|
|
175
|
+
return node;
|
|
176
|
+
};
|
|
177
|
+
export var rehypeSanitizeUserHtml = function rehypeSanitizeUserHtml() {
|
|
178
|
+
return function(tree) {
|
|
179
|
+
sanitizeHastNode(tree);
|
|
180
|
+
return tree;
|
|
181
|
+
};
|
|
182
|
+
};
|
|
@@ -75,12 +75,12 @@ var genStyle = function genStyle(token) {
|
|
|
75
75
|
border: 'none',
|
|
76
76
|
background: 'none',
|
|
77
77
|
cursor: 'pointer',
|
|
78
|
-
color: '
|
|
78
|
+
color: 'var(--color-gray-text-secondary)',
|
|
79
79
|
transition: 'all 0.2s cubic-bezier(0.645, 0.045, 0.355, 1)',
|
|
80
80
|
borderRadius: 'var(--radius-control-base)',
|
|
81
81
|
backdropFilter: 'blur(20px)',
|
|
82
82
|
'&:hover': {
|
|
83
|
-
background: '
|
|
83
|
+
background: 'var(--color-gray-control-fill-active)'
|
|
84
84
|
}
|
|
85
85
|
}), // 返回图标
|
|
86
86
|
_define_property(_obj3, "&-back-icon", {
|
|
@@ -111,17 +111,17 @@ var genStyle = function genStyle(token) {
|
|
|
111
111
|
}, _define_property(_obj1, "&--html", {
|
|
112
112
|
width: '40px',
|
|
113
113
|
height: '40px',
|
|
114
|
-
color: '
|
|
114
|
+
color: 'var(--color-blue-text-default)',
|
|
115
115
|
background: 'linear-gradient(180deg, rgba(0, 181, 253, 0.15), rgba(0, 181, 253, 0.08))'
|
|
116
116
|
}), _define_property(_obj1, "&--md", {
|
|
117
117
|
width: '40px',
|
|
118
118
|
height: '40px',
|
|
119
|
-
color: '
|
|
119
|
+
color: 'var(--color-orange-text-default)',
|
|
120
120
|
background: 'linear-gradient(180deg, rgba(35, 214, 220, 0.15), rgba(35, 214, 220, 0.08))'
|
|
121
121
|
}), _define_property(_obj1, "&--default", {
|
|
122
122
|
width: '40px',
|
|
123
123
|
height: '40px',
|
|
124
|
-
background: 'linear-gradient(180deg,
|
|
124
|
+
background: 'linear-gradient(180deg, var(--color-gray-bg-page-light), var(--color-gray-bg-page))'
|
|
125
125
|
}), _obj1)), _define_property(_obj3, "&-content", {
|
|
126
126
|
display: 'flex',
|
|
127
127
|
alignItems: 'center',
|
|
@@ -202,20 +202,20 @@ var genStyle = function genStyle(token) {
|
|
|
202
202
|
background: 'transparent'
|
|
203
203
|
},
|
|
204
204
|
'.ace-tm .ace_gutter-active-line': {
|
|
205
|
-
color: '
|
|
205
|
+
color: 'var(--color-gray-bg-card-white)',
|
|
206
206
|
background: 'transparent'
|
|
207
207
|
},
|
|
208
208
|
'.ace-tm .ace_comment': {
|
|
209
209
|
color: 'rgba(255, 255, 255, 0.27)'
|
|
210
210
|
},
|
|
211
211
|
'.ace-tm .ace_keyword': {
|
|
212
|
-
color: '
|
|
212
|
+
color: 'var(--color-sub5-text-default)'
|
|
213
213
|
},
|
|
214
214
|
'.ace_identifier, .ace_paren': {
|
|
215
|
-
color: '
|
|
215
|
+
color: 'var(--color-gray-bg-card-white)'
|
|
216
216
|
},
|
|
217
217
|
'.ace-tm .ace_constant.ace_numeric': {
|
|
218
|
-
color: '
|
|
218
|
+
color: 'var(--color-green-text-default)'
|
|
219
219
|
},
|
|
220
220
|
'.code-editor-container': {
|
|
221
221
|
marginTop: 0,
|
|
@@ -230,7 +230,7 @@ var genStyle = function genStyle(token) {
|
|
|
230
230
|
background: 'transparent'
|
|
231
231
|
}
|
|
232
232
|
}, "".concat(token.antCls, "-empty-description"), {
|
|
233
|
-
color: '
|
|
233
|
+
color: 'var(--color-gray-text-light)'
|
|
234
234
|
})), _obj4)), _define_property(_obj7, "&--markdown", _define_property({}, "".concat(token.antCls, '-agentic-md-editor-content div[data-be="paragraph"]:last-child'), {
|
|
235
235
|
paddingBottom: '16px',
|
|
236
236
|
color: 'var(--color-gray-text-light)',
|
|
@@ -298,7 +298,7 @@ var genStyle = function genStyle(token) {
|
|
|
298
298
|
background: 'rgba(255, 255, 255, 0.6)'
|
|
299
299
|
}), _define_property(_obj6, "&--error", {
|
|
300
300
|
background: 'rgba(255, 245, 245, 0.6)',
|
|
301
|
-
color: '
|
|
301
|
+
color: 'var(--color-red-text-default)'
|
|
302
302
|
}), _obj6)), _define_property(_obj7, "&-empty", {
|
|
303
303
|
display: 'flex',
|
|
304
304
|
alignItems: 'center',
|