@tencent-rtc/mcp 1.4.7 → 1.6.0

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 (553) hide show
  1. package/cursor-setting.png +0 -0
  2. package/index.js +0 -1
  3. package/knowledge/bm25-cache.js +73 -0
  4. package/knowledge/bm25.js +147 -0
  5. package/knowledge/build-index.js +69 -0
  6. package/knowledge/chunker.js +167 -0
  7. package/knowledge/content-loader.js +39 -0
  8. package/knowledge/doc-url-resolver.js +142 -0
  9. package/knowledge/extractors.js +25 -0
  10. package/knowledge/path-meta.js +184 -0
  11. package/knowledge/search/exact-lookup.js +497 -0
  12. package/knowledge/search/filter-pool.js +104 -0
  13. package/knowledge/search/product-scope-intent.js +40 -0
  14. package/knowledge/search/requires-framework.js +81 -0
  15. package/knowledge/search/search-knowledge.js +229 -0
  16. package/mcp-server-prompt.png +0 -0
  17. package/package.json +1 -1
  18. package/resource/_schema/feature-aliases.yaml +10 -0
  19. package/resource/_schema/goal-tags.yaml +72 -0
  20. package/resource/_schema/products.yaml +19 -0
  21. package/resource/_schema/trtc-intents.yaml +27 -0
  22. package/resource/_schema/types.yaml +43 -0
  23. package/resource/index/component-slugs.json +1 -0
  24. package/resource/index/doc-source-urls.json +1 -0
  25. package/resource/index/manifest.json +1 -0
  26. package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
  27. package/resource/integration/callkit/preset/flutter/integration.md +346 -0
  28. package/resource/integration/callkit/preset/ios/integration.md +408 -0
  29. package/resource/integration/callkit/preset/react/integration.md +362 -0
  30. package/resource/integration/callkit/preset/vue/integration.md +356 -0
  31. package/resource/integration/chat/preset/android/integration.md +500 -0
  32. package/resource/integration/chat/preset/flutter/integration.md +370 -0
  33. package/resource/integration/chat/preset/ios/integration.md +566 -0
  34. package/resource/integration/chat/preset/react/integration.md +490 -0
  35. package/resource/integration/chat/preset/vue/integration.md +504 -0
  36. package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
  37. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
  38. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
  39. package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
  40. package/resource/integration/roomkit/preset/vue/integration.md +562 -0
  41. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
  42. package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
  43. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
  44. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
  45. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
  46. package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
  47. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
  48. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
  49. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
  50. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
  51. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
  52. package/resource/knowledge/callkit/faq/android.md +92 -0
  53. package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
  54. package/resource/knowledge/callkit/faq/error-code.md +67 -0
  55. package/resource/knowledge/callkit/faq/flutter.md +52 -0
  56. package/resource/knowledge/callkit/faq/ios.md +104 -0
  57. package/resource/knowledge/callkit/faq/web.md +74 -0
  58. package/resource/knowledge/callkit/preset/android/api.md +412 -0
  59. package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
  60. package/resource/knowledge/callkit/preset/ios/api.md +234 -0
  61. package/resource/knowledge/callkit/preset/web/api.md +83 -0
  62. package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
  63. package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
  64. package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
  65. package/resource/knowledge/chat/preset/android/features/language.md +136 -0
  66. package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
  67. package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
  68. package/resource/knowledge/chat/preset/android/features/search.md +64 -0
  69. package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
  70. package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
  71. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
  72. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
  73. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
  74. package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
  75. package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
  76. package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
  77. package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
  78. package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
  79. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
  80. package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
  81. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
  82. package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
  83. package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
  84. package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
  85. package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
  86. package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
  87. package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
  88. package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
  89. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
  90. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
  91. package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
  92. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
  93. package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
  94. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
  95. package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
  96. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
  97. package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
  98. package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
  99. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
  100. package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
  101. package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
  102. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
  103. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
  104. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
  105. package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
  106. package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
  107. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
  108. package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
  109. package/resource/knowledge/chat/urls/error-code.md +17 -0
  110. package/resource/knowledge/chat/urls/product.md +43 -0
  111. package/resource/knowledge/chat/urls/restapi.md +204 -0
  112. package/resource/knowledge/chat/urls/sdk/android.md +80 -0
  113. package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
  114. package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
  115. package/resource/knowledge/chat/urls/sdk/web.md +80 -0
  116. package/resource/knowledge/chat/urls/webhook.md +68 -0
  117. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
  118. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
  119. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
  120. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
  121. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
  122. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
  123. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
  124. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
  125. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
  126. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
  127. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
  128. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
  129. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
  130. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
  131. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
  132. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
  133. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
  135. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
  136. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
  137. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
  138. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
  139. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
  140. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
  141. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
  142. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
  143. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
  144. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
  145. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
  146. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
  147. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
  148. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
  149. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
  150. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
  151. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
  152. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
  153. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
  154. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
  155. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
  156. package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
  157. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
  158. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
  159. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
  160. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
  161. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
  162. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
  163. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
  164. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
  165. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
  166. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
  167. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
  168. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
  169. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
  170. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
  171. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
  172. package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
  173. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
  174. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
  175. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
  176. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
  177. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
  178. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
  179. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
  180. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
  181. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
  182. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
  183. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
  184. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
  185. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
  186. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
  187. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
  188. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
  189. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
  190. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
  191. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
  192. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
  193. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
  194. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
  195. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
  196. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
  197. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
  198. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
  199. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
  200. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
  201. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
  202. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
  203. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
  204. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
  205. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
  206. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
  207. package/resource/knowledge/livekit/faq/error-code.md +193 -0
  208. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
  209. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
  210. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
  211. package/resource/knowledge/push/config/android.md +92 -0
  212. package/resource/knowledge/push/config/harmonyos.md +83 -0
  213. package/resource/knowledge/push/config/ios.md +254 -0
  214. package/resource/knowledge/push/config/react-native.md +254 -0
  215. package/resource/knowledge/push/config/unity.md +209 -0
  216. package/resource/knowledge/push/config/unreal-engine.md +194 -0
  217. package/resource/knowledge/push/integration/android.md +404 -0
  218. package/resource/knowledge/push/integration/flutter.md +465 -0
  219. package/resource/knowledge/push/integration/harmonyos.md +63 -0
  220. package/resource/knowledge/push/integration/ios.md +246 -0
  221. package/resource/knowledge/push/integration/react-native.md +366 -0
  222. package/resource/knowledge/push/integration/uni-app.md +208 -0
  223. package/resource/knowledge/push/integration/unity.md +389 -0
  224. package/resource/knowledge/push/integration/unreal-engine.md +390 -0
  225. package/resource/knowledge/push/overview/prepare.md +60 -0
  226. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
  227. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
  228. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
  229. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
  230. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
  231. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
  232. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
  233. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
  234. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
  235. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
  236. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
  237. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
  238. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
  239. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
  240. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
  241. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
  242. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
  243. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
  244. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
  245. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
  246. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
  247. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
  248. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
  249. package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
  250. package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
  251. package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
  252. package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
  253. package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
  254. package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
  255. package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
  256. package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
  257. package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
  258. package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
  259. package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
  260. package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
  261. package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
  262. package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
  263. package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
  264. package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
  265. package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
  266. package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
  267. package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
  268. package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
  269. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
  270. package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
  271. package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
  272. package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
  273. package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
  274. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
  275. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
  276. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
  277. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
  278. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
  279. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
  280. package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
  281. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
  282. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
  283. package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
  284. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
  285. package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
  286. package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
  287. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
  288. package/server-config.js +0 -1
  289. package/server.js +35 -12
  290. package/streamable-http.js +0 -1
  291. package/tools/call/get_native_call_uikit_integration.js +2 -4
  292. package/tools/call/get_native_callkit_core_integration.js +2 -6
  293. package/tools/call/get_web_call_uikit_integration.js +2 -4
  294. package/tools/chat/get_native_chat_uikit_integration.js +2 -4
  295. package/tools/chat/get_web_chat_uikit_integration.js +2 -4
  296. package/tools/common/get_usersig.js +0 -1
  297. package/tools/common/present_framework_choice.js +19 -14
  298. package/tools/common/record_answer.js +19 -26
  299. package/tools/common/record_feedback.js +17 -31
  300. package/tools/common/search_trtc_knowledge.js +44 -0
  301. package/tools/definitions/get_native_call_uikit_integration_def.js +3 -2
  302. package/tools/definitions/get_native_callkit_core_integration_def.js +5 -4
  303. package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -3
  304. package/tools/definitions/get_native_livekit_core_integration_def.js +6 -6
  305. package/tools/definitions/get_usersig_def.js +0 -1
  306. package/tools/definitions/get_web_call_uikit_integration_def.js +4 -3
  307. package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
  308. package/tools/definitions/get_web_live_uikit_integration_def.js +5 -6
  309. package/tools/definitions/get_web_room_core_integration_def.js +49 -0
  310. package/tools/definitions/get_web_room_uikit_integration_def.js +5 -5
  311. package/tools/definitions/integration-boundary.js +5 -0
  312. package/tools/definitions/present_framework_choice_def.js +12 -11
  313. package/tools/definitions/record_answer_def.js +19 -18
  314. package/tools/definitions/record_feedback_def.js +14 -14
  315. package/tools/definitions/search_trtc_knowledge_def.js +39 -0
  316. package/tools/index.js +5 -37
  317. package/tools/live/get_native_livekit_core_integration.js +1 -4
  318. package/tools/live/get_web_live_uikit_integration.js +2 -5
  319. package/tools/room/get_web_room_core_integration.js +47 -0
  320. package/tools/room/get_web_room_uikit_integration.js +2 -4
  321. package/utils/generate-structured-result.js +24 -31
  322. package/utils/generate-usersig.js +0 -1
  323. package/utils/get-device-identifier.js +0 -1
  324. package/utils/get-doc-content.js +14 -9
  325. package/utils/http-get.js +0 -1
  326. package/utils/http-post.js +0 -1
  327. package/utils/report-cls-client.js +18 -21
  328. package/utils/report-es-client.js +1 -2
  329. package/index.js.map +0 -1
  330. package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
  331. package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
  332. package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
  333. package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
  334. package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
  335. package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
  336. package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
  337. package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
  338. package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
  339. package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
  340. package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
  341. package/resource/doc/callkit/faq/common/error-code.md +0 -47
  342. package/resource/doc/callkit/faq/flutter-faq.md +0 -115
  343. package/resource/doc/callkit/faq/ios-faq.md +0 -115
  344. package/resource/doc/callkit/faq/web-faq.md +0 -36
  345. package/resource/doc/callkit/preset/android/api.md +0 -296
  346. package/resource/doc/callkit/preset/flutter/api.md +0 -410
  347. package/resource/doc/callkit/preset/flutter/integration.md +0 -164
  348. package/resource/doc/callkit/preset/ios/api.md +0 -80
  349. package/resource/doc/callkit/preset/ios/integration.md +0 -187
  350. package/resource/doc/callkit/preset/react/api.md +0 -501
  351. package/resource/doc/callkit/preset/react/integration.md +0 -86
  352. package/resource/doc/callkit/preset/vue/api.md +0 -501
  353. package/resource/doc/callkit/preset/vue/integration.md +0 -83
  354. package/resource/doc/chatkit/android/faq.md +0 -111
  355. package/resource/doc/chatkit/android/features/theme.md +0 -219
  356. package/resource/doc/chatkit/android/integration.md +0 -490
  357. package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
  358. package/resource/doc/chatkit/faq/common/product.md +0 -7
  359. package/resource/doc/chatkit/faq/common/server.md +0 -44
  360. package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
  361. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
  362. package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
  363. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
  364. package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
  365. package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
  366. package/resource/doc/chatkit/flutter/faq.md +0 -23
  367. package/resource/doc/chatkit/flutter/features/theme.md +0 -235
  368. package/resource/doc/chatkit/flutter/integration.md +0 -344
  369. package/resource/doc/chatkit/ios/faq.md +0 -111
  370. package/resource/doc/chatkit/ios/features/theme.md +0 -267
  371. package/resource/doc/chatkit/react/components/avatar.md +0 -104
  372. package/resource/doc/chatkit/react/components/chat-header.md +0 -148
  373. package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
  374. package/resource/doc/chatkit/react/components/chat.md +0 -38
  375. package/resource/doc/chatkit/react/components/component-list.md +0 -37
  376. package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
  377. package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
  378. package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
  379. package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
  380. package/resource/doc/chatkit/react/components/message-list.md +0 -293
  381. package/resource/doc/chatkit/react/components/tuikit.md +0 -34
  382. package/resource/doc/chatkit/react/faq.md +0 -26
  383. package/resource/doc/chatkit/react/integration.md +0 -416
  384. package/resource/doc/chatkit/vue/components/avatar.md +0 -104
  385. package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
  386. package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
  387. package/resource/doc/chatkit/vue/components/chat.md +0 -45
  388. package/resource/doc/chatkit/vue/components/component-list.md +0 -87
  389. package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
  390. package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
  391. package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
  392. package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
  393. package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
  394. package/resource/doc/chatkit/vue/components/message-list.md +0 -433
  395. package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
  396. package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
  397. package/resource/doc/chatkit/vue/faq.md +0 -36
  398. package/resource/doc/chatkit/vue/integration.md +0 -428
  399. package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
  400. package/resource/doc/livekit/faq/common/error-code.md +0 -88
  401. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
  402. package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
  403. package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
  404. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
  405. package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
  406. package/resource/doc/roomkit/faq/common/error-code.md +0 -67
  407. package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
  408. package/resource/doc/roomkit/vue/features/device-state.md +0 -460
  409. package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
  410. package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
  411. package/resource/doc/roomkit/vue/features/room-state.md +0 -282
  412. package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
  413. package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
  414. package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
  415. package/resource/doc/roomkit/vue/integration.md +0 -315
  416. package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
  417. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  418. package/resource/doc/rtcengine/web/.gitkeep +0 -0
  419. package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
  420. package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
  421. package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
  422. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
  423. package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
  424. package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
  425. package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
  426. package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
  427. package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
  428. package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
  429. package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
  430. package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
  431. package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
  432. package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
  433. package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
  434. package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
  435. package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
  436. package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
  437. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
  438. package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
  439. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
  440. package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
  441. package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
  442. package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
  443. package/server-config.js.map +0 -1
  444. package/server.js.map +0 -1
  445. package/streamable-http.js.map +0 -1
  446. package/tools/call/get_callkit_api.js +0 -33
  447. package/tools/call/get_callkit_api.js.map +0 -1
  448. package/tools/call/get_native_call_uikit_integration.js.map +0 -1
  449. package/tools/call/get_native_callkit_core_integration.js.map +0 -1
  450. package/tools/call/get_web_call_uikit_integration.js.map +0 -1
  451. package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
  452. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
  453. package/tools/chat/get_native_chat_uikit_integration.js.map +0 -1
  454. package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
  455. package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
  456. package/tools/chat/get_web_chat_uikit_integration.js.map +0 -1
  457. package/tools/common/get_faq.js +0 -266
  458. package/tools/common/get_faq.js.map +0 -1
  459. package/tools/common/get_usersig.js.map +0 -1
  460. package/tools/common/present_framework_choice.js.map +0 -1
  461. package/tools/common/record_answer.js.map +0 -1
  462. package/tools/common/record_feedback.js.map +0 -1
  463. package/tools/common/record_skill_session.js +0 -69
  464. package/tools/common/record_skill_session.js.map +0 -1
  465. package/tools/definitions/get_callkit_api_def.js +0 -29
  466. package/tools/definitions/get_callkit_api_def.js.map +0 -1
  467. package/tools/definitions/get_faq_def.js +0 -47
  468. package/tools/definitions/get_faq_def.js.map +0 -1
  469. package/tools/definitions/get_native_call_uikit_integration_def.js.map +0 -1
  470. package/tools/definitions/get_native_callkit_core_integration_def.js.map +0 -1
  471. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
  472. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
  473. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +0 -1
  474. package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
  475. package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
  476. package/tools/definitions/get_native_livekit_core_integration_def.js.map +0 -1
  477. package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
  478. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
  479. package/tools/definitions/get_usersig_def.js.map +0 -1
  480. package/tools/definitions/get_web_call_uikit_integration_def.js.map +0 -1
  481. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
  482. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
  483. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +0 -1
  484. package/tools/definitions/get_web_live_uikit_integration_def.js.map +0 -1
  485. package/tools/definitions/get_web_livekit_api_def.js +0 -30
  486. package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
  487. package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
  488. package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
  489. package/tools/definitions/get_web_room_uikit_integration_def.js.map +0 -1
  490. package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
  491. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
  492. package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
  493. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
  494. package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
  495. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
  496. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
  497. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
  498. package/tools/definitions/present_framework_choice_def.js.map +0 -1
  499. package/tools/definitions/record_answer_def.js.map +0 -1
  500. package/tools/definitions/record_feedback_def.js.map +0 -1
  501. package/tools/definitions/record_skill_session_def.js +0 -31
  502. package/tools/definitions/record_skill_session_def.js.map +0 -1
  503. package/tools/index.js.map +0 -1
  504. package/tools/live/get_native_livekit_core_features.js +0 -68
  505. package/tools/live/get_native_livekit_core_features.js.map +0 -1
  506. package/tools/live/get_native_livekit_core_integration.js.map +0 -1
  507. package/tools/live/get_web_live_uikit_integration.js.map +0 -1
  508. package/tools/live/get_web_livekit_api.js +0 -33
  509. package/tools/live/get_web_livekit_api.js.map +0 -1
  510. package/tools/live/get_web_livekit_component_detail.js +0 -35
  511. package/tools/live/get_web_livekit_component_detail.js.map +0 -1
  512. package/tools/room/get_web_room_uikit_integration.js.map +0 -1
  513. package/tools/room/get_web_roomkit_feature_detail.js +0 -69
  514. package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
  515. package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
  516. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
  517. package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
  518. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
  519. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
  520. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
  521. package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
  522. package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
  523. package/utils/build-session-directives.js +0 -120
  524. package/utils/build-session-directives.js.map +0 -1
  525. package/utils/generate-structured-result.js.map +0 -1
  526. package/utils/generate-usersig.js.map +0 -1
  527. package/utils/get-device-identifier.js.map +0 -1
  528. package/utils/get-doc-content.js.map +0 -1
  529. package/utils/handle-framework.js +0 -9
  530. package/utils/handle-framework.js.map +0 -1
  531. package/utils/handle-state-name.js +0 -29
  532. package/utils/handle-state-name.js.map +0 -1
  533. package/utils/http-get.js.map +0 -1
  534. package/utils/http-post.js.map +0 -1
  535. package/utils/report-cls-client.js.map +0 -1
  536. package/utils/report-es-client.js.map +0 -1
  537. package/utils/report-runtime-error-cls-client.js +0 -91
  538. package/utils/report-runtime-error-cls-client.js.map +0 -1
  539. /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
  540. /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
  541. /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
  542. /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
  543. /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
  544. /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
  545. /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
  546. /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
  547. /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
  548. /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
  549. /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
  550. /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
  551. /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
  552. /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
  553. /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
@@ -1,1054 +0,0 @@
1
- The AI model must adhere to the following **hard constraints**:
2
-
3
- **The default text alignment must be used:** Text in the message input area is left-aligned by default.
4
-
5
- ## Overview
6
-
7
- MessageInput is a complete message input component designed for Vue3 applications, providing core chat input features including text editing, emoji selection, file attachments, and a send button. It supports various custom options, such as input behavior configuration, toolbar customization, component replacement, and slot expansion, meeting the demands of different chat scenarios with personalized requirements.
8
-
9
- ## Basic Usage
10
-
11
- ```ts
12
- <script>
13
- import { MessageInput } from "@tencentcloud/chat-uikit-vue3";
14
- </script>
15
-
16
- <template>
17
- <MessageInput />
18
- </template>
19
- ```
20
-
21
- ## Props Configuration
22
-
23
- | Field | Type | Default | Description |
24
- |------|------|--------|------|
25
- | autoFocus | boolean | true | Whether to auto-focus into the input box |
26
- | disabled | boolean | false | Whether to disable the input component |
27
- | hideSendButton | boolean | false | Whether to hide the send button |
28
- | placeholder | string | '' | Placeholder text for the input box |
29
- | attachmentPickerMode | 'collapsed' \| 'expanded' | 'collapsed' | Attachment selector display mode |
30
- | actions | MessageInputActions | ['EmojiPicker', 'ImagePicker', 'FilePicker', 'VideoPicker'] | Toolbar action button configuration |
31
-
32
- ## Slots configuration
33
-
34
- | Field | Type | Default | Description |
35
- |------|------|--------|------|
36
- | headerToolbar | () => VNode[] | undefined | Header toolbar slot |
37
- | footerToolbar | () => VNode[] | undefined | Footer toolbar slot |
38
- | leftInline | () => VNode[] | undefined | Left inline slot |
39
- | rightInline | () => VNode[] | undefined | Right inline slot |
40
- | inputPrefix | () => VNode[] | undefined | Input box prefix slot |
41
- | inputSuffix | () => VNode[] | undefined | Input box suffix slot |
42
- | TextEditor | Component \| null | null | Custom text editor component configuration |
43
-
44
- ### Type definition
45
- ``` typescript
46
- type BuiltInAction =
47
- | 'EmojiPicker'
48
- | 'ImagePicker'
49
- | 'FilePicker'
50
- | 'VideoPicker'
51
- | 'AttachmentPicker';
52
-
53
- export type CustomAction = {
54
- key: string;
55
- label?: string | undefined;
56
- component?: Component | undefined;
57
- className?: string | undefined;
58
- style?: CSSProperties | undefined;
59
- iconSize?: number | undefined;
60
- };
61
-
62
- export type MessageInputActions = Array<BuiltInAction | CustomAction>;
63
-
64
- export type MessageInputAttachmentPickerMode = 'collapsed' | 'expanded';
65
-
66
- export interface MessageInputSlots {
67
- headerToolbar?: () => VNode[];
68
- footerToolbar?: () => VNode[];
69
- leftInline?: () => VNode[];
70
- rightInline?: () => VNode[];
71
- inputPrefix?: () => VNode[];
72
- inputSuffix?: () => VNode[];
73
- textEditor?: () => VNode[];
74
- }
75
-
76
- // MessageInputProps API definition
77
- export interface MessageInputProps {
78
- autoFocus?: boolean;
79
- disabled?: boolean;
80
- hideSendButton?: boolean;
81
- placeholder?: string;
82
- attachmentPickerMode?: MessageInputAttachmentPickerMode;
83
- actions?: MessageInputActions;
84
- slots?: MessageInputSlots;
85
- TextEditor?: Component | null;
86
- }
87
- ```
88
-
89
- ## Custom feature explanation
90
-
91
- ### autoFocus
92
- - `type`: `boolean`
93
-
94
- - Details: autoFocus is used to set whether the component auto-focuses into the input box when mounting. The default is `true`.
95
-
96
- ### disabled
97
- - `type`: `boolean`
98
-
99
- - Details: disabled is used to set whether to disable the entire input component, including text input and all buttons. The default is `false`.
100
-
101
- ### hideSendButton
102
- - `type`: `boolean`
103
-
104
- - Details: hideSendButton is used to set whether to hide the send button, suitable for scenarios where the trigger mode needs to be customized. The default is `false`.
105
-
106
- ### placeholder
107
- - `type`: `string`.
108
-
109
- - Details: placeholder is used to set the placeholder text for the input box. The default is an empty string.
110
-
111
- ### attachmentPickerMode
112
- - `type`: `'collapsed'` | `'expanded'`.
113
-
114
- - Details: attachmentPickerMode is used to set the display mode of the attachment selector. Default is `'collapsed'`.
115
-
116
- - **collapsed**: Collapse mode. Unfold options after clicking.
117
-
118
- - **expanded**: Expand mode. Direct display of ALL options.
119
-
120
- ### actions
121
- - Type: MessageInputActions.
122
-
123
- - Description: actions for configuration of buttons displayed in the toolbar. Default: `['EmojiPicker', 'ImagePicker', 'FilePicker', 'VideoPicker']`.
124
-
125
- #### Example 1: Custom toolbar button sequence
126
- ``` typescript
127
- <template>
128
- <MessageInput :actions="customActions" />
129
- </template>
130
-
131
- <script lang="ts" setup>
132
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
133
-
134
- // Custom button sequence: file, image, video, emoji
135
- const customActions = ['FilePicker', 'ImagePicker', 'VideoPicker', 'EmojiPicker'];
136
- </script>
137
- ```
138
-
139
- #### Example 2: Add custom action button
140
- ``` typescript
141
- <template>
142
- <MessageInput :actions="customActions" />
143
- </template>
144
-
145
- <script lang="ts" setup>
146
- import { defineComponent, h } from 'vue';
147
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
148
-
149
- Custom Position Sharing Button Component
150
- const LocationPicker = defineComponent({
151
- name: 'LocationPicker',
152
- setup() {
153
- const handleLocationShare = () => {
154
- Get user location and send
155
- if (navigator.geolocation) {
156
- navigator.geolocation.getCurrentPosition((position) => {
157
- const { latitude, longitude } = position.coords;
158
- console.log(`Share location: ${latitude}, ${longitude}`);
159
- alert(`Share location: ${latitude}, ${longitude}`); // For demonstration
160
- });
161
- } else {
162
- alert('Browser not supported for geolocation.');
163
- }
164
- };
165
-
166
- return () =>
167
- h('button',
168
- {
169
- onClick: handleLocationShare,
170
- style: { padding: '4px 8px', border: 'none', background: 'transparent' },
171
- Share location
172
- },
173
- '📍',
174
- );
175
- },
176
- });
177
-
178
- const customActions = [
179
- 'EmojiPicker',
180
- 'ImagePicker',
181
- {
182
- key: 'location',
183
- label: 'Location',
184
- component: LocationPicker,
185
- },
186
- 'AttachmentPicker',
187
- ];
188
- </script>
189
- ```
190
-
191
- #### Example 3: Quick reply in customer service system
192
- ``` typescript
193
- <template>
194
- <MessageInput :actions="actions" />
195
- </template>
196
-
197
- <script lang="ts" setup>
198
- import { defineComponent, h, ref } from 'vue';
199
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
200
- import { useMessageInputState } from '@tencentcloud/uikit-component-vue3/src/states/MessageInputState';
201
-
202
- quick reply component
203
- const QuickReplyPicker = defineComponent({
204
- name: 'QuickReplyPicker',
205
- setup() {
206
- const { setContent } = useMessageInputState();
207
- const showPicker = ref(false);
208
-
209
- const quickReplies = [
210
- Hello, glad to help you.
211
- Please wait a moment, I'll check for you...
212
- Thank you for your consultation. Also, any other issues?
213
- The issue has been resolved. Have a pleasant life.
214
- ];
215
-
216
- const handleQuickReply = (text: string) => {
217
- setContent(text);
218
- showPicker.value = false;
219
- };
220
-
221
- return () =>
222
- h('div', { style: { position: 'relative' } }, [
223
- h('button',
224
- {
225
- title: 'Quick reply'
226
- onClick: () => (showPicker.value = !showPicker.value),
227
- },
228
- '⚡',
229
- ),
230
- showPicker.value &&
231
- h('div',
232
- {
233
- style: {
234
- position: 'absolute',
235
- bottom: '100%',
236
- left: 0,
237
- background: 'white',
238
- border: '1px solid #ccc',
239
- borderRadius: '4px',
240
- padding: '8px',
241
- minWidth: '200px',
242
- zIndex: 100, // Ensure it's above other elements
243
- },
244
- },
245
- quickReplies.map((reply, index) =>
246
- h('div',
247
- {
248
- key: index,
249
- onClick: () => handleQuickReply(reply),
250
- style: {
251
- padding: '4px 8px',
252
- cursor: 'pointer',
253
- borderRadius: '2px',
254
- '&:hover': { backgroundColor: '#f0f0f0' },
255
- },
256
- },
257
- reply,
258
- ),
259
- ),
260
- ),
261
- ]);
262
- },
263
- });
264
-
265
- const actions = [
266
- {
267
- key: 'quickReply',
268
- label: 'Quick reply'
269
- component: QuickReplyPicker,
270
- },
271
- 'EmojiPicker',
272
- 'FilePicker',
273
- ];
274
- </script>
275
- ```
276
-
277
- #### Example 4: Custom emoji panel
278
- ``` typescript
279
- <template>
280
- <MessageInput :EmojiPicker="CustomEmojiPicker" />
281
- </template>
282
-
283
- <script lang="ts" setup>
284
- import { defineComponent, h, ref } from 'vue';
285
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
286
- import { useMessageInputState } from '@tencentcloud/uikit-component-vue3/src/states/MessageInputState';
287
-
288
- const CustomEmojiPicker = defineComponent({
289
- name: 'CustomEmojiPicker',
290
- setup() {
291
- const { insertContent } = useMessageInputState();
292
- const showPicker = ref(false);
293
- const activeCategory = ref('common');
294
-
295
- const emojiCategories = {
296
- 'common': ['😀', '😂', '🥰', '😍', '🤔', '😭', '😡', '👍'],
297
- 'hand': ['👋', '🤝', '👏', '🙏', '✌️', '🤞', '🤟', '👌'],
298
- 'animal': ['🐶', '🐱', '🐭', '🐹', '🐰', '🦊', '🐻', '🐼'],
299
- };
300
-
301
- const insertEmoji = (emoji: string) => {
302
- insertContent(emoji);
303
- showPicker.value = false;
304
- };
305
-
306
- return () =>
307
- h('div', { style: { position: 'relative' } }, [
308
- h('button',
309
- {
310
- onClick: () => (showPicker.value = !showPicker.value),
311
- style: { border: 'none', background: 'transparent', cursor: 'pointer' },
312
- },
313
- '😊',
314
- ),
315
- showPicker.value &&
316
- h('div',
317
- {
318
- style: {
319
- position: 'absolute',
320
- bottom: '100%',
321
- left: 0,
322
- background: 'white',
323
- border: '1px solid #ccc',
324
- borderRadius: '8px',
325
- padding: '12px',
326
- width: '280px',
327
- boxShadow: '0 4px 12px rgba(0,0,0,0.1)',
328
- zIndex: 100, // Ensure it's above other elements
329
- },
330
- },
331
- [
332
- category tag
333
- h('div', { style: { display: 'flex', marginBottom: '8px' } },
334
- Object.keys(emojiCategories).map((category) =>
335
- h('button',
336
- {
337
- key: category,
338
- onClick: () => (activeCategory.value = category),
339
- style: {
340
- padding: '4px 8px',
341
- border: 'none',
342
- background: activeCategory.value === category ? '#1890ff' : 'transparent',
343
- color: activeCategory.value === category ? 'white' : '#666',
344
- borderRadius: '4px',
345
- cursor: 'pointer',
346
- fontSize: '12px',
347
- },
348
- },
349
- category,
350
- ),
351
- ),
352
- ),
353
- emoji grid
354
- h('div',
355
- {
356
- style: {
357
- display: 'grid',
358
- gridTemplateColumns: 'repeat(8, 1fr)',
359
- gap: '4px',
360
- },
361
- },
362
- emojiCategories[activeCategory.value].map((emoji) =>
363
- h('button',
364
- {
365
- key: emoji,
366
- onClick: () => insertEmoji(emoji),
367
- style: {
368
- border: 'none',
369
- background: 'transparent',
370
- fontSize: '20px',
371
- cursor: 'pointer',
372
- padding: '4px',
373
- borderRadius: '4px',
374
- },
375
- },
376
- emoji,
377
- ),
378
- ),
379
- ),
380
- ],
381
- ),
382
- ]);
383
- },
384
- });
385
- </script>
386
- ```
387
-
388
- ## Slots explanation
389
- - Type: MessageInputSlots.
390
-
391
- -Detailed instructions: Insert custom content at a specific location in the input component.
392
-
393
- ``` typescript
394
- interface MessageInputSlots {
395
- headerToolbar?: () => VNode[];
396
- footerToolbar?: () => VNode[];
397
- leftInline?: () => VNode[];
398
- rightInline?: () => VNode[];
399
- inputPrefix?: () => VNode[];
400
- inputSuffix?: () => VNode[];
401
- textEditor?: () => VNode[];
402
- }
403
- ```
404
-
405
- #### Example 1: Custom footerToolbar slot
406
- ``` typescript
407
- <template>
408
- <MessageInput>
409
- <template #footerToolbar>
410
- <div style="padding: 4px 12px; font-size: 12px; color: #999; text-align: right;">
411
- press Ctrl+Enter to wrap
412
- </div>
413
- </template>
414
- </MessageInput>
415
- </template>
416
- ```
417
-
418
- #### Example 2: Input box prefix/suffix feature
419
- ``` typescript
420
- <template>
421
- <MessageInput>
422
- <template #inputPrefix>
423
-
424
- </template>
425
- <template #inputSuffix>
426
- <button
427
- style="border: none; background: transparent; cursor: pointer;"
428
- @click="handleVoiceInput"
429
- >
430
- 🎤
431
- </button>
432
- </template>
433
- </MessageInput>
434
- </template>
435
-
436
- <script lang="ts" setup>
437
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
438
-
439
- const handleAtUser = () => {
440
- Trigger @user selection
441
- console.log('Toggle on @user selection');
442
- };
443
-
444
- const handleVoiceInput = () => {
445
- // Start voice input
446
- console.log('Start voice input');
447
- };
448
- </script>
449
- ```
450
-
451
- ### TextEditor
452
-
453
- Type: 'Component' | 'null'.
454
-
455
- Detailed explanation: TextEditor is used to replace the default text editor component. Default: `null`.
456
-
457
- #### Example: Custom text editor
458
- ``` typescript
459
- <template>
460
- <MessageInput>
461
- <template #textEditor>
462
- <RichTextEditor />
463
- </template>
464
- </MessageInput>
465
- </template>
466
-
467
- <script lang="ts" setup>
468
- import { defineComponent, h, ref, onMounted } from 'vue';
469
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
470
- import { useMessageInputState } from '@tencentcloud/uikit-component-vue3/src/states/MessageInputState';
471
-
472
- const RichTextEditor = defineComponent({
473
- name: 'RichTextEditor',
474
- setup() {
475
- const { sendMessage } = useMessageInputState();
476
- const editorRef = ref<HTMLDivElement | null>(null);
477
- const inputRawValue = ref('');
478
-
479
- const handleInput = (e: Event) => {
480
- const target = e.target as HTMLDivElement;
481
- inputRawValue.value = (e.target as HTMLDivElement).textContent || '';
482
- };
483
-
484
- const handleKeyDown = (e: KeyboardEvent) => {
485
- if (e.key === 'Enter') {
486
- sendMessage(inputRawValue.value);
487
- if (editorRef.value) {
488
- editorRef.value.textContent = '';
489
- }
490
- }
491
- };
492
-
493
- onMounted(() => {
494
- if (editorRef.value) {
495
- editorRef.value.textContent = inputRawValue.value || '';
496
- }
497
- });
498
-
499
- return () =>
500
- h('div',
501
- {
502
- style: {
503
- flex: 1,
504
- border: '1px solid #d9d9d9',
505
- borderRadius: '6px',
506
- padding: '8px 12px',
507
- minHeight: '32px',
508
- maxHeight: '120px',
509
- overflow: 'auto',
510
- },
511
- },
512
- h('div',
513
- {
514
- ref: editorRef,
515
- contentEditable: true,
516
- style: {
517
- outline: 'none',
518
- minHeight: '20px',
519
- lineHeight: '20px',
520
- },
521
- onInput: handleInput,
522
- onKeydown: handleKeyDown,
523
- },
524
- ),
525
- );
526
- },
527
- });
528
- </script>
529
- ```
530
- Overview
531
-
532
- MessageInput is a complete message input component designed for Vue3 applications, providing core chat input features including text editing, emoji selection, file attachments, and a send button. It supports various custom options, such as input behavior configuration, toolbar customization, component replacement, and slot expansion, meeting the demands of different chat scenarios with personalized requirements.
533
-
534
- Basic Usage
535
-
536
- ```ts
537
- <script>
538
- import { MessageInput } from "@tencentcloud/chat-uikit-vue3";
539
- </script>
540
-
541
- <template>
542
- <MessageInput />
543
- </template>
544
- ```
545
-
546
- ## Props Configuration
547
-
548
- | Field | Type | Default | Description |
549
- |------|------|--------|------|
550
- | autoFocus | boolean | true | Whether to auto-focus into the input box |
551
- | disabled | boolean | false | Whether to disable the input component |
552
- | hideSendButton | boolean | false | Whether to hide the send button |
553
- | placeholder | string | '' | Placeholder text for the input box |
554
- | attachmentPickerMode | 'collapsed' \| 'expanded' | 'collapsed' | Attachment selector display mode |
555
- | actions | MessageInputActions | ['EmojiPicker', 'ImagePicker', 'FilePicker', 'VideoPicker'] | Toolbar action button configuration |
556
-
557
- ## Slots configuration
558
-
559
- | Field | Type | Default | Description |
560
- |------|------|--------|------|
561
- | headerToolbar | () => VNode[] | undefined | Header toolbar slot |
562
- | footerToolbar | () => VNode[] | undefined | Footer toolbar slot |
563
- | leftInline | () => VNode[] | undefined | Left inline slot |
564
- | rightInline | () => VNode[] | undefined | Right inline slot |
565
- | inputPrefix | () => VNode[] | undefined | Input box prefix slot |
566
- | inputSuffix | () => VNode[] | undefined | Input box suffix slot |
567
- | TextEditor | Component \| null | null | Custom text editor component configuration |
568
-
569
- type definition
570
- ``` typescript
571
- type BuiltInAction =
572
- | 'EmojiPicker'
573
- | 'ImagePicker'
574
- | 'FilePicker'
575
- | 'VideoPicker'
576
- | 'AttachmentPicker';
577
-
578
- export type CustomAction = {
579
- key: string;
580
- label?: string | undefined;
581
- component?: Component | undefined;
582
- className?: string | undefined;
583
- style?: CSSProperties | undefined;
584
- iconSize?: number | undefined;
585
- };
586
-
587
- export type MessageInputActions = Array<BuiltInAction | CustomAction>;
588
-
589
- export type MessageInputAttachmentPickerMode = 'collapsed' | 'expanded';
590
-
591
- export interface MessageInputSlots {
592
- headerToolbar?: () => VNode[];
593
- footerToolbar?: () => VNode[];
594
- leftInline?: () => VNode[];
595
- rightInline?: () => VNode[];
596
- inputPrefix?: () => VNode[];
597
- inputSuffix?: () => VNode[];
598
- textEditor?: () => VNode[];
599
- }
600
-
601
- // MessageInputProps API definition
602
- export interface MessageInputProps {
603
- autoFocus?: boolean;
604
- disabled?: boolean;
605
- hideSendButton?: boolean;
606
- placeholder?: string;
607
- attachmentPickerMode?: MessageInputAttachmentPickerMode;
608
- actions?: MessageInputActions;
609
- slots?: MessageInputSlots;
610
- TextEditor?: Component | null;
611
- }
612
- ```
613
-
614
- Custom Function Explanation
615
-
616
- ### autoFocus
617
- -boolean
618
-
619
- - Details: autoFocus is used to set whether to auto-focus into the input box when mounting. Default: `true`.
620
-
621
- ### disabled
622
- -boolean
623
-
624
- - Details: disabled is used to set whether to disable the entire input component, including text input and ALL buttons. Default: `false`.
625
-
626
- ### hideSendButton
627
- -boolean
628
-
629
- - Details: hideSendButton is used to set whether to hide the send button, suitable for scenarios where the trigger mode needs to be customized. Default: `false`.
630
-
631
- ### placeholder
632
- - Type: string.
633
-
634
- - Details: placeholder is used to set the placeholder text for the input box. Default is an empty string.
635
-
636
- ### attachmentPickerMode
637
- - Type: 'collapsed' | 'expanded'.
638
-
639
- - Details: attachmentPickerMode is used to set the display mode of the attachment selector. Default is `'collapsed'`.
640
-
641
- - **collapsed**: Collapse mode. Unfold options after clicking.
642
-
643
- - **expanded**: Expand mode. Direct display of ALL options.
644
-
645
- ### actions
646
- - Type: MessageInputActions.
647
-
648
- - Description: actions for configuration of buttons displayed in the toolbar. Default: `['EmojiPicker', 'ImagePicker', 'FilePicker', 'VideoPicker']`.
649
-
650
- #### Example 1: Custom toolbar button sequence
651
- ``` typescript
652
- <template>
653
- <MessageInput :actions="customActions" />
654
- </template>
655
-
656
- <script lang="ts" setup>
657
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
658
-
659
- Custom button sequence: file, image, video, emoji
660
- const customActions = ['FilePicker', 'ImagePicker', 'VideoPicker', 'EmojiPicker'];
661
- </script>
662
- ```
663
-
664
- #### Example 2: Add custom action button
665
- ``` typescript
666
- <template>
667
- <MessageInput :actions="customActions" />
668
- </template>
669
-
670
- <script lang="ts" setup>
671
- import { defineComponent, h } from 'vue';
672
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
673
-
674
- Custom Position Sharing Button Component
675
- const LocationPicker = defineComponent({
676
- name: 'LocationPicker',
677
- setup() {
678
- const handleLocationShare = () => {
679
- Get user location and send
680
- if (navigator.geolocation) {
681
- navigator.geolocation.getCurrentPosition((position) => {
682
- const { latitude, longitude } = position.coords;
683
- console.log(`Share location: ${latitude}, ${longitude}`);
684
- alert(`Share location: ${latitude}, ${longitude}`); // For demonstration
685
- });
686
- } else {
687
- alert('Browser not supported for geolocation.');
688
- }
689
- };
690
-
691
- return () =>
692
- h('button',
693
- {
694
- onClick: handleLocationShare,
695
- style: { padding: '4px 8px', border: 'none', background: 'transparent' },
696
- Share location
697
- },
698
- '📍',
699
- );
700
- },
701
- });
702
-
703
- const customActions = [
704
- 'EmojiPicker',
705
- 'ImagePicker',
706
- {
707
- key: 'location',
708
- label: 'Location',
709
- component: LocationPicker,
710
- },
711
- 'AttachmentPicker',
712
- ];
713
- </script>
714
- ```
715
-
716
- #### Example 3: Quick reply in customer service system
717
- ``` typescript
718
- <template>
719
- <MessageInput :actions="actions" />
720
- </template>
721
-
722
- <script lang="ts" setup>
723
- import { defineComponent, h, ref } from 'vue';
724
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
725
- import { useMessageInputState } from '@tencentcloud/uikit-component-vue3/src/states/MessageInputState';
726
-
727
- quick reply component
728
- const QuickReplyPicker = defineComponent({
729
- name: 'QuickReplyPicker',
730
- setup() {
731
- const { setContent } = useMessageInputState();
732
- const showPicker = ref(false);
733
-
734
- const quickReplies = [
735
- Hello, glad to help you.
736
- Please wait a moment, I'll check for you...
737
- Thank you for your consultation. Also, any other issues?
738
- The issue has been resolved. Have a pleasant life.
739
- ];
740
-
741
- const handleQuickReply = (text: string) => {
742
- setContent(text);
743
- showPicker.value = false;
744
- };
745
-
746
- return () =>
747
- h('div', { style: { position: 'relative' } }, [
748
- h('button',
749
- {
750
- title: 'Quick reply',
751
- onClick: () => (showPicker.value = !showPicker.value),
752
- },
753
- '⚡',
754
- ),
755
- showPicker.value &&
756
- h('div',
757
- {
758
- style: {
759
- position: 'absolute',
760
- bottom: '100%',
761
- left: 0,
762
- background: 'white',
763
- border: '1px solid #ccc',
764
- borderRadius: '4px',
765
- padding: '8px',
766
- minWidth: '200px',
767
- zIndex: 100, // Ensure it's above other elements
768
- },
769
- },
770
- quickReplies.map((reply, index) =>
771
- h('div',
772
- {
773
- key: index,
774
- onClick: () => handleQuickReply(reply),
775
- style: {
776
- padding: '4px 8px',
777
- cursor: 'pointer',
778
- borderRadius: '2px',
779
- '&:hover': { backgroundColor: '#f0f0f0' },
780
- },
781
- },
782
- reply,
783
- ),
784
- ),
785
- ),
786
- ]);
787
- },
788
- });
789
-
790
- const actions = [
791
- {
792
- key: 'quickReply',
793
- label: 'Quick reply',
794
- component: QuickReplyPicker,
795
- },
796
- 'EmojiPicker',
797
- 'FilePicker',
798
- ];
799
- </script>
800
- ```
801
-
802
- #### Example 4: Custom emoji panel
803
- ``` typescript
804
- <template>
805
- <MessageInput :EmojiPicker="CustomEmojiPicker" />
806
- </template>
807
-
808
- <script lang="ts" setup>
809
- import { defineComponent, h, ref } from 'vue';
810
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
811
- import { useMessageInputState } from '@tencentcloud/uikit-component-vue3/src/states/MessageInputState';
812
-
813
- const CustomEmojiPicker = defineComponent({
814
- name: 'CustomEmojiPicker',
815
- setup() {
816
- const { insertContent } = useMessageInputState();
817
- const showPicker = ref(false);
818
- const activeCategory = ref('common');
819
-
820
- const emojiCategories = {
821
- 'common': ['😀', '😂', '🥰', '😍', '🤔', '😭', '😡', '👍'],
822
- 'hand': ['👋', '🤝', '👏', '🙏', '✌️', '🤞', '🤟', '👌'],
823
- 'animal': ['🐶', '🐱', '🐭', '🐹', '🐰', '🦊', '🐻', '🐼'],
824
- };
825
-
826
- const insertEmoji = (emoji: string) => {
827
- insertContent(emoji);
828
- showPicker.value = false;
829
- };
830
-
831
- return () =>
832
- h('div', { style: { position: 'relative' } }, [
833
- h('button',
834
- {
835
- onClick: () => (showPicker.value = !showPicker.value),
836
- style: { border: 'none', background: 'transparent', cursor: 'pointer' },
837
- },
838
- '😊',
839
- ),
840
- showPicker.value &&
841
- h('div',
842
- {
843
- style: {
844
- position: 'absolute',
845
- bottom: '100%',
846
- left: 0,
847
- background: 'white',
848
- border: '1px solid #ccc',
849
- borderRadius: '8px',
850
- padding: '12px',
851
- width: '280px',
852
- boxShadow: '0 4px 12px rgba(0,0,0,0.1)',
853
- zIndex: 100, // Ensure it's above other elements
854
- },
855
- },
856
- [
857
- category tag
858
- h('div', { style: { display: 'flex', marginBottom: '8px' } },
859
- Object.keys(emojiCategories).map((category) =>
860
- h('button',
861
- {
862
- key: category,
863
- onClick: () => (activeCategory.value = category),
864
- style: {
865
- padding: '4px 8px',
866
- border: 'none',
867
- background: activeCategory.value === category ? '#1890ff' : 'transparent',
868
- color: activeCategory.value === category ? 'white' : '#666',
869
- borderRadius: '4px',
870
- cursor: 'pointer',
871
- fontSize: '12px',
872
- },
873
- },
874
- category,
875
- ),
876
- ),
877
- ),
878
- emoji grid
879
- h('div',
880
- {
881
- style: {
882
- display: 'grid',
883
- gridTemplateColumns: 'repeat(8, 1fr)',
884
- gap: '4px',
885
- },
886
- },
887
- emojiCategories[activeCategory.value].map((emoji) =>
888
- h('button',
889
- {
890
- key: emoji,
891
- onClick: () => insertEmoji(emoji),
892
- style: {
893
- border: 'none',
894
- background: 'transparent',
895
- fontSize: '20px',
896
- cursor: 'pointer',
897
- padding: '4px',
898
- borderRadius: '4px',
899
- },
900
- },
901
- emoji,
902
- ),
903
- ),
904
- ),
905
- ],
906
- ),
907
- ]);
908
- },
909
- });
910
- </script>
911
- ```
912
-
913
- ## Slots explanation
914
- - Type: MessageInputSlots.
915
-
916
- -Detailed instructions: Insert custom content at a specific location in the input component.
917
-
918
- ``` typescript
919
- interface MessageInputSlots {
920
- headerToolbar?: () => VNode[];
921
- footerToolbar?: () => VNode[];
922
- leftInline?: () => VNode[];
923
- rightInline?: () => VNode[];
924
- inputPrefix?: () => VNode[];
925
- inputSuffix?: () => VNode[];
926
- textEditor?: () => VNode[];
927
- }
928
- ```
929
-
930
- #### Example 1: Custom footerToolbar slot
931
- ``` typescript
932
- <template>
933
- <MessageInput>
934
- <template #footerToolbar>
935
- <div style="padding: 4px 12px; font-size: 12px; color: #999; text-align: right;">
936
- press Ctrl+Enter to wrap
937
- </div>
938
- </template>
939
- </MessageInput>
940
- </template>
941
- ```
942
-
943
- #### Example 2: Input box prefix/suffix feature
944
- ``` typescript
945
- <template>
946
- <MessageInput>
947
- <template #inputPrefix>
948
-
949
- </template>
950
- <template #inputSuffix>
951
- <button
952
- style="border: none; background: transparent; cursor: pointer;"
953
- @click="handleVoiceInput"
954
- >
955
- 🎤
956
- </button>
957
- </template>
958
- </MessageInput>
959
- </template>
960
-
961
- <script lang="ts" setup>
962
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
963
-
964
- const handleAtUser = () => {
965
- Trigger @user selection
966
- console.log('Toggle on @user selection');
967
- };
968
-
969
- const handleVoiceInput = () => {
970
- // Start voice input
971
- console.log('Start voice input');
972
- };
973
- </script>
974
- ```
975
-
976
- ### TextEditor
977
-
978
- Type: 'Component' | 'null'.
979
-
980
- Detailed explanation: TextEditor is used to replace the default text editor component. Default: `null`.
981
-
982
- #### Example: Custom text editor
983
- ``` typescript
984
- <template>
985
- <MessageInput>
986
- <template #textEditor>
987
- <RichTextEditor />
988
- </template>
989
- </MessageInput>
990
- </template>
991
-
992
- <script lang="ts" setup>
993
- import { defineComponent, h, ref, onMounted } from 'vue';
994
- import { MessageInput } from '@tencentcloud/uikit-component-vue3';
995
- import { useMessageInputState } from '@tencentcloud/uikit-component-vue3/src/states/MessageInputState';
996
-
997
- const RichTextEditor = defineComponent({
998
- name: 'RichTextEditor',
999
- setup() {
1000
- const { sendMessage } = useMessageInputState();
1001
- const editorRef = ref<HTMLDivElement | null>(null);
1002
- const inputRawValue = ref('');
1003
-
1004
- const handleInput = (e: Event) => {
1005
- const target = e.target as HTMLDivElement;
1006
- inputRawValue.value = (e.target as HTMLDivElement).textContent || '';
1007
- };
1008
-
1009
- const handleKeyDown = (e: KeyboardEvent) => {
1010
- if (e.key === 'Enter') {
1011
- sendMessage(inputRawValue.value);
1012
- if (editorRef.value) {
1013
- editorRef.value.textContent = '';
1014
- }
1015
- }
1016
- };
1017
-
1018
- onMounted(() => {
1019
- if (editorRef.value) {
1020
- editorRef.value.textContent = inputRawValue.value || '';
1021
- }
1022
- });
1023
-
1024
- return () =>
1025
- h('div',
1026
- {
1027
- style: {
1028
- flex: 1,
1029
- border: '1px solid #d9d9d9',
1030
- borderRadius: '6px',
1031
- padding: '8px 12px',
1032
- minHeight: '32px',
1033
- maxHeight: '120px',
1034
- overflow: 'auto',
1035
- },
1036
- },
1037
- h('div',
1038
- {
1039
- ref: editorRef,
1040
- contentEditable: true,
1041
- style: {
1042
- outline: 'none',
1043
- minHeight: '20px',
1044
- lineHeight: '20px',
1045
- },
1046
- onInput: handleInput,
1047
- onKeydown: handleKeyDown,
1048
- },
1049
- ),
1050
- );
1051
- },
1052
- });
1053
- </script>
1054
- ```