tuikit-atomicx-vue3 3.3.1 → 3.3.2

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 (48) hide show
  1. package/dist/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.js +1 -4
  2. package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +1 -2
  3. package/dist/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.js +1 -2
  4. package/dist/components/CoGuestPanel/CoGuestPanel.js +6 -6
  5. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +1 -2
  6. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +1 -2
  7. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.js +0 -1
  8. package/dist/components/LiveCoreView/PlayerControl/AudioControl.js +252 -0
  9. package/dist/components/LiveCoreView/PlayerControl/AudioControl.vue.d.ts +38 -0
  10. package/dist/components/LiveCoreView/PlayerControl/PlayerControl.js +279 -0
  11. package/dist/components/LiveCoreView/PlayerControl/PlayerControl.vue.d.ts +15 -0
  12. package/dist/components/LiveCoreView/PlayerControl/PlayerControlState.d.ts +29 -0
  13. package/dist/components/LiveCoreView/PlayerControl/PlayerControlState.js +412 -0
  14. package/dist/components/LiveCoreView/PlayerControl/index.d.ts +3 -0
  15. package/dist/components/LiveCoreView/PlayerControl/index.js +8 -0
  16. package/dist/components/LiveCoreView/PlayerControl/utils/deviceDetection.d.ts +85 -0
  17. package/dist/components/LiveCoreView/PlayerControl/utils/deviceDetection.js +129 -0
  18. package/dist/components/LiveCoreView/PlayerControl/utils/domHelpers.d.ts +75 -0
  19. package/dist/components/LiveCoreView/PlayerControl/utils/domHelpers.js +120 -0
  20. package/dist/components/LiveCoreView/PlayerControl/utils/fullscreenManager.d.ts +120 -0
  21. package/dist/components/LiveCoreView/PlayerControl/utils/fullscreenManager.js +311 -0
  22. package/dist/components/LiveCoreView/i18n/en-US/index.d.ts +9 -0
  23. package/dist/components/LiveCoreView/i18n/en-US/index.js +10 -1
  24. package/dist/components/LiveCoreView/i18n/zh-CN/index.d.ts +9 -0
  25. package/dist/components/LiveCoreView/i18n/zh-CN/index.js +10 -1
  26. package/dist/components/LiveCoreView/index.js +30 -4
  27. package/dist/components/StreamView/Layout/CustomLayout.js +2 -2
  28. package/dist/components/StreamView/Layout/GridLayout.js +2 -2
  29. package/dist/components/StreamView/common/StreamList/index.js +2 -2
  30. package/dist/styles/index.css +336 -31
  31. package/package.json +3 -3
  32. package/src/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.vue +0 -3
  33. package/src/components/ChatSetting/GroupChatSetting/GroupChatSetting.vue +0 -1
  34. package/src/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.vue +0 -1
  35. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +0 -1
  36. package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +0 -1
  37. package/src/components/ConversationList/ConversationSearch/ConversationSearch.vue +0 -1
  38. package/src/components/LiveCoreView/PlayerControl/AudioControl.vue +434 -0
  39. package/src/components/LiveCoreView/PlayerControl/PlayerControl.module.scss +52 -0
  40. package/src/components/LiveCoreView/PlayerControl/PlayerControl.vue +484 -0
  41. package/src/components/LiveCoreView/PlayerControl/PlayerControlState.ts +602 -0
  42. package/src/components/LiveCoreView/PlayerControl/index.ts +3 -0
  43. package/src/components/LiveCoreView/PlayerControl/utils/deviceDetection.ts +234 -0
  44. package/src/components/LiveCoreView/PlayerControl/utils/domHelpers.ts +145 -0
  45. package/src/components/LiveCoreView/PlayerControl/utils/fullscreenManager.ts +417 -0
  46. package/src/components/LiveCoreView/i18n/en-US/index.ts +9 -0
  47. package/src/components/LiveCoreView/i18n/zh-CN/index.ts +9 -0
  48. package/src/components/LiveCoreView/index.vue +14 -3
@@ -1,11 +1,14 @@
1
1
  import { addI18n } from "../../i18n/index.js";
2
2
  import DefaultStreamViewUI from "./DefaultStreamViewUI.js";
3
- import { defineComponent, useSlots, computed, ref, onMounted, onBeforeUnmount, watch, createElementBlock, openBlock, normalizeClass, createCommentVNode, createElementVNode, toDisplayString, unref, normalizeStyle, renderSlot, Fragment, renderList, createBlock, mergeProps, normalizeProps } from "vue";
3
+ import { defineComponent, useSlots, computed, ref, onMounted, onBeforeUnmount, watch, createElementBlock, openBlock, normalizeClass, createCommentVNode, createElementVNode, createBlock, toDisplayString, unref, normalizeStyle, renderSlot, Fragment, renderList, mergeProps, normalizeProps, Teleport } from "vue";
4
4
  import { useUIKit } from "@tencentcloud/uikit-base-component-vue3";
5
5
  import { useLiveSeatState } from "../../states/LiveSeatState/index.js";
6
6
  import { useLiveState } from "../../states/LiveState/index.js";
7
7
  import { useLoginState } from "../../states/LoginState.js";
8
8
  import { getContentSize } from "../../utils/domOperation.js";
9
+ import PlayerControl from "./PlayerControl/PlayerControl.js";
10
+ import { usePlayerControlState } from "./PlayerControl/PlayerControlState.js";
11
+ import { isMobile } from "../../utils/env.js";
9
12
  import { _ as _export_sfc } from "../../_plugin-vue_export-helper-1tPrXgE0.js";
10
13
  import { resource } from "./i18n/en-US/index.js";
11
14
  import { resource as resource$1 } from "./i18n/zh-CN/index.js";
@@ -21,6 +24,7 @@ const _hoisted_3 = {
21
24
  const _sfc_main = /* @__PURE__ */ defineComponent({
22
25
  __name: "index",
23
26
  setup(__props) {
27
+ const { isFullscreen, isLandscapeStyleMode } = usePlayerControlState();
24
28
  const { t } = useUIKit();
25
29
  const { seatList, canvas, startPlayStream, stopPlayStream } = useLiveSeatState();
26
30
  const { currentLive } = useLiveState();
@@ -35,6 +39,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
35
39
  }
36
40
  return true;
37
41
  });
42
+ const isShowPlayerControl = computed(() => {
43
+ var _a;
44
+ return ((_a = currentLive.value) == null ? void 0 : _a.liveId) && !seatList.value.some((item) => {
45
+ var _a2, _b;
46
+ return ((_a2 = item.userInfo) == null ? void 0 : _a2.userId) === ((_b = loginUserInfo.value) == null ? void 0 : _b.userId);
47
+ });
48
+ });
38
49
  onMounted(async () => {
39
50
  isMounted.value = true;
40
51
  await startPlayStream({ view: "atomicx-live-stream-content" });
@@ -228,7 +239,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
228
239
  fillMode.value = "fit";
229
240
  }
230
241
  handleStreamRegionSize();
231
- });
242
+ }, { deep: true });
232
243
  function handleStreamRegionSize() {
233
244
  if (!liveCoreViewContainerRef.value) {
234
245
  return;
@@ -297,6 +308,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
297
308
  return openBlock(), createElementBlock("div", {
298
309
  ref_key: "liveCoreViewContainerRef",
299
310
  ref: liveCoreViewContainerRef,
311
+ id: "live-core-view-container",
300
312
  class: normalizeClass(["live-core-view-container", { "align-center": isAlignCenter.value }])
301
313
  }, [
302
314
  !_ctx.$slots.localVideo && !isPlayedVideo.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
@@ -326,12 +338,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
326
338
  }), 128))
327
339
  ])) : createCommentVNode("", true),
328
340
  _ctx.$slots.localVideo && isMounted.value ? renderSlot(_ctx.$slots, "localVideo", normalizeProps(mergeProps({ key: 1 }, { style: (_a = localStreamViewInfo.value) == null ? void 0 : _a.region })), void 0, true) : createCommentVNode("", true)
329
- ], 4)
341
+ ], 4),
342
+ !unref(isFullscreen) ? (openBlock(), createBlock(Teleport, {
343
+ key: 1,
344
+ to: "body",
345
+ disabled: !unref(isMobile)
346
+ }, [
347
+ isShowPlayerControl.value ? (openBlock(), createBlock(PlayerControl, {
348
+ key: 0,
349
+ isLandscapeStyleMode: unref(isLandscapeStyleMode)
350
+ }, null, 8, ["isLandscapeStyleMode"])) : createCommentVNode("", true)
351
+ ], 8, ["disabled"])) : createCommentVNode("", true),
352
+ isShowPlayerControl.value && unref(isFullscreen) ? (openBlock(), createBlock(PlayerControl, {
353
+ key: 2,
354
+ isLandscapeStyleMode: unref(isLandscapeStyleMode)
355
+ }, null, 8, ["isLandscapeStyleMode"])) : createCommentVNode("", true)
330
356
  ], 2);
331
357
  };
332
358
  }
333
359
  });
334
- const LiveCoreViewComponent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-466946d8"]]);
360
+ const LiveCoreViewComponent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4d9101b9"]]);
335
361
  addI18n("en-US", { translation: resource });
336
362
  addI18n("zh-CN", { translation: resource$1 });
337
363
  export {
@@ -232,8 +232,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
232
232
  streamViewUI: withCtx((slotProps) => [
233
233
  renderSlot(_ctx.$slots, "streamViewUI", mergeProps({ ref_for: true }, slotProps), void 0, true)
234
234
  ]),
235
- _: 2
236
- }, 1032, ["userInfo", "stream-type", "style"]);
235
+ _: 3
236
+ }, 8, ["userInfo", "stream-type", "style"]);
237
237
  }), 128))
238
238
  ], 4)
239
239
  ], 512);
@@ -221,8 +221,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
221
221
  streamViewUI: withCtx((slotProps) => [
222
222
  renderSlot(_ctx.$slots, "streamViewUI", mergeProps({ ref_for: true }, slotProps), void 0, true)
223
223
  ]),
224
- _: 2
225
- }, 1032, ["userInfo", "stream-type", "style"]);
224
+ _: 3
225
+ }, 8, ["userInfo", "stream-type", "style"]);
226
226
  }), 128))
227
227
  ], 36)
228
228
  ], 2);
@@ -195,8 +195,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
195
195
  streamViewUI: withCtx((slotProps) => [
196
196
  renderSlot(_ctx.$slots, "streamViewUI", mergeProps({ ref_for: true }, slotProps), void 0, true)
197
197
  ]),
198
- _: 2
199
- }, 1032, ["user-info", "stream-type", "streamInfo", "style", "streamPlayMode", "streamPlayQuality"]);
198
+ _: 3
199
+ }, 8, ["user-info", "stream-type", "streamInfo", "style", "streamPlayMode", "streamPlayQuality"]);
200
200
  }), 128))
201
201
  ], 36)
202
202
  ], 2);
@@ -865,12 +865,12 @@ span.unique-icon-btn:active {
865
865
  color: #666;
866
866
  font-size: 12px;
867
867
  border-top: 1px solid #f0f0f0;
868
- }.group-actions[data-v-21a17b84] {
868
+ }.group-actions[data-v-a8fcc66e] {
869
869
  display: flex;
870
870
  flex-direction: column;
871
871
  gap: 10px;
872
872
  }
873
- .group-actions__button[data-v-21a17b84] {
873
+ .group-actions__button[data-v-a8fcc66e] {
874
874
  width: 100%;
875
875
  }.group-info__item[data-v-5b84a613] {
876
876
  padding: 10px 0;
@@ -1095,42 +1095,42 @@ span.unique-icon-btn:active {
1095
1095
  100% {
1096
1096
  opacity: 1;
1097
1097
  }
1098
- }.group-management[data-v-91345f9d] {
1098
+ }.group-management[data-v-a5ebaab5] {
1099
1099
  padding: 0 20px;
1100
1100
  }
1101
- .group-management__header[data-v-91345f9d] {
1101
+ .group-management__header[data-v-a5ebaab5] {
1102
1102
  padding: 16px 0;
1103
1103
  border-bottom: 1px solid var(--border-color-light);
1104
1104
  }
1105
- .group-management__back-btn[data-v-91345f9d] {
1105
+ .group-management__back-btn[data-v-a5ebaab5] {
1106
1106
  width: 28px;
1107
1107
  height: 28px;
1108
1108
  padding: 6px;
1109
1109
  cursor: pointer;
1110
1110
  color: var(--text-color-primary);
1111
1111
  }
1112
- .group-management__back-btn[data-v-91345f9d]:hover {
1112
+ .group-management__back-btn[data-v-a5ebaab5]:hover {
1113
1113
  color: var(--text-color-secondary);
1114
1114
  }
1115
- .group-management__title[data-v-91345f9d] {
1115
+ .group-management__title[data-v-a5ebaab5] {
1116
1116
  font-size: 18px;
1117
1117
  font-weight: 600;
1118
1118
  color: var(--text-color-primary);
1119
1119
  }
1120
- .group-management__mute-all[data-v-91345f9d] {
1120
+ .group-management__mute-all[data-v-a5ebaab5] {
1121
1121
  color: var(--text-color-primary);
1122
1122
  }
1123
- .group-management__mute-all-header[data-v-91345f9d] {
1123
+ .group-management__mute-all-header[data-v-a5ebaab5] {
1124
1124
  display: flex;
1125
1125
  align-items: center;
1126
1126
  justify-content: space-between;
1127
1127
  margin-bottom: 8px;
1128
1128
  }
1129
- .group-management__mute-all-title[data-v-91345f9d] {
1129
+ .group-management__mute-all-title[data-v-a5ebaab5] {
1130
1130
  font-size: 16px;
1131
1131
  font-weight: 500;
1132
1132
  }
1133
- .group-management__mute-all-desc[data-v-91345f9d] {
1133
+ .group-management__mute-all-desc[data-v-a5ebaab5] {
1134
1134
  font-size: 14px;
1135
1135
  color: var(--text-color-secondary);
1136
1136
  }.group-management-entry[data-v-55b0dd4c] {
@@ -1161,7 +1161,7 @@ span.unique-icon-btn:active {
1161
1161
  display: flex;
1162
1162
  flex-direction: column;
1163
1163
  gap: 0;
1164
- }.group-chat-setting[data-v-358c1266] {
1164
+ }.group-chat-setting[data-v-7374cfa4] {
1165
1165
  gap: 16px;
1166
1166
  padding: 16px;
1167
1167
  }.user-picker-dialog {
@@ -5531,7 +5531,7 @@ to {
5531
5531
  * @include multi-line-ellipsis(3);
5532
5532
  * }
5533
5533
  */
5534
- .contact-group-info[data-v-ce333195] {
5534
+ .contact-group-info[data-v-8f45a224] {
5535
5535
  height: 100%;
5536
5536
  width: 100%;
5537
5537
  overflow: hidden;
@@ -5540,21 +5540,21 @@ to {
5540
5540
  background-color: var(--bg-color-topbar);
5541
5541
  padding: 48px;
5542
5542
  }
5543
- .contact-group-info__header[data-v-ce333195] {
5543
+ .contact-group-info__header[data-v-8f45a224] {
5544
5544
  display: flex;
5545
5545
  justify-content: space-between;
5546
5546
  align-items: flex-start;
5547
5547
  gap: 20px;
5548
5548
  margin-bottom: 32px;
5549
5549
  }
5550
- .contact-group-info__main-info[data-v-ce333195] {
5550
+ .contact-group-info__main-info[data-v-8f45a224] {
5551
5551
  flex: 1;
5552
5552
  display: flex;
5553
5553
  flex-direction: column;
5554
5554
  gap: 20px;
5555
5555
  width: 0;
5556
5556
  }
5557
- .contact-group-info__name[data-v-ce333195] {
5557
+ .contact-group-info__name[data-v-8f45a224] {
5558
5558
  font-size: 24px;
5559
5559
  font-weight: 400;
5560
5560
  color: var(--text-color-primary);
@@ -5564,8 +5564,8 @@ to {
5564
5564
  white-space: nowrap;
5565
5565
  text-overflow: ellipsis;
5566
5566
  }
5567
- .contact-group-info__id[data-v-ce333195],
5568
- .contact-group-info__intro[data-v-ce333195] {
5567
+ .contact-group-info__id[data-v-8f45a224],
5568
+ .contact-group-info__intro[data-v-8f45a224] {
5569
5569
  font-size: 16px;
5570
5570
  color: var(--text-color-tertiary);
5571
5571
  width: 100%;
@@ -5576,7 +5576,7 @@ to {
5576
5576
  -webkit-line-clamp: 3;
5577
5577
  -webkit-box-orient: vertical;
5578
5578
  }
5579
- .contact-group-info__actions[data-v-ce333195] {
5579
+ .contact-group-info__actions[data-v-8f45a224] {
5580
5580
  border-top: 1px solid var(--stroke-color-secondary);
5581
5581
  padding-top: 32px;
5582
5582
  display: flex;
@@ -5972,21 +5972,21 @@ to {
5972
5972
  ._conversationCreateUserSelectList--h5_pa6me_7 {
5973
5973
  height: 100%;
5974
5974
  padding: 0 20px;
5975
- }.conversationCreate__container[data-v-87d3c1d2] {
5975
+ }.conversationCreate__container[data-v-bdcdab3b] {
5976
5976
  display: flex;
5977
5977
  flex-direction: column;
5978
5978
  justify-content: center;
5979
5979
  }
5980
- .conversationCreate__detail[data-v-87d3c1d2] {
5980
+ .conversationCreate__detail[data-v-bdcdab3b] {
5981
5981
  flex: 1;
5982
5982
  }
5983
- [data-v-87d3c1d2] .conversationCreate__dialog {
5983
+ [data-v-bdcdab3b] .conversationCreate__dialog {
5984
5984
  width: 100%;
5985
5985
  height: 100%;
5986
5986
  max-width: 100%;
5987
5987
  border-radius: 0;
5988
5988
  }
5989
- [data-v-87d3c1d2] .conversationCreate__dialog .dialog-body {
5989
+ [data-v-bdcdab3b] .conversationCreate__dialog .dialog-body {
5990
5990
  height: 0;
5991
5991
  }/**
5992
5992
  * Multi-line ellipsis
@@ -9877,17 +9877,320 @@ to {
9877
9877
  text-overflow: ellipsis;
9878
9878
  white-space: nowrap;
9879
9879
  overflow: hidden;
9880
- }.live-core-view-container[data-v-466946d8] {
9880
+ }.audio-control[data-v-22bb0b88] {
9881
+ --volume-control-primary: rgb(255, 255, 255);
9882
+ --volume-control-primary-hover: rgba(255, 255, 255, 0.1);
9883
+ --volume-control-background: rgba(0, 0, 0, 0.8);
9884
+ --volume-control-background-light: rgba(0, 0, 0, 0.5);
9885
+ --volume-control-border: rgba(255, 255, 255, 0.1);
9886
+ --volume-control-shadow: rgba(0, 0, 0, 0.2);
9887
+ position: relative;
9888
+ display: flex;
9889
+ align-items: center;
9890
+ }
9891
+ .volume-btn[data-v-22bb0b88] {
9892
+ width: 100%;
9893
+ height: 100%;
9894
+ flex-shrink: 0;
9895
+ cursor: pointer;
9896
+ transition: background-color 0.2s ease;
9897
+ }
9898
+ .volume-slider-container[data-v-22bb0b88] {
9899
+ position: absolute;
9900
+ bottom: 100%;
9901
+ left: 50%;
9902
+ transform: translateX(-50%);
9903
+ margin-bottom: 12px;
9904
+ z-index: 100;
9905
+ }
9906
+ .volume-slider-wrapper[data-v-22bb0b88] {
9907
+ position: relative;
9908
+ display: flex;
9909
+ flex-direction: column;
9910
+ align-items: center;
9911
+ gap: 8px;
9912
+ background: var(--volume-control-background);
9913
+ padding: 12px 8px;
9914
+ border-radius: 8px;
9915
+ backdrop-filter: blur(10px);
9916
+ border: 1px solid var(--volume-control-border);
9917
+ cursor: pointer;
9918
+ user-select: none;
9919
+ -webkit-user-select: none;
9920
+ -moz-user-select: none;
9921
+ -ms-user-select: none;
9922
+ }
9923
+ @media (hover: none) and (pointer: coarse) {
9924
+ .volume-slider-wrapper[data-v-22bb0b88] {
9925
+ cursor: grab;
9926
+ }
9927
+ .volume-slider-wrapper[data-v-22bb0b88]:active {
9928
+ cursor: grabbing;
9929
+ }
9930
+ }
9931
+ .volume-slider-wrapper-inner[data-v-22bb0b88] {
9932
+ position: relative;
9933
+ width: 20px;
9934
+ height: 80px;
9935
+ display: flex;
9936
+ align-items: center;
9937
+ justify-content: center;
9938
+ margin-top: 12px;
9939
+ }
9940
+ .custom-volume-slider[data-v-22bb0b88] {
9941
+ position: relative;
9942
+ width: 4px;
9943
+ height: 80px;
9944
+ cursor: pointer;
9945
+ z-index: 2;
9946
+ margin: 0;
9947
+ }
9948
+ .slider-track[data-v-22bb0b88] {
9949
+ position: absolute;
9950
+ top: 0;
9951
+ left: 0;
9952
+ width: 100%;
9953
+ height: 100%;
9954
+ border-radius: 2px;
9955
+ background: rgba(255, 255, 255, 0.2);
9956
+ border: none;
9957
+ }
9958
+ .slider-progress[data-v-22bb0b88] {
9959
+ position: absolute;
9960
+ bottom: 0;
9961
+ left: 0;
9962
+ width: 100%;
9963
+ background: #ffffff;
9964
+ border-radius: 2px;
9965
+ }
9966
+ .slider-thumb[data-v-22bb0b88] {
9967
+ position: absolute;
9968
+ left: 50%;
9969
+ transform: translateX(-50%);
9970
+ width: 12px;
9971
+ height: 12px;
9972
+ background: #ffffff;
9973
+ border-radius: 50%;
9974
+ border: 2px solid rgba(255, 255, 255, 0.8);
9975
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
9976
+ transition: transform 0.1s ease;
9977
+ z-index: 3;
9978
+ cursor: grab;
9979
+ }
9980
+ .slider-thumb.no-transition[data-v-22bb0b88] {
9981
+ transition: none;
9982
+ }
9983
+ .slider-thumb[data-v-22bb0b88]:active {
9984
+ cursor: grabbing;
9985
+ transform: translateX(-50%) scale(1.1);
9986
+ }
9987
+ .slider-thumb[data-v-22bb0b88]:hover {
9988
+ transform: translateX(-50%) scale(1.1);
9989
+ }
9990
+ .volume-value[data-v-22bb0b88] {
9991
+ color: var(--volume-control-primary);
9992
+ font-size: 12px;
9993
+ font-weight: 500;
9994
+ text-align: center;
9995
+ min-width: 32px;
9996
+ padding: 2px 6px;
9997
+ border-radius: 4px;
9998
+ pointer-events: none;
9999
+ }
10000
+ @media (hover: none) and (pointer: coarse) {
10001
+ .volume-slider-wrapper[data-v-22bb0b88] {
10002
+ padding: 16px 12px;
10003
+ }
10004
+ .volume-slider-wrapper[data-v-22bb0b88]:active {
10005
+ background: var(--volume-control-background-light);
10006
+ transform: scale(0.98);
10007
+ transition: all 0.1s ease;
10008
+ }
10009
+ .volume-slider-wrapper-inner[data-v-22bb0b88] {
10010
+ height: 100px;
10011
+ }
10012
+ }.playback-controls[data-v-28ed6eb9] {
10013
+ background: #000000;
10014
+ padding: 12px 0;
10015
+ display: flex;
10016
+ width: calc(100% + 1px);
10017
+ align-items: center;
10018
+ box-sizing: border-box;
10019
+ }
10020
+ .pc-mode[data-v-28ed6eb9] {
10021
+ position: absolute;
10022
+ bottom: 0;
10023
+ left: 0;
10024
+ right: 0;
10025
+ z-index: 10;
10026
+ }
10027
+ .mobile-mode[data-v-28ed6eb9] {
10028
+ position: fixed;
10029
+ bottom: 0;
10030
+ left: 0;
10031
+ right: 0;
10032
+ z-index: 999999;
10033
+ pointer-events: auto;
10034
+ }
10035
+ @media screen and (orientation: portrait) {
10036
+ .mobile-landscape-mode[data-v-28ed6eb9] {
10037
+ position: fixed;
10038
+ bottom: unset;
10039
+ transform: rotate(90deg);
10040
+ transform-origin: left bottom;
10041
+ top: -60px;
10042
+ bottom: unset;
10043
+ width: 100vh;
10044
+ padding-right: 16px;
10045
+ }
10046
+ .mobile-landscape-mode.player-control-enter-active[data-v-28ed6eb9], .mobile-landscape-mode.player-control-leave-active[data-v-28ed6eb9] {
10047
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
10048
+ will-change: transform, opacity;
10049
+ }
10050
+ .mobile-landscape-mode.player-control-enter-from[data-v-28ed6eb9] {
10051
+ opacity: 0;
10052
+ transform: rotate(90deg) translateY(60px);
10053
+ }
10054
+ .mobile-landscape-mode.player-control-enter-to[data-v-28ed6eb9] {
10055
+ opacity: 1;
10056
+ transform: rotate(90deg) translateY(0);
10057
+ }
10058
+ .mobile-landscape-mode.player-control-leave-from[data-v-28ed6eb9] {
10059
+ opacity: 1;
10060
+ transform: rotate(90deg) translateY(0);
10061
+ }
10062
+ .mobile-landscape-mode.player-control-leave-to[data-v-28ed6eb9] {
10063
+ opacity: 0;
10064
+ transform: rotate(90deg) translateY(60px);
10065
+ }
10066
+ }
10067
+ .control-buttons[data-v-28ed6eb9] {
10068
+ display: flex;
10069
+ align-items: center;
10070
+ justify-content: space-around;
10071
+ width: 100%;
10072
+ pointer-events: all;
10073
+ }
10074
+ .center-controls[data-v-28ed6eb9] {
10075
+ display: flex;
10076
+ align-items: center;
10077
+ gap: 16px;
10078
+ }
10079
+ .control-btn[data-v-28ed6eb9] {
10080
+ background: transparent;
10081
+ border: none;
10082
+ border-radius: 50%;
10083
+ width: 36px;
10084
+ height: 36px;
10085
+ display: flex;
10086
+ align-items: center;
10087
+ justify-content: center;
10088
+ cursor: pointer;
10089
+ color: white;
10090
+ }
10091
+ .control-btn[data-v-28ed6eb9]:hover {
10092
+ background: rgba(255, 255, 255, 0.1);
10093
+ }
10094
+ .control-btn[data-v-28ed6eb9]:active {
10095
+ transform: scale(0.95);
10096
+ }
10097
+ .control-btn .btn-icon[data-v-28ed6eb9] {
10098
+ width: 20px;
10099
+ height: 20px;
10100
+ fill: currentColor;
10101
+ }
10102
+ .play-pause-btn .tui-icon[data-v-28ed6eb9] {
10103
+ transform: scale(1.5);
10104
+ }
10105
+ .audio-control-btn[data-v-28ed6eb9]:active {
10106
+ transform: unset;
10107
+ }
10108
+ .playback-time[data-v-28ed6eb9] {
10109
+ color: white;
10110
+ font-size: 14px;
10111
+ font-weight: 500;
10112
+ margin-left: 16px;
10113
+ }
10114
+ .right-controls[data-v-28ed6eb9] {
10115
+ display: flex;
10116
+ align-items: center;
10117
+ gap: 16px;
10118
+ }
10119
+ .fullscreen-btn .btn-icon[data-v-28ed6eb9] {
10120
+ width: 18px;
10121
+ height: 18px;
10122
+ }
10123
+ .more-btn .btn-icon[data-v-28ed6eb9] {
10124
+ width: 18px;
10125
+ height: 18px;
10126
+ }
10127
+ .player-control-enter-active[data-v-28ed6eb9],
10128
+ .player-control-leave-active[data-v-28ed6eb9] {
10129
+ transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
10130
+ will-change: transform, opacity;
10131
+ }
10132
+ .player-control-enter-from[data-v-28ed6eb9] {
10133
+ opacity: 0;
10134
+ transform: translateY(100%);
10135
+ }
10136
+ .player-control-enter-to[data-v-28ed6eb9] {
10137
+ opacity: 1;
10138
+ transform: translateY(0);
10139
+ }
10140
+ .player-control-leave-from[data-v-28ed6eb9] {
10141
+ opacity: 1;
10142
+ transform: translateY(0);
10143
+ }
10144
+ .player-control-leave-to[data-v-28ed6eb9] {
10145
+ opacity: 0;
10146
+ transform: translateY(100%);
10147
+ }.fullscreen-mode {
10148
+ width: 100vw !important;
10149
+ height: 100vh !important;
10150
+ z-index: 9999 !important;
10151
+ background-color: #000 !important;
10152
+ }
10153
+ .fullscreen-mode-portrait {
10154
+ z-index: 9999 !important;
10155
+ background-color: #000 !important;
10156
+ }
10157
+ .landscape-mode {
10158
+ transform: rotate(90deg) !important;
10159
+ transform-origin: center center !important;
10160
+ width: 100vh !important;
10161
+ height: 100vw !important;
10162
+ overflow: hidden !important;
10163
+ transition: transform 0.3s ease-in-out !important;
10164
+ }
10165
+ @media screen and (orientation: landscape) {
10166
+ .landscape-mode {
10167
+ transform: none !important;
10168
+ width: 100vw !important;
10169
+ height: 100vh !important;
10170
+ }
10171
+ }
10172
+ @media screen and (orientation: landscape) and (max-width: 768px) {
10173
+ .live-core-view.landscape-mode {
10174
+ background-color: #000;
10175
+ transform: none !important;
10176
+ }
10177
+ }
10178
+ @media screen and (orientation: portrait) and (max-width: 768px) {
10179
+ .live-core-view.landscape-mode {
10180
+ transform: rotate(90deg) !important;
10181
+ transform-origin: center center !important;
10182
+ }
10183
+ }.live-core-view-container[data-v-4d9101b9] {
9881
10184
  width: 100%;
9882
10185
  height: 100%;
9883
10186
  display: flex;
9884
10187
  justify-content: center;
9885
10188
  overflow: hidden;
9886
10189
  }
9887
- .live-core-view-container.align-center[data-v-466946d8] {
10190
+ .live-core-view-container.align-center[data-v-4d9101b9] {
9888
10191
  align-items: center;
9889
10192
  }
9890
- .live-core-view-container .live-core-placeholder[data-v-466946d8] {
10193
+ .live-core-view-container .live-core-placeholder[data-v-4d9101b9] {
9891
10194
  position: absolute;
9892
10195
  top: 0;
9893
10196
  left: 0;
@@ -9897,26 +10200,26 @@ to {
9897
10200
  align-items: center;
9898
10201
  justify-content: center;
9899
10202
  }
9900
- .live-core-view-container .live-core-placeholder .placeholder-text[data-v-466946d8] {
10203
+ .live-core-view-container .live-core-placeholder .placeholder-text[data-v-4d9101b9] {
9901
10204
  color: var(--text-color-secondary, rgba(255, 255, 255, 0.55));
9902
10205
  font-size: 14px;
9903
10206
  font-style: normal;
9904
10207
  font-weight: 400;
9905
10208
  line-height: 22px;
9906
10209
  }
9907
- .live-core-view-container .live-core-view[data-v-466946d8] {
10210
+ .live-core-view-container .live-core-view[data-v-4d9101b9] {
9908
10211
  width: 100%;
9909
10212
  height: 100%;
9910
10213
  position: absolute;
9911
10214
  }
9912
- .live-core-view-container .live-core-view .stream-content[data-v-466946d8] {
10215
+ .live-core-view-container .live-core-view .stream-content[data-v-4d9101b9] {
9913
10216
  width: 100%;
9914
10217
  height: 100%;
9915
10218
  position: absolute;
9916
10219
  top: 0;
9917
10220
  left: 0;
9918
10221
  }
9919
- .live-core-view-container .live-core-view .live-core-ui[data-v-466946d8] {
10222
+ .live-core-view-container .live-core-view .live-core-ui[data-v-4d9101b9] {
9920
10223
  width: 100%;
9921
10224
  height: 100%;
9922
10225
  position: absolute;
@@ -10164,7 +10467,6 @@ to {
10164
10467
  width: 100%;
10165
10468
  overflow: auto;
10166
10469
  align-items: center;
10167
- scrollbar-width: none;
10168
10470
  }
10169
10471
  .live-list[data-v-96626ee9]::-webkit-scrollbar {
10170
10472
  width: 0px;
@@ -10182,6 +10484,9 @@ to {
10182
10484
  .live-list[data-v-96626ee9]::-webkit-scrollbar-thumb:hover {
10183
10485
  background: var(--uikit-color-gray-3);
10184
10486
  }
10487
+ .live-list[data-v-96626ee9] {
10488
+ scrollbar-width: none;
10489
+ }
10185
10490
  .live-list-items[data-v-96626ee9] {
10186
10491
  flex: 1;
10187
10492
  width: 100%;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tuikit-atomicx-vue3",
3
- "version": "3.3.1",
3
+ "version": "3.3.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -48,10 +48,10 @@
48
48
  "publish:github": "node scripts/publish-github.js"
49
49
  },
50
50
  "peerDependencies": {
51
- "@tencentcloud/chat": "^3.5.4",
51
+ "@tencentcloud/chat": "^3.5.8",
52
52
  "@tencentcloud/chat-uikit-engine": "~2.5.1",
53
53
  "@tencentcloud/tui-core": "latest",
54
- "@tencentcloud/tuiroom-engine-js": "~3.3.1",
54
+ "@tencentcloud/tuiroom-engine-js": "~3.3.2",
55
55
  "@tencentcloud/uikit-base-component-vue3": "1.0.1",
56
56
  "vue": "^3.4.21"
57
57
  },
@@ -39,7 +39,6 @@
39
39
 
40
40
  <!-- Transfer Group Owner Dialog -->
41
41
  <TUIDialog
42
- appendTo="body"
43
42
  :visible="isShowTransferDialog"
44
43
  :title="t('ChatSetting.transfer_group_owner')"
45
44
  :custom-classes="['user-picker-dialog']"
@@ -63,7 +62,6 @@
63
62
 
64
63
  <!-- Dismiss Group Dialog -->
65
64
  <TUIDialog
66
- appendTo="body"
67
65
  :visible="isShowDismissDialog"
68
66
  :title="t('ChatSetting.dismiss_group')"
69
67
  @close="() => isShowDismissDialog = false"
@@ -73,7 +71,6 @@
73
71
 
74
72
  <!-- Quit Group Dialog -->
75
73
  <TUIDialog
76
- appendTo="body"
77
74
  :visible="isShowQuitDialog"
78
75
  :title="t('ChatSetting.quit_group')"
79
76
  @close="() => isShowQuitDialog = false"
@@ -260,7 +260,6 @@ const userPickerDialogTitle = computed(() => {
260
260
  <PersonalSettings />
261
261
  <GroupActions />
262
262
  <TUIDialog
263
- appendTo="body"
264
263
  :visible="isShowUserPickerDialog"
265
264
  :title="userPickerDialogTitle"
266
265
  :custom-classes="['user-picker-dialog']"