@tencent-rtc/mcp 1.4.6 → 1.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (552) hide show
  1. package/cursor-setting.png +0 -0
  2. package/knowledge/bm25-cache.js +74 -0
  3. package/knowledge/bm25-cache.js.map +1 -0
  4. package/knowledge/bm25.js +148 -0
  5. package/knowledge/bm25.js.map +1 -0
  6. package/knowledge/build-index.js +70 -0
  7. package/knowledge/build-index.js.map +1 -0
  8. package/knowledge/chunker.js +168 -0
  9. package/knowledge/chunker.js.map +1 -0
  10. package/knowledge/content-loader.js +40 -0
  11. package/knowledge/content-loader.js.map +1 -0
  12. package/knowledge/doc-url-resolver.js +143 -0
  13. package/knowledge/doc-url-resolver.js.map +1 -0
  14. package/knowledge/extractors.js +26 -0
  15. package/knowledge/extractors.js.map +1 -0
  16. package/knowledge/path-meta.js +185 -0
  17. package/knowledge/path-meta.js.map +1 -0
  18. package/knowledge/search/exact-lookup.js +498 -0
  19. package/knowledge/search/exact-lookup.js.map +1 -0
  20. package/knowledge/search/filter-pool.js +105 -0
  21. package/knowledge/search/filter-pool.js.map +1 -0
  22. package/knowledge/search/product-scope-intent.js +41 -0
  23. package/knowledge/search/product-scope-intent.js.map +1 -0
  24. package/knowledge/search/requires-framework.js +82 -0
  25. package/knowledge/search/requires-framework.js.map +1 -0
  26. package/knowledge/search/search-knowledge.js +230 -0
  27. package/knowledge/search/search-knowledge.js.map +1 -0
  28. package/mcp-server-prompt.png +0 -0
  29. package/package.json +1 -1
  30. package/resource/_schema/feature-aliases.yaml +10 -0
  31. package/resource/_schema/goal-tags.yaml +72 -0
  32. package/resource/_schema/products.yaml +19 -0
  33. package/resource/_schema/trtc-intents.yaml +27 -0
  34. package/resource/_schema/types.yaml +43 -0
  35. package/resource/index/component-slugs.json +1 -0
  36. package/resource/index/doc-source-urls.json +1 -0
  37. package/resource/index/manifest.json +1 -0
  38. package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
  39. package/resource/integration/callkit/preset/flutter/integration.md +346 -0
  40. package/resource/integration/callkit/preset/ios/integration.md +408 -0
  41. package/resource/integration/callkit/preset/react/integration.md +362 -0
  42. package/resource/integration/callkit/preset/vue/integration.md +356 -0
  43. package/resource/integration/chat/preset/android/integration.md +500 -0
  44. package/resource/integration/chat/preset/flutter/integration.md +370 -0
  45. package/resource/integration/chat/preset/ios/integration.md +566 -0
  46. package/resource/integration/chat/preset/react/integration.md +490 -0
  47. package/resource/integration/chat/preset/vue/integration.md +504 -0
  48. package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
  49. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
  50. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
  51. package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
  52. package/resource/integration/roomkit/preset/vue/integration.md +562 -0
  53. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
  54. package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
  55. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
  56. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
  57. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
  58. package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
  59. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
  60. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
  61. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
  62. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
  63. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
  64. package/resource/knowledge/callkit/faq/android.md +92 -0
  65. package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
  66. package/resource/knowledge/callkit/faq/error-code.md +67 -0
  67. package/resource/knowledge/callkit/faq/flutter.md +52 -0
  68. package/resource/knowledge/callkit/faq/ios.md +104 -0
  69. package/resource/knowledge/callkit/faq/web.md +74 -0
  70. package/resource/knowledge/callkit/preset/android/api.md +412 -0
  71. package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
  72. package/resource/knowledge/callkit/preset/ios/api.md +234 -0
  73. package/resource/knowledge/callkit/preset/web/api.md +83 -0
  74. package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
  75. package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
  76. package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
  77. package/resource/knowledge/chat/preset/android/features/language.md +136 -0
  78. package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
  79. package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
  80. package/resource/knowledge/chat/preset/android/features/search.md +64 -0
  81. package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
  82. package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
  83. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
  84. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
  85. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
  86. package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
  87. package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
  88. package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
  89. package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
  90. package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
  91. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
  92. package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
  93. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
  94. package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
  95. package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
  96. package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
  97. package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
  98. package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
  99. package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
  100. package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
  101. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
  102. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
  103. package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
  104. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
  105. package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
  106. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
  107. package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
  108. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
  109. package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
  110. package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
  111. package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
  112. package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
  113. package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
  114. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
  115. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
  116. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
  117. package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
  118. package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
  119. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
  120. package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
  121. package/resource/knowledge/chat/urls/error-code.md +17 -0
  122. package/resource/knowledge/chat/urls/product.md +43 -0
  123. package/resource/knowledge/chat/urls/restapi.md +204 -0
  124. package/resource/knowledge/chat/urls/sdk/android.md +80 -0
  125. package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
  126. package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
  127. package/resource/knowledge/chat/urls/sdk/web.md +80 -0
  128. package/resource/knowledge/chat/urls/webhook.md +68 -0
  129. package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
  130. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
  131. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
  132. package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
  133. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
  135. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
  136. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
  137. package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
  138. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
  139. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
  140. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
  141. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
  142. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
  143. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
  144. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
  145. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
  146. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
  147. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
  148. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
  149. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
  150. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
  151. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
  152. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
  153. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
  154. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
  155. package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
  156. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
  157. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
  158. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
  159. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
  160. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
  161. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
  162. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
  163. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
  164. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
  165. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
  166. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
  167. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
  168. package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
  169. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
  170. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
  171. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
  172. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
  173. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
  174. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
  175. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
  176. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
  177. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
  178. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
  179. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
  180. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
  181. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
  182. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
  183. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
  184. package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
  185. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
  186. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
  187. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
  188. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
  189. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
  190. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
  191. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
  192. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
  193. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
  194. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
  195. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
  196. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
  197. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
  198. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
  199. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
  200. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
  201. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
  202. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
  203. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
  204. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
  205. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
  206. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
  207. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
  208. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
  209. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
  210. package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
  211. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
  212. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
  213. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
  214. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
  215. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
  216. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
  217. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
  218. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
  219. package/resource/knowledge/livekit/faq/error-code.md +193 -0
  220. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
  221. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
  222. package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
  223. package/resource/knowledge/push/config/android.md +92 -0
  224. package/resource/knowledge/push/config/harmonyos.md +83 -0
  225. package/resource/knowledge/push/config/ios.md +254 -0
  226. package/resource/knowledge/push/config/react-native.md +254 -0
  227. package/resource/knowledge/push/config/unity.md +209 -0
  228. package/resource/knowledge/push/config/unreal-engine.md +194 -0
  229. package/resource/knowledge/push/integration/android.md +404 -0
  230. package/resource/knowledge/push/integration/flutter.md +465 -0
  231. package/resource/knowledge/push/integration/harmonyos.md +63 -0
  232. package/resource/knowledge/push/integration/ios.md +246 -0
  233. package/resource/knowledge/push/integration/react-native.md +366 -0
  234. package/resource/knowledge/push/integration/uni-app.md +208 -0
  235. package/resource/knowledge/push/integration/unity.md +389 -0
  236. package/resource/knowledge/push/integration/unreal-engine.md +390 -0
  237. package/resource/knowledge/push/overview/prepare.md +60 -0
  238. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
  239. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
  240. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
  241. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
  242. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
  243. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
  244. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
  245. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
  246. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
  247. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
  248. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
  249. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
  250. package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
  251. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
  252. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
  253. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
  254. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
  255. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
  256. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
  257. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
  258. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
  259. package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
  260. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
  261. package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
  262. package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
  263. package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
  264. package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
  265. package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
  266. package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
  267. package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
  268. package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
  269. package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
  270. package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
  271. package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
  272. package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
  273. package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
  274. package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
  275. package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
  276. package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
  277. package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
  278. package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
  279. package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
  280. package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
  281. package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
  282. package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
  283. package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
  284. package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
  285. package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
  286. package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
  287. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
  288. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
  289. package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
  290. package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
  291. package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
  292. package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
  293. package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
  294. package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
  295. package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
  296. package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
  297. package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
  298. package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
  299. package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
  300. package/server.js +35 -10
  301. package/server.js.map +1 -1
  302. package/tools/call/get_native_call_uikit_integration.js +2 -3
  303. package/tools/call/get_native_call_uikit_integration.js.map +1 -1
  304. package/tools/call/get_native_callkit_core_integration.js +2 -5
  305. package/tools/call/get_native_callkit_core_integration.js.map +1 -1
  306. package/tools/call/get_web_call_uikit_integration.js +2 -3
  307. package/tools/call/get_web_call_uikit_integration.js.map +1 -1
  308. package/tools/chat/get_native_chat_uikit_integration.js +2 -3
  309. package/tools/chat/get_native_chat_uikit_integration.js.map +1 -1
  310. package/tools/chat/get_web_chat_uikit_integration.js +2 -3
  311. package/tools/chat/get_web_chat_uikit_integration.js.map +1 -1
  312. package/tools/common/present_framework_choice.js +19 -13
  313. package/tools/common/present_framework_choice.js.map +1 -1
  314. package/tools/common/record_answer.js +19 -25
  315. package/tools/common/record_answer.js.map +1 -1
  316. package/tools/common/record_feedback.js +17 -30
  317. package/tools/common/record_feedback.js.map +1 -1
  318. package/tools/common/search_trtc_knowledge.js +45 -0
  319. package/tools/common/search_trtc_knowledge.js.map +1 -0
  320. package/tools/definitions/get_native_call_uikit_integration_def.js +3 -1
  321. package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
  322. package/tools/definitions/get_native_callkit_core_integration_def.js +5 -3
  323. package/tools/definitions/get_native_callkit_core_integration_def.js.map +1 -1
  324. package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -2
  325. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
  326. package/tools/definitions/get_native_livekit_core_integration_def.js +6 -5
  327. package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -1
  328. package/tools/definitions/get_web_call_uikit_integration_def.js +4 -2
  329. package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
  330. package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -0
  331. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
  332. package/tools/definitions/get_web_live_uikit_integration_def.js +5 -5
  333. package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
  334. package/tools/definitions/get_web_room_core_integration_def.js +50 -0
  335. package/tools/definitions/get_web_room_core_integration_def.js.map +1 -0
  336. package/tools/definitions/get_web_room_uikit_integration_def.js +5 -4
  337. package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
  338. package/tools/definitions/integration-boundary.js +6 -0
  339. package/tools/definitions/integration-boundary.js.map +1 -0
  340. package/tools/definitions/present_framework_choice_def.js +12 -10
  341. package/tools/definitions/present_framework_choice_def.js.map +1 -1
  342. package/tools/definitions/record_answer_def.js +19 -17
  343. package/tools/definitions/record_answer_def.js.map +1 -1
  344. package/tools/definitions/record_feedback_def.js +14 -13
  345. package/tools/definitions/record_feedback_def.js.map +1 -1
  346. package/tools/definitions/search_trtc_knowledge_def.js +40 -0
  347. package/tools/definitions/search_trtc_knowledge_def.js.map +1 -0
  348. package/tools/index.js +5 -36
  349. package/tools/index.js.map +1 -1
  350. package/tools/live/get_native_livekit_core_integration.js +1 -3
  351. package/tools/live/get_native_livekit_core_integration.js.map +1 -1
  352. package/tools/live/get_web_live_uikit_integration.js +2 -4
  353. package/tools/live/get_web_live_uikit_integration.js.map +1 -1
  354. package/tools/room/get_web_room_core_integration.js +48 -0
  355. package/tools/room/get_web_room_core_integration.js.map +1 -0
  356. package/tools/room/get_web_room_uikit_integration.js +2 -3
  357. package/tools/room/get_web_room_uikit_integration.js.map +1 -1
  358. package/utils/generate-structured-result.js +24 -30
  359. package/utils/generate-structured-result.js.map +1 -1
  360. package/utils/get-doc-content.js +14 -8
  361. package/utils/get-doc-content.js.map +1 -1
  362. package/utils/report-cls-client.js +18 -20
  363. package/utils/report-cls-client.js.map +1 -1
  364. package/utils/report-es-client.js +1 -1
  365. package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
  366. package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
  367. package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
  368. package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
  369. package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
  370. package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
  371. package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
  372. package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
  373. package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
  374. package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
  375. package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
  376. package/resource/doc/callkit/faq/common/error-code.md +0 -47
  377. package/resource/doc/callkit/faq/flutter-faq.md +0 -115
  378. package/resource/doc/callkit/faq/ios-faq.md +0 -115
  379. package/resource/doc/callkit/faq/web-faq.md +0 -36
  380. package/resource/doc/callkit/preset/android/api.md +0 -296
  381. package/resource/doc/callkit/preset/flutter/api.md +0 -410
  382. package/resource/doc/callkit/preset/flutter/integration.md +0 -164
  383. package/resource/doc/callkit/preset/ios/api.md +0 -80
  384. package/resource/doc/callkit/preset/ios/integration.md +0 -187
  385. package/resource/doc/callkit/preset/react/api.md +0 -501
  386. package/resource/doc/callkit/preset/react/integration.md +0 -86
  387. package/resource/doc/callkit/preset/vue/api.md +0 -501
  388. package/resource/doc/callkit/preset/vue/integration.md +0 -83
  389. package/resource/doc/chatkit/android/faq.md +0 -111
  390. package/resource/doc/chatkit/android/features/theme.md +0 -219
  391. package/resource/doc/chatkit/android/integration.md +0 -490
  392. package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
  393. package/resource/doc/chatkit/faq/common/product.md +0 -7
  394. package/resource/doc/chatkit/faq/common/server.md +0 -44
  395. package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
  396. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
  397. package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
  398. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
  399. package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
  400. package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
  401. package/resource/doc/chatkit/flutter/faq.md +0 -23
  402. package/resource/doc/chatkit/flutter/features/theme.md +0 -235
  403. package/resource/doc/chatkit/flutter/integration.md +0 -344
  404. package/resource/doc/chatkit/ios/faq.md +0 -111
  405. package/resource/doc/chatkit/ios/features/theme.md +0 -267
  406. package/resource/doc/chatkit/react/components/avatar.md +0 -104
  407. package/resource/doc/chatkit/react/components/chat-header.md +0 -148
  408. package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
  409. package/resource/doc/chatkit/react/components/chat.md +0 -38
  410. package/resource/doc/chatkit/react/components/component-list.md +0 -37
  411. package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
  412. package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
  413. package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
  414. package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
  415. package/resource/doc/chatkit/react/components/message-list.md +0 -293
  416. package/resource/doc/chatkit/react/components/tuikit.md +0 -34
  417. package/resource/doc/chatkit/react/faq.md +0 -26
  418. package/resource/doc/chatkit/react/integration.md +0 -416
  419. package/resource/doc/chatkit/vue/components/avatar.md +0 -104
  420. package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
  421. package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
  422. package/resource/doc/chatkit/vue/components/chat.md +0 -45
  423. package/resource/doc/chatkit/vue/components/component-list.md +0 -87
  424. package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
  425. package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
  426. package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
  427. package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
  428. package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
  429. package/resource/doc/chatkit/vue/components/message-list.md +0 -433
  430. package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
  431. package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
  432. package/resource/doc/chatkit/vue/faq.md +0 -36
  433. package/resource/doc/chatkit/vue/integration.md +0 -428
  434. package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
  435. package/resource/doc/livekit/faq/common/error-code.md +0 -88
  436. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
  437. package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
  438. package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
  439. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
  440. package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
  441. package/resource/doc/roomkit/faq/common/error-code.md +0 -67
  442. package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
  443. package/resource/doc/roomkit/vue/features/device-state.md +0 -460
  444. package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
  445. package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
  446. package/resource/doc/roomkit/vue/features/room-state.md +0 -282
  447. package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
  448. package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
  449. package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
  450. package/resource/doc/roomkit/vue/integration.md +0 -315
  451. package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
  452. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  453. package/resource/doc/rtcengine/web/.gitkeep +0 -0
  454. package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
  455. package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
  456. package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
  457. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
  458. package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
  459. package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
  460. package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
  461. package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
  462. package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
  463. package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
  464. package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
  465. package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
  466. package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
  467. package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
  468. package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
  469. package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
  470. package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
  471. package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
  472. package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
  473. package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
  474. package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
  475. package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
  476. package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
  477. package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
  478. package/tools/call/get_callkit_api.js +0 -33
  479. package/tools/call/get_callkit_api.js.map +0 -1
  480. package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
  481. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
  482. package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
  483. package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
  484. package/tools/common/get_faq.js +0 -266
  485. package/tools/common/get_faq.js.map +0 -1
  486. package/tools/common/record_skill_session.js +0 -69
  487. package/tools/common/record_skill_session.js.map +0 -1
  488. package/tools/definitions/get_callkit_api_def.js +0 -29
  489. package/tools/definitions/get_callkit_api_def.js.map +0 -1
  490. package/tools/definitions/get_faq_def.js +0 -49
  491. package/tools/definitions/get_faq_def.js.map +0 -1
  492. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
  493. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
  494. package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
  495. package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
  496. package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
  497. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
  498. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
  499. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
  500. package/tools/definitions/get_web_livekit_api_def.js +0 -30
  501. package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
  502. package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
  503. package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
  504. package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
  505. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
  506. package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
  507. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
  508. package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
  509. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
  510. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
  511. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
  512. package/tools/definitions/record_skill_session_def.js +0 -31
  513. package/tools/definitions/record_skill_session_def.js.map +0 -1
  514. package/tools/live/get_native_livekit_core_features.js +0 -68
  515. package/tools/live/get_native_livekit_core_features.js.map +0 -1
  516. package/tools/live/get_web_livekit_api.js +0 -33
  517. package/tools/live/get_web_livekit_api.js.map +0 -1
  518. package/tools/live/get_web_livekit_component_detail.js +0 -35
  519. package/tools/live/get_web_livekit_component_detail.js.map +0 -1
  520. package/tools/room/get_web_roomkit_feature_detail.js +0 -69
  521. package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
  522. package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
  523. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
  524. package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
  525. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
  526. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
  527. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
  528. package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
  529. package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
  530. package/utils/build-session-directives.js +0 -120
  531. package/utils/build-session-directives.js.map +0 -1
  532. package/utils/handle-framework.js +0 -9
  533. package/utils/handle-framework.js.map +0 -1
  534. package/utils/handle-state-name.js +0 -29
  535. package/utils/handle-state-name.js.map +0 -1
  536. package/utils/report-runtime-error-cls-client.js +0 -91
  537. package/utils/report-runtime-error-cls-client.js.map +0 -1
  538. /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
  539. /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
  540. /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
  541. /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
  542. /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
  543. /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
  544. /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
  545. /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
  546. /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
  547. /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
  548. /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
  549. /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
  550. /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
  551. /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
  552. /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
- ```