@100mslive/roomkit-react 0.1.5 → 0.1.6-alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (232) hide show
  1. package/dist/{HLSView-P57IRMAR.js → HLSView-HNVYG5VE.js} +309 -151
  2. package/dist/HLSView-HNVYG5VE.js.map +7 -0
  3. package/dist/Prebuilt/App.d.ts +3 -0
  4. package/dist/Prebuilt/AppContext.d.ts +13 -0
  5. package/dist/Prebuilt/common/PeersSorter.d.ts +21 -0
  6. package/dist/Prebuilt/components/Chat/ChatFooter.d.ts +7 -0
  7. package/dist/Prebuilt/components/Connection/ConnectionIndicator.d.ts +6 -0
  8. package/dist/Prebuilt/components/Connection/TileConnection.d.ts +10 -0
  9. package/dist/Prebuilt/components/Footer/ChatToggle.d.ts +4 -0
  10. package/dist/Prebuilt/components/Footer/Footer.d.ts +6 -0
  11. package/dist/Prebuilt/components/Footer/RoleAccordion.d.ts +14 -0
  12. package/dist/Prebuilt/components/Footer/RoleOptions.d.ts +6 -0
  13. package/dist/Prebuilt/components/Header/Header.d.ts +2 -0
  14. package/dist/Prebuilt/components/Header/StreamActions.d.ts +11 -0
  15. package/dist/Prebuilt/components/InsetTile.d.ts +2 -0
  16. package/dist/Prebuilt/components/Leave/DesktopLeaveRoom.d.ts +8 -0
  17. package/dist/Prebuilt/components/Leave/EndSessionContent.d.ts +9 -0
  18. package/dist/Prebuilt/components/Leave/LeaveAtoms.d.ts +2196 -0
  19. package/dist/Prebuilt/components/Leave/LeaveCard.d.ts +11 -0
  20. package/dist/Prebuilt/components/Leave/LeaveRoom.d.ts +5 -0
  21. package/dist/Prebuilt/components/Leave/LeaveSessionContent.d.ts +8 -0
  22. package/dist/Prebuilt/components/Leave/MwebLeaveRoom.d.ts +8 -0
  23. package/dist/Prebuilt/components/MoreSettings/MoreSettings.d.ts +6 -0
  24. package/dist/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.d.ts +6 -0
  25. package/dist/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.d.ts +6 -0
  26. package/dist/Prebuilt/components/Pagination.d.ts +6 -0
  27. package/dist/Prebuilt/components/Preview/PreviewContainer.d.ts +3 -0
  28. package/dist/Prebuilt/components/Preview/PreviewForm.d.ts +10 -0
  29. package/dist/Prebuilt/components/Preview/PreviewJoin.d.ts +16 -0
  30. package/dist/Prebuilt/components/RoleChangeRequestModal.d.ts +2 -0
  31. package/dist/Prebuilt/components/SecondaryTiles.d.ts +3 -0
  32. package/dist/Prebuilt/components/VideoLayouts/EqualProminence.d.ts +3 -0
  33. package/dist/Prebuilt/components/VideoLayouts/Grid.d.ts +6 -0
  34. package/dist/Prebuilt/components/VideoLayouts/GridLayout.d.ts +12 -0
  35. package/dist/Prebuilt/components/VideoLayouts/ProminenceLayout.d.ts +15 -0
  36. package/dist/Prebuilt/components/VideoLayouts/RoleProminence.d.ts +3 -0
  37. package/dist/Prebuilt/components/VideoLayouts/ScreenshareLayout.d.ts +3 -0
  38. package/dist/Prebuilt/components/VideoLayouts/interface.d.ts +9 -0
  39. package/dist/Prebuilt/components/hooks/useAutoStartStreaming.d.ts +1 -0
  40. package/dist/Prebuilt/components/hooks/useRedirectToLeave.d.ts +3 -0
  41. package/dist/Prebuilt/components/hooks/useRoleProminencePeers.d.ts +5 -0
  42. package/dist/Prebuilt/components/hooks/useTileLayout.d.ts +13 -0
  43. package/dist/Prebuilt/components/hooks/useVideoTileLayout.d.ts +13 -0
  44. package/dist/Prebuilt/layouts/SidePane.d.ts +9 -0
  45. package/dist/Prebuilt/layouts/VideoStreamingSection.d.ts +7 -0
  46. package/dist/Prebuilt/plugins/whiteboard/ToggleWhiteboard.d.ts +5 -0
  47. package/dist/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.d.ts +1 -0
  48. package/dist/Prebuilt/provider/roomLayoutProvider/hooks/useInsetEnabled.d.ts +1 -0
  49. package/dist/Prebuilt/provider/roomLayoutProvider/hooks/useRoomLayoutScreen.d.ts +17 -0
  50. package/dist/Prebuilt/provider/roomLayoutProvider/index.d.ts +6 -1
  51. package/dist/{VirtualBackground-GGCQJ5JM.js → VirtualBackground-UM2FOUHQ.js} +5 -11
  52. package/dist/VirtualBackground-UM2FOUHQ.js.map +7 -0
  53. package/dist/{chunk-P5X32KOD.js → chunk-364HP22I.js} +8 -5
  54. package/dist/chunk-364HP22I.js.map +7 -0
  55. package/dist/{chunk-OSM4QEQG.js → chunk-LYSAET4G.js} +3742 -5462
  56. package/dist/chunk-LYSAET4G.js.map +7 -0
  57. package/dist/chunk-POE7H4IE.js +898 -0
  58. package/dist/chunk-POE7H4IE.js.map +7 -0
  59. package/dist/conference-UWLJHMB2.js +5727 -0
  60. package/dist/conference-UWLJHMB2.js.map +7 -0
  61. package/dist/index.cjs.js +9655 -15326
  62. package/dist/index.cjs.js.map +4 -4
  63. package/dist/index.js +2 -2
  64. package/dist/meta.cjs.json +2513 -3456
  65. package/dist/meta.esbuild.json +2807 -3838
  66. package/package.json +8 -7
  67. package/src/Button/Button.tsx +2 -2
  68. package/src/Prebuilt/App.tsx +58 -53
  69. package/src/Prebuilt/{AppContext.jsx → AppContext.tsx} +11 -3
  70. package/src/Prebuilt/IconButton.jsx +11 -0
  71. package/src/Prebuilt/Prebuilt.stories.tsx +1 -0
  72. package/src/Prebuilt/common/{PeersSorter.js → PeersSorter.ts} +16 -11
  73. package/src/Prebuilt/common/constants.js +4 -114
  74. package/src/Prebuilt/common/hooks.js +34 -1
  75. package/src/Prebuilt/common/utils.js +1 -9
  76. package/src/Prebuilt/components/AppData/AppData.jsx +11 -15
  77. package/src/Prebuilt/components/AppData/useUISettings.js +6 -10
  78. package/src/Prebuilt/components/AudioVideoToggle.jsx +10 -2
  79. package/src/Prebuilt/components/AuthToken.jsx +11 -42
  80. package/src/Prebuilt/components/Chat/Chat.jsx +75 -27
  81. package/src/Prebuilt/components/Chat/ChatBody.jsx +95 -36
  82. package/src/Prebuilt/components/Chat/ChatFooter.tsx +199 -0
  83. package/src/Prebuilt/components/Chat/ChatParticipantHeader.jsx +84 -0
  84. package/src/Prebuilt/components/Chat/ChatSelector.jsx +16 -17
  85. package/src/Prebuilt/components/Chat/ChatSelectorContainer.jsx +81 -0
  86. package/src/Prebuilt/components/Chat/useEmojiPickerStyles.js +5 -4
  87. package/src/Prebuilt/components/Connection/{ConnectionIndicator.jsx → ConnectionIndicator.tsx} +12 -4
  88. package/src/Prebuilt/components/Connection/TileConnection.tsx +71 -0
  89. package/src/Prebuilt/components/EmojiReaction.jsx +19 -22
  90. package/src/Prebuilt/components/Footer/{ChatToggle.jsx → ChatToggle.tsx} +13 -9
  91. package/src/Prebuilt/components/Footer/Footer.tsx +98 -0
  92. package/src/Prebuilt/components/Footer/ParticipantList.jsx +187 -179
  93. package/src/Prebuilt/components/Footer/RoleAccordion.tsx +94 -0
  94. package/src/Prebuilt/components/Footer/RoleOptions.tsx +155 -0
  95. package/src/Prebuilt/components/FullPageProgress.jsx +3 -3
  96. package/src/Prebuilt/components/HMSVideo/Controls.jsx +3 -2
  97. package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.jsx +63 -18
  98. package/src/Prebuilt/components/HMSVideo/HMSVideo.jsx +2 -2
  99. package/src/Prebuilt/components/HMSVideo/PlayButton.jsx +1 -1
  100. package/src/Prebuilt/components/HMSVideo/VideoProgress.jsx +5 -6
  101. package/src/Prebuilt/components/HMSVideo/VideoTime.jsx +3 -3
  102. package/src/Prebuilt/components/HMSVideo/VolumeControl.jsx +38 -9
  103. package/src/Prebuilt/components/Header/{ConferencingHeader.jsx → Header.tsx} +9 -7
  104. package/src/Prebuilt/components/Header/HeaderComponents.jsx +13 -4
  105. package/src/Prebuilt/components/Header/{StreamActions.jsx → StreamActions.tsx} +54 -67
  106. package/src/Prebuilt/components/Header/common.jsx +5 -2
  107. package/src/Prebuilt/components/Header/index.tsx +1 -0
  108. package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.jsx +23 -4
  109. package/src/Prebuilt/components/InsetTile.tsx +128 -0
  110. package/src/Prebuilt/components/{MoreSettings/SplitComponents/DesktopLeaveRoom.jsx → Leave/DesktopLeaveRoom.tsx} +67 -25
  111. package/src/Prebuilt/components/{EndSessionContent.jsx → Leave/EndSessionContent.tsx} +18 -11
  112. package/src/Prebuilt/components/Leave/LeaveAtoms.tsx +26 -0
  113. package/src/Prebuilt/components/Leave/LeaveCard.tsx +36 -0
  114. package/src/Prebuilt/components/Leave/LeaveRoom.tsx +66 -0
  115. package/src/Prebuilt/components/{LeaveSessionContent.jsx → Leave/LeaveSessionContent.tsx} +20 -6
  116. package/src/Prebuilt/components/{MoreSettings/SplitComponents/MwebLeaveRoom.jsx → Leave/MwebLeaveRoom.tsx} +43 -18
  117. package/src/Prebuilt/components/MetaActions.jsx +15 -23
  118. package/src/Prebuilt/components/MoreSettings/ActionTile.jsx +5 -0
  119. package/src/Prebuilt/components/MoreSettings/ChangeNameContent.jsx +16 -7
  120. package/src/Prebuilt/components/MoreSettings/ChangeNameModal.jsx +1 -1
  121. package/src/Prebuilt/components/MoreSettings/FullScreenItem.jsx +1 -4
  122. package/src/Prebuilt/components/MoreSettings/MoreSettings.tsx +27 -0
  123. package/src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.tsx +216 -0
  124. package/src/Prebuilt/components/MoreSettings/SplitComponents/{MwebOptions.jsx → MwebOptions.tsx} +107 -45
  125. package/src/Prebuilt/components/Notifications/HLSFailureModal.jsx +3 -1
  126. package/src/Prebuilt/components/Notifications/Notifications.jsx +46 -30
  127. package/src/Prebuilt/components/Notifications/PeerNotifications.jsx +14 -2
  128. package/src/Prebuilt/components/Notifications/PermissionErrorModal.jsx +10 -4
  129. package/src/Prebuilt/components/Notifications/ReconnectNotifications.jsx +5 -11
  130. package/src/Prebuilt/components/PIP/PIPComponent.jsx +7 -16
  131. package/src/Prebuilt/components/PIP/PIPManager.js +1 -0
  132. package/src/Prebuilt/components/Pagination.tsx +60 -0
  133. package/src/Prebuilt/components/Playlist/Playlist.jsx +1 -6
  134. package/src/Prebuilt/components/PostLeave.jsx +7 -7
  135. package/src/Prebuilt/components/Preview/{PreviewContainer.jsx → PreviewContainer.tsx} +16 -15
  136. package/src/Prebuilt/components/Preview/{PreviewForm.jsx → PreviewForm.tsx} +16 -8
  137. package/src/Prebuilt/components/Preview/{PreviewJoin.jsx → PreviewJoin.tsx} +48 -22
  138. package/src/Prebuilt/components/RaiseHand.jsx +0 -7
  139. package/src/Prebuilt/components/RoleChangeRequestModal.tsx +119 -0
  140. package/src/Prebuilt/components/ScreenshareDisplay.jsx +4 -10
  141. package/src/Prebuilt/components/ScreenshareTile.jsx +43 -36
  142. package/src/Prebuilt/components/SecondaryTiles.tsx +36 -0
  143. package/src/Prebuilt/components/Settings/LayoutSettings.jsx +2 -12
  144. package/src/Prebuilt/components/Settings/NotificationSettings.jsx +3 -9
  145. package/src/Prebuilt/components/Settings/SettingsModal.jsx +3 -9
  146. package/src/Prebuilt/components/StatsForNerds.jsx +3 -1
  147. package/src/Prebuilt/components/TileMenu/TileMenu.jsx +16 -17
  148. package/src/Prebuilt/components/TileMenu/TileMenuContent.jsx +33 -27
  149. package/src/Prebuilt/components/Toast/ToastConfig.jsx +58 -15
  150. package/src/Prebuilt/components/VideoLayouts/EqualProminence.tsx +65 -0
  151. package/src/Prebuilt/components/VideoLayouts/Grid.tsx +43 -0
  152. package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +110 -0
  153. package/src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx +74 -0
  154. package/src/Prebuilt/components/VideoLayouts/RoleProminence.tsx +59 -0
  155. package/src/Prebuilt/components/VideoLayouts/ScreenshareLayout.tsx +52 -0
  156. package/src/Prebuilt/components/VideoLayouts/interface.ts +10 -0
  157. package/src/Prebuilt/components/VideoTile.jsx +116 -74
  158. package/src/Prebuilt/components/conference.jsx +86 -85
  159. package/src/Prebuilt/components/hooks/useAutoStartStreaming.tsx +57 -0
  160. package/src/Prebuilt/components/hooks/useMetadata.jsx +19 -3
  161. package/src/Prebuilt/components/hooks/useRedirectToLeave.tsx +34 -0
  162. package/src/Prebuilt/components/hooks/useRoleProminencePeers.tsx +38 -0
  163. package/src/Prebuilt/components/hooks/useTileLayout.tsx +127 -0
  164. package/src/Prebuilt/components/hooks/useVideoTileLayout.ts +26 -0
  165. package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +5 -72
  166. package/src/Prebuilt/components/pdfAnnotator/submitPdf.jsx +4 -45
  167. package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +2 -17
  168. package/src/Prebuilt/components/peerTileUtils.jsx +1 -1
  169. package/src/Prebuilt/images/empty-chat.svg +12 -0
  170. package/src/Prebuilt/layouts/EmbedView.jsx +17 -50
  171. package/src/Prebuilt/layouts/HLSView.jsx +138 -51
  172. package/src/Prebuilt/layouts/PDFView.jsx +1 -11
  173. package/src/Prebuilt/layouts/SidePane.tsx +108 -0
  174. package/src/Prebuilt/layouts/VideoStreamingSection.tsx +96 -0
  175. package/src/Prebuilt/layouts/WhiteboardView.jsx +10 -34
  176. package/src/Prebuilt/plugins/FlyingEmoji.jsx +14 -2
  177. package/src/Prebuilt/plugins/VirtualBackground/VirtualBackground.jsx +1 -4
  178. package/src/Prebuilt/plugins/whiteboard/{ToggleWhiteboard.jsx → ToggleWhiteboard.tsx} +5 -9
  179. package/src/Prebuilt/primitives/DialogContent.jsx +15 -11
  180. package/src/Prebuilt/provider/roomLayoutProvider/constants/index.ts +17 -2
  181. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts +36 -13
  182. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useInsetEnabled.ts +10 -0
  183. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useRoomLayoutScreen.ts +65 -0
  184. package/src/Prebuilt/provider/roomLayoutProvider/index.tsx +17 -6
  185. package/src/Prebuilt/services/FeatureFlags.jsx +0 -1
  186. package/src/VideoTile/StyledVideoTile.tsx +1 -0
  187. package/dist/HLSView-P57IRMAR.js.map +0 -7
  188. package/dist/PinnedTrackView-4FYJEBTB.js +0 -102
  189. package/dist/PinnedTrackView-4FYJEBTB.js.map +0 -7
  190. package/dist/VirtualBackground-GGCQJ5JM.js.map +0 -7
  191. package/dist/chunk-IVTWKQI3.js +0 -827
  192. package/dist/chunk-IVTWKQI3.js.map +0 -7
  193. package/dist/chunk-OSM4QEQG.js.map +0 -7
  194. package/dist/chunk-P5X32KOD.js.map +0 -7
  195. package/dist/chunk-RVCZPPTL.js +0 -1100
  196. package/dist/chunk-RVCZPPTL.js.map +0 -7
  197. package/dist/conference-P6I6ESVF.js +0 -8995
  198. package/dist/conference-P6I6ESVF.js.map +0 -7
  199. package/src/Prebuilt/components/AudioLevel/BeamSpeakerLabelsLogging.jsx +0 -16
  200. package/src/Prebuilt/components/Chat/ChatFooter.jsx +0 -150
  201. package/src/Prebuilt/components/Chat/ChatHeader.jsx +0 -67
  202. package/src/Prebuilt/components/Connection/TileConnection.jsx +0 -39
  203. package/src/Prebuilt/components/EqualProminence.jsx +0 -180
  204. package/src/Prebuilt/components/FirstPersonDisplay.jsx +0 -50
  205. package/src/Prebuilt/components/Footer/Footer.jsx +0 -73
  206. package/src/Prebuilt/components/Header/Header.jsx +0 -8
  207. package/src/Prebuilt/components/Header/StreamingHeader.jsx +0 -54
  208. package/src/Prebuilt/components/LeaveCard.jsx +0 -19
  209. package/src/Prebuilt/components/LeaveRoom.jsx +0 -94
  210. package/src/Prebuilt/components/MoreSettings/MoreSettings.jsx +0 -10
  211. package/src/Prebuilt/components/MoreSettings/SplitComponents/DesktopOptions.jsx +0 -219
  212. package/src/Prebuilt/components/Notifications/MessageNotifications.jsx +0 -25
  213. package/src/Prebuilt/components/Pagination.jsx +0 -29
  214. package/src/Prebuilt/components/RoleChangeRequestModal.jsx +0 -26
  215. package/src/Prebuilt/components/VideoList.jsx +0 -73
  216. package/src/Prebuilt/components/gridView.jsx +0 -85
  217. package/src/Prebuilt/components/hooks/useFeatures.js +0 -22
  218. package/src/Prebuilt/components/hooks/useNavigation.js +0 -19
  219. package/src/Prebuilt/components/hooks/useSkipPreview.jsx +0 -20
  220. package/src/Prebuilt/components/pdfAnnotator/pdfErrorView.jsx +0 -29
  221. package/src/Prebuilt/images/Logo.svg +0 -8
  222. package/src/Prebuilt/layouts/ActiveSpeakerView.jsx +0 -34
  223. package/src/Prebuilt/layouts/InsetView.jsx +0 -260
  224. package/src/Prebuilt/layouts/PinnedTrackView.jsx +0 -59
  225. package/src/Prebuilt/layouts/SidePane.jsx +0 -52
  226. package/src/Prebuilt/layouts/mainGridView.jsx +0 -98
  227. package/src/Prebuilt/layouts/mainView.jsx +0 -141
  228. package/src/Prebuilt/layouts/screenShareView.jsx +0 -183
  229. /package/{src/Prebuilt/components/Header/index.jsx → dist/Prebuilt/components/Header/index.d.ts} +0 -0
  230. /package/src/Prebuilt/components/{ScreenShare.jsx → ScreenShareToggle.jsx} +0 -0
  231. /package/src/{assets → Prebuilt/images}/android-perm-1.png +0 -0
  232. /package/src/{assets → Prebuilt/images}/ios-perm-0.png +0 -0
@@ -1,17 +1,17 @@
1
1
  import {
2
+ APP_DATA,
2
3
  Button,
3
4
  Dialog,
4
5
  DialogContent,
5
6
  DialogRow,
6
7
  Dropdown,
8
+ EMOJI_REACTION_TYPE,
7
9
  Slider,
8
10
  ToastManager,
9
11
  useTheme
10
- } from "./chunk-OSM4QEQG.js";
12
+ } from "./chunk-LYSAET4G.js";
11
13
  import {
12
- APP_DATA,
13
14
  Box,
14
- EMOJI_REACTION_TYPE,
15
15
  Flex,
16
16
  IconButton,
17
17
  IconButton_default,
@@ -20,21 +20,20 @@ import {
20
20
  Tooltip,
21
21
  __async,
22
22
  __objRest,
23
- init_define_process_env,
23
+ __spreadValues,
24
+ config,
24
25
  styled
25
- } from "./chunk-RVCZPPTL.js";
26
+ } from "./chunk-POE7H4IE.js";
26
27
 
27
28
  // src/Prebuilt/layouts/HLSView.jsx
28
- init_define_process_env();
29
- import React10, { useCallback, useEffect as useEffect3, useRef as useRef2, useState as useState5 } from "react";
30
- import { useFullscreen, useToggle } from "react-use";
29
+ import React10, { useCallback, useEffect as useEffect3, useRef as useRef2, useState as useState4 } from "react";
30
+ import { useFullscreen, useMedia, useToggle } from "react-use";
31
31
  import { HLSPlaybackState, HMSHLSPlayer, HMSHLSPlayerEvents as HMSHLSPlayerEvents2 } from "@100mslive/hls-player";
32
32
  import screenfull from "screenfull";
33
33
  import { selectAppData, selectHLSState, useHMSActions, useHMSStore } from "@100mslive/react-sdk";
34
- import { ExpandIcon, ShrinkIcon } from "@100mslive/react-icons";
34
+ import { ColoredHandIcon, ExpandIcon, RadioIcon, ShrinkIcon } from "@100mslive/react-icons";
35
35
 
36
36
  // src/Prebuilt/components/HlsStatsOverlay.jsx
37
- init_define_process_env();
38
37
  import React, { memo } from "react";
39
38
  import { CloseIcon } from "@100mslive/react-icons";
40
39
  function HlsStatsOverlay({ hlsStatsState, onClose }) {
@@ -114,14 +113,11 @@ var HlsStatsRow = memo(({ label, children }) => {
114
113
  ));
115
114
  });
116
115
 
117
- // src/Prebuilt/components/HMSVideo/index.js
118
- init_define_process_env();
119
-
120
116
  // src/Prebuilt/components/HMSVideo/Controls.jsx
121
- init_define_process_env();
122
117
  var VideoControls = styled(Flex, {
123
118
  justifyContent: "center",
124
119
  alignItems: "center",
120
+ alignSelf: "stretch",
125
121
  width: "100%",
126
122
  gap: "$2"
127
123
  });
@@ -129,36 +125,33 @@ var LeftControls = styled(Flex, {
129
125
  justifyContent: "flex-start",
130
126
  alignItems: "center",
131
127
  width: "100%",
132
- gap: "$2"
128
+ gap: "$4"
133
129
  });
134
130
  var RightControls = styled(Flex, {
135
131
  justifyContent: "flex-end",
136
132
  alignItems: "center",
137
133
  width: "100%",
138
- gap: "$2"
134
+ gap: "$4"
139
135
  });
140
136
 
141
137
  // src/Prebuilt/components/HMSVideo/HMSVideo.jsx
142
- init_define_process_env();
143
138
  import React2, { forwardRef } from "react";
144
- var HMSVideo = forwardRef(({ children }, videoRef) => {
145
- return /* @__PURE__ */ React2.createElement(Flex, { "data-testid": "hms-video", css: { size: "100%" }, direction: "column" }, /* @__PURE__ */ React2.createElement("video", { style: { flex: "1 1 0", margin: "0 auto", minHeight: "0" }, ref: videoRef, playsInline: true }), children);
139
+ var HMSVideo = forwardRef((_a, videoRef) => {
140
+ var _b = _a, { children } = _b, props = __objRest(_b, ["children"]);
141
+ return /* @__PURE__ */ React2.createElement(Flex, __spreadValues({ "data-testid": "hms-video", css: { size: "100%", position: "relative" }, direction: "column" }, props), /* @__PURE__ */ React2.createElement("video", { style: { flex: "1 1 0", margin: "0 auto", minHeight: "0" }, ref: videoRef, playsInline: true }), children);
146
142
  });
147
143
 
148
144
  // src/Prebuilt/components/HMSVideo/PlayButton.jsx
149
- init_define_process_env();
150
145
  import React3 from "react";
151
146
  import { PauseIcon, PlayIcon } from "@100mslive/react-icons";
152
147
  var PlayButton = ({ onClick, isPaused }) => {
153
- return /* @__PURE__ */ React3.createElement(Tooltip, { title: isPaused ? "Play" : "Pause", side: "top" }, /* @__PURE__ */ React3.createElement(IconButton, { onClick, "data-testid": "play_pause_btn" }, isPaused ? /* @__PURE__ */ React3.createElement(PlayIcon, { width: 32, height: 32 }) : /* @__PURE__ */ React3.createElement(PauseIcon, { width: 32, height: 32 })));
148
+ return /* @__PURE__ */ React3.createElement(Tooltip, { title: isPaused ? "Play" : "Pause", side: "top" }, /* @__PURE__ */ React3.createElement(IconButton, { onClick, "data-testid": "play_pause_btn" }, isPaused ? /* @__PURE__ */ React3.createElement(PlayIcon, { width: 20, height: 20 }) : /* @__PURE__ */ React3.createElement(PauseIcon, { width: 20, height: 20 })));
154
149
  };
155
150
 
156
151
  // src/Prebuilt/components/HMSVideo/VideoProgress.jsx
157
- init_define_process_env();
158
152
  import React4, { useEffect, useRef, useState } from "react";
159
153
 
160
154
  // src/Prebuilt/components/HMSVideo/HMSVIdeoUtils.js
161
- init_define_process_env();
162
155
  function getPercentage(a, b) {
163
156
  return a / b * 100;
164
157
  }
@@ -218,7 +211,7 @@ var VideoProgress = ({ onValueChange, hlsPlayer: hlsPlayer2 }) => {
218
211
  Flex,
219
212
  {
220
213
  ref: progressRootRef,
221
- css: { paddingLeft: "$8", paddingRight: "$8", cursor: "pointer" },
214
+ css: { cursor: "pointer", h: "$4", alignSelf: "stretch" },
222
215
  onClick: onProgressChangeHandler
223
216
  },
224
217
  /* @__PURE__ */ React4.createElement(
@@ -228,8 +221,7 @@ var VideoProgress = ({ onValueChange, hlsPlayer: hlsPlayer2 }) => {
228
221
  css: {
229
222
  display: "inline",
230
223
  width: `${videoProgress}%`,
231
- background: "$primary_default",
232
- height: "0.3rem"
224
+ background: "$primary_default"
233
225
  }
234
226
  }
235
227
  ),
@@ -239,8 +231,8 @@ var VideoProgress = ({ onValueChange, hlsPlayer: hlsPlayer2 }) => {
239
231
  id: "video-buffer",
240
232
  css: {
241
233
  width: `${bufferProgress - videoProgress}%`,
242
- background: "$primary_dim",
243
- height: "0.3rem"
234
+ background: "$on_surface_high",
235
+ opacity: "25%"
244
236
  }
245
237
  }
246
238
  ),
@@ -250,8 +242,8 @@ var VideoProgress = ({ onValueChange, hlsPlayer: hlsPlayer2 }) => {
250
242
  id: "video-rest",
251
243
  css: {
252
244
  width: `${100 - bufferProgress}%`,
253
- background: "$surface_brighter",
254
- height: "0.3rem"
245
+ background: "$on_surface_high",
246
+ opacity: "10%"
255
247
  }
256
248
  }
257
249
  )
@@ -259,7 +251,6 @@ var VideoProgress = ({ onValueChange, hlsPlayer: hlsPlayer2 }) => {
259
251
  };
260
252
 
261
253
  // src/Prebuilt/components/HMSVideo/VideoTime.jsx
262
- init_define_process_env();
263
254
  import React5, { useEffect as useEffect2, useState as useState2 } from "react";
264
255
  import { HMSHLSPlayerEvents } from "@100mslive/hls-player";
265
256
  var VideoTime = ({ hlsPlayer: hlsPlayer2 }) => {
@@ -279,10 +270,10 @@ var VideoTime = ({ hlsPlayer: hlsPlayer2 }) => {
279
270
  Text,
280
271
  {
281
272
  css: {
282
- minWidth: "$16"
283
- },
284
- variant: {
285
- "@sm": "xs"
273
+ minWidth: "$16",
274
+ c: "$on_surface_medium",
275
+ display: "flex",
276
+ justifyContent: "center"
286
277
  }
287
278
  },
288
279
  videoTime
@@ -290,44 +281,72 @@ var VideoTime = ({ hlsPlayer: hlsPlayer2 }) => {
290
281
  };
291
282
 
292
283
  // src/Prebuilt/components/HMSVideo/VolumeControl.jsx
293
- init_define_process_env();
294
284
  import React6, { useState as useState3 } from "react";
295
- import { SpeakerIcon } from "@100mslive/react-icons";
285
+ import { VolumeOneIcon, VolumeTwoIcon, VolumeZeroIcon } from "@100mslive/react-icons";
296
286
  var VolumeControl = ({ hlsPlayer: hlsPlayer2 }) => {
297
287
  var _a;
298
288
  const [volume, setVolume] = useState3((_a = hlsPlayer2 == null ? void 0 : hlsPlayer2.volume) != null ? _a : 100);
299
- return /* @__PURE__ */ React6.createElement(Flex, { align: "center", css: { color: "$on_primary_high" } }, /* @__PURE__ */ React6.createElement(
300
- SpeakerIcon,
289
+ const [showSlider, setShowSlider] = useState3(false);
290
+ return /* @__PURE__ */ React6.createElement(
291
+ Flex,
301
292
  {
302
- style: { cursor: "pointer" },
303
- onClick: () => {
304
- setVolume(0);
305
- if (hlsPlayer2) {
306
- hlsPlayer2.setVolume(0);
293
+ align: "center",
294
+ css: { color: "$on_surface_high" },
295
+ onMouseOver: (event) => {
296
+ event.stopPropagation();
297
+ setShowSlider(true);
298
+ },
299
+ onMouseLeave: (event) => {
300
+ event.stopPropagation();
301
+ setShowSlider(false);
302
+ }
303
+ },
304
+ /* @__PURE__ */ React6.createElement(
305
+ VolumeIcon,
306
+ {
307
+ volume,
308
+ onClick: () => {
309
+ if (volume > 0) {
310
+ setVolume(0);
311
+ hlsPlayer2 == null ? void 0 : hlsPlayer2.setVolume(0);
312
+ } else {
313
+ setVolume(100);
314
+ hlsPlayer2 == null ? void 0 : hlsPlayer2.setVolume(100);
315
+ }
307
316
  }
308
317
  }
309
- }
310
- ), /* @__PURE__ */ React6.createElement(
311
- Slider,
312
- {
313
- css: {
314
- mx: "$4",
315
- w: "$20",
316
- cursor: "pointer",
317
- "@sm": { w: "$14" },
318
- "@xs": { w: "$14" }
319
- },
320
- min: 0,
321
- max: 100,
322
- step: 1,
323
- value: [volume],
324
- onValueChange: (volume2) => {
325
- hlsPlayer2.setVolume(volume2);
326
- setVolume(volume2);
327
- },
328
- thumbStyles: { w: "$6", h: "$6" }
329
- }
330
- ));
318
+ ),
319
+ /* @__PURE__ */ React6.createElement(
320
+ Slider,
321
+ {
322
+ css: {
323
+ mx: "$4",
324
+ w: "$20",
325
+ cursor: "pointer",
326
+ "@sm": { w: "$14" },
327
+ "@xs": { w: "$14" },
328
+ opacity: showSlider ? "1" : "0",
329
+ display: showSlider ? "" : "none",
330
+ transition: `all .2s ease .5s`
331
+ },
332
+ min: 0,
333
+ max: 100,
334
+ step: 1,
335
+ value: [volume],
336
+ onValueChange: (volume2) => {
337
+ hlsPlayer2.setVolume(volume2[0]);
338
+ setVolume(volume2[0]);
339
+ },
340
+ thumbStyles: { w: "$6", h: "$6" }
341
+ }
342
+ )
343
+ );
344
+ };
345
+ var VolumeIcon = ({ volume, onClick }) => {
346
+ if (volume === 0) {
347
+ return /* @__PURE__ */ React6.createElement(VolumeZeroIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
348
+ }
349
+ return volume < 50 ? /* @__PURE__ */ React6.createElement(VolumeOneIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick }) : /* @__PURE__ */ React6.createElement(VolumeTwoIcon, { style: { cursor: "pointer", transition: "color 0.3s" }, onClick });
331
350
  };
332
351
 
333
352
  // src/Prebuilt/components/HMSVideo/index.js
@@ -345,7 +364,6 @@ var HMSVideoPlayer = {
345
364
  };
346
365
 
347
366
  // src/Prebuilt/components/HMSVideo/FullscreenButton.jsx
348
- init_define_process_env();
349
367
  import React7 from "react";
350
368
  var FullScreenButton = ({ isFullScreen, icon, onToggle }) => {
351
369
  return /* @__PURE__ */ React7.createElement(Tooltip, { title: `${isFullScreen ? "Exit" : "Go"} fullscreen`, side: "top" }, /* @__PURE__ */ React7.createElement(
@@ -362,7 +380,6 @@ var FullScreenButton = ({ isFullScreen, icon, onToggle }) => {
362
380
  };
363
381
 
364
382
  // src/Prebuilt/components/HMSVideo/HLSAutoplayBlockedPrompt.jsx
365
- init_define_process_env();
366
383
  import React8 from "react";
367
384
  function HLSAutoplayBlockedPrompt({ open, unblockAutoPlay }) {
368
385
  return /* @__PURE__ */ React8.createElement(
@@ -389,12 +406,10 @@ function HLSAutoplayBlockedPrompt({ open, unblockAutoPlay }) {
389
406
  }
390
407
 
391
408
  // src/Prebuilt/components/HMSVideo/HLSQualitySelector.jsx
392
- init_define_process_env();
393
- import React9, { useState as useState4 } from "react";
394
- import { CheckCircleIcon, SettingsIcon } from "@100mslive/react-icons";
395
- function HLSQualitySelector({ layers, onQualityChange, selection, isAuto }) {
396
- const [qualityDropDownOpen, setQualityDropDownOpen] = useState4(false);
397
- return /* @__PURE__ */ React9.createElement(Dropdown.Root, { open: qualityDropDownOpen, onOpenChange: (value) => setQualityDropDownOpen(value) }, /* @__PURE__ */ React9.createElement(Dropdown.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React9.createElement(
409
+ import React9 from "react";
410
+ import { CheckIcon, SettingsIcon } from "@100mslive/react-icons";
411
+ function HLSQualitySelector({ open, onOpen, layers, onQualityChange, selection, isAuto }) {
412
+ return /* @__PURE__ */ React9.createElement(Dropdown.Root, { open, onOpenChange: (value) => onOpen(value) }, /* @__PURE__ */ React9.createElement(Dropdown.Trigger, { asChild: true, "data-testid": "quality_selector" }, /* @__PURE__ */ React9.createElement(
398
413
  Flex,
399
414
  {
400
415
  css: {
@@ -411,7 +426,8 @@ function HLSQualitySelector({ layers, onQualityChange, selection, isAuto }) {
411
426
  w: "$9",
412
427
  h: "$9",
413
428
  display: "inline-flex",
414
- alignItems: "center"
429
+ alignItems: "center",
430
+ c: "$on_surface_high"
415
431
  }
416
432
  },
417
433
  /* @__PURE__ */ React9.createElement(SettingsIcon, null)
@@ -423,7 +439,7 @@ function HLSQualitySelector({ layers, onQualityChange, selection, isAuto }) {
423
439
  "@sm": "xs",
424
440
  "@xs": "tiny"
425
441
  },
426
- css: { display: "flex", alignItems: "center", ml: "$2" }
442
+ css: { display: "flex", alignItems: "center", ml: "$2", c: "$on_surface_medium" }
427
443
  },
428
444
  isAuto && /* @__PURE__ */ React9.createElement(React9.Fragment, null, "Auto", /* @__PURE__ */ React9.createElement(
429
445
  Box,
@@ -432,7 +448,7 @@ function HLSQualitySelector({ layers, onQualityChange, selection, isAuto }) {
432
448
  mx: "$2",
433
449
  w: "$2",
434
450
  h: "$2",
435
- background: "$on_primary_high",
451
+ background: "$on_surface_medium",
436
452
  r: "$1"
437
453
  }
438
454
  }
@@ -440,11 +456,64 @@ function HLSQualitySelector({ layers, onQualityChange, selection, isAuto }) {
440
456
  selection && Math.min(selection.width, selection.height),
441
457
  "p"
442
458
  )))
443
- )), layers.length > 0 && /* @__PURE__ */ React9.createElement(Dropdown.Content, { sideOffset: 5, align: "end", css: { height: "auto", maxHeight: "$96", w: "$64" } }, /* @__PURE__ */ React9.createElement(Dropdown.Item, { onClick: () => onQualityChange({ height: "auto" }), key: "auto" }, /* @__PURE__ */ React9.createElement(Text, { css: { flex: "1 1 0" } }, "Automatic"), isAuto && /* @__PURE__ */ React9.createElement(CheckCircleIcon, null)), layers.map((layer) => {
444
- return /* @__PURE__ */ React9.createElement(Dropdown.Item, { onClick: () => onQualityChange(layer), key: layer.width }, /* @__PURE__ */ React9.createElement(Text, { css: { flex: "1 1 0" } }, getQualityText(layer)), !isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React9.createElement(CheckCircleIcon, null));
445
- })));
459
+ )), layers.length > 0 && /* @__PURE__ */ React9.createElement(
460
+ Dropdown.Content,
461
+ {
462
+ sideOffset: 5,
463
+ align: "end",
464
+ css: {
465
+ height: "auto",
466
+ maxHeight: "$52",
467
+ w: "$40",
468
+ bg: "$surface_bright",
469
+ py: "$4",
470
+ gap: "$4",
471
+ display: "grid"
472
+ }
473
+ },
474
+ layers.map((layer) => {
475
+ return /* @__PURE__ */ React9.createElement(
476
+ Dropdown.Item,
477
+ {
478
+ onClick: () => onQualityChange(layer),
479
+ key: layer.width,
480
+ css: {
481
+ bg: !isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) ? "$surface_default" : "$surface_bright",
482
+ "&:hover": {
483
+ bg: "$surface_brighter"
484
+ },
485
+ p: "$2 $4 $2 $8",
486
+ h: "$12",
487
+ gap: "$2"
488
+ }
489
+ },
490
+ /* @__PURE__ */ React9.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold" } }, getQualityText(layer)),
491
+ /* @__PURE__ */ React9.createElement(Text, { variant: "caption", css: { flex: "1 1 0", c: "$on_surface_low", pl: "$2" } }, getBitrateText(layer)),
492
+ !isAuto && layer.width === (selection == null ? void 0 : selection.width) && layer.height === (selection == null ? void 0 : selection.height) && /* @__PURE__ */ React9.createElement(CheckIcon, { width: "16px", height: "16px" })
493
+ );
494
+ }),
495
+ /* @__PURE__ */ React9.createElement(
496
+ Dropdown.Item,
497
+ {
498
+ onClick: () => onQualityChange({ height: "auto" }),
499
+ key: "auto",
500
+ css: {
501
+ bg: !isAuto ? "$surface_bright" : "$surface_default",
502
+ "&:hover": {
503
+ bg: "$surface_brighter"
504
+ },
505
+ p: "$2 $4 $2 $8",
506
+ h: "$12",
507
+ gap: "$2"
508
+ }
509
+ },
510
+ /* @__PURE__ */ React9.createElement(Text, { variant: "caption", css: { fontWeight: "$semiBold", flex: "1 1 0" } }, "Auto"),
511
+ isAuto && /* @__PURE__ */ React9.createElement(CheckIcon, { width: "16px", height: "16px" })
512
+ )
513
+ ));
446
514
  }
447
- var getQualityText = (layer) => `${Math.min(layer.height, layer.width)}p (${(Number(layer.bitrate / 1e3) / 1e3).toFixed(2)} Mbps)`;
515
+ var getQualityText = (layer) => `${Math.min(layer.height, layer.width)}p `;
516
+ var getBitrateText = (layer) => `(${(Number(layer.bitrate / 1e3) / 1e3).toFixed(2)} Mbps)`;
448
517
 
449
518
  // src/Prebuilt/layouts/HLSView.jsx
450
519
  var hlsPlayer;
@@ -455,21 +524,27 @@ var HLSView = () => {
455
524
  const hlsState = useHMSStore(selectHLSState);
456
525
  const enablHlsStats = useHMSStore(selectAppData(APP_DATA.hlsStats));
457
526
  const hmsActions = useHMSActions();
458
- const { themeType } = useTheme();
459
- let [hlsStatsState, setHlsStatsState] = useState5(null);
527
+ const { themeType, theme } = useTheme();
528
+ const [streamEnded, setStreamEnded] = useState4(false);
529
+ let [hlsStatsState, setHlsStatsState] = useState4(null);
460
530
  const hlsUrl = (_a = hlsState.variants[0]) == null ? void 0 : _a.url;
461
- const [availableLayers, setAvailableLayers] = useState5([]);
462
- const [isVideoLive, setIsVideoLive] = useState5(true);
463
- const [isUserSelectedAuto, setIsUserSelectedAuto] = useState5(true);
464
- const [currentSelectedQuality, setCurrentSelectedQuality] = useState5(null);
465
- const [isHlsAutoplayBlocked, setIsHlsAutoplayBlocked] = useState5(false);
466
- const [isPaused, setIsPaused] = useState5(false);
531
+ const [availableLayers, setAvailableLayers] = useState4([]);
532
+ const [isVideoLive, setIsVideoLive] = useState4(true);
533
+ const [isUserSelectedAuto, setIsUserSelectedAuto] = useState4(true);
534
+ const [currentSelectedQuality, setCurrentSelectedQuality] = useState4(null);
535
+ const [isHlsAutoplayBlocked, setIsHlsAutoplayBlocked] = useState4(false);
536
+ const [isPaused, setIsPaused] = useState4(false);
467
537
  const isFullScreenSupported = screenfull.isEnabled;
468
538
  const [show, toggle] = useToggle(false);
539
+ const [controlsVisible, setControlsVisible] = useState4(true);
540
+ const controlsRef = useRef2();
541
+ const controlsTimerRef = useRef2();
542
+ const [qualityDropDownOpen, setQualityDropDownOpen] = useState4(false);
543
+ const isMobile = useMedia(config.media.md);
469
544
  const isFullScreen = useFullscreen(hlsViewRef, show, {
470
545
  onClose: () => toggle(false)
471
546
  });
472
- const [showLoader, setShowLoader] = useState5(false);
547
+ const [showLoader, setShowLoader] = useState4(false);
473
548
  useEffect3(() => {
474
549
  const videoEl = videoRef.current;
475
550
  const showLoader2 = () => setShowLoader(true);
@@ -481,6 +556,17 @@ var HLSView = () => {
481
556
  videoEl == null ? void 0 : videoEl.removeEventListener("waiting", showLoader2);
482
557
  };
483
558
  }, []);
559
+ useEffect3(() => {
560
+ const videoElem = videoRef.current;
561
+ const setStreamEndedCallback = () => {
562
+ setStreamEnded(true);
563
+ videoElem == null ? void 0 : videoElem.removeEventListener("ended", setStreamEndedCallback);
564
+ };
565
+ videoElem == null ? void 0 : videoElem.addEventListener("ended", setStreamEndedCallback);
566
+ return () => {
567
+ videoElem == null ? void 0 : videoElem.removeEventListener("ended", setStreamEndedCallback);
568
+ };
569
+ }, [hlsUrl]);
484
570
  useEffect3(() => {
485
571
  let videoEl = videoRef.current;
486
572
  const manifestLoadedHandler = ({ layers }) => {
@@ -491,6 +577,7 @@ var HLSView = () => {
491
577
  };
492
578
  const metadataLoadedHandler = (_a2) => {
493
579
  var _b = _a2, { payload } = _b, rest = __objRest(_b, ["payload"]);
580
+ var _a3;
494
581
  const parsePayload = (str) => {
495
582
  try {
496
583
  return JSON.parse(str);
@@ -502,7 +589,7 @@ var HLSView = () => {
502
589
  const parsedPayload = parsePayload(payload);
503
590
  switch (parsedPayload.type) {
504
591
  case EMOJI_REACTION_TYPE:
505
- window.showFlyingEmoji(parsedPayload == null ? void 0 : parsedPayload.emojiId, parsedPayload == null ? void 0 : parsedPayload.senderId);
592
+ (_a3 = window.showFlyingEmoji) == null ? void 0 : _a3.call(window, { emojiId: parsedPayload == null ? void 0 : parsedPayload.emojiId, senderId: parsedPayload == null ? void 0 : parsedPayload.senderId });
506
593
  break;
507
594
  default: {
508
595
  const toast = {
@@ -577,6 +664,41 @@ var HLSView = () => {
577
664
  const sfnOverlayClose = () => {
578
665
  hmsActions.setAppData(APP_DATA.hlsStats, !enablHlsStats);
579
666
  };
667
+ useEffect3(() => {
668
+ if (controlsVisible && isFullScreen && !qualityDropDownOpen) {
669
+ if (controlsTimerRef.current) {
670
+ clearTimeout(controlsTimerRef.current);
671
+ }
672
+ controlsTimerRef.current = setTimeout(() => {
673
+ setControlsVisible(false);
674
+ }, 5e3);
675
+ }
676
+ if (!isFullScreen && controlsTimerRef.current) {
677
+ clearTimeout(controlsTimerRef.current);
678
+ }
679
+ return () => {
680
+ if (controlsTimerRef.current) {
681
+ clearTimeout(controlsTimerRef.current);
682
+ }
683
+ };
684
+ }, [controlsVisible, isFullScreen, qualityDropDownOpen]);
685
+ const onHoverHandler = useCallback(
686
+ (event) => {
687
+ if (event.type === "mouseenter" || qualityDropDownOpen) {
688
+ setControlsVisible(true);
689
+ return;
690
+ }
691
+ if (event.type === "mouseleave") {
692
+ setControlsVisible(false);
693
+ } else if (isFullScreen && !controlsVisible && event.type === "mousemove") {
694
+ setControlsVisible(true);
695
+ if (controlsTimerRef.current) {
696
+ clearTimeout(controlsTimerRef.current);
697
+ }
698
+ }
699
+ },
700
+ [controlsVisible, isFullScreen, qualityDropDownOpen]
701
+ );
580
702
  return /* @__PURE__ */ React10.createElement(
581
703
  Flex,
582
704
  {
@@ -588,7 +710,7 @@ var HLSView = () => {
588
710
  }
589
711
  },
590
712
  (hlsStatsState == null ? void 0 : hlsStatsState.url) && enablHlsStats ? /* @__PURE__ */ React10.createElement(HlsStatsOverlay, { hlsStatsState, onClose: sfnOverlayClose }) : null,
591
- hlsUrl && hlsState.running ? /* @__PURE__ */ React10.createElement(
713
+ hlsUrl && !streamEnded ? /* @__PURE__ */ React10.createElement(
592
714
  Flex,
593
715
  {
594
716
  id: "hls-player-container",
@@ -612,74 +734,110 @@ var HLSView = () => {
612
734
  },
613
735
  /* @__PURE__ */ React10.createElement(Loading, { width: 72, height: 72 })
614
736
  ),
615
- /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Root, { ref: videoRef }, hlsPlayer && /* @__PURE__ */ React10.createElement(
616
- HMSVideoPlayer.Progress,
617
- {
618
- onValueChange: (currentTime) => {
619
- hlsPlayer.seekTo(currentTime);
620
- },
621
- hlsPlayer
622
- }
623
- ), /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Controls.Root, { css: { p: "$4 $8" } }, /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Controls.Left, null, /* @__PURE__ */ React10.createElement(
624
- HMSVideoPlayer.PlayButton,
625
- {
626
- onClick: () => __async(void 0, null, function* () {
627
- isPaused ? yield hlsPlayer == null ? void 0 : hlsPlayer.play() : hlsPlayer == null ? void 0 : hlsPlayer.pause();
628
- }),
629
- isPaused
630
- }
631
- ), /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Duration, { hlsPlayer }), /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Volume, { hlsPlayer })), /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Controls.Right, null, availableLayers.length > 0 ? /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(
632
- IconButton,
737
+ /* @__PURE__ */ React10.createElement(
738
+ HMSVideoPlayer.Root,
633
739
  {
634
- variant: "standard",
635
- css: { px: "$2" },
636
- onClick: () => __async(void 0, null, function* () {
637
- yield hlsPlayer.seekToLivePosition();
638
- setIsVideoLive(true);
639
- }),
640
- key: "jump-to-live_btn",
641
- "data-testid": "jump-to-live_btn"
740
+ ref: videoRef,
741
+ onMouseEnter: onHoverHandler,
742
+ onMouseMove: onHoverHandler,
743
+ onMouseLeave: onHoverHandler
642
744
  },
643
- /* @__PURE__ */ React10.createElement(Tooltip, { title: "Go to Live", side: "top" }, /* @__PURE__ */ React10.createElement(Flex, { justify: "center", gap: 2, align: "center" }, /* @__PURE__ */ React10.createElement(
644
- Box,
745
+ /* @__PURE__ */ React10.createElement(
746
+ Flex,
645
747
  {
748
+ ref: controlsRef,
749
+ direction: "column",
750
+ justify: "flex-end",
751
+ align: "flex-start",
646
752
  css: {
647
- height: "$4",
648
- width: "$4",
649
- background: isVideoLive ? "$alert_error_default" : "$on_primary_high",
650
- r: "$1"
651
- }
652
- }
653
- ), /* @__PURE__ */ React10.createElement(
654
- Text,
655
- {
656
- variant: {
657
- "@sm": "xs"
753
+ position: "absolute",
754
+ bottom: "0",
755
+ left: "0",
756
+ background: `linear-gradient(180deg, ${theme.colors.background_dim.value}00 29.46%, ${theme.colors.background_dim.value}A3 100%);`,
757
+ width: "100%",
758
+ pt: "$8",
759
+ flexShrink: 0,
760
+ transition: "visibility 0s 0.5s, opacity 0.5s linear",
761
+ visibility: controlsVisible ? `` : `hidden`,
762
+ opacity: controlsVisible ? `1` : "0"
658
763
  }
659
764
  },
660
- isVideoLive ? "LIVE" : "GO LIVE"
661
- )))
662
- ), /* @__PURE__ */ React10.createElement(
663
- HLSQualitySelector,
664
- {
665
- layers: availableLayers,
666
- selection: currentSelectedQuality,
667
- onQualityChange: handleQuality,
668
- isAuto: isUserSelectedAuto
669
- }
670
- )) : null, isFullScreenSupported ? /* @__PURE__ */ React10.createElement(
671
- FullScreenButton,
672
- {
673
- isFullScreen,
674
- onToggle: toggle,
675
- icon: isFullScreen ? /* @__PURE__ */ React10.createElement(ShrinkIcon, null) : /* @__PURE__ */ React10.createElement(ExpandIcon, null)
676
- }
677
- ) : null)))
678
- ) : /* @__PURE__ */ React10.createElement(Flex, { align: "center", justify: "center", css: { size: "100%", px: "$10" } }, /* @__PURE__ */ React10.createElement(Text, { variant: "md", css: { textAlign: "center" } }, "Waiting for the stream to start..."))
765
+ !isMobile && /* @__PURE__ */ React10.createElement(
766
+ HMSVideoPlayer.Controls.Root,
767
+ {
768
+ css: {
769
+ p: "$4 $8"
770
+ }
771
+ },
772
+ /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Controls.Left, null, /* @__PURE__ */ React10.createElement(
773
+ HMSVideoPlayer.PlayButton,
774
+ {
775
+ onClick: () => __async(void 0, null, function* () {
776
+ isPaused ? yield hlsPlayer == null ? void 0 : hlsPlayer.play() : hlsPlayer == null ? void 0 : hlsPlayer.pause();
777
+ }),
778
+ isPaused
779
+ }
780
+ ), /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Duration, { hlsPlayer }), /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Volume, { hlsPlayer }), /* @__PURE__ */ React10.createElement(
781
+ IconButton,
782
+ {
783
+ variant: "standard",
784
+ css: { px: "$2" },
785
+ onClick: () => __async(void 0, null, function* () {
786
+ yield hlsPlayer.seekToLivePosition();
787
+ setIsVideoLive(true);
788
+ }),
789
+ key: "jump-to-live_btn",
790
+ "data-testid": "jump-to-live_btn"
791
+ },
792
+ /* @__PURE__ */ React10.createElement(Tooltip, { title: "Go to Live", side: "top" }, /* @__PURE__ */ React10.createElement(Flex, { justify: "center", gap: 2, align: "center" }, /* @__PURE__ */ React10.createElement(
793
+ Box,
794
+ {
795
+ css: {
796
+ height: "$4",
797
+ width: "$4",
798
+ background: isVideoLive ? "$alert_error_default" : "$on_primary_medium",
799
+ r: "$1"
800
+ }
801
+ }
802
+ ), /* @__PURE__ */ React10.createElement(
803
+ Text,
804
+ {
805
+ variant: {
806
+ "@sm": "xs"
807
+ },
808
+ css: {
809
+ c: isVideoLive ? "$on_surface_high" : "$on_surface_medium"
810
+ }
811
+ },
812
+ isVideoLive ? "LIVE" : "GO LIVE"
813
+ )))
814
+ )),
815
+ /* @__PURE__ */ React10.createElement(HMSVideoPlayer.Controls.Right, null, availableLayers.length > 0 ? /* @__PURE__ */ React10.createElement(
816
+ HLSQualitySelector,
817
+ {
818
+ layers: availableLayers,
819
+ onOpen: setQualityDropDownOpen,
820
+ open: qualityDropDownOpen,
821
+ selection: currentSelectedQuality,
822
+ onQualityChange: handleQuality,
823
+ isAuto: isUserSelectedAuto
824
+ }
825
+ ) : null, isFullScreenSupported ? /* @__PURE__ */ React10.createElement(
826
+ FullScreenButton,
827
+ {
828
+ isFullScreen,
829
+ onToggle: toggle,
830
+ icon: isFullScreen ? /* @__PURE__ */ React10.createElement(ShrinkIcon, null) : /* @__PURE__ */ React10.createElement(ExpandIcon, null)
831
+ }
832
+ ) : null)
833
+ )
834
+ )
835
+ )
836
+ ) : /* @__PURE__ */ React10.createElement(Flex, { align: "center", justify: "center", direction: "column", css: { size: "100%", px: "$10" } }, /* @__PURE__ */ React10.createElement(Flex, { css: { c: "$on_surface_high", r: "$round", bg: "$surface_default", p: "$2" } }, streamEnded ? /* @__PURE__ */ React10.createElement(ColoredHandIcon, { height: 56, width: 56 }) : /* @__PURE__ */ React10.createElement(RadioIcon, { height: 56, width: 56 })), /* @__PURE__ */ React10.createElement(Text, { variant: "h5", css: { c: "$on_surface_high", mt: "$10", mb: 0, textAlign: "center" } }, streamEnded ? "Stream has ended" : "Stream yet to start"), /* @__PURE__ */ React10.createElement(Text, { variant: "md", css: { textAlign: "center", mt: "$4", c: "$on_surface_medium" } }, streamEnded ? "Have a nice day!" : "Sit back and relax"))
679
837
  );
680
838
  };
681
839
  var HLSView_default = HLSView;
682
840
  export {
683
841
  HLSView_default as default
684
842
  };
685
- //# sourceMappingURL=HLSView-P57IRMAR.js.map
843
+ //# sourceMappingURL=HLSView-HNVYG5VE.js.map