@100mslive/roomkit-react 0.1.2-alpha.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. package/dist/{ActiveSpeakerView-ADEYHQMU.css → ActiveSpeakerView-ELWK3LNE.css} +2 -2
  2. package/dist/{PinnedTrackView-5DPVVOZW.css.map → ActiveSpeakerView-ELWK3LNE.css.map} +1 -1
  3. package/dist/{ActiveSpeakerView-4XPIRZOK.js → ActiveSpeakerView-I4XBBOOY.js} +6 -6
  4. package/dist/{HLSView-DWEEMZ6Z.css → HLSView-UPP5PDCE.css} +2 -2
  5. package/dist/{HLSView-DWEEMZ6Z.css.map → HLSView-UPP5PDCE.css.map} +1 -1
  6. package/dist/{HLSView-I26CVF5U.js → HLSView-VXI2RN37.js} +5 -5
  7. package/dist/{PinnedTrackView-5DPVVOZW.css → PinnedTrackView-NWN3H5EZ.css} +2 -2
  8. package/dist/{conference-BDCDGBIS.css.map → PinnedTrackView-NWN3H5EZ.css.map} +1 -1
  9. package/dist/{PinnedTrackView-GGTCNH5V.js → PinnedTrackView-V2COEYUL.js} +6 -6
  10. package/dist/{VirtualBackground-ZRRE4DUA.js → VirtualBackground-4RPLPBOQ.js} +3 -3
  11. package/dist/{chunk-KKLZ7K2L.js → chunk-2SV2DRIF.js} +7 -7
  12. package/dist/{chunk-KKLZ7K2L.js.map → chunk-2SV2DRIF.js.map} +2 -2
  13. package/dist/{chunk-LUND6FLY.js → chunk-MJNJRHS3.js} +46 -40
  14. package/dist/chunk-MJNJRHS3.js.map +7 -0
  15. package/dist/{chunk-MYK3T45M.js → chunk-PLKNFRDT.js} +3 -3
  16. package/dist/chunk-PLKNFRDT.js.map +7 -0
  17. package/dist/{chunk-THORW2WT.js → chunk-S4QRZ4VV.js} +2 -2
  18. package/dist/{chunk-4ISMCWQA.js → chunk-YJCBCMH4.js} +7 -6
  19. package/dist/chunk-YJCBCMH4.js.map +7 -0
  20. package/dist/{conference-5TDUAQ6K.js → conference-DGJFMV3O.js} +258 -434
  21. package/dist/conference-DGJFMV3O.js.map +7 -0
  22. package/dist/{conference-BDCDGBIS.css → conference-JFEDNIUG.css} +2 -2
  23. package/dist/{ActiveSpeakerView-ADEYHQMU.css.map → conference-JFEDNIUG.css.map} +1 -1
  24. package/dist/index.cjs.css +1 -1
  25. package/dist/index.cjs.css.map +1 -1
  26. package/dist/index.cjs.js +464 -656
  27. package/dist/index.cjs.js.map +4 -4
  28. package/dist/index.css +1 -1
  29. package/dist/index.css.map +1 -1
  30. package/dist/index.js +4 -4
  31. package/dist/meta.cjs.json +46 -166
  32. package/dist/meta.esbuild.json +136 -256
  33. package/dist/{transcription-PYTSSAOB.js → transcription-KASUU6FK.js} +3 -3
  34. package/package.json +6 -6
  35. package/src/Button/Button.tsx +6 -2
  36. package/src/Loading/Loading.tsx +1 -1
  37. package/src/Prebuilt/App.jsx +4 -1
  38. package/src/Prebuilt/AppContext.jsx +1 -1
  39. package/src/Prebuilt/Prebuilt.stories.tsx +4 -0
  40. package/src/Prebuilt/components/Footer/ConferencingFooter.jsx +1 -4
  41. package/src/Prebuilt/components/Notifications/PeerNotifications.jsx +2 -1
  42. package/src/Prebuilt/components/Notifications/PermissionErrorModal.jsx +13 -44
  43. package/src/Prebuilt/components/Preview/PreviewContainer.jsx +4 -1
  44. package/src/Prebuilt/components/Preview/PreviewForm.jsx +5 -7
  45. package/src/Prebuilt/components/Preview/PreviewJoin.jsx +11 -7
  46. package/src/Theme/base.config.ts +3 -3
  47. package/src/Theme/stitches.config.ts +2 -1
  48. package/src/VideoTile/StyledVideoTile.tsx +1 -1
  49. package/dist/chunk-4ISMCWQA.js.map +0 -7
  50. package/dist/chunk-LUND6FLY.js.map +0 -7
  51. package/dist/chunk-MYK3T45M.js.map +0 -7
  52. package/dist/conference-5TDUAQ6K.js.map +0 -7
  53. package/src/assets/android-perm-0.png +0 -0
  54. /package/dist/{ActiveSpeakerView-4XPIRZOK.js.map → ActiveSpeakerView-I4XBBOOY.js.map} +0 -0
  55. /package/dist/{HLSView-I26CVF5U.js.map → HLSView-VXI2RN37.js.map} +0 -0
  56. /package/dist/{PinnedTrackView-GGTCNH5V.js.map → PinnedTrackView-V2COEYUL.js.map} +0 -0
  57. /package/dist/{VirtualBackground-ZRRE4DUA.js.map → VirtualBackground-4RPLPBOQ.js.map} +0 -0
  58. /package/dist/{chunk-THORW2WT.js.map → chunk-S4QRZ4VV.js.map} +0 -0
  59. /package/dist/{transcription-PYTSSAOB.js.map → transcription-KASUU6FK.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  Box,
3
3
  Text
4
- } from "./chunk-THORW2WT.js";
4
+ } from "./chunk-S4QRZ4VV.js";
5
5
  import {
6
6
  IconButton_default,
7
7
  SESSION_STORE_KEY,
@@ -12,7 +12,7 @@ import {
12
12
  __spreadValues,
13
13
  define_process_env_default,
14
14
  init_define_process_env
15
- } from "./chunk-4ISMCWQA.js";
15
+ } from "./chunk-YJCBCMH4.js";
16
16
 
17
17
  // src/Prebuilt/plugins/transcription/index.jsx
18
18
  init_define_process_env();
@@ -353,4 +353,4 @@ function TranscriptionButton() {
353
353
  export {
354
354
  TranscriptionButton as default
355
355
  };
356
- //# sourceMappingURL=transcription-PYTSSAOB.js.map
356
+ //# sourceMappingURL=transcription-KASUU6FK.js.map
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "prebuilt",
11
11
  "roomkit"
12
12
  ],
13
- "version": "0.1.2-alpha.0",
13
+ "version": "0.1.2",
14
14
  "author": "100ms",
15
15
  "license": "MIT",
16
16
  "files": [
@@ -75,10 +75,10 @@
75
75
  "react": ">=17.0.2 <19.0.0"
76
76
  },
77
77
  "dependencies": {
78
- "@100mslive/hls-player": "0.1.11-alpha.0",
79
- "@100mslive/hms-virtual-background": "1.11.11-alpha.0",
80
- "@100mslive/react-icons": "0.8.11-alpha.0",
81
- "@100mslive/react-sdk": "0.8.11-alpha.0",
78
+ "@100mslive/hls-player": "0.1.11",
79
+ "@100mslive/hms-virtual-background": "1.11.11",
80
+ "@100mslive/react-icons": "0.8.11",
81
+ "@100mslive/react-sdk": "0.8.11",
82
82
  "@100mslive/types-prebuilt": "0.8.0",
83
83
  "@emoji-mart/data": "^1.0.6",
84
84
  "@emoji-mart/react": "^1.0.1",
@@ -117,5 +117,5 @@
117
117
  "worker-timers": "^7.0.40",
118
118
  "zipyai": "^1.3.24"
119
119
  },
120
- "gitHead": "523c0b38cdcac790c93b60d2747a4e3520d21dd2"
120
+ "gitHead": "b40c957e0577e36fd1efd2658e7b3d9a1a1a5baa"
121
121
  }
@@ -183,8 +183,12 @@ export const Button = React.forwardRef<
183
183
  <StyledButton {...buttonProps} ref={ref}>
184
184
  <>
185
185
  {loading && (
186
- <Flex align="center" justify="center" css={{ w: '100%', position: 'absolute', left: '0' }}>
187
- <Loading />
186
+ <Flex
187
+ align="center"
188
+ justify="center"
189
+ css={{ w: '100%', position: 'absolute', left: '0', color: '$on_primary_low' }}
190
+ >
191
+ <Loading color="currentColor" />
188
192
  </Flex>
189
193
  )}
190
194
  <Flex
@@ -15,7 +15,7 @@ type LoadingProps = Props & React.SVGProps<SVGSVGElement>;
15
15
 
16
16
  export const Loading = ({ size = 24, color = 'white', ...props }: LoadingProps) => (
17
17
  <svg width={size} height={size} viewBox="0 0 50 50" fill={color} xmlns="http://www.w3.org/2000/svg" {...props}>
18
- <circle cx="25" cy="25" r="20" stroke="#0074D9" stroke-width="4" stroke-dasharray="70 30" fill="none">
18
+ <circle cx="25" cy="25" r="20" stroke={color} strokeWidth="4" strokeDasharray="70 30" fill="none">
19
19
  <animateTransform
20
20
  attributeName="transform"
21
21
  attributeType="XML"
@@ -151,7 +151,10 @@ export const HMSPrebuilt = React.forwardRef(
151
151
 
152
152
  return (
153
153
  <HMSThemeProvider
154
- themeType={theme.name}
154
+ // issue is with stichtes caching the theme using the theme name / class
155
+ // no updates to the themes are fired if the name is same.
156
+ // TODO: cache the theme and do deep check to trigger name change in the theme
157
+ themeType={`${theme.name}-${Date.now()}`}
155
158
  aspectRatio={getAspectRatio({ width, height })}
156
159
  theme={{
157
160
  colors: theme.palette,
@@ -6,7 +6,7 @@ export const HMSPrebuiltContext = React.createContext({
6
6
  roomCode: '',
7
7
  userName: '',
8
8
  userId: '',
9
- endPoints: {},
9
+ endpoints: {},
10
10
  onLeave: undefined,
11
11
  });
12
12
 
@@ -8,6 +8,7 @@ export default {
8
8
  argTypes: {
9
9
  roomCode: { control: { type: 'text' }, defaultValue: 'tsj-obqh-lwx' },
10
10
  logo: { control: { type: 'object' }, defaultValue: undefined },
11
+ typography: { control: { type: 'object' }, defaultValue: 'Roboto' },
11
12
  },
12
13
  } as Meta<typeof HMSPrebuilt>;
13
14
 
@@ -23,4 +24,7 @@ Example.args = {
23
24
  roomLayout: 'https://demo8271564.mockable.io/v2/layouts/ui',
24
25
  },
25
26
  },
27
+ typography: {
28
+ font_family: 'Roboto',
29
+ },
26
30
  };
@@ -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>
@@ -2,6 +2,7 @@ import { useEffect } from 'react';
2
2
  import { HMSNotificationTypes, useHMSNotifications } from '@100mslive/react-sdk';
3
3
  import { ToastBatcher } from '../Toast/ToastBatcher';
4
4
  import { useSubscribedNotifications } from '../AppData/useUISettings';
5
+ import { isInternalRole } from '../../common/utils';
5
6
  import { SUBSCRIBED_NOTIFICATIONS } from '../../common/constants';
6
7
 
7
8
  const notificationTypes = [
@@ -15,7 +16,7 @@ export const PeerNotifications = () => {
15
16
  const isPeerJoinSubscribed = useSubscribedNotifications(SUBSCRIBED_NOTIFICATIONS.PEER_JOINED);
16
17
  const isPeerLeftSubscribed = useSubscribedNotifications(SUBSCRIBED_NOTIFICATIONS.PEER_LEFT);
17
18
  useEffect(() => {
18
- if (!notification) {
19
+ if (!notification || (notification?.data?.roleName && isInternalRole(notification.data.roleName))) {
19
20
  return;
20
21
  }
21
22
  console.debug(`[${notification.type}]`, notification);
@@ -2,7 +2,6 @@ import React, { useEffect, useState } from 'react';
2
2
  import { useMedia } from 'react-use';
3
3
  import { HMSNotificationTypes, useHMSNotifications } from '@100mslive/react-sdk';
4
4
  import { Button, config as cssConfig, Dialog, Flex, Text } from '../../../';
5
- import androidPermissions from '../../../assets/android-perm-0.png';
6
5
  import androidPermissionAlert from '../../../assets/android-perm-1.png';
7
6
  import iosPermissions from '../../../assets/ios-perm-0.png';
8
7
  import { isAndroid, isIOS } from '../../common/constants';
@@ -11,15 +10,8 @@ export function PermissionErrorModal() {
11
10
  const notification = useHMSNotifications(HMSNotificationTypes.ERROR);
12
11
  const [deviceType, setDeviceType] = useState('');
13
12
  const [isSystemError, setIsSystemError] = useState(false);
14
- const [showAndroidPrompt, setShowAndroidPrompt] = useState(true);
15
13
  const isMobile = useMedia(cssConfig.media.md);
16
14
 
17
- useEffect(() => {
18
- if (showAndroidPrompt && isAndroid && isMobile) {
19
- setDeviceType('camera and microphone');
20
- }
21
- }, []);
22
-
23
15
  useEffect(() => {
24
16
  if (
25
17
  !notification ||
@@ -59,32 +51,21 @@ export function PermissionErrorModal() {
59
51
 
60
52
  {/* Images for android */}
61
53
  {isMobile && isAndroid ? (
62
- showAndroidPrompt ? (
63
- <img src={androidPermissions} style={{ maxWidth: '100%', maxHeight: '100%' }} />
64
- ) : (
65
- <img src={androidPermissionAlert} style={{ maxWidth: '100%', maxHeight: '100%' }} />
66
- )
54
+ <img src={androidPermissionAlert} style={{ maxWidth: '100%', maxHeight: '100%' }} />
67
55
  ) : null}
68
56
 
69
- <Text variant="h6">
70
- {showAndroidPrompt ? `Allow access to your ${deviceType}` : `We can't access your ${deviceType}`}
71
- </Text>
57
+ <Text variant="h6">We can't access your {deviceType}</Text>
72
58
  </Dialog.Title>
73
59
 
74
60
  <Text variant="sm" css={{ pt: '$4', pb: '$10', color: '$on_surface_medium' }}>
75
61
  {/* IOS prompt text */}
76
62
  {isMobile && isIOS
77
- ? 'Enable permissions by reloading this page and clicking Allow on the pop-up, or change settings from the address bar.'
78
- : null}
79
-
80
- {/* Initial prompt for android devices */}
81
- {isMobile && showAndroidPrompt && isAndroid
82
- ? 'In order for others to see and hear you, your browser will request camera and microphone access.'
63
+ ? 'Enable permissions by reloading this page and clicking "Allow" on the pop-up, or change settings from the address bar.'
83
64
  : null}
84
65
 
85
- {/* Successive prompts for android devices */}
86
- {isMobile && !showAndroidPrompt && isAndroid
87
- ? 'To allow other users to see and hear you, click the blocked camera icon in your browsers address bar.'
66
+ {/* Prompt for android devices */}
67
+ {isMobile && isAndroid
68
+ ? `To allow other users to see and hear you, click the blocked camera icon in your browser's address bar.`
88
69
  : null}
89
70
 
90
71
  {/* Prompt for desktops */}
@@ -113,26 +94,14 @@ export function PermissionErrorModal() {
113
94
  ) : null}
114
95
 
115
96
  {isMobile && isAndroid ? (
116
- showAndroidPrompt ? (
117
- <Button
118
- css={{ w: '100%' }}
119
- onClick={() => {
120
- setDeviceType('');
121
- setShowAndroidPrompt(false);
122
- }}
123
- >
124
- Continue
97
+ <>
98
+ <Button onClick={() => setDeviceType('')} css={{ w: '100%', mb: '$6' }}>
99
+ I've allowed access
125
100
  </Button>
126
- ) : (
127
- <>
128
- <Button onClick={() => setDeviceType('')} css={{ w: '100%', mb: '$6' }}>
129
- I've allowed access
130
- </Button>
131
- <Button outlined variant="standard" onClick={() => setDeviceType('')} css={{ w: '100%' }}>
132
- Continue anyway
133
- </Button>
134
- </>
135
- )
101
+ <Button outlined variant="standard" onClick={() => setDeviceType('')} css={{ w: '100%' }}>
102
+ Continue anyway
103
+ </Button>
104
+ </>
136
105
  ) : null}
137
106
 
138
107
  {!isMobile ? (
@@ -4,6 +4,7 @@ import { useSearchParam } from 'react-use';
4
4
  import { HMSRoomState, selectRoomState, useHMSStore } from '@100mslive/react-sdk';
5
5
  import { Box, Flex } from '../../../';
6
6
  import SidePane from '../../layouts/SidePane';
7
+ import { useRoomLayout } from '../../provider/roomLayoutProvider';
7
8
  import FullPageProgress from '../FullPageProgress';
8
9
  import { Header } from '../Header';
9
10
  import PreviewJoin from './PreviewJoin';
@@ -19,6 +20,8 @@ const PreviewContainer = () => {
19
20
  const initialName = useSearchParam(QUERY_PARAM_NAME) || (skipPreview ? 'Beam' : '');
20
21
  const { roomId: urlRoomId, role: userRole } = useParams(); // from the url
21
22
  const authToken = useAuthToken();
23
+ const roomLayout = useRoomLayout();
24
+ const { preview_header: previewHeader = {} } = roomLayout?.screens?.preview?.default?.elements || {};
22
25
 
23
26
  const roomState = useHMSStore(selectRoomState);
24
27
  const isPreview = roomState === HMSRoomState.Preview;
@@ -42,7 +45,7 @@ const PreviewContainer = () => {
42
45
  justify="center"
43
46
  align="center"
44
47
  >
45
- {authToken ? (
48
+ {authToken && Object.keys(previewHeader).length > 0 ? (
46
49
  <PreviewJoin initialName={initialName} skipPreview={skipPreview} asRole={previewAsRole} onJoin={onJoin} />
47
50
  ) : (
48
51
  <FullPageProgress />
@@ -48,13 +48,11 @@ const PreviewForm = ({
48
48
  {cannotPublishAudio && cannotPublishVideo && !isMobile ? <PreviewSettings /> : null}
49
49
  </Flex>
50
50
 
51
- {Object.keys(joinForm).length > 0 ? (
52
- <Button type="submit" icon disabled={!name || !enableJoin} onClick={onJoin}>
53
- {/* Conditions to show go live: The first broadcaster joins a streaming kit that is not live */}
54
- {showGoLive ? <RadioIcon height={18} width={18} /> : null}
55
- {showGoLive ? joinForm.go_live_btn_label : joinForm.join_btn_label}
56
- </Button>
57
- ) : null}
51
+ <Button type="submit" icon disabled={!name || !enableJoin} onClick={onJoin}>
52
+ {/* Conditions to show go live: The first broadcaster joins a streaming kit that is not live */}
53
+ {showGoLive ? <RadioIcon height={18} width={18} /> : null}
54
+ {showGoLive ? joinForm.go_live_btn_label : joinForm.join_btn_label}
55
+ </Button>
58
56
  </Form>
59
57
  );
60
58
  };
@@ -59,12 +59,12 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
59
59
  const [name, setName] = useState(initialName || previewPreference.name);
60
60
  const { isLocalAudioEnabled, isLocalVideoEnabled, toggleAudio, toggleVideo } = useAVToggle();
61
61
  const [previewError, setPreviewError] = useState(false);
62
- const { endPoints } = useHMSPrebuiltContext();
62
+ const { endpoints } = useHMSPrebuiltContext();
63
63
  const { peerCount } = useParticipants();
64
64
  const { enableJoin, preview, join } = usePreviewJoin({
65
65
  name,
66
66
  token: authToken,
67
- initEndpoint: endPoints?.init,
67
+ initEndpoint: endpoints?.init,
68
68
  initialSettings: {
69
69
  isAudioMuted: skipPreview || previewPreference.isAudioMuted,
70
70
  isVideoMuted: skipPreview || previewPreference.isVideoMuted,
@@ -109,13 +109,19 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
109
109
  {toggleVideo ? null : <Box />}
110
110
  <Flex direction="column" justify="center" css={{ w: '100%', maxWidth: '360px' }}>
111
111
  <Logo />
112
- <Text variant="h4" css={{ wordBreak: 'break-word', textAlign: 'center', mt: '$14', '@md': { mt: '$8' } }}>
112
+ <Text
113
+ variant="h4"
114
+ css={{ wordBreak: 'break-word', textAlign: 'center', mt: '$14', mb: '$4', '@md': { mt: '$8', mb: '$2' } }}
115
+ >
113
116
  {previewHeader.title}
114
117
  </Text>
115
- <Text css={{ c: '$on_surface_medium', my: '0', textAlign: 'center' }} variant="body1">
118
+ <Text
119
+ css={{ c: '$on_surface_medium', my: '0', textAlign: 'center', maxWidth: '100%', wordWrap: 'break-word' }}
120
+ variant="sm"
121
+ >
116
122
  {previewHeader.sub_title}
117
123
  </Text>
118
- <Flex justify="center" css={{ my: '$8', gap: '$4' }}>
124
+ <Flex justify="center" css={{ mt: '$14', mb: '$14', '@md': { mt: '$8', mb: '0' }, gap: '$4' }}>
119
125
  {isStreamingOn ? (
120
126
  <Chip
121
127
  content="LIVE"
@@ -127,7 +133,6 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
127
133
  <Chip content={getParticipantChipContent(peerCount)} hideIfNoContent />
128
134
  </Flex>
129
135
  </Flex>
130
-
131
136
  {toggleVideo ? (
132
137
  <Flex
133
138
  align="center"
@@ -140,7 +145,6 @@ const PreviewJoin = ({ onJoin, skipPreview, initialName, asRole }) => {
140
145
  <PreviewTile name={name} error={previewError} />
141
146
  </Flex>
142
147
  ) : null}
143
-
144
148
  <Box css={{ w: '100%', maxWidth: '360px' }}>
145
149
  <PreviewControls
146
150
  enableJoin={enableJoin}
@@ -8,9 +8,9 @@ export const baseConfig = {
8
8
  primary_bright: '#538DFF',
9
9
  primary_dim: '#002D6D',
10
10
  primary_disabled: '#004299',
11
- on_primary_high: '#FFFFFF',
12
- on_primary_medium: '#DADADA',
13
- on_primary_low: '#ABABAB',
11
+ on_primary_high: 'rgba(245, 249, 255, 0.95)',
12
+ on_primary_medium: 'rgba(224, 236, 255, 0.8)',
13
+ on_primary_low: 'rgba(194, 208, 229, 0.5)',
14
14
  secondary_default: '#444954',
15
15
  secondary_bright: '#70778B',
16
16
  secondary_dim: '#293042',
@@ -89,7 +89,8 @@ export const createTheme = ({
89
89
  if (!themeType) {
90
90
  throw new Error('Theme type is required');
91
91
  }
92
- return createThemeBase(className || `${themeType}-theme`, merge(baseConfig.theme, theme || {}));
92
+ const mergedTheme = merge(baseConfig.theme, theme || {});
93
+ return createThemeBase(className || `${themeType}-theme`, mergedTheme);
93
94
  };
94
95
 
95
96
  export type CSS = Stitches.CSS<typeof HmsStitches>;
@@ -18,7 +18,7 @@ const Container = styled('div', {
18
18
  display: 'flex',
19
19
  justifyContent: 'center',
20
20
  alignItems: 'center',
21
- background: '$surface_default',
21
+ background: '$background_default',
22
22
  variants: {
23
23
  transparentBg: {
24
24
  true: {
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["<define:process.env>", "../src/Theme/stitches.config.ts", "../src/Theme/base.config.ts", "../src/utils/styles.ts", "../src/IconButton/IconButton.tsx", "../src/IconButton/index.tsx", "../src/utils/animations.ts", "../src/Tooltip/Tooltip.tsx", "../src/Tooltip/index.ts", "../src/Prebuilt/common/constants.js", "../src/Prebuilt/IconButton.jsx"],
4
- "sourcesContent": ["", "import type * as Stitches from '@stitches/react';\nimport { createStitches } from '@stitches/react';\nimport merge from 'lodash.merge';\nimport { baseConfig, defaultMedia, defaultThemeMap, defaultUtils } from './base.config';\n\nconst HmsStitches = createStitches({\n prefix: 'hms-ui',\n theme: {\n ...baseConfig.theme,\n colors: {\n ...baseConfig.theme.colors,\n },\n },\n media: defaultMedia,\n utils: defaultUtils,\n themeMap: defaultThemeMap,\n});\n\nexport const {\n theme,\n createTheme: createThemeBase,\n styled,\n globalCss,\n keyframes,\n css,\n getCssText,\n config,\n} = HmsStitches;\n\nexport const globalStyles = globalCss({\n '*': {\n fontFamily: '$sans',\n boxSizing: 'border-box',\n borderWidth: 0,\n borderStyle: 'solid',\n },\n body: {\n margin: 0,\n },\n '#root': {\n height: '100%',\n overscrollBehaviorY: 'none',\n },\n '::-webkit-scrollbar-track': {\n WebkitBoxShadow: 'inset 0 0 6px rgba(0, 0, 0, 0.3)',\n boxShadow: 'inset 0 0 6px rgba(0, 0, 0, 0.3)',\n backgroundColor: 'transparent',\n },\n '::-webkit-scrollbar': {\n width: '6px',\n height: '6px',\n backgroundColor: 'transparent',\n },\n '::-webkit-scrollbar-thumb': {\n backgroundColor: '#657080',\n borderRadius: '5px',\n },\n /**\n * needed for safari. Safari\n * adds background color on its own\n * on hls-viewer on fullscreen\n */\n '#hls-viewer-dark:fullscreen': {\n backgroundColor: 'black !important',\n },\n\n '#hls-viewer-light:fullscreen': {\n backgroundColor: 'white !important',\n },\n});\n\nexport type ThemeType = 'default';\nexport type Theme = typeof HmsStitches.theme;\n\n/**\n * This method will be used to create custom themes or update any theme values\n * @param { type: ThemeType; className: string; theme: Theme }\n * @returns\n */\nexport const createTheme = ({\n themeType,\n theme,\n className,\n}: {\n themeType: ThemeType;\n className?: string;\n theme?: Partial<Theme>;\n}) => {\n if (!themeType) {\n throw new Error('Theme type is required');\n }\n return createThemeBase(className || `${themeType}-theme`, merge(baseConfig.theme, theme || {}));\n};\n\nexport type CSS = Stitches.CSS<typeof HmsStitches>;\n", "import type * as Stitches from '@stitches/react';\nimport { defaultThemeMap as defaultStitchesThemeMap } from '@stitches/react';\n\nexport const baseConfig = {\n theme: {\n colors: {\n primary_default: '#2572ED',\n primary_bright: '#538DFF',\n primary_dim: '#002D6D',\n primary_disabled: '#004299',\n on_primary_high: '#FFFFFF',\n on_primary_medium: '#DADADA',\n on_primary_low: '#ABABAB',\n secondary_default: '#444954',\n secondary_bright: '#70778B',\n secondary_dim: '#293042',\n secondary_disabled: '#404759',\n on_secondary_high: '#FFFFFF',\n on_secondary_medium: '#D3D9F0',\n on_secondary_low: '#A4ABC0',\n background_default: '#0B0E15',\n background_dim: '#000000',\n surface_default: '#191B23',\n surface_bright: '#272A31',\n surface_brighter: '#2E3038',\n surface_dim: '#11131A',\n on_surface_high: '#EFF0FA',\n on_surface_medium: '#C5C6D0',\n on_surface_low: '#8F9099',\n border_default: '#1D1F27',\n border_bright: '#272A31',\n alert_success: '#36B37E',\n alert_warning: '#FFAB00',\n alert_error_default: '#C74E5B',\n alert_error_bright: '#FFB2B6',\n alert_error_brighter: '#FFEDEC',\n alert_error_dim: '#270005',\n },\n shadows: {\n sm: '0 0 4px 0 #0000004D',\n md: '0 0 8px 0 #0000004D',\n },\n fonts: {\n sans: 'Inter, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen,Ubuntu, Cantarell, Fira Sans, Droid Sans, Helvetica Neue, sans-serif',\n },\n fontSizes: {\n h1: '6rem',\n h2: '3.75rem',\n h3: '3rem',\n h4: '2.125rem',\n h5: '1.5rem',\n h6: '1.25rem',\n tiny: '0.625rem',\n xs: '0.75rem',\n sm: '0.875rem',\n md: '1rem',\n lg: '1.125rem',\n },\n fontWeights: {\n semiBold: 600,\n medium: 500,\n regular: 400,\n },\n lineHeights: {\n h1: '5.75rem',\n h2: '3.5rem',\n h3: '3.25rem',\n h4: '2.5rem',\n h5: '2rem',\n h6: '1.5rem',\n tiny: '1rem',\n xs: '1rem',\n sm: '1.25rem',\n md: '1.5rem',\n },\n radii: {\n '0': '0.25rem',\n '1': '0.5rem',\n '2': '0.75rem',\n '3': '1rem',\n '4': '1.5rem',\n round: '100rem',\n },\n space: {\n 0: '0rem',\n xs: '0.5rem',\n sm: '0.75rem',\n md: '1rem',\n lg: '1.25rem',\n xl: '2.25rem',\n px: '1px',\n 1: '0.125rem',\n 2: '0.25rem',\n 3: '0.375rem',\n 4: '0.5rem',\n 5: '0.625rem',\n 6: '0.75rem',\n 7: '0.875rem',\n 8: '1rem',\n 9: '1.25rem',\n 10: '1.5rem',\n 11: '1.75rem',\n 12: '2rem',\n 13: '2.25rem',\n 14: '2.5rem',\n 15: '2.75rem',\n 16: '3rem',\n 17: '3.5rem',\n 18: '4rem',\n 19: '4.25rem',\n 20: '5rem',\n 24: '6rem',\n 28: '7rem',\n 32: '8rem',\n 36: '9rem',\n 40: '10rem',\n 44: '11rem',\n 48: '12rem',\n 52: '13rem',\n 56: '14rem',\n 60: '15rem',\n 64: '16rem',\n 72: '18rem',\n 80: '20rem',\n 96: '24rem',\n 100: '27rem',\n },\n borderWidths: {\n light: '1px',\n normal: '2px',\n bold: '3px',\n extrabold: '4px',\n black: '5px',\n },\n },\n};\n\nexport const defaultUtils = {\n bg: (value: Stitches.PropertyValue<'backgroundColor'>) => ({\n backgroundColor: value,\n }),\n c: (value: Stitches.PropertyValue<'color'>) => ({\n color: value,\n }),\n r: (value: Stitches.ScaleValue<'radii'>) => ({\n borderRadius: value,\n }),\n fs: (value: Stitches.PropertyValue<'fontSize'> | number | string) => ({\n fontSize: value,\n }),\n size: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n height: value,\n width: value,\n }),\n w: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n width: value,\n }),\n h: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n height: value,\n }),\n p: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n padding: value,\n }),\n pt: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n paddingTop: value,\n }),\n pr: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n paddingRight: value,\n }),\n pb: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n paddingBottom: value,\n }),\n pl: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n paddingLeft: value,\n }),\n px: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n paddingLeft: value,\n paddingRight: value,\n }),\n py: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n paddingTop: value,\n paddingBottom: value,\n }),\n m: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n margin: value,\n }),\n mt: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n marginTop: value,\n }),\n mr: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n marginRight: value,\n }),\n mb: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n marginBottom: value,\n }),\n ml: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n marginLeft: value,\n }),\n mx: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n marginLeft: value,\n marginRight: value,\n }),\n my: (value: Stitches.ScaleValue<'space'> | number | string) => ({\n marginTop: value,\n marginBottom: value,\n }),\n};\n\nexport const defaultMedia = {\n allowMotion: '(prefers-reduced-motion: no-preference)',\n sm: '(max-width: 640px)',\n md: '(max-width: 768px)',\n lg: '(max-width: 1024px)',\n xl: '(max-width: 1280px)',\n '2xl': '(max-width: 1536px)',\n ls: '(max-width: 1024px) and (orientation: landscape)',\n};\n\nexport const defaultThemeMap = {\n ...defaultStitchesThemeMap,\n width: 'space',\n height: 'space',\n minWidth: 'space',\n maxWidth: 'space',\n minHeight: 'space',\n maxHeight: 'space',\n flexBasis: 'space',\n gridTemplateColumns: 'space',\n gridTemplateRows: 'space',\n blockSize: 'space',\n minBlockSize: 'space',\n maxBlockSize: 'space',\n inlineSize: 'space',\n minInlineSize: 'space',\n maxInlineSize: 'space',\n};\n", "/**\n * Flex based centering helper styles\n */\nexport const flexCenter = {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n};\n\n/**\n * Gives styles for text ellipsis, with given width as maxWidth.\n * A number in pixels or css width string value can be passed\n * @param {number|string} width\n * @returns\n */\nexport const textEllipsis = (width: number | string) => ({\n maxWidth: width,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n minWidth: 0,\n});\n", "import { styled } from '../Theme';\nimport { flexCenter } from '../utils/styles';\n\nexport const IconButton = styled('button', {\n ...flexCenter,\n alignItems: 'center',\n outline: 'none',\n border: 'none',\n padding: '$2',\n r: '$0',\n cursor: 'pointer',\n backgroundColor: 'transparent',\n color: '$on_surface_high',\n '&:not([disabled]):focus-visible': {\n boxShadow: '0 0 0 3px $colors$primary_default',\n },\n '&:not([disabled]):focus': {\n outline: 'none',\n },\n '&:not([disabled]):hover': {\n backgroundColor: '$on_surface_low',\n },\n '&[disabled]': {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n '&:focus': {\n outline: 'none',\n },\n variants: {\n active: {\n false: {\n backgroundColor: '$secondary_dim',\n color: '$on_primary_high',\n '&:not([disabled]):hover': {\n backgroundColor: '$secondary_default',\n },\n },\n true: {\n '&:not([disabled]):hover': {\n backgroundColor: '$on_surface_low',\n },\n },\n },\n },\n});\n", "export { IconButton } from './IconButton';\n", "import { keyframes } from '../Theme';\n\nexport const slideDown = (controller: string) =>\n keyframes({\n from: { height: 0 },\n to: { height: `var(${controller})` },\n });\n\nexport const slideUp = (controller: string) =>\n keyframes({\n from: { height: `var(${controller})` },\n to: { height: 0 },\n });\n\nexport const dialogOpen = keyframes({\n '0%': { opacity: 0, transform: 'translate(-50%, -48%) scale(.90)' },\n '100%': { opacity: 1, transform: 'translate(-50%, -50%) scale(1)' },\n});\n\nexport const dialogClose = keyframes({\n '0%': { opacity: 1, transform: 'translate(-50%, -50%) scale(1)' },\n '100%': { opacity: 0, transform: 'translate(-50%, -48%) scale(.90)' },\n});\n\nexport const slideUpAndFade = (start = '2px') =>\n keyframes({\n '0%': { opacity: 0, transform: `translateY(${start})` },\n '100%': { opacity: 1, transform: 'translateY(0)' },\n });\n\nexport const slideRightAndFade = (start = '-2px') =>\n keyframes({\n '0%': { opacity: 0, transform: `translateX(${start})` },\n '100%': { opacity: 1, transform: 'translateX(0)' },\n });\n\nexport const slideDownAndFade = (start = '-2px') =>\n keyframes({\n '0%': { opacity: 0, transform: `translateY(${start})` },\n '100%': { opacity: 1, transform: 'translateY(0)' },\n });\n\nexport const slideLeftAndFade = (start = '2px') =>\n keyframes({\n '0%': { opacity: 0, transform: `translateX(${start})` },\n '100%': { opacity: 1, transform: 'translateX(0)' },\n });\n\nconst slideLeftAndFadeOut = (end = '-100%') =>\n keyframes({\n '0%': { opacity: 1, transform: `translateX(0)` },\n '100%': { opacity: 0, transform: `translateX(${end})` },\n });\n\nexport const popoverAnimation = {\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '400ms',\n animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',\n willChange: 'transform, opacity',\n '&[data-state=\"open\"]': {\n '&[data-side=\"top\"]': { animationName: slideDownAndFade() },\n '&[data-side=\"right\"]': { animationName: slideLeftAndFade() },\n '&[data-side=\"bottom\"]': { animationName: slideUpAndFade() },\n '&[data-side=\"left\"]': { animationName: slideRightAndFade() },\n },\n },\n};\n\nexport const toastAnimation = {\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '500ms',\n animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',\n willChange: 'transform, opacity',\n animationName: slideLeftAndFadeOut(),\n\n '&[data-state=\"open\"]': {\n animationName: slideRightAndFade('-100%'),\n },\n '&[data-swipe=\"move\"]': {\n transform: 'translateX(var(--radix-toast-swipe-move-x))',\n },\n '&[data-swipe=\"cancel\"]': {\n transform: 'translateX(0)',\n transition: 'transform 200ms ease-out',\n },\n '&[data-swipe=\"end\"]': {\n animation: `${slideLeftAndFadeOut()} 100ms ease-out forwards`,\n },\n },\n};\n", "import React, { PropsWithChildren, useState } from 'react';\nimport * as BaseTooltip from '@radix-ui/react-tooltip';\nimport { CSS, styled } from '../Theme';\nimport { slideDownAndFade, slideLeftAndFade, slideRightAndFade, slideUpAndFade } from '../utils';\n\nconst TooltipBox = styled(BaseTooltip.Content, {\n fontFamily: '$sans',\n borderRadius: '$2',\n padding: '$2 $4',\n fontSize: '$xs',\n\n color: '$on_surface_high',\n backgroundColor: '$surface_bright',\n '@media (prefers-reduced-motion: no-preference)': {\n animationDuration: '400ms',\n animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',\n willChange: 'transform, opacity',\n '&[data-state=\"delayed-open\"]': {\n '&[data-side=\"top\"]': { animationName: slideDownAndFade() },\n '&[data-side=\"right\"]': { animationName: slideLeftAndFade() },\n '&[data-side=\"bottom\"]': { animationName: slideUpAndFade() },\n '&[data-side=\"left\"]': { animationName: slideRightAndFade() },\n },\n },\n variants: {\n outlined: {\n true: {\n backgroundColor: '$background_dim',\n border: 'solid $space$px $border_bright',\n },\n },\n },\n});\n\nconst TooltipTrigger = styled(BaseTooltip.Trigger, {\n fontFamily: '$sans',\n});\n\nconst TooltipRoot = BaseTooltip.Root;\nexport type alignTooltip = 'end' | 'center' | 'start' | undefined;\nexport type sideTooltip = 'bottom' | 'left' | 'right' | 'top' | undefined;\n\nexport const Tooltip: React.FC<\n PropsWithChildren<{\n title: React.ReactNode | string;\n outlined?: boolean;\n side?: sideTooltip;\n align?: alignTooltip;\n disabled?: boolean;\n triggerCss?: CSS;\n boxCss?: CSS;\n delayDuration?: number;\n }>\n> = ({\n children,\n title,\n triggerCss,\n boxCss,\n outlined = true,\n side = 'bottom',\n align = 'center',\n disabled = false,\n delayDuration = 200,\n}) => {\n const [open, setOpen] = useState(false);\n\n return (\n <BaseTooltip.Provider>\n <TooltipRoot delayDuration={delayDuration} open={open && !disabled} onOpenChange={setOpen}>\n <TooltipTrigger css={{ ...triggerCss }} asChild>\n {children}\n </TooltipTrigger>\n <TooltipBox sideOffset={10} side={side} align={align} outlined={outlined} css={{ ...boxCss }}>\n {title}\n </TooltipBox>\n </TooltipRoot>\n </BaseTooltip.Provider>\n );\n};\n", "export { Tooltip } from './Tooltip';\n", "import { parsedUserAgent } from '@100mslive/react-sdk';\n\nexport const defaultAudioList = [\n {\n name: 'Audio1',\n id: 'audio1',\n metadata: {\n description: 'Artist1',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/audio1.mp3',\n type: 'audio',\n },\n {\n name: 'Audio2',\n id: 'audio2',\n metadata: {\n description: 'Artist2',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/audio2.mp3',\n type: 'audio',\n },\n {\n name: 'Audio3',\n id: 'audio3',\n metadata: {\n description: 'Artist3',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/audio3.mp3',\n type: 'audio',\n },\n {\n name: 'Audio4',\n id: 'audio4',\n metadata: {\n description: 'Artist4',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/audio4.mp3',\n type: 'audio',\n },\n {\n name: 'Audio5',\n id: 'audio5',\n metadata: {\n description: 'Artist5',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/audio5.mp3',\n type: 'audio',\n },\n {\n name: 'Audio6',\n id: 'audio6',\n metadata: {\n description: 'Artist6',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/audio6.mp3',\n type: 'audio',\n },\n];\n\nexport const defaultVideoList = [\n {\n name: 'Video1',\n id: 'video1',\n metadata: {\n description: 'Artist1',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/video1.mp4',\n type: 'video',\n },\n {\n name: 'Video2',\n id: 'video2',\n metadata: {\n description: 'Artist2',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/video2.mp4',\n type: 'video',\n },\n {\n name: 'Video3',\n id: 'video3',\n metadata: {\n description: 'Artist2',\n },\n url: 'https://bc-public-static-assets.s3.ap-south-1.amazonaws.com/webapp/playlist/video3.mp4',\n type: 'video',\n },\n];\n\nexport const DEFAULT_HLS_ROLE_KEY = 'HLS_VIEWER_ROLE';\nexport const DEFAULT_HLS_VIEWER_ROLE = 'hls-viewer';\nexport const DEFAULT_WAITING_VIEWER_ROLE = 'waiting-room';\nexport const QUERY_PARAM_SKIP_PREVIEW = 'skip_preview';\nexport const QUERY_PARAM_SKIP_PREVIEW_HEADFUL = 'skip_preview_headful';\nexport const QUERY_PARAM_NAME = 'name';\nexport const QUERY_PARAM_VIEW_MODE = 'ui_mode';\nexport const QUERY_PARAM_AUTH_TOKEN = 'auth_token';\nexport const QUERY_PARAM_PREVIEW_AS_ROLE = 'preview_as_role';\nexport const UI_MODE_ACTIVE_SPEAKER = 'activespeaker';\nexport const UI_MODE_GRID = 'grid';\nexport const MAX_TOASTS = 5;\nexport const RTMP_RECORD_RESOLUTION_MIN = 480;\nexport const RTMP_RECORD_RESOLUTION_MAX = 1280;\nexport const RTMP_RECORD_DEFAULT_RESOLUTION = {\n width: 1280,\n height: 720,\n};\nexport const EMOJI_REACTION_TYPE = 'EMOJI_REACTION';\n\nexport const CHAT_SELECTOR = {\n PEER_ID: 'peer_id',\n ROLE: 'role',\n};\n\nexport const APP_DATA = {\n uiSettings: 'uiSettings',\n chatOpen: 'chatOpen',\n chatSelector: 'chatSelector',\n chatDraft: 'chatDraft',\n appConfig: 'appConfig',\n sidePane: 'sidePane',\n hlsStats: 'hlsStats',\n hlsViewerRole: 'hlsViewerRole',\n waitingViewerRole: 'waitingViewerRole',\n subscribedNotifications: 'subscribedNotifications',\n logo: 'logo',\n tokenEndpoint: 'tokenEndpoint',\n appLayout: 'appLayout',\n hlsStarted: 'hlsStarted',\n rtmpStarted: 'rtmpStarted',\n recordingStarted: 'recordingStarted',\n embedConfig: 'embedConfig',\n pinnedTrackId: 'pinnedTrackId',\n dropdownList: 'dropdownList',\n authToken: 'authToken',\n pdfConfig: 'pdfConfig',\n};\nexport const UI_SETTINGS = {\n isAudioOnly: 'isAudioOnly',\n isHeadless: 'isHeadless',\n maxTileCount: 'maxTileCount',\n uiViewMode: 'uiViewMode',\n showStatsOnTiles: 'showStatsOnTiles',\n enableAmbientMusic: 'enableAmbientMusic',\n mirrorLocalVideo: 'mirrorLocalVideo',\n activeSpeakerSorting: 'activeSpeakerSorting',\n hideLocalVideo: 'hideLocalVideo',\n};\n\nexport const SIDE_PANE_OPTIONS = {\n PARTICIPANTS: 'Participants',\n CHAT: 'Chat',\n STREAMING: 'STREAMING',\n TILES: 'TILES',\n SCREEN_TILES: 'SCREEN_TILES',\n};\n\nexport const SUBSCRIBED_NOTIFICATIONS = {\n PEER_JOINED: 'PEER_JOINED',\n PEER_LEFT: 'PEER_LEFT',\n METADATA_UPDATED: 'METADATA_UPDATED',\n NEW_MESSAGE: 'NEW_MESSAGE',\n ERROR: 'ERROR',\n};\n\nexport const CREATE_ROOM_DOC_URL = 'https://github.com/100mslive/100ms-web/wiki/Creating-and-joining-a-room';\nexport const HLS_TIMED_METADATA_DOC_URL =\n 'https://www.100ms.live/docs/javascript/v2/how--to-guides/record-and-live-stream/hls/hls-timed-metadata';\n\nexport const REMOTE_STOP_SCREENSHARE_TYPE = 'REMOTE_STOP_SCREENSHARE';\n\nexport const isChrome = parsedUserAgent.getBrowser()?.name?.toLowerCase() === 'chrome';\nexport const isFirefox = parsedUserAgent.getBrowser()?.name?.toLowerCase() === 'firefox';\nexport const isSafari = parsedUserAgent.getBrowser()?.name?.toLowerCase() === 'safari';\nexport const isIOS = parsedUserAgent.getOS()?.name?.toLowerCase() === 'ios';\nexport const isMacOS = parsedUserAgent.getOS()?.name?.toLowerCase() === 'mac os';\nexport const isAndroid = parsedUserAgent.getOS()?.name?.toLowerCase() === 'android';\nexport const isIPadOS = false;\n// typeof navigator !== \"undefined\" &&\n// navigator?.maxTouchPoints &&\n// navigator?.maxTouchPoints > 2 &&\n// navigator?.userAgent?.match(/Mac/);\n\nexport const FEATURE_LIST = {\n AUDIO_ONLY_SCREENSHARE: 'audioscreenshare',\n AUDIO_PLAYLIST: 'audioplaylist',\n VIDEO_PLAYLIST: 'videoplaylist',\n EMOJI_REACTION: 'emojireaction',\n AUDIO_PLUGINS: 'audioplugins',\n VIDEO_PLUGINS: 'videoplugins',\n WHITEBOARD: 'whiteboard',\n CHANGE_NAME: 'changename',\n FULLSCREEN: 'fullscreen',\n PICTURE_IN_PICTURE: 'pip',\n STARTS_FOR_NERDS: 'statsfornerds',\n EMBED_URL: 'embedurl',\n BRB: 'brb',\n HAND_RAISE: 'handraise',\n CHAT: 'chat',\n PIN_TILE: 'pintile',\n};\n\nexport const SESSION_STORE_KEY = {\n TRANSCRIPTION_STATE: 'transcriptionState',\n PINNED_MESSAGE: 'pinnedMessage',\n SPOTLIGHT: 'spotlight',\n};\n", "import { IconButton as BaseIconButton } from '../IconButton';\nimport { styled } from '../Theme';\n\nconst IconButton = styled(BaseIconButton, {\n width: '$14',\n height: '$14',\n border: '1px solid $border_bright',\n r: '$1',\n variants: {\n active: {\n false: {\n border: '1px solid transparent',\n color: '$on_primary_high',\n },\n },\n },\n});\n\nexport default IconButton;\n"],
5
- "mappings": "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",
6
- "names": ["theme", "_a", "_b", "IconButton"]
7
- }