@azure/communication-react 1.17.0-alpha-202405310013 → 1.17.0-alpha-202406020014

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 (93) hide show
  1. package/dist/communication-react.d.ts +19 -0
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-anI3y0oU.js → ChatMessageComponentAsRichTextEditBox-BQpOd_cF.js} +2 -2
  3. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-anI3y0oU.js.map → ChatMessageComponentAsRichTextEditBox-BQpOd_cF.js.map} +1 -1
  4. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CZ0LZbKA.js → RichTextSendBoxWrapper-CBQNEhRD.js} +2 -2
  5. package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-CZ0LZbKA.js.map → RichTextSendBoxWrapper-CBQNEhRD.js.map} +1 -1
  6. package/dist/dist-cjs/communication-react/{index-BqQ1gXi4.js → index-xYWFdTrM.js} +209 -110
  7. package/dist/dist-cjs/communication-react/index-xYWFdTrM.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +1 -1
  9. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  10. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.d.ts +1 -0
  12. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js +15 -3
  13. package/dist/dist-esm/calling-component-bindings/src/handlers/createCommonHandlers.js.map +1 -1
  14. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js +18 -6
  15. package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
  16. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/ParticipantItem.js +1 -1
  18. package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
  19. package/dist/dist-esm/react-components/src/components/ParticipantList.d.ts +2 -0
  20. package/dist/dist-esm/react-components/src/components/ParticipantList.js.map +1 -1
  21. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.d.ts +1 -0
  22. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +4 -2
  23. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  24. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +24 -4
  25. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  26. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js +5 -2
  27. package/dist/dist-esm/react-components/src/components/RichTextEditor/Toolbar/Table/RichTextInsertTablePane.js.map +1 -1
  28. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +2 -2
  29. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  30. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.d.ts +1 -0
  31. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js +20 -2
  32. package/dist/dist-esm/react-components/src/components/VideoGallery/useVideoTileContextualMenuProps.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/VideoGallery.d.ts +4 -0
  34. package/dist/dist-esm/react-components/src/components/VideoGallery.js +7 -2
  35. package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
  36. package/dist/dist-esm/react-components/src/components/index.js +0 -3
  37. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  38. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +7 -1
  39. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  40. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +10 -16
  41. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/index.js.map +1 -1
  43. package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
  44. package/dist/dist-esm/react-components/src/theming/icons.js +3 -4
  45. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  46. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js +1 -1
  47. package/dist/dist-esm/react-components/src/theming/v9ThemeShim.js.map +1 -1
  48. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +0 -2
  49. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  50. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  51. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +1 -0
  52. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +11 -5
  53. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  54. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +6 -0
  55. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  56. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +18 -4
  57. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  58. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js +5 -1
  59. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
  60. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.d.ts +2 -0
  61. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js +36 -2
  62. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
  63. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js +5 -2
  64. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/useHandlers.js.map +1 -1
  65. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.d.ts +1 -1
  66. package/dist/dist-esm/react-composites/src/composites/CallComposite/hooks/usePropsFor.js.map +1 -1
  67. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/SurveyPage.js +0 -8
  68. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/SurveyPage.js.map +1 -1
  69. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ThankYouForFeedbackPage.js +1 -9
  70. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ThankYouForFeedbackPage.js.map +1 -1
  71. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +1 -6
  72. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  73. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.d.ts +1 -0
  74. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +6 -1
  75. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  76. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +4 -0
  77. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  78. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.d.ts +1 -0
  79. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js +6 -1
  80. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedCallAdapter.js.map +1 -1
  81. package/dist/dist-esm/react-composites/src/composites/common/StarSurvey.js +1 -9
  82. package/dist/dist-esm/react-composites/src/composites/common/StarSurvey.js.map +1 -1
  83. package/dist/dist-esm/react-composites/src/composites/common/Survey.js +0 -19
  84. package/dist/dist-esm/react-composites/src/composites/common/Survey.js.map +1 -1
  85. package/dist/dist-esm/react-composites/src/composites/common/SurveyContent.js +1 -11
  86. package/dist/dist-esm/react-composites/src/composites/common/SurveyContent.js.map +1 -1
  87. package/dist/dist-esm/react-composites/src/composites/common/TagsSurvey.js +1 -8
  88. package/dist/dist-esm/react-composites/src/composites/common/TagsSurvey.js.map +1 -1
  89. package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -0
  90. package/dist/dist-esm/react-composites/src/composites/common/styles/Survey.styles.js +0 -4
  91. package/dist/dist-esm/react-composites/src/composites/common/styles/Survey.styles.js.map +1 -1
  92. package/package.json +6 -6
  93. package/dist/dist-cjs/communication-react/index-BqQ1gXi4.js.map +0 -1
@@ -174,7 +174,7 @@ function getDefaultExportFromCjs (x) {
174
174
  // Copyright (c) Microsoft Corporation.
175
175
  // Licensed under the MIT License.
176
176
  // GENERATED FILE. DO NOT EDIT MANUALLY.
177
- var telemetryVersion = '1.17.0-alpha-202405310013';
177
+ var telemetryVersion = '1.17.0-alpha-202406020014';
178
178
 
179
179
 
180
180
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -1100,7 +1100,6 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1100
1100
  const captionsFeature = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Captions).captions;
1101
1101
  yield captionsFeature.setCaptionLanguage(language);
1102
1102
  });
1103
- /* @conditional-compile-remove(end-of-call-survey) */
1104
1103
  const onSubmitSurvey = (survey) => __awaiter$R(void 0, void 0, void 0, function* () { return yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.CallSurvey).submitSurvey(survey)); });
1105
1104
  /* @conditional-compile-remove(spotlight) */
1106
1105
  const onStartSpotlight = (userIds) => __awaiter$R(void 0, void 0, void 0, function* () {
@@ -1116,6 +1115,18 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1116
1115
  const onStopAllSpotlight = () => __awaiter$R(void 0, void 0, void 0, function* () {
1117
1116
  yield (call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Spotlight).stopAllSpotlight());
1118
1117
  });
1118
+ /* @conditional-compile-remove(soft-mute) */
1119
+ const onMuteParticipant = (userId) => __awaiter$R(void 0, void 0, void 0, function* () {
1120
+ if (call === null || call === void 0 ? void 0 : call.remoteParticipants) {
1121
+ call === null || call === void 0 ? void 0 : call.remoteParticipants.forEach((participant) => __awaiter$R(void 0, void 0, void 0, function* () {
1122
+ // Using toFlatCommunicationIdentifier to convert the CommunicationIdentifier to string
1123
+ // as _toCommunicationIdentifier(userId) comparison to participant.identifier did not work for this case
1124
+ if (toFlatCommunicationIdentifier(participant.identifier) === userId) {
1125
+ yield participant.mute();
1126
+ }
1127
+ }));
1128
+ }
1129
+ });
1119
1130
  /* @conditional-compile-remove(spotlight) */
1120
1131
  const canStartSpotlight = call === null || call === void 0 ? void 0 : call.feature(communicationCalling.Features.Capabilities).capabilities.spotlightParticipant.isPresent;
1121
1132
  /* @conditional-compile-remove(spotlight) */
@@ -1181,7 +1192,6 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1181
1192
  onStopCaptions,
1182
1193
  onSetCaptionLanguage,
1183
1194
  onSetSpokenLanguage,
1184
- /* @conditional-compile-remove(end-of-call-survey) */
1185
1195
  onSubmitSurvey,
1186
1196
  /* @conditional-compile-remove(spotlight) */
1187
1197
  onStartSpotlight,
@@ -1196,7 +1206,9 @@ const createDefaultCommonCallingHandlers = memoizeOne((callClient, deviceManager
1196
1206
  /* @conditional-compile-remove(spotlight) */
1197
1207
  onStartRemoteSpotlight,
1198
1208
  /* @conditional-compile-remove(spotlight) */
1199
- onStopRemoteSpotlight
1209
+ onStopRemoteSpotlight,
1210
+ /* @conditional-compile-remove(soft-mute) */
1211
+ onMuteParticipant
1200
1212
  };
1201
1213
  });
1202
1214
 
@@ -4797,9 +4809,15 @@ class ProxyTeamsCaptions {
4797
4809
  return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
4798
4810
  var _a, _b;
4799
4811
  this._context.setStartCaptionsInProgress(this._call.id, true);
4800
- const ret = yield target.startCaptions(...args);
4801
- this._context.setSelectedSpokenLanguage(this._call.id, (_b = (_a = args[0]) === null || _a === void 0 ? void 0 : _a.spokenLanguage) !== null && _b !== void 0 ? _b : 'en-us');
4802
- return ret;
4812
+ try {
4813
+ const ret = yield target.startCaptions(...args);
4814
+ this._context.setSelectedSpokenLanguage(this._call.id, (_b = (_a = args[0]) === null || _a === void 0 ? void 0 : _a.spokenLanguage) !== null && _b !== void 0 ? _b : 'en-us');
4815
+ return ret;
4816
+ }
4817
+ catch (e) {
4818
+ this._context.setStartCaptionsInProgress(this._call.id, false);
4819
+ throw e;
4820
+ }
4803
4821
  }), 'Call.feature');
4804
4822
  case 'stopCaptions':
4805
4823
  return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
@@ -4841,9 +4859,15 @@ class ProxyCaptions {
4841
4859
  return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
4842
4860
  var _a, _b;
4843
4861
  this._context.setStartCaptionsInProgress(this._call.id, true);
4844
- const ret = yield target.startCaptions(...args);
4845
- this._context.setSelectedSpokenLanguage(this._call.id, (_b = (_a = args[0]) === null || _a === void 0 ? void 0 : _a.spokenLanguage) !== null && _b !== void 0 ? _b : 'en-us');
4846
- return ret;
4862
+ try {
4863
+ const ret = yield target.startCaptions(...args);
4864
+ this._context.setSelectedSpokenLanguage(this._call.id, (_b = (_a = args[0]) === null || _a === void 0 ? void 0 : _a.spokenLanguage) !== null && _b !== void 0 ? _b : 'en-us');
4865
+ return ret;
4866
+ }
4867
+ catch (e) {
4868
+ this._context.setStartCaptionsInProgress(this._call.id, false);
4869
+ throw e;
4870
+ }
4847
4871
  }), 'Call.feature');
4848
4872
  case 'stopCaptions':
4849
4873
  return this._context.withAsyncErrorTeedToState((...args) => __awaiter$J(this, void 0, void 0, function* () {
@@ -6902,9 +6926,7 @@ const DEFAULT_COMPONENT_ICONS = {
6902
6926
  ContextMenuMicIcon: React.createElement(reactIcons.Mic20Regular, null),
6903
6927
  ContextMenuSpeakerIcon: React.createElement(reactIcons.Speaker220Regular, null),
6904
6928
  ContextMenuRemoveParticipant: React.createElement(reactIcons.PersonDelete20Regular, null),
6905
- /* @conditional-compile-remove(end-of-call-survey) */
6906
6929
  SurveyStarIcon: React.createElement(reactIcons.Star28Regular, null),
6907
- /* @conditional-compile-remove(end-of-call-survey) */
6908
6930
  SurveyStarIconFilled: React.createElement(reactIcons.Star28Filled, null),
6909
6931
  /* @conditional-compile-remove(spotlight) */
6910
6932
  StartSpotlightContextualMenuItem: React.createElement(reactIcons.VideoPersonStar20Filled, null),
@@ -6939,7 +6961,9 @@ const DEFAULT_COMPONENT_ICONS = {
6939
6961
  /* @conditional-compile-remove(rich-text-editor) */
6940
6962
  RichTextTableInsertMenuIcon: React.createElement(reactIcons.TableAdd20Regular, null),
6941
6963
  /* @conditional-compile-remove(rich-text-editor) */
6942
- RichTextTableDeleteMenuIcon: React.createElement(reactIcons.TableDismiss20Regular, null)
6964
+ RichTextTableDeleteMenuIcon: React.createElement(reactIcons.TableDismiss20Regular, null),
6965
+ /* @conditional-compile-remove(soft-mute) */
6966
+ ContextualMenuMicMutedIcon: React.createElement(reactIcons.MicOff20Regular, null)
6943
6967
  };
6944
6968
 
6945
6969
  // Copyright (c) Microsoft Corporation.
@@ -9528,7 +9552,7 @@ const mapBorderRadiusTokens = (effects) => {
9528
9552
  */
9529
9553
  const createV9Theme = (themeV8, baseThemeV9) => {
9530
9554
  const baseTheme = baseThemeV9 !== null && baseThemeV9 !== void 0 ? baseThemeV9 : reactComponents.webLightTheme;
9531
- return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseTheme), mapAliasColors(themeV8.palette, themeV8.isInverted)), mapShadowTokens(themeV8.effects)), mapBorderRadiusTokens(themeV8.effects)), { colorBrandBackground2: themeV8.palette.themeLight, colorBrandBackground2Hover: themeV8.palette.themeLight, colorBrandBackground2Pressed: themeV8.palette.themeLight, colorStatusWarningBackground3: '#D83B01', errorText: themeV8.semanticColors.errorText, colorNeutralStroke1Selected: themeV8.palette.neutralQuaternary, colorNeutralForeground2: themeV8.palette.neutralSecondary, colorBrandForegroundLink: themeV8.palette.themePrimary, colorBrandForegroundLinkHover: themeV8.palette.themeDarker, colorNeutralBackground1Selected: themeV8.palette.neutralQuaternaryAlt,
9555
+ return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, baseTheme), mapAliasColors(themeV8.palette, themeV8.isInverted)), mapShadowTokens(themeV8.effects)), mapBorderRadiusTokens(themeV8.effects)), { colorBrandBackground2: themeV8.palette.themeLight, colorBrandBackground2Hover: themeV8.palette.themeLight, colorBrandBackground2Pressed: themeV8.palette.themeLight, colorStatusWarningBackground3: '#D83B01', errorText: themeV8.semanticColors.errorText, colorNeutralStroke1Selected: themeV8.palette.neutralQuaternary, colorNeutralForeground2: themeV8.palette.neutralSecondary, colorBrandForegroundLink: themeV8.palette.themePrimary, colorBrandForegroundLinkHover: themeV8.palette.themeDarker, colorNeutralBackground1Selected: themeV8.palette.neutralQuaternaryAlt, colorNeutralStroke2: themeV8.palette.neutralTertiaryAlt,
9532
9556
  // Fix for an issue with black borders for iOS that are added with 'after' selector
9533
9557
  colorStrokeFocus2: 'transparent' });
9534
9558
  };
@@ -10012,10 +10036,10 @@ const richTextEditorWrapperStyle = (theme, addTopOffset) => {
10012
10036
  tableLayout: 'auto',
10013
10037
  '& tr': {
10014
10038
  background: 'transparent',
10015
- border: `1px solid ${theme.palette.neutralLight}`,
10039
+ border: `1px solid ${theme.palette.neutralTertiaryAlt}`,
10016
10040
  '& td': {
10017
10041
  background: 'transparent',
10018
- border: `1px solid ${theme.palette.neutralLight}`,
10042
+ border: `1px solid ${theme.palette.neutralTertiaryAlt}`,
10019
10043
  wordBreak: 'normal',
10020
10044
  padding: '0.125rem 0.25rem',
10021
10045
  verticalAlign: 'top'
@@ -10206,14 +10230,11 @@ const sendBoxRichTextEditorStyle = (isExpanded) => {
10206
10230
  */
10207
10231
  const insertTableMenuCellButtonStyles = (theme) => {
10208
10232
  return {
10209
- width: '1rem',
10210
- height: '1rem',
10211
- border: `solid 0.0625rem ${theme.palette.neutralTertiaryAlt}`,
10212
- display: 'inline-block',
10233
+ width: '16px',
10234
+ height: '16px',
10235
+ border: `solid 1px ${theme.palette.neutralTertiaryAlt}`,
10213
10236
  cursor: 'pointer',
10214
- background: 'transparent',
10215
- // include border into width value as the parent element has fixed width
10216
- boxSizing: 'border-box'
10237
+ background: 'transparent'
10217
10238
  };
10218
10239
  };
10219
10240
  /**
@@ -10228,7 +10249,7 @@ const insertTableMenuCellButtonSelectedStyles = (theme) => {
10228
10249
  * @private
10229
10250
  */
10230
10251
  const insertTableMenuTablePane = react.mergeStyles({
10231
- padding: '0.5rem 0.625rem 0.75rem 0.625rem',
10252
+ padding: '8px 10px 12px 10px',
10232
10253
  boxSizing: 'content-box',
10233
10254
  minWidth: 'auto'
10234
10255
  });
@@ -10237,12 +10258,9 @@ const insertTableMenuTablePane = react.mergeStyles({
10237
10258
  */
10238
10259
  const insertTableMenuFocusZone = (theme) => {
10239
10260
  return react.mergeStyles({
10240
- lineHeight: '12px',
10241
- // fixed width is required to show columns in a grid correctly
10242
- width: '5rem',
10243
- border: `solid 0.0625rem ${theme.palette.neutralTertiaryAlt}`,
10244
- // don't include border into width value as otherwise it may be broken when zoom value is changed
10245
- boxSizing: 'content-box'
10261
+ display: 'inline-grid',
10262
+ gridTemplateColumns: 'auto auto auto auto auto',
10263
+ border: `solid 1px ${theme.palette.neutralTertiaryAlt}`
10246
10264
  });
10247
10265
  };
10248
10266
  /**
@@ -10628,6 +10646,9 @@ const RichTextInsertTablePane = (props) => {
10628
10646
  const onMouseEnter = React.useCallback((e) => {
10629
10647
  updateSize(e.target);
10630
10648
  }, [updateSize]);
10649
+ const onTouchStart = React.useCallback((e) => {
10650
+ updateSize(e.target);
10651
+ }, [updateSize]);
10631
10652
  const onClickButton = React.useCallback(() => {
10632
10653
  onClick(createKey(formatRowColumnText(row), formatRowColumnText(column)));
10633
10654
  }, [row, column, onClick]);
@@ -10638,11 +10659,11 @@ const RichTextInsertTablePane = (props) => {
10638
10659
  for (let j = 0; j < maxColumnsNumber; j++) {
10639
10660
  const key = `cell_${i}_${j}`;
10640
10661
  const isSelected = j <= column && i <= row;
10641
- items.push(React.createElement("button", { className: react.mergeStyles(insertTableMenuCellButtonStyles(theme), isSelected ? insertTableMenuCellButtonSelectedStyles(theme) : undefined), onClick: onClickButton, key: key, id: key, "data-column": j, "data-row": i, "data-is-focusable": true, onMouseEnter: onMouseEnter, "aria-label": formatText((_a = item.text) !== null && _a !== void 0 ? _a : '', formatRowColumnText(i), formatRowColumnText(j)), "data-testid": key }));
10662
+ items.push(React.createElement("button", { className: react.mergeStyles(insertTableMenuCellButtonStyles(theme), isSelected ? insertTableMenuCellButtonSelectedStyles(theme) : undefined), onClick: onClickButton, key: key, id: key, "data-column": j, "data-row": i, "data-is-focusable": true, onMouseEnter: onMouseEnter, onTouchStart: onTouchStart, "aria-label": formatText((_a = item.text) !== null && _a !== void 0 ? _a : '', formatRowColumnText(i), formatRowColumnText(j)), "data-testid": key }));
10642
10663
  }
10643
10664
  }
10644
10665
  return items;
10645
- }, [maxRowsNumber, maxColumnsNumber, column, row, theme, onClickButton, onMouseEnter, item.text]);
10666
+ }, [maxRowsNumber, maxColumnsNumber, column, row, theme, onClickButton, onMouseEnter, onTouchStart, item.text]);
10646
10667
  const text = React.useMemo(() => {
10647
10668
  var _a;
10648
10669
  return formatText((_a = item.text) !== null && _a !== void 0 ? _a : '', formatRowColumnText(row), formatRowColumnText(column));
@@ -11102,6 +11123,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11102
11123
  const editorDiv = React.useRef(null);
11103
11124
  const theme = useTheme();
11104
11125
  const [contextMenuProps, setContextMenuProps] = React.useState(null);
11126
+ const tableCellSelectionLightThemeBackgroundColor = React.useRef(undefined);
11105
11127
  React.useImperativeHandle(ref, () => {
11106
11128
  return {
11107
11129
  focus() {
@@ -11141,6 +11163,16 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11141
11163
  var _a;
11142
11164
  (_a = editor.current) === null || _a === void 0 ? void 0 : _a.setDarkModeState(isDarkThemedValue);
11143
11165
  }, [isDarkThemedValue]);
11166
+ // remember light color to correctly set it in the dark theme
11167
+ React.useEffect(() => {
11168
+ var _a, _b, _c;
11169
+ // focus to update selection color for table, otherwise the existing selection color for table won't be updated
11170
+ (_a = editor.current) === null || _a === void 0 ? void 0 : _a.focus();
11171
+ if (!isDarkThemedValue) {
11172
+ tableCellSelectionLightThemeBackgroundColor.current =
11173
+ (_c = (_b = lightTheme.palette) === null || _b === void 0 ? void 0 : _b.neutralLight) !== null && _c !== void 0 ? _c : theme.palette.neutralLight;
11174
+ }
11175
+ }, [theme.palette.neutralLight, isDarkThemedValue]);
11144
11176
  const placeholderPlugin = React.useMemo(() => {
11145
11177
  return new PlaceholderPlugin('');
11146
11178
  }, []);
@@ -11192,6 +11224,13 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11192
11224
  const onContextMenuDismiss = React.useCallback(() => {
11193
11225
  setContextMenuProps(null);
11194
11226
  }, []);
11227
+ const getDarkColor = React.useCallback((lightColor, _baseLValue, colorType) => {
11228
+ var _a, _b;
11229
+ if (lightColor === tableCellSelectionLightThemeBackgroundColor.current && colorType === 'background') {
11230
+ return (_b = (_a = darkTheme.palette) === null || _a === void 0 ? void 0 : _a.neutralLight) !== null && _b !== void 0 ? _b : theme.palette.neutralLight;
11231
+ }
11232
+ return lightColor;
11233
+ }, [theme.palette.neutralLight]);
11195
11234
  const plugins = React.useMemo(() => {
11196
11235
  const contentEdit = new roosterjsContentModelPlugins.EditPlugin();
11197
11236
  // AutoFormatPlugin previously was a part of the edit plugin
@@ -11224,7 +11263,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11224
11263
  tableContextMenuPlugin
11225
11264
  ]);
11226
11265
  React.useEffect(() => {
11227
- var _a;
11266
+ var _a, _b;
11228
11267
  const initialModel = createEditorInitialModel(initialContent, contentModel);
11229
11268
  if (editorDiv.current) {
11230
11269
  editor.current = new roosterjsContentModelCore.Editor(editorDiv.current, {
@@ -11233,6 +11272,7 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11233
11272
  doNotAdjustEditorColor: true,
11234
11273
  // TODO: confirm the color during inline images implementation
11235
11274
  imageSelectionBorderColor: 'blue',
11275
+ tableCellSelectionBackgroundColor: ((_a = lightTheme.palette) === null || _a === void 0 ? void 0 : _a.neutralLight) && theme.palette.neutralLight,
11236
11276
  plugins: plugins,
11237
11277
  initialModel: initialModel,
11238
11278
  defaultModelToDomOptions: {
@@ -11241,11 +11281,12 @@ const RichTextEditor = React.forwardRef((props, ref) => {
11241
11281
  border: borderApplier,
11242
11282
  dataset: dataSetApplier
11243
11283
  }
11244
- }
11284
+ },
11285
+ getDarkColor: getDarkColor
11245
11286
  });
11246
11287
  }
11247
11288
  if (autoFocus === 'sendBoxTextField') {
11248
- (_a = editor.current) === null || _a === void 0 ? void 0 : _a.focus();
11289
+ (_b = editor.current) === null || _b === void 0 ? void 0 : _b.focus();
11249
11290
  }
11250
11291
  return () => {
11251
11292
  if (editor.current) {
@@ -11955,7 +11996,13 @@ const useChatMessageStyles = reactComponents.makeStyles({
11955
11996
  */
11956
11997
  const useChatMessageCommonStyles = reactComponents.makeStyles({
11957
11998
  body: {
11958
- '& table': Object.assign(Object.assign({ backgroundColor: reactComponents.tokens.colorBrandBackgroundInverted }, reactComponents.shorthands.borderColor(reactComponents.tokens.colorNeutralStroke1Selected)), { borderCollapse: 'collapse', tableLayout: 'auto', width: '100%', '& tr': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke1Selected}`)), { '& td': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke1Selected}`)), { wordBreak: 'normal', paddingTop: '0px', paddingRight: '5px' }) }) })
11999
+ '& table': {
12000
+ backgroundColor: reactComponents.tokens.colorBrandBackgroundInverted,
12001
+ borderCollapse: 'collapse',
12002
+ tableLayout: 'auto',
12003
+ width: '100%',
12004
+ '& tr': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke2}`)), { '& td': Object.assign(Object.assign({}, reactComponents.shorthands.border('1px', 'solid', `${reactComponents.tokens.colorNeutralStroke2}`)), { wordBreak: 'normal', paddingTop: '0px', paddingRight: '5px' }) })
12005
+ }
11959
12006
  },
11960
12007
  failed: {
11961
12008
  //TODO: can we reuse a theme color here?
@@ -13584,7 +13631,7 @@ class _ErrorBoundary extends React.Component {
13584
13631
  // Copyright (c) Microsoft Corporation.
13585
13632
  // Licensed under the MIT License.
13586
13633
  /* @conditional-compile-remove(rich-text-editor) */
13587
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-anI3y0oU.js'); }));
13634
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BQpOd_cF.js'); }));
13588
13635
  /**
13589
13636
  * @private
13590
13637
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -13592,7 +13639,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
13592
13639
  *
13593
13640
  * @conditional-compile-remove(rich-text-editor)
13594
13641
  */
13595
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-anI3y0oU.js'); });
13642
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BQpOd_cF.js'); });
13596
13643
  /**
13597
13644
  * @private
13598
13645
  */
@@ -14820,7 +14867,7 @@ const ParticipantItem = (props) => {
14820
14867
  };
14821
14868
  const menuButton = React.useMemo(() => (React.createElement(react.Stack, { horizontal: true, horizontalAlign: "end", className: react.mergeStyles(menuButtonContainerStyle, { color: theme.palette.neutralPrimary }), title: strings.menuTitle, "data-ui-id": ids.participantItemMenuButton },
14822
14869
  React.createElement(react.Icon, { iconName: "ParticipantItemOptionsHovered", className: react.mergeStyles(iconStyles$3, !showMenuIcon ? displayNoneStyle : {}) }))), [theme.palette.neutralPrimary, strings.menuTitle, ids.participantItemMenuButton, showMenuIcon]);
14823
- return (React.createElement("div", { ref: containerRef, role: 'menuitem', "data-is-focusable": true, "data-ui-id": "participant-item", className: react.mergeStyles(participantItemContainerStyle({ clickable: !!menuItems && menuItems.length > 0 }), styles === null || styles === void 0 ? void 0 : styles.root), onMouseEnter: () => setItemHovered(true), onMouseLeave: () => setItemHovered(false), onClick: () => {
14870
+ return (React.createElement("div", { ref: containerRef, role: 'menuitem', "aria-disabled": (menuItems && menuItems.length > 0) || props.onClick ? false : true, "data-is-focusable": true, "data-ui-id": "participant-item", className: react.mergeStyles(participantItemContainerStyle({ clickable: !!menuItems && menuItems.length > 0 }), styles === null || styles === void 0 ? void 0 : styles.root), onMouseEnter: () => setItemHovered(true), onMouseLeave: () => setItemHovered(false), onClick: () => {
14824
14871
  if (!participantStateString) {
14825
14872
  setItemHovered(true);
14826
14873
  setMenuHidden(false);
@@ -15792,7 +15839,8 @@ const useVideoTileContextualMenuProps = (props) => {
15792
15839
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
15793
15840
  /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
15794
15841
  /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,
15795
- /* @conditional-compile-remove(spotlight) */ myUserId } = props;
15842
+ /* @conditional-compile-remove(spotlight) */ myUserId,
15843
+ /* @conditional-compile-remove(soft-mute) */ onMuteParticipant } = props;
15796
15844
  const scalingMode = React.useMemo(() => {
15797
15845
  var _a;
15798
15846
  return (_a = props.participant.videoStream) === null || _a === void 0 ? void 0 : _a.scalingMode;
@@ -15886,6 +15934,21 @@ const useVideoTileContextualMenuProps = (props) => {
15886
15934
  });
15887
15935
  }
15888
15936
  }
15937
+ /* @conditional-compile-remove(soft-mute) */
15938
+ if (onMuteParticipant) {
15939
+ items.push({
15940
+ key: 'mute',
15941
+ text: 'Mute',
15942
+ iconProps: {
15943
+ iconName: 'ContextualMenuMicMutedIcon',
15944
+ styles: { root: { lineHeight: 0 } }
15945
+ },
15946
+ onClick: () => onMuteParticipant(participant.userId),
15947
+ 'data-ui-id': 'video-tile-mute-participant',
15948
+ ariaLabel: 'Mute',
15949
+ disabled: participant.isMuted
15950
+ });
15951
+ }
15889
15952
  if (scalingMode) {
15890
15953
  if (scalingMode === 'Crop' && (strings === null || strings === void 0 ? void 0 : strings.fitRemoteParticipantToFrame)) {
15891
15954
  items.push({
@@ -15941,7 +16004,9 @@ const useVideoTileContextualMenuProps = (props) => {
15941
16004
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
15942
16005
  /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
15943
16006
  /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,
15944
- /* @conditional-compile-remove(spotlight) */ myUserId
16007
+ /* @conditional-compile-remove(spotlight) */ myUserId,
16008
+ /* @conditional-compile-remove(soft-mute) */ onMuteParticipant,
16009
+ /* @conditional-compile-remove(soft-mute) */ participant.isMuted
15945
16010
  ]);
15946
16011
  return contextualMenuProps;
15947
16012
  };
@@ -17131,7 +17196,8 @@ const _RemoteVideoTile = React.memo((props) => {
17131
17196
  /* @conditional-compile-remove(spotlight) */ isSpotlighted,
17132
17197
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
17133
17198
  /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
17134
- /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings, reactionResources, streamId } = props;
17199
+ /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,
17200
+ /* @conditional-compile-remove(soft-mute) */ onMuteParticipant, onUpdateScalingMode, disablePinMenuItem, toggleAnnouncerString, strings, reactionResources, streamId } = props;
17135
17201
  const remoteVideoStreamProps = React.useMemo(() => ({
17136
17202
  isMirrored: remoteVideoViewOptions === null || remoteVideoViewOptions === void 0 ? void 0 : remoteVideoViewOptions.isMirrored,
17137
17203
  isScreenSharingOn,
@@ -17171,7 +17237,8 @@ const _RemoteVideoTile = React.memo((props) => {
17171
17237
  /* @conditional-compile-remove(spotlight) */ isSpotlighted,
17172
17238
  /* @conditional-compile-remove(spotlight) */ onStartSpotlight,
17173
17239
  /* @conditional-compile-remove(spotlight) */ onStopSpotlight,
17174
- /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight
17240
+ /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,
17241
+ /* @conditional-compile-remove(soft-mute) */ onMuteParticipant
17175
17242
  });
17176
17243
  const videoTileContextualMenuProps = React.useMemo(() => {
17177
17244
  if (menuKind !== 'contextual' || !contextualMenuProps) {
@@ -19611,7 +19678,9 @@ const VideoGallery = (props) => {
19611
19678
  /* @conditional-compile-remove(spotlight) */
19612
19679
  onStopRemoteSpotlight,
19613
19680
  /* @conditional-compile-remove(spotlight) */
19614
- maxParticipantsToSpotlight, reactionResources, videoTilesOptions } = props;
19681
+ maxParticipantsToSpotlight, reactionResources, videoTilesOptions,
19682
+ /* @conditional-compile-remove(soft-mute) */
19683
+ onMuteParticipant } = props;
19615
19684
  const ids = useIdentifiers();
19616
19685
  const theme = useTheme();
19617
19686
  const localeStrings = useLocale$1().strings.videoGallery;
@@ -19783,7 +19852,9 @@ const VideoGallery = (props) => {
19783
19852
  /* @conditional-compile-remove(spotlight) */
19784
19853
  onStopSpotlight: onStopRemoteSpotlight,
19785
19854
  /* @conditional-compile-remove(spotlight) */
19786
- maxParticipantsToSpotlight: maxParticipantsToSpotlight, reactionResources: reactionResources }));
19855
+ maxParticipantsToSpotlight: maxParticipantsToSpotlight, reactionResources: reactionResources,
19856
+ /* @conditional-compile-remove(soft-mute) */
19857
+ onMuteParticipant: onMuteParticipant }));
19787
19858
  }, [
19788
19859
  onCreateRemoteStreamView,
19789
19860
  onDisposeRemoteVideoStreamView,
@@ -19804,6 +19875,7 @@ const VideoGallery = (props) => {
19804
19875
  /* @conditional-compile-remove(spotlight) */ onStartRemoteSpotlight,
19805
19876
  /* @conditional-compile-remove(spotlight) */ onStopRemoteSpotlight,
19806
19877
  /* @conditional-compile-remove(spotlight) */ maxParticipantsToSpotlight,
19878
+ /* @conditional-compile-remove(soft-mute) */ onMuteParticipant,
19807
19879
  reactionResources,
19808
19880
  videoTilesOptions
19809
19881
  ]);
@@ -22520,7 +22592,7 @@ const videoEffectsItemContainerStyles = (args) => {
22520
22592
  * @internal
22521
22593
  */
22522
22594
  const _VideoEffectsItem = (props) => {
22523
- var _a, _b, _c, _d, _e, _f, _g;
22595
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
22524
22596
  const theme = react.useTheme();
22525
22597
  const isSelected = (_a = props.isSelected) !== null && _a !== void 0 ? _a : false;
22526
22598
  const disabled = (_b = props.disabled) !== null && _b !== void 0 ? _b : false;
@@ -22535,7 +22607,7 @@ const _VideoEffectsItem = (props) => {
22535
22607
  }), [backgroundImage, disabled, isSelected, theme]);
22536
22608
  return (React.createElement(react.TooltipHost, Object.assign({}, props.tooltipProps),
22537
22609
  React.createElement(react.Stack, { key: props.itemKey, className: react.mergeStyles((_f = props.styles) === null || _f === void 0 ? void 0 : _f.root), verticalAlign: "center", horizontalAlign: "center", "data-ui-id": `video-effects-item` },
22538
- React.createElement(react.DefaultButton, { styles: containerStyles(), onClick: disabled ? undefined : () => { var _a; return (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, props.itemKey); }, componentRef: props.componentRef, "aria-label": (_g = props.ariaLabel) !== null && _g !== void 0 ? _g : props.itemKey, "aria-disabled": props.disabled },
22610
+ React.createElement(react.DefaultButton, { styles: containerStyles(), onClick: disabled ? undefined : () => { var _a; return (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, props.itemKey); }, componentRef: props.componentRef, ariaLabel: (_j = (_g = props.ariaLabel) !== null && _g !== void 0 ? _g : (_h = props.tooltipProps) === null || _h === void 0 ? void 0 : _h.content) !== null && _j !== void 0 ? _j : props.itemKey, "aria-disabled": props.disabled },
22539
22611
  React.createElement(react.Stack, { horizontalAlign: 'center' },
22540
22612
  props.iconProps && (React.createElement(react.Stack.Item, { className: iconContainerStyles },
22541
22613
  React.createElement(react.Icon, Object.assign({}, props.iconProps)))),
@@ -27872,7 +27944,7 @@ const AttachmentDownloadErrorBar = (props) => {
27872
27944
  /**
27873
27945
  * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
27874
27946
  */
27875
- const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CZ0LZbKA.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
27947
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CBQNEhRD.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
27876
27948
  /**
27877
27949
  * @private
27878
27950
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -27880,7 +27952,7 @@ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function
27880
27952
  *
27881
27953
  /* @conditional-compile-remove(rich-text-editor-composite-support)
27882
27954
  */
27883
- const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CZ0LZbKA.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
27955
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-CBQNEhRD.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
27884
27956
  /**
27885
27957
  * @private
27886
27958
  */
@@ -29031,7 +29103,6 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
29031
29103
  onSetCaptionLanguage: (language) => __awaiter$k(void 0, void 0, void 0, function* () {
29032
29104
  yield adapter.setCaptionLanguage(language);
29033
29105
  }),
29034
- /* @conditional-compile-remove(end-of-call-survey) */
29035
29106
  onSubmitSurvey: (survey) => __awaiter$k(void 0, void 0, void 0, function* () {
29036
29107
  return yield adapter.submitSurvey(survey);
29037
29108
  }),
@@ -29068,7 +29139,11 @@ const createCompositeHandlers = memoizeOne((adapter, capabilities) => {
29068
29139
  ? (userIds) => __awaiter$k(void 0, void 0, void 0, function* () {
29069
29140
  yield adapter.stopSpotlight(userIds);
29070
29141
  })
29071
- : undefined
29142
+ : undefined,
29143
+ /* @conditional-compile-remove(soft-mute) */
29144
+ onMuteParticipant: (userId) => __awaiter$k(void 0, void 0, void 0, function* () {
29145
+ yield adapter.muteParticipant(userId);
29146
+ })
29072
29147
  };
29073
29148
  });
29074
29149
 
@@ -32575,13 +32650,17 @@ const usePeoplePane = (props) => {
32575
32650
  /* @conditional-compile-remove(spotlight) */
32576
32651
  onStopAllSpotlight,
32577
32652
  /* @conditional-compile-remove(spotlight) */
32578
- maxParticipantsToSpotlight } = props;
32653
+ maxParticipantsToSpotlight,
32654
+ /* @conditional-compile-remove(soft-mute) */
32655
+ onMuteParticipant } = props;
32579
32656
  const closePane = React.useCallback(() => {
32580
32657
  var _a;
32581
32658
  updateSidePaneRenderer(undefined);
32582
32659
  (_a = peopleButtonRef === null || peopleButtonRef === void 0 ? void 0 : peopleButtonRef.current) === null || _a === void 0 ? void 0 : _a.focus();
32583
32660
  }, [peopleButtonRef, updateSidePaneRenderer]);
32584
32661
  const localeStrings = useLocale().strings.call;
32662
+ /* @conditional-compile-remove(soft-mute) */
32663
+ const remoteParticipants = useSelector$1(getRemoteParticipants);
32585
32664
  /* @conditional-compile-remove(spotlight) */
32586
32665
  const sidePaneHeaderMenuProps = React.useMemo(() => {
32587
32666
  const menuItems = [];
@@ -32601,11 +32680,15 @@ const usePeoplePane = (props) => {
32601
32680
  };
32602
32681
  }, [onStopAllSpotlight, spotlightedParticipantUserIds, localeStrings.stopAllSpotlightMenuLabel]);
32603
32682
  const onRenderHeader = React.useCallback(() => (React.createElement(SidePaneHeader, { onClose: closePane, headingText: localeStrings.peoplePaneTitle, dismissSidePaneButtonAriaLabel: localeStrings.dismissSidePaneButtonLabel, mobileView: mobileView !== null && mobileView !== void 0 ? mobileView : false })), [mobileView, closePane, localeStrings]);
32604
- /* @conditional-compile-remove(spotlight) */
32683
+ /* @conditional-compile-remove(spotlight) */ /* @conditional-compile-remove(soft-mute) */
32605
32684
  const onFetchParticipantMenuItemsForCallComposite = React.useCallback((participantId, myUserId, defaultMenuItems) => {
32685
+ var _a;
32606
32686
  const _defaultMenuItems = defaultMenuItems !== null && defaultMenuItems !== void 0 ? defaultMenuItems : [];
32687
+ /* @conditional-compile-remove(spotlight) */
32607
32688
  const isSpotlighted = spotlightedParticipantUserIds === null || spotlightedParticipantUserIds === void 0 ? void 0 : spotlightedParticipantUserIds.find((p) => p === participantId);
32689
+ /* @conditional-compile-remove(spotlight) */
32608
32690
  const isMe = myUserId === participantId;
32691
+ /* @conditional-compile-remove(spotlight) */
32609
32692
  if (isSpotlighted) {
32610
32693
  const stopSpotlightMenuText = isMe
32611
32694
  ? localeStrings.stopSpotlightOnSelfMenuLabel
@@ -32661,6 +32744,24 @@ const usePeoplePane = (props) => {
32661
32744
  });
32662
32745
  }
32663
32746
  }
32747
+ /* @conditional-compile-remove(soft-mute) */
32748
+ if (onMuteParticipant && !isMe) {
32749
+ const isMuted = remoteParticipants && ((_a = remoteParticipants[participantId]) === null || _a === void 0 ? void 0 : _a.isMuted);
32750
+ _defaultMenuItems.push({
32751
+ key: 'mute',
32752
+ text: 'Mute',
32753
+ iconProps: {
32754
+ iconName: 'ContextualMenuMicMutedIcon',
32755
+ styles: { root: { lineHeight: 0 } }
32756
+ },
32757
+ onClick: () => {
32758
+ onMuteParticipant(participantId);
32759
+ },
32760
+ 'data-ui-id': 'participant-item-mute-participant',
32761
+ ariaLabel: 'Mute',
32762
+ disabled: isMuted
32763
+ });
32764
+ }
32664
32765
  return onFetchParticipantMenuItems
32665
32766
  ? onFetchParticipantMenuItems(participantId, myUserId, _defaultMenuItems)
32666
32767
  : _defaultMenuItems;
@@ -32671,6 +32772,10 @@ const usePeoplePane = (props) => {
32671
32772
  onStartRemoteSpotlight,
32672
32773
  onStopRemoteSpotlight,
32673
32774
  onFetchParticipantMenuItems,
32775
+ /* @conditional-compile-remove(soft-mute) */
32776
+ onMuteParticipant,
32777
+ /* @conditional-compile-remove(soft-mute) */
32778
+ remoteParticipants,
32674
32779
  localeStrings.stopSpotlightMenuLabel,
32675
32780
  localeStrings.stopSpotlightOnSelfMenuLabel,
32676
32781
  localeStrings.addSpotlightMenuLabel,
@@ -33499,22 +33604,36 @@ const CallArrangement = (props) => {
33499
33604
  setParticipantActioned
33500
33605
  ]);
33501
33606
  const locale = useLocale();
33607
+ const role = (_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.role;
33502
33608
  /* @conditional-compile-remove(spotlight) */
33503
33609
  const videoGalleryProps = usePropsFor$1(VideoGallery);
33504
33610
  /* @conditional-compile-remove(spotlight) */
33505
33611
  const { setPromptProps, setIsPromptOpen, hideSpotlightButtons } = props;
33506
33612
  /* @conditional-compile-remove(spotlight) */
33507
- const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight, spotlightedParticipants, maxParticipantsToSpotlight, localParticipant } = videoGalleryProps;
33613
+ const { onStartLocalSpotlight, onStopLocalSpotlight, onStartRemoteSpotlight, onStopRemoteSpotlight,
33614
+ /* @conditional-compile-remove(soft-mute) */
33615
+ onMuteParticipant, spotlightedParticipants, maxParticipantsToSpotlight, localParticipant } = videoGalleryProps;
33508
33616
  /* @conditional-compile-remove(spotlight) */
33509
33617
  const { onStartLocalSpotlightWithPrompt, onStopLocalSpotlightWithPrompt } = useLocalSpotlightCallbacksWithPrompt(onStartLocalSpotlight, onStopLocalSpotlight, setIsPromptOpen, setPromptProps);
33510
33618
  /* @conditional-compile-remove(spotlight) */
33511
33619
  const { onStartRemoteSpotlightWithPrompt, onStopRemoteSpotlightWithPrompt } = useRemoteSpotlightCallbacksWithPrompt(onStartRemoteSpotlight, onStopRemoteSpotlight, setIsPromptOpen, setPromptProps);
33512
33620
  /* @conditional-compile-remove(spotlight) */
33513
- const canRemoveSpotlight = (_c = (_b = adapter.getState().call) === null || _b === void 0 ? void 0 : _b.capabilitiesFeature) === null || _c === void 0 ? void 0 : _c.capabilities.removeParticipantsSpotlight.isPresent;
33621
+ const canRemoveSpotlight = (_d = (_c = adapter.getState().call) === null || _c === void 0 ? void 0 : _c.capabilitiesFeature) === null || _d === void 0 ? void 0 : _d.capabilities.removeParticipantsSpotlight.isPresent;
33514
33622
  /* @conditional-compile-remove(spotlight) */
33515
33623
  const stopAllSpotlight = React.useMemo(() => (canRemoveSpotlight ? () => adapter.stopAllSpotlight() : undefined), [canRemoveSpotlight, adapter]);
33516
33624
  /* @conditional-compile-remove(spotlight) */
33517
33625
  const { stopAllSpotlightWithPrompt } = useStopAllSpotlightCallbackWithPrompt(stopAllSpotlight, setIsPromptOpen, setPromptProps);
33626
+ const onMuteParticipantPeoplePaneProps = React.useMemo(() => {
33627
+ /* @conditional-compile-remove(soft-mute) */
33628
+ return {
33629
+ onMuteParticipant: ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(role !== null && role !== void 0 ? role : '')
33630
+ ? onMuteParticipant
33631
+ : undefined
33632
+ };
33633
+ }, [
33634
+ /* @conditional-compile-remove(soft-mute) */ onMuteParticipant,
33635
+ /* @conditional-compile-remove(soft-mute) */ role
33636
+ ]);
33518
33637
  const spotlightPeoplePaneProps = React.useMemo(() => {
33519
33638
  /* @conditional-compile-remove(spotlight) */
33520
33639
  return {
@@ -33536,7 +33655,7 @@ const CallArrangement = (props) => {
33536
33655
  /* @conditional-compile-remove(spotlight) */ stopAllSpotlightWithPrompt,
33537
33656
  /* @conditional-compile-remove(spotlight) */ spotlightedParticipants
33538
33657
  ]);
33539
- const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(Object.assign(Object.assign({}, peoplePaneProps), spotlightPeoplePaneProps));
33658
+ const { isPeoplePaneOpen, openPeoplePane, closePeoplePane } = usePeoplePane(Object.assign(Object.assign(Object.assign({}, peoplePaneProps), spotlightPeoplePaneProps), onMuteParticipantPeoplePaneProps));
33540
33659
  const togglePeoplePane = React.useCallback(() => {
33541
33660
  if (isPeoplePaneOpen) {
33542
33661
  closePeoplePane();
@@ -33587,7 +33706,6 @@ const CallArrangement = (props) => {
33587
33706
  togglePeoplePane();
33588
33707
  }, [togglePeoplePane]);
33589
33708
  const drawerContainerStylesValue = React.useMemo(() => drawerContainerStyles(DRAWER_Z_INDEX), []);
33590
- const role = (_d = adapter.getState().call) === null || _d === void 0 ? void 0 : _d.role;
33591
33709
  const canUnmute = role !== 'Consumer' ? true : false;
33592
33710
  let filteredLatestErrors = props.errorBarProps !== false ? props.latestErrors : [];
33593
33711
  const isCameraOn = useSelector$1(localVideoSelector).isAvailable;
@@ -33795,7 +33913,11 @@ const MediaGallery = (props) => {
33795
33913
  /* @conditional-compile-remove(spotlight) */
33796
33914
  onStartRemoteSpotlight: hideSpotlightButtons ? undefined : onStartRemoteSpotlightWithPrompt,
33797
33915
  /* @conditional-compile-remove(spotlight) */
33798
- onStopRemoteSpotlight: hideSpotlightButtons ? undefined : onStopRemoteSpotlightWithPrompt })));
33916
+ onStopRemoteSpotlight: hideSpotlightButtons ? undefined : onStopRemoteSpotlightWithPrompt,
33917
+ /* @conditional-compile-remove(soft-mute) */
33918
+ onMuteParticipant: ['Unknown', 'Organizer', 'Presenter', 'Co-organizer'].includes(userRole !== null && userRole !== void 0 ? userRole : '')
33919
+ ? videoGalleryProps.onMuteParticipant
33920
+ : undefined })));
33799
33921
  }, [
33800
33922
  videoGalleryProps,
33801
33923
  props.isMobile,
@@ -36150,13 +36272,9 @@ const useEndedCallConsoleErrors = (endedCall) => {
36150
36272
  // Copyright (c) Microsoft Corporation.
36151
36273
  // Licensed under the MIT License.
36152
36274
  /** @private */
36153
- const StarSurvey = (
36154
- /* @conditional-compile-remove(end-of-call-survey) */ props) => {
36155
- /* @conditional-compile-remove(end-of-call-survey) */
36275
+ const StarSurvey = (props) => {
36156
36276
  const { onStarRatingSelected } = props;
36157
- /* @conditional-compile-remove(end-of-call-survey) */
36158
36277
  const strings = useLocale().strings.call;
36159
- /* @conditional-compile-remove(end-of-call-survey) */
36160
36278
  const StarSurveyStrings = {
36161
36279
  starSurveyHelperText: strings.starSurveyHelperText,
36162
36280
  starSurveyOneStarText: strings.starSurveyOneStarText,
@@ -36166,24 +36284,19 @@ const StarSurvey = (
36166
36284
  starSurveyFiveStarText: strings.starSurveyFiveStarText,
36167
36285
  starRatingAriaLabel: strings.starRatingAriaLabel
36168
36286
  };
36169
- /* @conditional-compile-remove(end-of-call-survey) */
36170
36287
  return React.createElement(_StarSurvey, { strings: StarSurveyStrings, onStarRatingSelected: onStarRatingSelected });
36171
36288
  };
36172
36289
 
36173
36290
  // Copyright (c) Microsoft Corporation.
36174
36291
  // Licensed under the MIT License.
36175
36292
  /** @private */
36176
- const TagsSurvey = (
36177
- /* @conditional-compile-remove(end-of-call-survey) */ props) => {
36178
- /* @conditional-compile-remove(end-of-call-survey) */
36293
+ const TagsSurvey = (props) => {
36179
36294
  const strings = useLocale().strings.call;
36180
- /* @conditional-compile-remove(end-of-call-survey) */
36181
36295
  const tagsSurveyStrings = {
36182
36296
  tagsSurveyQuestion: strings.tagsSurveyQuestion,
36183
36297
  tagsSurveyHelperText: strings.tagsSurveyHelperText,
36184
36298
  tagsSurveyTextFieldDefaultText: strings.tagsSurveyTextFieldDefaultText
36185
36299
  };
36186
- /* @conditional-compile-remove(end-of-call-survey) */
36187
36300
  return (React.createElement(_TagsSurvey, { callIssuesToTag: strings.surveyIssues, categoryHeadings: strings.surveyIssuesHeadingStrings, onConfirm: props.onConfirm, strings: tagsSurveyStrings, showFreeFormTextField: props.showFreeFormTextField }));
36188
36301
  };
36189
36302
 
@@ -36192,11 +36305,8 @@ const TagsSurvey = (
36192
36305
  /**
36193
36306
  * @private
36194
36307
  */
36195
- const SurveyContent = (
36196
- /* @conditional-compile-remove(end-of-call-survey) */ props) => {
36197
- /* @conditional-compile-remove(end-of-call-survey) */
36308
+ const SurveyContent = (props) => {
36198
36309
  const [showTagsSurvey, setShowTagsSurvey] = React.useState(false);
36199
- /* @conditional-compile-remove(end-of-call-survey) */
36200
36310
  const onStarRatingSelected = (ratings) => {
36201
36311
  if (ratings < 5) {
36202
36312
  setShowTagsSurvey(true);
@@ -36207,7 +36317,6 @@ const SurveyContent = (
36207
36317
  }
36208
36318
  props.setRatings(ratings);
36209
36319
  };
36210
- /* @conditional-compile-remove(end-of-call-survey) */
36211
36320
  const onIssuesSelected = (selectedTags, improvementSuggestions) => {
36212
36321
  props.setIssuesSelected(selectedTags);
36213
36322
  props.setShowSubmitFeedbackButton(true);
@@ -36215,7 +36324,6 @@ const SurveyContent = (
36215
36324
  props.setImprovementSuggestions(improvementSuggestions);
36216
36325
  }
36217
36326
  };
36218
- /* @conditional-compile-remove(end-of-call-survey) */
36219
36327
  return (React.createElement(react.Stack, { "data-ui-id": "call-composite-survey" },
36220
36328
  React.createElement(StarSurvey, { onStarRatingSelected: onStarRatingSelected }),
36221
36329
  showTagsSurvey && (React.createElement(TagsSurvey, { onConfirm: onIssuesSelected, showFreeFormTextField: !(props.setImprovementSuggestions === undefined) }))));
@@ -36227,11 +36335,8 @@ const SurveyContent = (
36227
36335
  * Page shown after the survey is submitted.
36228
36336
  * @private
36229
36337
  */
36230
- function ThankYouForFeedbackPage(
36231
- /* @conditional-compile-remove(end-of-call-survey) */ props) {
36232
- /* @conditional-compile-remove(end-of-call-survey) */
36338
+ function ThankYouForFeedbackPage(props) {
36233
36339
  const strings = useLocale().strings.call;
36234
- /* @conditional-compile-remove(end-of-call-survey) */
36235
36340
  return (React.createElement(react.Stack, { verticalFill: true, verticalAlign: "center", horizontalAlign: "center", "data-ui-id": 'thank-you-page', "aria-atomic": true },
36236
36341
  React.createElement(react.Stack, { className: react.mergeStyles(containerStyle), tokens: containerItemGap },
36237
36342
  props.iconName && React.createElement(CallCompositeIcon, { iconName: props.iconName }),
@@ -36240,8 +36345,6 @@ function ThankYouForFeedbackPage(
36240
36345
 
36241
36346
  // Copyright (c) Microsoft Corporation.
36242
36347
  // Licensed under the MIT License.
36243
- /* @conditional-compile-remove(end-of-call-survey) */
36244
- /* @conditional-compile-remove(end-of-call-survey) */
36245
36348
  /**
36246
36349
  * @private
36247
36350
  */
@@ -36251,7 +36354,6 @@ const questionTextStyle = (theme) => react.mergeStyles({
36251
36354
  lineHeight: _pxToRem(20),
36252
36355
  color: theme.palette.neutralPrimary
36253
36356
  });
36254
- /* @conditional-compile-remove(end-of-call-survey) */
36255
36357
  /**
36256
36358
  * @private
36257
36359
  */
@@ -36284,27 +36386,16 @@ var __awaiter$8 = (window && window.__awaiter) || function (thisArg, _arguments,
36284
36386
  };
36285
36387
  /** @private */
36286
36388
  const Survey = (props) => {
36287
- /* @conditional-compile-remove(end-of-call-survey) */
36288
36389
  const { onSubmitSurvey, onSurveySubmittedCustom, onSurveyClosed, iconName, title, moreDetails, disableStartCallButton, isMobile } = props;
36289
- /* @conditional-compile-remove(end-of-call-survey) */
36290
36390
  const strings = useLocale().strings.call;
36291
- /* @conditional-compile-remove(end-of-call-survey) */
36292
36391
  const [ratings, setRatings] = React.useState(0);
36293
- /* @conditional-compile-remove(end-of-call-survey) */
36294
36392
  const [issuesSelected, setIssuesSelected] = React.useState();
36295
- /* @conditional-compile-remove(end-of-call-survey) */
36296
36393
  const [showSubmitFeedbackButton, setShowSubmitFeedbackButton] = React.useState(false);
36297
- /* @conditional-compile-remove(end-of-call-survey) */
36298
36394
  const [improvementSuggestions, setImprovementSuggestions] = React.useState({});
36299
- /* @conditional-compile-remove(end-of-call-survey) */
36300
36395
  const [showDefaultAfterSubmitScreen, setShowDefaultAfterSubmitScreen] = React.useState(false);
36301
- /* @conditional-compile-remove(end-of-call-survey) */
36302
36396
  const [showDefaultAfterDismissedScreen, setShowDefaultAfterDismissedScreen] = React.useState(false);
36303
- /* @conditional-compile-remove(end-of-call-survey) */
36304
36397
  const [submitButtonDisabled, setSubmitButtonDisabled] = React.useState(false);
36305
- /* @conditional-compile-remove(end-of-call-survey) */
36306
36398
  const theme = react.useTheme();
36307
- /* @conditional-compile-remove(end-of-call-survey) */
36308
36399
  return (React.createElement(React.Fragment, null,
36309
36400
  showDefaultAfterSubmitScreen && React.createElement(ThankYouForFeedbackPage, { iconName: iconName }),
36310
36401
  showDefaultAfterDismissedScreen && (React.createElement(NoticePage, { iconName: iconName, title: title, moreDetails: moreDetails, dataUiId: 'left-call-page', disableStartCallButton: disableStartCallButton })),
@@ -36393,9 +36484,7 @@ const Survey = (props) => {
36393
36484
  */
36394
36485
  function SurveyPage(props) {
36395
36486
  var _a, _b;
36396
- /* @conditional-compile-remove(end-of-call-survey) */
36397
36487
  const handlers = useHandlers();
36398
- /* @conditional-compile-remove(end-of-call-survey) */
36399
36488
  return (React.createElement(react.Stack, { verticalFill: true, verticalAlign: "center", horizontalAlign: "center", "data-ui-id": props.dataUiId, "aria-atomic": true },
36400
36489
  React.createElement(react.Stack, { className: react.mergeStyles(containerStyle$1), tokens: containerItemGap },
36401
36490
  React.createElement(Survey, Object.assign({}, handlers, props, { onSurveySubmittedCustom: (_a = props.surveyOptions) === null || _a === void 0 ? void 0 : _a.onSurveySubmitted, onSurveyClosed: (_b = props.surveyOptions) === null || _b === void 0 ? void 0 : _b.onSurveyClosed, isMobile: props.mobileView })))));
@@ -36535,7 +36624,6 @@ const MainScreen = (props) => {
36535
36624
  }
36536
36625
  case 'leftCall': {
36537
36626
  const { title, moreDetails, disableStartCallButton, iconName } = getEndedCallPageProps(locale, endedCall);
36538
- /* @conditional-compile-remove(end-of-call-survey) */
36539
36627
  if (!((_o = (_m = props.options) === null || _m === void 0 ? void 0 : _m.surveyOptions) === null || _o === void 0 ? void 0 : _o.disableSurvey)) {
36540
36628
  pageElement = (React.createElement(SurveyPage, { dataUiId: 'left-call-page', surveyOptions: (_p = props.options) === null || _p === void 0 ? void 0 : _p.surveyOptions, iconName: iconName, title: title, moreDetails: moreDetails, disableStartCallButton: disableStartCallButton, mobileView: props.mobileView }));
36541
36629
  break;
@@ -37178,7 +37266,6 @@ class AzureCommunicationCallAdapter {
37178
37266
  this.startVideoBackgroundEffect.bind(this);
37179
37267
  this.stopVideoBackgroundEffects.bind(this);
37180
37268
  this.updateBackgroundPickerImages.bind(this);
37181
- /* @conditional-compile-remove(end-of-call-survey) */
37182
37269
  this.submitSurvey.bind(this);
37183
37270
  /* @conditional-compile-remove(spotlight) */
37184
37271
  this.startSpotlight.bind(this);
@@ -37186,6 +37273,8 @@ class AzureCommunicationCallAdapter {
37186
37273
  this.stopSpotlight.bind(this);
37187
37274
  /* @conditional-compile-remove(spotlight) */
37188
37275
  this.stopAllSpotlight.bind(this);
37276
+ /* @conditional-compile-remove(soft-mute) */
37277
+ this.muteParticipant.bind(this);
37189
37278
  }
37190
37279
  dispose() {
37191
37280
  this.resetDiagnosticsForwarder();
@@ -37637,12 +37726,17 @@ class AzureCommunicationCallAdapter {
37637
37726
  this.handlers.onSetSpokenLanguage(language);
37638
37727
  });
37639
37728
  }
37640
- /* @conditional-compile-remove(end-of-call-survey) */
37641
37729
  submitSurvey(survey) {
37642
37730
  return __awaiter$5(this, void 0, void 0, function* () {
37643
37731
  return this.handlers.onSubmitSurvey(survey);
37644
37732
  });
37645
37733
  }
37734
+ /* @conditional-compile-remove(soft-mute) */
37735
+ muteParticipant(userId) {
37736
+ return __awaiter$5(this, void 0, void 0, function* () {
37737
+ this.handlers.onMuteParticipant(userId);
37738
+ });
37739
+ }
37646
37740
  /* @conditional-compile-remove(spotlight) */
37647
37741
  startSpotlight(userIds) {
37648
37742
  return __awaiter$5(this, void 0, void 0, function* () {
@@ -37695,6 +37789,8 @@ class AzureCommunicationCallAdapter {
37695
37789
  acsCaptionsFeature.on('CaptionsActiveChanged', this.isCaptionsActiveChanged.bind(this));
37696
37790
  /* @conditional-compile-remove(acs-close-captions) */
37697
37791
  acsCaptionsFeature.on('SpokenLanguageChanged', this.isSpokenLanguageChanged.bind(this));
37792
+ /* @conditional-compile-remove(acs-close-captions) */
37793
+ captionsFeature.on('CaptionsKindChanged', this.captionsKindChanged.bind(this));
37698
37794
  }
37699
37795
  }
37700
37796
  }
@@ -37724,7 +37820,7 @@ class AzureCommunicationCallAdapter {
37724
37820
  }
37725
37821
  }
37726
37822
  subscribeCallEvents() {
37727
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
37823
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
37728
37824
  if (this.call) {
37729
37825
  this.callingSoundSubscriber = new CallingSoundSubscriber(this.call, this.getState().targetCallees, this.getState().sounds);
37730
37826
  }
@@ -37738,8 +37834,6 @@ class AzureCommunicationCallAdapter {
37738
37834
  (_h = this.call) === null || _h === void 0 ? void 0 : _h.feature(communicationCalling.Features.Capabilities).on('capabilitiesChanged', this.capabilitiesChanged.bind(this));
37739
37835
  /* @conditional-compile-remove(spotlight) */
37740
37836
  (_j = this.call) === null || _j === void 0 ? void 0 : _j.feature(communicationCalling.Features.Spotlight).on('spotlightChanged', this.spotlightChanged.bind(this));
37741
- /* @conditional-compile-remove(acs-close-captions) */
37742
- (_k = this.call) === null || _k === void 0 ? void 0 : _k.feature(communicationCalling.Features.Captions).on('CaptionsKindChanged', this.captionsKindChanged.bind(this));
37743
37837
  }
37744
37838
  unsubscribeCallEvents() {
37745
37839
  var _a, _b, _c, _d, _e, _f, _g;
@@ -38419,7 +38513,6 @@ class CallWithChatBackedCallAdapter {
38419
38513
  updateSelectedVideoBackgroundEffect(selectedVideoBackground) {
38420
38514
  return this.callWithChatAdapter.updateSelectedVideoBackgroundEffect(selectedVideoBackground);
38421
38515
  }
38422
- /* @conditional-compile-remove(end-of-call-survey) */
38423
38516
  submitSurvey(survey) {
38424
38517
  return __awaiter$4(this, void 0, void 0, function* () {
38425
38518
  return this.callWithChatAdapter.submitSurvey(survey);
@@ -38443,6 +38536,12 @@ class CallWithChatBackedCallAdapter {
38443
38536
  return this.callWithChatAdapter.stopAllSpotlight();
38444
38537
  });
38445
38538
  }
38539
+ /* @conditional-compile-remove(soft-mute) */
38540
+ muteParticipant(userId) {
38541
+ return __awaiter$4(this, void 0, void 0, function* () {
38542
+ return this.callWithChatAdapter.muteParticipant(userId);
38543
+ });
38544
+ }
38446
38545
  }
38447
38546
  function callAdapterStateFromCallWithChatAdapterState(callWithChatAdapterState) {
38448
38547
  return {
@@ -38756,7 +38855,6 @@ const validNewChatMessage = (message) => !!message.senderDisplayName && (message
38756
38855
  // Licensed under the MIT License.
38757
38856
  const CallWithChatScreen = (props) => {
38758
38857
  const { callWithChatAdapter, fluentTheme, formFactor = 'desktop' } = props;
38759
- /* @conditional-compile-remove(end-of-call-survey) */
38760
38858
  const { surveyOptions } = props;
38761
38859
  const mobileView = formFactor === 'mobile';
38762
38860
  if (!callWithChatAdapter) {
@@ -38871,7 +38969,6 @@ const CallWithChatScreen = (props) => {
38871
38969
  remoteVideoTileMenuOptions: props.remoteVideoTileMenuOptions,
38872
38970
  galleryOptions: props.galleryOptions,
38873
38971
  localVideoTile: props.localVideoTile,
38874
- /* @conditional-compile-remove(end-of-call-survey) */
38875
38972
  surveyOptions: surveyOptions,
38876
38973
  branding: {
38877
38974
  logo: props.logo,
@@ -38896,7 +38993,6 @@ const CallWithChatScreen = (props) => {
38896
38993
  props.galleryOptions,
38897
38994
  props.localVideoTile,
38898
38995
  props.remoteVideoTileMenuOptions,
38899
- /* @conditional-compile-remove(end-of-call-survey) */
38900
38996
  surveyOptions,
38901
38997
  props.logo,
38902
38998
  props.backgroundImage,
@@ -38966,9 +39062,7 @@ const CallWithChatComposite = (props) => {
38966
39062
  /* @conditional-compile-remove(call-readiness) */
38967
39063
  deviceChecks: options === null || options === void 0 ? void 0 : options.deviceChecks, callWithChatAdapter: adapter, formFactor: formFactor, callControls: options === null || options === void 0 ? void 0 : options.callControls, joinInvitationURL: joinInvitationURL, fluentTheme: fluentTheme, remoteVideoTileMenuOptions: options === null || options === void 0 ? void 0 : options.remoteVideoTileMenuOptions,
38968
39064
  /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
38969
- attachmentOptions: options === null || options === void 0 ? void 0 : options.attachmentOptions, localVideoTile: options === null || options === void 0 ? void 0 : options.localVideoTile, galleryOptions: options === null || options === void 0 ? void 0 : options.galleryOptions, logo: (_a = options === null || options === void 0 ? void 0 : options.branding) === null || _a === void 0 ? void 0 : _a.logo, backgroundImage: (_b = options === null || options === void 0 ? void 0 : options.branding) === null || _b === void 0 ? void 0 : _b.backgroundImage,
38970
- /* @conditional-compile-remove(end-of-call-survey) */
38971
- surveyOptions: options === null || options === void 0 ? void 0 : options.surveyOptions,
39065
+ attachmentOptions: options === null || options === void 0 ? void 0 : options.attachmentOptions, localVideoTile: options === null || options === void 0 ? void 0 : options.localVideoTile, galleryOptions: options === null || options === void 0 ? void 0 : options.galleryOptions, logo: (_a = options === null || options === void 0 ? void 0 : options.branding) === null || _a === void 0 ? void 0 : _a.logo, backgroundImage: (_b = options === null || options === void 0 ? void 0 : options.branding) === null || _b === void 0 ? void 0 : _b.backgroundImage, surveyOptions: options === null || options === void 0 ? void 0 : options.surveyOptions,
38972
39066
  /* @conditional-compile-remove(spotlight) */
38973
39067
  spotlight: options === null || options === void 0 ? void 0 : options.spotlight }))));
38974
39068
  };
@@ -39501,7 +39595,6 @@ class AzureCommunicationCallWithChatAdapter {
39501
39595
  updateSelectedVideoBackgroundEffect(selectedVideoBackground) {
39502
39596
  return this.callAdapter.updateSelectedVideoBackgroundEffect(selectedVideoBackground);
39503
39597
  }
39504
- /* @conditional-compile-remove(end-of-call-survey) */
39505
39598
  submitSurvey(survey) {
39506
39599
  return __awaiter$2(this, void 0, void 0, function* () {
39507
39600
  return this.callAdapter.submitSurvey(survey);
@@ -39525,6 +39618,12 @@ class AzureCommunicationCallWithChatAdapter {
39525
39618
  return this.callAdapter.stopAllSpotlight();
39526
39619
  });
39527
39620
  }
39621
+ /* @conditional-compile-remove(soft-mute) */
39622
+ muteParticipant(userId) {
39623
+ return __awaiter$2(this, void 0, void 0, function* () {
39624
+ return this.callAdapter.muteParticipant(userId);
39625
+ });
39626
+ }
39528
39627
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
39529
39628
  on(event, listener) {
39530
39629
  switch (event) {
@@ -40588,4 +40687,4 @@ exports.useTeamsCall = useTeamsCall;
40588
40687
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
40589
40688
  exports.useTeamsCallAgent = useTeamsCallAgent;
40590
40689
  exports.useTheme = useTheme;
40591
- //# sourceMappingURL=index-BqQ1gXi4.js.map
40690
+ //# sourceMappingURL=index-xYWFdTrM.js.map