@100mslive/roomkit-react 0.1.1 → 0.1.2-alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (244) hide show
  1. package/README.md +18 -0
  2. package/dist/Accordion/Accordion.d.ts +62 -138
  3. package/dist/Accordion/index.d.ts +62 -138
  4. package/dist/{ActiveSpeakerView-G32BDM5F.js → ActiveSpeakerView-N7C6WL27.js} +6 -6
  5. package/dist/{ActiveSpeakerView-LW4WDBC6.css → ActiveSpeakerView-ZOCC7LQW.css} +2 -2
  6. package/dist/{PinnedTrackView-OAA4HAID.css.map → ActiveSpeakerView-ZOCC7LQW.css.map} +2 -2
  7. package/dist/Avatar/Avatar.d.ts +31 -69
  8. package/dist/Button/Button.d.ts +31 -69
  9. package/dist/Checkbox/Checkbox.d.ts +62 -138
  10. package/dist/Collapsible/Collapsible.d.ts +93 -207
  11. package/dist/Divider/Divider.d.ts +62 -138
  12. package/dist/Dropdown/Dropdown.d.ts +372 -828
  13. package/dist/Fieldset/Fieldset.d.ts +31 -69
  14. package/dist/Footer/Footer.d.ts +248 -552
  15. package/dist/{HLSView-ZYNT3HJD.js → HLSView-3ILTIGBT.js} +16 -16
  16. package/dist/HLSView-3ILTIGBT.js.map +7 -0
  17. package/dist/{HLSView-DIQQF2PP.css → HLSView-OVDMVJX5.css} +2 -2
  18. package/dist/{HLSView-DIQQF2PP.css.map → HLSView-OVDMVJX5.css.map} +2 -2
  19. package/dist/IconButton/IconButton.d.ts +31 -69
  20. package/dist/Input/Input.d.ts +189 -417
  21. package/dist/Label/Label.d.ts +31 -69
  22. package/dist/Layout/Box.d.ts +31 -69
  23. package/dist/Layout/Flex.d.ts +31 -69
  24. package/dist/Link/Link.d.ts +31 -69
  25. package/dist/Modal/Dialog.d.ts +248 -552
  26. package/dist/Modal/DialogContent.d.ts +217 -483
  27. package/dist/Pagination/StyledPagination.d.ts +124 -276
  28. package/dist/{PinnedTrackView-GTXL2UTS.js → PinnedTrackView-6N6N5WOF.js} +6 -6
  29. package/dist/{PinnedTrackView-OAA4HAID.css → PinnedTrackView-RIL5IW5A.css} +2 -2
  30. package/dist/{conference-LE4T3ZNF.css.map → PinnedTrackView-RIL5IW5A.css.map} +2 -2
  31. package/dist/Popover/index.d.ts +93 -207
  32. package/dist/Prebuilt/provider/roomLayoutProvider/constants/index.d.ts +2 -0
  33. package/dist/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.d.ts +9 -0
  34. package/dist/Prebuilt/provider/roomLayoutProvider/index.d.ts +9 -0
  35. package/dist/Progress/index.d.ts +62 -138
  36. package/dist/RadioGroup/RadioGroup.d.ts +93 -207
  37. package/dist/ReactSelect/ReactSelect.d.ts +310 -690
  38. package/dist/Select/Select.d.ts +93 -207
  39. package/dist/Slider/Slider.d.ts +31 -69
  40. package/dist/Stats/StyledStats.d.ts +186 -414
  41. package/dist/Switch/Switch.d.ts +31 -69
  42. package/dist/Tabs/Tabs.d.ts +124 -276
  43. package/dist/Text/Text.d.ts +31 -69
  44. package/dist/Theme/ThemeProvider.d.ts +63 -140
  45. package/dist/Theme/base.config.d.ts +31 -53
  46. package/dist/Theme/index.d.ts +0 -1
  47. package/dist/Theme/stitches.config.d.ts +404 -915
  48. package/dist/TileMenu/StyledMenuTile.d.ts +217 -483
  49. package/dist/Toast/Toast.d.ts +187 -415
  50. package/dist/Video/Video.d.ts +31 -69
  51. package/dist/VideoList/StyledVideoList.d.ts +93 -207
  52. package/dist/VideoTile/StyledVideoTile.d.ts +279 -621
  53. package/dist/{VirtualBackground-HWU22Q6S.js → VirtualBackground-R3JHARN5.js} +4 -3
  54. package/dist/{VirtualBackground-HWU22Q6S.js.map → VirtualBackground-R3JHARN5.js.map} +2 -2
  55. package/dist/chunk-DH3QSV4E.js +58 -0
  56. package/dist/chunk-DH3QSV4E.js.map +7 -0
  57. package/dist/{chunk-4VY5NUK7.js → chunk-DRKV2LAC.js} +49 -146
  58. package/dist/chunk-DRKV2LAC.js.map +7 -0
  59. package/dist/{chunk-TEHZYXCJ.js → chunk-G56Z3JA5.js} +167 -164
  60. package/dist/chunk-G56Z3JA5.js.map +7 -0
  61. package/dist/{chunk-A2PNZIK7.js → chunk-INRXWU7L.js} +4 -4
  62. package/dist/{chunk-A2PNZIK7.js.map → chunk-INRXWU7L.js.map} +1 -1
  63. package/dist/chunk-TZJCHZPD.js +8626 -0
  64. package/dist/chunk-TZJCHZPD.js.map +7 -0
  65. package/dist/{conference-LE4T3ZNF.css → conference-AIOOA5ON.css} +2 -2
  66. package/dist/{ActiveSpeakerView-LW4WDBC6.css.map → conference-AIOOA5ON.css.map} +2 -2
  67. package/dist/{conference-YHO2J3Z6.js → conference-IKSFGLVK.js} +514 -629
  68. package/dist/conference-IKSFGLVK.js.map +7 -0
  69. package/dist/index.cjs.css +1 -1
  70. package/dist/index.cjs.css.map +2 -2
  71. package/dist/index.cjs.js +3022 -2927
  72. package/dist/index.cjs.js.map +4 -4
  73. package/dist/index.css +1 -1
  74. package/dist/index.css.map +2 -2
  75. package/dist/index.js +4 -8
  76. package/dist/meta.cjs.json +736 -588
  77. package/dist/meta.esbuild.json +837 -692
  78. package/dist/{transcription-L6VBK75V.js → transcription-XYVVYRAS.js} +3 -3
  79. package/package.json +13 -9
  80. package/src/Accordion/Accordion.tsx +3 -3
  81. package/src/AudioLevel/AudioLevel.tsx +1 -1
  82. package/src/Avatar/Avatar.tsx +8 -3
  83. package/src/Button/Button.tsx +76 -20
  84. package/src/Checkbox/Checkbox.tsx +4 -4
  85. package/src/Collapsible/Collapsible.tsx +1 -1
  86. package/src/Divider/Divider.tsx +2 -2
  87. package/src/Divider/HorizontalDivider.stories.tsx +2 -2
  88. package/src/Divider/VerticalDivider.stories.tsx +1 -1
  89. package/src/Dropdown/Dropdown.stories.tsx +3 -3
  90. package/src/Dropdown/Dropdown.tsx +16 -14
  91. package/src/IconButton/IconButton.tsx +8 -7
  92. package/src/Input/Input.tsx +9 -8
  93. package/src/Input/PasswordInput.stories.tsx +2 -2
  94. package/src/Label/Label.tsx +1 -1
  95. package/src/Link/Link.tsx +4 -4
  96. package/src/Loading/Loading.tsx +7 -10
  97. package/src/Modal/Dialog.stories.tsx +2 -2
  98. package/src/Modal/DialogContent.tsx +3 -3
  99. package/src/Pagination/StyledPagination.tsx +4 -4
  100. package/src/Popover/Popover.stories.tsx +5 -5
  101. package/src/Popover/index.tsx +1 -1
  102. package/src/Prebuilt/App.jsx +101 -68
  103. package/src/Prebuilt/AppContext.jsx +1 -1
  104. package/src/Prebuilt/IconButton.jsx +2 -2
  105. package/src/Prebuilt/Prebuilt.stories.tsx +8 -2
  106. package/src/Prebuilt/common/constants.js +0 -1
  107. package/src/Prebuilt/common/utils.js +0 -6
  108. package/src/Prebuilt/components/AppData/AppData.jsx +7 -4
  109. package/src/Prebuilt/components/AppData/useUISettings.js +0 -4
  110. package/src/Prebuilt/components/AudioVideoToggle.jsx +73 -20
  111. package/src/Prebuilt/components/BottomActionSheet/BottomActionSheet.jsx +1 -1
  112. package/src/Prebuilt/components/Chat/Chat.jsx +6 -2
  113. package/src/Prebuilt/components/Chat/ChatBody.jsx +13 -11
  114. package/src/Prebuilt/components/Chat/ChatFooter.jsx +2 -2
  115. package/src/Prebuilt/components/Chat/ChatHeader.jsx +3 -3
  116. package/src/Prebuilt/components/Chat/ChatSelector.jsx +2 -2
  117. package/src/Prebuilt/components/Chat/useEmojiPickerStyles.js +6 -6
  118. package/src/Prebuilt/components/Chip.jsx +24 -0
  119. package/src/Prebuilt/components/Connection/ConnectionIndicator.jsx +6 -6
  120. package/src/Prebuilt/components/Connection/TileConnection.jsx +2 -2
  121. package/src/Prebuilt/components/Connection/connectionQualityUtils.js +4 -4
  122. package/src/Prebuilt/components/EmojiReaction.jsx +13 -10
  123. package/src/Prebuilt/components/ErrorBoundary.jsx +2 -2
  124. package/src/Prebuilt/components/Footer/ConferencingFooter.jsx +1 -4
  125. package/src/Prebuilt/components/FullPageProgress.jsx +5 -3
  126. package/src/Prebuilt/components/GoLiveButton.jsx +1 -4
  127. package/src/Prebuilt/components/HMSVideo/HLSQualitySelector.jsx +2 -2
  128. package/src/Prebuilt/components/HMSVideo/PlayButton.jsx +1 -1
  129. package/src/Prebuilt/components/HMSVideo/VideoProgress.jsx +3 -3
  130. package/src/Prebuilt/components/HMSVideo/VideoTime.jsx +3 -1
  131. package/src/Prebuilt/components/HMSVideo/VolumeControl.jsx +1 -1
  132. package/src/Prebuilt/components/Header/AdditionalRoomState.jsx +17 -17
  133. package/src/Prebuilt/components/Header/AmbientMusic.jsx +1 -1
  134. package/src/Prebuilt/components/Header/ConferencingHeader.jsx +4 -6
  135. package/src/Prebuilt/components/Header/HeaderComponents.jsx +10 -5
  136. package/src/Prebuilt/components/Header/ParticipantFilter.jsx +2 -2
  137. package/src/Prebuilt/components/Header/ParticipantList.jsx +2 -2
  138. package/src/Prebuilt/components/Header/StreamActions.jsx +9 -19
  139. package/src/Prebuilt/components/Header/StreamingHeader.jsx +5 -6
  140. package/src/Prebuilt/components/HlsStatsOverlay.jsx +2 -2
  141. package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.jsx +102 -0
  142. package/src/Prebuilt/components/IconButtonWithOptions/IconButtonWithOptions.stories.tsx +40 -0
  143. package/src/Prebuilt/components/LeaveRoom.jsx +11 -11
  144. package/src/Prebuilt/components/MetaActions.jsx +2 -2
  145. package/src/Prebuilt/components/MoreSettings/BulkRoleChangeModal.jsx +2 -2
  146. package/src/Prebuilt/components/MoreSettings/ChangeSelfRole.jsx +1 -1
  147. package/src/Prebuilt/components/MoreSettings/MoreSettings.jsx +1 -0
  148. package/src/Prebuilt/components/Notifications/HLSFailureModal.jsx +69 -0
  149. package/src/Prebuilt/components/Notifications/Notifications.jsx +1 -3
  150. package/src/Prebuilt/components/Notifications/PermissionErrorModal.jsx +108 -26
  151. package/src/Prebuilt/components/Notifications/ReconnectNotifications.jsx +1 -1
  152. package/src/Prebuilt/components/PIP/pipUtils.js +2 -2
  153. package/src/Prebuilt/components/Playlist/Playlist.jsx +4 -4
  154. package/src/Prebuilt/components/Playlist/PlaylistControls.jsx +3 -3
  155. package/src/Prebuilt/components/Playlist/PlaylistItem.jsx +3 -3
  156. package/src/Prebuilt/components/Playlist/VideoPlayer.jsx +4 -4
  157. package/src/Prebuilt/components/PostLeave.jsx +4 -4
  158. package/src/Prebuilt/components/Preview/PreviewContainer.jsx +17 -6
  159. package/src/Prebuilt/components/Preview/PreviewForm.jsx +74 -0
  160. package/src/Prebuilt/components/Preview/PreviewJoin.jsx +102 -39
  161. package/src/Prebuilt/components/RoleChangeModal.jsx +3 -3
  162. package/src/Prebuilt/components/ScreenshareDisplay.jsx +2 -2
  163. package/src/Prebuilt/components/Settings/DeviceSettings.jsx +3 -9
  164. package/src/Prebuilt/components/Settings/SettingsModal.jsx +8 -32
  165. package/src/Prebuilt/components/Settings/StartRecording.jsx +4 -12
  166. package/src/Prebuilt/components/Settings/SwitchWithLabel.jsx +2 -3
  167. package/src/Prebuilt/components/Settings/common.js +26 -0
  168. package/src/Prebuilt/components/StatsForNerds.jsx +5 -5
  169. package/src/Prebuilt/components/Streaming/Common.jsx +11 -11
  170. package/src/Prebuilt/components/Streaming/HLSStreaming.jsx +6 -12
  171. package/src/Prebuilt/components/Streaming/RTMPStreaming.jsx +4 -6
  172. package/src/Prebuilt/components/Streaming/StreamingLanding.jsx +4 -4
  173. package/src/Prebuilt/components/TileMenu.jsx +7 -7
  174. package/src/Prebuilt/components/Toast/ToastConfig.jsx +12 -20
  175. package/src/Prebuilt/components/conference.jsx +9 -2
  176. package/src/Prebuilt/components/hooks/useDropdownSelection.jsx +1 -4
  177. package/src/Prebuilt/components/pdfAnnotator/pdfErrorView.jsx +2 -2
  178. package/src/Prebuilt/components/pdfAnnotator/pdfFileOptions.jsx +1 -1
  179. package/src/Prebuilt/components/pdfAnnotator/pdfHeader.jsx +1 -1
  180. package/src/Prebuilt/components/pdfAnnotator/pdfInfo.jsx +2 -2
  181. package/src/Prebuilt/components/pdfAnnotator/shareScreenOptions.jsx +12 -20
  182. package/src/Prebuilt/components/pdfAnnotator/uploadedFile.jsx +4 -4
  183. package/src/Prebuilt/images/Logo.svg +8 -0
  184. package/src/Prebuilt/images/first_person.png +0 -0
  185. package/src/Prebuilt/images/rtmp.png +0 -0
  186. package/src/Prebuilt/index.d.ts +6 -1
  187. package/src/Prebuilt/layouts/HLSView.jsx +1 -1
  188. package/src/Prebuilt/layouts/InsetView.jsx +0 -3
  189. package/src/Prebuilt/layouts/NonPublisherView.jsx +2 -2
  190. package/src/Prebuilt/layouts/SidePane.jsx +1 -1
  191. package/src/Prebuilt/layouts/WaitingView.jsx +2 -2
  192. package/src/Prebuilt/layouts/mainView.jsx +42 -5
  193. package/src/Prebuilt/plugins/FlyingEmoji.jsx +2 -2
  194. package/src/Prebuilt/plugins/VirtualBackground/VirtualBackground.jsx +1 -0
  195. package/src/Prebuilt/plugins/whiteboard/ToggleWhiteboard.jsx +1 -3
  196. package/src/Prebuilt/primitives/DialogContent.jsx +4 -4
  197. package/src/Prebuilt/primitives/DropdownTrigger.jsx +3 -3
  198. package/src/Prebuilt/provider/roomLayoutProvider/constants/index.ts +33 -0
  199. package/src/Prebuilt/provider/roomLayoutProvider/hooks/useFetchRoomLayout.ts +57 -0
  200. package/src/Prebuilt/provider/roomLayoutProvider/index.tsx +26 -0
  201. package/src/Progress/index.tsx +2 -2
  202. package/src/RadioGroup/RadioGroup.tsx +3 -3
  203. package/src/ReactSelect/ReactSelect.stories.tsx +7 -7
  204. package/src/ReactSelect/ReactSelect.tsx +8 -8
  205. package/src/Select/Select.tsx +6 -6
  206. package/src/Slider/Slider.tsx +5 -5
  207. package/src/Stats/Stats.tsx +12 -2
  208. package/src/Stats/StyledStats.tsx +3 -3
  209. package/src/Switch/Switch.tsx +5 -5
  210. package/src/Tabs/Tabs.stories.tsx +2 -2
  211. package/src/Tabs/Tabs.tsx +2 -2
  212. package/src/Text/Text.tsx +2 -2
  213. package/src/Theme/ThemeProvider.tsx +4 -7
  214. package/src/Theme/ThemeStory.jsx +17 -19
  215. package/src/Theme/base.config.ts +31 -59
  216. package/src/Theme/index.tsx +0 -1
  217. package/src/Theme/stitches.config.ts +2 -7
  218. package/src/TileMenu/StyledMenuTile.tsx +9 -8
  219. package/src/Toast/Toast.tsx +10 -9
  220. package/src/Tooltip/Tooltip.stories.tsx +1 -1
  221. package/src/Tooltip/Tooltip.tsx +4 -4
  222. package/src/Video/Video.tsx +1 -1
  223. package/src/VideoTile/StyledVideoTile.tsx +12 -12
  224. package/src/assets/android-perm-0.png +0 -0
  225. package/src/assets/android-perm-1.png +0 -0
  226. package/src/assets/ios-perm-0.png +0 -0
  227. package/src/fixtures/chats.ts +1 -1
  228. package/dist/HLSView-ZYNT3HJD.js.map +0 -7
  229. package/dist/Theme/themes.d.ts +0 -64
  230. package/dist/chunk-4VY5NUK7.js.map +0 -7
  231. package/dist/chunk-BSQIN5RC.js +0 -65
  232. package/dist/chunk-BSQIN5RC.js.map +0 -7
  233. package/dist/chunk-TEHZYXCJ.js.map +0 -7
  234. package/dist/chunk-ZET2HMGS.js +0 -8331
  235. package/dist/chunk-ZET2HMGS.js.map +0 -7
  236. package/dist/conference-YHO2J3Z6.js.map +0 -7
  237. package/src/Prebuilt/components/Preview/PreviewName.jsx +0 -37
  238. package/src/Prebuilt/components/Streaming/RTMPIcon.jsx +0 -69
  239. package/src/Prebuilt/hms.js +0 -7
  240. package/src/Prebuilt/plugins/confetti.jsx +0 -60
  241. package/src/Theme/themes.ts +0 -70
  242. /package/dist/{ActiveSpeakerView-G32BDM5F.js.map → ActiveSpeakerView-N7C6WL27.js.map} +0 -0
  243. /package/dist/{PinnedTrackView-GTXL2UTS.js.map → PinnedTrackView-6N6N5WOF.js.map} +0 -0
  244. /package/dist/{transcription-L6VBK75V.js.map → transcription-XYVVYRAS.js.map} +0 -0
@@ -1,50 +1,103 @@
1
1
  import React, { Fragment } from 'react';
2
2
  import {
3
- selectIsConnectedToRoom,
3
+ DeviceType,
4
4
  selectLocalVideoTrackID,
5
5
  selectVideoTrackByID,
6
6
  useAVToggle,
7
+ useDevices,
7
8
  useHMSActions,
8
9
  useHMSStore,
9
10
  } from '@100mslive/react-sdk';
10
11
  import { CameraFlipIcon, MicOffIcon, MicOnIcon, VideoOffIcon, VideoOnIcon } from '@100mslive/react-icons';
12
+ import { IconButtonWithOptions } from './IconButtonWithOptions/IconButtonWithOptions';
11
13
  import { ToastManager } from './Toast/ToastManager';
14
+ import { Text } from '../../Text';
12
15
  import { Tooltip } from '../../Tooltip';
13
16
  import IconButton from '../IconButton';
14
17
  import { isMacOS } from '../common/constants';
15
18
 
19
+ const optionsCSS = { fontWeight: '$semiBold', color: '$on_surface_high', w: '100%', p: '$8' };
20
+
16
21
  export const AudioVideoToggle = () => {
22
+ const { allDevices, selectedDeviceIDs, updateDevice } = useDevices();
23
+ const { videoInput, audioInput } = allDevices;
24
+
25
+ const formattedVideoInputList = videoInput?.map(videoInput => ({
26
+ active: selectedDeviceIDs.videoInput === videoInput.deviceId,
27
+ content: (
28
+ <Text
29
+ variant="sm"
30
+ onClick={() =>
31
+ updateDevice({
32
+ deviceType: DeviceType.videoInput,
33
+ deviceId: videoInput.deviceId,
34
+ })
35
+ }
36
+ css={optionsCSS}
37
+ >
38
+ {videoInput.label}
39
+ </Text>
40
+ ),
41
+ title: videoInput.label,
42
+ }));
43
+
44
+ const formattedAudioInputList = audioInput?.map(audioInput => ({
45
+ active: selectedDeviceIDs.audioInput === audioInput.deviceId,
46
+ content: (
47
+ <Text
48
+ variant="sm"
49
+ onClick={() =>
50
+ updateDevice({
51
+ deviceType: DeviceType.audioInput,
52
+ deviceId: audioInput.deviceId,
53
+ })
54
+ }
55
+ css={optionsCSS}
56
+ >
57
+ {audioInput.label}
58
+ </Text>
59
+ ),
60
+ title: audioInput.label,
61
+ }));
62
+
17
63
  const { isLocalVideoEnabled, isLocalAudioEnabled, toggleAudio, toggleVideo } = useAVToggle();
18
64
  const actions = useHMSActions();
19
- const videoTracKId = useHMSStore(selectLocalVideoTrackID);
20
- const localVideoTrack = useHMSStore(selectVideoTrackByID(videoTracKId));
21
- const isConnectedToRoom = useHMSStore(selectIsConnectedToRoom);
65
+ const videoTrackId = useHMSStore(selectLocalVideoTrackID);
66
+ const localVideoTrack = useHMSStore(selectVideoTrackByID(videoTrackId));
22
67
 
23
68
  return (
24
69
  <Fragment>
25
70
  {toggleAudio ? (
26
- <Tooltip title={`Turn ${isLocalAudioEnabled ? 'off' : 'on'} audio (${isMacOS ? '⌘' : 'ctrl'} + d)`}>
27
- <IconButton active={isLocalAudioEnabled} onClick={toggleAudio} key="toggleAudio" data-testid="audio_btn">
28
- {!isLocalAudioEnabled ? (
29
- <MicOffIcon data-testid="audio_off_btn" />
30
- ) : (
31
- <MicOnIcon data-testid="audio_on_btn" />
32
- )}
33
- </IconButton>
34
- </Tooltip>
71
+ <IconButtonWithOptions
72
+ options={formattedAudioInputList}
73
+ tooltipMessage={`Turn ${isLocalAudioEnabled ? 'off' : 'on'} audio (${isMacOS ? '⌘' : 'ctrl'} + d)`}
74
+ icon={
75
+ !isLocalAudioEnabled ? <MicOffIcon data-testid="audio_off_btn" /> : <MicOnIcon data-testid="audio_on_btn" />
76
+ }
77
+ active={isLocalAudioEnabled}
78
+ onClick={toggleAudio}
79
+ key="toggleAudio"
80
+ />
35
81
  ) : null}
82
+
36
83
  {toggleVideo ? (
37
- <Tooltip title={`Turn ${isLocalVideoEnabled ? 'off' : 'on'} video (${isMacOS ? '⌘' : 'ctrl'} + e)`}>
38
- <IconButton key="toggleVideo" active={isLocalVideoEnabled} onClick={toggleVideo} data-testid="video_btn">
39
- {!isLocalVideoEnabled ? (
84
+ <IconButtonWithOptions
85
+ options={formattedVideoInputList}
86
+ tooltipMessage={`Turn ${isLocalVideoEnabled ? 'off' : 'on'} video (${isMacOS ? '⌘' : 'ctrl'} + e)`}
87
+ icon={
88
+ !isLocalVideoEnabled ? (
40
89
  <VideoOffIcon data-testid="video_off_btn" />
41
90
  ) : (
42
91
  <VideoOnIcon data-testid="video_on_btn" />
43
- )}
44
- </IconButton>
45
- </Tooltip>
92
+ )
93
+ }
94
+ key="toggleVideo"
95
+ active={isLocalVideoEnabled}
96
+ onClick={toggleVideo}
97
+ />
46
98
  ) : null}
47
- {localVideoTrack?.facingMode && isConnectedToRoom ? (
99
+
100
+ {localVideoTrack?.facingMode ? (
48
101
  <Tooltip title="Switch Camera" key="switchCamera">
49
102
  <IconButton
50
103
  onClick={async () => {
@@ -13,7 +13,7 @@ const BottomActionSheet = ({
13
13
  sideOffset = -50,
14
14
  defaultHeight = 50,
15
15
  }) => {
16
- const MINIMUM_HEIGHT = 20; // vh
16
+ const MINIMUM_HEIGHT = 40; // vh
17
17
  const [sheetOpen, setSheetOpen] = useState(false);
18
18
  const [sheetHeight, setSheetHeight] = useState(`${Math.min(Math.max(MINIMUM_HEIGHT, defaultHeight), 100)}vh`);
19
19
  const closeRef = useRef(null);
@@ -27,14 +27,18 @@ const PinnedMessage = ({ clearPinnedMessage }) => {
27
27
  const pinnedMessage = useHMSStore(selectSessionStore(SESSION_STORE_KEY.PINNED_MESSAGE));
28
28
 
29
29
  return pinnedMessage ? (
30
- <Flex css={{ p: '$8', color: '$textMedEmp', bg: '$surfaceLight', r: '$1' }} align="center" justify="between">
30
+ <Flex
31
+ css={{ p: '$8', color: '$on_surface_medium', bg: '$surface_bright', r: '$1' }}
32
+ align="center"
33
+ justify="between"
34
+ >
31
35
  <Box>
32
36
  <PinIcon />
33
37
  </Box>
34
38
  <Box
35
39
  css={{
36
40
  ml: '$8',
37
- color: '$textMedEmp',
41
+ color: '$on_surface_medium',
38
42
  w: '100%',
39
43
  maxHeight: '$18',
40
44
  overflowY: 'auto',
@@ -46,16 +46,16 @@ const MessageTypeContainer = ({ left, right }) => {
46
46
  ml: 'auto',
47
47
  mr: '$4',
48
48
  p: '$2 $4',
49
- border: '1px solid $textDisabled',
49
+ border: '1px solid $on_surface_low',
50
50
  r: '$0',
51
51
  }}
52
52
  >
53
53
  {left && (
54
- <SenderName variant="tiny" as="span" css={{ color: '$textMedEmp' }}>
54
+ <SenderName variant="tiny" as="span" css={{ color: '$on_surface_medium' }}>
55
55
  {left}
56
56
  </SenderName>
57
57
  )}
58
- {left && right && <Box css={{ borderLeft: '1px solid $textDisabled', mx: '$4', h: '$8' }} />}
58
+ {left && right && <Box css={{ borderLeft: '1px solid $on_surface_low', mx: '$4', h: '$8' }} />}
59
59
  {right && (
60
60
  <SenderName as="span" variant="tiny">
61
61
  {right}
@@ -87,7 +87,7 @@ const URL_REGEX =
87
87
  /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;
88
88
 
89
89
  const Link = styled('a', {
90
- color: '$brandDefault',
90
+ color: '$primary_default',
91
91
  wordBreak: 'break-word',
92
92
  '&:hover': {
93
93
  textDecoration: 'underline',
@@ -132,14 +132,16 @@ const ChatActions = ({ onPin }) => {
132
132
  <Dropdown.Trigger asChild>
133
133
  <IconButton>
134
134
  <Tooltip title="More options">
135
- <Box>
136
- <HorizontalMenuIcon />
137
- </Box>
135
+ <HorizontalMenuIcon />
138
136
  </Tooltip>
139
137
  </IconButton>
140
138
  </Dropdown.Trigger>
141
139
  <Dropdown.Portal>
142
- <Dropdown.Content sideOffset={5} align="end" css={{ width: '$48' }}>
140
+ <Dropdown.Content
141
+ sideOffset={5}
142
+ align="end"
143
+ css={{ width: '$48', backgroundColor: '$surface_bright', py: '$0' }}
144
+ >
143
145
  <Dropdown.Item data-testid="pin_message_btn" onClick={onPin}>
144
146
  <PinIcon />
145
147
  <Text variant="sm" css={{ ml: '$4' }}>
@@ -192,7 +194,7 @@ const ChatMessage = React.memo(({ index, style = {}, message, setRowHeight, onPi
192
194
  align="center"
193
195
  css={{
194
196
  flexWrap: 'wrap',
195
- bg: messageType ? '$surfaceLight' : undefined,
197
+ bg: messageType ? '$surface_bright' : undefined,
196
198
  r: messageType ? '$1' : undefined,
197
199
  px: messageType ? '$4' : '$2',
198
200
  py: messageType ? '$4' : 0,
@@ -203,7 +205,7 @@ const ChatMessage = React.memo(({ index, style = {}, message, setRowHeight, onPi
203
205
  >
204
206
  <Text
205
207
  css={{
206
- color: '$textHighEmp',
208
+ color: '$on_surface_high',
207
209
  fontWeight: '$semiBold',
208
210
  display: 'inline-flex',
209
211
  alignItems: 'center',
@@ -225,7 +227,7 @@ const ChatMessage = React.memo(({ index, style = {}, message, setRowHeight, onPi
225
227
  variant="sm"
226
228
  css={{
227
229
  ml: '$4',
228
- color: '$textSecondary',
230
+ color: '$on_primary_medium',
229
231
  flexShrink: 0,
230
232
  }}
231
233
  >
@@ -11,7 +11,7 @@ import { useEmojiPickerStyles } from './useEmojiPickerStyles';
11
11
  const TextArea = styled('textarea', {
12
12
  width: '100%',
13
13
  bg: 'transparent',
14
- color: '$textPrimary',
14
+ color: '$on_primary_high',
15
15
  resize: 'none',
16
16
  lineHeight: '1rem',
17
17
  position: 'relative',
@@ -105,7 +105,7 @@ export const ChatFooter = ({ role, peerId, onSend, children }) => {
105
105
  <Flex
106
106
  align="center"
107
107
  css={{
108
- bg: '$surfaceLight',
108
+ bg: '$surface_bright',
109
109
  minHeight: '$16',
110
110
  maxHeight: '$24',
111
111
  position: 'relative',
@@ -13,7 +13,7 @@ export const ChatHeader = React.memo(({ selection, selectorOpen, onToggle, onSel
13
13
  onClick={onToggle}
14
14
  align="center"
15
15
  css={{
16
- color: '$textPrimary',
16
+ color: '$on_primary_high',
17
17
  h: '$16',
18
18
  mb: '$2',
19
19
  }}
@@ -24,7 +24,7 @@ export const ChatHeader = React.memo(({ selection, selectorOpen, onToggle, onSel
24
24
  asChild
25
25
  data-testid="participant_list_filter"
26
26
  css={{
27
- border: '1px solid $textDisabled',
27
+ border: '1px solid $on_surface_low',
28
28
  r: '$0',
29
29
  p: '$2 $4',
30
30
  ml: '$8',
@@ -35,7 +35,7 @@ export const ChatHeader = React.memo(({ selection, selectorOpen, onToggle, onSel
35
35
  <Text variant="sm" css={{ ...textEllipsis(80) }}>
36
36
  {selection}
37
37
  </Text>
38
- <Box css={{ ml: '$2', color: '$textDisabled' }}>
38
+ <Box css={{ ml: '$2', color: '$on_surface_low' }}>
39
39
  {open ? <ChevronUpIcon width={14} height={14} /> : <ChevronDownIcon width={14} height={14} />}
40
40
  </Box>
41
41
  </Flex>
@@ -14,14 +14,14 @@ import { ParticipantSearch } from '../Header/ParticipantList';
14
14
  import { useFilteredRoles } from '../../common/hooks';
15
15
 
16
16
  const ChatDotIcon = () => {
17
- return <Box css={{ size: '$6', bg: '$brandDefault', mx: '$2', r: '$round' }} />;
17
+ return <Box css={{ size: '$6', bg: '$primary_default', mx: '$2', r: '$round' }} />;
18
18
  };
19
19
 
20
20
  const SelectorItem = ({ value, active, onClick, unreadCount }) => {
21
21
  return (
22
22
  <Dropdown.Item data-testid="chat_members" css={{ align: 'center', px: '$10' }} onClick={onClick}>
23
23
  <Text variant="sm">{value}</Text>
24
- <Flex align="center" css={{ ml: 'auto', color: '$textPrimary' }}>
24
+ <Flex align="center" css={{ ml: 'auto', color: '$on_primary_high' }}>
25
25
  {unreadCount > 0 && (
26
26
  <Tooltip title={`${unreadCount} unread`}>
27
27
  <Box css={{ mr: active ? '$3' : 0 }}>
@@ -9,16 +9,16 @@ export const useEmojiPickerStyles = showing => {
9
9
  const style = document.createElement('style');
10
10
  style.textContent = `
11
11
  #root {
12
- --em-rgb-color: var(--hms-ui-colors-textPrimary);
13
- --em-rgb-input: var(--hms-ui-colors-textPrimary);
14
- --em-color-border: var(--hms-ui-colors-surfaceDefault);
15
- --color-b: var(--hms-ui-colors-textPrimary);
12
+ --em-rgb-color: var(--hms-ui-colors-on_primary_high);
13
+ --em-rgb-input: var(--hms-ui-colors-on_primary_high);
14
+ --em-color-border: var(--hms-ui-colors-surface_default);
15
+ --color-b: var(--hms-ui-colors-on_primary_high);
16
16
  --rgb-background: transparent;
17
- color: var(--hms-ui-colors-textPrimary);
17
+ color: var(--hms-ui-colors-on_primary_high);
18
18
  font-family: var(--hms-ui-fonts-sans);
19
19
  }
20
20
  .sticky {
21
- background-color: var(--hms-ui-colors-surfaceLight);
21
+ background-color: var(--hms-ui-colors-surface_bright);
22
22
  }
23
23
  `;
24
24
  root?.appendChild(style);
@@ -0,0 +1,24 @@
1
+ import { Flex } from '../../Layout';
2
+ import { Text } from '../../Text';
3
+
4
+ const Chip = ({
5
+ icon = <></>,
6
+ content = '',
7
+ backgroundColor = '$surface_default',
8
+ textColor = '$on_surface_high',
9
+ hideIfNoContent = false,
10
+ }) => {
11
+ if (hideIfNoContent && !content) {
12
+ return;
13
+ }
14
+ return (
15
+ <Flex align="center" css={{ backgroundColor, p: '$4 $6', borderRadius: '$4' }}>
16
+ {icon}
17
+ <Text variant="sm" css={{ fontWeight: '$semiBold', color: textColor, ml: '$2' }}>
18
+ {content}
19
+ </Text>
20
+ </Flex>
21
+ );
22
+ };
23
+
24
+ export default Chip;
@@ -10,7 +10,7 @@ const Wrapper = styled('span', {
10
10
  display: 'flex',
11
11
  alignItems: 'center',
12
12
  justifyContent: 'center',
13
- backgroundColor: '$transparentBg',
13
+ backgroundColor: '$background_dim',
14
14
  borderRadius: '$round',
15
15
  variants: {
16
16
  isTile: {
@@ -25,7 +25,7 @@ const Wrapper = styled('span', {
25
25
  export const ConnectionIndicator = ({ peerId, isTile = false }) => {
26
26
  const downlinkQuality = useHMSStore(selectConnectionQualityByPeerID(peerId))?.downlinkQuality;
27
27
  const { theme } = useTheme();
28
- const defaultColor = theme.colors.bgTertiary;
28
+ const defaultColor = theme.colors.surface_brighter;
29
29
  if (downlinkQuality === -1 || downlinkQuality === undefined) {
30
30
  return null;
31
31
  }
@@ -57,21 +57,21 @@ export const ConnectionIndicator = ({ peerId, isTile = false }) => {
57
57
  >
58
58
  <path
59
59
  d="M6.875 0c2.549.035 4.679.902 6.445 2.648.366.362.45.796.216 1.096-.239.306-.714.34-1.142.072a2.28 2.28 0 0 1-.341-.271C9.24.862 4.924.775 1.992 3.346c-.284.249-.594.419-.983.393-.272-.019-.49-.135-.613-.388-.125-.261-.05-.498.114-.713.073-.092.156-.177.245-.254C2.516.804 4.591.039 6.875 0Z"
60
- fill={getColor(4, downlinkQuality, defaultColor)}
60
+ fill={getColor(4, downlinkQuality, defaultColor, theme)}
61
61
  transform="translate(-.333)"
62
62
  />
63
63
  <path
64
64
  d="M7.056 2.964c1.756.035 3.208.7 4.499 1.763.162.134.277.315.354.512.098.251.114.503-.075.72-.193.222-.452.259-.725.198-.293-.066-.518-.247-.738-.443a4.859 4.859 0 0 0-6.198-.26c-.166.127-.318.271-.475.409-.242.211-.513.343-.843.317-.43-.034-.679-.397-.561-.81.062-.211.181-.4.345-.546 1.265-1.162 2.733-1.836 4.417-1.86Z"
65
- fill={getColor(3, downlinkQuality, defaultColor)}
65
+ fill={getColor(3, downlinkQuality, defaultColor, theme)}
66
66
  transform="translate(-.333)"
67
67
  />
68
68
  <path
69
69
  d="M7.384,6.052C8.293,6.068 9.157,6.449 9.783,7.108C10.005,7.339 10.157,7.6 10.07,7.942C9.959,8.377 9.435,8.581 9.071,8.243C7.935,7.191 6.356,7.183 5.152,8.183C4.816,8.462 4.6,8.485 4.332,8.27C4.063,8.055 3.998,7.691 4.177,7.358C4.273,7.179 4.414,7.038 4.57,6.911C5.26,6.349 6.149,6.05 7.384,6.052L7.384,6.052Z"
70
- fill={getColor(2, downlinkQuality, defaultColor)}
70
+ fill={getColor(2, downlinkQuality, defaultColor, theme)}
71
71
  />
72
72
  <path
73
73
  d="M8.214,9.941C8.214,10.234 8.097,10.515 7.888,10.721C7.68,10.928 7.398,11.042 7.104,11.039C6.471,11.036 5.982,10.541 5.993,9.912C6.004,9.259 6.499,8.766 7.133,8.779C7.744,8.791 8.22,9.301 8.214,9.941Z"
74
- fill={getColor(1, downlinkQuality, defaultColor)}
74
+ fill={getColor(1, downlinkQuality, defaultColor, theme)}
75
75
  />
76
76
  </svg>
77
77
  </Wrapper>
@@ -8,7 +8,7 @@ const TileConnection = ({ name, peerId, hideLabel, width }) => {
8
8
  {!hideLabel ? (
9
9
  <Text
10
10
  css={{
11
- c: '$textHighEmp',
11
+ c: '$on_surface_high',
12
12
  ...textEllipsis(width - 60),
13
13
  }}
14
14
  variant="xs"
@@ -28,7 +28,7 @@ const Wrapper = styled('div', {
28
28
  position: 'absolute',
29
29
  bottom: '$2',
30
30
  left: '$2',
31
- backgroundColor: '$backgroundDark',
31
+ backgroundColor: '$background_dim',
32
32
  borderRadius: '$1',
33
33
  maxWidth: '85%',
34
34
  zIndex: 1,
@@ -23,17 +23,17 @@ export const getTooltipText = connectionScore => {
23
23
  * @param connectionScore -> 0 to 5, 0 means disconnected
24
24
  * @param defaultColor -> color for components not taking the connection color
25
25
  */
26
- export const getColor = (position, connectionScore, defaultColor) => {
26
+ export const getColor = (position, connectionScore, defaultColor, theme) => {
27
27
  const shouldBeColored = position <= connectionScore;
28
28
  if (!shouldBeColored) {
29
29
  return defaultColor;
30
30
  }
31
31
  if (connectionScore >= 4) {
32
- return '#37F28D';
32
+ return theme.colors.alert_success;
33
33
  } else if (connectionScore >= 3) {
34
- return '#FAC919';
34
+ return theme.colors.alert_warning;
35
35
  } else if (connectionScore >= 1) {
36
- return '#ED4C5A';
36
+ return theme.colors.alert_default;
37
37
  }
38
38
  return defaultColor;
39
39
  };
@@ -13,7 +13,7 @@ import {
13
13
  } from '@100mslive/react-sdk';
14
14
  import { EmojiIcon } from '@100mslive/react-icons';
15
15
  import { Dropdown } from '../../Dropdown';
16
- import { Box, Flex } from '../../Layout';
16
+ import { Flex } from '../../Layout';
17
17
  import { Text } from '../../Text';
18
18
  import { styled } from '../../Theme';
19
19
  import { Tooltip } from '../../Tooltip';
@@ -79,13 +79,11 @@ export const EmojiReaction = () => {
79
79
  <Dropdown.Trigger asChild data-testid="emoji_reaction_btn">
80
80
  <IconButton>
81
81
  <Tooltip title="Emoji reaction">
82
- <Box>
83
- <EmojiIcon />
84
- </Box>
82
+ <EmojiIcon />
85
83
  </Tooltip>
86
84
  </IconButton>
87
85
  </Dropdown.Trigger>
88
- <Dropdown.Content sideOffset={5} align="center" css={{ p: '$8', bg: '$surfaceDefault' }}>
86
+ <Dropdown.Content sideOffset={5} align="center" css={{ p: '$8', bg: '$surface_default' }}>
89
87
  {emojiReactionList.map((emojiLine, index) => (
90
88
  <Flex key={index} justify="between" css={{ mb: '$8' }}>
91
89
  {emojiLine.map(emoji => (
@@ -100,7 +98,7 @@ export const EmojiReaction = () => {
100
98
  variant="sm"
101
99
  inline={true}
102
100
  css={{
103
- color: '$textSecondary',
101
+ color: '$on_primary_medium',
104
102
  }}
105
103
  >
106
104
  Reactions will be timed for Live Streaming viewers.{' '}
@@ -109,12 +107,17 @@ export const EmojiReaction = () => {
109
107
  variant="sm"
110
108
  inline={true}
111
109
  css={{
112
- color: '$primaryLight',
110
+ color: '$primary_bright',
113
111
  fontWeight: '$semiBold',
114
112
  }}
115
113
  >
116
- <a href={HLS_TIMED_METADATA_DOC_URL} target="_blank" rel="noopener noreferrer">
117
- {'Learn more ->'}
114
+ <a
115
+ href={HLS_TIMED_METADATA_DOC_URL}
116
+ target="_blank"
117
+ rel="noopener noreferrer"
118
+ style={{ color: 'inherit', textDecoration: 'none' }}
119
+ >
120
+ Learn more.
118
121
  </a>
119
122
  </Text>
120
123
  </div>
@@ -132,7 +135,7 @@ const EmojiContainer = styled('span', {
132
135
  p: '$4',
133
136
  '&:hover': {
134
137
  p: '7px',
135
- bg: '$surfaceLighter',
138
+ bg: '$surface_brighter',
136
139
  borderRadius: '$1',
137
140
  },
138
141
  });
@@ -37,8 +37,8 @@ export class ErrorBoundary extends Component {
37
37
  size: '100%',
38
38
  height: '100vh',
39
39
  width: '100%',
40
- color: '$textPrimary',
41
- backgroundColor: 'black',
40
+ color: '$on_primary_high',
41
+ backgroundColor: '$background_default',
42
42
  }}
43
43
  >
44
44
  <Box css={{ position: 'relative', overflow: 'hidden', r: '$3', height: '100%', width: '100%' }}>
@@ -1,8 +1,7 @@
1
1
  import React, { Fragment, Suspense, useState } from 'react';
2
2
  import { useMedia } from 'react-use';
3
- import { HMSPlaylistType, selectIsAllowedToPublish, useHMSStore, useScreenShare } from '@100mslive/react-sdk';
3
+ import { selectIsAllowedToPublish, useHMSStore, useScreenShare } from '@100mslive/react-sdk';
4
4
  import { MusicIcon } from '@100mslive/react-icons';
5
- import { Playlist } from '../../components/Playlist/Playlist';
6
5
  import { config as cssConfig, Flex, Footer as AppFooter, Tooltip } from '../../../';
7
6
  import IconButton from '../../IconButton';
8
7
  import { AudioVideoToggle } from '../AudioVideoToggle';
@@ -64,8 +63,6 @@ export const ConferencingFooter = () => {
64
63
  <AppFooter.Root>
65
64
  <AppFooter.Left>
66
65
  <ScreenshareAudio />
67
- <Playlist type={HMSPlaylistType.audio} />
68
- <Playlist type={HMSPlaylistType.video} />
69
66
  <Suspense fallback="">
70
67
  <VirtualBackground />
71
68
  </Suspense>
@@ -1,10 +1,12 @@
1
1
  import React from 'react';
2
2
  import { Flex } from '../../Layout';
3
3
  import { Loading } from '../../Loading';
4
+ import { Text } from '../../Text';
4
5
 
5
- const FullPageProgress = () => (
6
- <Flex justify="center" align="center" css={{ size: '100%' }}>
7
- <Loading size={100} />
6
+ const FullPageProgress = ({ loaderColor = '$primary_default', loadingText = '' }) => (
7
+ <Flex direction="column" justify="center" align="center" css={{ size: '100%', color: loaderColor }}>
8
+ <Loading color="currentColor" size={100} />
9
+ {loadingText ? <Text css={{ mt: '$10', color: '$on_surface_high' }}>{loadingText}</Text> : null}
8
10
  </Flex>
9
11
  );
10
12
 
@@ -27,10 +27,7 @@ const GoLiveButton = () => {
27
27
  <Button
28
28
  data-testid="go_live"
29
29
  variant={isStreamingSidepaneOpen ? 'standard' : 'primary'}
30
- onClick={() => {
31
- toggleStreaming();
32
- window.sessionStorage.setItem('userStartedStream', 'true');
33
- }}
30
+ onClick={toggleStreaming}
34
31
  icon
35
32
  loading={isRTMPStartedFromUI || isHLSStartedFromUI}
36
33
  disabled={isBrowserRecordingOn && !isStreamingOn}
@@ -10,7 +10,7 @@ export function HLSQualitySelector({ layers, onQualityChange, selection, isAuto
10
10
  <Dropdown.Trigger asChild data-testid="quality_selector">
11
11
  <Flex
12
12
  css={{
13
- color: '$textPrimary',
13
+ color: '$on_primary_high',
14
14
  r: '$1',
15
15
  cursor: 'pointer',
16
16
  p: '$2',
@@ -44,7 +44,7 @@ export function HLSQualitySelector({ layers, onQualityChange, selection, isAuto
44
44
  mx: '$2',
45
45
  w: '$2',
46
46
  h: '$2',
47
- background: '$textPrimary',
47
+ background: '$on_primary_high',
48
48
  r: '$1',
49
49
  }}
50
50
  />
@@ -4,7 +4,7 @@ import { IconButton, Tooltip } from '../../../';
4
4
 
5
5
  export const PlayButton = ({ onClick, isPaused }) => {
6
6
  return (
7
- <Tooltip title={`${isPaused ? 'Play' : 'Pause'}`} side="top">
7
+ <Tooltip title={isPaused ? 'Play' : 'Pause'} side="top">
8
8
  <IconButton onClick={onClick} data-testid="play_pause_btn">
9
9
  {isPaused ? <PlayIcon width={32} height={32} /> : <PauseIcon width={32} height={32} />}
10
10
  </IconButton>
@@ -52,7 +52,7 @@ export const VideoProgress = ({ onValueChange, hlsPlayer }) => {
52
52
  css={{
53
53
  display: 'inline',
54
54
  width: `${videoProgress}%`,
55
- background: '$primaryDefault',
55
+ background: '$primary_default',
56
56
  height: '0.3rem',
57
57
  }}
58
58
  />
@@ -60,7 +60,7 @@ export const VideoProgress = ({ onValueChange, hlsPlayer }) => {
60
60
  id="video-buffer"
61
61
  css={{
62
62
  width: `${bufferProgress - videoProgress}%`,
63
- background: '$primaryDark',
63
+ background: '$primary_dim',
64
64
  height: '0.3rem',
65
65
  }}
66
66
  />
@@ -68,7 +68,7 @@ export const VideoProgress = ({ onValueChange, hlsPlayer }) => {
68
68
  id="video-rest"
69
69
  css={{
70
70
  width: `${100 - bufferProgress}%`,
71
- background: '$grayLight',
71
+ background: '$surface_brighter',
72
72
  height: '0.3rem',
73
73
  }}
74
74
  />
@@ -26,6 +26,8 @@ export const VideoTime = ({ hlsPlayer }) => {
26
26
  variant={{
27
27
  '@sm': 'xs',
28
28
  }}
29
- >{`${videoTime}`}</Text>
29
+ >
30
+ {videoTime}
31
+ </Text>
30
32
  ) : null;
31
33
  };
@@ -6,7 +6,7 @@ export const VolumeControl = ({ hlsPlayer }) => {
6
6
  const [volume, setVolume] = useState(hlsPlayer?.volume ?? 100);
7
7
 
8
8
  return (
9
- <Flex align="center" css={{ color: '$white' }}>
9
+ <Flex align="center" css={{ color: '$on_primary_high' }}>
10
10
  <SpeakerIcon
11
11
  style={{ cursor: 'pointer' }}
12
12
  onClick={() => {