botframework-webchat-component 4.18.1 → 4.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/boot/deprecated/component.js +7 -0
- package/boot/deprecated/component.mjs +5 -0
- package/boot/deprecated/decorator.js +7 -0
- package/boot/deprecated/decorator.mjs +5 -0
- package/boot/deprecated/hook.js +7 -0
- package/boot/deprecated/hook.mjs +5 -0
- package/boot/deprecated/internal.js +7 -0
- package/boot/deprecated/internal.mjs +5 -0
- package/component.js +3 -0
- package/decorator.js +3 -0
- package/dist/TextBox-BEU2rUID.d.mts +46 -0
- package/dist/TextBox-BEU2rUID.d.ts +46 -0
- package/dist/_dtsroll-chunks/BlpMO3PT-empty-object.d.ts +34 -0
- package/dist/_dtsroll-chunks/Cha1SOtx-botframework-webchat-styles.react.d.ts +38 -0
- package/dist/_dtsroll-chunks/DP9nda2m-botframework-webchat-react-hooks.d.ts +19 -0
- package/dist/botframework-webchat-component.component.css +2 -0
- package/dist/botframework-webchat-component.component.css.map +1 -0
- package/dist/botframework-webchat-component.component.d.mts +9 -0
- package/dist/botframework-webchat-component.component.d.ts +9 -0
- package/dist/botframework-webchat-component.component.js +2 -0
- package/dist/botframework-webchat-component.component.js.map +1 -0
- package/dist/botframework-webchat-component.component.mjs +2 -0
- package/dist/botframework-webchat-component.component.mjs.map +1 -0
- package/dist/botframework-webchat-component.css +2 -0
- package/dist/botframework-webchat-component.css.map +1 -0
- package/dist/botframework-webchat-component.d.mts +64 -2312
- package/dist/botframework-webchat-component.d.ts +90 -0
- package/dist/botframework-webchat-component.decorator.css +2 -0
- package/dist/botframework-webchat-component.decorator.css.map +1 -0
- package/dist/botframework-webchat-component.decorator.d.mts +28 -0
- package/dist/botframework-webchat-component.decorator.d.ts +28 -0
- package/dist/botframework-webchat-component.decorator.js +2 -0
- package/dist/botframework-webchat-component.decorator.js.map +1 -0
- package/dist/botframework-webchat-component.decorator.mjs +2 -0
- package/dist/botframework-webchat-component.decorator.mjs.map +1 -0
- package/dist/botframework-webchat-component.hook.css +2 -0
- package/dist/botframework-webchat-component.hook.css.map +1 -0
- package/dist/botframework-webchat-component.hook.d.mts +8 -0
- package/dist/botframework-webchat-component.hook.d.ts +8 -0
- package/dist/botframework-webchat-component.hook.js +2 -0
- package/dist/botframework-webchat-component.hook.js.map +1 -0
- package/dist/botframework-webchat-component.hook.mjs +2 -0
- package/dist/botframework-webchat-component.hook.mjs.map +1 -0
- package/dist/botframework-webchat-component.internal.css +2 -0
- package/dist/botframework-webchat-component.internal.css.map +1 -0
- package/dist/botframework-webchat-component.internal.d.mts +68 -3
- package/dist/botframework-webchat-component.internal.d.ts +70 -0
- package/dist/botframework-webchat-component.internal.js +2 -0
- package/dist/botframework-webchat-component.internal.js.map +1 -0
- package/dist/botframework-webchat-component.internal.mjs +1 -2
- package/dist/botframework-webchat-component.js +2 -0
- package/dist/botframework-webchat-component.js.map +1 -0
- package/dist/botframework-webchat-component.mjs +1 -11
- package/dist/botframework-webchat-component.mjs.map +1 -1
- package/dist/chunk-2R7BJ63Z.js +2 -0
- package/dist/chunk-2R7BJ63Z.js.map +1 -0
- package/dist/chunk-A4NDFSZM.mjs +77 -0
- package/dist/chunk-A4NDFSZM.mjs.map +1 -0
- package/dist/chunk-CNTMOACS.mjs +2 -0
- package/dist/chunk-CNTMOACS.mjs.map +1 -0
- package/dist/chunk-GTOP3WPD.mjs +2 -0
- package/dist/chunk-GTOP3WPD.mjs.map +1 -0
- package/dist/chunk-H5YR7OLF.js +2 -0
- package/dist/chunk-H5YR7OLF.js.map +1 -0
- package/dist/chunk-I6DJ35K3.mjs +2 -0
- package/dist/chunk-I6DJ35K3.mjs.map +1 -0
- package/dist/chunk-I6EXXZUN.js +2 -0
- package/dist/chunk-I6EXXZUN.js.map +1 -0
- package/dist/chunk-LVVCSDZ4.mjs +2 -0
- package/dist/chunk-LVVCSDZ4.mjs.map +1 -0
- package/dist/chunk-MOJMHOVH.js +2 -0
- package/dist/chunk-MOJMHOVH.js.map +1 -0
- package/dist/chunk-TMUNLKZW.js +2 -0
- package/dist/chunk-TMUNLKZW.js.map +1 -0
- package/dist/chunk-TYPS3H4I.mjs +2 -0
- package/dist/chunk-TYPS3H4I.mjs.map +1 -0
- package/dist/chunk-U6OWCHTQ.js +2 -0
- package/dist/chunk-U6OWCHTQ.js.map +1 -0
- package/dist/chunk-UKBRB4EA.mjs +2 -0
- package/dist/chunk-UKBRB4EA.mjs.map +1 -0
- package/dist/chunk-VDF6GQAL.js +77 -0
- package/dist/chunk-VDF6GQAL.js.map +1 -0
- package/dist/component-BtSxgJS5.d.mts +539 -0
- package/dist/component-Fyy8iCRE.d.ts +539 -0
- package/dist/hook-B7KuomGm.d.mts +2259 -0
- package/dist/hook-o9AgRedV.d.ts +2259 -0
- package/dist/metafile-cjs.json +1 -0
- package/dist/metafile-esm.json +1 -1
- package/hook.js +3 -0
- package/internal.js +1 -1
- package/package.json +146 -81
- package/src/Activity/AttachmentRow.tsx +56 -0
- package/src/Activity/Avatar.tsx +20 -23
- package/src/Activity/Bubble.module.css +131 -0
- package/src/Activity/Bubble.tsx +45 -70
- package/src/Activity/CarouselFilmStrip.js +31 -112
- package/src/Activity/CarouselFilmStrip.module.css +155 -0
- package/src/Activity/CarouselFilmStripAttachment.js +14 -15
- package/src/Activity/CarouselFilmStripAttachment.module.css +38 -0
- package/src/Activity/CarouselLayout.js +16 -17
- package/src/Activity/CarouselLayout.module.css +30 -0
- package/src/Activity/CodeBlockContent.module.css +40 -0
- package/src/Activity/CodeBlockContent.tsx +42 -0
- package/src/Activity/CollapsibleContent.module.css +43 -0
- package/src/Activity/CollapsibleContent.tsx +68 -0
- package/src/Activity/SayAlt.module.css +4 -0
- package/src/Activity/SayAlt.tsx +25 -0
- package/src/Activity/Speak.tsx +84 -42
- package/src/Activity/StackedLayout.module.css +233 -0
- package/src/Activity/StackedLayout.tsx +265 -198
- package/src/Activity/StackedLayoutMain.tsx +36 -0
- package/src/Activity/StackedLayoutMessageStatus.tsx +57 -0
- package/src/Activity/StackedLayoutRoot.tsx +71 -0
- package/src/Activity/StackedLayoutStatus.tsx +36 -0
- package/src/Activity/private/MessageStatusLoader.module.css +18 -0
- package/src/Activity/private/MessageStatusLoader.tsx +27 -0
- package/src/ActivityDebug/RestrictedActivityDebugAPI.ts +15 -0
- package/src/ActivityDebug/index.ts +1 -0
- package/src/ActivityFeedback/ActivityFeedback.tsx +88 -0
- package/src/ActivityFeedback/private/FeedbackForm.module.css +123 -0
- package/src/ActivityFeedback/private/FeedbackForm.tsx +83 -0
- package/src/ActivityFeedback/private/FeedbackVoteButton.tsx +88 -0
- package/src/ActivityFeedback/private/FeedbackVoteButtonBar.tsx +40 -0
- package/src/ActivityFeedback/private/ThumbButton.Image.tsx +35 -0
- package/src/ActivityFeedback/private/ThumbButton.module.css +91 -0
- package/src/ActivityFeedback/private/ThumbButton.tsx +103 -0
- package/src/ActivityFeedback/private/canActionResubmit.ts +6 -0
- package/src/ActivityFeedback/private/getDisclaimerFromFeedbackLoop.ts +10 -0
- package/src/ActivityFeedback/private/getDisclaimerFromReviewAction.ts +12 -0
- package/src/ActivityFeedback/private/hasFeedbackLoop.ts +42 -0
- package/src/ActivityFeedback/private/isActionRequireReview.ts +10 -0
- package/src/ActivityFeedback/providers/ActivityFeedbackComposer.tsx +372 -0
- package/src/ActivityFeedback/providers/private/ActivityFeedbackContext.ts +24 -0
- package/src/ActivityFeedback/providers/private/FocusPropagation.ts +10 -0
- package/src/ActivityFeedback/providers/useActivityFeedbackHooks.ts +6 -0
- package/src/ActivityStatus/AbsoluteTime.tsx +37 -0
- package/src/ActivityStatus/ActivityStatus.module.css +31 -0
- package/src/ActivityStatus/OthersActivityStatus.tsx +52 -53
- package/src/ActivityStatus/SelfActivityStatus.tsx +11 -8
- package/src/ActivityStatus/SendStatus/SendStatus.tsx +23 -23
- package/src/ActivityStatus/StatusSlot.tsx +17 -0
- package/src/ActivityStatus/Timestamp.tsx +17 -12
- package/src/ActivityStatus/private/Originator.tsx +33 -10
- package/src/ActivityStatus/private/RelativeTime.tsx +43 -0
- package/src/Assets/TypingAnimation.js +3 -1
- package/src/Attachment/AudioContent.tsx +20 -29
- package/src/Attachment/FileContent.tsx +46 -46
- package/src/Attachment/HTMLVideoContent.tsx +21 -27
- package/src/Attachment/ImageAttachment.tsx +58 -0
- package/src/Attachment/ImageContent.tsx +13 -27
- package/src/Attachment/Text/TextAttachment.tsx +38 -14
- package/src/Attachment/Text/TextContent.module.css +45 -0
- package/src/Attachment/Text/TextContent.tsx +40 -16
- package/src/Attachment/Text/private/ActivityButton.module.css +45 -0
- package/src/Attachment/Text/private/ActivityButton.tsx +71 -0
- package/src/Attachment/Text/private/ActivityCopyButton.module.css +45 -0
- package/src/Attachment/Text/private/ActivityCopyButton.tsx +109 -0
- package/src/Attachment/Text/private/ActivityViewCodeButton.tsx +66 -0
- package/src/Attachment/Text/private/CitationModal.module.css +9 -0
- package/src/Attachment/Text/private/CitationModalContent.tsx +28 -21
- package/src/Attachment/Text/private/CodeContent.tsx +44 -0
- package/src/Attachment/Text/private/MarkdownTextContent.tsx +223 -126
- package/src/Attachment/Text/private/Markdownable.tsx +39 -0
- package/src/Attachment/Text/private/MessageSensitivityLabel.tsx +47 -34
- package/src/Attachment/Text/private/PlainTextContent.tsx +24 -14
- package/src/Attachment/Text/private/ShieldIcon.tsx +52 -34
- package/src/Attachment/Text/private/ViewCodeDialog.module.css +59 -0
- package/src/Attachment/Text/private/isAIGeneratedActivity.ts +5 -0
- package/src/Attachment/VideoAttachment.js +1 -1
- package/src/Attachment/VideoContent.tsx +21 -27
- package/src/Attachment/VimeoContent.tsx +21 -25
- package/src/Attachment/YouTubeContent.tsx +21 -25
- package/src/Avatar/ImageAvatar.tsx +48 -0
- package/src/Avatar/InitialsAvatar.tsx +55 -0
- package/src/BasicConnectivityStatus.js +7 -7
- package/src/BasicToast.js +1 -1
- package/src/BasicToaster.js +47 -8
- package/src/BasicTranscript.tsx +402 -587
- package/src/BasicWebChat.tsx +28 -34
- package/src/BuiltInDecorator.tsx +17 -0
- package/src/ChatHistory/ChatHistoryBox.tsx +27 -0
- package/src/ChatHistory/ChatHistoryToolbar.tsx +36 -0
- package/src/ChatHistory/private/ScrollToEndButton.tsx +105 -0
- package/src/Composer.tsx +226 -128
- package/src/ConnectivityStatus/Connecting.tsx +77 -0
- package/src/Dictation.js +16 -24
- package/src/ErrorBox.tsx +54 -26
- package/src/Icon/ComponentIcon.module.css +113 -0
- package/src/Icon/ComponentIcon.tsx +59 -0
- package/src/Icon/index.ts +1 -0
- package/src/LinkDefinition/LinkDefinitionItem.tsx +51 -21
- package/src/LinkDefinition/LinkDefinitions.module.css +209 -0
- package/src/LinkDefinition/LinkDefinitions.tsx +84 -19
- package/src/LinkDefinition/index.ts +6 -4
- package/src/LinkDefinition/private/Badge.tsx +12 -1
- package/src/LinkDefinition/private/ItemBody.tsx +24 -15
- package/src/LinkDefinition/private/OpenInNewWindowIcon.tsx +20 -13
- package/src/LinkDefinition/private/extractHostnameWithSubdomain.spec.ts +2 -0
- package/src/LinkDefinition/private/extractHostnameWithSubdomain.ts +1 -1
- package/src/LiveRegion/LiveRegionActivity.tsx +18 -18
- package/src/LiveRegion/private/LiveRegionSuggestedActions.tsx +34 -25
- package/src/Middleware/Activity/defaultActivityPolymiddleware.tsx +104 -0
- package/src/Middleware/ActivityGrouping/createDefaultActivityGroupingDecoratorMiddleware.tsx +21 -0
- package/src/Middleware/ActivityGrouping/ui/LegacyActivityBridgeComposer.tsx +91 -0
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGrouping.module.css +76 -0
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGrouping.tsx +97 -0
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGroupingList.tsx +30 -0
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/CollapsibleGroupingTitle.tsx +29 -0
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/PartGrouping.tsx +52 -0
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.module.css +29 -0
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/private/PartGroupingActivity.tsx +258 -0
- package/src/Middleware/ActivityGrouping/ui/PartGrouping/private/usePartGroupingLogicalGroup.ts +41 -0
- package/src/Middleware/ActivityGrouping/ui/RenderActivity.tsx +37 -0
- package/src/Middleware/ActivityGrouping/ui/RenderActivityGrouping.tsx +41 -0
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/SenderGrouping.tsx +49 -0
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/private/SenderGroupingContext.ts +18 -0
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/private/useSenderGroupingContext.ts +6 -0
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/useFirstActivity.ts +6 -0
- package/src/Middleware/ActivityGrouping/ui/SenderGrouping/useLastActivity.ts +6 -0
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/StatusGrouping.tsx +49 -0
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/private/StatusGroupingContext.ts +18 -0
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/private/useStatusGroupingContext.ts +6 -0
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/useFirstActivity.ts +6 -0
- package/src/Middleware/ActivityGrouping/ui/StatusGrouping/useLastActivity.ts +6 -0
- package/src/Middleware/ActivityStatus/createTimestampMiddleware.tsx +2 -2
- package/src/Middleware/Avatar/DefaultAvatar.tsx +61 -0
- package/src/Middleware/Avatar/createDefaultAvatarPolymiddleware.tsx +22 -0
- package/src/Middleware/ScrollToEndButton/ScrollToEndButton.tsx +58 -0
- package/src/ReactWebChat.tsx +3 -8
- package/src/ScreenReaderText.tsx +27 -34
- package/src/SendBox/AttachmentBar/AttachmentBar.module.css +32 -0
- package/src/SendBox/AttachmentBar/AttachmentBar.tsx +71 -0
- package/src/SendBox/AttachmentBar/AttachmentBarItem.module.css +137 -0
- package/src/SendBox/AttachmentBar/AttachmentBarItem.tsx +103 -0
- package/src/SendBox/AttachmentBar/ItemDeleteButton.tsx +61 -0
- package/src/SendBox/AttachmentBar/ItemPreview.tsx +52 -0
- package/src/SendBox/AttachmentBar/Preview/FilePreview.module.css +35 -0
- package/src/SendBox/AttachmentBar/Preview/FilePreview.tsx +63 -0
- package/src/SendBox/AttachmentBar/Preview/ImagePreview.module.css +5 -0
- package/src/SendBox/AttachmentBar/Preview/ImagePreview.tsx +46 -0
- package/src/SendBox/AttachmentBar/Preview/sendBoxAttachment.ts +13 -0
- package/src/SendBox/AttachmentBar/index.ts +3 -0
- package/src/SendBox/AutoResizeTextArea.tsx +28 -64
- package/src/SendBox/BasicSendBox.tsx +99 -30
- package/src/SendBox/DictationInterims.tsx +32 -21
- package/src/SendBox/DropZone.tsx +64 -0
- package/src/SendBox/IconButton.tsx +32 -30
- package/src/SendBox/MicrophoneButton.tsx +29 -23
- package/src/SendBox/SendButton.tsx +26 -21
- package/src/SendBox/SuggestedAction.tsx +60 -72
- package/src/SendBox/SuggestedActions.tsx +6 -9
- package/src/SendBox/TextBox.tsx +57 -39
- package/src/SendBoxToolbar/Assets/AttachmentIcon.tsx +6 -23
- package/src/SendBoxToolbar/BasicSendBoxToolbar.tsx +4 -2
- package/src/SendBoxToolbar/UploadButton.tsx +47 -26
- package/src/Styles/CSSCustomPropertiesContainer.tsx +195 -0
- package/src/Styles/CustomPropertyNames.ts +66 -6
- package/src/Styles/StyleSet/ActivityButton.ts +49 -0
- package/src/Styles/StyleSet/ActivityCopyButton.ts +40 -0
- package/src/Styles/StyleSet/AudioAttachment.ts +3 -3
- package/src/Styles/StyleSet/Avatar.ts +4 -3
- package/src/Styles/StyleSet/CarouselFilmStrip.ts +9 -7
- package/src/Styles/StyleSet/CarouselFilmStripAttachment.ts +3 -4
- package/src/Styles/StyleSet/ChatHistoryBox.ts +22 -0
- package/src/Styles/StyleSet/CodeBlock.ts +39 -0
- package/src/Styles/StyleSet/CodeBlockCopyButton.ts +71 -0
- package/src/Styles/StyleSet/ErrorBox.ts +2 -2
- package/src/Styles/StyleSet/FileContent.ts +2 -1
- package/src/Styles/StyleSet/ImageAvatar.ts +8 -5
- package/src/Styles/StyleSet/InitialsAvatar.ts +4 -5
- package/src/Styles/StyleSet/LinkDefinitions.ts +17 -11
- package/src/Styles/StyleSet/MicrophoneButton.ts +1 -1
- package/src/Styles/StyleSet/ModalDialog.ts +14 -8
- package/src/Styles/StyleSet/RenderMarkdown.ts +35 -0
- package/src/Styles/StyleSet/ScrollToEndButton.ts +0 -11
- package/src/Styles/StyleSet/SendBox.ts +57 -7
- package/src/Styles/StyleSet/SendBoxButton.ts +7 -5
- package/src/Styles/StyleSet/SendBoxTextBox.ts +6 -1
- package/src/Styles/StyleSet/SendStatus.ts +12 -0
- package/src/Styles/StyleSet/SpinnerAnimation.ts +3 -1
- package/src/Styles/StyleSet/StackedLayout.ts +18 -9
- package/src/Styles/StyleSet/SuggestedAction.ts +1 -13
- package/src/Styles/StyleSet/TextContent.ts +17 -2
- package/src/Styles/StyleSet/ThumbButton.ts +77 -24
- package/src/Styles/StyleSet/Tooltip.ts +66 -0
- package/src/Styles/StyleSet/TypingAnimation.ts +3 -1
- package/src/Styles/StyleSet/ViewCodeDialog.ts +70 -0
- package/src/Styles/StyleSet/types/StyleSet.ts +11 -0
- package/src/Styles/createStyleSet.ts +14 -14
- package/src/TextArea/TextArea.module.css +75 -0
- package/src/TextArea/TextArea.tsx +126 -0
- package/src/TextArea/index.ts +1 -0
- package/src/Tooltip/index.ts +1 -0
- package/src/Tooltip/private/Tooltip.tsx +26 -0
- package/src/Transcript/ActivityRow.tsx +100 -39
- package/src/Transcript/ActivityTree.tsx +35 -0
- package/src/Transcript/FocusTrap.tsx +96 -38
- package/src/Transcript/LiveRegion/SendFailed.tsx +8 -10
- package/src/Transcript/LiveRegionTranscript.tsx +11 -62
- package/src/Transcript/TranscriptFocus/TranscriptActivityList.tsx +22 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocus.module.css +117 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusArea.tsx +27 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusContent.tsx +34 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusContentActiveDescendant.tsx +26 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusContentBody.tsx +20 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusContentOverlay.tsx +20 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusIndicator.tsx +28 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusTerminator.tsx +42 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusTerminatorBody.tsx +20 -0
- package/src/Transcript/TranscriptFocus/TranscriptFocusTerminatorText.tsx +20 -0
- package/src/Transcript/TranscriptFocus/index.ts +25 -0
- package/src/Transcript/hooks/useRenderActivityProps.ts +88 -0
- package/src/Utils/AccessKeySink/Surface.tsx +63 -0
- package/src/Utils/AccessibleButton.tsx +64 -49
- package/src/Utils/AccessibleInputText.tsx +97 -106
- package/src/Utils/AccessibleTextArea.tsx +10 -41
- package/src/Utils/FixedWidthImage.tsx +60 -0
- package/src/Utils/FocusRedirector.tsx +31 -26
- package/src/Utils/InlineMarkdown.js +6 -1
- package/src/Utils/JSONLinkedData/__snapshots__/dereferenceBlankNodes.spec.ts.snap +17 -17
- package/src/Utils/JSONLinkedData/dereferenceBlankNodes.spec.ts +2 -0
- package/src/Utils/JSONLinkedData/dereferenceBlankNodes.ts +1 -1
- package/src/Utils/JSONLinkedData/getSafeOwnPropertyNames.ts +2 -2
- package/src/Utils/JSONLinkedData/isUnconnectedBlankNode.spec.ts +2 -0
- package/src/Utils/LocalizedString.tsx +3 -3
- package/src/Utils/addTargetBlankToHyperlinksMarkdown.spec.js +4 -4
- package/src/Utils/createIconComponent.tsx +126 -0
- package/src/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.ts +2 -0
- package/src/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.ts +4 -4
- package/src/Utils/firstTabbableDescendant.js +0 -1
- package/src/Utils/orgSchema/getFirstBaseOfSoftwareSourceCode.ts +15 -0
- package/src/Utils/parseDocumentFragmentFromString.ts +9 -0
- package/src/Utils/readDataURIToBlob.ts +37 -0
- package/src/Utils/serializeDocumentFragmentIntoString.ts +3 -0
- package/src/Utils/supportPseudoClass.ts +1 -1
- package/src/Utils/tabbableElements.ts +7 -1
- package/src/Utils/textFormatToContentType.ts +14 -0
- package/src/Utils/updateMarkdownAttrs.spec.js +14 -14
- package/src/Utils/walkMarkdownTokens.spec.js +1 -1
- package/src/__tests__/addMetaTag.spec.js +8 -0
- package/src/__tests__/addMetaTag.spec.mjs +8 -0
- package/src/boot/component.ts +45 -0
- package/src/boot/decorator.ts +1 -0
- package/src/boot/hook.ts +118 -0
- package/src/boot/internal.ts +15 -0
- package/src/buildInfo.ts +9 -0
- package/src/decorator/index.ts +3 -0
- package/src/decorator/private/BorderFlair.module.css +566 -0
- package/src/decorator/private/BorderFlair.tsx +39 -0
- package/src/decorator/private/BorderLoader.module.css +53 -0
- package/src/decorator/private/BorderLoader.tsx +24 -0
- package/src/decorator/private/WebChatDecorator.tsx +64 -0
- package/src/decorator/stylesheet/DecoratorStylesheet.tsx +33 -0
- package/src/decorator/stylesheet/createDecoratorStyleElements.ts +8 -0
- package/src/env.d.ts +11 -0
- package/src/hooks/RenderMarkdown.module.css +102 -0
- package/src/hooks/index.ts +4 -0
- package/src/hooks/internal/UITracker.js +1 -1
- package/src/hooks/internal/WebChatUIContext.ts +19 -1
- package/src/hooks/internal/codeHighlighter/index.ts +3 -0
- package/src/hooks/internal/codeHighlighter/private/CodeHighlighterComposer.tsx +32 -0
- package/src/hooks/internal/codeHighlighter/private/createCodeHighlighterComposer.tsx +32 -0
- package/src/hooks/internal/codeHighlighter/private/defaultHighlightCode.tsx +22 -0
- package/src/hooks/internal/createWaitUntilable.spec.ts +4 -2
- package/src/hooks/internal/createWaitUntilable.ts +1 -1
- package/src/hooks/internal/private/createOnEventShim.spec.ts +2 -0
- package/src/hooks/internal/styleToEmotionObject/index.ts +1 -0
- package/src/hooks/internal/styleToEmotionObject/private/StyleToEmotionObjectComposer.tsx +20 -0
- package/src/hooks/internal/styleToEmotionObject/private/createStyleToEmotionObjectComposer.tsx +22 -0
- package/src/hooks/internal/useEmotion.ts +37 -0
- package/src/hooks/internal/useFeedbackActions.ts +120 -0
- package/src/hooks/internal/useForceRenderAtInterval.ts +6 -6
- package/src/hooks/internal/useMemoized.spec.jsx +3 -3
- package/src/hooks/internal/useMemoized.ts +1 -1
- package/src/hooks/internal/useNonce.ts +7 -0
- package/src/hooks/internal/useObserveFocusVisible.ts +0 -1
- package/src/hooks/internal/useSanitizeHrefCallback.ts +37 -0
- package/src/hooks/internal/useStateRef.ts +1 -1
- package/src/hooks/sendBoxFocus.ts +6 -2
- package/src/hooks/transcriptScrollRelative.ts +6 -3
- package/src/hooks/useObserveScrollPosition.ts +3 -0
- package/src/hooks/useObserveTranscriptFocus.ts +9 -3
- package/src/hooks/useRenderMarkdownAsHTML.ts +32 -29
- package/src/hooks/useSendFiles.ts +4 -1
- package/src/hooks/useStreamingMarkdownWithDefinitions.ts +193 -0
- package/src/index.ts +30 -125
- package/src/providers/ActivityLogicalGrouping/ActivityLogicalGroupingComposer.ts +100 -0
- package/src/providers/ActivityLogicalGrouping/index.ts +7 -0
- package/src/providers/ActivityLogicalGrouping/private/ActivityLogicalGroupingContext.ts +31 -0
- package/src/providers/ActivityLogicalGrouping/private/useStateWithOptimisticRef.ts +13 -0
- package/src/providers/ActivityLogicalGrouping/useAddLogicalGrouping.ts +5 -0
- package/src/providers/ActivityLogicalGrouping/useGetGroupState.ts +5 -0
- package/src/providers/ActivityLogicalGrouping/useGetLogicalGroupBoundaries.ts +5 -0
- package/src/providers/ActivityLogicalGrouping/useGetLogicalGroupKey.ts +5 -0
- package/src/providers/ActivityLogicalGrouping/useRemoveLogicalGrouping.ts +5 -0
- package/src/providers/ChatHistoryDOM/ChatHistoryDOMComposer.tsx +18 -0
- package/src/providers/ChatHistoryDOM/private/ChatHistoryDOMContext.ts +11 -0
- package/src/providers/ChatHistoryDOM/useActivityElementRef.ts +6 -0
- package/src/providers/CustomElements/CustomElementsComposer.tsx +58 -0
- package/src/providers/CustomElements/customElements/CodeBlock.module.css +35 -0
- package/src/providers/CustomElements/customElements/CodeBlock.ts +230 -0
- package/src/providers/CustomElements/customElements/CodeBlockCopyButton.module.css +63 -0
- package/src/providers/CustomElements/customElements/CodeBlockCopyButton.tsx +108 -0
- package/src/providers/CustomElements/customElements/wrapAsCustomElement.ts +85 -0
- package/src/providers/CustomElements/private/CustomElementsContext.ts +15 -0
- package/src/providers/CustomElements/private/useCustomElementsContext.ts +6 -0
- package/src/providers/CustomElements/useCodeBlockCopyButtonTagName.ts +8 -0
- package/src/providers/CustomElements/useCodeBlockTagName.ts +19 -0
- package/src/providers/GroupedRenderingActivities/GroupedRenderingActivities.ts +10 -0
- package/src/providers/GroupedRenderingActivities/GroupedRenderingActivitiesComposer.tsx +87 -0
- package/src/providers/GroupedRenderingActivities/private/GroupedRenderingActivitiesContext.ts +14 -0
- package/src/providers/GroupedRenderingActivities/private/group.spec.ts +31 -0
- package/src/providers/GroupedRenderingActivities/private/group.ts +19 -0
- package/src/providers/GroupedRenderingActivities/private/pick.spec.ts +35 -0
- package/src/providers/GroupedRenderingActivities/private/pick.ts +20 -0
- package/src/providers/GroupedRenderingActivities/useGroupedRenderingActivities.ts +6 -0
- package/src/providers/GroupedRenderingActivities/useNumRenderingActivities.ts +5 -0
- package/src/providers/HTMLContentTransformCOR/HTMLContentTransformComposer.tsx +41 -0
- package/src/providers/HTMLContentTransformCOR/index.ts +8 -0
- package/src/providers/HTMLContentTransformCOR/private/HTMLContentTransformContext.ts +34 -0
- package/src/providers/HTMLContentTransformCOR/private/useHTMLContentTransformContext.ts +6 -0
- package/src/providers/HTMLContentTransformCOR/useTransformHTMLContent.ts +187 -0
- package/src/providers/LiveRegionTwin/index.ts +3 -0
- package/src/providers/LiveRegionTwin/private/LiveRegionTwinComposer.ts +27 -0
- package/src/providers/LiveRegionTwin/private/LiveRegionTwinContainer.tsx +27 -39
- package/src/providers/LiveRegionTwin/private/createLiveRegionTwinComposer.tsx +155 -0
- package/src/providers/LiveRegionTwin/private/useContext.ts +2 -8
- package/src/providers/LiveRegionTwin/useLiveRegion.ts +27 -0
- package/src/providers/LiveRegionTwin/useQueueStaticElement.ts +2 -2
- package/src/providers/ModalDialog/private/Popover.tsx +5 -15
- package/src/providers/ReducedMotion/ReducedMotionComposer.tsx +35 -0
- package/src/providers/ReducedMotion/private/Context.ts +22 -0
- package/src/providers/ReducedMotion/private/useContext.ts +8 -0
- package/src/providers/ReducedMotion/useShouldReduceMotion.ts +5 -0
- package/src/providers/RenderingActivities/RenderingActivitiesComposer.tsx +103 -0
- package/src/providers/RenderingActivities/private/RenderingActivitiesContext.ts +15 -0
- package/src/providers/RenderingActivities/useActivityRendererMap.ts +9 -0
- package/src/providers/RenderingActivities/useRenderingActivities.ts +7 -0
- package/src/providers/RenderingActivities/useRenderingActivityKeys.ts +5 -0
- package/src/providers/RovingTabIndex/RovingTabIndexComposer.tsx +20 -23
- package/src/providers/Theme/ThemeProvider.tsx +119 -40
- package/src/providers/Theme/private/Context.ts +18 -18
- package/src/providers/TranscriptFocus/TranscriptFocusComposer.spec.tsx +611 -0
- package/src/providers/TranscriptFocus/TranscriptFocusComposer.tsx +325 -68
- package/src/providers/TranscriptFocus/private/Context.ts +4 -0
- package/src/providers/TranscriptFocus/useActiveDescendantId.ts +4 -1
- package/src/providers/TranscriptFocus/useFocusByGroupKey.ts +11 -0
- package/src/providers/TranscriptFocus/useFocusRelativeActivity.ts +1 -1
- package/src/providers/TranscriptFocus/useFocusedKey.ts +6 -0
- package/src/providers/TranscriptFocus/useGetGroupDescendantIdByActivityKey.ts +5 -0
- package/src/providers/createContextAndHook.ts +23 -0
- package/src/providers/internal/SendBox/SendBoxComposer.tsx +30 -38
- package/src/stylesheet/ComponentStylesheet.tsx +33 -0
- package/src/stylesheet/createComponentStyleElements.ts +8 -0
- package/src/testIds.ts +18 -0
- package/src/tsconfig.json +8 -14
- package/src/types/internal/mutableRefObject.ts +40 -0
- package/src/types/internal/refObject.ts +40 -0
- package/dist/botframework-webchat-component.internal.mjs.LEGAL.txt +0 -0
- package/dist/botframework-webchat-component.mjs.LEGAL.txt +0 -0
- package/dist/chunk-X37JABN5.mjs +0 -5
- package/dist/chunk-X37JABN5.mjs.LEGAL.txt +0 -0
- package/dist/chunk-X37JABN5.mjs.map +0 -1
- package/lib/Activity/Avatar.d.ts +0 -10
- package/lib/Activity/Avatar.d.ts.map +0 -1
- package/lib/Activity/Avatar.js +0 -35
- package/lib/Activity/Bubble.d.ts +0 -11
- package/lib/Activity/Bubble.d.ts.map +0 -1
- package/lib/Activity/Bubble.js +0 -137
- package/lib/Activity/CarouselFilmStrip.js +0 -264
- package/lib/Activity/CarouselFilmStripAttachment.js +0 -93
- package/lib/Activity/CarouselLayout.js +0 -133
- package/lib/Activity/SayAlt.js +0 -31
- package/lib/Activity/Speak.d.ts +0 -8
- package/lib/Activity/Speak.d.ts.map +0 -1
- package/lib/Activity/Speak.js +0 -99
- package/lib/Activity/StackedLayout.d.ts +0 -17
- package/lib/Activity/StackedLayout.d.ts.map +0 -1
- package/lib/Activity/StackedLayout.js +0 -233
- package/lib/ActivityStatus/AbsoluteTime.js +0 -38
- package/lib/ActivityStatus/OthersActivityStatus.d.ts +0 -8
- package/lib/ActivityStatus/OthersActivityStatus.d.ts.map +0 -1
- package/lib/ActivityStatus/OthersActivityStatus.js +0 -105
- package/lib/ActivityStatus/SelfActivityStatus.d.ts +0 -8
- package/lib/ActivityStatus/SelfActivityStatus.d.ts.map +0 -1
- package/lib/ActivityStatus/SelfActivityStatus.js +0 -37
- package/lib/ActivityStatus/SendStatus/SendStatus.d.ts +0 -10
- package/lib/ActivityStatus/SendStatus/SendStatus.d.ts.map +0 -1
- package/lib/ActivityStatus/SendStatus/SendStatus.js +0 -58
- package/lib/ActivityStatus/SendStatus/private/SendFailedRetry.js +0 -35
- package/lib/ActivityStatus/Slotted.d.ts +0 -7
- package/lib/ActivityStatus/Slotted.d.ts.map +0 -1
- package/lib/ActivityStatus/Slotted.js +0 -31
- package/lib/ActivityStatus/Timestamp.d.ts +0 -7
- package/lib/ActivityStatus/Timestamp.d.ts.map +0 -1
- package/lib/ActivityStatus/Timestamp.js +0 -36
- package/lib/ActivityStatus/private/Feedback/Feedback.d.ts +0 -8
- package/lib/ActivityStatus/private/Feedback/Feedback.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Feedback/Feedback.js +0 -67
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.Image.d.ts +0 -9
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.Image.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.Image.js +0 -34
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.d.ts +0 -9
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Feedback/private/ThumbButton.js +0 -57
- package/lib/ActivityStatus/private/Feedback/private/VoteButton.d.ts +0 -10
- package/lib/ActivityStatus/private/Feedback/private/VoteButton.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Feedback/private/VoteButton.js +0 -43
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Filled.d.ts +0 -7
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Filled.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Filled.js +0 -28
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Regular.d.ts +0 -7
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Regular.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Regular.js +0 -28
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Filled.d.ts +0 -7
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Filled.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Filled.js +0 -28
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Regular.d.ts +0 -7
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Regular.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Feedback/private/icons/ThumbLike16Regular.js +0 -28
- package/lib/ActivityStatus/private/Originator.d.ts +0 -8
- package/lib/ActivityStatus/private/Originator.d.ts.map +0 -1
- package/lib/ActivityStatus/private/Originator.js +0 -29
- package/lib/ActivityStatus/private/RelativeTime.js +0 -37
- package/lib/Assets/TypingAnimation.js +0 -47
- package/lib/Attachment/Assets/DownloadIcon.js +0 -35
- package/lib/Attachment/AudioAttachment.js +0 -38
- package/lib/Attachment/AudioContent.d.ts +0 -11
- package/lib/Attachment/AudioContent.d.ts.map +0 -1
- package/lib/Attachment/AudioContent.js +0 -51
- package/lib/Attachment/FileAttachment.js +0 -43
- package/lib/Attachment/FileContent.d.ts +0 -10
- package/lib/Attachment/FileContent.d.ts.map +0 -1
- package/lib/Attachment/FileContent.js +0 -120
- package/lib/Attachment/HTMLVideoContent.d.ts +0 -11
- package/lib/Attachment/HTMLVideoContent.d.ts.map +0 -1
- package/lib/Attachment/HTMLVideoContent.js +0 -51
- package/lib/Attachment/ImageAttachment.js +0 -41
- package/lib/Attachment/ImageContent.d.ts +0 -8
- package/lib/Attachment/ImageContent.d.ts.map +0 -1
- package/lib/Attachment/ImageContent.js +0 -41
- package/lib/Attachment/Text/TextAttachment.d.ts +0 -12
- package/lib/Attachment/Text/TextAttachment.d.ts.map +0 -1
- package/lib/Attachment/Text/TextAttachment.js +0 -27
- package/lib/Attachment/Text/TextContent.d.ts +0 -10
- package/lib/Attachment/Text/TextContent.d.ts.map +0 -1
- package/lib/Attachment/Text/TextContent.js +0 -34
- package/lib/Attachment/Text/private/CitationModalContent.d.ts +0 -8
- package/lib/Attachment/Text/private/CitationModalContent.d.ts.map +0 -1
- package/lib/Attachment/Text/private/CitationModalContent.js +0 -45
- package/lib/Attachment/Text/private/MarkdownTextContent.d.ts +0 -9
- package/lib/Attachment/Text/private/MarkdownTextContent.d.ts.map +0 -1
- package/lib/Attachment/Text/private/MarkdownTextContent.js +0 -204
- package/lib/Attachment/Text/private/MessageSensitivityLabel.d.ts +0 -12
- package/lib/Attachment/Text/private/MessageSensitivityLabel.d.ts.map +0 -1
- package/lib/Attachment/Text/private/MessageSensitivityLabel.js +0 -38
- package/lib/Attachment/Text/private/PlainTextContent.d.ts +0 -7
- package/lib/Attachment/Text/private/PlainTextContent.d.ts.map +0 -1
- package/lib/Attachment/Text/private/PlainTextContent.js +0 -35
- package/lib/Attachment/Text/private/ShieldIcon.d.ts +0 -9
- package/lib/Attachment/Text/private/ShieldIcon.d.ts.map +0 -1
- package/lib/Attachment/Text/private/ShieldIcon.js +0 -39
- package/lib/Attachment/Text/private/isHTMLButtonElement.d.ts +0 -2
- package/lib/Attachment/Text/private/isHTMLButtonElement.d.ts.map +0 -1
- package/lib/Attachment/Text/private/isHTMLButtonElement.js +0 -10
- package/lib/Attachment/VideoAttachment.js +0 -45
- package/lib/Attachment/VideoContent.d.ts +0 -11
- package/lib/Attachment/VideoContent.d.ts.map +0 -1
- package/lib/Attachment/VideoContent.js +0 -103
- package/lib/Attachment/VimeoContent.d.ts +0 -10
- package/lib/Attachment/VimeoContent.d.ts.map +0 -1
- package/lib/Attachment/VimeoContent.js +0 -59
- package/lib/Attachment/YouTubeContent.d.ts +0 -10
- package/lib/Attachment/YouTubeContent.d.ts.map +0 -1
- package/lib/Attachment/YouTubeContent.js +0 -60
- package/lib/Attachment/createMiddleware.d.ts +0 -3
- package/lib/Attachment/createMiddleware.d.ts.map +0 -1
- package/lib/Attachment/createMiddleware.js +0 -64
- package/lib/Attachment/private/types/WebChatAttachment.d.ts +0 -9
- package/lib/Attachment/private/types/WebChatAttachment.d.ts.map +0 -1
- package/lib/Attachment/private/types/WebChatAttachment.js +0 -2
- package/lib/Avatar/ImageAvatar.js +0 -59
- package/lib/Avatar/InitialsAvatar.js +0 -57
- package/lib/BasicConnectivityStatus.js +0 -46
- package/lib/BasicToast.js +0 -103
- package/lib/BasicToaster.js +0 -176
- package/lib/BasicTranscript.d.ts +0 -7
- package/lib/BasicTranscript.d.ts.map +0 -1
- package/lib/BasicTranscript.js +0 -735
- package/lib/BasicTypingIndicator.d.ts +0 -6
- package/lib/BasicTypingIndicator.d.ts.map +0 -1
- package/lib/BasicTypingIndicator.js +0 -54
- package/lib/BasicWebChat.d.ts +0 -9
- package/lib/BasicWebChat.d.ts.map +0 -1
- package/lib/BasicWebChat.js +0 -90
- package/lib/Composer.d.ts +0 -50
- package/lib/Composer.d.ts.map +0 -1
- package/lib/Composer.js +0 -336
- package/lib/ConnectivityStatus/Assets/ErrorNotificationIcon.js +0 -47
- package/lib/ConnectivityStatus/Assets/SpinnerAnimation.js +0 -32
- package/lib/ConnectivityStatus/Assets/WarningNotificationIcon.js +0 -47
- package/lib/ConnectivityStatus/Connected.js +0 -20
- package/lib/ConnectivityStatus/Connecting.js +0 -82
- package/lib/ConnectivityStatus/FailedToConnect.js +0 -41
- package/lib/ConnectivityStatus/JavaScriptError.js +0 -41
- package/lib/Dictation.js +0 -158
- package/lib/ErrorBox.d.ts +0 -8
- package/lib/ErrorBox.d.ts.map +0 -1
- package/lib/ErrorBox.js +0 -42
- package/lib/LinkDefinition/LinkDefinitionItem.d.ts +0 -12
- package/lib/LinkDefinition/LinkDefinitionItem.d.ts.map +0 -1
- package/lib/LinkDefinition/LinkDefinitionItem.js +0 -57
- package/lib/LinkDefinition/LinkDefinitions.d.ts +0 -12
- package/lib/LinkDefinition/LinkDefinitions.d.ts.map +0 -1
- package/lib/LinkDefinition/LinkDefinitions.js +0 -69
- package/lib/LinkDefinition/index.d.ts +0 -4
- package/lib/LinkDefinition/index.d.ts.map +0 -1
- package/lib/LinkDefinition/index.js +0 -21
- package/lib/LinkDefinition/private/Badge.d.ts +0 -7
- package/lib/LinkDefinition/private/Badge.d.ts.map +0 -1
- package/lib/LinkDefinition/private/Badge.js +0 -20
- package/lib/LinkDefinition/private/Chevron.d.ts +0 -4
- package/lib/LinkDefinition/private/Chevron.d.ts.map +0 -1
- package/lib/LinkDefinition/private/Chevron.js +0 -27
- package/lib/LinkDefinition/private/ItemBody.d.ts +0 -11
- package/lib/LinkDefinition/private/ItemBody.d.ts.map +0 -1
- package/lib/LinkDefinition/private/ItemBody.js +0 -41
- package/lib/LinkDefinition/private/OpenInNewWindowIcon.d.ts +0 -7
- package/lib/LinkDefinition/private/OpenInNewWindowIcon.d.ts.map +0 -1
- package/lib/LinkDefinition/private/OpenInNewWindowIcon.js +0 -23
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.d.ts +0 -2
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.d.ts.map +0 -1
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.js +0 -24
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.spec.d.ts +0 -2
- package/lib/LinkDefinition/private/extractHostnameWithSubdomain.spec.d.ts.map +0 -1
- package/lib/LiveRegion/LiveRegionActivity.d.ts +0 -9
- package/lib/LiveRegion/LiveRegionActivity.d.ts.map +0 -1
- package/lib/LiveRegion/LiveRegionActivity.js +0 -70
- package/lib/LiveRegion/private/LiveRegionAttachments.d.ts +0 -11
- package/lib/LiveRegion/private/LiveRegionAttachments.d.ts.map +0 -1
- package/lib/LiveRegion/private/LiveRegionAttachments.js +0 -53
- package/lib/LiveRegion/private/LiveRegionSuggestedActions.d.ts +0 -8
- package/lib/LiveRegion/private/LiveRegionSuggestedActions.d.ts.map +0 -1
- package/lib/LiveRegion/private/LiveRegionSuggestedActions.js +0 -37
- package/lib/Middleware/Activity/createCoreMiddleware.d.ts +0 -3
- package/lib/Middleware/Activity/createCoreMiddleware.d.ts.map +0 -1
- package/lib/Middleware/Activity/createCoreMiddleware.js +0 -95
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.d.ts +0 -3
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.d.ts.map +0 -1
- package/lib/Middleware/ActivityStatus/createCoreMiddleware.js +0 -13
- package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.d.ts +0 -3
- package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.d.ts.map +0 -1
- package/lib/Middleware/ActivityStatus/createSendStatusMiddleware.js +0 -41
- package/lib/Middleware/ActivityStatus/createTimestampMiddleware.d.ts +0 -3
- package/lib/Middleware/ActivityStatus/createTimestampMiddleware.d.ts.map +0 -1
- package/lib/Middleware/ActivityStatus/createTimestampMiddleware.js +0 -48
- package/lib/Middleware/AttachmentForScreenReader/AudioAttachment.js +0 -18
- package/lib/Middleware/AttachmentForScreenReader/FileAttachment.js +0 -28
- package/lib/Middleware/AttachmentForScreenReader/ImageAttachment.js +0 -18
- package/lib/Middleware/AttachmentForScreenReader/TextAttachment.js +0 -28
- package/lib/Middleware/AttachmentForScreenReader/VideoAttachment.js +0 -18
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts +0 -3
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.d.ts.map +0 -1
- package/lib/Middleware/AttachmentForScreenReader/createCoreMiddleware.js +0 -61
- package/lib/Middleware/Avatar/createCoreMiddleware.d.ts +0 -11
- package/lib/Middleware/Avatar/createCoreMiddleware.d.ts.map +0 -1
- package/lib/Middleware/Avatar/createCoreMiddleware.js +0 -82
- package/lib/Middleware/CardAction/createCoreMiddleware.js +0 -108
- package/lib/Middleware/ScrollToEndButton/ScrollToEndButton.js +0 -52
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts +0 -3
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.d.ts.map +0 -1
- package/lib/Middleware/ScrollToEndButton/createScrollToEndButtonMiddleware.js +0 -27
- package/lib/Middleware/Toast/createCoreMiddleware.d.ts +0 -4
- package/lib/Middleware/Toast/createCoreMiddleware.d.ts.map +0 -1
- package/lib/Middleware/Toast/createCoreMiddleware.js +0 -27
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts +0 -3
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.d.ts.map +0 -1
- package/lib/Middleware/TypingIndicator/createCoreMiddleware.js +0 -47
- package/lib/ReactWebChat.d.ts +0 -42
- package/lib/ReactWebChat.d.ts.map +0 -1
- package/lib/ReactWebChat.js +0 -52
- package/lib/ScreenReaderText.d.ts +0 -9
- package/lib/ScreenReaderText.d.ts.map +0 -1
- package/lib/ScreenReaderText.js +0 -58
- package/lib/SendBox/Assets/MicrophoneIcon.js +0 -25
- package/lib/SendBox/Assets/SendIcon.js +0 -45
- package/lib/SendBox/AutoResizeTextArea.d.ts +0 -24
- package/lib/SendBox/AutoResizeTextArea.d.ts.map +0 -1
- package/lib/SendBox/AutoResizeTextArea.js +0 -113
- package/lib/SendBox/BasicSendBox.d.ts +0 -9
- package/lib/SendBox/BasicSendBox.d.ts.map +0 -1
- package/lib/SendBox/BasicSendBox.js +0 -123
- package/lib/SendBox/DictationInterims.d.ts +0 -7
- package/lib/SendBox/DictationInterims.d.ts.map +0 -1
- package/lib/SendBox/DictationInterims.js +0 -68
- package/lib/SendBox/IconButton.d.ts +0 -11
- package/lib/SendBox/IconButton.d.ts.map +0 -1
- package/lib/SendBox/IconButton.js +0 -73
- package/lib/SendBox/MicrophoneButton.d.ts +0 -10
- package/lib/SendBox/MicrophoneButton.d.ts.map +0 -1
- package/lib/SendBox/MicrophoneButton.js +0 -160
- package/lib/SendBox/SendButton.d.ts +0 -7
- package/lib/SendBox/SendButton.d.ts.map +0 -1
- package/lib/SendBox/SendButton.js +0 -53
- package/lib/SendBox/SuggestedAction.d.ts +0 -16
- package/lib/SendBox/SuggestedAction.d.ts.map +0 -1
- package/lib/SendBox/SuggestedAction.js +0 -166
- package/lib/SendBox/SuggestedActions.d.ts +0 -7
- package/lib/SendBox/SuggestedActions.d.ts.map +0 -1
- package/lib/SendBox/SuggestedActions.js +0 -256
- package/lib/SendBox/TextBox.d.ts +0 -24
- package/lib/SendBox/TextBox.d.ts.map +0 -1
- package/lib/SendBox/TextBox.js +0 -252
- package/lib/SendBox/createMiddleware.d.ts +0 -4
- package/lib/SendBox/createMiddleware.d.ts.map +0 -1
- package/lib/SendBox/createMiddleware.js +0 -38
- package/lib/SendBoxToolbar/Assets/AttachmentIcon.d.ts +0 -7
- package/lib/SendBoxToolbar/Assets/AttachmentIcon.d.ts.map +0 -1
- package/lib/SendBoxToolbar/Assets/AttachmentIcon.js +0 -63
- package/lib/SendBoxToolbar/BasicSendBoxToolbar.d.ts +0 -6
- package/lib/SendBoxToolbar/BasicSendBoxToolbar.d.ts.map +0 -1
- package/lib/SendBoxToolbar/BasicSendBoxToolbar.js +0 -32
- package/lib/SendBoxToolbar/UploadButton.d.ts +0 -7
- package/lib/SendBoxToolbar/UploadButton.d.ts.map +0 -1
- package/lib/SendBoxToolbar/UploadButton.js +0 -156
- package/lib/SendBoxToolbar/createMiddleware.d.ts +0 -4
- package/lib/SendBoxToolbar/createMiddleware.d.ts.map +0 -1
- package/lib/SendBoxToolbar/createMiddleware.js +0 -20
- package/lib/Styles/CSSTokens.d.ts +0 -16
- package/lib/Styles/CSSTokens.d.ts.map +0 -1
- package/lib/Styles/CSSTokens.js +0 -19
- package/lib/Styles/CustomPropertyNames.d.ts +0 -13
- package/lib/Styles/CustomPropertyNames.d.ts.map +0 -1
- package/lib/Styles/CustomPropertyNames.js +0 -24
- package/lib/Styles/StyleSet/Activities.d.ts +0 -5
- package/lib/Styles/StyleSet/Activities.d.ts.map +0 -1
- package/lib/Styles/StyleSet/Activities.js +0 -13
- package/lib/Styles/StyleSet/AudioAttachment.d.ts +0 -6
- package/lib/Styles/StyleSet/AudioAttachment.d.ts.map +0 -1
- package/lib/Styles/StyleSet/AudioAttachment.js +0 -15
- package/lib/Styles/StyleSet/AudioContent.d.ts +0 -4
- package/lib/Styles/StyleSet/AudioContent.d.ts.map +0 -1
- package/lib/Styles/StyleSet/AudioContent.js +0 -12
- package/lib/Styles/StyleSet/AutoResizeTextArea.d.ts +0 -37
- package/lib/Styles/StyleSet/AutoResizeTextArea.d.ts.map +0 -1
- package/lib/Styles/StyleSet/AutoResizeTextArea.js +0 -45
- package/lib/Styles/StyleSet/Avatar.d.ts +0 -9
- package/lib/Styles/StyleSet/Avatar.d.ts.map +0 -1
- package/lib/Styles/StyleSet/Avatar.js +0 -18
- package/lib/Styles/StyleSet/BasicTranscript.d.ts +0 -85
- package/lib/Styles/StyleSet/BasicTranscript.d.ts.map +0 -1
- package/lib/Styles/StyleSet/BasicTranscript.js +0 -110
- package/lib/Styles/StyleSet/Bubble.d.ts +0 -5
- package/lib/Styles/StyleSet/Bubble.d.ts.map +0 -1
- package/lib/Styles/StyleSet/Bubble.js +0 -153
- package/lib/Styles/StyleSet/CSSCustomProperties.d.ts +0 -16
- package/lib/Styles/StyleSet/CSSCustomProperties.d.ts.map +0 -1
- package/lib/Styles/StyleSet/CSSCustomProperties.js +0 -27
- package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts +0 -5
- package/lib/Styles/StyleSet/CarouselFilmStrip.d.ts.map +0 -1
- package/lib/Styles/StyleSet/CarouselFilmStrip.js +0 -90
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts +0 -3
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.d.ts.map +0 -1
- package/lib/Styles/StyleSet/CarouselFilmStripAttachment.js +0 -57
- package/lib/Styles/StyleSet/CarouselFlipper.d.ts +0 -27
- package/lib/Styles/StyleSet/CarouselFlipper.d.ts.map +0 -1
- package/lib/Styles/StyleSet/CarouselFlipper.js +0 -42
- package/lib/Styles/StyleSet/CitationModalDialog.d.ts +0 -8
- package/lib/Styles/StyleSet/CitationModalDialog.d.ts.map +0 -1
- package/lib/Styles/StyleSet/CitationModalDialog.js +0 -16
- package/lib/Styles/StyleSet/ConnectivityNotification.d.ts +0 -13
- package/lib/Styles/StyleSet/ConnectivityNotification.d.ts.map +0 -1
- package/lib/Styles/StyleSet/ConnectivityNotification.js +0 -26
- package/lib/Styles/StyleSet/Constants.d.ts +0 -6
- package/lib/Styles/StyleSet/Constants.d.ts.map +0 -1
- package/lib/Styles/StyleSet/Constants.js +0 -15
- package/lib/Styles/StyleSet/DictationInterims.d.ts +0 -13
- package/lib/Styles/StyleSet/DictationInterims.d.ts.map +0 -1
- package/lib/Styles/StyleSet/DictationInterims.js +0 -22
- package/lib/Styles/StyleSet/ErrorBox.d.ts +0 -33
- package/lib/Styles/StyleSet/ErrorBox.d.ts.map +0 -1
- package/lib/Styles/StyleSet/ErrorBox.js +0 -43
- package/lib/Styles/StyleSet/ErrorNotification.d.ts +0 -23
- package/lib/Styles/StyleSet/ErrorNotification.d.ts.map +0 -1
- package/lib/Styles/StyleSet/ErrorNotification.js +0 -36
- package/lib/Styles/StyleSet/FileContent.d.ts +0 -32
- package/lib/Styles/StyleSet/FileContent.d.ts.map +0 -1
- package/lib/Styles/StyleSet/FileContent.js +0 -43
- package/lib/Styles/StyleSet/ImageAvatar.d.ts +0 -7
- package/lib/Styles/StyleSet/ImageAvatar.d.ts.map +0 -1
- package/lib/Styles/StyleSet/ImageAvatar.js +0 -15
- package/lib/Styles/StyleSet/InitialsAvatar.d.ts +0 -19
- package/lib/Styles/StyleSet/InitialsAvatar.d.ts.map +0 -1
- package/lib/Styles/StyleSet/InitialsAvatar.js +0 -31
- package/lib/Styles/StyleSet/KeyboardHelp.d.ts +0 -152
- package/lib/Styles/StyleSet/KeyboardHelp.d.ts.map +0 -1
- package/lib/Styles/StyleSet/KeyboardHelp.js +0 -168
- package/lib/Styles/StyleSet/LinkDefinitions.d.ts +0 -165
- package/lib/Styles/StyleSet/LinkDefinitions.d.ts.map +0 -1
- package/lib/Styles/StyleSet/LinkDefinitions.js +0 -180
- package/lib/Styles/StyleSet/MicrophoneButton.d.ts +0 -13
- package/lib/Styles/StyleSet/MicrophoneButton.d.ts.map +0 -1
- package/lib/Styles/StyleSet/MicrophoneButton.js +0 -21
- package/lib/Styles/StyleSet/ModalDialog.d.ts +0 -94
- package/lib/Styles/StyleSet/ModalDialog.d.ts.map +0 -1
- package/lib/Styles/StyleSet/ModalDialog.js +0 -98
- package/lib/Styles/StyleSet/RenderMarkdown.d.ts +0 -51
- package/lib/Styles/StyleSet/RenderMarkdown.d.ts.map +0 -1
- package/lib/Styles/StyleSet/RenderMarkdown.js +0 -67
- package/lib/Styles/StyleSet/Root.d.ts +0 -8
- package/lib/Styles/StyleSet/Root.d.ts.map +0 -1
- package/lib/Styles/StyleSet/Root.js +0 -19
- package/lib/Styles/StyleSet/ScrollToEndButton.d.ts +0 -36
- package/lib/Styles/StyleSet/ScrollToEndButton.d.ts.map +0 -1
- package/lib/Styles/StyleSet/ScrollToEndButton.js +0 -55
- package/lib/Styles/StyleSet/SendBox.d.ts +0 -24
- package/lib/Styles/StyleSet/SendBox.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SendBox.js +0 -37
- package/lib/Styles/StyleSet/SendBoxButton.d.ts +0 -79
- package/lib/Styles/StyleSet/SendBoxButton.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SendBoxButton.js +0 -112
- package/lib/Styles/StyleSet/SendBoxTextBox.d.ts +0 -41
- package/lib/Styles/StyleSet/SendBoxTextBox.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SendBoxTextBox.js +0 -57
- package/lib/Styles/StyleSet/SendStatus.d.ts +0 -19
- package/lib/Styles/StyleSet/SendStatus.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SendStatus.js +0 -29
- package/lib/Styles/StyleSet/SingleAttachmentActivity.d.ts +0 -11
- package/lib/Styles/StyleSet/SingleAttachmentActivity.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SingleAttachmentActivity.js +0 -21
- package/lib/Styles/StyleSet/SlottedActivityStatus.d.ts +0 -12
- package/lib/Styles/StyleSet/SlottedActivityStatus.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SlottedActivityStatus.js +0 -22
- package/lib/Styles/StyleSet/SpinnerAnimation.d.ts +0 -15
- package/lib/Styles/StyleSet/SpinnerAnimation.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SpinnerAnimation.js +0 -34
- package/lib/Styles/StyleSet/StackedLayout.d.ts +0 -63
- package/lib/Styles/StyleSet/StackedLayout.d.ts.map +0 -1
- package/lib/Styles/StyleSet/StackedLayout.js +0 -77
- package/lib/Styles/StyleSet/SuggestedAction.d.ts +0 -94
- package/lib/Styles/StyleSet/SuggestedAction.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SuggestedAction.js +0 -152
- package/lib/Styles/StyleSet/SuggestedActions.d.ts +0 -139
- package/lib/Styles/StyleSet/SuggestedActions.d.ts.map +0 -1
- package/lib/Styles/StyleSet/SuggestedActions.js +0 -165
- package/lib/Styles/StyleSet/TextContent.d.ts +0 -24
- package/lib/Styles/StyleSet/TextContent.d.ts.map +0 -1
- package/lib/Styles/StyleSet/TextContent.js +0 -34
- package/lib/Styles/StyleSet/ThumbButton.d.ts +0 -32
- package/lib/Styles/StyleSet/ThumbButton.d.ts.map +0 -1
- package/lib/Styles/StyleSet/ThumbButton.js +0 -44
- package/lib/Styles/StyleSet/Toast.d.ts +0 -65
- package/lib/Styles/StyleSet/Toast.d.ts.map +0 -1
- package/lib/Styles/StyleSet/Toast.js +0 -83
- package/lib/Styles/StyleSet/Toaster.d.ts +0 -111
- package/lib/Styles/StyleSet/Toaster.d.ts.map +0 -1
- package/lib/Styles/StyleSet/Toaster.js +0 -137
- package/lib/Styles/StyleSet/TypingAnimation.d.ts +0 -8
- package/lib/Styles/StyleSet/TypingAnimation.d.ts.map +0 -1
- package/lib/Styles/StyleSet/TypingAnimation.js +0 -26
- package/lib/Styles/StyleSet/TypingIndicator.d.ts +0 -11
- package/lib/Styles/StyleSet/TypingIndicator.d.ts.map +0 -1
- package/lib/Styles/StyleSet/TypingIndicator.js +0 -19
- package/lib/Styles/StyleSet/UploadButton.d.ts +0 -14
- package/lib/Styles/StyleSet/UploadButton.d.ts.map +0 -1
- package/lib/Styles/StyleSet/UploadButton.js +0 -27
- package/lib/Styles/StyleSet/VideoAttachment.d.ts +0 -2
- package/lib/Styles/StyleSet/VideoAttachment.d.ts.map +0 -1
- package/lib/Styles/StyleSet/VideoAttachment.js +0 -10
- package/lib/Styles/StyleSet/VideoContent.d.ts +0 -6
- package/lib/Styles/StyleSet/VideoContent.d.ts.map +0 -1
- package/lib/Styles/StyleSet/VideoContent.js +0 -14
- package/lib/Styles/StyleSet/VimeoContent.d.ts +0 -7
- package/lib/Styles/StyleSet/VimeoContent.d.ts.map +0 -1
- package/lib/Styles/StyleSet/VimeoContent.js +0 -15
- package/lib/Styles/StyleSet/WarningNotification.d.ts +0 -22
- package/lib/Styles/StyleSet/WarningNotification.d.ts.map +0 -1
- package/lib/Styles/StyleSet/WarningNotification.js +0 -37
- package/lib/Styles/StyleSet/YouTubeContent.d.ts +0 -7
- package/lib/Styles/StyleSet/YouTubeContent.d.ts.map +0 -1
- package/lib/Styles/StyleSet/YouTubeContent.js +0 -15
- package/lib/Styles/createStyleSet.d.ts +0 -1803
- package/lib/Styles/createStyleSet.d.ts.map +0 -1
- package/lib/Styles/createStyleSet.js +0 -121
- package/lib/Styles/mirrorStyle.js +0 -40
- package/lib/Toast/CheckMarkIcon.js +0 -36
- package/lib/Toast/CollapseIcon.js +0 -32
- package/lib/Toast/DismissIcon.js +0 -32
- package/lib/Toast/ExclamationMarkIcon.js +0 -34
- package/lib/Toast/ExpandIcon.js +0 -32
- package/lib/Toast/NotificationIcon.js +0 -46
- package/lib/Toast/createToastMiddleware.d.ts +0 -4
- package/lib/Toast/createToastMiddleware.d.ts.map +0 -1
- package/lib/Toast/createToastMiddleware.js +0 -26
- package/lib/Transcript/ActivityRow.d.ts +0 -9
- package/lib/Transcript/ActivityRow.d.ts.map +0 -1
- package/lib/Transcript/ActivityRow.js +0 -137
- package/lib/Transcript/FocusTrap.d.ts +0 -9
- package/lib/Transcript/FocusTrap.d.ts.map +0 -1
- package/lib/Transcript/FocusTrap.js +0 -76
- package/lib/Transcript/KeyboardHelp.d.ts +0 -4
- package/lib/Transcript/KeyboardHelp.d.ts.map +0 -1
- package/lib/Transcript/KeyboardHelp.js +0 -562
- package/lib/Transcript/LiveRegion/SendFailed.d.ts +0 -14
- package/lib/Transcript/LiveRegion/SendFailed.d.ts.map +0 -1
- package/lib/Transcript/LiveRegion/SendFailed.js +0 -90
- package/lib/Transcript/LiveRegion/isPresentational.d.ts +0 -9
- package/lib/Transcript/LiveRegion/isPresentational.d.ts.map +0 -1
- package/lib/Transcript/LiveRegion/isPresentational.js +0 -30
- package/lib/Transcript/LiveRegionTranscript.d.ts +0 -8
- package/lib/Transcript/LiveRegionTranscript.d.ts.map +0 -1
- package/lib/Transcript/LiveRegionTranscript.js +0 -178
- package/lib/Transcript/types.d.ts +0 -2
- package/lib/Transcript/types.d.ts.map +0 -1
- package/lib/Transcript/types.js +0 -2
- package/lib/Transcript/useActivityAccessibleName.d.ts +0 -11
- package/lib/Transcript/useActivityAccessibleName.d.ts.map +0 -1
- package/lib/Transcript/useActivityAccessibleName.js +0 -103
- package/lib/Transcript/useTypistNames.d.ts +0 -3
- package/lib/Transcript/useTypistNames.d.ts.map +0 -1
- package/lib/Transcript/useTypistNames.js +0 -50
- package/lib/TranscriptActivity.d.ts +0 -17
- package/lib/TranscriptActivity.d.ts.map +0 -1
- package/lib/TranscriptActivity.js +0 -48
- package/lib/Utils/AccessKeySink/Surface.js +0 -74
- package/lib/Utils/AccessKeySink/internal/Context.js +0 -11
- package/lib/Utils/AccessKeySink/internal/useContext.js +0 -13
- package/lib/Utils/AccessKeySink/useFocusAccessKeyEffect.js +0 -34
- package/lib/Utils/AccessibleButton.d.ts +0 -11
- package/lib/Utils/AccessibleButton.d.ts.map +0 -1
- package/lib/Utils/AccessibleButton.js +0 -78
- package/lib/Utils/AccessibleInputText.d.ts +0 -22
- package/lib/Utils/AccessibleInputText.d.ts.map +0 -1
- package/lib/Utils/AccessibleInputText.js +0 -114
- package/lib/Utils/AccessibleTextArea.d.ts +0 -20
- package/lib/Utils/AccessibleTextArea.d.ts.map +0 -1
- package/lib/Utils/AccessibleTextArea.js +0 -105
- package/lib/Utils/CroppedImage.js +0 -61
- package/lib/Utils/FocusRedirector.d.ts +0 -9
- package/lib/Utils/FocusRedirector.d.ts.map +0 -1
- package/lib/Utils/FocusRedirector.js +0 -61
- package/lib/Utils/InlineMarkdown.js +0 -166
- package/lib/Utils/JSONLinkedData/BlankNode.d.ts +0 -15
- package/lib/Utils/JSONLinkedData/BlankNode.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/BlankNode.js +0 -2
- package/lib/Utils/JSONLinkedData/__snapshots__/dereferenceBlankNodes.spec.ts.snap +0 -92
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.d.ts +0 -16
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.js +0 -96
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.spec.d.ts +0 -2
- package/lib/Utils/JSONLinkedData/dereferenceBlankNodes.spec.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/getSafeOwnPropertyNames.d.ts +0 -10
- package/lib/Utils/JSONLinkedData/getSafeOwnPropertyNames.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/getSafeOwnPropertyNames.js +0 -22
- package/lib/Utils/JSONLinkedData/isBlankNode.d.ts +0 -10
- package/lib/Utils/JSONLinkedData/isBlankNode.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/isBlankNode.js +0 -22
- package/lib/Utils/JSONLinkedData/isBlankNode.spec.d.ts +0 -2
- package/lib/Utils/JSONLinkedData/isBlankNode.spec.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.d.ts +0 -10
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.js +0 -21
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.spec.d.ts +0 -2
- package/lib/Utils/JSONLinkedData/isUnconnectedBlankNode.spec.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/visitOnce.d.ts +0 -2
- package/lib/Utils/JSONLinkedData/visitOnce.d.ts.map +0 -1
- package/lib/Utils/JSONLinkedData/visitOnce.js +0 -17
- package/lib/Utils/LocalizedString.d.ts +0 -26
- package/lib/Utils/LocalizedString.d.ts.map +0 -1
- package/lib/Utils/LocalizedString.js +0 -138
- package/lib/Utils/TypeFocusSink/Context.js +0 -14
- package/lib/Utils/TypeFocusSink/FocusBox.js +0 -91
- package/lib/Utils/TypeFocusSink/getTabIndex.d.ts +0 -2
- package/lib/Utils/TypeFocusSink/getTabIndex.d.ts.map +0 -1
- package/lib/Utils/TypeFocusSink/getTabIndex.js +0 -27
- package/lib/Utils/TypeFocusSink/index.js +0 -18
- package/lib/Utils/TypeFocusSink/inputtableKey.d.ts +0 -2
- package/lib/Utils/TypeFocusSink/inputtableKey.d.ts.map +0 -1
- package/lib/Utils/TypeFocusSink/inputtableKey.js +0 -28
- package/lib/Utils/TypeFocusSink/navigableEvent.js +0 -59
- package/lib/Utils/activityAltText.d.ts +0 -8
- package/lib/Utils/activityAltText.d.ts.map +0 -1
- package/lib/Utils/activityAltText.js +0 -79
- package/lib/Utils/addTargetBlankToHyperlinksMarkdown.js +0 -34
- package/lib/Utils/betterLinks.d.ts +0 -28
- package/lib/Utils/betterLinks.d.ts.map +0 -1
- package/lib/Utils/betterLinks.js +0 -142
- package/lib/Utils/computeSuggestedActionText.d.ts +0 -3
- package/lib/Utils/computeSuggestedActionText.d.ts.map +0 -1
- package/lib/Utils/computeSuggestedActionText.js +0 -24
- package/lib/Utils/createCSSKey.js +0 -16
- package/lib/Utils/createCustomEvent.js +0 -34
- package/lib/Utils/detectBrowser.js +0 -27
- package/lib/Utils/downscaleImageToDataURL/WorkerJob.d.ts +0 -16
- package/lib/Utils/downscaleImageToDataURL/WorkerJob.d.ts.map +0 -1
- package/lib/Utils/downscaleImageToDataURL/WorkerJob.js +0 -2
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.d.ts +0 -2
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.d.ts.map +0 -1
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingBrowser.js +0 -90
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.d.ts +0 -4
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.d.ts.map +0 -1
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.js +0 -198
- package/lib/Utils/downscaleImageToDataURL/downscaleImageToDataURLUsingWorker.worker.js +0 -96
- package/lib/Utils/downscaleImageToDataURL/index.d.ts +0 -2
- package/lib/Utils/downscaleImageToDataURL/index.d.ts.map +0 -1
- package/lib/Utils/downscaleImageToDataURL/index.js +0 -44
- package/lib/Utils/filterMap.js +0 -28
- package/lib/Utils/findAncestor.d.ts +0 -2
- package/lib/Utils/findAncestor.d.ts.map +0 -1
- package/lib/Utils/findAncestor.js +0 -15
- package/lib/Utils/firstTabbableDescendant.js +0 -40
- package/lib/Utils/getActivityUniqueId.d.ts +0 -3
- package/lib/Utils/getActivityUniqueId.d.ts.map +0 -1
- package/lib/Utils/getActivityUniqueId.js +0 -11
- package/lib/Utils/intersectionOf.d.ts +0 -5
- package/lib/Utils/intersectionOf.d.ts.map +0 -1
- package/lib/Utils/intersectionOf.js +0 -27
- package/lib/Utils/isZeroOrPositive.d.ts +0 -5
- package/lib/Utils/isZeroOrPositive.d.ts.map +0 -1
- package/lib/Utils/isZeroOrPositive.js +0 -14
- package/lib/Utils/mapMap.js +0 -27
- package/lib/Utils/parseDocumentFromString.d.ts +0 -2
- package/lib/Utils/parseDocumentFromString.d.ts.map +0 -1
- package/lib/Utils/parseDocumentFromString.js +0 -11
- package/lib/Utils/randomId.js +0 -15
- package/lib/Utils/readDataURIToBlob.js +0 -44
- package/lib/Utils/removeInline.js +0 -18
- package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts +0 -7
- package/lib/Utils/scrollIntoViewWithBlockNearest.d.ts.map +0 -1
- package/lib/Utils/scrollIntoViewWithBlockNearest.js +0 -38
- package/lib/Utils/serializeDocumentIntoString.d.ts +0 -2
- package/lib/Utils/serializeDocumentIntoString.d.ts.map +0 -1
- package/lib/Utils/serializeDocumentIntoString.js +0 -27
- package/lib/Utils/shallowEquals.js +0 -21
- package/lib/Utils/singleToArray.d.ts +0 -2
- package/lib/Utils/singleToArray.d.ts.map +0 -1
- package/lib/Utils/singleToArray.js +0 -10
- package/lib/Utils/supportPseudoClass.d.ts +0 -2
- package/lib/Utils/supportPseudoClass.d.ts.map +0 -1
- package/lib/Utils/supportPseudoClass.js +0 -21
- package/lib/Utils/tabbableElements.d.ts +0 -2
- package/lib/Utils/tabbableElements.d.ts.map +0 -1
- package/lib/Utils/tabbableElements.js +0 -20
- package/lib/Utils/textFormatToContentType.js +0 -17
- package/lib/Utils/updateMarkdownAttrs.js +0 -16
- package/lib/Utils/walkMarkdownTokens.js +0 -19
- package/lib/hooks/index.d.ts +0 -22
- package/lib/hooks/index.d.ts.map +0 -1
- package/lib/hooks/index.js +0 -152
- package/lib/hooks/internal/BypassSpeechSynthesisPonyfill.js +0 -278
- package/lib/hooks/internal/UITracker.js +0 -39
- package/lib/hooks/internal/WebChatUIContext.d.ts +0 -8
- package/lib/hooks/internal/WebChatUIContext.d.ts.map +0 -1
- package/lib/hooks/internal/WebChatUIContext.js +0 -11
- package/lib/hooks/internal/createWaitUntilable.d.ts +0 -5
- package/lib/hooks/internal/createWaitUntilable.d.ts.map +0 -1
- package/lib/hooks/internal/createWaitUntilable.js +0 -50
- package/lib/hooks/internal/createWaitUntilable.spec.d.ts +0 -2
- package/lib/hooks/internal/createWaitUntilable.spec.d.ts.map +0 -1
- package/lib/hooks/internal/private/createOnEventShim.d.ts +0 -5
- package/lib/hooks/internal/private/createOnEventShim.d.ts.map +0 -1
- package/lib/hooks/internal/private/createOnEventShim.js +0 -25
- package/lib/hooks/internal/private/createOnEventShim.spec.d.ts +0 -2
- package/lib/hooks/internal/private/createOnEventShim.spec.d.ts.map +0 -1
- package/lib/hooks/internal/useChanged.d.ts +0 -9
- package/lib/hooks/internal/useChanged.d.ts.map +0 -1
- package/lib/hooks/internal/useChanged.js +0 -21
- package/lib/hooks/internal/useDispatchScrollPosition.js +0 -12
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts +0 -2
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.d.ts.map +0 -1
- package/lib/hooks/internal/useDispatchTranscriptFocusByActivityKey.js +0 -12
- package/lib/hooks/internal/useEnterKeyHint.js +0 -18
- package/lib/hooks/internal/useFocusVisible.d.ts +0 -3
- package/lib/hooks/internal/useFocusVisible.d.ts.map +0 -1
- package/lib/hooks/internal/useFocusVisible.js +0 -37
- package/lib/hooks/internal/useFocusWithin.d.ts +0 -3
- package/lib/hooks/internal/useFocusWithin.d.ts.map +0 -1
- package/lib/hooks/internal/useFocusWithin.js +0 -38
- package/lib/hooks/internal/useForceRender.js +0 -24
- package/lib/hooks/internal/useForceRenderAtInterval.d.ts +0 -3
- package/lib/hooks/internal/useForceRenderAtInterval.d.ts.map +0 -1
- package/lib/hooks/internal/useForceRenderAtInterval.js +0 -57
- package/lib/hooks/internal/useInternalMarkdownIt.js +0 -14
- package/lib/hooks/internal/useInternalRenderMarkdownInline.js +0 -16
- package/lib/hooks/internal/useLocalizeAccessKey.d.ts +0 -2
- package/lib/hooks/internal/useLocalizeAccessKey.d.ts.map +0 -1
- package/lib/hooks/internal/useLocalizeAccessKey.js +0 -38
- package/lib/hooks/internal/useMemoWithPrevious.d.ts +0 -3
- package/lib/hooks/internal/useMemoWithPrevious.d.ts.map +0 -1
- package/lib/hooks/internal/useMemoWithPrevious.js +0 -20
- package/lib/hooks/internal/useMemoized.d.ts +0 -11
- package/lib/hooks/internal/useMemoized.d.ts.map +0 -1
- package/lib/hooks/internal/useMemoized.js +0 -82
- package/lib/hooks/internal/useMemoized.spec.jsx +0 -159
- package/lib/hooks/internal/useNavigatorPlatform.js +0 -31
- package/lib/hooks/internal/useNonce.js +0 -14
- package/lib/hooks/internal/useObserveFocusVisible.d.ts +0 -3
- package/lib/hooks/internal/useObserveFocusVisible.d.ts.map +0 -1
- package/lib/hooks/internal/useObserveFocusVisible.js +0 -201
- package/lib/hooks/internal/usePrevious.d.ts +0 -2
- package/lib/hooks/internal/usePrevious.d.ts.map +0 -1
- package/lib/hooks/internal/usePrevious.js +0 -17
- package/lib/hooks/internal/useRegisterFocusTranscript.js +0 -27
- package/lib/hooks/internal/useRegisterScrollTo.js +0 -27
- package/lib/hooks/internal/useRegisterScrollToEnd.js +0 -25
- package/lib/hooks/internal/useReplaceEmoticon.js +0 -58
- package/lib/hooks/internal/useResumeAudioContext.d.ts +0 -2
- package/lib/hooks/internal/useResumeAudioContext.d.ts.map +0 -1
- package/lib/hooks/internal/useResumeAudioContext.js +0 -23
- package/lib/hooks/internal/useSendBoxFocusRef.js +0 -12
- package/lib/hooks/internal/useSettableDictateAbortable.js +0 -15
- package/lib/hooks/internal/useStateRef.d.ts +0 -3
- package/lib/hooks/internal/useStateRef.d.ts.map +0 -1
- package/lib/hooks/internal/useStateRef.js +0 -30
- package/lib/hooks/internal/useStyleToEmotionObject.js +0 -12
- package/lib/hooks/internal/useSuggestedActionsAccessKey.js +0 -14
- package/lib/hooks/internal/useTimer.d.ts +0 -5
- package/lib/hooks/internal/useTimer.d.ts.map +0 -1
- package/lib/hooks/internal/useTimer.js +0 -46
- package/lib/hooks/internal/useTranscriptActivityElementsRef.js +0 -12
- package/lib/hooks/internal/useTranscriptFocusRef.js +0 -12
- package/lib/hooks/internal/useUniqueId.d.ts +0 -2
- package/lib/hooks/internal/useUniqueId.d.ts.map +0 -1
- package/lib/hooks/internal/useUniqueId.js +0 -19
- package/lib/hooks/internal/useValueRef.d.ts +0 -3
- package/lib/hooks/internal/useValueRef.d.ts.map +0 -1
- package/lib/hooks/internal/useValueRef.js +0 -24
- package/lib/hooks/internal/useWebChatUIContext.js +0 -17
- package/lib/hooks/sendBoxFocus.d.ts +0 -7
- package/lib/hooks/sendBoxFocus.d.ts.map +0 -1
- package/lib/hooks/sendBoxFocus.js +0 -13
- package/lib/hooks/transcriptScrollRelative.d.ts +0 -7
- package/lib/hooks/transcriptScrollRelative.d.ts.map +0 -1
- package/lib/hooks/transcriptScrollRelative.js +0 -13
- package/lib/hooks/useDictateAbortable.d.ts +0 -2
- package/lib/hooks/useDictateAbortable.d.ts.map +0 -1
- package/lib/hooks/useDictateAbortable.js +0 -22
- package/lib/hooks/useFocus.d.ts +0 -2
- package/lib/hooks/useFocus.d.ts.map +0 -1
- package/lib/hooks/useFocus.js +0 -65
- package/lib/hooks/useMakeThumbnail.d.ts +0 -2
- package/lib/hooks/useMakeThumbnail.d.ts.map +0 -1
- package/lib/hooks/useMakeThumbnail.js +0 -74
- package/lib/hooks/useObserveScrollPosition.d.ts +0 -3
- package/lib/hooks/useObserveScrollPosition.d.ts.map +0 -1
- package/lib/hooks/useObserveScrollPosition.js +0 -31
- package/lib/hooks/useObserveTranscriptFocus.d.ts +0 -5
- package/lib/hooks/useObserveTranscriptFocus.d.ts.map +0 -1
- package/lib/hooks/useObserveTranscriptFocus.js +0 -31
- package/lib/hooks/useRenderMarkdownAsHTML.d.ts +0 -5
- package/lib/hooks/useRenderMarkdownAsHTML.d.ts.map +0 -1
- package/lib/hooks/useRenderMarkdownAsHTML.js +0 -62
- package/lib/hooks/useScrollDown.d.ts +0 -4
- package/lib/hooks/useScrollDown.d.ts.map +0 -1
- package/lib/hooks/useScrollDown.js +0 -20
- package/lib/hooks/useScrollTo.d.ts +0 -5
- package/lib/hooks/useScrollTo.d.ts.map +0 -1
- package/lib/hooks/useScrollTo.js +0 -22
- package/lib/hooks/useScrollToEnd.d.ts +0 -2
- package/lib/hooks/useScrollToEnd.d.ts.map +0 -1
- package/lib/hooks/useScrollToEnd.js +0 -21
- package/lib/hooks/useScrollUp.d.ts +0 -4
- package/lib/hooks/useScrollUp.d.ts.map +0 -1
- package/lib/hooks/useScrollUp.js +0 -20
- package/lib/hooks/useSendFiles.d.ts +0 -5
- package/lib/hooks/useSendFiles.d.ts.map +0 -1
- package/lib/hooks/useSendFiles.js +0 -63
- package/lib/hooks/useSendMessage.d.ts +0 -8
- package/lib/hooks/useSendMessage.d.ts.map +0 -1
- package/lib/hooks/useSendMessage.js +0 -102
- package/lib/hooks/useStyleSet.d.ts +0 -3
- package/lib/hooks/useStyleSet.d.ts.map +0 -1
- package/lib/hooks/useStyleSet.js +0 -13
- package/lib/hooks/useWebSpeechPonyfill.d.ts +0 -3
- package/lib/hooks/useWebSpeechPonyfill.d.ts.map +0 -1
- package/lib/hooks/useWebSpeechPonyfill.js +0 -12
- package/lib/index.d.ts +0 -330
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -164
- package/lib/internal.d.ts +0 -4
- package/lib/internal.d.ts.map +0 -1
- package/lib/internal.js +0 -21
- package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts +0 -7
- package/lib/providers/ActivityTree/ActivityTreeComposer.d.ts.map +0 -1
- package/lib/providers/ActivityTree/ActivityTreeComposer.js +0 -90
- package/lib/providers/ActivityTree/private/Context.d.ts +0 -9
- package/lib/providers/ActivityTree/private/Context.d.ts.map +0 -1
- package/lib/providers/ActivityTree/private/Context.js +0 -10
- package/lib/providers/ActivityTree/private/types.d.ts +0 -10
- package/lib/providers/ActivityTree/private/types.d.ts.map +0 -1
- package/lib/providers/ActivityTree/private/types.js +0 -2
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts +0 -4
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.d.ts.map +0 -1
- package/lib/providers/ActivityTree/private/useActivitiesWithRenderer.js +0 -36
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts +0 -5
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.d.ts.map +0 -1
- package/lib/providers/ActivityTree/private/useActivityTreeWithRenderer.js +0 -147
- package/lib/providers/ActivityTree/private/useContext.d.ts +0 -3
- package/lib/providers/ActivityTree/private/useContext.d.ts.map +0 -1
- package/lib/providers/ActivityTree/private/useContext.js +0 -18
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts +0 -8
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.d.ts.map +0 -1
- package/lib/providers/ActivityTree/useActivityTreeWithRenderer.js +0 -14
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts +0 -37
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.d.ts.map +0 -1
- package/lib/providers/LiveRegionTwin/LiveRegionTwinComposer.js +0 -145
- package/lib/providers/LiveRegionTwin/private/Context.d.ts +0 -10
- package/lib/providers/LiveRegionTwin/private/Context.d.ts.map +0 -1
- package/lib/providers/LiveRegionTwin/private/Context.js +0 -11
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts +0 -12
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.d.ts.map +0 -1
- package/lib/providers/LiveRegionTwin/private/LiveRegionTwinContainer.js +0 -77
- package/lib/providers/LiveRegionTwin/private/types.d.ts +0 -8
- package/lib/providers/LiveRegionTwin/private/types.d.ts.map +0 -1
- package/lib/providers/LiveRegionTwin/private/types.js +0 -2
- package/lib/providers/LiveRegionTwin/private/useContext.d.ts +0 -3
- package/lib/providers/LiveRegionTwin/private/useContext.d.ts.map +0 -1
- package/lib/providers/LiveRegionTwin/private/useContext.js +0 -18
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts +0 -2
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.d.ts.map +0 -1
- package/lib/providers/LiveRegionTwin/private/useMarkAllAsRenderedEffect.js +0 -20
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts +0 -3
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.d.ts.map +0 -1
- package/lib/providers/LiveRegionTwin/private/useStaticElementEntries.js +0 -12
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts +0 -8
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.d.ts.map +0 -1
- package/lib/providers/LiveRegionTwin/useQueueStaticElement.js +0 -17
- package/lib/providers/ModalDialog/ModalDialogComposer.d.ts +0 -7
- package/lib/providers/ModalDialog/ModalDialogComposer.d.ts.map +0 -1
- package/lib/providers/ModalDialog/ModalDialogComposer.js +0 -51
- package/lib/providers/ModalDialog/private/Context.d.ts +0 -13
- package/lib/providers/ModalDialog/private/Context.d.ts.map +0 -1
- package/lib/providers/ModalDialog/private/Context.js +0 -24
- package/lib/providers/ModalDialog/private/Popover.d.ts +0 -10
- package/lib/providers/ModalDialog/private/Popover.d.ts.map +0 -1
- package/lib/providers/ModalDialog/private/Popover.js +0 -79
- package/lib/providers/ModalDialog/private/useContext.d.ts +0 -4
- package/lib/providers/ModalDialog/private/useContext.d.ts.map +0 -1
- package/lib/providers/ModalDialog/private/useContext.js +0 -13
- package/lib/providers/ModalDialog/useClose.d.ts +0 -3
- package/lib/providers/ModalDialog/useClose.d.ts.map +0 -1
- package/lib/providers/ModalDialog/useClose.js +0 -12
- package/lib/providers/ModalDialog/useShowModal.d.ts +0 -3
- package/lib/providers/ModalDialog/useShowModal.d.ts.map +0 -1
- package/lib/providers/ModalDialog/useShowModal.js +0 -12
- package/lib/providers/RovingTabIndex/RovingTabIndexComposer.d.ts +0 -8
- package/lib/providers/RovingTabIndex/RovingTabIndexComposer.d.ts.map +0 -1
- package/lib/providers/RovingTabIndex/RovingTabIndexComposer.js +0 -163
- package/lib/providers/RovingTabIndex/private/Context.d.ts +0 -8
- package/lib/providers/RovingTabIndex/private/Context.d.ts.map +0 -1
- package/lib/providers/RovingTabIndex/private/Context.js +0 -17
- package/lib/providers/RovingTabIndex/private/useContext.d.ts +0 -2
- package/lib/providers/RovingTabIndex/private/useContext.d.ts.map +0 -1
- package/lib/providers/RovingTabIndex/private/useContext.js +0 -18
- package/lib/providers/RovingTabIndex/useItemRef.d.ts +0 -3
- package/lib/providers/RovingTabIndex/useItemRef.d.ts.map +0 -1
- package/lib/providers/RovingTabIndex/useItemRef.js +0 -19
- package/lib/providers/Theme/ThemeProvider.d.ts +0 -7
- package/lib/providers/Theme/ThemeProvider.d.ts.map +0 -1
- package/lib/providers/Theme/ThemeProvider.js +0 -103
- package/lib/providers/Theme/private/Context.d.ts +0 -19
- package/lib/providers/Theme/private/Context.d.ts.map +0 -1
- package/lib/providers/Theme/private/Context.js +0 -26
- package/lib/providers/Theme/useTheme.d.ts +0 -2
- package/lib/providers/Theme/useTheme.d.ts.map +0 -1
- package/lib/providers/Theme/useTheme.js +0 -13
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts +0 -7
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/TranscriptFocusComposer.js +0 -153
- package/lib/providers/TranscriptFocus/private/Context.d.ts +0 -12
- package/lib/providers/TranscriptFocus/private/Context.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/private/Context.js +0 -11
- package/lib/providers/TranscriptFocus/private/useContext.d.ts +0 -2
- package/lib/providers/TranscriptFocus/private/useContext.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/private/useContext.js +0 -18
- package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts +0 -2
- package/lib/providers/TranscriptFocus/useActiveDescendantId.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/useActiveDescendantId.js +0 -12
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts +0 -8
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/useFocusByActivityKey.js +0 -18
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts +0 -2
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/useFocusRelativeActivity.js +0 -12
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts +0 -2
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/useFocusedActivityKey.js +0 -12
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts +0 -2
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/useFocusedExplicitly.js +0 -12
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts +0 -2
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.d.ts.map +0 -1
- package/lib/providers/TranscriptFocus/useGetDescendantIdByActivityKey.js +0 -12
- package/lib/providers/internal/SendBox/SendBoxComposer.d.ts +0 -4
- package/lib/providers/internal/SendBox/SendBoxComposer.d.ts.map +0 -1
- package/lib/providers/internal/SendBox/SendBoxComposer.js +0 -161
- package/lib/providers/internal/SendBox/private/Context.d.ts +0 -4
- package/lib/providers/internal/SendBox/private/Context.d.ts.map +0 -1
- package/lib/providers/internal/SendBox/private/Context.js +0 -11
- package/lib/providers/internal/SendBox/private/types.d.ts +0 -8
- package/lib/providers/internal/SendBox/private/types.d.ts.map +0 -1
- package/lib/providers/internal/SendBox/private/types.js +0 -2
- package/lib/providers/internal/SendBox/private/useContext.d.ts +0 -3
- package/lib/providers/internal/SendBox/private/useContext.d.ts.map +0 -1
- package/lib/providers/internal/SendBox/private/useContext.js +0 -17
- package/lib/providers/internal/SendBox/useErrorMessageId.d.ts +0 -12
- package/lib/providers/internal/SendBox/useErrorMessageId.d.ts.map +0 -1
- package/lib/providers/internal/SendBox/useErrorMessageId.js +0 -22
- package/lib/providers/internal/SendBox/useSubmit.d.ts +0 -14
- package/lib/providers/internal/SendBox/useSubmit.d.ts.map +0 -1
- package/lib/providers/internal/SendBox/useSubmit.js +0 -20
- package/lib/tsconfig.json +0 -18
- package/lib/types/ContextOf.d.ts +0 -4
- package/lib/types/ContextOf.d.ts.map +0 -1
- package/lib/types/ContextOf.js +0 -2
- package/lib/types/PropsOf.d.ts +0 -3
- package/lib/types/PropsOf.d.ts.map +0 -1
- package/lib/types/PropsOf.js +0 -2
- package/lib/types/ScrollPosition.d.ts +0 -6
- package/lib/types/ScrollPosition.d.ts.map +0 -1
- package/lib/types/ScrollPosition.js +0 -2
- package/lib/types/internal/FocusTranscriptInit.d.ts +0 -4
- package/lib/types/internal/FocusTranscriptInit.d.ts.map +0 -1
- package/lib/types/internal/FocusTranscriptInit.js +0 -2
- package/lib/types/internal/SendStatus.d.ts +0 -7
- package/lib/types/internal/SendStatus.d.ts.map +0 -1
- package/lib/types/internal/SendStatus.js +0 -19
- package/lib/types/internal/TypeOfArray.d.ts +0 -2
- package/lib/types/internal/TypeOfArray.d.ts.map +0 -1
- package/lib/types/internal/TypeOfArray.js +0 -2
- package/lib/withEmoji/private/UndoEntry.d.ts +0 -9
- package/lib/withEmoji/private/UndoEntry.d.ts.map +0 -1
- package/lib/withEmoji/private/UndoEntry.js +0 -69
- package/lib/withEmoji/private/useUndoStack.d.ts +0 -6
- package/lib/withEmoji/private/useUndoStack.d.ts.map +0 -1
- package/lib/withEmoji/private/useUndoStack.js +0 -64
- package/lib/withEmoji/withEmoji.d.ts +0 -15
- package/lib/withEmoji/withEmoji.d.ts.map +0 -1
- package/lib/withEmoji/withEmoji.js +0 -128
- package/src/Activity/SayAlt.js +0 -26
- package/src/ActivityStatus/AbsoluteTime.js +0 -32
- package/src/ActivityStatus/Slotted.tsx +0 -26
- package/src/ActivityStatus/private/Feedback/Feedback.tsx +0 -60
- package/src/ActivityStatus/private/Feedback/private/ThumbButton.Image.tsx +0 -30
- package/src/ActivityStatus/private/Feedback/private/ThumbButton.tsx +0 -54
- package/src/ActivityStatus/private/Feedback/private/VoteButton.tsx +0 -36
- package/src/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Filled.tsx +0 -16
- package/src/ActivityStatus/private/Feedback/private/icons/ThumbDislike16Regular.tsx +0 -16
- package/src/ActivityStatus/private/Feedback/private/icons/ThumbLike16Filled.tsx +0 -16
- package/src/ActivityStatus/private/Feedback/private/icons/ThumbLike16Regular.tsx +0 -16
- package/src/ActivityStatus/private/RelativeTime.js +0 -31
- package/src/Attachment/Assets/DownloadIcon.js +0 -29
- package/src/Attachment/ImageAttachment.js +0 -37
- package/src/Avatar/ImageAvatar.js +0 -49
- package/src/Avatar/InitialsAvatar.js +0 -50
- package/src/ConnectivityStatus/Connecting.js +0 -72
- package/src/LinkDefinition/private/Chevron.tsx +0 -21
- package/src/Middleware/Activity/createCoreMiddleware.tsx +0 -102
- package/src/Middleware/Avatar/createCoreMiddleware.tsx +0 -76
- package/src/Middleware/ScrollToEndButton/ScrollToEndButton.js +0 -45
- package/src/SendBox/Assets/MicrophoneIcon.js +0 -12
- package/src/SendBox/Assets/SendIcon.js +0 -36
- package/src/Styles/StyleSet/CSSCustomProperties.ts +0 -46
- package/src/Styles/StyleSet/KeyboardHelp.ts +0 -204
- package/src/Styles/StyleSet/SingleAttachmentActivity.ts +0 -18
- package/src/Styles/StyleSet/SlottedActivityStatus.ts +0 -16
- package/src/Transcript/KeyboardHelp.tsx +0 -319
- package/src/TranscriptActivity.tsx +0 -64
- package/src/Utils/AccessKeySink/Surface.js +0 -56
- package/src/Utils/CroppedImage.js +0 -45
- package/src/Utils/parseDocumentFromString.ts +0 -5
- package/src/Utils/readDataURIToBlob.js +0 -31
- package/src/Utils/serializeDocumentIntoString.ts +0 -10
- package/src/Utils/singleToArray.ts +0 -3
- package/src/Utils/textFormatToContentType.js +0 -12
- package/src/hooks/internal/useMemoWithPrevious.ts +0 -16
- package/src/hooks/internal/useNonce.js +0 -7
- package/src/hooks/internal/useStyleToEmotionObject.js +0 -5
- package/src/internal.ts +0 -4
- package/src/providers/ActivityTree/ActivityTreeComposer.tsx +0 -90
- package/src/providers/ActivityTree/private/Context.ts +0 -12
- package/src/providers/ActivityTree/private/types.ts +0 -12
- package/src/providers/ActivityTree/private/useActivitiesWithRenderer.ts +0 -40
- package/src/providers/ActivityTree/private/useActivityTreeWithRenderer.ts +0 -140
- package/src/providers/ActivityTree/private/useContext.ts +0 -15
- package/src/providers/ActivityTree/useActivityTreeWithRenderer.ts +0 -16
- package/src/providers/LiveRegionTwin/LiveRegionTwinComposer.tsx +0 -172
- package/src/providers/LiveRegionTwin/private/Context.ts +0 -15
package/src/BasicTranscript.tsx
CHANGED
|
@@ -1,65 +1,73 @@
|
|
|
1
|
+
// TODO: [P2] Fix ESLint error `no-use-before-define`
|
|
2
|
+
/* eslint-disable @typescript-eslint/no-use-before-define */
|
|
3
|
+
|
|
1
4
|
import { hooks } from 'botframework-webchat-api';
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import React, {
|
|
7
|
+
forwardRef,
|
|
8
|
+
Fragment,
|
|
9
|
+
memo,
|
|
10
|
+
useCallback,
|
|
11
|
+
useMemo,
|
|
12
|
+
useRef,
|
|
13
|
+
type KeyboardEventHandler,
|
|
14
|
+
type MutableRefObject,
|
|
15
|
+
type ReactNode
|
|
16
|
+
} from 'react';
|
|
2
17
|
import {
|
|
3
18
|
Composer as ReactScrollToBottomComposer,
|
|
4
19
|
Panel as ReactScrollToBottomPanel,
|
|
5
|
-
useAnimatingToEnd,
|
|
6
|
-
useAtEnd,
|
|
7
20
|
useObserveScrollPosition,
|
|
8
21
|
useScrollTo,
|
|
9
22
|
useScrollToEnd,
|
|
10
23
|
useSticky
|
|
11
24
|
} from 'react-scroll-to-bottom';
|
|
12
|
-
import
|
|
13
|
-
import PropTypes from 'prop-types';
|
|
14
|
-
import React, { forwardRef, Fragment, memo, useCallback, useMemo, useRef } from 'react';
|
|
15
|
-
|
|
16
|
-
import type { ActivityElementMap } from './Transcript/types';
|
|
17
|
-
import type { FC, KeyboardEventHandler, MutableRefObject, ReactNode } from 'react';
|
|
18
|
-
import type { WebChatActivity } from 'botframework-webchat-core';
|
|
25
|
+
import { wrapWith } from 'react-wrap-with';
|
|
19
26
|
|
|
20
|
-
import { android } from './Utils/detectBrowser';
|
|
21
27
|
import BasicTypingIndicator from './BasicTypingIndicator';
|
|
28
|
+
import ChatHistoryBox from './ChatHistory/ChatHistoryBox';
|
|
29
|
+
import ChatHistoryToolbar from './ChatHistory/ChatHistoryToolbar';
|
|
30
|
+
import ScrollToEndButton from './ChatHistory/private/ScrollToEndButton';
|
|
31
|
+
import ActivityTree from './Transcript/ActivityTree';
|
|
32
|
+
import LiveRegionTranscript from './Transcript/LiveRegionTranscript';
|
|
33
|
+
import { TranscriptFocusArea, TranscriptFocusTerminator } from './Transcript/TranscriptFocus';
|
|
34
|
+
import TranscriptActivityList from './Transcript/TranscriptFocus/TranscriptActivityList';
|
|
35
|
+
import { type ActivityElementMap } from './Transcript/types';
|
|
22
36
|
import FocusRedirector from './Utils/FocusRedirector';
|
|
23
37
|
import inputtableKey from './Utils/TypeFocusSink/inputtableKey';
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
import LiveRegionTranscript from './Transcript/LiveRegionTranscript';
|
|
27
|
-
// TODO: [P2] #4133 Rename to "getTabbableElements".
|
|
28
|
-
import tabbableElements from './Utils/tabbableElements';
|
|
29
|
-
import TranscriptFocusComposer from './providers/TranscriptFocus/TranscriptFocusComposer';
|
|
30
|
-
import useActiveDescendantId from './providers/TranscriptFocus/useActiveDescendantId';
|
|
31
|
-
import useActivityTreeWithRenderer from './providers/ActivityTree/useActivityTreeWithRenderer';
|
|
38
|
+
import { android } from './Utils/detectBrowser';
|
|
39
|
+
import { useStyleToEmotionObject } from './hooks/internal/styleToEmotionObject';
|
|
32
40
|
import useDispatchScrollPosition from './hooks/internal/useDispatchScrollPosition';
|
|
33
41
|
import useDispatchTranscriptFocusByActivityKey from './hooks/internal/useDispatchTranscriptFocusByActivityKey';
|
|
34
|
-
import
|
|
35
|
-
import useFocusByActivityKey from './providers/TranscriptFocus/useFocusByActivityKey';
|
|
36
|
-
import useFocusedActivityKey from './providers/TranscriptFocus/useFocusedActivityKey';
|
|
37
|
-
import useFocusedExplicitly from './providers/TranscriptFocus/useFocusedExplicitly';
|
|
38
|
-
import useFocusRelativeActivity from './providers/TranscriptFocus/useFocusRelativeActivity';
|
|
42
|
+
import useNonce from './hooks/internal/useNonce';
|
|
39
43
|
import useObserveFocusVisible from './hooks/internal/useObserveFocusVisible';
|
|
40
44
|
import usePrevious from './hooks/internal/usePrevious';
|
|
41
45
|
import useRegisterFocusTranscript from './hooks/internal/useRegisterFocusTranscript';
|
|
42
46
|
import useRegisterScrollTo from './hooks/internal/useRegisterScrollTo';
|
|
43
47
|
import useRegisterScrollToEnd from './hooks/internal/useRegisterScrollToEnd';
|
|
44
|
-
import useStyleSet from './hooks/useStyleSet';
|
|
45
|
-
import useStyleToEmotionObject from './hooks/internal/useStyleToEmotionObject';
|
|
46
|
-
import useUniqueId from './hooks/internal/useUniqueId';
|
|
47
48
|
import useValueRef from './hooks/internal/useValueRef';
|
|
48
|
-
import TranscriptActivity from './TranscriptActivity';
|
|
49
|
-
import useMemoized from './hooks/internal/useMemoized';
|
|
50
49
|
import {
|
|
51
50
|
useRegisterScrollRelativeTranscript,
|
|
52
51
|
type TranscriptScrollRelativeOptions
|
|
53
52
|
} from './hooks/transcriptScrollRelative';
|
|
53
|
+
import useFocus from './hooks/useFocus';
|
|
54
|
+
import useStyleSet from './hooks/useStyleSet';
|
|
55
|
+
import ChatHistoryDOMComposer from './providers/ChatHistoryDOM/ChatHistoryDOMComposer';
|
|
56
|
+
import useActivityElementMapRef from './providers/ChatHistoryDOM/useActivityElementRef';
|
|
57
|
+
import GroupedRenderingActivitiesComposer from './providers/GroupedRenderingActivities/GroupedRenderingActivitiesComposer';
|
|
58
|
+
import useNumRenderingActivities from './providers/GroupedRenderingActivities/useNumRenderingActivities';
|
|
59
|
+
import RenderingActivitiesComposer from './providers/RenderingActivities/RenderingActivitiesComposer';
|
|
60
|
+
import TranscriptFocusComposer from './providers/TranscriptFocus/TranscriptFocusComposer';
|
|
61
|
+
import useActiveDescendantId from './providers/TranscriptFocus/useActiveDescendantId';
|
|
62
|
+
import useFocusByActivityKey from './providers/TranscriptFocus/useFocusByActivityKey';
|
|
63
|
+
import useFocusRelativeActivity from './providers/TranscriptFocus/useFocusRelativeActivity';
|
|
64
|
+
import useFocusedExplicitly from './providers/TranscriptFocus/useFocusedExplicitly';
|
|
65
|
+
import useFocusedKey from './providers/TranscriptFocus/useFocusedKey';
|
|
54
66
|
|
|
55
67
|
const {
|
|
56
68
|
useActivityKeys,
|
|
57
|
-
useActivityKeysByRead,
|
|
58
|
-
useCreateAvatarRenderer,
|
|
59
|
-
useCreateScrollToEndButtonRenderer,
|
|
60
69
|
useDirection,
|
|
61
70
|
useGetActivityByKey,
|
|
62
|
-
useGetKeyByActivity,
|
|
63
71
|
useGetKeyByActivityId,
|
|
64
72
|
useLastAcknowledgedActivityKey,
|
|
65
73
|
useLocalizer,
|
|
@@ -91,6 +99,10 @@ const ROOT_STYLE = {
|
|
|
91
99
|
|
|
92
100
|
'& .webchat__basic-transcript__transcript': {
|
|
93
101
|
listStyleType: 'none'
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
'& .webchat__basic-transcript__activity-focus-target': {
|
|
105
|
+
pointerEvents: 'none'
|
|
94
106
|
}
|
|
95
107
|
}
|
|
96
108
|
};
|
|
@@ -99,525 +111,388 @@ type ScrollBehavior = 'auto' | 'smooth';
|
|
|
99
111
|
type ScrollToOptions = { behavior?: ScrollBehavior };
|
|
100
112
|
type ScrollToPosition = { activityID?: string; scrollTop?: number };
|
|
101
113
|
|
|
102
|
-
type InternalTranscriptProps = {
|
|
103
|
-
activityElementMapRef: MutableRefObject<ActivityElementMap>;
|
|
114
|
+
type InternalTranscriptProps = Readonly<{
|
|
104
115
|
className?: string;
|
|
105
|
-
|
|
116
|
+
terminatorRef: MutableRefObject<HTMLDivElement>;
|
|
117
|
+
}>;
|
|
106
118
|
|
|
107
119
|
// TODO: [P1] #4133 Add telemetry for computing how many re-render done so far.
|
|
108
|
-
const InternalTranscript =
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
ref(element);
|
|
139
|
-
} else {
|
|
140
|
-
ref.current = element;
|
|
141
|
-
}
|
|
120
|
+
const InternalTranscript = memo(
|
|
121
|
+
forwardRef<HTMLDivElement, InternalTranscriptProps>(
|
|
122
|
+
(
|
|
123
|
+
{ className, terminatorRef }: InternalTranscriptProps,
|
|
124
|
+
ref: MutableRefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void)
|
|
125
|
+
) => {
|
|
126
|
+
const [activeDescendantId] = useActiveDescendantId();
|
|
127
|
+
const [direction] = useDirection();
|
|
128
|
+
const [focusedKey] = useFocusedKey();
|
|
129
|
+
const [focusedExplicitly] = useFocusedExplicitly();
|
|
130
|
+
const focusElementMapRef = useActivityElementMapRef();
|
|
131
|
+
const focus = useFocus();
|
|
132
|
+
const focusByActivityKey = useFocusByActivityKey();
|
|
133
|
+
const focusRelativeActivity = useFocusRelativeActivity();
|
|
134
|
+
const getActivityByKey = useGetActivityByKey();
|
|
135
|
+
const getKeyByActivityId = useGetKeyByActivityId();
|
|
136
|
+
const localize = useLocalizer();
|
|
137
|
+
const rootClassName = useStyleToEmotionObject()(ROOT_STYLE) + '';
|
|
138
|
+
const rootElementRef = useRef<HTMLDivElement>(null);
|
|
139
|
+
|
|
140
|
+
const focusedKeyRef = useValueRef(focusedKey);
|
|
141
|
+
const transcriptAriaLabel = localize('TRANSCRIPT_ARIA_LABEL_ALT');
|
|
142
|
+
|
|
143
|
+
const callbackRef = useCallback(
|
|
144
|
+
(element: HTMLDivElement) => {
|
|
145
|
+
if (typeof ref === 'function') {
|
|
146
|
+
ref(element);
|
|
147
|
+
} else {
|
|
148
|
+
ref.current = element;
|
|
149
|
+
}
|
|
142
150
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
// Flatten the tree back into an array with information related to rendering.
|
|
154
|
-
const renderingElements = useMemo(() => {
|
|
155
|
-
const renderingElements: ReactNode[] = [];
|
|
156
|
-
const topSideBotNub = isZeroOrPositive(bubbleNubOffset);
|
|
157
|
-
const topSideUserNub = isZeroOrPositive(bubbleFromUserNubOffset);
|
|
158
|
-
|
|
159
|
-
activityWithRendererTree.forEach(entriesWithSameSender => {
|
|
160
|
-
const [[{ activity: firstActivity }]] = entriesWithSameSender;
|
|
161
|
-
const renderAvatar = createAvatarRendererMemoized(firstActivity);
|
|
162
|
-
|
|
163
|
-
entriesWithSameSender.forEach((entriesWithSameSenderAndStatus, indexWithinSenderGroup) => {
|
|
164
|
-
const firstInSenderGroup = !indexWithinSenderGroup;
|
|
165
|
-
const lastInSenderGroup = indexWithinSenderGroup === entriesWithSameSender.length - 1;
|
|
166
|
-
|
|
167
|
-
entriesWithSameSenderAndStatus.forEach(({ activity, renderActivity }, indexWithinSenderAndStatusGroup) => {
|
|
168
|
-
// We only show the timestamp at the end of the sender group. But we always show the "Send failed, retry" prompt.
|
|
169
|
-
const firstInSenderAndStatusGroup = !indexWithinSenderAndStatusGroup;
|
|
170
|
-
const key: string = getKeyByActivity(activity);
|
|
171
|
-
const lastInSenderAndStatusGroup =
|
|
172
|
-
indexWithinSenderAndStatusGroup === entriesWithSameSenderAndStatus.length - 1;
|
|
173
|
-
const topSideNub = activity.from?.role === 'user' ? topSideUserNub : topSideBotNub;
|
|
174
|
-
|
|
175
|
-
let showCallout: boolean;
|
|
176
|
-
|
|
177
|
-
// Depending on the "showAvatarInGroup" setting, the avatar will render in different positions.
|
|
178
|
-
if (showAvatarInGroup === 'sender') {
|
|
179
|
-
if (topSideNub) {
|
|
180
|
-
showCallout = firstInSenderGroup && firstInSenderAndStatusGroup;
|
|
181
|
-
} else {
|
|
182
|
-
showCallout = lastInSenderGroup && lastInSenderAndStatusGroup;
|
|
183
|
-
}
|
|
184
|
-
} else if (showAvatarInGroup === 'status') {
|
|
185
|
-
if (topSideNub) {
|
|
186
|
-
showCallout = firstInSenderAndStatusGroup;
|
|
187
|
-
} else {
|
|
188
|
-
showCallout = lastInSenderAndStatusGroup;
|
|
189
|
-
}
|
|
190
|
-
} else {
|
|
191
|
-
showCallout = true;
|
|
192
|
-
}
|
|
151
|
+
rootElementRef.current = element;
|
|
152
|
+
},
|
|
153
|
+
[ref, rootElementRef]
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
const [numRenderingActivities] = useNumRenderingActivities();
|
|
157
|
+
|
|
158
|
+
const scrollToBottomScrollTo: (scrollTop: number, options?: ScrollToOptions) => void = useScrollTo();
|
|
159
|
+
const scrollToBottomScrollToEnd: (options?: ScrollToOptions) => void = useScrollToEnd();
|
|
193
160
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
// If true, it will hide the timestamp, but it will continue to show the
|
|
200
|
-
// retry prompt. And show the screen reader version of the timestamp.
|
|
201
|
-
activityKey={key}
|
|
202
|
-
hideTimestamp={
|
|
203
|
-
hideAllTimestamps || indexWithinSenderAndStatusGroup !== entriesWithSameSenderAndStatus.length - 1
|
|
204
|
-
}
|
|
205
|
-
key={key}
|
|
206
|
-
renderActivity={renderActivity}
|
|
207
|
-
renderAvatar={renderAvatar}
|
|
208
|
-
showCallout={showCallout}
|
|
209
|
-
/>
|
|
161
|
+
const scrollTo = useCallback(
|
|
162
|
+
(position: ScrollToPosition, { behavior = 'auto' }: ScrollToOptions = {}) => {
|
|
163
|
+
if (!position) {
|
|
164
|
+
throw new Error(
|
|
165
|
+
'botframework-webchat: First argument passed to "useScrollTo" must be a ScrollPosition object.'
|
|
210
166
|
);
|
|
211
|
-
}
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
|
|
215
|
-
return renderingElements;
|
|
216
|
-
}, [
|
|
217
|
-
activityElementMapRef,
|
|
218
|
-
activityWithRendererTree,
|
|
219
|
-
bubbleFromUserNubOffset,
|
|
220
|
-
bubbleNubOffset,
|
|
221
|
-
createAvatarRendererMemoized,
|
|
222
|
-
getKeyByActivity,
|
|
223
|
-
hideAllTimestamps,
|
|
224
|
-
showAvatarInGroup
|
|
225
|
-
]);
|
|
226
|
-
|
|
227
|
-
const scrollToBottomScrollTo: (scrollTop: number, options?: ScrollToOptions) => void = useScrollTo();
|
|
228
|
-
const scrollToBottomScrollToEnd: (options?: ScrollToOptions) => void = useScrollToEnd();
|
|
229
|
-
|
|
230
|
-
const scrollTo = useCallback(
|
|
231
|
-
(position: ScrollToPosition, { behavior = 'auto' }: ScrollToOptions = {}) => {
|
|
232
|
-
if (!position) {
|
|
233
|
-
throw new Error(
|
|
234
|
-
'botframework-webchat: First argument passed to "useScrollTo" must be a ScrollPosition object.'
|
|
235
|
-
);
|
|
236
|
-
}
|
|
167
|
+
}
|
|
237
168
|
|
|
238
|
-
|
|
169
|
+
const { activityID: activityId, scrollTop } = position;
|
|
239
170
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
171
|
+
if (typeof scrollTop !== 'undefined') {
|
|
172
|
+
scrollToBottomScrollTo(scrollTop, { behavior });
|
|
173
|
+
} else if (typeof activityId !== 'undefined') {
|
|
174
|
+
const activityBoundingBoxElement = focusElementMapRef.current
|
|
175
|
+
.get(getKeyByActivityId(activityId))
|
|
176
|
+
?.querySelector('.webchat__basic-transcript__activity-active-descendant');
|
|
246
177
|
|
|
247
|
-
|
|
178
|
+
const scrollableElement = rootElementRef.current.querySelector('.webchat__basic-transcript__scrollable');
|
|
248
179
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
180
|
+
if (scrollableElement && activityBoundingBoxElement) {
|
|
181
|
+
// ESLint conflict with TypeScript. The result of getClientRects() is not an Array but DOMRectList, and cannot be destructured.
|
|
182
|
+
// eslint-disable-next-line prefer-destructuring
|
|
183
|
+
const activityBoundingBoxElementClientRect = activityBoundingBoxElement.getClientRects()[0];
|
|
253
184
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
185
|
+
// ESLint conflict with TypeScript. The result of getClientRects() is not an Array but DOMRectList, and cannot be destructured.
|
|
186
|
+
// eslint-disable-next-line prefer-destructuring
|
|
187
|
+
const scrollableElementClientRect = scrollableElement.getClientRects()[0];
|
|
257
188
|
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
189
|
+
// If either the activity or the transcript scrollable is not on DOM, we will not scroll the view.
|
|
190
|
+
if (activityBoundingBoxElementClientRect && scrollableElementClientRect) {
|
|
191
|
+
const { height: activityHeight, y: activityY } = activityBoundingBoxElementClientRect;
|
|
192
|
+
const { height: scrollableHeight } = scrollableElementClientRect;
|
|
193
|
+
const activityOffsetTop = activityY + scrollableElement.scrollTop;
|
|
263
194
|
|
|
264
|
-
|
|
195
|
+
const scrollTop = Math.min(activityOffsetTop, activityOffsetTop - scrollableHeight + activityHeight);
|
|
265
196
|
|
|
266
|
-
|
|
197
|
+
scrollToBottomScrollTo(scrollTop, { behavior });
|
|
198
|
+
}
|
|
267
199
|
}
|
|
268
200
|
}
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
);
|
|
201
|
+
},
|
|
202
|
+
[focusElementMapRef, getKeyByActivityId, rootElementRef, scrollToBottomScrollTo]
|
|
203
|
+
);
|
|
273
204
|
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
205
|
+
const scrollToEnd = useCallback(
|
|
206
|
+
() => scrollToBottomScrollToEnd({ behavior: 'smooth' }),
|
|
207
|
+
[scrollToBottomScrollToEnd]
|
|
208
|
+
);
|
|
278
209
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
210
|
+
const scrollRelative = useCallback(
|
|
211
|
+
({ direction, displacement }: TranscriptScrollRelativeOptions) => {
|
|
212
|
+
const { current: rootElement } = rootElementRef;
|
|
282
213
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
214
|
+
if (!rootElement) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
286
217
|
|
|
287
|
-
|
|
288
|
-
|
|
218
|
+
const scrollable: HTMLElement = rootElement.querySelector('.webchat__basic-transcript__scrollable');
|
|
219
|
+
let nextScrollTop: number;
|
|
289
220
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
221
|
+
if (typeof displacement === 'number') {
|
|
222
|
+
// eslint-disable-next-line no-magic-numbers
|
|
223
|
+
nextScrollTop = scrollable.scrollTop + (direction === 'down' ? 1 : -1) * displacement;
|
|
224
|
+
} else {
|
|
225
|
+
// eslint-disable-next-line no-magic-numbers
|
|
226
|
+
nextScrollTop = scrollable.scrollTop + (direction === 'down' ? 1 : -1) * scrollable.offsetHeight;
|
|
227
|
+
}
|
|
297
228
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
// Since there could be multiple instances of <BasicTranscript> inside the <Composer>, when the developer calls `scrollXXX`, we need to call it on all instances.
|
|
309
|
-
// We call `useRegisterScrollXXX` to register a callback function, the `useScrollXXX` will multiplex the call into each instance of <BasicTranscript>.
|
|
310
|
-
useRegisterScrollTo(scrollTo);
|
|
311
|
-
useRegisterScrollToEnd(scrollToEnd);
|
|
312
|
-
useRegisterScrollRelativeTranscript(scrollRelative);
|
|
313
|
-
|
|
314
|
-
const markActivityKeyAsRead = useMarkActivityKeyAsRead();
|
|
315
|
-
|
|
316
|
-
const dispatchScrollPositionWithActivityId: (scrollPosition: ScrollToPosition) => void =
|
|
317
|
-
useDispatchScrollPosition();
|
|
318
|
-
|
|
319
|
-
// TODO: [P2] We should use IntersectionObserver to track what activity is in the scrollable.
|
|
320
|
-
// However, IntersectionObserver is not available on IE11, we need to make a limited polyfill in React style.
|
|
321
|
-
const handleScrollPosition = useCallback(
|
|
322
|
-
({ scrollTop }: { scrollTop: number }) => {
|
|
323
|
-
const { current: rootElement } = rootElementRef;
|
|
324
|
-
|
|
325
|
-
if (!rootElement) {
|
|
326
|
-
return;
|
|
327
|
-
}
|
|
229
|
+
scrollTo(
|
|
230
|
+
{
|
|
231
|
+
scrollTop: Math.max(0, Math.min(scrollable.scrollHeight - scrollable.offsetHeight, nextScrollTop))
|
|
232
|
+
},
|
|
233
|
+
{ behavior: 'smooth' }
|
|
234
|
+
);
|
|
235
|
+
},
|
|
236
|
+
[rootElementRef, scrollTo]
|
|
237
|
+
);
|
|
328
238
|
|
|
329
|
-
|
|
239
|
+
// Since there could be multiple instances of <BasicTranscript> inside the <Composer>, when the developer calls `scrollXXX`, we need to call it on all instances.
|
|
240
|
+
// We call `useRegisterScrollXXX` to register a callback function, the `useScrollXXX` will multiplex the call into each instance of <BasicTranscript>.
|
|
241
|
+
useRegisterScrollTo(scrollTo);
|
|
242
|
+
useRegisterScrollToEnd(scrollToEnd);
|
|
243
|
+
useRegisterScrollRelativeTranscript(scrollRelative);
|
|
330
244
|
|
|
331
|
-
|
|
332
|
-
// eslint-disable-next-line prefer-destructuring
|
|
333
|
-
const scrollableElementClientRect = scrollableElement.getClientRects()[0];
|
|
245
|
+
const markActivityKeyAsRead = useMarkActivityKeyAsRead();
|
|
334
246
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
return;
|
|
338
|
-
}
|
|
247
|
+
const dispatchScrollPositionWithActivityId: (scrollPosition: ScrollToPosition) => void =
|
|
248
|
+
useDispatchScrollPosition();
|
|
339
249
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
const activityKeyJustAboveScrollBottom: string | undefined = (
|
|
346
|
-
scrollableElement.scrollTop
|
|
347
|
-
? activityElements
|
|
348
|
-
.reverse()
|
|
349
|
-
// Add subpixel tolerance
|
|
350
|
-
.find(([, element]) => {
|
|
351
|
-
// "getClientRects()" is not returning an array, thus, it is not destructurable.
|
|
352
|
-
// eslint-disable-next-line prefer-destructuring
|
|
353
|
-
const elementClientRect = element.getClientRects()[0];
|
|
354
|
-
|
|
355
|
-
// If the activity is not attached to DOM tree, we should not count it as "bottommost visible activity", as it is not visible.
|
|
356
|
-
return elementClientRect && elementClientRect.bottom < scrollableClientBottom + 1;
|
|
357
|
-
})
|
|
358
|
-
: activityElements[0]
|
|
359
|
-
)?.[0];
|
|
360
|
-
|
|
361
|
-
// When the end-user slowly scrolling the view down, we will mark activity as read when the message fully appear on the screen.
|
|
362
|
-
activityKeyJustAboveScrollBottom && markActivityKeyAsRead(activityKeyJustAboveScrollBottom);
|
|
363
|
-
|
|
364
|
-
if (dispatchScrollPositionWithActivityId) {
|
|
365
|
-
const activity = getActivityByKey(activityKeyJustAboveScrollBottom);
|
|
366
|
-
|
|
367
|
-
dispatchScrollPositionWithActivityId({ ...(activity ? { activityID: activity.id } : {}), scrollTop });
|
|
368
|
-
}
|
|
369
|
-
},
|
|
370
|
-
[
|
|
371
|
-
activityElementMapRef,
|
|
372
|
-
dispatchScrollPositionWithActivityId,
|
|
373
|
-
getActivityByKey,
|
|
374
|
-
markActivityKeyAsRead,
|
|
375
|
-
rootElementRef
|
|
376
|
-
]
|
|
377
|
-
);
|
|
378
|
-
|
|
379
|
-
useObserveScrollPosition(handleScrollPosition);
|
|
380
|
-
|
|
381
|
-
const handleTranscriptKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(
|
|
382
|
-
event => {
|
|
383
|
-
const { target } = event;
|
|
384
|
-
|
|
385
|
-
const fromEndOfTranscriptIndicator = target === terminatorRef.current;
|
|
386
|
-
const fromTranscript = target === event.currentTarget;
|
|
387
|
-
|
|
388
|
-
if (!fromEndOfTranscriptIndicator && !fromTranscript) {
|
|
389
|
-
return;
|
|
390
|
-
}
|
|
250
|
+
// TODO: [P2] We should use IntersectionObserver to track what activity is in the scrollable.
|
|
251
|
+
// However, IntersectionObserver is not available on IE11, we need to make a limited polyfill in React style.
|
|
252
|
+
const handleScrollPosition = useCallback(
|
|
253
|
+
({ scrollTop }: { scrollTop: number }) => {
|
|
254
|
+
const { current: rootElement } = rootElementRef;
|
|
391
255
|
|
|
392
|
-
|
|
256
|
+
if (!rootElement) {
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
393
259
|
|
|
394
|
-
|
|
395
|
-
case 'ArrowDown':
|
|
396
|
-
focusRelativeActivity(fromEndOfTranscriptIndicator ? 0 : 1);
|
|
397
|
-
break;
|
|
260
|
+
const scrollableElement = rootElement.querySelector('.webchat__basic-transcript__scrollable');
|
|
398
261
|
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
break;
|
|
403
|
-
|
|
404
|
-
case 'End':
|
|
405
|
-
focusRelativeActivity(Infinity);
|
|
406
|
-
break;
|
|
407
|
-
|
|
408
|
-
case 'Enter':
|
|
409
|
-
// This is capturing plain ENTER.
|
|
410
|
-
// When screen reader is not running, or screen reader is running outside of scan mode, the ENTER key will be captured here.
|
|
411
|
-
if (!fromEndOfTranscriptIndicator) {
|
|
412
|
-
const body: HTMLElement = activityElementMapRef.current
|
|
413
|
-
.get(focusedActivityKeyRef.current)
|
|
414
|
-
?.querySelector('.webchat__basic-transcript__activity-body');
|
|
415
|
-
|
|
416
|
-
tabbableElements(body)[0]?.focus();
|
|
417
|
-
}
|
|
262
|
+
// "getClientRects()" is not returning an array, thus, it is not destructurable.
|
|
263
|
+
// eslint-disable-next-line prefer-destructuring
|
|
264
|
+
const scrollableElementClientRect = scrollableElement.getClientRects()[0];
|
|
418
265
|
|
|
419
|
-
|
|
266
|
+
// If the scrollable is not mounted, we cannot measure which activity is in view. Thus, we will not fire any events.
|
|
267
|
+
if (!scrollableElementClientRect) {
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
420
270
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
271
|
+
const { bottom: scrollableClientBottom } = scrollableElementClientRect;
|
|
272
|
+
|
|
273
|
+
// Find the activity just above scroll view bottom.
|
|
274
|
+
// If the scroll view is already on top, get the first activity.
|
|
275
|
+
const activityElements = Array.from(focusElementMapRef.current.entries());
|
|
276
|
+
const activityKeyJustAboveScrollBottom: string | undefined = (
|
|
277
|
+
scrollableElement.scrollTop
|
|
278
|
+
? activityElements
|
|
279
|
+
.reverse()
|
|
280
|
+
// Add subpixel tolerance
|
|
281
|
+
.find(([, element]) => {
|
|
282
|
+
// "getClientRects()" is not returning an array, thus, it is not destructurable.
|
|
283
|
+
// eslint-disable-next-line prefer-destructuring
|
|
284
|
+
const elementClientRect = element.getClientRects()[0];
|
|
285
|
+
|
|
286
|
+
// If the activity is not attached to DOM tree, we should not count it as "bottommost visible activity", as it is not visible.
|
|
287
|
+
return elementClientRect && elementClientRect.bottom < scrollableClientBottom + 1;
|
|
288
|
+
})
|
|
289
|
+
: activityElements[0]
|
|
290
|
+
)?.[0];
|
|
291
|
+
|
|
292
|
+
// When the end-user slowly scrolling the view down, we will mark activity as read when the message fully appear on the screen.
|
|
293
|
+
activityKeyJustAboveScrollBottom && markActivityKeyAsRead(activityKeyJustAboveScrollBottom);
|
|
294
|
+
|
|
295
|
+
if (dispatchScrollPositionWithActivityId) {
|
|
296
|
+
const activity = getActivityByKey(activityKeyJustAboveScrollBottom);
|
|
297
|
+
|
|
298
|
+
dispatchScrollPositionWithActivityId({ ...(activity ? { activityID: activity.id } : {}), scrollTop });
|
|
299
|
+
}
|
|
300
|
+
},
|
|
301
|
+
[
|
|
302
|
+
focusElementMapRef,
|
|
303
|
+
dispatchScrollPositionWithActivityId,
|
|
304
|
+
getActivityByKey,
|
|
305
|
+
markActivityKeyAsRead,
|
|
306
|
+
rootElementRef
|
|
307
|
+
]
|
|
308
|
+
);
|
|
309
|
+
|
|
310
|
+
useObserveScrollPosition(handleScrollPosition);
|
|
311
|
+
|
|
312
|
+
const handleTranscriptKeyDown = useCallback<KeyboardEventHandler<HTMLDivElement>>(
|
|
313
|
+
event => {
|
|
314
|
+
const { target } = event;
|
|
315
|
+
|
|
316
|
+
const fromEndOfTranscriptIndicator = target === terminatorRef.current;
|
|
317
|
+
const fromTranscript = target === event.currentTarget;
|
|
318
|
+
|
|
319
|
+
if (!fromEndOfTranscriptIndicator && !fromTranscript) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
424
322
|
|
|
425
|
-
|
|
426
|
-
focusRelativeActivity(-Infinity);
|
|
427
|
-
break;
|
|
323
|
+
let handled = true;
|
|
428
324
|
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
325
|
+
switch (event.key) {
|
|
326
|
+
case 'ArrowDown':
|
|
327
|
+
focusRelativeActivity(fromEndOfTranscriptIndicator ? 0 : 1);
|
|
328
|
+
break;
|
|
433
329
|
|
|
434
|
-
|
|
435
|
-
|
|
330
|
+
case 'ArrowUp':
|
|
331
|
+
// eslint-disable-next-line no-magic-numbers
|
|
332
|
+
focusRelativeActivity(fromEndOfTranscriptIndicator ? 0 : -1);
|
|
333
|
+
break;
|
|
436
334
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
},
|
|
441
|
-
[activityElementMapRef, focus, focusedActivityKeyRef, focusRelativeActivity, terminatorRef]
|
|
442
|
-
);
|
|
443
|
-
|
|
444
|
-
const handleTranscriptKeyDownCapture = useCallback<KeyboardEventHandler<HTMLDivElement>>(
|
|
445
|
-
event => {
|
|
446
|
-
const { altKey, ctrlKey, key, metaKey, target } = event;
|
|
447
|
-
|
|
448
|
-
if (altKey || (ctrlKey && key !== 'v') || metaKey || (!inputtableKey(key) && key !== 'Backspace')) {
|
|
449
|
-
// Ignore if one of the utility key (except SHIFT) is pressed
|
|
450
|
-
// E.g. CTRL-C on a link in one of the message should not jump to chat box
|
|
451
|
-
// E.g. "A" or "Backspace" should jump to chat box
|
|
452
|
-
return;
|
|
453
|
-
}
|
|
335
|
+
case 'End':
|
|
336
|
+
focusRelativeActivity(Infinity);
|
|
337
|
+
break;
|
|
454
338
|
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
339
|
+
case 'Enter':
|
|
340
|
+
// This is capturing plain ENTER.
|
|
341
|
+
// When screen reader is not running, or screen reader is running outside of scan mode, the ENTER key will be captured here.
|
|
342
|
+
if (!fromEndOfTranscriptIndicator) {
|
|
343
|
+
const focusElement = focusElementMapRef.current?.get(focusedKeyRef.current);
|
|
344
|
+
const activityFocusTrapTarget: HTMLElement =
|
|
345
|
+
focusElement?.querySelector('.webchat__basic-transcript__group-focus-target') ??
|
|
346
|
+
focusElement?.querySelector('.webchat__basic-transcript__activity-focus-target');
|
|
347
|
+
// TODO: review focus approach:
|
|
348
|
+
// It is not clear how to handle focus without introducing something like context.
|
|
349
|
+
// Ideally we would want a way to interact with focus outside of React
|
|
350
|
+
// so it doesn't cause transcript re-renders while still having an ability
|
|
351
|
+
// to scope activity-related handlers and data in a single place.
|
|
352
|
+
activityFocusTrapTarget?.focus();
|
|
353
|
+
}
|
|
458
354
|
|
|
459
|
-
|
|
460
|
-
}
|
|
461
|
-
},
|
|
462
|
-
[focus]
|
|
463
|
-
);
|
|
464
|
-
|
|
465
|
-
useRegisterFocusTranscript(useCallback(() => focusByActivityKey(undefined), [focusByActivityKey]));
|
|
466
|
-
|
|
467
|
-
// When the focusing activity has changed, dispatch an event to observers of "useObserveTranscriptFocus".
|
|
468
|
-
const dispatchTranscriptFocusByActivityKey = useDispatchTranscriptFocusByActivityKey();
|
|
469
|
-
|
|
470
|
-
// Dispatch a "transcript focus" event based on user selection.
|
|
471
|
-
// We should not dispatch "transcript focus" when a new activity come. Although the selection change, it is not initiated from the user.
|
|
472
|
-
useMemo(
|
|
473
|
-
() => dispatchTranscriptFocusByActivityKey(focusedExplicitly ? focusedActivityKey : undefined),
|
|
474
|
-
[dispatchTranscriptFocusByActivityKey, focusedActivityKey, focusedExplicitly]
|
|
475
|
-
);
|
|
476
|
-
|
|
477
|
-
// When the transcript is being focused on, we should dispatch a "transcriptfocus" event.
|
|
478
|
-
const handleFocus = useCallback(
|
|
479
|
-
// We call "focusByActivityKey" with activity key of "true".
|
|
480
|
-
// It means, tries to focus on anything.
|
|
481
|
-
({ currentTarget, target }) => target === currentTarget && focusByActivityKey(true, false),
|
|
482
|
-
[focusByActivityKey]
|
|
483
|
-
);
|
|
484
|
-
|
|
485
|
-
// This is required by IE11.
|
|
486
|
-
// When the user clicks on and empty space (a.k.a. filler) in an empty transcript, IE11 says the focus is on the <div className="filler">,
|
|
487
|
-
// despite the fact there are no "tabIndex" attributes set on the filler.
|
|
488
|
-
// We need to artificially send the focus back to the transcript.
|
|
489
|
-
const handleFocusFiller = useCallback(() => focusByActivityKey(undefined), [focusByActivityKey]);
|
|
490
|
-
|
|
491
|
-
// When focus into the transcript using TAB/SHIFT-TAB, scroll the focused activity into view.
|
|
492
|
-
useObserveFocusVisible(
|
|
493
|
-
rootElementRef,
|
|
494
|
-
useCallback(() => focusByActivityKey(undefined), [focusByActivityKey])
|
|
495
|
-
);
|
|
496
|
-
|
|
497
|
-
return (
|
|
498
|
-
<div
|
|
499
|
-
// Although Android TalkBack 12.1 does not support `aria-activedescendant`, when used, it become buggy and will narrate content twice.
|
|
500
|
-
// We are disabling `aria-activedescendant` for Android. See <ActivityRow> for details.
|
|
501
|
-
aria-activedescendant={android ? undefined : activeDescendantId}
|
|
502
|
-
aria-label={transcriptAriaLabel}
|
|
503
|
-
className={classNames(
|
|
504
|
-
'webchat__basic-transcript',
|
|
505
|
-
basicTranscriptStyleSet + '',
|
|
506
|
-
rootClassName,
|
|
507
|
-
(className || '') + ''
|
|
508
|
-
)}
|
|
509
|
-
dir={direction}
|
|
510
|
-
onFocus={handleFocus}
|
|
511
|
-
onKeyDown={handleTranscriptKeyDown}
|
|
512
|
-
onKeyDownCapture={handleTranscriptKeyDownCapture}
|
|
513
|
-
ref={callbackRef}
|
|
514
|
-
// "aria-activedescendant" will only works with a number of roles and it must be explicitly set.
|
|
515
|
-
// https://www.w3.org/TR/wai-aria/#aria-activedescendant
|
|
516
|
-
role="group"
|
|
517
|
-
// For up/down arrow key navigation across activities, this component must be included in the tab sequence.
|
|
518
|
-
// Otherwise, "aria-activedescendant" will not be narrated when the user press up/down arrow keys.
|
|
519
|
-
// https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_focus_activedescendant
|
|
520
|
-
tabIndex={0}
|
|
521
|
-
>
|
|
522
|
-
<LiveRegionTranscript activityElementMapRef={activityElementMapRef} />
|
|
523
|
-
{/* TODO: [P2] Fix ESLint error `no-use-before-define` */}
|
|
524
|
-
{/* eslint-disable-next-line @typescript-eslint/no-use-before-define */}
|
|
525
|
-
<InternalTranscriptScrollable onFocusFiller={handleFocusFiller} terminatorRef={terminatorRef}>
|
|
526
|
-
{renderingElements}
|
|
527
|
-
</InternalTranscriptScrollable>
|
|
528
|
-
{!!renderingElements.length && (
|
|
529
|
-
<Fragment>
|
|
530
|
-
<FocusRedirector redirectRef={rootElementRef} />
|
|
531
|
-
<div
|
|
532
|
-
aria-labelledby={terminatorLabelId}
|
|
533
|
-
className="webchat__basic-transcript__terminator"
|
|
534
|
-
ref={terminatorRef}
|
|
535
|
-
role="note"
|
|
536
|
-
tabIndex={0}
|
|
537
|
-
>
|
|
538
|
-
<div className="webchat__basic-transcript__terminator-body">
|
|
539
|
-
{/* `id` is required for `aria-labelledby` */}
|
|
540
|
-
{/* eslint-disable-next-line react/forbid-dom-props */}
|
|
541
|
-
<div className="webchat__basic-transcript__terminator-text" id={terminatorLabelId}>
|
|
542
|
-
{terminatorText}
|
|
543
|
-
</div>
|
|
544
|
-
</div>
|
|
545
|
-
</div>
|
|
546
|
-
</Fragment>
|
|
547
|
-
)}
|
|
548
|
-
<div className="webchat__basic-transcript__focus-indicator" />
|
|
549
|
-
</div>
|
|
550
|
-
);
|
|
551
|
-
}
|
|
552
|
-
);
|
|
355
|
+
break;
|
|
553
356
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
357
|
+
case 'Escape':
|
|
358
|
+
focus('sendBoxWithoutKeyboard');
|
|
359
|
+
break;
|
|
557
360
|
|
|
558
|
-
|
|
361
|
+
case 'Home':
|
|
362
|
+
focusRelativeActivity(-Infinity);
|
|
363
|
+
break;
|
|
559
364
|
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
365
|
+
default:
|
|
366
|
+
handled = false;
|
|
367
|
+
break;
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
if (handled) {
|
|
371
|
+
event.preventDefault();
|
|
372
|
+
|
|
373
|
+
// If a custom HTML control wants to handle up/down arrow, we will prevent them from listening to this event to prevent bugs due to handling arrow keys twice.
|
|
374
|
+
event.stopPropagation();
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
[focusElementMapRef, focus, focusedKeyRef, focusRelativeActivity, terminatorRef]
|
|
378
|
+
);
|
|
379
|
+
|
|
380
|
+
const handleTranscriptKeyDownCapture = useCallback<KeyboardEventHandler<HTMLDivElement>>(
|
|
381
|
+
event => {
|
|
382
|
+
const { altKey, ctrlKey, key, metaKey, target } = event;
|
|
383
|
+
|
|
384
|
+
if (
|
|
385
|
+
altKey ||
|
|
386
|
+
(ctrlKey && key !== 'v' && key !== 'V') ||
|
|
387
|
+
metaKey ||
|
|
388
|
+
(!inputtableKey(key) && key !== 'Backspace')
|
|
389
|
+
) {
|
|
390
|
+
// Ignore if one of the utility key (except SHIFT) is pressed
|
|
391
|
+
// E.g. CTRL-C on a link in one of the message should not jump to chat box
|
|
392
|
+
// E.g. "A" or "Backspace" should jump to chat box
|
|
393
|
+
return;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
// Send keystrokes to send box if we are focusing on the transcript or terminator.
|
|
397
|
+
if (target === event.currentTarget || target === terminatorRef.current) {
|
|
398
|
+
event.stopPropagation();
|
|
568
399
|
|
|
569
|
-
|
|
400
|
+
focus('sendBox');
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
[focus, terminatorRef]
|
|
404
|
+
);
|
|
405
|
+
|
|
406
|
+
useRegisterFocusTranscript(useCallback(() => focusByActivityKey(undefined), [focusByActivityKey]));
|
|
407
|
+
|
|
408
|
+
// When the focusing activity has changed, dispatch an event to observers of "useObserveTranscriptFocus".
|
|
409
|
+
const dispatchTranscriptFocusByActivityKey = useDispatchTranscriptFocusByActivityKey();
|
|
410
|
+
|
|
411
|
+
// Dispatch a "transcript focus" event based on user selection.
|
|
412
|
+
// We should not dispatch "transcript focus" when a new activity come. Although the selection change, it is not initiated from the user.
|
|
413
|
+
useMemo(
|
|
414
|
+
() => dispatchTranscriptFocusByActivityKey(focusedExplicitly ? focusedKey : undefined),
|
|
415
|
+
[dispatchTranscriptFocusByActivityKey, focusedKey, focusedExplicitly]
|
|
416
|
+
);
|
|
417
|
+
|
|
418
|
+
// When the transcript is being focused on, we should dispatch a "transcriptfocus" event.
|
|
419
|
+
const handleFocus = useCallback(
|
|
420
|
+
// We call "focusByActivityKey" with activity key of "true".
|
|
421
|
+
// It means, tries to focus on anything.
|
|
422
|
+
({ currentTarget, target }) => target === currentTarget && focusByActivityKey(true, false),
|
|
423
|
+
[focusByActivityKey]
|
|
424
|
+
);
|
|
425
|
+
|
|
426
|
+
// This is required by IE11.
|
|
427
|
+
// When the user clicks on and empty space (a.k.a. filler) in an empty transcript, IE11 says the focus is on the <div className="filler">,
|
|
428
|
+
// despite the fact there are no "tabIndex" attributes set on the filler.
|
|
429
|
+
// We need to artificially send the focus back to the transcript.
|
|
430
|
+
const handleFocusFiller = useCallback(() => focusByActivityKey(undefined), [focusByActivityKey]);
|
|
431
|
+
|
|
432
|
+
// When focus into the transcript using TAB/SHIFT-TAB, scroll the focused activity into view.
|
|
433
|
+
useObserveFocusVisible(
|
|
434
|
+
rootElementRef,
|
|
435
|
+
useCallback(() => focusByActivityKey(undefined), [focusByActivityKey])
|
|
436
|
+
);
|
|
437
|
+
|
|
438
|
+
const hasAnyChild = !!numRenderingActivities;
|
|
439
|
+
|
|
440
|
+
return (
|
|
441
|
+
<TranscriptFocusArea
|
|
442
|
+
// Although Android TalkBack 12.1 does not support `aria-activedescendant`, when used, it become buggy and will narrate content twice.
|
|
443
|
+
// We are disabling `aria-activedescendant` for Android. See <ActivityRow> for details.
|
|
444
|
+
aria-activedescendant={android ? undefined : activeDescendantId}
|
|
445
|
+
aria-label={transcriptAriaLabel}
|
|
446
|
+
className={classNames('webchat__basic-transcript', rootClassName, (className || '') + '')}
|
|
447
|
+
dir={direction}
|
|
448
|
+
onFocus={handleFocus}
|
|
449
|
+
onKeyDown={handleTranscriptKeyDown}
|
|
450
|
+
onKeyDownCapture={handleTranscriptKeyDownCapture}
|
|
451
|
+
ref={callbackRef}
|
|
452
|
+
// "aria-activedescendant" will only works with a number of roles and it must be explicitly set.
|
|
453
|
+
// https://www.w3.org/TR/wai-aria/#aria-activedescendant
|
|
454
|
+
role="group"
|
|
455
|
+
// For up/down arrow key navigation across activities, this component must be included in the tab sequence.
|
|
456
|
+
// Otherwise, "aria-activedescendant" will not be narrated when the user press up/down arrow keys.
|
|
457
|
+
// https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_focus_activedescendant
|
|
458
|
+
tabIndex={0}
|
|
459
|
+
>
|
|
460
|
+
<LiveRegionTranscript activityElementMapRef={focusElementMapRef} />
|
|
461
|
+
{hasAnyChild && <FocusRedirector redirectRef={terminatorRef} />}
|
|
462
|
+
<InternalTranscriptScrollable onFocusFiller={handleFocusFiller}>
|
|
463
|
+
{hasAnyChild && <ActivityTree />}
|
|
464
|
+
</InternalTranscriptScrollable>
|
|
465
|
+
{hasAnyChild && (
|
|
466
|
+
<Fragment>
|
|
467
|
+
<FocusRedirector redirectRef={rootElementRef} />
|
|
468
|
+
<TranscriptFocusTerminator ref={terminatorRef} role="note" tabIndex={0} />
|
|
469
|
+
</Fragment>
|
|
470
|
+
)}
|
|
471
|
+
</TranscriptFocusArea>
|
|
472
|
+
);
|
|
473
|
+
}
|
|
474
|
+
)
|
|
475
|
+
);
|
|
476
|
+
|
|
477
|
+
InternalTranscript.displayName = 'InternalTranscript';
|
|
478
|
+
|
|
479
|
+
type InternalTranscriptScrollableProps = Readonly<{
|
|
570
480
|
children?: ReactNode;
|
|
571
481
|
onFocusFiller: () => void;
|
|
572
|
-
|
|
573
|
-
};
|
|
482
|
+
}>;
|
|
574
483
|
|
|
575
484
|
// Separating high-frequency hooks to improve performance.
|
|
576
|
-
const InternalTranscriptScrollable:
|
|
577
|
-
children,
|
|
578
|
-
onFocusFiller,
|
|
579
|
-
terminatorRef
|
|
580
|
-
}) => {
|
|
485
|
+
const InternalTranscriptScrollable = ({ children, onFocusFiller }: InternalTranscriptScrollableProps) => {
|
|
581
486
|
const [{ activities: activitiesStyleSet }] = useStyleSet();
|
|
582
|
-
const [animatingToEnd]: [boolean] = useAnimatingToEnd();
|
|
583
|
-
const [atEnd]: [boolean] = useAtEnd();
|
|
584
|
-
const [, unreadActivityKeys] = useActivityKeysByRead();
|
|
585
487
|
const [sticky]: [boolean] = useSticky();
|
|
586
|
-
const [styleOptions] = useStyleOptions();
|
|
587
|
-
const focusByActivityKey = useFocusByActivityKey();
|
|
588
488
|
const localize = useLocalizer();
|
|
589
|
-
const markActivityKeyAsRead = useMarkActivityKeyAsRead();
|
|
590
489
|
const markAllAsAcknowledged = useMarkAllAsAcknowledged();
|
|
591
|
-
const scrollToEnd: (options?: ScrollToOptions) => void = useScrollToEnd();
|
|
592
490
|
|
|
593
491
|
const prevSticky = usePrevious(sticky);
|
|
594
492
|
const transcriptRoleDescription = localize('TRANSCRIPT_ARIA_ROLE_ALT');
|
|
595
493
|
|
|
596
494
|
const stickyChangedToTrue = prevSticky !== sticky && sticky;
|
|
597
495
|
|
|
598
|
-
// Acknowledged means either:
|
|
599
|
-
// 1. The user sent a message
|
|
600
|
-
// - We don't need a condition here. When Web Chat sends the user's message, it will scroll to bottom, and it will trigger condition 2 below.
|
|
601
|
-
// 2. The user scroll to the bottom of the transcript, from a non-bottom scroll position
|
|
602
|
-
// - If the transcript is already at the bottom, the user needs to scroll up and then go back down
|
|
603
|
-
// - What happens if we are relaxing "scrolled from a non-bottom scroll position":
|
|
604
|
-
// 1. The condition will become solely "at the bottom of the transcript"
|
|
605
|
-
// 2. Auto-scroll will always scroll the transcript to the bottom
|
|
606
|
-
// 3. Web Chat will always acknowledge all activities as it is at the bottom
|
|
607
|
-
// 4. Acknowledge flag become useless
|
|
608
|
-
// 5. Therefore, even the developer set "pause after 3 activities", if activities are coming in at a slow pace (not batched in a single render)
|
|
609
|
-
// Web Chat will keep scrolling and not snapped/paused
|
|
610
|
-
|
|
611
|
-
// Note: When Web Chat is loaded, there are no activities acknowledged. We need to assume all arriving activities are acknowledged until end-user sends their first activity.
|
|
612
|
-
// Activities loaded initially could be from conversation history. Without assuming acknowledgement, Web Chat will not scroll initially (as everything is not acknowledged).
|
|
613
|
-
// It would be better if the chat adapter should let Web Chat know if the activity is loaded from history or not.
|
|
614
|
-
|
|
615
|
-
// TODO: [P2] #3670 Move the "conversation history acknowledgement" logic mentioned above to polyfill of chat adapters.
|
|
616
|
-
// 1. Chat adapter should send "acknowledged" as part of "channelData"
|
|
617
|
-
// 2. If "acknowledged" is "undefined", we set it to:
|
|
618
|
-
// a. true, if there are no egress activities yet
|
|
619
|
-
// b. Otherwise, false
|
|
620
|
-
|
|
621
496
|
useMemo(
|
|
622
497
|
() =>
|
|
623
498
|
stickyChangedToTrue &&
|
|
@@ -628,81 +503,22 @@ const InternalTranscriptScrollable: FC<InternalTranscriptScrollableProps> = ({
|
|
|
628
503
|
[markAllAsAcknowledged, stickyChangedToTrue]
|
|
629
504
|
);
|
|
630
505
|
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
const renderingActivityKeys: string[] = useMemo<string[]>(
|
|
635
|
-
() => flattenedActivityTreeWithRenderer.map(({ activity }) => getKeyByActivity(activity)),
|
|
636
|
-
[flattenedActivityTreeWithRenderer, getKeyByActivity]
|
|
637
|
-
);
|
|
638
|
-
|
|
639
|
-
const renderingActivityKeysRef = useValueRef(renderingActivityKeys);
|
|
640
|
-
|
|
641
|
-
// To prevent flashy button, we are not waiting for another render loop to update the `[readActivityKeys, unreadActivityKeys]` state.
|
|
642
|
-
// Instead, we are building the next one in this `useMemo` call.
|
|
643
|
-
const nextUnreadActivityKeys = useMemo(() => {
|
|
644
|
-
// This code need to be careful reviewed as it will cause another render. The code should be converging.
|
|
645
|
-
// After we call `markActivityKeyAsRead`, everything will be read and nothing will be unread.
|
|
646
|
-
// That means, in next render, `unreadActivityKeys` will be emptied and the `markActivityKeyAsRead` will not get called again.
|
|
647
|
-
if (sticky && unreadActivityKeys.length) {
|
|
648
|
-
markActivityKeyAsRead(unreadActivityKeys[unreadActivityKeys.length - 1]);
|
|
649
|
-
|
|
650
|
-
return [];
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
return unreadActivityKeys;
|
|
654
|
-
}, [markActivityKeyAsRead, sticky, unreadActivityKeys]);
|
|
655
|
-
|
|
656
|
-
const nextUnreadActivityKeysRef = useValueRef(nextUnreadActivityKeys);
|
|
657
|
-
|
|
658
|
-
// If we are rendering anything that is unread, we should show the "New messages" button.
|
|
659
|
-
// Not everything in the `unreadActivityKeys` are rendered, say, bot typing indicator.
|
|
660
|
-
// We should not show the "New messages" button for bot typing indicator as it will confuse the user.
|
|
661
|
-
const unread = useMemo(
|
|
662
|
-
() => nextUnreadActivityKeys.some(key => renderingActivityKeys.includes(key)),
|
|
663
|
-
[renderingActivityKeys, nextUnreadActivityKeys]
|
|
664
|
-
);
|
|
665
|
-
|
|
666
|
-
const handleScrollToEndButtonClick = useCallback(() => {
|
|
667
|
-
scrollToEnd({ behavior: 'smooth' });
|
|
668
|
-
|
|
669
|
-
const { current: renderingActivityKeys } = renderingActivityKeysRef;
|
|
670
|
-
|
|
671
|
-
// After the "New message" button is clicked, focus on the first unread activity which will be rendered.
|
|
672
|
-
const firstUnreadRenderingActivityKey = nextUnreadActivityKeysRef.current.find(key =>
|
|
673
|
-
renderingActivityKeys.includes(key)
|
|
674
|
-
);
|
|
675
|
-
|
|
676
|
-
if (firstUnreadRenderingActivityKey) {
|
|
677
|
-
focusByActivityKey(firstUnreadRenderingActivityKey);
|
|
678
|
-
} else {
|
|
679
|
-
// If no unread activity, send the focus to the terminator block.
|
|
680
|
-
terminatorRef.current?.focus();
|
|
681
|
-
}
|
|
682
|
-
}, [focusByActivityKey, nextUnreadActivityKeysRef, renderingActivityKeysRef, scrollToEnd, terminatorRef]);
|
|
683
|
-
|
|
684
|
-
const renderScrollToEndButton = useCreateScrollToEndButtonRenderer()({
|
|
685
|
-
atEnd: animatingToEnd || atEnd || sticky,
|
|
686
|
-
styleOptions,
|
|
687
|
-
unread
|
|
688
|
-
});
|
|
689
|
-
|
|
690
|
-
const hasAnyChild = !!React.Children.count(children);
|
|
506
|
+
// We need to check if `children` is `false` or not.
|
|
507
|
+
// If `children` is `false`, React.Children.count(children) will still return 1 (truthy).
|
|
508
|
+
const hasAnyChild = !!children && !!React.Children.count(children);
|
|
691
509
|
|
|
692
510
|
return (
|
|
693
511
|
<React.Fragment>
|
|
694
|
-
{renderScrollToEndButton && renderScrollToEndButton({ onClick: handleScrollToEndButtonClick })}
|
|
695
|
-
{hasAnyChild && <FocusRedirector redirectRef={terminatorRef} />}
|
|
696
512
|
<ReactScrollToBottomPanel className="webchat__basic-transcript__scrollable">
|
|
697
513
|
<div aria-hidden={true} className="webchat__basic-transcript__filler" onFocus={onFocusFiller} />
|
|
698
514
|
{hasAnyChild && (
|
|
699
|
-
<
|
|
515
|
+
<TranscriptActivityList
|
|
700
516
|
aria-roledescription={transcriptRoleDescription}
|
|
701
517
|
className={classNames(activitiesStyleSet + '', 'webchat__basic-transcript__transcript')}
|
|
702
518
|
role="feed"
|
|
703
519
|
>
|
|
704
520
|
{children}
|
|
705
|
-
</
|
|
521
|
+
</TranscriptActivityList>
|
|
706
522
|
)}
|
|
707
523
|
<BasicTypingIndicator />
|
|
708
524
|
</ReactScrollToBottomPanel>
|
|
@@ -710,12 +526,6 @@ const InternalTranscriptScrollable: FC<InternalTranscriptScrollableProps> = ({
|
|
|
710
526
|
);
|
|
711
527
|
};
|
|
712
528
|
|
|
713
|
-
InternalTranscriptScrollable.propTypes = {
|
|
714
|
-
children: PropTypes.any.isRequired,
|
|
715
|
-
onFocusFiller: PropTypes.func.isRequired,
|
|
716
|
-
terminatorRef: PropTypes.any.isRequired
|
|
717
|
-
};
|
|
718
|
-
|
|
719
529
|
type Scroller = ({ offsetHeight, scrollTop }: { offsetHeight: number; scrollTop: number }) => number;
|
|
720
530
|
|
|
721
531
|
// "scroller" is the auto-scroll limiter, a.k.a. auto scroll snap.
|
|
@@ -834,32 +644,37 @@ const useScroller = (activityElementMapRef: MutableRefObject<ActivityElementMap>
|
|
|
834
644
|
);
|
|
835
645
|
};
|
|
836
646
|
|
|
837
|
-
type BasicTranscriptProps = {
|
|
838
|
-
className
|
|
839
|
-
}
|
|
647
|
+
type BasicTranscriptProps = Readonly<{
|
|
648
|
+
className: string;
|
|
649
|
+
}>;
|
|
840
650
|
|
|
841
|
-
const BasicTranscript
|
|
842
|
-
const
|
|
843
|
-
const
|
|
651
|
+
const BasicTranscript = ({ className = '' }: BasicTranscriptProps) => {
|
|
652
|
+
const [{ stylesRoot }] = useStyleOptions();
|
|
653
|
+
const [nonce] = useNonce();
|
|
654
|
+
const activityElementMapRef = useActivityElementMapRef();
|
|
655
|
+
const containerRef = useRef<HTMLDivElement>(null);
|
|
656
|
+
const terminatorRef = useRef<HTMLDivElement>(null);
|
|
844
657
|
|
|
845
658
|
const scroller = useScroller(activityElementMapRef);
|
|
659
|
+
const styleOptions = useMemo(() => ({ stylesRoot }), [stylesRoot]);
|
|
846
660
|
|
|
847
661
|
return (
|
|
848
|
-
<
|
|
849
|
-
<
|
|
850
|
-
<
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
662
|
+
<ChatHistoryBox className={className}>
|
|
663
|
+
<RenderingActivitiesComposer>
|
|
664
|
+
<TranscriptFocusComposer containerRef={containerRef}>
|
|
665
|
+
<ReactScrollToBottomComposer nonce={nonce} scroller={scroller} styleOptions={styleOptions}>
|
|
666
|
+
<ChatHistoryToolbar>
|
|
667
|
+
<ScrollToEndButton terminatorRef={terminatorRef} />
|
|
668
|
+
</ChatHistoryToolbar>
|
|
669
|
+
<GroupedRenderingActivitiesComposer>
|
|
670
|
+
<InternalTranscript ref={containerRef} terminatorRef={terminatorRef} />
|
|
671
|
+
</GroupedRenderingActivitiesComposer>
|
|
672
|
+
</ReactScrollToBottomComposer>
|
|
673
|
+
</TranscriptFocusComposer>
|
|
674
|
+
</RenderingActivitiesComposer>
|
|
675
|
+
</ChatHistoryBox>
|
|
854
676
|
);
|
|
855
677
|
};
|
|
856
678
|
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
};
|
|
860
|
-
|
|
861
|
-
BasicTranscript.propTypes = {
|
|
862
|
-
className: PropTypes.string
|
|
863
|
-
};
|
|
864
|
-
|
|
865
|
-
export default memo(BasicTranscript);
|
|
679
|
+
export default wrapWith(ChatHistoryDOMComposer)(memo(BasicTranscript));
|
|
680
|
+
export { type BasicTranscriptProps };
|