@ai-group/chat-sdk 3.7.1-alpha1 → 3.7.1-alpha3

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 (72) hide show
  1. package/dist/cjs/components/FileGallery/index.js +59 -40
  2. package/dist/cjs/components/FileGallery/index.js.map +2 -2
  3. package/dist/cjs/components/FileGallery/styles.d.ts +7 -0
  4. package/dist/cjs/components/FileGallery/styles.js +58 -0
  5. package/dist/cjs/components/FileGallery/styles.js.map +2 -2
  6. package/dist/cjs/components/Sources/components/CarouselCard.d.ts +12 -0
  7. package/dist/cjs/components/Sources/components/CarouselCard.js +130 -0
  8. package/dist/cjs/components/Sources/components/CarouselCard.js.map +7 -0
  9. package/dist/cjs/components/Sources/index.d.ts +5 -0
  10. package/dist/cjs/components/Sources/index.js +162 -0
  11. package/dist/cjs/components/Sources/index.js.map +7 -0
  12. package/dist/cjs/components/Sources/styles.d.ts +59 -0
  13. package/dist/cjs/components/Sources/styles.js +179 -0
  14. package/dist/cjs/components/Sources/styles.js.map +7 -0
  15. package/dist/cjs/components/XAdkSender/InlineTagInput.d.ts +2 -1
  16. package/dist/cjs/components/XAdkSender/InlineTagInput.js +107 -50
  17. package/dist/cjs/components/XAdkSender/InlineTagInput.js.map +2 -2
  18. package/dist/cjs/components/XAdkSender/index.js +101 -34
  19. package/dist/cjs/components/XAdkSender/index.js.map +3 -3
  20. package/dist/cjs/components/XAdkSender/styles.d.ts +4 -0
  21. package/dist/cjs/components/XAdkSender/styles.js +34 -6
  22. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  23. package/dist/cjs/index.d.ts +3 -0
  24. package/dist/cjs/index.js +3 -0
  25. package/dist/cjs/index.js.map +3 -3
  26. package/dist/cjs/types/FileGallery.d.ts +3 -0
  27. package/dist/cjs/types/FileGallery.js.map +1 -1
  28. package/dist/cjs/types/Sources.d.ts +30 -0
  29. package/dist/cjs/types/Sources.js +18 -0
  30. package/dist/cjs/types/Sources.js.map +7 -0
  31. package/dist/cjs/types/XAdkSender.d.ts +52 -6
  32. package/dist/cjs/types/XAdkSender.js.map +1 -1
  33. package/dist/cjs/types/index.d.ts +1 -0
  34. package/dist/cjs/types/index.js +3 -1
  35. package/dist/cjs/types/index.js.map +2 -2
  36. package/dist/esm/components/FileGallery/index.js +22 -16
  37. package/dist/esm/components/FileGallery/index.js.map +1 -1
  38. package/dist/esm/components/FileGallery/styles.d.ts +7 -0
  39. package/dist/esm/components/FileGallery/styles.js +24 -17
  40. package/dist/esm/components/FileGallery/styles.js.map +1 -1
  41. package/dist/esm/components/Sources/components/CarouselCard.d.ts +12 -0
  42. package/dist/esm/components/Sources/components/CarouselCard.js +107 -0
  43. package/dist/esm/components/Sources/components/CarouselCard.js.map +1 -0
  44. package/dist/esm/components/Sources/index.d.ts +5 -0
  45. package/dist/esm/components/Sources/index.js +127 -0
  46. package/dist/esm/components/Sources/index.js.map +1 -0
  47. package/dist/esm/components/Sources/styles.d.ts +59 -0
  48. package/dist/esm/components/Sources/styles.js +34 -0
  49. package/dist/esm/components/Sources/styles.js.map +1 -0
  50. package/dist/esm/components/XAdkSender/InlineTagInput.d.ts +2 -1
  51. package/dist/esm/components/XAdkSender/InlineTagInput.js +110 -40
  52. package/dist/esm/components/XAdkSender/InlineTagInput.js.map +1 -1
  53. package/dist/esm/components/XAdkSender/index.js +129 -38
  54. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  55. package/dist/esm/components/XAdkSender/styles.d.ts +4 -0
  56. package/dist/esm/components/XAdkSender/styles.js +29 -25
  57. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  58. package/dist/esm/index.d.ts +3 -0
  59. package/dist/esm/index.js +3 -0
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/types/FileGallery.d.ts +3 -0
  62. package/dist/esm/types/FileGallery.js.map +1 -1
  63. package/dist/esm/types/Sources.d.ts +30 -0
  64. package/dist/esm/types/Sources.js +2 -0
  65. package/dist/esm/types/Sources.js.map +1 -0
  66. package/dist/esm/types/XAdkSender.d.ts +52 -6
  67. package/dist/esm/types/XAdkSender.js.map +1 -1
  68. package/dist/esm/types/index.d.ts +1 -0
  69. package/dist/esm/types/index.js +1 -0
  70. package/dist/esm/types/index.js.map +1 -1
  71. package/dist/umd/chat-sdk.min.js +1 -1
  72. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
- import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
2
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
3
  import _createForOfIteratorHelper from "@babel/runtime/helpers/esm/createForOfIteratorHelper";
4
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
5
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
6
6
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
7
7
  import React, { useState, useRef, useCallback, forwardRef, useImperativeHandle, useMemo, useEffect } from "react";
@@ -64,7 +64,11 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
64
64
  _ref$defaultTags = _ref.defaultTags,
65
65
  defaultTags = _ref$defaultTags === void 0 ? [] : _ref$defaultTags,
66
66
  onTagsChange = _ref.onTagsChange,
67
- onQuickKeyTrigger = _ref.onQuickKeyTrigger;
67
+ onQuickKeyTrigger = _ref.onQuickKeyTrigger,
68
+ _ref$submitFormat = _ref.submitFormat,
69
+ submitFormat = _ref$submitFormat === void 0 ? "text" : _ref$submitFormat,
70
+ formatTag = _ref.formatTag,
71
+ transformSubmitData = _ref.transformSubmitData;
68
72
  var styles = useStyles();
69
73
  var isControlled = controlledValue !== undefined;
70
74
  var _useState = useState(defaultValue),
@@ -133,6 +137,82 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
133
137
  var data = (_response$data = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data !== void 0 ? _response$data : response;
134
138
  return (_ref2 = Array.isArray(data) ? data[0] : data) !== null && _ref2 !== void 0 ? _ref2 : {};
135
139
  };
140
+ var escapeXml = function escapeXml(text) {
141
+ return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
142
+ };
143
+ var escapeMarkdownLabel = function escapeMarkdownLabel(text) {
144
+ return text.replace(/\\/g, "\\\\").replace(/\]/g, "\\]");
145
+ };
146
+ var getTagSubmitValue = function getTagSubmitValue(tag) {
147
+ var _ref3, _ref4, _ref5, _tag$value, _tag$data, _tag$data2;
148
+ return String((_ref3 = (_ref4 = (_ref5 = (_tag$value = tag.value) !== null && _tag$value !== void 0 ? _tag$value : (_tag$data = tag.data) === null || _tag$data === void 0 ? void 0 : _tag$data.value) !== null && _ref5 !== void 0 ? _ref5 : (_tag$data2 = tag.data) === null || _tag$data2 === void 0 ? void 0 : _tag$data2.name) !== null && _ref4 !== void 0 ? _ref4 : tag.label) !== null && _ref3 !== void 0 ? _ref3 : "");
149
+ };
150
+ var defaultFormatTag = function defaultFormatTag(tag, format, index) {
151
+ var value = getTagSubmitValue(tag);
152
+ if (format === "xml") {
153
+ return "<tag type=\"".concat(escapeXml(tag.type), "\" id=\"").concat(escapeXml(tag.id), "\" label=\"").concat(escapeXml(tag.label), "\" value=\"").concat(escapeXml(value), "\" />");
154
+ }
155
+ if (format === "markdown") {
156
+ return "[/".concat(escapeMarkdownLabel(tag.label), "](xadk-tag://").concat(encodeURIComponent(tag.type), "/").concat(encodeURIComponent(tag.id), ")");
157
+ }
158
+ return "/".concat(value || "tag-".concat(index + 1));
159
+ };
160
+ var serializeTag = function serializeTag(tag, format, index) {
161
+ var _formatTag;
162
+ return (_formatTag = formatTag === null || formatTag === void 0 ? void 0 : formatTag(tag, {
163
+ format: format,
164
+ index: index
165
+ })) !== null && _formatTag !== void 0 ? _formatTag : defaultFormatTag(tag, format, index);
166
+ };
167
+ var getSubmitParts = useCallback(function () {
168
+ if (inlineTags) {
169
+ var _inlineInputRef$curre;
170
+ var parts = ((_inlineInputRef$curre = inlineInputRef.current) === null || _inlineInputRef$curre === void 0 ? void 0 : _inlineInputRef$curre.getParts()) || [];
171
+ if (parts.length > 0) return parts;
172
+ }
173
+ var textParts = value ? [{
174
+ type: "text",
175
+ text: value
176
+ }] : [];
177
+ var tagParts = tags.map(function (tag) {
178
+ return {
179
+ type: "tag",
180
+ tag: tag
181
+ };
182
+ });
183
+ return [].concat(_toConsumableArray(tagParts), textParts);
184
+ }, [inlineTags, tags, value]);
185
+ var serializeParts = function serializeParts(parts, format) {
186
+ if (format === "structured") {
187
+ return parts.reduce(function (content, part) {
188
+ return content + (part.type === "text" ? part.text : "");
189
+ }, "");
190
+ }
191
+ var tagIndex = 0;
192
+ return parts.map(function (part) {
193
+ if (part.type === "text") return part.text;
194
+ var result = serializeTag(part.tag, format, tagIndex);
195
+ tagIndex += 1;
196
+ return result;
197
+ }).join("");
198
+ };
199
+ var createSubmitData = function createSubmitData(formattedFiles) {
200
+ var parts = getSubmitParts();
201
+ var rawText = parts.reduce(function (content, part) {
202
+ return content + (part.type === "text" ? part.text : "");
203
+ }, "");
204
+ var standardData = {
205
+ text: serializeParts(parts, submitFormat),
206
+ rawText: rawText,
207
+ format: submitFormat,
208
+ parts: parts,
209
+ files: formattedFiles,
210
+ tags: tags
211
+ };
212
+ return _objectSpread(_objectSpread({}, standardData), {}, {
213
+ payload: transformSubmitData === null || transformSubmitData === void 0 ? void 0 : transformSubmitData(standardData)
214
+ });
215
+ };
136
216
 
137
217
  // 检查文件类型
138
218
  var checkFileType = function checkFileType(file) {
@@ -162,8 +242,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
162
242
  };
163
243
 
164
244
  // 内置校验器集合
165
- var builtInValidators = [function (_file, _ref3) {
166
- var files = _ref3.files;
245
+ var builtInValidators = [function (_file, _ref6) {
246
+ var files = _ref6.files;
167
247
  if (files.length >= maxFiles) {
168
248
  return "\u6700\u591A\u53EA\u80FD\u4E0A\u4F20 ".concat(maxFiles, " \u4E2A\u6587\u4EF6");
169
249
  }
@@ -179,8 +259,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
179
259
  return "不支持的文件类型";
180
260
  }
181
261
  return null;
182
- }, function (file, _ref4) {
183
- var files = _ref4.files;
262
+ }, function (file, _ref7) {
263
+ var files = _ref7.files;
184
264
  if (isDuplicateFile(file, files)) {
185
265
  return "文件已存在";
186
266
  }
@@ -251,14 +331,26 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
251
331
  }
252
332
  }, [files, maxFiles, maxFileSize, allowedFileTypes]);
253
333
 
254
- // 暴露 addFiles 方法
334
+ // 暴露给业务工具栏调用的命令式能力;外部 Popover 选择标签时可插入到当前光标位置。
255
335
  useImperativeHandle(ref, function () {
256
336
  return {
257
337
  addFiles: function addFiles(rawFiles) {
258
338
  handleFileSelect(rawFiles);
339
+ },
340
+ insertTag: function insertTag(tag) {
341
+ if (inlineTags) {
342
+ var _inlineInputRef$curre2;
343
+ (_inlineInputRef$curre2 = inlineInputRef.current) === null || _inlineInputRef$curre2 === void 0 || _inlineInputRef$curre2.insertTag(tag);
344
+ return;
345
+ }
346
+ setTags([].concat(_toConsumableArray(tags), [tag]));
347
+ },
348
+ focus: function focus() {
349
+ var _inlineInputRef$curre3, _textareaRef$current;
350
+ inlineTags ? (_inlineInputRef$curre3 = inlineInputRef.current) === null || _inlineInputRef$curre3 === void 0 ? void 0 : _inlineInputRef$curre3.focus() : (_textareaRef$current = textareaRef.current) === null || _textareaRef$current === void 0 ? void 0 : _textareaRef$current.focus();
259
351
  }
260
352
  };
261
- }, [handleFileSelect]);
353
+ }, [handleFileSelect, inlineTags, setTags, tags]);
262
354
 
263
355
  // 触发文件选择
264
356
  var triggerFileSelect = function triggerFileSelect() {
@@ -269,7 +361,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
269
361
 
270
362
  // 上传文件
271
363
  var uploadFiles = /*#__PURE__*/function () {
272
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fileList) {
364
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fileList) {
273
365
  var _iterator2, _step2, _loop;
274
366
  return _regeneratorRuntime().wrap(function _callee$(_context2) {
275
367
  while (1) switch (_context2.prev = _context2.next) {
@@ -384,7 +476,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
384
476
  }, _callee, null, [[1, 10, 13, 16]]);
385
477
  }));
386
478
  return function uploadFiles(_x) {
387
- return _ref5.apply(this, arguments);
479
+ return _ref8.apply(this, arguments);
388
480
  };
389
481
  }();
390
482
 
@@ -496,18 +588,21 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
496
588
 
497
589
  // 选择快捷项后转成结构化 tag;inline 模式会替换掉触发字符和关键词。
498
590
  var handleQuickKeySelect = useCallback(function (option) {
499
- var _activeQuickKeyConfig, _inlineInputRef$curre2, _textareaRef$current;
591
+ var _ref9, _option$value, _activeQuickKeyConfig, _inlineInputRef$curre5, _textareaRef$current2;
592
+ var tagType = (activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 ? void 0 : activeQuickKeyConfig.tagType) || activeQuickKey || "unknown";
500
593
  var newTag = {
501
594
  id: generateId(),
502
595
  label: option.label,
503
- type: activeQuickKey || "unknown",
596
+ type: tagType,
597
+ value: (_ref9 = (_option$value = option.value) !== null && _option$value !== void 0 ? _option$value : option.name) !== null && _ref9 !== void 0 ? _ref9 : option.label,
598
+ trigger: activeQuickKey || undefined,
504
599
  icon: option.icon,
505
600
  data: option
506
601
  };
507
602
  activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 || (_activeQuickKeyConfig = activeQuickKeyConfig.onSelect) === null || _activeQuickKeyConfig === void 0 || _activeQuickKeyConfig.call(activeQuickKeyConfig, option);
508
603
  if (inlineTags) {
509
- var _inlineInputRef$curre;
510
- (_inlineInputRef$curre = inlineInputRef.current) === null || _inlineInputRef$curre === void 0 || _inlineInputRef$curre.insertTag(newTag, {
604
+ var _inlineInputRef$curre4;
605
+ (_inlineInputRef$curre4 = inlineInputRef.current) === null || _inlineInputRef$curre4 === void 0 || _inlineInputRef$curre4.insertTag(newTag, {
511
606
  start: quickKeyTriggerIdx,
512
607
  end: quickKeyTriggerIdx + 1 + quickKeyKeyword.length
513
608
  });
@@ -524,7 +619,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
524
619
  setQuickKeyKeyword("");
525
620
  setQuickKeyTriggerIdx(-1);
526
621
  setQuickKeyActiveIndex(0);
527
- inlineTags ? (_inlineInputRef$curre2 = inlineInputRef.current) === null || _inlineInputRef$curre2 === void 0 ? void 0 : _inlineInputRef$curre2.focus() : (_textareaRef$current = textareaRef.current) === null || _textareaRef$current === void 0 ? void 0 : _textareaRef$current.focus();
622
+ inlineTags ? (_inlineInputRef$curre5 = inlineInputRef.current) === null || _inlineInputRef$curre5 === void 0 ? void 0 : _inlineInputRef$curre5.focus() : (_textareaRef$current2 = textareaRef.current) === null || _textareaRef$current2 === void 0 ? void 0 : _textareaRef$current2.focus();
528
623
  }, [activeQuickKey, activeQuickKeyConfig, inlineTags, tags, setTags, value, quickKeyTriggerIdx, quickKeyKeyword, setValue]);
529
624
 
530
625
  // 处理输入框变化(含快捷键检测)
@@ -536,10 +631,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
536
631
  detectQuickKey(newValue, e.target.selectionStart || 0);
537
632
  };
538
633
  var handleInlineInputChange = function handleInlineInputChange(newValue) {
539
- var _inlineInputRef$curre3;
634
+ var _inlineInputRef$curre6;
540
635
  setValue(newValue);
541
636
  // contenteditable 的 selection 不一定和 React state 同步,需实时读取内部光标 offset。
542
- detectQuickKey(newValue, ((_inlineInputRef$curre3 = inlineInputRef.current) === null || _inlineInputRef$curre3 === void 0 ? void 0 : _inlineInputRef$curre3.getCursorOffset()) || newValue.length);
637
+ detectQuickKey(newValue, ((_inlineInputRef$curre6 = inlineInputRef.current) === null || _inlineInputRef$curre6 === void 0 ? void 0 : _inlineInputRef$curre6.getCursorOffset()) || newValue.length);
543
638
  };
544
639
  var handleQuickKeyByText = function handleQuickKeyByText(text, cursorPos) {
545
640
  var quickKeyChars = quickKeys.map(function (qk) {
@@ -574,11 +669,11 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
574
669
  handleQuickKeyByText(target.value || "", target.selectionStart || 0);
575
670
  };
576
671
  var handleInlineKeyUp = function handleInlineKeyUp(e) {
577
- var _inlineInputRef$curre4, _inlineInputRef$curre5;
672
+ var _inlineInputRef$curre7, _inlineInputRef$curre8;
578
673
  if (activeQuickKey && isQuickListControlKey(e.key)) return;
579
674
  // inline 输入区不是 textarea,不能读 event.target.value,只能从 ref 取纯文本。
580
- var text = ((_inlineInputRef$curre4 = inlineInputRef.current) === null || _inlineInputRef$curre4 === void 0 ? void 0 : _inlineInputRef$curre4.getText()) || "";
581
- var cursorPos = ((_inlineInputRef$curre5 = inlineInputRef.current) === null || _inlineInputRef$curre5 === void 0 ? void 0 : _inlineInputRef$curre5.getCursorOffset()) || text.length;
675
+ var text = ((_inlineInputRef$curre7 = inlineInputRef.current) === null || _inlineInputRef$curre7 === void 0 ? void 0 : _inlineInputRef$curre7.getText()) || "";
676
+ var cursorPos = ((_inlineInputRef$curre8 = inlineInputRef.current) === null || _inlineInputRef$curre8 === void 0 ? void 0 : _inlineInputRef$curre8.getCursorOffset()) || text.length;
582
677
  handleQuickKeyByText(text, cursorPos);
583
678
  };
584
679
 
@@ -603,11 +698,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
603
698
  onOk: function onOk() {
604
699
  var formattedFiles = formatFilesForServer(successFiles);
605
700
  if (onSubmit) {
606
- onSubmit({
607
- text: value,
608
- files: formattedFiles,
609
- tags: tags
610
- });
701
+ onSubmit(createSubmitData(formattedFiles));
611
702
  }
612
703
  setValue("");
613
704
  setTags([]);
@@ -624,11 +715,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
624
715
  } else {
625
716
  var formattedFiles = formatFilesForServer(successFiles);
626
717
  if (onSubmit) {
627
- onSubmit({
628
- text: value,
629
- files: formattedFiles,
630
- tags: tags
631
- });
718
+ onSubmit(createSubmitData(formattedFiles));
632
719
  }
633
720
  setValue("");
634
721
  setTags([]);
@@ -700,15 +787,11 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
700
787
  var renderFileList = function renderFileList() {
701
788
  if (files.length === 0) return null;
702
789
  return /*#__PURE__*/_jsx("div", {
703
- style: {
704
- display: "flex",
705
- flexWrap: "wrap",
706
- gap: "8px",
707
- padding: "12px 0"
708
- },
790
+ className: styles.contextFiles,
709
791
  children: files.map(function (file) {
710
792
  return /*#__PURE__*/_jsx(FileGallery, {
711
793
  file: file,
794
+ size: "small",
712
795
  removable: true,
713
796
  onRemove: handleRemoveFile
714
797
  }, file.id);
@@ -802,6 +885,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
802
885
  }
803
886
  return slot;
804
887
  };
888
+ var headerNode = renderSlot(header, false);
889
+ var fileListNode = allowUpload && files.length > 0 ? renderFileList() : null;
805
890
 
806
891
  // 默认后缀仅保留发送/停止按钮;上传与清空统一放到底部 actionBar,方便业务扩展左侧按钮组。
807
892
  var defaultSuffix = /*#__PURE__*/_jsx("div", {
@@ -841,7 +926,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
841
926
  onDragOver: allowUpload && draggable ? handleDragOver : undefined,
842
927
  onDragLeave: allowUpload && draggable ? handleDragLeave : undefined,
843
928
  onDrop: allowUpload && draggable ? handleDrop : undefined,
844
- children: [renderSlot(header, false), allowUpload && files.length > 0 && renderFileList(), allowUpload && /*#__PURE__*/_jsx("input", {
929
+ children: [allowUpload && /*#__PURE__*/_jsx("input", {
845
930
  ref: fileInputRef,
846
931
  type: "file",
847
932
  multiple: true,
@@ -859,7 +944,13 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
859
944
  className: styles.mainArea,
860
945
  children: /*#__PURE__*/_jsxs("div", {
861
946
  className: styles.senderWrap,
862
- children: [!inlineTags && /*#__PURE__*/_jsx(InputTags, {
947
+ children: [(headerNode || fileListNode) && /*#__PURE__*/_jsxs("div", {
948
+ className: styles.contextBar,
949
+ children: [headerNode && /*#__PURE__*/_jsx("div", {
950
+ className: styles.contextHeader,
951
+ children: headerNode
952
+ }), fileListNode]
953
+ }), !inlineTags && /*#__PURE__*/_jsx(InputTags, {
863
954
  tags: tags,
864
955
  onRemove: handleRemoveTag
865
956
  }), /*#__PURE__*/_jsxs("div", {