@azure/communication-react 1.3.3-alpha-202208160041.0 → 1.3.3-alpha-202208190016.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 (746) hide show
  1. package/dist/communication-react.d.ts +39 -4
  2. package/dist/dist-cjs/communication-react/index.js +596 -469
  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.map +1 -1
  160. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts +2 -1
  161. package/dist/dist-esm/react-components/src/components/VideoTile.js +34 -40
  162. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  163. package/dist/dist-esm/react-components/src/components/VoiceOverButton.js.map +1 -1
  164. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  165. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.js.map +1 -1
  166. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  167. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.js.map +1 -1
  168. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.js.map +1 -1
  169. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.js.map +1 -1
  170. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.js.map +1 -1
  171. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.js.map +1 -1
  172. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.js.map +1 -1
  173. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.js.map +1 -1
  174. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  175. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.js.map +1 -1
  176. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.js.map +1 -1
  177. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  178. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.js.map +1 -1
  179. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.js.map +1 -1
  180. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.js.map +1 -1
  181. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.js.map +1 -1
  182. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +3 -3
  183. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +19 -9
  184. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  185. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.js.map +1 -1
  186. package/dist/dist-esm/react-components/src/components/utils/Datetime.js.map +1 -1
  187. package/dist/dist-esm/react-components/src/components/utils/common.d.ts +5 -0
  188. package/dist/dist-esm/react-components/src/components/utils/common.js +6 -0
  189. package/dist/dist-esm/react-components/src/components/utils/common.js.map +1 -1
  190. package/dist/dist-esm/react-components/src/components/utils/delay.js.map +1 -1
  191. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.js.map +1 -1
  192. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.js.map +1 -1
  193. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.js.map +1 -1
  194. package/dist/dist-esm/react-components/src/components/utils/responsive.js.map +1 -1
  195. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.js.map +1 -1
  196. package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
  197. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.js.map +1 -1
  198. package/dist/dist-esm/react-components/src/gallery/index.js.map +1 -1
  199. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.js.map +1 -1
  200. package/dist/dist-esm/react-components/src/identifiers/index.js.map +1 -1
  201. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  202. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
  203. package/dist/dist-esm/react-components/src/localization/index.js.map +1 -1
  204. package/dist/dist-esm/react-components/src/localization/locales/index.js.map +1 -1
  205. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts +1 -1
  206. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js +3 -3
  207. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.js.map +1 -1
  208. package/dist/dist-esm/react-components/src/permissions/index.js.map +1 -1
  209. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.js.map +1 -1
  210. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  211. package/dist/dist-esm/react-components/src/theming/index.js.map +1 -1
  212. package/dist/dist-esm/react-components/src/theming/themeUtils.js.map +1 -1
  213. package/dist/dist-esm/react-components/src/theming/themes.js.map +1 -1
  214. package/dist/dist-esm/react-components/src/types/ChatMessage.js.map +1 -1
  215. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.js.map +1 -1
  216. package/dist/dist-esm/react-components/src/types/CustomStylesProps.js.map +1 -1
  217. package/dist/dist-esm/react-components/src/types/OnRender.js.map +1 -1
  218. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  219. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.js.map +1 -1
  220. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  221. package/dist/dist-esm/react-components/src/types/index.js.map +1 -1
  222. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  223. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts +8 -0
  224. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  225. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  226. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  227. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.js.map +1 -1
  228. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.js.map +1 -1
  229. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.js.map +1 -1
  230. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  231. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +4 -3
  232. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  233. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +29 -13
  234. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  235. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.js.map +1 -1
  236. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.js.map +1 -1
  237. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  238. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  239. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.js.map +1 -1
  240. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
  241. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  242. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +2 -23
  243. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  244. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.js.map +1 -1
  245. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  246. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.js.map +1 -1
  247. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts +1 -0
  248. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +1 -1
  249. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  250. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.js.map +1 -1
  251. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.d.ts +1 -0
  252. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js +1 -1
  253. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.js.map +1 -1
  254. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.js.map +1 -1
  255. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts +1 -0
  256. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +1 -1
  257. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  258. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts +1 -0
  259. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js +1 -1
  260. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.js.map +1 -1
  261. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js +1 -11
  262. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.js.map +1 -1
  263. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.d.ts +1 -0
  264. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +1 -1
  265. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  266. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.js.map +1 -1
  267. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  268. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  269. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.js.map +1 -1
  270. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  271. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -1
  272. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  273. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  274. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js +11 -2
  275. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  276. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js +2 -23
  277. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  278. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  279. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.js.map +1 -1
  280. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  281. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.js.map +1 -1
  282. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.js.map +1 -1
  283. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.js.map +1 -1
  284. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.js.map +1 -1
  285. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.js.map +1 -1
  286. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.js.map +1 -1
  287. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.js.map +1 -1
  288. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.js.map +1 -1
  289. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.js.map +1 -1
  290. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.js.map +1 -1
  291. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.js.map +1 -1
  292. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  293. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.js.map +1 -1
  294. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.js.map +1 -1
  295. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.js.map +1 -1
  296. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.js.map +1 -1
  297. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.js.map +1 -1
  298. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.js.map +1 -1
  299. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.js.map +1 -1
  300. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.js.map +1 -1
  301. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.js.map +1 -1
  302. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  303. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.js.map +1 -1
  304. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.js.map +1 -1
  305. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts +12 -3
  306. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
  307. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts +10 -0
  308. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js +31 -0
  309. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
  310. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.js.map +1 -1
  311. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +4 -0
  312. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +44 -3
  313. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  314. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts +2 -0
  315. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js +19 -25
  316. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.js.map +1 -1
  317. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.js.map +1 -1
  318. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton.js.map +1 -1
  319. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButtonWithUnreadMessagesBadge.js.map +1 -1
  320. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.js.map +1 -1
  321. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.js.map +1 -1
  322. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/NotificationIcon.js.map +1 -1
  323. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PeopleButton.js.map +1 -1
  324. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.d.ts +2 -0
  325. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.js.map +1 -1
  326. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts +8 -0
  327. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.js.map +1 -1
  328. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  329. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  330. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  331. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  332. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.js.map +1 -1
  333. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.d.ts +13 -0
  334. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js +65 -0
  335. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/DesktopMoreButton.js.map +1 -0
  336. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.d.ts +2 -0
  337. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js +36 -0
  338. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.js.map +1 -1
  339. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.js.map +1 -1
  340. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.js.map +1 -1
  341. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.js.map +1 -1
  342. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  343. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.js.map +1 -1
  344. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  345. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.js.map +1 -1
  346. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  347. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.js.map +1 -1
  348. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.js.map +1 -1
  349. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  350. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  351. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.js.map +1 -1
  352. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  353. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  354. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.js.map +1 -1
  355. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.js.map +1 -1
  356. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.js.map +1 -1
  357. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.js.map +1 -1
  358. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.js.map +1 -1
  359. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  360. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.js.map +1 -1
  361. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.js.map +1 -1
  362. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  363. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  364. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.js.map +1 -1
  365. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  366. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.js.map +1 -1
  367. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.js.map +1 -1
  368. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.js.map +1 -1
  369. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.js.map +1 -1
  370. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.js.map +1 -1
  371. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.js.map +1 -1
  372. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.js.map +1 -1
  373. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.js.map +1 -1
  374. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.js.map +1 -1
  375. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.js.map +1 -1
  376. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.js.map +1 -1
  377. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.js.map +1 -1
  378. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.d.ts +1 -0
  379. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js +2 -5
  380. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.js.map +1 -1
  381. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.js.map +1 -1
  382. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.js.map +1 -1
  383. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.js.map +1 -1
  384. package/dist/dist-esm/react-composites/src/composites/common/adapters.js.map +1 -1
  385. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  386. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.js.map +1 -1
  387. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.js.map +1 -1
  388. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  389. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.js.map +1 -1
  390. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.js.map +1 -1
  391. package/dist/dist-esm/react-composites/src/composites/common/utils.js.map +1 -1
  392. package/dist/dist-esm/react-composites/src/composites/index.js.map +1 -1
  393. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.js.map +1 -1
  394. package/dist/dist-esm/react-composites/src/composites/localization/index.js.map +1 -1
  395. package/dist/dist-esm/react-composites/src/composites/localization/locales/en-US/strings.json +6 -2
  396. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.js.map +1 -1
  397. package/dist/dist-esm/react-composites/src/index-public.js.map +1 -1
  398. package/package.json +8 -8
  399. package/dist/dist-esm/acs-ui-common/src/MessageStatus.d.ts.map +0 -1
  400. package/dist/dist-esm/acs-ui-common/src/areEqual.d.ts.map +0 -1
  401. package/dist/dist-esm/acs-ui-common/src/common.d.ts.map +0 -1
  402. package/dist/dist-esm/acs-ui-common/src/commonProperties.d.ts.map +0 -1
  403. package/dist/dist-esm/acs-ui-common/src/constants.d.ts.map +0 -1
  404. package/dist/dist-esm/acs-ui-common/src/cssUtils.d.ts.map +0 -1
  405. package/dist/dist-esm/acs-ui-common/src/identifier.d.ts.map +0 -1
  406. package/dist/dist-esm/acs-ui-common/src/index.d.ts.map +0 -1
  407. package/dist/dist-esm/acs-ui-common/src/localizationUtils.d.ts.map +0 -1
  408. package/dist/dist-esm/acs-ui-common/src/logEvent.d.ts.map +0 -1
  409. package/dist/dist-esm/acs-ui-common/src/memoizeFnAll.d.ts.map +0 -1
  410. package/dist/dist-esm/acs-ui-common/src/safeStringify.d.ts.map +0 -1
  411. package/dist/dist-esm/acs-ui-common/src/telemetry.d.ts.map +0 -1
  412. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.d.ts.map +0 -1
  413. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.d.ts.map +0 -1
  414. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.d.ts.map +0 -1
  415. package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.d.ts.map +0 -1
  416. package/dist/dist-esm/calling-component-bindings/src/handlers/createHandlers.d.ts.map +0 -1
  417. package/dist/dist-esm/calling-component-bindings/src/hooks/useHandlers.d.ts.map +0 -1
  418. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts.map +0 -1
  419. package/dist/dist-esm/calling-component-bindings/src/hooks/useSelector.d.ts.map +0 -1
  420. package/dist/dist-esm/calling-component-bindings/src/index.d.ts.map +0 -1
  421. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.d.ts.map +0 -1
  422. package/dist/dist-esm/calling-component-bindings/src/participantsButtonSelector.d.ts.map +0 -1
  423. package/dist/dist-esm/calling-component-bindings/src/providers/CallAgentProvider.d.ts.map +0 -1
  424. package/dist/dist-esm/calling-component-bindings/src/providers/CallClientProvider.d.ts.map +0 -1
  425. package/dist/dist-esm/calling-component-bindings/src/providers/CallProvider.d.ts.map +0 -1
  426. package/dist/dist-esm/calling-component-bindings/src/providers/index.d.ts.map +0 -1
  427. package/dist/dist-esm/calling-component-bindings/src/utils/SelectorUtils.d.ts.map +0 -1
  428. package/dist/dist-esm/calling-component-bindings/src/utils/callUtils.d.ts.map +0 -1
  429. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts.map +0 -1
  430. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts.map +0 -1
  431. package/dist/dist-esm/calling-component-bindings/src/videoGallerySelector.d.ts.map +0 -1
  432. package/dist/dist-esm/calling-stateful-client/src/CallAgentDeclarative.d.ts.map +0 -1
  433. package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts.map +0 -1
  434. package/dist/dist-esm/calling-stateful-client/src/CallContext.d.ts.map +0 -1
  435. package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.d.ts.map +0 -1
  436. package/dist/dist-esm/calling-stateful-client/src/CallIdHistory.d.ts.map +0 -1
  437. package/dist/dist-esm/calling-stateful-client/src/CallIdRef.d.ts.map +0 -1
  438. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts.map +0 -1
  439. package/dist/dist-esm/calling-stateful-client/src/Converter.d.ts.map +0 -1
  440. package/dist/dist-esm/calling-stateful-client/src/DeviceManagerDeclarative.d.ts.map +0 -1
  441. package/dist/dist-esm/calling-stateful-client/src/IncomingCallDeclarative.d.ts.map +0 -1
  442. package/dist/dist-esm/calling-stateful-client/src/IncomingCallSubscriber.d.ts.map +0 -1
  443. package/dist/dist-esm/calling-stateful-client/src/InternalCallContext.d.ts.map +0 -1
  444. package/dist/dist-esm/calling-stateful-client/src/Logger.d.ts.map +0 -1
  445. package/dist/dist-esm/calling-stateful-client/src/ParticipantSubscriber.d.ts.map +0 -1
  446. package/dist/dist-esm/calling-stateful-client/src/RecordingSubscriber.d.ts.map +0 -1
  447. package/dist/dist-esm/calling-stateful-client/src/RemoteVideoStreamSubscriber.d.ts.map +0 -1
  448. package/dist/dist-esm/calling-stateful-client/src/StatefulCallClient.d.ts.map +0 -1
  449. package/dist/dist-esm/calling-stateful-client/src/StreamUtils.d.ts.map +0 -1
  450. package/dist/dist-esm/calling-stateful-client/src/TranscriptionSubscriber.d.ts.map +0 -1
  451. package/dist/dist-esm/calling-stateful-client/src/UserFacingDiagnosticsSubscriber.d.ts.map +0 -1
  452. package/dist/dist-esm/calling-stateful-client/src/index.d.ts.map +0 -1
  453. package/dist/dist-esm/chat-component-bindings/src/baseSelectors.d.ts.map +0 -1
  454. package/dist/dist-esm/chat-component-bindings/src/chatParticipantListSelector.d.ts.map +0 -1
  455. package/dist/dist-esm/chat-component-bindings/src/errorBarSelector.d.ts.map +0 -1
  456. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.d.ts.map +0 -1
  457. package/dist/dist-esm/chat-component-bindings/src/hooks/useHandlers.d.ts.map +0 -1
  458. package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.d.ts.map +0 -1
  459. package/dist/dist-esm/chat-component-bindings/src/hooks/useSelector.d.ts.map +0 -1
  460. package/dist/dist-esm/chat-component-bindings/src/index.d.ts.map +0 -1
  461. package/dist/dist-esm/chat-component-bindings/src/messageThreadSelector.d.ts.map +0 -1
  462. package/dist/dist-esm/chat-component-bindings/src/providers/ChatClientProvider.d.ts.map +0 -1
  463. package/dist/dist-esm/chat-component-bindings/src/providers/ChatThreadClientProvider.d.ts.map +0 -1
  464. package/dist/dist-esm/chat-component-bindings/src/sendBoxSelector.d.ts.map +0 -1
  465. package/dist/dist-esm/chat-component-bindings/src/typingIndicatorSelector.d.ts.map +0 -1
  466. package/dist/dist-esm/chat-component-bindings/src/utils/compareMessages.d.ts.map +0 -1
  467. package/dist/dist-esm/chat-component-bindings/src/utils/constants.d.ts.map +0 -1
  468. package/dist/dist-esm/chat-component-bindings/src/utils/updateMessagesWithAttached.d.ts.map +0 -1
  469. package/dist/dist-esm/chat-stateful-client/src/ChatClientState.d.ts.map +0 -1
  470. package/dist/dist-esm/chat-stateful-client/src/ChatContext.d.ts.map +0 -1
  471. package/dist/dist-esm/chat-stateful-client/src/Constants.d.ts.map +0 -1
  472. package/dist/dist-esm/chat-stateful-client/src/EventSubscriber.d.ts.map +0 -1
  473. package/dist/dist-esm/chat-stateful-client/src/Logger.d.ts.map +0 -1
  474. package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.d.ts.map +0 -1
  475. package/dist/dist-esm/chat-stateful-client/src/StatefulChatThreadClient.d.ts.map +0 -1
  476. package/dist/dist-esm/chat-stateful-client/src/convertChatMessage.d.ts.map +0 -1
  477. package/dist/dist-esm/chat-stateful-client/src/index.d.ts.map +0 -1
  478. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedIterator.d.ts.map +0 -1
  479. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListMessages.d.ts.map +0 -1
  480. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListParticipants.d.ts.map +0 -1
  481. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListReadReceipts.d.ts.map +0 -1
  482. package/dist/dist-esm/chat-stateful-client/src/iterators/createDecoratedListThreads.d.ts.map +0 -1
  483. package/dist/dist-esm/chat-stateful-client/src/types/ChatMessageWithStatus.d.ts.map +0 -1
  484. package/dist/dist-esm/communication-react/src/index.d.ts.map +0 -1
  485. package/dist/dist-esm/communication-react/src/mergedHooks.d.ts.map +0 -1
  486. package/dist/dist-esm/react-components/src/components/Announcer.d.ts.map +0 -1
  487. package/dist/dist-esm/react-components/src/components/CameraButton.d.ts.map +0 -1
  488. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionMenu.d.ts.map +0 -1
  489. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageActionsFlyout.d.ts.map +0 -1
  490. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponent.d.ts.map +0 -1
  491. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.d.ts.map +0 -1
  492. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsMessageBubble.d.ts.map +0 -1
  493. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageContent.d.ts.map +0 -1
  494. package/dist/dist-esm/react-components/src/components/ComplianceBanner/BannerMessage.d.ts.map +0 -1
  495. package/dist/dist-esm/react-components/src/components/ComplianceBanner/ComplianceBanner.d.ts.map +0 -1
  496. package/dist/dist-esm/react-components/src/components/ComplianceBanner/DelayedUpdateBanner.d.ts.map +0 -1
  497. package/dist/dist-esm/react-components/src/components/ComplianceBanner/Utils.d.ts.map +0 -1
  498. package/dist/dist-esm/react-components/src/components/ComplianceBanner/index.d.ts.map +0 -1
  499. package/dist/dist-esm/react-components/src/components/ComplianceBanner/types.d.ts.map +0 -1
  500. package/dist/dist-esm/react-components/src/components/ControlBar.d.ts.map +0 -1
  501. package/dist/dist-esm/react-components/src/components/ControlBarButton.d.ts.map +0 -1
  502. package/dist/dist-esm/react-components/src/components/ControlButtonTooltip.d.ts.map +0 -1
  503. package/dist/dist-esm/react-components/src/components/DevicesButton.d.ts.map +0 -1
  504. package/dist/dist-esm/react-components/src/components/Dialpad/Dialpad.d.ts.map +0 -1
  505. package/dist/dist-esm/react-components/src/components/Drawer/DrawerContentContainer.d.ts.map +0 -1
  506. package/dist/dist-esm/react-components/src/components/Drawer/DrawerLightDismiss.d.ts.map +0 -1
  507. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenu.d.ts.map +0 -1
  508. package/dist/dist-esm/react-components/src/components/Drawer/DrawerMenuItem.d.ts.map +0 -1
  509. package/dist/dist-esm/react-components/src/components/Drawer/DrawerSurface.d.ts.map +0 -1
  510. package/dist/dist-esm/react-components/src/components/Drawer/index.d.ts.map +0 -1
  511. package/dist/dist-esm/react-components/src/components/EndCallButton.d.ts.map +0 -1
  512. package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts.map +0 -1
  513. package/dist/dist-esm/react-components/src/components/FileCard.d.ts.map +0 -1
  514. package/dist/dist-esm/react-components/src/components/FileCardGroup.d.ts.map +0 -1
  515. package/dist/dist-esm/react-components/src/components/FileDownloadCards.d.ts.map +0 -1
  516. package/dist/dist-esm/react-components/src/components/FileUploadCards.d.ts.map +0 -1
  517. package/dist/dist-esm/react-components/src/components/GridLayout.d.ts.map +0 -1
  518. package/dist/dist-esm/react-components/src/components/HighContrastAwareIcon.d.ts.map +0 -1
  519. package/dist/dist-esm/react-components/src/components/HoldButton.d.ts.map +0 -1
  520. package/dist/dist-esm/react-components/src/components/HorizontalGallery.d.ts.map +0 -1
  521. package/dist/dist-esm/react-components/src/components/InputBoxComponent.d.ts.map +0 -1
  522. package/dist/dist-esm/react-components/src/components/LocalVideoCameraButton.d.ts.map +0 -1
  523. package/dist/dist-esm/react-components/src/components/LocalVideoTile.d.ts.map +0 -1
  524. package/dist/dist-esm/react-components/src/components/MessageStatusIndicator.d.ts.map +0 -1
  525. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts.map +0 -1
  526. package/dist/dist-esm/react-components/src/components/MicrophoneButton.d.ts.map +0 -1
  527. package/dist/dist-esm/react-components/src/components/ModalClone/ModalClone.d.ts.map +0 -1
  528. package/dist/dist-esm/react-components/src/components/ParticipantItem.d.ts.map +0 -1
  529. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts.map +0 -1
  530. package/dist/dist-esm/react-components/src/components/ParticipantsButton.d.ts.map +0 -1
  531. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPicture.d.ts.map +0 -1
  532. package/dist/dist-esm/react-components/src/components/PictureInPictureInPicture/PictureInPictureInPictureTile.d.ts.map +0 -1
  533. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts.map +0 -1
  534. package/dist/dist-esm/react-components/src/components/ResponsiveHorizontalGallery.d.ts.map +0 -1
  535. package/dist/dist-esm/react-components/src/components/ScreenShareButton.d.ts.map +0 -1
  536. package/dist/dist-esm/react-components/src/components/SendBox.d.ts.map +0 -1
  537. package/dist/dist-esm/react-components/src/components/SendBoxErrorBar.d.ts.map +0 -1
  538. package/dist/dist-esm/react-components/src/components/SendBoxErrors.d.ts.map +0 -1
  539. package/dist/dist-esm/react-components/src/components/StreamMedia.d.ts.map +0 -1
  540. package/dist/dist-esm/react-components/src/components/SystemMessage.d.ts.map +0 -1
  541. package/dist/dist-esm/react-components/src/components/TypingIndicator.d.ts.map +0 -1
  542. package/dist/dist-esm/react-components/src/components/VideoGallery/LocalScreenShare.d.ts.map +0 -1
  543. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.d.ts.map +0 -1
  544. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/LocalScreenShare.styles.d.ts.map +0 -1
  545. package/dist/dist-esm/react-components/src/components/VideoGallery/styles/RemoteScreenShare.styles.d.ts.map +0 -1
  546. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoStreamLifecycleMaintainer.d.ts.map +0 -1
  547. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts.map +0 -1
  548. package/dist/dist-esm/react-components/src/components/VideoTile.d.ts.map +0 -1
  549. package/dist/dist-esm/react-components/src/components/VoiceOverButton.d.ts.map +0 -1
  550. package/dist/dist-esm/react-components/src/components/index.d.ts.map +0 -1
  551. package/dist/dist-esm/react-components/src/components/styles/ChatMessageComponent.styles.d.ts.map +0 -1
  552. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.d.ts.map +0 -1
  553. package/dist/dist-esm/react-components/src/components/styles/Dialpad.styles.d.ts.map +0 -1
  554. package/dist/dist-esm/react-components/src/components/styles/EditBox.styles.d.ts.map +0 -1
  555. package/dist/dist-esm/react-components/src/components/styles/GridLayout.styles.d.ts.map +0 -1
  556. package/dist/dist-esm/react-components/src/components/styles/HorizontalGallery.styles.d.ts.map +0 -1
  557. package/dist/dist-esm/react-components/src/components/styles/IconButton.styles.d.ts.map +0 -1
  558. package/dist/dist-esm/react-components/src/components/styles/InputBoxComponent.style.d.ts.map +0 -1
  559. package/dist/dist-esm/react-components/src/components/styles/MessageStatusIndicator.styles.d.ts.map +0 -1
  560. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts.map +0 -1
  561. package/dist/dist-esm/react-components/src/components/styles/ParticipantItem.styles.d.ts.map +0 -1
  562. package/dist/dist-esm/react-components/src/components/styles/ParticipantList.styles.d.ts.map +0 -1
  563. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.d.ts.map +0 -1
  564. package/dist/dist-esm/react-components/src/components/styles/StreamMedia.styles.d.ts.map +0 -1
  565. package/dist/dist-esm/react-components/src/components/styles/SystemMessage.styles.d.ts.map +0 -1
  566. package/dist/dist-esm/react-components/src/components/styles/TypingIndicator.styles.d.ts.map +0 -1
  567. package/dist/dist-esm/react-components/src/components/styles/VideoGallery.styles.d.ts.map +0 -1
  568. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts.map +0 -1
  569. package/dist/dist-esm/react-components/src/components/styles/VoiceOverButton.style.d.ts.map +0 -1
  570. package/dist/dist-esm/react-components/src/components/utils/Datetime.d.ts.map +0 -1
  571. package/dist/dist-esm/react-components/src/components/utils/common.d.ts.map +0 -1
  572. package/dist/dist-esm/react-components/src/components/utils/delay.d.ts.map +0 -1
  573. package/dist/dist-esm/react-components/src/components/utils/formatPhoneNumber.d.ts.map +0 -1
  574. package/dist/dist-esm/react-components/src/components/utils/getParticipantsWhoHaveReadMessage.d.ts.map +0 -1
  575. package/dist/dist-esm/react-components/src/components/utils/keyboardNavigation.d.ts.map +0 -1
  576. package/dist/dist-esm/react-components/src/components/utils/responsive.d.ts.map +0 -1
  577. package/dist/dist-esm/react-components/src/components/utils/videoTileStylesUtils.d.ts.map +0 -1
  578. package/dist/dist-esm/react-components/src/components/utils.d.ts.map +0 -1
  579. package/dist/dist-esm/react-components/src/gallery/dominantSpeaker.d.ts.map +0 -1
  580. package/dist/dist-esm/react-components/src/gallery/index.d.ts.map +0 -1
  581. package/dist/dist-esm/react-components/src/identifiers/IdentifierProvider.d.ts.map +0 -1
  582. package/dist/dist-esm/react-components/src/identifiers/index.d.ts.map +0 -1
  583. package/dist/dist-esm/react-components/src/index.d.ts.map +0 -1
  584. package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts.map +0 -1
  585. package/dist/dist-esm/react-components/src/localization/index.d.ts.map +0 -1
  586. package/dist/dist-esm/react-components/src/localization/locales/index.d.ts.map +0 -1
  587. package/dist/dist-esm/react-components/src/permissions/PermissionsProvider.d.ts.map +0 -1
  588. package/dist/dist-esm/react-components/src/permissions/index.d.ts.map +0 -1
  589. package/dist/dist-esm/react-components/src/theming/FluentThemeProvider.d.ts.map +0 -1
  590. package/dist/dist-esm/react-components/src/theming/icons.d.ts.map +0 -1
  591. package/dist/dist-esm/react-components/src/theming/index.d.ts.map +0 -1
  592. package/dist/dist-esm/react-components/src/theming/themeUtils.d.ts.map +0 -1
  593. package/dist/dist-esm/react-components/src/theming/themes.d.ts.map +0 -1
  594. package/dist/dist-esm/react-components/src/types/ChatMessage.d.ts.map +0 -1
  595. package/dist/dist-esm/react-components/src/types/CommunicationParticipant.d.ts.map +0 -1
  596. package/dist/dist-esm/react-components/src/types/CustomStylesProps.d.ts.map +0 -1
  597. package/dist/dist-esm/react-components/src/types/OnRender.d.ts.map +0 -1
  598. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts.map +0 -1
  599. package/dist/dist-esm/react-components/src/types/ReadReceiptsBySenderId.d.ts.map +0 -1
  600. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts.map +0 -1
  601. package/dist/dist-esm/react-components/src/types/index.d.ts.map +0 -1
  602. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.d.ts.map +0 -1
  603. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.d.ts.map +0 -1
  604. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts.map +0 -1
  605. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts.map +0 -1
  606. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapterProvider.d.ts.map +0 -1
  607. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/DiagnosticsForwarder.d.ts.map +0 -1
  608. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/ParticipantSubcriber.d.ts.map +0 -1
  609. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.d.ts.map +0 -1
  610. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts.map +0 -1
  611. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.d.ts.map +0 -1
  612. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallPane.d.ts.map +0 -1
  613. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/ExpandedLocalVideoTile.d.ts.map +0 -1
  614. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.d.ts.map +0 -1
  615. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.d.ts.map +0 -1
  616. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalAndRemotePIP.d.ts.map +0 -1
  617. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.d.ts.map +0 -1
  618. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.d.ts.map +0 -1
  619. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.d.ts.map +0 -1
  620. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MutedNotification.d.ts.map +0 -1
  621. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.d.ts.map +0 -1
  622. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/StartCallButton.d.ts.map +0 -1
  623. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.d.ts.map +0 -1
  624. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Custom.d.ts.map +0 -1
  625. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Devices.d.ts.map +0 -1
  626. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/EndCall.d.ts.map +0 -1
  627. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.d.ts.map +0 -1
  628. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Participants.d.ts.map +0 -1
  629. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/People.d.ts.map +0 -1
  630. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.d.ts.map +0 -1
  631. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useAdaptedSelector.d.ts.map +0 -1
  632. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.d.ts.map +0 -1
  633. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.d.ts.map +0 -1
  634. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useSelector.d.ts.map +0 -1
  635. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.d.ts.map +0 -1
  636. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts.map +0 -1
  637. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.d.ts.map +0 -1
  638. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.d.ts.map +0 -1
  639. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.d.ts.map +0 -1
  640. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.d.ts.map +0 -1
  641. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/LocalVideoTileSelector.d.ts.map +0 -1
  642. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.d.ts.map +0 -1
  643. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/callStatusSelector.d.ts.map +0 -1
  644. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/complianceBannerSelector.d.ts.map +0 -1
  645. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/devicePermissionSelector.d.ts.map +0 -1
  646. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/dominantRemoteParticipantSelector.d.ts.map +0 -1
  647. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/lobbySelector.d.ts.map +0 -1
  648. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localAndRemotePIPSelector.d.ts.map +0 -1
  649. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localPreviewSelector.d.ts.map +0 -1
  650. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/localVideoStreamSelector.d.ts.map +0 -1
  651. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mediaGallerySelector.d.ts.map +0 -1
  652. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/mutedNotificationSelector.d.ts.map +0 -1
  653. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/networkReconnectTileSelector.d.ts.map +0 -1
  654. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.d.ts.map +0 -1
  655. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallComposite.styles.d.ts.map +0 -1
  656. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallConfiguration.styles.d.ts.map +0 -1
  657. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallControls.styles.d.ts.map +0 -1
  658. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/CallPage.styles.d.ts.map +0 -1
  659. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/ExpandedLocalVideoTile.styles.d.ts.map +0 -1
  660. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/HoldPane.styles.d.ts.map +0 -1
  661. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LobbyTile.styles.d.ts.map +0 -1
  662. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalDeviceSettings.styles.d.ts.map +0 -1
  663. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/LocalPreview.styles.d.ts.map +0 -1
  664. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.d.ts +0 -40
  665. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.d.ts.map +0 -1
  666. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.js +0 -64
  667. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/MediaGallery.styles.js.map +0 -1
  668. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.d.ts.map +0 -1
  669. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NoticePage.styles.d.ts.map +0 -1
  670. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/StartCallButton.styles.d.ts.map +0 -1
  671. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.d.ts.map +0 -1
  672. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.d.ts.map +0 -1
  673. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/index.d.ts.map +0 -1
  674. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts.map +0 -1
  675. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatControlBar.d.ts.map +0 -1
  676. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatPane.d.ts.map +0 -1
  677. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButton.d.ts.map +0 -1
  678. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ChatButtonWithUnreadMessagesBadge.d.ts.map +0 -1
  679. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/ConvertContextualMenuItemToDrawerMenuItem.d.ts.map +0 -1
  680. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CustomButton.d.ts.map +0 -1
  681. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/NotificationIcon.d.ts.map +0 -1
  682. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PeopleButton.d.ts.map +0 -1
  683. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/PreparedMoreDrawer.d.ts.map +0 -1
  684. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/Strings.d.ts.map +0 -1
  685. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts.map +0 -1
  686. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts.map +0 -1
  687. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts.map +0 -1
  688. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts.map +0 -1
  689. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/parseTeamsUrl.d.ts.map +0 -1
  690. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/components/MoreDrawer.d.ts.map +0 -1
  691. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/hooks/useCallWithChatCompositeStrings.d.ts.map +0 -1
  692. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/index.d.ts.map +0 -1
  693. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/selectors/moreDrawerSelector.d.ts.map +0 -1
  694. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.d.ts.map +0 -1
  695. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/styles/CallWithChatCompositeStyles.d.ts.map +0 -1
  696. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts.map +0 -1
  697. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatHeader.d.ts.map +0 -1
  698. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.d.ts.map +0 -1
  699. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreenPeoplePane.d.ts.map +0 -1
  700. package/dist/dist-esm/react-composites/src/composites/ChatComposite/FileDownloadErrorBar.d.ts.map +0 -1
  701. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.d.ts.map +0 -1
  702. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.d.ts.map +0 -1
  703. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationFileUploadAdapter.d.ts.map +0 -1
  704. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.d.ts.map +0 -1
  705. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.d.ts.map +0 -1
  706. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUpload.d.ts.map +0 -1
  707. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadButton.d.ts.map +0 -1
  708. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/FileUploadHandler.d.ts.map +0 -1
  709. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/index.d.ts.map +0 -1
  710. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useAdaptedSelector.d.ts.map +0 -1
  711. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.d.ts.map +0 -1
  712. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/usePropsFor.d.ts.map +0 -1
  713. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useSelector.d.ts.map +0 -1
  714. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts.map +0 -1
  715. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.d.ts.map +0 -1
  716. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/fileUploadsSelector.d.ts.map +0 -1
  717. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.d.ts.map +0 -1
  718. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleButton.d.ts.map +0 -1
  719. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.d.ts.map +0 -1
  720. package/dist/dist-esm/react-composites/src/composites/common/AddPeopleDropdown.styles.d.ts.map +0 -1
  721. package/dist/dist-esm/react-composites/src/composites/common/AvatarPersona.d.ts.map +0 -1
  722. package/dist/dist-esm/react-composites/src/composites/common/BaseComposite.d.ts.map +0 -1
  723. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.d.ts.map +0 -1
  724. package/dist/dist-esm/react-composites/src/composites/common/CallingDialpad.styles.d.ts.map +0 -1
  725. package/dist/dist-esm/react-composites/src/composites/common/ContainerRectProps.d.ts.map +0 -1
  726. package/dist/dist-esm/react-composites/src/composites/common/ModalLocalAndRemotePIP.d.ts.map +0 -1
  727. package/dist/dist-esm/react-composites/src/composites/common/MoreButton.d.ts.map +0 -1
  728. package/dist/dist-esm/react-composites/src/composites/common/ParticipantContainer.d.ts.map +0 -1
  729. package/dist/dist-esm/react-composites/src/composites/common/PeoplePaneContent.d.ts.map +0 -1
  730. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.d.ts.map +0 -1
  731. package/dist/dist-esm/react-composites/src/composites/common/SendDtmfDialpad.styles.d.ts.map +0 -1
  732. package/dist/dist-esm/react-composites/src/composites/common/SidePaneHeader.d.ts.map +0 -1
  733. package/dist/dist-esm/react-composites/src/composites/common/TabHeader.d.ts.map +0 -1
  734. package/dist/dist-esm/react-composites/src/composites/common/adapters.d.ts.map +0 -1
  735. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts.map +0 -1
  736. package/dist/dist-esm/react-composites/src/composites/common/styles/GlobalHostLayer.styles.d.ts.map +0 -1
  737. package/dist/dist-esm/react-composites/src/composites/common/styles/ModalLocalAndRemotePIP.styles.d.ts.map +0 -1
  738. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.d.ts.map +0 -1
  739. package/dist/dist-esm/react-composites/src/composites/common/styles/ParticipantContainer.styles.d.ts.map +0 -1
  740. package/dist/dist-esm/react-composites/src/composites/common/styles/PeoplePaneContent.styles.d.ts.map +0 -1
  741. package/dist/dist-esm/react-composites/src/composites/common/utils.d.ts.map +0 -1
  742. package/dist/dist-esm/react-composites/src/composites/index.d.ts.map +0 -1
  743. package/dist/dist-esm/react-composites/src/composites/localization/LocalizationProvider.d.ts.map +0 -1
  744. package/dist/dist-esm/react-composites/src/composites/localization/index.d.ts.map +0 -1
  745. package/dist/dist-esm/react-composites/src/composites/localization/locales/index.d.ts.map +0 -1
  746. 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-202208160041.0';
195
+ var telemetryVersion = '1.3.3-alpha-202208190016.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
  */
@@ -4801,6 +4862,25 @@ const isSpeakingBorderDiv = {
4801
4862
  // Ensure the isSpeaking element does not steal any pointer events such as onClick events
4802
4863
  pointerEvents: 'none'
4803
4864
  };
4865
+ /**
4866
+ * @private
4867
+ */
4868
+ const participantStateStringStyles = (showLabel) => {
4869
+ return {
4870
+ textAlign: 'center',
4871
+ minWidth: '3rem',
4872
+ color: 'inherit',
4873
+ width: showLabel ? 'auto' : '100%',
4874
+ marginRight: showLabel ? 0 : 'none',
4875
+ marginLeft: showLabel ? 'auto' : 'none',
4876
+ fontSize: '0.75rem',
4877
+ lineHeight: 'normal',
4878
+ overflow: 'hidden',
4879
+ textOverflow: 'ellipsis',
4880
+ whiteSpace: 'nowrap',
4881
+ padding: '0.25rem'
4882
+ };
4883
+ };
4804
4884
 
4805
4885
  // Copyright (c) Microsoft Corporation.
4806
4886
  /**
@@ -4817,26 +4897,10 @@ const DEFAULT_PERSONA_MAX_SIZE_PX = 100;
4817
4897
  // Coin min size is set PersonaSize.size32
4818
4898
  const DEFAULT_PERSONA_MIN_SIZE_PX = 32;
4819
4899
  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]);
4900
+ const { text, noVideoAvailableAriaLabel, coinSize, hidePersonaDetails } = props;
4836
4901
  return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
4837
4902
  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))));
4903
+ 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
4904
  };
4841
4905
  const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
4842
4906
  /**
@@ -4847,15 +4911,10 @@ const defaultPersonaStyles = { root: { margin: 'auto', maxHeight: '100%' } };
4847
4911
  * @public
4848
4912
  */
4849
4913
  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);
4914
+ 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
4915
  const [personaSize, setPersonaSize] = React.useState(100);
4858
4916
  const videoTileRef = React.useRef(null);
4917
+ const locale = useLocale$1();
4859
4918
  const theme = useTheme();
4860
4919
  const isVideoRendered = !!renderElement;
4861
4920
  const observer = React.useRef(new ResizeObserver((entries) => {
@@ -4876,14 +4935,13 @@ const VideoTile = (props) => {
4876
4935
  noVideoAvailableAriaLabel,
4877
4936
  coinSize: personaSize,
4878
4937
  styles: defaultPersonaStyles,
4879
- hidePersonaDetails: true,
4880
- /* @conditional-compile-remove(one-to-n-calling) */
4881
- /* @conditional-compile-remove(PSTN-calls) */
4882
- participantState: participantState
4938
+ hidePersonaDetails: true
4883
4939
  };
4884
4940
  const videoHintWithBorderRadius = react.mergeStyles(videoHint, { borderRadius: theme.effects.roundedCorner4 });
4885
4941
  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
4942
  const ids = useIdentifiers();
4943
+ const canShowLabel = showLabel && (displayName || (showMuteIndicator && isMuted));
4944
+ const participantStateString = participantStateStringTrampoline(props, locale);
4887
4945
  return (React__default['default'].createElement(reactNorthstar.Ref, { innerRef: videoTileRef },
4888
4946
  React__default['default'].createElement(react.Stack, { "data-ui-id": ids.videoTile, className: react.mergeStyles(rootStyles, {
4889
4947
  background: theme.palette.neutralLighter,
@@ -4893,216 +4951,33 @@ const VideoTile = (props) => {
4893
4951
  borderRadius: theme.effects.roundedCorner4,
4894
4952
  border: `0.25rem solid ${isSpeaking ? theme.palette.themePrimary : 'transparent'}`
4895
4953
  }) }),
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)),
4954
+ 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))))),
4955
+ (canShowLabel || participantStateString) && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoContainerStyle, tokens: tileInfoContainerTokens },
4956
+ canShowLabel && (React__default['default'].createElement(react.Stack, { horizontal: true, className: tileInfoStyle },
4957
+ React__default['default'].createElement(react.Text, { className: react.mergeStyles(displayNameStyle), title: displayName }, displayName),
4903
4958
  showMuteIndicator && isMuted && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
4904
- React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" })))))),
4959
+ React__default['default'].createElement(react.Icon, { iconName: "VideoTileMicOff" }))))),
4960
+ participantStateString && (React__default['default'].createElement(react.Text, { className: react.mergeStyles(participantStateStringStyles(showLabel)) }, participantStateString)))),
4905
4961
  children && (React__default['default'].createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === void 0 ? void 0 : styles.overlayContainer) }, children)))));
4906
4962
  };
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,
4963
+ const participantStateStringTrampoline = (props, locale) => {
4919
4964
  /* @conditional-compile-remove(one-to-n-calling) */
4920
4965
  /* @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)));
4966
+ const strings = Object.assign(Object.assign({}, locale.strings.videoTile), props.strings);
4967
+ /* @conditional-compile-remove(one-to-n-calling) */
4968
+ /* @conditional-compile-remove(PSTN-calls) */
4969
+ return props.participantState === 'Idle' || props.participantState === 'Connecting'
4970
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateConnecting
4971
+ : props.participantState === 'EarlyMedia' || props.participantState === 'Ringing'
4972
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateRinging
4973
+ : props.participantState === 'Hold'
4974
+ ? strings === null || strings === void 0 ? void 0 : strings.participantStateHold
4975
+ : undefined;
5070
4976
  };
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));
4977
+ const tileInfoContainerTokens = {
4978
+ // A horizontal Stack sets the left margin to 0 for all it's children.
4979
+ // We need to allow the children to set their own margins
4980
+ childrenGap: 'none'
5106
4981
  };
5107
4982
 
5108
4983
  // Copyright (c) Microsoft Corporation.
@@ -5284,6 +5159,240 @@ const localVideoModalStyles = {
5284
5159
  }
5285
5160
  };
5286
5161
 
5162
+ // Copyright (c) Microsoft Corporation.
5163
+ /**
5164
+ * A memoized version of VideoTile for rendering remote participants. React.memo is used for a performance
5165
+ * boost by memoizing the same rendered component to avoid rerendering a VideoTile when its position in the
5166
+ * array changes causing a rerender in the parent component. https://reactjs.org/docs/react-api.html#reactmemo
5167
+ *
5168
+ * @internal
5169
+ */
5170
+ const _RemoteVideoTile = React__default['default'].memo((props) => {
5171
+ const { isAvailable, isReceiving = true, // default to true to prevent any breaking change
5172
+ isMuted, isSpeaking, isScreenSharingOn, onCreateRemoteStreamView, onDisposeRemoteStreamView, remoteVideoViewOptions, renderElement, userId, displayName, onRenderAvatar, showMuteIndicator } = props;
5173
+ const containerRef = React__default['default'].useRef(null);
5174
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
5175
+ const containerWidth = _useContainerWidth(containerRef);
5176
+ const remoteVideoStreamProps = React.useMemo(() => ({
5177
+ isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
5178
+ isScreenSharingOn,
5179
+ isStreamAvailable: isAvailable,
5180
+ isStreamReceiving: isReceiving,
5181
+ onCreateRemoteStreamView,
5182
+ onDisposeRemoteStreamView,
5183
+ remoteParticipantId: userId,
5184
+ renderElementExists: !!renderElement,
5185
+ scalingMode: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.scalingMode
5186
+ }), [
5187
+ isAvailable,
5188
+ isReceiving,
5189
+ isScreenSharingOn,
5190
+ onCreateRemoteStreamView,
5191
+ onDisposeRemoteStreamView,
5192
+ remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
5193
+ remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.scalingMode,
5194
+ renderElement,
5195
+ userId
5196
+ ]);
5197
+ // Handle creating, destroying and updating the video stream as necessary
5198
+ useRemoteVideoStreamLifecycleMaintainer(remoteVideoStreamProps);
5199
+ const renderVideoStreamElement = React.useMemo(() => {
5200
+ // Checking if renderElement is well defined or not as calling SDK has a number of video streams limitation which
5201
+ // implies that, after their threshold, all streams have no child (blank video)
5202
+ if (!renderElement || !renderElement.childElementCount) {
5203
+ // Returning `undefined` results in the placeholder with avatar being shown
5204
+ return undefined;
5205
+ }
5206
+ return (React__default['default'].createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' }));
5207
+ }, [renderElement, isReceiving]);
5208
+ const showLabelTrampoline = React.useMemo(() => {
5209
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
5210
+ return canShowLabel(props.participantState, props.showLabel, containerWidth);
5211
+ }, [
5212
+ /* @conditional-compile-remove(one-to-n-calling) */
5213
+ /* @conditional-compile-remove(PSTN-calls) */
5214
+ containerWidth,
5215
+ props
5216
+ ]);
5217
+ return (
5218
+ // IMPORTANT: This div needs to be a flex so that the children take up its full width and height
5219
+ React__default['default'].createElement("div", { ref: containerRef, style: { display: 'flex', flexGrow: 1 } },
5220
+ 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,
5221
+ /* @conditional-compile-remove(one-to-n-calling) */
5222
+ /* @conditional-compile-remove(PSTN-calls) */
5223
+ participantState: props.participantState })));
5224
+ });
5225
+ /* @conditional-compile-remove(one-to-n-calling) */
5226
+ /* @conditional-compile-remove(PSTN-calls) */
5227
+ /**
5228
+ * Determines if a label should be shown for a remote video tile.
5229
+ * When the remote video tile is rendered as a small tile in horizontal gallery,
5230
+ * we hide the participants name if they are in hold/connecting states.
5231
+ */
5232
+ const canShowLabel = (participantState, showLabel, containerWidth) => {
5233
+ // if showLabel has been explicitly set to false, don't show the label
5234
+ if (showLabel === false) {
5235
+ return showLabel;
5236
+ }
5237
+ // If the participant state is in calling or hold and
5238
+ // the container width is less than the small horizontal gallery tile size,
5239
+ // don't show the label (participant name)
5240
+ if (_isParticipantStateCallingOrHold(participantState)) {
5241
+ if (containerWidth && containerWidth / 16 <= SMALL_HORIZONTAL_GALLERY_TILE_SIZE_REM.width) {
5242
+ return false;
5243
+ }
5244
+ }
5245
+ return showLabel;
5246
+ };
5247
+
5248
+ // Copyright (c) Microsoft Corporation.
5249
+ // Licensed under the MIT license.
5250
+ /**
5251
+ * Horizontal Gallery button width in rem
5252
+ */
5253
+ const HORIZONTAL_GALLERY_BUTTON_WIDTH = 1.75;
5254
+ /**
5255
+ * @private
5256
+ */
5257
+ const leftRightButtonStyles = (theme) => {
5258
+ return {
5259
+ background: 'none',
5260
+ padding: 0,
5261
+ height: 'auto',
5262
+ minWidth: `${HORIZONTAL_GALLERY_BUTTON_WIDTH}rem`,
5263
+ maxWidth: `${HORIZONTAL_GALLERY_BUTTON_WIDTH}rem`,
5264
+ border: `1px solid ${theme.palette.neutralLight}`,
5265
+ borderRadius: theme.effects.roundedCorner4
5266
+ };
5267
+ };
5268
+ /**
5269
+ * Horizontal Gallery gap size in rem between tiles and buttons
5270
+ */
5271
+ const HORIZONTAL_GALLERY_GAP = 0.5;
5272
+ /**
5273
+ * @private
5274
+ */
5275
+ const rootStyle = {
5276
+ height: '100%',
5277
+ width: '100%',
5278
+ gap: `${HORIZONTAL_GALLERY_GAP}rem`
5279
+ };
5280
+ /**
5281
+ * @private
5282
+ */
5283
+ const childrenContainerStyle = {
5284
+ height: '100%',
5285
+ gap: `${HORIZONTAL_GALLERY_GAP}rem`
5286
+ };
5287
+
5288
+ // Copyright (c) Microsoft Corporation.
5289
+ /**
5290
+ * {@link HorizontalGallery} default children per page
5291
+ */
5292
+ const DEFAULT_CHILDREN_PER_PAGE = 5;
5293
+ /**
5294
+ * Renders a horizontal gallery that parents children horizontally. Handles pagination based on the childrenPerPage prop.
5295
+ * @param props - HorizontalGalleryProps {@link @azure/communication-react#HorizontalGalleryProps}
5296
+ * @returns
5297
+ */
5298
+ const HorizontalGallery = (props) => {
5299
+ var _a, _b;
5300
+ const { children, childrenPerPage = DEFAULT_CHILDREN_PER_PAGE, styles } = props;
5301
+ const ids = useIdentifiers();
5302
+ const [page, setPage] = React.useState(0);
5303
+ const numberOfChildren = React__default['default'].Children.count(children);
5304
+ const lastPage = Math.ceil(numberOfChildren / childrenPerPage) - 1;
5305
+ const paginatedChildren = React.useMemo(() => {
5306
+ return bucketize(React__default['default'].Children.toArray(children), childrenPerPage);
5307
+ }, [children, childrenPerPage]);
5308
+ // If children per page is 0 or less return empty element
5309
+ if (childrenPerPage <= 0) {
5310
+ return React__default['default'].createElement(React__default['default'].Fragment, null);
5311
+ }
5312
+ const firstIndexOfCurrentPage = page * childrenPerPage;
5313
+ const clippedPage = firstIndexOfCurrentPage < numberOfChildren - 1 ? page : lastPage;
5314
+ const childrenOnCurrentPage = paginatedChildren[clippedPage];
5315
+ const showButtons = numberOfChildren > childrenPerPage;
5316
+ const disablePreviousButton = page === 0;
5317
+ const disableNextButton = page === lastPage;
5318
+ return (React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(rootStyle, (_a = props.styles) === null || _a === void 0 ? void 0 : _a.root) },
5319
+ 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 })),
5320
+ React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(childrenContainerStyle, { '> *': (_b = props.styles) === null || _b === void 0 ? void 0 : _b.children }) }, childrenOnCurrentPage),
5321
+ 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 }))));
5322
+ };
5323
+ const HorizontalGalleryNavigationButton = (props) => {
5324
+ const theme = useTheme();
5325
+ 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));
5326
+ };
5327
+ function bucketize(arr, bucketSize) {
5328
+ const bucketArray = [];
5329
+ if (bucketSize <= 0) {
5330
+ return bucketArray;
5331
+ }
5332
+ for (let i = 0; i < arr.length; i += bucketSize) {
5333
+ bucketArray.push(arr.slice(i, i + bucketSize));
5334
+ }
5335
+ return bucketArray;
5336
+ }
5337
+
5338
+ // Copyright (c) Microsoft Corporation.
5339
+ /**
5340
+ * Wrapped HorizontalGallery that adjusts the number of items per page based on the
5341
+ * available width obtained from a ResizeObserver, width per child, gap width, and button width
5342
+ */
5343
+ const ResponsiveHorizontalGallery = (props) => {
5344
+ const { childWidthRem, gapWidthRem, buttonWidthRem = 0 } = props;
5345
+ const containerRef = React.useRef(null);
5346
+ const containerWidth = _useContainerWidth(containerRef);
5347
+ const leftPadding = containerRef.current ? parseFloat(getComputedStyle(containerRef.current).paddingLeft) : 0;
5348
+ const rightPadding = containerRef.current ? parseFloat(getComputedStyle(containerRef.current).paddingRight) : 0;
5349
+ const childrenPerPage = calculateChildrenPerPage({
5350
+ numberOfChildren: React__default['default'].Children.count(props.children),
5351
+ containerWidth: (containerWidth !== null && containerWidth !== void 0 ? containerWidth : 0) - leftPadding - rightPadding,
5352
+ childWidthRem,
5353
+ gapWidthRem,
5354
+ buttonWidthRem
5355
+ });
5356
+ return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(props.containerStyles) },
5357
+ React__default['default'].createElement(HorizontalGallery, { childrenPerPage: childrenPerPage, styles: props.horizontalGalleryStyles }, props.children)));
5358
+ };
5359
+ /**
5360
+ * Helper function to calculate children per page for HorizontalGallery based on width of container, child, buttons, and
5361
+ * gaps in between
5362
+ */
5363
+ const calculateChildrenPerPage = (args) => {
5364
+ const { numberOfChildren, containerWidth, buttonWidthRem, childWidthRem, gapWidthRem } = args;
5365
+ const childWidth = _convertRemToPx(childWidthRem);
5366
+ const gapWidth = _convertRemToPx(gapWidthRem);
5367
+ /** First check how many children can fit in containerWidth.
5368
+ * __________________________________
5369
+ * | || |
5370
+ * | || |
5371
+ * |________________||________________|
5372
+ * <-----------containerWidth--------->
5373
+ * containerWidth = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.
5374
+ */
5375
+ const numberOfChildrenInContainer = Math.floor((containerWidth + gapWidth) / (childWidth + gapWidth));
5376
+ // If all children fit then return numberOfChildrenInContainer
5377
+ if (numberOfChildren <= numberOfChildrenInContainer) {
5378
+ return numberOfChildrenInContainer;
5379
+ }
5380
+ const buttonWidth = _convertRemToPx(buttonWidthRem);
5381
+ /** We know we need to paginate. So we need to subtract the buttonWidth twice and gapWidth twice from
5382
+ * containerWidth to compute childrenSpace
5383
+ * <-----------containerWidth--------->
5384
+ * __________________________________
5385
+ * | || || || |
5386
+ * |<|| || ||>|
5387
+ * |_||_____________||_____________||_|
5388
+ * <-------childrenSpace------>
5389
+ */
5390
+ const childrenSpace = containerWidth - 2 * buttonWidth - 2 * gapWidth;
5391
+ // Now that we have childrenSpace width we can figure out how many children can fit in childrenSpace.
5392
+ // childrenSpace = n * childWidth + (n - 1) * gapWidth. Isolate n and take the floor.
5393
+ return Math.floor((childrenSpace + gapWidth) / (childWidth + gapWidth));
5394
+ };
5395
+
5287
5396
  // Copyright (c) Microsoft Corporation.
5288
5397
  /**
5289
5398
  * @private
@@ -6542,65 +6651,6 @@ const HighContrastAwareIcon = (props) => {
6542
6651
  }) }));
6543
6652
  };
6544
6653
 
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
6654
  // Copyright (c) Microsoft Corporation.
6605
6655
  /**
6606
6656
  * Generates default {@link IContextualMenuProps} for buttons that
@@ -6995,9 +7045,7 @@ const MicrophoneButton = (props) => {
6995
7045
  const ParticipantsButton = (props) => {
6996
7046
  var _a, _b, _c, _d;
6997
7047
  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;
7048
+ const disabled = props.disabled;
7001
7049
  const onRenderPeopleIcon = () => (React__default['default'].createElement(HighContrastAwareIcon, { disabled: disabled, iconName: "ControlButtonParticipants" }));
7002
7050
  const ids = useIdentifiers();
7003
7051
  const onMuteAllCallback = React.useCallback(() => {
@@ -12663,7 +12711,7 @@ const CallCompositeIcon = (props) => (React__default['default'].createElement(re
12663
12711
  */
12664
12712
  const CallWithChatCompositeIcon = (props) => (React__default['default'].createElement(react.FontIcon, Object.assign({}, props)));
12665
12713
 
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};
12714
+ 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",openDtmfDialpad:"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",openDtmfDialpad:"Show Dialpad",dtmfDialpadPlaceHolderText:"Enter number"};var en_US = {call:call$d,chat:chat$d,callWithChat:callWithChat$d};
12667
12715
 
12668
12716
  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
12717
 
@@ -14426,6 +14474,37 @@ const getCallCompositePage = (call, previousCall) => {
14426
14474
  // No call state - show starting page (configuration)
14427
14475
  return 'configuration';
14428
14476
  };
14477
+ /**
14478
+ * Creates a new call control options object and sets the correct values for disabling
14479
+ * the buttons provided in the `disabledControls` array.
14480
+ * Returns a new object without changing the original object.
14481
+ * @param callControlOptions options for the call control component that need to be modified.
14482
+ * @param disabledControls An array of controls to disable.
14483
+ * @returns a copy of callControlOptions with disabledControls disabled
14484
+ * @private
14485
+ */
14486
+ const disableCallControls = (callControlOptions, disabledControls) => {
14487
+ var _a;
14488
+ if (callControlOptions === false) {
14489
+ return false;
14490
+ }
14491
+ // Ensure we clone the prop if it is an object to ensure we do not mutate the original prop.
14492
+ let newOptions = (_a = (callControlOptions instanceof Object ? Object.assign({}, callControlOptions) : callControlOptions)) !== null && _a !== void 0 ? _a : {};
14493
+ if (newOptions === true || newOptions === undefined) {
14494
+ newOptions = disabledControls.reduce((acc, key) => {
14495
+ acc[key] = { disabled: true };
14496
+ return acc;
14497
+ }, {});
14498
+ }
14499
+ else {
14500
+ disabledControls.forEach((key) => {
14501
+ if (newOptions[key] !== false) {
14502
+ newOptions[key] = { disabled: true };
14503
+ }
14504
+ });
14505
+ }
14506
+ return newOptions;
14507
+ };
14429
14508
 
14430
14509
  // Copyright (c) Microsoft Corporation.
14431
14510
  // Licensed under the MIT license.
@@ -14629,7 +14708,7 @@ const concatButtonBaseStyles = (...styles) => {
14629
14708
  const Camera = (props) => {
14630
14709
  const cameraButtonProps = usePropsFor$1(CameraButton);
14631
14710
  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 })));
14711
+ 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
14712
  };
14634
14713
 
14635
14714
  // Copyright (c) Microsoft Corporation.
@@ -14675,7 +14754,7 @@ const Devices = (props) => {
14675
14754
  /* By setting `persistMenu?` to true, we prevent options menu from getting hidden every time a participant joins or leaves. */
14676
14755
  , Object.assign({
14677
14756
  /* 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 })));
14757
+ persistMenu: true }, devicesButtonProps, { showLabel: props.displayType !== 'compact', styles: styles, "data-ui-id": "calling-composite-devices-button", disabled: props.disabled })));
14679
14758
  };
14680
14759
 
14681
14760
  // Copyright (c) Microsoft Corporation.
@@ -14782,7 +14861,7 @@ const Microphone = (props) => {
14782
14861
  : {};
14783
14862
  const styles = React.useMemo(() => { var _a; return concatButtonBaseStyles((_a = props.styles) !== null && _a !== void 0 ? _a : {}); }, [props.styles]);
14784
14863
  // 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 })));
14864
+ 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
14865
  };
14787
14866
 
14788
14867
  // Copyright (c) Microsoft Corporation.
@@ -14793,7 +14872,7 @@ const Participants = (props) => {
14793
14872
  var _a;
14794
14873
  return concatButtonBaseStyles(props.increaseFlyoutItemSize ? participantButtonWithIncreasedTouchTargets : {}, (_a = props.styles) !== null && _a !== void 0 ? _a : {});
14795
14874
  }, [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 })));
14875
+ 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
14876
  };
14798
14877
  const isDisabled$2 = (option) => {
14799
14878
  if (option === undefined || option === true || option === false) {
@@ -14811,7 +14890,7 @@ const ScreenShare = (props) => {
14811
14890
  /* @conditional-compile-remove(PSTN-calls) */
14812
14891
  return (screenShareButtonProps === null || screenShareButtonProps === void 0 ? void 0 : screenShareButtonProps.disabled) ? screenShareButtonProps.disabled : isDisabled$1(props.option);
14813
14892
  };
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 })));
14893
+ 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
14894
  };
14816
14895
  const isDisabled$1 = (option) => {
14817
14896
  if (option === undefined || option === true || option === false) {
@@ -14828,12 +14907,6 @@ const icon$2 = () => React__default['default'].createElement(CallCompositeIcon,
14828
14907
  /** @beta */
14829
14908
  const People = (props) => {
14830
14909
  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
14910
  const theme = useTheme();
14838
14911
  const styles = React.useMemo(() => {
14839
14912
  var _a;
@@ -14843,9 +14916,7 @@ const People = (props) => {
14843
14916
  }
14844
14917
  }, (_a = props.styles) !== null && _a !== void 0 ? _a : {}, controlButtonBaseStyle);
14845
14918
  }, [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 })));
14919
+ 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
14920
  };
14850
14921
 
14851
14922
  // Copyright (c) Microsoft Corporation.
@@ -14948,20 +15019,17 @@ const SendDtmfDialpad = (props) => {
14948
15019
  };
14949
15020
  const dialpadModalStyle = React.useMemo(() => themeddialpadModalStyle$1(theme), [theme]);
14950
15021
  const dialpadStyle = React.useMemo(() => themedDialpadStyle$1(isMobile, theme), [theme, isMobile]);
14951
- const dialpadStrings = {
14952
- placeholderText: ''
14953
- };
14954
15022
  if (isMobile) {
14955
15023
  return (React__default['default'].createElement(react.Stack, null, showDialpad && (React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
14956
15024
  React__default['default'].createElement(_DrawerSurface, { onLightDismiss: onDismissTriggered },
14957
15025
  React__default['default'].createElement(react.Stack, { style: { padding: '1rem' } },
14958
- React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false }))))))));
15026
+ React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false, strings: strings }))))))));
14959
15027
  }
14960
15028
  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
15029
  React__default['default'].createElement(react.Stack, { horizontal: true, horizontalAlign: "end", verticalAlign: "center" },
14962
15030
  React__default['default'].createElement(react.IconButton, { iconProps: { iconName: 'Cancel' }, ariaLabel: strings.dialpadCloseModalButtonAriaLabel, onClick: onDismissTriggered, style: { color: theme.palette.black } })),
14963
15031
  React__default['default'].createElement(react.Stack, null,
14964
- React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false, strings: dialpadStrings }))))));
15032
+ React__default['default'].createElement(Dialpad, Object.assign({ styles: dialpadStyle }, dialpadProps, { showDeleteButton: false, strings: strings }))))));
14965
15033
  };
14966
15034
 
14967
15035
  // Copyright (c) Microsoft Corporation.
@@ -14988,11 +15056,12 @@ const CallControls = (props) => {
14988
15056
  /* @conditional-compile-remove(PSTN-calls) */
14989
15057
  const dialpadStrings = React.useMemo(() => ({
14990
15058
  dialpadModalAriaLabel: localeStrings.strings.call.dialpadModalAriaLabel,
14991
- dialpadCloseModalButtonAriaLabel: localeStrings.strings.call.dialpadCloseModalButtonAriaLabel
15059
+ dialpadCloseModalButtonAriaLabel: localeStrings.strings.call.dialpadCloseModalButtonAriaLabel,
15060
+ placeholderText: localeStrings.strings.call.dtmfDialpadPlaceHolderText
14992
15061
  }), [localeStrings]);
14993
15062
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
14994
15063
  const holdButtonProps = usePropsFor$1(HoldButton);
14995
- /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
15064
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(PSTN-calls) */
14996
15065
  const moreButtonContextualMenuItems = () => {
14997
15066
  const items = [];
14998
15067
  if (props.isMobile && props.onPeopleButtonClicked) {
@@ -15007,7 +15076,8 @@ const CallControls = (props) => {
15007
15076
  iconProps: { iconName: 'ControlButtonParticipants', styles: { root: { lineHeight: 0 } } },
15008
15077
  itemProps: {
15009
15078
  styles: buttonFlyoutIncreasedSizeStyles
15010
- }
15079
+ },
15080
+ ['data-ui-id']: 'call-composite-more-menu-people-button'
15011
15081
  });
15012
15082
  }
15013
15083
  items.push({
@@ -15017,6 +15087,20 @@ const CallControls = (props) => {
15017
15087
  holdButtonProps.onToggleHold();
15018
15088
  },
15019
15089
  iconProps: { iconName: 'HoldCall', styles: { root: { lineHeight: 0 } } },
15090
+ itemProps: {
15091
+ styles: buttonFlyoutIncreasedSizeStyles
15092
+ },
15093
+ disabled: isDisabled(options === null || options === void 0 ? void 0 : options.holdButton),
15094
+ ['data-ui-id']: 'call-composite-more-menu-hold-button'
15095
+ });
15096
+ /* @conditional-compile-remove(PSTN-calls) */
15097
+ items.push({
15098
+ key: 'showDialpadKey',
15099
+ text: localeStrings.strings.call.openDtmfDialpad,
15100
+ onClick: () => {
15101
+ setShowDialpad(true);
15102
+ },
15103
+ iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } },
15020
15104
  itemProps: {
15021
15105
  styles: buttonFlyoutIncreasedSizeStyles
15022
15106
  }
@@ -15041,26 +15125,26 @@ const CallControls = (props) => {
15041
15125
  React__default['default'].createElement(SendDtmfDialpad, { isMobile: !!props.isMobile, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
15042
15126
  React__default['default'].createElement(react.Stack.Item, null,
15043
15127
  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 })),
15128
+ 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) })),
15129
+ 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) })),
15130
+ 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
15131
  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 })) && (
15132
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
15133
+ !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) })) && (
15049
15134
  /* @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 })),
15135
+ 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) })),
15136
+ 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) })),
15052
15137
  /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
15053
15138
  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
15139
  customButtons['primary'],
15055
15140
  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
15141
  };
15057
15142
  const isEnabled$2 = (option) => option !== false;
15058
- /* @conditional-compile-remove(one-to-n-calling) */
15059
15143
  const isDisabled = (option) => {
15060
- if (option === undefined || option === true || option === false) {
15061
- return false;
15144
+ if (typeof option !== 'boolean') {
15145
+ return !!(option === null || option === void 0 ? void 0 : option.disabled);
15062
15146
  }
15063
- return option.disabled;
15147
+ return option;
15064
15148
  };
15065
15149
 
15066
15150
  // Copyright (c) Microsoft Corporation.
@@ -16092,7 +16176,7 @@ const CallArrangement = (props) => {
16092
16176
  const isMobileWithActivePane = props.mobileView && activePane !== 'none';
16093
16177
  /* @conditional-compile-remove(one-to-n-calling) */
16094
16178
  const togglePeople = React.useCallback(() => {
16095
- if (activePane === 'people' || !(callStatus === 'Connected')) {
16179
+ if (activePane === 'people' || !_isInCall(callStatus)) {
16096
16180
  setActivePane('none');
16097
16181
  }
16098
16182
  else {
@@ -16101,7 +16185,7 @@ const CallArrangement = (props) => {
16101
16185
  }, [activePane, setActivePane, callStatus]);
16102
16186
  /* @conditional-compile-remove(one-to-n-calling) */
16103
16187
  const selectPeople = React.useCallback(() => {
16104
- if (callStatus === 'Connected') {
16188
+ if (_isInCall(callStatus)) {
16105
16189
  setActivePane('people');
16106
16190
  }
16107
16191
  }, [setActivePane, callStatus]);
@@ -16118,7 +16202,7 @@ const CallArrangement = (props) => {
16118
16202
  /* @conditional-compile-remove(one-to-n-calling) */
16119
16203
  const callPaneContent = () => {
16120
16204
  var _a;
16121
- if (adapter && callStatus === 'Connected') {
16205
+ if (adapter && _isInCall(callStatus)) {
16122
16206
  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
16207
  }
16124
16208
  return React__default['default'].createElement(React__default['default'].Fragment, null);
@@ -16166,61 +16250,6 @@ const localVideoCameraCycleButtonSelector = reselect.createSelector([getDeviceMa
16166
16250
  };
16167
16251
  });
16168
16252
 
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
16253
  // Copyright (c) Microsoft Corporation.
16225
16254
  const VideoGalleryStyles = {
16226
16255
  root: {
@@ -16246,26 +16275,11 @@ const MediaGallery = (props) => {
16246
16275
  const cameraSwitcherProps = React.useMemo(() => {
16247
16276
  return Object.assign(Object.assign({}, cameraSwitcherCallback), cameraSwitcherCameras);
16248
16277
  }, [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
16278
  const onRenderAvatar = React.useCallback((userId, options) => {
16254
16279
  return (React__default['default'].createElement(react.Stack, { className: react.mergeStyles({ position: 'absolute', height: '100%', width: '100%' }) },
16255
16280
  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
- ]);
16281
+ React__default['default'].createElement(AvatarPersona, Object.assign({ userId: userId }, options, { dataProvider: props.onFetchAvatarPersonaData })))));
16282
+ }, [props.onFetchAvatarPersonaData]);
16269
16283
  useLocalVideoStartTrigger(!!props.isVideoStreamOn);
16270
16284
  const VideoGalleryMemoized = React.useMemo(() => {
16271
16285
  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 +16520,7 @@ const CallPage = (props) => {
16506
16520
  /* @conditional-compile-remove(one-to-n-calling) */
16507
16521
  onFetchAvatarPersonaData: onFetchAvatarPersonaData, mobileView: mobileView,
16508
16522
  /* @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' }));
16523
+ 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
16524
  };
16511
16525
  /**
16512
16526
  * @private
@@ -17063,7 +17077,7 @@ const LobbyPage = (props) => {
17063
17077
  let callControlOptions = props.mobileView
17064
17078
  ? reduceCallControlsForMobile((_a = props.options) === null || _a === void 0 ? void 0 : _a.callControls)
17065
17079
  : (_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls;
17066
- callControlOptions = disableLobbyPageControls(callControlOptions);
17080
+ callControlOptions = disableCallControls(callControlOptions, ['screenShareButton', 'participantsButton']);
17067
17081
  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
17082
  options: callControlOptions,
17069
17083
  increaseFlyoutItemSize: props.mobileView
@@ -17071,27 +17085,6 @@ const LobbyPage = (props) => {
17071
17085
  /* @conditional-compile-remove(one-to-n-calling) */
17072
17086
  modalLayerHostId: props.modalLayerHostId, onRenderGalleryContent: () => React__default['default'].createElement(LobbyTile, Object.assign({}, lobbyProps, { overlayProps: overlayProps(strings, inLobby) })), dataUiId: 'lobby-page' }));
17073
17087
  };
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
17088
  const overlayProps = (strings, inLobby) => inLobby ? overlayPropsWaitingToBeAdmitted(strings) : overlayPropsConnectingToCall(strings);
17096
17089
  const overlayPropsConnectingToCall = (strings) => ({
17097
17090
  title: strings.lobbyScreenConnectingToCallTitle,
@@ -17241,9 +17234,18 @@ const HoldPage = (props) => {
17241
17234
  var _a, _b, _c;
17242
17235
  const errorBarProps = usePropsFor$1(ErrorBar);
17243
17236
  const strings = useLocale().strings.call;
17244
- const callControlOptions = props.mobileView
17237
+ let callControlOptions = props.mobileView
17245
17238
  ? reduceCallControlsForMobile((_a = props.options) === null || _a === void 0 ? void 0 : _a.callControls)
17246
17239
  : (_b = props.options) === null || _b === void 0 ? void 0 : _b.callControls;
17240
+ callControlOptions = disableCallControls(callControlOptions, [
17241
+ 'cameraButton',
17242
+ 'microphoneButton',
17243
+ 'devicesButton',
17244
+ 'screenShareButton',
17245
+ /* @conditional-compile-remove(PSTN-calls) */
17246
+ /* @conditional-compile-remove(one-to-n-calling) */
17247
+ 'holdButton'
17248
+ ]);
17247
17249
  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
17250
  options: callControlOptions,
17249
17251
  increaseFlyoutItemSize: props.mobileView
@@ -18316,6 +18318,58 @@ const onFetchCustomButtonPropsTrampoline = (options) => {
18316
18318
  return response;
18317
18319
  };
18318
18320
 
18321
+ // Copyright (c) Microsoft Corporation.
18322
+ /**
18323
+ *
18324
+ * @private
18325
+ */
18326
+ const DesktopMoreButton = (props) => {
18327
+ /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18328
+ const localeStrings = useLocale();
18329
+ /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18330
+ const holdButtonProps = usePropsFor$1(HoldButton);
18331
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18332
+ const moreButtonStrings = React.useMemo(() => ({
18333
+ label: localeStrings.strings.call.moreButtonCallingLabel,
18334
+ tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip
18335
+ }), [localeStrings]);
18336
+ const moreButtonContextualMenuItems = () => {
18337
+ const items = [];
18338
+ /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18339
+ items.push({
18340
+ key: 'holdButtonKey',
18341
+ text: localeStrings.component.strings.holdButton.tooltipOffContent,
18342
+ onClick: () => {
18343
+ holdButtonProps.onToggleHold();
18344
+ },
18345
+ iconProps: { iconName: 'HoldCall', styles: { root: { lineHeight: 0 } } },
18346
+ itemProps: {
18347
+ styles: buttonFlyoutIncreasedSizeStyles
18348
+ },
18349
+ disabled: props.disableButtonsForHoldScreen
18350
+ });
18351
+ /*@conditional-compile-remove(PSTN-calls) */
18352
+ if (props.onClickShowDialpad) {
18353
+ items.push({
18354
+ key: 'showDialpadKey',
18355
+ text: localeStrings.strings.callWithChat.openDtmfDialpad,
18356
+ onClick: () => {
18357
+ props.onClickShowDialpad && props.onClickShowDialpad();
18358
+ },
18359
+ iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } },
18360
+ itemProps: {
18361
+ styles: buttonFlyoutIncreasedSizeStyles
18362
+ },
18363
+ disabled: props.disableButtonsForHoldScreen
18364
+ });
18365
+ }
18366
+ return items;
18367
+ };
18368
+ return (React__default['default'].createElement(MoreButton, Object.assign({}, props, { "data-ui-id": "call-with-chat-composite-more-button",
18369
+ /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18370
+ strings: moreButtonStrings, menuIconProps: { hidden: true }, menuProps: { items: moreButtonContextualMenuItems() } })));
18371
+ };
18372
+
18319
18373
  // Copyright (c) Microsoft Corporation.
18320
18374
  const inferCallWithChatControlOptions$1 = (mobileView, callWithChatControls) => {
18321
18375
  if (callWithChatControls === false) {
@@ -18337,7 +18391,7 @@ const inferCallWithChatControlOptions$1 = (mobileView, callWithChatControls) =>
18337
18391
  * @private
18338
18392
  */
18339
18393
  const CallWithChatControlBar = (props) => {
18340
- var _a, _b, _c;
18394
+ var _a, _b;
18341
18395
  const theme = react.useTheme();
18342
18396
  const callWithChatStrings = useCallWithChatCompositeStrings();
18343
18397
  const options = inferCallWithChatControlOptions$1(props.mobileView, props.callControls);
@@ -18369,47 +18423,43 @@ const CallWithChatControlBar = (props) => {
18369
18423
  const endCallButtonStyles = React.useMemo(() => (!props.mobileView ? getDesktopEndCallButtonStyles(theme) : undefined), [props.mobileView, theme]);
18370
18424
  /* @conditional-compile-remove(control-bar-button-injection) */
18371
18425
  const customButtons = React.useMemo(() => generateCustomCallWithChatControlBarButton(onFetchCustomButtonPropsTrampoline(options !== false ? options : undefined), options !== false ? options === null || options === void 0 ? void 0 : options.displayType : undefined), [options]);
18372
- /* @conditional-compile-remove(PSTN-calls) */
18373
- const dialpadStrings = React.useMemo(() => ({
18374
- dialpadModalAriaLabel: callWithChatStrings.dialpadModalAriaLabel,
18375
- dialpadCloseModalButtonAriaLabel: callWithChatStrings.dialpadCloseModalButtonAriaLabel
18376
- }), [callWithChatStrings]);
18377
- /* @conditional-compile-remove(PSTN-calls) */
18378
- const [showDialpad, setShowDialpad] = React.useState(false);
18379
18426
  // when options is false then we want to hide the whole control bar.
18380
18427
  if (options === false) {
18381
18428
  return React__default['default'].createElement(React__default['default'].Fragment, null);
18382
18429
  }
18383
18430
  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 }));
18384
- /* @conditional-compile-remove(PSTN-calls) */
18385
- const onDismissDialpad = () => {
18386
- setShowDialpad(false);
18387
- };
18388
18431
  return (React__default['default'].createElement(react.Stack, { horizontal: true, className: react.mergeStyles(callControlsContainerStyles, controlBarContainerStyles) },
18389
18432
  React__default['default'].createElement(react.Stack.Item, { grow: true },
18390
18433
  React__default['default'].createElement(CallAdapterProvider, { adapter: props.callAdapter },
18391
- /* @conditional-compile-remove(PSTN-calls) */
18392
- React__default['default'].createElement(SendDtmfDialpad, { isMobile: (_a = props.mobileView) !== null && _a !== void 0 ? _a : false, strings: dialpadStrings, showDialpad: showDialpad, onDismissDialpad: onDismissDialpad }),
18393
18434
  React__default['default'].createElement(react.Stack, { horizontalAlign: "center" },
18394
18435
  React__default['default'].createElement(react.Stack.Item, null,
18395
18436
  React__default['default'].createElement(ControlBar, { layout: "horizontal", styles: centerContainerStyles },
18396
- isEnabled$1(options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView })),
18397
- isEnabled$1(options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView })),
18437
+ isEnabled$1(options.microphoneButton) && (React__default['default'].createElement(Microphone, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView,
18438
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18439
+ disabled: props.disableButtonsForHoldScreen })),
18440
+ isEnabled$1(options.cameraButton) && (React__default['default'].createElement(Camera, { displayType: options.displayType, styles: commonButtonStyles, splitButtonsForDeviceSelection: !props.mobileView,
18441
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18442
+ disabled: props.disableButtonsForHoldScreen })),
18398
18443
  props.mobileView && isEnabled$1(options === null || options === void 0 ? void 0 : options.chatButton) && chatButton,
18399
- isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles })),
18444
+ isEnabled$1(options.screenShareButton) && (React__default['default'].createElement(ScreenShare, { option: options.screenShareButton, displayType: options.displayType, styles: screenShareButtonStyles,
18445
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18446
+ disabled: props.disableButtonsForHoldScreen })),
18400
18447
  /* @conditional-compile-remove(control-bar-button-injection) */
18401
- (_b = customButtons['primary']) === null || _b === void 0 ? void 0 :
18402
- _b.props.children.slice(0, props.mobileView
18448
+ (_a = customButtons['primary']) === null || _a === void 0 ? void 0 :
18449
+ _a.props.children.slice(0, props.mobileView
18403
18450
  ? CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_MOBILE_CUSTOM_BUTTONS
18404
18451
  : CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
18405
18452
  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' })));
18406
18453
  }),
18407
18454
  props.mobileView && (React__default['default'].createElement(MoreButton, { "data-ui-id": "call-with-chat-composite-more-button", strings: moreButtonStrings, onClick: props.onMoreButtonClicked, disabled: props.disableButtonsForLobbyPage })),
18455
+ /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.moreButton) &&
18456
+ /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ isEnabled$1(options === null || options === void 0 ? void 0 : options.holdButton) &&
18457
+ !props.mobileView && (React__default['default'].createElement(DesktopMoreButton, { disableButtonsForHoldScreen: props.disableButtonsForHoldScreen, styles: commonButtonStyles, onClickShowDialpad: props.onClickShowDialpad })),
18408
18458
  React__default['default'].createElement(EndCall, { displayType: "compact", styles: endCallButtonStyles })))))),
18409
18459
  !props.mobileView && (React__default['default'].createElement(react.Stack, { horizontal: true, className: !props.mobileView ? react.mergeStyles(desktopButtonContainerStyle) : undefined },
18410
18460
  /* @conditional-compile-remove(control-bar-button-injection) */
18411
- (_c = customButtons['secondary']) === null || _c === void 0 ? void 0 :
18412
- _c.props.children.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
18461
+ (_b = customButtons['secondary']) === null || _b === void 0 ? void 0 :
18462
+ _b.props.children.slice(0, CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS).map((element) => {
18413
18463
  return (React__default['default'].createElement(element.type, Object.assign({}, element.props, { key: element.props.key, styles: commonButtonStyles, displayType: options.displayType, showLabel: options.displayType !== 'compact' })));
18414
18464
  }),
18415
18465
  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 })),
@@ -18738,6 +18788,10 @@ const MoreDrawer = (props) => {
18738
18788
  var _a, _b, _c, _d, _e;
18739
18789
  const drawerMenuItems = [];
18740
18790
  const { speakers, onSelectSpeaker, onLightDismiss } = props;
18791
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18792
+ const localeStrings = useLocale();
18793
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18794
+ const holdButtonProps = usePropsFor$1(HoldButton);
18741
18795
  const onSpeakerItemClick = React.useCallback((_ev, itemKey) => {
18742
18796
  const selected = speakers === null || speakers === void 0 ? void 0 : speakers.find((speaker) => speaker.id === itemKey);
18743
18797
  if (selected) {
@@ -18751,6 +18805,7 @@ const MoreDrawer = (props) => {
18751
18805
  if (props.speakers && props.speakers.length > 0) {
18752
18806
  drawerMenuItems.push({
18753
18807
  itemKey: 'speakers',
18808
+ disabled: props.disableButtonsForHoldScreen,
18754
18809
  text: props.strings.speakerMenuTitle,
18755
18810
  iconProps: { iconName: 'MoreDrawerSpeakers' },
18756
18811
  subMenuProps: props.speakers.map((speaker) => ({
@@ -18786,6 +18841,7 @@ const MoreDrawer = (props) => {
18786
18841
  const selectedIconName = speakersAvailable ? 'MoreDrawerSelectedMicrophone' : 'MoreDrawerSelectedSpeaker';
18787
18842
  drawerMenuItems.push({
18788
18843
  itemKey: itemKey,
18844
+ disabled: props.disableButtonsForHoldScreen,
18789
18845
  text: text,
18790
18846
  iconProps: { iconName: iconName },
18791
18847
  subMenuProps: props.microphones.map((mic) => ({
@@ -18808,6 +18864,30 @@ const MoreDrawer = (props) => {
18808
18864
  onItemClick: props.onPeopleButtonClicked
18809
18865
  });
18810
18866
  }
18867
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
18868
+ if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.peopleButton)) {
18869
+ drawerMenuItems.push({
18870
+ itemKey: 'holdButtonKey',
18871
+ disabled: props.disableButtonsForHoldScreen,
18872
+ text: localeStrings.component.strings.holdButton.tooltipOffContent,
18873
+ onItemClick: () => {
18874
+ holdButtonProps.onToggleHold();
18875
+ },
18876
+ iconProps: { iconName: 'HoldCall', styles: { root: { lineHeight: 0 } } }
18877
+ });
18878
+ }
18879
+ /*@conditional-compile-remove(PSTN-calls) */
18880
+ if (drawerSelectionOptions !== false && isEnabled(drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.peopleButton) && props.onClickShowDialpad) {
18881
+ drawerMenuItems.push({
18882
+ itemKey: 'showDialpadKey',
18883
+ disabled: props.disableButtonsForHoldScreen,
18884
+ text: localeStrings.strings.callWithChat.openDtmfDialpad,
18885
+ onItemClick: () => {
18886
+ props.onClickShowDialpad && props.onClickShowDialpad();
18887
+ },
18888
+ iconProps: { iconName: 'Dialpad', styles: { root: { lineHeight: 0 } } }
18889
+ });
18890
+ }
18811
18891
  /* @conditional-compile-remove(control-bar-button-injection) */
18812
18892
  const customDrawerButtons = React.useMemo(() => generateCustomCallWithChatDrawerButtons(onFetchCustomButtonPropsTrampoline(drawerSelectionOptions !== false ? drawerSelectionOptions : undefined), drawerSelectionOptions !== false ? drawerSelectionOptions === null || drawerSelectionOptions === void 0 ? void 0 : drawerSelectionOptions.displayType : undefined), [drawerSelectionOptions]);
18813
18893
  /* @conditional-compile-remove(control-bar-button-injection) */
@@ -18960,6 +19040,8 @@ const CallWithChatScreen = (props) => {
18960
19040
  }, [callWithChatAdapter]);
18961
19041
  const modalLayerHostId = reactHooks.useId('modalLayerhost');
18962
19042
  const isInLobbyOrConnecting = currentPage === 'lobby';
19043
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
19044
+ const isInLocalHold = currentPage === 'hold';
18963
19045
  const hasJoinedCall = !!(currentPage && hasJoinedCallFn(currentPage, currentCallState !== null && currentCallState !== void 0 ? currentCallState : 'None'));
18964
19046
  const showControlBar = isInLobbyOrConnecting || hasJoinedCall;
18965
19047
  const isMobileWithActivePane = mobileView && activePane !== 'none';
@@ -19019,6 +19101,24 @@ const CallWithChatScreen = (props) => {
19019
19101
  const callCompositeContainerCSS = React.useMemo(() => {
19020
19102
  return { display: isMobileWithActivePane ? 'none' : 'flex' };
19021
19103
  }, [isMobileWithActivePane]);
19104
+ /* @conditional-compile-remove(PSTN-calls) */
19105
+ const [showDtmfDialpad, setShowDtmfDialpad] = React.useState(false);
19106
+ /* @conditional-compile-remove(PSTN-calls) */
19107
+ const onDismissDtmfDialpad = () => {
19108
+ setShowDtmfDialpad(false);
19109
+ };
19110
+ /* @conditional-compile-remove(PSTN-calls) */
19111
+ const onClickShowDialpad = () => {
19112
+ setShowDtmfDialpad(true);
19113
+ };
19114
+ /* @conditional-compile-remove(PSTN-calls) */
19115
+ const callWithChatStrings = useCallWithChatCompositeStrings();
19116
+ /* @conditional-compile-remove(PSTN-calls) */
19117
+ const dialpadStrings = React.useMemo(() => ({
19118
+ dialpadModalAriaLabel: callWithChatStrings.dialpadModalAriaLabel,
19119
+ dialpadCloseModalButtonAriaLabel: callWithChatStrings.dialpadCloseModalButtonAriaLabel,
19120
+ placeholderText: callWithChatStrings.dtmfDialpadPlaceHolderText
19121
+ }), [callWithChatStrings]);
19022
19122
  return (React__default['default'].createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles) },
19023
19123
  React__default['default'].createElement(react.Stack, { verticalFill: true, grow: true, styles: compositeOuterContainerStyles, id: compositeParentDivId },
19024
19124
  React__default['default'].createElement(react.Stack, { horizontal: true, grow: true },
@@ -19031,11 +19131,24 @@ const CallWithChatScreen = (props) => {
19031
19131
  fileSharing: props.fileSharing, rtl: props.rtl }))),
19032
19132
  showControlBar && !isMobileWithActivePane && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
19033
19133
  React__default['default'].createElement(react.Stack.Item, { styles: controlBarContainerStyles$1 },
19034
- 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 })))),
19134
+ 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,
19135
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
19136
+ disableButtonsForHoldScreen: isInLocalHold, callControls: props.callControls, containerHeight: containerHeight, containerWidth: containerWidth,
19137
+ /* @conditional-compile-remove(PSTN-calls) */
19138
+ onClickShowDialpad: onClickShowDialpad })))),
19035
19139
  showControlBar && showDrawer && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
19036
19140
  React__default['default'].createElement(CallAdapterProvider, { adapter: callAdapter },
19037
19141
  React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
19038
- React__default['default'].createElement(PreparedMoreDrawer, { callControls: props.callControls, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked }))))),
19142
+ React__default['default'].createElement(PreparedMoreDrawer, { callControls: props.callControls, onLightDismiss: closeDrawer, onPeopleButtonClicked: onMoreDrawerPeopleClicked,
19143
+ /* @conditional-compile-remove(PSTN-calls) */
19144
+ onClickShowDialpad: onClickShowDialpad,
19145
+ /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */
19146
+ disableButtonsForHoldScreen: isInLocalHold }))))),
19147
+ /* @conditional-compile-remove(PSTN-calls) */
19148
+ showControlBar && showDtmfDialpad && (React__default['default'].createElement(ChatAdapterProvider, { adapter: chatProps.adapter },
19149
+ React__default['default'].createElement(CallAdapterProvider, { adapter: callAdapter },
19150
+ React__default['default'].createElement(react.Stack, { styles: drawerContainerStyles$1 },
19151
+ React__default['default'].createElement(SendDtmfDialpad, { isMobile: mobileView, strings: dialpadStrings, showDialpad: showDtmfDialpad, onDismissDialpad: onDismissDtmfDialpad }))))),
19039
19152
  // This layer host is for ModalLocalAndRemotePIP in CallWithChatPane. This LayerHost cannot be inside the CallWithChatPane
19040
19153
  // because when the CallWithChatPane is hidden, ie. style property display is 'none', it takes up no space. This causes problems when dragging
19041
19154
  // the Modal because the draggable bounds thinks it has no space and will always return to its initial position after dragging.
@@ -19053,7 +19166,10 @@ const CallWithChatComposite = (props) => {
19053
19166
  /* @conditional-compile-remove(file-sharing) */
19054
19167
  fileSharing: options === null || options === void 0 ? void 0 : options.fileSharing }))));
19055
19168
  };
19056
- const hasJoinedCallFn = (page, callStatus) => page === 'call' && callStatus === 'Connected';
19169
+ const hasJoinedCallFn = (page, callStatus) => {
19170
+ /* @conditional-compile-remove(one-to-n-calling) */ /* @conditional-compile-remove(one-to-n-calling) */
19171
+ return (page === 'call' && callStatus === 'Connected') || (page === 'hold' && callStatus === 'LocalHold');
19172
+ };
19057
19173
  const showShowChatTabHeaderButton = (callControls) => {
19058
19174
  if (callControls === undefined || callControls === true) {
19059
19175
  return true;
@@ -19772,7 +19888,13 @@ const useSelector = (selector, selectorProps, type) => {
19772
19888
  return callProps !== null && callProps !== void 0 ? callProps : chatProps;
19773
19889
  };
19774
19890
  /**
19775
- * Primary hook to get all hooks necessary for a React Component from this library..
19891
+ * Primary hook to get all hooks necessary for a React Component from this library.
19892
+ *
19893
+ * To call this hook, the component requires to be wrapped under these providers:
19894
+ *
19895
+ * 1. For chat components: {@link ChatClientProvider} and {@link ChatThreadClientProvider}.
19896
+ *
19897
+ * 2. For calling components: {@link CallClientProvider}, {@link CallAgentProvider} and {@link CallAgentProvider}.
19776
19898
  *
19777
19899
  * Most straightforward usage of a components looks like:
19778
19900
  *
@@ -19808,7 +19930,12 @@ const usePropsFor = (component, type) => {
19808
19930
  }
19809
19931
  return Object.assign(Object.assign({}, callProps), callingHandlers);
19810
19932
  }
19811
- throw "Can't find corresponding selector for this component. Please check the supported components from Azure Communication UI Feature Component List.";
19933
+ if (!chatSelector && !callingSelector) {
19934
+ throw "Can't find corresponding selector for this component. Please check the supported components from Azure Communication UI Feature Component List.";
19935
+ }
19936
+ else {
19937
+ throw 'Could not find props for this component, ensure the component is wrapped by appropriate providers.';
19938
+ }
19812
19939
  };
19813
19940
 
19814
19941
  exports.COMPONENT_LOCALE_DE_DE = COMPONENT_LOCALE_DE_DE;