@100mslive/roomkit-react 0.3.23 → 0.3.24-alpha.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (194) hide show
  1. package/dist/Accordion/Accordion.d.ts +134 -322
  2. package/dist/Accordion/index.d.ts +134 -322
  3. package/dist/Avatar/Avatar.d.ts +47 -141
  4. package/dist/Button/Button.d.ts +47 -141
  5. package/dist/Checkbox/Checkbox.d.ts +134 -322
  6. package/dist/Collapsible/Collapsible.d.ts +201 -483
  7. package/dist/ConferenceScreen-CLPW3BGP.css +2780 -0
  8. package/dist/{HLSView-S4NJF7Q2.css.map → ConferenceScreen-CLPW3BGP.css.map} +1 -1
  9. package/dist/ConferenceScreen-M6RBPTAJ.js +1774 -0
  10. package/dist/ConferenceScreen-M6RBPTAJ.js.map +7 -0
  11. package/dist/Divider/Divider.d.ts +134 -322
  12. package/dist/Dropdown/Dropdown.d.ts +804 -1932
  13. package/dist/EmbedView-DDSO7ZCV.js +17 -0
  14. package/dist/EmbedView-DDSO7ZCV.js.map +7 -0
  15. package/dist/EmbedView-HGIUZHKA.css +2780 -0
  16. package/dist/EmbedView-HGIUZHKA.css.map +7 -0
  17. package/dist/EmojiReaction-23JDKJD4.js +11 -0
  18. package/dist/EmojiReaction-23JDKJD4.js.map +7 -0
  19. package/dist/Fieldset/Fieldset.d.ts +47 -141
  20. package/dist/Footer/Footer.d.ts +536 -1288
  21. package/dist/{HLSView-S4NJF7Q2.css → HLSView-OW77EAAO.css} +3 -3
  22. package/dist/HLSView-OW77EAAO.css.map +7 -0
  23. package/dist/{HLSView-HYI6LLL6.js → HLSView-Q6GEB3UM.js} +38 -24
  24. package/dist/HLSView-Q6GEB3UM.js.map +7 -0
  25. package/dist/IconButton/IconButton.d.ts +47 -141
  26. package/dist/Input/Input.d.ts +362 -926
  27. package/dist/Label/Label.d.ts +47 -141
  28. package/dist/Layout/Box.d.ts +47 -141
  29. package/dist/Layout/Flex.d.ts +47 -141
  30. package/dist/LeaveScreen-BYTE73MT.js +556 -0
  31. package/dist/LeaveScreen-BYTE73MT.js.map +7 -0
  32. package/dist/LeaveScreen-P7AATEIF.css +2780 -0
  33. package/dist/LeaveScreen-P7AATEIF.css.map +7 -0
  34. package/dist/Link/Link.d.ts +47 -141
  35. package/dist/Modal/Dialog.d.ts +329 -987
  36. package/dist/Modal/DialogContent.d.ts +469 -1127
  37. package/dist/MoreSettings-LV5X2U6K.css +2780 -0
  38. package/dist/MoreSettings-LV5X2U6K.css.map +7 -0
  39. package/dist/MoreSettings-WSHMMNOC.js +16 -0
  40. package/dist/MoreSettings-WSHMMNOC.js.map +7 -0
  41. package/dist/PDFView-RIPRIIH6.css +2780 -0
  42. package/dist/PDFView-RIPRIIH6.css.map +7 -0
  43. package/dist/PDFView-ZFSG2ESE.js +84 -0
  44. package/dist/PDFView-ZFSG2ESE.js.map +7 -0
  45. package/dist/Pagination/StyledPagination.d.ts +268 -644
  46. package/dist/Polls-QWW5LTTB.js +1584 -0
  47. package/dist/Polls-QWW5LTTB.js.map +7 -0
  48. package/dist/Polls-ULYGUPPF.css +2780 -0
  49. package/dist/Polls-ULYGUPPF.css.map +7 -0
  50. package/dist/Popover/index.d.ts +201 -483
  51. package/dist/Prebuilt/IconButton.d.ts +134 -322
  52. package/dist/Prebuilt/components/Chat/ChatBody.d.ts +134 -322
  53. package/dist/Prebuilt/components/Leave/LeaveAtoms.d.ts +335 -805
  54. package/dist/Prebuilt/components/Notifications/DeviceChangeNotifications.d.ts +1 -0
  55. package/dist/Prebuilt/components/Notifications/ErrorNotifications.d.ts +1 -0
  56. package/dist/Prebuilt/components/Notifications/MessageNotifications.d.ts +1 -0
  57. package/dist/Prebuilt/components/Notifications/PollNotificationModal.d.ts +1 -0
  58. package/dist/Prebuilt/components/Notifications/RoleChangeNotification.d.ts +1 -0
  59. package/dist/Prebuilt/components/Settings/common.d.ts +134 -322
  60. package/dist/Progress/index.d.ts +134 -322
  61. package/dist/RadioGroup/RadioGroup.d.ts +201 -483
  62. package/dist/RaiseHand-K7NFLH7H.js +10 -0
  63. package/dist/RaiseHand-K7NFLH7H.js.map +7 -0
  64. package/dist/ReactSelect/ReactSelect.d.ts +670 -1610
  65. package/dist/RoleProminence-235AFT7F.js +116 -0
  66. package/dist/RoleProminence-235AFT7F.js.map +7 -0
  67. package/dist/RoleProminence-6XN3POS5.css +2780 -0
  68. package/dist/RoleProminence-6XN3POS5.css.map +7 -0
  69. package/dist/RoomDetailsPane-O5TFMTPI.css +2780 -0
  70. package/dist/RoomDetailsPane-O5TFMTPI.css.map +7 -0
  71. package/dist/RoomDetailsPane-RF3D3TDR.js +53 -0
  72. package/dist/RoomDetailsPane-RF3D3TDR.js.map +7 -0
  73. package/dist/ScreenshareLayout-KNEB3AJJ.css +2780 -0
  74. package/dist/ScreenshareLayout-KNEB3AJJ.css.map +7 -0
  75. package/dist/ScreenshareLayout-PSQMS3NC.js +358 -0
  76. package/dist/ScreenshareLayout-PSQMS3NC.js.map +7 -0
  77. package/dist/Select/Select.d.ts +201 -483
  78. package/dist/Sheet/Sheet.d.ts +329 -987
  79. package/dist/SidePaneTabs-I6DECE5R.css +2780 -0
  80. package/dist/SidePaneTabs-I6DECE5R.css.map +7 -0
  81. package/dist/SidePaneTabs-NXHBI2JB.js +1354 -0
  82. package/dist/SidePaneTabs-NXHBI2JB.js.map +7 -0
  83. package/dist/Slider/Slider.d.ts +47 -141
  84. package/dist/Stats/StyledStats.d.ts +402 -966
  85. package/dist/Switch/Switch.d.ts +47 -141
  86. package/dist/Tabs/Tabs.d.ts +268 -644
  87. package/dist/Text/Text.d.ts +47 -141
  88. package/dist/TextArea/TextArea.d.ts +47 -141
  89. package/dist/Theme/base.config.d.ts +26 -78
  90. package/dist/Theme/stitches.config.d.ts +1046 -1493
  91. package/dist/TileMenu/StyledMenuTile.d.ts +469 -1127
  92. package/dist/Toast/Toast.d.ts +382 -946
  93. package/dist/VBPicker-2CQ3IIO7.js +322 -0
  94. package/dist/VBPicker-2CQ3IIO7.js.map +7 -0
  95. package/dist/VBPicker-DCNYGO23.css +2780 -0
  96. package/dist/VBPicker-DCNYGO23.css.map +7 -0
  97. package/dist/Video/Video.d.ts +47 -141
  98. package/dist/VideoList/StyledVideoList.d.ts +201 -483
  99. package/dist/VideoTile/StyledVideoTile.d.ts +670 -1610
  100. package/dist/WaitingView-NZIUOXBI.js +10 -0
  101. package/dist/WaitingView-NZIUOXBI.js.map +7 -0
  102. package/dist/WhiteboardLayout-4YLFM3EY.js +96 -0
  103. package/dist/WhiteboardLayout-4YLFM3EY.js.map +7 -0
  104. package/dist/WhiteboardLayout-JUOBDFKY.css +2780 -0
  105. package/dist/WhiteboardLayout-JUOBDFKY.css.map +7 -0
  106. package/dist/android-perm-1.png +0 -0
  107. package/dist/audio-level.png +0 -0
  108. package/dist/chunk-3C7IESSI.js +254 -0
  109. package/dist/chunk-3C7IESSI.js.map +7 -0
  110. package/dist/chunk-7FD3VT6Q.js +114 -0
  111. package/dist/chunk-7FD3VT6Q.js.map +7 -0
  112. package/dist/chunk-AHI4HCY3.js +62 -0
  113. package/dist/chunk-AHI4HCY3.js.map +7 -0
  114. package/dist/chunk-BGSYLCVD.js +6337 -0
  115. package/dist/chunk-BGSYLCVD.js.map +7 -0
  116. package/dist/chunk-DANANDDE.js +418 -0
  117. package/dist/chunk-DANANDDE.js.map +7 -0
  118. package/dist/chunk-ETRNLEWQ.js +2658 -0
  119. package/dist/chunk-ETRNLEWQ.js.map +7 -0
  120. package/dist/chunk-EWPHJFZJ.js +487 -0
  121. package/dist/chunk-EWPHJFZJ.js.map +7 -0
  122. package/dist/chunk-F63YJBI4.js +98 -0
  123. package/dist/chunk-F63YJBI4.js.map +7 -0
  124. package/dist/chunk-GLAJUP3O.js +576 -0
  125. package/dist/chunk-GLAJUP3O.js.map +7 -0
  126. package/dist/chunk-GOXRTCTY.js +90 -0
  127. package/dist/chunk-GOXRTCTY.js.map +7 -0
  128. package/dist/chunk-HMCBZI3A.js +59 -0
  129. package/dist/chunk-HMCBZI3A.js.map +7 -0
  130. package/dist/chunk-HVYTC3PX.js +171 -0
  131. package/dist/chunk-HVYTC3PX.js.map +7 -0
  132. package/dist/chunk-LJVP6AWF.js +262 -0
  133. package/dist/chunk-LJVP6AWF.js.map +7 -0
  134. package/dist/chunk-LXJGCRKM.js +30 -0
  135. package/dist/chunk-LXJGCRKM.js.map +7 -0
  136. package/dist/chunk-MG3UGW66.js +16800 -0
  137. package/dist/chunk-MG3UGW66.js.map +7 -0
  138. package/dist/chunk-MUKUP7JU.js +161 -0
  139. package/dist/chunk-MUKUP7JU.js.map +7 -0
  140. package/dist/chunk-OV6MVDCL.js +41 -0
  141. package/dist/chunk-OV6MVDCL.js.map +7 -0
  142. package/dist/chunk-P6NV2XO4.js +178 -0
  143. package/dist/chunk-P6NV2XO4.js.map +7 -0
  144. package/dist/chunk-REL3HBSD.js +71 -0
  145. package/dist/chunk-REL3HBSD.js.map +7 -0
  146. package/dist/chunk-U4SQBXPZ.js +830 -0
  147. package/dist/chunk-U4SQBXPZ.js.map +7 -0
  148. package/dist/chunk-YEL5ZTFU.js +136 -0
  149. package/dist/chunk-YEL5ZTFU.js.map +7 -0
  150. package/dist/empty-chat.svg +12 -0
  151. package/dist/index.cjs.css +2 -2
  152. package/dist/index.cjs.css.map +1 -1
  153. package/dist/index.cjs.js +21713 -21508
  154. package/dist/index.cjs.js.map +4 -4
  155. package/dist/index.css +2 -2
  156. package/dist/index.css.map +1 -1
  157. package/dist/index.js +25 -15
  158. package/dist/ios-perm-0.png +0 -0
  159. package/dist/meta.cjs.json +5515 -5153
  160. package/dist/meta.esbuild.json +8998 -6138
  161. package/dist/pdf-share.png +0 -0
  162. package/dist/screen-share.png +0 -0
  163. package/dist/transaction_error.svg +12 -0
  164. package/package.json +8 -8
  165. package/src/Avatar/Avatar.tsx +1 -1
  166. package/src/Popover/Popover.stories.tsx +1 -1
  167. package/src/Prebuilt/App.tsx +6 -2
  168. package/src/Prebuilt/components/Chat/Chat.tsx +12 -8
  169. package/src/Prebuilt/components/Chat/ChatFooter.tsx +1 -1
  170. package/src/Prebuilt/components/MoreSettings/SplitComponents/MwebOptions.tsx +14 -1
  171. package/src/Prebuilt/components/Notifications/DeviceChangeNotifications.tsx +18 -0
  172. package/src/Prebuilt/components/Notifications/ErrorNotifications.tsx +56 -0
  173. package/src/Prebuilt/components/Notifications/MessageNotifications.tsx +24 -0
  174. package/src/Prebuilt/components/Notifications/Notifications.tsx +13 -171
  175. package/src/Prebuilt/components/Notifications/PeerNotifications.tsx +9 -2
  176. package/src/Prebuilt/components/Notifications/PollNotificationModal.tsx +71 -0
  177. package/src/Prebuilt/components/Notifications/ReconnectNotifications.tsx +1 -5
  178. package/src/Prebuilt/components/Notifications/RoleChangeNotification.tsx +24 -0
  179. package/src/Prebuilt/components/Notifications/TrackBulkUnmuteModal.tsx +7 -5
  180. package/src/Prebuilt/components/Notifications/TrackNotifications.tsx +23 -1
  181. package/src/Prebuilt/components/Notifications/TrackUnmuteModal.tsx +13 -5
  182. package/src/Prebuilt/components/StatsForNerds.jsx +122 -9
  183. package/src/Prebuilt/components/VideoLayouts/GridLayout.tsx +43 -31
  184. package/src/Prebuilt/components/VideoLayouts/ProminenceLayout.tsx +2 -2
  185. package/src/Prebuilt/components/VirtualBackground/VBOption.tsx +3 -1
  186. package/src/Prebuilt/components/VirtualBackground/VBPicker.tsx +6 -0
  187. package/src/Prebuilt/layouts/HLSView.jsx +1 -0
  188. package/src/Prebuilt/layouts/PDFView.jsx +1 -0
  189. package/src/Prebuilt/layouts/SidePane.tsx +12 -6
  190. package/src/Prebuilt/layouts/VideoStreamingSection.tsx +35 -34
  191. package/src/Prebuilt/layouts/WaitingView.tsx +2 -2
  192. package/dist/HLSView-HYI6LLL6.js.map +0 -7
  193. package/dist/chunk-LRJSQMZ4.js +0 -34759
  194. package/dist/chunk-LRJSQMZ4.js.map +0 -7
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/Prebuilt/components/Footer/ParticipantList.tsx", "../src/Prebuilt/components/RemoveParticipant.tsx", "../src/Prebuilt/components/Footer/RoleAccordion.tsx", "../src/Prebuilt/components/Footer/RoleOptions.tsx", "../src/Prebuilt/components/hooks/useGroupOnStageActions.tsx", "../src/Prebuilt/components/hooks/usePeerOnStageActions.tsx"],
4
+ "sourcesContent": ["import React, { Fragment, useCallback, useState } from 'react';\nimport { useDebounce, useMedia } from 'react-use';\nimport {\n HMSPeer,\n HMSPeerType,\n HMSRoleName,\n selectAvailableRoleNames,\n selectHandRaisedPeers,\n selectHasPeerHandRaised,\n selectIsLargeRoom,\n selectIsPeerAudioEnabled,\n selectLocalPeerID,\n selectPeerCount,\n selectPermissions,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport {\n AddIcon,\n CallIcon,\n ChangeRoleIcon,\n CrossIcon,\n HandIcon,\n MicOffIcon,\n PeopleIcon,\n PersonSettingsIcon,\n SearchIcon,\n VerticalMenuIcon,\n} from '@100mslive/react-icons';\nimport { Accordion, Box, Button, config as cssConfig, Dropdown, Flex, Input, Text, textEllipsis } from '../../..';\n// @ts-ignore: No implicit Any\nimport IconButton from '../../IconButton';\nimport { ConnectionIndicator } from '../Connection/ConnectionIndicator';\nimport { RemoveParticipant } from '../RemoveParticipant';\nimport { RoleChangeModal } from '../RoleChangeModal';\nimport { RoleAccordion } from './RoleAccordion';\nimport { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n// @ts-ignore: No implicit Any\nimport { useIsSidepaneTypeOpen, useSidepaneToggle } from '../AppData/useSidepane';\nimport { useSidepaneResetOnLayoutUpdate } from '../AppData/useSidepaneResetOnLayoutUpdate';\nimport { usePeerOnStageActions } from '../hooks/usePeerOnStageActions';\nimport { useParticipants } from '../../common/hooks';\n// @ts-ignore: No implicit Any\nimport { getFormattedCount } from '../../common/utils';\nimport { SIDE_PANE_OPTIONS } from '../../common/constants';\n\nexport const ParticipantList = ({\n offStageRoles = [],\n onActive,\n}: {\n offStageRoles: HMSRoleName[];\n onActive: (role: string) => void;\n}) => {\n const [filter, setFilter] = useState<{ search?: string } | undefined>();\n const { participants, isConnected, peerCount } = useParticipants(filter);\n const isLargeRoom = useHMSStore(selectIsLargeRoom);\n const peersOrderedByRoles: Record<string, HMSPeer[]> = {};\n\n const handRaisedPeers = useHMSStore(selectHandRaisedPeers);\n\n participants.forEach(participant => {\n if (participant.roleName) {\n if (peersOrderedByRoles[participant.roleName] === undefined) {\n peersOrderedByRoles[participant.roleName] = [];\n }\n peersOrderedByRoles[participant.roleName].push(participant);\n }\n });\n\n // prefill off_stage roles of large rooms to load more peers\n if (isLargeRoom) {\n offStageRoles.forEach(role => {\n if (!peersOrderedByRoles[role]) {\n peersOrderedByRoles[role] = [];\n }\n });\n }\n\n useSidepaneResetOnLayoutUpdate('participant_list', SIDE_PANE_OPTIONS.PARTICIPANTS);\n\n const onSearch = useCallback((value: string) => {\n setFilter(filterValue => {\n if (!filterValue) {\n filterValue = {};\n }\n filterValue.search = value.toLowerCase();\n return { ...filterValue };\n });\n }, []);\n\n if (peerCount === 0) {\n return null;\n }\n\n return (\n <Fragment>\n <Flex\n direction=\"column\"\n css={{\n size: '100%',\n gap: '$4',\n }}\n >\n {!filter?.search && participants.length === 0 ? null : <ParticipantSearch onSearch={onSearch} inSidePane />}\n <VirtualizedParticipants\n peersOrderedByRoles={peersOrderedByRoles}\n handRaisedList={handRaisedPeers}\n isConnected={!!isConnected}\n filter={filter}\n offStageRoles={offStageRoles}\n isLargeRoom={isLargeRoom}\n onActive={onActive}\n >\n {participants.length === 0 ? (\n <Flex\n align=\"center\"\n justify=\"center\"\n className=\"emptyParticipants\"\n css={{ w: '100%', p: '$8 0', display: 'none' }}\n >\n <Text variant=\"sm\">{!filter ? 'No participants' : 'No matching participants'}</Text>\n </Flex>\n ) : null}\n </VirtualizedParticipants>\n </Flex>\n </Fragment>\n );\n};\n\nexport const ParticipantCount = () => {\n const peerCount = useHMSStore(selectPeerCount);\n const toggleSidepane = useSidepaneToggle(SIDE_PANE_OPTIONS.PARTICIPANTS);\n const isPeerListOpen = useIsSidepaneTypeOpen(SIDE_PANE_OPTIONS.PARTICIPANTS);\n\n if (peerCount === 0) {\n return null;\n }\n return (\n <IconButton\n css={{\n w: 'auto',\n p: '$4',\n h: 'auto',\n bg: isPeerListOpen ? '$surface_brighter' : '',\n }}\n onClick={() => {\n if (peerCount > 0) {\n toggleSidepane();\n }\n }}\n data-testid=\"participant_list\"\n >\n <PeopleIcon />\n <Text variant=\"sm\" css={{ mx: '$4', c: 'inherit' }}>\n {getFormattedCount(peerCount)}\n </Text>\n </IconButton>\n );\n};\n\nexport const Participant = ({\n peer,\n isConnected,\n isHandRaisedAccordion,\n style,\n}: {\n peer: HMSPeer;\n isConnected: boolean;\n isHandRaisedAccordion?: boolean;\n style: React.CSSProperties;\n}) => {\n const localPeerId = useHMSStore(selectLocalPeerID);\n return (\n <Flex\n key={peer.id}\n css={{\n w: '100%',\n p: '$4 $8',\n pr: '$6',\n h: '$16',\n '&:hover .participant_item': { display: 'flex' },\n }}\n align=\"center\"\n justify=\"between\"\n data-testid={'participant_' + peer.name}\n style={style}\n >\n <Text\n variant=\"sm\"\n css={{ ...textEllipsis('100%'), flex: '1 1 0', mr: '$8', fontWeight: '$semiBold', color: '$on_surface_high' }}\n >\n {peer.name} {localPeerId === peer.id ? '(You)' : ''}\n </Text>\n {isConnected && peer.roleName ? (\n <ParticipantActions\n peerId={peer.id}\n peerType={peer.type}\n role={peer.roleName}\n isHandRaisedAccordion={isHandRaisedAccordion}\n />\n ) : null}\n </Flex>\n );\n};\n\nconst VirtualizedParticipants = ({\n peersOrderedByRoles = {},\n isConnected,\n filter,\n handRaisedList = [],\n offStageRoles,\n isLargeRoom,\n onActive,\n children,\n}: {\n peersOrderedByRoles: Record<string, HMSPeer[]>;\n isConnected: boolean;\n filter: undefined | { search?: string };\n handRaisedList: HMSPeer[];\n offStageRoles: HMSRoleName[];\n isLargeRoom: boolean;\n onActive: (role: string) => void;\n children: React.ReactNode;\n}) => {\n return (\n <Flex\n direction=\"column\"\n css={{\n gap: '$8',\n overflowY: 'auto',\n overflowX: 'hidden',\n pr: '$10',\n mr: '-$10',\n flex: '1 1 0',\n '& > div:empty ~ .emptyParticipants': {\n display: 'flex',\n },\n }}\n >\n <Accordion.Root type={isLargeRoom ? 'single' : 'multiple'} collapsible>\n {handRaisedList.length > 0 ? (\n <RoleAccordion\n peerList={handRaisedList}\n roleName=\"Hand Raised\"\n filter={filter}\n isConnected={isConnected}\n isHandRaisedAccordion\n offStageRoles={offStageRoles}\n />\n ) : null}\n {Object.keys(peersOrderedByRoles).map(role => (\n <RoleAccordion\n key={role}\n peerList={peersOrderedByRoles[role]}\n roleName={role}\n isConnected={isConnected}\n filter={filter}\n offStageRoles={offStageRoles}\n onActive={onActive}\n />\n ))}\n </Accordion.Root>\n {children}\n </Flex>\n );\n};\n\n/**\n * shows settings to change for a participant like changing their role\n */\nconst ParticipantActions = React.memo(\n ({\n peerId,\n peerType,\n role,\n isHandRaisedAccordion,\n }: {\n peerId: string;\n role: string;\n isHandRaisedAccordion?: boolean;\n peerType: HMSPeerType;\n }) => {\n const isHandRaised = useHMSStore(selectHasPeerHandRaised(peerId));\n const canChangeRole = useHMSStore(selectPermissions)?.changeRole;\n const canRemoveOthers = useHMSStore(selectPermissions)?.removeOthers;\n const { elements } = useRoomLayoutConferencingScreen();\n const { on_stage_exp } = elements || {};\n const shouldShowMoreActions = (on_stage_exp && canChangeRole) || canRemoveOthers;\n const isAudioMuted = !useHMSStore(selectIsPeerAudioEnabled(peerId));\n\n return (\n <Flex\n align=\"center\"\n css={{\n flexShrink: 0,\n gap: '$8',\n }}\n >\n {isHandRaisedAccordion ? (\n <HandRaisedAccordionParticipantActions peerId={peerId} role={role} />\n ) : (\n <>\n <ConnectionIndicator peerId={peerId} />\n {peerType === HMSPeerType.SIP && (\n <Flex\n align=\"center\"\n justify=\"center\"\n css={{ p: '$1', c: '$on_surface_high', bg: '$surface_bright', borderRadius: '$round' }}\n >\n <CallIcon width={19} height={19} />\n </Flex>\n )}\n {isHandRaised && (\n <Flex\n align=\"center\"\n justify=\"center\"\n css={{ p: '$1', c: '$on_surface_high', bg: '$surface_bright', borderRadius: '$round' }}\n >\n <HandIcon height={19} width={19} />\n </Flex>\n )}\n {isAudioMuted ? (\n <Flex\n align=\"center\"\n justify=\"center\"\n css={{ p: '$2', c: '$on_surface_high', bg: '$surface_bright', borderRadius: '$round' }}\n >\n <MicOffIcon height={19} width={19} />\n </Flex>\n ) : null}\n\n {shouldShowMoreActions ? <ParticipantMoreActions peerId={peerId} role={role} /> : null}\n </>\n )}\n </Flex>\n );\n },\n);\n\nconst quickActionStyle = { p: '$1', borderRadius: '$round' };\nconst HandRaisedAccordionParticipantActions = ({ peerId, role }: { peerId: string; role: string }) => {\n const { handleStageAction, lowerPeerHand, shouldShowStageRoleChange, isInStage } = usePeerOnStageActions({\n peerId,\n role,\n });\n if (!shouldShowStageRoleChange) {\n return null;\n }\n return (\n <>\n <Button variant=\"standard\" css={quickActionStyle} onClick={lowerPeerHand}>\n <CrossIcon height={18} width={18} />\n </Button>\n {!isInStage && (\n <Button variant=\"primary\" onClick={handleStageAction} css={quickActionStyle}>\n <AddIcon height={18} width={18} />\n </Button>\n )}\n </>\n );\n};\n\nconst ParticipantMoreActions = ({ peerId, role }: { peerId: string; role: string }) => {\n const {\n open,\n setOpen,\n bring_to_stage_label,\n remove_from_stage_label,\n handleStageAction,\n isInStage,\n shouldShowStageRoleChange,\n } = usePeerOnStageActions({ peerId, role });\n const canChangeRole = !!useHMSStore(selectPermissions)?.changeRole;\n const [openRoleChangeModal, setOpenRoleChangeModal] = useState(false);\n const roles = useHMSStore(selectAvailableRoleNames);\n\n return (\n <>\n <Dropdown.Root open={open} onOpenChange={value => setOpen(value)} modal={false}>\n <Dropdown.Trigger\n asChild\n data-testid=\"participant_more_actions\"\n className=\"participant_item\"\n css={{\n p: '$1',\n r: '$0',\n c: '$on_surface_high',\n display: open ? 'flex' : 'none',\n '&:hover': {\n bg: '$surface_bright',\n },\n '@md': {\n display: 'flex',\n },\n }}\n tabIndex={0}\n >\n <Box css={{ my: 'auto' }}>\n <VerticalMenuIcon />\n </Box>\n </Dropdown.Trigger>\n <Dropdown.Portal>\n <Dropdown.Content align=\"end\" sideOffset={8} css={{ w: '$64', bg: '$surface_default' }}>\n {shouldShowStageRoleChange ? (\n <Dropdown.Item css={{ bg: '$surface_default' }} onClick={() => handleStageAction()}>\n <ChangeRoleIcon />\n <Text variant=\"sm\" css={{ ml: '$4', fontWeight: '$semiBold', c: '$on_surface_high' }}>\n {isInStage ? remove_from_stage_label : bring_to_stage_label}\n </Text>\n </Dropdown.Item>\n ) : null}\n\n {canChangeRole && roles.length > 1 ? (\n <Dropdown.Item css={{ bg: '$surface_default' }} onClick={() => setOpenRoleChangeModal(true)}>\n <PersonSettingsIcon />\n <Text variant=\"sm\" css={{ ml: '$4', fontWeight: '$semiBold', c: '$on_surface_high' }}>\n Switch Role\n </Text>\n </Dropdown.Item>\n ) : null}\n <RemoveParticipant peerId={peerId} />\n </Dropdown.Content>\n </Dropdown.Portal>\n </Dropdown.Root>\n {openRoleChangeModal && <RoleChangeModal peerId={peerId} onOpenChange={setOpenRoleChangeModal} />}\n </>\n );\n};\n\nexport const ParticipantSearch = ({\n onSearch,\n placeholder = 'Search for participants',\n inSidePane = false,\n}: {\n inSidePane?: boolean;\n placeholder?: string;\n onSearch: (val: string) => void;\n}) => {\n const [value, setValue] = React.useState('');\n const isMobile = useMedia(cssConfig.media.md);\n\n useDebounce(\n () => {\n onSearch(value);\n },\n 300,\n [value, onSearch],\n );\n\n return (\n <Flex\n align=\"center\"\n css={{\n p: isMobile ? '0' : '$2 0',\n mb: '$2',\n position: 'relative',\n color: '$on_surface_medium',\n mt: inSidePane ? '$4' : '',\n }}\n onClick={e => e.stopPropagation()}\n >\n <SearchIcon style={{ position: 'absolute', left: '0.5rem' }} />\n <Input\n type=\"text\"\n placeholder={placeholder}\n css={{ w: '100%', p: '$6', pl: '$14', bg: inSidePane ? '$surface_default' : '$surface_dim' }}\n value={value}\n onKeyDown={event => {\n event.stopPropagation();\n }}\n onChange={event => {\n setValue(event.currentTarget.value);\n }}\n autoComplete=\"off\"\n aria-autocomplete=\"none\"\n />\n </Flex>\n );\n};\n", "import React from 'react';\nimport { HMSPeerID, selectLocalPeerID, selectPermissions, useHMSActions, useHMSStore } from '@100mslive/react-sdk';\nimport { PeopleRemoveIcon } from '@100mslive/react-icons';\n// @ts-ignore: No implicit Any\nimport { ToastManager } from './Toast/ToastManager';\nimport { Dropdown } from '../../Dropdown';\nimport { Text } from '../../Text';\n\nexport const RemoveParticipant = ({ peerId }: { peerId: HMSPeerID }) => {\n const canRemoveOthers = useHMSStore(selectPermissions)?.removeOthers;\n const localPeerId = useHMSStore(selectLocalPeerID);\n const actions = useHMSActions();\n\n if (peerId === localPeerId || !canRemoveOthers) {\n return null;\n }\n return (\n <Dropdown.Item\n css={{ color: '$alert_error_default', bg: '$surface_default' }}\n onClick={async () => {\n try {\n await actions.removePeer(peerId, '');\n } catch (error) {\n const ex = error as Error;\n ToastManager.addToast({ title: ex.message, variant: 'error' });\n }\n }}\n >\n <PeopleRemoveIcon />\n <Text variant=\"sm\" css={{ ml: '$4', color: 'inherit', fontWeight: '$semiBold' }}>\n Remove Participant\n </Text>\n </Dropdown.Item>\n );\n};\n", "import React, { useEffect } from 'react';\nimport { useMeasure } from 'react-use';\nimport { FixedSizeList } from 'react-window';\nimport { HMSPeer, selectIsLargeRoom, useHMSStore, usePaginatedParticipants } from '@100mslive/react-sdk';\nimport { AddIcon, ChevronRightIcon, CrossIcon } from '@100mslive/react-icons';\nimport { Accordion } from '../../../Accordion';\nimport { Button } from '../../../Button';\nimport { HorizontalDivider } from '../../../Divider';\nimport { Flex } from '../../../Layout';\nimport { Text } from '../../../Text';\nimport { Participant } from './ParticipantList';\nimport { RoleOptions } from './RoleOptions';\nimport { useGroupOnStageActions } from '../hooks/useGroupOnStageActions';\n// @ts-ignore: No implicit Any\nimport { getFormattedCount } from '../../common/utils';\n\nexport const ROW_HEIGHT = 50;\nconst ITER_TIMER = 5000;\n\nexport interface ItemData {\n peerList: HMSPeer[];\n isHandRaisedAccordion?: boolean;\n isConnected: boolean;\n}\n\nexport function itemKey(index: number, data: ItemData) {\n return data.peerList[index]?.id;\n}\n\nexport const VirtualizedParticipantItem = React.memo(\n ({ index, data, style }: { index: number; data: ItemData; style: React.CSSProperties }) => {\n return (\n <Participant\n key={data.peerList[index].id}\n peer={data.peerList[index]}\n isHandRaisedAccordion={data.isHandRaisedAccordion}\n isConnected={data.isConnected}\n style={style}\n />\n );\n },\n);\n\nexport const RoleAccordion = ({\n peerList = [],\n roleName,\n isConnected,\n filter,\n isHandRaisedAccordion = false,\n offStageRoles,\n onActive,\n}: ItemData & {\n roleName: string;\n isHandRaisedAccordion?: boolean;\n filter?: { search?: string };\n offStageRoles: string[];\n onActive?: (role: string) => void;\n}) => {\n const [ref, { width }] = useMeasure<HTMLDivElement>();\n const isLargeRoom = useHMSStore(selectIsLargeRoom);\n const { peers, total, loadPeers } = usePaginatedParticipants({ role: roleName, limit: 10 });\n const isOffStageRole = roleName && offStageRoles.includes(roleName);\n let peersInAccordion = peerList;\n // for large rooms, peer list would be empty\n if (isOffStageRole && isLargeRoom) {\n peersInAccordion = peers;\n if (filter?.search) {\n peersInAccordion = peersInAccordion.filter(peer => peer.name.toLowerCase().includes(filter.search || ''));\n }\n }\n const { bringAllToStage, bring_to_stage_label, canBringToStage, lowerAllHands } = useGroupOnStageActions({\n peers: peersInAccordion,\n });\n\n useEffect(() => {\n if (!isOffStageRole || !isLargeRoom) {\n return;\n }\n loadPeers();\n const interval = setInterval(() => {\n loadPeers();\n }, ITER_TIMER);\n return () => clearInterval(interval);\n }, [isOffStageRole, isLargeRoom]); //eslint-disable-line\n\n if (peersInAccordion.length === 0 || (isHandRaisedAccordion && filter?.search)) {\n return null;\n }\n\n const height = ROW_HEIGHT * peersInAccordion.length;\n const hasNext = total > peersInAccordion.length && !filter?.search;\n\n return (\n <Accordion.Item value={roleName} css={{ '&:hover .role_actions': { visibility: 'visible' }, mb: '$8' }} ref={ref}>\n <Accordion.Header\n chevronID={`role_accordion_btn_${roleName}`}\n iconStyles={{ c: '$on_surface_high' }}\n css={{\n textTransform: 'capitalize',\n p: '$6 $8',\n fontSize: '$sm',\n fontWeight: '$semiBold',\n c: '$on_surface_medium',\n borderRadius: '$1',\n border: '1px solid $border_default',\n '&[data-state=\"open\"]': {\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n },\n }}\n >\n <Flex justify=\"between\" align=\"center\" css={{ flexGrow: 1, pr: '$6' }}>\n <Text\n variant=\"sm\"\n css={{ fontWeight: '$semiBold', textTransform: 'capitalize', color: '$on_surface_medium' }}\n >\n {roleName} {`(${getFormattedCount(isLargeRoom && isOffStageRole ? total : peerList.length)})`}\n </Text>\n <RoleOptions roleName={roleName} peerList={peersInAccordion} />\n </Flex>\n </Accordion.Header>\n <Accordion.Content contentStyles={{ border: '1px solid $border_default', borderTop: 'none' }}>\n <FixedSizeList\n itemSize={ROW_HEIGHT}\n itemData={{\n peerList: isHandRaisedAccordion\n ? peersInAccordion.sort((a, b) => {\n try {\n const aHandRaisedAt = JSON.parse(a.metadata || '{}').handRaisedAt;\n const bHandRaisedAt = JSON.parse(b.metadata || '{}').handRaisedAt;\n return aHandRaisedAt - bHandRaisedAt;\n } catch (err) {\n return 0;\n }\n })\n : peersInAccordion,\n isConnected,\n isHandRaisedAccordion,\n }}\n itemKey={itemKey}\n itemCount={peersInAccordion.length}\n width={width}\n height={height}\n >\n {VirtualizedParticipantItem}\n </FixedSizeList>\n {offStageRoles?.includes(roleName) && hasNext ? (\n <Flex\n align=\"center\"\n justify=\"end\"\n css={{\n gap: '$1',\n cursor: 'pointer',\n color: '$on_surface_high',\n p: '$6',\n borderTop: '1px solid $border_default',\n }}\n onClick={() => onActive?.(roleName)}\n >\n <Text variant=\"sm\" css={{ color: 'inherit' }}>\n View All\n </Text>\n <ChevronRightIcon />\n </Flex>\n ) : null}\n {isHandRaisedAccordion && canBringToStage && (\n <>\n <HorizontalDivider />\n <Flex css={{ w: '100%', p: '$6', gap: '$4' }} justify=\"center\">\n <Button variant=\"standard\" onClick={lowerAllHands} icon css={{ pl: '$2' }}>\n <CrossIcon /> Lower all hands\n </Button>\n\n <Button onClick={bringAllToStage} icon css={{ pl: '$2' }}>\n <AddIcon /> {bring_to_stage_label}\n </Button>\n </Flex>\n </>\n )}\n </Accordion.Content>\n </Accordion.Item>\n );\n};\n", "import React, { useState } from 'react';\nimport { DefaultConferencingScreen_Elements } from '@100mslive/types-prebuilt';\nimport { match } from 'ts-pattern';\nimport {\n HMSPeer,\n selectPermissions,\n selectRoleByRoleName,\n selectTracksMap,\n useHMSActions,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport {\n MicOffIcon,\n MicOnIcon,\n PersonRectangleIcon,\n RemoveUserIcon,\n VerticalMenuIcon,\n VideoOffIcon,\n VideoOnIcon,\n} from '@100mslive/react-icons';\nimport { Dropdown } from '../../../Dropdown';\nimport { Flex } from '../../../Layout';\nimport { Text } from '../../../Text';\nimport { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n// @ts-ignore: No implicit Any\nimport { getMetadata } from '../../common/utils';\n\nconst dropdownItemCSS = { backgroundColor: '$surface_default', gap: '$4', p: '$8' };\nconst optionTextCSS = {\n fontWeight: '$semiBold',\n color: '$on_surface_high',\n textTransform: 'none',\n whiteSpace: 'nowrap',\n};\n\nconst DropdownWrapper = ({ children }: { children: React.ReactNode }) => {\n const [openOptions, setOpenOptions] = useState(false);\n if (React.Children.toArray(children).length === 0) {\n return null;\n }\n return (\n <Dropdown.Root open={openOptions} onOpenChange={setOpenOptions}>\n <Dropdown.Trigger\n data-testid=\"role_group_options\"\n onClick={e => e.stopPropagation()}\n className=\"role_actions\"\n asChild\n css={{\n p: '$1',\n r: '$0',\n c: '$on_surface_high',\n visibility: openOptions ? 'visible' : 'hidden',\n '&:hover': {\n c: '$on_surface_medium',\n },\n '@md': {\n visibility: 'visible',\n },\n }}\n >\n <Flex>\n <VerticalMenuIcon />\n </Flex>\n </Dropdown.Trigger>\n <Dropdown.Content\n onClick={e => e.stopPropagation()}\n css={{ w: 'max-content', bg: '$surface_default', py: 0 }}\n align=\"end\"\n >\n {children}\n </Dropdown.Content>\n </Dropdown.Root>\n );\n};\n\nexport const RoleOptions = ({ roleName, peerList }: { roleName: string; peerList: HMSPeer[] }) => {\n const permissions = useHMSStore(selectPermissions);\n const hmsActions = useHMSActions();\n const { elements } = useRoomLayoutConferencingScreen();\n const { on_stage_role, off_stage_roles = [] } = (elements as DefaultConferencingScreen_Elements)?.on_stage_exp || {};\n const canRemoveRoleFromStage = permissions?.changeRole && roleName === on_stage_role;\n const role = useHMSStore(selectRoleByRoleName(roleName));\n const tracks = useHMSStore(selectTracksMap);\n if (!role) {\n return null;\n }\n const canPublishAudio = role.publishParams.allowed.includes('audio');\n const canPublishVideo = role.publishParams.allowed.includes('video');\n\n let isVideoOnForSomePeers = false;\n let isAudioOnForSomePeers = false;\n\n peerList.forEach(peer => {\n if (peer.isLocal) {\n return;\n }\n const isAudioOn = !!peer.audioTrack && tracks[peer.audioTrack]?.enabled;\n const isVideoOn = !!peer.videoTrack && tracks[peer.videoTrack]?.enabled;\n isAudioOnForSomePeers = isAudioOnForSomePeers || isAudioOn;\n isVideoOnForSomePeers = isVideoOnForSomePeers || isVideoOn;\n });\n\n const setTrackEnabled = async (type: 'audio' | 'video', enabled = false) => {\n try {\n await hmsActions.setRemoteTracksEnabled({ roles: [roleName], source: 'regular', type, enabled });\n } catch (e) {\n console.error(e);\n }\n };\n\n // on stage and off stage roles\n const canRemoveRoleFromRoom =\n permissions?.removeOthers && (on_stage_role === roleName || off_stage_roles?.includes(roleName));\n\n if (\n peerList.length === 0 ||\n // if only local peer is present no need to show any options\n (peerList.length === 1 && peerList[0].isLocal) ||\n !role\n ) {\n return null;\n }\n\n const removeAllFromStage = () => {\n peerList.forEach(peer => {\n const prevRole = getMetadata(peer.metadata).prevRole;\n if (prevRole) {\n hmsActions.changeRoleOfPeer(peer.id, prevRole, true);\n }\n });\n };\n\n const removePeersFromRoom = async () => {\n try {\n peerList.forEach(async peer => {\n await hmsActions.removePeer(peer.id, '');\n });\n } catch (e) {\n console.error(e);\n }\n };\n\n return (\n <DropdownWrapper>\n {canRemoveRoleFromStage ? (\n <Dropdown.Item\n css={{ ...dropdownItemCSS, borderBottom: '1px solid $border_bright' }}\n onClick={removeAllFromStage}\n >\n <PersonRectangleIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Remove all from Stage\n </Text>\n </Dropdown.Item>\n ) : null}\n\n {match({ canPublishAudio, isAudioOnForSomePeers, canMute: permissions?.mute, canUnmute: permissions?.unmute })\n .with({ canPublishAudio: true, isAudioOnForSomePeers: true, canMute: true }, () => {\n return (\n <Dropdown.Item css={dropdownItemCSS} onClick={() => setTrackEnabled('audio', false)}>\n <MicOffIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Mute Audio for All\n </Text>\n </Dropdown.Item>\n );\n })\n .with({ canPublishAudio: true, isAudioOnForSomePeers: false, canUnmute: true }, () => {\n return (\n <Dropdown.Item css={dropdownItemCSS} onClick={() => setTrackEnabled('audio', true)}>\n <MicOnIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Request to Unmute Audio for All\n </Text>\n </Dropdown.Item>\n );\n })\n .otherwise(() => null)}\n {match({ canPublishVideo, isVideoOnForSomePeers, canMute: permissions?.mute, canUnmute: permissions?.unmute })\n .with({ canPublishVideo: true, isVideoOnForSomePeers: true, canMute: true }, () => {\n return (\n <Dropdown.Item css={dropdownItemCSS} onClick={() => setTrackEnabled('video', false)}>\n <VideoOffIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Mute Video for All\n </Text>\n </Dropdown.Item>\n );\n })\n .with({ canPublishVideo: true, isVideoOnForSomePeers: false, canUnmute: true }, () => {\n return (\n <Dropdown.Item css={dropdownItemCSS} onClick={() => setTrackEnabled('video', true)}>\n <VideoOnIcon />\n <Text variant=\"sm\" css={optionTextCSS}>\n Request to Unmute Video for All\n </Text>\n </Dropdown.Item>\n );\n })\n .otherwise(() => null)}\n\n {canRemoveRoleFromRoom ? (\n <Dropdown.Item\n css={{ ...dropdownItemCSS, borderTop: '1px solid $border_bright', color: '$alert_error_default' }}\n onClick={removePeersFromRoom}\n >\n <RemoveUserIcon />\n <Text variant=\"sm\" css={{ ...optionTextCSS, color: 'inherit' }}>\n Remove all from Room\n </Text>\n </Dropdown.Item>\n ) : null}\n </DropdownWrapper>\n );\n};\n", "import { match, P } from 'ts-pattern';\nimport { HMSPeer, selectPermissions, useHMSActions, useHMSStore } from '@100mslive/react-sdk';\nimport { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n\nexport const useGroupOnStageActions = ({ peers }: { peers: HMSPeer[] }) => {\n const hmsActions = useHMSActions();\n const { elements } = useRoomLayoutConferencingScreen();\n const {\n bring_to_stage_label,\n remove_from_stage_label,\n on_stage_role,\n off_stage_roles = [],\n skip_preview_for_role_change = false,\n } = elements.on_stage_exp || {};\n const canChangeRole = useHMSStore(selectPermissions)?.changeRole;\n\n const offStageRolePeers = peers.filter(peer =>\n match({ on_stage_role, bring_to_stage_label, roleName: peer.roleName })\n .with(\n {\n on_stage_role: P.when(role => !!role),\n bring_to_stage_label: P.when(label => !!label),\n roleName: P.when(role => !!role && off_stage_roles.includes(role)),\n },\n () => true,\n )\n .otherwise(() => false),\n );\n\n const lowerAllHands = async () => {\n return Promise.all(peers.map(peer => hmsActions.lowerRemotePeerHand(peer.id)));\n };\n\n const bringAllToStage = () => {\n if (!canChangeRole || !on_stage_role) {\n return;\n }\n return Promise.all(\n offStageRolePeers.map(peer => {\n return hmsActions.changeRoleOfPeer(peer.id, on_stage_role, skip_preview_for_role_change).then(() => {\n return skip_preview_for_role_change ? hmsActions.lowerRemotePeerHand(peer.id) : null;\n });\n }),\n );\n };\n\n return {\n lowerAllHands,\n bringAllToStage,\n canBringToStage: canChangeRole && offStageRolePeers.length > 0,\n bring_to_stage_label,\n remove_from_stage_label,\n };\n};\n", "import { useState } from 'react';\nimport { selectPeerMetadata, selectPermissions, useHMSActions, useHMSStore } from '@100mslive/react-sdk';\nimport { useRoomLayoutConferencingScreen } from '../../provider/roomLayoutProvider/hooks/useRoomLayoutScreen';\n\nexport const usePeerOnStageActions = ({ peerId, role }: { peerId: string; role: string }) => {\n const hmsActions = useHMSActions();\n const { elements } = useRoomLayoutConferencingScreen();\n const {\n bring_to_stage_label,\n remove_from_stage_label,\n on_stage_role,\n off_stage_roles = [],\n skip_preview_for_role_change = false,\n } = elements.on_stage_exp || {};\n const isInStage = role === on_stage_role;\n const canChangeRole = useHMSStore(selectPermissions)?.changeRole;\n const shouldShowStageRoleChange =\n canChangeRole &&\n ((isInStage && remove_from_stage_label) || (off_stage_roles?.includes(role) && bring_to_stage_label));\n const prevRole = useHMSStore(selectPeerMetadata(peerId))?.prevRole;\n const [open, setOpen] = useState(false);\n\n const lowerPeerHand = async () => {\n await hmsActions.lowerRemotePeerHand(peerId);\n };\n\n const handleStageAction = async () => {\n if (isInStage) {\n prevRole && hmsActions.changeRoleOfPeer(peerId, prevRole, true);\n } else if (on_stage_role) {\n await hmsActions.changeRoleOfPeer(peerId, on_stage_role, skip_preview_for_role_change);\n if (skip_preview_for_role_change) {\n await lowerPeerHand();\n }\n }\n setOpen(false);\n };\n\n return {\n open,\n setOpen,\n lowerPeerHand,\n handleStageAction,\n shouldShowStageRoleChange,\n isInStage,\n bring_to_stage_label,\n remove_from_stage_label,\n };\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useState", "selectIsLargeRoom", "selectLocalPeerID", "selectPermissions", "useHMSStore", "AddIcon", "CrossIcon", "MicOffIcon", "VerticalMenuIcon", "React", "useHMSStore", "React", "selectPermissions", "useHMSActions", "useHMSStore", "React", "useHMSStore", "selectPermissions", "useHMSActions", "match", "selectPermissions", "useHMSActions", "useHMSStore", "useHMSActions", "useHMSStore", "selectPermissions", "match", "React", "useHMSStore", "useState", "selectPermissions", "useHMSActions", "useHMSStore", "useHMSActions", "useHMSStore", "selectPermissions", "useState", "useState", "useHMSStore", "selectIsLargeRoom", "React", "selectLocalPeerID", "selectPermissions", "MicOffIcon", "CrossIcon", "AddIcon", "VerticalMenuIcon"]
7
+ }
@@ -0,0 +1,136 @@
1
+ import {
2
+ useVideoTileContext
3
+ } from "./chunk-P6NV2XO4.js";
4
+ import {
5
+ AudioVideoToggle,
6
+ VideoTile_default
7
+ } from "./chunk-MG3UGW66.js";
8
+ import {
9
+ Text
10
+ } from "./chunk-MUKUP7JU.js";
11
+ import {
12
+ Box,
13
+ Flex
14
+ } from "./chunk-GOXRTCTY.js";
15
+ import {
16
+ IconButton_default,
17
+ useSetAppDataByKey
18
+ } from "./chunk-BGSYLCVD.js";
19
+ import {
20
+ APP_DATA,
21
+ __spreadProps,
22
+ __spreadValues,
23
+ config,
24
+ init_define_process_env
25
+ } from "./chunk-GLAJUP3O.js";
26
+
27
+ // src/Prebuilt/components/InsetTile.tsx
28
+ init_define_process_env();
29
+ import React, { useEffect, useRef } from "react";
30
+ import Draggable from "react-draggable";
31
+ import { useMedia } from "react-use";
32
+ import {
33
+ selectIsAllowedToPublish,
34
+ selectLocalPeer,
35
+ selectPeerByID,
36
+ selectVideoTrackByID,
37
+ useHMSStore
38
+ } from "@100mslive/react-sdk";
39
+ import { ExpandIcon } from "@100mslive/react-icons";
40
+ var MinimisedTile = ({ setMinimised }) => {
41
+ return /* @__PURE__ */ React.createElement(Flex, { align: "center", css: { gap: "$6", r: "$1", bg: "$surface_default", p: "$4", color: "$on_surface_high" } }, /* @__PURE__ */ React.createElement(AudioVideoToggle, { hideOptions: true }), /* @__PURE__ */ React.createElement(Text, null, "You"), /* @__PURE__ */ React.createElement(
42
+ IconButton_default,
43
+ {
44
+ className: "__cancel-drag-event",
45
+ onClick: () => setMinimised(false),
46
+ css: { bg: "transparent", border: "transparent" }
47
+ },
48
+ /* @__PURE__ */ React.createElement(ExpandIcon, null)
49
+ ));
50
+ };
51
+ var insetHeightPx = 180;
52
+ var insetMaxWidthPx = 240;
53
+ var defaultMobileAspectRatio = 9 / 16;
54
+ var desktopAspectRatio = 1 / defaultMobileAspectRatio;
55
+ var InsetTile = ({ peerId }) => {
56
+ const isMobile = useMedia(config.media.md);
57
+ const isLandscape = useMedia(config.media.ls);
58
+ const selector = peerId ? selectPeerByID(peerId) : selectLocalPeer;
59
+ const peer = useHMSStore(selector);
60
+ const [minimised, setMinimised] = useSetAppDataByKey(APP_DATA.minimiseInset);
61
+ const videoTrack = useHMSStore(selectVideoTrackByID(peer == null ? void 0 : peer.videoTrack));
62
+ const isAllowedToPublish = useHMSStore(selectIsAllowedToPublish);
63
+ const videoTileProps = useVideoTileContext();
64
+ let aspectRatio = isMobile ? defaultMobileAspectRatio : desktopAspectRatio;
65
+ if ((videoTrack == null ? void 0 : videoTrack.width) && (videoTrack == null ? void 0 : videoTrack.height) && !isMobile) {
66
+ aspectRatio = videoTrack.width / videoTrack.height;
67
+ }
68
+ let height = insetHeightPx;
69
+ let width = height * aspectRatio;
70
+ if (isLandscape && width > insetMaxWidthPx) {
71
+ width = 240;
72
+ height = width / aspectRatio;
73
+ }
74
+ const nodeRef = useRef(null);
75
+ useEffect(() => {
76
+ const node = nodeRef.current;
77
+ if (!node || !window.ResizeObserver) {
78
+ return;
79
+ }
80
+ const resizeObserver = new ResizeObserver((entries) => {
81
+ entries.forEach((entry) => {
82
+ if (entry.target === node.parentElement) {
83
+ node.style.transform = `translate(0,0)`;
84
+ }
85
+ });
86
+ });
87
+ node.parentElement && resizeObserver.observe(node.parentElement);
88
+ return () => {
89
+ (node == null ? void 0 : node.parentElement) && (resizeObserver == null ? void 0 : resizeObserver.unobserve(node.parentElement));
90
+ resizeObserver == null ? void 0 : resizeObserver.disconnect();
91
+ };
92
+ }, []);
93
+ if (!isAllowedToPublish.video && !isAllowedToPublish.audio) {
94
+ return null;
95
+ }
96
+ return /* @__PURE__ */ React.createElement(Draggable, { bounds: "parent", nodeRef, cancel: ".__cancel-drag-event" }, /* @__PURE__ */ React.createElement(
97
+ Box,
98
+ {
99
+ ref: nodeRef,
100
+ css: __spreadValues({
101
+ position: "absolute",
102
+ bottom: 0,
103
+ right: 0,
104
+ zIndex: 10,
105
+ boxShadow: "0 0 8px 0 rgba(0,0,0,0.3)",
106
+ r: "$2"
107
+ }, !minimised ? {
108
+ aspectRatio,
109
+ h: height
110
+ } : {})
111
+ },
112
+ minimised ? /* @__PURE__ */ React.createElement(MinimisedTile, { setMinimised }) : /* @__PURE__ */ React.createElement(
113
+ VideoTile_default,
114
+ __spreadProps(__spreadValues({
115
+ peerId: peer == null ? void 0 : peer.id,
116
+ trackId: peer == null ? void 0 : peer.videoTrack,
117
+ rootCSS: {
118
+ size: "100%",
119
+ padding: 0
120
+ },
121
+ width,
122
+ height,
123
+ containerCSS: { background: "$surface_default" },
124
+ canMinimise: true,
125
+ isDragabble: true
126
+ }, videoTileProps), {
127
+ hideParticipantNameOnTile: true
128
+ })
129
+ )
130
+ ));
131
+ };
132
+
133
+ export {
134
+ InsetTile
135
+ };
136
+ //# sourceMappingURL=chunk-YEL5ZTFU.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/Prebuilt/components/InsetTile.tsx"],
4
+ "sourcesContent": ["import React, { useEffect, useRef } from 'react';\nimport Draggable from 'react-draggable';\nimport { useMedia } from 'react-use';\nimport {\n selectIsAllowedToPublish,\n selectLocalPeer,\n selectPeerByID,\n selectVideoTrackByID,\n useHMSStore,\n} from '@100mslive/react-sdk';\nimport { ExpandIcon } from '@100mslive/react-icons';\nimport { Box, Flex } from '../../Layout';\nimport { Text } from '../../Text';\nimport { config as cssConfig } from '../../Theme';\n// @ts-ignore: No implicit Any\nimport IconButton from '../IconButton';\n// @ts-ignore: No implicit Any\nimport { AudioVideoToggle } from './AudioVideoToggle';\n// @ts-ignore: No implicit Any\nimport VideoTile from './VideoTile';\n// @ts-ignore: No implicit Any\nimport { useSetAppDataByKey } from './AppData/useUISettings';\nimport { useVideoTileContext } from './hooks/useVideoTileLayout';\n// @ts-ignore: No implicit Any\nimport { APP_DATA } from '../common/constants';\n\nconst MinimisedTile = ({ setMinimised }: { setMinimised: (value: boolean) => void }) => {\n return (\n <Flex align=\"center\" css={{ gap: '$6', r: '$1', bg: '$surface_default', p: '$4', color: '$on_surface_high' }}>\n <AudioVideoToggle hideOptions={true} />\n <Text>You</Text>\n <IconButton\n className=\"__cancel-drag-event\"\n onClick={() => setMinimised(false)}\n css={{ bg: 'transparent', border: 'transparent' }}\n >\n <ExpandIcon />\n </IconButton>\n </Flex>\n );\n};\n\nconst insetHeightPx = 180;\nconst insetMaxWidthPx = 240;\nconst defaultMobileAspectRatio = 9 / 16;\nconst desktopAspectRatio = 1 / defaultMobileAspectRatio;\n\nexport const InsetTile = ({ peerId }: { peerId?: string }) => {\n const isMobile = useMedia(cssConfig.media.md);\n const isLandscape = useMedia(cssConfig.media.ls);\n const selector = peerId ? selectPeerByID(peerId) : selectLocalPeer;\n const peer = useHMSStore(selector);\n const [minimised, setMinimised] = useSetAppDataByKey(APP_DATA.minimiseInset);\n const videoTrack = useHMSStore(selectVideoTrackByID(peer?.videoTrack));\n const isAllowedToPublish = useHMSStore(selectIsAllowedToPublish);\n const videoTileProps = useVideoTileContext();\n let aspectRatio = isMobile ? defaultMobileAspectRatio : desktopAspectRatio;\n if (videoTrack?.width && videoTrack?.height && !isMobile) {\n aspectRatio = videoTrack.width / videoTrack.height;\n }\n let height = insetHeightPx;\n let width = height * aspectRatio;\n // Convert to 16/9 in landscape mode with a max width of 240\n if (isLandscape && width > insetMaxWidthPx) {\n width = 240;\n height = width / aspectRatio;\n }\n\n const nodeRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const node = nodeRef.current;\n if (!node || !window.ResizeObserver) {\n return;\n }\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(entry => {\n if (entry.target === node.parentElement) {\n // reset to original position on resize\n node.style.transform = `translate(0,0)`;\n }\n });\n });\n node.parentElement && resizeObserver.observe(node.parentElement);\n return () => {\n node?.parentElement && resizeObserver?.unobserve(node.parentElement);\n resizeObserver?.disconnect();\n };\n }, []);\n\n if (!isAllowedToPublish.video && !isAllowedToPublish.audio) {\n return null;\n }\n\n return (\n <Draggable bounds=\"parent\" nodeRef={nodeRef} cancel=\".__cancel-drag-event\">\n <Box\n ref={nodeRef}\n css={{\n position: 'absolute',\n bottom: 0,\n right: 0,\n zIndex: 10,\n boxShadow: '0 0 8px 0 rgba(0,0,0,0.3)',\n r: '$2',\n ...(!minimised\n ? {\n aspectRatio: aspectRatio,\n h: height,\n }\n : {}),\n }}\n >\n {minimised ? (\n <MinimisedTile setMinimised={setMinimised} />\n ) : (\n <VideoTile\n peerId={peer?.id}\n trackId={peer?.videoTrack}\n rootCSS={{\n size: '100%',\n padding: 0,\n }}\n width={width}\n height={height}\n containerCSS={{ background: '$surface_default' }}\n canMinimise\n isDragabble\n {...videoTileProps}\n hideParticipantNameOnTile\n />\n )}\n </Box>\n </Draggable>\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,12 @@
1
+ <svg width="184" height="133" viewBox="0 0 184 133" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M144.885 91.3998C145.318 91.023 145.861 90.7947 146.433 90.7483L146.446 90.7473L169.355 89.1614C169.702 89.1376 170.049 89.2101 170.358 89.3712C170.662 89.5305 170.918 89.7702 171.096 90.0642C171.098 90.0672 171.1 90.0703 171.102 90.0734L171.104 90.0766C171.281 90.3744 171.373 90.7154 171.369 91.062C171.365 91.4097 171.265 91.7496 171.08 92.044L158.85 111.504C158.539 111.986 158.081 112.356 157.544 112.56C157.007 112.764 156.419 112.791 155.866 112.636C155.313 112.482 154.823 112.155 154.469 111.703C154.115 111.25 153.915 110.697 153.898 110.123C153.898 110.109 153.898 110.094 153.898 110.08L153.996 100.307L145.347 95.7858C145.334 95.779 145.321 95.7721 145.308 95.7649C144.811 95.4785 144.417 95.0404 144.186 94.5146C143.955 93.9888 143.898 93.4029 144.024 92.8425C144.15 92.2821 144.451 91.7765 144.885 91.3998ZM167.441 91.0088L146.603 92.8952C146.49 92.9053 146.383 92.9508 146.298 93.0251C146.211 93.1005 146.151 93.2016 146.125 93.3137C146.1 93.4257 146.112 93.5429 146.158 93.6481C146.202 93.7484 146.276 93.8327 146.369 93.89L155.26 98.296L167.441 91.0088ZM156.32 100.171L168.547 92.8564L157.039 110.339C156.976 110.434 156.886 110.506 156.78 110.547C156.673 110.587 156.555 110.593 156.444 110.562C156.334 110.531 156.236 110.466 156.165 110.375C156.097 110.289 156.058 110.184 156.052 110.075L156.32 100.171Z" fill="#444954"/>
3
+ <path d="M83.3248 35.4156C71.7182 47.1017 51.2098 75.5175 62.0292 95.6918C75.5536 120.91 140.453 79.2983 115.364 67.6657C90.2756 56.0331 65.8818 122.018 101.568 120.391C116.398 118.62 131.221 114.699 145.703 105.512" stroke="#293042" stroke-width="2.25" stroke-dasharray="6 6"/>
4
+ <rect x="0.00256348" y="0.5" width="173.524" height="58.3398" rx="29.1699" fill="#272A31"/>
5
+ <g opacity="0.4">
6
+ <rect x="24.7526" y="20.9312" width="111" height="4.5" rx="2.25" fill="#444954"/>
7
+ </g>
8
+ <g opacity="0.4">
9
+ <rect x="38.2526" y="34.4312" width="110.25" height="4.5" rx="2.25" fill="#444954"/>
10
+ </g>
11
+ <path d="M40.3918 71.5547L28.4246 55.0999L52.3589 55.0999L40.3918 71.5547Z" fill="#272A31"/>
12
+ </svg>
@@ -1,6 +1,6 @@
1
1
  @import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap";
2
2
 
3
- /* ../../../../../../../tmp/tmp-3053-vJDoudwkRlkQ/1928f9fb2a42/tldraw.css */
3
+ /* ../../../../../../../tmp/tmp-2884-5PqWOKxJhU7A/192999c69353/tldraw.css */
4
4
  .tl-container {
5
5
  width: 100%;
6
6
  height: 100%;
@@ -2756,7 +2756,7 @@ input,
2756
2756
  font-size: 12px;
2757
2757
  }
2758
2758
 
2759
- /* ../../../../../../../tmp/tmp-3053-vJDoudwkRlkQ/1928f9fb2360/index.css */
2759
+ /* ../../../../../../../tmp/tmp-2884-5PqWOKxJhU7A/192999c68991/index.css */
2760
2760
  .tlui-navigation-zone,
2761
2761
  .tlui-navigation-panel {
2762
2762
  display: none;