tuikit-atomicx-vue3 3.3.0-beta.3 → 3.3.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 (243) hide show
  1. package/dist/AttachmentPicker.module-BesmtGyl.js +11 -0
  2. package/dist/FilePicker.vue_vue_type_script_setup_true_lang-CdJ4DUzE.js +76 -0
  3. package/dist/ImagePicker.vue_vue_type_script_setup_true_lang-CbNUofpK.js +76 -0
  4. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-XRL7A5Gj.js → MessageInput.vue_vue_type_script_setup_true_lang-wUJPjWbx.js} +23 -18
  5. package/dist/VideoPicker.vue_vue_type_script_setup_true_lang-CmxjbNDJ.js +76 -0
  6. package/dist/chat/index.d.ts +3747 -2386
  7. package/dist/chat/index.js +12 -11
  8. package/dist/components/BarrageInput/BarrageInputH5.js +32 -8
  9. package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +9 -5
  10. package/dist/components/BarrageInput/TextEditor/index.js +14 -6
  11. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue.d.ts +4 -4
  12. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +12 -4
  13. package/dist/components/BarrageList/i18n/en-US/index.d.ts +1 -0
  14. package/dist/components/BarrageList/i18n/en-US/index.js +2 -1
  15. package/dist/components/BarrageList/i18n/zh-CN/index.d.ts +1 -0
  16. package/dist/components/BarrageList/i18n/zh-CN/index.js +2 -1
  17. package/dist/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.js +5 -3
  18. package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +3 -3
  19. package/dist/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.js +3 -3
  20. package/dist/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.js +3 -3
  21. package/dist/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.js +3 -3
  22. package/dist/components/ChatSetting/SettingItem/SettingItem.js +21 -21
  23. package/dist/components/ChatSetting/i18n/en-US.js +3 -3
  24. package/dist/components/ChatSetting/i18n/zh-CN.js +3 -3
  25. package/dist/components/ChatSetting/index.d.ts +1 -4
  26. package/dist/components/ChatSetting/index.js +3 -6
  27. package/dist/components/CoGuestPanel/CoGuestPanel.js +1 -1
  28. package/dist/components/ContactList/ContactInfo/ContactInfo.js +17 -17
  29. package/dist/components/ContactList/ContactInfo/ContactInfo.vue.d.ts +26 -2
  30. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +2 -1
  31. package/dist/components/ContactList/ContactList.js +19 -10
  32. package/dist/components/ContactList/ContactList.vue.d.ts +109 -1
  33. package/dist/components/ContactList/index.d.ts +158 -26
  34. package/dist/components/ConversationList/ConversationActions/ConversationActions.js +8 -9
  35. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +2 -1
  36. package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.js +8 -8
  37. package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.js +1 -2
  38. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.js +8 -8
  39. package/dist/components/ConversationList/ConversationList.js +18 -44
  40. package/dist/components/ConversationList/ConversationList.vue.d.ts +197 -1535
  41. package/dist/components/ConversationList/ConversationListContent/ConversationListContent.js +8 -11
  42. package/dist/components/ConversationList/ConversationListContent/ConversationListContent.vue.d.ts +22 -340
  43. package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +80 -134
  44. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.js +14 -14
  45. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.js +14 -14
  46. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.js +19 -30
  47. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue.d.ts +0 -2
  48. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +14 -15
  49. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +12 -24
  50. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUnread.js +14 -14
  51. package/dist/components/ConversationList/ConversationPreview/index.d.ts +1 -1
  52. package/dist/components/ConversationList/ConversationPreview/index.js +17 -21
  53. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.js +1 -0
  54. package/dist/components/ConversationList/index.d.ts +468 -2400
  55. package/dist/components/ConversationList/index.js +1 -1
  56. package/dist/components/LiveCoreView/index.js +113 -58
  57. package/dist/components/LiveCoreView/index.vue.d.ts +9 -0
  58. package/dist/components/LiveList/LiveList.js +7 -5
  59. package/dist/components/LiveList/LiveListH5.js +77 -71
  60. package/dist/components/LiveList/i18n/en-US/index.d.ts +5 -0
  61. package/dist/components/LiveList/i18n/en-US/index.js +6 -1
  62. package/dist/components/LiveList/i18n/zh-CN/index.d.ts +5 -0
  63. package/dist/components/LiveList/i18n/zh-CN/index.js +6 -1
  64. package/dist/components/LiveList/pullToRefresh.js +204 -0
  65. package/dist/components/LiveList/pullToRefresh.vue.d.ts +86 -0
  66. package/dist/components/LiveScenePanel/CameraSettingDialog.js +6 -5
  67. package/dist/components/LiveScenePanel/index.js +3 -3
  68. package/dist/components/MessageInput/AttachmentPicker/AttachmentPicker.vue.d.ts +0 -4
  69. package/dist/components/MessageInput/AttachmentPicker/FilePicker.js +1 -1
  70. package/dist/components/MessageInput/AttachmentPicker/ImagePicker.js +1 -1
  71. package/dist/components/MessageInput/AttachmentPicker/VideoPicker.js +1 -1
  72. package/dist/components/MessageInput/AttachmentPicker/index.js +14 -19
  73. package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +3 -3
  74. package/dist/components/MessageInput/MessageInput.js +1 -1
  75. package/dist/components/MessageInput/MessageInput.vue.d.ts +6 -9
  76. package/dist/components/MessageInput/TextEditor/TextEditor.vue.d.ts +2 -2
  77. package/dist/components/MessageInput/TextEditor/index.js +18 -9
  78. package/dist/components/MessageInput/index.d.ts +5 -41
  79. package/dist/components/MessageInput/index.js +4 -4
  80. package/dist/components/MessageList/Message/CustomMessage/index.js +2 -2
  81. package/dist/components/MessageList/Message/FaceMessage/FaceMessage.js +7 -5
  82. package/dist/components/MessageList/Message/FaceMessage/FaceMessage.vue.d.ts +8 -8
  83. package/dist/components/MessageList/Message/LocationMessage/LocationMessage.js +2 -1
  84. package/dist/components/MessageList/Message/MergerMessage/MergerMessage.js +2 -1
  85. package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.js +12 -4
  86. package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue.d.ts +3 -3
  87. package/dist/components/MessageList/MessageForward/MessageForward.js +2 -3
  88. package/dist/components/MessageList/MessageList.js +14 -7
  89. package/dist/components/MessageList/MessageList.vue.d.ts +1 -1
  90. package/dist/components/MessageList/MessageTimeDivider/MessageTimeDivider.js +5 -5
  91. package/dist/components/MessageList/MessageTimeDivider/MessageTimeDivider.vue.d.ts +10 -10
  92. package/dist/components/MessageList/index.d.ts +143 -5
  93. package/dist/components/MessageList/index.js +5 -5
  94. package/dist/components/Search/Search.js +1 -3
  95. package/dist/components/Search/SearchResults/EmptyResult/EmptyResult.js +4 -6
  96. package/dist/components/Search/SearchResults/Loading/Loading.js +2 -4
  97. package/dist/components/Search/SearchResults/SearchResults.js +20 -22
  98. package/dist/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.js +6 -8
  99. package/dist/components/Search/SearchResults/SearchResultsItem/Group/Group.js +5 -7
  100. package/dist/components/Search/SearchResults/SearchResultsItem/Message/Message.js +19 -21
  101. package/dist/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.js +1 -3
  102. package/dist/components/Search/SearchResults/SearchResultsItem/User/User.js +5 -7
  103. package/dist/components/StreamMixer/LocalMixer/index.js +11 -5
  104. package/dist/components/StreamView/manager/mediaManager.js +1 -1
  105. package/dist/components/UserPicker/UserPicker.js +2 -2
  106. package/dist/components/UserPicker/UserPicker.vue.d.ts +7 -8
  107. package/dist/components/UserPicker/components/ListMode/ListMode.js +14 -17
  108. package/dist/components/UserPicker/components/ListMode/ListMode.vue.d.ts +2 -2
  109. package/dist/components/UserPicker/components/SelectedPanel/SelectedPanel.vue.d.ts +2 -2
  110. package/dist/components/UserPicker/components/TreeMode/TreeMode.vue.d.ts +3 -3
  111. package/dist/components/UserPicker/components/TreeMode/TreeNode.vue.d.ts +4 -4
  112. package/dist/components/UserPicker/hooks/useSearchFilter.d.ts +3 -3
  113. package/dist/components/UserPicker/hooks/useSelection.d.ts +8 -8
  114. package/dist/components/UserPicker/hooks/useTreeState.d.ts +3 -3
  115. package/dist/components/UserPicker/index.d.ts +134 -3
  116. package/dist/components/UserPicker/index.js +3 -2
  117. package/dist/components/UserPicker/type.d.ts +18 -18
  118. package/dist/index.js +6 -3
  119. package/dist/rtc/index.d.ts +9 -0
  120. package/dist/states/GroupSettingState/GroupSettingState.js +3 -3
  121. package/dist/states/LiveSeatState/usePlayStream/MixStreamPlayer.js +3 -0
  122. package/dist/states/LoginState.js +1 -0
  123. package/dist/states/MessageInputState/MessageInputState.js +25 -5
  124. package/dist/styles/index.css +1275 -3559
  125. package/dist/types/contact.d.ts +13 -12
  126. package/dist/types/conversation.d.ts +12 -14
  127. package/dist/types/engine.d.ts +12 -0
  128. package/dist/types/engine.js +15 -0
  129. package/dist/types/index.js +2 -1
  130. package/dist/utils/json.js +0 -1
  131. package/package.json +7 -3
  132. package/src/chat/index.ts +12 -4
  133. package/src/components/BarrageInput/BarrageInputH5.vue +50 -4
  134. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.module.scss +1 -0
  135. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
  136. package/src/components/BarrageInput/TextEditor/Editor.scss +1 -1
  137. package/src/components/BarrageInput/TextEditor/TextEditor.module.scss +2 -0
  138. package/src/components/BarrageInput/TextEditor/TextEditor.vue +6 -0
  139. package/src/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue +8 -8
  140. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +10 -0
  141. package/src/components/BarrageList/i18n/en-US/index.ts +1 -0
  142. package/src/components/BarrageList/i18n/zh-CN/index.ts +1 -0
  143. package/src/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.vue +5 -2
  144. package/src/components/ChatSetting/GroupChatSetting/GroupChatSetting.vue +5 -4
  145. package/src/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.vue +2 -2
  146. package/src/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.vue +3 -2
  147. package/src/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.vue +3 -3
  148. package/src/components/ChatSetting/SettingItem/SettingItem.vue +10 -7
  149. package/src/components/ChatSetting/i18n/en-US.ts +3 -3
  150. package/src/components/ChatSetting/i18n/zh-CN.ts +3 -3
  151. package/src/components/ChatSetting/index.ts +3 -3
  152. package/src/components/CoGuestPanel/CoGuestPanel.vue +9 -0
  153. package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.scss +2 -0
  154. package/src/components/ContactList/ContactInfo/ContactInfo.vue +17 -9
  155. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.scss +2 -0
  156. package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.scss +4 -3
  157. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.scss +2 -0
  158. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.scss +2 -0
  159. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +1 -0
  160. package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.scss +2 -2
  161. package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.scss +3 -2
  162. package/src/components/ContactList/ContactList.scss +2 -1
  163. package/src/components/ContactList/ContactList.vue +18 -3
  164. package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.scss +3 -3
  165. package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.scss +5 -6
  166. package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.scss +3 -3
  167. package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.scss +5 -6
  168. package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.scss +3 -3
  169. package/src/components/ConversationList/ConversationActions/ConversationActions.scss +2 -12
  170. package/src/components/ConversationList/ConversationActions/ConversationActions.vue +2 -2
  171. package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +1 -0
  172. package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.scss +2 -1
  173. package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue +2 -2
  174. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.scss +2 -1
  175. package/src/components/ConversationList/ConversationList.scss +0 -5
  176. package/src/components/ConversationList/ConversationList.vue +15 -41
  177. package/src/components/ConversationList/ConversationListContent/ConversationListContent.scss +1 -0
  178. package/src/components/ConversationList/ConversationListContent/ConversationListContent.vue +13 -18
  179. package/src/components/ConversationList/ConversationPreview/ConversationPreview.scss +11 -9
  180. package/src/components/ConversationList/ConversationPreview/ConversationPreview.vue +14 -16
  181. package/src/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue +2 -14
  182. package/src/components/ConversationList/ConversationPreview/index.ts +1 -1
  183. package/src/components/ConversationList/ConversationSearch/ConversationSearch.vue +1 -0
  184. package/src/components/LiveCoreView/index.vue +144 -78
  185. package/src/components/LiveList/LiveList.vue +3 -0
  186. package/src/components/LiveList/LiveListH5.vue +60 -85
  187. package/src/components/LiveList/i18n/en-US/index.ts +5 -0
  188. package/src/components/LiveList/i18n/zh-CN/index.ts +5 -0
  189. package/src/components/LiveList/pullToRefresh.vue +364 -0
  190. package/src/components/LiveScenePanel/CameraSettingDialog.vue +6 -5
  191. package/src/components/LiveScenePanel/index.vue +2 -2
  192. package/src/components/MessageInput/AttachmentPicker/AttachmentPicker.module.scss +4 -0
  193. package/src/components/MessageInput/AttachmentPicker/AttachmentPicker.vue +12 -17
  194. package/src/components/MessageInput/AttachmentPicker/FilePicker.vue +3 -2
  195. package/src/components/MessageInput/AttachmentPicker/ImagePicker.vue +3 -2
  196. package/src/components/MessageInput/AttachmentPicker/VideoPicker.vue +3 -2
  197. package/src/components/MessageInput/EmojiPicker/EmojiPicker.module.scss +1 -0
  198. package/src/components/MessageInput/MessageInput.vue +21 -15
  199. package/src/components/MessageInput/TextEditor/Editor.scss +1 -0
  200. package/src/components/MessageInput/TextEditor/TextEditor.vue +16 -6
  201. package/src/components/MessageInput/types.d.ts +3 -4
  202. package/src/components/MessageList/Message/CustomMessage/CustomMessage.vue +1 -1
  203. package/src/components/MessageList/Message/FaceMessage/FaceMessage.vue +10 -7
  204. package/src/components/MessageList/Message/LocationMessage/LocationMessage.vue +3 -1
  205. package/src/components/MessageList/Message/MergerMessage/MergerMessage.vue +1 -1
  206. package/src/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue +2 -2
  207. package/src/components/MessageList/MessageForward/MessageForward.vue +3 -3
  208. package/src/components/MessageList/MessageList.vue +17 -5
  209. package/src/components/MessageList/MessageTimeDivider/MessageTimeDivider.vue +9 -9
  210. package/src/components/MessageList/index.ts +5 -4
  211. package/src/components/Search/Search.scss +0 -3
  212. package/src/components/Search/SearchResults/EmptyResult/EmptyResult.scss +0 -3
  213. package/src/components/Search/SearchResults/Loading/Loading.scss +0 -3
  214. package/src/components/Search/SearchResults/SearchResults.scss +7 -16
  215. package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.scss +5 -11
  216. package/src/components/Search/SearchResults/SearchResultsItem/Group/Group.scss +5 -11
  217. package/src/components/Search/SearchResults/SearchResultsItem/Message/Message.scss +5 -11
  218. package/src/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.scss +0 -3
  219. package/src/components/Search/SearchResults/SearchResultsItem/User/User.scss +5 -6
  220. package/src/components/StreamMixer/LocalMixer/index.vue +9 -4
  221. package/src/components/StreamView/manager/mediaManager.ts +1 -1
  222. package/src/components/UserPicker/UserPicker.vue +6 -9
  223. package/src/components/UserPicker/components/ListMode/ListMode.vue +3 -7
  224. package/src/components/UserPicker/components/SelectedPanel/SelectedPanel.vue +2 -2
  225. package/src/components/UserPicker/components/TreeMode/TreeMode.vue +3 -3
  226. package/src/components/UserPicker/components/TreeMode/TreeNode.vue +3 -3
  227. package/src/components/UserPicker/hooks/useSearchFilter.ts +15 -14
  228. package/src/components/UserPicker/hooks/useSelection.ts +32 -32
  229. package/src/components/UserPicker/hooks/useTreeState.ts +4 -4
  230. package/src/components/UserPicker/index.ts +16 -14
  231. package/src/components/UserPicker/type.ts +18 -18
  232. package/src/types/contact.ts +13 -12
  233. package/src/types/conversation.ts +12 -14
  234. package/src/types/engine.ts +15 -0
  235. package/src/utils/json.ts +0 -4
  236. package/dist/AttachmentPicker.module-0_DWsAtr.js +0 -11
  237. package/dist/FilePicker.vue_vue_type_script_setup_true_lang-CaSj3Gh_.js +0 -72
  238. package/dist/ImagePicker.vue_vue_type_script_setup_true_lang-CrzGMmrh.js +0 -72
  239. package/dist/VideoPicker.vue_vue_type_script_setup_true_lang-DTv6TJKr.js +0 -72
  240. package/dist/states/UIOpenControlState/UIOpenControlState.d.ts +0 -15
  241. package/dist/states/UIOpenControlState/UIOpenControlState.js +0 -28
  242. package/dist/states/UIOpenControlState/index.d.ts +0 -1
  243. package/dist/states/UIOpenControlState/index.js +0 -4
@@ -1,6 +1,6 @@
1
1
  <script lang="ts" setup>
2
2
  import { ref, computed, onMounted, onUnmounted } from 'vue';
3
- import { IconArrowStrokeRight, IconMinus, IconAdd, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
3
+ import { IconArrowStrokeRight, IconMinus, IconPlus, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
4
4
  import {
5
5
  useGroupSettingState,
6
6
  GroupPermission,
@@ -13,7 +13,7 @@ interface GroupMembersProps {
13
13
  showAddButton: boolean; // Whether to show add button
14
14
  showRemoveButton: boolean; // Whether to show remove button
15
15
  // Basic configuration
16
- title?: string; // Title, default "群成员"
16
+ title?: string; // Title
17
17
  members?: GroupMember[] | undefined; // Member list
18
18
  memberCount?: number; // Total member count
19
19
  maxDisplayCount?: number; // Mini version display count, default 6
@@ -239,7 +239,7 @@ onUnmounted(() => {
239
239
  @click="handleAddMember"
240
240
  >
241
241
  <div class="group-members__action-btn__icon">
242
- <IconAdd />
242
+ <IconPlus />
243
243
  </div>
244
244
  <div class="group-members__action-btn__label">
245
245
  {{ t('ChatSetting.add') }}
@@ -1,7 +1,7 @@
1
1
  <script lang="ts" setup>
2
2
  import { ref, nextTick, useCssModule } from 'vue';
3
- import cs from 'classnames';
4
3
  import { IconEditNameCard, TUIButton, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
4
+ import cs from 'classnames';
5
5
 
6
6
  // Base props shared by all types
7
7
  interface BaseSettingItemProps {
@@ -59,7 +59,6 @@ const SettingItemType = {
59
59
  DISPLAY: 'display',
60
60
  } as const;
61
61
 
62
-
63
62
  const { t } = useUIKit();
64
63
  const classes = useCssModule();
65
64
 
@@ -464,15 +463,19 @@ function handleSwitchChange(event: Event) {
464
463
  &:focus {
465
464
  outline: none;
466
465
 
467
- border-color: var(--primary-color);
466
+ border-color: var(--text-color-link);
468
467
  }
469
468
 
470
469
  &::placeholder {
471
- color: var(--text-color-placeholder);
470
+ color: var(--text-color-secondary);
472
471
  }
473
472
 
474
473
  &--error {
475
- border-color: var(--error-color);
474
+ border-color: var(--text-color-error);
475
+
476
+ &:focus {
477
+ border-color: var(--text-color-error);
478
+ }
476
479
  }
477
480
  }
478
481
 
@@ -485,7 +488,7 @@ function handleSwitchChange(event: Event) {
485
488
  font-size: 12px;
486
489
  margin-top: 4px;
487
490
 
488
- color: var(--error-color);
491
+ color: var(--text-color-error);
489
492
  }
490
493
 
491
494
  &__actions {
@@ -504,7 +507,7 @@ function handleSwitchChange(event: Event) {
504
507
  </style>
505
508
 
506
509
  <style lang="scss">
507
- .unique-icon-btn {
510
+ span.unique-icon-btn {
508
511
  display: flex;
509
512
  align-items: center;
510
513
  justify-content: center;
@@ -44,13 +44,13 @@ const ChatSetting = {
44
44
  // Validation messages
45
45
  group_name_required_string: 'Group name must be a string',
46
46
  group_name_required: 'Group name cannot be empty',
47
- group_name_max_length: 'Group name cannot exceed 25 characters',
47
+ group_name_max_length: 'Group name cannot exceed 30 characters',
48
48
  group_name_unchanged: 'Please modify the group name before submitting',
49
49
  group_introduction_required_string: 'Group introduction must be a string',
50
- group_introduction_max_length: 'Group introduction cannot exceed 100 characters',
50
+ group_introduction_max_length: 'Group introduction cannot exceed 130 characters',
51
51
  group_introduction_unchanged: 'Please modify the group introduction before submitting',
52
52
  group_notification_required_string: 'Group notification must be a string',
53
- group_notification_max_length: 'Group notification cannot exceed 100 characters',
53
+ group_notification_max_length: 'Group notification cannot exceed 130 characters',
54
54
  group_notification_unchanged: 'Please modify the group notification before submitting',
55
55
  group_name_card_required_string: 'Name card must be a string',
56
56
  group_name_card_unchanged: 'Please modify the name card before submitting',
@@ -44,13 +44,13 @@ const ChatSetting = {
44
44
  // Validation messages
45
45
  group_name_required_string: '群名称必须是字符串',
46
46
  group_name_required: '群名称不能为空',
47
- group_name_max_length: '群名称不能超过25个字符',
47
+ group_name_max_length: '群名称不能超过30个字符',
48
48
  group_name_unchanged: '请修改群名称后再提交',
49
49
  group_introduction_required_string: '群简介必须是字符串',
50
- group_introduction_max_length: '群简介不能超过100个字符',
50
+ group_introduction_max_length: '群简介不能超过130个字符',
51
51
  group_introduction_unchanged: '请修改群简介后再提交',
52
52
  group_notification_required_string: '群公告必须是字符串',
53
- group_notification_max_length: '群公告不能超过100个字符',
53
+ group_notification_max_length: '群公告不能超过130个字符',
54
54
  group_notification_unchanged: '请修改群公告后再提交',
55
55
  group_name_card_required_string: '群名片必须是字符串',
56
56
  group_name_card_unchanged: '请修改群名片后再提交',
@@ -1,10 +1,10 @@
1
- import ChatSetting from './ChatSetting.vue';
1
+ import ChatSettingComponent from './ChatSetting.vue';
2
2
  import { addI18n } from '../../i18n';
3
3
  import { resources } from './i18n';
4
4
 
5
5
  addI18n('zh-CN', { translation: { ChatSetting: resources['zh-CN'] } });
6
6
  addI18n('en-US', { translation: { ChatSetting: resources['en-US'] } });
7
7
 
8
+ const ChatSetting = ChatSettingComponent;
9
+
8
10
  export { ChatSetting };
9
- export { C2CChatSetting } from './C2CChatSetting';
10
- export { GroupChatSetting } from './GroupChatSetting';
@@ -384,8 +384,17 @@ const handleDisconnect = async (userId: string) => {
384
384
  font-size: 16px;
385
385
  font-weight: 500;
386
386
  color: var(--text-color-primary);
387
+ overflow: hidden;
388
+ text-overflow: ellipsis;
389
+ white-space: nowrap;
390
+ max-width: 200px;
387
391
  }
388
392
  }
393
+
394
+ .user-actions {
395
+ display: flex;
396
+ gap: 6px;
397
+ }
389
398
  }
390
399
  }
391
400
 
@@ -30,6 +30,7 @@
30
30
  font-weight: 400;
31
31
  color: var(--text-color-primary);
32
32
  max-width: 100%;
33
+
33
34
  @include mixins.text-ellipsis();
34
35
  }
35
36
 
@@ -39,6 +40,7 @@
39
40
  color: var(--text-color-tertiary);
40
41
  width: 100%;
41
42
  word-break: break-word;
43
+
42
44
  @include mixins.multi-line-ellipsis(3);
43
45
  }
44
46
 
@@ -59,6 +59,14 @@ import type { ContactInfoProps, ContactGroupItem, FriendApplication, GroupApplic
59
59
 
60
60
  const props = withDefaults(defineProps<ContactInfoProps>(), {
61
61
  showActions: true,
62
+ PlaceholderEmpty: undefined,
63
+ FriendInfoComponent: undefined,
64
+ GroupInfoComponent: undefined,
65
+ BlacklistInfoComponent: undefined,
66
+ FriendApplicationInfoComponent: undefined,
67
+ GroupApplicationInfoComponent: undefined,
68
+ SearchGroupInfoComponent: undefined,
69
+ SearchUserInfoComponent: undefined,
62
70
  });
63
71
 
64
72
  const emit = defineEmits<{
@@ -67,7 +75,7 @@ const emit = defineEmits<{
67
75
  deleteFriend: [data: Friend];
68
76
  addToBlacklist: [data: Friend];
69
77
  removeFromBlacklist: [data: UserProfile];
70
- updateFriendRemark: [data: Friend];
78
+ updateFriendRemark: [data: Friend, remark: string];
71
79
  enterGroup: [data: GroupModel];
72
80
  leaveGroup: [data: GroupModel];
73
81
  dismissGroup: [data: GroupModel];
@@ -189,19 +197,19 @@ watch(
189
197
  const getComponentByType = (type?: ContactItemType) => {
190
198
  switch (type) {
191
199
  case ContactItemType.FRIEND:
192
- return FriendInfo;
200
+ return props.FriendInfoComponent || FriendInfo;
193
201
  case ContactItemType.GROUP:
194
- return GroupInfo;
202
+ return props.GroupInfoComponent || GroupInfo;
195
203
  case ContactItemType.BLACK:
196
- return BlacklistInfo;
204
+ return props.BlacklistInfoComponent || BlacklistInfo;
197
205
  case ContactItemType.FRIEND_REQUEST:
198
- return FriendApplicationInfo;
206
+ return props.FriendApplicationInfoComponent || FriendApplicationInfo;
199
207
  case ContactItemType.GROUP_REQUEST:
200
- return GroupApplicationInfo;
208
+ return props.GroupApplicationInfoComponent || GroupApplicationInfo;
201
209
  case ContactItemType.SEARCH_USER:
202
- return SearchUserInfo;
210
+ return props.SearchUserInfoComponent || SearchUserInfo;
203
211
  case ContactItemType.SEARCH_GROUP:
204
- return SearchGroupInfo;
212
+ return props.SearchGroupInfoComponent || SearchGroupInfo;
205
213
  default:
206
214
  return 'div';
207
215
  }
@@ -241,7 +249,7 @@ const handleSendMessage = (data: Friend) => emit('sendMessage', data);
241
249
  const handleDeleteFriend = (data: Friend) => emit('deleteFriend', data);
242
250
  const handleAddToBlacklist = (data: Friend) => emit('addToBlacklist', data);
243
251
  const handleRemoveFromBlacklist = (data: UserProfile) => emit('removeFromBlacklist', data);
244
- const handleUpdateFriendRemark = (data: Friend) => emit('updateFriendRemark', data);
252
+ const handleUpdateFriendRemark = (data: Friend, remark: string) => emit('updateFriendRemark', data, remark);
245
253
  const handleEnterGroup = (data: GroupModel) => emit('enterGroup', data);
246
254
  const handleLeaveGroup = (data: GroupModel) => emit('leaveGroup', data);
247
255
  const handleDismissGroup = (data: GroupModel) => emit('dismissGroup', data);
@@ -30,6 +30,7 @@
30
30
  font-weight: 400;
31
31
  color: var(--text-color-primary);
32
32
  max-width: 100%;
33
+
33
34
  @include mixins.text-ellipsis();
34
35
  }
35
36
 
@@ -39,6 +40,7 @@
39
40
  color: var(--text-color-tertiary);
40
41
  width: 100%;
41
42
  word-break: break-word;
43
+
42
44
  @include mixins.multi-line-ellipsis(3);
43
45
  }
44
46
 
@@ -30,6 +30,7 @@
30
30
  font-weight: 400;
31
31
  color: var(--text-color-primary);
32
32
  max-width: 100%;
33
+
33
34
  @include mixins.text-ellipsis();
34
35
  }
35
36
 
@@ -39,6 +40,7 @@
39
40
  color: var(--text-color-tertiary);
40
41
  width: 100%;
41
42
  word-break: break-word;
43
+
42
44
  @include mixins.multi-line-ellipsis(3);
43
45
  }
44
46
 
@@ -76,10 +78,9 @@
76
78
 
77
79
  .remark-edit {
78
80
  max-width: 100%;
79
- overflow: hidden;
80
- text-overflow: ellipsis;
81
- white-space: nowrap;
82
81
  word-break: break-all;
82
+
83
+ @include mixins.text-ellipsis();
83
84
  }
84
85
  .remark-edit-icon {
85
86
  min-width: 16px;
@@ -30,6 +30,7 @@
30
30
  font-weight: 400;
31
31
  color: var(--text-color-primary);
32
32
  max-width: 100%;
33
+
33
34
  @include mixins.text-ellipsis();
34
35
  }
35
36
 
@@ -39,6 +40,7 @@
39
40
  color: var(--text-color-tertiary);
40
41
  width: 100%;
41
42
  word-break: break-word;
43
+
42
44
  @include mixins.multi-line-ellipsis(3);
43
45
  }
44
46
 
@@ -30,6 +30,7 @@
30
30
  font-weight: 400;
31
31
  color: var(--text-color-primary);
32
32
  max-width: 100%;
33
+
33
34
  @include mixins.text-ellipsis();
34
35
  }
35
36
 
@@ -39,6 +40,7 @@
39
40
  color: var(--text-color-tertiary);
40
41
  width: 100%;
41
42
  word-break: break-word;
43
+
42
44
  @include mixins.multi-line-ellipsis(3);
43
45
  }
44
46
 
@@ -54,6 +54,7 @@
54
54
  {{ t('TUIContact.Enter group chat') }}
55
55
  </TUIButton>
56
56
  <TUIDialog
57
+ appendTo="body"
57
58
  :visible="visible"
58
59
  :title="canDismissGroup ? t('TUIContact.Confirm dismiss group'): t('TUIContact.Confirm quit group')"
59
60
  :confirm-text="t('TUIContact.Submit')"
@@ -1,4 +1,3 @@
1
- @use '../../../../styles/mixins/_scrollbar.scss' as scrollbar;
2
1
  @use '../../../../styles/mixins' as mixins;
3
2
  .contact-search-group-info {
4
3
  height: 100%;
@@ -88,7 +87,8 @@
88
87
  font-size: 14px;
89
88
  color: var(--text-color-primary);
90
89
  resize: none;
91
- @include scrollbar.scrollbar-hidden();
90
+
91
+ @include mixins.scrollbar-hidden();
92
92
  }
93
93
 
94
94
  .contact-search-group-info__form-input:focus {
@@ -1,4 +1,3 @@
1
- @use '../../../../styles/mixins/_scrollbar.scss' as scrollbar;
2
1
  @use '../../../../styles/mixins' as mixins;
3
2
  .contact-search-user-info {
4
3
  height: 100%;
@@ -40,6 +39,7 @@
40
39
  color: var(--text-color-tertiary);
41
40
  width: 100%;
42
41
  word-break: break-word;
42
+
43
43
  @include mixins.multi-line-ellipsis(3);
44
44
  }
45
45
 
@@ -88,7 +88,8 @@
88
88
  font-size: 14px;
89
89
  color: var(--text-color-primary);
90
90
  resize: none;
91
- @include scrollbar.scrollbar-hidden();
91
+
92
+ @include mixins.scrollbar-hidden();
92
93
  }
93
94
 
94
95
  .contact-search-user-info__form-input:focus {
@@ -32,10 +32,11 @@
32
32
  &__content {
33
33
  flex: 1;
34
34
  overflow-y: auto;
35
- @include scrollbar.scrollbar-hidden();
36
35
  padding: 6px 0;
37
36
  display: flex;
38
37
  flex-direction: column;
38
+
39
+ @include scrollbar.scrollbar-hidden();
39
40
  }
40
41
 
41
42
  &__group {
@@ -2,7 +2,8 @@
2
2
  <div class="contact-list">
3
3
  <div class="contact-list__container">
4
4
  <div class="contact-list__main">
5
- <ContactSearch
5
+ <component
6
+ :is="ContactSearch"
6
7
  v-if="enableSearch"
7
8
  :placeholder="searchPlaceholder"
8
9
  @result-click="(item: ContactGroupItem) => {
@@ -51,7 +52,7 @@
51
52
  class="contact-list__group-content"
52
53
  >
53
54
  <component
54
- :is="ContactListItem"
55
+ :is="ContactItem"
55
56
  v-for="(contactItem, index) in group.items"
56
57
  :key="`${group.type}_${getItemId(contactItem)}_${index}`"
57
58
  :contact-item="{ type: group.type, data: contactItem }"
@@ -99,12 +100,17 @@ import type {
99
100
  ContactListProps,
100
101
  ContactGroup,
101
102
  CustomGroupConfig,
102
- ContactItem } from '../../types/contact';
103
+ ContactItem,
104
+ } from '../../types/contact';
103
105
 
104
106
  const props = withDefaults(defineProps<ContactListProps>(), {
105
107
  enableSearch: true,
106
108
  searchPlaceholder: undefined,
107
109
  emptyText: undefined,
110
+ ContactItem: () => ContactListItem,
111
+ ContactSearchComponent: () => ContactSearch,
112
+ GroupHeader: undefined,
113
+ PlaceholderEmptyList: () => undefined,
108
114
  });
109
115
 
110
116
  const emit = defineEmits<{
@@ -182,6 +188,9 @@ const handleContactClick = (type: ContactItemType, item: ContactItem) => {
182
188
  const contactGroupItem: ContactGroupItem = { type, data: item };
183
189
  emit('contact-item-click', contactGroupItem);
184
190
  setActiveContact(contactGroupItem);
191
+ if (props.onContactItemClick) {
192
+ props.onContactItemClick(contactGroupItem);
193
+ }
185
194
  };
186
195
 
187
196
  const handleFriendApplicationAction = async (
@@ -198,6 +207,9 @@ const handleFriendApplicationAction = async (
198
207
  await refuseFriendApplication(application.userID);
199
208
  }
200
209
  emit('friend-application-action', action, application);
210
+ if (props.onFriendApplicationAction) {
211
+ props.onFriendApplicationAction(action, application);
212
+ }
201
213
  } catch (error) {
202
214
  console.error(`[ContactList handleFriendApplicationAction] Failed to ${action} friend application:`, error);
203
215
  }
@@ -219,6 +231,9 @@ const handleGroupApplicationAction = async (
219
231
  await refuseGroupApplication(params);
220
232
  }
221
233
  emit('group-application-action', action, application);
234
+ if (props.onGroupApplicationAction) {
235
+ props.onGroupApplicationAction(action, application);
236
+ }
222
237
  } catch (error) {
223
238
  console.error(`[ContactList handleGroupApplicationAction] Failed to ${action} group application:`, error);
224
239
  }
@@ -1,3 +1,4 @@
1
+ @use '../../../../styles//mixins' as mixins;
1
2
  .blacklist-item {
2
3
  display: flex;
3
4
  align-items: center;
@@ -32,8 +33,7 @@
32
33
  &__name {
33
34
  font-size: 14px;
34
35
  color: var(--text-color-primary);
35
- overflow: hidden;
36
- text-overflow: ellipsis;
37
- white-space: nowrap;
36
+
37
+ @include mixins.text-ellipsis();
38
38
  }
39
39
  }
@@ -1,3 +1,4 @@
1
+ @use '../../../../styles/mixins' as mixins;
1
2
  .friendApplicationItem {
2
3
  padding: 12px 20px;
3
4
  display: flex;
@@ -35,20 +36,18 @@
35
36
  font-size: 12px;
36
37
  line-height: 14px;
37
38
  font-weight: 400;
38
- overflow: hidden;
39
- text-overflow: ellipsis;
40
- white-space: nowrap;
41
39
  color: var(--text-color-primary);
40
+
41
+ @include mixins.text-ellipsis();
42
42
  }
43
43
 
44
44
  &__text {
45
45
  font-size: 12px;
46
46
  line-height: 14px;
47
47
  font-weight: 400;
48
- overflow: hidden;
49
- text-overflow: ellipsis;
50
- white-space: nowrap;
51
48
  color: var(--text-color-tertiary);
49
+
50
+ @include mixins.text-ellipsis();
52
51
  }
53
52
 
54
53
  &__actions {
@@ -1,3 +1,4 @@
1
+ @use '../../../../styles/mixins' as mixins;
1
2
  .friend-item {
2
3
  display: flex;
3
4
  align-items: center;
@@ -32,8 +33,7 @@
32
33
  &__name {
33
34
  font-size: 14px;
34
35
  color: var(--text-color-primary);
35
- overflow: hidden;
36
- text-overflow: ellipsis;
37
- white-space: nowrap;
36
+
37
+ @include mixins.text-ellipsis();
38
38
  }
39
39
  }
@@ -1,3 +1,4 @@
1
+ @use '../../../../styles/mixins' as mixins;
1
2
  .groupApplicationItem {
2
3
  padding: 12px 20px;
3
4
  display: flex;
@@ -34,20 +35,18 @@
34
35
  font-size: 12px;
35
36
  line-height: 14px;
36
37
  font-weight: 400;
37
- overflow: hidden;
38
- text-overflow: ellipsis;
39
- white-space: nowrap;
40
38
  color: var(--text-color-primary);
39
+
40
+ @include mixins.text-ellipsis();
41
41
  }
42
42
 
43
43
  &__text {
44
44
  font-size: 12px;
45
45
  line-height: 14px;
46
46
  font-weight: 400;
47
- overflow: hidden;
48
- text-overflow: ellipsis;
49
- white-space: nowrap;
50
47
  color: var(--text-color-tertiary);
48
+
49
+ @include mixins.text-ellipsis();
51
50
  }
52
51
 
53
52
  &__actions {
@@ -1,3 +1,4 @@
1
+ @use '../../../../styles/mixins' as mixins;
1
2
  .group-item {
2
3
  display: flex;
3
4
  align-items: center;
@@ -32,8 +33,7 @@
32
33
  &__name {
33
34
  font-size: 14px;
34
35
  color: var(--text-color-primary);
35
- overflow: hidden;
36
- text-overflow: ellipsis;
37
- white-space: nowrap;
36
+
37
+ @include mixins.text-ellipsis();
38
38
  }
39
39
  }
@@ -1,21 +1,11 @@
1
1
  .conversationActions {
2
2
  position: relative;
3
+ display: flex;
3
4
 
4
5
  &__popup-icon {
5
- padding: 4px 8px;
6
+ display: flex;
6
7
  cursor: pointer;
7
- border-radius: 4px;
8
8
  transition: background-color 0.2s;
9
-
10
- &:hover {
11
- background-color: var(--hover-bg-color, #f0f0f0);
12
- }
13
-
14
- .more-icon {
15
- font-size: 16px;
16
- color: var(--text-color-secondary, #666);
17
- font-weight: bold;
18
- }
19
9
  }
20
10
 
21
11
  &__h5 {
@@ -28,10 +28,10 @@
28
28
  placement="bottom-end"
29
29
  >
30
30
  <div
31
- :class="$style.conversationActions__popupIcon"
31
+ :class="$style['conversationActions__popup-icon']"
32
32
  @click="toggleClick"
33
33
  >
34
- <IconEllipsis />
34
+ <IconEllipsis size="18px" />
35
35
  </div>
36
36
  <template #dropdown>
37
37
  <div
@@ -5,6 +5,7 @@
5
5
  <ConversationCreateButton @click="openCreateConversation" />
6
6
 
7
7
  <TUIDialog
8
+ appendTo="body"
8
9
  :visible="showCreateConversation"
9
10
  :title="dialogTitles"
10
11
  :confirm-text="dialogConfirmText"
@@ -27,8 +27,9 @@
27
27
  flex-direction: column;
28
28
  padding: 0 10px;
29
29
  overflow-y: auto;
30
- @include scrollbar.scrollbar-hidden();
31
30
  color: var(--text-color-primary);
31
+
32
+ @include scrollbar.scrollbar-hidden();
32
33
  }
33
34
 
34
35
  &__box {
@@ -24,7 +24,7 @@ import type {
24
24
  ConversationCreateUserSelectListProps,
25
25
  Friend,
26
26
  } from '../../../../types';
27
- import type { IUserPickerResult } from '../../../UserPicker';
27
+ import type { UserPickerResult } from '../../../UserPicker';
28
28
 
29
29
  const props = defineProps<ConversationCreateUserSelectListProps>();
30
30
 
@@ -53,7 +53,7 @@ const renderFriendList = computed(() => friendList.value.map((item) => {
53
53
  };
54
54
  }));
55
55
 
56
- const handleSelectListUpdate = (list: IUserPickerResult) => {
56
+ const handleSelectListUpdate = (list: UserPickerResult) => {
57
57
  const selectFriendList = friendList.value.filter(item => list.some(selected => selected.key === item.userID));
58
58
  emit('update:select-list', selectFriendList);
59
59
  props.setSelectList(selectFriendList);
@@ -6,9 +6,10 @@
6
6
  flex-direction: column;
7
7
  gap: 10px;
8
8
  overflow-y: scroll;
9
- @include scrollbar.scrollbar-hidden();
10
9
  color: var(--text-color-primary);
11
10
 
11
+ @include scrollbar.scrollbar-hidden();
12
+
12
13
  &__box {
13
14
  display: flex;
14
15
  flex-direction: column;
@@ -11,9 +11,4 @@
11
11
  text-align: initial;
12
12
  background-color: var(--bg-color-operate, #f5f5f5);
13
13
  color: var(--text-color-primary, #333);
14
-
15
- &__content {
16
- flex: 1;
17
- overflow-y: auto;
18
- }
19
14
  }