@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,52 +1,70 @@
1
1
  import React, { Fragment, Suspense, useCallback, useEffect, useState } from 'react';
2
2
  import {
3
+ HMSRoomState,
3
4
  selectIsLocalVideoEnabled,
4
5
  selectLocalPeer,
6
+ selectRoomState,
5
7
  selectVideoTrackByID,
6
8
  useAVToggle,
7
9
  useHMSStore,
10
+ useParticipants,
8
11
  usePreviewJoin,
12
+ useRecordingStreaming,
9
13
  } from '@100mslive/react-sdk';
10
- import { SettingsIcon } from '@100mslive/react-icons';
14
+ import { MicOffIcon, SettingsIcon } from '@100mslive/react-icons';
11
15
  import {
12
16
  Avatar,
17
+ Box,
13
18
  Flex,
14
19
  flexCenter,
15
- Loading,
16
20
  styled,
17
21
  StyledVideoTile,
18
22
  Text,
19
- textEllipsis,
20
23
  useBorderAudioLevel,
21
24
  useTheme,
22
25
  Video,
23
26
  } from '../../../';
24
27
  import { useHMSPrebuiltContext } from '../../AppContext';
25
28
  import IconButton from '../../IconButton';
29
+ import { useRoomLayout } from '../../provider/roomLayoutProvider';
26
30
  import { AudioVideoToggle } from '../AudioVideoToggle';
31
+ import Chip from '../Chip';
27
32
  import TileConnection from '../Connection/TileConnection';
33
+ import FullPageProgress from '../FullPageProgress';
34
+ import { Logo } from '../Header/HeaderComponents';
28
35
  import SettingsModal from '../Settings/SettingsModal';
29
- import PreviewName from './PreviewName';
36
+ import PreviewForm from './PreviewForm';
30
37
  import { useAuthToken, useUISettings } from '../AppData/useUISettings';
31
38
  import { defaultPreviewPreference, UserPreferencesKeys, useUserPreferences } from '../hooks/useUserPreferences';
32
39
  import { UI_SETTINGS } from '../../common/constants';
33
40
 
34
41
  const VirtualBackground = React.lazy(() => import('../../plugins/VirtualBackground/VirtualBackground'));
35
42
 
43
+ const getParticipantChipContent = (peerCount = 0) => {
44
+ if (peerCount === 0) {
45
+ return 'You are the first to join';
46
+ }
47
+ const formatter = new Intl.NumberFormat('en', { notation: 'compact', maximumFractionDigits: 2 });
48
+ const formattedNum = formatter.format(peerCount);
49
+ return `${formattedNum} other${parseInt(formattedNum) === 1 ? '' : 's'} in the session`;
50
+ };
51
+
36
52
  const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
37
53
  const [previewPreference, setPreviewPreference] = useUserPreferences(
38
54
  UserPreferencesKeys.PREVIEW,
39
55
  defaultPreviewPreference,
40
56
  );
57
+ const { isStreamingOn } = useRecordingStreaming();
41
58
  const authToken = useAuthToken();
42
59
  const [name, setName] = useState(initialName || previewPreference.name);
43
- const { isLocalAudioEnabled, isLocalVideoEnabled } = useAVToggle();
60
+ const { isLocalAudioEnabled, isLocalVideoEnabled, toggleAudio, toggleVideo } = useAVToggle();
44
61
  const [previewError, setPreviewError] = useState(false);
45
- const { endPoints } = useHMSPrebuiltContext();
62
+ const { endpoints } = useHMSPrebuiltContext();
63
+ const { peerCount } = useParticipants();
46
64
  const { enableJoin, preview, join } = usePreviewJoin({
47
65
  name,
48
66
  token: authToken,
49
- initEndpoint: endPoints?.init,
67
+ initEndpoint: endpoints?.init,
50
68
  initialSettings: {
51
69
  isAudioMuted: skipPreview || previewPreference.isAudioMuted,
52
70
  isVideoMuted: skipPreview || previewPreference.isVideoMuted,
@@ -60,6 +78,8 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
60
78
  },
61
79
  asRole,
62
80
  });
81
+ const roomState = useHMSStore(selectRoomState);
82
+
63
83
  const savePreferenceAndJoin = useCallback(() => {
64
84
  setPreviewPreference({
65
85
  name,
@@ -69,6 +89,10 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
69
89
  join();
70
90
  onJoin && onJoin();
71
91
  }, [join, isLocalAudioEnabled, isLocalVideoEnabled, name, setPreviewPreference, onJoin]);
92
+ const roomLayout = useRoomLayout();
93
+
94
+ const { preview_header: previewHeader = {} } = roomLayout?.screens?.preview?.default?.elements || {};
95
+
72
96
  useEffect(() => {
73
97
  if (authToken) {
74
98
  if (skipPreview) {
@@ -79,27 +103,62 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
79
103
  }
80
104
  // eslint-disable-next-line react-hooks/exhaustive-deps
81
105
  }, [authToken, skipPreview]);
82
- return (
83
- <Container>
84
- <Text variant="h4" css={{ wordBreak: 'break-word', textAlign: 'center' }}>
85
- Get Started
86
- </Text>
87
- <Text css={{ c: '$textMedEmp', my: '$6', textAlign: 'center' }} variant="body1">
88
- Setup your audio and video before joining
89
- </Text>
90
- <Flex
91
- align="center"
92
- justify="center"
93
- css={{
94
- '@sm': { width: '100%' },
95
- flexDirection: 'column',
96
- }}
97
- >
98
- <PreviewTile name={name} error={previewError} />
99
- <PreviewControls enableJoin={enableJoin} savePreferenceAndJoin={savePreferenceAndJoin} />
100
- <PreviewName name={name} onChange={setName} enableJoin={enableJoin} onJoin={savePreferenceAndJoin} />
106
+
107
+ return roomState === HMSRoomState.Preview ? (
108
+ <Container css={{ h: '100%', pt: '$10', '@md': { justifyContent: 'space-between' } }}>
109
+ {toggleVideo ? null : <Box />}
110
+ <Flex direction="column" justify="center" css={{ w: '100%', maxWidth: '360px' }}>
111
+ <Logo />
112
+ <Text variant="h4" css={{ wordBreak: 'break-word', textAlign: 'center', mt: '$14', '@md': { mt: '$8' } }}>
113
+ {previewHeader.title}
114
+ </Text>
115
+ <Text css={{ c: '$on_surface_medium', my: '0', textAlign: 'center' }} variant="body1">
116
+ {previewHeader.sub_title}
117
+ </Text>
118
+ <Flex justify="center" css={{ my: '$8', gap: '$4' }}>
119
+ {isStreamingOn ? (
120
+ <Chip
121
+ content="LIVE"
122
+ backgroundColor="$alert_error_default"
123
+ textColor="#FFF"
124
+ icon={<Box css={{ h: '$sm', w: '$sm', backgroundColor: '$on_primary_high', borderRadius: '$round' }} />}
125
+ />
126
+ ) : null}
127
+ <Chip content={getParticipantChipContent(peerCount)} hideIfNoContent />
128
+ </Flex>
101
129
  </Flex>
130
+
131
+ {toggleVideo ? (
132
+ <Flex
133
+ align="center"
134
+ justify="center"
135
+ css={{
136
+ '@sm': { width: '100%' },
137
+ flexDirection: 'column',
138
+ }}
139
+ >
140
+ <PreviewTile name={name} error={previewError} />
141
+ </Flex>
142
+ ) : null}
143
+
144
+ <Box css={{ w: '100%', maxWidth: '360px' }}>
145
+ <PreviewControls
146
+ enableJoin={enableJoin}
147
+ savePreferenceAndJoin={savePreferenceAndJoin}
148
+ hideSettings={!toggleVideo && !toggleAudio}
149
+ />
150
+ <PreviewForm
151
+ name={name}
152
+ onChange={setName}
153
+ enableJoin={enableJoin}
154
+ onJoin={savePreferenceAndJoin}
155
+ cannotPublishVideo={!toggleVideo}
156
+ cannotPublishAudio={!toggleAudio}
157
+ />
158
+ </Box>
102
159
  </Container>
160
+ ) : (
161
+ <FullPageProgress />
103
162
  );
104
163
  };
105
164
 
@@ -113,10 +172,12 @@ const Container = styled('div', {
113
172
  const PreviewTile = ({ name, error }) => {
114
173
  const localPeer = useHMSStore(selectLocalPeer);
115
174
  const borderAudioRef = useBorderAudioLevel(localPeer?.audioTrack);
175
+ const { isLocalAudioEnabled, toggleAudio } = useAVToggle();
116
176
  const isVideoOn = useHMSStore(selectIsLocalVideoEnabled);
117
177
  const mirrorLocalVideo = useUISettings(UI_SETTINGS.mirrorLocalVideo);
118
178
  const trackSelector = selectVideoTrackByID(localPeer?.videoTrack);
119
179
  const track = useHMSStore(trackSelector);
180
+ const showMuteIcon = !isLocalAudioEnabled || !toggleAudio;
120
181
 
121
182
  const {
122
183
  aspectRatio: { width, height },
@@ -124,11 +185,10 @@ const PreviewTile = ({ name, error }) => {
124
185
  return (
125
186
  <StyledVideoTile.Container
126
187
  css={{
127
- bg: '$surfaceDefault',
188
+ bg: '$surface_default',
128
189
  aspectRatio: width / height,
129
190
  width: 'unset',
130
191
  height: 'min(360px, 60vh)',
131
- mt: '$12',
132
192
  '@sm': {
133
193
  height: 'unset',
134
194
  width: 'min(360px, 100%)',
@@ -148,20 +208,23 @@ const PreviewTile = ({ name, error }) => {
148
208
  {!isVideoOn ? (
149
209
  <StyledVideoTile.AvatarContainer>
150
210
  <Avatar name={name} data-testid="preview_avatar_tile" />
151
- <Text css={{ ...textEllipsis('75%') }} variant="body2">
152
- {name}
153
- </Text>
154
211
  </StyledVideoTile.AvatarContainer>
155
212
  ) : null}
156
213
  </>
157
214
  ) : !error ? (
158
- <Loading size={100} />
215
+ <FullPageProgress />
216
+ ) : null}
217
+ {showMuteIcon ? (
218
+ <StyledVideoTile.AudioIndicator size="medium">
219
+ <MicOffIcon />
220
+ </StyledVideoTile.AudioIndicator>
159
221
  ) : null}
160
222
  </StyledVideoTile.Container>
161
223
  );
162
224
  };
163
225
 
164
- const PreviewControls = () => {
226
+ const PreviewControls = ({ hideSettings }) => {
227
+ const isVideoOn = useHMSStore(selectIsLocalVideoEnabled);
165
228
  return (
166
229
  <Flex
167
230
  justify="between"
@@ -172,20 +235,20 @@ const PreviewControls = () => {
172
235
  >
173
236
  <Flex css={{ gap: '$4' }}>
174
237
  <AudioVideoToggle compact />
175
- <Suspense fallback="">
176
- <VirtualBackground />
177
- </Suspense>
238
+ <Suspense fallback="">{isVideoOn ? <VirtualBackground /> : null}</Suspense>
178
239
  </Flex>
179
- <PreviewSettings />
240
+ {!hideSettings ? <PreviewSettings /> : null}
180
241
  </Flex>
181
242
  );
182
243
  };
183
244
 
184
- const PreviewSettings = React.memo(() => {
245
+ // Bottom action sheet goes here, if isMobile
246
+ export const PreviewSettings = React.memo(() => {
185
247
  const [open, setOpen] = useState(false);
248
+
186
249
  return (
187
250
  <Fragment>
188
- <IconButton data-testid="preview_setting_btn" onClick={() => setOpen(value => !value)}>
251
+ <IconButton data-testid="preview_setting_btn" css={{ flexShrink: 0 }} onClick={() => setOpen(value => !value)}>
189
252
  <SettingsIcon />
190
253
  </IconButton>
191
254
  {open && <SettingsModal open={open} onOpenChange={setOpen} />}
@@ -61,7 +61,7 @@ export const RoleChangeModal = ({ peerId, onOpenChange }) => {
61
61
  css={{
62
62
  mt: '$4',
63
63
  mb: '$8',
64
- c: '$textMedEmp',
64
+ c: '$on_surface_medium',
65
65
  display: 'flex',
66
66
  flexWrap: 'wrap',
67
67
  columnGap: '4px',
@@ -101,8 +101,8 @@ export const RoleChangeModal = ({ peerId, onOpenChange }) => {
101
101
  data-testid="open_role_selection_dropdown"
102
102
  asChild
103
103
  css={{
104
- border: '1px solid $borderLight',
105
- bg: '$surfaceLight',
104
+ border: '1px solid $border_bright',
105
+ bg: '$surface_bright',
106
106
  r: '$1',
107
107
  p: '$6 $9',
108
108
  }}
@@ -21,8 +21,8 @@ export const ScreenshareDisplay = () => {
21
21
  h: '100%',
22
22
  r: '$3',
23
23
  m: '0 auto',
24
- color: '$textPrimary',
25
- bg: '$surfaceDefault',
24
+ color: '$on_surface_high',
25
+ bg: '$surface_default',
26
26
  textAlign: 'center',
27
27
  }}
28
28
  >
@@ -72,6 +72,7 @@ const Settings = ({ setHide }) => {
72
72
  />
73
73
  </Fragment>
74
74
  ) : null}
75
+
75
76
  {audioInput?.length ? (
76
77
  <DeviceSelector
77
78
  title={shouldShowAudioOutput ? 'Microphone' : 'Audio'}
@@ -86,6 +87,7 @@ const Settings = ({ setHide }) => {
86
87
  }
87
88
  />
88
89
  ) : null}
90
+
89
91
  {audioOutputFiltered?.length && shouldShowAudioOutput ? (
90
92
  <DeviceSelector
91
93
  title="Speaker"
@@ -128,8 +130,8 @@ const DeviceSelector = ({ title, devices, selection, onChange, icon, children =
128
130
  css={{
129
131
  position: 'relative',
130
132
  flex: '1 1 0',
131
- w: '100%',
132
133
  minWidth: 0,
134
+ maxWidth: '100%',
133
135
  '@md': {
134
136
  mb: children ? '$8' : 0,
135
137
  },
@@ -138,14 +140,6 @@ const DeviceSelector = ({ title, devices, selection, onChange, icon, children =
138
140
  <Dropdown.Root open={open} onOpenChange={setOpen}>
139
141
  <DialogDropdownTrigger
140
142
  ref={ref}
141
- css={{
142
- ...(children
143
- ? {
144
- flex: '1 1 0',
145
- minWidth: 0,
146
- }
147
- : {}),
148
- }}
149
143
  icon={icon}
150
144
  title={devices.find(({ deviceId }) => deviceId === selection)?.label || 'Select device from list'}
151
145
  open={open}
@@ -1,34 +1,10 @@
1
1
  import React, { useCallback, useEffect, useState } from 'react';
2
2
  import { useMedia } from 'react-use';
3
3
  import { selectLocalPeerRoleName, useHMSStore } from '@100mslive/react-sdk';
4
- import { ChevronLeftIcon, CrossIcon, GridFourIcon, NotificationsIcon, SettingsIcon } from '@100mslive/react-icons';
4
+ import { ChevronLeftIcon, CrossIcon } from '@100mslive/react-icons';
5
5
  import { Box, config as cssConfig, Dialog, Flex, IconButton, Tabs, Text } from '../../../';
6
- import DeviceSettings from './DeviceSettings';
7
- import { LayoutSettings } from './LayoutSettings';
8
- import { NotificationSettings } from './NotificationSettings';
9
6
  import { useHLSViewerRole } from '../AppData/useUISettings';
10
- import { settingContent } from './common.js';
11
-
12
- const settings = [
13
- {
14
- tabName: 'devices',
15
- title: 'Device Settings',
16
- icon: SettingsIcon,
17
- content: DeviceSettings,
18
- },
19
- {
20
- tabName: 'notifications',
21
- title: 'Notifications',
22
- icon: NotificationsIcon,
23
- content: NotificationSettings,
24
- },
25
- {
26
- tabName: 'layout',
27
- title: 'Layout',
28
- icon: GridFourIcon,
29
- content: LayoutSettings,
30
- },
31
- ];
7
+ import { settingContent, settingsList } from './common.js';
32
8
 
33
9
  const SettingsModal = ({ open, onOpenChange, children }) => {
34
10
  const mediaQueryLg = cssConfig.media.md;
@@ -39,7 +15,7 @@ const SettingsModal = ({ open, onOpenChange, children }) => {
39
15
  const isHlsViewer = hlsViewerRole === localPeerRole;
40
16
 
41
17
  const [showSetting, setShowSetting] = useState(() =>
42
- settings.reduce((obj, { tabName }) => ({ ...obj, [tabName]: true }), {}),
18
+ settingsList.reduce((obj, { tabName }) => ({ ...obj, [tabName]: true }), {}),
43
19
  );
44
20
 
45
21
  const hideSettingByTabName = useCallback(
@@ -90,7 +66,7 @@ const SettingsModal = ({ open, onOpenChange, children }) => {
90
66
  css={{
91
67
  w: isMobile ? '100%' : '18.625rem',
92
68
  flexDirection: 'column',
93
- bg: '$backgroundDefault',
69
+ bg: '$background_default',
94
70
  p: '$14 $10',
95
71
  borderTopLeftRadius: '$4',
96
72
  borderBottomLeftRadius: '$4',
@@ -98,7 +74,7 @@ const SettingsModal = ({ open, onOpenChange, children }) => {
98
74
  >
99
75
  <Text variant="h5">Settings </Text>
100
76
  <Flex direction="column" css={{ mx: isMobile ? '-$8' : 0, overflowY: 'auto', pt: '$10' }}>
101
- {settings
77
+ {settingsList
102
78
  .filter(({ tabName }) => showSetting[tabName])
103
79
  .map(({ icon: Icon, tabName, title }) => {
104
80
  return (
@@ -122,14 +98,14 @@ const SettingsModal = ({ open, onOpenChange, children }) => {
122
98
  position: 'absolute',
123
99
  left: 0,
124
100
  right: 0,
125
- bg: '$surfaceDefault',
101
+ bg: '$surface_default',
126
102
  width: '100%',
127
103
  height: '100%',
128
104
  }
129
105
  : {}),
130
106
  }}
131
107
  >
132
- {settings
108
+ {settingsList
133
109
  .filter(({ tabName }) => showSetting[tabName])
134
110
  .map(({ content: Content, title, tabName }) => {
135
111
  return (
@@ -159,7 +135,7 @@ const SettingsContentHeader = ({ children, isMobile, onBack }) => {
159
135
  return (
160
136
  <Text variant="h6" css={{ mb: '$12', display: 'flex', alignItems: 'center' }}>
161
137
  {isMobile && (
162
- <Box as="span" css={{ bg: '$surfaceLight', mr: '$4', r: '$round', p: '$2' }} onClick={onBack}>
138
+ <Box as="span" css={{ bg: '$surface_bright', mr: '$4', r: '$round', p: '$2' }} onClick={onBack}>
163
139
  <ChevronLeftIcon />
164
140
  </Box>
165
141
  )}
@@ -1,11 +1,5 @@
1
1
  import React, { useState } from 'react';
2
- import {
3
- selectAppData,
4
- selectPermissions,
5
- useHMSActions,
6
- useHMSStore,
7
- useRecordingStreaming,
8
- } from '@100mslive/react-sdk';
2
+ import { selectPermissions, useHMSActions, useHMSStore, useRecordingStreaming } from '@100mslive/react-sdk';
9
3
  import { AlertTriangleIcon } from '@100mslive/react-icons';
10
4
  import { Button, Dialog, Flex, Text } from '../../../';
11
5
  import { ResolutionInput } from '../Streaming/ResolutionInput';
@@ -16,7 +10,6 @@ import { APP_DATA, RTMP_RECORD_DEFAULT_RESOLUTION } from '../../common/constants
16
10
 
17
11
  const StartRecording = ({ open, onOpenChange }) => {
18
12
  const permissions = useHMSStore(selectPermissions);
19
- const recordingUrl = useHMSStore(selectAppData(APP_DATA.recordingUrl));
20
13
  const [resolution, setResolution] = useState(RTMP_RECORD_DEFAULT_RESOLUTION);
21
14
 
22
15
  const [recordingStarted, setRecordingState] = useSetAppDataByKey(APP_DATA.recordingStarted);
@@ -37,19 +30,19 @@ const StartRecording = ({ open, onOpenChange }) => {
37
30
  }}
38
31
  >
39
32
  <Dialog.Title>
40
- <Flex gap={2} css={{ c: '$error' }}>
33
+ <Flex gap={2} css={{ c: '$alert_error_default' }}>
41
34
  <AlertTriangleIcon />
42
35
  <Text css={{ c: 'inherit' }} variant="h6">
43
36
  End Recording
44
37
  </Text>
45
38
  </Flex>
46
39
  </Dialog.Title>
47
- <Text variant="sm" css={{ c: '$textMedEmp', my: '$8' }}>
40
+ <Text variant="sm" css={{ c: '$on_surface_medium', my: '$8' }}>
48
41
  Are you sure you want to end recording? You can’t undo this action.
49
42
  </Text>
50
43
  <Flex justify="end" css={{ mt: '$12' }}>
51
44
  <Dialog.Close asChild>
52
- <Button outlined css={{ borderColor: '$secondaryLight', mr: '$4' }}>
45
+ <Button outlined css={{ borderColor: '$secondary_bright', mr: '$4' }}>
53
46
  Don't end
54
47
  </Button>
55
48
  </Dialog.Close>
@@ -99,7 +92,6 @@ const StartRecording = ({ open, onOpenChange }) => {
99
92
  try {
100
93
  setRecordingState(true);
101
94
  await hmsActions.startRTMPOrRecording({
102
- meetingURL: recordingUrl,
103
95
  resolution: getResolution(resolution),
104
96
  record: true,
105
97
  });
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import { Label } from '../../../Label';
3
3
  import { Flex } from '../../../Layout';
4
4
  import { Switch } from '../../../Switch';
5
- // import { Flex, Label, Switch } from '../../../';
6
5
 
7
6
  const SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) => {
8
7
  return (
@@ -12,7 +11,7 @@ const SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) =
12
11
  my: '$2',
13
12
  py: '$8',
14
13
  w: '100%',
15
- borderBottom: '1px solid $borderDefault',
14
+ borderBottom: '1px solid $border_default',
16
15
  display: hide ? 'none' : 'flex',
17
16
  }}
18
17
  >
@@ -21,7 +20,7 @@ const SwitchWithLabel = ({ label, icon, id, onChange, checked, hide = false }) =
21
20
  css={{
22
21
  fontSize: '$md',
23
22
  fontWeight: '$semiBold',
24
- color: checked ? '$textHighEmp' : '$textDisabled',
23
+ color: checked ? '$on_surface_high' : '$on_surface_low',
25
24
  cursor: 'pointer',
26
25
  display: 'flex',
27
26
  alignItems: 'center',
@@ -1,4 +1,9 @@
1
+ import { GridFourIcon, NotificationsIcon, SettingsIcon } from '@100mslive/react-icons';
1
2
  import { css } from '../../..';
3
+ import DeviceSettings from '../Settings/DeviceSettings';
4
+ import { LayoutSettings } from '../Settings/LayoutSettings';
5
+ import { NotificationSettings } from '../Settings/NotificationSettings';
6
+
2
7
  export const settingOverflow = css({
3
8
  flex: '1 1 0',
4
9
  pr: '$12',
@@ -13,3 +18,24 @@ export const settingContent = css({
13
18
  display: 'none',
14
19
  },
15
20
  });
21
+
22
+ export const settingsList = [
23
+ {
24
+ tabName: 'devices',
25
+ title: 'Device Settings',
26
+ icon: SettingsIcon,
27
+ content: DeviceSettings,
28
+ },
29
+ {
30
+ tabName: 'notifications',
31
+ title: 'Notifications',
32
+ icon: NotificationsIcon,
33
+ content: NotificationSettings,
34
+ },
35
+ {
36
+ tabName: 'layout',
37
+ title: 'Layout',
38
+ icon: GridFourIcon,
39
+ content: LayoutSettings,
40
+ },
41
+ ];
@@ -98,7 +98,7 @@ export const StatsForNerds = ({ onOpenChange }) => {
98
98
  css={{
99
99
  px: '$9',
100
100
  bg: isSelected ? selectionBg : undefined,
101
- c: isSelected ? '$white' : '$textPrimary',
101
+ c: isSelected ? '$on_primary_high' : '$on_primary_high',
102
102
  }}
103
103
  >
104
104
  {option.label}
@@ -219,18 +219,18 @@ const TrackStats = ({ trackID, layer, local }) => {
219
219
  };
220
220
 
221
221
  const StatsRow = React.memo(({ label, value }) => (
222
- <Box css={{ bg: '$surfaceLight', w: 'calc(50% - $6)', p: '$8', r: '$3' }}>
222
+ <Box css={{ bg: '$surface_bright', w: 'calc(50% - $6)', p: '$8', r: '$3' }}>
223
223
  <Text
224
224
  variant="overline"
225
225
  css={{
226
226
  fontWeight: '$semiBold',
227
- color: '$textMedEmp',
227
+ color: '$on_surface_medium',
228
228
  textTransform: 'uppercase',
229
229
  }}
230
230
  >
231
- {label}{' '}
231
+ {label}
232
232
  </Text>
233
- <Text variant="sub1" css={{ fontWeight: '$semiBold', color: '$textHighEmp' }}>
233
+ <Text variant="sub1" css={{ fontWeight: '$semiBold', color: '$on_surface_high' }}>
234
234
  {value || '-'}
235
235
  </Text>
236
236
  </Box>
@@ -3,7 +3,7 @@ import { selectPermissions, useHMSStore } from '@100mslive/react-sdk';
3
3
  import { ChevronLeftIcon, ChevronRightIcon, CrossIcon, RecordIcon } from '@100mslive/react-icons';
4
4
  import { Box, Flex, IconButton, slideLeftAndFade, Switch, Text } from '../../../';
5
5
 
6
- export const StreamCard = ({ title, subtitle, Icon, css = {}, onClick, testId }) => {
6
+ export const StreamCard = ({ title, subtitle, Icon, imgSrc = '', css = {}, onClick, testId }) => {
7
7
  return (
8
8
  <Flex
9
9
  css={{
@@ -11,7 +11,7 @@ export const StreamCard = ({ title, subtitle, Icon, css = {}, onClick, testId })
11
11
  p: '$10',
12
12
  r: '$1',
13
13
  cursor: 'pointer',
14
- bg: '$surfaceLight',
14
+ bg: '$surface_bright',
15
15
  mb: '$10',
16
16
  mt: '$8',
17
17
  ...css,
@@ -20,13 +20,13 @@ export const StreamCard = ({ title, subtitle, Icon, css = {}, onClick, testId })
20
20
  onClick={onClick}
21
21
  >
22
22
  <Text css={{ alignSelf: 'center', p: '$4' }}>
23
- <Icon width={40} height={40} />
23
+ {imgSrc ? <img src={imgSrc} height={40} width={40} /> : <Icon width={40} height={40} />}
24
24
  </Text>
25
25
  <Box css={{ flex: '1 1 0', mx: '$8' }}>
26
26
  <Text variant="h6" css={{ mb: '$4' }}>
27
27
  {title}
28
28
  </Text>
29
- <Text variant="sm" css={{ color: '$textMedEmp' }}>
29
+ <Text variant="sm" css={{ color: '$on_surface_medium' }}>
30
30
  {subtitle}
31
31
  </Text>
32
32
  </Box>
@@ -41,7 +41,7 @@ export const ContentHeader = ({ onBack, title, content }) => {
41
41
  return (
42
42
  <Flex css={{ w: '100%', py: '$8', px: '$10', cursor: 'pointer' }}>
43
43
  <Text
44
- css={{ p: '$2', bg: '$surfaceLight', r: '$round', alignSelf: 'center' }}
44
+ css={{ p: '$2', bg: '$surface_bright', r: '$round', alignSelf: 'center' }}
45
45
  onClick={onBack}
46
46
  data-testid="go_back"
47
47
  >
@@ -53,7 +53,7 @@ export const ContentHeader = ({ onBack, title, content }) => {
53
53
  css={{
54
54
  textTransform: 'uppercase',
55
55
  fontWeight: '$semiBold',
56
- color: '$textMedEmp',
56
+ color: '$on_surface_medium',
57
57
  }}
58
58
  >
59
59
  {title}
@@ -76,7 +76,7 @@ export const Container = ({ children, rounded = false }) => {
76
76
  position: 'absolute',
77
77
  top: 0,
78
78
  left: 0,
79
- bg: '$surfaceDefault',
79
+ bg: '$surface_default',
80
80
  transform: 'translateX(10%)',
81
81
  animation: `${slideLeftAndFade('10%')} 100ms ease-out forwards`,
82
82
  display: 'flex',
@@ -98,7 +98,7 @@ export const ContentBody = ({ Icon, title, removeVerticalPadding = false, childr
98
98
  {title}
99
99
  </Text>
100
100
  </Text>
101
- <Text variant="sm" css={{ color: '$textMedEmp' }}>
101
+ <Text variant="sm" css={{ color: '$on_surface_medium' }}>
102
102
  {children}
103
103
  </Text>
104
104
  </Box>
@@ -108,8 +108,8 @@ export const ContentBody = ({ Icon, title, removeVerticalPadding = false, childr
108
108
  export const RecordStream = ({ record, setRecord, testId }) => {
109
109
  const permissions = useHMSStore(selectPermissions);
110
110
  return permissions?.browserRecording ? (
111
- <Flex align="center" css={{ bg: '$surfaceLight', m: '$8 $10', p: '$8', r: '$0' }}>
112
- <Text css={{ color: '$error' }}>
111
+ <Flex align="center" css={{ bg: '$surface_bright', m: '$8 $10', p: '$8', r: '$0' }}>
112
+ <Text css={{ color: '$alert_error_default' }}>
113
113
  <RecordIcon />
114
114
  </Text>
115
115
  <Text variant="sm" css={{ flex: '1 1 0', mx: '$8' }}>
@@ -125,7 +125,7 @@ export const ErrorText = ({ error }) => {
125
125
  return null;
126
126
  }
127
127
  return (
128
- <Text variant="sm" css={{ mb: '$8', color: '$error' }}>
128
+ <Text variant="sm" css={{ mb: '$8', color: '$alert_error_default' }}>
129
129
  {error}
130
130
  </Text>
131
131
  );