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

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 (221) hide show
  1. package/README.md +22 -0
  2. package/dist/cjs/components/FileGallery/index.js +59 -40
  3. package/dist/cjs/components/FileGallery/index.js.map +2 -2
  4. package/dist/cjs/components/FileGallery/styles.d.ts +7 -0
  5. package/dist/cjs/components/FileGallery/styles.js +78 -0
  6. package/dist/cjs/components/FileGallery/styles.js.map +2 -2
  7. package/dist/cjs/components/Sources/components/CarouselCard.d.ts +12 -0
  8. package/dist/cjs/components/Sources/components/CarouselCard.js +130 -0
  9. package/dist/cjs/components/Sources/components/CarouselCard.js.map +7 -0
  10. package/dist/cjs/components/Sources/index.d.ts +5 -0
  11. package/dist/cjs/components/Sources/index.js +162 -0
  12. package/dist/cjs/components/Sources/index.js.map +7 -0
  13. package/dist/cjs/components/Sources/styles.d.ts +59 -0
  14. package/dist/cjs/components/Sources/styles.js +179 -0
  15. package/dist/cjs/components/Sources/styles.js.map +7 -0
  16. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.d.ts +19 -1
  17. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js +232 -22
  18. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/index.js.map +2 -2
  19. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +3 -0
  20. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js +83 -0
  21. package/dist/cjs/components/XAdkChatbot/components/MarkdownRender/styles.js.map +2 -2
  22. package/dist/cjs/components/XAdkChatbot/index.d.ts +2 -2
  23. package/dist/cjs/components/XAdkChatbot/index.js +75 -8
  24. package/dist/cjs/components/XAdkChatbot/index.js.map +2 -2
  25. package/dist/cjs/components/XAdkChatbot/styles.js +1 -1
  26. package/dist/cjs/components/XAdkChatbot/styles.js.map +1 -1
  27. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.d.ts +7 -2
  28. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js +30 -12
  29. package/dist/cjs/components/XAdkProvider/compound/DefaultLayout.js.map +2 -2
  30. package/dist/cjs/components/XAdkProvider/compound/Sender.d.ts +3 -1
  31. package/dist/cjs/components/XAdkProvider/compound/Sender.js +81 -4
  32. package/dist/cjs/components/XAdkProvider/compound/Sender.js.map +3 -3
  33. package/dist/cjs/components/XAdkProvider/compound/styles.d.ts +1 -0
  34. package/dist/cjs/components/XAdkProvider/compound/styles.js +16 -0
  35. package/dist/cjs/components/XAdkProvider/compound/styles.js.map +2 -2
  36. package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.d.ts +4 -0
  37. package/dist/cjs/components/XAdkProvider/context/ChatSenderStateContext.js.map +2 -2
  38. package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.d.ts +9 -0
  39. package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.js +34 -0
  40. package/dist/cjs/components/XAdkProvider/context/DefaultLayoutContext.js.map +7 -0
  41. package/dist/cjs/components/XAdkProvider/context/index.d.ts +5 -4
  42. package/dist/cjs/components/XAdkProvider/context/index.js +3 -1
  43. package/dist/cjs/components/XAdkProvider/context/index.js.map +2 -2
  44. package/dist/cjs/components/XAdkProvider/index.js +11 -10
  45. package/dist/cjs/components/XAdkProvider/index.js.map +2 -2
  46. package/dist/cjs/components/XAdkSender/InlineTagInput.d.ts +12 -5
  47. package/dist/cjs/components/XAdkSender/InlineTagInput.js +419 -121
  48. package/dist/cjs/components/XAdkSender/InlineTagInput.js.map +2 -2
  49. package/dist/cjs/components/XAdkSender/InputTags.d.ts +2 -2
  50. package/dist/cjs/components/XAdkSender/InputTags.js +8 -8
  51. package/dist/cjs/components/XAdkSender/InputTags.js.map +2 -2
  52. package/dist/cjs/components/XAdkSender/index.js +173 -112
  53. package/dist/cjs/components/XAdkSender/index.js.map +3 -3
  54. package/dist/cjs/components/XAdkSender/styles.d.ts +4 -0
  55. package/dist/cjs/components/XAdkSender/styles.js +47 -6
  56. package/dist/cjs/components/XAdkSender/styles.js.map +2 -2
  57. package/dist/cjs/components/XAiConversations/styles.js +11 -1
  58. package/dist/cjs/components/XAiConversations/styles.js.map +2 -2
  59. package/dist/cjs/hooks/useADKChat.js +5 -1
  60. package/dist/cjs/hooks/useADKChat.js.map +2 -2
  61. package/dist/cjs/index.d.ts +8 -2
  62. package/dist/cjs/index.js +44 -7
  63. package/dist/cjs/index.js.map +3 -3
  64. package/dist/cjs/presets/base.d.ts +6 -0
  65. package/dist/cjs/presets/base.js +50 -0
  66. package/dist/cjs/presets/base.js.map +7 -0
  67. package/dist/cjs/presets/define.d.ts +11 -0
  68. package/dist/cjs/presets/define.js +58 -0
  69. package/dist/cjs/presets/define.js.map +7 -0
  70. package/dist/cjs/presets/index.d.ts +3 -0
  71. package/dist/cjs/presets/index.js +28 -0
  72. package/dist/cjs/presets/index.js.map +7 -0
  73. package/dist/cjs/presets/runtime.d.ts +22 -0
  74. package/dist/cjs/presets/runtime.js +75 -0
  75. package/dist/cjs/presets/runtime.js.map +7 -0
  76. package/dist/cjs/presets/xgroup/index.d.ts +5 -0
  77. package/dist/cjs/presets/xgroup/index.js +10 -0
  78. package/dist/cjs/presets/xgroup/index.js.map +2 -2
  79. package/dist/cjs/presets/xgroup/knowledgeReference.d.ts +17 -0
  80. package/dist/cjs/presets/xgroup/knowledgeReference.js +162 -0
  81. package/dist/cjs/presets/xgroup/knowledgeReference.js.map +7 -0
  82. package/dist/cjs/presets/xgroup/preset.d.ts +1 -13
  83. package/dist/cjs/presets/xgroup/preset.js +16 -37
  84. package/dist/cjs/presets/xgroup/preset.js.map +2 -2
  85. package/dist/cjs/presets/xgroup/strategies.d.ts +5 -4
  86. package/dist/cjs/presets/xgroup/strategies.js +11 -15
  87. package/dist/cjs/presets/xgroup/strategies.js.map +3 -3
  88. package/dist/cjs/presets/xgroup/webReference.d.ts +10 -0
  89. package/dist/cjs/presets/xgroup/webReference.js +85 -0
  90. package/dist/cjs/presets/xgroup/webReference.js.map +7 -0
  91. package/dist/cjs/types/ChatStrategies.d.ts +11 -2
  92. package/dist/cjs/types/ChatStrategies.js.map +1 -1
  93. package/dist/cjs/types/FileGallery.d.ts +3 -0
  94. package/dist/cjs/types/FileGallery.js.map +1 -1
  95. package/dist/cjs/types/Sources.d.ts +30 -0
  96. package/dist/cjs/types/Sources.js +18 -0
  97. package/dist/cjs/types/Sources.js.map +7 -0
  98. package/dist/cjs/types/XAdkChatbot.d.ts +33 -0
  99. package/dist/cjs/types/XAdkChatbot.js.map +1 -1
  100. package/dist/cjs/types/XAdkSender.d.ts +112 -21
  101. package/dist/cjs/types/XAdkSender.js.map +1 -1
  102. package/dist/cjs/types/index.d.ts +1 -0
  103. package/dist/cjs/types/index.js +3 -1
  104. package/dist/cjs/types/index.js.map +2 -2
  105. package/dist/cjs/utils/index.d.ts +1 -0
  106. package/dist/cjs/utils/index.js +3 -1
  107. package/dist/cjs/utils/index.js.map +2 -2
  108. package/dist/cjs/utils/markdownResource.d.ts +14 -0
  109. package/dist/cjs/utils/markdownResource.js +131 -0
  110. package/dist/cjs/utils/markdownResource.js.map +7 -0
  111. package/dist/esm/components/FileGallery/index.js +22 -16
  112. package/dist/esm/components/FileGallery/index.js.map +1 -1
  113. package/dist/esm/components/FileGallery/styles.d.ts +7 -0
  114. package/dist/esm/components/FileGallery/styles.js +24 -17
  115. package/dist/esm/components/FileGallery/styles.js.map +1 -1
  116. package/dist/esm/components/Sources/components/CarouselCard.d.ts +12 -0
  117. package/dist/esm/components/Sources/components/CarouselCard.js +107 -0
  118. package/dist/esm/components/Sources/components/CarouselCard.js.map +1 -0
  119. package/dist/esm/components/Sources/index.d.ts +5 -0
  120. package/dist/esm/components/Sources/index.js +127 -0
  121. package/dist/esm/components/Sources/index.js.map +1 -0
  122. package/dist/esm/components/Sources/styles.d.ts +59 -0
  123. package/dist/esm/components/Sources/styles.js +34 -0
  124. package/dist/esm/components/Sources/styles.js.map +1 -0
  125. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.d.ts +19 -1
  126. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js +190 -11
  127. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/index.js.map +1 -1
  128. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.d.ts +3 -0
  129. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js +5 -2
  130. package/dist/esm/components/XAdkChatbot/components/MarkdownRender/styles.js.map +1 -1
  131. package/dist/esm/components/XAdkChatbot/index.d.ts +2 -2
  132. package/dist/esm/components/XAdkChatbot/index.js +55 -10
  133. package/dist/esm/components/XAdkChatbot/index.js.map +1 -1
  134. package/dist/esm/components/XAdkChatbot/styles.js +1 -1
  135. package/dist/esm/components/XAdkChatbot/styles.js.map +1 -1
  136. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.d.ts +7 -2
  137. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js +40 -17
  138. package/dist/esm/components/XAdkProvider/compound/DefaultLayout.js.map +1 -1
  139. package/dist/esm/components/XAdkProvider/compound/Sender.d.ts +3 -1
  140. package/dist/esm/components/XAdkProvider/compound/Sender.js +70 -6
  141. package/dist/esm/components/XAdkProvider/compound/Sender.js.map +1 -1
  142. package/dist/esm/components/XAdkProvider/compound/styles.d.ts +1 -0
  143. package/dist/esm/components/XAdkProvider/compound/styles.js +3 -2
  144. package/dist/esm/components/XAdkProvider/compound/styles.js.map +1 -1
  145. package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.d.ts +4 -0
  146. package/dist/esm/components/XAdkProvider/context/ChatSenderStateContext.js.map +1 -1
  147. package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.d.ts +9 -0
  148. package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.js +9 -0
  149. package/dist/esm/components/XAdkProvider/context/DefaultLayoutContext.js.map +1 -0
  150. package/dist/esm/components/XAdkProvider/context/index.d.ts +5 -4
  151. package/dist/esm/components/XAdkProvider/context/index.js +1 -0
  152. package/dist/esm/components/XAdkProvider/context/index.js.map +1 -1
  153. package/dist/esm/components/XAdkProvider/index.js +7 -3
  154. package/dist/esm/components/XAdkProvider/index.js.map +1 -1
  155. package/dist/esm/components/XAdkSender/InlineTagInput.d.ts +12 -5
  156. package/dist/esm/components/XAdkSender/InlineTagInput.js +408 -111
  157. package/dist/esm/components/XAdkSender/InlineTagInput.js.map +1 -1
  158. package/dist/esm/components/XAdkSender/InputTags.d.ts +2 -2
  159. package/dist/esm/components/XAdkSender/InputTags.js +10 -9
  160. package/dist/esm/components/XAdkSender/InputTags.js.map +1 -1
  161. package/dist/esm/components/XAdkSender/index.js +206 -122
  162. package/dist/esm/components/XAdkSender/index.js.map +1 -1
  163. package/dist/esm/components/XAdkSender/styles.d.ts +4 -0
  164. package/dist/esm/components/XAdkSender/styles.js +29 -25
  165. package/dist/esm/components/XAdkSender/styles.js.map +1 -1
  166. package/dist/esm/components/XAiConversations/styles.js +3 -3
  167. package/dist/esm/components/XAiConversations/styles.js.map +1 -1
  168. package/dist/esm/hooks/useADKChat.js +8 -2
  169. package/dist/esm/hooks/useADKChat.js.map +1 -1
  170. package/dist/esm/index.d.ts +8 -2
  171. package/dist/esm/index.js +7 -3
  172. package/dist/esm/index.js.map +1 -1
  173. package/dist/esm/presets/base.d.ts +6 -0
  174. package/dist/esm/presets/base.js +28 -0
  175. package/dist/esm/presets/base.js.map +1 -0
  176. package/dist/esm/presets/define.d.ts +11 -0
  177. package/dist/esm/presets/define.js +33 -0
  178. package/dist/esm/presets/define.js.map +1 -0
  179. package/dist/esm/presets/index.d.ts +3 -0
  180. package/dist/esm/presets/index.js +4 -0
  181. package/dist/esm/presets/index.js.map +1 -0
  182. package/dist/esm/presets/runtime.d.ts +22 -0
  183. package/dist/esm/presets/runtime.js +45 -0
  184. package/dist/esm/presets/runtime.js.map +1 -0
  185. package/dist/esm/presets/xgroup/index.d.ts +5 -0
  186. package/dist/esm/presets/xgroup/index.js +6 -0
  187. package/dist/esm/presets/xgroup/index.js.map +1 -1
  188. package/dist/esm/presets/xgroup/knowledgeReference.d.ts +17 -0
  189. package/dist/esm/presets/xgroup/knowledgeReference.js +95 -0
  190. package/dist/esm/presets/xgroup/knowledgeReference.js.map +1 -0
  191. package/dist/esm/presets/xgroup/preset.d.ts +1 -13
  192. package/dist/esm/presets/xgroup/preset.js +9 -29
  193. package/dist/esm/presets/xgroup/preset.js.map +1 -1
  194. package/dist/esm/presets/xgroup/strategies.d.ts +5 -4
  195. package/dist/esm/presets/xgroup/strategies.js +8 -20
  196. package/dist/esm/presets/xgroup/strategies.js.map +1 -1
  197. package/dist/esm/presets/xgroup/webReference.d.ts +10 -0
  198. package/dist/esm/presets/xgroup/webReference.js +46 -0
  199. package/dist/esm/presets/xgroup/webReference.js.map +1 -0
  200. package/dist/esm/types/ChatStrategies.d.ts +11 -2
  201. package/dist/esm/types/ChatStrategies.js.map +1 -1
  202. package/dist/esm/types/FileGallery.d.ts +3 -0
  203. package/dist/esm/types/FileGallery.js.map +1 -1
  204. package/dist/esm/types/Sources.d.ts +30 -0
  205. package/dist/esm/types/Sources.js +2 -0
  206. package/dist/esm/types/Sources.js.map +1 -0
  207. package/dist/esm/types/XAdkChatbot.d.ts +33 -0
  208. package/dist/esm/types/XAdkChatbot.js.map +1 -1
  209. package/dist/esm/types/XAdkSender.d.ts +112 -21
  210. package/dist/esm/types/XAdkSender.js.map +1 -1
  211. package/dist/esm/types/index.d.ts +1 -0
  212. package/dist/esm/types/index.js +1 -0
  213. package/dist/esm/types/index.js.map +1 -1
  214. package/dist/esm/utils/index.d.ts +1 -0
  215. package/dist/esm/utils/index.js +1 -0
  216. package/dist/esm/utils/index.js.map +1 -1
  217. package/dist/esm/utils/markdownResource.d.ts +14 -0
  218. package/dist/esm/utils/markdownResource.js +101 -0
  219. package/dist/esm/utils/markdownResource.js.map +1 -0
  220. package/dist/umd/chat-sdk.min.js +1 -1
  221. package/package.json +6 -1
@@ -1,12 +1,12 @@
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";
8
8
  import { Popconfirm, message, Tooltip, Input, Modal } from "antd";
9
- import { ClearOutlined, LoadingOutlined, ArrowUpOutlined, PaperClipOutlined } from "@ant-design/icons";
9
+ import { ClearOutlined, LoadingOutlined, ArrowUpOutlined } from "@ant-design/icons";
10
10
  import { useStyles } from "./styles";
11
11
  import FileGallery from "../FileGallery";
12
12
  import QuickList from "./QuickList";
@@ -19,10 +19,9 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
19
19
  var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
20
20
  var _ref$clearBtnShow = _ref.clearBtnShow,
21
21
  clearBtnShow = _ref$clearBtnShow === void 0 ? true : _ref$clearBtnShow,
22
- _ref$allowUpload = _ref.allowUpload,
23
- allowUpload = _ref$allowUpload === void 0 ? false : _ref$allowUpload,
24
22
  _ref$draggable = _ref.draggable,
25
- draggable = _ref$draggable === void 0 ? true : _ref$draggable,
23
+ draggable = _ref$draggable === void 0 ? false : _ref$draggable,
24
+ onFileSelect = _ref.onFileSelect,
26
25
  _ref$loading = _ref.loading,
27
26
  loading = _ref$loading === void 0 ? false : _ref$loading,
28
27
  _ref$disabled = _ref.disabled,
@@ -59,12 +58,22 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
59
58
  quickKeys = _ref$quickKeys === void 0 ? [] : _ref$quickKeys,
60
59
  _ref$inlineTags = _ref.inlineTags,
61
60
  inlineTags = _ref$inlineTags === void 0 ? false : _ref$inlineTags,
61
+ renderMention = _ref.renderMention,
62
62
  renderTag = _ref.renderTag,
63
+ controlledMentions = _ref.mentions,
63
64
  controlledTags = _ref.tags,
65
+ defaultMentions = _ref.defaultMentions,
64
66
  _ref$defaultTags = _ref.defaultTags,
65
67
  defaultTags = _ref$defaultTags === void 0 ? [] : _ref$defaultTags,
68
+ defaultInputParts = _ref.defaultInputParts,
69
+ onMentionsChange = _ref.onMentionsChange,
66
70
  onTagsChange = _ref.onTagsChange,
67
- onQuickKeyTrigger = _ref.onQuickKeyTrigger;
71
+ onQuickKeyTrigger = _ref.onQuickKeyTrigger,
72
+ _ref$submitFormat = _ref.submitFormat,
73
+ submitFormat = _ref$submitFormat === void 0 ? "text" : _ref$submitFormat,
74
+ formatMention = _ref.formatMention,
75
+ formatTag = _ref.formatTag,
76
+ transformSubmitData = _ref.transformSubmitData;
68
77
  var styles = useStyles();
69
78
  var isControlled = controlledValue !== undefined;
70
79
  var _useState = useState(defaultValue),
@@ -79,18 +88,21 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
79
88
  onChange === null || onChange === void 0 || onChange(newValue);
80
89
  };
81
90
 
82
- // tags 支持受控/非受控两种模式;inlineTags 打开时会和输入内容混排。
83
- var isTagsControlled = controlledTags !== undefined;
84
- var _useState3 = useState(defaultTags),
91
+ // mentions 支持受控/非受控两种模式;inlineTags 打开时会和输入内容混排。
92
+ var resolvedControlledMentions = controlledMentions !== null && controlledMentions !== void 0 ? controlledMentions : controlledTags;
93
+ var initialMentions = defaultMentions !== null && defaultMentions !== void 0 ? defaultMentions : defaultTags;
94
+ var isMentionsControlled = resolvedControlledMentions !== undefined;
95
+ var _useState3 = useState(initialMentions),
85
96
  _useState4 = _slicedToArray(_useState3, 2),
86
- internalTags = _useState4[0],
87
- setInternalTags = _useState4[1];
88
- var tags = isTagsControlled ? controlledTags : internalTags;
89
- var setTags = function setTags(newTags) {
90
- if (!isTagsControlled) {
91
- setInternalTags(newTags);
97
+ internalMentions = _useState4[0],
98
+ setInternalMentions = _useState4[1];
99
+ var mentions = isMentionsControlled ? resolvedControlledMentions : internalMentions;
100
+ var setMentions = function setMentions(newMentions) {
101
+ if (!isMentionsControlled) {
102
+ setInternalMentions(newMentions);
92
103
  }
93
- onTagsChange === null || onTagsChange === void 0 || onTagsChange(newTags);
104
+ onMentionsChange === null || onMentionsChange === void 0 || onMentionsChange(newMentions);
105
+ onTagsChange === null || onTagsChange === void 0 || onTagsChange(newMentions);
94
106
  };
95
107
  var _useState5 = useState([]),
96
108
  _useState6 = _slicedToArray(_useState5, 2),
@@ -101,7 +113,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
101
113
  isDragOver = _useState8[0],
102
114
  setIsDragOver = _useState8[1];
103
115
  var containerRef = useRef(null);
104
- var fileInputRef = useRef(null);
105
116
  var textareaRef = useRef(null);
106
117
  var inlineInputRef = useRef(null);
107
118
 
@@ -133,6 +144,87 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
133
144
  var data = (_response$data = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data !== void 0 ? _response$data : response;
134
145
  return (_ref2 = Array.isArray(data) ? data[0] : data) !== null && _ref2 !== void 0 ? _ref2 : {};
135
146
  };
147
+ var escapeXml = function escapeXml(text) {
148
+ return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&apos;");
149
+ };
150
+ var escapeMarkdownLabel = function escapeMarkdownLabel(text) {
151
+ return text.replace(/\\/g, "\\\\").replace(/\]/g, "\\]");
152
+ };
153
+ var getMentionSubmitValue = function getMentionSubmitValue(mention) {
154
+ var _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9, _mention$value, _mention$data, _mention$data2, _mention$data3;
155
+ return String((_ref3 = (_ref4 = (_ref5 = (_ref6 = (_ref7 = (_ref8 = (_ref9 = (_mention$value = mention.value) !== null && _mention$value !== void 0 ? _mention$value : mention.uri) !== null && _ref9 !== void 0 ? _ref9 : (_mention$data = mention.data) === null || _mention$data === void 0 ? void 0 : _mention$data.uri) !== null && _ref8 !== void 0 ? _ref8 : (_mention$data2 = mention.data) === null || _mention$data2 === void 0 ? void 0 : _mention$data2.value) !== null && _ref7 !== void 0 ? _ref7 : (_mention$data3 = mention.data) === null || _mention$data3 === void 0 ? void 0 : _mention$data3.name) !== null && _ref6 !== void 0 ? _ref6 : mention.targetId) !== null && _ref5 !== void 0 ? _ref5 : mention.displayName) !== null && _ref4 !== void 0 ? _ref4 : mention.label) !== null && _ref3 !== void 0 ? _ref3 : "");
156
+ };
157
+ var defaultFormatMention = function defaultFormatMention(mention, format, index) {
158
+ var value = getMentionSubmitValue(mention);
159
+ if (format === "xml") {
160
+ return "<mention type=\"".concat(escapeXml(mention.type), "\" id=\"").concat(escapeXml(mention.id), "\" label=\"").concat(escapeXml(mention.label), "\" value=\"").concat(escapeXml(value), "\" />");
161
+ }
162
+ if (format === "markdown") {
163
+ var href = mention.uri || (value.includes("://") ? value : "xadk-mention://".concat(encodeURIComponent(mention.type), "/").concat(encodeURIComponent(mention.id)));
164
+ return "[@".concat(escapeMarkdownLabel(mention.displayName || mention.label), "](").concat(href, ")");
165
+ }
166
+ return "@".concat(mention.displayName || value || "mention-".concat(index + 1));
167
+ };
168
+ var serializeMention = function serializeMention(mention, format, index) {
169
+ var _ref10, _formatMention;
170
+ return (_ref10 = (_formatMention = formatMention === null || formatMention === void 0 ? void 0 : formatMention(mention, {
171
+ format: format,
172
+ index: index
173
+ })) !== null && _formatMention !== void 0 ? _formatMention : formatTag === null || formatTag === void 0 ? void 0 : formatTag(mention, {
174
+ format: format,
175
+ index: index
176
+ })) !== null && _ref10 !== void 0 ? _ref10 : defaultFormatMention(mention, format, index);
177
+ };
178
+ var getSubmitParts = useCallback(function () {
179
+ if (inlineTags) {
180
+ var _inlineInputRef$curre;
181
+ var parts = ((_inlineInputRef$curre = inlineInputRef.current) === null || _inlineInputRef$curre === void 0 ? void 0 : _inlineInputRef$curre.getParts()) || [];
182
+ if (parts.length > 0) return parts;
183
+ }
184
+ var textParts = value ? [{
185
+ type: "text",
186
+ text: value
187
+ }] : [];
188
+ var mentionParts = mentions.map(function (mention) {
189
+ return {
190
+ type: "mention",
191
+ mention: mention
192
+ };
193
+ });
194
+ return [].concat(_toConsumableArray(mentionParts), textParts);
195
+ }, [inlineTags, mentions, value]);
196
+ var serializeParts = function serializeParts(parts, format) {
197
+ if (format === "structured") {
198
+ return parts.reduce(function (content, part) {
199
+ return content + (part.type === "text" ? part.text : "");
200
+ }, "");
201
+ }
202
+ var tagIndex = 0;
203
+ return parts.map(function (part) {
204
+ if (part.type === "text") return part.text;
205
+ var result = serializeMention(part.mention, format, tagIndex);
206
+ tagIndex += 1;
207
+ return result;
208
+ }).join("");
209
+ };
210
+ var createSubmitData = function createSubmitData(formattedFiles) {
211
+ var parts = getSubmitParts();
212
+ var rawText = parts.reduce(function (content, part) {
213
+ return content + (part.type === "text" ? part.text : "");
214
+ }, "");
215
+ var standardData = {
216
+ text: serializeParts(parts, submitFormat),
217
+ rawText: rawText,
218
+ format: submitFormat,
219
+ parts: parts,
220
+ files: formattedFiles,
221
+ mentions: mentions,
222
+ tags: mentions
223
+ };
224
+ return _objectSpread(_objectSpread({}, standardData), {}, {
225
+ payload: transformSubmitData === null || transformSubmitData === void 0 ? void 0 : transformSubmitData(standardData)
226
+ });
227
+ };
136
228
 
137
229
  // 检查文件类型
138
230
  var checkFileType = function checkFileType(file) {
@@ -162,8 +254,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
162
254
  };
163
255
 
164
256
  // 内置校验器集合
165
- var builtInValidators = [function (_file, _ref3) {
166
- var files = _ref3.files;
257
+ var builtInValidators = [function (_file, _ref11) {
258
+ var files = _ref11.files;
167
259
  if (files.length >= maxFiles) {
168
260
  return "\u6700\u591A\u53EA\u80FD\u4E0A\u4F20 ".concat(maxFiles, " \u4E2A\u6587\u4EF6");
169
261
  }
@@ -179,8 +271,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
179
271
  return "不支持的文件类型";
180
272
  }
181
273
  return null;
182
- }, function (file, _ref4) {
183
- var files = _ref4.files;
274
+ }, function (file, _ref12) {
275
+ var files = _ref12.files;
184
276
  if (isDuplicateFile(file, files)) {
185
277
  return "文件已存在";
186
278
  }
@@ -251,25 +343,38 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
251
343
  }
252
344
  }, [files, maxFiles, maxFileSize, allowedFileTypes]);
253
345
 
254
- // 暴露 addFiles 方法
346
+ // 暴露给业务工具栏调用的命令式能力;外部 Popover 选择标签时可插入到当前光标位置。
255
347
  useImperativeHandle(ref, function () {
256
348
  return {
257
349
  addFiles: function addFiles(rawFiles) {
258
350
  handleFileSelect(rawFiles);
351
+ },
352
+ insertMention: function insertMention(mention) {
353
+ if (inlineTags) {
354
+ var _inlineInputRef$curre2;
355
+ (_inlineInputRef$curre2 = inlineInputRef.current) === null || _inlineInputRef$curre2 === void 0 || _inlineInputRef$curre2.insertMention(mention);
356
+ return;
357
+ }
358
+ setMentions([].concat(_toConsumableArray(mentions), [mention]));
359
+ },
360
+ insertTag: function insertTag(mention) {
361
+ if (inlineTags) {
362
+ var _inlineInputRef$curre3;
363
+ (_inlineInputRef$curre3 = inlineInputRef.current) === null || _inlineInputRef$curre3 === void 0 || _inlineInputRef$curre3.insertMention(mention);
364
+ return;
365
+ }
366
+ setMentions([].concat(_toConsumableArray(mentions), [mention]));
367
+ },
368
+ focus: function focus() {
369
+ var _inlineInputRef$curre4, _textareaRef$current;
370
+ inlineTags ? (_inlineInputRef$curre4 = inlineInputRef.current) === null || _inlineInputRef$curre4 === void 0 ? void 0 : _inlineInputRef$curre4.focus() : (_textareaRef$current = textareaRef.current) === null || _textareaRef$current === void 0 ? void 0 : _textareaRef$current.focus();
259
371
  }
260
372
  };
261
- }, [handleFileSelect]);
262
-
263
- // 触发文件选择
264
- var triggerFileSelect = function triggerFileSelect() {
265
- if (fileInputRef.current) {
266
- fileInputRef.current.click();
267
- }
268
- };
373
+ }, [handleFileSelect, inlineTags, setMentions, mentions]);
269
374
 
270
375
  // 上传文件
271
376
  var uploadFiles = /*#__PURE__*/function () {
272
- var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fileList) {
377
+ var _ref13 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(fileList) {
273
378
  var _iterator2, _step2, _loop;
274
379
  return _regeneratorRuntime().wrap(function _callee$(_context2) {
275
380
  while (1) switch (_context2.prev = _context2.next) {
@@ -384,7 +489,7 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
384
489
  }, _callee, null, [[1, 10, 13, 16]]);
385
490
  }));
386
491
  return function uploadFiles(_x) {
387
- return _ref5.apply(this, arguments);
492
+ return _ref13.apply(this, arguments);
388
493
  };
389
494
  }();
390
495
 
@@ -403,32 +508,33 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
403
508
  var handleDragOver = useCallback(function (e) {
404
509
  e.preventDefault();
405
510
  e.stopPropagation();
406
- if (allowUpload) {
511
+ if (draggable) {
407
512
  setIsDragOver(true);
408
513
  }
409
- }, [allowUpload]);
514
+ }, [draggable]);
410
515
  var handleDragLeave = useCallback(function (e) {
411
516
  e.preventDefault();
412
517
  e.stopPropagation();
413
- if (allowUpload) {
518
+ if (draggable) {
414
519
  setIsDragOver(false);
415
520
  }
416
- }, [allowUpload]);
521
+ }, [draggable]);
417
522
  var handleDrop = useCallback(function (e) {
418
523
  e.preventDefault();
419
524
  e.stopPropagation();
420
525
  setIsDragOver(false);
421
- if (allowUpload && e.dataTransfer.files && e.dataTransfer.files.length > 0) {
422
- handleFileSelect(Array.from(e.dataTransfer.files));
526
+ if (draggable && e.dataTransfer.files && e.dataTransfer.files.length > 0) {
527
+ // 内核不再自行处理文件,交给外层(DefaultLayout/业务)通过 onFileSelect 决定
528
+ onFileSelect === null || onFileSelect === void 0 || onFileSelect(Array.from(e.dataTransfer.files));
423
529
  }
424
- }, [allowUpload, handleFileSelect]);
530
+ }, [draggable, onFileSelect]);
425
531
 
426
532
  // 删除标签
427
- var handleRemoveTag = useCallback(function (id) {
428
- setTags(tags.filter(function (t) {
429
- return t.id !== id;
533
+ var handleRemoveMention = useCallback(function (id) {
534
+ setMentions(mentions.filter(function (item) {
535
+ return item.id !== id;
430
536
  }));
431
- }, [tags, setTags]);
537
+ }, [mentions, setMentions]);
432
538
 
433
539
  // 查找当前活跃的快捷键配置
434
540
  var activeQuickKeyConfig = useMemo(function () {
@@ -494,25 +600,31 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
494
600
  }
495
601
  }, [activeQuickKey, onQuickKeyTrigger, quickKeyTriggerIdx, quickKeys]);
496
602
 
497
- // 选择快捷项后转成结构化 tag;inline 模式会替换掉触发字符和关键词。
603
+ // 选择快捷项后转成结构化 Mention;inline 模式会替换掉触发字符和关键词。
498
604
  var handleQuickKeySelect = useCallback(function (option) {
499
- var _activeQuickKeyConfig, _inlineInputRef$curre2, _textareaRef$current;
500
- var newTag = {
605
+ var _ref14, _ref15, _option$value, _ref16, _option$targetId, _option$displayName, _activeQuickKeyConfig, _inlineInputRef$curre6, _textareaRef$current2;
606
+ var mentionType = (activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 ? void 0 : activeQuickKeyConfig.mentionType) || (activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 ? void 0 : activeQuickKeyConfig.tagType) || activeQuickKey || "unknown";
607
+ var newMention = {
501
608
  id: generateId(),
502
609
  label: option.label,
503
- type: activeQuickKey || "unknown",
610
+ type: mentionType,
611
+ value: (_ref14 = (_ref15 = (_option$value = option.value) !== null && _option$value !== void 0 ? _option$value : option.uri) !== null && _ref15 !== void 0 ? _ref15 : option.name) !== null && _ref14 !== void 0 ? _ref14 : option.label,
612
+ uri: option.uri,
613
+ targetId: (_ref16 = (_option$targetId = option.targetId) !== null && _option$targetId !== void 0 ? _option$targetId : option.skillNo) !== null && _ref16 !== void 0 ? _ref16 : option.pluginNo,
614
+ displayName: (_option$displayName = option.displayName) !== null && _option$displayName !== void 0 ? _option$displayName : option.label,
615
+ trigger: activeQuickKey || undefined,
504
616
  icon: option.icon,
505
617
  data: option
506
618
  };
507
619
  activeQuickKeyConfig === null || activeQuickKeyConfig === void 0 || (_activeQuickKeyConfig = activeQuickKeyConfig.onSelect) === null || _activeQuickKeyConfig === void 0 || _activeQuickKeyConfig.call(activeQuickKeyConfig, option);
508
620
  if (inlineTags) {
509
- var _inlineInputRef$curre;
510
- (_inlineInputRef$curre = inlineInputRef.current) === null || _inlineInputRef$curre === void 0 || _inlineInputRef$curre.insertTag(newTag, {
621
+ var _inlineInputRef$curre5;
622
+ (_inlineInputRef$curre5 = inlineInputRef.current) === null || _inlineInputRef$curre5 === void 0 || _inlineInputRef$curre5.insertMention(newMention, {
511
623
  start: quickKeyTriggerIdx,
512
624
  end: quickKeyTriggerIdx + 1 + quickKeyKeyword.length
513
625
  });
514
626
  } else {
515
- setTags([].concat(_toConsumableArray(tags), [newTag]));
627
+ setMentions([].concat(_toConsumableArray(mentions), [newMention]));
516
628
 
517
629
  // 从输入框中删除快捷键字符和关键词
518
630
  if (quickKeyTriggerIdx >= 0) {
@@ -524,8 +636,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
524
636
  setQuickKeyKeyword("");
525
637
  setQuickKeyTriggerIdx(-1);
526
638
  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();
528
- }, [activeQuickKey, activeQuickKeyConfig, inlineTags, tags, setTags, value, quickKeyTriggerIdx, quickKeyKeyword, setValue]);
639
+ inlineTags ? (_inlineInputRef$curre6 = inlineInputRef.current) === null || _inlineInputRef$curre6 === void 0 ? void 0 : _inlineInputRef$curre6.focus() : (_textareaRef$current2 = textareaRef.current) === null || _textareaRef$current2 === void 0 ? void 0 : _textareaRef$current2.focus();
640
+ }, [activeQuickKey, activeQuickKeyConfig, inlineTags, mentions, setMentions, value, quickKeyTriggerIdx, quickKeyKeyword, setValue]);
529
641
 
530
642
  // 处理输入框变化(含快捷键检测)
531
643
  var handleInputChange = function handleInputChange(e) {
@@ -536,10 +648,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
536
648
  detectQuickKey(newValue, e.target.selectionStart || 0);
537
649
  };
538
650
  var handleInlineInputChange = function handleInlineInputChange(newValue) {
539
- var _inlineInputRef$curre3;
651
+ var _inlineInputRef$curre7;
540
652
  setValue(newValue);
541
653
  // contenteditable 的 selection 不一定和 React state 同步,需实时读取内部光标 offset。
542
- detectQuickKey(newValue, ((_inlineInputRef$curre3 = inlineInputRef.current) === null || _inlineInputRef$curre3 === void 0 ? void 0 : _inlineInputRef$curre3.getCursorOffset()) || newValue.length);
654
+ detectQuickKey(newValue, ((_inlineInputRef$curre7 = inlineInputRef.current) === null || _inlineInputRef$curre7 === void 0 ? void 0 : _inlineInputRef$curre7.getCursorOffset()) || newValue.length);
543
655
  };
544
656
  var handleQuickKeyByText = function handleQuickKeyByText(text, cursorPos) {
545
657
  var quickKeyChars = quickKeys.map(function (qk) {
@@ -574,17 +686,19 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
574
686
  handleQuickKeyByText(target.value || "", target.selectionStart || 0);
575
687
  };
576
688
  var handleInlineKeyUp = function handleInlineKeyUp(e) {
577
- var _inlineInputRef$curre4, _inlineInputRef$curre5;
689
+ var _inlineInputRef$curre8, _inlineInputRef$curre9;
578
690
  if (activeQuickKey && isQuickListControlKey(e.key)) return;
579
691
  // 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;
692
+ var text = ((_inlineInputRef$curre8 = inlineInputRef.current) === null || _inlineInputRef$curre8 === void 0 ? void 0 : _inlineInputRef$curre8.getText()) || "";
693
+ var cursorPos = ((_inlineInputRef$curre9 = inlineInputRef.current) === null || _inlineInputRef$curre9 === void 0 ? void 0 : _inlineInputRef$curre9.getCursorOffset()) || text.length;
582
694
  handleQuickKeyByText(text, cursorPos);
583
695
  };
584
696
 
585
697
  // 处理提交
586
698
  var handleSubmit = function handleSubmit() {
587
- if (!value.trim() && files.length === 0 && tags.length === 0) {
699
+ // 生成期间允许继续编辑下一条消息,但停止按钮仍代表当前唯一可执行动作。
700
+ if (loading) return;
701
+ if (!value.trim() && files.length === 0 && mentions.length === 0) {
588
702
  message.warning("请输入消息或选择文件");
589
703
  return;
590
704
  }
@@ -603,14 +717,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
603
717
  onOk: function onOk() {
604
718
  var formattedFiles = formatFilesForServer(successFiles);
605
719
  if (onSubmit) {
606
- onSubmit({
607
- text: value,
608
- files: formattedFiles,
609
- tags: tags
610
- });
720
+ onSubmit(createSubmitData(formattedFiles));
611
721
  }
612
722
  setValue("");
613
- setTags([]);
723
+ setMentions([]);
614
724
  setFiles(function (prev) {
615
725
  return prev.filter(function (f) {
616
726
  return f.status !== "success";
@@ -624,14 +734,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
624
734
  } else {
625
735
  var formattedFiles = formatFilesForServer(successFiles);
626
736
  if (onSubmit) {
627
- onSubmit({
628
- text: value,
629
- files: formattedFiles,
630
- tags: tags
631
- });
737
+ onSubmit(createSubmitData(formattedFiles));
632
738
  }
633
739
  setValue("");
634
- setTags([]);
740
+ setMentions([]);
635
741
  setFiles(function (prev) {
636
742
  return prev.filter(function (f) {
637
743
  return f.status !== "success";
@@ -700,15 +806,11 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
700
806
  var renderFileList = function renderFileList() {
701
807
  if (files.length === 0) return null;
702
808
  return /*#__PURE__*/_jsx("div", {
703
- style: {
704
- display: "flex",
705
- flexWrap: "wrap",
706
- gap: "8px",
707
- padding: "12px 0"
708
- },
809
+ className: styles.contextFiles,
709
810
  children: files.map(function (file) {
710
811
  return /*#__PURE__*/_jsx(FileGallery, {
711
812
  file: file,
813
+ size: "small",
712
814
  removable: true,
713
815
  onRemove: handleRemoveFile
714
816
  }, file.id);
@@ -719,13 +821,14 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
719
821
  var uploading = files.some(function (f) {
720
822
  return f.status === "uploading";
721
823
  });
722
- var isDisabled = disabled || uploading || loading;
824
+ var controlsDisabled = disabled || uploading || loading;
825
+ var inputDisabled = disabled || uploading;
723
826
  var hasContent = value.trim().length > 0;
724
827
  var hasFiles = files.some(function (f) {
725
828
  return f.status === "success";
726
829
  });
727
- var hasTags = tags.length > 0;
728
- var canSend = hasContent || hasFiles || hasTags;
830
+ var hasMentions = mentions.length > 0;
831
+ var canSend = hasContent || hasFiles || hasMentions;
729
832
 
730
833
  // 定义按钮组件
731
834
  var SendButton = function SendButton(props) {
@@ -754,19 +857,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
754
857
  }))
755
858
  });
756
859
  };
757
- var UploadButton = function UploadButton(props) {
758
- return /*#__PURE__*/_jsx(Tooltip, {
759
- title: "\u4E0A\u4F20\u6587\u4EF6",
760
- children: /*#__PURE__*/_jsx("button", _objectSpread(_objectSpread({
761
- className: "".concat(styles.iconButton, " ").concat(styles.uploadButton),
762
- onClick: triggerFileSelect,
763
- disabled: isDisabled,
764
- "aria-label": "\u4E0A\u4F20\u6587\u4EF6"
765
- }, props), {}, {
766
- children: /*#__PURE__*/_jsx(PaperClipOutlined, {})
767
- }))
768
- });
769
- };
770
860
  var ClearButton = function ClearButton(props) {
771
861
  return /*#__PURE__*/_jsx(Popconfirm, {
772
862
  title: "\u786E\u5B9A\u8981\u6E05\u7A7A\u804A\u5929\u8BB0\u5F55\u5417?",
@@ -774,10 +864,10 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
774
864
  placement: "top",
775
865
  okText: "\u786E\u5B9A",
776
866
  cancelText: "\u53D6\u6D88",
777
- disabled: isDisabled,
867
+ disabled: controlsDisabled,
778
868
  children: /*#__PURE__*/_jsx("button", _objectSpread(_objectSpread({
779
869
  className: "".concat(styles.iconButton, " ").concat(styles.clearButton),
780
- disabled: isDisabled,
870
+ disabled: controlsDisabled,
781
871
  "aria-label": "\u6E05\u7A7A\u804A\u5929\u8BB0\u5F55"
782
872
  }, props), {}, {
783
873
  children: /*#__PURE__*/_jsx(ClearOutlined, {})
@@ -786,7 +876,6 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
786
876
  };
787
877
  var actionsComponents = {
788
878
  SendButton: SendButton,
789
- UploadButton: UploadButton,
790
879
  ClearButton: ClearButton
791
880
  };
792
881
 
@@ -802,6 +891,8 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
802
891
  }
803
892
  return slot;
804
893
  };
894
+ var headerNode = renderSlot(header, false);
895
+ var fileListNode = files.length > 0 ? renderFileList() : null;
805
896
 
806
897
  // 默认后缀仅保留发送/停止按钮;上传与清空统一放到底部 actionBar,方便业务扩展左侧按钮组。
807
898
  var defaultSuffix = /*#__PURE__*/_jsx("div", {
@@ -827,9 +918,9 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
827
918
  });
828
919
  var defaultActionBar = /*#__PURE__*/_jsxs("div", {
829
920
  className: styles.actionBar,
830
- children: [/*#__PURE__*/_jsxs("div", {
921
+ children: [/*#__PURE__*/_jsx("div", {
831
922
  className: styles.actionBarLeft,
832
- children: [allowUpload && /*#__PURE__*/_jsx(UploadButton, {}), renderSlot(footerLeft, false)]
923
+ children: renderSlot(footerLeft, false)
833
924
  }), /*#__PURE__*/_jsxs("div", {
834
925
  className: styles.actionBarRight,
835
926
  children: [clearBtnShow && /*#__PURE__*/_jsx(ClearButton, {}), renderSlot(suffix, defaultSuffix)]
@@ -838,43 +929,36 @@ var XAdkSender = /*#__PURE__*/forwardRef(function (_ref, ref) {
838
929
  return /*#__PURE__*/_jsxs("div", {
839
930
  ref: containerRef,
840
931
  className: containerClass,
841
- onDragOver: allowUpload && draggable ? handleDragOver : undefined,
842
- onDragLeave: allowUpload && draggable ? handleDragLeave : undefined,
843
- onDrop: allowUpload && draggable ? handleDrop : undefined,
844
- children: [renderSlot(header, false), allowUpload && files.length > 0 && renderFileList(), allowUpload && /*#__PURE__*/_jsx("input", {
845
- ref: fileInputRef,
846
- type: "file",
847
- multiple: true,
848
- accept: allowedFileTypes.join(","),
849
- style: {
850
- display: "none"
851
- },
852
- onChange: function onChange(e) {
853
- if (e.target.files) {
854
- handleFileSelect(Array.from(e.target.files));
855
- e.target.value = "";
856
- }
857
- }
858
- }), /*#__PURE__*/_jsx("div", {
932
+ onDragOver: draggable ? handleDragOver : undefined,
933
+ onDragLeave: draggable ? handleDragLeave : undefined,
934
+ onDrop: draggable ? handleDrop : undefined,
935
+ children: [/*#__PURE__*/_jsx("div", {
859
936
  className: styles.mainArea,
860
937
  children: /*#__PURE__*/_jsxs("div", {
861
938
  className: styles.senderWrap,
862
- children: [!inlineTags && /*#__PURE__*/_jsx(InputTags, {
863
- tags: tags,
864
- onRemove: handleRemoveTag
939
+ children: [(headerNode || fileListNode) && /*#__PURE__*/_jsxs("div", {
940
+ className: styles.contextBar,
941
+ children: [headerNode && /*#__PURE__*/_jsx("div", {
942
+ className: styles.contextHeader,
943
+ children: headerNode
944
+ }), fileListNode]
945
+ }), !inlineTags && /*#__PURE__*/_jsx(InputTags, {
946
+ mentions: mentions,
947
+ onRemove: handleRemoveMention
865
948
  }), /*#__PURE__*/_jsxs("div", {
866
949
  className: styles.inputAndButtons,
867
950
  children: [renderSlot(prefix, false), inlineTags ? /*#__PURE__*/_jsx(InlineTagInput, {
868
951
  ref: inlineInputRef,
869
952
  value: value,
870
- tags: tags,
953
+ mentions: mentions,
954
+ defaultInputParts: defaultInputParts,
871
955
  placeholder: placeholder,
872
- disabled: isDisabled,
956
+ disabled: inputDisabled,
873
957
  onChange: handleInlineInputChange,
874
- onTagsChange: setTags,
958
+ onMentionsChange: setMentions,
875
959
  onKeyDown: handleKeyDown,
876
960
  onKeyUp: handleInlineKeyUp,
877
- renderTag: renderTag
961
+ renderMention: renderMention !== null && renderMention !== void 0 ? renderMention : renderTag
878
962
  }) : /*#__PURE__*/_jsx("div", {
879
963
  className: styles.textAreaWrapper,
880
964
  children: /*#__PURE__*/_jsx(Input.TextArea, {