@azure/communication-react 1.18.0-alpha-202406260014 → 1.18.0-alpha-202406280014
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.
- package/dist/communication-react.d.ts +98 -106
 - package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-_hqOwT_h.js → ChatMessageComponentAsRichTextEditBox-Bl9FzI6X.js} +2 -2
 - package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-_hqOwT_h.js.map → ChatMessageComponentAsRichTextEditBox-Bl9FzI6X.js.map} +1 -1
 - package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-D-KYGmZ9.js → RichTextSendBoxWrapper-G-04IaQB.js} +2 -2
 - package/dist/dist-cjs/communication-react/{RichTextSendBoxWrapper-D-KYGmZ9.js.map → RichTextSendBoxWrapper-G-04IaQB.js.map} +1 -1
 - package/dist/dist-cjs/communication-react/{index-DCf8u3Nr.js → index-CWs0GTYF.js} +75 -158
 - package/dist/dist-cjs/communication-react/index-CWs0GTYF.js.map +1 -0
 - package/dist/dist-cjs/communication-react/index.js +3 -3
 - package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
 - package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js +5 -20
 - package/dist/dist-esm/calling-component-bindings/src/errorBarSelector.js.map +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/hooks/usePropsFor.js.map +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/index.d.ts +2 -2
 - package/dist/dist-esm/calling-component-bindings/src/index.js +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/index.js.map +1 -1
 - package/dist/dist-esm/calling-component-bindings/src/{errorNotificationsSelector.d.ts → notificationStackSelector.d.ts} +4 -3
 - package/dist/dist-esm/calling-component-bindings/src/{errorNotificationsSelector.js → notificationStackSelector.js} +7 -3
 - package/dist/dist-esm/calling-component-bindings/src/notificationStackSelector.js.map +1 -0
 - package/dist/dist-esm/calling-stateful-client/src/CallClientState.d.ts +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallDeclarative.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallDeclarativeCommon.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.d.ts +1 -0
 - package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +9 -0
 - package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
 - package/dist/dist-esm/calling-stateful-client/src/TeamsCallDeclarative.js.map +1 -1
 - package/dist/dist-esm/chat-component-bindings/src/hooks/usePropsFor.js.map +1 -1
 - package/dist/dist-esm/chat-stateful-client/src/StatefulChatClient.js.map +1 -1
 - package/dist/dist-esm/communication-react/src/index.d.ts +2 -2
 - package/dist/dist-esm/communication-react/src/index.js +1 -1
 - package/dist/dist-esm/communication-react/src/index.js.map +1 -1
 - package/dist/dist-esm/communication-react/src/mergedHooks.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ControlBarButton.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/DevicePermissions/SitePermissions.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/ErrorBar.d.ts +4 -0
 - package/dist/dist-esm/react-components/src/components/ErrorBar.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.d.ts +1 -21
 - package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js +8 -8
 - package/dist/dist-esm/react-components/src/components/MeetingConferencePhoneInfo.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/{NotificationBar.d.ts → Notification.d.ts} +8 -8
 - package/dist/dist-esm/react-components/src/components/{NotificationBar.js → Notification.js} +5 -5
 - package/dist/dist-esm/react-components/src/components/Notification.js.map +1 -0
 - package/dist/dist-esm/react-components/src/components/{Notifications.d.ts → NotificationStack.d.ts} +46 -42
 - package/dist/dist-esm/react-components/src/components/{Notifications.js → NotificationStack.js} +7 -7
 - package/dist/dist-esm/react-components/src/components/NotificationStack.js.map +1 -0
 - package/dist/dist-esm/react-components/src/components/ParticipantItem.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoEffects/VideoBackgroundEffectsPicker.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoGallery/FloatingLocalVideoLayout.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoGallery/SpeakerVideoLayout.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoGallery/styles/VideoGalleryResponsiveVerticalGallery.styles.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoGallery.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/VideoTile.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/index.d.ts +2 -2
 - package/dist/dist-esm/react-components/src/components/index.js +2 -2
 - package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/{NotificationBar.styles.d.ts → Notification.styles.d.ts} +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/{NotificationBar.styles.js → Notification.styles.js} +1 -1
 - package/dist/dist-esm/react-components/src/components/styles/Notification.styles.js.map +1 -0
 - package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentUtils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/utils/merge.js.map +1 -1
 - package/dist/dist-esm/react-components/src/components/utils.d.ts +1 -1
 - package/dist/dist-esm/react-components/src/components/utils.js +3 -1
 - package/dist/dist-esm/react-components/src/components/utils.js.map +1 -1
 - package/dist/dist-esm/react-components/src/localization/LocalizationProvider.d.ts +4 -4
 - package/dist/dist-esm/react-components/src/localization/LocalizationProvider.js.map +1 -1
 - package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +10 -10
 - package/dist/dist-esm/react-components/src/theming/icons.d.ts +1 -0
 - package/dist/dist-esm/react-components/src/theming/icons.js +4 -0
 - package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +3 -13
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -0
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +9 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.d.ts +0 -2
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +3 -9
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/LocalDeviceSettings.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/MediaGallery.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.d.ts +1 -0
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js +12 -3
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/NetworkReconnectTile.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/SidePane.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/usePeoplePane.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.d.ts +2 -3
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/SidePane/useVideoEffectsPane.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.d.ts +0 -2
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -3
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CallControlOptions.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/Utils.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/CaptionsBannerMoreButton.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.d.ts +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CustomButton.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js +6 -0
 - package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.d.ts +2 -3
 - package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js +2 -40
 - package/dist/dist-esm/react-composites/src/composites/common/VideoEffectsPane.js.map +1 -1
 - package/dist/dist-esm/react-composites/src/composites/common/icons.d.ts +1 -7
 - package/package.json +2 -2
 - package/dist/dist-cjs/communication-react/index-DCf8u3Nr.js.map +0 -1
 - package/dist/dist-esm/calling-component-bindings/src/errorNotificationsSelector.js.map +0 -1
 - package/dist/dist-esm/react-components/src/components/NotificationBar.js.map +0 -1
 - package/dist/dist-esm/react-components/src/components/Notifications.js.map +0 -1
 - package/dist/dist-esm/react-components/src/components/styles/NotificationBar.styles.js.map +0 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BadNetworkQualityNotificationBar.d.ts +0 -22
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BadNetworkQualityNotificationBar.js +0 -40
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/components/BadNetworkQualityNotificationBar.js.map +0 -1
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/badNetworkQualitySelector.d.ts +0 -19
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/badNetworkQualitySelector.js +0 -26
 - package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/badNetworkQualitySelector.js.map +0 -1
 
    
        package/dist/dist-esm/react-composites/src/composites/common/ControlBar/DesktopMoreButton.js.map
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"DesktopMoreButton.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/ControlBar/DesktopMoreButton.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;;;;;;;;;AAKlC,OAAO,EAAE,oBAAoB,EAAE,4CAAmC;AAClE,4CAA4C,CAAC,mDAAmD;AAChG,OAAO,EAAE,UAAU,EAAE,4CAAmC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC7C,4CAA4C,CAAC,mDAAmD;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,+BAA+B,EAAE,MAAM,2CAA2C,CAAC;AAC5F,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EACL,qBAAqB,EACrB,wCAAwC,EACxC,kCAAkC,EACnC,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,4BAA4B,EAAE,sDAA6C;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAC;AAClF,OAAO,EAAE,sBAAsB,EAAE,yCAAgC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,0DAA0D;AAC1D,OAAO,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAoB5G;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAA6B,EAAe,EAAE;;IAC9E,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC;IAClC,4CAA4C,CAAC,mDAAmD;IAChG,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,MAAM,wBAAwB,GAAG,kBAAkB,CAAC,4BAA4B,CAAC,CAAC;IAClF,MAAM,2BAA2B,GAAG,WAAW,CAAC,oBAAoB,CAAC,CAAC;IACtE,MAAM,aAAa,GAAG,WAAW,CAAC,GAAS,EAAE;QAC3C,MAAM,2BAA2B,CAAC,eAAe,CAAC;YAChD,cAAc,EAAE,wBAAwB,CAAC,qBAAqB;SAC/D,CAAC,CAAC;IACL,CAAC,CAAA,EAAE,CAAC,2BAA2B,EAAE,wBAAwB,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAElF,yDAAyD;IACzD,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC7E,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IACzE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAClD,MAAA,KAAK,CAAC,oBAAoB,mCAAI,oBAAoB,CACnD,CAAC;IAEF,MAAM,OAAO,GAAG,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC9C,MAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IAEhD,2DAA2D;IAC3D,MAAM,cAAc,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;IACtD,2DAA2D;IAC3D,MAAM,uBAAuB,GAAG,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAExE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAU,MAAA,KAAK,CAAC,iBAAiB,mCAAI,KAAK,CAAC,CAAC;IAEtG,MAAM,iBAAiB,GAAG,OAAO,CAC/B,GAAG,EAAE,CAAC,CAAC;QACL,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB;QACxD,iBAAiB,EAAE,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,uBAAuB;KAC9E,CAAC,EACF,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,6BAA6B,GAA0B,EAAE,CAAC;IAEhE,MAAM,mBAAmB,GAAG;QAC1B,IAAI,EAAE;YACJ,MAAM,EAAE,OAAO;YACf,UAAU,EAAE,MAAM;YAClB,KAAK,EAAE,SAAS;SACjB;KACF,CAAC;IAEF,4CAA4C,CAAC,mDAAmD;IAChG,6BAA6B,CAAC,IAAI,CAAC;QACjC,GAAG,EAAE,eAAe;QACpB,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB;QAClE,OAAO,EAAE,GAAG,EAAE;YACZ,eAAe,CAAC,YAAY,EAAE,CAAC;QACjC,CAAC;QACD,SAAS,EAAE,EAAE,QAAQ,EAAE,4BAA4B,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;QAC1F,SAAS,EAAE;YACT,MAAM,EAAE,+BAA+B;SACxC;QACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B;KAC5C,CAAC,CAAC;IAEH,gCAAgC;IAChC,IAAI,KAAK,CAAC,mBAAmB,EAAE,CAAC;QAC9B,MAAM,2BAA2B,GAA0B,EAAE,CAAC;QAE9D,6BAA6B,CAAC,IAAI,CAAC;YACjC,GAAG,EAAE,iBAAiB;YACtB,EAAE,EAAE,uCAAuC;YAC3C,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB;YAClD,SAAS,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;YAC5E,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC;YACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,YAAY,EAAE;gBACZ,EAAE,EAAE,0BAA0B;gBAC9B,KAAK,EAAE,2BAA2B;gBAClC,YAAY,EAAE;oBACZ,qBAAqB,EAAE,sBAAsB;iBAC9C;aACF;YACD,gBAAgB,EAAE;gBAChB,QAAQ,EAAE,8BAA8B;gBACxC,MAAM,EAAE,mBAAmB;aAC5B;SACF,CAAC,CAAC;QAEH,2BAA2B,CAAC,IAAI,CAAC;YAC/B,GAAG,EAAE,mBAAmB;YACxB,EAAE,EAAE,8CAA8C;YAClD,IAAI,EAAE,wBAAwB,CAAC,OAAO;gBACpC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC;gBAChE,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC;YACnE,OAAO,EAAE,GAAG,EAAE;gBACZ,wBAAwB,CAAC,OAAO;oBAC9B,CAAC,CAAC,2BAA2B,CAAC,cAAc,EAAE;oBAC9C,CAAC,CAAC,wBAAwB,CAAC,qBAAqB,KAAK,EAAE;wBACvD,CAAC,CAAC,aAAa,EAAE;wBACjB,CAAC,CAAC,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;YACvE,CAAC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc;gBAC/E,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC;YACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B;SAC5C,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;YAClC,2BAA2B,CAAC,IAAI,CAAC;gBAC/B,GAAG,EAAE,yBAAyB;gBAC9B,EAAE,EAAE,gDAAgD;gBACpD,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB;gBACtD,OAAO,EAAE,KAAK,CAAC,uBAAuB;gBACtC,SAAS,EAAE;oBACT,QAAQ,EAAE,sBAAsB;oBAChC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;iBACpC;gBACD,SAAS,EAAE;oBACT,MAAM,EAAE,+BAA+B;iBACxC;gBACD,QAAQ,EAAE,KAAK,CAAC,2BAA2B,IAAI,CAAC,wBAAwB,CAAC,OAAO;aACjF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,sBAAsB,GAAG;QAC7B,GAAG,EAAE,qBAAqB;QAC1B,SAAS,EAAE;YACT,MAAM,EAAE,+BAA+B;SACxC;QACD,IAAI,EAAE,CAAC,iBAAiB;YACtB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B;YACxD,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,4BAA4B;QAC3D,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,CAAC,gBAAgB,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACnD,oBAAoB,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAC3C,CAAC;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,mBAAmB;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;SACpC;KACF,CAAC;IACF;;OAEG;IACH,IAAI,KAAK,CAAC,gBAAgB,IAAI,eAAe,EAAE,CAAC;QAC9C,6BAA6B,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC7D,CAAC;IACD,2DAA2D;IAC3D,MAAM,iBAAiB,GAAG;QACxB,GAAG,EAAE,cAAc;QACnB,SAAS,EAAE;YACT,MAAM,EAAE,+BAA+B;SACxC;QACD,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB;QACzD,OAAO,EAAE,GAAG,EAAE;YACZ,KAAK,CAAC,uBAAuB,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;QACnE,CAAC;QACD,SAAS,EAAE;YACT,QAAQ,EAAE,mBAAmB;YAC7B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;SACpC;KACF,CAAC;IACF;;OAEG;IACH,2DAA2D;IAC3D,IAAI,KAAK,CAAC,2BAA2B,IAAI,cAAc,IAAI,uBAAuB,EAAE,CAAC;QACnF,6BAA6B,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACxD,CAAC;IAED,IAAI,KAAK,CAAC,sCAAsC,EAAE,CAAC;QACjD,MAAM,cAAc,GAAG;YACrB,GAAG,EAAE,4BAA4B;YACjC,SAAS,EAAE;gBACT,QAAQ,EAAE,gBAAgB;gBAC1B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;YACD,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC;YACD,gBAAgB,EAAE;gBAChB,MAAM,EAAE,mBAAmB;aAC5B;YACD,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,6BAA6B;YAC9D,QAAQ,EAAE,KAAK,CAAC,2BAA2B;YAC3C,YAAY,EAAE;gBACZ,KAAK,EAAE;oBACL;wBACE,GAAG,EAAE,qBAAqB;wBAC1B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,yCAAyC;wBAC1E,QAAQ,EAAE,IAAI;wBACd,SAAS,EAAE;4BACT,MAAM,EAAE,+BAA+B;yBACxC;wBACD,SAAS,EAAE,KAAK,CAAC,oBAAoB,KAAK,oBAAoB;wBAC9D,OAAO,EAAE,GAAG,EAAE;4BACZ,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC;4BACnF,mBAAmB,CAAC,KAAK,CAAC,CAAC;wBAC7B,CAAC;wBACD,SAAS,EAAE;4BACT,QAAQ,EAAE,iCAAiC;4BAC3C,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;yBACpC;qBACF;oBACD;wBACE,GAAG,EAAE,qBAAqB;wBAC1B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC;wBACpE,QAAQ,EAAE,IAAI;wBACd,SAAS,EAAE;4BACT,MAAM,EAAE,+BAA+B;yBACxC;wBACD,SAAS,EAAE,KAAK,CAAC,oBAAoB,KAAK,SAAS;wBACnD,OAAO,EAAE,GAAG,EAAE;4BACZ,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;4BACxE,mBAAmB,CAAC,KAAK,CAAC,CAAC;wBAC7B,CAAC;wBACD,SAAS,EAAE;4BACT,QAAQ,EAAE,sBAAsB;4BAChC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;yBACpC;qBACF;oBACD;wBACE,GAAG,EAAE,4BAA4B;wBACjC,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,0CAA0C;wBAC3E,QAAQ,EAAE,IAAI;wBACd,SAAS,EAAE;4BACT,MAAM,EAAE,+BAA+B;yBACxC;wBACD,SAAS,EAAE,gBAAgB;wBAC3B,OAAO,EAAE,GAAG,EAAE;;4BACZ,IAAI,gBAAgB,KAAK,KAAK,EAAE,CAAC;gCAC/B,iBAAiB,CAAC,MAAA,KAAK,CAAC,oBAAoB,mCAAI,oBAAoB,CAAC,CAAC;gCACtE,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;gCAC/E,mBAAmB,CAAC,IAAI,CAAC,CAAC;4BAC5B,CAAC;iCAAM,CAAC;gCACN,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;gCAC7E,mBAAmB,CAAC,KAAK,CAAC,CAAC;4BAC7B,CAAC;wBACH,CAAC;wBACD,SAAS,EAAE;4BACT,QAAQ,EAAE,6BAA6B;4BACvC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;yBACpC;qBACF;iBACF;gBACD,YAAY,EAAE;oBACZ,qBAAqB,EAAE,sBAAsB;iBAC9C;aACF;SACF,CAAC;QAEF,2DAA2D;QAC3D,MAAM,aAAa,GAAG;YACpB,GAAG,EAAE,qBAAqB;YAC1B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,mCAAmC;YACpE,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC;YACD,SAAS,EAAE,KAAK,CAAC,oBAAoB,KAAK,SAAS;YACnD,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBACxE,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,sBAAsB;gBAChC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;SACF,CAAC;QACF,gDAAgD;QAChD,MAAM,kBAAkB,GAAG;YACzB,GAAG,EAAE,0BAA0B;YAC/B,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,wCAAwC;YACzE,QAAQ,EAAE,IAAI;YACd,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC;YACD,SAAS,EAAE,KAAK,CAAC,oBAAoB,KAAK,cAAc;YACxD,OAAO,EAAE,GAAG,EAAE;gBACZ,KAAK,CAAC,sBAAsB,IAAI,KAAK,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;gBAC7E,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;SACF,CAAC;QAEF,yDAAyD;QACzD,MAAM,qBAAqB,GAAG;YAC5B,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,oCAAoC;YACrE,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE,oBAAoB;gBAC9B,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,EAAE;aACpC;YACD,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,kBAAkB,KAAK,KAAK,EAAE,CAAC;oBACjC,KAAK,CAAC,sCAAsC,IAAI,KAAK,CAAC,sCAAsC,CAAC,eAAe,CAAC,CAAC;oBAC9G,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,sCAAsC,IAAI,KAAK,CAAC,sCAAsC,CAAC,YAAY,CAAC,CAAC;oBAC3G,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YACH,CAAC;SACF,CAAC;QACF,gDAAgD;QAChD,MAAA,MAAA,cAAc,CAAC,YAAY,0CAAE,KAAK,0CAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC7D,2DAA2D;QAC3D,MAAA,MAAA,cAAc,CAAC,YAAY,0CAAE,KAAK,0CAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,yDAAyD;QACzD,MAAA,MAAA,cAAc,CAAC,YAAY,0CAAE,KAAK,0CAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAChE,6BAA6B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,mBAAmB,GAAG,OAAO,CACjC,GAAG,EAAE,CACH,wCAAwC,CACtC,kCAAkC,CAAC,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,EAC3G,OAAO,KAAK,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CACpF,EACH,CAAC,KAAK,CAAC,YAAY,CAAC,CACrB,CAAC;IAEF,mBAAmB,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,kCAAkC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACjH,6BAA6B,CAAC,IAAI,iBAChC,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC,IACE,OAAO,EACV,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,mBAAmB,CAAC,WAAW,CAAC;SAC7B,KAAK,CAAC,qBAAqB,CAAC,oCAAoC,CAAC;SACjE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QACnB,6BAA6B,CAAC,IAAI,iBAChC,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC,IACE,OAAO,EACV,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAClD,6BAA6B,CAAC,IAAI,iBAChC,SAAS,EAAE;gBACT,MAAM,EAAE,+BAA+B;aACxC,IACE,OAAO,EACV,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CACL,oBAAC,UAAU,oBACL,KAAK,kBACE,mCAAmC,EAC9C,OAAO,EAAE,iBAAiB,EAC1B,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,EAC/B,SAAS,EAAE;YACT,KAAK,EAAE,6BAA6B;YACpC,YAAY,EAAE;gBACZ,qBAAqB,EAAE,sBAAsB;aAC9C;SACF,IACD,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IContextualMenuItem } from '@fluentui/react';\nimport { ControlBarButtonProps } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { _StartCaptionsButton } from '@internal/react-components';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport React from 'react';\nimport { useState } from 'react';\nimport { useMemo, useCallback } from 'react';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { buttonFlyoutIncreasedSizeStyles } from '../../CallComposite/styles/Buttons.styles';\nimport { MoreButton } from '../MoreButton';\nimport { useLocale } from '../../localization';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\nimport {\n  CUSTOM_BUTTON_OPTIONS,\n  generateCustomCallDesktopOverflowButtons,\n  onFetchCustomButtonPropsTrampoline\n} from './CustomButton';\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\nimport { _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\nimport { _preventDismissOnEvent } from '@internal/acs-ui-common';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';\n/*@conditional-compile-remove(teams-meeting-conference) */\nimport { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../../CallComposite/selectors/baseSelectors';\n\n/** @private */\nexport interface DesktopMoreButtonProps extends ControlBarButtonProps {\n  disableButtonsForHoldScreen?: boolean;\n  onClickShowDialpad?: () => void;\n  isCaptionsSupported?: boolean;\n  callControls?: boolean | CommonCallControlOptions;\n  onCaptionsSettingsClick?: () => void;\n  onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;\n  onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n  userSetGalleryLayout?: VideoGalleryLayout;\n  onSetDialpadPage?: () => void;\n  dtmfDialerPresent?: boolean;\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  teamsMeetingPhoneCallEnable?: boolean;\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  onMeetingPhoneInfoClick?: () => void;\n}\n\n/**\n *\n * @private\n */\nexport const DesktopMoreButton = (props: DesktopMoreButtonProps): JSX.Element => {\n  const localeStrings = useLocale();\n  /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n  const holdButtonProps = usePropsFor(HoldButton);\n  const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);\n  const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n  const startCaptions = useCallback(async () => {\n    await startCaptionsButtonHandlers.onStartCaptions({\n      spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage\n    });\n  }, [startCaptionsButtonHandlers, startCaptionsButtonProps.currentSpokenLanguage]);\n\n  /* @conditional-compile-remove(overflow-top-composite) */\n  const [galleryPositionTop, setGalleryPositionTop] = useState<boolean>(false);\n  const [focusedContentOn, setFocusedContentOn] = useState<boolean>(false);\n  const [previousLayout, setPreviousLayout] = useState<VideoGalleryLayout>(\n    props.userSetGalleryLayout ?? 'floatingLocalVideo'\n  );\n\n  const callees = useSelector(getTargetCallees);\n  const allowDtmfDialer = showDtmfDialer(callees);\n\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const isTeamsMeeting = useSelector(getIsTeamsMeeting);\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const teamsMeetingCoordinates = useSelector(getTeamsMeetingCoordinates);\n\n  const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);\n\n  const moreButtonStrings = useMemo(\n    () => ({\n      label: localeStrings.strings.call.moreButtonCallingLabel,\n      tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip\n    }),\n    [localeStrings]\n  );\n\n  const moreButtonContextualMenuItems: IContextualMenuItem[] = [];\n\n  const menuSubIconStyleSet = {\n    root: {\n      height: 'unset',\n      lineHeight: '100%',\n      width: '1.25rem'\n    }\n  };\n\n  /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n  moreButtonContextualMenuItems.push({\n    key: 'holdButtonKey',\n    text: localeStrings.component.strings.holdButton.tooltipOffContent,\n    onClick: () => {\n      holdButtonProps.onToggleHold();\n    },\n    iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n    itemProps: {\n      styles: buttonFlyoutIncreasedSizeStyles\n    },\n    disabled: props.disableButtonsForHoldScreen\n  });\n\n  // is captions feature is active\n  if (props.isCaptionsSupported) {\n    const captionsContextualMenuItems: IContextualMenuItem[] = [];\n\n    moreButtonContextualMenuItems.push({\n      key: 'liveCaptionsKey',\n      id: 'common-call-composite-captions-button',\n      text: localeStrings.strings.call.liveCaptionsLabel,\n      iconProps: { iconName: 'CaptionsIcon', styles: { root: { lineHeight: 0 } } },\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      disabled: props.disableButtonsForHoldScreen,\n      subMenuProps: {\n        id: 'captions-contextual-menu',\n        items: captionsContextualMenuItems,\n        calloutProps: {\n          preventDismissOnEvent: _preventDismissOnEvent\n        }\n      },\n      submenuIconProps: {\n        iconName: 'HorizontalGalleryRightButton',\n        styles: menuSubIconStyleSet\n      }\n    });\n\n    captionsContextualMenuItems.push({\n      key: 'ToggleCaptionsKey',\n      id: 'common-call-composite-captions-toggle-button',\n      text: startCaptionsButtonProps.checked\n        ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n        : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n      onClick: () => {\n        startCaptionsButtonProps.checked\n          ? startCaptionsButtonHandlers.onStopCaptions()\n          : startCaptionsButtonProps.currentSpokenLanguage !== ''\n          ? startCaptions()\n          : props.onCaptionsSettingsClick && props.onCaptionsSettingsClick();\n      },\n      iconProps: {\n        iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',\n        styles: { root: { lineHeight: 0 } }\n      },\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      disabled: props.disableButtonsForHoldScreen\n    });\n\n    if (props.onCaptionsSettingsClick) {\n      captionsContextualMenuItems.push({\n        key: 'openCaptionsSettingsKey',\n        id: 'common-call-composite-captions-settings-button',\n        text: localeStrings.strings.call.captionsSettingsLabel,\n        onClick: props.onCaptionsSettingsClick,\n        iconProps: {\n          iconName: 'CaptionsSettingsIcon',\n          styles: { root: { lineHeight: 0 } }\n        },\n        itemProps: {\n          styles: buttonFlyoutIncreasedSizeStyles\n        },\n        disabled: props.disableButtonsForHoldScreen || !startCaptionsButtonProps.checked\n      });\n    }\n  }\n\n  const dtmfDialerScreenOption = {\n    key: 'dtmfDialerScreenKey',\n    itemProps: {\n      styles: buttonFlyoutIncreasedSizeStyles\n    },\n    text: !dtmfDialerChecked\n      ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn\n      : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,\n    onClick: () => {\n      props.onSetDialpadPage && props.onSetDialpadPage();\n      setDtmfDialerChecked(!dtmfDialerChecked);\n    },\n    iconProps: {\n      iconName: 'DtmfDialpadButton',\n      styles: { root: { lineHeight: 0 } }\n    }\n  };\n  /**\n   * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n   */\n  if (props.onSetDialpadPage && allowDtmfDialer) {\n    moreButtonContextualMenuItems.push(dtmfDialerScreenOption);\n  }\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const joinByPhoneOption = {\n    key: 'phoneCallKey',\n    itemProps: {\n      styles: buttonFlyoutIncreasedSizeStyles\n    },\n    text: localeStrings.strings.call.phoneCallMoreButtonLabel,\n    onClick: () => {\n      props.onMeetingPhoneInfoClick && props.onMeetingPhoneInfoClick();\n    },\n    iconProps: {\n      iconName: 'PhoneNumberButton',\n      styles: { root: { lineHeight: 0 } }\n    }\n  };\n  /**\n   * Only render the phone call button if meeting conordinates are present\n   */\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  if (props.teamsMeetingPhoneCallEnable && isTeamsMeeting && teamsMeetingCoordinates) {\n    moreButtonContextualMenuItems.push(joinByPhoneOption);\n  }\n\n  if (props.onUserSetOverflowGalleryPositionChange) {\n    const galleryOptions = {\n      key: 'overflowGalleryPositionKey',\n      iconProps: {\n        iconName: 'GalleryOptions',\n        styles: { root: { lineHeight: 0 } }\n      },\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      submenuIconProps: {\n        styles: menuSubIconStyleSet\n      },\n      text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n      disabled: props.disableButtonsForHoldScreen,\n      subMenuProps: {\n        items: [\n          {\n            key: 'dynamicSelectionKey',\n            text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n            canCheck: true,\n            itemProps: {\n              styles: buttonFlyoutIncreasedSizeStyles\n            },\n            isChecked: props.userSetGalleryLayout === 'floatingLocalVideo',\n            onClick: () => {\n              props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n              setFocusedContentOn(false);\n            },\n            iconProps: {\n              iconName: 'FloatingLocalVideoGalleryLayout',\n              styles: { root: { lineHeight: 0 } }\n            }\n          },\n          {\n            key: 'speakerSelectionKey',\n            text: localeStrings.strings.call.moreButtonGallerySpeakerLayoutLabel,\n            canCheck: true,\n            itemProps: {\n              styles: buttonFlyoutIncreasedSizeStyles\n            },\n            isChecked: props.userSetGalleryLayout === 'speaker',\n            onClick: () => {\n              props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('speaker');\n              setFocusedContentOn(false);\n            },\n            iconProps: {\n              iconName: 'SpeakerGalleryLayout',\n              styles: { root: { lineHeight: 0 } }\n            }\n          },\n          {\n            key: 'focusedContentSelectionKey',\n            text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n            canCheck: true,\n            itemProps: {\n              styles: buttonFlyoutIncreasedSizeStyles\n            },\n            isChecked: focusedContentOn,\n            onClick: () => {\n              if (focusedContentOn === false) {\n                setPreviousLayout(props.userSetGalleryLayout ?? 'floatingLocalVideo');\n                props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n                setFocusedContentOn(true);\n              } else {\n                props.onUserSetGalleryLayout && props.onUserSetGalleryLayout(previousLayout);\n                setFocusedContentOn(false);\n              }\n            },\n            iconProps: {\n              iconName: 'FocusedContentGalleryLayout',\n              styles: { root: { lineHeight: 0 } }\n            }\n          }\n        ],\n        calloutProps: {\n          preventDismissOnEvent: _preventDismissOnEvent\n        }\n      }\n    };\n\n    /* @conditional-compile-remove(gallery-layout-composite) */\n    const galleryOption = {\n      key: 'defaultSelectionKey',\n      text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,\n      canCheck: true,\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      isChecked: props.userSetGalleryLayout === 'default',\n      onClick: () => {\n        props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');\n        setFocusedContentOn(false);\n      },\n      iconProps: {\n        iconName: 'DefaultGalleryLayout',\n        styles: { root: { lineHeight: 0 } }\n      }\n    };\n    /* @conditional-compile-remove(large-gallery) */\n    const largeGalleryOption = {\n      key: 'largeGallerySelectionKey',\n      text: localeStrings.strings.call.moreButtonLargeGalleryDefaultLayoutLabel,\n      canCheck: true,\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      isChecked: props.userSetGalleryLayout === 'largeGallery',\n      onClick: () => {\n        props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('largeGallery');\n        setFocusedContentOn(false);\n      },\n      iconProps: {\n        iconName: 'LargeGalleryLayout',\n        styles: { root: { lineHeight: 0 } }\n      }\n    };\n\n    /* @conditional-compile-remove(overflow-top-composite) */\n    const overflowGalleryOption = {\n      key: 'topKey',\n      text: localeStrings.strings.call.moreButtonGalleryPositionToggleLabel,\n      canCheck: true,\n      topDivider: true,\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      iconProps: {\n        iconName: 'OverflowGalleryTop',\n        styles: { root: { lineHeight: 0 } }\n      },\n      isChecked: galleryPositionTop,\n      onClick: () => {\n        if (galleryPositionTop === false) {\n          props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('horizontalTop');\n          setGalleryPositionTop(true);\n        } else {\n          props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('Responsive');\n          setGalleryPositionTop(false);\n        }\n      }\n    };\n    /* @conditional-compile-remove(large-gallery) */\n    galleryOptions.subMenuProps?.items?.push(largeGalleryOption);\n    /* @conditional-compile-remove(gallery-layout-composite) */\n    galleryOptions.subMenuProps?.items?.push(galleryOption);\n    /* @conditional-compile-remove(overflow-top-composite) */\n    galleryOptions.subMenuProps?.items?.push(overflowGalleryOption);\n    moreButtonContextualMenuItems.push(galleryOptions);\n  }\n\n  const customDrawerButtons = useMemo(\n    () =>\n      generateCustomCallDesktopOverflowButtons(\n        onFetchCustomButtonPropsTrampoline(typeof props.callControls === 'object' ? props.callControls : undefined),\n        typeof props.callControls === 'object' ? props.callControls.displayType : undefined\n      ),\n    [props.callControls]\n  );\n\n  customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).forEach((element) => {\n    moreButtonContextualMenuItems.push({\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      ...element\n    });\n  });\n\n  customDrawerButtons['secondary']\n    .slice(CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS)\n    .forEach((element) => {\n      moreButtonContextualMenuItems.push({\n        itemProps: {\n          styles: buttonFlyoutIncreasedSizeStyles\n        },\n        ...element\n      });\n    });\n\n  customDrawerButtons['overflow'].forEach((element) => {\n    moreButtonContextualMenuItems.push({\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      ...element\n    });\n  });\n\n  return (\n    <MoreButton\n      {...props}\n      data-ui-id=\"common-call-composite-more-button\"\n      strings={moreButtonStrings}\n      menuIconProps={{ hidden: true }}\n      menuProps={{\n        items: moreButtonContextualMenuItems,\n        calloutProps: {\n          preventDismissOnEvent: _preventDismissOnEvent\n        }\n      }}\n    />\n  );\n};\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"DesktopMoreButton.js","sourceRoot":"","sources":["../../../../../../../../react-composites/src/composites/common/ControlBar/DesktopMoreButton.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { IContextualMenuItem } from '@fluentui/react';\nimport { ControlBarButtonProps } from '@internal/react-components';\nimport { VideoGalleryLayout } from '@internal/react-components';\nimport { _StartCaptionsButton } from '@internal/react-components';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { HoldButton } from '@internal/react-components';\nimport React from 'react';\nimport { useState } from 'react';\nimport { useMemo, useCallback } from 'react';\n/*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\nimport { usePropsFor } from '../../CallComposite/hooks/usePropsFor';\nimport { buttonFlyoutIncreasedSizeStyles } from '../../CallComposite/styles/Buttons.styles';\nimport { MoreButton } from '../MoreButton';\nimport { useLocale } from '../../localization';\nimport { CommonCallControlOptions } from '../types/CommonCallControlOptions';\nimport {\n  CUSTOM_BUTTON_OPTIONS,\n  generateCustomCallDesktopOverflowButtons,\n  onFetchCustomButtonPropsTrampoline\n} from './CustomButton';\nimport { useHandlers } from '../../CallComposite/hooks/useHandlers';\nimport { _startCaptionsButtonSelector } from '@internal/calling-component-bindings';\nimport { useAdaptedSelector } from '../../CallComposite/hooks/useAdaptedSelector';\nimport { _preventDismissOnEvent } from '@internal/acs-ui-common';\nimport { showDtmfDialer } from '../../CallComposite/utils/MediaGalleryUtils';\nimport { useSelector } from '../../CallComposite/hooks/useSelector';\nimport { getTargetCallees } from '../../CallComposite/selectors/baseSelectors';\n/*@conditional-compile-remove(teams-meeting-conference) */\nimport { getTeamsMeetingCoordinates, getIsTeamsMeeting } from '../../CallComposite/selectors/baseSelectors';\n\n/** @private */\nexport interface DesktopMoreButtonProps extends ControlBarButtonProps {\n  disableButtonsForHoldScreen?: boolean;\n  onClickShowDialpad?: () => void;\n  isCaptionsSupported?: boolean;\n  callControls?: boolean | CommonCallControlOptions;\n  onCaptionsSettingsClick?: () => void;\n  onUserSetOverflowGalleryPositionChange?: (position: 'Responsive' | 'horizontalTop') => void;\n  onUserSetGalleryLayout?: (layout: VideoGalleryLayout) => void;\n  userSetGalleryLayout?: VideoGalleryLayout;\n  onSetDialpadPage?: () => void;\n  dtmfDialerPresent?: boolean;\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  teamsMeetingPhoneCallEnable?: boolean;\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  onMeetingPhoneInfoClick?: () => void;\n}\n\n/**\n *\n * @private\n */\nexport const DesktopMoreButton = (props: DesktopMoreButtonProps): JSX.Element => {\n  const localeStrings = useLocale();\n  /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n  const holdButtonProps = usePropsFor(HoldButton);\n  const startCaptionsButtonProps = useAdaptedSelector(_startCaptionsButtonSelector);\n  const startCaptionsButtonHandlers = useHandlers(_StartCaptionsButton);\n  const startCaptions = useCallback(async () => {\n    await startCaptionsButtonHandlers.onStartCaptions({\n      spokenLanguage: startCaptionsButtonProps.currentSpokenLanguage\n    });\n  }, [startCaptionsButtonHandlers, startCaptionsButtonProps.currentSpokenLanguage]);\n\n  /* @conditional-compile-remove(overflow-top-composite) */\n  const [galleryPositionTop, setGalleryPositionTop] = useState<boolean>(false);\n  const [focusedContentOn, setFocusedContentOn] = useState<boolean>(false);\n  const [previousLayout, setPreviousLayout] = useState<VideoGalleryLayout>(\n    props.userSetGalleryLayout ?? 'floatingLocalVideo'\n  );\n\n  const callees = useSelector(getTargetCallees);\n  const allowDtmfDialer = showDtmfDialer(callees);\n\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const isTeamsMeeting = useSelector(getIsTeamsMeeting);\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const teamsMeetingCoordinates = useSelector(getTeamsMeetingCoordinates);\n\n  const [dtmfDialerChecked, setDtmfDialerChecked] = useState<boolean>(props.dtmfDialerPresent ?? false);\n\n  const moreButtonStrings = useMemo(\n    () => ({\n      label: localeStrings.strings.call.moreButtonCallingLabel,\n      tooltipOffContent: localeStrings.strings.callWithChat.moreDrawerButtonTooltip\n    }),\n    [localeStrings]\n  );\n\n  const moreButtonContextualMenuItems: IContextualMenuItem[] = [];\n\n  const menuSubIconStyleSet = {\n    root: {\n      height: 'unset',\n      lineHeight: '100%',\n      width: '1.25rem'\n    }\n  };\n\n  /*@conditional-compile-remove(PSTN-calls) */ /* @conditional-compile-remove(one-to-n-calling) */\n  moreButtonContextualMenuItems.push({\n    key: 'holdButtonKey',\n    text: localeStrings.component.strings.holdButton.tooltipOffContent,\n    onClick: () => {\n      holdButtonProps.onToggleHold();\n    },\n    iconProps: { iconName: 'HoldCallContextualMenuItem', styles: { root: { lineHeight: 0 } } },\n    itemProps: {\n      styles: buttonFlyoutIncreasedSizeStyles\n    },\n    disabled: props.disableButtonsForHoldScreen\n  });\n\n  // is captions feature is active\n  if (props.isCaptionsSupported) {\n    const captionsContextualMenuItems: IContextualMenuItem[] = [];\n\n    moreButtonContextualMenuItems.push({\n      key: 'liveCaptionsKey',\n      id: 'common-call-composite-captions-button',\n      text: localeStrings.strings.call.liveCaptionsLabel,\n      iconProps: { iconName: 'CaptionsIcon', styles: { root: { lineHeight: 0 } } },\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      disabled: props.disableButtonsForHoldScreen,\n      subMenuProps: {\n        id: 'captions-contextual-menu',\n        items: captionsContextualMenuItems,\n        calloutProps: {\n          preventDismissOnEvent: _preventDismissOnEvent\n        }\n      },\n      submenuIconProps: {\n        iconName: 'HorizontalGalleryRightButton',\n        styles: menuSubIconStyleSet\n      }\n    });\n\n    captionsContextualMenuItems.push({\n      key: 'ToggleCaptionsKey',\n      id: 'common-call-composite-captions-toggle-button',\n      text: startCaptionsButtonProps.checked\n        ? localeStrings.strings.call.startCaptionsButtonTooltipOnContent\n        : localeStrings.strings.call.startCaptionsButtonTooltipOffContent,\n      onClick: () => {\n        startCaptionsButtonProps.checked\n          ? startCaptionsButtonHandlers.onStopCaptions()\n          : startCaptionsButtonProps.currentSpokenLanguage !== ''\n            ? startCaptions()\n            : props.onCaptionsSettingsClick && props.onCaptionsSettingsClick();\n      },\n      iconProps: {\n        iconName: startCaptionsButtonProps.checked ? 'CaptionsOffIcon' : 'CaptionsIcon',\n        styles: { root: { lineHeight: 0 } }\n      },\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      disabled: props.disableButtonsForHoldScreen\n    });\n\n    if (props.onCaptionsSettingsClick) {\n      captionsContextualMenuItems.push({\n        key: 'openCaptionsSettingsKey',\n        id: 'common-call-composite-captions-settings-button',\n        text: localeStrings.strings.call.captionsSettingsLabel,\n        onClick: props.onCaptionsSettingsClick,\n        iconProps: {\n          iconName: 'CaptionsSettingsIcon',\n          styles: { root: { lineHeight: 0 } }\n        },\n        itemProps: {\n          styles: buttonFlyoutIncreasedSizeStyles\n        },\n        disabled: props.disableButtonsForHoldScreen || !startCaptionsButtonProps.checked\n      });\n    }\n  }\n\n  const dtmfDialerScreenOption = {\n    key: 'dtmfDialerScreenKey',\n    itemProps: {\n      styles: buttonFlyoutIncreasedSizeStyles\n    },\n    text: !dtmfDialerChecked\n      ? localeStrings.strings.call.dtmfDialerMoreButtonLabelOn\n      : localeStrings.strings.call.dtmfDialerMoreButtonLabelOff,\n    onClick: () => {\n      props.onSetDialpadPage && props.onSetDialpadPage();\n      setDtmfDialerChecked(!dtmfDialerChecked);\n    },\n    iconProps: {\n      iconName: 'DtmfDialpadButton',\n      styles: { root: { lineHeight: 0 } }\n    }\n  };\n  /**\n   * Only render the dtmf dialer if the dialpad for PSTN calls is not present\n   */\n  if (props.onSetDialpadPage && allowDtmfDialer) {\n    moreButtonContextualMenuItems.push(dtmfDialerScreenOption);\n  }\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  const joinByPhoneOption = {\n    key: 'phoneCallKey',\n    itemProps: {\n      styles: buttonFlyoutIncreasedSizeStyles\n    },\n    text: localeStrings.strings.call.phoneCallMoreButtonLabel,\n    onClick: () => {\n      props.onMeetingPhoneInfoClick && props.onMeetingPhoneInfoClick();\n    },\n    iconProps: {\n      iconName: 'PhoneNumberButton',\n      styles: { root: { lineHeight: 0 } }\n    }\n  };\n  /**\n   * Only render the phone call button if meeting conordinates are present\n   */\n  /* @conditional-compile-remove(teams-meeting-conference) */\n  if (props.teamsMeetingPhoneCallEnable && isTeamsMeeting && teamsMeetingCoordinates) {\n    moreButtonContextualMenuItems.push(joinByPhoneOption);\n  }\n\n  if (props.onUserSetOverflowGalleryPositionChange) {\n    const galleryOptions = {\n      key: 'overflowGalleryPositionKey',\n      iconProps: {\n        iconName: 'GalleryOptions',\n        styles: { root: { lineHeight: 0 } }\n      },\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      submenuIconProps: {\n        styles: menuSubIconStyleSet\n      },\n      text: localeStrings.strings.call.moreButtonGalleryControlLabel,\n      disabled: props.disableButtonsForHoldScreen,\n      subMenuProps: {\n        items: [\n          {\n            key: 'dynamicSelectionKey',\n            text: localeStrings.strings.call.moreButtonGalleryFloatingLocalLayoutLabel,\n            canCheck: true,\n            itemProps: {\n              styles: buttonFlyoutIncreasedSizeStyles\n            },\n            isChecked: props.userSetGalleryLayout === 'floatingLocalVideo',\n            onClick: () => {\n              props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('floatingLocalVideo');\n              setFocusedContentOn(false);\n            },\n            iconProps: {\n              iconName: 'FloatingLocalVideoGalleryLayout',\n              styles: { root: { lineHeight: 0 } }\n            }\n          },\n          {\n            key: 'speakerSelectionKey',\n            text: localeStrings.strings.call.moreButtonGallerySpeakerLayoutLabel,\n            canCheck: true,\n            itemProps: {\n              styles: buttonFlyoutIncreasedSizeStyles\n            },\n            isChecked: props.userSetGalleryLayout === 'speaker',\n            onClick: () => {\n              props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('speaker');\n              setFocusedContentOn(false);\n            },\n            iconProps: {\n              iconName: 'SpeakerGalleryLayout',\n              styles: { root: { lineHeight: 0 } }\n            }\n          },\n          {\n            key: 'focusedContentSelectionKey',\n            text: localeStrings.strings.call.moreButtonGalleryFocusedContentLayoutLabel,\n            canCheck: true,\n            itemProps: {\n              styles: buttonFlyoutIncreasedSizeStyles\n            },\n            isChecked: focusedContentOn,\n            onClick: () => {\n              if (focusedContentOn === false) {\n                setPreviousLayout(props.userSetGalleryLayout ?? 'floatingLocalVideo');\n                props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('focusedContent');\n                setFocusedContentOn(true);\n              } else {\n                props.onUserSetGalleryLayout && props.onUserSetGalleryLayout(previousLayout);\n                setFocusedContentOn(false);\n              }\n            },\n            iconProps: {\n              iconName: 'FocusedContentGalleryLayout',\n              styles: { root: { lineHeight: 0 } }\n            }\n          }\n        ],\n        calloutProps: {\n          preventDismissOnEvent: _preventDismissOnEvent\n        }\n      }\n    };\n\n    /* @conditional-compile-remove(gallery-layout-composite) */\n    const galleryOption = {\n      key: 'defaultSelectionKey',\n      text: localeStrings.strings.call.moreButtonGalleryDefaultLayoutLabel,\n      canCheck: true,\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      isChecked: props.userSetGalleryLayout === 'default',\n      onClick: () => {\n        props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('default');\n        setFocusedContentOn(false);\n      },\n      iconProps: {\n        iconName: 'DefaultGalleryLayout',\n        styles: { root: { lineHeight: 0 } }\n      }\n    };\n    /* @conditional-compile-remove(large-gallery) */\n    const largeGalleryOption = {\n      key: 'largeGallerySelectionKey',\n      text: localeStrings.strings.call.moreButtonLargeGalleryDefaultLayoutLabel,\n      canCheck: true,\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      isChecked: props.userSetGalleryLayout === 'largeGallery',\n      onClick: () => {\n        props.onUserSetGalleryLayout && props.onUserSetGalleryLayout('largeGallery');\n        setFocusedContentOn(false);\n      },\n      iconProps: {\n        iconName: 'LargeGalleryLayout',\n        styles: { root: { lineHeight: 0 } }\n      }\n    };\n\n    /* @conditional-compile-remove(overflow-top-composite) */\n    const overflowGalleryOption = {\n      key: 'topKey',\n      text: localeStrings.strings.call.moreButtonGalleryPositionToggleLabel,\n      canCheck: true,\n      topDivider: true,\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      iconProps: {\n        iconName: 'OverflowGalleryTop',\n        styles: { root: { lineHeight: 0 } }\n      },\n      isChecked: galleryPositionTop,\n      onClick: () => {\n        if (galleryPositionTop === false) {\n          props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('horizontalTop');\n          setGalleryPositionTop(true);\n        } else {\n          props.onUserSetOverflowGalleryPositionChange && props.onUserSetOverflowGalleryPositionChange('Responsive');\n          setGalleryPositionTop(false);\n        }\n      }\n    };\n    /* @conditional-compile-remove(large-gallery) */\n    galleryOptions.subMenuProps?.items?.push(largeGalleryOption);\n    /* @conditional-compile-remove(gallery-layout-composite) */\n    galleryOptions.subMenuProps?.items?.push(galleryOption);\n    /* @conditional-compile-remove(overflow-top-composite) */\n    galleryOptions.subMenuProps?.items?.push(overflowGalleryOption);\n    moreButtonContextualMenuItems.push(galleryOptions);\n  }\n\n  const customDrawerButtons = useMemo(\n    () =>\n      generateCustomCallDesktopOverflowButtons(\n        onFetchCustomButtonPropsTrampoline(typeof props.callControls === 'object' ? props.callControls : undefined),\n        typeof props.callControls === 'object' ? props.callControls.displayType : undefined\n      ),\n    [props.callControls]\n  );\n\n  customDrawerButtons['primary'].slice(CUSTOM_BUTTON_OPTIONS.MAX_PRIMARY_DESKTOP_CUSTOM_BUTTONS).forEach((element) => {\n    moreButtonContextualMenuItems.push({\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      ...element\n    });\n  });\n\n  customDrawerButtons['secondary']\n    .slice(CUSTOM_BUTTON_OPTIONS.MAX_SECONDARY_DESKTOP_CUSTOM_BUTTONS)\n    .forEach((element) => {\n      moreButtonContextualMenuItems.push({\n        itemProps: {\n          styles: buttonFlyoutIncreasedSizeStyles\n        },\n        ...element\n      });\n    });\n\n  customDrawerButtons['overflow'].forEach((element) => {\n    moreButtonContextualMenuItems.push({\n      itemProps: {\n        styles: buttonFlyoutIncreasedSizeStyles\n      },\n      ...element\n    });\n  });\n\n  return (\n    <MoreButton\n      {...props}\n      data-ui-id=\"common-call-composite-more-button\"\n      strings={moreButtonStrings}\n      menuIconProps={{ hidden: true }}\n      menuProps={{\n        items: moreButtonContextualMenuItems,\n        calloutProps: {\n          preventDismissOnEvent: _preventDismissOnEvent\n        }\n      }}\n    />\n  );\n};\n"]}
         
     | 
| 
         @@ -34,6 +34,12 @@ export const MeetingPhoneInfoPaneContent = (props) => { 
     | 
|
| 
       34 
34 
     | 
    
         
             
                                            React.createElement(Text, { className: phoneInfoLabelStyle }, localeStrings.meetingConferencePhoneInfoModalDialIn)))),
         
     | 
| 
       35 
35 
     | 
    
         
             
                                React.createElement(Stack.Item, { className: phoneInfoStep }, conferencePhoneInfoList.map((phoneNumber, index) => (React.createElement(Stack.Item, { key: index },
         
     | 
| 
       36 
36 
     | 
    
         
             
                                    React.createElement(Link, { className: phoneInfoTextStyle, href: formatPhoneNumberLink(phoneNumber) }, formatPhoneNumber(phoneNumber.phoneNumber)),
         
     | 
| 
      
 37 
     | 
    
         
            +
                                    React.createElement(Text, { className: phoneInfoTextStyle },
         
     | 
| 
      
 38 
     | 
    
         
            +
                                        ' ',
         
     | 
| 
      
 39 
     | 
    
         
            +
                                        phoneNumber.isTollFree
         
     | 
| 
      
 40 
     | 
    
         
            +
                                            ? localeStrings.meetingConferencePhoneInfoModalTollFree
         
     | 
| 
      
 41 
     | 
    
         
            +
                                            : localeStrings.meetingConferencePhoneInfoModalToll),
         
     | 
| 
      
 42 
     | 
    
         
            +
                                    React.createElement("br", null),
         
     | 
| 
       37 
43 
     | 
    
         
             
                                    React.createElement(Text, { className: phoneInfoTextStyle },
         
     | 
| 
       38 
44 
     | 
    
         
             
                                        " ",
         
     | 
| 
       39 
45 
     | 
    
         
             
                                        formatPhoneNumberInfo(phoneNumber, localeStrings))))))),
         
     | 
    
        package/dist/dist-esm/react-composites/src/composites/common/MeetingPhoneInfoPaneContent.js.map
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"MeetingPhoneInfoPaneContent.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/MeetingPhoneInfoPaneContent.tsx"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,2DAA2D;AAC3D,iDAAiD;AACjD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAGpE,2DAA2D;AAC3D,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,2DAA2D;AAC3D,OAAO,EAEL,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACtB,yCAAmC;AACpC,2DAA2D;AAC3D,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,wBAAwB,EACxB,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,2CAA2C,CAAC;AACnD,2DAA2D;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,2DAA2D;AAC3D;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAG3C,EAAe,EAAE;IAChB,MAAM,EAAE,uBAAuB,EAAE,GAAG,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,aAAa,GAAG,SAAS,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,0BAA0B,CAAC;IAE/E,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACrB,OAAO,CACL,oBAAC,KAAK,IACJ,YAAY,QACZ,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,wBAAwB,gBACrB,yBAAyB;YAEnC,CAAC,uBAAuB,KAAK,SAAS,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,CAClF,oBAAC,KAAK,IAAC,UAAU;gBACf,oBAAC,IAAI,IAAC,SAAS,EAAE,kBAAkB,IAAG,aAAa,CAAC,+CAA+C,CAAQ,CACrG,CACT;YACA,uBAAuB,IAAI,uBAAuB,CAAC,MAAM,GAAG,CAAC,IAAI,CAChE,oBAAC,KAAK;gBACJ,oBAAC,KAAK,IAAC,UAAU,QAAC,eAAe,EAAC,eAAe,EAAC,SAAS,EAAE,wBAAwB;oBACnF,oBAAC,KAAK,CAAC,IAAI;wBACT,oBAAC,KAAK,IAAC,UAAU,QAAC,SAAS,EAAE,aAAa;4BACxC,oBAAC,KAAK,CAAC,IAAI,IAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC;gCACzC,oBAAC,KAAK,IAAC,aAAa,EAAC,QAAQ,EAAC,eAAe,EAAC,QAAQ;oCACpD,oBAAC,IAAI,IAAC,QAAQ,EAAC,mBAAmB,EAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAI,CACrE,CACG;4BACb,oBAAC,KAAK,CAAC,IAAI;gCACT,oBAAC,IAAI,IAAC,SAAS,EAAE,mBAAmB,IAAG,aAAa,CAAC,qCAAqC,CAAQ,CACvF,CACP,CACG;oBACb,oBAAC,KAAK,CAAC,IAAI,IAAC,SAAS,EAAE,aAAa,IACjC,uBAAuB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CACnD,oBAAC,KAAK,CAAC,IAAI,IAAC,GAAG,EAAE,KAAK;wBACpB,oBAAC,IAAI,IAAC,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,qBAAqB,CAAC,WAAW,CAAC,IAC1E,iBAAiB,CAAC,WAAW,CAAC,WAAW,CAAC,CACtC;wBACP,oBAAC,IAAI,IAAC,SAAS,EAAE,kBAAkB;;4BAAI,qBAAqB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAQ,CACrF,CACd,CAAC,CACS,CACP;gBACR,oBAAC,KAAK,IACJ,UAAU,QACV,eAAe,EAAC,eAAe,EAC/B,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,wBAAwB;oBAEnC,oBAAC,KAAK,CAAC,IAAI;wBACT,oBAAC,KAAK,IAAC,UAAU;4BACf,oBAAC,KAAK,CAAC,IAAI,IAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC;gCACzC,oBAAC,IAAI,IAAC,QAAQ,EAAC,mBAAmB,EAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAI,CAChE;4BACb,oBAAC,KAAK,CAAC,IAAI;gCACT,oBAAC,IAAI,IAAC,SAAS,EAAE,mBAAmB,IACjC,aAAa,CAAC,wCAAwC,CAClD,CACI,CACP,CACG;oBACb,oBAAC,IAAI,IAAC,SAAS,EAAE,kBAAkB;wBAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC,YAAY;4BAAS,CAChF;gBACR,oBAAC,KAAK,IACJ,UAAU,QACV,eAAe,EAAC,eAAe,EAC/B,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAE,wBAAwB;oBAEnC,oBAAC,KAAK,IAAC,UAAU;wBACf,oBAAC,KAAK,CAAC,IAAI,IAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC;4BACzC,oBAAC,IAAI,IAAC,QAAQ,EAAC,eAAe,EAAC,SAAS,EAAE,kBAAkB,CAAC,KAAK,CAAC,GAAI,CAC5D;wBACb,oBAAC,KAAK,CAAC,IAAI;4BACT,oBAAC,IAAI,IAAC,SAAS,EAAE,mBAAmB,IAAG,aAAa,CAAC,mCAAmC,CAAQ,CACrF,CACP,CACF,CACF,CACT,CACK,CACT,CAAC;IACJ,CAAC;IAED,OAAO,CACL,oBAAC,KAAK,IACJ,YAAY,QACZ,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,wBAAwB,gBACrB,yBAAyB,GAC7B,CACV,CAAC;AACJ,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n// eslint-disable-next-line no-restricted-imports\nimport { Stack, Text, useTheme, Icon, Link } from '@fluentui/react';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { _DrawerMenuItemProps } from '@internal/react-components';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport React from 'react';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport {\n  ConferencePhoneInfo,\n  formatPhoneNumberInfo,\n  formatPhoneNumber,\n  formatPhoneNumberLink\n} from '@internal/react-components';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport {\n  phoneInfoTextStyle,\n  phoneInfoIcon,\n  phoneInfoInstructionLine,\n  phoneInfoStep,\n  phoneInfoIconStyle,\n  phoneInfoLabelStyle,\n  phoneInfoContainerTokens,\n  phoneInfoContainerStyle\n} from './styles/TeamsMeetingConferenceInfo.style';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { useLocale } from '../localization';\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n/**\n * @private\n */\nexport const MeetingPhoneInfoPaneContent = (props: {\n  mobileView?: boolean;\n  conferencePhoneInfoList?: ConferencePhoneInfo[];\n}): JSX.Element => {\n  const { conferencePhoneInfoList } = props;\n  const theme = useTheme();\n  const localeStrings = useLocale().component.strings.MeetingConferencePhoneInfo;\n\n  if (props.mobileView) {\n    return (\n      <Stack\n        verticalFill\n        styles={phoneInfoContainerStyle}\n        tokens={phoneInfoContainerTokens}\n        data-ui-id=\"phone-info-pane-content\"\n      >\n        {(conferencePhoneInfoList === undefined || conferencePhoneInfoList.length === 0) && (\n          <Stack horizontal>\n            <Text className={phoneInfoTextStyle}>{localeStrings.meetingConferencePhoneInfoModalNoPhoneAvailable}</Text>\n          </Stack>\n        )}\n        {conferencePhoneInfoList && conferencePhoneInfoList.length > 0 && (\n          <Stack>\n            <Stack horizontal horizontalAlign=\"space-between\" className={phoneInfoInstructionLine}>\n              <Stack.Item>\n                <Stack horizontal className={phoneInfoStep}>\n                  <Stack.Item className={phoneInfoIcon(theme)}>\n                    <Stack verticalAlign=\"center\" horizontalAlign=\"center\">\n                      <Icon iconName=\"PhoneNumberButton\" className={phoneInfoIconStyle(theme)} />\n                    </Stack>\n                  </Stack.Item>\n                  <Stack.Item>\n                    <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalDialIn}</Text>\n                  </Stack.Item>\n                </Stack>\n              </Stack.Item>\n              <Stack.Item className={phoneInfoStep}>\n                {conferencePhoneInfoList.map((phoneNumber, index) => (\n                  <Stack.Item key={index}>\n                    <Link className={phoneInfoTextStyle} href={formatPhoneNumberLink(phoneNumber)}>\n                      {formatPhoneNumber(phoneNumber.phoneNumber)}\n                    </Link>\n                    <Text className={phoneInfoTextStyle}> {formatPhoneNumberInfo(phoneNumber, localeStrings)}</Text>\n                  </Stack.Item>\n                ))}\n              </Stack.Item>\n            </Stack>\n            <Stack\n              horizontal\n              horizontalAlign=\"space-between\"\n              verticalAlign=\"center\"\n              className={phoneInfoInstructionLine}\n            >\n              <Stack.Item>\n                <Stack horizontal>\n                  <Stack.Item className={phoneInfoIcon(theme)}>\n                    <Icon iconName=\"DtmfDialpadButton\" className={phoneInfoIconStyle(theme)} />\n                  </Stack.Item>\n                  <Stack.Item>\n                    <Text className={phoneInfoLabelStyle}>\n                      {localeStrings.meetingConferencePhoneInfoModalMeetingId}\n                    </Text>\n                  </Stack.Item>\n                </Stack>\n              </Stack.Item>\n              <Text className={phoneInfoTextStyle}>{conferencePhoneInfoList[0].conferenceId}#</Text>\n            </Stack>\n            <Stack\n              horizontal\n              horizontalAlign=\"space-between\"\n              verticalAlign=\"center\"\n              className={phoneInfoInstructionLine}\n            >\n              <Stack horizontal>\n                <Stack.Item className={phoneInfoIcon(theme)}>\n                  <Icon iconName=\"PhoneInfoWait\" className={phoneInfoIconStyle(theme)} />\n                </Stack.Item>\n                <Stack.Item>\n                  <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalWait}</Text>\n                </Stack.Item>\n              </Stack>\n            </Stack>\n          </Stack>\n        )}\n      </Stack>\n    );\n  }\n\n  return (\n    <Stack\n      verticalFill\n      styles={phoneInfoContainerStyle}\n      tokens={phoneInfoContainerTokens}\n      data-ui-id=\"phone-info-pane-content\"\n    ></Stack>\n  );\n};\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"MeetingPhoneInfoPaneContent.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/MeetingPhoneInfoPaneContent.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n// eslint-disable-next-line no-restricted-imports\nimport { Stack, Text, useTheme, Icon, Link } from '@fluentui/react';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { _DrawerMenuItemProps } from '@internal/react-components';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport React from 'react';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport {\n  ConferencePhoneInfo,\n  formatPhoneNumberInfo,\n  formatPhoneNumber,\n  formatPhoneNumberLink\n} from '@internal/react-components';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport {\n  phoneInfoTextStyle,\n  phoneInfoIcon,\n  phoneInfoInstructionLine,\n  phoneInfoStep,\n  phoneInfoIconStyle,\n  phoneInfoLabelStyle,\n  phoneInfoContainerTokens,\n  phoneInfoContainerStyle\n} from './styles/TeamsMeetingConferenceInfo.style';\n/* @conditional-compile-remove(teams-meeting-conference) */\nimport { useLocale } from '../localization';\n\n/* @conditional-compile-remove(teams-meeting-conference) */\n/**\n * @private\n */\nexport const MeetingPhoneInfoPaneContent = (props: {\n  mobileView?: boolean;\n  conferencePhoneInfoList?: ConferencePhoneInfo[];\n}): JSX.Element => {\n  const { conferencePhoneInfoList } = props;\n  const theme = useTheme();\n  const localeStrings = useLocale().component.strings.MeetingConferencePhoneInfo;\n\n  if (props.mobileView) {\n    return (\n      <Stack\n        verticalFill\n        styles={phoneInfoContainerStyle}\n        tokens={phoneInfoContainerTokens}\n        data-ui-id=\"phone-info-pane-content\"\n      >\n        {(conferencePhoneInfoList === undefined || conferencePhoneInfoList.length === 0) && (\n          <Stack horizontal>\n            <Text className={phoneInfoTextStyle}>{localeStrings.meetingConferencePhoneInfoModalNoPhoneAvailable}</Text>\n          </Stack>\n        )}\n        {conferencePhoneInfoList && conferencePhoneInfoList.length > 0 && (\n          <Stack>\n            <Stack horizontal horizontalAlign=\"space-between\" className={phoneInfoInstructionLine}>\n              <Stack.Item>\n                <Stack horizontal className={phoneInfoStep}>\n                  <Stack.Item className={phoneInfoIcon(theme)}>\n                    <Stack verticalAlign=\"center\" horizontalAlign=\"center\">\n                      <Icon iconName=\"PhoneNumberButton\" className={phoneInfoIconStyle(theme)} />\n                    </Stack>\n                  </Stack.Item>\n                  <Stack.Item>\n                    <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalDialIn}</Text>\n                  </Stack.Item>\n                </Stack>\n              </Stack.Item>\n              <Stack.Item className={phoneInfoStep}>\n                {conferencePhoneInfoList.map((phoneNumber, index) => (\n                  <Stack.Item key={index}>\n                    <Link className={phoneInfoTextStyle} href={formatPhoneNumberLink(phoneNumber)}>\n                      {formatPhoneNumber(phoneNumber.phoneNumber)}\n                    </Link>\n                    <Text className={phoneInfoTextStyle}>\n                      {' '}\n                      {phoneNumber.isTollFree\n                        ? localeStrings.meetingConferencePhoneInfoModalTollFree\n                        : localeStrings.meetingConferencePhoneInfoModalToll}\n                    </Text>\n                    <br />\n                    <Text className={phoneInfoTextStyle}> {formatPhoneNumberInfo(phoneNumber, localeStrings)}</Text>\n                  </Stack.Item>\n                ))}\n              </Stack.Item>\n            </Stack>\n            <Stack\n              horizontal\n              horizontalAlign=\"space-between\"\n              verticalAlign=\"center\"\n              className={phoneInfoInstructionLine}\n            >\n              <Stack.Item>\n                <Stack horizontal>\n                  <Stack.Item className={phoneInfoIcon(theme)}>\n                    <Icon iconName=\"DtmfDialpadButton\" className={phoneInfoIconStyle(theme)} />\n                  </Stack.Item>\n                  <Stack.Item>\n                    <Text className={phoneInfoLabelStyle}>\n                      {localeStrings.meetingConferencePhoneInfoModalMeetingId}\n                    </Text>\n                  </Stack.Item>\n                </Stack>\n              </Stack.Item>\n              <Text className={phoneInfoTextStyle}>{conferencePhoneInfoList[0].conferenceId}#</Text>\n            </Stack>\n            <Stack\n              horizontal\n              horizontalAlign=\"space-between\"\n              verticalAlign=\"center\"\n              className={phoneInfoInstructionLine}\n            >\n              <Stack horizontal>\n                <Stack.Item className={phoneInfoIcon(theme)}>\n                  <Icon iconName=\"PhoneInfoWait\" className={phoneInfoIconStyle(theme)} />\n                </Stack.Item>\n                <Stack.Item>\n                  <Text className={phoneInfoLabelStyle}>{localeStrings.meetingConferencePhoneInfoModalWait}</Text>\n                </Stack.Item>\n              </Stack>\n            </Stack>\n          </Stack>\n        )}\n      </Stack>\n    );\n  }\n\n  return (\n    <Stack\n      verticalFill\n      styles={phoneInfoContainerStyle}\n      tokens={phoneInfoContainerTokens}\n      data-ui-id=\"phone-info-pane-content\"\n    ></Stack>\n  );\n};\n"]}
         
     | 
| 
         @@ -1,15 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            import React from 'react';
         
     | 
| 
       2 
2 
     | 
    
         
             
            import { ActiveErrorMessage } from "../../../../react-components/src";
         
     | 
| 
       3 
3 
     | 
    
         
             
            import { ActiveVideoEffect } from '../CallComposite/components/SidePane/useVideoEffectsPane';
         
     | 
| 
       4 
     | 
    
         
            -
            import { ActiveNotification } from "../../../../react-components/src";
         
     | 
| 
       5 
4 
     | 
    
         
             
            /**
         
     | 
| 
       6 
5 
     | 
    
         
             
             * Pane that is used to show video effects button
         
     | 
| 
       7 
6 
     | 
    
         
             
             * @private
         
     | 
| 
       8 
7 
     | 
    
         
             
             */
         
     | 
| 
       9 
8 
     | 
    
         
             
            /** @beta */
         
     | 
| 
       10 
9 
     | 
    
         
             
            export declare const VideoEffectsPaneContent: (props: {
         
     | 
| 
       11 
     | 
    
         
            -
                activeVideoEffectError?: ActiveErrorMessage 
     | 
| 
       12 
     | 
    
         
            -
                onDismissError: (error: ActiveErrorMessage 
     | 
| 
      
 10 
     | 
    
         
            +
                activeVideoEffectError?: ActiveErrorMessage;
         
     | 
| 
      
 11 
     | 
    
         
            +
                onDismissError: (error: ActiveErrorMessage) => void;
         
     | 
| 
       13 
12 
     | 
    
         
             
                activeVideoEffectChange: (effect: ActiveVideoEffect) => void;
         
     | 
| 
       14 
13 
     | 
    
         
             
                updateFocusHandle: React.RefObject<{
         
     | 
| 
       15 
14 
     | 
    
         
             
                    focus: () => void;
         
     | 
| 
         @@ -10,8 +10,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge 
     | 
|
| 
       10 
10 
     | 
    
         
             
                });
         
     | 
| 
       11 
11 
     | 
    
         
             
            };
         
     | 
| 
       12 
12 
     | 
    
         
             
            import React from 'react';
         
     | 
| 
       13 
     | 
    
         
            -
            /* @conditional-compile-remove(notifications) */
         
     | 
| 
       14 
     | 
    
         
            -
            import { useState } from 'react';
         
     | 
| 
       15 
13 
     | 
    
         
             
            import { useCallback, useMemo } from 'react';
         
     | 
| 
       16 
14 
     | 
    
         
             
            import { MessageBar, MessageBarType, Stack, mergeStyles } from '@fluentui/react';
         
     | 
| 
       17 
15 
     | 
    
         
             
            import { useLocale } from '../localization';
         
     | 
| 
         @@ -20,8 +18,6 @@ import { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/ 
     | 
|
| 
       20 
18 
     | 
    
         
             
            import { useSelector } from '../CallComposite/hooks/useSelector';
         
     | 
| 
       21 
19 
     | 
    
         
             
            import { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';
         
     | 
| 
       22 
20 
     | 
    
         
             
            import { localVideoSelector } from '../CallComposite/selectors/localVideoStreamSelector';
         
     | 
| 
       23 
     | 
    
         
            -
            /* @conditional-compile-remove(notifications) */
         
     | 
| 
       24 
     | 
    
         
            -
            import { NotificationBar } from "../../../../react-components/src";
         
     | 
| 
       25 
21 
     | 
    
         
             
            /**
         
     | 
| 
       26 
22 
     | 
    
         
             
             * Pane that is used to show video effects button
         
     | 
| 
       27 
23 
     | 
    
         
             
             * @private
         
     | 
| 
         @@ -121,47 +117,13 @@ export const VideoEffectsPaneContent = (props) => { 
     | 
|
| 
       121 
117 
     | 
    
         
             
                return VideoEffectsPaneTrampoline(onDismissError, props.updateFocusHandle, activeVideoEffectError, selectableVideoEffects, onEffectChange);
         
     | 
| 
       122 
118 
     | 
    
         
             
            };
         
     | 
| 
       123 
119 
     | 
    
         
             
            const VideoEffectsPaneTrampoline = (onDismissError, updateFocusHandle, activeVideoEffectError, selectableVideoEffects, onEffectChange) => {
         
     | 
| 
       124 
     | 
    
         
            -
                var _a, _b;
         
     | 
| 
       125 
120 
     | 
    
         
             
                const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);
         
     | 
| 
       126 
121 
     | 
    
         
             
                const isCameraOn = useSelector(localVideoSelector).isAvailable;
         
     | 
| 
       127 
122 
     | 
    
         
             
                const showWarning = !isCameraOn && selectedEffect !== 'none';
         
     | 
| 
       128 
123 
     | 
    
         
             
                const locale = useLocale();
         
     | 
| 
       129 
     | 
    
         
            -
                /* @conditional-compile-remove(notifications) */
         
     | 
| 
       130 
     | 
    
         
            -
                const videoEffectErrorStrings = {
         
     | 
| 
       131 
     | 
    
         
            -
                    title: (_a = locale.strings.call.unableToStartVideoEffect) !== null && _a !== void 0 ? _a : '',
         
     | 
| 
       132 
     | 
    
         
            -
                    closeButtonAriaLabel: locale.strings.call.close
         
     | 
| 
       133 
     | 
    
         
            -
                };
         
     | 
| 
       134 
     | 
    
         
            -
                /* @conditional-compile-remove(notifications) */
         
     | 
| 
       135 
     | 
    
         
            -
                const warningStrings = {
         
     | 
| 
       136 
     | 
    
         
            -
                    title: (_b = locale.strings.call.cameraOffBackgroundEffectWarningText) !== null && _b !== void 0 ? _b : '',
         
     | 
| 
       137 
     | 
    
         
            -
                    closeButtonAriaLabel: locale.strings.call.close
         
     | 
| 
       138 
     | 
    
         
            -
                };
         
     | 
| 
       139 
     | 
    
         
            -
                /* @conditional-compile-remove(notifications) */
         
     | 
| 
       140 
     | 
    
         
            -
                const [errorNotificationDismissed, setErrorNotificationDismissed] = useState(false);
         
     | 
| 
       141 
     | 
    
         
            -
                /* @conditional-compile-remove(notifications) */
         
     | 
| 
       142 
     | 
    
         
            -
                const [warningNotificationDismissed, setWarningNotificationDismissed] = useState(false);
         
     | 
| 
       143 
     | 
    
         
            -
                const videoEffectErrorTrampoline = () => {
         
     | 
| 
       144 
     | 
    
         
            -
                    /* @conditional-compile-remove(notifications) */
         
     | 
| 
       145 
     | 
    
         
            -
                    return (React.createElement(React.Fragment, null,
         
     | 
| 
       146 
     | 
    
         
            -
                        activeVideoEffectError && isCameraOn && !errorNotificationDismissed && (React.createElement(NotificationBar, { onDismiss: () => {
         
     | 
| 
       147 
     | 
    
         
            -
                                if (activeVideoEffectError) {
         
     | 
| 
       148 
     | 
    
         
            -
                                    onDismissError(activeVideoEffectError);
         
     | 
| 
       149 
     | 
    
         
            -
                                }
         
     | 
| 
       150 
     | 
    
         
            -
                                setErrorNotificationDismissed(true);
         
     | 
| 
       151 
     | 
    
         
            -
                            }, notificationBarStrings: videoEffectErrorStrings })),
         
     | 
| 
       152 
     | 
    
         
            -
                        showWarning && !warningNotificationDismissed && (React.createElement(NotificationBar, { onDismiss: () => {
         
     | 
| 
       153 
     | 
    
         
            -
                                setWarningNotificationDismissed(true);
         
     | 
| 
       154 
     | 
    
         
            -
                            }, notificationBarStrings: warningStrings }))));
         
     | 
| 
       155 
     | 
    
         
            -
                    return (React.createElement(React.Fragment, null,
         
     | 
| 
       156 
     | 
    
         
            -
                        activeVideoEffectError && isCameraOn && (React.createElement(MessageBar, { messageBarType: MessageBarType.error, onDismiss: () => {
         
     | 
| 
       157 
     | 
    
         
            -
                                if (activeVideoEffectError) {
         
     | 
| 
       158 
     | 
    
         
            -
                                    onDismissError(activeVideoEffectError);
         
     | 
| 
       159 
     | 
    
         
            -
                                }
         
     | 
| 
       160 
     | 
    
         
            -
                            } }, locale.strings.call.unableToStartVideoEffect)),
         
     | 
| 
       161 
     | 
    
         
            -
                        showWarning && (React.createElement(MessageBar, { messageBarType: MessageBarType.warning }, locale.strings.call.cameraOffBackgroundEffectWarningText))));
         
     | 
| 
       162 
     | 
    
         
            -
                };
         
     | 
| 
       163 
124 
     | 
    
         
             
                return (React.createElement(Stack, { tokens: { childrenGap: '0.75rem' }, className: mergeStyles({ paddingLeft: '0.5rem' }) },
         
     | 
| 
       164 
     | 
    
         
            -
                     
     | 
| 
      
 125 
     | 
    
         
            +
                    activeVideoEffectError && isCameraOn && (React.createElement(MessageBar, { messageBarType: MessageBarType.error, onDismiss: () => onDismissError(activeVideoEffectError) }, locale.strings.call.unableToStartVideoEffect)),
         
     | 
| 
      
 126 
     | 
    
         
            +
                    showWarning && (React.createElement(MessageBar, { messageBarType: MessageBarType.warning }, locale.strings.call.cameraOffBackgroundEffectWarningText)),
         
     | 
| 
       165 
127 
     | 
    
         
             
                    React.createElement(_VideoBackgroundEffectsPicker, { label: locale.strings.call.videoEffectsPaneBackgroundSelectionTitle, styles: backgroundPickerStyles, options: selectableVideoEffects !== null && selectableVideoEffects !== void 0 ? selectableVideoEffects : [], onChange: onEffectChange, selectedEffectKey: selectedEffect, componentRef: updateFocusHandle })));
         
     | 
| 
       166 
128 
     | 
    
         
             
                return React.createElement(React.Fragment, null);
         
     | 
| 
       167 
129 
     | 
    
         
             
            };
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"file":"VideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/VideoEffectsPane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\n\n/* @conditional-compile-remove(notifications) */\nimport { useState } from 'react';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { MessageBar, MessageBarType, Stack, mergeStyles } from '@fluentui/react';\n\nimport { useLocale } from '../localization';\nimport { ActiveErrorMessage, _VideoEffectsItemProps } from '@internal/react-components';\n\nimport { _VideoBackgroundEffectsPicker } from '@internal/react-components';\n\nimport {\n  VideoBackgroundImage,\n  VideoBackgroundBlurEffect,\n  VideoBackgroundNoEffect,\n  VideoBackgroundReplacementEffect\n} from '../CallComposite';\n\nimport { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/activeVideoBackgroundEffectSelector';\n\nimport { useSelector } from '../CallComposite/hooks/useSelector';\n\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\n\nimport { localVideoSelector } from '../CallComposite/selectors/localVideoStreamSelector';\nimport { ActiveVideoEffect } from '../CallComposite/components/SidePane/useVideoEffectsPane';\n/* @conditional-compile-remove(notifications) */\nimport { ActiveNotification, NotificationBar, NotificationBarStrings } from '@internal/react-components';\n\n/**\n * Pane that is used to show video effects button\n * @private\n */\n/** @beta */\nexport const VideoEffectsPaneContent = (props: {\n  activeVideoEffectError?: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification;\n  onDismissError: (\n    error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n  ) => void;\n  activeVideoEffectChange: (effect: ActiveVideoEffect) => void;\n  updateFocusHandle: React.RefObject<{\n    focus: () => void;\n  }>;\n}): JSX.Element => {\n  const { onDismissError, activeVideoEffectError, activeVideoEffectChange } = props;\n\n  const locale = useLocale();\n\n  const adapter = useAdapter();\n\n  const strings = locale.strings.call;\n\n  const activeVideoEffects = useSelector(localVideoSelector).activeVideoEffects?.activeEffects;\n\n  const selectableVideoEffects: _VideoEffectsItemProps[] = useMemo(() => {\n    const videoEffects: _VideoEffectsItemProps[] = [\n      {\n        itemKey: 'none',\n        iconProps: {\n          iconName: 'RemoveVideoBackgroundEffect'\n        },\n        title: strings.removeBackgroundEffectButtonLabel,\n        tooltipProps: {\n          content: strings.removeBackgroundTooltip\n        }\n      },\n      {\n        itemKey: 'blur',\n        iconProps: {\n          iconName: 'BlurVideoBackground'\n        },\n        title: strings.blurBackgroundEffectButtonLabel,\n        tooltipProps: {\n          content: strings.blurBackgroundTooltip\n        }\n      }\n    ];\n    const videoEffectImages = adapter.getState().videoBackgroundImages;\n\n    if (videoEffectImages) {\n      videoEffectImages.forEach((img: VideoBackgroundImage) => {\n        videoEffects.push({\n          itemKey: img.key,\n          backgroundProps: {\n            url: img.url\n          },\n          tooltipProps: {\n            content: img.tooltipText ?? ''\n          }\n        });\n      });\n    }\n    return videoEffects;\n  }, [strings, adapter]);\n\n  const onEffectChange = useCallback(\n    async (effectKey: string) => {\n      if (effectKey === 'blur') {\n        const blurEffect: VideoBackgroundBlurEffect = {\n          effectName: effectKey\n        };\n        activeVideoEffectChange({\n          type: 'blur',\n          timestamp: new Date(Date.now())\n        });\n        await adapter.startVideoBackgroundEffect(blurEffect);\n        adapter.updateSelectedVideoBackgroundEffect(blurEffect);\n      } else if (effectKey === 'none') {\n        const noneEffect: VideoBackgroundNoEffect = {\n          effectName: effectKey\n        };\n        await adapter.stopVideoBackgroundEffects();\n        adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n      } else {\n        const backgroundImg = selectableVideoEffects.find((effect) => {\n          return effect.itemKey === effectKey;\n        });\n        if (backgroundImg && backgroundImg.backgroundProps) {\n          const replaceEffect: VideoBackgroundReplacementEffect = {\n            effectName: 'replacement',\n            key: effectKey,\n            backgroundImageUrl: backgroundImg.backgroundProps.url\n          };\n          activeVideoEffectChange({\n            type: 'replacement',\n            timestamp: new Date(Date.now())\n          });\n          await adapter.startVideoBackgroundEffect(replaceEffect);\n          adapter.updateSelectedVideoBackgroundEffect(replaceEffect);\n        }\n      }\n    },\n    [adapter, activeVideoEffectChange, selectableVideoEffects]\n  );\n\n  if (activeVideoEffectError && activeVideoEffects && activeVideoEffects.length === 0) {\n    const noneEffect: VideoBackgroundNoEffect = {\n      effectName: 'none'\n    };\n    adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n  }\n\n  return VideoEffectsPaneTrampoline(\n    onDismissError,\n    props.updateFocusHandle,\n    activeVideoEffectError,\n    selectableVideoEffects,\n    onEffectChange\n  );\n};\n\nconst VideoEffectsPaneTrampoline = (\n  onDismissError: (\n    error: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification\n  ) => void,\n  updateFocusHandle: React.RefObject<{\n    focus: () => void;\n  }>,\n  activeVideoEffectError?: ActiveErrorMessage | /* @conditional-compile-remove(notifications) */ ActiveNotification,\n  selectableVideoEffects?: _VideoEffectsItemProps[],\n  onEffectChange?: (effectKey: string) => Promise<void>\n): JSX.Element => {\n  const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);\n\n  const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n  const showWarning = !isCameraOn && selectedEffect !== 'none';\n\n  const locale = useLocale();\n  /* @conditional-compile-remove(notifications) */\n  const videoEffectErrorStrings: NotificationBarStrings = {\n    title: locale.strings.call.unableToStartVideoEffect ?? '',\n    closeButtonAriaLabel: locale.strings.call.close\n  };\n  /* @conditional-compile-remove(notifications) */\n  const warningStrings: NotificationBarStrings = {\n    title: locale.strings.call.cameraOffBackgroundEffectWarningText ?? '',\n    closeButtonAriaLabel: locale.strings.call.close\n  };\n\n  /* @conditional-compile-remove(notifications) */\n  const [errorNotificationDismissed, setErrorNotificationDismissed] = useState(false);\n  /* @conditional-compile-remove(notifications) */\n  const [warningNotificationDismissed, setWarningNotificationDismissed] = useState(false);\n\n  const videoEffectErrorTrampoline = (): JSX.Element => {\n    /* @conditional-compile-remove(notifications) */\n    return (\n      <>\n        {activeVideoEffectError && isCameraOn && !errorNotificationDismissed && (\n          <NotificationBar\n            onDismiss={() => {\n              if (activeVideoEffectError) {\n                onDismissError(activeVideoEffectError);\n              }\n              setErrorNotificationDismissed(true);\n            }}\n            notificationBarStrings={videoEffectErrorStrings}\n          />\n        )}\n        {showWarning && !warningNotificationDismissed && (\n          <NotificationBar\n            onDismiss={() => {\n              setWarningNotificationDismissed(true);\n            }}\n            notificationBarStrings={warningStrings}\n          />\n        )}\n      </>\n    );\n\n    return (\n      <>\n        {activeVideoEffectError && isCameraOn && (\n          <MessageBar\n            messageBarType={MessageBarType.error}\n            onDismiss={() => {\n              if (activeVideoEffectError) {\n                onDismissError(activeVideoEffectError);\n              }\n            }}\n          >\n            {locale.strings.call.unableToStartVideoEffect}\n          </MessageBar>\n        )}\n        {showWarning && (\n          <MessageBar messageBarType={MessageBarType.warning}>\n            {locale.strings.call.cameraOffBackgroundEffectWarningText}\n          </MessageBar>\n        )}\n      </>\n    );\n  };\n\n  return (\n    <Stack tokens={{ childrenGap: '0.75rem' }} className={mergeStyles({ paddingLeft: '0.5rem' })}>\n      {videoEffectErrorTrampoline()}\n      <_VideoBackgroundEffectsPicker\n        label={locale.strings.call.videoEffectsPaneBackgroundSelectionTitle}\n        styles={backgroundPickerStyles}\n        options={selectableVideoEffects ?? []}\n        onChange={onEffectChange}\n        selectedEffectKey={selectedEffect}\n        componentRef={updateFocusHandle}\n      />\n    </Stack>\n  );\n  return <></>;\n};\n\nconst backgroundPickerStyles = {\n  label: {\n    fontSize: '0.75rem',\n    lineHeight: '0.5rem',\n    fontWeight: '400'\n  }\n};\n"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"file":"VideoEffectsPane.js","sourceRoot":"","sources":["../../../../../../../react-composites/src/composites/common/VideoEffectsPane.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport React from 'react';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { MessageBar, MessageBarType, Stack, mergeStyles } from '@fluentui/react';\n\nimport { useLocale } from '../localization';\nimport { ActiveErrorMessage, _VideoEffectsItemProps } from '@internal/react-components';\n\nimport { _VideoBackgroundEffectsPicker } from '@internal/react-components';\n\nimport {\n  VideoBackgroundImage,\n  VideoBackgroundBlurEffect,\n  VideoBackgroundNoEffect,\n  VideoBackgroundReplacementEffect\n} from '../CallComposite';\n\nimport { activeVideoBackgroundEffectSelector } from '../CallComposite/selectors/activeVideoBackgroundEffectSelector';\n\nimport { useSelector } from '../CallComposite/hooks/useSelector';\n\nimport { useAdapter } from '../CallComposite/adapter/CallAdapterProvider';\n\nimport { localVideoSelector } from '../CallComposite/selectors/localVideoStreamSelector';\nimport { ActiveVideoEffect } from '../CallComposite/components/SidePane/useVideoEffectsPane';\n\n/**\n * Pane that is used to show video effects button\n * @private\n */\n/** @beta */\nexport const VideoEffectsPaneContent = (props: {\n  activeVideoEffectError?: ActiveErrorMessage;\n  onDismissError: (error: ActiveErrorMessage) => void;\n  activeVideoEffectChange: (effect: ActiveVideoEffect) => void;\n  updateFocusHandle: React.RefObject<{\n    focus: () => void;\n  }>;\n}): JSX.Element => {\n  const { onDismissError, activeVideoEffectError, activeVideoEffectChange } = props;\n\n  const locale = useLocale();\n\n  const adapter = useAdapter();\n\n  const strings = locale.strings.call;\n\n  const activeVideoEffects = useSelector(localVideoSelector).activeVideoEffects?.activeEffects;\n\n  const selectableVideoEffects: _VideoEffectsItemProps[] = useMemo(() => {\n    const videoEffects: _VideoEffectsItemProps[] = [\n      {\n        itemKey: 'none',\n        iconProps: {\n          iconName: 'RemoveVideoBackgroundEffect'\n        },\n        title: strings.removeBackgroundEffectButtonLabel,\n        tooltipProps: {\n          content: strings.removeBackgroundTooltip\n        }\n      },\n      {\n        itemKey: 'blur',\n        iconProps: {\n          iconName: 'BlurVideoBackground'\n        },\n        title: strings.blurBackgroundEffectButtonLabel,\n        tooltipProps: {\n          content: strings.blurBackgroundTooltip\n        }\n      }\n    ];\n    const videoEffectImages = adapter.getState().videoBackgroundImages;\n\n    if (videoEffectImages) {\n      videoEffectImages.forEach((img: VideoBackgroundImage) => {\n        videoEffects.push({\n          itemKey: img.key,\n          backgroundProps: {\n            url: img.url\n          },\n          tooltipProps: {\n            content: img.tooltipText ?? ''\n          }\n        });\n      });\n    }\n    return videoEffects;\n  }, [strings, adapter]);\n\n  const onEffectChange = useCallback(\n    async (effectKey: string) => {\n      if (effectKey === 'blur') {\n        const blurEffect: VideoBackgroundBlurEffect = {\n          effectName: effectKey\n        };\n        activeVideoEffectChange({\n          type: 'blur',\n          timestamp: new Date(Date.now())\n        });\n        await adapter.startVideoBackgroundEffect(blurEffect);\n        adapter.updateSelectedVideoBackgroundEffect(blurEffect);\n      } else if (effectKey === 'none') {\n        const noneEffect: VideoBackgroundNoEffect = {\n          effectName: effectKey\n        };\n        await adapter.stopVideoBackgroundEffects();\n        adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n      } else {\n        const backgroundImg = selectableVideoEffects.find((effect) => {\n          return effect.itemKey === effectKey;\n        });\n        if (backgroundImg && backgroundImg.backgroundProps) {\n          const replaceEffect: VideoBackgroundReplacementEffect = {\n            effectName: 'replacement',\n            key: effectKey,\n            backgroundImageUrl: backgroundImg.backgroundProps.url\n          };\n          activeVideoEffectChange({\n            type: 'replacement',\n            timestamp: new Date(Date.now())\n          });\n          await adapter.startVideoBackgroundEffect(replaceEffect);\n          adapter.updateSelectedVideoBackgroundEffect(replaceEffect);\n        }\n      }\n    },\n    [adapter, activeVideoEffectChange, selectableVideoEffects]\n  );\n\n  if (activeVideoEffectError && activeVideoEffects && activeVideoEffects.length === 0) {\n    const noneEffect: VideoBackgroundNoEffect = {\n      effectName: 'none'\n    };\n    adapter.updateSelectedVideoBackgroundEffect(noneEffect);\n  }\n\n  return VideoEffectsPaneTrampoline(\n    onDismissError,\n    props.updateFocusHandle,\n    activeVideoEffectError,\n    selectableVideoEffects,\n    onEffectChange\n  );\n};\n\nconst VideoEffectsPaneTrampoline = (\n  onDismissError: (error: ActiveErrorMessage) => void,\n  updateFocusHandle: React.RefObject<{\n    focus: () => void;\n  }>,\n  activeVideoEffectError?: ActiveErrorMessage,\n  selectableVideoEffects?: _VideoEffectsItemProps[],\n  onEffectChange?: (effectKey: string) => Promise<void>\n): JSX.Element => {\n  const selectedEffect = useSelector(activeVideoBackgroundEffectSelector);\n\n  const isCameraOn = useSelector(localVideoSelector).isAvailable;\n\n  const showWarning = !isCameraOn && selectedEffect !== 'none';\n\n  const locale = useLocale();\n\n  return (\n    <Stack tokens={{ childrenGap: '0.75rem' }} className={mergeStyles({ paddingLeft: '0.5rem' })}>\n      {activeVideoEffectError && isCameraOn && (\n        <MessageBar messageBarType={MessageBarType.error} onDismiss={() => onDismissError(activeVideoEffectError)}>\n          {locale.strings.call.unableToStartVideoEffect}\n        </MessageBar>\n      )}\n      {showWarning && (\n        <MessageBar messageBarType={MessageBarType.warning}>\n          {locale.strings.call.cameraOffBackgroundEffectWarningText}\n        </MessageBar>\n      )}\n      <_VideoBackgroundEffectsPicker\n        label={locale.strings.call.videoEffectsPaneBackgroundSelectionTitle}\n        styles={backgroundPickerStyles}\n        options={selectableVideoEffects ?? []}\n        onChange={onEffectChange}\n        selectedEffectKey={selectedEffect}\n        componentRef={updateFocusHandle}\n      />\n    </Stack>\n  );\n  return <></>;\n};\n\nconst backgroundPickerStyles = {\n  label: {\n    fontSize: '0.75rem',\n    lineHeight: '0.5rem',\n    fontWeight: '400'\n  }\n};\n"]}
         
     | 
| 
         @@ -119,6 +119,7 @@ export declare const DEFAULT_COMPOSITE_ICONS: { 
     | 
|
| 
       119 
119 
     | 
    
         
             
                DataLossPreventionProhibited: React.JSX.Element;
         
     | 
| 
       120 
120 
     | 
    
         
             
                ErrorBarCallVideoRecoveredBySystem: React.JSX.Element;
         
     | 
| 
       121 
121 
     | 
    
         
             
                ErrorBarCallVideoStoppedBySystem: React.JSX.Element;
         
     | 
| 
      
 122 
     | 
    
         
            +
                ErrorBarMutedByRemoteParticipant: React.JSX.Element;
         
     | 
| 
       122 
123 
     | 
    
         
             
                MessageResend: React.JSX.Element;
         
     | 
| 
       123 
124 
     | 
    
         
             
                ParticipantItemSpotlighted: React.JSX.Element;
         
     | 
| 
       124 
125 
     | 
    
         
             
                HoldCallContextualMenuItem: React.JSX.Element;
         
     | 
| 
         @@ -155,13 +156,6 @@ export declare const DEFAULT_COMPOSITE_ICONS: { 
     | 
|
| 
       155 
156 
     | 
    
         
             
                ContextMenuCameraIcon: React.JSX.Element;
         
     | 
| 
       156 
157 
     | 
    
         
             
                ContextMenuMicIcon: React.JSX.Element;
         
     | 
| 
       157 
158 
     | 
    
         
             
                ContextMenuSpeakerIcon: React.JSX.Element;
         
     | 
| 
       158 
     | 
    
         
            -
                /**
         
     | 
| 
       159 
     | 
    
         
            -
                 * Icon wrapper to use when including customizable icons inside the CallWithChatComposite.
         
     | 
| 
       160 
     | 
    
         
            -
                 * This wrapper ensures the icon name is being type-checked helping ensure no typos
         
     | 
| 
       161 
     | 
    
         
            -
                 * and ensure that icon is customizable through the composite API.
         
     | 
| 
       162 
     | 
    
         
            -
                 *
         
     | 
| 
       163 
     | 
    
         
            -
                 * @private
         
     | 
| 
       164 
     | 
    
         
            -
                 */
         
     | 
| 
       165 
159 
     | 
    
         
             
                ContextMenuRemoveParticipant: React.JSX.Element;
         
     | 
| 
       166 
160 
     | 
    
         
             
                SurveyStarIcon: React.JSX.Element;
         
     | 
| 
       167 
161 
     | 
    
         
             
                SurveyStarIconFilled: React.JSX.Element;
         
     | 
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "@azure/communication-react",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": "1.18.0-alpha- 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "1.18.0-alpha-202406280014",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "sideEffects": false,
         
     | 
| 
       5 
5 
     | 
    
         
             
              "description": "React library for building modern communication user experiences utilizing Azure Communication Services",
         
     | 
| 
       6 
6 
     | 
    
         
             
              "keywords": [
         
     | 
| 
         @@ -57,7 +57,7 @@ 
     | 
|
| 
       57 
57 
     | 
    
         
             
              "peerDependencies": {
         
     | 
| 
       58 
58 
     | 
    
         
             
                "@azure/communication-calling": "1.26.1-beta.1",
         
     | 
| 
       59 
59 
     | 
    
         
             
                "@azure/communication-calling-effects": "1.0.1",
         
     | 
| 
       60 
     | 
    
         
            -
                "@azure/communication-chat": "1.6.0-beta. 
     | 
| 
      
 60 
     | 
    
         
            +
                "@azure/communication-chat": "1.6.0-beta.3",
         
     | 
| 
       61 
61 
     | 
    
         
             
                "@types/react": ">=16.8.0 <19.0.0",
         
     | 
| 
       62 
62 
     | 
    
         
             
                "@types/react-dom": ">=16.8.0 <19.0.0",
         
     | 
| 
       63 
63 
     | 
    
         
             
                "react": ">=16.8.0 <19.0.0",
         
     |