@azure/communication-react 1.17.0-alpha-202405150013 → 1.17.0-alpha-202405160013

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/communication-react.d.ts +32 -4
  2. package/dist/dist-cjs/communication-react/{ChatMessageComponentAsRichTextEditBox-BkDaUOJU.js → ChatMessageComponentAsRichTextEditBox-LLjD-Jp0.js} +9 -3
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-LLjD-Jp0.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-D7SB5NwN.js +54 -0
  5. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-D7SB5NwN.js.map +1 -0
  6. package/dist/dist-cjs/communication-react/{index-DJswSfNy.js → index-CfI_of00.js} +247 -76
  7. package/dist/dist-cjs/communication-react/index-CfI_of00.js.map +1 -0
  8. package/dist/dist-cjs/communication-react/index.js +2 -2
  9. package/dist/dist-esm/acs-ui-common/src/common.d.ts +8 -1
  10. package/dist/dist-esm/acs-ui-common/src/common.js.map +1 -1
  11. package/dist/dist-esm/acs-ui-common/src/index.d.ts +1 -1
  12. package/dist/dist-esm/acs-ui-common/src/index.js.map +1 -1
  13. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  14. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  15. package/dist/dist-esm/communication-react/src/index.d.ts +1 -1
  16. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  17. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.d.ts +4 -0
  18. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js +27 -22
  19. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCard.js.map +1 -1
  20. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.d.ts +15 -0
  21. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.js +14 -16
  22. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentCardGroup.js.map +1 -1
  23. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js +16 -15
  24. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentDownloadCards.js.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentUploadCards.js +2 -2
  26. package/dist/dist-esm/react-components/src/components/Attachment/AttachmentUploadCards.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js +9 -1
  28. package/dist/dist-esm/react-components/src/components/ChatMessage/MessageComponents/ChatMessageComponentAsMessageBubble.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js +8 -2
  30. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBox.js.map +1 -1
  31. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +2 -2
  32. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -1
  33. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js +8 -2
  34. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  35. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js +9 -1
  36. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponentAsMessageBubble.js.map +1 -1
  37. package/dist/dist-esm/react-components/src/components/ErrorBoundary.d.ts +2 -2
  38. package/dist/dist-esm/react-components/src/components/ErrorBoundary.js +2 -2
  39. package/dist/dist-esm/react-components/src/components/ErrorBoundary.js.map +1 -1
  40. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +5 -3
  41. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  42. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js +1 -1
  43. package/dist/dist-esm/react-components/src/components/RemoteVideoTile.js.map +1 -1
  44. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.d.ts +4 -0
  45. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +5 -2
  46. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  47. package/dist/dist-esm/react-components/src/components/SendBox.js +5 -2
  48. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  49. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js +6 -4
  50. package/dist/dist-esm/react-components/src/components/VideoEffects/VideoEffectsItem.js.map +1 -1
  51. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js +2 -2
  52. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteScreenShare.js.map +1 -1
  53. package/dist/dist-esm/react-components/src/components/index.d.ts +1 -0
  54. package/dist/dist-esm/react-components/src/components/index.js +1 -0
  55. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  56. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.d.ts +9 -1
  57. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js +27 -3
  58. package/dist/dist-esm/react-components/src/components/styles/AttachmentCard.styles.js.map +1 -1
  59. package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.d.ts +17 -0
  60. package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.js +47 -0
  61. package/dist/dist-esm/react-components/src/components/styles/AttachmentCardGroup.styles.js.map +1 -0
  62. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.d.ts +2 -2
  63. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js +8 -0
  64. package/dist/dist-esm/react-components/src/components/styles/MessageThread.styles.js.map +1 -1
  65. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.d.ts +4 -0
  66. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +9 -0
  67. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
  68. package/dist/dist-esm/react-components/src/localization/locales/en-US/strings.json +1 -0
  69. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.d.ts +7 -0
  70. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +6 -2
  71. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  72. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +7 -0
  73. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  74. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +28 -8
  75. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  76. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.d.ts +10 -0
  77. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js +20 -0
  78. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js.map +1 -0
  79. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.d.ts +30 -0
  80. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js +44 -0
  81. package/dist/dist-esm/react-composites/src/composites/common/SendBoxPicker.js.map +1 -0
  82. package/package.json +2 -2
  83. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-BkDaUOJU.js.map +0 -1
  84. package/dist/dist-cjs/communication-react/index-DJswSfNy.js.map +0 -1
@@ -176,7 +176,7 @@ function getDefaultExportFromCjs (x) {
176
176
  // Copyright (c) Microsoft Corporation.
177
177
  // Licensed under the MIT License.
178
178
  // GENERATED FILE. DO NOT EDIT MANUALLY.
179
- var telemetryVersion = '1.17.0-alpha-202405150013';
179
+ var telemetryVersion = '1.17.0-alpha-202405160013';
180
180
 
181
181
 
182
182
  var telemetryVersion$1 = /*@__PURE__*/getDefaultExportFromCjs(telemetryVersion);
@@ -5699,7 +5699,7 @@ const typingIndicatorStringStyle = react.mergeStyles({
5699
5699
  wordBreak: 'break-word'
5700
5700
  });
5701
5701
 
5702
- var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k};
5702
+ var participantItem$k={isMeText:"(you)",menuTitle:"More Options",removeButtonLabel:"Remove",sharingIconLabel:"Sharing",mutedIconLabel:"Muted",displayNamePlaceholder:"Unnamed participant",participantStateRinging:"Calling...",participantStateHold:"On hold",attendeeRole:"Attendee"};var ParticipantList$l={overflowParticipantCount:"+{overflowCount} more"};var typingIndicator$k={singleUser:"{user} is typing ...",multipleUsers:"{users} are typing ...",multipleUsersAbbreviateOne:"{users} and 1 other are typing ...",multipleUsersAbbreviateMany:"{users} and {numOthers} others are typing ...",delimiter:", "};var sendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",attachmentMoreMenu:"More Options"};var richTextSendBox$k={placeholderText:"Enter a message",textTooLong:"Your message length is over the maximum limit.",sendButtonAriaLabel:"Send message",attachmentUploadsPendingError:"Uploading... Please wait.",removeAttachment:"Remove file",uploading:"Uploading",uploadCompleted:"Upload completed",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table",richTextToolbarMoreButtonAriaLabel:"More options",attachmentMoreMenu:"More Options"};var mentionPopover$k={mentionPopoverHeader:"Suggestions"};var imageOverlay$k={downloadButtonLabel:"Download",dismissButtonAriaLabel:"Close"};var messageStatusIndicator$k={deliveredAriaLabel:"Message sent",deliveredTooltipText:"Sent",seenAriaLabel:"Message seen by others",seenTooltipText:"Seen",readByTooltipText:"Read by {messageThreadReadCount} of {remoteParticipantsCount}",sendingAriaLabel:"Message sending",sendingTooltipText:"Sending",failedToSendAriaLabel:"Message failed to send",failedToSendTooltipText:"Failed to send"};var endCallButton$k={label:"Leave",tooltipContent:"Leave call",leaveOption:"Leave",endCallOption:"End call for everyone"};var cameraButton$k={onLabel:"Camera",offLabel:"Camera",tooltipDisabledContent:"Camera is disabled",tooltipOnContent:"Turn off camera",tooltipOffContent:"Turn on camera",tooltipVideoLoadingContent:"Video is loading",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",cameraButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Turn off camera and camera options",offSplitButtonAriaLabel:"Turn on camera and camera options",cameraActionTurnedOnAnnouncement:"Your camera has been turned on",cameraActionTurnedOffAnnouncement:"Your camera has been turned off",onSplitButtonPrimaryActionCamera:"Turn off camera",offSplitButtonPrimaryActionCamera:"Turn on camera",cameraPrimaryActionSplitButtonTitle:"Use camera",videoEffectsMenuItemTitle:"Effects"};var microphoneButton$k={onLabel:"Mic",offLabel:"Mic",tooltipDisabledContent:"Microphone is disabled",tooltipOnContent:"Mute microphone",tooltipOffContent:"Unmute microphone",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker",microphoneButtonSplitRoleDescription:"Split button",onSplitButtonAriaLabel:"Mute microphone and audio options",offSplitButtonAriaLabel:"Unmute microphone and audio options",microphoneActionTurnedOnAnnouncement:"Your microphone has been turned on",microphoneActionTurnedOffAnnouncement:"Your microphone has been turned off",offSplitButtonMicrophonePrimaryAction:"Unmute microphone",onSplitButtonMicrophonePrimaryAction:"Mute microphone",microphonePrimaryActionSplitButtonTitle:"Use microphone"};var devicesButton$k={label:"Devices",tooltipContent:"Manage devices",cameraMenuTitle:"Camera",cameraMenuTooltip:"Choose camera",audioDeviceMenuTitle:"Audio Device",audioDeviceMenuTooltip:"Choose audio device",microphoneMenuTitle:"Microphone",microphoneMenuTooltip:"Choose microphone",speakerMenuTitle:"Speaker",speakerMenuTooltip:"Choose speaker"};var participantsButton$k={label:"People",tooltipContent:"Show participants",menuHeader:"In this call",participantsListButtonLabel:"{numParticipants} people",muteAllButtonLabel:"Mute all",copyInviteLinkButtonLabel:"Copy invite link",copyInviteLinkActionedAriaLabel:"Invite link copied"};var screenShareButton$k={onLabel:"Stop presenting",offLabel:"Present",tooltipDisabledContent:"Presenting is disabled",tooltipOnContent:"Presenting your screen",tooltipOffContent:"Present your screen"};var raiseHandButton$k={offLabel:"Raise",onLabel:"Lower",tooltipDisabledContent:"Raise Hand action is disabled",tooltipOnContent:"Lower Hand",tooltipOffContent:"Raise Hand"};var reactionButton$k={label:"React",ariaLabel:"React Button, Send a reaction",tooltipDisabledContent:"Reaction action is disabled",tooltipContent:"Send a reaction",likeReactionTooltipContent:"Like",heartReactionTooltipContent:"Love",laughReactionTooltipContent:"Laugh",applauseReactionTooltipContent:"Applause",surprisedReactionTooltipContent:"Surprised"};var messageThread$k={yesterday:"Yesterday",sunday:"Sunday",monday:"Monday",tuesday:"Tuesday",wednesday:"Wednesday",thursday:"Thursday",friday:"Friday",saturday:"Saturday",participantJoined:"joined the chat.",participantLeft:"left the chat.",editMessage:"Edit",removeMessage:"Delete",resendMessage:"Try sending again",failToSendTag:"Failed to send",editedTag:"Edited",liveAuthorIntro:"{author} says",messageContentAriaText:"{author} said {message}",messageContentMineAriaText:"You said {message}",editBoxTextLimit:"Your message is over the limit of {limitNumber} characters",editBoxPlaceholderText:"Edit your message",newMessagesIndicator:"New messages",noDisplayNameSub:"No name",editBoxCancelButton:"Cancel",editBoxSubmitButton:"Done",messageReadCount:"Read by {messageReadByCount} of {remoteParticipantsCount}",actionMenuMoreOptions:"More Options",downloadAttachment:"Download file",openAttachment:"Open file",blockedWarningText:"This message was deleted due to organizational policy.",blockedWarningLinkText:"Details",attachmentCardGroupMessage:"The message has {attachmentCount} attachment",messageDeletedAnnouncementAriaLabel:"The message is deleted",richTextBoldTooltip:"Bold",richTextItalicTooltip:"Italic",richTextUnderlineTooltip:"Underline",richTextBulletListTooltip:"Bulleted list",richTextNumberListTooltip:"Numbered list",richTextIncreaseIndentTooltip:"Increase indent",richTextDecreaseIndentTooltip:"Decrease indent",richTextInsertTableTooltip:"Insert table",richTextFormatButtonTooltip:"Format",richTextInsertRowOrColumnMenu:"Insert",richTextInsertTableMenuTitle:"Insert {column} x {row} table",richTextInsertRowAboveMenu:"Insert above",richTextInsertRowBelowMenu:"Insert below",richTextInsertColumnLeftMenu:"Insert left",richTextInsertColumnRightMenu:"Insert right",richTextDeleteRowOrColumnMenu:"Delete",richTextDeleteColumnMenu:"Delete column",richTextDeleteRowMenu:"Delete row",richTextDeleteTableMenu:"Delete table"};var errorBar$k={unableToReachChatService:"You are offline",accessDenied:"Unable to access chat services - please check the user credentials provided",userNotInChatThread:"You are no longer in this chat thread",sendMessageNotInChatThread:"Failed to send message because you are no longer in this chat thread",sendMessageGeneric:"Failed to send message",callingNetworkFailure:"Troubling connecting call - you seem to be offline",startVideoGeneric:"Failed to start video",stopVideoGeneric:"Failed to stop video",muteGeneric:"Failed to mute microphone",unmuteGeneric:"Failed to unmute microphone",speakingWhileMuted:"Your microphone is muted",startScreenShareGeneric:"There was an issue starting screen share.",stopScreenShareGeneric:"Failed to stop screen sharing",callNetworkQualityLow:"Network quality is low.",callNoSpeakerFound:"No speakers or headphones found. Connect an audio device to hear the call.",callNoMicrophoneFound:"No microphones found. Connect an audio input device.",callMicrophoneAccessDenied:"Unable to access microphone. Click the lock in the address bar to grant permission to this webpage.",callMicrophoneAccessDeniedSafari:"Unable to access microphone. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callMicrophoneMutedBySystem:"You are muted by your system.",callMicrophoneUnmutedBySystem:"Your microphone recovered and you were unmuted by your system.",callMacOsMicrophoneAccessDenied:"Unable to access microphone. Grant microphone permission in your macOS privacy settings.",callLocalVideoFreeze:"Network bandwidth is poor. Your video may appear paused for others on the call.",callCameraAccessDenied:"Unable to access camera. Click the lock in the address bar to grant permission to this webpage.",callCameraAccessDeniedSafari:"Unable to access camera. Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",callCameraAlreadyInUse:"Unable to access camera. It may already be in use by another application.",callVideoStoppedBySystem:"Your video has been stopped by your system.",callVideoRecoveredBySystem:"Your video has resumed.",callMacOsCameraAccessDenied:"MacOS is blocking access to your camera. Update your privacy settings to allow this browser to access your camera.",callMacOsScreenShareAccessDenied:"MacOS is blocking screen sharing. Update your privacy settings to allow this browser to record your screen.",dismissButtonAriaLabel:"Close",failedToJoinCallGeneric:"Failed to join call.",failedToJoinCallInvalidMeetingLink:"Unable to join Meeting. Invalid Link.",cameraFrozenForRemoteParticipants:"Users in the call are having issues seeing your video. Please check your devices and network.",unableToStartVideoEffect:"Unable to apply video effect.",startSpotlightWhileMaxParticipantsAreSpotlighted:"Cannot start spotlight on participant(s) because the maximum number of participants are already spotlighted."};var videoGallery$k={screenIsBeingSharedMessage:"You are sharing your screen",screenShareLoadingMessage:"Loading {participant}'s screen",localVideoLabel:"You",localVideoCameraSwitcherLabel:"Switch camera",localVideoMovementLabel:"Movable Local Video Tile",localVideoSelectedDescription:"{cameraName} selected",displayNamePlaceholder:"Unnamed participant",fitRemoteParticipantToFrame:"Fit to frame",fillRemoteParticipantFrame:"Fill frame",pinParticipantForMe:"Pin for me",pinParticipantForMeLimitReached:"Pin (limit reached)",unpinParticipantForMe:"Unpin",pinParticipantMenuItemAriaLabel:"Pin {participantName}",unpinParticipantMenuItemAriaLabel:"Unpin {participantName}",pinnedParticipantAnnouncementAriaLabel:"Pinned {participantName}",unpinnedParticipantAnnouncementAriaLabel:"Unpinned {participantName}",startSpotlightVideoTileMenuLabel:"Spotlight for everyone",addSpotlightVideoTileMenuLabel:"Add spotlight",spotlightLimitReachedMenuTitle:"Spotlight limit reached",stopSpotlightVideoTileMenuLabel:"Stop spotlighting",stopSpotlightOnSelfVideoTileMenuLabel:"Exit spotlight",attendeeRole:"Attendee"};var dialpad$k={placeholderText:"Enter phone number",deleteButtonAriaLabel:"Delete"};var holdButton$k={onLabel:"Resume",offLabel:"Hold",tooltipOnContent:"Resume call",tooltipOffContent:"Hold call"};var videoTile$k={participantStateRinging:"Calling...",participantStateHold:"On hold"};var CameraAndMicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera and microphone",secondaryText:"This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Allow camera and microphone access"};var CameraSitePermissionsRequest$k={primaryText:"Allow {appName} to use your camera",secondaryText:"This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Allow camera access"};var MicrophoneSitePermissionsRequest$k={primaryText:"Allow {appName} to use your microphone",secondaryText:"This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Allow microphone access"};var CameraAndMicrophoneSitePermissionsCheck$k={primaryText:"Checking for camera and microphone access",secondaryText:"Allow access if prompted. This is so participants can see and hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera and microphone",ariaLabel:"Checking for camera and microphone access. Allow access if prompted."};var CameraSitePermissionsCheck$k={primaryText:"Checking for camera access",secondaryText:"Allow access if prompted. This is so participants can see you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without camera",ariaLabel:"Checking for camera access. Allow access if prompted."};var MicrophoneSitePermissionsCheck$k={primaryText:"Checking for microphone access",secondaryText:"Allow access if prompted. This is so participants can hear you.",linkText:"Need help? Get troubleshooting help",primaryButtonText:"Continue without microphone",ariaLabel:"Checking for microphone access. Allow access if prompted."};var CameraAndMicrophoneSitePermissionsDenied$k={primaryText:"Unable to access camera and microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraAndMicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera and microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera and microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDenied$k={primaryText:"Unable to access camera",secondaryText:"Click the lock icon in the address bar to grant camera permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDenied$k={primaryText:"Unable to access microphone",secondaryText:"Click the lock icon in the address bar to grant microphone permissions to this webpage. A page refresh may be required.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var CameraSitePermissionsDeniedSafari$k={primaryText:"Unable to access camera",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without camera",linkText:"Need help? Get troubleshooting help"};var MicrophoneSitePermissionsDeniedSafari$k={primaryText:"Unable to access microphone",secondaryText:"Refresh the page to allow permissions, or check this browser’s settings and verify permissions are enabled for this website.",primaryButtonText:"Continue without microphone",linkText:"Need help? Get troubleshooting help"};var UnsupportedBrowser$l={primaryText:"Browser not supported",secondaryText:"Please join this call using a compatible browser.",moreHelpLinkText:"See compatibility requirements"};var UnsupportedBrowserVersion$l={primaryText:"Browser update needed",secondaryText:"To ensure the best call possible, please update your browser and then try joining the call again.",moreHelpLinkText:"See compatibility requirements",continueAnywayButtonText:"Start call without updating"};var UnsupportedOperatingSystem$l={primaryText:"Operating system not supported",secondaryText:"Please join this call using a device with a compatible operating system.",moreHelpLinkText:"See compatibility requirements"};var BrowserPermissionDenied$k={primaryText:"Can't use your camera or microphone",secondaryText:"Your browser might not have access to your camera or microphone. To fix this, open System Preferences.",primaryButtonText:"Try again",linkText:"Need help? Get troubleshooting help"};var BrowserPermissionDeniedIOS$k={primaryText:"Allow microphone access to continue",secondaryText:"So other participants can hear you.",primaryButtonText:"Try again",imageAltText:"Microphone and camera device permission location for iOS",linkText:"Need help? Get troubleshooting help",step1Text:"Go to the Settings app",step2Text:"Scroll down to settings for this browser",step3Text:"Turn on Microphone (Camera optional)",step4Text:"Try joining the call again",step1DigitText:"1",step2DigitText:"2",step3DigitText:"3",step4DigitText:"4"};var verticalGallery$k={leftNavButtonAriaLabel:"previous page",rightNavButtonAriaLabel:"next page"};var en_US$1 = {participantItem:participantItem$k,ParticipantList:ParticipantList$l,typingIndicator:typingIndicator$k,sendBox:sendBox$k,richTextSendBox:richTextSendBox$k,mentionPopover:mentionPopover$k,imageOverlay:imageOverlay$k,messageStatusIndicator:messageStatusIndicator$k,endCallButton:endCallButton$k,cameraButton:cameraButton$k,microphoneButton:microphoneButton$k,devicesButton:devicesButton$k,participantsButton:participantsButton$k,screenShareButton:screenShareButton$k,raiseHandButton:raiseHandButton$k,reactionButton:reactionButton$k,messageThread:messageThread$k,errorBar:errorBar$k,videoGallery:videoGallery$k,dialpad:dialpad$k,holdButton:holdButton$k,videoTile:videoTile$k,CameraAndMicrophoneSitePermissionsRequest:CameraAndMicrophoneSitePermissionsRequest$k,CameraSitePermissionsRequest:CameraSitePermissionsRequest$k,MicrophoneSitePermissionsRequest:MicrophoneSitePermissionsRequest$k,CameraAndMicrophoneSitePermissionsCheck:CameraAndMicrophoneSitePermissionsCheck$k,CameraSitePermissionsCheck:CameraSitePermissionsCheck$k,MicrophoneSitePermissionsCheck:MicrophoneSitePermissionsCheck$k,CameraAndMicrophoneSitePermissionsDenied:CameraAndMicrophoneSitePermissionsDenied$k,CameraAndMicrophoneSitePermissionsDeniedSafari:CameraAndMicrophoneSitePermissionsDeniedSafari$k,CameraSitePermissionsDenied:CameraSitePermissionsDenied$k,MicrophoneSitePermissionsDenied:MicrophoneSitePermissionsDenied$k,CameraSitePermissionsDeniedSafari:CameraSitePermissionsDeniedSafari$k,MicrophoneSitePermissionsDeniedSafari:MicrophoneSitePermissionsDeniedSafari$k,UnsupportedBrowser:UnsupportedBrowser$l,UnsupportedBrowserVersion:UnsupportedBrowserVersion$l,UnsupportedOperatingSystem:UnsupportedOperatingSystem$l,BrowserPermissionDenied:BrowserPermissionDenied$k,BrowserPermissionDeniedIOS:BrowserPermissionDeniedIOS$k,verticalGallery:verticalGallery$k};
5703
5703
 
5704
5704
  // Copyright (c) Microsoft Corporation.
5705
5705
  // Licensed under the MIT License.
@@ -8835,14 +8835,39 @@ const useLocaleAttachmentCardStringsTrampoline = () => {
8835
8835
 
8836
8836
  // Copyright (c) Microsoft Corporation.
8837
8837
  // Licensed under the MIT License.
8838
+ /**
8839
+ * @private
8840
+ */
8841
+ const _ATTACHMENT_CARD_WIDTH_IN_REM = 12;
8842
+ /**
8843
+ * @private
8844
+ */
8845
+ const _ATTACHMENT_CARD_MARGIN_IN_PX = 2;
8838
8846
  /**
8839
8847
  * @private
8840
8848
  */
8841
8849
  const useAttachmentCardStyles = reactComponents.makeStyles({
8842
8850
  root: {
8843
- width: '12rem',
8844
- minWidth: '75%',
8845
8851
  '& div[role=toolbar]': Object.assign({}, reactComponents.shorthands.padding(0))
8852
+ },
8853
+ dynamicWidth: {
8854
+ minWidth: `${_ATTACHMENT_CARD_WIDTH_IN_REM}rem`
8855
+ },
8856
+ staticWidth: {
8857
+ width: `${_ATTACHMENT_CARD_WIDTH_IN_REM}rem`
8858
+ },
8859
+ fileIcon: {
8860
+ marginLeft: _pxToRem(4)
8861
+ },
8862
+ content: {
8863
+ '> div': {
8864
+ width: '100%',
8865
+ overflow: 'hidden',
8866
+ textOverflow: 'ellipsis'
8867
+ }
8868
+ },
8869
+ title: {
8870
+ width: '100%'
8846
8871
  }
8847
8872
  });
8848
8873
  /**
@@ -8850,7 +8875,6 @@ const useAttachmentCardStyles = reactComponents.makeStyles({
8850
8875
  */
8851
8876
  const attachmentNameContainerClassName = react.mergeStyles({
8852
8877
  marginTop: _pxToRem(5),
8853
- width: '5.75rem',
8854
8878
  overflow: 'hidden',
8855
8879
  textOverflow: 'ellipsis',
8856
8880
  span: {
@@ -8881,7 +8905,7 @@ var __awaiter$D = (window && window.__awaiter) || function (thisArg, _arguments,
8881
8905
  */
8882
8906
  const _AttachmentCard = (props) => {
8883
8907
  var _a, _b, _c, _d, _e;
8884
- const { attachment, menuActions, onActionHandlerFailed } = props;
8908
+ const { attachment, menuActions, onActionHandlerFailed, selfResizing } = props;
8885
8909
  const attachmentCardStyles = useAttachmentCardStyles();
8886
8910
  const progress = React.useMemo(() => {
8887
8911
  return 'progress' in attachment ? attachment.progress : undefined;
@@ -8911,13 +8935,18 @@ const _AttachmentCard = (props) => {
8911
8935
  }, [attachment]);
8912
8936
  return (React.createElement("div", { "data-is-focusable": true },
8913
8937
  React.createElement(Announcer$1, { announcementString: announcerString, ariaLive: 'polite' }),
8914
- React.createElement(reactComponents.Card, { className: attachmentCardStyles.root, size: "small", role: "listitem", appearance: "filled-alternative", "aria-label": attachment.name },
8915
- React.createElement(reactComponents.CardHeader, { image: React.createElement(react.Icon, { "data-ui-id": 'attachmenttype-icon', iconName: reactFileTypeIcons.getFileTypeIconProps({
8916
- extension: extension,
8917
- size: 24,
8918
- imageFileType: 'svg'
8919
- }).iconName }), header: React.createElement("div", { className: attachmentNameContainerClassName },
8920
- React.createElement(reactComponents.Text, { title: attachment.name }, attachment.name)), action: MappedMenuItems(menuActions, Object.assign(Object.assign({}, attachment), { url: (_e = attachment.url) !== null && _e !== void 0 ? _e : '' }), onActionHandlerFailed) })),
8938
+ React.createElement(reactComponents.Card, { className: reactComponents.mergeClasses(attachmentCardStyles.root, selfResizing ? attachmentCardStyles.dynamicWidth : attachmentCardStyles.staticWidth), size: "small", role: "listitem", appearance: "filled-alternative", "aria-label": attachment.name, "data-testid": 'attachment-card' },
8939
+ React.createElement(reactComponents.CardHeader, { className: attachmentCardStyles.content, image: React.createElement("div", { className: attachmentCardStyles.fileIcon },
8940
+ React.createElement(react.Icon, { "data-ui-id": 'attachmenttype-icon', iconName: reactFileTypeIcons.getFileTypeIconProps({
8941
+ extension: extension,
8942
+ size: 24,
8943
+ imageFileType: 'svg'
8944
+ }).iconName })), header: React.createElement("div", { className: attachmentNameContainerClassName, id: 'attachment-' + attachment.id },
8945
+ React.createElement(react.TooltipHost, { content: attachment.name, calloutProps: {
8946
+ gapSpace: 0,
8947
+ target: '#attachment-' + attachment.id
8948
+ } },
8949
+ React.createElement(reactComponents.Text, { className: attachmentCardStyles.title, title: attachment.name }, attachment.name))), action: MappedMenuItems(menuActions, Object.assign(Object.assign({}, attachment), { url: (_e = attachment.url) !== null && _e !== void 0 ? _e : '' }), onActionHandlerFailed) })),
8921
8950
  isUploadInProgress ? (React.createElement(reactComponents.CardFooter, null,
8922
8951
  React.createElement(reactComponents.ProgressBar, { thickness: "medium", value: Math.max(progress !== null && progress !== void 0 ? progress : 0, ATTACHMENT_CARD_MIN_PROGRESS), shape: "rounded" }))) : (React.createElement(React.Fragment, null, " "))));
8923
8952
  };
@@ -8926,17 +8955,19 @@ const MappedMenuItems = (menuActions, attachment, handleOnClickError) => {
8926
8955
  if (menuActions.length === 0) {
8927
8956
  return React.createElement(React.Fragment, null);
8928
8957
  }
8929
- return menuActions.length === 1 ? (React.createElement(reactComponents.ToolbarButton, { "aria-label": menuActions[0].name, icon: menuActions[0].icon, onClick: () => {
8930
- try {
8931
- menuActions[0].onClick(attachment);
8932
- }
8933
- catch (e) {
8934
- handleOnClickError === null || handleOnClickError === void 0 ? void 0 : handleOnClickError(e.message);
8935
- }
8936
- } })) : (React.createElement(reactComponents.Toolbar, null,
8958
+ return menuActions.length === 1 ? (React.createElement(react.TooltipHost, { content: menuActions[0].name },
8959
+ React.createElement(reactComponents.ToolbarButton, { "aria-label": menuActions[0].name, icon: menuActions[0].icon, onClick: () => {
8960
+ try {
8961
+ menuActions[0].onClick(attachment);
8962
+ }
8963
+ catch (e) {
8964
+ handleOnClickError === null || handleOnClickError === void 0 ? void 0 : handleOnClickError(e.message);
8965
+ }
8966
+ } }))) : (React.createElement(reactComponents.Toolbar, null,
8937
8967
  React.createElement(reactComponents.Menu, null,
8938
- React.createElement(reactComponents.MenuTrigger, null,
8939
- React.createElement(reactComponents.ToolbarButton, { icon: React.createElement(react.Icon, { iconName: "AttachmentMoreMenu", "aria-label": localeStrings.attachmentMoreMenu }) })),
8968
+ React.createElement(react.TooltipHost, { content: localeStrings.attachmentMoreMenu },
8969
+ React.createElement(reactComponents.MenuTrigger, null,
8970
+ React.createElement(reactComponents.ToolbarButton, { icon: React.createElement(react.Icon, { iconName: "AttachmentMoreMenu", "aria-label": localeStrings.attachmentMoreMenu }) }))),
8940
8971
  React.createElement(reactComponents.MenuPopover, null,
8941
8972
  React.createElement(reactComponents.MenuList, null, menuActions.map((menuItem, index) => (React.createElement(reactComponents.MenuItem, { key: index, icon: menuItem.icon, onClick: () => __awaiter$D(void 0, void 0, void 0, function* () {
8942
8973
  try {
@@ -8951,33 +8982,74 @@ const MappedMenuItems = (menuActions, attachment, handleOnClickError) => {
8951
8982
  // Copyright (c) Microsoft Corporation.
8952
8983
  // Licensed under the MIT License.
8953
8984
  /**
8954
- * Note: If we use stack tokens.childrenGap, when child elements are wrapped and moved to the next line,
8955
- * an extra margin is added to the left of each line.
8956
- * This is a workaround to avoid this issue.
8985
+ * @private
8957
8986
  */
8958
- const attachmentCardGroupClassName = react.mergeStyles({
8959
- flexFlow: 'row wrap',
8960
- '& > *': {
8961
- margin: _pxToRem(2)
8987
+ const useAttachmentCardGroupStyles = reactComponents.makeStyles({
8988
+ root: {
8989
+ marginTop: '0.25rem'
8990
+ },
8991
+ singleAttachment: {
8992
+ widtn: `${_ATTACHMENT_CARD_WIDTH_IN_REM}rem`
8962
8993
  },
8994
+ multipleAttachments: {
8995
+ width: '100%'
8996
+ }
8997
+ });
8998
+ /**
8999
+ * @private
9000
+ */
9001
+ const attachmentCardBaseStyles = react.mergeStyles({
9002
+ '& > *': Object.assign({}, reactComponents.shorthands.margin(`${_pxToRem(_ATTACHMENT_CARD_MARGIN_IN_PX)}`)),
8963
9003
  /**
8964
9004
  * margin for children is overriden by parent stack, so adding left margin for each child
8965
9005
  */
8966
9006
  '& > *:not(:first-child)': {
8967
- marginLeft: _pxToRem(2)
9007
+ marginLeft: `${_pxToRem(_ATTACHMENT_CARD_MARGIN_IN_PX)}`
8968
9008
  }
8969
9009
  });
9010
+ /**
9011
+ * @private
9012
+ */
9013
+ const attachmentCardGirdLayout = react.mergeStyles({
9014
+ display: 'grid',
9015
+ gridTemplateColumns: `repeat(auto-fit, minmax(${_ATTACHMENT_CARD_WIDTH_IN_REM}rem, 1fr))`
9016
+ });
9017
+ /**
9018
+ * @private
9019
+ */
9020
+ const attachmentCardFlexLayout = react.mergeStyles({
9021
+ display: 'flex',
9022
+ flexWrap: 'wrap'
9023
+ });
9024
+
9025
+ // Copyright (c) Microsoft Corporation.
9026
+ // Licensed under the MIT License.
9027
+ /**
9028
+ * @internal
9029
+ * Props for `_AttachmentCardGroup` component.
9030
+ */
9031
+ var _AttachmentCardGroupLayout;
9032
+ (function (_AttachmentCardGroupLayout) {
9033
+ /**
9034
+ * Children are rendered in a grid layout with self resizing.
9035
+ */
9036
+ _AttachmentCardGroupLayout["Grid"] = "grid";
9037
+ /**
9038
+ * Children are rendered in a flex layout with no resizing.
9039
+ */
9040
+ _AttachmentCardGroupLayout["Flex"] = "flex";
9041
+ })(_AttachmentCardGroupLayout || (_AttachmentCardGroupLayout = {}));
8970
9042
  /**
8971
9043
  * @internal
8972
9044
  * Used with `_AttachmentCard` component where `_AttachmentCard` components are passed as children.
8973
9045
  * Renders the children equally spaced in multiple rows.
8974
9046
  */
8975
9047
  const _AttachmentCardGroup = (props) => {
8976
- const { children, ariaLabel } = props;
9048
+ const { children, ariaLabel, attachmentGroupLayout } = props;
8977
9049
  if (!children) {
8978
9050
  return React.createElement(React.Fragment, null);
8979
9051
  }
8980
- return (React.createElement(react.Stack, { horizontal: true, className: attachmentCardGroupClassName, "aria-label": ariaLabel }, children));
9052
+ return (React.createElement(react.Stack, { horizontal: true, className: react.mergeStyles(attachmentCardBaseStyles, attachmentGroupLayout === _AttachmentCardGroupLayout.Grid ? attachmentCardGirdLayout : attachmentCardFlexLayout), "aria-label": ariaLabel }, children));
8981
9053
  };
8982
9054
 
8983
9055
  // Copyright (c) Microsoft Corporation.
@@ -8997,7 +9069,7 @@ const _AttachmentUploadCards = (props) => {
8997
9069
  if (!attachments || attachments.length === 0) {
8998
9070
  return React.createElement(React.Fragment, null);
8999
9071
  }
9000
- return (React.createElement(_AttachmentCardGroup, null, attachments &&
9072
+ return (React.createElement(_AttachmentCardGroup, { attachmentGroupLayout: _AttachmentCardGroupLayout.Flex }, attachments &&
9001
9073
  attachments
9002
9074
  .filter((attachment) => !attachment.error)
9003
9075
  .map((attachment) => {
@@ -9487,9 +9559,12 @@ const SendBox = (props) => {
9487
9559
  /* @conditional-compile-remove(attachment-upload) */ isAttachmentUploadCompleted(attachments)) {
9488
9560
  onSendMessage &&
9489
9561
  onSendMessage(message,
9490
- /* @conditional-compile-remove(attachment-upload) */
9562
+ /* @conditional-compile-remove(attachment-upload) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */
9491
9563
  {
9492
- attachments: toAttachmentMetadata(attachments)
9564
+ /* @conditional-compile-remove(attachment-upload) */
9565
+ attachments: toAttachmentMetadata(attachments),
9566
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
9567
+ type: 'text'
9493
9568
  });
9494
9569
  setTextValue('');
9495
9570
  (_a = sendTextFieldRef.current) === null || _a === void 0 ? void 0 : _a.focus();
@@ -10959,9 +11034,12 @@ const RichTextSendBox = (props) => {
10959
11034
  // Message can be empty if there is a valid attachment upload
10960
11035
  if (hasContent || /* @conditional-compile-remove(attachment-upload) */ isAttachmentUploadCompleted(attachments)) {
10961
11036
  onSendMessage(message,
10962
- /* @conditional-compile-remove(attachment-upload) */
11037
+ /* @conditional-compile-remove(attachment-upload) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */
10963
11038
  {
10964
- attachments: toAttachmentMetadata(attachments)
11039
+ /* @conditional-compile-remove(attachment-upload) */
11040
+ attachments: toAttachmentMetadata(attachments),
11041
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
11042
+ type: 'html'
10965
11043
  });
10966
11044
  setContentValue('');
10967
11045
  (_b = editorComponentRef.current) === null || _b === void 0 ? void 0 : _b.setEmptyContent();
@@ -11316,6 +11394,10 @@ const useChatMyMessageStyles = reactComponents.makeStyles({
11316
11394
  },
11317
11395
  menuVisible: {
11318
11396
  visibility: 'visible'
11397
+ },
11398
+ multipleAttachments: {
11399
+ width: '100%',
11400
+ maxWidth: `${(_ATTACHMENT_CARD_WIDTH_IN_REM + _ATTACHMENT_CARD_MARGIN_IN_PX) * 2}rem`
11319
11401
  }
11320
11402
  });
11321
11403
  /**
@@ -11376,6 +11458,9 @@ const useChatMessageStyles = reactComponents.makeStyles({
11376
11458
  },
11377
11459
  avatarOverlap: {
11378
11460
  marginLeft: `${-AVATAR_MARGIN_LEFT - MESSAGE_AVATAR_OVERLAP_REM}rem`
11461
+ },
11462
+ multipleAttachments: {
11463
+ width: `${(_ATTACHMENT_CARD_WIDTH_IN_REM + _ATTACHMENT_CARD_MARGIN_IN_PX) * 2}rem`
11379
11464
  }
11380
11465
  });
11381
11466
  /**
@@ -11640,6 +11725,15 @@ const attachmentMetadataReducer = (state, action) => {
11640
11725
  return state;
11641
11726
  }
11642
11727
  };
11728
+ /* @conditional-compile-remove(attachment-upload) */
11729
+ /**
11730
+ * @internal
11731
+ */
11732
+ const doesMessageContainMultipleAttachments = (message) => {
11733
+ var _a, _b;
11734
+ const length = (_b = (_a = message.attachments) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0;
11735
+ return length > 1;
11736
+ };
11643
11737
 
11644
11738
  // Copyright (c) Microsoft Corporation.
11645
11739
  // Licensed under the MIT License.
@@ -12448,16 +12542,14 @@ const decodeEntities = (encodedString) => {
12448
12542
 
12449
12543
  // Copyright (c) Microsoft Corporation.
12450
12544
  // Licensed under the MIT License.
12451
- const attachmentDownloadCardsStyle = {
12452
- marginTop: '0.25rem'
12453
- };
12454
12545
  /**
12455
12546
  * @internal
12456
12547
  */
12457
12548
  const _AttachmentDownloadCards = (props) => {
12458
- var _a, _b;
12549
+ var _a;
12459
12550
  const { attachments, message } = props;
12460
12551
  const localeStrings = useLocaleStringsTrampoline();
12552
+ const attachmentCardGroupStyles = useAttachmentCardGroupStyles();
12461
12553
  const getMenuActions = React.useCallback((attachment, localeStrings, message, action) => {
12462
12554
  const defaultMenuActions = getDefaultMenuActions(localeStrings, message);
12463
12555
  try {
@@ -12473,22 +12565,23 @@ const _AttachmentDownloadCards = (props) => {
12473
12565
  return defaultMenuActions;
12474
12566
  }
12475
12567
  }, []);
12476
- const downloadAttachmentButtonString = React.useMemo(() => () => {
12477
- var _a, _b;
12478
- return (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadAttachment) !== null && _b !== void 0 ? _b : localeStrings.downloadAttachment;
12479
- }, [(_a = props.strings) === null || _a === void 0 ? void 0 : _a.downloadAttachment, localeStrings.downloadAttachment]);
12480
12568
  const attachmentCardGroupDescription = React.useMemo(() => () => {
12481
12569
  var _a, _b;
12482
12570
  /* @conditional-compile-remove(attachment-download) */
12483
12571
  return getAttachmentCountLiveMessage(attachments !== null && attachments !== void 0 ? attachments : [], (_b = (_a = props.strings) === null || _a === void 0 ? void 0 : _a.attachmentCardGroupMessage) !== null && _b !== void 0 ? _b : localeStrings.attachmentCardGroupMessage);
12484
- }, [(_b = props.strings) === null || _b === void 0 ? void 0 : _b.attachmentCardGroupMessage, localeStrings.attachmentCardGroupMessage, attachments]);
12572
+ }, [(_a = props.strings) === null || _a === void 0 ? void 0 : _a.attachmentCardGroupMessage, localeStrings.attachmentCardGroupMessage, attachments]);
12573
+ const hasMultipleAttachments = React.useMemo(() => {
12574
+ var _a, _b;
12575
+ return ((_b = (_a = props.attachments) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 1;
12576
+ }, [props.attachments]);
12485
12577
  if (!attachments || attachments.length === 0 || !attachments) {
12486
12578
  return React.createElement(React.Fragment, null);
12487
12579
  }
12488
- return (React.createElement("div", { style: attachmentDownloadCardsStyle, "data-ui-id": "attachment-download-card-group" },
12489
- React.createElement(_AttachmentCardGroup, { ariaLabel: attachmentCardGroupDescription() }, attachments &&
12490
- attachments.map((attachment) => (React.createElement(react.TooltipHost, { content: downloadAttachmentButtonString(), key: attachment.name },
12491
- React.createElement(_AttachmentCard, { attachment: attachment, key: attachment.id, menuActions: getMenuActions(attachment, localeStrings, message, props.actionsForAttachment), onActionHandlerFailed: props.onActionHandlerFailed })))))));
12580
+ return (React.createElement("div", { className: react$1.mergeClasses(attachmentCardGroupStyles.root, hasMultipleAttachments
12581
+ ? attachmentCardGroupStyles.multipleAttachments
12582
+ : attachmentCardGroupStyles.singleAttachment), "data-ui-id": "attachment-download-card-group" },
12583
+ React.createElement(_AttachmentCardGroup, { ariaLabel: attachmentCardGroupDescription(), attachmentGroupLayout: _AttachmentCardGroupLayout.Grid }, attachments &&
12584
+ attachments.map((attachment) => (React.createElement(_AttachmentCard, { attachment: attachment, key: attachment.id, menuActions: getMenuActions(attachment, localeStrings, message, props.actionsForAttachment), onActionHandlerFailed: props.onActionHandlerFailed, selfResizing: hasMultipleAttachments }))))));
12492
12585
  };
12493
12586
  /**
12494
12587
  * @private
@@ -12768,6 +12861,10 @@ const MessageBubble$1 = (props) => {
12768
12861
  // or not we need to set the target to undefined here to actually hide the action flyout
12769
12862
  setChatMessageActionFlyoutTarget(undefined);
12770
12863
  }, [setChatMessageActionFlyoutTarget]);
12864
+ /* @conditional-compile-remove(attachment-upload) */
12865
+ const hasMultipleAttachments = React.useMemo(() => {
12866
+ return doesMessageContainMultipleAttachments(message);
12867
+ }, [message]);
12771
12868
  const getMessageDetails = React.useCallback(() => {
12772
12869
  if (messageStatus === 'failed') {
12773
12870
  return React.createElement("div", { className: chatMessageFailedTagStyle(theme) }, strings.failToSendTag);
@@ -12805,7 +12902,9 @@ const MessageBubble$1 = (props) => {
12805
12902
  ? chatMessageCommonStyles.blocked
12806
12903
  : props.message.status === 'failed'
12807
12904
  ? chatMessageCommonStyles.failed
12808
- : undefined, attached !== 'top' ? chatMyMessageStyles.bodyAttached : undefined, react.mergeStyles(messageContainerStyle)),
12905
+ : undefined, attached !== 'top' ? chatMyMessageStyles.bodyAttached : undefined,
12906
+ /* @conditional-compile-remove(attachment-upload) */
12907
+ hasMultipleAttachments ? chatMyMessageStyles.multipleAttachments : undefined, react.mergeStyles(messageContainerStyle)),
12809
12908
  style: Object.assign({}, createStyleFromV8Style(messageContainerStyle)),
12810
12909
  ref: messageRef
12811
12910
  }, root: {
@@ -12896,6 +12995,10 @@ const ChatMessageComponentAsEditBox = (props) => {
12896
12995
  const onRenderThemedSubmitIcon = React.useCallback((isHover) => {
12897
12996
  return onRenderSubmitIcon(iconClassName(isHover));
12898
12997
  }, [iconClassName]);
12998
+ /* @conditional-compile-remove(attachment-upload) */
12999
+ const hasMultipleAttachments = React.useMemo(() => {
13000
+ return doesMessageContainMultipleAttachments(message);
13001
+ }, [message]);
12899
13002
  const editBoxStyles = React.useMemo(() => {
12900
13003
  return react.concatStyleSets(editBoxStyleSet, { textField: { borderColor: theme.palette.themePrimary } });
12901
13004
  }, [theme.palette.themePrimary]);
@@ -12945,7 +13048,9 @@ const ChatMessageComponentAsEditBox = (props) => {
12945
13048
  };
12946
13049
  const attached = message.attached === true ? 'center' : message.attached === 'bottom' ? 'bottom' : 'top';
12947
13050
  return (React.createElement(reactChat.ChatMyMessage, { attached: attached, root: {
12948
- className: chatMyMessageStyles.root
13051
+ className: reactComponents.mergeClasses(chatMyMessageStyles.root,
13052
+ /* @conditional-compile-remove(attachment-upload) */
13053
+ hasMultipleAttachments ? chatMyMessageStyles.multipleAttachments : undefined)
12949
13054
  }, body: {
12950
13055
  className: reactComponents.mergeClasses(editContainerStyles.body, message.failureReason !== undefined ? editContainerStyles.bodyError : editContainerStyles.bodyDefault, attached !== 'top' ? editContainerStyles.bodyAttached : undefined)
12951
13056
  } }, getContent()));
@@ -12954,10 +13059,10 @@ const ChatMessageComponentAsEditBox = (props) => {
12954
13059
  // Copyright (c) Microsoft Corporation.
12955
13060
  // Licensed under the MIT License.
12956
13061
  /**
12957
- * @private
13062
+ * @internal
12958
13063
  * ErrorBoundary component to handle errors in React components.
12959
13064
  */
12960
- class ErrorBoundary extends React.Component {
13065
+ class _ErrorBoundary extends React.Component {
12961
13066
  constructor(props) {
12962
13067
  super(props);
12963
13068
  this.state = { hasError: false };
@@ -12982,7 +13087,7 @@ class ErrorBoundary extends React.Component {
12982
13087
  // Copyright (c) Microsoft Corporation.
12983
13088
  // Licensed under the MIT License.
12984
13089
  /* @conditional-compile-remove(rich-text-editor) */
12985
- const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BkDaUOJU.js'); }));
13090
+ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-LLjD-Jp0.js'); }));
12986
13091
  /**
12987
13092
  * @private
12988
13093
  * Use this function to load RoosterJS dependencies early in the lifecycle.
@@ -12990,7 +13095,7 @@ const ChatMessageComponentAsRichTextEditBox = React.lazy(() => Promise.resolve()
12990
13095
  *
12991
13096
  * @conditional-compile-remove(rich-text-editor)
12992
13097
  */
12993
- const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-BkDaUOJU.js'); });
13098
+ const loadChatMessageComponentAsRichTextEditBox = () => Promise.resolve().then(function () { return require('./ChatMessageComponentAsRichTextEditBox-LLjD-Jp0.js'); });
12994
13099
  /**
12995
13100
  * @private
12996
13101
  */
@@ -13002,7 +13107,7 @@ const ChatMessageComponentAsEditBoxPicker = (props) => {
13002
13107
  }, [props]);
13003
13108
  /* @conditional-compile-remove(rich-text-editor) */
13004
13109
  if (richTextEditor) {
13005
- return (React.createElement(ErrorBoundary, { fallback: simpleEditBox },
13110
+ return (React.createElement(_ErrorBoundary, { fallback: simpleEditBox },
13006
13111
  React.createElement(React.Suspense, { fallback: simpleEditBox },
13007
13112
  React.createElement(ChatMessageComponentAsRichTextEditBox, Object.assign({}, props)))));
13008
13113
  }
@@ -13259,6 +13364,10 @@ const MessageBubble = (props) => {
13259
13364
  ]);
13260
13365
  const isBlockedMessage = /* @conditional-compile-remove(data-loss-prevention) */ message.messageType === 'blocked';
13261
13366
  const chatMessageCommonStyles = useChatMessageCommonStyles();
13367
+ /* @conditional-compile-remove(attachment-upload) */
13368
+ const hasMultipleAttachments = React.useMemo(() => {
13369
+ return doesMessageContainMultipleAttachments(message);
13370
+ }, [message]);
13262
13371
  const chatMessageStyles = useChatMessageStyles();
13263
13372
  const chatItemMessageContainerClassName = reactComponents.mergeClasses(chatMessageCommonStyles.body, chatMessageStyles.body,
13264
13373
  // disable placeholder functionality for GA releases as it might confuse users
@@ -13266,7 +13375,9 @@ const MessageBubble = (props) => {
13266
13375
  ? chatMessageCommonStyles.blocked
13267
13376
  : props.message.status === 'failed'
13268
13377
  ? chatMessageCommonStyles.failed
13269
- : undefined, shouldOverlapAvatarAndMessage ? chatMessageStyles.avatarOverlap : chatMessageStyles.avatarNoOverlap, message.attached === 'top' || message.attached === false
13378
+ : undefined, shouldOverlapAvatarAndMessage ? chatMessageStyles.avatarOverlap : chatMessageStyles.avatarNoOverlap,
13379
+ /* @conditional-compile-remove(attachment-upload) */
13380
+ hasMultipleAttachments ? chatMessageStyles.multipleAttachments : undefined, message.attached === 'top' || message.attached === false
13270
13381
  ? chatMessageStyles.bodyWithAvatar
13271
13382
  : chatMessageStyles.bodyWithoutAvatar,
13272
13383
  // messageContainerStyle used in className and style prop as style prop can't handle CSS selectors
@@ -16596,7 +16707,7 @@ const _RemoteVideoTile = React.memo((props) => {
16596
16707
  }
16597
16708
  return remoteParticipant.displayName;
16598
16709
  };
16599
- const reactionOverlay = (React.createElement(MeetingReactionOverlay, { overlayMode: "grid-tiles", reaction: remoteParticipant.reaction, reactionResources: reactionResources }));
16710
+ const reactionOverlay = reactionResources && (React.createElement(MeetingReactionOverlay, { overlayMode: "grid-tiles", reaction: remoteParticipant.reaction, reactionResources: reactionResources }));
16600
16711
  /* @conditional-compile-remove(hide-attendee-name) */
16601
16712
  displayName = formatDisplayName();
16602
16713
  return (React.createElement(react.Stack, { tabIndex: menuKind === 'drawer' ? 0 : undefined, onKeyDown: menuKind === 'drawer' ? onKeyDown : undefined, style: remoteVideoTileWrapperStyle },
@@ -16743,9 +16854,9 @@ const RemoteScreenShare = React.memo((props) => {
16743
16854
  : '';
16744
16855
  /* @conditional-compile-remove(ppt-live) */
16745
16856
  if (isPPTLive) {
16746
- return (React.createElement(VideoTile, { renderElement: renderElement ? (React.createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React.createElement(LoadingSpinner, { loadingMessage: loadingMessage }), overlay: React.createElement(MeetingReactionOverlay, { reactionResources: reactionResources, localParticipant: localParticipant, remoteParticipants: remoteParticipants, overlayMode: "screen-share" }) }));
16857
+ return (React.createElement(VideoTile, { renderElement: renderElement ? (React.createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React.createElement(LoadingSpinner, { loadingMessage: loadingMessage }), overlay: reactionResources && (React.createElement(MeetingReactionOverlay, { reactionResources: reactionResources, localParticipant: localParticipant, remoteParticipants: remoteParticipants, overlayMode: "screen-share" })) }));
16747
16858
  }
16748
- return (React.createElement(VideoTile, { displayName: displayName, isMuted: isMuted, renderElement: renderElement ? (React.createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React.createElement(LoadingSpinner, { loadingMessage: loadingMessage }), overlay: React.createElement(MeetingReactionOverlay, { reactionResources: reactionResources, localParticipant: localParticipant, remoteParticipants: remoteParticipants, overlayMode: "screen-share" }) }));
16859
+ return (React.createElement(VideoTile, { displayName: displayName, isMuted: isMuted, renderElement: renderElement ? (React.createElement(StreamMedia, { videoStreamElement: renderElement, loadingState: isReceiving === false ? 'loading' : 'none' })) : undefined, onRenderPlaceholder: () => React.createElement(LoadingSpinner, { loadingMessage: loadingMessage }), overlay: reactionResources && (React.createElement(MeetingReactionOverlay, { reactionResources: reactionResources, localParticipant: localParticipant, remoteParticipants: remoteParticipants, overlayMode: "screen-share" })) }));
16749
16860
  });
16750
16861
  const LoadingSpinner = (props) => {
16751
16862
  return (React.createElement(react.Stack, { verticalAlign: "center", className: loadingStyle },
@@ -21910,6 +22021,8 @@ const _VideoEffectsItem = (props) => {
21910
22021
  const isSelected = (_a = props.isSelected) !== null && _a !== void 0 ? _a : false;
21911
22022
  const disabled = (_b = props.disabled) !== null && _b !== void 0 ? _b : false;
21912
22023
  const backgroundImage = (_c = props.backgroundProps) === null || _c === void 0 ? void 0 : _c.url;
22024
+ const iconContainerStyles = react.mergeStyles({ height: '1.25rem' }, (_d = props.styles) === null || _d === void 0 ? void 0 : _d.iconContainer);
22025
+ const textContainerStyles = react.mergeStyles({ height: '1.25rem' }, (_e = props.styles) === null || _e === void 0 ? void 0 : _e.textContainer);
21913
22026
  const containerStyles = React.useCallback(() => videoEffectsItemContainerStyles({
21914
22027
  theme,
21915
22028
  isSelected,
@@ -21923,12 +22036,12 @@ const _VideoEffectsItem = (props) => {
21923
22036
  }
21924
22037
  }, [componentRef, props.focusOnMount]);
21925
22038
  return (React.createElement(react.TooltipHost, Object.assign({}, props.tooltipProps),
21926
- React.createElement(react.Stack, { key: props.itemKey, className: react.mergeStyles((_d = props.styles) === null || _d === void 0 ? void 0 : _d.root), verticalAlign: "center", horizontalAlign: "center", "data-ui-id": `video-effects-item`, "aria-label": (_e = props.ariaLabel) !== null && _e !== void 0 ? _e : props.itemKey, "aria-disabled": props.disabled },
22039
+ React.createElement(react.Stack, { key: props.itemKey, className: react.mergeStyles((_f = props.styles) === null || _f === void 0 ? void 0 : _f.root), verticalAlign: "center", horizontalAlign: "center", "data-ui-id": `video-effects-item`, "aria-label": (_g = props.ariaLabel) !== null && _g !== void 0 ? _g : props.itemKey, "aria-disabled": props.disabled },
21927
22040
  React.createElement(react.DefaultButton, { styles: containerStyles(), onClick: disabled ? undefined : () => { var _a; return (_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, props.itemKey); }, componentRef: componentRef, autoFocus: props.focusOnMount },
21928
- React.createElement(react.Stack, { horizontalAlign: 'center', tokens: { childrenGap: '0.15rem' } },
21929
- props.iconProps && (React.createElement(react.Stack.Item, { styles: { root: (_f = props.styles) === null || _f === void 0 ? void 0 : _f.iconContainer } },
22041
+ React.createElement(react.Stack, { horizontalAlign: 'center' },
22042
+ props.iconProps && (React.createElement(react.Stack.Item, { className: iconContainerStyles },
21930
22043
  React.createElement(react.Icon, Object.assign({}, props.iconProps)))),
21931
- props.title && (React.createElement(react.Stack.Item, { styles: { root: (_g = props.styles) === null || _g === void 0 ? void 0 : _g.textContainer } },
22044
+ props.title && (React.createElement(react.Stack.Item, { className: textContainerStyles },
21932
22045
  React.createElement(react.Text, { variant: "small" }, props.title))))))));
21933
22046
  };
21934
22047
 
@@ -27090,6 +27203,43 @@ const AttachmentDownloadErrorBar = (props) => {
27090
27203
  }
27091
27204
  };
27092
27205
 
27206
+ // Copyright (c) Microsoft Corporation.
27207
+ // Licensed under the MIT License.
27208
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
27209
+ /**
27210
+ * Wrapper for RichTextSendBox component to allow us to use usePropsFor with richTextSendBox with lazy loading
27211
+ */
27212
+ const RichTextSendBoxWrapper = React.lazy(() => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D7SB5NwN.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper })));
27213
+ /**
27214
+ * @private
27215
+ * Use this function to load RoosterJS dependencies early in the lifecycle.
27216
+ * It should be the same import as used for lazy loading.
27217
+ *
27218
+ /* @conditional-compile-remove(rich-text-editor-composite-support)
27219
+ */
27220
+ const loadRichTextSendBox = () => Promise.resolve().then(function () { return require('./RichTextSendBoxWrapper-D7SB5NwN.js'); }).then((module) => ({ default: module.RichTextSendBoxWrapper }));
27221
+ /**
27222
+ * @private
27223
+ */
27224
+ const SendBoxPicker = (props) => {
27225
+ const {
27226
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
27227
+ richTextEditor } = props;
27228
+ const sendBoxProps = usePropsFor$2(SendBox);
27229
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
27230
+ const isRichTextEditorEnabled = React.useMemo(() => {
27231
+ return richTextEditor;
27232
+ }, [richTextEditor]);
27233
+ const sendBox = React.useMemo(() => React.createElement(SendBox, Object.assign({}, sendBoxProps, props)), [props, sendBoxProps]);
27234
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
27235
+ if (isRichTextEditorEnabled) {
27236
+ return (React.createElement(_ErrorBoundary, { fallback: sendBox },
27237
+ React.createElement(React.Suspense, { fallback: sendBox },
27238
+ React.createElement(RichTextSendBoxWrapper, Object.assign({}, props)))));
27239
+ }
27240
+ return sendBox;
27241
+ };
27242
+
27093
27243
  // Copyright (c) Microsoft Corporation.
27094
27244
  // Licensed under the MIT License.
27095
27245
  var __awaiter$m = (window && window.__awaiter) || function (thisArg, _arguments, P, generator) {
@@ -27126,8 +27276,16 @@ const ChatScreen = (props) => {
27126
27276
  });
27127
27277
  fetchData();
27128
27278
  }, [adapter]);
27279
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
27280
+ React.useEffect(() => {
27281
+ // if rich text editor is enabled, the rich text editor component should be loaded early for good UX
27282
+ if ((options === null || options === void 0 ? void 0 : options.richTextEditor) !== undefined && options.richTextEditor) {
27283
+ // this line is needed to load the Rooster JS dependencies early in the lifecycle
27284
+ // when the rich text editor is enabled
27285
+ loadRichTextSendBox();
27286
+ }
27287
+ }, [options === null || options === void 0 ? void 0 : options.richTextEditor]);
27129
27288
  const messageThreadProps = usePropsFor$2(MessageThread);
27130
- const sendBoxProps = usePropsFor$2(SendBox);
27131
27289
  const typingIndicatorProps = usePropsFor$2(TypingIndicator);
27132
27290
  const headerProps = useAdaptedSelector$1(getHeaderProps);
27133
27291
  const errorBarProps = usePropsFor$2(ErrorBar);
@@ -27323,7 +27481,8 @@ const ChatScreen = (props) => {
27323
27481
  const attachments = React.useMemo(() => {
27324
27482
  return uploads === null || uploads === void 0 ? void 0 : uploads.map((v) => v.metadata);
27325
27483
  }, [uploads]);
27326
- const onSendMessageHandler = React.useCallback(function (content, /* @conditional-compile-remove(attachment-upload) */ options) {
27484
+ const onSendMessageHandler = React.useCallback(function (content,
27485
+ /* @conditional-compile-remove(attachment-upload) */ /* @conditional-compile-remove(rich-text-editor-composite-support) */ options) {
27327
27486
  return __awaiter$m(this, void 0, void 0, function* () {
27328
27487
  var _a;
27329
27488
  /* @conditional-compile-remove(attachment-upload) */
@@ -27332,7 +27491,9 @@ const ChatScreen = (props) => {
27332
27491
  handleUploadAction({ type: AttachmentUploadActionType.Clear });
27333
27492
  /* @conditional-compile-remove(attachment-upload) */
27334
27493
  yield adapter.sendMessage(content, {
27335
- attachments: attachments
27494
+ attachments: attachments,
27495
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
27496
+ type: options === null || options === void 0 ? void 0 : options.type
27336
27497
  });
27337
27498
  /* @conditional-compile-remove(attachment-upload) */
27338
27499
  return;
@@ -27355,21 +27516,25 @@ const ChatScreen = (props) => {
27355
27516
  }, []), attachmentDownloadErrorMessage: downloadErrorMessage || '' }),
27356
27517
  React.createElement(MessageThread, Object.assign({}, messageThreadProps, { onRenderAvatar: onRenderAvatarCallback, onRenderMessage: onRenderMessage,
27357
27518
  /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
27358
- onRenderAttachmentDownloads: onRenderAttachmentDownloads, inlineImageOptions: inlineImageOptions, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles })),
27519
+ onRenderAttachmentDownloads: onRenderAttachmentDownloads, inlineImageOptions: inlineImageOptions, numberOfChatMessagesToReload: defaultNumberOfChatMessagesToReload, styles: messageThreadStyles,
27520
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
27521
+ richTextEditor: options === null || options === void 0 ? void 0 : options.richTextEditor })),
27359
27522
  React.createElement(react.Stack, { className: react.mergeStyles(sendboxContainerStyles) },
27360
27523
  React.createElement("div", { className: react.mergeStyles(typingIndicatorContainerStyles) }, onRenderTypingIndicator ? (onRenderTypingIndicator(typingIndicatorProps.typingUsers)) : (React.createElement(TypingIndicator, Object.assign({}, typingIndicatorProps, { styles: typingIndicatorStyles })))),
27361
27524
  React.createElement(react.Stack, { horizontal: formFactor === 'mobile' },
27362
27525
  formFactor === 'mobile' && (React.createElement(react.Stack, { verticalAlign: "center" },
27363
27526
  React.createElement(AttachmentButton, null))),
27364
27527
  React.createElement(react.Stack, { grow: true },
27365
- React.createElement(SendBox, Object.assign({}, sendBoxProps, { autoFocus: options === null || options === void 0 ? void 0 : options.autoFocus, styles: sendBoxStyles,
27528
+ React.createElement(SendBoxPicker, { styles: sendBoxStyles, autoFocus: options === null || options === void 0 ? void 0 : options.autoFocus,
27529
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
27530
+ richTextEditor: options === null || options === void 0 ? void 0 : options.richTextEditor,
27366
27531
  /* @conditional-compile-remove(attachment-upload) */
27367
27532
  attachments: attachments,
27368
27533
  /* @conditional-compile-remove(attachment-upload) */
27369
27534
  onCancelAttachmentUpload: onCancelUploadHandler,
27370
27535
  // we need to overwrite onSendMessage for SendBox because we need to clear attachment state
27371
27536
  // when submit button is clicked
27372
- onSendMessage: onSendMessageHandler }))),
27537
+ onSendMessage: onSendMessageHandler })),
27373
27538
  formFactor !== 'mobile' && React.createElement(AttachmentButton, null)))),
27374
27539
  /* @conditional-compile-remove(chat-composite-participant-pane) */
27375
27540
  (options === null || options === void 0 ? void 0 : options.participantPane) === true && (React.createElement(ChatScreenPeoplePane, { onFetchAvatarPersonaData: onFetchAvatarPersonaData, onFetchParticipantMenuItems: props.onFetchParticipantMenuItems, isMobile: formFactor === 'mobile' }))),
@@ -38054,11 +38219,15 @@ const CallWithChatScreen = (props) => {
38054
38219
  /* @conditional-compile-remove(chat-composite-participant-pane) */
38055
38220
  participantPane: false,
38056
38221
  /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
38057
- attachmentOptions: props.attachmentOptions
38222
+ attachmentOptions: props.attachmentOptions,
38223
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */
38224
+ richTextEditor: props.richTextEditor
38058
38225
  }, onFetchAvatarPersonaData: props.onFetchAvatarPersonaData })), [
38059
38226
  chatAdapter,
38060
- /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */ props.attachmentOptions,
38227
+ /* @conditional-compile-remove(attachment-download) @conditional-compile-remove(attachment-upload) */
38228
+ props.attachmentOptions,
38061
38229
  props.onFetchAvatarPersonaData,
38230
+ /* @conditional-compile-remove(rich-text-editor-composite-support) */ props.richTextEditor,
38062
38231
  theme
38063
38232
  ]);
38064
38233
  const sidePaneHeaderRenderer = React.useCallback(() => {
@@ -39692,6 +39861,7 @@ exports.createTeamsCallAdapter = createTeamsCallAdapter;
39692
39861
  exports.createTeamsCallAdapterFromClient = createTeamsCallAdapterFromClient;
39693
39862
  exports.darkTheme = darkTheme;
39694
39863
  exports.defaultAttachmentMenuAction = defaultAttachmentMenuAction;
39864
+ exports.doesMessageContainMultipleAttachments = doesMessageContainMultipleAttachments;
39695
39865
  exports.editBoxRichTextEditorStyle = editBoxRichTextEditorStyle;
39696
39866
  exports.editBoxWidthStyles = editBoxWidthStyles;
39697
39867
  exports.fromFlatCommunicationIdentifier = fromFlatCommunicationIdentifier;
@@ -39720,10 +39890,11 @@ exports.useChatMyMessageStyles = useChatMyMessageStyles;
39720
39890
  exports.useChatThreadClient = useChatThreadClient;
39721
39891
  exports.useDeviceManager = useDeviceManager;
39722
39892
  exports.useLocale = useLocale$1;
39723
- exports.usePropsFor = usePropsFor;
39893
+ exports.usePropsFor = usePropsFor$2;
39894
+ exports.usePropsFor$1 = usePropsFor;
39724
39895
  exports.useSelector = useSelector;
39725
39896
  exports.useTeamsCall = useTeamsCall;
39726
39897
  exports.useTeamsCallAdapter = useTeamsCallAdapter;
39727
39898
  exports.useTeamsCallAgent = useTeamsCallAgent;
39728
39899
  exports.useTheme = useTheme;
39729
- //# sourceMappingURL=index-DJswSfNy.js.map
39900
+ //# sourceMappingURL=index-CfI_of00.js.map