@azure/communication-react 1.21.0-alpha-202411070016 → 1.21.0-alpha-202411090016

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 (64) hide show
  1. package/dist/communication-react.d.ts +42 -2
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-DA7CJian.js → ChatMessageComponentAsRichTextEditBox-CmPe1TZf.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-DA7CJian.js.map → ChatMessageComponentAsRichTextEditBox-CmPe1TZf.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-B35hPtZ7.js → RichTextSendBoxWrapper-BWi4Qwt6.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-B35hPtZ7.js.map → RichTextSendBoxWrapper-BWi4Qwt6.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-DKFJEPz7.js → index-BvWMNZEq.js} +145 -38
  7. package/dist/dist-cjs/communication-react/index-BvWMNZEq.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +2 -1
  9. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  12. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +8 -0
  13. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +54 -2
  14. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  15. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.d.ts +2 -1
  16. package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
  17. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js +18 -5
  18. package/dist/dist-esm/calling-component-bindings/src/participantListSelector.js.map +1 -1
  19. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.d.ts +2 -1
  20. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js +6 -4
  21. package/dist/dist-esm/calling-component-bindings/src/utils/participantListSelectorUtils.js.map +1 -1
  22. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.d.ts +6 -2
  23. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js +28 -6
  24. package/dist/dist-esm/calling-component-bindings/src/utils/videoGalleryUtils.js.map +1 -1
  25. package/dist/dist-esm/communication-react/src/index.d.ts +3 -1
  26. package/dist/dist-esm/communication-react/src/index.js +1 -0
  27. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  28. package/dist/dist-esm/react-components/src/components/Announcer.js +1 -1
  29. package/dist/dist-esm/react-components/src/components/Announcer.js.map +1 -1
  30. package/dist/dist-esm/react-components/src/components/CameraButton.js +10 -1
  31. package/dist/dist-esm/react-components/src/components/CameraButton.js.map +1 -1
  32. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js +2 -2
  33. package/dist/dist-esm/react-components/src/components/LocalVideoTile.js.map +1 -1
  34. package/dist/dist-esm/react-components/src/components/ReactionButton.d.ts +6 -1
  35. package/dist/dist-esm/react-components/src/components/ReactionButton.js.map +1 -1
  36. package/dist/dist-esm/react-components/src/components/index.d.ts +1 -1
  37. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  38. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js +6 -2
  39. package/dist/dist-esm/react-components/src/components/styles/CaptionsSettingsModal.styles.js.map +1 -1
  40. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js +1 -2
  41. package/dist/dist-esm/react-components/src/components/styles/ControlBar.styles.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/index.d.ts +1 -0
  43. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.d.ts +11 -0
  45. package/dist/dist-esm/react-components/src/types/ParticipantListParticipant.js.map +1 -1
  46. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.d.ts +6 -1
  47. package/dist/dist-esm/react-components/src/types/VideoGalleryParticipant.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js +1 -1
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/HoldPane.js.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js +1 -1
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LobbyTile.js.map +1 -1
  52. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +6 -5
  53. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js +1 -1
  55. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/NoticePage.js.map +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.d.ts +0 -1
  57. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js +0 -1
  58. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/Buttons.styles.js.map +1 -1
  59. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.d.ts +4 -0
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js +7 -0
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/styles/NetworkReconnectTile.styles.js.map +1 -1
  62. package/dist/tsdoc-metadata.json +1 -1
  63. package/package.json +1 -1
  64. package/dist/dist-cjs/communication-react/index-DKFJEPz7.js.map +0 -1
@@ -188,7 +188,7 @@ function getDefaultExportFromCjs (x) {
188
188
  // Copyright (c) Microsoft Corporation.
189
189
  // Licensed under the MIT License.
190
190
  // GENERATED FILE. DO NOT EDIT MANUALLY.
191
- var telemetryVersion = '1.21.0-alpha-202411070016';
191
+ var telemetryVersion = '1.21.0-alpha-202411090016';
192
192
 
193
193
 
194
194
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -1335,6 +1335,42 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1335
1335
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopSpotlight(participants));
1336
1336
  })
1337
1337
  : undefined;
1338
+ /* @conditional-compile-remove(media-access) */
1339
+ const onForbidParticipantAudio = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1340
+ const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1341
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).forbidAudio(participants));
1342
+ });
1343
+ /* @conditional-compile-remove(media-access) */
1344
+ const onPermitParticipantAudio = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1345
+ const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1346
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).permitAudio(participants));
1347
+ });
1348
+ /* @conditional-compile-remove(media-access) */
1349
+ const onForbidRemoteParticipantsAudio = () => __awaiter$10(void 0, void 0, void 0, function* () {
1350
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).forbidRemoteParticipantsAudio());
1351
+ });
1352
+ /* @conditional-compile-remove(media-access) */
1353
+ const onPermitRemoteParticipantsAudio = () => __awaiter$10(void 0, void 0, void 0, function* () {
1354
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).permitRemoteParticipantsAudio());
1355
+ });
1356
+ /* @conditional-compile-remove(media-access) */
1357
+ const onForbidParticipantVideo = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1358
+ const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1359
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).forbidVideo(participants));
1360
+ });
1361
+ /* @conditional-compile-remove(media-access) */
1362
+ const onPermitParticipantVideo = (userIds) => __awaiter$10(void 0, void 0, void 0, function* () {
1363
+ const participants = userIds === null || userIds === void 0 ? void 0 : userIds.map((userId) => _toCommunicationIdentifier(userId));
1364
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).permitVideo(participants));
1365
+ });
1366
+ /* @conditional-compile-remove(media-access) */
1367
+ const onForbidRemoteParticipantsVideo = () => __awaiter$10(void 0, void 0, void 0, function* () {
1368
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).forbidRemoteParticipantsVideo());
1369
+ });
1370
+ /* @conditional-compile-remove(media-access) */
1371
+ const onPermitRemoteParticipantsVideo = () => __awaiter$10(void 0, void 0, void 0, function* () {
1372
+ yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.MediaAccess).permitRemoteParticipantsVideo());
1373
+ });
1338
1374
  return {
1339
1375
  onHangUp,
1340
1376
  onToggleHold,
@@ -1357,7 +1393,7 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1357
1393
  onRaiseHand,
1358
1394
  onLowerHand,
1359
1395
  onToggleRaiseHand,
1360
- onReactionClick: onReactionClick,
1396
+ onReactionClick,
1361
1397
  onAddParticipant: notImplemented,
1362
1398
  onRemoveParticipant: notImplemented,
1363
1399
  onStartCall: notImplemented,
@@ -1384,7 +1420,23 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1384
1420
  onMuteParticipant,
1385
1421
  onMuteAllRemoteParticipants,
1386
1422
  onAcceptCall: notImplemented,
1387
- onRejectCall: notImplemented
1423
+ onRejectCall: notImplemented,
1424
+ /* @conditional-compile-remove(media-access) */
1425
+ onForbidParticipantAudio,
1426
+ /* @conditional-compile-remove(media-access) */
1427
+ onPermitParticipantAudio,
1428
+ /* @conditional-compile-remove(media-access) */
1429
+ onForbidRemoteParticipantsAudio,
1430
+ /* @conditional-compile-remove(media-access) */
1431
+ onPermitRemoteParticipantsAudio,
1432
+ /* @conditional-compile-remove(media-access) */
1433
+ onForbidParticipantVideo,
1434
+ /* @conditional-compile-remove(media-access) */
1435
+ onPermitParticipantVideo,
1436
+ /* @conditional-compile-remove(media-access) */
1437
+ onForbidRemoteParticipantsVideo,
1438
+ /* @conditional-compile-remove(media-access) */
1439
+ onPermitRemoteParticipantsVideo
1388
1440
  };
1389
1441
  });
1390
1442
 
@@ -8486,7 +8538,7 @@ const textFieldStyle = {
8486
8538
  */
8487
8539
  const Announcer$1 = (props) => {
8488
8540
  const { announcementString, ariaLive } = props;
8489
- return React.createElement(react.Stack, { "aria-label": announcementString, "aria-live": ariaLive, role: "status", styles: announcerStyles });
8541
+ return (React.createElement(react.Stack, { "aria-label": announcementString, "aria-live": ariaLive, role: "status", "aria-atomic": true, styles: announcerStyles }));
8490
8542
  };
8491
8543
  /**
8492
8544
  * Styles to hide the announcer from view but still existing on the DOM tree it so that narration can happen.
@@ -15794,7 +15846,7 @@ class _ErrorBoundary extends React.Component {
15794
15846
  // Copyright (c) Microsoft Corporation.
15795
15847
  // Licensed under the MIT License.
15796
15848
  /* @conditional-compile-remove(rich-text-editor) */
15797
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DA7CJian.js'); }));
15849
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CmPe1TZf.js'); }));
15798
15850
  /**
15799
15851
  * @private
15800
15852
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -15802,7 +15854,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
15802
15854
  *
15803
15855
  * @conditional-compile-remove(rich-text-editor)
15804
15856
  */
15805
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-DA7CJian.js'); });
15857
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-CmPe1TZf.js'); });
15806
15858
  /**
15807
15859
  * @private
15808
15860
  */
@@ -19822,7 +19874,7 @@ const _LocalVideoTile = React.memo((props) => {
19822
19874
  React.createElement(FloatingLocalCameraCycleButton, { showCameraSwitcherInLocalPreview: showCameraSwitcherInLocalPreview !== null && showCameraSwitcherInLocalPreview !== void 0 ? showCameraSwitcherInLocalPreview : false, localVideoCameraCycleButtonProps: localVideoCameraCycleButtonProps, localVideoCameraSwitcherLabel: localVideoCameraSwitcherLabel, localVideoSelectedDescription: localVideoSelectedDescription }),
19823
19875
  React.createElement(StreamMedia, { videoStreamElement: renderElement, isMirrored: true }),
19824
19876
  props.participantsCount === 1 && !isScreenSharingOn && (React.createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, overlayStyles()) },
19825
- React.createElement(react.Spinner, { label: strings === null || strings === void 0 ? void 0 : strings.waitingScreenText, ariaLive: "assertive", labelPosition: "bottom", styles: loadSpinnerStyles(theme, true) })))));
19877
+ React.createElement(react.Spinner, { label: strings === null || strings === void 0 ? void 0 : strings.waitingScreenText, ariaLive: "assertive", role: "alert", labelPosition: "bottom", styles: loadSpinnerStyles(theme, true) })))));
19826
19878
  }, [
19827
19879
  localVideoCameraCycleButtonProps,
19828
19880
  localVideoCameraSwitcherLabel,
@@ -19840,7 +19892,7 @@ const _LocalVideoTile = React.memo((props) => {
19840
19892
  }, [reaction, reactionResources]);
19841
19893
  const onRenderAvatarOneParticipant = React.useCallback(() => {
19842
19894
  return (React.createElement(react.Stack, { className: react.mergeStyles(videoContainerStyles, overlayStylesTransparent()) },
19843
- React.createElement(react.Spinner, { label: strings === null || strings === void 0 ? void 0 : strings.waitingScreenText, ariaLive: "assertive", labelPosition: "bottom", styles: loadSpinnerStyles(theme, false) })));
19895
+ React.createElement(react.Spinner, { label: strings === null || strings === void 0 ? void 0 : strings.waitingScreenText, ariaLive: "assertive", labelPosition: "bottom", role: "alert", styles: loadSpinnerStyles(theme, false) })));
19844
19896
  }, [strings === null || strings === void 0 ? void 0 : strings.waitingScreenText, theme]);
19845
19897
  return (React.createElement(react.Stack, { "data-ui-id": "local-video-tile", className: react.mergeStyles({ width: '100%', height: '100%' }), onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined },
19846
19898
  React.createElement(VideoTile, Object.assign({ key: userId !== null && userId !== void 0 ? userId : 'local-video-tile', userId: userId, renderElement: renderVideoStreamElement, showLabel: showLabel, alwaysShowLabelBackground: alwaysShowLabelBackground, displayName: displayName, initialsName: initialsName, styles: videoTileStyles, onRenderPlaceholder: props.participantsCount === 1 && !isScreenSharingOn ? onRenderAvatarOneParticipant : onRenderAvatar, isMuted: isMuted, showMuteIndicator: showMuteIndicator, personaMinSize: props.personaMinSize, raisedHand: raisedHand, isSpotlighted: isSpotlighted }, videoTileContextualMenuProps, { onLongTouch: () => setDrawerMenuItemProps(convertContextualMenuItemsToDrawerMenuItemProps(contextualMenuProps, () => setDrawerMenuItemProps([]))), overlay: videoTileOverlay }), drawerMenuItemProps.length > 0 && (React.createElement(react.Layer, { hostId: props.drawerMenuHostId },
@@ -22171,8 +22223,7 @@ const controlButtonStyles = {
22171
22223
  border: 'none'
22172
22224
  },
22173
22225
  flexContainer: {
22174
- flexFlow: 'column',
22175
- display: 'contents'
22226
+ display: 'unset'
22176
22227
  },
22177
22228
  label: {
22178
22229
  fontSize: '0.625rem',
@@ -22518,6 +22569,11 @@ const CameraButton = (props) => {
22518
22569
  const toggleAnnouncerString = React.useCallback((isCameraOn) => {
22519
22570
  setAnnouncerString(!isCameraOn ? strings.cameraActionTurnedOffAnnouncement : strings.cameraActionTurnedOnAnnouncement);
22520
22571
  }, [strings.cameraActionTurnedOffAnnouncement, strings.cameraActionTurnedOnAnnouncement]);
22572
+ const onVideoIsLoadingAnnouncementCallback = React.useCallback(() => {
22573
+ if (!cameraOn) {
22574
+ setAnnouncerString(strings.tooltipVideoLoadingContent);
22575
+ }
22576
+ }, [setAnnouncerString, cameraOn, strings.tooltipVideoLoadingContent]);
22521
22577
  const onToggleClick = React.useCallback(() => __awaiter$G(void 0, void 0, void 0, function* () {
22522
22578
  // Throttle click on camera, need to await onToggleCamera then allow another click
22523
22579
  if (onToggleCamera) {
@@ -22532,6 +22588,10 @@ const CameraButton = (props) => {
22532
22588
  }
22533
22589
  }
22534
22590
  }), [cameraOn, localVideoViewOptions, onToggleCamera, toggleAnnouncerString]);
22591
+ const onToggleClickCallback = React.useCallback(() => {
22592
+ onVideoIsLoadingAnnouncementCallback();
22593
+ onToggleClick();
22594
+ }, [onVideoIsLoadingAnnouncementCallback, onToggleClick]);
22535
22595
  const onChangeCameraClick = React.useCallback((device) => __awaiter$G(void 0, void 0, void 0, function* () {
22536
22596
  // Throttle changing camera to prevent too many callbacks
22537
22597
  if (onSelectCamera) {
@@ -22581,7 +22641,7 @@ const CameraButton = (props) => {
22581
22641
  const splitButtonMenuProps = React.useMemo(() => (Object.assign(Object.assign({}, props.splitButtonMenuProps), { className: 'camera-split-button' })), [props.splitButtonMenuProps]);
22582
22642
  return (React.createElement(React.Fragment, null,
22583
22643
  React.createElement(Announcer$1, { announcementString: announcerString, ariaLive: 'polite' }),
22584
- React.createElement(ControlBarButton, Object.assign({}, props, { disabled: disabled, onClick: onToggleCamera ? onToggleClick : props.onClick, onRenderOnIcon: (_a = props.onRenderOnIcon) !== null && _a !== void 0 ? _a : onRenderCameraOnIcon, onRenderOffIcon: (_b = props.onRenderOffIcon) !== null && _b !== void 0 ? _b : onRenderCameraOffIcon, strings: strings, labelKey: (_c = props.labelKey) !== null && _c !== void 0 ? _c : 'cameraButtonLabel', menuProps: (_d = props.menuProps) !== null && _d !== void 0 ? _d : (props.enableDeviceSelectionMenu
22644
+ React.createElement(ControlBarButton, Object.assign({}, props, { disabled: disabled, onClick: onToggleCamera ? onToggleClickCallback : props.onClick, onRenderOnIcon: (_a = props.onRenderOnIcon) !== null && _a !== void 0 ? _a : onRenderCameraOnIcon, onRenderOffIcon: (_b = props.onRenderOffIcon) !== null && _b !== void 0 ? _b : onRenderCameraOffIcon, strings: strings, labelKey: (_c = props.labelKey) !== null && _c !== void 0 ? _c : 'cameraButtonLabel', menuProps: (_d = props.menuProps) !== null && _d !== void 0 ? _d : (props.enableDeviceSelectionMenu
22585
22645
  ? generateDefaultDeviceMenuProps(Object.assign(Object.assign({}, props), { onSelectCamera: onChangeCameraClick, styles: (_e = props.styles) === null || _e === void 0 ? void 0 : _e.menuStyles }), strings, splitButtonPrimaryAction)
22586
22646
  : undefined), menuIconProps: ((_f = props.menuIconProps) !== null && _f !== void 0 ? _f : !props.enableDeviceSelectionMenu) ? { hidden: true } : undefined, split: (_g = props.split) !== null && _g !== void 0 ? _g : props.enableDeviceSelectionMenu, "aria-description": strings.cameraButtonAriaDescription, "aria-roledescription": props.enableDeviceSelectionMenu ? strings.cameraButtonSplitRoleDescription : undefined, splitButtonAriaLabel: props.enableDeviceSelectionMenu ? splitButtonAriaString : undefined, splitButtonMenuProps: splitButtonMenuProps }))));
22587
22647
  };
@@ -24837,7 +24897,7 @@ const themedCaptionsSettingsModalStyle = (theme) => ({
24837
24897
  padding: _pxToRem(24),
24838
24898
  width: _pxToRem(440),
24839
24899
  height: 'fit-content',
24840
- overflow: 'hidden'
24900
+ overflowY: 'auto'
24841
24901
  }
24842
24902
  });
24843
24903
  /**
@@ -24906,7 +24966,11 @@ const buttonStyles = (theme) => {
24906
24966
  * @private
24907
24967
  */
24908
24968
  const dropdownStyles = {
24909
- callout: Object.assign({ height: _pxToRem(300), overflow: 'auto' }, scrollbarStyles)
24969
+ callout: Object.assign({ height: _pxToRem(300), overflow: 'auto' }, scrollbarStyles),
24970
+ dropdownOptionText: {
24971
+ textWrap: 'auto',
24972
+ overflow: 'unset'
24973
+ }
24910
24974
  };
24911
24975
 
24912
24976
  // Copyright (c) Microsoft Corporation.
@@ -25984,7 +26048,7 @@ const checkIsSpeaking = (participant) => participant.isSpeaking && !participant.
25984
26048
 
25985
26049
  // Copyright (c) Microsoft Corporation.
25986
26050
  // Licensed under the MIT License.
25987
- const convertRemoteParticipantToParticipantListParticipant = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight) => {
26051
+ const convertRemoteParticipantToParticipantListParticipant = (userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight, mediaAccess) => {
25988
26052
  const identifier = fromFlatCommunicationIdentifier(userId);
25989
26053
  return {
25990
26054
  userId,
@@ -26000,14 +26064,16 @@ const convertRemoteParticipantToParticipantListParticipant = (userId, displayNam
26000
26064
  communicationCommon.getIdentifierKind(identifier).kind === 'phoneNumber') &&
26001
26065
  localUserCanRemoveOthers,
26002
26066
  reaction,
26003
- spotlight
26067
+ spotlight,
26068
+ /* @conditional-compile-remove(media-access) */
26069
+ mediaAccess
26004
26070
  };
26005
26071
  };
26006
26072
  /**
26007
26073
  * @private
26008
26074
  */
26009
- const memoizedConvertAllremoteParticipants = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight) => {
26010
- return convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight);
26075
+ const memoizedConvertAllremoteParticipants = memoizeFnAll((userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight, mediaAccess) => {
26076
+ return convertRemoteParticipantToParticipantListParticipant(userId, displayName, state, isMuted, isScreenSharing, isSpeaking, raisedHand, localUserCanRemoveOthers, reaction, spotlight, mediaAccess);
26011
26077
  });
26012
26078
  /**
26013
26079
  * @private
@@ -26051,19 +26117,32 @@ const _videoGalleryRemoteParticipantsMemo = (remoteParticipants, isHideAttendeeN
26051
26117
  communicationCommon.isPhoneNumberIdentifier(participant.identifier));
26052
26118
  })
26053
26119
  .map((participant) => {
26120
+ var _a, _b, _c, _d, _e, _f;
26054
26121
  const state = _convertParticipantState(participant);
26055
26122
  const displayName = maskDisplayNameWithRole(participant.displayName, localUserRole, participant.role, isHideAttendeeNamesEnabled);
26056
26123
  const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);
26057
26124
  const spotlight = participant.spotlight;
26058
- return memoizedFn(toFlatCommunicationIdentifier(participant.identifier), participant.isMuted, checkIsSpeaking(participant), participant.videoStreams, state, displayName, participant.raisedHand, participant.contentSharingStream, remoteParticipantReaction, spotlight);
26125
+ return memoizedFn(toFlatCommunicationIdentifier(participant.identifier), participant.isMuted, checkIsSpeaking(participant), participant.videoStreams, state, displayName, participant.raisedHand, participant.contentSharingStream, remoteParticipantReaction, spotlight,
26126
+ /* @conditional-compile-remove(remote-ufd) */
26127
+ Math.max(((_c = (_b = (_a = participant.diagnostics) === null || _a === void 0 ? void 0 : _a.networkReceiveQuality) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : 0), ((_f = (_e = (_d = participant.diagnostics) === null || _d === void 0 ? void 0 : _d.networkSendQuality) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : 0)),
26128
+ /* @conditional-compile-remove(media-access) */
26129
+ participant.mediaAccess);
26059
26130
  }));
26060
26131
  });
26061
26132
  };
26062
- const memoizedAllConvertRemoteParticipant = memoizeFnAll((userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand, contentSharingStream, reaction, spotlight) => {
26063
- return convertRemoteParticipantToVideoGalleryRemoteParticipant(userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand, contentSharingStream, reaction, spotlight);
26133
+ const memoizedAllConvertRemoteParticipant = memoizeFnAll((userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand, contentSharingStream, reaction, spotlight,
26134
+ /* @conditional-compile-remove(remote-ufd) */
26135
+ signalStrength, mediaAccess) => {
26136
+ return convertRemoteParticipantToVideoGalleryRemoteParticipant(userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand, contentSharingStream, reaction, spotlight,
26137
+ /* @conditional-compile-remove(remote-ufd) */
26138
+ signalStrength,
26139
+ /* @conditional-compile-remove(media-access) */
26140
+ mediaAccess);
26064
26141
  });
26065
26142
  /** @private */
26066
- const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand, contentSharingStream, reaction, spotlight) => {
26143
+ const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted, isSpeaking, videoStreams, state, displayName, raisedHand, contentSharingStream, reaction, spotlight,
26144
+ /* @conditional-compile-remove(remote-ufd) */
26145
+ signalStrength, mediaAccess) => {
26067
26146
  const rawVideoStreamsArray = Object.values(videoStreams);
26068
26147
  let videoStream = undefined;
26069
26148
  let screenShareStream = undefined;
@@ -26098,7 +26177,11 @@ const convertRemoteParticipantToVideoGalleryRemoteParticipant = (userId, isMuted
26098
26177
  state,
26099
26178
  raisedHand,
26100
26179
  reaction,
26101
- spotlight
26180
+ spotlight,
26181
+ /* @conditional-compile-remove(remote-ufd) */
26182
+ signalStrength,
26183
+ /* @conditional-compile-remove(media-access) */
26184
+ mediaAccess
26102
26185
  };
26103
26186
  };
26104
26187
  const convertRemoteVideoStreamToVideoGalleryStream = (stream) => {
@@ -26142,7 +26225,12 @@ const memoizeLocalParticipant = memoizeOne((identifier, displayName, isMuted, is
26142
26225
  raisedHand: raisedHand,
26143
26226
  reaction,
26144
26227
  spotlight: localSpotlight,
26145
- capabilities
26228
+ capabilities,
26229
+ /* @conditional-compile-remove(media-access) */
26230
+ mediaAccess: {
26231
+ isAudioPermitted: capabilities === null || capabilities === void 0 ? void 0 : capabilities.unmuteMic.isPresent,
26232
+ isVideoPermitted: capabilities === null || capabilities === void 0 ? void 0 : capabilities.turnVideoOn.isPresent
26233
+ }
26146
26234
  });
26147
26235
  });
26148
26236
  /** @private */
@@ -26239,7 +26327,9 @@ const convertRemoteParticipantsToParticipantListParticipants = (remoteParticipan
26239
26327
  const displayName = maskDisplayNameWithRole(participant.displayName, localUserRole, participant.role, isHideAttendeeNamesEnabled);
26240
26328
  const remoteParticipantReaction = memoizedConvertToVideoTileReaction(participant.reactionState);
26241
26329
  const spotlight = memoizedSpotlight(spotlightedParticipants, toFlatCommunicationIdentifier(participant.identifier));
26242
- return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), displayName, state, participant.isMuted, isScreenSharing, participant.isSpeaking, participant.raisedHand, localUserCanRemoveOthers, remoteParticipantReaction, spotlight);
26330
+ return memoizeFn(toFlatCommunicationIdentifier(participant.identifier), displayName, state, participant.isMuted, isScreenSharing, participant.isSpeaking, participant.raisedHand, localUserCanRemoveOthers, remoteParticipantReaction, spotlight,
26331
+ /* @conditional-compile-remove(media-access) */
26332
+ participant.mediaAccess);
26243
26333
  })
26244
26334
  .sort((a, b) => {
26245
26335
  var _a, _b;
@@ -26274,8 +26364,12 @@ const participantListSelector = reselect.createSelector([
26274
26364
  getParticipantCount,
26275
26365
  isHideAttendeeNamesEnabled,
26276
26366
  getLocalParticipantReactionState,
26277
- getSpotlightCallFeature
26278
- ], (userId, displayName, remoteParticipants, isScreenSharingOn, isMuted, raisedHand, role, partitipantCount, isHideAttendeeNamesEnabled, localParticipantReactionState, spotlightCallFeature) => {
26367
+ getSpotlightCallFeature,
26368
+ /* @conditional-compile-remove(media-access) */
26369
+ getCapabilities
26370
+ ], (userId, displayName, remoteParticipants, isScreenSharingOn, isMuted, raisedHand, role, partitipantCount, isHideAttendeeNamesEnabled, localParticipantReactionState, spotlightCallFeature,
26371
+ /* @conditional-compile-remove(media-access) */
26372
+ capabilities) => {
26279
26373
  const localUserCanRemoveOthers = localUserCanRemoveOthersTrampoline(role);
26280
26374
  const participants = remoteParticipants
26281
26375
  ? convertRemoteParticipantsToParticipantListParticipants(_updateUserDisplayNames(Object.values(remoteParticipants)), localUserCanRemoveOthers, isHideAttendeeNamesEnabled, role, spotlightCallFeature === null || spotlightCallFeature === void 0 ? void 0 : spotlightCallFeature.spotlightedParticipants)
@@ -26290,7 +26384,12 @@ const participantListSelector = reselect.createSelector([
26290
26384
  // Local participant can never remove themselves.
26291
26385
  isRemovable: false,
26292
26386
  reaction: memoizedConvertToVideoTileReaction(localParticipantReactionState),
26293
- spotlight: memoizedSpotlight(spotlightCallFeature === null || spotlightCallFeature === void 0 ? void 0 : spotlightCallFeature.spotlightedParticipants, userId)
26387
+ spotlight: memoizedSpotlight(spotlightCallFeature === null || spotlightCallFeature === void 0 ? void 0 : spotlightCallFeature.spotlightedParticipants, userId),
26388
+ /* @conditional-compile-remove(media-access) */
26389
+ mediaAccess: {
26390
+ isAudioPermitted: capabilities ? capabilities.unmuteMic.isPresent : true,
26391
+ isVideoPermitted: capabilities ? capabilities.turnVideoOn.isPresent : true
26392
+ }
26294
26393
  });
26295
26394
  /* @conditional-compile-remove(total-participant-count) */
26296
26395
  const totalParticipantCount = partitipantCount;
@@ -30478,7 +30577,7 @@ const AttachmentDownloadErrorBar = (props) => {
30478
30577
  /**
30479
30578
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
30480
30579
  */
30481
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-B35hPtZ7.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
30580
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BWi4Qwt6.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
30482
30581
  /**
30483
30582
  * @private
30484
30583
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -30486,7 +30585,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
30486
30585
  *
30487
30586
  /* @conditional-compile-remove(rich-text-editor-composite-support)
30488
30587
  */
30489
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-B35hPtZ7.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
30588
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-BWi4Qwt6.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
30490
30589
  /**
30491
30590
  * @private
30492
30591
  */
@@ -32474,7 +32573,6 @@ const groupCallLeaveButtonStyle = {
32474
32573
  root: {
32475
32574
  border: '0.125rem',
32476
32575
  borderRadius: 2,
32477
- height: '2.1875rem',
32478
32576
  width: '6.5625rem'
32479
32577
  },
32480
32578
  flexContainer: {
@@ -37784,6 +37882,13 @@ const containerStyle$1 = {
37784
37882
  margin: '1rem',
37785
37883
  gap: `1.5rem`
37786
37884
  };
37885
+ /**
37886
+ * @private
37887
+ */
37888
+ const headerContainerStyle = {
37889
+ gap: `1.5rem`,
37890
+ height: `auto`
37891
+ };
37787
37892
  /**
37788
37893
  * @private
37789
37894
  */
@@ -37825,10 +37930,11 @@ const NetworkReconnectTile = (props) => {
37825
37930
  const isTeamsMeeting = useSelector$1(getIsTeamsMeeting);
37826
37931
  const meetingCoordinates = useSelector$1(getTeamsMeetingCoordinates);
37827
37932
  return (React.createElement(ExpandedLocalVideoTile, Object.assign({ localParticipantVideoStream: props.localParticipantVideoStream, overlayContent: React.createElement(react.Stack, { verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(containerStyle$1), "aria-atomic": true },
37828
- React.createElement(react.Stack, { horizontal: true, className: react.mergeStyles(titleContainerStyle) },
37829
- React.createElement(CallCompositeIcon, { iconName: "NetworkReconnectIcon", className: react.mergeStyles(titleStyle$1(palette, isVideoReady)) }),
37830
- React.createElement(react.Text, { className: react.mergeStyles(titleStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectTitle)),
37831
- React.createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle$1(palette, isVideoReady)), "aria-live": 'assertive' }, strings.networkReconnectMoreDetails),
37933
+ React.createElement(react.Stack, { role: "alert", verticalFill: true, horizontalAlign: "center", verticalAlign: "center", className: react.mergeStyles(headerContainerStyle) },
37934
+ React.createElement(react.Stack, { horizontal: true, className: react.mergeStyles(titleContainerStyle) },
37935
+ React.createElement(CallCompositeIcon, { iconName: "NetworkReconnectIcon", className: react.mergeStyles(titleStyle$1(palette, isVideoReady)) }),
37936
+ React.createElement(react.Text, { className: react.mergeStyles(titleStyle$1(palette, isVideoReady)) }, strings.networkReconnectTitle)),
37937
+ React.createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle$1(palette, isVideoReady)) }, strings.networkReconnectMoreDetails)),
37832
37938
  isTeamsMeeting && meetingCoordinates && meetingCoordinates[0] && (React.createElement(react.Stack, null,
37833
37939
  React.createElement(react.Stack, { horizontal: true, horizontalAlign: "center", verticalAlign: "center", className: titleContainerClassName },
37834
37940
  React.createElement(react.Text, { className: titleClassName }, localeStrings.meetingConferencePhoneInfoModalTitle)),
@@ -39380,7 +39486,7 @@ function NoticePage(props) {
39380
39486
  return (React.createElement(react.Stack, { className: react.mergeStyles(props.pageStyle), verticalFill: true, verticalAlign: "center", horizontalAlign: "center", "data-ui-id": props.dataUiId, "aria-atomic": true },
39381
39487
  React.createElement(react.Stack, { className: react.mergeStyles(containerStyle), tokens: containerItemGap },
39382
39488
  props.iconName && React.createElement(CallCompositeIcon, { iconName: props.iconName }),
39383
- React.createElement(react.Text, { className: react.mergeStyles(titleStyles), "aria-live": "assertive" }, props.title),
39489
+ React.createElement(react.Text, { className: react.mergeStyles(titleStyles), "aria-live": "assertive", role: "alert" }, props.title),
39384
39490
  React.createElement(react.Text, { className: react.mergeStyles(moreDetailsStyles), "aria-live": "assertive" }, props.moreDetails),
39385
39491
  !props.disableStartCallButton && (React.createElement(react.Stack, { styles: rejoinCallButtonContainerStyles },
39386
39492
  React.createElement(StartCallButton, { onClick: () => {
@@ -39444,7 +39550,7 @@ const LobbyTile = (props) => {
39444
39550
  props.showLocalVideoCameraCycleButton && isVideoReady && (React.createElement(react.Stack.Item, { styles: localCameraSwitcherContainerStyles },
39445
39551
  React.createElement(LocalVideoCameraCycleButton, Object.assign({}, cameraSwitcherCallback, cameraSwitcherCameras, { size: 'large' })))),
39446
39552
  React.createElement(react.Stack.Item, { className: react.mergeStyles(titleStyle(palette, isVideoReady)) }, props.overlayProps.overlayIcon),
39447
- React.createElement(react.Text, { className: react.mergeStyles(titleStyle(palette, isVideoReady)), "aria-live": "assertive", "data-ui-id": "lobbyScreenTitle" }, props.overlayProps.title),
39553
+ React.createElement(react.Text, { className: react.mergeStyles(titleStyle(palette, isVideoReady)), "aria-live": "assertive", "data-ui-id": "lobbyScreenTitle", role: "alert" }, props.overlayProps.title),
39448
39554
  props.overlayProps.moreDetails && (React.createElement(react.Text, { className: react.mergeStyles(moreDetailsStyle(palette, isVideoReady)), "aria-live": "assertive" }, props.overlayProps.moreDetails)))) : undefined }, handlers)));
39449
39555
  };
39450
39556
 
@@ -39785,7 +39891,7 @@ const HoldPane = () => {
39785
39891
  return (React.createElement(react.Stack, { styles: paneStyles },
39786
39892
  React.createElement(react.Stack, { horizontal: true, styles: holdPaneContentStyles },
39787
39893
  React.createElement(react.Text, { styles: holdPaneTimerStyles }, elapsedTime),
39788
- React.createElement(react.Text, { styles: holdPaneLabelStyles, role: "status", "aria-live": "assertive" }, strings.holdScreenLabel),
39894
+ React.createElement(react.Text, { styles: holdPaneLabelStyles, role: "alert", "aria-live": "assertive" }, strings.holdScreenLabel),
39789
39895
  React.createElement(react.PrimaryButton, { text: !resumingCall ? strings.resumeCallButtonLabel : strings.resumingCallButtonLabel, ariaLabel: !resumingCall ? strings.resumeCallButtonAriaLabel : strings.resumingCallButtonAriaLabel, styles: resumeButtonStyles, disabled: resumingCall, onClick: () => __awaiter$b(void 0, void 0, void 0, function* () {
39790
39896
  setResumingCall(true);
39791
39897
  try {
@@ -44911,6 +45017,7 @@ exports.ParticipantsButton = ParticipantsButton;
44911
45017
  exports.RTTDisclosureBanner = RTTDisclosureBanner;
44912
45018
  exports.RTTModal = RTTModal;
44913
45019
  exports.RaiseHandButton = RaiseHandButton;
45020
+ exports.ReactionButton = ReactionButton;
44914
45021
  exports.RealTimeText = RealTimeText;
44915
45022
  exports.RichTextInputBoxComponent = RichTextInputBoxComponent;
44916
45023
  exports.RichTextSendBox = RichTextSendBox;
@@ -44988,4 +45095,4 @@ exports.useTeamsCall = useTeamsCall;
44988
45095
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
44989
45096
  exports.useTeamsCallAgent = useTeamsCallAgent;
44990
45097
  exports.useTheme = useTheme;
44991
- //# sourceMappingURL=index-DKFJEPz7.js.map
45098
+ //# sourceMappingURL=index-BvWMNZEq.js.map