@azure/communication-react 1.15.0-alpha-202404030013 → 1.15.0-alpha-202404050013

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 (174) hide show
  1. package/dist/communication-react.d.ts +11 -18
  2. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-B3cXye-F.js +122 -0
  3. package/dist/dist-cjs/communication-react/ChatMessageComponentAsRichTextEditBox-B3cXye-F.js.map +1 -0
  4. package/dist/dist-cjs/communication-react/{index-aOBAWcNI.js → index-C4BFVPuO.js} +508 -473
  5. package/dist/dist-cjs/communication-react/index-C4BFVPuO.js.map +1 -0
  6. package/dist/dist-cjs/communication-react/index.js +2 -2
  7. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js +1 -1
  8. package/dist/dist-esm/acs-ui-common/src/telemetryVersion.js.map +1 -1
  9. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js +0 -1
  10. package/dist/dist-esm/calling-component-bindings/src/baseSelectors.js.map +1 -1
  11. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js +5 -35
  12. package/dist/dist-esm/calling-component-bindings/src/callControlSelectors.js.map +1 -1
  13. package/dist/dist-esm/calling-stateful-client/src/CallClientState.js.map +1 -1
  14. package/dist/dist-esm/calling-stateful-client/src/CallContext.js +0 -1
  15. package/dist/dist-esm/calling-stateful-client/src/CallContext.js.map +1 -1
  16. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js +0 -3
  17. package/dist/dist-esm/calling-stateful-client/src/CallSubscriber.js.map +1 -1
  18. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js +0 -1
  19. package/dist/dist-esm/calling-stateful-client/src/CapabilitiesSubscriber.js.map +1 -1
  20. package/dist/dist-esm/calling-stateful-client/src/index-public.js.map +1 -1
  21. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js +16 -9
  22. package/dist/dist-esm/chat-component-bindings/src/handlers/createHandlers.js.map +1 -1
  23. package/dist/dist-esm/communication-react/src/index.d.ts +2 -1
  24. package/dist/dist-esm/communication-react/src/index.js.map +1 -1
  25. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js +8 -8
  26. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsEditBox.js.map +1 -1
  27. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.js +5 -5
  28. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.js.map +1 -1
  29. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.d.ts +1 -0
  30. package/dist/dist-esm/react-components/src/components/ChatMessage/ChatMessageComponentWrapper.js.map +1 -1
  31. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.d.ts +23 -0
  32. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js +24 -0
  33. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMessageComponentAsEditBoxPicker.js.map +1 -0
  34. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.d.ts +7 -4
  35. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js +11 -4
  36. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/ChatMyMessageComponent.js.map +1 -1
  37. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js +9 -3
  38. package/dist/dist-esm/react-components/src/components/ChatMessage/MyMessageComponents/FluentChatMyMessageComponent.js.map +1 -1
  39. package/dist/dist-esm/react-components/src/components/Drawer/ReactionDrawerMenuItem.js +1 -1
  40. package/dist/dist-esm/react-components/src/components/Drawer/ReactionDrawerMenuItem.js.map +1 -1
  41. package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js +1 -1
  42. package/dist/dist-esm/react-components/src/components/MeetingReactionOverlay.js.map +1 -1
  43. package/dist/dist-esm/react-components/src/components/MessageThread.d.ts +6 -0
  44. package/dist/dist-esm/react-components/src/components/MessageThread.js +6 -2
  45. package/dist/dist-esm/react-components/src/components/MessageThread.js.map +1 -1
  46. package/dist/dist-esm/react-components/src/components/ReactionButton.js +1 -1
  47. package/dist/dist-esm/react-components/src/components/ReactionButton.js.map +1 -1
  48. package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/RichTextRibbonButtons.js +1 -1
  49. package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/RichTextRibbonButtons.js.map +1 -1
  50. package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextInsertTableButton.js +1 -2
  51. package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextInsertTableButton.js.map +1 -1
  52. package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextTableContextMenu.js +11 -2
  53. package/dist/dist-esm/react-components/src/components/RichTextEditor/Buttons/Table/RichTextTableContextMenu.js.map +1 -1
  54. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.d.ts +16 -0
  55. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js +36 -0
  56. package/dist/dist-esm/react-components/src/components/RichTextEditor/Plugins/CopyPastePlugin.js.map +1 -0
  57. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js +11 -1
  58. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextEditor.js.map +1 -1
  59. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js +5 -5
  60. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextInputBoxComponent.js.map +1 -1
  61. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js +25 -25
  62. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBox.js.map +1 -1
  63. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js +6 -6
  64. package/dist/dist-esm/react-components/src/components/RichTextEditor/RichTextSendBoxErrors.js.map +1 -1
  65. package/dist/dist-esm/react-components/src/components/SendBox.js +18 -18
  66. package/dist/dist-esm/react-components/src/components/SendBox.js.map +1 -1
  67. package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js +16 -7
  68. package/dist/dist-esm/react-components/src/components/VideoGallery/ParticipantVideoTileOverlay.js.map +1 -1
  69. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js +2 -2
  70. package/dist/dist-esm/react-components/src/components/VideoGallery/RemoteContentShareReactionOverlay.js.map +1 -1
  71. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.d.ts +2 -0
  72. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.js +3 -0
  73. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/reactionUtils.js.map +1 -1
  74. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.d.ts +4 -0
  75. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js +21 -0
  76. package/dist/dist-esm/react-components/src/components/VideoGallery/utils/videoGalleryLayoutUtils.js.map +1 -1
  77. package/dist/dist-esm/react-components/src/components/index.js.map +1 -1
  78. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js +4 -1
  79. package/dist/dist-esm/react-components/src/components/styles/ReactionButton.styles.js.map +1 -1
  80. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.d.ts +4 -0
  81. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js +6 -0
  82. package/dist/dist-esm/react-components/src/components/styles/RichTextEditor.styles.js.map +1 -1
  83. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js +2 -3
  84. package/dist/dist-esm/react-components/src/components/styles/SendBox.styles.js.map +1 -1
  85. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.d.ts +4 -3
  86. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js +13 -19
  87. package/dist/dist-esm/react-components/src/components/styles/VideoTile.styles.js.map +1 -1
  88. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js +5 -6
  89. package/dist/dist-esm/react-components/src/components/utils/ChatMessageComponentAsEditBoxUtils.js.map +1 -1
  90. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js +2 -2
  91. package/dist/dist-esm/react-components/src/components/utils/SendBoxUtils.js.map +1 -1
  92. package/dist/dist-esm/react-components/src/theming/icons.js +1 -1
  93. package/dist/dist-esm/react-components/src/theming/icons.js.map +1 -1
  94. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js +5 -23
  95. package/dist/dist-esm/react-composites/src/composites/CallComposite/CallComposite.js.map +1 -1
  96. package/dist/dist-esm/react-composites/src/composites/CallComposite/Strings.js.map +1 -1
  97. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.d.ts +2 -2
  98. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js +0 -2
  99. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/AzureCommunicationCallAdapter.js.map +1 -1
  100. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.d.ts +4 -2
  101. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/CallAdapter.js.map +1 -1
  102. package/dist/dist-esm/react-composites/src/composites/CallComposite/adapter/index.js.map +1 -1
  103. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js +0 -3
  104. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallArrangement.js.map +1 -1
  105. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js +7 -1
  106. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CallControls.js.map +1 -1
  107. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js +0 -7
  108. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/CapabilitiesChangedNotificationBar.js.map +1 -1
  109. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js +1 -5
  110. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Camera.js.map +1 -1
  111. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js +1 -5
  112. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/Microphone.js.map +1 -1
  113. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js +0 -1
  114. package/dist/dist-esm/react-composites/src/composites/CallComposite/components/buttons/ScreenShare.js.map +1 -1
  115. package/dist/dist-esm/react-composites/src/composites/CallComposite/index.js.map +1 -1
  116. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js +2 -6
  117. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/CallPage.js.map +1 -1
  118. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js +3 -14
  119. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/ConfigurationPage.js.map +1 -1
  120. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/DtmfDialpadPage.js.map +1 -1
  121. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/HoldPage.js.map +1 -1
  122. package/dist/dist-esm/react-composites/src/composites/CallComposite/pages/LobbyPage.js.map +1 -1
  123. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js +0 -2
  124. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/baseSelectors.js.map +1 -1
  125. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js +0 -3
  126. package/dist/dist-esm/react-composites/src/composites/CallComposite/selectors/capabilitiesChangedInfoAndRoleSelector.js.map +1 -1
  127. package/dist/dist-esm/react-composites/src/composites/CallComposite/types/CapabilityChangedNotificationTracking.js.map +1 -1
  128. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js +0 -6
  129. package/dist/dist-esm/react-composites/src/composites/CallComposite/utils/TrackCapabilityChangedNotifications.js.map +1 -1
  130. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js +1 -8
  131. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/CallWithChatComposite.js.map +1 -1
  132. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js +15 -15
  133. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/AzureCommunicationCallWithChatAdapter.js.map +1 -1
  134. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.d.ts +2 -3
  135. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatAdapter.js.map +1 -1
  136. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.d.ts +1 -2
  137. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js +8 -8
  138. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/adapter/CallWithChatBackedChatAdapter.js.map +1 -1
  139. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js +2 -2
  140. package/dist/dist-esm/react-composites/src/composites/CallWithChatComposite/state/CallWithChatAdapterState.js.map +1 -1
  141. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.d.ts +0 -14
  142. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatComposite.js.map +1 -1
  143. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js +18 -6
  144. package/dist/dist-esm/react-composites/src/composites/ChatComposite/ChatScreen.js.map +1 -1
  145. package/dist/dist-esm/react-composites/src/composites/ChatComposite/Strings.js.map +1 -1
  146. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.js +6 -6
  147. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationAttachmentUploadAdapter.js.map +1 -1
  148. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js +22 -22
  149. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/AzureCommunicationChatAdapter.js.map +1 -1
  150. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapter.js.map +1 -1
  151. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js +1 -1
  152. package/dist/dist-esm/react-composites/src/composites/ChatComposite/adapter/ChatAdapterProvider.js.map +1 -1
  153. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js +4 -4
  154. package/dist/dist-esm/react-composites/src/composites/ChatComposite/file-sharing/AttachmentUploadButton.js.map +1 -1
  155. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js +9 -5
  156. package/dist/dist-esm/react-composites/src/composites/ChatComposite/hooks/useHandlers.js.map +1 -1
  157. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.d.ts +2 -2
  158. package/dist/dist-esm/react-composites/src/composites/ChatComposite/index.js.map +1 -1
  159. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js +1 -1
  160. package/dist/dist-esm/react-composites/src/composites/ChatComposite/selectors/baseSelectors.js.map +1 -1
  161. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js +7 -1
  162. package/dist/dist-esm/react-composites/src/composites/common/ControlBar/CommonCallControlBar.js.map +1 -1
  163. package/dist/dist-esm/react-composites/src/composites/common/icons.js +2 -5
  164. package/dist/dist-esm/react-composites/src/composites/common/icons.js.map +1 -1
  165. package/package.json +13 -12
  166. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-B8qxZi1I.js +0 -54
  167. package/dist/dist-cjs/communication-react/RichTextSendBoxWrapper-B8qxZi1I.js.map +0 -1
  168. package/dist/dist-cjs/communication-react/index-aOBAWcNI.js.map +0 -1
  169. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.d.ts +0 -9
  170. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js +0 -20
  171. package/dist/dist-esm/react-composites/src/composites/common/RichTextSendBoxWrapper.js.map +0 -1
  172. package/dist/dist-esm/react-composites/src/composites/common/SendBox.d.ts +0 -17
  173. package/dist/dist-esm/react-composites/src/composites/common/SendBox.js +0 -45
  174. package/dist/dist-esm/react-composites/src/composites/common/SendBox.js.map +0 -1
@@ -1032,11 +1032,13 @@ export declare interface CallAdapterCallOperations {
1032
1032
  */
1033
1033
  submitSurvey(survey: CallSurvey): Promise<CallSurveyResponse | undefined>;
1034
1034
  /**
1035
- * Start spotlight
1035
+ * Start spotlight for local and remote participants by their user ids.
1036
+ * If no array of user ids is passed then action is performed on local participant.
1036
1037
  */
1037
1038
  startSpotlight(userIds?: string[]): Promise<void>;
1038
1039
  /**
1039
- * Stop spotlight
1040
+ * Stop spotlight for local and remote participants by their user ids.
1041
+ * If no array of user ids is passed then action is performed on local participant.
1040
1042
  */
1041
1043
  stopSpotlight(userIds?: string[]): Promise<void>;
1042
1044
  /**
@@ -4044,7 +4046,7 @@ export declare interface CallWithChatControlOptions extends CommonCallControlOpt
4044
4046
  *
4045
4047
  * @public
4046
4048
  */
4047
- export declare type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | /* @conditional-compile-remove(capabilities) */ 'capabilitiesChanged' | /* @conditional-compile-remove(spotlight) */ 'spotlightChanged' | 'messageReceived' | 'messageEdited' | 'messageDeleted' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
4049
+ export declare type CallWithChatEvent = 'callError' | 'chatError' | 'callEnded' | 'isMutedChanged' | 'callIdChanged' | 'isLocalScreenSharingActiveChanged' | 'displayNameChanged' | 'isSpeakingChanged' | 'callParticipantsJoined' | 'callParticipantsLeft' | 'selectedMicrophoneChanged' | 'selectedSpeakerChanged' | /* @conditional-compile-remove(close-captions) */ 'isCaptionsActiveChanged' | /* @conditional-compile-remove(close-captions) */ 'captionsReceived' | /* @conditional-compile-remove(close-captions) */ 'isCaptionLanguageChanged' | /* @conditional-compile-remove(close-captions) */ 'isSpokenLanguageChanged' | 'capabilitiesChanged' | /* @conditional-compile-remove(spotlight) */ 'spotlightChanged' | 'messageReceived' | 'messageEdited' | 'messageDeleted' | 'messageSent' | 'messageRead' | 'chatParticipantsAdded' | 'chatParticipantsRemoved';
4048
4050
 
4049
4051
  /**
4050
4052
  * @beta
@@ -4770,13 +4772,6 @@ export declare type ChatCompositeOptions = {
4770
4772
  * @beta
4771
4773
  */
4772
4774
  attachmentOptions?: AttachmentOptions;
4773
- /**
4774
- * Properties for configuring the richTextEditor feature.
4775
- * @defaultValue false
4776
- *
4777
- * @beta
4778
- */
4779
- richTextEditor?: boolean | RichTextEditorOptions;
4780
4775
  };
4781
4776
 
4782
4777
  /**
@@ -8352,6 +8347,12 @@ export declare type MessageThreadProps = {
8352
8347
  * @beta
8353
8348
  */
8354
8349
  inlineImageOptions?: InlineImageOptions;
8350
+ /**
8351
+ * enables rich text editor for the edit box
8352
+ *
8353
+ * @defaultValue `false`
8354
+ */
8355
+ richTextEditor?: boolean;
8355
8356
  };
8356
8357
 
8357
8358
  /**
@@ -9576,14 +9577,6 @@ export declare type ResourceFetchResult = {
9576
9577
  error?: Error;
9577
9578
  };
9578
9579
 
9579
- /**
9580
- * Options for configuring the rich text editor.
9581
- *
9582
- * @beta
9583
- */
9584
- export declare interface RichTextEditorOptions {
9585
- }
9586
-
9587
9580
  /**
9588
9581
  * A component to render SendBox with Rich Text Editor support.
9589
9582
  *
@@ -0,0 +1,122 @@
1
+ 'use strict';
2
+
3
+ var react = require('@fluentui/react');
4
+ var reactChat = require('@fluentui-contrib/react-chat');
5
+ var reactComponents = require('@fluentui/react-components');
6
+ require('@azure/communication-common');
7
+ var index = require('./index-C4BFVPuO.js');
8
+ var React = require('react');
9
+ require('reselect');
10
+ require('@azure/communication-calling');
11
+ require('memoize-one');
12
+ require('@azure/logger');
13
+ require('events');
14
+ require('immer');
15
+ require('@fluentui/react-icons');
16
+ require('textarea-caret-ts');
17
+ require('use-debounce');
18
+ require('@fluentui/react-file-type-icons');
19
+ require('@griffel/react');
20
+ require('roosterjs-editor-plugins');
21
+ require('roosterjs-editor-core');
22
+ require('roosterjs-react');
23
+ require('roosterjs-editor-dom');
24
+ require('roosterjs-editor-types-compatible');
25
+ require('roosterjs-editor-api');
26
+ require('uuid');
27
+ require('html-react-parser');
28
+ require('react-linkify');
29
+ require('dompurify');
30
+ require('@fluentui/react-hooks');
31
+ require('react-use-draggable-scroll');
32
+ require('@fluentui/react-window-provider');
33
+ require('copy-to-clipboard');
34
+ require('@azure/communication-chat');
35
+ require('nanoid');
36
+ require('@azure/communication-calling-effects');
37
+
38
+ // Copyright (c) Microsoft Corporation.
39
+ // Licensed under the MIT License.
40
+ /**
41
+ * @beta
42
+ */
43
+ const ChatMessageComponentAsRichTextEditBox = (props) => {
44
+ const { onCancel, onSubmit, strings, message } = props;
45
+ const [textValue, setTextValue] = React.useState(message.content || '');
46
+ /* @conditional-compile-remove(attachment-upload) */
47
+ const [attachmentMetadata, _] = React.useState(index.getMessageWithAttachmentMetadata(message));
48
+ const editTextFieldRef = React.useRef(null);
49
+ const theme = index.useTheme();
50
+ const messageState = index.getMessageState(textValue,
51
+ /* @conditional-compile-remove(attachment-upload) */ attachmentMetadata !== null && attachmentMetadata !== void 0 ? attachmentMetadata : []);
52
+ const submitEnabled = messageState === 'OK';
53
+ const editContainerStyles = index.useChatMessageRichTextEditContainerStyles();
54
+ const chatMyMessageStyles = index.useChatMyMessageStyles();
55
+ const locale = index.useLocale().strings;
56
+ // TODO: Check if the focus is needed, if so use `focusOnInit` prop
57
+ // for Rooster component instead as this sets focus too early
58
+ React.useEffect(() => {
59
+ var _a;
60
+ (_a = editTextFieldRef.current) === null || _a === void 0 ? void 0 : _a.focus();
61
+ }, []);
62
+ const setText = (newValue) => {
63
+ setTextValue(newValue !== null && newValue !== void 0 ? newValue : '');
64
+ };
65
+ const textTooLongMessage = messageState === 'too long'
66
+ ? index._formatString(strings.editBoxTextLimit, { limitNumber: `${index.MAXIMUM_LENGTH_OF_MESSAGE}` })
67
+ : undefined;
68
+ const iconClassName = React.useCallback((isHover) => {
69
+ const color = isHover ? theme.palette.accent : theme.palette.neutralSecondary;
70
+ return react.mergeStyles(index.richTextEditBoxActionButtonIcon, { color });
71
+ }, [theme.palette.accent, theme.palette.neutralSecondary]);
72
+ const onRenderThemedCancelIcon = React.useCallback((isHover) => {
73
+ return index.onRenderCancelIcon(iconClassName(isHover));
74
+ }, [iconClassName]);
75
+ const onRenderThemedSubmitIcon = React.useCallback((isHover) => {
76
+ return index.onRenderSubmitIcon(iconClassName(isHover));
77
+ }, [iconClassName]);
78
+ const actionButtons = React.useMemo(() => {
79
+ return (React.createElement(react.Stack, { horizontal: true },
80
+ React.createElement(index.InputBoxButton, { className: index.richTextActionButtonsStyle, ariaLabel: strings.editBoxCancelButton, tooltipContent: strings.editBoxCancelButton, onRenderIcon: onRenderThemedCancelIcon, onClick: () => {
81
+ onCancel && onCancel(message.messageId);
82
+ }, id: 'dismissIconWrapper' }),
83
+ React.createElement(index.InputBoxButton, { className: index.richTextActionButtonsStyle, ariaLabel: strings.editBoxSubmitButton, tooltipContent: strings.editBoxSubmitButton, onRenderIcon: onRenderThemedSubmitIcon, onClick: (e) => {
84
+ submitEnabled &&
85
+ onSubmit(textValue, message.metadata,
86
+ /* @conditional-compile-remove(attachment-upload) */ {
87
+ attachmentMetadata
88
+ });
89
+ e.stopPropagation();
90
+ }, id: 'submitIconWrapper' })));
91
+ }, [
92
+ /* @conditional-compile-remove(attachment-upload) */ attachmentMetadata,
93
+ message.messageId,
94
+ message.metadata,
95
+ onCancel,
96
+ onRenderThemedCancelIcon,
97
+ onRenderThemedSubmitIcon,
98
+ onSubmit,
99
+ strings.editBoxCancelButton,
100
+ strings.editBoxSubmitButton,
101
+ submitEnabled,
102
+ textValue
103
+ ]);
104
+ const richTextLocaleStrings = React.useMemo(() => {
105
+ /* @conditional-compile-remove(rich-text-editor) */
106
+ return locale.richTextSendBox;
107
+ }, [/* @conditional-compile-remove(rich-text-editor) */ locale.richTextSendBox, locale.sendBox]);
108
+ const getContent = () => {
109
+ return (React.createElement(react.Stack, { className: react.mergeStyles(index.editBoxWidthStyles) },
110
+ React.createElement(index.RichTextSendBoxErrors, { textTooLongMessage: textTooLongMessage, systemMessage: message.failureReason }),
111
+ React.createElement(index.RichTextInputBoxComponent, { placeholderText: strings.editBoxPlaceholderText, onChange: setText, editorComponentRef: editTextFieldRef, initialContent: message.content, strings: richTextLocaleStrings, disabled: false, actionComponents: actionButtons, richTextEditorStyleProps: index.editBoxRichTextEditorStyle, isHorizontalLayoutDisabled: true })));
112
+ };
113
+ const attached = message.attached === true ? 'center' : message.attached === 'bottom' ? 'bottom' : 'top';
114
+ return (React.createElement(reactChat.ChatMyMessage, { attached: attached, root: {
115
+ className: chatMyMessageStyles.root
116
+ }, body: {
117
+ className: reactComponents.mergeClasses(editContainerStyles.body, attached !== 'top' ? editContainerStyles.bodyAttached : undefined)
118
+ } }, getContent()));
119
+ };
120
+
121
+ exports.ChatMessageComponentAsRichTextEditBox = ChatMessageComponentAsRichTextEditBox;
122
+ //# sourceMappingURL=ChatMessageComponentAsRichTextEditBox-B3cXye-F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatMessageComponentAsRichTextEditBox-B3cXye-F.js","sources":["../../../../react-components/src/components/ChatMessage/ChatMessageComponentAsRichTextEditBox.tsx"],"sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { mergeStyles, Stack } from '@fluentui/react';\nimport { ChatMyMessage } from '@fluentui-contrib/react-chat';\nimport { mergeClasses } from '@fluentui/react-components';\nimport { _formatString } from '@internal/acs-ui-common';\nimport { useTheme } from '../../theming/FluentThemeProvider';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { editBoxWidthStyles, richTextEditBoxActionButtonIcon } from '../styles/EditBox.styles';\nimport { InputBoxButton } from '../InputBoxButton';\nimport { MessageThreadStrings } from '../MessageThread';\nimport { useChatMyMessageStyles } from '../styles/MessageThread.styles';\nimport { ChatMessage } from '../../types';\nimport { _AttachmentUploadCards } from '../AttachmentUploadCards';\n/* @conditional-compile-remove(attachment-upload) */\nimport { AttachmentMetadata } from '../../types/Attachment';\nimport { useChatMessageRichTextEditContainerStyles } from '../styles/ChatMessageComponent.styles';\nimport { MAXIMUM_LENGTH_OF_MESSAGE } from '../utils/SendBoxUtils';\nimport { getMessageState, onRenderCancelIcon, onRenderSubmitIcon } from '../utils/ChatMessageComponentAsEditBoxUtils';\n/* @conditional-compile-remove(attachment-upload) */\nimport { getMessageWithAttachmentMetadata } from '../utils/ChatMessageComponentAsEditBoxUtils';\nimport { RichTextEditorComponentRef } from '../RichTextEditor/RichTextEditor';\nimport { RichTextInputBoxComponent } from '../RichTextEditor/RichTextInputBoxComponent';\nimport { editBoxRichTextEditorStyle, richTextActionButtonsStyle } from '../styles/RichTextEditor.styles';\nimport { RichTextSendBoxErrors } from '../RichTextEditor/RichTextSendBoxErrors';\nimport { useLocale } from '../../localization';\n\n/** @beta */\nexport type ChatMessageComponentAsRichTextEditBoxProps = {\n onCancel?: (messageId: string) => void;\n onSubmit: (\n text: string,\n metadata?: Record<string, string>,\n options?: {\n /* @conditional-compile-remove(attachment-upload) */\n attachmentMetadata?: AttachmentMetadata[];\n }\n ) => void;\n message: ChatMessage;\n strings: MessageThreadStrings;\n};\n\n/**\n * @beta\n */\nexport const ChatMessageComponentAsRichTextEditBox = (\n props: ChatMessageComponentAsRichTextEditBoxProps\n): JSX.Element => {\n const { onCancel, onSubmit, strings, message } = props;\n\n const [textValue, setTextValue] = useState<string>(message.content || '');\n /* @conditional-compile-remove(attachment-upload) */\n const [attachmentMetadata, _] = React.useState(getMessageWithAttachmentMetadata(message));\n const editTextFieldRef = React.useRef<RichTextEditorComponentRef>(null);\n const theme = useTheme();\n const messageState = getMessageState(\n textValue,\n /* @conditional-compile-remove(attachment-upload) */ attachmentMetadata ?? []\n );\n const submitEnabled = messageState === 'OK';\n\n const editContainerStyles = useChatMessageRichTextEditContainerStyles();\n const chatMyMessageStyles = useChatMyMessageStyles();\n const locale = useLocale().strings;\n\n // TODO: Check if the focus is needed, if so use `focusOnInit` prop\n // for Rooster component instead as this sets focus too early\n useEffect(() => {\n editTextFieldRef.current?.focus();\n }, []);\n\n const setText = (newValue?: string): void => {\n setTextValue(newValue ?? '');\n };\n\n const textTooLongMessage =\n messageState === 'too long'\n ? _formatString(strings.editBoxTextLimit, { limitNumber: `${MAXIMUM_LENGTH_OF_MESSAGE}` })\n : undefined;\n\n const iconClassName = useCallback(\n (isHover: boolean) => {\n const color = isHover ? theme.palette.accent : theme.palette.neutralSecondary;\n return mergeStyles(richTextEditBoxActionButtonIcon, { color });\n },\n [theme.palette.accent, theme.palette.neutralSecondary]\n );\n\n const onRenderThemedCancelIcon = useCallback(\n (isHover: boolean) => {\n return onRenderCancelIcon(iconClassName(isHover));\n },\n [iconClassName]\n );\n\n const onRenderThemedSubmitIcon = useCallback(\n (isHover: boolean) => {\n return onRenderSubmitIcon(iconClassName(isHover));\n },\n [iconClassName]\n );\n\n const actionButtons = useMemo(() => {\n return (\n <Stack horizontal>\n <InputBoxButton\n className={richTextActionButtonsStyle}\n ariaLabel={strings.editBoxCancelButton}\n tooltipContent={strings.editBoxCancelButton}\n onRenderIcon={onRenderThemedCancelIcon}\n onClick={() => {\n onCancel && onCancel(message.messageId);\n }}\n id={'dismissIconWrapper'}\n />\n <InputBoxButton\n className={richTextActionButtonsStyle}\n ariaLabel={strings.editBoxSubmitButton}\n tooltipContent={strings.editBoxSubmitButton}\n onRenderIcon={onRenderThemedSubmitIcon}\n onClick={(e) => {\n submitEnabled &&\n onSubmit(\n textValue,\n message.metadata,\n /* @conditional-compile-remove(attachment-upload) */ {\n attachmentMetadata\n }\n );\n e.stopPropagation();\n }}\n id={'submitIconWrapper'}\n />\n </Stack>\n );\n }, [\n /* @conditional-compile-remove(attachment-upload) */ attachmentMetadata,\n message.messageId,\n message.metadata,\n onCancel,\n onRenderThemedCancelIcon,\n onRenderThemedSubmitIcon,\n onSubmit,\n strings.editBoxCancelButton,\n strings.editBoxSubmitButton,\n submitEnabled,\n textValue\n ]);\n const richTextLocaleStrings = useMemo(() => {\n /* @conditional-compile-remove(rich-text-editor) */\n return locale.richTextSendBox;\n return locale.sendBox;\n }, [/* @conditional-compile-remove(rich-text-editor) */ locale.richTextSendBox, locale.sendBox]);\n\n const getContent = (): JSX.Element => {\n return (\n <Stack className={mergeStyles(editBoxWidthStyles)}>\n <RichTextSendBoxErrors textTooLongMessage={textTooLongMessage} systemMessage={message.failureReason} />\n <RichTextInputBoxComponent\n placeholderText={strings.editBoxPlaceholderText}\n onChange={setText}\n editorComponentRef={editTextFieldRef}\n initialContent={message.content}\n strings={richTextLocaleStrings}\n disabled={false}\n actionComponents={actionButtons}\n richTextEditorStyleProps={editBoxRichTextEditorStyle}\n isHorizontalLayoutDisabled={true}\n />\n </Stack>\n );\n };\n\n const attached = message.attached === true ? 'center' : message.attached === 'bottom' ? 'bottom' : 'top';\n return (\n <ChatMyMessage\n attached={attached}\n root={{\n className: chatMyMessageStyles.root\n }}\n body={{\n className: mergeClasses(\n editContainerStyles.body,\n attached !== 'top' ? editContainerStyles.bodyAttached : undefined\n )\n }}\n >\n {getContent()}\n </ChatMyMessage>\n );\n};\n"],"names":["useState","getMessageWithAttachmentMetadata","useTheme","getMessageState","useChatMessageRichTextEditContainerStyles","useChatMyMessageStyles","useLocale","useEffect","_formatString","MAXIMUM_LENGTH_OF_MESSAGE","useCallback","mergeStyles","richTextEditBoxActionButtonIcon","onRenderCancelIcon","onRenderSubmitIcon","useMemo","Stack","InputBoxButton","richTextActionButtonsStyle","editBoxWidthStyles","RichTextSendBoxErrors","RichTextInputBoxComponent","editBoxRichTextEditorStyle","ChatMyMessage","mergeClasses"],"mappings":"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"}