@azure/communication-react 1.3.3-alpha-202208170014.0 → 1.3.3-alpha-202208200013.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (749) hide show
  1. package/dist/communication-react.d.ts +35 -4
  2. package/dist/dist-cjs/communication-react/index.js +564 -498
  3. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/MessageStatus.js.map +1 -1
  5. package/dist/dist-esm/acs-ui-common/src/areEqual.js.map +1 -1
  6. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  7. package/dist/dist-esm/acs-ui-common/src/commonProperties.js.map +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/constants.js.map +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/cssUtils.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/identifier.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/localizationUtils.js.map +1 -1
  13. package/dist/dist-esm/acs-ui-common/src/logEvent.js.map +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.js.map +1 -1
  15. package/dist/dist-esm/acs-ui-common/src/safeStringify.js.map +1 -1
  16. package/dist/dist-esm/acs-ui-common/src/telemetry.js.map +1 -1
  17. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  18. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  19. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  20. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  21. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
  22. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.js.map +1 -1
  23. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.js.map +1 -1
  24. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  25. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.js.map +1 -1
  26. package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
  27. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  28. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.js.map +1 -1
  29. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.js.map +1 -1
  30. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.js.map +1 -1
  31. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.js.map +1 -1
  32. package/dist/dist-esm/calling-component-bindings/src/providers/index.js.map +1 -1
  33. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.js.map +1 -1
  34. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js +1 -1
  35. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.js.map +1 -1
  36. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  37. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  38. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.js.map +1 -1
  39. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.js.map +1 -1
  40. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  41. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  42. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
  43. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.js.map +1 -1
  44. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.js.map +1 -1
  45. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  46. package/dist/dist-esm/calling-stateful-client/src/Converter.js.map +1 -1
  47. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.js.map +1 -1
  48. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.js.map +1 -1
  49. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.js.map +1 -1
  50. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.js.map +1 -1
  51. package/dist/dist-esm/calling-stateful-client/src/Logger.js.map +1 -1
  52. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.js.map +1 -1
  53. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.js.map +1 -1
  54. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.js.map +1 -1
  55. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.js.map +1 -1
  56. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.js.map +1 -1
  57. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.js.map +1 -1
  58. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.js.map +1 -1
  59. package/dist/dist-esm/calling-stateful-client/src/index.js.map +1 -1
  60. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.js.map +1 -1
  61. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.js.map +1 -1
  62. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.js.map +1 -1
  63. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  64. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.js.map +1 -1
  65. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  66. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.js.map +1 -1
  67. package/dist/dist-esm/chat-component-bindings/src/index.js.map +1 -1
  68. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.js.map +1 -1
  69. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.js.map +1 -1
  70. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.js.map +1 -1
  71. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.js.map +1 -1
  72. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.js.map +1 -1
  73. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.js.map +1 -1
  74. package/dist/dist-esm/chat-component-bindings/src/utils/constants.js.map +1 -1
  75. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.js.map +1 -1
  76. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.js.map +1 -1
  77. package/dist/dist-esm/chat-stateful-client/src/ChatContext.js.map +1 -1
  78. package/dist/dist-esm/chat-stateful-client/src/Constants.js.map +1 -1
  79. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.js.map +1 -1
  80. package/dist/dist-esm/chat-stateful-client/src/Logger.js.map +1 -1
  81. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
  82. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.js.map +1 -1
  83. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.js.map +1 -1
  84. package/dist/dist-esm/chat-stateful-client/src/index.js.map +1 -1
  85. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.js.map +1 -1
  86. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.js.map +1 -1
  87. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.js.map +1 -1
  88. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.js.map +1 -1
  89. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.js.map +1 -1
  90. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.js.map +1 -1
  91. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  92. package/dist/dist-esm/communication-react/src/mergedHooks.d.ts +7 -1
  93. package/dist/dist-esm/communication-react/src/mergedHooks.js +13 -2
  94. package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
  95. package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
  96. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  97. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.js.map +1 -1
  98. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.js.map +1 -1
  99. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.js.map +1 -1
  100. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  101. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.js.map +1 -1
  102. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.js.map +1 -1
  103. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.js.map +1 -1
  104. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.js.map +1 -1
  105. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.js.map +1 -1
  106. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.js.map +1 -1
  107. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.js.map +1 -1
  108. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.js.map +1 -1
  109. package/dist/dist-esm/react-components/src/components/ControlBar.js.map +1 -1
  110. package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
  111. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.js.map +1 -1
  112. package/dist/dist-esm/react-components/src/components/DevicesButton.js.map +1 -1
  113. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.js.map +1 -1
  114. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.js.map +1 -1
  115. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.js.map +1 -1
  116. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.js.map +1 -1
  117. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.js.map +1 -1
  118. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.js.map +1 -1
  119. package/dist/dist-esm/react-components/src/components/Drawer/index.js.map +1 -1
  120. package/dist/dist-esm/react-components/src/components/EndCallButton.js.map +1 -1
  121. package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
  122. package/dist/dist-esm/react-components/src/components/FileCard.js.map +1 -1
  123. package/dist/dist-esm/react-components/src/components/FileCardGroup.js.map +1 -1
  124. package/dist/dist-esm/react-components/src/components/FileDownloadCards.js.map +1 -1
  125. package/dist/dist-esm/react-components/src/components/FileUploadCards.js.map +1 -1
  126. package/dist/dist-esm/react-components/src/components/GridLayout.js.map +1 -1
  127. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.js.map +1 -1
  128. package/dist/dist-esm/react-components/src/components/HoldButton.js.map +1 -1
  129. package/dist/dist-esm/react-components/src/components/HorizontalGallery.js.map +1 -1
  130. package/dist/dist-esm/react-components/src/components/InputBoxComponent.js.map +1 -1
  131. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.js.map +1 -1
  132. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  133. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.js.map +1 -1
  134. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  135. package/dist/dist-esm/react-components/src/components/MicrophoneButton.js.map +1 -1
  136. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.js.map +1 -1
  137. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  138. package/dist/dist-esm/react-components/src/components/ParticipantList.js +8 -1
  139. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  140. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js +1 -5
  141. package/dist/dist-esm/react-components/src/components/ParticipantsButton.js.map +1 -1
  142. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.js.map +1 -1
  143. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.js.map +1 -1
  144. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +47 -6
  145. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  146. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.js.map +1 -1
  147. package/dist/dist-esm/react-components/src/components/ScreenShareButton.js.map +1 -1
  148. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  149. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.js.map +1 -1
  150. package/dist/dist-esm/react-components/src/components/SendBoxErrors.js.map +1 -1
  151. package/dist/dist-esm/react-components/src/components/StreamMedia.js.map +1 -1
  152. package/dist/dist-esm/react-components/src/components/SystemMessage.js.map +1 -1
  153. package/dist/dist-esm/react-components/src/components/TypingIndicator.js.map +1 -1
  154. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.js.map +1 -1
  155. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  156. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/LocalScreenShare.styles.js.map +1 -1
  157. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.js.map +1 -1
  158. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.js.map +1 -1
  159. package/dist/dist-esm/react-components/src/components/VideoGallery.js +1 -6
  160. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  161. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +2 -1
  162. package/dist/dist-esm/react-components/src/components/VideoTile.js +44 -44
  163. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  164. package/dist/dist-esm/react-components/src/components/VoiceOverButton.js.map +1 -1
  165. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  166. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  167. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  168. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  170. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  174. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.js.map +1 -1
  175. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  177. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  178. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  180. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
  181. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.js.map +1 -1
  182. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  183. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +1 -5
  184. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +15 -18
  185. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  186. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.js.map +1 -1
  187. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  188. package/dist/dist-esm/react-components/src/components/utils/common.d.ts +5 -0
  189. package/dist/dist-esm/react-components/src/components/utils/common.js +6 -0
  190. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  191. package/dist/dist-esm/react-components/src/components/utils/delay.js.map +1 -1
  192. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  193. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  194. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  195. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  196. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js.map +1 -1
  197. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  198. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  199. package/dist/dist-esm/react-components/src/gallery/index.js.map +1 -1
  200. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/identifiers/index.js.map +1 -1
  202. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  203. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  204. package/dist/dist-esm/react-components/src/localization/index.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  206. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +1 -1
  207. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js +3 -3
  208. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +1 -1
  209. package/dist/dist-esm/react-components/src/permissions/index.js.map +1 -1
  210. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  211. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  212. package/dist/dist-esm/react-components/src/theming/index.js.map +1 -1
  213. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  214. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  215. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.js.map +1 -1
  217. package/dist/dist-esm/react-components/src/types/CustomStylesProps.js.map +1 -1
  218. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  219. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  220. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.js.map +1 -1
  221. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  222. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  223. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +9 -1
  224. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  225. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +8 -0
  226. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  227. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  228. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  229. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  230. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  231. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.js.map +1 -1
  232. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  233. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +4 -3
  234. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  235. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +31 -15
  236. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  237. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +1 -1
  238. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  239. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +1 -1
  240. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  241. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  242. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  243. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  244. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  245. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +2 -23
  246. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  247. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js.map +1 -1
  248. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  249. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  250. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts +1 -0
  251. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +1 -1
  252. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  253. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js.map +1 -1
  254. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.d.ts +1 -0
  255. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +1 -1
  256. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  257. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  258. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts +1 -0
  259. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +1 -1
  260. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  261. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts +1 -0
  262. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +1 -1
  263. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  264. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +1 -11
  265. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  266. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.d.ts +1 -0
  267. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +1 -1
  268. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  269. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  270. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  271. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  272. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js.map +1 -1
  273. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  274. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -1
  275. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  276. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  277. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +11 -2
  278. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  279. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +2 -23
  280. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  281. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  282. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js.map +1 -1
  283. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  284. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js.map +1 -1
  285. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js.map +1 -1
  286. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js.map +1 -1
  287. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  288. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  289. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  290. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js.map +1 -1
  291. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  292. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  293. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js.map +1 -1
  294. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js.map +1 -1
  295. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  296. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  297. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  298. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  299. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  300. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  301. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  302. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  303. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js.map +1 -1
  304. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  305. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  306. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js.map +1 -1
  307. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  308. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +12 -3
  309. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  310. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +10 -0
  311. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +31 -0
  312. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  313. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.js.map +1 -1
  314. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +39 -2
  315. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  316. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts +2 -0
  317. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +15 -26
  318. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
  319. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js.map +1 -1
  320. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton.js.map +1 -1
  321. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  322. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  323. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js.map +1 -1
  324. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/NotificationIcon.js.map +1 -1
  325. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PeopleButton.js.map +1 -1
  326. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.d.ts +2 -0
  327. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.js.map +1 -1
  328. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +8 -0
  329. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  330. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  331. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  332. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  333. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  334. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +1 -1
  335. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.d.ts +6 -1
  336. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js +17 -1
  337. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js.map +1 -1
  338. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.d.ts +2 -0
  339. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js +15 -0
  340. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js.map +1 -1
  341. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js.map +1 -1
  342. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  343. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  344. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  345. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  346. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  347. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  348. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  349. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  350. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js.map +1 -1
  351. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  352. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  353. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  354. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  355. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  356. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
  357. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  358. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js.map +1 -1
  359. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  360. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  361. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  362. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  363. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -1
  364. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  365. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  366. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js.map +1 -1
  367. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  368. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  369. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  370. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -1
  371. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  372. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  373. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  374. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  375. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js.map +1 -1
  376. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  377. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  378. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  379. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  380. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.d.ts +1 -0
  381. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +2 -5
  382. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  383. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -1
  384. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  385. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  386. package/dist/dist-esm/react-composites/src/composites/common/adapters.js.map +1 -1
  387. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  388. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -1
  389. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  390. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  391. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  392. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
  393. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  394. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  395. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  396. package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
  397. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +6 -2
  398. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  399. package/dist/dist-esm/react-composites/src/index-public.js.map +1 -1
  400. package/package.json +8 -8
  401. package/dist/dist-esm/acs-ui-common/src/MessageStatus.d.ts.map +0 -1
  402. package/dist/dist-esm/acs-ui-common/src/areEqual.d.ts.map +0 -1
  403. package/dist/dist-esm/acs-ui-common/src/common.d.ts.map +0 -1
  404. package/dist/dist-esm/acs-ui-common/src/commonProperties.d.ts.map +0 -1
  405. package/dist/dist-esm/acs-ui-common/src/constants.d.ts.map +0 -1
  406. package/dist/dist-esm/acs-ui-common/src/cssUtils.d.ts.map +0 -1
  407. package/dist/dist-esm/acs-ui-common/src/identifier.d.ts.map +0 -1
  408. package/dist/dist-esm/acs-ui-common/src/index.d.ts.map +0 -1
  409. package/dist/dist-esm/acs-ui-common/src/localizationUtils.d.ts.map +0 -1
  410. package/dist/dist-esm/acs-ui-common/src/logEvent.d.ts.map +0 -1
  411. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.d.ts.map +0 -1
  412. package/dist/dist-esm/acs-ui-common/src/safeStringify.d.ts.map +0 -1
  413. package/dist/dist-esm/acs-ui-common/src/telemetry.d.ts.map +0 -1
  414. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.d.ts.map +0 -1
  415. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts.map +0 -1
  416. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.d.ts.map +0 -1
  417. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.d.ts.map +0 -1
  418. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts.map +0 -1
  419. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts.map +0 -1
  420. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts.map +0 -1
  421. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.d.ts.map +0 -1
  422. package/dist/dist-esm/calling-component-bindings/src/index.d.ts.map +0 -1
  423. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.d.ts.map +0 -1
  424. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.d.ts.map +0 -1
  425. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.d.ts.map +0 -1
  426. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.d.ts.map +0 -1
  427. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.d.ts.map +0 -1
  428. package/dist/dist-esm/calling-component-bindings/src/providers/index.d.ts.map +0 -1
  429. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.d.ts.map +0 -1
  430. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts.map +0 -1
  431. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts.map +0 -1
  432. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts.map +0 -1
  433. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.d.ts.map +0 -1
  434. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts.map +0 -1
  435. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts.map +0 -1
  436. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts.map +0 -1
  437. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.d.ts.map +0 -1
  438. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.d.ts.map +0 -1
  439. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.d.ts.map +0 -1
  440. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts.map +0 -1
  441. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts.map +0 -1
  442. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.d.ts.map +0 -1
  443. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts.map +0 -1
  444. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.d.ts.map +0 -1
  445. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts.map +0 -1
  446. package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts.map +0 -1
  447. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.d.ts.map +0 -1
  448. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.d.ts.map +0 -1
  449. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.d.ts.map +0 -1
  450. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts.map +0 -1
  451. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.d.ts.map +0 -1
  452. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.d.ts.map +0 -1
  453. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.d.ts.map +0 -1
  454. package/dist/dist-esm/calling-stateful-client/src/index.d.ts.map +0 -1
  455. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.d.ts.map +0 -1
  456. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.d.ts.map +0 -1
  457. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.d.ts.map +0 -1
  458. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts.map +0 -1
  459. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.d.ts.map +0 -1
  460. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.d.ts.map +0 -1
  461. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.d.ts.map +0 -1
  462. package/dist/dist-esm/chat-component-bindings/src/index.d.ts.map +0 -1
  463. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.d.ts.map +0 -1
  464. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.d.ts.map +0 -1
  465. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.d.ts.map +0 -1
  466. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.d.ts.map +0 -1
  467. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.d.ts.map +0 -1
  468. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.d.ts.map +0 -1
  469. package/dist/dist-esm/chat-component-bindings/src/utils/constants.d.ts.map +0 -1
  470. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.d.ts.map +0 -1
  471. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts.map +0 -1
  472. package/dist/dist-esm/chat-stateful-client/src/ChatContext.d.ts.map +0 -1
  473. package/dist/dist-esm/chat-stateful-client/src/Constants.d.ts.map +0 -1
  474. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.d.ts.map +0 -1
  475. package/dist/dist-esm/chat-stateful-client/src/Logger.d.ts.map +0 -1
  476. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.d.ts.map +0 -1
  477. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.d.ts.map +0 -1
  478. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.d.ts.map +0 -1
  479. package/dist/dist-esm/chat-stateful-client/src/index.d.ts.map +0 -1
  480. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.d.ts.map +0 -1
  481. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.d.ts.map +0 -1
  482. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.d.ts.map +0 -1
  483. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.d.ts.map +0 -1
  484. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.d.ts.map +0 -1
  485. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.d.ts.map +0 -1
  486. package/dist/dist-esm/communication-react/src/index.d.ts.map +0 -1
  487. package/dist/dist-esm/communication-react/src/mergedHooks.d.ts.map +0 -1
  488. package/dist/dist-esm/react-components/src/components/Announcer.d.ts.map +0 -1
  489. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts.map +0 -1
  490. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts.map +0 -1
  491. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.d.ts.map +0 -1
  492. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts.map +0 -1
  493. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts.map +0 -1
  494. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts.map +0 -1
  495. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts.map +0 -1
  496. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.d.ts.map +0 -1
  497. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.d.ts.map +0 -1
  498. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.d.ts.map +0 -1
  499. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.d.ts.map +0 -1
  500. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.d.ts.map +0 -1
  501. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.d.ts.map +0 -1
  502. package/dist/dist-esm/react-components/src/components/ControlBar.d.ts.map +0 -1
  503. package/dist/dist-esm/react-components/src/components/ControlBarButton.d.ts.map +0 -1
  504. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.d.ts.map +0 -1
  505. package/dist/dist-esm/react-components/src/components/DevicesButton.d.ts.map +0 -1
  506. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts.map +0 -1
  507. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.d.ts.map +0 -1
  508. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.d.ts.map +0 -1
  509. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.d.ts.map +0 -1
  510. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.d.ts.map +0 -1
  511. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.d.ts.map +0 -1
  512. package/dist/dist-esm/react-components/src/components/Drawer/index.d.ts.map +0 -1
  513. package/dist/dist-esm/react-components/src/components/EndCallButton.d.ts.map +0 -1
  514. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts.map +0 -1
  515. package/dist/dist-esm/react-components/src/components/FileCard.d.ts.map +0 -1
  516. package/dist/dist-esm/react-components/src/components/FileCardGroup.d.ts.map +0 -1
  517. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts.map +0 -1
  518. package/dist/dist-esm/react-components/src/components/FileUploadCards.d.ts.map +0 -1
  519. package/dist/dist-esm/react-components/src/components/GridLayout.d.ts.map +0 -1
  520. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.d.ts.map +0 -1
  521. package/dist/dist-esm/react-components/src/components/HoldButton.d.ts.map +0 -1
  522. package/dist/dist-esm/react-components/src/components/HorizontalGallery.d.ts.map +0 -1
  523. package/dist/dist-esm/react-components/src/components/InputBoxComponent.d.ts.map +0 -1
  524. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.d.ts.map +0 -1
  525. package/dist/dist-esm/react-components/src/components/LocalVideoTile.d.ts.map +0 -1
  526. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.d.ts.map +0 -1
  527. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts.map +0 -1
  528. package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts.map +0 -1
  529. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.d.ts.map +0 -1
  530. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts.map +0 -1
  531. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts.map +0 -1
  532. package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts.map +0 -1
  533. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.d.ts.map +0 -1
  534. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.d.ts.map +0 -1
  535. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts.map +0 -1
  536. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.d.ts.map +0 -1
  537. package/dist/dist-esm/react-components/src/components/ScreenShareButton.d.ts.map +0 -1
  538. package/dist/dist-esm/react-components/src/components/SendBox.d.ts.map +0 -1
  539. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts.map +0 -1
  540. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts.map +0 -1
  541. package/dist/dist-esm/react-components/src/components/StreamMedia.d.ts.map +0 -1
  542. package/dist/dist-esm/react-components/src/components/SystemMessage.d.ts.map +0 -1
  543. package/dist/dist-esm/react-components/src/components/TypingIndicator.d.ts.map +0 -1
  544. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.d.ts.map +0 -1
  545. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.d.ts.map +0 -1
  546. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/LocalScreenShare.styles.d.ts.map +0 -1
  547. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.d.ts.map +0 -1
  548. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.d.ts.map +0 -1
  549. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts.map +0 -1
  550. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts.map +0 -1
  551. package/dist/dist-esm/react-components/src/components/VoiceOverButton.d.ts.map +0 -1
  552. package/dist/dist-esm/react-components/src/components/index.d.ts.map +0 -1
  553. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.d.ts.map +0 -1
  554. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.d.ts.map +0 -1
  555. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.d.ts.map +0 -1
  556. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.d.ts.map +0 -1
  557. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.d.ts.map +0 -1
  558. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.d.ts.map +0 -1
  559. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.d.ts.map +0 -1
  560. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.d.ts.map +0 -1
  561. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.d.ts.map +0 -1
  562. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts.map +0 -1
  563. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.d.ts.map +0 -1
  564. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.d.ts.map +0 -1
  565. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.d.ts.map +0 -1
  566. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.d.ts.map +0 -1
  567. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.d.ts.map +0 -1
  568. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.d.ts.map +0 -1
  569. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts.map +0 -1
  570. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts.map +0 -1
  571. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.d.ts.map +0 -1
  572. package/dist/dist-esm/react-components/src/components/utils/Datetime.d.ts.map +0 -1
  573. package/dist/dist-esm/react-components/src/components/utils/common.d.ts.map +0 -1
  574. package/dist/dist-esm/react-components/src/components/utils/delay.d.ts.map +0 -1
  575. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.d.ts.map +0 -1
  576. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts.map +0 -1
  577. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.d.ts.map +0 -1
  578. package/dist/dist-esm/react-components/src/components/utils/responsive.d.ts.map +0 -1
  579. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.d.ts.map +0 -1
  580. package/dist/dist-esm/react-components/src/components/utils.d.ts.map +0 -1
  581. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.d.ts.map +0 -1
  582. package/dist/dist-esm/react-components/src/gallery/index.d.ts.map +0 -1
  583. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.d.ts.map +0 -1
  584. package/dist/dist-esm/react-components/src/identifiers/index.d.ts.map +0 -1
  585. package/dist/dist-esm/react-components/src/index.d.ts.map +0 -1
  586. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts.map +0 -1
  587. package/dist/dist-esm/react-components/src/localization/index.d.ts.map +0 -1
  588. package/dist/dist-esm/react-components/src/localization/locales/index.d.ts.map +0 -1
  589. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts.map +0 -1
  590. package/dist/dist-esm/react-components/src/permissions/index.d.ts.map +0 -1
  591. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.d.ts.map +0 -1
  592. package/dist/dist-esm/react-components/src/theming/icons.d.ts.map +0 -1
  593. package/dist/dist-esm/react-components/src/theming/index.d.ts.map +0 -1
  594. package/dist/dist-esm/react-components/src/theming/themeUtils.d.ts.map +0 -1
  595. package/dist/dist-esm/react-components/src/theming/themes.d.ts.map +0 -1
  596. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts.map +0 -1
  597. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.d.ts.map +0 -1
  598. package/dist/dist-esm/react-components/src/types/CustomStylesProps.d.ts.map +0 -1
  599. package/dist/dist-esm/react-components/src/types/OnRender.d.ts.map +0 -1
  600. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts.map +0 -1
  601. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.d.ts.map +0 -1
  602. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts.map +0 -1
  603. package/dist/dist-esm/react-components/src/types/index.d.ts.map +0 -1
  604. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts.map +0 -1
  605. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts.map +0 -1
  606. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts.map +0 -1
  607. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts.map +0 -1
  608. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.d.ts.map +0 -1
  609. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.d.ts.map +0 -1
  610. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.d.ts.map +0 -1
  611. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts.map +0 -1
  612. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts.map +0 -1
  613. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts.map +0 -1
  614. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.d.ts.map +0 -1
  615. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.d.ts.map +0 -1
  616. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.d.ts.map +0 -1
  617. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.d.ts.map +0 -1
  618. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.d.ts.map +0 -1
  619. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts.map +0 -1
  620. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.d.ts.map +0 -1
  621. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts.map +0 -1
  622. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.d.ts.map +0 -1
  623. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.d.ts.map +0 -1
  624. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts.map +0 -1
  625. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts.map +0 -1
  626. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts.map +0 -1
  627. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.d.ts.map +0 -1
  628. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.d.ts.map +0 -1
  629. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts.map +0 -1
  630. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts.map +0 -1
  631. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.d.ts.map +0 -1
  632. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.d.ts.map +0 -1
  633. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.d.ts.map +0 -1
  634. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.d.ts.map +0 -1
  635. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.d.ts.map +0 -1
  636. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.d.ts.map +0 -1
  637. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts.map +0 -1
  638. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts.map +0 -1
  639. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts.map +0 -1
  640. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.d.ts.map +0 -1
  641. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.d.ts.map +0 -1
  642. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.d.ts.map +0 -1
  643. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts.map +0 -1
  644. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts.map +0 -1
  645. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts.map +0 -1
  646. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts.map +0 -1
  647. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts.map +0 -1
  648. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts.map +0 -1
  649. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts.map +0 -1
  650. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts.map +0 -1
  651. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts.map +0 -1
  652. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts.map +0 -1
  653. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts.map +0 -1
  654. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts.map +0 -1
  655. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts.map +0 -1
  656. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.d.ts.map +0 -1
  657. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.d.ts.map +0 -1
  658. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.d.ts.map +0 -1
  659. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.d.ts.map +0 -1
  660. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.d.ts.map +0 -1
  661. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.d.ts.map +0 -1
  662. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.d.ts.map +0 -1
  663. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.d.ts.map +0 -1
  664. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.d.ts.map +0 -1
  665. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.d.ts.map +0 -1
  666. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.d.ts +0 -40
  667. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.d.ts.map +0 -1
  668. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.js +0 -64
  669. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.js.map +0 -1
  670. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.d.ts.map +0 -1
  671. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.d.ts.map +0 -1
  672. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.d.ts.map +0 -1
  673. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts.map +0 -1
  674. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts.map +0 -1
  675. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.d.ts.map +0 -1
  676. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts.map +0 -1
  677. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts.map +0 -1
  678. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.d.ts.map +0 -1
  679. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton.d.ts.map +0 -1
  680. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButtonWithUnreadMessagesBadge.d.ts.map +0 -1
  681. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.d.ts.map +0 -1
  682. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.d.ts.map +0 -1
  683. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/NotificationIcon.d.ts.map +0 -1
  684. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PeopleButton.d.ts.map +0 -1
  685. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.d.ts.map +0 -1
  686. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts.map +0 -1
  687. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts.map +0 -1
  688. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts.map +0 -1
  689. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts.map +0 -1
  690. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts.map +0 -1
  691. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.d.ts.map +0 -1
  692. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.d.ts.map +0 -1
  693. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.d.ts.map +0 -1
  694. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.d.ts.map +0 -1
  695. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.d.ts.map +0 -1
  696. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.d.ts.map +0 -1
  697. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts.map +0 -1
  698. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.d.ts.map +0 -1
  699. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts.map +0 -1
  700. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.d.ts.map +0 -1
  701. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +0 -1
  702. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts.map +0 -1
  703. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.d.ts.map +0 -1
  704. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts.map +0 -1
  705. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts.map +0 -1
  706. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.d.ts.map +0 -1
  707. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts.map +0 -1
  708. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.d.ts.map +0 -1
  709. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.d.ts.map +0 -1
  710. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.d.ts.map +0 -1
  711. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.d.ts.map +0 -1
  712. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts.map +0 -1
  713. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.d.ts.map +0 -1
  714. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.d.ts.map +0 -1
  715. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.d.ts.map +0 -1
  716. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.d.ts.map +0 -1
  717. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts.map +0 -1
  718. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts.map +0 -1
  719. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts.map +0 -1
  720. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.d.ts.map +0 -1
  721. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts.map +0 -1
  722. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts.map +0 -1
  723. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.d.ts.map +0 -1
  724. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts.map +0 -1
  725. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.d.ts.map +0 -1
  726. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.d.ts.map +0 -1
  727. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.d.ts.map +0 -1
  728. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.d.ts.map +0 -1
  729. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.d.ts.map +0 -1
  730. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.d.ts.map +0 -1
  731. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts.map +0 -1
  732. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts.map +0 -1
  733. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.d.ts.map +0 -1
  734. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.d.ts.map +0 -1
  735. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.d.ts.map +0 -1
  736. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts.map +0 -1
  737. package/dist/dist-esm/react-composites/src/composites/common/adapters.d.ts.map +0 -1
  738. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts.map +0 -1
  739. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.d.ts.map +0 -1
  740. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.d.ts.map +0 -1
  741. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.d.ts.map +0 -1
  742. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts.map +0 -1
  743. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.d.ts.map +0 -1
  744. package/dist/dist-esm/react-composites/src/composites/common/utils.d.ts.map +0 -1
  745. package/dist/dist-esm/react-composites/src/composites/index.d.ts.map +0 -1
  746. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.d.ts.map +0 -1
  747. package/dist/dist-esm/react-composites/src/composites/localization/index.d.ts.map +0 -1
  748. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.d.ts.map +0 -1
  749. package/dist/dist-esm/react-composites/src/index-public.d.ts.map +0 -1
@@ -192,7 +192,7 @@ const fromFlatCommunicationIdentifier = (id) => {
192
192
  // Copyright (c) Microsoft Corporation.
193
193
  // Licensed under the MIT license.
194
194
  // GENERATED FILE. DO NOT EDIT MANUALLY.
195
- var telemetryVersion = '1.3.3-alpha-202208170014.0';
195
+ var telemetryVersion = '1.3.3-alpha-202208200013.0';
196
196
 
197
197
  // Copyright (c) Microsoft Corporation.
198
198
  /**
@@ -405,7 +405,7 @@ var __awaiter$u = (window && window.__awaiter) || function (thisArg, _arguments,
405
405
  *
406
406
  * @internal
407
407
  */
408
- const _isInCall = (callStatus) => !!callStatus && !['None', 'Disconnected', 'Connecting', 'LocalHold', 'RemoteHold', 'Ringing'].includes(callStatus);
408
+ const _isInCall = (callStatus) => !!callStatus && !['None', 'Disconnected', 'Connecting', 'LocalHold', 'Ringing', 'EarlyMedia'].includes(callStatus);
409
409
  /**
410
410
  * Check if the call state represents being in the lobby or waiting to be admitted.
411
411
  *
@@ -2271,6 +2271,12 @@ const useLocaleFileCardStringsTrampoline = () => {
2271
2271
  /* @conditional-compile-remove(file-sharing) */
2272
2272
  return useLocale$1().strings.sendBox;
2273
2273
  };
2274
+ /**
2275
+ * Identify if a participant state if part of the Calling states or Hold states.
2276
+ */
2277
+ const _isParticipantStateCallingOrHold = (participantState) => {
2278
+ return !!participantState && ['Idle', 'Connecting', 'EarlyMedia', 'Ringing', 'Hold'].includes(participantState);
2279
+ };
2274
2280
 
2275
2281
  // Copyright (c) Microsoft Corporation.
2276
2282
  /**
@@ -4348,7 +4354,7 @@ const participantStateMaxWidth = '5rem';
4348
4354
  /**
4349
4355
  * @private
4350
4356
  */
4351
- const participantStateStringStyles = {
4357
+ const participantStateStringStyles$1 = {
4352
4358
  maxWidth: participantStateMaxWidth,
4353
4359
  overflow: 'hidden',
4354
4360
  textOverflow: 'ellipsis',
@@ -4421,7 +4427,7 @@ const ParticipantItem = (props) => {
4421
4427
  setItemHovered(false);
4422
4428
  setMenuHidden(true);
4423
4429
  };
4424
- const participantStateString = participantStateStringTrampoline(props, strings);
4430
+ const participantStateString = participantStateStringTrampoline$1(props, strings);
4425
4431
  return (React__default['default'].createElement("div", { ref: containerRef, role: 'menuitem', "data-is-focusable": true, className: react.mergeStyles(participantItemContainerStyle({ localparticipant: me, clickable: !!menuItems }), styles === null || styles === void 0 ? void 0 : styles.root), onMouseEnter: () => setItemHovered(true), onMouseLeave: () => setItemHovered(false), onClick: () => {
4426
4432
  if (!participantStateString) {
4427
4433
  setItemHovered(true);
@@ -4436,13 +4442,13 @@ const ParticipantItem = (props) => {
4436
4442
  avatar,
4437
4443
  me && React__default['default'].createElement(react.Text, { className: meTextStyle }, strings.isMeText),
4438
4444
  React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(infoContainerStyle) }, onRenderIcon && onRenderIcon(props))),
4439
- !me && participantStateString ? (React__default['default'].createElement(react.Text, { "data-ui-id": "participant-item-state-string", className: react.mergeStyles(participantStateStringStyles) }, participantStateString)) : (React__default['default'].createElement("div", null, menuItems && menuItems.length > 0 && (React__default['default'].createElement(React__default['default'].Fragment, null,
4445
+ !me && participantStateString ? (React__default['default'].createElement(react.Text, { "data-ui-id": "participant-item-state-string", className: react.mergeStyles(participantStateStringStyles$1) }, participantStateString)) : (React__default['default'].createElement("div", null, menuItems && menuItems.length > 0 && (React__default['default'].createElement(React__default['default'].Fragment, null,
4440
4446
  menuButton,
4441
4447
  React__default['default'].createElement(react.ContextualMenu, { items: menuItems, hidden: menuHidden, target: containerRef, onItemClick: onDismissMenu, onDismiss: onDismissMenu, directionalHint: react.DirectionalHint.bottomRightEdge, className: contextualMenuStyle, calloutProps: {
4442
4448
  preventDismissOnEvent: _preventDismissOnEvent
4443
4449
  } })))))));
4444
4450
  };
4445
- const participantStateStringTrampoline = (props, strings) => {
4451
+ const participantStateStringTrampoline$1 = (props, strings) => {
4446
4452
  /* @conditional-compile-remove(one-to-n-calling) */
4447
4453
  /* @conditional-compile-remove(PSTN-calls) */
4448
4454
  return props.participantState === 'Idle' || props.participantState === 'Connecting'
@@ -4454,6 +4460,65 @@ const participantStateStringTrampoline = (props, strings) => {
4454
4460
  : undefined;
4455
4461
  };
4456
4462
 
4463
+ // Copyright (c) Microsoft Corporation.
4464
+ /**
4465
+ * @internal
4466
+ */
4467
+ const presenterPermissions = {
4468
+ cameraButton: true,
4469
+ microphoneButton: true,
4470
+ screenShare: true,
4471
+ removeParticipantButton: true
4472
+ };
4473
+ /**
4474
+ * @internal
4475
+ */
4476
+ const consumerPermissions = {
4477
+ cameraButton: false,
4478
+ microphoneButton: false,
4479
+ screenShare: false,
4480
+ removeParticipantButton: false
4481
+ };
4482
+ /**
4483
+ * @internal
4484
+ */
4485
+ const attendeePermissions = {
4486
+ cameraButton: true,
4487
+ microphoneButton: true,
4488
+ screenShare: false,
4489
+ removeParticipantButton: false
4490
+ };
4491
+ /**
4492
+ * @internal
4493
+ */
4494
+ const PermissionsContext = React.createContext(presenterPermissions);
4495
+ /**
4496
+ * @internal
4497
+ */
4498
+ const _PermissionsProvider = (props) => {
4499
+ const { permissions, children } = props;
4500
+ return React__default['default'].createElement(PermissionsContext.Provider, { value: permissions }, children);
4501
+ };
4502
+ /**
4503
+ * @internal
4504
+ * React hook to access permissions
4505
+ */
4506
+ const _usePermissions = () => React.useContext(PermissionsContext);
4507
+ /**
4508
+ * @internal
4509
+ */
4510
+ const _getPermissions = (role) => {
4511
+ if (role === 'Consumer') {
4512
+ return consumerPermissions;
4513
+ }
4514
+ else if (role === 'Attendee') {
4515
+ return attendeePermissions;
4516
+ }
4517
+ else {
4518
+ return presenterPermissions;
4519
+ }
4520
+ };
4521
+
4457
4522
  // Copyright (c) Microsoft Corporation.
4458
4523
  /**
4459
4524
  * @private
@@ -4534,6 +4599,11 @@ const ParticipantList = (props) => {
4534
4599
  const createParticipantMenuItems = (participant) => {
4535
4600
  var _a, _b;
4536
4601
  let menuItems = [];
4602
+ let disabled = !participant.isRemovable;
4603
+ /* @conditional-compile-remove(rooms) */
4604
+ const isRemovable = _usePermissions().removeParticipantButton;
4605
+ /* @conditional-compile-remove(rooms) */
4606
+ disabled = !isRemovable || disabled;
4537
4607
  if (participant.userId !== myUserId && onRemoveParticipant) {
4538
4608
  menuItems.push({
4539
4609
  key: 'remove',
@@ -4542,7 +4612,7 @@ const ParticipantList = (props) => {
4542
4612
  itemProps: {
4543
4613
  styles: (_b = (_a = props.styles) === null || _a === void 0 ? void 0 : _a.participantItemStyles) === null || _b === void 0 ? void 0 : _b.participantSubMenuItemsStyles
4544
4614
  },
4545
- disabled: !participant.isRemovable,
4615
+ disabled: disabled,
4546
4616
  'data-ui-id': ids.participantListRemoveParticipantButton
4547
4617
  });
4548
4618
  }
@@ -4769,15 +4839,6 @@ const displayNameStyle = {
4769
4839
  textOverflow: 'ellipsis',
4770
4840
  maxWidth: '100%'
4771
4841
  };
4772
- /**
4773
- * @private
4774
- */
4775
- const participantStateStyle$1 = {
4776
- textAlign: 'center',
4777
- paddingTop: '0.5rem',
4778
- fontWeight: 600,
4779
- fontSize: '0.75rem'
4780
- };
4781
4842
  /**
4782
4843
  * @private
4783
4844
  */
@@ -4791,15 +4852,21 @@ const iconContainerStyle = {
4791
4852
  /**
4792
4853
  * @private
4793
4854
  */
4794
- const isSpeakingBorderDiv = {
4795
- zIndex: 1,
4796
- width: '100%',
4797
- height: '100%',
4798
- position: 'absolute',
4799
- top: '0',
4800
- left: '0',
4801
- // Ensure the isSpeaking element does not steal any pointer events such as onClick events
4802
- pointerEvents: 'none'
4855
+ const participantStateStringStyles = (showLabel) => {
4856
+ return {
4857
+ textAlign: 'center',
4858
+ minWidth: '3rem',
4859
+ color: 'inherit',
4860
+ width: showLabel ? 'auto' : '100%',
4861
+ marginRight: showLabel ? 0 : 'none',
4862
+ marginLeft: showLabel ? 'auto' : 'none',
4863
+ fontSize: '0.75rem',
4864
+ lineHeight: 'normal',
4865
+ overflow: 'hidden',
4866
+ textOverflow: 'ellipsis',
4867
+ whiteSpace: 'nowrap',
4868
+ padding: '0.25rem'
4869
+ };
4803
4870
  };
4804
4871
 
4805
4872
  // Copyright (c) Microsoft Corporation.
@@ -4817,26 +4884,10 @@ const DEFAULT_PERSONA_MAX_SIZE_PX = 100;
4817
4884
  // Coin min size is set PersonaSize.size32
4818
4885
  const DEFAULT_PERSONA_MIN_SIZE_PX = 32;
4819
4886
  const DefaultPlaceholder = (props) => {
4820
- const { text, noVideoAvailableAriaLabel, coinSize, hidePersonaDetails, participantState, strings } = props;
4821
- const participantStateString = React__default['default'].useMemo(() => {
4822
- if (!strings) {
4823
- return;
4824
- }
4825
- if (participantState === 'Idle' || participantState === 'Connecting') {
4826
- return strings === null || strings === void 0 ? void 0 : strings.participantStateConnecting;
4827
- }
4828
- else if (participantState === 'EarlyMedia' || participantState === 'Ringing') {
4829
- return strings === null || strings === void 0 ? void 0 : strings.participantStateRinging;
4830
- }
4831
- else if (participantState === 'Hold') {
4832
- return strings === null || strings === void 0 ? void 0 : strings.participantStateHold;
4833
- }
4834
- return;
4835
- }, [participantState, strings]);
4887
+ const { text, noVideoAvailableAriaLabel, coinSize, hidePersonaDetails } = props;
4836
4888
  return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
4837
4889
  React__default['default'].createElement(react.Stack, { styles: defaultPersonaStyles },
4838
- React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false }),
4839
- participantStateString && React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle$1) }, participantStateString))));
4890
+ React__default['default'].createElement(react.Persona, { coinSize: coinSize, hidePersonaDetails: hidePersonaDetails, text: text !== null && text !== void 0 ? text : '', initialsTextColor: "white", "aria-label": noVideoAvailableAriaLabel !== null && noVideoAvailableAriaLabel !== void 0 ? noVideoAvailableAriaLabel : '', showOverflowTooltip: false }))));
4840
4891
  };
4841
4892
  const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
4842
4893
  /**
@@ -4847,15 +4898,10 @@ const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
4847
4898
  * @public
4848
4899
  */
4849
4900
  const VideoTile = (props) => {
4850
- const { children, displayName, initialsName, isMirrored, isMuted, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX,
4851
- /* @conditional-compile-remove(one-to-n-calling) */
4852
- /* @conditional-compile-remove(PSTN-calls) */
4853
- participantState } = props;
4854
- /* @conditional-compile-remove(one-to-n-calling) */
4855
- // @conditional-compile-remove(PSTN-calls)
4856
- const strings = Object.assign(Object.assign({}, useLocale$1().strings.videoTile), props.strings);
4901
+ const { children, displayName, initialsName, isMirrored, isMuted, onRenderPlaceholder, renderElement, showLabel = true, showMuteIndicator = true, styles, userId, noVideoAvailableAriaLabel, isSpeaking, personaMinSize = DEFAULT_PERSONA_MIN_SIZE_PX, personaMaxSize = DEFAULT_PERSONA_MAX_SIZE_PX } = props;
4857
4902
  const [personaSize, setPersonaSize] = React.useState(100);
4858
4903
  const videoTileRef = React.useRef(null);
4904
+ const locale = useLocale$1();
4859
4905
  const theme = useTheme();
4860
4906
  const isVideoRendered = !!renderElement;
4861
4907
  const observer = React.useRef(new ResizeObserver((entries) => {
@@ -4876,233 +4922,55 @@ const VideoTile = (props) => {
4876
4922
  noVideoAvailableAriaLabel,
4877
4923
  coinSize: personaSize,
4878
4924
  styles: defaultPersonaStyles,
4879
- hidePersonaDetails: true,
4880
- /* @conditional-compile-remove(one-to-n-calling) */
4881
- /* @conditional-compile-remove(PSTN-calls) */
4882
- participantState: participantState
4925
+ hidePersonaDetails: true
4883
4926
  };
4884
4927
  const videoHintWithBorderRadius = react.mergeStyles(videoHint, { borderRadius: theme.effects.roundedCorner4 });
4885
4928
  const tileInfoStyle = React.useMemo(() => react.mergeStyles(isVideoRendered ? videoHintWithBorderRadius : disabledVideoHint, getVideoTileOverrideColor(isVideoRendered, theme, 'neutralPrimary'), styles === null || styles === void 0 ? void 0 : styles.displayNameContainer), [isVideoRendered, videoHintWithBorderRadius, theme, styles === null || styles === void 0 ? void 0 : styles.displayNameContainer]);
4886
4929
  const ids = useIdentifiers();
4930
+ const canShowLabel = showLabel && (displayName || (showMuteIndicator && isMuted));
4931
+ const participantStateString = participantStateStringTrampoline(props, locale);
4887
4932
  return (React__default['default'].createElement(reactNorthstar.Ref, { innerRef: videoTileRef },
4888
4933
  React__default['default'].createElement(react.Stack, { "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
4889
4934
  background: theme.palette.neutralLighter,
4890
4935
  borderRadius: theme.effects.roundedCorner4
4891
- }, styles === null || styles === void 0 ? void 0 : styles.root) },
4892
- React__default['default'].createElement("div", { className: react.mergeStyles(isSpeakingBorderDiv, {
4936
+ }, isSpeaking && {
4937
+ '&::before': {
4938
+ content: `''`,
4939
+ position: 'absolute',
4940
+ zIndex: 1,
4941
+ border: `0.25rem solid ${theme.palette.themePrimary}`,
4893
4942
  borderRadius: theme.effects.roundedCorner4,
4894
- border: `0.25rem solid ${isSpeaking ? theme.palette.themePrimary : 'transparent'}`
4895
- }) }),
4896
- isVideoRendered ? (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, isMirrored && { transform: 'scaleX(-1)' }, styles === null || styles === void 0 ? void 0 : styles.videoContainer) }, renderElement)) : (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles) }, onRenderPlaceholder ? (onRenderPlaceholder(userId !== null && userId !== void 0 ? userId : '', placeholderOptions, DefaultPlaceholder)) : (React__default['default'].createElement(DefaultPlaceholder, Object.assign({}, placeholderOptions, {
4897
- /* @conditional-compile-remove(one-to-n-calling) */
4898
- // @conditional-compile-remove(PSTN-calls)
4899
- strings: strings }))))),
4900
- showLabel && (displayName || (showMuteIndicator && isMuted)) && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoContainerStyle },
4901
- React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoStyle },
4902
- displayName && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(displayNameStyle), title: displayName }, displayName)),
4943
+ width: '100%',
4944
+ height: '100%'
4945
+ }
4946
+ }, styles === null || styles === void 0 ? void 0 : styles.root) },
4947
+ isVideoRendered ? (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, isMirrored && { transform: 'scaleX(-1)' }, styles === null || styles === void 0 ? void 0 : styles.videoContainer) }, renderElement)) : (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles) }, onRenderPlaceholder ? (onRenderPlaceholder(userId !== null && userId !== void 0 ? userId : '', placeholderOptions, DefaultPlaceholder)) : (React__default['default'].createElement(DefaultPlaceholder, Object.assign({}, placeholderOptions))))),
4948
+ (canShowLabel || participantStateString) && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoContainerStyle, tokens: tileInfoContainerTokens },
4949
+ canShowLabel && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoStyle },
4950
+ React__default['default'].createElement(react.Text, { className: react.mergeStyles(displayNameStyle), title: displayName }, displayName),
4903
4951
  showMuteIndicator && isMuted && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
4904
- React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" })))))),
4952
+ React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" }))))),
4953
+ participantStateString && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStringStyles(showLabel)) }, participantStateString)))),
4905
4954
  children && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === void 0 ? void 0 : styles.overlayContainer) }, children)))));
4906
4955
  };
4907
-
4908
- // Copyright (c) Microsoft Corporation.
4909
- /**
4910
- * A memoized version of VideoTile for rendering remote participants. React.memo is used for a performance
4911
- * boost by memoizing the same rendered component to avoid rerendering a VideoTile when its position in the
4912
- * array changes causing a rerender in the parent component. https://reactjs.org/docs/react-api.html#reactmemo
4913
- *
4914
- * @internal
4915
- */
4916
- const _RemoteVideoTile = React__default['default'].memo((props) => {
4917
- const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
4918
- isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator,
4956
+ const participantStateStringTrampoline = (props, locale) => {
4919
4957
  /* @conditional-compile-remove(one-to-n-calling) */
4920
4958
  /* @conditional-compile-remove(PSTN-calls) */
4921
- participantState } = props;
4922
- const remoteVideoStreamProps = React.useMemo(() => ({
4923
- isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
4924
- isScreenSharingOn,
4925
- isStreamAvailable: isAvailable,
4926
- isStreamReceiving: isReceiving,
4927
- onCreateRemoteStreamView,
4928
- onDisposeRemoteStreamView,
4929
- remoteParticipantId: userId,
4930
- renderElementExists: !!renderElement,
4931
- scalingMode: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.scalingMode
4932
- }), [
4933
- isAvailable,
4934
- isReceiving,
4935
- isScreenSharingOn,
4936
- onCreateRemoteStreamView,
4937
- onDisposeRemoteStreamView,
4938
- remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
4939
- remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.scalingMode,
4940
- renderElement,
4941
- userId
4942
- ]);
4943
- // Handle creating, destroying and updating the video stream as necessary
4944
- useRemoteVideoStreamLifecycleMaintainer(remoteVideoStreamProps);
4945
- const renderVideoStreamElement = React.useMemo(() => {
4946
- // Checking if renderElement is well defined or not as calling SDK has a number of video streams limitation which
4947
- // implies that, after their threshold, all streams have no child (blank video)
4948
- if (!renderElement || !renderElement.childElementCount) {
4949
- // Returning `undefined` results in the placeholder with avatar being shown
4950
- return undefined;
4951
- }
4952
- return (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' }));
4953
- }, [renderElement, isReceiving]);
4954
- return (React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, showLabel: props.showLabel, personaMinSize: props.personaMinSize,
4955
- /* @conditional-compile-remove(one-to-n-calling) */
4956
- /* @conditional-compile-remove(PSTN-calls) */
4957
- participantState: participantState }));
4958
- });
4959
-
4960
- // Copyright (c) Microsoft Corporation.
4961
- // Licensed under the MIT license.
4962
- /**
4963
- * Horizontal Gallery button width in rem
4964
- */
4965
- const HORIZONTAL_GALLERY_BUTTON_WIDTH = 1.75;
4966
- /**
4967
- * @private
4968
- */
4969
- const leftRightButtonStyles = (theme) => {
4970
- return {
4971
- background: 'none',
4972
- padding: 0,
4973
- height: 'auto',
4974
- minWidth: `${HORIZONTAL_GALLERY_BUTTON_WIDTH}rem`,
4975
- maxWidth: `${HORIZONTAL_GALLERY_BUTTON_WIDTH}rem`,
4976
- border: `1px solid ${theme.palette.neutralLight}`,
4977
- borderRadius: theme.effects.roundedCorner4
4978
- };
4979
- };
4980
- /**
4981
- * Horizontal Gallery gap size in rem between tiles and buttons
4982
- */
4983
- const HORIZONTAL_GALLERY_GAP = 0.5;
4984
- /**
4985
- * @private
4986
- */
4987
- const rootStyle = {
4988
- height: '100%',
4989
- width: '100%',
4990
- gap: `${HORIZONTAL_GALLERY_GAP}rem`
4991
- };
4992
- /**
4993
- * @private
4994
- */
4995
- const childrenContainerStyle = {
4996
- height: '100%',
4997
- gap: `${HORIZONTAL_GALLERY_GAP}rem`
4998
- };
4999
-
5000
- // Copyright (c) Microsoft Corporation.
5001
- /**
5002
- * {@link HorizontalGallery} default children per page
5003
- */
5004
- const DEFAULT_CHILDREN_PER_PAGE = 5;
5005
- /**
5006
- * Renders a horizontal gallery that parents children horizontally. Handles pagination based on the childrenPerPage prop.
5007
- * @param props - HorizontalGalleryProps {@link @azure/communication-react#HorizontalGalleryProps}
5008
- * @returns
5009
- */
5010
- const HorizontalGallery = (props) => {
5011
- var _a, _b;
5012
- const { children, childrenPerPage = DEFAULT_CHILDREN_PER_PAGE, styles } = props;
5013
- const ids = useIdentifiers();
5014
- const [page, setPage] = React.useState(0);
5015
- const numberOfChildren = React__default['default'].Children.count(children);
5016
- const lastPage = Math.ceil(numberOfChildren / childrenPerPage) - 1;
5017
- const paginatedChildren = React.useMemo(() => {
5018
- return bucketize(React__default['default'].Children.toArray(children), childrenPerPage);
5019
- }, [children, childrenPerPage]);
5020
- // If children per page is 0 or less return empty element
5021
- if (childrenPerPage <= 0) {
5022
- return React__default['default'].createElement(React__default['default'].Fragment, null);
5023
- }
5024
- const firstIndexOfCurrentPage = page * childrenPerPage;
5025
- const clippedPage = firstIndexOfCurrentPage < numberOfChildren - 1 ? page : lastPage;
5026
- const childrenOnCurrentPage = paginatedChildren[clippedPage];
5027
- const showButtons = numberOfChildren > childrenPerPage;
5028
- const disablePreviousButton = page === 0;
5029
- const disableNextButton = page === lastPage;
5030
- return (React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(rootStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root) },
5031
- showButtons && (React__default['default'].createElement(HorizontalGalleryNavigationButton, { key: "previous-nav-button", icon: React__default['default'].createElement(react.Icon, { iconName: "HorizontalGalleryLeftButton" }), styles: styles === null || styles === void 0 ? void 0 : styles.previousButton, onClick: () => setPage(Math.max(0, Math.min(lastPage, page - 1))), disabled: disablePreviousButton, identifier: ids.horizontalGalleryLeftNavButton })),
5032
- React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(childrenContainerStyle, { '> *': (_b = props.styles) === null || _b === void 0 ? void 0 : _b.children }) }, childrenOnCurrentPage),
5033
- showButtons && (React__default['default'].createElement(HorizontalGalleryNavigationButton, { key: "next-nav-button", icon: React__default['default'].createElement(react.Icon, { iconName: "HorizontalGalleryRightButton" }), styles: styles === null || styles === void 0 ? void 0 : styles.nextButton, onClick: () => setPage(Math.min(lastPage, page + 1)), disabled: disableNextButton, identifier: ids.horizontalGalleryRightNavButton }))));
5034
- };
5035
- const HorizontalGalleryNavigationButton = (props) => {
5036
- const theme = useTheme();
5037
- return (React__default['default'].createElement(react.DefaultButton, { className: react.mergeStyles(leftRightButtonStyles(theme), props.styles), onClick: props.onClick, disabled: props.disabled, "data-ui-id": props.identifier }, props.icon));
5038
- };
5039
- function bucketize(arr, bucketSize) {
5040
- const bucketArray = [];
5041
- if (bucketSize <= 0) {
5042
- return bucketArray;
5043
- }
5044
- for (let i = 0; i < arr.length; i += bucketSize) {
5045
- bucketArray.push(arr.slice(i, i + bucketSize));
5046
- }
5047
- return bucketArray;
5048
- }
5049
-
5050
- // Copyright (c) Microsoft Corporation.
5051
- /**
5052
- * Wrapped HorizontalGallery that adjusts the number of items per page based on the
5053
- * available width obtained from a ResizeObserver, width per child, gap width, and button width
5054
- */
5055
- const ResponsiveHorizontalGallery = (props) => {
5056
- const { childWidthRem, gapWidthRem, buttonWidthRem = 0 } = props;
5057
- const containerRef = React.useRef(null);
5058
- const containerWidth = _useContainerWidth(containerRef);
5059
- const leftPadding = containerRef.current ? parseFloat(getComputedStyle(containerRef.current).paddingLeft) : 0;
5060
- const rightPadding = containerRef.current ? parseFloat(getComputedStyle(containerRef.current).paddingRight) : 0;
5061
- const childrenPerPage = calculateChildrenPerPage({
5062
- numberOfChildren: React__default['default'].Children.count(props.children),
5063
- containerWidth: (containerWidth !== null && containerWidth !== void 0 ? containerWidth : 0) - leftPadding - rightPadding,
5064
- childWidthRem,
5065
- gapWidthRem,
5066
- buttonWidthRem
5067
- });
5068
- return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(props.containerStyles) },
5069
- React__default['default'].createElement(HorizontalGallery, { childrenPerPage: childrenPerPage, styles: props.horizontalGalleryStyles }, props.children)));
4959
+ const strings = Object.assign(Object.assign({}, locale.strings.videoTile), props.strings);
4960
+ /* @conditional-compile-remove(one-to-n-calling) */
4961
+ /* @conditional-compile-remove(PSTN-calls) */
4962
+ return props.participantState === 'Idle' || props.participantState === 'Connecting'
4963
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateConnecting
4964
+ : props.participantState === 'EarlyMedia' || props.participantState === 'Ringing'
4965
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateRinging
4966
+ : props.participantState === 'Hold'
4967
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateHold
4968
+ : undefined;
5070
4969
  };
5071
- /**
5072
- * Helper function to calculate children per page for HorizontalGallery based on width of container, child, buttons, and
5073
- * gaps in between
5074
- */
5075
- const calculateChildrenPerPage = (args) => {
5076
- const { numberOfChildren, containerWidth, buttonWidthRem, childWidthRem, gapWidthRem } = args;
5077
- const childWidth = _convertRemToPx(childWidthRem);
5078
- const gapWidth = _convertRemToPx(gapWidthRem);
5079
- /** First check how many children can fit in containerWidth.
5080
- * __________________________________
5081
- * | || |
5082
- * | || |
5083
- * |________________||________________|
5084
- * <-----------containerWidth--------->
5085
- * containerWidth = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.
5086
- */
5087
- const numberOfChildrenInContainer = Math.floor((containerWidth + gapWidth) / (childWidth + gapWidth));
5088
- // If all children fit then return numberOfChildrenInContainer
5089
- if (numberOfChildren <= numberOfChildrenInContainer) {
5090
- return numberOfChildrenInContainer;
5091
- }
5092
- const buttonWidth = _convertRemToPx(buttonWidthRem);
5093
- /** We know we need to paginate. So we need to subtract the buttonWidth twice and gapWidth twice from
5094
- * containerWidth to compute childrenSpace
5095
- * <-----------containerWidth--------->
5096
- * __________________________________
5097
- * | || || || |
5098
- * |<|| || ||>|
5099
- * |_||_____________||_____________||_|
5100
- * <-------childrenSpace------>
5101
- */
5102
- const childrenSpace = containerWidth - 2 * buttonWidth - 2 * gapWidth;
5103
- // Now that we have childrenSpace width we can figure out how many children can fit in childrenSpace.
5104
- // childrenSpace = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.
5105
- return Math.floor((childrenSpace + gapWidth) / (childWidth + gapWidth));
4970
+ const tileInfoContainerTokens = {
4971
+ // A horizontal Stack sets the left margin to 0 for all it's children.
4972
+ // We need to allow the children to set their own margins
4973
+ childrenGap: 'none'
5106
4974
  };
5107
4975
 
5108
4976
  // Copyright (c) Microsoft Corporation.
@@ -5275,13 +5143,247 @@ const localVideoCameraCycleButtonStyles = (theme) => {
5275
5143
  };
5276
5144
  };
5277
5145
  /**
5278
- * Styles for the local video tile modal when it is focused, will cause keyboard move icon to appear over video
5279
- * @private
5146
+ * Styles for the local video tile modal when it is focused, will cause keyboard move icon to appear over video
5147
+ * @private
5148
+ */
5149
+ const localVideoModalStyles = {
5150
+ keyboardMoveIconContainer: {
5151
+ zIndex: LOCAL_VIDEO_TILE_ZINDEX + 1 // zIndex to set the keyboard movement Icon above the other layers in the video tile.
5152
+ }
5153
+ };
5154
+
5155
+ // Copyright (c) Microsoft Corporation.
5156
+ /**
5157
+ * A memoized version of VideoTile for rendering remote participants. React.memo is used for a performance
5158
+ * boost by memoizing the same rendered component to avoid rerendering a VideoTile when its position in the
5159
+ * array changes causing a rerender in the parent component. https://reactjs.org/docs/react-api.html#reactmemo
5160
+ *
5161
+ * @internal
5162
+ */
5163
+ const _RemoteVideoTile = React__default['default'].memo((props) => {
5164
+ const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
5165
+ isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator } = props;
5166
+ const containerRef = React__default['default'].useRef(null);
5167
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
5168
+ const containerWidth = _useContainerWidth(containerRef);
5169
+ const remoteVideoStreamProps = React.useMemo(() => ({
5170
+ isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
5171
+ isScreenSharingOn,
5172
+ isStreamAvailable: isAvailable,
5173
+ isStreamReceiving: isReceiving,
5174
+ onCreateRemoteStreamView,
5175
+ onDisposeRemoteStreamView,
5176
+ remoteParticipantId: userId,
5177
+ renderElementExists: !!renderElement,
5178
+ scalingMode: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.scalingMode
5179
+ }), [
5180
+ isAvailable,
5181
+ isReceiving,
5182
+ isScreenSharingOn,
5183
+ onCreateRemoteStreamView,
5184
+ onDisposeRemoteStreamView,
5185
+ remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
5186
+ remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.scalingMode,
5187
+ renderElement,
5188
+ userId
5189
+ ]);
5190
+ // Handle creating, destroying and updating the video stream as necessary
5191
+ useRemoteVideoStreamLifecycleMaintainer(remoteVideoStreamProps);
5192
+ const renderVideoStreamElement = React.useMemo(() => {
5193
+ // Checking if renderElement is well defined or not as calling SDK has a number of video streams limitation which
5194
+ // implies that, after their threshold, all streams have no child (blank video)
5195
+ if (!renderElement || !renderElement.childElementCount) {
5196
+ // Returning `undefined` results in the placeholder with avatar being shown
5197
+ return undefined;
5198
+ }
5199
+ return (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' }));
5200
+ }, [renderElement, isReceiving]);
5201
+ const showLabelTrampoline = React.useMemo(() => {
5202
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
5203
+ return canShowLabel(props.participantState, props.showLabel, containerWidth);
5204
+ }, [
5205
+ /* @conditional-compile-remove(one-to-n-calling) */
5206
+ /* @conditional-compile-remove(PSTN-calls) */
5207
+ containerWidth,
5208
+ props
5209
+ ]);
5210
+ return (
5211
+ // IMPORTANT: This div needs to be a flex so that the children take up its full width and height
5212
+ React__default['default'].createElement("div", { ref: containerRef, style: { display: 'flex', flexGrow: 1 } },
5213
+ React__default['default'].createElement(VideoTile, { key: userId, userId: userId, renderElement: renderVideoStreamElement, displayName: displayName, onRenderPlaceholder: onRenderAvatar, isMuted: isMuted, isSpeaking: isSpeaking, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, showLabel: showLabelTrampoline,
5214
+ /* @conditional-compile-remove(one-to-n-calling) */
5215
+ /* @conditional-compile-remove(PSTN-calls) */
5216
+ participantState: props.participantState })));
5217
+ });
5218
+ /* @conditional-compile-remove(one-to-n-calling) */
5219
+ /* @conditional-compile-remove(PSTN-calls) */
5220
+ /**
5221
+ * Determines if a label should be shown for a remote video tile.
5222
+ * When the remote video tile is rendered as a small tile in horizontal gallery,
5223
+ * we hide the participants name if they are in hold/connecting states.
5224
+ */
5225
+ const canShowLabel = (participantState, showLabel, containerWidth) => {
5226
+ // if showLabel has been explicitly set to false, don't show the label
5227
+ if (showLabel === false) {
5228
+ return showLabel;
5229
+ }
5230
+ // If the participant state is in calling or hold and
5231
+ // the container width is less than the small horizontal gallery tile size,
5232
+ // don't show the label (participant name)
5233
+ if (_isParticipantStateCallingOrHold(participantState)) {
5234
+ if (containerWidth && containerWidth / 16 <= SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.width) {
5235
+ return false;
5236
+ }
5237
+ }
5238
+ return showLabel;
5239
+ };
5240
+
5241
+ // Copyright (c) Microsoft Corporation.
5242
+ // Licensed under the MIT license.
5243
+ /**
5244
+ * Horizontal Gallery button width in rem
5245
+ */
5246
+ const HORIZONTAL_GALLERY_BUTTON_WIDTH = 1.75;
5247
+ /**
5248
+ * @private
5249
+ */
5250
+ const leftRightButtonStyles = (theme) => {
5251
+ return {
5252
+ background: 'none',
5253
+ padding: 0,
5254
+ height: 'auto',
5255
+ minWidth: `${HORIZONTAL_GALLERY_BUTTON_WIDTH}rem`,
5256
+ maxWidth: `${HORIZONTAL_GALLERY_BUTTON_WIDTH}rem`,
5257
+ border: `1px solid ${theme.palette.neutralLight}`,
5258
+ borderRadius: theme.effects.roundedCorner4
5259
+ };
5260
+ };
5261
+ /**
5262
+ * Horizontal Gallery gap size in rem between tiles and buttons
5263
+ */
5264
+ const HORIZONTAL_GALLERY_GAP = 0.5;
5265
+ /**
5266
+ * @private
5267
+ */
5268
+ const rootStyle = {
5269
+ height: '100%',
5270
+ width: '100%',
5271
+ gap: `${HORIZONTAL_GALLERY_GAP}rem`
5272
+ };
5273
+ /**
5274
+ * @private
5275
+ */
5276
+ const childrenContainerStyle = {
5277
+ height: '100%',
5278
+ gap: `${HORIZONTAL_GALLERY_GAP}rem`
5279
+ };
5280
+
5281
+ // Copyright (c) Microsoft Corporation.
5282
+ /**
5283
+ * {@link HorizontalGallery} default children per page
5284
+ */
5285
+ const DEFAULT_CHILDREN_PER_PAGE = 5;
5286
+ /**
5287
+ * Renders a horizontal gallery that parents children horizontally. Handles pagination based on the childrenPerPage prop.
5288
+ * @param props - HorizontalGalleryProps {@link @azure/communication-react#HorizontalGalleryProps}
5289
+ * @returns
5290
+ */
5291
+ const HorizontalGallery = (props) => {
5292
+ var _a, _b;
5293
+ const { children, childrenPerPage = DEFAULT_CHILDREN_PER_PAGE, styles } = props;
5294
+ const ids = useIdentifiers();
5295
+ const [page, setPage] = React.useState(0);
5296
+ const numberOfChildren = React__default['default'].Children.count(children);
5297
+ const lastPage = Math.ceil(numberOfChildren / childrenPerPage) - 1;
5298
+ const paginatedChildren = React.useMemo(() => {
5299
+ return bucketize(React__default['default'].Children.toArray(children), childrenPerPage);
5300
+ }, [children, childrenPerPage]);
5301
+ // If children per page is 0 or less return empty element
5302
+ if (childrenPerPage <= 0) {
5303
+ return React__default['default'].createElement(React__default['default'].Fragment, null);
5304
+ }
5305
+ const firstIndexOfCurrentPage = page * childrenPerPage;
5306
+ const clippedPage = firstIndexOfCurrentPage < numberOfChildren - 1 ? page : lastPage;
5307
+ const childrenOnCurrentPage = paginatedChildren[clippedPage];
5308
+ const showButtons = numberOfChildren > childrenPerPage;
5309
+ const disablePreviousButton = page === 0;
5310
+ const disableNextButton = page === lastPage;
5311
+ return (React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(rootStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root) },
5312
+ showButtons && (React__default['default'].createElement(HorizontalGalleryNavigationButton, { key: "previous-nav-button", icon: React__default['default'].createElement(react.Icon, { iconName: "HorizontalGalleryLeftButton" }), styles: styles === null || styles === void 0 ? void 0 : styles.previousButton, onClick: () => setPage(Math.max(0, Math.min(lastPage, page - 1))), disabled: disablePreviousButton, identifier: ids.horizontalGalleryLeftNavButton })),
5313
+ React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(childrenContainerStyle, { '> *': (_b = props.styles) === null || _b === void 0 ? void 0 : _b.children }) }, childrenOnCurrentPage),
5314
+ showButtons && (React__default['default'].createElement(HorizontalGalleryNavigationButton, { key: "next-nav-button", icon: React__default['default'].createElement(react.Icon, { iconName: "HorizontalGalleryRightButton" }), styles: styles === null || styles === void 0 ? void 0 : styles.nextButton, onClick: () => setPage(Math.min(lastPage, page + 1)), disabled: disableNextButton, identifier: ids.horizontalGalleryRightNavButton }))));
5315
+ };
5316
+ const HorizontalGalleryNavigationButton = (props) => {
5317
+ const theme = useTheme();
5318
+ return (React__default['default'].createElement(react.DefaultButton, { className: react.mergeStyles(leftRightButtonStyles(theme), props.styles), onClick: props.onClick, disabled: props.disabled, "data-ui-id": props.identifier }, props.icon));
5319
+ };
5320
+ function bucketize(arr, bucketSize) {
5321
+ const bucketArray = [];
5322
+ if (bucketSize <= 0) {
5323
+ return bucketArray;
5324
+ }
5325
+ for (let i = 0; i < arr.length; i += bucketSize) {
5326
+ bucketArray.push(arr.slice(i, i + bucketSize));
5327
+ }
5328
+ return bucketArray;
5329
+ }
5330
+
5331
+ // Copyright (c) Microsoft Corporation.
5332
+ /**
5333
+ * Wrapped HorizontalGallery that adjusts the number of items per page based on the
5334
+ * available width obtained from a ResizeObserver, width per child, gap width, and button width
5335
+ */
5336
+ const ResponsiveHorizontalGallery = (props) => {
5337
+ const { childWidthRem, gapWidthRem, buttonWidthRem = 0 } = props;
5338
+ const containerRef = React.useRef(null);
5339
+ const containerWidth = _useContainerWidth(containerRef);
5340
+ const leftPadding = containerRef.current ? parseFloat(getComputedStyle(containerRef.current).paddingLeft) : 0;
5341
+ const rightPadding = containerRef.current ? parseFloat(getComputedStyle(containerRef.current).paddingRight) : 0;
5342
+ const childrenPerPage = calculateChildrenPerPage({
5343
+ numberOfChildren: React__default['default'].Children.count(props.children),
5344
+ containerWidth: (containerWidth !== null && containerWidth !== void 0 ? containerWidth : 0) - leftPadding - rightPadding,
5345
+ childWidthRem,
5346
+ gapWidthRem,
5347
+ buttonWidthRem
5348
+ });
5349
+ return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(props.containerStyles) },
5350
+ React__default['default'].createElement(HorizontalGallery, { childrenPerPage: childrenPerPage, styles: props.horizontalGalleryStyles }, props.children)));
5351
+ };
5352
+ /**
5353
+ * Helper function to calculate children per page for HorizontalGallery based on width of container, child, buttons, and
5354
+ * gaps in between
5280
5355
  */
5281
- const localVideoModalStyles = {
5282
- keyboardMoveIconContainer: {
5283
- zIndex: LOCAL_VIDEO_TILE_ZINDEX + 1 // zIndex to set the keyboard movement Icon above the other layers in the video tile.
5356
+ const calculateChildrenPerPage = (args) => {
5357
+ const { numberOfChildren, containerWidth, buttonWidthRem, childWidthRem, gapWidthRem } = args;
5358
+ const childWidth = _convertRemToPx(childWidthRem);
5359
+ const gapWidth = _convertRemToPx(gapWidthRem);
5360
+ /** First check how many children can fit in containerWidth.
5361
+ * __________________________________
5362
+ * | || |
5363
+ * | || |
5364
+ * |________________||________________|
5365
+ * <-----------containerWidth--------->
5366
+ * containerWidth = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.
5367
+ */
5368
+ const numberOfChildrenInContainer = Math.floor((containerWidth + gapWidth) / (childWidth + gapWidth));
5369
+ // If all children fit then return numberOfChildrenInContainer
5370
+ if (numberOfChildren <= numberOfChildrenInContainer) {
5371
+ return numberOfChildrenInContainer;
5284
5372
  }
5373
+ const buttonWidth = _convertRemToPx(buttonWidthRem);
5374
+ /** We know we need to paginate. So we need to subtract the buttonWidth twice and gapWidth twice from
5375
+ * containerWidth to compute childrenSpace
5376
+ * <-----------containerWidth--------->
5377
+ * __________________________________
5378
+ * | || || || |
5379
+ * |<|| || ||>|
5380
+ * |_||_____________||_____________||_|
5381
+ * <-------childrenSpace------>
5382
+ */
5383
+ const childrenSpace = containerWidth - 2 * buttonWidth - 2 * gapWidth;
5384
+ // Now that we have childrenSpace width we can figure out how many children can fit in childrenSpace.
5385
+ // childrenSpace = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.
5386
+ return Math.floor((childrenSpace + gapWidth) / (childWidth + gapWidth));
5285
5387
  };
5286
5388
 
5287
5389
  // Copyright (c) Microsoft Corporation.
@@ -6195,12 +6297,7 @@ const VideoGallery = (props) => {
6195
6297
  maxDominantSpeakers: maxRemoteVideoStreams
6196
6298
  }).slice(0, maxRemoteVideoStreams);
6197
6299
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
6198
- visibleCallingParticipants.current = smartDominantSpeakerParticipants({
6199
- participants: (_b = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => p.state === ('Connecting' ))) !== null && _b !== void 0 ? _b : [],
6200
- dominantSpeakers,
6201
- lastVisibleParticipants: visibleCallingParticipants.current,
6202
- maxDominantSpeakers: 0
6203
- });
6300
+ visibleCallingParticipants.current = (_b = remoteParticipants === null || remoteParticipants === void 0 ? void 0 : remoteParticipants.filter((p) => p.state === ('Connecting' ))) !== null && _b !== void 0 ? _b : [];
6204
6301
  // This set will be used to filter out participants already in visibleVideoParticipants
6205
6302
  const visibleVideoParticipantsSet = new Set(visibleVideoParticipants.current.map((p) => p.userId));
6206
6303
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
@@ -6542,65 +6639,6 @@ const HighContrastAwareIcon = (props) => {
6542
6639
  }) }));
6543
6640
  };
6544
6641
 
6545
- // Copyright (c) Microsoft Corporation.
6546
- /**
6547
- * @internal
6548
- */
6549
- const presenterPermissions = {
6550
- cameraButton: true,
6551
- microphoneButton: true,
6552
- screenShare: true,
6553
- participantList: true
6554
- };
6555
- /**
6556
- * @internal
6557
- */
6558
- const consumerPermissions = {
6559
- cameraButton: false,
6560
- microphoneButton: false,
6561
- screenShare: false,
6562
- participantList: false
6563
- };
6564
- /**
6565
- * @internal
6566
- */
6567
- const attendeePermissions = {
6568
- cameraButton: true,
6569
- microphoneButton: true,
6570
- screenShare: false,
6571
- participantList: true
6572
- };
6573
- /**
6574
- * @internal
6575
- */
6576
- const PermissionsContext = React.createContext(presenterPermissions);
6577
- /**
6578
- * @internal
6579
- */
6580
- const _PermissionsProvider = (props) => {
6581
- const { permissions, children } = props;
6582
- return React__default['default'].createElement(PermissionsContext.Provider, { value: permissions }, children);
6583
- };
6584
- /**
6585
- * @internal
6586
- * React hook to access permissions
6587
- */
6588
- const _usePermissions = () => React.useContext(PermissionsContext);
6589
- /**
6590
- * @internal
6591
- */
6592
- const _getPermissions = (role) => {
6593
- if (role === 'Consumer') {
6594
- return consumerPermissions;
6595
- }
6596
- else if (role === 'Attendee') {
6597
- return attendeePermissions;
6598
- }
6599
- else {
6600
- return presenterPermissions;
6601
- }
6602
- };
6603
-
6604
6642
  // Copyright (c) Microsoft Corporation.
6605
6643
  /**
6606
6644
  * Generates default {@link IContextualMenuProps} for buttons that
@@ -6995,9 +7033,7 @@ const MicrophoneButton = (props) => {
6995
7033
  const ParticipantsButton = (props) => {
6996
7034
  var _a, _b, _c, _d;
6997
7035
  const { callInvitationURL, styles, onMuteAll, onRenderIcon, onRenderParticipantList, participants, myUserId, excludeMe, onRenderParticipant, onRenderAvatar, onRemoveParticipant, onFetchParticipantMenuItems, showParticipantOverflowTooltip } = props;
6998
- let disabled = props.disabled;
6999
- /* @conditional-compile-remove(rooms) */
7000
- disabled = disabled || !_usePermissions().participantList;
7036
+ const disabled = props.disabled;
7001
7037
  const onRenderPeopleIcon = () => (React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonParticipants" }));
7002
7038
  const ids = useIdentifiers();
7003
7039
  const onMuteAllCallback = React.useCallback(() => {
@@ -12663,7 +12699,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
12663
12699
  */
12664
12700
  const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
12665
12701
 
12666
- var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",soundLabel:"Sound",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close Dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumeCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close Dialpad"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
12702
+ var call$d={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",chatButtonLabel:"Chat",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",copyInviteLinkButtonLabel:"Copy invite link",defaultPlaceHolder:"Select an option",dismissSidePaneButtonLabel:"Close",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby.",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",peopleButtonLabel:"People",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",removeMenuLabel:"Remove",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",soundLabel:"Sound",startCallButtonLabel:"Start call",openDialpadButtonLabel:"Dial phone number",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close Dialpad",moreButtonCallingLabel:"More",resumeCallButtonLabel:"Resume",resumeCallButtonAriaLabel:"Resume call",holdScreenLabel:"You're on hold",openDtmfDialpadLabel:"Show Dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var chat$d={chatListHeader:"In this chat",uploadFile:"Upload File"};var callWithChat$d={chatButtonLabel:"Chat",chatButtonNewMessageNotificationLabel:"New Message",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipClose:"Hide chat",chatButtonTooltipOpen:"Show chat",chatPaneTitle:"Chat",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButtonLabel:"Close",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",peoplePaneSubTitle:"In this call",peoplePaneTitle:"People",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",openDialpadButtonLabel:"Dial phone number",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back",peoplePaneAddPeopleButtonLabel:"Add People",dialpadStartCallButtonLabel:"Call",dialpadModalTitle:"Dial Phone Number",dialpadModalAriaLabel:"Dialpad",dialpadCloseModalButtonAriaLabel:"Close Dialpad",openDtmfDialpadLabel:"Show Dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
12667
12703
 
12668
12704
  var call$c={cameraLabel:"Camera",cameraPermissionDenied:"Your browser is blocking access to your camera",cameraTurnedOff:"Your camera is turned off",close:"Close",complianceBannerNowOnlyRecording:"You are now only recording this meeting.",complianceBannerNowOnlyTranscription:"You are now only transcribing this meeting.",complianceBannerRecordingAndTranscriptionSaved:"Recording and transcription are being saved.",complianceBannerRecordingAndTranscriptionStarted:"Recording and transcription have started.",complianceBannerRecordingAndTranscriptionStopped:"Recording and transcription have stopped.",complianceBannerRecordingSaving:"Recording is being saved.",complianceBannerRecordingStarted:"Recording has started.",complianceBannerRecordingStopped:"Recording has stopped.",complianceBannerTranscriptionStarted:"Transcription has started.",complianceBannerTranscriptionConsent:"By joining, you are giving consent for this meeting to be transcribed.",complianceBannerTranscriptionSaving:"Transcription is being saved.",complianceBannerTranscriptionStopped:"Transcription has stopped.",configurationPageTitle:"Start a call",defaultPlaceHolder:"Select an option",failedToJoinCallDueToNoNetworkMoreDetails:"Call was disconnected due to a network issue. Check your connection and join again.",failedToJoinCallDueToNoNetworkTitle:"Call disconnected",failedToJoinTeamsMeetingReasonAccessDeniedMoreDetails:"You were not granted entry in the call. If this was a mistake, re-join the call.",failedToJoinTeamsMeetingReasonAccessDeniedTitle:"Dismissed from lobby",learnMore:"Learn more",leftCallMoreDetails:"If this was a mistake, re-join the call.",leftCallTitle:"You left the call",lobbyScreenConnectingToCallTitle:"Joining call",lobbyScreenWaitingToBeAdmittedTitle:"Waiting to be admitted",microphonePermissionDenied:"Your browser is blocking access to your microphone",mutedMessage:"You're muted",networkReconnectMoreDetails:"Looks like something went wrong. We're trying to get back into the call.",networkReconnectTitle:"Hold on",privacyPolicy:"Privacy policy",rejoinCallButtonLabel:"Re-join call",removedFromCallMoreDetails:"Another participant removed you from the call.",removedFromCallTitle:"You were removed",soundLabel:"Sound",startCallButtonLabel:"Start call",microphoneToggleInLobbyNotAllowed:"Cannot mute or unmute while in lobby."};var chat$c={chatListHeader:"In this chat"};var callWithChat$c={peopleButtonLabel:"People",peopleButtonTooltipOpen:"Show participants",peopleButtonTooltipClose:"Hide participants",chatButtonLabel:"Chat",chatButtonTooltipClosedWithMessageCount:"Show chat ({unreadMessagesCount} unread)",chatButtonTooltipOpen:"Show chat",chatButtonTooltipClose:"Hide chat",moreDrawerAudioDeviceMenuTitle:"Audio Device",moreDrawerMicrophoneMenuTitle:"Microphone",moreDrawerSpeakerMenuTitle:"Speaker",moreDrawerButtonLabel:"More options",moreDrawerButtonTooltip:"More options",peoplePaneTitle:"People",peoplePaneSubTitle:"In this call",chatPaneTitle:"Chat",chatButtonNewMessageNotificationLabel:"New Message",pictureInPictureTileAriaLabel:"Video Feeds. Click to return to call screen.",removeMenuLabel:"Remove",copyInviteLinkButtonLabel:"Copy invite link",dismissSidePaneButton:"Close",returnToCallButtonAriaDescription:"Return to Call",returnToCallButtonAriaLabel:"Back"};var en_GB = {call:call$c,chat:chat$c,callWithChat:callWithChat$c};
12669
12705
 
@@ -14426,6 +14462,37 @@ const getCallCompositePage = (call, previousCall) => {
14426
14462
  // No call state - show starting page (configuration)
14427
14463
  return 'configuration';
14428
14464
  };
14465
+ /**
14466
+ * Creates a new call control options object and sets the correct values for disabling
14467
+ * the buttons provided in the `disabledControls` array.
14468
+ * Returns a new object without changing the original object.
14469
+ * @param callControlOptions options for the call control component that need to be modified.
14470
+ * @param disabledControls An array of controls to disable.
14471
+ * @returns a copy of callControlOptions with disabledControls disabled
14472
+ * @private
14473
+ */
14474
+ const disableCallControls = (callControlOptions, disabledControls) => {
14475
+ var _a;
14476
+ if (callControlOptions === false) {
14477
+ return false;
14478
+ }
14479
+ // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.
14480
+ let newOptions = (_a = (callControlOptions instanceof Object ? Object.assign({}, callControlOptions) : callControlOptions)) !== null && _a !== void 0 ? _a : {};
14481
+ if (newOptions === true || newOptions === undefined) {
14482
+ newOptions = disabledControls.reduce((acc, key) => {
14483
+ acc[key] = { disabled: true };
14484
+ return acc;
14485
+ }, {});
14486
+ }
14487
+ else {
14488
+ disabledControls.forEach((key) => {
14489
+ if (newOptions[key] !== false) {
14490
+ newOptions[key] = { disabled: true };
14491
+ }
14492
+ });
14493
+ }
14494
+ return newOptions;
14495
+ };
14429
14496
 
14430
14497
  // Copyright (c) Microsoft Corporation.
14431
14498
  // Licensed under the MIT license.
@@ -14629,7 +14696,7 @@ const concatButtonBaseStyles = (...styles) => {
14629
14696
  const Camera = (props) => {
14630
14697
  const cameraButtonProps = usePropsFor$1(CameraButton);
14631
14698
  const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
14632
- return (React__default['default'].createElement(CameraButton, Object.assign({ "data-ui-id": "call-composite-camera-button" }, cameraButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection })));
14699
+ return (React__default['default'].createElement(CameraButton, Object.assign({ "data-ui-id": "call-composite-camera-button" }, cameraButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disabled: cameraButtonProps.disabled || props.disabled })));
14633
14700
  };
14634
14701
 
14635
14702
  // Copyright (c) Microsoft Corporation.
@@ -14675,7 +14742,7 @@ const Devices = (props) => {
14675
14742
  /* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */
14676
14743
  , Object.assign({
14677
14744
  /* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */
14678
- persistMenu: true }, devicesButtonProps, { showLabel: props.displayType !== 'compact', styles: styles })));
14745
+ persistMenu: true }, devicesButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, "data-ui-id": "calling-composite-devices-button", disabled: props.disabled })));
14679
14746
  };
14680
14747
 
14681
14748
  // Copyright (c) Microsoft Corporation.
@@ -14782,7 +14849,7 @@ const Microphone = (props) => {
14782
14849
  : {};
14783
14850
  const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
14784
14851
  // tab focus on MicrophoneButton on page load
14785
- return (React__default['default'].createElement(MicrophoneButton, Object.assign({ autoFocus: true, "data-ui-id": "call-composite-microphone-button" }, microphoneButtonProps, { showLabel: props.displayType !== 'compact', styles: styles }, microphoneButtonStrings, { enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection })));
14852
+ return (React__default['default'].createElement(MicrophoneButton, Object.assign({ autoFocus: true, "data-ui-id": "call-composite-microphone-button" }, microphoneButtonProps, { showLabel: props.displayType !== 'compact', styles: styles }, microphoneButtonStrings, { enableDeviceSelectionMenu: props.splitButtonsForDeviceSelection, disabled: microphoneButtonProps.disabled || props.disabled })));
14786
14853
  };
14787
14854
 
14788
14855
  // Copyright (c) Microsoft Corporation.
@@ -14793,7 +14860,7 @@ const Participants = (props) => {
14793
14860
  var _a;
14794
14861
  return concatButtonBaseStyles(props.increaseFlyoutItemSize ? participantButtonWithIncreasedTouchTargets : {}, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
14795
14862
  }, [props.increaseFlyoutItemSize, props.styles]);
14796
- return (React__default['default'].createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$2(props.option), styles: participantsButtonStyles, showParticipantOverflowTooltip: !props.isMobile })));
14863
+ return (React__default['default'].createElement(ParticipantsButton, Object.assign({ "data-ui-id": "call-composite-participants-button" }, participantsButtonProps, { showLabel: props.displayType !== 'compact', callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, disabled: isDisabled$2(props.option) || props.disabled, styles: participantsButtonStyles, showParticipantOverflowTooltip: !props.isMobile })));
14797
14864
  };
14798
14865
  const isDisabled$2 = (option) => {
14799
14866
  if (option === undefined || option === true || option === false) {
@@ -14811,7 +14878,7 @@ const ScreenShare = (props) => {
14811
14878
  /* @conditional-compile-remove(PSTN-calls) */
14812
14879
  return (screenShareButtonProps === null || screenShareButtonProps === void 0 ? void 0 : screenShareButtonProps.disabled) ? screenShareButtonProps.disabled : isDisabled$1(props.option);
14813
14880
  };
14814
- return (React__default['default'].createElement(ScreenShareButton, Object.assign({ "data-ui-id": "call-composite-screenshare-button" }, screenShareButtonProps, { showLabel: props.displayType !== 'compact', disabled: screenShareButtonDisabled(), styles: styles })));
14881
+ return (React__default['default'].createElement(ScreenShareButton, Object.assign({ "data-ui-id": "call-composite-screenshare-button" }, screenShareButtonProps, { showLabel: props.displayType !== 'compact', disabled: screenShareButtonDisabled() || props.disabled, styles: styles })));
14815
14882
  };
14816
14883
  const isDisabled$1 = (option) => {
14817
14884
  if (option === undefined || option === true || option === false) {
@@ -14828,12 +14895,6 @@ const icon$2 = () => React__default['default'].createElement(CallCompositeIcon,
14828
14895
  /** @beta */
14829
14896
  const People = (props) => {
14830
14897
  const { strings, onRenderOnIcon, onRenderOffIcon, onClick } = props;
14831
- /* @conditional-compile-remove(rooms) */
14832
- let disabled = props.disabled;
14833
- /* @conditional-compile-remove(rooms) */
14834
- const permissions = _usePermissions();
14835
- /* @conditional-compile-remove(rooms) */
14836
- disabled = disabled || !permissions.participantList;
14837
14898
  const theme = useTheme();
14838
14899
  const styles = React.useMemo(() => {
14839
14900
  var _a;
@@ -14843,9 +14904,7 @@ const People = (props) => {
14843
14904
  }
14844
14905
  }, (_a = props.styles) !== null && _a !== void 0 ? _a : {}, controlButtonBaseStyle);
14845
14906
  }, [props.styles, theme.palette.neutralLight]);
14846
- return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { "data-ui-id": "call-composite-participants-button", strings: strings, labelKey: 'peopleButtonLabelKey', onRenderOnIcon: onRenderOnIcon !== null && onRenderOnIcon !== void 0 ? onRenderOnIcon : icon$2, onRenderOffIcon: onRenderOffIcon !== null && onRenderOffIcon !== void 0 ? onRenderOffIcon : icon$2, onClick: onClick, styles: styles,
14847
- /* @conditional-compile-remove(rooms) */
14848
- disabled: disabled })));
14907
+ return (React__default['default'].createElement(ControlBarButton, Object.assign({}, props, { "data-ui-id": "call-composite-participants-button", strings: strings, labelKey: 'peopleButtonLabelKey', onRenderOnIcon: onRenderOnIcon !== null && onRenderOnIcon !== void 0 ? onRenderOnIcon : icon$2, onRenderOffIcon: onRenderOffIcon !== null && onRenderOffIcon !== void 0 ? onRenderOffIcon : icon$2, onClick: onClick, styles: styles })));
14849
14908
  };
14850
14909
 
14851
14910
  // Copyright (c) Microsoft Corporation.
@@ -14948,20 +15007,17 @@ const SendDtmfDialpad = (props) => {
14948
15007
  };
14949
15008
  const dialpadModalStyle = React.useMemo(() => themeddialpadModalStyle$1(theme), [theme]);
14950
15009
  const dialpadStyle = React.useMemo(() => themedDialpadStyle$1(isMobile, theme), [theme, isMobile]);
14951
- const dialpadStrings = {
14952
- placeholderText: ''
14953
- };
14954
15010
  if (isMobile) {
14955
15011
  return (React__default['default'].createElement(react.Stack, null, showDialpad && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
14956
15012
  React__default['default'].createElement(_DrawerSurface, { onLightDismiss: onDismissTriggered },
14957
15013
  React__default['default'].createElement(react.Stack, { style: { padding: '1rem' } },
14958
- React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false }))))))));
15014
+ React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false, strings: strings }))))))));
14959
15015
  }
14960
15016
  return (React__default['default'].createElement(React__default['default'].Fragment, null, React__default['default'].createElement(react.Modal, { titleAriaId: strings.dialpadModalAriaLabel, isOpen: showDialpad, onDismiss: onDismissTriggered, isBlocking: true, styles: dialpadModalStyle },
14961
15017
  React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "end", verticalAlign: "center" },
14962
15018
  React__default['default'].createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: { color: theme.palette.black } })),
14963
15019
  React__default['default'].createElement(react.Stack, null,
14964
- React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false, strings: dialpadStrings }))))));
15020
+ React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false, strings: strings }))))));
14965
15021
  };
14966
15022
 
14967
15023
  // Copyright (c) Microsoft Corporation.
@@ -14988,11 +15044,12 @@ const CallControls = (props) => {
14988
15044
  /* @conditional-compile-remove(PSTN-calls) */
14989
15045
  const dialpadStrings = React.useMemo(() => ({
14990
15046
  dialpadModalAriaLabel: localeStrings.strings.call.dialpadModalAriaLabel,
14991
- dialpadCloseModalButtonAriaLabel: localeStrings.strings.call.dialpadCloseModalButtonAriaLabel
15047
+ dialpadCloseModalButtonAriaLabel: localeStrings.strings.call.dialpadCloseModalButtonAriaLabel,
15048
+ placeholderText: localeStrings.strings.call.dtmfDialpadPlaceHolderText
14992
15049
  }), [localeStrings]);
14993
15050
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
14994
15051
  const holdButtonProps = usePropsFor$1(HoldButton);
14995
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
15052
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
14996
15053
  const moreButtonContextualMenuItems = () => {
14997
15054
  const items = [];
14998
15055
  if (props.isMobile && props.onPeopleButtonClicked) {
@@ -15007,7 +15064,8 @@ const CallControls = (props) => {
15007
15064
  iconProps: { iconName: 'ControlButtonParticipants', styles: { root: { lineHeight: 0 } } },
15008
15065
  itemProps: {
15009
15066
  styles: buttonFlyoutIncreasedSizeStyles
15010
- }
15067
+ },
15068
+ ['data-ui-id']: 'call-composite-more-menu-people-button'
15011
15069
  });
15012
15070
  }
15013
15071
  items.push({
@@ -15017,6 +15075,20 @@ const CallControls = (props) => {
15017
15075
  holdButtonProps.onToggleHold();
15018
15076
  },
15019
15077
  iconProps: { iconName: 'HoldCall', styles: { root: { lineHeight: 0 } } },
15078
+ itemProps: {
15079
+ styles: buttonFlyoutIncreasedSizeStyles
15080
+ },
15081
+ disabled: isDisabled(options === null || options === void 0 ? void 0 : options.holdButton),
15082
+ ['data-ui-id']: 'hold-button'
15083
+ });
15084
+ /* @conditional-compile-remove(PSTN-calls) */
15085
+ items.push({
15086
+ key: 'showDialpadKey',
15087
+ text: localeStrings.strings.call.openDtmfDialpadLabel,
15088
+ onClick: () => {
15089
+ setShowDialpad(true);
15090
+ },
15091
+ iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } },
15020
15092
  itemProps: {
15021
15093
  styles: buttonFlyoutIncreasedSizeStyles
15022
15094
  }
@@ -15041,26 +15113,26 @@ const CallControls = (props) => {
15041
15113
  React__default['default'].createElement(SendDtmfDialpad, { isMobile: !!props.isMobile, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
15042
15114
  React__default['default'].createElement(react.Stack.Item, null,
15043
15115
  React__default['default'].createElement(ControlBar, { layout: "horizontal", styles: controlBarStyles(theme.semanticColors.bodyBackground) },
15044
- isEnabled$2(options === null || options === void 0 ? void 0 : options.microphoneButton) && React__default['default'].createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
15045
- isEnabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) && React__default['default'].createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType }),
15046
- isEnabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType })),
15116
+ isEnabled$2(options === null || options === void 0 ? void 0 : options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.microphoneButton) })),
15117
+ isEnabled$2(options === null || options === void 0 ? void 0 : options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.cameraButton) })),
15118
+ isEnabled$2(options === null || options === void 0 ? void 0 : options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options === null || options === void 0 ? void 0 : options.screenShareButton, displayType: options === null || options === void 0 ? void 0 : options.displayType, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.screenShareButton) })),
15047
15119
  isEnabled$2(options === null || options === void 0 ? void 0 : options.participantsButton) &&
15048
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */ !props.isMobile && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile })) && (
15049
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
15050
- React__default['default'].createElement(People, { checked: props.peopleButtonChecked, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-with-chat-composite-people-button", disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton), strings: peopleButtonStrings })),
15051
- isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize })),
15052
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
15120
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
15121
+ !props.isMobile && (React__default['default'].createElement(Participants, { option: options === null || options === void 0 ? void 0 : options.participantsButton, callInvitationURL: props.callInvitationURL, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, isMobile: props.isMobile, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })) && (
15122
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
15123
+ React__default['default'].createElement(People, { checked: props.peopleButtonChecked, showLabel: (options === null || options === void 0 ? void 0 : options.displayType) !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-composite-people-button", strings: peopleButtonStrings, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.participantsButton) })),
15124
+ isEnabled$2(options === null || options === void 0 ? void 0 : options.devicesButton) && (React__default['default'].createElement(Devices, { displayType: options === null || options === void 0 ? void 0 : options.displayType, increaseFlyoutItemSize: props.increaseFlyoutItemSize, disabled: isDisabled(options === null || options === void 0 ? void 0 : options.devicesButton) })),
15125
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
15053
15126
  isEnabled$2(options === null || options === void 0 ? void 0 : options.moreButton) && (React__default['default'].createElement(MoreButton, { strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() }, showLabel: !props.isMobile })),
15054
15127
  customButtons['primary'],
15055
15128
  isEnabled$2(options === null || options === void 0 ? void 0 : options.endCallButton) && React__default['default'].createElement(EndCall, { displayType: options === null || options === void 0 ? void 0 : options.displayType })))));
15056
15129
  };
15057
15130
  const isEnabled$2 = (option) => option !== false;
15058
- /* @conditional-compile-remove(one-to-n-calling) */
15059
15131
  const isDisabled = (option) => {
15060
- if (option === undefined || option === true || option === false) {
15061
- return false;
15132
+ if (typeof option !== 'boolean') {
15133
+ return !!(option === null || option === void 0 ? void 0 : option.disabled);
15062
15134
  }
15063
- return option.disabled;
15135
+ return option;
15064
15136
  };
15065
15137
 
15066
15138
  // Copyright (c) Microsoft Corporation.
@@ -16092,7 +16164,7 @@ const CallArrangement = (props) => {
16092
16164
  const isMobileWithActivePane = props.mobileView && activePane !== 'none';
16093
16165
  /* @conditional-compile-remove(one-to-n-calling) */
16094
16166
  const togglePeople = React.useCallback(() => {
16095
- if (activePane === 'people' || !(callStatus === 'Connected')) {
16167
+ if (activePane === 'people' || !_isInCall(callStatus)) {
16096
16168
  setActivePane('none');
16097
16169
  }
16098
16170
  else {
@@ -16101,7 +16173,7 @@ const CallArrangement = (props) => {
16101
16173
  }, [activePane, setActivePane, callStatus]);
16102
16174
  /* @conditional-compile-remove(one-to-n-calling) */
16103
16175
  const selectPeople = React.useCallback(() => {
16104
- if (callStatus === 'Connected') {
16176
+ if (_isInCall(callStatus)) {
16105
16177
  setActivePane('people');
16106
16178
  }
16107
16179
  }, [setActivePane, callStatus]);
@@ -16118,7 +16190,7 @@ const CallArrangement = (props) => {
16118
16190
  /* @conditional-compile-remove(one-to-n-calling) */
16119
16191
  const callPaneContent = () => {
16120
16192
  var _a;
16121
- if (adapter && callStatus === 'Connected') {
16193
+ if (adapter && _isInCall(callStatus)) {
16122
16194
  return (React__default['default'].createElement(CallPane, { callAdapter: adapter, onClose: closePane, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData, onFetchParticipantMenuItems: (_a = props.callControlProps) === null || _a === void 0 ? void 0 : _a.onFetchParticipantMenuItems, onPeopleButtonClicked: showShowPeopleTabHeaderButton$1(props.callControlProps.options) ? selectPeople : undefined, modalLayerHostId: props.modalLayerHostId, activePane: activePane, mobileView: props.mobileView, inviteLink: props.callControlProps.callInvitationURL }));
16123
16195
  }
16124
16196
  return React__default['default'].createElement(React__default['default'].Fragment, null);
@@ -16166,61 +16238,6 @@ const localVideoCameraCycleButtonSelector = reselect.createSelector([getDeviceMa
16166
16238
  };
16167
16239
  });
16168
16240
 
16169
- // Copyright (c) Microsoft Corporation.
16170
- const videoBaseStyle = react.mergeStyles({
16171
- border: 0
16172
- });
16173
- /**
16174
- * @private
16175
- */
16176
- react.mergeStyles(videoBaseStyle, {
16177
- width: '100%',
16178
- height: '100%'
16179
- });
16180
- /**
16181
- * @private
16182
- */
16183
- react.mergeStyles(videoBaseStyle, {
16184
- width: '100%',
16185
- height: 0,
16186
- position: 'relative',
16187
- paddingTop: '56.25%' /* default to 16:9 Aspect Ratio for now*/
16188
- });
16189
- /**
16190
- * @private
16191
- */
16192
- react.mergeStyles({
16193
- position: 'absolute',
16194
- top: 0,
16195
- left: 0,
16196
- width: '100%',
16197
- height: '100%'
16198
- });
16199
- /**
16200
- * @private
16201
- */
16202
- react.mergeStyles({
16203
- height: '100%',
16204
- width: '15%'
16205
- });
16206
- /**
16207
- * @private
16208
- */
16209
- react.mergeStyles({
16210
- height: '100%',
16211
- width: '85%',
16212
- position: 'relative'
16213
- });
16214
- /**
16215
- * @private
16216
- */
16217
- const participantStateStyle = {
16218
- textAlign: 'center',
16219
- paddingTop: '0.5rem',
16220
- fontWeight: 400,
16221
- fontSize: '0.75rem'
16222
- };
16223
-
16224
16241
  // Copyright (c) Microsoft Corporation.
16225
16242
  const VideoGalleryStyles = {
16226
16243
  root: {
@@ -16246,26 +16263,11 @@ const MediaGallery = (props) => {
16246
16263
  const cameraSwitcherProps = React.useMemo(() => {
16247
16264
  return Object.assign(Object.assign({}, cameraSwitcherCallback), cameraSwitcherCameras);
16248
16265
  }, [cameraSwitcherCallback, cameraSwitcherCameras]);
16249
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16250
- const locale = useLocale().component;
16251
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16252
- const videoTileStrings = locale.strings.videoTile;
16253
16266
  const onRenderAvatar = React.useCallback((userId, options) => {
16254
16267
  return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
16255
16268
  React__default['default'].createElement(react.Stack, { styles: { root: { margin: 'auto', maxHeight: '100%' } } },
16256
- React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })),
16257
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16258
- (options === null || options === void 0 ? void 0 : options.participantState) === 'Ringing' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateConnecting)),
16259
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16260
- (options === null || options === void 0 ? void 0 : options.participantState) === 'Connecting' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateRinging)),
16261
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
16262
- (options === null || options === void 0 ? void 0 : options.participantState) === 'Hold' && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStyle) }, videoTileStrings.participantStateHold)))));
16263
- }, [
16264
- props.onFetchAvatarPersonaData,
16265
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateConnecting,
16266
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateRinging,
16267
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */ videoTileStrings.participantStateHold
16268
- ]);
16269
+ React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })))));
16270
+ }, [props.onFetchAvatarPersonaData]);
16269
16271
  useLocalVideoStartTrigger(!!props.isVideoStreamOn);
16270
16272
  const VideoGalleryMemoized = React.useMemo(() => {
16271
16273
  return (React__default['default'].createElement(VideoGallery, Object.assign({}, videoGalleryProps, { localVideoViewOptions: localVideoViewOptions$2, remoteVideoViewOptions: remoteVideoViewOptions, styles: VideoGalleryStyles, layout: "floatingLocalVideo", showCameraSwitcherInLocalPreview: props.isMobile, localVideoCameraCycleButtonProps: cameraSwitcherProps, onRenderAvatar: onRenderAvatar })));
@@ -16506,7 +16508,7 @@ const CallPage = (props) => {
16506
16508
  /* @conditional-compile-remove(one-to-n-calling) */
16507
16509
  onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView,
16508
16510
  /* @conditional-compile-remove(one-to-n-calling) */
16509
- modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => callStatus === 'Connected' ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (React__default['default'].createElement(MediaGallery, Object.assign({ isMobile: mobileView }, mediaGalleryProps, mediaGalleryHandlers, { onRenderAvatar: onRenderAvatar, onFetchAvatarPersonaData: onFetchAvatarPersonaData }))) : (React__default['default'].createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React__default['default'].createElement(React__default['default'].Fragment, null)), dataUiId: 'call-page' }));
16511
+ modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => _isInCall(callStatus) ? (isNetworkHealthy(networkReconnectTileProps.networkReconnectValue) ? (React__default['default'].createElement(MediaGallery, Object.assign({ isMobile: mobileView }, mediaGalleryProps, mediaGalleryHandlers, { onRenderAvatar: onRenderAvatar, onFetchAvatarPersonaData: onFetchAvatarPersonaData }))) : (React__default['default'].createElement(NetworkReconnectTile, Object.assign({}, networkReconnectTileProps)))) : (React__default['default'].createElement(React__default['default'].Fragment, null)), dataUiId: 'call-page' }));
16510
16512
  };
16511
16513
  /**
16512
16514
  * @private
@@ -17063,7 +17065,7 @@ const LobbyPage = (props) => {
17063
17065
  let callControlOptions = props.mobileView
17064
17066
  ? reduceCallControlsForMobile((_a = props.options) === null || _a === void 0 ? void 0 : _a.callControls)
17065
17067
  : (_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls;
17066
- callControlOptions = disableLobbyPageControls(callControlOptions);
17068
+ callControlOptions = disableCallControls(callControlOptions, ['screenShareButton', 'participantsButton']);
17067
17069
  return (React__default['default'].createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && Object.assign({}, errorBarProps), callControlProps: {
17068
17070
  options: callControlOptions,
17069
17071
  increaseFlyoutItemSize: props.mobileView
@@ -17071,27 +17073,6 @@ const LobbyPage = (props) => {
17071
17073
  /* @conditional-compile-remove(one-to-n-calling) */
17072
17074
  modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React__default['default'].createElement(LobbyTile, Object.assign({}, lobbyProps, { overlayProps: overlayProps(strings, inLobby) })), dataUiId: 'lobby-page' }));
17073
17075
  };
17074
- const disableLobbyPageControls = (callControlOptions) => {
17075
- // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.
17076
- let newOptions = callControlOptions instanceof Object ? Object.assign({}, callControlOptions) : callControlOptions;
17077
- if (newOptions !== false) {
17078
- if (newOptions === true || newOptions === undefined) {
17079
- newOptions = {
17080
- participantsButton: { disabled: true },
17081
- screenShareButton: { disabled: true }
17082
- };
17083
- }
17084
- else {
17085
- if (newOptions.participantsButton !== false) {
17086
- newOptions.participantsButton = { disabled: true };
17087
- }
17088
- if (newOptions.screenShareButton !== false) {
17089
- newOptions.screenShareButton = { disabled: true };
17090
- }
17091
- }
17092
- }
17093
- return newOptions;
17094
- };
17095
17076
  const overlayProps = (strings, inLobby) => inLobby ? overlayPropsWaitingToBeAdmitted(strings) : overlayPropsConnectingToCall(strings);
17096
17077
  const overlayPropsConnectingToCall = (strings) => ({
17097
17078
  title: strings.lobbyScreenConnectingToCallTitle,
@@ -17204,7 +17185,7 @@ const HoldPane = () => {
17204
17185
  React__default['default'].createElement(react.PrimaryButton, { text: strings.resumeCallButtonLabel, ariaLabel: strings.resumeCallButtonAriaLabel, styles: resumeButtonStyles, onClick: () => {
17205
17186
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
17206
17187
  holdButtonProps.onToggleHold();
17207
- } }))));
17188
+ }, "data-ui-id": "hold-page-resume-call-button" }))));
17208
17189
  };
17209
17190
  const getMinutes = (time) => {
17210
17191
  return Math.floor(getSeconds(time) / 60);
@@ -17241,9 +17222,18 @@ const HoldPage = (props) => {
17241
17222
  var _a, _b, _c;
17242
17223
  const errorBarProps = usePropsFor$1(ErrorBar);
17243
17224
  const strings = useLocale().strings.call;
17244
- const callControlOptions = props.mobileView
17225
+ let callControlOptions = props.mobileView
17245
17226
  ? reduceCallControlsForMobile((_a = props.options) === null || _a === void 0 ? void 0 : _a.callControls)
17246
17227
  : (_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls;
17228
+ callControlOptions = disableCallControls(callControlOptions, [
17229
+ 'cameraButton',
17230
+ 'microphoneButton',
17231
+ 'devicesButton',
17232
+ 'screenShareButton',
17233
+ /* @conditional-compile-remove(PSTN-calls) */
17234
+ /* @conditional-compile-remove(one-to-n-calling) */
17235
+ 'holdButton'
17236
+ ]);
17247
17237
  return (React__default['default'].createElement(CallArrangement, { complianceBannerProps: { strings }, errorBarProps: ((_c = props.options) === null || _c === void 0 ? void 0 : _c.errorBar) !== false && Object.assign({}, errorBarProps), callControlProps: {
17248
17238
  options: callControlOptions,
17249
17239
  increaseFlyoutItemSize: props.mobileView
@@ -17328,12 +17318,20 @@ const CallComposite = (props) => {
17328
17318
  role } = props;
17329
17319
  React.useEffect(() => {
17330
17320
  (() => __awaiter$5(void 0, void 0, void 0, function* () {
17321
+ /* @conditional-compile-remove(rooms) */
17322
+ if (role === 'Consumer') {
17323
+ // Need to ask for audio devices to get access to speakers. Speaker permission is tied to microphone permission (when you request 'audio' permission using the SDK) its
17324
+ // actually granting access to query both microphone and speaker. TODO: Need some investigation to see if we can get access to speakers without SDK.
17325
+ yield adapter.askDevicePermission({ video: false, audio: true });
17326
+ adapter.querySpeakers();
17327
+ return;
17328
+ }
17331
17329
  yield adapter.askDevicePermission({ video: true, audio: true });
17332
17330
  adapter.queryCameras();
17333
17331
  adapter.queryMicrophones();
17334
17332
  adapter.querySpeakers();
17335
17333
  }))();
17336
- }, [adapter]);
17334
+ }, [adapter, /* @conditional-compile-remove(rooms) */ role]);
17337
17335
  const mobileView = formFactor === 'mobile';
17338
17336
  /* @conditional-compile-remove(one-to-n-calling) */
17339
17337
  const modalLayerHostId = reactHooks.useId('modalLayerhost');
@@ -18343,8 +18341,24 @@ const DesktopMoreButton = (props) => {
18343
18341
  iconProps: { iconName: 'HoldCall', styles: { root: { lineHeight: 0 } } },
18344
18342
  itemProps: {
18345
18343
  styles: buttonFlyoutIncreasedSizeStyles
18346
- }
18344
+ },
18345
+ disabled: props.disableButtonsForHoldScreen
18347
18346
  });
18347
+ /*@conditional-compile-remove(PSTN-calls) */
18348
+ if (props.onClickShowDialpad) {
18349
+ items.push({
18350
+ key: 'showDialpadKey',
18351
+ text: localeStrings.strings.callWithChat.openDtmfDialpadLabel,
18352
+ onClick: () => {
18353
+ props.onClickShowDialpad && props.onClickShowDialpad();
18354
+ },
18355
+ iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } },
18356
+ itemProps: {
18357
+ styles: buttonFlyoutIncreasedSizeStyles
18358
+ },
18359
+ disabled: props.disableButtonsForHoldScreen
18360
+ });
18361
+ }
18348
18362
  return items;
18349
18363
  };
18350
18364
  return (React__default['default'].createElement(MoreButton, Object.assign({}, props, { "data-ui-id": "call-with-chat-composite-more-button",
@@ -18373,7 +18387,7 @@ const inferCallWithChatControlOptions$1 = (mobileView, callWithChatControls) =>
18373
18387
  * @private
18374
18388
  */
18375
18389
  const CallWithChatControlBar = (props) => {
18376
- var _a, _b, _c;
18390
+ var _a, _b;
18377
18391
  const theme = react.useTheme();
18378
18392
  const callWithChatStrings = useCallWithChatCompositeStrings();
18379
18393
  const options = inferCallWithChatControlOptions$1(props.mobileView, props.callControls);
@@ -18405,37 +18419,30 @@ const CallWithChatControlBar = (props) => {
18405
18419
  const endCallButtonStyles = React.useMemo(() => (!props.mobileView ? getDesktopEndCallButtonStyles(theme) : undefined), [props.mobileView, theme]);
18406
18420
  /* @conditional-compile-remove(control-bar-button-injection) */
18407
18421
  const customButtons = React.useMemo(() => generateCustomCallWithChatControlBarButton(onFetchCustomButtonPropsTrampoline(options !== false ? options : undefined), options !== false ? options === null || options === void 0 ? void 0 : options.displayType : undefined), [options]);
18408
- /* @conditional-compile-remove(PSTN-calls) */
18409
- const dialpadStrings = React.useMemo(() => ({
18410
- dialpadModalAriaLabel: callWithChatStrings.dialpadModalAriaLabel,
18411
- dialpadCloseModalButtonAriaLabel: callWithChatStrings.dialpadCloseModalButtonAriaLabel
18412
- }), [callWithChatStrings]);
18413
- /* @conditional-compile-remove(PSTN-calls) */
18414
- const [showDialpad, setShowDialpad] = React.useState(false);
18415
18422
  // when options is false then we want to hide the whole control bar.
18416
18423
  if (options === false) {
18417
18424
  return React__default['default'].createElement(React__default['default'].Fragment, null);
18418
18425
  }
18419
18426
  const chatButton = (React__default['default'].createElement(ChatButtonWithUnreadMessagesBadge, { chatAdapter: props.chatAdapter, checked: props.chatButtonChecked, showLabel: options.displayType !== 'compact', isChatPaneVisible: props.chatButtonChecked, onClick: props.onChatButtonClicked, disabled: props.disableButtonsForLobbyPage, strings: chatButtonStrings, styles: commonButtonStyles, newMessageLabel: callWithChatStrings.chatButtonNewMessageNotificationLabel }));
18420
- /* @conditional-compile-remove(PSTN-calls) */
18421
- const onDismissDialpad = () => {
18422
- setShowDialpad(false);
18423
- };
18424
18427
  return (React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(callControlsContainerStyles, controlBarContainerStyles) },
18425
18428
  React__default['default'].createElement(react.Stack.Item, { grow: true },
18426
18429
  React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
18427
- /* @conditional-compile-remove(PSTN-calls) */
18428
- React__default['default'].createElement(SendDtmfDialpad, { isMobile: (_a = props.mobileView) !== null && _a !== void 0 ? _a : false, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
18429
18430
  React__default['default'].createElement(react.Stack, { horizontalAlign: "center" },
18430
18431
  React__default['default'].createElement(react.Stack.Item, null,
18431
18432
  React__default['default'].createElement(ControlBar, { layout: "horizontal", styles: centerContainerStyles },
18432
- isEnabled$1(options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView })),
18433
- isEnabled$1(options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView })),
18433
+ isEnabled$1(options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView,
18434
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18435
+ disabled: props.disableButtonsForHoldScreen })),
18436
+ isEnabled$1(options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView,
18437
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18438
+ disabled: props.disableButtonsForHoldScreen })),
18434
18439
  props.mobileView && isEnabled$1(options === null || options === void 0 ? void 0 : options.chatButton) && chatButton,
18435
- isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles })),
18440
+ isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles,
18441
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18442
+ disabled: props.disableButtonsForHoldScreen })),
18436
18443
  /* @conditional-compile-remove(control-bar-button-injection) */
18437
- (_b = customButtons['primary']) === null || _b === void 0 ? void 0 :
18438
- _b.props.children.slice(0, props.mobileView
18444
+ (_a = customButtons['primary']) === null || _a === void 0 ? void 0 :
18445
+ _a.props.children.slice(0, props.mobileView
18439
18446
  ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
18440
18447
  : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
18441
18448
  return (React__default['default'].createElement(element.type, Object.assign({}, element.props, { key: element.props.strings.label, styles: commonButtonStyles, displayType: options.displayType, showLabel: options.displayType !== 'compact' })));
@@ -18443,12 +18450,12 @@ const CallWithChatControlBar = (props) => {
18443
18450
  props.mobileView && (React__default['default'].createElement(MoreButton, { "data-ui-id": "call-with-chat-composite-more-button", strings: moreButtonStrings, onClick: props.onMoreButtonClicked, disabled: props.disableButtonsForLobbyPage })),
18444
18451
  /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.moreButton) &&
18445
18452
  /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.holdButton) &&
18446
- !props.mobileView && (React__default['default'].createElement(DesktopMoreButton, { disabled: props.disableButtonsForLobbyPage, styles: commonButtonStyles })),
18453
+ !props.mobileView && (React__default['default'].createElement(DesktopMoreButton, { disableButtonsForHoldScreen: props.disableButtonsForHoldScreen, styles: commonButtonStyles, onClickShowDialpad: props.onClickShowDialpad })),
18447
18454
  React__default['default'].createElement(EndCall, { displayType: "compact", styles: endCallButtonStyles })))))),
18448
18455
  !props.mobileView && (React__default['default'].createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
18449
18456
  /* @conditional-compile-remove(control-bar-button-injection) */
18450
- (_c = customButtons['secondary']) === null || _c === void 0 ? void 0 :
18451
- _c.props.children.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
18457
+ (_b = customButtons['secondary']) === null || _b === void 0 ? void 0 :
18458
+ _b.props.children.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
18452
18459
  return (React__default['default'].createElement(element.type, Object.assign({}, element.props, { key: element.props.key, styles: commonButtonStyles, displayType: options.displayType, showLabel: options.displayType !== 'compact' })));
18453
18460
  }),
18454
18461
  isEnabled$1(options === null || options === void 0 ? void 0 : options.peopleButton) && (React__default['default'].createElement(PeopleButton, { checked: props.peopleButtonChecked, showLabel: options.displayType !== 'compact', onClick: props.onPeopleButtonClicked, "data-ui-id": "call-with-chat-composite-people-button", disabled: props.disableButtonsForLobbyPage, strings: peopleButtonStrings, styles: commonButtonStyles })),
@@ -18794,6 +18801,7 @@ const MoreDrawer = (props) => {
18794
18801
  if (props.speakers && props.speakers.length > 0) {
18795
18802
  drawerMenuItems.push({
18796
18803
  itemKey: 'speakers',
18804
+ disabled: props.disableButtonsForHoldScreen,
18797
18805
  text: props.strings.speakerMenuTitle,
18798
18806
  iconProps: { iconName: 'MoreDrawerSpeakers' },
18799
18807
  subMenuProps: props.speakers.map((speaker) => ({
@@ -18829,6 +18837,7 @@ const MoreDrawer = (props) => {
18829
18837
  const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';
18830
18838
  drawerMenuItems.push({
18831
18839
  itemKey: itemKey,
18840
+ disabled: props.disableButtonsForHoldScreen,
18832
18841
  text: text,
18833
18842
  iconProps: { iconName: iconName },
18834
18843
  subMenuProps: props.microphones.map((mic) => ({
@@ -18855,6 +18864,7 @@ const MoreDrawer = (props) => {
18855
18864
  if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.peopleButton)) {
18856
18865
  drawerMenuItems.push({
18857
18866
  itemKey: 'holdButtonKey',
18867
+ disabled: props.disableButtonsForHoldScreen,
18858
18868
  text: localeStrings.component.strings.holdButton.tooltipOffContent,
18859
18869
  onItemClick: () => {
18860
18870
  holdButtonProps.onToggleHold();
@@ -18862,6 +18872,18 @@ const MoreDrawer = (props) => {
18862
18872
  iconProps: { iconName: 'HoldCall', styles: { root: { lineHeight: 0 } } }
18863
18873
  });
18864
18874
  }
18875
+ /*@conditional-compile-remove(PSTN-calls) */
18876
+ if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.peopleButton) && props.onClickShowDialpad) {
18877
+ drawerMenuItems.push({
18878
+ itemKey: 'showDialpadKey',
18879
+ disabled: props.disableButtonsForHoldScreen,
18880
+ text: localeStrings.strings.callWithChat.openDtmfDialpadLabel,
18881
+ onItemClick: () => {
18882
+ props.onClickShowDialpad && props.onClickShowDialpad();
18883
+ },
18884
+ iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } }
18885
+ });
18886
+ }
18865
18887
  /* @conditional-compile-remove(control-bar-button-injection) */
18866
18888
  const customDrawerButtons = React.useMemo(() => generateCustomCallWithChatDrawerButtons(onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined), drawerSelectionOptions !== false ? drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.displayType : undefined), [drawerSelectionOptions]);
18867
18889
  /* @conditional-compile-remove(control-bar-button-injection) */
@@ -19014,6 +19036,8 @@ const CallWithChatScreen = (props) => {
19014
19036
  }, [callWithChatAdapter]);
19015
19037
  const modalLayerHostId = reactHooks.useId('modalLayerhost');
19016
19038
  const isInLobbyOrConnecting = currentPage === 'lobby';
19039
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
19040
+ const isInLocalHold = currentPage === 'hold';
19017
19041
  const hasJoinedCall = !!(currentPage && hasJoinedCallFn(currentPage, currentCallState !== null && currentCallState !== void 0 ? currentCallState : 'None'));
19018
19042
  const showControlBar = isInLobbyOrConnecting || hasJoinedCall;
19019
19043
  const isMobileWithActivePane = mobileView && activePane !== 'none';
@@ -19073,6 +19097,24 @@ const CallWithChatScreen = (props) => {
19073
19097
  const callCompositeContainerCSS = React.useMemo(() => {
19074
19098
  return { display: isMobileWithActivePane ? 'none' : 'flex' };
19075
19099
  }, [isMobileWithActivePane]);
19100
+ /* @conditional-compile-remove(PSTN-calls) */
19101
+ const [showDtmfDialpad, setShowDtmfDialpad] = React.useState(false);
19102
+ /* @conditional-compile-remove(PSTN-calls) */
19103
+ const onDismissDtmfDialpad = () => {
19104
+ setShowDtmfDialpad(false);
19105
+ };
19106
+ /* @conditional-compile-remove(PSTN-calls) */
19107
+ const onClickShowDialpad = () => {
19108
+ setShowDtmfDialpad(true);
19109
+ };
19110
+ /* @conditional-compile-remove(PSTN-calls) */
19111
+ const callWithChatStrings = useCallWithChatCompositeStrings();
19112
+ /* @conditional-compile-remove(PSTN-calls) */
19113
+ const dialpadStrings = React.useMemo(() => ({
19114
+ dialpadModalAriaLabel: callWithChatStrings.dialpadModalAriaLabel,
19115
+ dialpadCloseModalButtonAriaLabel: callWithChatStrings.dialpadCloseModalButtonAriaLabel,
19116
+ placeholderText: callWithChatStrings.dtmfDialpadPlaceHolderText
19117
+ }), [callWithChatStrings]);
19076
19118
  return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles) },
19077
19119
  React__default['default'].createElement(react.Stack, { verticalFill: true, grow: true, styles: compositeOuterContainerStyles, id: compositeParentDivId },
19078
19120
  React__default['default'].createElement(react.Stack, { horizontal: true, grow: true },
@@ -19085,11 +19127,24 @@ const CallWithChatScreen = (props) => {
19085
19127
  fileSharing: props.fileSharing, rtl: props.rtl }))),
19086
19128
  showControlBar && !isMobileWithActivePane && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
19087
19129
  React__default['default'].createElement(react.Stack.Item, { styles: controlBarContainerStyles$1 },
19088
- React__default['default'].createElement(CallWithChatControlBar, { callAdapter: callAdapter, chatAdapter: chatProps.adapter, chatButtonChecked: activePane === 'chat', onChatButtonClicked: toggleChat, peopleButtonChecked: activePane === 'people', onPeopleButtonClicked: togglePeople, onMoreButtonClicked: onMoreButtonClicked, mobileView: mobileView, disableButtonsForLobbyPage: isInLobbyOrConnecting, callControls: props.callControls, containerHeight: containerHeight, containerWidth: containerWidth })))),
19130
+ React__default['default'].createElement(CallWithChatControlBar, { callAdapter: callAdapter, chatAdapter: chatProps.adapter, chatButtonChecked: activePane === 'chat', onChatButtonClicked: toggleChat, peopleButtonChecked: activePane === 'people', onPeopleButtonClicked: togglePeople, onMoreButtonClicked: onMoreButtonClicked, mobileView: mobileView, disableButtonsForLobbyPage: isInLobbyOrConnecting,
19131
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
19132
+ disableButtonsForHoldScreen: isInLocalHold, callControls: props.callControls, containerHeight: containerHeight, containerWidth: containerWidth,
19133
+ /* @conditional-compile-remove(PSTN-calls) */
19134
+ onClickShowDialpad: onClickShowDialpad })))),
19089
19135
  showControlBar && showDrawer && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
19090
19136
  React__default['default'].createElement(CallAdapterProvider, { adapter: callAdapter },
19091
19137
  React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
19092
- React__default['default'].createElement(PreparedMoreDrawer, { callControls: props.callControls, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked }))))),
19138
+ React__default['default'].createElement(PreparedMoreDrawer, { callControls: props.callControls, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked,
19139
+ /* @conditional-compile-remove(PSTN-calls) */
19140
+ onClickShowDialpad: onClickShowDialpad,
19141
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
19142
+ disableButtonsForHoldScreen: isInLocalHold }))))),
19143
+ /* @conditional-compile-remove(PSTN-calls) */
19144
+ showControlBar && showDtmfDialpad && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
19145
+ React__default['default'].createElement(CallAdapterProvider, { adapter: callAdapter },
19146
+ React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
19147
+ React__default['default'].createElement(SendDtmfDialpad, { isMobile: mobileView, strings: dialpadStrings, showDialpad: showDtmfDialpad, onDismissDialpad: onDismissDtmfDialpad }))))),
19093
19148
  // This layer host is for ModalLocalAndRemotePIP in CallWithChatPane. This LayerHost cannot be inside the CallWithChatPane
19094
19149
  // because when the CallWithChatPane is hidden, ie. style property display is 'none', it takes up no space. This causes problems when dragging
19095
19150
  // the Modal because the draggable bounds thinks it has no space and will always return to its initial position after dragging.
@@ -19829,7 +19884,13 @@ const useSelector = (selector, selectorProps, type) => {
19829
19884
  return callProps !== null && callProps !== void 0 ? callProps : chatProps;
19830
19885
  };
19831
19886
  /**
19832
- * Primary hook to get all hooks necessary for a React Component from this library..
19887
+ * Primary hook to get all hooks necessary for a React Component from this library.
19888
+ *
19889
+ * To call this hook, the component requires to be wrapped under these providers:
19890
+ *
19891
+ * 1. For chat components: {@link ChatClientProvider} and {@link ChatThreadClientProvider}.
19892
+ *
19893
+ * 2. For calling components: {@link CallClientProvider}, {@link CallAgentProvider} and {@link CallAgentProvider}.
19833
19894
  *
19834
19895
  * Most straightforward usage of a components looks like:
19835
19896
  *
@@ -19865,7 +19926,12 @@ const usePropsFor = (component, type) => {
19865
19926
  }
19866
19927
  return Object.assign(Object.assign({}, callProps), callingHandlers);
19867
19928
  }
19868
- throw "Can't find corresponding selector for this component. Please check the supported components from Azure Communication UI Feature Component List.";
19929
+ if (!chatSelector && !callingSelector) {
19930
+ throw "Can't find corresponding selector for this component. Please check the supported components from Azure Communication UI Feature Component List.";
19931
+ }
19932
+ else {
19933
+ throw 'Could not find props for this component, ensure the component is wrapped by appropriate providers.';
19934
+ }
19869
19935
  };
19870
19936
 
19871
19937
  exports.COMPONENT_LOCALE_DE_DE = COMPONENT_LOCALE_DE_DE;