@azure/communication-react 1.11.1-alpha-202312230012 → 1.11.1-alpha-202312280012

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 (31) hide show
  1. package/dist/dist-cjs/communication-react/index.js +78 -35
  2. package/dist/dist-cjs/communication-react/index.js.map +1 -1
  3. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  4. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  5. package/dist/dist-esm/react-components/src/components/VideoTile.js +3 -10
  6. package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
  7. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +9 -1
  8. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +25 -0
  9. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  10. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +10 -0
  11. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  12. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +1 -1
  13. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  14. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js +2 -1
  15. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalPreview.js.map +1 -1
  16. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.d.ts +1 -0
  17. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js +2 -2
  18. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
  19. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +1 -1
  20. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  21. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +7 -0
  22. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  23. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js +7 -5
  24. package/dist/dist-esm/react-composites/src/composites/ChatComposite/styles/Chat.styles.js.map +1 -1
  25. package/dist/dist-esm/react-composites/src/composites/common/constants.d.ts +6 -0
  26. package/dist/dist-esm/react-composites/src/composites/common/constants.js +6 -0
  27. package/dist/dist-esm/react-composites/src/composites/common/constants.js.map +1 -1
  28. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.d.ts +1 -1
  29. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js +6 -3
  30. package/dist/dist-esm/react-composites/src/composites/common/styles/Pane.styles.js.map +1 -1
  31. package/package.json +1 -1
@@ -170,7 +170,7 @@ function getDefaultExportFromCjs (x) {
170
170
  // Copyright (c) Microsoft Corporation.
171
171
  // Licensed under the MIT License.
172
172
  // GENERATED FILE. DO NOT EDIT MANUALLY.
173
- var telemetryVersion = '1.11.1-alpha-202312230012';
173
+ var telemetryVersion = '1.11.1-alpha-202312280012';
174
174
 
175
175
 
176
176
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -12756,6 +12756,31 @@ const moreButtonStyles = {
12756
12756
  background: 'none'
12757
12757
  }
12758
12758
  };
12759
+ /**
12760
+ * @private
12761
+ */
12762
+ const raiseHandContainerStyles = (theme, limitedSpace) => react.mergeStyles({
12763
+ alignItems: 'center',
12764
+ padding: '0.2rem 0.3rem',
12765
+ backgroundColor: theme.palette.white,
12766
+ opacity: 0.9,
12767
+ borderRadius: '1rem',
12768
+ margin: '0.5rem',
12769
+ width: 'fit-content',
12770
+ position: 'absolute'
12771
+ }, limitedSpace && raiseHandLimitedSpaceStyles);
12772
+ /**
12773
+ * @private
12774
+ */
12775
+ const raiseHandLimitedSpaceStyles = {
12776
+ // position centrally
12777
+ marginLeft: 'auto',
12778
+ marginRight: 'auto',
12779
+ left: 0,
12780
+ right: 0,
12781
+ // position at the bottom
12782
+ bottom: 0
12783
+ };
12759
12784
 
12760
12785
  // Copyright (c) Microsoft Corporation.
12761
12786
  // Licensed under the MIT License.
@@ -13011,16 +13036,7 @@ const VideoTile = (props) => {
13011
13036
  isPinned && (React.createElement(react.Stack, { className: react.mergeStyles(iconContainerStyle) },
13012
13037
  React.createElement(react.Icon, { iconName: "VideoTilePinned", className: react.mergeStyles(pinIconStyle) })))))),
13013
13038
  children && (React.createElement(react.Stack, { className: react.mergeStyles(overlayContainerStyles, styles === null || styles === void 0 ? void 0 : styles.overlayContainer) }, children)),
13014
- /* @conditional-compile-remove(raise-hand) */ raisedHand && canShowLabel && (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.2rem' }, style: {
13015
- alignItems: 'center',
13016
- padding: '0.2rem 0.3rem',
13017
- backgroundColor: theme.palette.white,
13018
- opacity: 0.9,
13019
- borderRadius: '1rem',
13020
- margin: '0.5rem',
13021
- width: 'fit-content',
13022
- position: 'absolute'
13023
- } },
13039
+ /* @conditional-compile-remove(raise-hand) */ raisedHand && (React.createElement(react.Stack, { horizontal: true, tokens: { childrenGap: '0.2rem' }, className: raiseHandContainerStyles(theme, !canShowLabel) },
13024
13040
  React.createElement(react.Stack.Item, null,
13025
13041
  React.createElement(react.Text, null, raisedHand.raisedHandOrderPosition)),
13026
13042
  React.createElement(react.Stack.Item, null,
@@ -22762,7 +22778,25 @@ const useAdapter$1 = () => {
22762
22778
 
22763
22779
  // Copyright (c) Microsoft Corporation.
22764
22780
  // Licensed under the MIT License.
22765
- const MESSAGE_THREAD_WIDTH = '41.25rem';
22781
+ /**
22782
+ * @private
22783
+ */
22784
+ const UNSUPPORTED_CHAT_THREAD_TYPE = ['@thread.tacv2', '@thread.skype'];
22785
+ /**
22786
+ * @private
22787
+ */
22788
+ const TEAMS_LIMITATION_LEARN_MORE = 'https://learn.microsoft.com/en-us/azure/communication-services/concepts/join-teams-meeting#limitations-and-known-issues';
22789
+ /**
22790
+ * @remarks
22791
+ * This value is publicly documented in the ChatComposite API documentation.
22792
+ * Changing this value will require updating the API documentation.
22793
+ */
22794
+ const CHAT_CONTAINER_MIN_WIDTH_REM = 17.5;
22795
+
22796
+ // Copyright (c) Microsoft Corporation.
22797
+ // Licensed under the MIT License.
22798
+ const CHAT_CONTAINER_MAX_WIDTH_REM = 41.25;
22799
+ const CHAT_CONTAINER_MIN_HEIGHT_REM = 13;
22766
22800
  /**
22767
22801
  * @private
22768
22802
  * z-index to ensure that chat container has lower z-index than participant pane
@@ -22774,8 +22808,8 @@ const CHAT_CONTAINER_ZINDEX = 1;
22774
22808
  const chatScreenContainerStyle = react.mergeStyles({
22775
22809
  height: '100%',
22776
22810
  width: '100%',
22777
- minHeight: '13rem',
22778
- minWidth: '17.5rem'
22811
+ minHeight: `${CHAT_CONTAINER_MIN_HEIGHT_REM}rem`,
22812
+ minWidth: `${CHAT_CONTAINER_MIN_WIDTH_REM}rem`
22779
22813
  });
22780
22814
  /**
22781
22815
  * @private
@@ -22843,7 +22877,7 @@ const topicNameLabelStyle = react.mergeStyles({
22843
22877
  * @private
22844
22878
  */
22845
22879
  const messageThreadChatCompositeStyles = react.memoizeFunction((background) => ({
22846
- root: { maxWidth: MESSAGE_THREAD_WIDTH },
22880
+ root: { maxWidth: `${CHAT_CONTAINER_MAX_WIDTH_REM}rem` },
22847
22881
  chatContainer: { background: background }
22848
22882
  }));
22849
22883
  /**
@@ -22856,7 +22890,7 @@ const typingIndicatorContainerStyles = {
22856
22890
  * @private
22857
22891
  */
22858
22892
  const sendboxContainerStyles = {
22859
- maxWidth: MESSAGE_THREAD_WIDTH,
22893
+ maxWidth: `${CHAT_CONTAINER_MAX_WIDTH_REM}rem`,
22860
22894
  width: '100%',
22861
22895
  alignSelf: 'center'
22862
22896
  };
@@ -26624,6 +26658,7 @@ const PreparedMoreDrawer = (props) => {
26624
26658
 
26625
26659
  // Copyright (c) Microsoft Corporation.
26626
26660
  // Licensed under the MIT License.
26661
+ const SIDE_PANE_PADDING_LR_REM = 0.25;
26627
26662
  /**
26628
26663
  * @private
26629
26664
  */
@@ -26686,12 +26721,13 @@ const hiddenStyles = {
26686
26721
  /**
26687
26722
  * @private
26688
26723
  */
26689
- const sidePaneStyles = (maxWidth) => ({
26724
+ const sidePaneStyles = (maxWidth, minWidth) => ({
26690
26725
  root: {
26691
26726
  height: 'auto',
26692
26727
  width: '100%',
26693
- padding: '0.5rem 0.25rem',
26694
- maxWidth: maxWidth !== null && maxWidth !== void 0 ? maxWidth : '21.5rem'
26728
+ padding: `0.5rem ${SIDE_PANE_PADDING_LR_REM}rem`,
26729
+ maxWidth: maxWidth !== null && maxWidth !== void 0 ? maxWidth : '21.5rem',
26730
+ minWidth: minWidth !== null && minWidth !== void 0 ? minWidth : `${CHAT_CONTAINER_MIN_WIDTH_REM + SIDE_PANE_PADDING_LR_REM * 2}rem`
26695
26731
  }
26696
26732
  });
26697
26733
  /**
@@ -26780,12 +26816,12 @@ const SidePane = (props) => {
26780
26816
  overrideSidePane.persistRenderingWhenClosed &&
26781
26817
  !overrideSidePane.isActive;
26782
26818
  const renderingOnlyHiddenContent = renderingHiddenOverrideContent && !sidePaneRenderer;
26783
- const maxWidthStyles = React.useMemo(() => sidePaneStyles(props.maxWidth), [props.maxWidth]);
26819
+ const widthConstrainedStyles = React.useMemo(() => sidePaneStyles(props.maxWidth, props.minWidth), [props.maxWidth, props.minWidth]);
26784
26820
  const paneStyles = renderingOnlyHiddenContent
26785
26821
  ? hiddenStyles
26786
26822
  : props.mobileView
26787
26823
  ? availableSpaceStyles
26788
- : maxWidthStyles;
26824
+ : widthConstrainedStyles;
26789
26825
  const Header = (_a = ((overrideSidePane === null || overrideSidePane === void 0 ? void 0 : overrideSidePane.isActive) ? overrideSidePane.renderer.headerRenderer : sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.headerRenderer)) !== null && _a !== void 0 ? _a : EmptyElement;
26790
26826
  /**
26791
26827
  * Legacy code to support old behavior of showing chat and people tab headers on mobile side pane.
@@ -28251,7 +28287,7 @@ const CallArrangement = (props) => {
28251
28287
  /* @conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */ !isInLocalHold && (React.createElement(CaptionsBanner, { isMobile: props.mobileView, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData }))))),
28252
28288
  React.createElement(SidePane, { mobileView: props.mobileView,
28253
28289
  /* @conditional-compile-remove(video-background-effects) */
28254
- maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
28290
+ maxWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, minWidth: isVideoPaneOpen ? `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` : undefined, updateSidePaneRenderer: props.updateSidePaneRenderer, onPeopleButtonClicked: props.mobileView && !shouldShowPeopleTabHeaderButton(props.callControlProps.options)
28255
28291
  ? undefined
28256
28292
  : togglePeoplePane, disablePeopleButton: typeof props.callControlProps.options !== 'boolean' &&
28257
28293
  isDisabled$3((_j = props.callControlProps.options) === null || _j === void 0 ? void 0 : _j.participantsButton), onChatButtonClicked: (_k = props.mobileChatTabHeader) === null || _k === void 0 ? void 0 : _k.onClick, disableChatButton: (_l = props.mobileChatTabHeader) === null || _l === void 0 ? void 0 : _l.disabled }),
@@ -29454,6 +29490,7 @@ const LocalPreview = (props) => {
29454
29490
  const onToggleMic = React.useCallback(() => __awaiter$a(void 0, void 0, void 0, function* () {
29455
29491
  isLocalMicrophoneEnabled ? adapter.mute() : adapter.unmute();
29456
29492
  }), [adapter, isLocalMicrophoneEnabled]);
29493
+ const hasNoSpeakers = !devicesButtonProps.speakers.length;
29457
29494
  const hasNoDevices = devicesButtonProps.cameras.length === 0 &&
29458
29495
  devicesButtonProps.microphones.length === 0 &&
29459
29496
  devicesButtonProps.speakers.length === 0;
@@ -29499,7 +29536,7 @@ const LocalPreview = (props) => {
29499
29536
  : {}, styles: localPreviewButtonStyle })),
29500
29537
  props.showDevicesButton && (React.createElement(DevicesButton, Object.assign({ "data-ui-id": "call-composite-local-device-settings-options-button" }, devicesButtonProps, {
29501
29538
  // disable button whilst all other buttons are disabled
29502
- disabled: !microphonePermissionGranted || !cameraPermissionGranted || hasNoDevices, showLabel: true,
29539
+ disabled: (!microphonePermissionGranted && !cameraPermissionGranted && hasNoSpeakers) || hasNoDevices, showLabel: true,
29503
29540
  // disable tooltip as it obscures list of devices on mobile
29504
29541
  strings: props.mobileView ? { tooltipContent: '' } : {}, styles: devicesButtonStyles })))))));
29505
29542
  };
@@ -30001,7 +30038,7 @@ const ConfigurationPage = (props) => {
30001
30038
  isOpen: isVideoEffectsPaneOpen, hasCloseButton: false, isBlocking: false, isHiddenOnDismiss: false, styles: panelStyles, focusTrapZoneProps: panelFocusProps, layerProps: panelLayerProps, type: react.PanelType.custom,
30002
30039
  /* @conditional-compile-remove(video-background-effects) */
30003
30040
  customWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` },
30004
- React.createElement(SidePane, { mobileView: props.mobileView, updateSidePaneRenderer: props.updateSidePaneRenderer })))));
30041
+ React.createElement(SidePane, { mobileView: props.mobileView, updateSidePaneRenderer: props.updateSidePaneRenderer, maxWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem`, minWidth: `${VIDEO_EFFECTS_SIDE_PANE_WIDTH_REM}rem` })))));
30005
30042
  };
30006
30043
  const localPreviewTrampoline = (mobileView, doNotShow) => {
30007
30044
  /* @conditional-compile-remove(rooms) */
@@ -30949,6 +30986,16 @@ const MainScreen = (props) => {
30949
30986
  React.useEffect(() => {
30950
30987
  onSidePaneIdChange === null || onSidePaneIdChange === void 0 ? void 0 : onSidePaneIdChange(sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id);
30951
30988
  }, [sidePaneRenderer === null || sidePaneRenderer === void 0 ? void 0 : sidePaneRenderer.id, onSidePaneIdChange]);
30989
+ // When the call ends ensure the side pane is set to closed to prevent the side pane being open if the call is re-joined.
30990
+ React.useEffect(() => {
30991
+ const closeSidePane = () => {
30992
+ setSidePaneRenderer(undefined);
30993
+ };
30994
+ adapter.on('callEnded', closeSidePane);
30995
+ return () => {
30996
+ adapter.off('callEnded', closeSidePane);
30997
+ };
30998
+ }, [adapter]);
30952
30999
  /* @conditional-compile-remove(capabilities) */
30953
31000
  const capabilitiesChangedInfoAndRole = useSelector$1(capabilitiesChangedInfoAndRoleSelector);
30954
31001
  /* @conditional-compile-remove(capabilities) */
@@ -33352,6 +33399,13 @@ const CallWithChatScreen = (props) => {
33352
33399
  closeChat();
33353
33400
  }
33354
33401
  }, [closeChat]);
33402
+ // When the call ends ensure the side pane is set to closed to prevent the side pane being open if the call is re-joined.
33403
+ React.useEffect(() => {
33404
+ callAdapter.on('callEnded', closeChat);
33405
+ return () => {
33406
+ callAdapter.off('callEnded', closeChat);
33407
+ };
33408
+ }, [callAdapter, closeChat]);
33355
33409
  return (React.createElement("div", { ref: containerRef, className: react.mergeStyles(containerDivStyles) },
33356
33410
  React.createElement(react.Stack, { verticalFill: true, grow: true, styles: compositeOuterContainerStyles, id: compositeParentDivId },
33357
33411
  React.createElement(react.Stack, { horizontal: true, grow: true },
@@ -33465,17 +33519,6 @@ function mergeCallAdapterStateIntoCallWithChatAdapterState(existingCallWithChatA
33465
33519
  selectedVideoBackgroundEffect: callAdapterState.selectedVideoBackgroundEffect });
33466
33520
  }
33467
33521
 
33468
- // Copyright (c) Microsoft Corporation.
33469
- // Licensed under the MIT License.
33470
- /**
33471
- * @private
33472
- */
33473
- const UNSUPPORTED_CHAT_THREAD_TYPE = ['@thread.tacv2', '@thread.skype'];
33474
- /**
33475
- * @private
33476
- */
33477
- const TEAMS_LIMITATION_LEARN_MORE = 'https://learn.microsoft.com/en-us/azure/communication-services/concepts/join-teams-meeting#limitations-and-known-issues';
33478
-
33479
33522
  // Copyright (c) Microsoft Corporation.
33480
33523
  // Licensed under the MIT License.
33481
33524
  /**